@lumiapassport/ui-kit 1.13.2 → 1.13.3
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/dist/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +558 -559
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +415 -416
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4297,7 +4297,7 @@ __export(index_exports, {
|
|
|
4297
4297
|
module.exports = __toCommonJS(index_exports);
|
|
4298
4298
|
|
|
4299
4299
|
// src/styles/built.css
|
|
4300
|
-
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .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-\\[80vh\\]{max-height:80vh}.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-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Inter;src:url(@/src/styles/Inter-VariableFont_opsz,wght.ttf) format("truetype-variations");font-weight:100 900;font-stretch:75% 125%;font-style:normal;font-display:swap}.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-l,0);overflow-y:auto;max-height:320px}.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 .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4300
|
+
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .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-\\[80vh\\]{max-height:80vh}.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-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-l,0);overflow-y:auto;max-height:320px}.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 .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4301
4301
|
|
|
4302
4302
|
// src/context/LumiaPassportContext.tsx
|
|
4303
4303
|
var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
|
|
@@ -4310,14 +4310,305 @@ init_iframe_manager();
|
|
|
4310
4310
|
var import_react47 = require("react");
|
|
4311
4311
|
var import_zustand5 = require("zustand");
|
|
4312
4312
|
|
|
4313
|
+
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
4314
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
4315
|
+
var import_react2 = require("react");
|
|
4316
|
+
var import_wagmi = require("wagmi");
|
|
4317
|
+
init_base();
|
|
4318
|
+
|
|
4319
|
+
// src/internal/hooks/useLayoutDataStore.ts
|
|
4320
|
+
var import_zustand = require("zustand");
|
|
4321
|
+
|
|
4322
|
+
// src/internal/constants.ts
|
|
4323
|
+
var import_lucide_react2 = require("lucide-react");
|
|
4324
|
+
init_assets();
|
|
4325
|
+
var DEFAULT_AUTH_MENU_HEIGHT = 253;
|
|
4326
|
+
var DEFAULT_MAIN_MENU_HEIGHT = 90;
|
|
4327
|
+
var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
|
|
4328
|
+
var MAX_LIST_HEIGHT = 320;
|
|
4329
|
+
var MAIN_DIALOG_ANIMATION_SPEED = 375;
|
|
4330
|
+
var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
|
|
4331
|
+
var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
|
|
4332
|
+
var PROVIDERS_META2 = {
|
|
4333
|
+
passkey: { name: "Passkey", icon: import_lucide_react2.Key, description: "Biometric authentication" },
|
|
4334
|
+
email: { name: "Email", icon: import_lucide_react2.Mail, description: "Email verification" },
|
|
4335
|
+
telegram: { name: "Telegram", icon: TelegramIcon, description: "Telegram account" },
|
|
4336
|
+
google: { name: "Google", icon: GoogleIcon, description: "Google account" },
|
|
4337
|
+
discord: { name: "Discord", icon: DiscordIcon, description: "Discord account" },
|
|
4338
|
+
twitter: { name: "X", icon: TwitterIcon, description: "X (Twitter) account" },
|
|
4339
|
+
wallet: { name: "Wallet", icon: import_lucide_react2.Wallet2, description: "External wallet (EOA)" }
|
|
4340
|
+
};
|
|
4341
|
+
|
|
4342
|
+
// src/internal/hooks/useLayoutDataStore.ts
|
|
4343
|
+
var PageKey = /* @__PURE__ */ ((PageKey2) => {
|
|
4344
|
+
PageKey2["AUTH"] = "auth";
|
|
4345
|
+
PageKey2["TERMS_OF_SERVICE"] = "terms-of-service";
|
|
4346
|
+
PageKey2["MAIN_MENU"] = "main-menu";
|
|
4347
|
+
PageKey2["SETTINGS"] = "settings";
|
|
4348
|
+
PageKey2["SEND"] = "send";
|
|
4349
|
+
PageKey2["RECEIVE"] = "receive";
|
|
4350
|
+
PageKey2["BUY"] = "buy";
|
|
4351
|
+
PageKey2["KYC"] = "kyc";
|
|
4352
|
+
PageKey2["TRANSACTIONS"] = "transactions";
|
|
4353
|
+
PageKey2["ASSETS"] = "assets";
|
|
4354
|
+
PageKey2["MANAGE_WALLET"] = "manage-wallet";
|
|
4355
|
+
PageKey2["UNLINK_PROVIDER"] = "unlink-provider";
|
|
4356
|
+
PageKey2["SECURITY"] = "security";
|
|
4357
|
+
PageKey2["KEYSARE_BACKUP"] = "keysare-backup";
|
|
4358
|
+
PageKey2["KEYSHARE_RESTORE"] = "keyshare-restore";
|
|
4359
|
+
return PageKey2;
|
|
4360
|
+
})(PageKey || {});
|
|
4361
|
+
var useLayoutDataStore = (0, import_zustand.create)((set) => ({
|
|
4362
|
+
page: null,
|
|
4363
|
+
pageParams: null,
|
|
4364
|
+
cryptoRate: 1,
|
|
4365
|
+
cryptoSymbol: "LUMIA",
|
|
4366
|
+
fiatBalance: 0,
|
|
4367
|
+
fiatSymbol: "USD",
|
|
4368
|
+
balance: { decimals: 18, formatted: "0.0", symbol: "LUMIA", value: BigInt(0) },
|
|
4369
|
+
mainPageHeight: DEFAULT_MAIN_MENU_HEIGHT,
|
|
4370
|
+
settingsNotifications: [],
|
|
4371
|
+
setPage: (page) => set({ page }),
|
|
4372
|
+
setPageParams: (pageOptions) => set({ pageParams: pageOptions }),
|
|
4373
|
+
setCryptoRate: (lumiaRate) => set({ cryptoRate: lumiaRate }),
|
|
4374
|
+
setCryptoSymbol: (cryptoSymbol) => set({ cryptoSymbol }),
|
|
4375
|
+
setFiatBalance: (usdBalance) => set({ fiatBalance: usdBalance }),
|
|
4376
|
+
setFiatSymbol: (fiatSymbol) => set({ fiatSymbol }),
|
|
4377
|
+
setBalance: (balance) => set({ balance }),
|
|
4378
|
+
setMainPageHeight: (height) => set({ mainPageHeight: height }),
|
|
4379
|
+
setSettingsNotifications: (notification) => set((prev) => {
|
|
4380
|
+
const actions = notification.status === "active" ? "add" : "remove";
|
|
4381
|
+
const exists = prev.settingsNotifications.find((n) => n.id === notification.id);
|
|
4382
|
+
if (actions === "add") {
|
|
4383
|
+
if (exists) return prev;
|
|
4384
|
+
return { settingsNotifications: [...prev.settingsNotifications, notification] };
|
|
4385
|
+
}
|
|
4386
|
+
const filtered = prev.settingsNotifications.filter((n) => n.id !== notification.id);
|
|
4387
|
+
return { settingsNotifications: filtered };
|
|
4388
|
+
})
|
|
4389
|
+
}));
|
|
4390
|
+
|
|
4391
|
+
// src/internal/hooks/useLumiaPriceSSE.ts
|
|
4392
|
+
var import_react_query = require("@tanstack/react-query");
|
|
4393
|
+
var import_react = require("react");
|
|
4394
|
+
|
|
4395
|
+
// src/internal/lib/LumiaPriceSSEService.ts
|
|
4396
|
+
var FALLBACK = "https://fallback.lumia.passport.io";
|
|
4397
|
+
var API_DOMAIN = (true ? "" : FALLBACK) || FALLBACK;
|
|
4398
|
+
var LumiaPriceSSEService = class {
|
|
4399
|
+
// private readonly baseUrl: string = API_DOMAIN
|
|
4400
|
+
constructor() {
|
|
4401
|
+
this.eventSource = null;
|
|
4402
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
4403
|
+
this.currentPrice = null;
|
|
4404
|
+
this.isConnected = false;
|
|
4405
|
+
this.reconnectTimeout = null;
|
|
4406
|
+
}
|
|
4407
|
+
connect() {
|
|
4408
|
+
return new Promise((resolve, reject) => {
|
|
4409
|
+
console.log("[LumiaPriceSSEService]: Connecting to LUMIA Price SSE...");
|
|
4410
|
+
if (this.isConnected) {
|
|
4411
|
+
resolve();
|
|
4412
|
+
return;
|
|
4413
|
+
}
|
|
4414
|
+
try {
|
|
4415
|
+
this.eventSource = new EventSource(`${API_DOMAIN}/api/lumia/sse`);
|
|
4416
|
+
this.eventSource.onopen = () => {
|
|
4417
|
+
console.log("[LumiaPriceSSEService]: LUMIA Price SSE connected");
|
|
4418
|
+
this.isConnected = true;
|
|
4419
|
+
this.clearReconnectTimeout();
|
|
4420
|
+
resolve();
|
|
4421
|
+
};
|
|
4422
|
+
this.eventSource.onmessage = () => {
|
|
4423
|
+
};
|
|
4424
|
+
this.eventSource.addEventListener("rate", (event) => {
|
|
4425
|
+
try {
|
|
4426
|
+
const data = JSON.parse(event.data);
|
|
4427
|
+
if (data.price !== void 0 && data.symbol === "LUMIAUSDT") {
|
|
4428
|
+
this.currentPrice = typeof data.price === "number" ? data.price : parseFloat(data.price);
|
|
4429
|
+
if (this.currentPrice !== null) {
|
|
4430
|
+
const update = {
|
|
4431
|
+
symbol: data.symbol,
|
|
4432
|
+
price: this.currentPrice,
|
|
4433
|
+
ts: data.ts || Date.now()
|
|
4434
|
+
};
|
|
4435
|
+
this.listeners.forEach((listener) => listener(update));
|
|
4436
|
+
}
|
|
4437
|
+
}
|
|
4438
|
+
} catch (error) {
|
|
4439
|
+
console.error("Error parsing price event:", error, event.data);
|
|
4440
|
+
}
|
|
4441
|
+
});
|
|
4442
|
+
this.eventSource.addEventListener("ping", () => {
|
|
4443
|
+
});
|
|
4444
|
+
this.eventSource.onerror = (error) => {
|
|
4445
|
+
console.error("LUMIA Price SSE error:", error);
|
|
4446
|
+
this.isConnected = false;
|
|
4447
|
+
if (this.eventSource?.readyState === EventSource.CLOSED) {
|
|
4448
|
+
console.log("SSE connection closed, attempting to reconnect...");
|
|
4449
|
+
this.scheduleReconnect();
|
|
4450
|
+
reject(error);
|
|
4451
|
+
}
|
|
4452
|
+
};
|
|
4453
|
+
setTimeout(() => {
|
|
4454
|
+
if (!this.isConnected) {
|
|
4455
|
+
reject(new Error("SSE connection timeout"));
|
|
4456
|
+
}
|
|
4457
|
+
}, 1e4);
|
|
4458
|
+
} catch (error) {
|
|
4459
|
+
reject(error);
|
|
4460
|
+
}
|
|
4461
|
+
});
|
|
4462
|
+
}
|
|
4463
|
+
disconnect() {
|
|
4464
|
+
this.clearReconnectTimeout();
|
|
4465
|
+
if (this.eventSource) {
|
|
4466
|
+
this.eventSource.close();
|
|
4467
|
+
this.eventSource = null;
|
|
4468
|
+
}
|
|
4469
|
+
this.isConnected = false;
|
|
4470
|
+
this.currentPrice = null;
|
|
4471
|
+
console.log("[LumiaPriceSSEService]: LUMIA Price SSE disconnected");
|
|
4472
|
+
}
|
|
4473
|
+
addListener(listener) {
|
|
4474
|
+
this.listeners.add(listener);
|
|
4475
|
+
}
|
|
4476
|
+
removeListener(listener) {
|
|
4477
|
+
this.listeners.delete(listener);
|
|
4478
|
+
}
|
|
4479
|
+
clearListeners() {
|
|
4480
|
+
this.listeners.clear();
|
|
4481
|
+
}
|
|
4482
|
+
getCurrentPrice() {
|
|
4483
|
+
return this.currentPrice;
|
|
4484
|
+
}
|
|
4485
|
+
getConnectionStatus() {
|
|
4486
|
+
return this.isConnected;
|
|
4487
|
+
}
|
|
4488
|
+
scheduleReconnect() {
|
|
4489
|
+
this.clearReconnectTimeout();
|
|
4490
|
+
this.reconnectTimeout = window.setTimeout(() => {
|
|
4491
|
+
console.log("Attempting to reconnect to BTC Price SSE...");
|
|
4492
|
+
this.connect().catch((error) => {
|
|
4493
|
+
console.error("Reconnection failed:", error);
|
|
4494
|
+
this.scheduleReconnect();
|
|
4495
|
+
});
|
|
4496
|
+
}, 5e3);
|
|
4497
|
+
}
|
|
4498
|
+
clearReconnectTimeout() {
|
|
4499
|
+
if (this.reconnectTimeout) {
|
|
4500
|
+
clearTimeout(this.reconnectTimeout);
|
|
4501
|
+
this.reconnectTimeout = null;
|
|
4502
|
+
}
|
|
4503
|
+
}
|
|
4504
|
+
};
|
|
4505
|
+
var lumiaPriceSSE = new LumiaPriceSSEService();
|
|
4506
|
+
async function sseConnectMutation() {
|
|
4507
|
+
try {
|
|
4508
|
+
await lumiaPriceSSE.connect();
|
|
4509
|
+
console.info("[LUMIA SSE] price feed connected");
|
|
4510
|
+
return { ok: true };
|
|
4511
|
+
} catch (error) {
|
|
4512
|
+
console.error("[LUMIA SSE] Error connecting to SSE:", error);
|
|
4513
|
+
throw new Error("[LUMIA SSE] Error connecting to SSE");
|
|
4514
|
+
}
|
|
4515
|
+
}
|
|
4516
|
+
|
|
4517
|
+
// src/internal/hooks/useLumiaPriceSSE.ts
|
|
4518
|
+
function useLumiaPriceSSE(enabled, updateCurrentPrice) {
|
|
4519
|
+
const { mutate: connectSSE } = (0, import_react_query.useMutation)({
|
|
4520
|
+
mutationFn: sseConnectMutation,
|
|
4521
|
+
onSuccess: () => {
|
|
4522
|
+
lumiaPriceSSE.addListener(updateCurrentPrice);
|
|
4523
|
+
},
|
|
4524
|
+
onError: (err) => {
|
|
4525
|
+
console.error("Lumia Price SSE connection error:", err);
|
|
4526
|
+
}
|
|
4527
|
+
});
|
|
4528
|
+
(0, import_react.useEffect)(() => {
|
|
4529
|
+
const isConnected = lumiaPriceSSE.getConnectionStatus();
|
|
4530
|
+
console.log("[LUMIA PRICE SSE MANAGER] SSE status:", { enabled, isConnected });
|
|
4531
|
+
if (!enabled) {
|
|
4532
|
+
lumiaPriceSSE.clearListeners();
|
|
4533
|
+
lumiaPriceSSE.disconnect();
|
|
4534
|
+
return;
|
|
4535
|
+
}
|
|
4536
|
+
return () => {
|
|
4537
|
+
lumiaPriceSSE.clearListeners();
|
|
4538
|
+
lumiaPriceSSE.disconnect();
|
|
4539
|
+
};
|
|
4540
|
+
}, [enabled, connectSSE]);
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
4544
|
+
function BalanceFeedProvider() {
|
|
4545
|
+
const config = useLumiaPassportConfig().config.current;
|
|
4546
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
4547
|
+
const { cryptoRate, setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore();
|
|
4548
|
+
const isDefaultBalanceFeedEnabled = !!address && !config?.projectAssets?.showBalanceAs;
|
|
4549
|
+
const { data: balance } = (0, import_wagmi.useBalance)({
|
|
4550
|
+
address,
|
|
4551
|
+
chainId: lumiaBeam.id,
|
|
4552
|
+
query: {
|
|
4553
|
+
enabled: isDefaultBalanceFeedEnabled,
|
|
4554
|
+
refetchInterval: isDefaultBalanceFeedEnabled ? 3e4 : false,
|
|
4555
|
+
// Refetch every 30 seconds
|
|
4556
|
+
refetchOnMount: true,
|
|
4557
|
+
refetchOnWindowFocus: true
|
|
4558
|
+
}
|
|
4559
|
+
});
|
|
4560
|
+
useLumiaPriceSSE(isDefaultBalanceFeedEnabled, (update) => setCryptoRate(update.price || 1));
|
|
4561
|
+
(0, import_react2.useEffect)(() => {
|
|
4562
|
+
if (!isDefaultBalanceFeedEnabled) return;
|
|
4563
|
+
const usdBalance = Number(balance?.formatted || 0) * cryptoRate;
|
|
4564
|
+
setCryptoSymbol("LUMIA");
|
|
4565
|
+
setFiatSymbol("USD");
|
|
4566
|
+
setFiatBalance(usdBalance);
|
|
4567
|
+
setBalance(balance);
|
|
4568
|
+
}, [isDefaultBalanceFeedEnabled, balance, cryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol]);
|
|
4569
|
+
const showBalanceAsSymbol = config?.projectAssets?.showBalanceAs;
|
|
4570
|
+
const assetBalanceConfig = config?.projectAssets?.assets.find((a) => a.symbol === showBalanceAsSymbol);
|
|
4571
|
+
const { balanceQuery, balanceQueryKey } = assetBalanceConfig || {};
|
|
4572
|
+
const { data: customBalance } = (0, import_react_query2.useQuery)({
|
|
4573
|
+
retry: false,
|
|
4574
|
+
enabled: !isDefaultBalanceFeedEnabled && !!address && !!showBalanceAsSymbol && !!assetBalanceConfig,
|
|
4575
|
+
queryKey: balanceQueryKey,
|
|
4576
|
+
// should be invalidated by host app via provided queryKey
|
|
4577
|
+
queryFn: async () => await balanceQuery()
|
|
4578
|
+
});
|
|
4579
|
+
(0, import_react2.useEffect)(() => {
|
|
4580
|
+
if (!!isDefaultBalanceFeedEnabled || !customBalance) return;
|
|
4581
|
+
const { cryptoFiatRate, fiatFormatted, cryptoFormatted, cryptoSymbol, fiatSymbol } = customBalance;
|
|
4582
|
+
setCryptoSymbol(cryptoSymbol.toUpperCase() || "LUMIA");
|
|
4583
|
+
setFiatSymbol(fiatSymbol.toUpperCase() || "USD");
|
|
4584
|
+
setCryptoRate(cryptoFiatRate || 1);
|
|
4585
|
+
setFiatBalance(fiatFormatted || 0);
|
|
4586
|
+
setBalance({
|
|
4587
|
+
decimals: 18,
|
|
4588
|
+
formatted: cryptoFormatted?.toString() || "0",
|
|
4589
|
+
symbol: cryptoSymbol.toUpperCase() || "LUMIA",
|
|
4590
|
+
value: BigInt(Math.floor((cryptoFormatted || 0) * 10 ** 18))
|
|
4591
|
+
});
|
|
4592
|
+
}, [
|
|
4593
|
+
isDefaultBalanceFeedEnabled,
|
|
4594
|
+
customBalance,
|
|
4595
|
+
setFiatBalance,
|
|
4596
|
+
setBalance,
|
|
4597
|
+
setCryptoSymbol,
|
|
4598
|
+
setFiatSymbol,
|
|
4599
|
+
setCryptoRate
|
|
4600
|
+
]);
|
|
4601
|
+
return null;
|
|
4602
|
+
}
|
|
4603
|
+
|
|
4313
4604
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4314
4605
|
var import_framer_motion4 = require("framer-motion");
|
|
4315
|
-
var
|
|
4606
|
+
var import_react44 = require("react");
|
|
4316
4607
|
|
|
4317
4608
|
// package.json
|
|
4318
4609
|
var package_default = {
|
|
4319
4610
|
name: "@lumiapassport/ui-kit",
|
|
4320
|
-
version: "1.13.
|
|
4611
|
+
version: "1.13.3",
|
|
4321
4612
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
4322
4613
|
type: "module",
|
|
4323
4614
|
main: "./dist/index.cjs",
|
|
@@ -4405,13 +4696,13 @@ var package_default = {
|
|
|
4405
4696
|
};
|
|
4406
4697
|
|
|
4407
4698
|
// src/internal/components/Footer/Footer.tsx
|
|
4408
|
-
var
|
|
4699
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
4409
4700
|
var import_lucide_react3 = require("lucide-react");
|
|
4410
4701
|
|
|
4411
4702
|
// src/internal/assets/LumiaLogo.tsx
|
|
4412
|
-
var
|
|
4703
|
+
var import_react3 = require("react");
|
|
4413
4704
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
4414
|
-
var LumiaLogo = (0,
|
|
4705
|
+
var LumiaLogo = (0, import_react3.forwardRef)(({ size = 24, className = "" }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
4415
4706
|
"svg",
|
|
4416
4707
|
{
|
|
4417
4708
|
ref,
|
|
@@ -4463,78 +4754,6 @@ var LumiaLogo = (0, import_react.forwardRef)(({ size = 24, className = "" }, ref
|
|
|
4463
4754
|
init_auth();
|
|
4464
4755
|
init_base();
|
|
4465
4756
|
|
|
4466
|
-
// src/internal/hooks/useLayoutDataStore.ts
|
|
4467
|
-
var import_zustand = require("zustand");
|
|
4468
|
-
|
|
4469
|
-
// src/internal/constants.ts
|
|
4470
|
-
var import_lucide_react2 = require("lucide-react");
|
|
4471
|
-
init_assets();
|
|
4472
|
-
var DEFAULT_AUTH_MENU_HEIGHT = 253;
|
|
4473
|
-
var DEFAULT_MAIN_MENU_HEIGHT = 90;
|
|
4474
|
-
var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
|
|
4475
|
-
var MAX_LIST_HEIGHT = 320;
|
|
4476
|
-
var MAIN_DIALOG_ANIMATION_SPEED = 375;
|
|
4477
|
-
var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
|
|
4478
|
-
var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
|
|
4479
|
-
var PROVIDERS_META2 = {
|
|
4480
|
-
passkey: { name: "Passkey", icon: import_lucide_react2.Key, description: "Biometric authentication" },
|
|
4481
|
-
email: { name: "Email", icon: import_lucide_react2.Mail, description: "Email verification" },
|
|
4482
|
-
telegram: { name: "Telegram", icon: TelegramIcon, description: "Telegram account" },
|
|
4483
|
-
google: { name: "Google", icon: GoogleIcon, description: "Google account" },
|
|
4484
|
-
discord: { name: "Discord", icon: DiscordIcon, description: "Discord account" },
|
|
4485
|
-
twitter: { name: "X", icon: TwitterIcon, description: "X (Twitter) account" },
|
|
4486
|
-
wallet: { name: "Wallet", icon: import_lucide_react2.Wallet2, description: "External wallet (EOA)" }
|
|
4487
|
-
};
|
|
4488
|
-
|
|
4489
|
-
// src/internal/hooks/useLayoutDataStore.ts
|
|
4490
|
-
var PageKey = /* @__PURE__ */ ((PageKey2) => {
|
|
4491
|
-
PageKey2["AUTH"] = "auth";
|
|
4492
|
-
PageKey2["TERMS_OF_SERVICE"] = "terms-of-service";
|
|
4493
|
-
PageKey2["MAIN_MENU"] = "main-menu";
|
|
4494
|
-
PageKey2["SETTINGS"] = "settings";
|
|
4495
|
-
PageKey2["SEND"] = "send";
|
|
4496
|
-
PageKey2["RECEIVE"] = "receive";
|
|
4497
|
-
PageKey2["BUY"] = "buy";
|
|
4498
|
-
PageKey2["KYC"] = "kyc";
|
|
4499
|
-
PageKey2["TRANSACTIONS"] = "transactions";
|
|
4500
|
-
PageKey2["ASSETS"] = "assets";
|
|
4501
|
-
PageKey2["MANAGE_WALLET"] = "manage-wallet";
|
|
4502
|
-
PageKey2["UNLINK_PROVIDER"] = "unlink-provider";
|
|
4503
|
-
PageKey2["SECURITY"] = "security";
|
|
4504
|
-
PageKey2["KEYSARE_BACKUP"] = "keysare-backup";
|
|
4505
|
-
PageKey2["KEYSHARE_RESTORE"] = "keyshare-restore";
|
|
4506
|
-
return PageKey2;
|
|
4507
|
-
})(PageKey || {});
|
|
4508
|
-
var useLayoutDataStore = (0, import_zustand.create)((set) => ({
|
|
4509
|
-
page: null,
|
|
4510
|
-
pageParams: null,
|
|
4511
|
-
cryptoRate: 1,
|
|
4512
|
-
cryptoSymbol: "LUMIA",
|
|
4513
|
-
fiatBalance: 0,
|
|
4514
|
-
fiatSymbol: "USD",
|
|
4515
|
-
balance: { decimals: 18, formatted: "0.0", symbol: "LUMIA", value: BigInt(0) },
|
|
4516
|
-
mainPageHeight: DEFAULT_MAIN_MENU_HEIGHT,
|
|
4517
|
-
settingsNotifications: [],
|
|
4518
|
-
setPage: (page) => set({ page }),
|
|
4519
|
-
setPageParams: (pageOptions) => set({ pageParams: pageOptions }),
|
|
4520
|
-
setCryptoRate: (lumiaRate) => set({ cryptoRate: lumiaRate }),
|
|
4521
|
-
setCryptoSymbol: (cryptoSymbol) => set({ cryptoSymbol }),
|
|
4522
|
-
setFiatBalance: (usdBalance) => set({ fiatBalance: usdBalance }),
|
|
4523
|
-
setFiatSymbol: (fiatSymbol) => set({ fiatSymbol }),
|
|
4524
|
-
setBalance: (balance) => set({ balance }),
|
|
4525
|
-
setMainPageHeight: (height) => set({ mainPageHeight: height }),
|
|
4526
|
-
setSettingsNotifications: (notification) => set((prev) => {
|
|
4527
|
-
const actions = notification.status === "active" ? "add" : "remove";
|
|
4528
|
-
const exists = prev.settingsNotifications.find((n) => n.id === notification.id);
|
|
4529
|
-
if (actions === "add") {
|
|
4530
|
-
if (exists) return prev;
|
|
4531
|
-
return { settingsNotifications: [...prev.settingsNotifications, notification] };
|
|
4532
|
-
}
|
|
4533
|
-
const filtered = prev.settingsNotifications.filter((n) => n.id !== notification.id);
|
|
4534
|
-
return { settingsNotifications: filtered };
|
|
4535
|
-
})
|
|
4536
|
-
}));
|
|
4537
|
-
|
|
4538
4757
|
// src/internal/lib/utils.ts
|
|
4539
4758
|
var import_clsx = require("clsx");
|
|
4540
4759
|
var import_tailwind_merge = require("tailwind-merge");
|
|
@@ -4622,7 +4841,7 @@ function Footer() {
|
|
|
4622
4841
|
const { callbacks } = useLumiaPassportConfig();
|
|
4623
4842
|
const { address, setSession, setAddress, setStatus, setError, setIsLoading } = useLumiaPassportSession();
|
|
4624
4843
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
4625
|
-
const { mutate: disconnect, isPending: isDisconnecting } = (0,
|
|
4844
|
+
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query3.useMutation)({
|
|
4626
4845
|
mutationFn: async (disconnectAddress) => {
|
|
4627
4846
|
if (!disconnectAddress) throw new Error("No address to disconnect");
|
|
4628
4847
|
setError(null);
|
|
@@ -4754,9 +4973,9 @@ function LumiaIcon(props) {
|
|
|
4754
4973
|
}
|
|
4755
4974
|
|
|
4756
4975
|
// src/internal/components/Header/Header.tsx
|
|
4757
|
-
var
|
|
4976
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
4758
4977
|
var import_lucide_react4 = require("lucide-react");
|
|
4759
|
-
var
|
|
4978
|
+
var import_react4 = require("react");
|
|
4760
4979
|
|
|
4761
4980
|
// src/internal/assets/PositiveIcon.tsx
|
|
4762
4981
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
@@ -4812,10 +5031,10 @@ function Header() {
|
|
|
4812
5031
|
config: { current: config }
|
|
4813
5032
|
} = useLumiaPassportConfig();
|
|
4814
5033
|
const address = useLumiaPassportSession((st) => st.address);
|
|
4815
|
-
const [copied, setCopied] = (0,
|
|
5034
|
+
const [copied, setCopied] = (0, import_react4.useState)(false);
|
|
4816
5035
|
const avatar = import_auth3.jwtTokenManager.getAvatar();
|
|
4817
5036
|
const displayName = import_auth3.jwtTokenManager.getDisplayName();
|
|
4818
|
-
const { data: userProfile = null, isLoading: isUserProfileLoading } = (0,
|
|
5037
|
+
const { data: userProfile = null, isLoading: isUserProfileLoading } = (0, import_react_query4.useQuery)({
|
|
4819
5038
|
retry: false,
|
|
4820
5039
|
enabled: !!address,
|
|
4821
5040
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
@@ -5084,7 +5303,7 @@ var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
|
5084
5303
|
var VisuallyHidden = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
5085
5304
|
|
|
5086
5305
|
// src/internal/hooks/useAutoConnect.ts
|
|
5087
|
-
var
|
|
5306
|
+
var import_react5 = require("react");
|
|
5088
5307
|
function useAutoConnect() {
|
|
5089
5308
|
const {
|
|
5090
5309
|
config: { current: config },
|
|
@@ -5104,7 +5323,7 @@ function useAutoConnect() {
|
|
|
5104
5323
|
setIsIframeReady,
|
|
5105
5324
|
setIsLoading
|
|
5106
5325
|
} = useLumiaPassportSession();
|
|
5107
|
-
const createSessionWithKeyshare = (0,
|
|
5326
|
+
const createSessionWithKeyshare = (0, import_react5.useCallback)(
|
|
5108
5327
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
5109
5328
|
try {
|
|
5110
5329
|
try {
|
|
@@ -5138,8 +5357,8 @@ function useAutoConnect() {
|
|
|
5138
5357
|
},
|
|
5139
5358
|
[usePaymaster, setStatus, callbacks]
|
|
5140
5359
|
);
|
|
5141
|
-
const autoConnectAttemptedRef = (0,
|
|
5142
|
-
(0,
|
|
5360
|
+
const autoConnectAttemptedRef = (0, import_react5.useRef)(false);
|
|
5361
|
+
(0, import_react5.useEffect)(() => {
|
|
5143
5362
|
if (autoConnectAttemptedRef.current) return;
|
|
5144
5363
|
setIsLoading(true);
|
|
5145
5364
|
const tryAutoConnect = async (attempt) => {
|
|
@@ -5258,11 +5477,11 @@ function useAutoConnect() {
|
|
|
5258
5477
|
}
|
|
5259
5478
|
|
|
5260
5479
|
// src/internal/hooks/useBackupStatusChanges.ts
|
|
5261
|
-
var
|
|
5480
|
+
var import_react6 = require("react");
|
|
5262
5481
|
init_vaultClient();
|
|
5263
5482
|
function useBackupStatusChanges() {
|
|
5264
5483
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5265
|
-
(0,
|
|
5484
|
+
(0, import_react6.useEffect)(() => {
|
|
5266
5485
|
const handleBackupStatusChanged = async (event) => {
|
|
5267
5486
|
const customEvent = event;
|
|
5268
5487
|
const { method, success } = customEvent.detail || {};
|
|
@@ -5288,13 +5507,13 @@ function useBackupStatusChanges() {
|
|
|
5288
5507
|
}
|
|
5289
5508
|
|
|
5290
5509
|
// src/internal/hooks/useCheckVaultStatus.ts
|
|
5291
|
-
var
|
|
5292
|
-
var
|
|
5510
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
5511
|
+
var import_react7 = require("react");
|
|
5293
5512
|
init_vaultClient();
|
|
5294
5513
|
function useCheckVaultStatus() {
|
|
5295
5514
|
const address = useLumiaPassportSession((st) => st.address);
|
|
5296
5515
|
const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
|
|
5297
|
-
const { mutate: checkVaultStatus } = (0,
|
|
5516
|
+
const { mutate: checkVaultStatus } = (0, import_react_query5.useMutation)({
|
|
5298
5517
|
mutationFn: async () => {
|
|
5299
5518
|
const stats = await getShareRecoveryStats();
|
|
5300
5519
|
const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
|
|
@@ -5308,19 +5527,19 @@ function useCheckVaultStatus() {
|
|
|
5308
5527
|
setHasServerVault(false);
|
|
5309
5528
|
}
|
|
5310
5529
|
});
|
|
5311
|
-
(0,
|
|
5530
|
+
(0, import_react7.useEffect)(() => {
|
|
5312
5531
|
if (!address) return setHasServerVault(false);
|
|
5313
5532
|
checkVaultStatus();
|
|
5314
5533
|
}, [address, checkVaultStatus]);
|
|
5315
5534
|
}
|
|
5316
5535
|
|
|
5317
5536
|
// src/internal/hooks/usePageMapper.tsx
|
|
5318
|
-
var
|
|
5537
|
+
var import_react41 = require("react");
|
|
5319
5538
|
|
|
5320
5539
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5321
5540
|
var import_framer_motion = require("framer-motion");
|
|
5322
5541
|
var import_lucide_react14 = require("lucide-react");
|
|
5323
|
-
var
|
|
5542
|
+
var import_react17 = require("react");
|
|
5324
5543
|
|
|
5325
5544
|
// src/internal/components/AuthMenu/AuthFailedStep.tsx
|
|
5326
5545
|
var import_lucide_react6 = require("lucide-react");
|
|
@@ -5408,17 +5627,17 @@ function AuthFailedStep() {
|
|
|
5408
5627
|
|
|
5409
5628
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5410
5629
|
var import_lucide_react7 = require("lucide-react");
|
|
5411
|
-
var
|
|
5630
|
+
var import_react9 = require("react");
|
|
5412
5631
|
init_auth();
|
|
5413
5632
|
init_profile();
|
|
5414
5633
|
|
|
5415
5634
|
// src/internal/components/ui/input.tsx
|
|
5416
|
-
var
|
|
5635
|
+
var import_react8 = __toESM(require("react"), 1);
|
|
5417
5636
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
5418
|
-
var Input =
|
|
5637
|
+
var Input = import_react8.default.forwardRef((props, ref) => {
|
|
5419
5638
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5420
|
-
const internalRef = (0,
|
|
5421
|
-
(0,
|
|
5639
|
+
const internalRef = (0, import_react8.useRef)(null);
|
|
5640
|
+
(0, import_react8.useImperativeHandle)(ref, () => internalRef.current);
|
|
5422
5641
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
5423
5642
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
5424
5643
|
"div",
|
|
@@ -5464,9 +5683,9 @@ Input.displayName = "Input";
|
|
|
5464
5683
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5465
5684
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
5466
5685
|
var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
5467
|
-
const [displayName, setDisplayName] = (0,
|
|
5468
|
-
const [isLoading, setIsLoading] = (0,
|
|
5469
|
-
const [error, setError] = (0,
|
|
5686
|
+
const [displayName, setDisplayName] = (0, import_react9.useState)("");
|
|
5687
|
+
const [isLoading, setIsLoading] = (0, import_react9.useState)(false);
|
|
5688
|
+
const [error, setError] = (0, import_react9.useState)("");
|
|
5470
5689
|
const handleSubmit = async (e) => {
|
|
5471
5690
|
e.preventDefault();
|
|
5472
5691
|
if (!displayName.trim()) {
|
|
@@ -5573,7 +5792,7 @@ function DisplayNameStep(props) {
|
|
|
5573
5792
|
|
|
5574
5793
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
5575
5794
|
var import_lucide_react8 = require("lucide-react");
|
|
5576
|
-
var
|
|
5795
|
+
var import_react11 = require("react");
|
|
5577
5796
|
|
|
5578
5797
|
// src/internal/assets/PasskeyAddIcon.tsx
|
|
5579
5798
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
@@ -5606,16 +5825,16 @@ function PasskeyAddIcon(props) {
|
|
|
5606
5825
|
init_auth();
|
|
5607
5826
|
|
|
5608
5827
|
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5609
|
-
var
|
|
5828
|
+
var import_react10 = require("react");
|
|
5610
5829
|
var useExpandable = (props) => {
|
|
5611
5830
|
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5612
|
-
const expandableRef = (0,
|
|
5613
|
-
const contentRef = (0,
|
|
5614
|
-
(0,
|
|
5831
|
+
const expandableRef = (0, import_react10.useRef)(null);
|
|
5832
|
+
const contentRef = (0, import_react10.useRef)(null);
|
|
5833
|
+
(0, import_react10.useEffect)(() => {
|
|
5615
5834
|
if (!expandableRef.current) return;
|
|
5616
5835
|
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
5617
5836
|
}, []);
|
|
5618
|
-
const setExpandableHeight = (0,
|
|
5837
|
+
const setExpandableHeight = (0, import_react10.useCallback)(
|
|
5619
5838
|
(isExpnd) => {
|
|
5620
5839
|
if (!contentRef.current || !expandableRef.current) return;
|
|
5621
5840
|
expandableRef.current.style.setProperty(
|
|
@@ -5626,7 +5845,7 @@ var useExpandable = (props) => {
|
|
|
5626
5845
|
// ON_RESIZE_DELEAY),
|
|
5627
5846
|
[minHeight]
|
|
5628
5847
|
);
|
|
5629
|
-
(0,
|
|
5848
|
+
(0, import_react10.useEffect)(() => {
|
|
5630
5849
|
if (!contentRef.current || !expandableRef.current) return;
|
|
5631
5850
|
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
5632
5851
|
obs.observe(expandableRef.current);
|
|
@@ -5690,7 +5909,7 @@ function PassKeyStep(props) {
|
|
|
5690
5909
|
setFailedMessage,
|
|
5691
5910
|
setFailedType
|
|
5692
5911
|
} = useAuthStore();
|
|
5693
|
-
const onPasskeyRegister = (0,
|
|
5912
|
+
const onPasskeyRegister = (0, import_react11.useCallback)(async () => {
|
|
5694
5913
|
setPasskeyError("");
|
|
5695
5914
|
setPasskeyStatus("registering passkey...");
|
|
5696
5915
|
setIsLoading(true);
|
|
@@ -5758,7 +5977,7 @@ function PassKeyStep(props) {
|
|
|
5758
5977
|
setIsLoading(false);
|
|
5759
5978
|
}
|
|
5760
5979
|
}, [onAuthSuccess, setPage, callbacks]);
|
|
5761
|
-
const onPasskeyAuth = (0,
|
|
5980
|
+
const onPasskeyAuth = (0, import_react11.useCallback)(async () => {
|
|
5762
5981
|
setPasskeyError("");
|
|
5763
5982
|
setPasskeyStatus("checking available passkeys...");
|
|
5764
5983
|
setIsLoading(true);
|
|
@@ -5880,11 +6099,11 @@ function PassKeyStep(props) {
|
|
|
5880
6099
|
|
|
5881
6100
|
// src/internal/components/AuthMenu/SignInStep/SignInStep.tsx
|
|
5882
6101
|
var import_lucide_react12 = require("lucide-react");
|
|
5883
|
-
var
|
|
6102
|
+
var import_react13 = require("react");
|
|
5884
6103
|
|
|
5885
6104
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
5886
6105
|
init_lumiaPassport();
|
|
5887
|
-
var
|
|
6106
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
5888
6107
|
var import_lucide_react9 = require("lucide-react");
|
|
5889
6108
|
init_projectId();
|
|
5890
6109
|
|
|
@@ -5921,7 +6140,7 @@ function Email() {
|
|
|
5921
6140
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
5922
6141
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
5923
6142
|
const { email, codeSendError, setEmail, setCodeSendError, setExpiresIn, setStep } = useAuthStore();
|
|
5924
|
-
const { mutate: onSendVerificationCode } = (0,
|
|
6143
|
+
const { mutate: onSendVerificationCode } = (0, import_react_query6.useMutation)({
|
|
5925
6144
|
mutationFn: async (mail) => {
|
|
5926
6145
|
const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
|
|
5927
6146
|
if (!isEmailValid) {
|
|
@@ -6019,7 +6238,7 @@ function ErrorAlert(props) {
|
|
|
6019
6238
|
|
|
6020
6239
|
// src/internal/components/AuthMenu/SignInStep/Social.tsx
|
|
6021
6240
|
var import_lucide_react11 = require("lucide-react");
|
|
6022
|
-
var
|
|
6241
|
+
var import_react12 = require("react");
|
|
6023
6242
|
init_assets();
|
|
6024
6243
|
init_lumiaPassport();
|
|
6025
6244
|
init_auth();
|
|
@@ -6112,7 +6331,7 @@ function Social(props) {
|
|
|
6112
6331
|
setPasskeyError,
|
|
6113
6332
|
setPasskeyStatus
|
|
6114
6333
|
} = useAuthStore();
|
|
6115
|
-
const onSocialAuth = (0,
|
|
6334
|
+
const onSocialAuth = (0, import_react12.useCallback)(
|
|
6116
6335
|
async (providerId) => {
|
|
6117
6336
|
const normalizedProviderId = providerId.toLowerCase();
|
|
6118
6337
|
const provider = config?.social?.providers?.find(
|
|
@@ -6517,7 +6736,7 @@ function SignInStep(props) {
|
|
|
6517
6736
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "font-bold text-xl leading-6", children: "Sign In" })
|
|
6518
6737
|
] }),
|
|
6519
6738
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6520
|
-
enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
6739
|
+
enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react13.Fragment, { children: [
|
|
6521
6740
|
idx > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center", children: [
|
|
6522
6741
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
6523
6742
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex-none px-2 text-xs leading-4", children: "Or sign in using" }),
|
|
@@ -6544,19 +6763,19 @@ function SignInStep(props) {
|
|
|
6544
6763
|
}
|
|
6545
6764
|
|
|
6546
6765
|
// src/internal/components/AuthMenu/useAuthMenuHanders.ts
|
|
6547
|
-
var
|
|
6766
|
+
var import_react14 = require("react");
|
|
6548
6767
|
init_auth();
|
|
6549
6768
|
function useAuthMenuHandlers() {
|
|
6550
6769
|
const {
|
|
6551
6770
|
config: { current: config },
|
|
6552
6771
|
callbacks
|
|
6553
6772
|
} = useLumiaPassportConfig();
|
|
6554
|
-
const pendingLoginResponseRef = (0,
|
|
6773
|
+
const pendingLoginResponseRef = (0, import_react14.useRef)(null);
|
|
6555
6774
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
6556
|
-
const [telegramCleanup, setTelegramCleanup] = (0,
|
|
6775
|
+
const [telegramCleanup, setTelegramCleanup] = (0, import_react14.useState)(null);
|
|
6557
6776
|
const { usePaymaster, setError, setStatus, setSession, setAddress, setRecoveryUserId, setHasServerVault } = useLumiaPassportSession();
|
|
6558
6777
|
const { setStep, setVerificationError, setCodeSendError, setFailedMessage } = useAuthStore();
|
|
6559
|
-
const createSessionWithKeyshare = (0,
|
|
6778
|
+
const createSessionWithKeyshare = (0, import_react14.useCallback)(
|
|
6560
6779
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
6561
6780
|
try {
|
|
6562
6781
|
try {
|
|
@@ -6590,7 +6809,7 @@ function useAuthMenuHandlers() {
|
|
|
6590
6809
|
},
|
|
6591
6810
|
[setStatus, callbacks, usePaymaster]
|
|
6592
6811
|
);
|
|
6593
|
-
const onAuthSuccess = (0,
|
|
6812
|
+
const onAuthSuccess = (0, import_react14.useCallback)(async () => {
|
|
6594
6813
|
console.log("[ConnectWalletButton] handleAuthModalSuccess called");
|
|
6595
6814
|
const loginResponse = pendingLoginResponseRef.current;
|
|
6596
6815
|
console.log("[ConnectWalletButton] loginResponse:", loginResponse);
|
|
@@ -6685,7 +6904,7 @@ function useAuthMenuHandlers() {
|
|
|
6685
6904
|
setHasServerVault,
|
|
6686
6905
|
createSessionWithKeyshare
|
|
6687
6906
|
]);
|
|
6688
|
-
const checkDisplayNameRequired = (0,
|
|
6907
|
+
const checkDisplayNameRequired = (0, import_react14.useCallback)(
|
|
6689
6908
|
async (loginResponse) => {
|
|
6690
6909
|
if (!config.features.displayNameNeeded) {
|
|
6691
6910
|
return false;
|
|
@@ -6712,7 +6931,7 @@ function useAuthMenuHandlers() {
|
|
|
6712
6931
|
},
|
|
6713
6932
|
[config.features.displayNameNeeded]
|
|
6714
6933
|
);
|
|
6715
|
-
const goBackToSignIn = (0,
|
|
6934
|
+
const goBackToSignIn = (0, import_react14.useCallback)(() => {
|
|
6716
6935
|
setStep("signin");
|
|
6717
6936
|
setVerificationError("");
|
|
6718
6937
|
setCodeSendError("");
|
|
@@ -6730,11 +6949,11 @@ function useAuthMenuHandlers() {
|
|
|
6730
6949
|
}
|
|
6731
6950
|
|
|
6732
6951
|
// src/internal/components/AuthMenu/useListenIframeAuthEvents.ts
|
|
6733
|
-
var
|
|
6952
|
+
var import_react15 = require("react");
|
|
6734
6953
|
function useListenIframeAuthEvents() {
|
|
6735
6954
|
const setPage = useLayoutDataStore((state) => state.setPage);
|
|
6736
6955
|
const setIsIframeReady = useLumiaPassportSession((state) => state.setIsIframeReady);
|
|
6737
|
-
const handleIframeMessage = (0,
|
|
6956
|
+
const handleIframeMessage = (0, import_react15.useCallback)(
|
|
6738
6957
|
(event) => {
|
|
6739
6958
|
console.log("[AuthMenu] Received iframe message:", event.data);
|
|
6740
6959
|
if (event.data?.type === "LUMIA_PASSPORT_IFRAME_READY") {
|
|
@@ -6752,7 +6971,7 @@ function useListenIframeAuthEvents() {
|
|
|
6752
6971
|
},
|
|
6753
6972
|
[setPage, setIsIframeReady]
|
|
6754
6973
|
);
|
|
6755
|
-
(0,
|
|
6974
|
+
(0, import_react15.useEffect)(() => {
|
|
6756
6975
|
window.addEventListener("message", handleIframeMessage);
|
|
6757
6976
|
return () => window.removeEventListener("message", handleIframeMessage);
|
|
6758
6977
|
}, [handleIframeMessage]);
|
|
@@ -6760,7 +6979,7 @@ function useListenIframeAuthEvents() {
|
|
|
6760
6979
|
|
|
6761
6980
|
// src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
|
|
6762
6981
|
init_lumiaPassport();
|
|
6763
|
-
var
|
|
6982
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
6764
6983
|
var import_lucide_react13 = require("lucide-react");
|
|
6765
6984
|
|
|
6766
6985
|
// src/internal/assets/OtpIcon.tsx
|
|
@@ -6781,21 +7000,21 @@ init_auth();
|
|
|
6781
7000
|
init_projectId();
|
|
6782
7001
|
|
|
6783
7002
|
// src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
|
|
6784
|
-
var
|
|
7003
|
+
var import_react16 = require("react");
|
|
6785
7004
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
6786
7005
|
var VerificationCodeInput = (props) => {
|
|
6787
7006
|
const { onVerifyCode, onResendCode, isLoading, expiresIn, error } = props;
|
|
6788
7007
|
const setVerificationError = useAuthStore((st) => st.setVerificationError);
|
|
6789
|
-
const [timeLeft, setTimeLeft] = (0,
|
|
6790
|
-
(0,
|
|
6791
|
-
(0,
|
|
7008
|
+
const [timeLeft, setTimeLeft] = (0, import_react16.useState)(expiresIn);
|
|
7009
|
+
(0, import_react16.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
|
|
7010
|
+
(0, import_react16.useEffect)(() => {
|
|
6792
7011
|
const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
|
|
6793
7012
|
return () => clearInterval(t);
|
|
6794
7013
|
}, []);
|
|
6795
|
-
const lastSubmittedRef = (0,
|
|
6796
|
-
const inputsRef = (0,
|
|
6797
|
-
const [digits, setDigits] = (0,
|
|
6798
|
-
(0,
|
|
7014
|
+
const lastSubmittedRef = (0, import_react16.useRef)(null);
|
|
7015
|
+
const inputsRef = (0, import_react16.useRef)([]);
|
|
7016
|
+
const [digits, setDigits] = (0, import_react16.useState)(["", "", "", "", "", ""]);
|
|
7017
|
+
(0, import_react16.useEffect)(() => {
|
|
6799
7018
|
const code = digits.join("");
|
|
6800
7019
|
if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
|
|
6801
7020
|
if (lastSubmittedRef.current !== code) {
|
|
@@ -6804,7 +7023,7 @@ var VerificationCodeInput = (props) => {
|
|
|
6804
7023
|
}
|
|
6805
7024
|
}
|
|
6806
7025
|
}, [digits, isLoading, onVerifyCode]);
|
|
6807
|
-
(0,
|
|
7026
|
+
(0, import_react16.useEffect)(() => {
|
|
6808
7027
|
const t = setTimeout(() => {
|
|
6809
7028
|
inputsRef.current[0]?.focus();
|
|
6810
7029
|
}, 0);
|
|
@@ -6929,7 +7148,7 @@ function VerifyStep(props) {
|
|
|
6929
7148
|
setEmail,
|
|
6930
7149
|
setExpiresIn
|
|
6931
7150
|
} = useAuthStore();
|
|
6932
|
-
const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0,
|
|
7151
|
+
const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query7.useMutation)({
|
|
6933
7152
|
mutationFn: async (code) => {
|
|
6934
7153
|
setIsLoading(true);
|
|
6935
7154
|
setVerificationError("");
|
|
@@ -7002,7 +7221,7 @@ function VerifyStep(props) {
|
|
|
7002
7221
|
setIsLoading(false);
|
|
7003
7222
|
}
|
|
7004
7223
|
});
|
|
7005
|
-
const { mutate: onResendCode, isPending: isCodeResending } = (0,
|
|
7224
|
+
const { mutate: onResendCode, isPending: isCodeResending } = (0, import_react_query7.useMutation)({
|
|
7006
7225
|
mutationFn: async () => {
|
|
7007
7226
|
setVerificationError("");
|
|
7008
7227
|
setIsLoading(true);
|
|
@@ -7080,7 +7299,7 @@ var AuthMenu = () => {
|
|
|
7080
7299
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
7081
7300
|
const page = useLayoutDataStore((st) => st.page);
|
|
7082
7301
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
7083
|
-
(0,
|
|
7302
|
+
(0, import_react17.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
|
|
7084
7303
|
const {
|
|
7085
7304
|
step,
|
|
7086
7305
|
setStep,
|
|
@@ -7091,7 +7310,7 @@ var AuthMenu = () => {
|
|
|
7091
7310
|
setFailedMessage,
|
|
7092
7311
|
setCodeSendError
|
|
7093
7312
|
} = useAuthStore();
|
|
7094
|
-
(0,
|
|
7313
|
+
(0, import_react17.useEffect)(() => {
|
|
7095
7314
|
if (page !== "auth" /* AUTH */) {
|
|
7096
7315
|
setStep("signin");
|
|
7097
7316
|
setEmail("");
|
|
@@ -7110,7 +7329,7 @@ var AuthMenu = () => {
|
|
|
7110
7329
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
|
|
7111
7330
|
] });
|
|
7112
7331
|
}
|
|
7113
|
-
const stepContent = (0,
|
|
7332
|
+
const stepContent = (0, import_react17.useMemo)(
|
|
7114
7333
|
() => ({
|
|
7115
7334
|
"failed": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AuthFailedStep, {}),
|
|
7116
7335
|
"display-name": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DisplayNameStep, { onAuthSuccess }),
|
|
@@ -7256,9 +7475,9 @@ function RampnowIcon() {
|
|
|
7256
7475
|
}
|
|
7257
7476
|
|
|
7258
7477
|
// src/internal/components/BuyMenu/binance/Binance.tsx
|
|
7259
|
-
var
|
|
7478
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
7260
7479
|
var import_lucide_react15 = require("lucide-react");
|
|
7261
|
-
var
|
|
7480
|
+
var import_react19 = require("react");
|
|
7262
7481
|
|
|
7263
7482
|
// src/internal/components/BuyMenu/components/PaymentSelector.tsx
|
|
7264
7483
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
@@ -7299,11 +7518,10 @@ var QUERY_KEYS2 = {
|
|
|
7299
7518
|
};
|
|
7300
7519
|
|
|
7301
7520
|
// src/internal/components/BuyMenu/binance/api.ts
|
|
7302
|
-
var
|
|
7303
|
-
var API_DOMAIN = (true ? "" : FALLBACK) || FALLBACK;
|
|
7521
|
+
var API_DOMAIN2 = "https://api.lumiapassport.com/on-ramp";
|
|
7304
7522
|
async function getLumiaNetworkQuery() {
|
|
7305
7523
|
const auth = getBearer();
|
|
7306
|
-
const response = await fetch(`${
|
|
7524
|
+
const response = await fetch(`${API_DOMAIN2}/api/binance/networks`, {
|
|
7307
7525
|
method: "POST",
|
|
7308
7526
|
headers: {
|
|
7309
7527
|
"Content-Type": "application/json",
|
|
@@ -7323,7 +7541,7 @@ async function getLumiaNetworkQuery() {
|
|
|
7323
7541
|
}
|
|
7324
7542
|
async function getPaymentMethodsQuery(payload) {
|
|
7325
7543
|
const auth = getBearer();
|
|
7326
|
-
const response = await fetch(`${
|
|
7544
|
+
const response = await fetch(`${API_DOMAIN2}/api/binance/modes`, {
|
|
7327
7545
|
method: "POST",
|
|
7328
7546
|
headers: {
|
|
7329
7547
|
"Content-Type": "application/json",
|
|
@@ -7342,7 +7560,7 @@ async function getPaymentMethodsQuery(payload) {
|
|
|
7342
7560
|
}
|
|
7343
7561
|
async function getQuoteQuery(payload) {
|
|
7344
7562
|
const auth = getBearer();
|
|
7345
|
-
const response = await fetch(`${
|
|
7563
|
+
const response = await fetch(`${API_DOMAIN2}/api/binance/quote`, {
|
|
7346
7564
|
method: "POST",
|
|
7347
7565
|
headers: {
|
|
7348
7566
|
"Content-Type": "application/json",
|
|
@@ -7358,7 +7576,7 @@ async function getQuoteQuery(payload) {
|
|
|
7358
7576
|
}
|
|
7359
7577
|
async function createPreorderMutation(payload) {
|
|
7360
7578
|
const auth = getBearer();
|
|
7361
|
-
const response = await fetch(`${
|
|
7579
|
+
const response = await fetch(`${API_DOMAIN2}/api/binance/pre-order`, {
|
|
7362
7580
|
method: "POST",
|
|
7363
7581
|
headers: {
|
|
7364
7582
|
"Content-Type": "application/json",
|
|
@@ -7374,7 +7592,7 @@ async function createPreorderMutation(payload) {
|
|
|
7374
7592
|
}
|
|
7375
7593
|
|
|
7376
7594
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
7377
|
-
var
|
|
7595
|
+
var import_react18 = require("react");
|
|
7378
7596
|
|
|
7379
7597
|
// src/internal/components/BuyMenu/binance/utils.ts
|
|
7380
7598
|
function getPayMethodID(pm) {
|
|
@@ -7394,7 +7612,7 @@ function handleErrors(errors) {
|
|
|
7394
7612
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
7395
7613
|
var useQueriesErrorHandler = (errors, stateUpdater) => {
|
|
7396
7614
|
const { error: errorTitle, message: errorMessage } = handleErrors(errors);
|
|
7397
|
-
(0,
|
|
7615
|
+
(0, import_react18.useEffect)(() => {
|
|
7398
7616
|
if (!errorTitle && !errorMessage) return;
|
|
7399
7617
|
console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
|
|
7400
7618
|
stateUpdater(1);
|
|
@@ -7419,12 +7637,12 @@ function Binance(props) {
|
|
|
7419
7637
|
setMinAmount,
|
|
7420
7638
|
setSrcInputAmount
|
|
7421
7639
|
} = control;
|
|
7422
|
-
const qc = (0,
|
|
7640
|
+
const qc = (0, import_react_query8.useQueryClient)();
|
|
7423
7641
|
const {
|
|
7424
7642
|
data: lumiaNetwork,
|
|
7425
7643
|
isLoading: isLumiaNetworkLoading,
|
|
7426
7644
|
error: lumiaNetworkError
|
|
7427
|
-
} = (0,
|
|
7645
|
+
} = (0, import_react_query8.useQuery)({
|
|
7428
7646
|
retry: false,
|
|
7429
7647
|
enabled: !!walletAddress,
|
|
7430
7648
|
queryKey: [QUERY_KEYS2.binanceNetworksQuery, walletAddress],
|
|
@@ -7435,27 +7653,27 @@ function Binance(props) {
|
|
|
7435
7653
|
data: paymentModes = null,
|
|
7436
7654
|
isLoading: isPaymentModesLoading,
|
|
7437
7655
|
error: paymentMethodsError
|
|
7438
|
-
} = (0,
|
|
7656
|
+
} = (0, import_react_query8.useQuery)({
|
|
7439
7657
|
retry: false,
|
|
7440
7658
|
enabled: !!isLumiaAvailable && !!walletAddress,
|
|
7441
7659
|
// && srcQueryAmount > 0,
|
|
7442
7660
|
queryKey: [QUERY_KEYS2.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
|
|
7443
7661
|
queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
|
|
7444
7662
|
});
|
|
7445
|
-
const lastLoadedPaymentModes = (0,
|
|
7446
|
-
(0,
|
|
7663
|
+
const lastLoadedPaymentModes = (0, import_react19.useRef)([]);
|
|
7664
|
+
(0, import_react19.useEffect)(() => {
|
|
7447
7665
|
if (!paymentModes?.length) return;
|
|
7448
7666
|
setPaymentMode(getPayMethodID(paymentModes[0]));
|
|
7449
7667
|
lastLoadedPaymentModes.current = paymentModes;
|
|
7450
7668
|
}, [paymentModes]);
|
|
7451
7669
|
const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
|
|
7452
7670
|
const minimum = Number(selectedPaymentMode?.fiatMinLimit || "0");
|
|
7453
|
-
(0,
|
|
7671
|
+
(0, import_react19.useEffect)(() => setMinAmount(minimum), [minimum]);
|
|
7454
7672
|
const {
|
|
7455
7673
|
data: quoteData = null,
|
|
7456
7674
|
isLoading: isQuoteDataLoading,
|
|
7457
7675
|
error: quoteError
|
|
7458
|
-
} = (0,
|
|
7676
|
+
} = (0, import_react_query8.useQuery)({
|
|
7459
7677
|
retry: false,
|
|
7460
7678
|
enabled: !!walletAddress && srcQueryAmount > 0 && minimum > 0 && srcQueryAmount >= minimum,
|
|
7461
7679
|
queryKey: [QUERY_KEYS2.binanceQuote, walletAddress, selectedPaymentMode, srcQueryAmount],
|
|
@@ -7471,7 +7689,7 @@ function Binance(props) {
|
|
|
7471
7689
|
[lumiaNetworkError, paymentMethodsError, quoteError],
|
|
7472
7690
|
setSrcInputAmount
|
|
7473
7691
|
);
|
|
7474
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0,
|
|
7692
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query8.useMutation)({
|
|
7475
7693
|
mutationFn: async () => {
|
|
7476
7694
|
setRedirecting(true);
|
|
7477
7695
|
const returnUrl = window.location.href.split("?")[0];
|
|
@@ -7495,7 +7713,7 @@ function Binance(props) {
|
|
|
7495
7713
|
setRedirecting(false);
|
|
7496
7714
|
}
|
|
7497
7715
|
});
|
|
7498
|
-
(0,
|
|
7716
|
+
(0, import_react19.useEffect)(() => {
|
|
7499
7717
|
return () => {
|
|
7500
7718
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binanceNetworksQuery] });
|
|
7501
7719
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binancePaymentModes] });
|
|
@@ -7557,24 +7775,24 @@ function Binance(props) {
|
|
|
7557
7775
|
}
|
|
7558
7776
|
|
|
7559
7777
|
// src/internal/components/BuyMenu/rampnow/Rampnow.tsx
|
|
7560
|
-
var
|
|
7778
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
7561
7779
|
var import_lucide_react16 = require("lucide-react");
|
|
7562
|
-
var
|
|
7780
|
+
var import_react20 = require("react");
|
|
7563
7781
|
|
|
7564
7782
|
// src/internal/components/BuyMenu/rampnow/api.ts
|
|
7565
|
-
var
|
|
7566
|
-
var API_DOMAIN2 = (true ? "" : FALLBACK2) || FALLBACK2;
|
|
7783
|
+
var API_DOMAIN3 = "https://api.lumiapassport.com/on-ramp";
|
|
7567
7784
|
async function getRampnowConfigQuery() {
|
|
7568
7785
|
const auth = getBearer();
|
|
7569
|
-
const response = await fetch(`${
|
|
7786
|
+
const response = await fetch(`${API_DOMAIN3}/api/rampnow/cfg`, {
|
|
7570
7787
|
method: "GET",
|
|
7571
7788
|
headers: { ...auth && { Authorization: auth } }
|
|
7572
7789
|
});
|
|
7573
|
-
|
|
7790
|
+
const data = await response.json();
|
|
7791
|
+
return data;
|
|
7574
7792
|
}
|
|
7575
7793
|
async function getRampOrderQuoteQuery(payload) {
|
|
7576
7794
|
const auth = getBearer();
|
|
7577
|
-
const response = await fetch(`${
|
|
7795
|
+
const response = await fetch(`${API_DOMAIN3}/api/rampnow/quote`, {
|
|
7578
7796
|
method: "POST",
|
|
7579
7797
|
headers: {
|
|
7580
7798
|
"Content-Type": "application/json",
|
|
@@ -7623,8 +7841,8 @@ function Rampnow(props) {
|
|
|
7623
7841
|
setSrcInputAmount,
|
|
7624
7842
|
setMinAmount
|
|
7625
7843
|
} = control;
|
|
7626
|
-
const qc = (0,
|
|
7627
|
-
(0,
|
|
7844
|
+
const qc = (0, import_react_query9.useQueryClient)();
|
|
7845
|
+
(0, import_react20.useEffect)(() => {
|
|
7628
7846
|
setMinAmount(MINIMUM_RAMP_AMOUNT);
|
|
7629
7847
|
setPaymentMode(PAYMENT_MODES[0].id);
|
|
7630
7848
|
}, []);
|
|
@@ -7632,7 +7850,7 @@ function Rampnow(props) {
|
|
|
7632
7850
|
data: configData,
|
|
7633
7851
|
isLoading: isConfigLoading,
|
|
7634
7852
|
error: configError
|
|
7635
|
-
} = (0,
|
|
7853
|
+
} = (0, import_react_query9.useQuery)({
|
|
7636
7854
|
retry: false,
|
|
7637
7855
|
enabled: !!walletAddress,
|
|
7638
7856
|
queryKey: [QUERY_KEYS2.getRampNowConfig, walletAddress],
|
|
@@ -7642,7 +7860,7 @@ function Rampnow(props) {
|
|
|
7642
7860
|
data: quoteData,
|
|
7643
7861
|
isLoading: isQuoteDataLoading,
|
|
7644
7862
|
error: quoteError
|
|
7645
|
-
} = (0,
|
|
7863
|
+
} = (0, import_react_query9.useQuery)({
|
|
7646
7864
|
retry: false,
|
|
7647
7865
|
enabled: !!configData && !!walletAddress && !!paymentMode && srcQueryAmount >= MINIMUM_RAMP_AMOUNT,
|
|
7648
7866
|
queryKey: [QUERY_KEYS2.getRampNowQuote, walletAddress, srcQueryAmount, paymentMode],
|
|
@@ -7652,7 +7870,7 @@ function Rampnow(props) {
|
|
|
7652
7870
|
paymentMode
|
|
7653
7871
|
})
|
|
7654
7872
|
});
|
|
7655
|
-
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0,
|
|
7873
|
+
const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query9.useMutation)({
|
|
7656
7874
|
mutationFn: async () => {
|
|
7657
7875
|
if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
|
|
7658
7876
|
throw new Error("RampNow order service is not available");
|
|
@@ -7681,7 +7899,7 @@ function Rampnow(props) {
|
|
|
7681
7899
|
console.error("Create CheckoutOrder failed:", err);
|
|
7682
7900
|
}
|
|
7683
7901
|
});
|
|
7684
|
-
(0,
|
|
7902
|
+
(0, import_react20.useEffect)(() => {
|
|
7685
7903
|
return () => {
|
|
7686
7904
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowConfig] });
|
|
7687
7905
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowQuote] });
|
|
@@ -7763,7 +7981,7 @@ var RAMP_PROVIDERS = {
|
|
|
7763
7981
|
var REDIRECT_TIMEOUT_MS = 1500;
|
|
7764
7982
|
|
|
7765
7983
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
7766
|
-
var
|
|
7984
|
+
var import_react21 = require("react");
|
|
7767
7985
|
|
|
7768
7986
|
// src/internal/utils/debounce.ts
|
|
7769
7987
|
function debounce(func, waitFor) {
|
|
@@ -7777,14 +7995,14 @@ function debounce(func, waitFor) {
|
|
|
7777
7995
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
7778
7996
|
var ON_INPUT_QUERY_DELAY = 2e3;
|
|
7779
7997
|
var useSelectables = () => {
|
|
7780
|
-
const [redirecting, setRedirecting] = (0,
|
|
7781
|
-
const [rampProvider, setrRampProvider] = (0,
|
|
7782
|
-
const [minAmount, setMinAmount] = (0,
|
|
7783
|
-
const inputRef = (0,
|
|
7784
|
-
const [srcQueryAmount, setSrcQueryAmount] = (0,
|
|
7785
|
-
const [srcInputAmount, setSrcInputAmount] = (0,
|
|
7786
|
-
const [paymentMode, setPaymentMode] = (0,
|
|
7787
|
-
const setQueryAmountDebounced = (0,
|
|
7998
|
+
const [redirecting, setRedirecting] = (0, import_react21.useState)(false);
|
|
7999
|
+
const [rampProvider, setrRampProvider] = (0, import_react21.useState)("binance");
|
|
8000
|
+
const [minAmount, setMinAmount] = (0, import_react21.useState)(0);
|
|
8001
|
+
const inputRef = (0, import_react21.useRef)(null);
|
|
8002
|
+
const [srcQueryAmount, setSrcQueryAmount] = (0, import_react21.useState)(0);
|
|
8003
|
+
const [srcInputAmount, setSrcInputAmount] = (0, import_react21.useState)(0);
|
|
8004
|
+
const [paymentMode, setPaymentMode] = (0, import_react21.useState)(null);
|
|
8005
|
+
const setQueryAmountDebounced = (0, import_react21.useCallback)(
|
|
7788
8006
|
debounce((inputAmount) => {
|
|
7789
8007
|
const checkedValue = Math.max(inputAmount, minAmount);
|
|
7790
8008
|
setSrcInputAmount(checkedValue);
|
|
@@ -7792,7 +8010,7 @@ var useSelectables = () => {
|
|
|
7792
8010
|
}, ON_INPUT_QUERY_DELAY),
|
|
7793
8011
|
[minAmount]
|
|
7794
8012
|
);
|
|
7795
|
-
(0,
|
|
8013
|
+
(0, import_react21.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
|
|
7796
8014
|
return {
|
|
7797
8015
|
inputRef,
|
|
7798
8016
|
redirecting,
|
|
@@ -7844,7 +8062,7 @@ function BuyMenu() {
|
|
|
7844
8062
|
|
|
7845
8063
|
// src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
|
|
7846
8064
|
var import_lucide_react19 = require("lucide-react");
|
|
7847
|
-
var
|
|
8065
|
+
var import_react22 = __toESM(require("react"), 1);
|
|
7848
8066
|
init_iframe_manager();
|
|
7849
8067
|
|
|
7850
8068
|
// src/internal/components/ui/checkbox.tsx
|
|
@@ -7879,30 +8097,30 @@ function KeyshareBackupMenu() {
|
|
|
7879
8097
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
7880
8098
|
const userId = session?.mpcUserId || "";
|
|
7881
8099
|
const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
|
|
7882
|
-
(0,
|
|
8100
|
+
(0, import_react22.useEffect)(() => {
|
|
7883
8101
|
if (!userId) setPage("main-menu" /* MAIN_MENU */);
|
|
7884
8102
|
}, [userId, setPage]);
|
|
7885
|
-
const [backupStatus, setBackupStatus] =
|
|
8103
|
+
const [backupStatus, setBackupStatus] = import_react22.default.useState({
|
|
7886
8104
|
server: {},
|
|
7887
8105
|
cloud: {},
|
|
7888
8106
|
local: {}
|
|
7889
8107
|
});
|
|
7890
|
-
const [loading, setLoading] =
|
|
8108
|
+
const [loading, setLoading] = import_react22.default.useState({
|
|
7891
8109
|
server: false,
|
|
7892
8110
|
cloud: false,
|
|
7893
8111
|
local: false
|
|
7894
8112
|
});
|
|
7895
|
-
const [error, setError] =
|
|
7896
|
-
const [success, setSuccess] =
|
|
7897
|
-
const [showPassword, setShowPassword] =
|
|
7898
|
-
const [useCustomPassword, setUseCustomPassword] =
|
|
7899
|
-
const [customPassword, setCustomPassword] =
|
|
7900
|
-
const [cloudProviders, setCloudProviders] =
|
|
8113
|
+
const [error, setError] = import_react22.default.useState(null);
|
|
8114
|
+
const [success, setSuccess] = import_react22.default.useState(null);
|
|
8115
|
+
const [showPassword, setShowPassword] = import_react22.default.useState(false);
|
|
8116
|
+
const [useCustomPassword, setUseCustomPassword] = import_react22.default.useState(false);
|
|
8117
|
+
const [customPassword, setCustomPassword] = import_react22.default.useState("");
|
|
8118
|
+
const [cloudProviders, setCloudProviders] = import_react22.default.useState(
|
|
7901
8119
|
[]
|
|
7902
8120
|
);
|
|
7903
|
-
const [selectedCloudProvider, setSelectedCloudProvider] =
|
|
7904
|
-
const [hasKeyshareData, setHasKeyshareData] =
|
|
7905
|
-
const iframeManager =
|
|
8121
|
+
const [selectedCloudProvider, setSelectedCloudProvider] = import_react22.default.useState(null);
|
|
8122
|
+
const [hasKeyshareData, setHasKeyshareData] = import_react22.default.useState(true);
|
|
8123
|
+
const iframeManager = import_react22.default.useMemo(() => {
|
|
7906
8124
|
try {
|
|
7907
8125
|
return getIframeManager();
|
|
7908
8126
|
} catch (e) {
|
|
@@ -7910,7 +8128,7 @@ function KeyshareBackupMenu() {
|
|
|
7910
8128
|
return null;
|
|
7911
8129
|
}
|
|
7912
8130
|
}, []);
|
|
7913
|
-
(0,
|
|
8131
|
+
(0, import_react22.useEffect)(() => {
|
|
7914
8132
|
const loadCloudProviders = async () => {
|
|
7915
8133
|
try {
|
|
7916
8134
|
const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
|
|
@@ -7930,7 +8148,7 @@ function KeyshareBackupMenu() {
|
|
|
7930
8148
|
};
|
|
7931
8149
|
loadCloudProviders();
|
|
7932
8150
|
}, [selectedCloudProvider]);
|
|
7933
|
-
const refreshStatus =
|
|
8151
|
+
const refreshStatus = import_react22.default.useCallback(async () => {
|
|
7934
8152
|
if (!iframeManager) return;
|
|
7935
8153
|
try {
|
|
7936
8154
|
const status = await iframeManager.getBackupStatus(userId);
|
|
@@ -7939,7 +8157,7 @@ function KeyshareBackupMenu() {
|
|
|
7939
8157
|
console.error("[KeyshareBackup] Failed to get backup status:", error2);
|
|
7940
8158
|
}
|
|
7941
8159
|
}, [iframeManager, userId]);
|
|
7942
|
-
(0,
|
|
8160
|
+
(0, import_react22.useEffect)(() => {
|
|
7943
8161
|
refreshStatus();
|
|
7944
8162
|
}, [refreshStatus]);
|
|
7945
8163
|
const handleBackup = async (method) => {
|
|
@@ -8171,21 +8389,21 @@ function KeyshareBackupMenu() {
|
|
|
8171
8389
|
}
|
|
8172
8390
|
|
|
8173
8391
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8174
|
-
var
|
|
8392
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
8175
8393
|
var import_lucide_react22 = require("lucide-react");
|
|
8176
|
-
var
|
|
8394
|
+
var import_react25 = __toESM(require("react"), 1);
|
|
8177
8395
|
init_vaultClient();
|
|
8178
8396
|
|
|
8179
8397
|
// src/internal/components/KeyshareRestoreMenu/NoBackupFound.tsx
|
|
8180
8398
|
var import_lucide_react20 = require("lucide-react");
|
|
8181
|
-
var
|
|
8399
|
+
var import_react23 = require("react");
|
|
8182
8400
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
8183
8401
|
var ACCOUNT_RECOVERY_TEXT = `This device doesn't have access to your wallet keyshare, and no backup was found in the Vault. To access your wallet: use the original device where you created the account, create a backup from that device first, then try restoring on this device.`;
|
|
8184
8402
|
var ACCOUNT_FILE_RECOVERY_TEXT = `Try uploading a backup file if you have one saved locally, or create a different new account`;
|
|
8185
8403
|
function NoBackupFound(props) {
|
|
8186
8404
|
const { isLoading, restoreFromFile } = props;
|
|
8187
|
-
const [restoreFile, setRestoreFile] = (0,
|
|
8188
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
8405
|
+
const [restoreFile, setRestoreFile] = (0, import_react23.useState)(null);
|
|
8406
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react23.Fragment, { children: [
|
|
8189
8407
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Highlight, { type: "error", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
|
|
8190
8408
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react20.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8191
8409
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
|
|
@@ -8226,7 +8444,7 @@ function NoBackupFound(props) {
|
|
|
8226
8444
|
|
|
8227
8445
|
// src/internal/components/KeyshareRestoreMenu/ServerBackupFound.tsx
|
|
8228
8446
|
var import_lucide_react21 = require("lucide-react");
|
|
8229
|
-
var
|
|
8447
|
+
var import_react24 = require("react");
|
|
8230
8448
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
8231
8449
|
function ServerBackupFound(props) {
|
|
8232
8450
|
const {
|
|
@@ -8242,7 +8460,7 @@ function ServerBackupFound(props) {
|
|
|
8242
8460
|
setRestorePassword,
|
|
8243
8461
|
setUseCustomPassword
|
|
8244
8462
|
} = props;
|
|
8245
|
-
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
8463
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react24.Fragment, { children: [
|
|
8246
8464
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Highlight, { type: "success", className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
8247
8465
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react21.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8248
8466
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full flex-1", children: [
|
|
@@ -8357,17 +8575,17 @@ var KeyshareRestoreMenu = () => {
|
|
|
8357
8575
|
} = useLumiaPassportConfig();
|
|
8358
8576
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
8359
8577
|
const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
|
|
8360
|
-
(0,
|
|
8578
|
+
(0, import_react25.useEffect)(() => setIsDialogForced(true), []);
|
|
8361
8579
|
const { usePaymaster, recoveryUserId, setRecoveryUserId, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
|
|
8362
|
-
const [error, setError] =
|
|
8363
|
-
const [success, setSuccess] =
|
|
8364
|
-
const [showPassword, setShowPassword] =
|
|
8365
|
-
const [useCustomPassword, setUseCustomPassword] =
|
|
8366
|
-
const [restoreFile, setRestoreFile] =
|
|
8367
|
-
const [restorePassword, setRestorePassword] =
|
|
8368
|
-
const [hasServerBackup, setHasServerBackup] =
|
|
8369
|
-
const [checkingBackup, setCheckingBackup] =
|
|
8370
|
-
const createSessionWithKeyshare = (0,
|
|
8580
|
+
const [error, setError] = import_react25.default.useState(null);
|
|
8581
|
+
const [success, setSuccess] = import_react25.default.useState(null);
|
|
8582
|
+
const [showPassword, setShowPassword] = import_react25.default.useState(false);
|
|
8583
|
+
const [useCustomPassword, setUseCustomPassword] = import_react25.default.useState(false);
|
|
8584
|
+
const [restoreFile, setRestoreFile] = import_react25.default.useState(null);
|
|
8585
|
+
const [restorePassword, setRestorePassword] = import_react25.default.useState("");
|
|
8586
|
+
const [hasServerBackup, setHasServerBackup] = import_react25.default.useState(null);
|
|
8587
|
+
const [checkingBackup, setCheckingBackup] = import_react25.default.useState(true);
|
|
8588
|
+
const createSessionWithKeyshare = (0, import_react25.useCallback)(
|
|
8371
8589
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
8372
8590
|
try {
|
|
8373
8591
|
try {
|
|
@@ -8401,7 +8619,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8401
8619
|
},
|
|
8402
8620
|
[setStatus, callbacks, usePaymaster]
|
|
8403
8621
|
);
|
|
8404
|
-
const onRestoreSuccess = (0,
|
|
8622
|
+
const onRestoreSuccess = (0, import_react25.useCallback)(async () => {
|
|
8405
8623
|
const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
8406
8624
|
const verify = await verifyToken2();
|
|
8407
8625
|
const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
|
|
@@ -8466,7 +8684,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8466
8684
|
callbacks,
|
|
8467
8685
|
config.projectId
|
|
8468
8686
|
]);
|
|
8469
|
-
(0,
|
|
8687
|
+
(0, import_react25.useEffect)(() => {
|
|
8470
8688
|
const checkBackupAvailability = async () => {
|
|
8471
8689
|
try {
|
|
8472
8690
|
setCheckingBackup(true);
|
|
@@ -8484,7 +8702,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8484
8702
|
};
|
|
8485
8703
|
checkBackupAvailability();
|
|
8486
8704
|
}, [recoveryUserId]);
|
|
8487
|
-
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0,
|
|
8705
|
+
const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0, import_react_query10.useMutation)({
|
|
8488
8706
|
mutationFn: async () => {
|
|
8489
8707
|
setError(null);
|
|
8490
8708
|
setSuccess(null);
|
|
@@ -8519,7 +8737,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8519
8737
|
setError(errorMsg);
|
|
8520
8738
|
}
|
|
8521
8739
|
});
|
|
8522
|
-
const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0,
|
|
8740
|
+
const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0, import_react_query10.useMutation)({
|
|
8523
8741
|
mutationFn: async () => {
|
|
8524
8742
|
if (!restoreFile) {
|
|
8525
8743
|
throw new Error("Please select a backup file");
|
|
@@ -8553,7 +8771,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8553
8771
|
setError(errorMsg);
|
|
8554
8772
|
}
|
|
8555
8773
|
});
|
|
8556
|
-
const { mutate: disconnect, isPending: isDisconnecting } = (0,
|
|
8774
|
+
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query10.useMutation)({
|
|
8557
8775
|
mutationFn: async () => {
|
|
8558
8776
|
setError(null);
|
|
8559
8777
|
setStatus("disconnecting");
|
|
@@ -8635,14 +8853,14 @@ var KeyshareRestoreMenu = () => {
|
|
|
8635
8853
|
var import_lucide_react23 = require("lucide-react");
|
|
8636
8854
|
|
|
8637
8855
|
// src/internal/components/KYC/useSumsubIframe.ts
|
|
8638
|
-
var
|
|
8856
|
+
var import_react26 = require("react");
|
|
8639
8857
|
|
|
8640
8858
|
// src/internal/components/KYC/api/sumsub.ts
|
|
8641
8859
|
init_httpClient();
|
|
8642
8860
|
|
|
8643
8861
|
// src/config/queryClient.ts
|
|
8644
|
-
var
|
|
8645
|
-
var queryClient = new
|
|
8862
|
+
var import_react_query11 = require("@tanstack/react-query");
|
|
8863
|
+
var queryClient = new import_react_query11.QueryClient({
|
|
8646
8864
|
defaultOptions: {
|
|
8647
8865
|
queries: {
|
|
8648
8866
|
staleTime: 1e3 * 60 * 6,
|
|
@@ -8758,13 +8976,13 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
8758
8976
|
config: { current: config }
|
|
8759
8977
|
} = useLumiaPassportConfig();
|
|
8760
8978
|
const { colorMode } = useLumiaPassportColorMode();
|
|
8761
|
-
const iframeRef = (0,
|
|
8762
|
-
const [isLoading, setIsLoading] = (0,
|
|
8763
|
-
const [error, setError] = (0,
|
|
8764
|
-
const [height, setHeight] = (0,
|
|
8765
|
-
const [status, setStatus] = (0,
|
|
8979
|
+
const iframeRef = (0, import_react26.useRef)(null);
|
|
8980
|
+
const [isLoading, setIsLoading] = (0, import_react26.useState)(true);
|
|
8981
|
+
const [error, setError] = (0, import_react26.useState)(null);
|
|
8982
|
+
const [height, setHeight] = (0, import_react26.useState)(0);
|
|
8983
|
+
const [status, setStatus] = (0, import_react26.useState)("");
|
|
8766
8984
|
const levelName = config.kyc?.options?.levelName;
|
|
8767
|
-
(0,
|
|
8985
|
+
(0, import_react26.useEffect)(() => {
|
|
8768
8986
|
setError(null);
|
|
8769
8987
|
setIsLoading(true);
|
|
8770
8988
|
setStatus("Preparing verification...");
|
|
@@ -8871,7 +9089,7 @@ function KycMenu() {
|
|
|
8871
9089
|
|
|
8872
9090
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
8873
9091
|
var import_lucide_react26 = require("lucide-react");
|
|
8874
|
-
var
|
|
9092
|
+
var import_react27 = require("react");
|
|
8875
9093
|
|
|
8876
9094
|
// src/internal/components/MainMenu/BackupWarning.tsx
|
|
8877
9095
|
var import_framer_motion2 = require("framer-motion");
|
|
@@ -8927,7 +9145,7 @@ function MainMenu() {
|
|
|
8927
9145
|
const address = useLumiaPassportSession((st) => st.address);
|
|
8928
9146
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
8929
9147
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
8930
|
-
(0,
|
|
9148
|
+
(0, import_react27.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
8931
9149
|
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
8932
9150
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "grid grid-cols-4 gap-[var(--l-pass-gap)]", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
8933
9151
|
Button,
|
|
@@ -8951,11 +9169,11 @@ function MainMenu() {
|
|
|
8951
9169
|
// src/internal/components/ManageWalletMenu/ManageWallet.tsx
|
|
8952
9170
|
var import_lodash_es = require("lodash-es");
|
|
8953
9171
|
var import_lucide_react30 = require("lucide-react");
|
|
8954
|
-
var
|
|
9172
|
+
var import_react31 = require("react");
|
|
8955
9173
|
|
|
8956
9174
|
// src/modules/linkedProfiles.ts
|
|
8957
|
-
var
|
|
8958
|
-
var
|
|
9175
|
+
var import_react_query12 = require("@tanstack/react-query");
|
|
9176
|
+
var import_react28 = require("react");
|
|
8959
9177
|
init_auth();
|
|
8960
9178
|
init_common();
|
|
8961
9179
|
init_types();
|
|
@@ -8975,32 +9193,32 @@ async function getLinkProfilesData() {
|
|
|
8975
9193
|
return { profiles: loadedProfiles, avatar };
|
|
8976
9194
|
}
|
|
8977
9195
|
function useLumiaPassportLinkedProfiles() {
|
|
8978
|
-
const qc = (0,
|
|
9196
|
+
const qc = (0, import_react_query12.useQueryClient)();
|
|
8979
9197
|
const address = useLumiaPassportSession((st) => st.address);
|
|
8980
9198
|
const {
|
|
8981
9199
|
data,
|
|
8982
9200
|
isFetching: isLoading,
|
|
8983
9201
|
error
|
|
8984
|
-
} = (0,
|
|
9202
|
+
} = (0, import_react_query12.useQuery)({
|
|
8985
9203
|
retry: false,
|
|
8986
9204
|
enabled: !!address,
|
|
8987
9205
|
queryKey: [LINKED_PROFILES_QUERY_KEY, address],
|
|
8988
9206
|
queryFn: getLinkProfilesData
|
|
8989
9207
|
});
|
|
8990
9208
|
const { profiles = [], avatar = null } = data || {};
|
|
8991
|
-
const refresh = (0,
|
|
9209
|
+
const refresh = (0, import_react28.useCallback)(async () => {
|
|
8992
9210
|
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
|
|
8993
9211
|
}, [qc, address]);
|
|
8994
9212
|
return { profiles, avatar, isLoading, error, refresh };
|
|
8995
9213
|
}
|
|
8996
9214
|
|
|
8997
9215
|
// src/internal/components/ManageWalletMenu/AddProvider.tsx
|
|
8998
|
-
var
|
|
9216
|
+
var import_react_query17 = require("@tanstack/react-query");
|
|
8999
9217
|
init_passkey2();
|
|
9000
9218
|
|
|
9001
9219
|
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9002
9220
|
init_lumiaPassport();
|
|
9003
|
-
var
|
|
9221
|
+
var import_react_query13 = require("@tanstack/react-query");
|
|
9004
9222
|
var import_lucide_react27 = require("lucide-react");
|
|
9005
9223
|
init_projectId();
|
|
9006
9224
|
|
|
@@ -9041,7 +9259,7 @@ function EmailForm() {
|
|
|
9041
9259
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
9042
9260
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9043
9261
|
const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
|
|
9044
|
-
const { mutate: onSendVerificationCode } = (0,
|
|
9262
|
+
const { mutate: onSendVerificationCode } = (0, import_react_query13.useMutation)({
|
|
9045
9263
|
mutationFn: async () => {
|
|
9046
9264
|
if (!email) return;
|
|
9047
9265
|
setIsLoading(true);
|
|
@@ -9118,13 +9336,13 @@ function EmailForm() {
|
|
|
9118
9336
|
}
|
|
9119
9337
|
|
|
9120
9338
|
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
9121
|
-
var
|
|
9339
|
+
var import_react_query14 = require("@tanstack/react-query");
|
|
9122
9340
|
init_common();
|
|
9123
9341
|
var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
|
|
9124
9342
|
function useProvidersList() {
|
|
9125
9343
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9126
9344
|
const page = useLayoutDataStore((st) => st.page);
|
|
9127
|
-
return (0,
|
|
9345
|
+
return (0, import_react_query14.useQuery)({
|
|
9128
9346
|
retry: false,
|
|
9129
9347
|
enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
|
|
9130
9348
|
queryKey: [PROVIDERS_QUERY_KEY, address],
|
|
@@ -9133,11 +9351,11 @@ function useProvidersList() {
|
|
|
9133
9351
|
}
|
|
9134
9352
|
|
|
9135
9353
|
// src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
|
|
9136
|
-
var
|
|
9354
|
+
var import_react_query15 = require("@tanstack/react-query");
|
|
9137
9355
|
init_email();
|
|
9138
9356
|
function useSendVerificationCode() {
|
|
9139
9357
|
const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
|
|
9140
|
-
return (0,
|
|
9358
|
+
return (0, import_react_query15.useMutation)({
|
|
9141
9359
|
mutationFn: async (email) => {
|
|
9142
9360
|
if (!email) {
|
|
9143
9361
|
throw new Error("Email is required");
|
|
@@ -9160,11 +9378,11 @@ function useSendVerificationCode() {
|
|
|
9160
9378
|
}
|
|
9161
9379
|
|
|
9162
9380
|
// src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
|
|
9163
|
-
var
|
|
9381
|
+
var import_react_query16 = require("@tanstack/react-query");
|
|
9164
9382
|
init_email();
|
|
9165
9383
|
function useVerifyCode() {
|
|
9166
9384
|
const { callbacks } = useLumiaPassportConfig();
|
|
9167
|
-
const qc = (0,
|
|
9385
|
+
const qc = (0, import_react_query16.useQueryClient)();
|
|
9168
9386
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9169
9387
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9170
9388
|
const {
|
|
@@ -9178,7 +9396,7 @@ function useVerifyCode() {
|
|
|
9178
9396
|
setVerificationError,
|
|
9179
9397
|
setEmailCodeSentError
|
|
9180
9398
|
} = useManageWalletStore();
|
|
9181
|
-
return (0,
|
|
9399
|
+
return (0, import_react_query16.useMutation)({
|
|
9182
9400
|
mutationFn: async (codeToVerify) => {
|
|
9183
9401
|
const code = codeToVerify ?? emailCode;
|
|
9184
9402
|
if (!code) {
|
|
@@ -9228,7 +9446,7 @@ function normalizePasskeyLinkError(msg) {
|
|
|
9228
9446
|
return msg;
|
|
9229
9447
|
}
|
|
9230
9448
|
function AddProvider() {
|
|
9231
|
-
const qc = (0,
|
|
9449
|
+
const qc = (0, import_react_query17.useQueryClient)();
|
|
9232
9450
|
const { callbacks } = useLumiaPassportConfig();
|
|
9233
9451
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9234
9452
|
const {
|
|
@@ -9388,11 +9606,11 @@ function EmailNotConnectedWarning() {
|
|
|
9388
9606
|
}
|
|
9389
9607
|
|
|
9390
9608
|
// src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
|
|
9391
|
-
var
|
|
9392
|
-
var
|
|
9609
|
+
var import_react_query18 = require("@tanstack/react-query");
|
|
9610
|
+
var import_react29 = __toESM(require("react"), 1);
|
|
9393
9611
|
init_auth();
|
|
9394
9612
|
function useLinkSocial() {
|
|
9395
|
-
const qc = (0,
|
|
9613
|
+
const qc = (0, import_react_query18.useQueryClient)();
|
|
9396
9614
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9397
9615
|
const {
|
|
9398
9616
|
config: { current: config },
|
|
@@ -9400,7 +9618,7 @@ function useLinkSocial() {
|
|
|
9400
9618
|
} = useLumiaPassportConfig();
|
|
9401
9619
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9402
9620
|
const { providerType, linkIsLoading, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
|
|
9403
|
-
const handleLinkSocialProvider =
|
|
9621
|
+
const handleLinkSocialProvider = import_react29.default.useCallback(
|
|
9404
9622
|
async (providerIdRaw) => {
|
|
9405
9623
|
const providerKey = providerIdRaw.toLowerCase();
|
|
9406
9624
|
try {
|
|
@@ -9451,8 +9669,8 @@ function useLinkSocial() {
|
|
|
9451
9669
|
},
|
|
9452
9670
|
[config.social?.providers, callbacks]
|
|
9453
9671
|
);
|
|
9454
|
-
const [socialLinkStarted, setSocialLinkStarted] =
|
|
9455
|
-
(0,
|
|
9672
|
+
const [socialLinkStarted, setSocialLinkStarted] = import_react29.default.useState(false);
|
|
9673
|
+
(0, import_react29.useEffect)(() => {
|
|
9456
9674
|
const key = providerType?.toLowerCase();
|
|
9457
9675
|
if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
|
|
9458
9676
|
if (!linkIsLoading && !socialLinkStarted) {
|
|
@@ -9466,19 +9684,19 @@ function useLinkSocial() {
|
|
|
9466
9684
|
}
|
|
9467
9685
|
|
|
9468
9686
|
// src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
|
|
9469
|
-
var
|
|
9470
|
-
var
|
|
9687
|
+
var import_react_query19 = require("@tanstack/react-query");
|
|
9688
|
+
var import_react30 = require("react");
|
|
9471
9689
|
init_telegram2();
|
|
9472
9690
|
function useLinkTelegram() {
|
|
9473
9691
|
const {
|
|
9474
9692
|
config: { current: config },
|
|
9475
9693
|
callbacks
|
|
9476
9694
|
} = useLumiaPassportConfig();
|
|
9477
|
-
const qc = (0,
|
|
9695
|
+
const qc = (0, import_react_query19.useQueryClient)();
|
|
9478
9696
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9479
9697
|
const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
|
|
9480
9698
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9481
|
-
const handleLinkTelegram = (0,
|
|
9699
|
+
const handleLinkTelegram = (0, import_react30.useCallback)(async () => {
|
|
9482
9700
|
try {
|
|
9483
9701
|
setLinkIsLoading(true);
|
|
9484
9702
|
setLinkError("");
|
|
@@ -9520,14 +9738,14 @@ function useLinkTelegram() {
|
|
|
9520
9738
|
setLinkIsLoading(false);
|
|
9521
9739
|
}
|
|
9522
9740
|
}, [config.social?.providers, callbacks]);
|
|
9523
|
-
const [telegramLinkStarted, setTelegramLinkStarted] = (0,
|
|
9524
|
-
(0,
|
|
9741
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react30.useState)(false);
|
|
9742
|
+
(0, import_react30.useEffect)(() => {
|
|
9525
9743
|
if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
|
|
9526
9744
|
setTelegramLinkStarted(true);
|
|
9527
9745
|
handleLinkTelegram();
|
|
9528
9746
|
}
|
|
9529
9747
|
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
|
|
9530
|
-
(0,
|
|
9748
|
+
(0, import_react30.useEffect)(() => {
|
|
9531
9749
|
if (providerType !== "telegram") {
|
|
9532
9750
|
setTelegramLinkStarted(false);
|
|
9533
9751
|
}
|
|
@@ -9634,7 +9852,7 @@ function ManageWalletMenu() {
|
|
|
9634
9852
|
const configuredProviders = getConfiguredProviders(config);
|
|
9635
9853
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
9636
9854
|
console.log("[MANAGE WALLET MENU] RENDER", providers);
|
|
9637
|
-
const renderProviders = (0,
|
|
9855
|
+
const renderProviders = (0, import_react31.useMemo)(() => {
|
|
9638
9856
|
const usedProviders = (0, import_lodash_es.fromPairs)(providers.map((p) => [p.provider, true]));
|
|
9639
9857
|
const used = [];
|
|
9640
9858
|
const unused = [];
|
|
@@ -9729,19 +9947,19 @@ function ManageWalletMenu() {
|
|
|
9729
9947
|
}
|
|
9730
9948
|
|
|
9731
9949
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
9732
|
-
var
|
|
9950
|
+
var import_react_query20 = require("@tanstack/react-query");
|
|
9733
9951
|
var import_lucide_react31 = require("lucide-react");
|
|
9734
|
-
var
|
|
9952
|
+
var import_react32 = require("react");
|
|
9735
9953
|
init_auth();
|
|
9736
9954
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
9737
9955
|
function UnlinkProviderMenu() {
|
|
9738
|
-
const qc = (0,
|
|
9956
|
+
const qc = (0, import_react_query20.useQueryClient)();
|
|
9739
9957
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9740
9958
|
const { callbacks } = useLumiaPassportConfig();
|
|
9741
9959
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9742
9960
|
const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
|
|
9743
|
-
const [confirmInput, setConfirmInput] = (0,
|
|
9744
|
-
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0,
|
|
9961
|
+
const [confirmInput, setConfirmInput] = (0, import_react32.useState)("");
|
|
9962
|
+
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query20.useMutation)({
|
|
9745
9963
|
mutationFn: async () => {
|
|
9746
9964
|
if (!confirmUnlink) {
|
|
9747
9965
|
throw new Error("No provider to unlink");
|
|
@@ -9813,13 +10031,13 @@ function UnlinkProviderMenu() {
|
|
|
9813
10031
|
}
|
|
9814
10032
|
|
|
9815
10033
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
9816
|
-
var
|
|
10034
|
+
var import_react_query22 = require("@tanstack/react-query");
|
|
9817
10035
|
var import_lucide_react33 = require("lucide-react");
|
|
9818
|
-
var
|
|
10036
|
+
var import_react34 = require("react");
|
|
9819
10037
|
|
|
9820
10038
|
// src/modules/assets.ts
|
|
9821
|
-
var
|
|
9822
|
-
var
|
|
10039
|
+
var import_react33 = __toESM(require("react"), 1);
|
|
10040
|
+
var import_wagmi2 = require("wagmi");
|
|
9823
10041
|
var import_viem4 = require("viem");
|
|
9824
10042
|
init_base();
|
|
9825
10043
|
var COMMON_TOKENS = [
|
|
@@ -9833,7 +10051,7 @@ var COMMON_TOKENS = [
|
|
|
9833
10051
|
// }
|
|
9834
10052
|
];
|
|
9835
10053
|
function useAssets(address) {
|
|
9836
|
-
const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0,
|
|
10054
|
+
const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0, import_wagmi2.useBalance)({
|
|
9837
10055
|
address,
|
|
9838
10056
|
chainId: lumiaBeam.id,
|
|
9839
10057
|
query: {
|
|
@@ -9847,7 +10065,7 @@ function useAssets(address) {
|
|
|
9847
10065
|
args: [address],
|
|
9848
10066
|
chainId: lumiaBeam.id
|
|
9849
10067
|
}));
|
|
9850
|
-
const readContractsResult = (0,
|
|
10068
|
+
const readContractsResult = (0, import_wagmi2.useReadContracts)({
|
|
9851
10069
|
contracts: tokenContracts,
|
|
9852
10070
|
query: {
|
|
9853
10071
|
enabled: !!address && COMMON_TOKENS.length > 0
|
|
@@ -9928,7 +10146,7 @@ function useAssets(address) {
|
|
|
9928
10146
|
};
|
|
9929
10147
|
}
|
|
9930
10148
|
function useTokenInfo(tokenAddress) {
|
|
9931
|
-
const readContractsResult = (0,
|
|
10149
|
+
const readContractsResult = (0, import_wagmi2.useReadContracts)({
|
|
9932
10150
|
contracts: [
|
|
9933
10151
|
{ address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
|
|
9934
10152
|
{ address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
|
|
@@ -9954,7 +10172,7 @@ function useTokenInfo(tokenAddress) {
|
|
|
9954
10172
|
return { isLoading: false, tokenInfo: null };
|
|
9955
10173
|
}
|
|
9956
10174
|
function useTokenBalance(tokenAddress, userAddress) {
|
|
9957
|
-
const { data: balance, isLoading, refetch } = (0,
|
|
10175
|
+
const { data: balance, isLoading, refetch } = (0, import_wagmi2.useReadContract)({
|
|
9958
10176
|
address: tokenAddress,
|
|
9959
10177
|
abi: import_viem4.erc20Abi,
|
|
9960
10178
|
functionName: "balanceOf",
|
|
@@ -9965,7 +10183,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
9965
10183
|
}
|
|
9966
10184
|
});
|
|
9967
10185
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
9968
|
-
const formattedBalance =
|
|
10186
|
+
const formattedBalance = import_react33.default.useMemo(() => {
|
|
9969
10187
|
if (!balance || !tokenInfo) return "0";
|
|
9970
10188
|
return (0, import_viem4.formatUnits)(balance, tokenInfo.decimals);
|
|
9971
10189
|
}, [balance, tokenInfo]);
|
|
@@ -9979,7 +10197,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
9979
10197
|
}
|
|
9980
10198
|
|
|
9981
10199
|
// src/internal/components/PortfolioMenu/PortfolioItem.tsx
|
|
9982
|
-
var
|
|
10200
|
+
var import_react_query21 = require("@tanstack/react-query");
|
|
9983
10201
|
var import_lucide_react32 = require("lucide-react");
|
|
9984
10202
|
init_base();
|
|
9985
10203
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
@@ -10011,10 +10229,10 @@ var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
|
|
|
10011
10229
|
function PortfolioItem(props) {
|
|
10012
10230
|
const { address, asset, isProjectAsset } = props;
|
|
10013
10231
|
const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
|
|
10014
|
-
const qc = (0,
|
|
10232
|
+
const qc = (0, import_react_query21.useQueryClient)();
|
|
10015
10233
|
const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
|
|
10016
10234
|
const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
|
|
10017
|
-
const { data: assetRate, isLoading: isRateLoading } = (0,
|
|
10235
|
+
const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query21.useQuery)({
|
|
10018
10236
|
retry: false,
|
|
10019
10237
|
staleTime: 4 * 60 * 1e3,
|
|
10020
10238
|
enabled: !!address && !!asset.symbol && !isProjectAsset,
|
|
@@ -10072,17 +10290,17 @@ function PortfolioItem(props) {
|
|
|
10072
10290
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
10073
10291
|
function PortfolioMenu() {
|
|
10074
10292
|
const { assets: childAppAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
|
|
10075
|
-
const qc = (0,
|
|
10293
|
+
const qc = (0, import_react_query22.useQueryClient)();
|
|
10076
10294
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10077
|
-
const assetsContainerListRef = (0,
|
|
10078
|
-
const assetsListRef = (0,
|
|
10295
|
+
const assetsContainerListRef = (0, import_react34.useRef)(null);
|
|
10296
|
+
const assetsListRef = (0, import_react34.useRef)(null);
|
|
10079
10297
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10080
10298
|
const { assets, refreshBalances, isLoading } = useAssets(address);
|
|
10081
|
-
const refreshAllAssetsBalances = (0,
|
|
10299
|
+
const refreshAllAssetsBalances = (0, import_react34.useCallback)(() => {
|
|
10082
10300
|
Promise.all(childAppAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10083
10301
|
refreshBalances();
|
|
10084
10302
|
}, [qc, childAppAssets, refreshBalances]);
|
|
10085
|
-
(0,
|
|
10303
|
+
(0, import_react34.useEffect)(() => {
|
|
10086
10304
|
if (!assetsContainerListRef.current || !assetsListRef.current) return;
|
|
10087
10305
|
if (assetsContainerListRef.current) {
|
|
10088
10306
|
assetsContainerListRef.current.style.setProperty(
|
|
@@ -10155,7 +10373,7 @@ function PortfolioMenu() {
|
|
|
10155
10373
|
|
|
10156
10374
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10157
10375
|
var import_lucide_react34 = require("lucide-react");
|
|
10158
|
-
var
|
|
10376
|
+
var import_react35 = require("react");
|
|
10159
10377
|
init_auth();
|
|
10160
10378
|
init_keyshare();
|
|
10161
10379
|
init_vaultClient();
|
|
@@ -10167,18 +10385,18 @@ function SecurityMenu() {
|
|
|
10167
10385
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
10168
10386
|
const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
10169
10387
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10170
|
-
const [isRefreshing, setIsRefreshing] = (0,
|
|
10171
|
-
const [localInfo, setLocalInfo] = (0,
|
|
10172
|
-
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0,
|
|
10173
|
-
const [recoveryBrowser, setRecoveryBrowser] = (0,
|
|
10174
|
-
const [recoveryUa, setRecoveryUa] = (0,
|
|
10175
|
-
const [recoveryDeviceId, setRecoveryDeviceId] = (0,
|
|
10176
|
-
const [recoveryDeviceName, setRecoveryDeviceName] = (0,
|
|
10177
|
-
const [recoveryCountry, setRecoveryCountry] = (0,
|
|
10178
|
-
const [hasServerBackup, setHasServerBackup] = (0,
|
|
10179
|
-
const [trustedApps, setTrustedApps] = (0,
|
|
10180
|
-
const [appToRemove, setAppToRemove] = (0,
|
|
10181
|
-
const fetchRecovery = (0,
|
|
10388
|
+
const [isRefreshing, setIsRefreshing] = (0, import_react35.useState)(false);
|
|
10389
|
+
const [localInfo, setLocalInfo] = (0, import_react35.useState)(null);
|
|
10390
|
+
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react35.useState)(null);
|
|
10391
|
+
const [recoveryBrowser, setRecoveryBrowser] = (0, import_react35.useState)(null);
|
|
10392
|
+
const [recoveryUa, setRecoveryUa] = (0, import_react35.useState)(null);
|
|
10393
|
+
const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react35.useState)(null);
|
|
10394
|
+
const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react35.useState)(null);
|
|
10395
|
+
const [recoveryCountry, setRecoveryCountry] = (0, import_react35.useState)(null);
|
|
10396
|
+
const [hasServerBackup, setHasServerBackup] = (0, import_react35.useState)(false);
|
|
10397
|
+
const [trustedApps, setTrustedApps] = (0, import_react35.useState)([]);
|
|
10398
|
+
const [appToRemove, setAppToRemove] = (0, import_react35.useState)(null);
|
|
10399
|
+
const fetchRecovery = (0, import_react35.useCallback)(async () => {
|
|
10182
10400
|
if (!userId) return;
|
|
10183
10401
|
try {
|
|
10184
10402
|
setIsRefreshing(true);
|
|
@@ -10211,7 +10429,7 @@ function SecurityMenu() {
|
|
|
10211
10429
|
setIsRefreshing(false);
|
|
10212
10430
|
}
|
|
10213
10431
|
}, [userId]);
|
|
10214
|
-
(0,
|
|
10432
|
+
(0, import_react35.useEffect)(() => {
|
|
10215
10433
|
if (open) fetchRecovery();
|
|
10216
10434
|
}, [open, fetchRecovery]);
|
|
10217
10435
|
const parseOS = (ua) => {
|
|
@@ -10403,21 +10621,21 @@ function SecurityMenu() {
|
|
|
10403
10621
|
|
|
10404
10622
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
10405
10623
|
var import_lucide_react35 = require("lucide-react");
|
|
10406
|
-
var
|
|
10624
|
+
var import_react37 = require("react");
|
|
10407
10625
|
var import_viem6 = require("viem");
|
|
10408
|
-
var
|
|
10626
|
+
var import_wagmi3 = require("wagmi");
|
|
10409
10627
|
|
|
10410
10628
|
// src/hooks/useSendTransaction.ts
|
|
10411
|
-
var
|
|
10629
|
+
var import_react36 = require("react");
|
|
10412
10630
|
var import_viem5 = require("viem");
|
|
10413
10631
|
init_account();
|
|
10414
10632
|
function useSendTransaction() {
|
|
10415
10633
|
const session = useLumiaPassportSession((st) => st.session);
|
|
10416
10634
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10417
|
-
const [isLoading, setIsLoading] = (0,
|
|
10418
|
-
const [error, setError] = (0,
|
|
10419
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
10420
|
-
const sendTransaction = (0,
|
|
10635
|
+
const [isLoading, setIsLoading] = (0, import_react36.useState)(false);
|
|
10636
|
+
const [error, setError] = (0, import_react36.useState)(null);
|
|
10637
|
+
const [userOpHash, setUserOpHash] = (0, import_react36.useState)(null);
|
|
10638
|
+
const sendTransaction = (0, import_react36.useCallback)(
|
|
10421
10639
|
async (params) => {
|
|
10422
10640
|
if (!session || !address) {
|
|
10423
10641
|
setError("No active session");
|
|
@@ -10457,7 +10675,7 @@ function useSendTransaction() {
|
|
|
10457
10675
|
},
|
|
10458
10676
|
[session, address]
|
|
10459
10677
|
);
|
|
10460
|
-
const reset = (0,
|
|
10678
|
+
const reset = (0, import_react36.useCallback)(() => {
|
|
10461
10679
|
setError(null);
|
|
10462
10680
|
setUserOpHash(null);
|
|
10463
10681
|
setIsLoading(false);
|
|
@@ -10481,17 +10699,17 @@ function SendLumiaMenu() {
|
|
|
10481
10699
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10482
10700
|
const { assets } = useAssets(address);
|
|
10483
10701
|
const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
|
|
10484
|
-
const { refetch: refetchBalance } = (0,
|
|
10702
|
+
const { refetch: refetchBalance } = (0, import_wagmi3.useBalance)({
|
|
10485
10703
|
address,
|
|
10486
10704
|
chainId: lumiaBeam.id
|
|
10487
10705
|
});
|
|
10488
|
-
const [recipient, setRecipient] = (0,
|
|
10489
|
-
const [amount, setAmount] = (0,
|
|
10490
|
-
const [txStep, setTxStep] = (0,
|
|
10491
|
-
const [validationError, setValidationError] = (0,
|
|
10706
|
+
const [recipient, setRecipient] = (0, import_react37.useState)("");
|
|
10707
|
+
const [amount, setAmount] = (0, import_react37.useState)("");
|
|
10708
|
+
const [txStep, setTxStep] = (0, import_react37.useState)("input");
|
|
10709
|
+
const [validationError, setValidationError] = (0, import_react37.useState)(null);
|
|
10492
10710
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
10493
10711
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
10494
|
-
(0,
|
|
10712
|
+
(0, import_react37.useEffect)(() => {
|
|
10495
10713
|
if (open) {
|
|
10496
10714
|
setTxStep("input");
|
|
10497
10715
|
setValidationError(null);
|
|
@@ -10655,7 +10873,7 @@ function SendLumiaMenu() {
|
|
|
10655
10873
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
10656
10874
|
var import_lucide_react36 = require("lucide-react");
|
|
10657
10875
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
10658
|
-
var
|
|
10876
|
+
var import_react38 = require("react");
|
|
10659
10877
|
init_clients();
|
|
10660
10878
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
10661
10879
|
function ReceiveLumiaMenu() {
|
|
@@ -10663,9 +10881,9 @@ function ReceiveLumiaMenu() {
|
|
|
10663
10881
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10664
10882
|
const open = page === "receive";
|
|
10665
10883
|
const { address } = useLumiaPassportSession();
|
|
10666
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
10667
|
-
const [copied, setCopied] = (0,
|
|
10668
|
-
(0,
|
|
10884
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react38.useState)("");
|
|
10885
|
+
const [copied, setCopied] = (0, import_react38.useState)(false);
|
|
10886
|
+
(0, import_react38.useEffect)(() => {
|
|
10669
10887
|
if (open && address) {
|
|
10670
10888
|
import_qrcode.default.toDataURL(address, {
|
|
10671
10889
|
width: 200,
|
|
@@ -10714,7 +10932,7 @@ function ReceiveLumiaMenu() {
|
|
|
10714
10932
|
|
|
10715
10933
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
10716
10934
|
var import_lucide_react38 = require("lucide-react");
|
|
10717
|
-
var
|
|
10935
|
+
var import_react39 = require("react");
|
|
10718
10936
|
|
|
10719
10937
|
// src/internal/components/SettingsMenu/constants.ts
|
|
10720
10938
|
var import_lucide_react37 = require("lucide-react");
|
|
@@ -10748,7 +10966,7 @@ function SettingsMenu() {
|
|
|
10748
10966
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10749
10967
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
10750
10968
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
10751
|
-
(0,
|
|
10969
|
+
(0, import_react39.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
10752
10970
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
10753
10971
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
10754
10972
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
@@ -10806,9 +11024,9 @@ function TermsOfService() {
|
|
|
10806
11024
|
}
|
|
10807
11025
|
|
|
10808
11026
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
10809
|
-
var
|
|
11027
|
+
var import_react_query23 = require("@tanstack/react-query");
|
|
10810
11028
|
var import_lucide_react41 = require("lucide-react");
|
|
10811
|
-
var
|
|
11029
|
+
var import_react40 = require("react");
|
|
10812
11030
|
|
|
10813
11031
|
// src/internal/components/TransactionsMenu/api.ts
|
|
10814
11032
|
init_base();
|
|
@@ -11284,30 +11502,30 @@ function TransactionsGroup(props) {
|
|
|
11284
11502
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11285
11503
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
11286
11504
|
function TransactionsMenu() {
|
|
11287
|
-
const qc = (0,
|
|
11505
|
+
const qc = (0, import_react_query23.useQueryClient)();
|
|
11288
11506
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11289
11507
|
const page = useLayoutDataStore((st) => st.page);
|
|
11290
11508
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11291
|
-
const txContainerListRef = (0,
|
|
11292
|
-
const txListRef = (0,
|
|
11293
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
11509
|
+
const txContainerListRef = (0, import_react40.useRef)(null);
|
|
11510
|
+
const txListRef = (0, import_react40.useRef)(null);
|
|
11511
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react40.useState)({});
|
|
11294
11512
|
const {
|
|
11295
11513
|
data: txHistoryGroups = [],
|
|
11296
11514
|
isLoading: isTxHistoryLoading,
|
|
11297
11515
|
isFetching: isTxHistoryFetching,
|
|
11298
11516
|
error: txHistoryError
|
|
11299
|
-
} = (0,
|
|
11517
|
+
} = (0, import_react_query23.useQuery)({
|
|
11300
11518
|
retry: false,
|
|
11301
11519
|
enabled: !!address && page === "transactions",
|
|
11302
11520
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
11303
11521
|
queryFn: () => getTransactionsListQuery(address)
|
|
11304
11522
|
});
|
|
11305
|
-
const refreshTxHistory = (0,
|
|
11523
|
+
const refreshTxHistory = (0, import_react40.useCallback)(
|
|
11306
11524
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
11307
11525
|
[qc, address]
|
|
11308
11526
|
);
|
|
11309
11527
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
11310
|
-
(0,
|
|
11528
|
+
(0, import_react40.useEffect)(() => {
|
|
11311
11529
|
if (!txContainerListRef.current || !txListRef.current) return;
|
|
11312
11530
|
if (txContainerListRef.current) {
|
|
11313
11531
|
txContainerListRef.current.style.setProperty(
|
|
@@ -11475,7 +11693,7 @@ function usePageMapper() {
|
|
|
11475
11693
|
setIsDialogOpen,
|
|
11476
11694
|
setIsDialogClosing
|
|
11477
11695
|
} = useLayoutStore();
|
|
11478
|
-
const closeDialog = (0,
|
|
11696
|
+
const closeDialog = (0, import_react41.useCallback)(() => {
|
|
11479
11697
|
setIsDialogClosing(true);
|
|
11480
11698
|
setTimeout(() => {
|
|
11481
11699
|
setDialogContent(null);
|
|
@@ -11486,7 +11704,7 @@ function usePageMapper() {
|
|
|
11486
11704
|
setIsDialogOpen(false);
|
|
11487
11705
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
11488
11706
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
11489
|
-
const openDialog = (0,
|
|
11707
|
+
const openDialog = (0, import_react41.useCallback)(
|
|
11490
11708
|
(pageItem) => {
|
|
11491
11709
|
const PageContentComponent = pageItem.component;
|
|
11492
11710
|
setDialogTitle(pageItem.title);
|
|
@@ -11496,7 +11714,7 @@ function usePageMapper() {
|
|
|
11496
11714
|
},
|
|
11497
11715
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
11498
11716
|
);
|
|
11499
|
-
(0,
|
|
11717
|
+
(0, import_react41.useEffect)(() => {
|
|
11500
11718
|
if (page === null) return closeDialog();
|
|
11501
11719
|
const pageItem = protectedRoutes[page];
|
|
11502
11720
|
if (!pageItem) {
|
|
@@ -11509,7 +11727,7 @@ function usePageMapper() {
|
|
|
11509
11727
|
}
|
|
11510
11728
|
|
|
11511
11729
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
11512
|
-
var
|
|
11730
|
+
var import_react42 = require("react");
|
|
11513
11731
|
init_auth();
|
|
11514
11732
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
11515
11733
|
id: "email-not-connected",
|
|
@@ -11526,13 +11744,13 @@ function useSettingsNotifications() {
|
|
|
11526
11744
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
11527
11745
|
const providers = import_auth3.jwtTokenManager.getProviders();
|
|
11528
11746
|
const hasEmail = providers.includes("email");
|
|
11529
|
-
(0,
|
|
11747
|
+
(0, import_react42.useEffect)(() => {
|
|
11530
11748
|
setSettingsNotifications({
|
|
11531
11749
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
11532
11750
|
status: hasServerVault ? "resolved" : "active"
|
|
11533
11751
|
});
|
|
11534
11752
|
}, [hasServerVault, setSettingsNotifications]);
|
|
11535
|
-
(0,
|
|
11753
|
+
(0, import_react42.useEffect)(() => {
|
|
11536
11754
|
setSettingsNotifications({
|
|
11537
11755
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
11538
11756
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -11541,7 +11759,7 @@ function useSettingsNotifications() {
|
|
|
11541
11759
|
}
|
|
11542
11760
|
|
|
11543
11761
|
// src/internal/hooks/useWalletStatus.ts
|
|
11544
|
-
var
|
|
11762
|
+
var import_react43 = require("react");
|
|
11545
11763
|
init_auth();
|
|
11546
11764
|
function useWalletStatus() {
|
|
11547
11765
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -11551,7 +11769,7 @@ function useWalletStatus() {
|
|
|
11551
11769
|
config: { current: config },
|
|
11552
11770
|
callbacks
|
|
11553
11771
|
} = useLumiaPassportConfig();
|
|
11554
|
-
(0,
|
|
11772
|
+
(0, import_react43.useEffect)(() => {
|
|
11555
11773
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
11556
11774
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
11557
11775
|
const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
|
|
@@ -11582,7 +11800,7 @@ function LumiaPassportDialog() {
|
|
|
11582
11800
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
11583
11801
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11584
11802
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
11585
|
-
(0,
|
|
11803
|
+
(0, import_react44.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
11586
11804
|
usePageMapper();
|
|
11587
11805
|
useAutoConnect();
|
|
11588
11806
|
useCheckVaultStatus();
|
|
@@ -11619,225 +11837,6 @@ function LumiaPassportDialog() {
|
|
|
11619
11837
|
);
|
|
11620
11838
|
}
|
|
11621
11839
|
|
|
11622
|
-
// src/internal/components/LumiaPriceSSE.tsx
|
|
11623
|
-
var import_react_query23 = require("@tanstack/react-query");
|
|
11624
|
-
var import_react44 = require("react");
|
|
11625
|
-
var import_wagmi3 = require("wagmi");
|
|
11626
|
-
init_base();
|
|
11627
|
-
|
|
11628
|
-
// src/internal/hooks/useLumiaPriceSSE.ts
|
|
11629
|
-
var import_react_query22 = require("@tanstack/react-query");
|
|
11630
|
-
var import_react43 = require("react");
|
|
11631
|
-
|
|
11632
|
-
// src/internal/lib/LumiaPriceSSEService.ts
|
|
11633
|
-
var FALLBACK3 = "https://fallback.lumia.passport.io";
|
|
11634
|
-
var API_DOMAIN3 = (true ? "" : FALLBACK3) || FALLBACK3;
|
|
11635
|
-
var LumiaPriceSSEService = class {
|
|
11636
|
-
// private readonly baseUrl: string = API_DOMAIN
|
|
11637
|
-
constructor() {
|
|
11638
|
-
this.eventSource = null;
|
|
11639
|
-
this.listeners = /* @__PURE__ */ new Set();
|
|
11640
|
-
this.currentPrice = null;
|
|
11641
|
-
this.isConnected = false;
|
|
11642
|
-
this.reconnectTimeout = null;
|
|
11643
|
-
}
|
|
11644
|
-
connect() {
|
|
11645
|
-
return new Promise((resolve, reject) => {
|
|
11646
|
-
console.log("[LumiaPriceSSEService]: Connecting to LUMIA Price SSE...");
|
|
11647
|
-
if (this.isConnected) {
|
|
11648
|
-
resolve();
|
|
11649
|
-
return;
|
|
11650
|
-
}
|
|
11651
|
-
try {
|
|
11652
|
-
this.eventSource = new EventSource(`${API_DOMAIN3}/api/lumia/sse`);
|
|
11653
|
-
this.eventSource.onopen = () => {
|
|
11654
|
-
console.log("[LumiaPriceSSEService]: LUMIA Price SSE connected");
|
|
11655
|
-
this.isConnected = true;
|
|
11656
|
-
this.clearReconnectTimeout();
|
|
11657
|
-
resolve();
|
|
11658
|
-
};
|
|
11659
|
-
this.eventSource.onmessage = () => {
|
|
11660
|
-
};
|
|
11661
|
-
this.eventSource.addEventListener("rate", (event) => {
|
|
11662
|
-
try {
|
|
11663
|
-
const data = JSON.parse(event.data);
|
|
11664
|
-
if (data.price !== void 0 && data.symbol === "LUMIAUSDT") {
|
|
11665
|
-
this.currentPrice = typeof data.price === "number" ? data.price : parseFloat(data.price);
|
|
11666
|
-
if (this.currentPrice !== null) {
|
|
11667
|
-
const update = {
|
|
11668
|
-
symbol: data.symbol,
|
|
11669
|
-
price: this.currentPrice,
|
|
11670
|
-
ts: data.ts || Date.now()
|
|
11671
|
-
};
|
|
11672
|
-
this.listeners.forEach((listener) => listener(update));
|
|
11673
|
-
}
|
|
11674
|
-
}
|
|
11675
|
-
} catch (error) {
|
|
11676
|
-
console.error("Error parsing price event:", error, event.data);
|
|
11677
|
-
}
|
|
11678
|
-
});
|
|
11679
|
-
this.eventSource.addEventListener("ping", () => {
|
|
11680
|
-
});
|
|
11681
|
-
this.eventSource.onerror = (error) => {
|
|
11682
|
-
console.error("LUMIA Price SSE error:", error);
|
|
11683
|
-
this.isConnected = false;
|
|
11684
|
-
if (this.eventSource?.readyState === EventSource.CLOSED) {
|
|
11685
|
-
console.log("SSE connection closed, attempting to reconnect...");
|
|
11686
|
-
this.scheduleReconnect();
|
|
11687
|
-
reject(error);
|
|
11688
|
-
}
|
|
11689
|
-
};
|
|
11690
|
-
setTimeout(() => {
|
|
11691
|
-
if (!this.isConnected) {
|
|
11692
|
-
reject(new Error("SSE connection timeout"));
|
|
11693
|
-
}
|
|
11694
|
-
}, 1e4);
|
|
11695
|
-
} catch (error) {
|
|
11696
|
-
reject(error);
|
|
11697
|
-
}
|
|
11698
|
-
});
|
|
11699
|
-
}
|
|
11700
|
-
disconnect() {
|
|
11701
|
-
this.clearReconnectTimeout();
|
|
11702
|
-
if (this.eventSource) {
|
|
11703
|
-
this.eventSource.close();
|
|
11704
|
-
this.eventSource = null;
|
|
11705
|
-
}
|
|
11706
|
-
this.isConnected = false;
|
|
11707
|
-
this.currentPrice = null;
|
|
11708
|
-
console.log("[LumiaPriceSSEService]: LUMIA Price SSE disconnected");
|
|
11709
|
-
}
|
|
11710
|
-
addListener(listener) {
|
|
11711
|
-
this.listeners.add(listener);
|
|
11712
|
-
}
|
|
11713
|
-
removeListener(listener) {
|
|
11714
|
-
this.listeners.delete(listener);
|
|
11715
|
-
}
|
|
11716
|
-
clearListeners() {
|
|
11717
|
-
this.listeners.clear();
|
|
11718
|
-
}
|
|
11719
|
-
getCurrentPrice() {
|
|
11720
|
-
return this.currentPrice;
|
|
11721
|
-
}
|
|
11722
|
-
getConnectionStatus() {
|
|
11723
|
-
return this.isConnected;
|
|
11724
|
-
}
|
|
11725
|
-
scheduleReconnect() {
|
|
11726
|
-
this.clearReconnectTimeout();
|
|
11727
|
-
this.reconnectTimeout = window.setTimeout(() => {
|
|
11728
|
-
console.log("Attempting to reconnect to BTC Price SSE...");
|
|
11729
|
-
this.connect().catch((error) => {
|
|
11730
|
-
console.error("Reconnection failed:", error);
|
|
11731
|
-
this.scheduleReconnect();
|
|
11732
|
-
});
|
|
11733
|
-
}, 5e3);
|
|
11734
|
-
}
|
|
11735
|
-
clearReconnectTimeout() {
|
|
11736
|
-
if (this.reconnectTimeout) {
|
|
11737
|
-
clearTimeout(this.reconnectTimeout);
|
|
11738
|
-
this.reconnectTimeout = null;
|
|
11739
|
-
}
|
|
11740
|
-
}
|
|
11741
|
-
};
|
|
11742
|
-
var lumiaPriceSSE = new LumiaPriceSSEService();
|
|
11743
|
-
async function sseConnectMutation() {
|
|
11744
|
-
try {
|
|
11745
|
-
await lumiaPriceSSE.connect();
|
|
11746
|
-
console.info("[LUMIA SSE] price feed connected");
|
|
11747
|
-
return { ok: true };
|
|
11748
|
-
} catch (error) {
|
|
11749
|
-
console.error("[LUMIA SSE] Error connecting to SSE:", error);
|
|
11750
|
-
throw new Error("[LUMIA SSE] Error connecting to SSE");
|
|
11751
|
-
}
|
|
11752
|
-
}
|
|
11753
|
-
|
|
11754
|
-
// src/internal/hooks/useLumiaPriceSSE.ts
|
|
11755
|
-
function useLumiaPriceSSE(enabled, updateCurrentPrice) {
|
|
11756
|
-
const { mutate: connectSSE } = (0, import_react_query22.useMutation)({
|
|
11757
|
-
mutationFn: sseConnectMutation,
|
|
11758
|
-
onSuccess: () => {
|
|
11759
|
-
lumiaPriceSSE.addListener(updateCurrentPrice);
|
|
11760
|
-
},
|
|
11761
|
-
onError: (err) => {
|
|
11762
|
-
console.error("Lumia Price SSE connection error:", err);
|
|
11763
|
-
}
|
|
11764
|
-
});
|
|
11765
|
-
(0, import_react43.useEffect)(() => {
|
|
11766
|
-
const isConnected = lumiaPriceSSE.getConnectionStatus();
|
|
11767
|
-
console.log("[LUMIA PRICE SSE MANAGER] SSE status:", { enabled, isConnected });
|
|
11768
|
-
if (!enabled) {
|
|
11769
|
-
lumiaPriceSSE.clearListeners();
|
|
11770
|
-
lumiaPriceSSE.disconnect();
|
|
11771
|
-
return;
|
|
11772
|
-
}
|
|
11773
|
-
return () => {
|
|
11774
|
-
lumiaPriceSSE.clearListeners();
|
|
11775
|
-
lumiaPriceSSE.disconnect();
|
|
11776
|
-
};
|
|
11777
|
-
}, [enabled, connectSSE]);
|
|
11778
|
-
}
|
|
11779
|
-
|
|
11780
|
-
// src/internal/components/LumiaPriceSSE.tsx
|
|
11781
|
-
function LumiaPriceSSE() {
|
|
11782
|
-
const config = useLumiaPassportConfig().config.current;
|
|
11783
|
-
const address = useLumiaPassportSession((st) => st.address);
|
|
11784
|
-
const { cryptoRate, setCryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol } = useLayoutDataStore();
|
|
11785
|
-
const isDefaultBalanceFeedEnabled = !!address && !config?.projectAssets?.showBalanceAs;
|
|
11786
|
-
const { data: balance } = (0, import_wagmi3.useBalance)({
|
|
11787
|
-
address,
|
|
11788
|
-
chainId: lumiaBeam.id,
|
|
11789
|
-
query: {
|
|
11790
|
-
enabled: isDefaultBalanceFeedEnabled,
|
|
11791
|
-
refetchInterval: isDefaultBalanceFeedEnabled ? 3e4 : false,
|
|
11792
|
-
// Refetch every 30 seconds
|
|
11793
|
-
refetchOnMount: true,
|
|
11794
|
-
refetchOnWindowFocus: true
|
|
11795
|
-
}
|
|
11796
|
-
});
|
|
11797
|
-
useLumiaPriceSSE(isDefaultBalanceFeedEnabled, (update) => setCryptoRate(update.price || 1));
|
|
11798
|
-
(0, import_react44.useEffect)(() => {
|
|
11799
|
-
if (!isDefaultBalanceFeedEnabled) return;
|
|
11800
|
-
const usdBalance = Number(balance?.formatted || 0) * cryptoRate;
|
|
11801
|
-
setCryptoSymbol("LUMIA");
|
|
11802
|
-
setFiatSymbol("USD");
|
|
11803
|
-
setFiatBalance(usdBalance);
|
|
11804
|
-
setBalance(balance);
|
|
11805
|
-
}, [isDefaultBalanceFeedEnabled, balance, cryptoRate, setFiatBalance, setBalance, setCryptoSymbol, setFiatSymbol]);
|
|
11806
|
-
const showBalanceAsSymbol = config?.projectAssets?.showBalanceAs;
|
|
11807
|
-
const assetBalanceConfig = config?.projectAssets?.assets.find((a) => a.symbol === showBalanceAsSymbol);
|
|
11808
|
-
const { balanceQuery, balanceQueryKey } = assetBalanceConfig || {};
|
|
11809
|
-
const { data: customBalance } = (0, import_react_query23.useQuery)({
|
|
11810
|
-
retry: false,
|
|
11811
|
-
enabled: !isDefaultBalanceFeedEnabled && !!address && !!showBalanceAsSymbol && !!assetBalanceConfig,
|
|
11812
|
-
queryKey: balanceQueryKey,
|
|
11813
|
-
// should be invalidated by host app via provided queryKey
|
|
11814
|
-
queryFn: async () => await balanceQuery()
|
|
11815
|
-
});
|
|
11816
|
-
(0, import_react44.useEffect)(() => {
|
|
11817
|
-
if (!!isDefaultBalanceFeedEnabled || !customBalance) return;
|
|
11818
|
-
const { cryptoFiatRate, fiatFormatted, cryptoFormatted, cryptoSymbol, fiatSymbol } = customBalance;
|
|
11819
|
-
setCryptoSymbol(cryptoSymbol.toUpperCase() || "LUMIA");
|
|
11820
|
-
setFiatSymbol(fiatSymbol.toUpperCase() || "USD");
|
|
11821
|
-
setCryptoRate(cryptoFiatRate || 1);
|
|
11822
|
-
setFiatBalance(fiatFormatted || 0);
|
|
11823
|
-
setBalance({
|
|
11824
|
-
decimals: 18,
|
|
11825
|
-
formatted: cryptoFormatted?.toString() || "0",
|
|
11826
|
-
symbol: cryptoSymbol.toUpperCase() || "LUMIA",
|
|
11827
|
-
value: BigInt(Math.floor((cryptoFormatted || 0) * 10 ** 18))
|
|
11828
|
-
});
|
|
11829
|
-
}, [
|
|
11830
|
-
isDefaultBalanceFeedEnabled,
|
|
11831
|
-
customBalance,
|
|
11832
|
-
setFiatBalance,
|
|
11833
|
-
setBalance,
|
|
11834
|
-
setCryptoSymbol,
|
|
11835
|
-
setFiatSymbol,
|
|
11836
|
-
setCryptoRate
|
|
11837
|
-
]);
|
|
11838
|
-
return null;
|
|
11839
|
-
}
|
|
11840
|
-
|
|
11841
11840
|
// src/internal/components/TssManager.tsx
|
|
11842
11841
|
var import_react45 = __toESM(require("react"), 1);
|
|
11843
11842
|
init_auth();
|
|
@@ -12038,7 +12037,7 @@ function LumiaPassportSessionProvider({ children }) {
|
|
|
12038
12037
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_react47.Fragment, { children: [
|
|
12039
12038
|
children,
|
|
12040
12039
|
config.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(WalletConnectHandler, {}),
|
|
12041
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12040
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(BalanceFeedProvider, {}),
|
|
12042
12041
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12043
12042
|
TssManagerWithRef,
|
|
12044
12043
|
{
|