@lumiapassport/ui-kit 1.13.8 → 1.13.9
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/index.cjs +713 -608
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +601 -496
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4297,17 +4297,17 @@ __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-\\[95dvh\\]{max-height:95dvh}.lumia-scope .\\!w-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-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:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4300
|
+
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-1\\.5{margin-right:.375rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-1\\.5{margin-top:.375rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[32px\\]{height:32px}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .\\!w-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}[data-rk]{z-index:99999!important}[data-rk-modal-overlay]{z-index:99998!important}.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");
|
|
4304
|
-
var
|
|
4305
|
-
var
|
|
4304
|
+
var import_lodash_es3 = require("lodash-es");
|
|
4305
|
+
var import_react49 = require("react");
|
|
4306
4306
|
init_lumiaPassport();
|
|
4307
4307
|
init_iframe_manager();
|
|
4308
4308
|
|
|
4309
4309
|
// src/context/LumiaPassportSessionContext.tsx
|
|
4310
|
-
var
|
|
4310
|
+
var import_react48 = require("react");
|
|
4311
4311
|
var import_zustand5 = require("zustand");
|
|
4312
4312
|
|
|
4313
4313
|
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
@@ -4325,7 +4325,13 @@ init_assets();
|
|
|
4325
4325
|
var DEFAULT_AUTH_MENU_HEIGHT = 253;
|
|
4326
4326
|
var DEFAULT_MAIN_MENU_HEIGHT = 90;
|
|
4327
4327
|
var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
|
|
4328
|
-
var
|
|
4328
|
+
var MAX_CONTENT_HEIGHTS = {
|
|
4329
|
+
mobileSM: 384,
|
|
4330
|
+
mobileXL: 384,
|
|
4331
|
+
tablet: 512,
|
|
4332
|
+
laptop: 640,
|
|
4333
|
+
desktop: 768
|
|
4334
|
+
};
|
|
4329
4335
|
var MAIN_DIALOG_ANIMATION_SPEED = 375;
|
|
4330
4336
|
var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
|
|
4331
4337
|
var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
|
|
@@ -4605,7 +4611,7 @@ function BalanceFeedProvider() {
|
|
|
4605
4611
|
|
|
4606
4612
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4607
4613
|
var import_framer_motion4 = require("framer-motion");
|
|
4608
|
-
var
|
|
4614
|
+
var import_react45 = require("react");
|
|
4609
4615
|
|
|
4610
4616
|
// package.json
|
|
4611
4617
|
var package_default = {
|
|
@@ -5150,14 +5156,44 @@ function Header() {
|
|
|
5150
5156
|
{
|
|
5151
5157
|
}
|
|
5152
5158
|
|
|
5159
|
+
// src/internal/components/ManageWalletMenu/hooks/useStore.ts
|
|
5160
|
+
var import_zustand2 = require("zustand");
|
|
5161
|
+
var useManageWalletStore = (0, import_zustand2.create)((set) => ({
|
|
5162
|
+
emailStep: "input",
|
|
5163
|
+
email: "",
|
|
5164
|
+
emailCode: "",
|
|
5165
|
+
emailCodeSentError: "",
|
|
5166
|
+
emailCodeExpiresIn: 0,
|
|
5167
|
+
isWalletLinking: false,
|
|
5168
|
+
linkIsLoading: false,
|
|
5169
|
+
linkError: "",
|
|
5170
|
+
verificationError: "",
|
|
5171
|
+
providerType: null,
|
|
5172
|
+
confirmUnlink: null,
|
|
5173
|
+
setEmailStep: (emailStep) => set({ emailStep }),
|
|
5174
|
+
setEmail: (email) => set({ email }),
|
|
5175
|
+
setEmailCode: (emailCode) => set({ emailCode }),
|
|
5176
|
+
setEmailCodeSentError: (emailCodeSentError) => set({ emailCodeSentError }),
|
|
5177
|
+
setEmailCodeExpiresIn: (emailCodeExpiresIn) => set({ emailCodeExpiresIn }),
|
|
5178
|
+
setIsWalletLinking: (isWalletLinking) => set({ isWalletLinking }),
|
|
5179
|
+
setLinkIsLoading: (linkIsLoading) => set({ linkIsLoading }),
|
|
5180
|
+
setLinkError: (linkError) => set({ linkError }),
|
|
5181
|
+
setVerificationError: (verificationError) => set({ verificationError }),
|
|
5182
|
+
setProviderType: (providerType) => {
|
|
5183
|
+
console.log("[ManageWalletStore] setProviderType called with:", providerType, new Error().stack);
|
|
5184
|
+
set({ providerType });
|
|
5185
|
+
},
|
|
5186
|
+
setConfirmUnlink: (confirmUnlink) => set({ confirmUnlink })
|
|
5187
|
+
}));
|
|
5188
|
+
|
|
5153
5189
|
// src/internal/components/ui/dialog.tsx
|
|
5154
5190
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
5155
5191
|
var import_lucide_react5 = require("lucide-react");
|
|
5156
5192
|
var React2 = __toESM(require("react"), 1);
|
|
5157
5193
|
|
|
5158
5194
|
// src/internal/hooks/useLayoutStore.ts
|
|
5159
|
-
var
|
|
5160
|
-
var useLayoutStore = (0,
|
|
5195
|
+
var import_zustand3 = require("zustand");
|
|
5196
|
+
var useLayoutStore = (0, import_zustand3.create)((set) => ({
|
|
5161
5197
|
colorMode: "light",
|
|
5162
5198
|
layoutView: "desktop",
|
|
5163
5199
|
// deviceType: 'non-touch',
|
|
@@ -5205,82 +5241,92 @@ var DialogContent = React2.forwardRef(
|
|
|
5205
5241
|
const isSettings = useLayoutStore((st) => st.isSettings);
|
|
5206
5242
|
const isDialogOpen = useLayoutStore((st) => st.isDialogOpen);
|
|
5207
5243
|
const isDialogClosing = useLayoutStore((st) => st.isDialogClosing);
|
|
5244
|
+
const isWalletLinking = useManageWalletStore((st) => st.isWalletLinking);
|
|
5208
5245
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
5209
5246
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
5210
5247
|
const closing = isDialogOpen && isDialogClosing;
|
|
5211
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
"
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
)
|
|
5220
|
-
|
|
5221
|
-
DialogPrimitive.Content,
|
|
5248
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
5249
|
+
"div",
|
|
5250
|
+
{
|
|
5251
|
+
className: cn("lumia-scope", isWalletLinking && "invisible pointer-events-none"),
|
|
5252
|
+
"data-lumia-passport-mode": colorMode,
|
|
5253
|
+
style: isWalletLinking ? { visibility: "hidden", pointerEvents: "none" } : void 0,
|
|
5254
|
+
children: [
|
|
5255
|
+
!isWalletLinking && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogOverlay, { closing }),
|
|
5256
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
5257
|
+
"div",
|
|
5222
5258
|
{
|
|
5223
|
-
ref,
|
|
5224
|
-
style: !!className ? void 0 : {
|
|
5225
|
-
backgroundColor: "var(--l-pass-bg)",
|
|
5226
|
-
border: "1px solid var(--l-pass-bd)",
|
|
5227
|
-
boxShadow: "0px 4px 10px var(--l-pass-shadow-c)"
|
|
5228
|
-
},
|
|
5229
5259
|
className: cn(
|
|
5230
|
-
"
|
|
5231
|
-
"
|
|
5232
|
-
"rounded-[var(--l-pass-bdrs)] overflow-hidden",
|
|
5233
|
-
"max-w-[var(--l-pass-maw)] max-h-[95dvh] p-0 gap-0",
|
|
5234
|
-
className
|
|
5260
|
+
"fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none",
|
|
5261
|
+
closing ? "animate-dialog-out" : "animate-dialog-in"
|
|
5235
5262
|
),
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
|
|
5278
|
-
|
|
5263
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
5264
|
+
DialogPrimitive.Content,
|
|
5265
|
+
{
|
|
5266
|
+
ref,
|
|
5267
|
+
style: !!className ? void 0 : {
|
|
5268
|
+
backgroundColor: "var(--l-pass-bg)",
|
|
5269
|
+
border: "1px solid var(--l-pass-bd)",
|
|
5270
|
+
boxShadow: "0px 4px 10px var(--l-pass-shadow-c)"
|
|
5271
|
+
},
|
|
5272
|
+
className: cn(
|
|
5273
|
+
"max-w-[var(--l-pass-maw)] max-h-[95dvh] p-0 gap-0",
|
|
5274
|
+
"relative w-full",
|
|
5275
|
+
isWalletLinking ? "pointer-events-none" : "pointer-events-auto",
|
|
5276
|
+
"text-[var(--l-pass-fg)]",
|
|
5277
|
+
"rounded-[var(--l-pass-bdrs)] overflow-hidden",
|
|
5278
|
+
className
|
|
5279
|
+
),
|
|
5280
|
+
...props,
|
|
5281
|
+
children: [
|
|
5282
|
+
children,
|
|
5283
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
5284
|
+
"div",
|
|
5285
|
+
{
|
|
5286
|
+
className: cn(
|
|
5287
|
+
"flex items-center justify-center gap-[var(--l-pass-gap)]",
|
|
5288
|
+
"absolute right-[var(--l-pass-pd)] top-[var(--l-pass-pd)]"
|
|
5289
|
+
),
|
|
5290
|
+
children: [
|
|
5291
|
+
isSettings && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
5292
|
+
Button,
|
|
5293
|
+
{
|
|
5294
|
+
variant: "ghost",
|
|
5295
|
+
size: "icon",
|
|
5296
|
+
className: "relative w-4 h-4",
|
|
5297
|
+
onClick: () => setPage("settings" /* SETTINGS */),
|
|
5298
|
+
children: [
|
|
5299
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "Settings" }),
|
|
5300
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react5.SlidersHorizontal, { className: "w-4 h-4" }),
|
|
5301
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
5302
|
+
"div",
|
|
5303
|
+
{
|
|
5304
|
+
className: cn(
|
|
5305
|
+
"absolute -top-2 -right-2 flex h-4 w-4",
|
|
5306
|
+
"items-center justify-center rounded-full bg-[var(--l-pass-bg-error)]",
|
|
5307
|
+
"text-xs font-semibold text-[var(--l-pass-error)]"
|
|
5308
|
+
),
|
|
5309
|
+
children: settingsNotifications.length
|
|
5310
|
+
}
|
|
5311
|
+
)
|
|
5312
|
+
]
|
|
5313
|
+
}
|
|
5314
|
+
),
|
|
5315
|
+
!hideClose && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Button, { variant: "ghost", size: "icon", className: "w-4 h-4", children: [
|
|
5316
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react5.X, { className: "h-4 w-4" }),
|
|
5317
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "Close" })
|
|
5318
|
+
] }) })
|
|
5319
|
+
]
|
|
5320
|
+
}
|
|
5321
|
+
)
|
|
5322
|
+
]
|
|
5323
|
+
}
|
|
5324
|
+
)
|
|
5279
5325
|
}
|
|
5280
5326
|
)
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5327
|
+
]
|
|
5328
|
+
}
|
|
5329
|
+
) });
|
|
5284
5330
|
}
|
|
5285
5331
|
);
|
|
5286
5332
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
@@ -5535,20 +5581,51 @@ function useCheckVaultStatus() {
|
|
|
5535
5581
|
}, [address, checkVaultStatus]);
|
|
5536
5582
|
}
|
|
5537
5583
|
|
|
5584
|
+
// src/internal/hooks/useDetectLayoutView.ts
|
|
5585
|
+
var import_lodash_es = require("lodash-es");
|
|
5586
|
+
var import_react8 = require("react");
|
|
5587
|
+
var BREAKPOINTS = {
|
|
5588
|
+
mobileSM: 0,
|
|
5589
|
+
mobileXL: 475,
|
|
5590
|
+
tablet: 960,
|
|
5591
|
+
laptop: 1440,
|
|
5592
|
+
desktop: 1920
|
|
5593
|
+
};
|
|
5594
|
+
var DEBOUNCE_DELAY = 50;
|
|
5595
|
+
function useDetectLayoutView() {
|
|
5596
|
+
const setLayoutView = useLayoutStore((state) => state.setLayoutView);
|
|
5597
|
+
const onResize = (0, import_react8.useCallback)(
|
|
5598
|
+
(0, import_lodash_es.debounce)((viewportWidth) => {
|
|
5599
|
+
if (viewportWidth < BREAKPOINTS.mobileXL) return setLayoutView("mobileSM");
|
|
5600
|
+
if (viewportWidth < BREAKPOINTS.tablet) return setLayoutView("mobileXL");
|
|
5601
|
+
if (viewportWidth < BREAKPOINTS.laptop) return setLayoutView("tablet");
|
|
5602
|
+
if (viewportWidth < BREAKPOINTS.desktop) return setLayoutView("laptop");
|
|
5603
|
+
setLayoutView("desktop");
|
|
5604
|
+
}, DEBOUNCE_DELAY),
|
|
5605
|
+
[setLayoutView]
|
|
5606
|
+
);
|
|
5607
|
+
(0, import_react8.useEffect)(() => {
|
|
5608
|
+
const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect.width));
|
|
5609
|
+
const doc = window.document.getElementsByTagName("html")[0];
|
|
5610
|
+
if (doc) obs.observe(doc);
|
|
5611
|
+
return () => obs.disconnect();
|
|
5612
|
+
}, [onResize]);
|
|
5613
|
+
}
|
|
5614
|
+
|
|
5538
5615
|
// src/internal/hooks/usePageMapper.tsx
|
|
5539
|
-
var
|
|
5616
|
+
var import_react42 = require("react");
|
|
5540
5617
|
|
|
5541
5618
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5542
5619
|
var import_framer_motion = require("framer-motion");
|
|
5543
5620
|
var import_lucide_react14 = require("lucide-react");
|
|
5544
|
-
var
|
|
5621
|
+
var import_react18 = require("react");
|
|
5545
5622
|
|
|
5546
5623
|
// src/internal/components/AuthMenu/AuthFailedStep.tsx
|
|
5547
5624
|
var import_lucide_react6 = require("lucide-react");
|
|
5548
5625
|
|
|
5549
5626
|
// src/internal/components/AuthMenu/useAuthStore.ts
|
|
5550
|
-
var
|
|
5551
|
-
var useAuthStore = (0,
|
|
5627
|
+
var import_zustand4 = require("zustand");
|
|
5628
|
+
var useAuthStore = (0, import_zustand4.create)((set) => ({
|
|
5552
5629
|
step: "signin",
|
|
5553
5630
|
alert: null,
|
|
5554
5631
|
email: "",
|
|
@@ -5629,17 +5706,17 @@ function AuthFailedStep() {
|
|
|
5629
5706
|
|
|
5630
5707
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5631
5708
|
var import_lucide_react7 = require("lucide-react");
|
|
5632
|
-
var
|
|
5709
|
+
var import_react10 = require("react");
|
|
5633
5710
|
init_auth();
|
|
5634
5711
|
init_profile();
|
|
5635
5712
|
|
|
5636
5713
|
// src/internal/components/ui/input.tsx
|
|
5637
|
-
var
|
|
5714
|
+
var import_react9 = __toESM(require("react"), 1);
|
|
5638
5715
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
5639
|
-
var Input =
|
|
5716
|
+
var Input = import_react9.default.forwardRef((props, ref) => {
|
|
5640
5717
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5641
|
-
const internalRef = (0,
|
|
5642
|
-
(0,
|
|
5718
|
+
const internalRef = (0, import_react9.useRef)(null);
|
|
5719
|
+
(0, import_react9.useImperativeHandle)(ref, () => internalRef.current);
|
|
5643
5720
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
5644
5721
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
5645
5722
|
"div",
|
|
@@ -5685,9 +5762,9 @@ Input.displayName = "Input";
|
|
|
5685
5762
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5686
5763
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
5687
5764
|
var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
5688
|
-
const [displayName, setDisplayName] = (0,
|
|
5689
|
-
const [isLoading, setIsLoading] = (0,
|
|
5690
|
-
const [error, setError] = (0,
|
|
5765
|
+
const [displayName, setDisplayName] = (0, import_react10.useState)("");
|
|
5766
|
+
const [isLoading, setIsLoading] = (0, import_react10.useState)(false);
|
|
5767
|
+
const [error, setError] = (0, import_react10.useState)("");
|
|
5691
5768
|
const handleSubmit = async (e) => {
|
|
5692
5769
|
e.preventDefault();
|
|
5693
5770
|
if (!displayName.trim()) {
|
|
@@ -5794,7 +5871,7 @@ function DisplayNameStep(props) {
|
|
|
5794
5871
|
|
|
5795
5872
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
5796
5873
|
var import_lucide_react8 = require("lucide-react");
|
|
5797
|
-
var
|
|
5874
|
+
var import_react12 = require("react");
|
|
5798
5875
|
|
|
5799
5876
|
// src/internal/assets/PasskeyAddIcon.tsx
|
|
5800
5877
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
@@ -5827,16 +5904,16 @@ function PasskeyAddIcon(props) {
|
|
|
5827
5904
|
init_auth();
|
|
5828
5905
|
|
|
5829
5906
|
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5830
|
-
var
|
|
5907
|
+
var import_react11 = require("react");
|
|
5831
5908
|
var useExpandable = (props) => {
|
|
5832
5909
|
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5833
|
-
const expandableRef = (0,
|
|
5834
|
-
const contentRef = (0,
|
|
5835
|
-
(0,
|
|
5910
|
+
const expandableRef = (0, import_react11.useRef)(null);
|
|
5911
|
+
const contentRef = (0, import_react11.useRef)(null);
|
|
5912
|
+
(0, import_react11.useEffect)(() => {
|
|
5836
5913
|
if (!expandableRef.current) return;
|
|
5837
5914
|
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
5838
5915
|
}, []);
|
|
5839
|
-
const setExpandableHeight = (0,
|
|
5916
|
+
const setExpandableHeight = (0, import_react11.useCallback)(
|
|
5840
5917
|
(isExpnd) => {
|
|
5841
5918
|
if (!contentRef.current || !expandableRef.current) return;
|
|
5842
5919
|
expandableRef.current.style.setProperty(
|
|
@@ -5847,7 +5924,7 @@ var useExpandable = (props) => {
|
|
|
5847
5924
|
// ON_RESIZE_DELEAY),
|
|
5848
5925
|
[minHeight]
|
|
5849
5926
|
);
|
|
5850
|
-
(0,
|
|
5927
|
+
(0, import_react11.useEffect)(() => {
|
|
5851
5928
|
if (!contentRef.current || !expandableRef.current) return;
|
|
5852
5929
|
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
5853
5930
|
obs.observe(expandableRef.current);
|
|
@@ -5911,7 +5988,7 @@ function PassKeyStep(props) {
|
|
|
5911
5988
|
setFailedMessage,
|
|
5912
5989
|
setFailedType
|
|
5913
5990
|
} = useAuthStore();
|
|
5914
|
-
const onPasskeyRegister = (0,
|
|
5991
|
+
const onPasskeyRegister = (0, import_react12.useCallback)(async () => {
|
|
5915
5992
|
setPasskeyError("");
|
|
5916
5993
|
setPasskeyStatus("registering passkey...");
|
|
5917
5994
|
setIsLoading(true);
|
|
@@ -5979,7 +6056,7 @@ function PassKeyStep(props) {
|
|
|
5979
6056
|
setIsLoading(false);
|
|
5980
6057
|
}
|
|
5981
6058
|
}, [onAuthSuccess, setPage, callbacks]);
|
|
5982
|
-
const onPasskeyAuth = (0,
|
|
6059
|
+
const onPasskeyAuth = (0, import_react12.useCallback)(async () => {
|
|
5983
6060
|
setPasskeyError("");
|
|
5984
6061
|
setPasskeyStatus("checking available passkeys...");
|
|
5985
6062
|
setIsLoading(true);
|
|
@@ -6101,7 +6178,7 @@ function PassKeyStep(props) {
|
|
|
6101
6178
|
|
|
6102
6179
|
// src/internal/components/AuthMenu/SignInStep/SignInStep.tsx
|
|
6103
6180
|
var import_lucide_react12 = require("lucide-react");
|
|
6104
|
-
var
|
|
6181
|
+
var import_react14 = require("react");
|
|
6105
6182
|
|
|
6106
6183
|
// src/internal/components/AuthMenu/SignInStep/Email.tsx
|
|
6107
6184
|
init_lumiaPassport();
|
|
@@ -6234,7 +6311,7 @@ function ErrorAlert(props) {
|
|
|
6234
6311
|
|
|
6235
6312
|
// src/internal/components/AuthMenu/SignInStep/Social.tsx
|
|
6236
6313
|
var import_lucide_react11 = require("lucide-react");
|
|
6237
|
-
var
|
|
6314
|
+
var import_react13 = require("react");
|
|
6238
6315
|
init_assets();
|
|
6239
6316
|
init_lumiaPassport();
|
|
6240
6317
|
init_auth();
|
|
@@ -6325,7 +6402,7 @@ function Social(props) {
|
|
|
6325
6402
|
setPasskeyError,
|
|
6326
6403
|
setPasskeyStatus
|
|
6327
6404
|
} = useAuthStore();
|
|
6328
|
-
const onSocialAuth = (0,
|
|
6405
|
+
const onSocialAuth = (0, import_react13.useCallback)(
|
|
6329
6406
|
async (providerId) => {
|
|
6330
6407
|
const normalizedProviderId = providerId.toLowerCase();
|
|
6331
6408
|
const provider = config.current?.social?.providers?.find(
|
|
@@ -6736,7 +6813,7 @@ function SignInStep(props) {
|
|
|
6736
6813
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "font-bold text-xl leading-6", children: "Sign In" })
|
|
6737
6814
|
] }),
|
|
6738
6815
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6739
|
-
enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
6816
|
+
enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react14.Fragment, { children: [
|
|
6740
6817
|
idx > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center", children: [
|
|
6741
6818
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
6742
6819
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex-none px-2 text-xs leading-4", children: "Or sign in using" }),
|
|
@@ -6763,19 +6840,19 @@ function SignInStep(props) {
|
|
|
6763
6840
|
}
|
|
6764
6841
|
|
|
6765
6842
|
// src/internal/components/AuthMenu/useAuthMenuHanders.ts
|
|
6766
|
-
var
|
|
6843
|
+
var import_react15 = require("react");
|
|
6767
6844
|
init_auth();
|
|
6768
6845
|
function useAuthMenuHandlers() {
|
|
6769
6846
|
const {
|
|
6770
6847
|
config: { current: config },
|
|
6771
6848
|
callbacks
|
|
6772
6849
|
} = useLumiaPassportConfig();
|
|
6773
|
-
const pendingLoginResponseRef = (0,
|
|
6850
|
+
const pendingLoginResponseRef = (0, import_react15.useRef)(null);
|
|
6774
6851
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
6775
|
-
const [telegramCleanup, setTelegramCleanup] = (0,
|
|
6852
|
+
const [telegramCleanup, setTelegramCleanup] = (0, import_react15.useState)(null);
|
|
6776
6853
|
const { usePaymaster, setError, setStatus, setSession, setAddress, setRecoveryUserId, setHasServerVault } = useLumiaPassportSession();
|
|
6777
6854
|
const { setStep, setVerificationError, setCodeSendError, setFailedMessage } = useAuthStore();
|
|
6778
|
-
const createSessionWithKeyshare = (0,
|
|
6855
|
+
const createSessionWithKeyshare = (0, import_react15.useCallback)(
|
|
6779
6856
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
6780
6857
|
try {
|
|
6781
6858
|
try {
|
|
@@ -6809,7 +6886,7 @@ function useAuthMenuHandlers() {
|
|
|
6809
6886
|
},
|
|
6810
6887
|
[setStatus, callbacks, usePaymaster]
|
|
6811
6888
|
);
|
|
6812
|
-
const onAuthSuccess = (0,
|
|
6889
|
+
const onAuthSuccess = (0, import_react15.useCallback)(async () => {
|
|
6813
6890
|
console.log("[ConnectWalletButton] handleAuthModalSuccess called");
|
|
6814
6891
|
const loginResponse = pendingLoginResponseRef.current;
|
|
6815
6892
|
console.log("[ConnectWalletButton] loginResponse:", loginResponse);
|
|
@@ -6904,7 +6981,7 @@ function useAuthMenuHandlers() {
|
|
|
6904
6981
|
setHasServerVault,
|
|
6905
6982
|
createSessionWithKeyshare
|
|
6906
6983
|
]);
|
|
6907
|
-
const checkDisplayNameRequired = (0,
|
|
6984
|
+
const checkDisplayNameRequired = (0, import_react15.useCallback)(
|
|
6908
6985
|
async (loginResponse) => {
|
|
6909
6986
|
if (!config.features.displayNameNeeded) {
|
|
6910
6987
|
return false;
|
|
@@ -6931,7 +7008,7 @@ function useAuthMenuHandlers() {
|
|
|
6931
7008
|
},
|
|
6932
7009
|
[config.features.displayNameNeeded]
|
|
6933
7010
|
);
|
|
6934
|
-
const goBackToSignIn = (0,
|
|
7011
|
+
const goBackToSignIn = (0, import_react15.useCallback)(() => {
|
|
6935
7012
|
setStep("signin");
|
|
6936
7013
|
setVerificationError("");
|
|
6937
7014
|
setCodeSendError("");
|
|
@@ -6949,11 +7026,11 @@ function useAuthMenuHandlers() {
|
|
|
6949
7026
|
}
|
|
6950
7027
|
|
|
6951
7028
|
// src/internal/components/AuthMenu/useListenIframeAuthEvents.ts
|
|
6952
|
-
var
|
|
7029
|
+
var import_react16 = require("react");
|
|
6953
7030
|
function useListenIframeAuthEvents() {
|
|
6954
7031
|
const setPage = useLayoutDataStore((state) => state.setPage);
|
|
6955
7032
|
const setIsIframeReady = useLumiaPassportSession((state) => state.setIsIframeReady);
|
|
6956
|
-
const handleIframeMessage = (0,
|
|
7033
|
+
const handleIframeMessage = (0, import_react16.useCallback)(
|
|
6957
7034
|
(event) => {
|
|
6958
7035
|
console.log("[AuthMenu] Received iframe message:", event.data);
|
|
6959
7036
|
if (event.data?.type === "LUMIA_PASSPORT_IFRAME_READY") {
|
|
@@ -6971,7 +7048,7 @@ function useListenIframeAuthEvents() {
|
|
|
6971
7048
|
},
|
|
6972
7049
|
[setPage, setIsIframeReady]
|
|
6973
7050
|
);
|
|
6974
|
-
(0,
|
|
7051
|
+
(0, import_react16.useEffect)(() => {
|
|
6975
7052
|
window.addEventListener("message", handleIframeMessage);
|
|
6976
7053
|
return () => window.removeEventListener("message", handleIframeMessage);
|
|
6977
7054
|
}, [handleIframeMessage]);
|
|
@@ -7000,21 +7077,21 @@ init_auth();
|
|
|
7000
7077
|
init_projectId();
|
|
7001
7078
|
|
|
7002
7079
|
// src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
|
|
7003
|
-
var
|
|
7080
|
+
var import_react17 = require("react");
|
|
7004
7081
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
7005
7082
|
var VerificationCodeInput = (props) => {
|
|
7006
7083
|
const { onVerifyCode, onResendCode, isLoading, expiresIn, error } = props;
|
|
7007
7084
|
const setVerificationError = useAuthStore((st) => st.setVerificationError);
|
|
7008
|
-
const [timeLeft, setTimeLeft] = (0,
|
|
7009
|
-
(0,
|
|
7010
|
-
(0,
|
|
7085
|
+
const [timeLeft, setTimeLeft] = (0, import_react17.useState)(expiresIn);
|
|
7086
|
+
(0, import_react17.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
|
|
7087
|
+
(0, import_react17.useEffect)(() => {
|
|
7011
7088
|
const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
|
|
7012
7089
|
return () => clearInterval(t);
|
|
7013
7090
|
}, []);
|
|
7014
|
-
const lastSubmittedRef = (0,
|
|
7015
|
-
const inputsRef = (0,
|
|
7016
|
-
const [digits, setDigits] = (0,
|
|
7017
|
-
(0,
|
|
7091
|
+
const lastSubmittedRef = (0, import_react17.useRef)(null);
|
|
7092
|
+
const inputsRef = (0, import_react17.useRef)([]);
|
|
7093
|
+
const [digits, setDigits] = (0, import_react17.useState)(["", "", "", "", "", ""]);
|
|
7094
|
+
(0, import_react17.useEffect)(() => {
|
|
7018
7095
|
const code = digits.join("");
|
|
7019
7096
|
if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
|
|
7020
7097
|
if (lastSubmittedRef.current !== code) {
|
|
@@ -7023,7 +7100,7 @@ var VerificationCodeInput = (props) => {
|
|
|
7023
7100
|
}
|
|
7024
7101
|
}
|
|
7025
7102
|
}, [digits, isLoading, onVerifyCode]);
|
|
7026
|
-
(0,
|
|
7103
|
+
(0, import_react17.useEffect)(() => {
|
|
7027
7104
|
const t = setTimeout(() => {
|
|
7028
7105
|
inputsRef.current[0]?.focus();
|
|
7029
7106
|
}, 0);
|
|
@@ -7299,7 +7376,7 @@ var AuthMenu = () => {
|
|
|
7299
7376
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
7300
7377
|
const page = useLayoutDataStore((st) => st.page);
|
|
7301
7378
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
7302
|
-
(0,
|
|
7379
|
+
(0, import_react18.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
|
|
7303
7380
|
const {
|
|
7304
7381
|
step,
|
|
7305
7382
|
setStep,
|
|
@@ -7310,7 +7387,7 @@ var AuthMenu = () => {
|
|
|
7310
7387
|
setFailedMessage,
|
|
7311
7388
|
setCodeSendError
|
|
7312
7389
|
} = useAuthStore();
|
|
7313
|
-
(0,
|
|
7390
|
+
(0, import_react18.useEffect)(() => {
|
|
7314
7391
|
if (page !== "auth" /* AUTH */) {
|
|
7315
7392
|
setStep("signin");
|
|
7316
7393
|
setEmail("");
|
|
@@ -7329,7 +7406,7 @@ var AuthMenu = () => {
|
|
|
7329
7406
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
|
|
7330
7407
|
] });
|
|
7331
7408
|
}
|
|
7332
|
-
const stepContent = (0,
|
|
7409
|
+
const stepContent = (0, import_react18.useMemo)(
|
|
7333
7410
|
() => ({
|
|
7334
7411
|
"failed": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AuthFailedStep, {}),
|
|
7335
7412
|
"display-name": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DisplayNameStep, { onAuthSuccess }),
|
|
@@ -7477,7 +7554,7 @@ function RampnowIcon() {
|
|
|
7477
7554
|
// src/internal/components/BuyMenu/binance/Binance.tsx
|
|
7478
7555
|
var import_react_query8 = require("@tanstack/react-query");
|
|
7479
7556
|
var import_lucide_react15 = require("lucide-react");
|
|
7480
|
-
var
|
|
7557
|
+
var import_react20 = require("react");
|
|
7481
7558
|
|
|
7482
7559
|
// src/internal/components/BuyMenu/components/PaymentSelector.tsx
|
|
7483
7560
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
@@ -7592,7 +7669,7 @@ async function createPreorderMutation(payload) {
|
|
|
7592
7669
|
}
|
|
7593
7670
|
|
|
7594
7671
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
7595
|
-
var
|
|
7672
|
+
var import_react19 = require("react");
|
|
7596
7673
|
|
|
7597
7674
|
// src/internal/components/BuyMenu/binance/utils.ts
|
|
7598
7675
|
function getPayMethodID(pm) {
|
|
@@ -7612,7 +7689,7 @@ function handleErrors(errors) {
|
|
|
7612
7689
|
// src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
|
|
7613
7690
|
var useQueriesErrorHandler = (errors, stateUpdater) => {
|
|
7614
7691
|
const { error: errorTitle, message: errorMessage } = handleErrors(errors);
|
|
7615
|
-
(0,
|
|
7692
|
+
(0, import_react19.useEffect)(() => {
|
|
7616
7693
|
if (!errorTitle && !errorMessage) return;
|
|
7617
7694
|
console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
|
|
7618
7695
|
stateUpdater(1);
|
|
@@ -7660,15 +7737,15 @@ function Binance(props) {
|
|
|
7660
7737
|
queryKey: [QUERY_KEYS2.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
|
|
7661
7738
|
queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
|
|
7662
7739
|
});
|
|
7663
|
-
const lastLoadedPaymentModes = (0,
|
|
7664
|
-
(0,
|
|
7740
|
+
const lastLoadedPaymentModes = (0, import_react20.useRef)([]);
|
|
7741
|
+
(0, import_react20.useEffect)(() => {
|
|
7665
7742
|
if (!paymentModes?.length) return;
|
|
7666
7743
|
setPaymentMode(getPayMethodID(paymentModes[0]));
|
|
7667
7744
|
lastLoadedPaymentModes.current = paymentModes;
|
|
7668
7745
|
}, [paymentModes]);
|
|
7669
7746
|
const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
|
|
7670
7747
|
const minimum = Number(selectedPaymentMode?.fiatMinLimit || "0");
|
|
7671
|
-
(0,
|
|
7748
|
+
(0, import_react20.useEffect)(() => setMinAmount(minimum), [minimum]);
|
|
7672
7749
|
const {
|
|
7673
7750
|
data: quoteData = null,
|
|
7674
7751
|
isLoading: isQuoteDataLoading,
|
|
@@ -7713,7 +7790,7 @@ function Binance(props) {
|
|
|
7713
7790
|
setRedirecting(false);
|
|
7714
7791
|
}
|
|
7715
7792
|
});
|
|
7716
|
-
(0,
|
|
7793
|
+
(0, import_react20.useEffect)(() => {
|
|
7717
7794
|
return () => {
|
|
7718
7795
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binanceNetworksQuery] });
|
|
7719
7796
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binancePaymentModes] });
|
|
@@ -7777,7 +7854,7 @@ function Binance(props) {
|
|
|
7777
7854
|
// src/internal/components/BuyMenu/rampnow/Rampnow.tsx
|
|
7778
7855
|
var import_react_query9 = require("@tanstack/react-query");
|
|
7779
7856
|
var import_lucide_react16 = require("lucide-react");
|
|
7780
|
-
var
|
|
7857
|
+
var import_react21 = require("react");
|
|
7781
7858
|
|
|
7782
7859
|
// src/internal/components/BuyMenu/rampnow/api.ts
|
|
7783
7860
|
var API_DOMAIN3 = "https://api.lumiapassport.com/on-ramp";
|
|
@@ -7842,7 +7919,7 @@ function Rampnow(props) {
|
|
|
7842
7919
|
setMinAmount
|
|
7843
7920
|
} = control;
|
|
7844
7921
|
const qc = (0, import_react_query9.useQueryClient)();
|
|
7845
|
-
(0,
|
|
7922
|
+
(0, import_react21.useEffect)(() => {
|
|
7846
7923
|
setMinAmount(MINIMUM_RAMP_AMOUNT);
|
|
7847
7924
|
setPaymentMode(PAYMENT_MODES[0].id);
|
|
7848
7925
|
}, []);
|
|
@@ -7899,7 +7976,7 @@ function Rampnow(props) {
|
|
|
7899
7976
|
console.error("Create CheckoutOrder failed:", err);
|
|
7900
7977
|
}
|
|
7901
7978
|
});
|
|
7902
|
-
(0,
|
|
7979
|
+
(0, import_react21.useEffect)(() => {
|
|
7903
7980
|
return () => {
|
|
7904
7981
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowConfig] });
|
|
7905
7982
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowQuote] });
|
|
@@ -7981,10 +8058,10 @@ var RAMP_PROVIDERS = {
|
|
|
7981
8058
|
var REDIRECT_TIMEOUT_MS = 1500;
|
|
7982
8059
|
|
|
7983
8060
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
7984
|
-
var
|
|
8061
|
+
var import_react22 = require("react");
|
|
7985
8062
|
|
|
7986
8063
|
// src/internal/utils/debounce.ts
|
|
7987
|
-
function
|
|
8064
|
+
function debounce2(func, waitFor) {
|
|
7988
8065
|
let timeout;
|
|
7989
8066
|
return (...args) => {
|
|
7990
8067
|
if (timeout) clearTimeout(timeout);
|
|
@@ -7995,22 +8072,22 @@ function debounce(func, waitFor) {
|
|
|
7995
8072
|
// src/internal/components/BuyMenu/useSelectables.ts
|
|
7996
8073
|
var ON_INPUT_QUERY_DELAY = 2e3;
|
|
7997
8074
|
var useSelectables = () => {
|
|
7998
|
-
const [redirecting, setRedirecting] = (0,
|
|
7999
|
-
const [rampProvider, setrRampProvider] = (0,
|
|
8000
|
-
const [minAmount, setMinAmount] = (0,
|
|
8001
|
-
const inputRef = (0,
|
|
8002
|
-
const [srcQueryAmount, setSrcQueryAmount] = (0,
|
|
8003
|
-
const [srcInputAmount, setSrcInputAmount] = (0,
|
|
8004
|
-
const [paymentMode, setPaymentMode] = (0,
|
|
8005
|
-
const setQueryAmountDebounced = (0,
|
|
8006
|
-
|
|
8075
|
+
const [redirecting, setRedirecting] = (0, import_react22.useState)(false);
|
|
8076
|
+
const [rampProvider, setrRampProvider] = (0, import_react22.useState)("binance");
|
|
8077
|
+
const [minAmount, setMinAmount] = (0, import_react22.useState)(0);
|
|
8078
|
+
const inputRef = (0, import_react22.useRef)(null);
|
|
8079
|
+
const [srcQueryAmount, setSrcQueryAmount] = (0, import_react22.useState)(0);
|
|
8080
|
+
const [srcInputAmount, setSrcInputAmount] = (0, import_react22.useState)(0);
|
|
8081
|
+
const [paymentMode, setPaymentMode] = (0, import_react22.useState)(null);
|
|
8082
|
+
const setQueryAmountDebounced = (0, import_react22.useCallback)(
|
|
8083
|
+
debounce2((inputAmount) => {
|
|
8007
8084
|
const checkedValue = Math.max(inputAmount, minAmount);
|
|
8008
8085
|
setSrcInputAmount(checkedValue);
|
|
8009
8086
|
setSrcQueryAmount(checkedValue);
|
|
8010
8087
|
}, ON_INPUT_QUERY_DELAY),
|
|
8011
8088
|
[minAmount]
|
|
8012
8089
|
);
|
|
8013
|
-
(0,
|
|
8090
|
+
(0, import_react22.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
|
|
8014
8091
|
return {
|
|
8015
8092
|
inputRef,
|
|
8016
8093
|
redirecting,
|
|
@@ -8062,7 +8139,7 @@ function BuyMenu() {
|
|
|
8062
8139
|
|
|
8063
8140
|
// src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
|
|
8064
8141
|
var import_lucide_react19 = require("lucide-react");
|
|
8065
|
-
var
|
|
8142
|
+
var import_react23 = __toESM(require("react"), 1);
|
|
8066
8143
|
init_iframe_manager();
|
|
8067
8144
|
|
|
8068
8145
|
// src/internal/components/ui/checkbox.tsx
|
|
@@ -8095,32 +8172,33 @@ var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
|
8095
8172
|
function KeyshareBackupMenu() {
|
|
8096
8173
|
const session = useLumiaPassportSession((st) => st.session);
|
|
8097
8174
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
8175
|
+
const layoutView = useLayoutStore((st) => st.layoutView);
|
|
8098
8176
|
const userId = session?.mpcUserId || "";
|
|
8099
8177
|
const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
|
|
8100
|
-
(0,
|
|
8178
|
+
(0, import_react23.useEffect)(() => {
|
|
8101
8179
|
if (!userId) setPage("main-menu" /* MAIN_MENU */);
|
|
8102
8180
|
}, [userId, setPage]);
|
|
8103
|
-
const [backupStatus, setBackupStatus] =
|
|
8181
|
+
const [backupStatus, setBackupStatus] = import_react23.default.useState({
|
|
8104
8182
|
server: {},
|
|
8105
8183
|
cloud: {},
|
|
8106
8184
|
local: {}
|
|
8107
8185
|
});
|
|
8108
|
-
const [loading, setLoading] =
|
|
8186
|
+
const [loading, setLoading] = import_react23.default.useState({
|
|
8109
8187
|
server: false,
|
|
8110
8188
|
cloud: false,
|
|
8111
8189
|
local: false
|
|
8112
8190
|
});
|
|
8113
|
-
const [error, setError] =
|
|
8114
|
-
const [success, setSuccess] =
|
|
8115
|
-
const [showPassword, setShowPassword] =
|
|
8116
|
-
const [useCustomPassword, setUseCustomPassword] =
|
|
8117
|
-
const [customPassword, setCustomPassword] =
|
|
8118
|
-
const [cloudProviders, setCloudProviders] =
|
|
8191
|
+
const [error, setError] = import_react23.default.useState(null);
|
|
8192
|
+
const [success, setSuccess] = import_react23.default.useState(null);
|
|
8193
|
+
const [showPassword, setShowPassword] = import_react23.default.useState(false);
|
|
8194
|
+
const [useCustomPassword, setUseCustomPassword] = import_react23.default.useState(false);
|
|
8195
|
+
const [customPassword, setCustomPassword] = import_react23.default.useState("");
|
|
8196
|
+
const [cloudProviders, setCloudProviders] = import_react23.default.useState(
|
|
8119
8197
|
[]
|
|
8120
8198
|
);
|
|
8121
|
-
const [selectedCloudProvider, setSelectedCloudProvider] =
|
|
8122
|
-
const [hasKeyshareData, setHasKeyshareData] =
|
|
8123
|
-
const iframeManager =
|
|
8199
|
+
const [selectedCloudProvider, setSelectedCloudProvider] = import_react23.default.useState(null);
|
|
8200
|
+
const [hasKeyshareData, setHasKeyshareData] = import_react23.default.useState(true);
|
|
8201
|
+
const iframeManager = import_react23.default.useMemo(() => {
|
|
8124
8202
|
try {
|
|
8125
8203
|
return getIframeManager();
|
|
8126
8204
|
} catch (e) {
|
|
@@ -8128,7 +8206,7 @@ function KeyshareBackupMenu() {
|
|
|
8128
8206
|
return null;
|
|
8129
8207
|
}
|
|
8130
8208
|
}, []);
|
|
8131
|
-
(0,
|
|
8209
|
+
(0, import_react23.useEffect)(() => {
|
|
8132
8210
|
const loadCloudProviders = async () => {
|
|
8133
8211
|
try {
|
|
8134
8212
|
const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
|
|
@@ -8148,7 +8226,7 @@ function KeyshareBackupMenu() {
|
|
|
8148
8226
|
};
|
|
8149
8227
|
loadCloudProviders();
|
|
8150
8228
|
}, [selectedCloudProvider]);
|
|
8151
|
-
const refreshStatus =
|
|
8229
|
+
const refreshStatus = import_react23.default.useCallback(async () => {
|
|
8152
8230
|
if (!iframeManager) return;
|
|
8153
8231
|
try {
|
|
8154
8232
|
const status = await iframeManager.getBackupStatus(userId);
|
|
@@ -8157,7 +8235,7 @@ function KeyshareBackupMenu() {
|
|
|
8157
8235
|
console.error("[KeyshareBackup] Failed to get backup status:", error2);
|
|
8158
8236
|
}
|
|
8159
8237
|
}, [iframeManager, userId]);
|
|
8160
|
-
(0,
|
|
8238
|
+
(0, import_react23.useEffect)(() => {
|
|
8161
8239
|
refreshStatus();
|
|
8162
8240
|
}, [refreshStatus]);
|
|
8163
8241
|
const handleBackup = async (method) => {
|
|
@@ -8246,164 +8324,161 @@ function KeyshareBackupMenu() {
|
|
|
8246
8324
|
const date = new Date(timestamp);
|
|
8247
8325
|
return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
|
|
8248
8326
|
};
|
|
8249
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
|
|
8253
|
-
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
onClick: () => setPage("settings" /* SETTINGS */),
|
|
8257
|
-
className: "
|
|
8258
|
-
title: "Back",
|
|
8259
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.ArrowLeft, { className: "h-4 w-4" })
|
|
8260
|
-
}
|
|
8261
|
-
),
|
|
8262
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-xl font-semibold", children: "Create Backup" })
|
|
8263
|
-
] }),
|
|
8264
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-xs", children: "Secure your keyshare with encrypted backups" }),
|
|
8265
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8266
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8267
|
-
Checkbox,
|
|
8268
|
-
{
|
|
8269
|
-
name: "use-backup-password-checkbox",
|
|
8270
|
-
id: "use-backup-password",
|
|
8271
|
-
checked: useCustomPassword,
|
|
8272
|
-
onCheckedChange: (checked) => setUseCustomPassword(!!checked)
|
|
8273
|
-
}
|
|
8274
|
-
),
|
|
8275
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("label", { htmlFor: "use-backup-password", className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Use custom password instead of passkey" })
|
|
8276
|
-
] }),
|
|
8277
|
-
useCustomPassword ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
8278
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8279
|
-
Input,
|
|
8280
|
-
{
|
|
8281
|
-
Icon: import_lucide_react19.Key,
|
|
8282
|
-
type: showPassword ? "text" : "password",
|
|
8283
|
-
placeholder: "Enter backup password",
|
|
8284
|
-
value: customPassword,
|
|
8285
|
-
onChange: (e) => setCustomPassword(e.target.value),
|
|
8286
|
-
element: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Button, { variant: "ghost", size: "icon", type: "button", onClick: () => setShowPassword(!showPassword), children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Eye, { className: "h-4 w-4" }) })
|
|
8287
|
-
}
|
|
8288
|
-
),
|
|
8289
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
8290
|
-
Button,
|
|
8291
|
-
{
|
|
8292
|
-
size: "medium",
|
|
8293
|
-
onClick: () => handleBackup("server"),
|
|
8294
|
-
disabled: !!loading.server || !customPassword || !hasKeyshareData,
|
|
8295
|
-
className: "w-full",
|
|
8296
|
-
children: [
|
|
8297
|
-
loading.server ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(OtpIcon, { className: "h-4 w-4" }),
|
|
8298
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: loading.server ? "Backing up..." : "Create Backup with Password" })
|
|
8299
|
-
]
|
|
8300
|
-
}
|
|
8301
|
-
)
|
|
8302
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
8303
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { className: "h-12 flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8304
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Key, { className: "h-4 w-4 text-[var(--l-pass-info)] mx-1" }),
|
|
8305
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-xs", children: "Backup will be encrypted with passkey" })
|
|
8306
|
-
] }),
|
|
8307
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
8308
|
-
Button,
|
|
8309
|
-
{
|
|
8310
|
-
size: "medium",
|
|
8311
|
-
onClick: () => handleBackup("server"),
|
|
8312
|
-
disabled: loading.server || !!customPassword || !hasKeyshareData,
|
|
8313
|
-
className: "w-full",
|
|
8314
|
-
children: [
|
|
8315
|
-
loading.server ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PasskeyAddIcon, { className: "h-4 w-4" }),
|
|
8316
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: loading.server ? "Backing up..." : "Create Backup with Passkey" })
|
|
8317
|
-
]
|
|
8318
|
-
}
|
|
8319
|
-
)
|
|
8320
|
-
] }),
|
|
8321
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
8322
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
8323
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4", children: "Alternative" }),
|
|
8324
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
8325
|
-
] }),
|
|
8326
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "grid grid-cols-2 gap-[var(--l-pass-gap)]", children: [
|
|
8327
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { children: [
|
|
8328
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] mb-[var(--l-pass-gap)]", children: [
|
|
8329
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Cloud, { className: "h-4 w-4 text-[var(--l-pass-info)]" }),
|
|
8330
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "text-sm font-medium", children: "Cloud" })
|
|
8327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8328
|
+
"div",
|
|
8329
|
+
{
|
|
8330
|
+
style: { "--l-pass-scrollbar-mah": `${MAX_CONTENT_HEIGHTS[layoutView]}px` },
|
|
8331
|
+
className: "list-scrollbar-y w-full",
|
|
8332
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
8333
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8334
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("settings" /* SETTINGS */), title: "Back", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
8335
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-xl font-semibold", children: "Create Backup" })
|
|
8331
8336
|
] }),
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
|
|
8337
|
-
|
|
8338
|
-
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
|
|
8342
|
-
|
|
8343
|
-
{
|
|
8344
|
-
className: "w-full",
|
|
8345
|
-
onClick: () => handleBackup("cloud"),
|
|
8346
|
-
disabled: loading.cloud || useCustomPassword && !customPassword || !hasKeyshareData || cloudProviders.length === 0,
|
|
8347
|
-
children: loading.cloud ? "Creating..." : "Create"
|
|
8348
|
-
}
|
|
8349
|
-
)
|
|
8350
|
-
] }),
|
|
8351
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { children: [
|
|
8352
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] mb-[var(--l-pass-gap)]", children: [
|
|
8353
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Download, { className: "h-4 w-4 text-[var(--l-pass-info)]" }),
|
|
8354
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "text-sm font-medium", children: "File" })
|
|
8337
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-xs", children: "Secure your keyshare with encrypted backups" }),
|
|
8338
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8339
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8340
|
+
Checkbox,
|
|
8341
|
+
{
|
|
8342
|
+
name: "use-backup-password-checkbox",
|
|
8343
|
+
id: "use-backup-password",
|
|
8344
|
+
checked: useCustomPassword,
|
|
8345
|
+
onCheckedChange: (checked) => setUseCustomPassword(!!checked)
|
|
8346
|
+
}
|
|
8347
|
+
),
|
|
8348
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("label", { htmlFor: "use-backup-password", className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Use custom password instead of passkey" })
|
|
8355
8349
|
] }),
|
|
8356
|
-
|
|
8357
|
-
|
|
8358
|
-
|
|
8359
|
-
|
|
8360
|
-
|
|
8361
|
-
|
|
8362
|
-
|
|
8363
|
-
|
|
8364
|
-
|
|
8365
|
-
|
|
8366
|
-
|
|
8367
|
-
|
|
8368
|
-
|
|
8369
|
-
|
|
8370
|
-
|
|
8371
|
-
|
|
8372
|
-
|
|
8373
|
-
|
|
8374
|
-
|
|
8375
|
-
|
|
8376
|
-
|
|
8377
|
-
|
|
8350
|
+
useCustomPassword ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
8351
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8352
|
+
Input,
|
|
8353
|
+
{
|
|
8354
|
+
Icon: import_lucide_react19.Key,
|
|
8355
|
+
type: showPassword ? "text" : "password",
|
|
8356
|
+
placeholder: "Enter backup password",
|
|
8357
|
+
value: customPassword,
|
|
8358
|
+
onChange: (e) => setCustomPassword(e.target.value),
|
|
8359
|
+
element: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Button, { variant: "ghost", size: "icon", type: "button", onClick: () => setShowPassword(!showPassword), children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Eye, { className: "h-4 w-4" }) })
|
|
8360
|
+
}
|
|
8361
|
+
),
|
|
8362
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
8363
|
+
Button,
|
|
8364
|
+
{
|
|
8365
|
+
size: "medium",
|
|
8366
|
+
onClick: () => handleBackup("server"),
|
|
8367
|
+
disabled: !!loading.server || !customPassword || !hasKeyshareData,
|
|
8368
|
+
className: "w-full",
|
|
8369
|
+
children: [
|
|
8370
|
+
loading.server ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(OtpIcon, { className: "h-4 w-4" }),
|
|
8371
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: loading.server ? "Backing up..." : "Create Backup with Password" })
|
|
8372
|
+
]
|
|
8373
|
+
}
|
|
8374
|
+
)
|
|
8375
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
8376
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { className: "h-12 flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8377
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Key, { className: "h-4 w-4 text-[var(--l-pass-info)] mx-1" }),
|
|
8378
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-xs", children: "Backup will be encrypted with passkey" })
|
|
8379
|
+
] }),
|
|
8380
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
8381
|
+
Button,
|
|
8382
|
+
{
|
|
8383
|
+
size: "medium",
|
|
8384
|
+
onClick: () => handleBackup("server"),
|
|
8385
|
+
disabled: loading.server || !!customPassword || !hasKeyshareData,
|
|
8386
|
+
className: "w-full",
|
|
8387
|
+
children: [
|
|
8388
|
+
loading.server ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PasskeyAddIcon, { className: "h-4 w-4" }),
|
|
8389
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: loading.server ? "Backing up..." : "Create Backup with Passkey" })
|
|
8390
|
+
]
|
|
8391
|
+
}
|
|
8392
|
+
)
|
|
8393
|
+
] }),
|
|
8394
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
8395
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
8396
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4", children: "Alternative" }),
|
|
8397
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
8398
|
+
] }),
|
|
8399
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "grid grid-cols-2 gap-[var(--l-pass-gap)]", children: [
|
|
8400
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { children: [
|
|
8401
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] mb-[var(--l-pass-gap)]", children: [
|
|
8402
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Cloud, { className: "h-4 w-4 text-[var(--l-pass-info)]" }),
|
|
8403
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "text-sm font-medium", children: "Cloud" })
|
|
8404
|
+
] }),
|
|
8405
|
+
cloudProviders.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8406
|
+
"select",
|
|
8407
|
+
{
|
|
8408
|
+
value: selectedCloudProvider || "",
|
|
8409
|
+
onChange: (e) => setSelectedCloudProvider(e.target.value),
|
|
8410
|
+
className: "text-xs text-[var(--l-pass-fg)] border border-[var(--l-pass-bd)] rounded-[var(--l-pass-el-bdrs)] px-2 py-1 w-full mb-2 bg-transparent",
|
|
8411
|
+
children: cloudProviders.map((provider) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("option", { value: provider.id, disabled: !provider.available, children: provider.name }, provider.id))
|
|
8412
|
+
}
|
|
8413
|
+
),
|
|
8414
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8415
|
+
Button,
|
|
8416
|
+
{
|
|
8417
|
+
className: "w-full",
|
|
8418
|
+
onClick: () => handleBackup("cloud"),
|
|
8419
|
+
disabled: loading.cloud || useCustomPassword && !customPassword || !hasKeyshareData || cloudProviders.length === 0,
|
|
8420
|
+
children: loading.cloud ? "Creating..." : "Create"
|
|
8421
|
+
}
|
|
8422
|
+
)
|
|
8423
|
+
] }),
|
|
8424
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { children: [
|
|
8425
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] mb-[var(--l-pass-gap)]", children: [
|
|
8426
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Download, { className: "h-4 w-4 text-[var(--l-pass-info)]" }),
|
|
8427
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "text-sm font-medium", children: "File" })
|
|
8428
|
+
] }),
|
|
8429
|
+
cloudProviders.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "h-[32px]" }),
|
|
8430
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8431
|
+
Button,
|
|
8432
|
+
{
|
|
8433
|
+
onClick: () => handleBackup("local"),
|
|
8434
|
+
disabled: loading.local || useCustomPassword && !customPassword || !hasKeyshareData,
|
|
8435
|
+
className: "w-full",
|
|
8436
|
+
children: loading.local ? "Creating..." : "Download"
|
|
8437
|
+
}
|
|
8438
|
+
)
|
|
8439
|
+
] })
|
|
8440
|
+
] }),
|
|
8441
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { className: "flex items-start gap-[var(--l-pass-gap)]", type: "warning", children: [
|
|
8442
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.Lock, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8443
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
|
|
8444
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "font-medium", children: "Security Notice:" }),
|
|
8445
|
+
" All backups are encrypted with AES-256 using your",
|
|
8446
|
+
" ",
|
|
8447
|
+
useCustomPassword ? "custom password" : "passkey",
|
|
8448
|
+
".",
|
|
8449
|
+
useCustomPassword ? " Store your password securely - " : " Your passkey authenticator is required to restore backups. ",
|
|
8450
|
+
"Without backup access, you cannot recover your account if you lose this device."
|
|
8451
|
+
] })
|
|
8452
|
+
] }),
|
|
8453
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { type: "error", className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8454
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8455
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: error })
|
|
8456
|
+
] }),
|
|
8457
|
+
success && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { type: "success", className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8458
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8459
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: success })
|
|
8460
|
+
] })
|
|
8378
8461
|
] })
|
|
8379
|
-
|
|
8380
|
-
|
|
8381
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8382
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: error })
|
|
8383
|
-
] }),
|
|
8384
|
-
success && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Highlight, { type: "success", className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8385
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react19.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8386
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: success })
|
|
8387
|
-
] })
|
|
8388
|
-
] }) });
|
|
8462
|
+
}
|
|
8463
|
+
);
|
|
8389
8464
|
}
|
|
8390
8465
|
|
|
8391
8466
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8392
8467
|
var import_react_query10 = require("@tanstack/react-query");
|
|
8393
8468
|
var import_lucide_react22 = require("lucide-react");
|
|
8394
|
-
var
|
|
8469
|
+
var import_react26 = __toESM(require("react"), 1);
|
|
8395
8470
|
init_vaultClient();
|
|
8396
8471
|
|
|
8397
8472
|
// src/internal/components/KeyshareRestoreMenu/NoBackupFound.tsx
|
|
8398
8473
|
var import_lucide_react20 = require("lucide-react");
|
|
8399
|
-
var
|
|
8474
|
+
var import_react24 = require("react");
|
|
8400
8475
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
8401
8476
|
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.`;
|
|
8402
8477
|
var ACCOUNT_FILE_RECOVERY_TEXT = `Try uploading a backup file if you have one saved locally, or create a different new account`;
|
|
8403
8478
|
function NoBackupFound(props) {
|
|
8404
8479
|
const { isLoading, restoreFromFile } = props;
|
|
8405
|
-
const [restoreFile, setRestoreFile] = (0,
|
|
8406
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
8480
|
+
const [restoreFile, setRestoreFile] = (0, import_react24.useState)(null);
|
|
8481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react24.Fragment, { children: [
|
|
8407
8482
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Highlight, { type: "error", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
|
|
8408
8483
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react20.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8409
8484
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
|
|
@@ -8444,7 +8519,7 @@ function NoBackupFound(props) {
|
|
|
8444
8519
|
|
|
8445
8520
|
// src/internal/components/KeyshareRestoreMenu/ServerBackupFound.tsx
|
|
8446
8521
|
var import_lucide_react21 = require("lucide-react");
|
|
8447
|
-
var
|
|
8522
|
+
var import_react25 = require("react");
|
|
8448
8523
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
8449
8524
|
function ServerBackupFound(props) {
|
|
8450
8525
|
const {
|
|
@@ -8460,7 +8535,7 @@ function ServerBackupFound(props) {
|
|
|
8460
8535
|
setRestorePassword,
|
|
8461
8536
|
setUseCustomPassword
|
|
8462
8537
|
} = props;
|
|
8463
|
-
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
8538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react25.Fragment, { children: [
|
|
8464
8539
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Highlight, { type: "success", className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
8465
8540
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react21.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8466
8541
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full flex-1", children: [
|
|
@@ -8573,19 +8648,20 @@ var KeyshareRestoreMenu = () => {
|
|
|
8573
8648
|
config: { current: config },
|
|
8574
8649
|
callbacks
|
|
8575
8650
|
} = useLumiaPassportConfig();
|
|
8576
|
-
const
|
|
8651
|
+
const layoutView = useLayoutStore((st) => st.layoutView);
|
|
8577
8652
|
const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
|
|
8578
|
-
|
|
8653
|
+
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
8654
|
+
(0, import_react26.useEffect)(() => setIsDialogForced(true), []);
|
|
8579
8655
|
const { usePaymaster, recoveryUserId, setRecoveryUserId, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
|
|
8580
|
-
const [error, setError] =
|
|
8581
|
-
const [success, setSuccess] =
|
|
8582
|
-
const [showPassword, setShowPassword] =
|
|
8583
|
-
const [useCustomPassword, setUseCustomPassword] =
|
|
8584
|
-
const [restoreFile, setRestoreFile] =
|
|
8585
|
-
const [restorePassword, setRestorePassword] =
|
|
8586
|
-
const [hasServerBackup, setHasServerBackup] =
|
|
8587
|
-
const [checkingBackup, setCheckingBackup] =
|
|
8588
|
-
const createSessionWithKeyshare = (0,
|
|
8656
|
+
const [error, setError] = import_react26.default.useState(null);
|
|
8657
|
+
const [success, setSuccess] = import_react26.default.useState(null);
|
|
8658
|
+
const [showPassword, setShowPassword] = import_react26.default.useState(false);
|
|
8659
|
+
const [useCustomPassword, setUseCustomPassword] = import_react26.default.useState(false);
|
|
8660
|
+
const [restoreFile, setRestoreFile] = import_react26.default.useState(null);
|
|
8661
|
+
const [restorePassword, setRestorePassword] = import_react26.default.useState("");
|
|
8662
|
+
const [hasServerBackup, setHasServerBackup] = import_react26.default.useState(null);
|
|
8663
|
+
const [checkingBackup, setCheckingBackup] = import_react26.default.useState(true);
|
|
8664
|
+
const createSessionWithKeyshare = (0, import_react26.useCallback)(
|
|
8589
8665
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
8590
8666
|
try {
|
|
8591
8667
|
try {
|
|
@@ -8619,7 +8695,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8619
8695
|
},
|
|
8620
8696
|
[setStatus, callbacks, usePaymaster]
|
|
8621
8697
|
);
|
|
8622
|
-
const onRestoreSuccess = (0,
|
|
8698
|
+
const onRestoreSuccess = (0, import_react26.useCallback)(async () => {
|
|
8623
8699
|
const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
8624
8700
|
const verify = await verifyToken2();
|
|
8625
8701
|
const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
|
|
@@ -8684,7 +8760,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
8684
8760
|
callbacks,
|
|
8685
8761
|
config.projectId
|
|
8686
8762
|
]);
|
|
8687
|
-
(0,
|
|
8763
|
+
(0, import_react26.useEffect)(() => {
|
|
8688
8764
|
const checkBackupAvailability = async () => {
|
|
8689
8765
|
try {
|
|
8690
8766
|
setCheckingBackup(true);
|
|
@@ -8797,56 +8873,63 @@ var KeyshareRestoreMenu = () => {
|
|
|
8797
8873
|
setIsLoading(false);
|
|
8798
8874
|
}
|
|
8799
8875
|
});
|
|
8800
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.
|
|
8801
|
-
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
8806
|
-
|
|
8807
|
-
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
|
|
8813
|
-
|
|
8814
|
-
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8825
|
-
|
|
8826
|
-
|
|
8827
|
-
|
|
8828
|
-
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
|
|
8832
|
-
|
|
8833
|
-
|
|
8834
|
-
|
|
8835
|
-
|
|
8836
|
-
|
|
8837
|
-
|
|
8838
|
-
|
|
8839
|
-
|
|
8840
|
-
|
|
8841
|
-
|
|
8842
|
-
|
|
8843
|
-
|
|
8844
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
|
|
8848
|
-
|
|
8849
|
-
|
|
8876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
8877
|
+
"div",
|
|
8878
|
+
{
|
|
8879
|
+
style: { "--l-pass-scrollbar-mah": `${MAX_CONTENT_HEIGHTS[layoutView]}px` },
|
|
8880
|
+
className: "list-scrollbar-y w-full",
|
|
8881
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
8882
|
+
checkingBackup && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
|
|
8883
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react22.Loader, { className: "w-5 h-5 animate-spin" }),
|
|
8884
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." }),
|
|
8885
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "block w-full text-xs leading-4", children: "Please wait while we check for available backups..." })
|
|
8886
|
+
] }),
|
|
8887
|
+
!checkingBackup && hasServerBackup === false && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(NoBackupFound, { isLoading: isRestoringFromFile || isDisconnecting, restoreFromFile }),
|
|
8888
|
+
!checkingBackup && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
8889
|
+
ServerBackupFound,
|
|
8890
|
+
{
|
|
8891
|
+
showPassword,
|
|
8892
|
+
setShowPassword,
|
|
8893
|
+
useCustomPassword,
|
|
8894
|
+
setUseCustomPassword,
|
|
8895
|
+
restorePassword,
|
|
8896
|
+
setRestorePassword,
|
|
8897
|
+
restoreFile,
|
|
8898
|
+
setRestoreFile,
|
|
8899
|
+
isLoading: isRestoringFromFile || isRestoringFromServer || isDisconnecting,
|
|
8900
|
+
restoreFromFile,
|
|
8901
|
+
restoreFromServer: restoreFromServer2
|
|
8902
|
+
}
|
|
8903
|
+
),
|
|
8904
|
+
!checkingBackup && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
8905
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
8906
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Misc" }),
|
|
8907
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
8908
|
+
] }),
|
|
8909
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
8910
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react22.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8911
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "w-full flex-1 block", children: error })
|
|
8912
|
+
] }),
|
|
8913
|
+
success && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
8914
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react22.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
8915
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "w-full flex-1 block", children: success })
|
|
8916
|
+
] }),
|
|
8917
|
+
!checkingBackup && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
8918
|
+
Button,
|
|
8919
|
+
{
|
|
8920
|
+
size: "large",
|
|
8921
|
+
variant: "ghost",
|
|
8922
|
+
onClick: () => disconnect(),
|
|
8923
|
+
disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
|
|
8924
|
+
children: [
|
|
8925
|
+
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react22.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react22.LogOut, { className: "w-4 h-4" }),
|
|
8926
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: "Disconnect" })
|
|
8927
|
+
]
|
|
8928
|
+
}
|
|
8929
|
+
)
|
|
8930
|
+
] })
|
|
8931
|
+
}
|
|
8932
|
+
);
|
|
8850
8933
|
};
|
|
8851
8934
|
|
|
8852
8935
|
// src/internal/components/KYC/KycMenu.tsx
|
|
@@ -8856,7 +8939,7 @@ var import_lucide_react24 = require("lucide-react");
|
|
|
8856
8939
|
var import_lucide_react23 = require("lucide-react");
|
|
8857
8940
|
|
|
8858
8941
|
// src/internal/components/KYC/useSumsubIframe.ts
|
|
8859
|
-
var
|
|
8942
|
+
var import_react27 = require("react");
|
|
8860
8943
|
|
|
8861
8944
|
// src/internal/components/KYC/api/sumsub.ts
|
|
8862
8945
|
init_httpClient();
|
|
@@ -8979,13 +9062,13 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
8979
9062
|
config: { current: config }
|
|
8980
9063
|
} = useLumiaPassportConfig();
|
|
8981
9064
|
const { colorMode } = useLumiaPassportColorMode();
|
|
8982
|
-
const iframeRef = (0,
|
|
8983
|
-
const [isLoading, setIsLoading] = (0,
|
|
8984
|
-
const [error, setError] = (0,
|
|
8985
|
-
const [height, setHeight] = (0,
|
|
8986
|
-
const [status, setStatus] = (0,
|
|
9065
|
+
const iframeRef = (0, import_react27.useRef)(null);
|
|
9066
|
+
const [isLoading, setIsLoading] = (0, import_react27.useState)(true);
|
|
9067
|
+
const [error, setError] = (0, import_react27.useState)(null);
|
|
9068
|
+
const [height, setHeight] = (0, import_react27.useState)(0);
|
|
9069
|
+
const [status, setStatus] = (0, import_react27.useState)("");
|
|
8987
9070
|
const levelName = config.kyc?.options?.levelName;
|
|
8988
|
-
(0,
|
|
9071
|
+
(0, import_react27.useEffect)(() => {
|
|
8989
9072
|
setError(null);
|
|
8990
9073
|
setIsLoading(true);
|
|
8991
9074
|
setStatus("Preparing verification...");
|
|
@@ -9068,14 +9151,18 @@ var KycContent = () => {
|
|
|
9068
9151
|
};
|
|
9069
9152
|
function KycMenu() {
|
|
9070
9153
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9154
|
+
const layoutView = useLayoutStore((st) => st.layoutView);
|
|
9071
9155
|
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
9072
9156
|
"div",
|
|
9073
9157
|
{
|
|
9074
9158
|
style: {
|
|
9075
|
-
"--l-pass-scrollbar-mah":
|
|
9076
|
-
"--l-pass-list-scrollbar-pd-
|
|
9159
|
+
"--l-pass-scrollbar-mah": `${MAX_CONTENT_HEIGHTS[layoutView]}px`,
|
|
9160
|
+
"--l-pass-list-scrollbar-pd-r": "4px",
|
|
9161
|
+
"paddingTop": "var(--l-pass-pd)",
|
|
9162
|
+
"paddingBottom": "var(--l-pass-pd)",
|
|
9163
|
+
"paddingLeft": "4px"
|
|
9077
9164
|
},
|
|
9078
|
-
className: "list-scrollbar-y w-full
|
|
9165
|
+
className: "list-scrollbar-y w-full flex flex-col gap-[var(--l-pass-gap)]",
|
|
9079
9166
|
children: [
|
|
9080
9167
|
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9081
9168
|
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react24.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
@@ -9089,7 +9176,7 @@ function KycMenu() {
|
|
|
9089
9176
|
|
|
9090
9177
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9091
9178
|
var import_lucide_react26 = require("lucide-react");
|
|
9092
|
-
var
|
|
9179
|
+
var import_react28 = require("react");
|
|
9093
9180
|
|
|
9094
9181
|
// src/internal/components/MainMenu/BackupWarning.tsx
|
|
9095
9182
|
var import_framer_motion2 = require("framer-motion");
|
|
@@ -9145,7 +9232,7 @@ function MainMenu() {
|
|
|
9145
9232
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9146
9233
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9147
9234
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9148
|
-
(0,
|
|
9235
|
+
(0, import_react28.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
9149
9236
|
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
9150
9237
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "grid grid-cols-4 gap-[var(--l-pass-gap)]", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
9151
9238
|
Button,
|
|
@@ -9167,13 +9254,13 @@ function MainMenu() {
|
|
|
9167
9254
|
}
|
|
9168
9255
|
|
|
9169
9256
|
// src/internal/components/ManageWalletMenu/ManageWallet.tsx
|
|
9170
|
-
var
|
|
9257
|
+
var import_lodash_es2 = require("lodash-es");
|
|
9171
9258
|
var import_lucide_react30 = require("lucide-react");
|
|
9172
|
-
var
|
|
9259
|
+
var import_react32 = require("react");
|
|
9173
9260
|
|
|
9174
9261
|
// src/modules/linkedProfiles.ts
|
|
9175
9262
|
var import_react_query12 = require("@tanstack/react-query");
|
|
9176
|
-
var
|
|
9263
|
+
var import_react29 = require("react");
|
|
9177
9264
|
init_auth();
|
|
9178
9265
|
init_common();
|
|
9179
9266
|
init_types();
|
|
@@ -9206,7 +9293,7 @@ function useLumiaPassportLinkedProfiles() {
|
|
|
9206
9293
|
queryFn: getLinkProfilesData
|
|
9207
9294
|
});
|
|
9208
9295
|
const { profiles = [], avatar = null } = data || {};
|
|
9209
|
-
const refresh = (0,
|
|
9296
|
+
const refresh = (0, import_react29.useCallback)(async () => {
|
|
9210
9297
|
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
|
|
9211
9298
|
}, [qc, address]);
|
|
9212
9299
|
return { profiles, avatar, isLoading, error, refresh };
|
|
@@ -9221,35 +9308,6 @@ init_lumiaPassport();
|
|
|
9221
9308
|
var import_react_query13 = require("@tanstack/react-query");
|
|
9222
9309
|
var import_lucide_react27 = require("lucide-react");
|
|
9223
9310
|
init_projectId();
|
|
9224
|
-
|
|
9225
|
-
// src/internal/components/ManageWalletMenu/hooks/useStore.ts
|
|
9226
|
-
var import_zustand4 = require("zustand");
|
|
9227
|
-
var useManageWalletStore = (0, import_zustand4.create)((set) => ({
|
|
9228
|
-
emailStep: "input",
|
|
9229
|
-
email: "",
|
|
9230
|
-
emailCode: "",
|
|
9231
|
-
emailCodeSentError: "",
|
|
9232
|
-
emailCodeExpiresIn: 0,
|
|
9233
|
-
isWalletLinking: false,
|
|
9234
|
-
linkIsLoading: false,
|
|
9235
|
-
linkError: "",
|
|
9236
|
-
verificationError: "",
|
|
9237
|
-
providerType: null,
|
|
9238
|
-
confirmUnlink: null,
|
|
9239
|
-
setEmailStep: (emailStep) => set({ emailStep }),
|
|
9240
|
-
setEmail: (email) => set({ email }),
|
|
9241
|
-
setEmailCode: (emailCode) => set({ emailCode }),
|
|
9242
|
-
setEmailCodeSentError: (emailCodeSentError) => set({ emailCodeSentError }),
|
|
9243
|
-
setEmailCodeExpiresIn: (emailCodeExpiresIn) => set({ emailCodeExpiresIn }),
|
|
9244
|
-
setIsWalletLinking: (isWalletLinking) => set({ isWalletLinking }),
|
|
9245
|
-
setLinkIsLoading: (linkIsLoading) => set({ linkIsLoading }),
|
|
9246
|
-
setLinkError: (linkError) => set({ linkError }),
|
|
9247
|
-
setVerificationError: (verificationError) => set({ verificationError }),
|
|
9248
|
-
setProviderType: (providerType) => set({ providerType }),
|
|
9249
|
-
setConfirmUnlink: (confirmUnlink) => set({ confirmUnlink })
|
|
9250
|
-
}));
|
|
9251
|
-
|
|
9252
|
-
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9253
9311
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
9254
9312
|
function EmailForm() {
|
|
9255
9313
|
const {
|
|
@@ -9607,7 +9665,7 @@ function EmailNotConnectedWarning() {
|
|
|
9607
9665
|
|
|
9608
9666
|
// src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
|
|
9609
9667
|
var import_react_query18 = require("@tanstack/react-query");
|
|
9610
|
-
var
|
|
9668
|
+
var import_react30 = __toESM(require("react"), 1);
|
|
9611
9669
|
init_auth();
|
|
9612
9670
|
function useLinkSocial() {
|
|
9613
9671
|
const qc = (0, import_react_query18.useQueryClient)();
|
|
@@ -9617,15 +9675,16 @@ function useLinkSocial() {
|
|
|
9617
9675
|
callbacks
|
|
9618
9676
|
} = useLumiaPassportConfig();
|
|
9619
9677
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9620
|
-
const { providerType, linkIsLoading, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
|
|
9621
|
-
const handleLinkSocialProvider =
|
|
9678
|
+
const { providerType, linkIsLoading, isWalletLinking, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
|
|
9679
|
+
const handleLinkSocialProvider = import_react30.default.useCallback(
|
|
9622
9680
|
async (providerIdRaw) => {
|
|
9623
9681
|
const providerKey = providerIdRaw.toLowerCase();
|
|
9682
|
+
const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
|
|
9624
9683
|
try {
|
|
9625
9684
|
setLinkIsLoading(true);
|
|
9626
9685
|
setLinkError("");
|
|
9627
9686
|
const socialProvider = config.social?.providers?.find(
|
|
9628
|
-
(p) => (p.id || "").toLowerCase() ===
|
|
9687
|
+
(p) => (p.id || "").toLowerCase() === normalizedKey && p.enabled
|
|
9629
9688
|
);
|
|
9630
9689
|
if (!socialProvider) {
|
|
9631
9690
|
throw new Error(`${providerIdRaw} provider not configured`);
|
|
@@ -9669,23 +9728,29 @@ function useLinkSocial() {
|
|
|
9669
9728
|
},
|
|
9670
9729
|
[config.social?.providers, callbacks]
|
|
9671
9730
|
);
|
|
9672
|
-
const [socialLinkStarted, setSocialLinkStarted] =
|
|
9673
|
-
(0,
|
|
9731
|
+
const [socialLinkStarted, setSocialLinkStarted] = import_react30.default.useState(false);
|
|
9732
|
+
(0, import_react30.useEffect)(() => {
|
|
9674
9733
|
const key = providerType?.toLowerCase();
|
|
9734
|
+
console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
|
|
9735
|
+
if (isWalletLinking) {
|
|
9736
|
+
console.log("[useLinkSocial] Skipping - wallet linking in progress");
|
|
9737
|
+
return;
|
|
9738
|
+
}
|
|
9675
9739
|
if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
|
|
9676
9740
|
if (!linkIsLoading && !socialLinkStarted) {
|
|
9741
|
+
console.log("[useLinkSocial] Starting social link flow for:", key);
|
|
9677
9742
|
setSocialLinkStarted(true);
|
|
9678
9743
|
handleLinkSocialProvider(key);
|
|
9679
9744
|
}
|
|
9680
9745
|
} else if (socialLinkStarted) {
|
|
9681
9746
|
setSocialLinkStarted(false);
|
|
9682
9747
|
}
|
|
9683
|
-
}, [providerType, linkIsLoading, socialLinkStarted, handleLinkSocialProvider]);
|
|
9748
|
+
}, [providerType, linkIsLoading, socialLinkStarted, isWalletLinking, handleLinkSocialProvider]);
|
|
9684
9749
|
}
|
|
9685
9750
|
|
|
9686
9751
|
// src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
|
|
9687
9752
|
var import_react_query19 = require("@tanstack/react-query");
|
|
9688
|
-
var
|
|
9753
|
+
var import_react31 = require("react");
|
|
9689
9754
|
init_telegram2();
|
|
9690
9755
|
function useLinkTelegram() {
|
|
9691
9756
|
const {
|
|
@@ -9694,9 +9759,9 @@ function useLinkTelegram() {
|
|
|
9694
9759
|
} = useLumiaPassportConfig();
|
|
9695
9760
|
const qc = (0, import_react_query19.useQueryClient)();
|
|
9696
9761
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9697
|
-
const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
|
|
9762
|
+
const { providerType, linkIsLoading, isWalletLinking, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
|
|
9698
9763
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9699
|
-
const handleLinkTelegram = (0,
|
|
9764
|
+
const handleLinkTelegram = (0, import_react31.useCallback)(async () => {
|
|
9700
9765
|
try {
|
|
9701
9766
|
setLinkIsLoading(true);
|
|
9702
9767
|
setLinkError("");
|
|
@@ -9738,14 +9803,20 @@ function useLinkTelegram() {
|
|
|
9738
9803
|
setLinkIsLoading(false);
|
|
9739
9804
|
}
|
|
9740
9805
|
}, [config.social?.providers, callbacks]);
|
|
9741
|
-
const [telegramLinkStarted, setTelegramLinkStarted] = (0,
|
|
9742
|
-
(0,
|
|
9806
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react31.useState)(false);
|
|
9807
|
+
(0, import_react31.useEffect)(() => {
|
|
9808
|
+
console.log("[useLinkTelegram] Effect triggered:", { providerType, linkIsLoading, telegramLinkStarted, isWalletLinking });
|
|
9809
|
+
if (isWalletLinking) {
|
|
9810
|
+
console.log("[useLinkTelegram] Skipping - wallet linking in progress");
|
|
9811
|
+
return;
|
|
9812
|
+
}
|
|
9743
9813
|
if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
|
|
9814
|
+
console.log("[useLinkTelegram] Starting Telegram link flow");
|
|
9744
9815
|
setTelegramLinkStarted(true);
|
|
9745
9816
|
handleLinkTelegram();
|
|
9746
9817
|
}
|
|
9747
|
-
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
|
|
9748
|
-
(0,
|
|
9818
|
+
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
|
|
9819
|
+
(0, import_react31.useEffect)(() => {
|
|
9749
9820
|
if (providerType !== "telegram") {
|
|
9750
9821
|
setTelegramLinkStarted(false);
|
|
9751
9822
|
}
|
|
@@ -9827,7 +9898,7 @@ function getConfiguredProviders(config) {
|
|
|
9827
9898
|
});
|
|
9828
9899
|
return acc;
|
|
9829
9900
|
},
|
|
9830
|
-
(0,
|
|
9901
|
+
(0, import_lodash_es2.fromPairs)(POSSIBLE_PROVIDERS.map((p) => [p, false]))
|
|
9831
9902
|
);
|
|
9832
9903
|
}
|
|
9833
9904
|
function ManageWalletMenu() {
|
|
@@ -9837,6 +9908,7 @@ function ManageWalletMenu() {
|
|
|
9837
9908
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9838
9909
|
const {
|
|
9839
9910
|
providerType,
|
|
9911
|
+
isWalletLinking,
|
|
9840
9912
|
linkError,
|
|
9841
9913
|
verificationError,
|
|
9842
9914
|
emailCodeSentError,
|
|
@@ -9847,13 +9919,14 @@ function ManageWalletMenu() {
|
|
|
9847
9919
|
setEmailCodeExpiresIn,
|
|
9848
9920
|
setEmailCode,
|
|
9849
9921
|
setLinkError,
|
|
9850
|
-
setVerificationError
|
|
9922
|
+
setVerificationError,
|
|
9923
|
+
setIsWalletLinking
|
|
9851
9924
|
} = useManageWalletStore();
|
|
9852
9925
|
const configuredProviders = getConfiguredProviders(config);
|
|
9853
9926
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
9854
9927
|
console.log("[MANAGE WALLET MENU] RENDER", providers);
|
|
9855
|
-
const renderProviders = (0,
|
|
9856
|
-
const usedProviders = (0,
|
|
9928
|
+
const renderProviders = (0, import_react32.useMemo)(() => {
|
|
9929
|
+
const usedProviders = (0, import_lodash_es2.fromPairs)(providers.map((p) => [p.provider, true]));
|
|
9857
9930
|
const used = [];
|
|
9858
9931
|
const unused = [];
|
|
9859
9932
|
POSSIBLE_PROVIDERS.forEach((provider, providerIdx) => {
|
|
@@ -9871,7 +9944,9 @@ function ManageWalletMenu() {
|
|
|
9871
9944
|
variant: "default",
|
|
9872
9945
|
size: "medium",
|
|
9873
9946
|
className: "w-full",
|
|
9947
|
+
disabled: isWalletLinking,
|
|
9874
9948
|
onClick: () => {
|
|
9949
|
+
if (isWalletLinking) return;
|
|
9875
9950
|
switch (provider) {
|
|
9876
9951
|
case "email":
|
|
9877
9952
|
setEmail("");
|
|
@@ -9882,7 +9957,12 @@ function ManageWalletMenu() {
|
|
|
9882
9957
|
setProviderType(provider);
|
|
9883
9958
|
break;
|
|
9884
9959
|
case "twitter":
|
|
9885
|
-
|
|
9960
|
+
console.log("[ManageWallet] Twitter button clicked!");
|
|
9961
|
+
setProviderType("twitter");
|
|
9962
|
+
break;
|
|
9963
|
+
case "wallet":
|
|
9964
|
+
setProviderType(null);
|
|
9965
|
+
setIsWalletLinking(true);
|
|
9886
9966
|
break;
|
|
9887
9967
|
default:
|
|
9888
9968
|
setProviderType(provider);
|
|
@@ -9900,7 +9980,7 @@ function ManageWalletMenu() {
|
|
|
9900
9980
|
}
|
|
9901
9981
|
});
|
|
9902
9982
|
return [...used, ...unused];
|
|
9903
|
-
}, [providers, configuredProviders]);
|
|
9983
|
+
}, [providers, configuredProviders, isWalletLinking]);
|
|
9904
9984
|
useLinkTelegram();
|
|
9905
9985
|
useLinkSocial();
|
|
9906
9986
|
const showCurrentProviders = !isProvidersLoading && !providersError && (providerType !== "email" && providerType !== "passkey" || providerType === null);
|
|
@@ -9949,7 +10029,7 @@ function ManageWalletMenu() {
|
|
|
9949
10029
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
9950
10030
|
var import_react_query20 = require("@tanstack/react-query");
|
|
9951
10031
|
var import_lucide_react31 = require("lucide-react");
|
|
9952
|
-
var
|
|
10032
|
+
var import_react33 = require("react");
|
|
9953
10033
|
init_auth();
|
|
9954
10034
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
9955
10035
|
function UnlinkProviderMenu() {
|
|
@@ -9958,7 +10038,7 @@ function UnlinkProviderMenu() {
|
|
|
9958
10038
|
const { callbacks } = useLumiaPassportConfig();
|
|
9959
10039
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9960
10040
|
const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
|
|
9961
|
-
const [confirmInput, setConfirmInput] = (0,
|
|
10041
|
+
const [confirmInput, setConfirmInput] = (0, import_react33.useState)("");
|
|
9962
10042
|
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query20.useMutation)({
|
|
9963
10043
|
mutationFn: async () => {
|
|
9964
10044
|
if (!confirmUnlink) {
|
|
@@ -9968,14 +10048,15 @@ function UnlinkProviderMenu() {
|
|
|
9968
10048
|
await unlinkProvider(provider, externalId);
|
|
9969
10049
|
},
|
|
9970
10050
|
onSuccess: async () => {
|
|
9971
|
-
|
|
9972
|
-
|
|
10051
|
+
setConfirmUnlink(null);
|
|
10052
|
+
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
10053
|
+
await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address], refetchType: "active" });
|
|
10054
|
+
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address], refetchType: "active" });
|
|
10055
|
+
await qc.refetchQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
|
|
9973
10056
|
try {
|
|
9974
10057
|
callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
|
|
9975
10058
|
} catch {
|
|
9976
10059
|
}
|
|
9977
|
-
setConfirmUnlink(null);
|
|
9978
|
-
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
9979
10060
|
},
|
|
9980
10061
|
onError: (error) => {
|
|
9981
10062
|
setLinkError(error?.message || "Failed to unlink provider");
|
|
@@ -10033,10 +10114,10 @@ function UnlinkProviderMenu() {
|
|
|
10033
10114
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
10034
10115
|
var import_react_query22 = require("@tanstack/react-query");
|
|
10035
10116
|
var import_lucide_react33 = require("lucide-react");
|
|
10036
|
-
var
|
|
10117
|
+
var import_react35 = require("react");
|
|
10037
10118
|
|
|
10038
10119
|
// src/modules/assets.ts
|
|
10039
|
-
var
|
|
10120
|
+
var import_react34 = __toESM(require("react"), 1);
|
|
10040
10121
|
var import_wagmi2 = require("wagmi");
|
|
10041
10122
|
var import_viem4 = require("viem");
|
|
10042
10123
|
init_base();
|
|
@@ -10183,7 +10264,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
10183
10264
|
}
|
|
10184
10265
|
});
|
|
10185
10266
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
10186
|
-
const formattedBalance =
|
|
10267
|
+
const formattedBalance = import_react34.default.useMemo(() => {
|
|
10187
10268
|
if (!balance || !tokenInfo) return "0";
|
|
10188
10269
|
return (0, import_viem4.formatUnits)(balance, tokenInfo.decimals);
|
|
10189
10270
|
}, [balance, tokenInfo]);
|
|
@@ -10292,29 +10373,30 @@ function PortfolioMenu() {
|
|
|
10292
10373
|
const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
|
|
10293
10374
|
const qc = (0, import_react_query22.useQueryClient)();
|
|
10294
10375
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10295
|
-
const
|
|
10296
|
-
const
|
|
10376
|
+
const layoutView = useLayoutStore((st) => st.layoutView);
|
|
10377
|
+
const assetsContainerListRef = (0, import_react35.useRef)(null);
|
|
10378
|
+
const assetsListRef = (0, import_react35.useRef)(null);
|
|
10297
10379
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10298
10380
|
const { assets, refreshBalances, isLoading } = useAssets(address);
|
|
10299
|
-
const refreshAllAssetsBalances = (0,
|
|
10381
|
+
const refreshAllAssetsBalances = (0, import_react35.useCallback)(() => {
|
|
10300
10382
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10301
10383
|
refreshBalances();
|
|
10302
10384
|
}, [qc, projectAssets, refreshBalances]);
|
|
10303
|
-
(0,
|
|
10385
|
+
(0, import_react35.useEffect)(() => {
|
|
10304
10386
|
if (!assetsContainerListRef.current || !assetsListRef.current) return;
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
}, []);
|
|
10387
|
+
const listTargetHeight = MAX_CONTENT_HEIGHTS[layoutView] - 128;
|
|
10388
|
+
assetsContainerListRef.current.style.setProperty("--l-pass-scrollbar-mah", `${listTargetHeight}px`);
|
|
10389
|
+
assetsContainerListRef.current.style.setProperty(
|
|
10390
|
+
"--l-pass-list-bd",
|
|
10391
|
+
assetsListRef.current.clientHeight >= listTargetHeight ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
|
|
10392
|
+
// hide border if no scrollbar
|
|
10393
|
+
);
|
|
10394
|
+
assetsContainerListRef.current.style.setProperty(
|
|
10395
|
+
"--l-pass-list-scrollbar-pd-r",
|
|
10396
|
+
assetsListRef.current.clientHeight >= listTargetHeight ? "4px" : "0px"
|
|
10397
|
+
// remove padding if no scrollbar
|
|
10398
|
+
);
|
|
10399
|
+
}, [layoutView]);
|
|
10318
10400
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
10319
10401
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10320
10402
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
@@ -10373,7 +10455,7 @@ function PortfolioMenu() {
|
|
|
10373
10455
|
|
|
10374
10456
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10375
10457
|
var import_lucide_react34 = require("lucide-react");
|
|
10376
|
-
var
|
|
10458
|
+
var import_react36 = require("react");
|
|
10377
10459
|
init_auth();
|
|
10378
10460
|
init_keyshare();
|
|
10379
10461
|
init_vaultClient();
|
|
@@ -10385,18 +10467,18 @@ function SecurityMenu() {
|
|
|
10385
10467
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
10386
10468
|
const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
10387
10469
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10388
|
-
const [isRefreshing, setIsRefreshing] = (0,
|
|
10389
|
-
const [localInfo, setLocalInfo] = (0,
|
|
10390
|
-
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0,
|
|
10391
|
-
const [recoveryBrowser, setRecoveryBrowser] = (0,
|
|
10392
|
-
const [recoveryUa, setRecoveryUa] = (0,
|
|
10393
|
-
const [recoveryDeviceId, setRecoveryDeviceId] = (0,
|
|
10394
|
-
const [recoveryDeviceName, setRecoveryDeviceName] = (0,
|
|
10395
|
-
const [recoveryCountry, setRecoveryCountry] = (0,
|
|
10396
|
-
const [hasServerBackup, setHasServerBackup] = (0,
|
|
10397
|
-
const [trustedApps, setTrustedApps] = (0,
|
|
10398
|
-
const [appToRemove, setAppToRemove] = (0,
|
|
10399
|
-
const fetchRecovery = (0,
|
|
10470
|
+
const [isRefreshing, setIsRefreshing] = (0, import_react36.useState)(false);
|
|
10471
|
+
const [localInfo, setLocalInfo] = (0, import_react36.useState)(null);
|
|
10472
|
+
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react36.useState)(null);
|
|
10473
|
+
const [recoveryBrowser, setRecoveryBrowser] = (0, import_react36.useState)(null);
|
|
10474
|
+
const [recoveryUa, setRecoveryUa] = (0, import_react36.useState)(null);
|
|
10475
|
+
const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react36.useState)(null);
|
|
10476
|
+
const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react36.useState)(null);
|
|
10477
|
+
const [recoveryCountry, setRecoveryCountry] = (0, import_react36.useState)(null);
|
|
10478
|
+
const [hasServerBackup, setHasServerBackup] = (0, import_react36.useState)(false);
|
|
10479
|
+
const [trustedApps, setTrustedApps] = (0, import_react36.useState)([]);
|
|
10480
|
+
const [appToRemove, setAppToRemove] = (0, import_react36.useState)(null);
|
|
10481
|
+
const fetchRecovery = (0, import_react36.useCallback)(async () => {
|
|
10400
10482
|
if (!userId) return;
|
|
10401
10483
|
try {
|
|
10402
10484
|
setIsRefreshing(true);
|
|
@@ -10429,7 +10511,7 @@ function SecurityMenu() {
|
|
|
10429
10511
|
setIsRefreshing(false);
|
|
10430
10512
|
}
|
|
10431
10513
|
}, [userId]);
|
|
10432
|
-
(0,
|
|
10514
|
+
(0, import_react36.useEffect)(() => {
|
|
10433
10515
|
if (open) fetchRecovery();
|
|
10434
10516
|
}, [open, fetchRecovery]);
|
|
10435
10517
|
const parseOS = (ua) => {
|
|
@@ -10621,21 +10703,21 @@ function SecurityMenu() {
|
|
|
10621
10703
|
|
|
10622
10704
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
10623
10705
|
var import_lucide_react35 = require("lucide-react");
|
|
10624
|
-
var
|
|
10706
|
+
var import_react38 = require("react");
|
|
10625
10707
|
var import_viem6 = require("viem");
|
|
10626
10708
|
var import_wagmi3 = require("wagmi");
|
|
10627
10709
|
|
|
10628
10710
|
// src/hooks/useSendTransaction.ts
|
|
10629
|
-
var
|
|
10711
|
+
var import_react37 = require("react");
|
|
10630
10712
|
var import_viem5 = require("viem");
|
|
10631
10713
|
init_account();
|
|
10632
10714
|
function useSendTransaction() {
|
|
10633
10715
|
const session = useLumiaPassportSession((st) => st.session);
|
|
10634
10716
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10635
|
-
const [isLoading, setIsLoading] = (0,
|
|
10636
|
-
const [error, setError] = (0,
|
|
10637
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
10638
|
-
const sendTransaction = (0,
|
|
10717
|
+
const [isLoading, setIsLoading] = (0, import_react37.useState)(false);
|
|
10718
|
+
const [error, setError] = (0, import_react37.useState)(null);
|
|
10719
|
+
const [userOpHash, setUserOpHash] = (0, import_react37.useState)(null);
|
|
10720
|
+
const sendTransaction = (0, import_react37.useCallback)(
|
|
10639
10721
|
async (params) => {
|
|
10640
10722
|
if (!session || !address) {
|
|
10641
10723
|
setError("No active session");
|
|
@@ -10675,7 +10757,7 @@ function useSendTransaction() {
|
|
|
10675
10757
|
},
|
|
10676
10758
|
[session, address]
|
|
10677
10759
|
);
|
|
10678
|
-
const reset = (0,
|
|
10760
|
+
const reset = (0, import_react37.useCallback)(() => {
|
|
10679
10761
|
setError(null);
|
|
10680
10762
|
setUserOpHash(null);
|
|
10681
10763
|
setIsLoading(false);
|
|
@@ -10703,13 +10785,13 @@ function SendLumiaMenu() {
|
|
|
10703
10785
|
address,
|
|
10704
10786
|
chainId: lumiaBeam.id
|
|
10705
10787
|
});
|
|
10706
|
-
const [recipient, setRecipient] = (0,
|
|
10707
|
-
const [amount, setAmount] = (0,
|
|
10708
|
-
const [txStep, setTxStep] = (0,
|
|
10709
|
-
const [validationError, setValidationError] = (0,
|
|
10788
|
+
const [recipient, setRecipient] = (0, import_react38.useState)("");
|
|
10789
|
+
const [amount, setAmount] = (0, import_react38.useState)("");
|
|
10790
|
+
const [txStep, setTxStep] = (0, import_react38.useState)("input");
|
|
10791
|
+
const [validationError, setValidationError] = (0, import_react38.useState)(null);
|
|
10710
10792
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
10711
10793
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
10712
|
-
(0,
|
|
10794
|
+
(0, import_react38.useEffect)(() => {
|
|
10713
10795
|
if (open) {
|
|
10714
10796
|
setTxStep("input");
|
|
10715
10797
|
setValidationError(null);
|
|
@@ -10873,17 +10955,18 @@ function SendLumiaMenu() {
|
|
|
10873
10955
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
10874
10956
|
var import_lucide_react36 = require("lucide-react");
|
|
10875
10957
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
10876
|
-
var
|
|
10958
|
+
var import_react39 = require("react");
|
|
10877
10959
|
init_clients();
|
|
10878
10960
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
10879
10961
|
function ReceiveLumiaMenu() {
|
|
10962
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
10880
10963
|
const page = useLayoutDataStore((st) => st.page);
|
|
10881
10964
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10965
|
+
const layoutView = useLayoutStore((st) => st.layoutView);
|
|
10882
10966
|
const open = page === "receive";
|
|
10883
|
-
const
|
|
10884
|
-
const [
|
|
10885
|
-
|
|
10886
|
-
(0, import_react38.useEffect)(() => {
|
|
10967
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react39.useState)("");
|
|
10968
|
+
const [copied, setCopied] = (0, import_react39.useState)(false);
|
|
10969
|
+
(0, import_react39.useEffect)(() => {
|
|
10887
10970
|
if (open && address) {
|
|
10888
10971
|
import_qrcode.default.toDataURL(address, {
|
|
10889
10972
|
width: 200,
|
|
@@ -10896,7 +10979,7 @@ function ReceiveLumiaMenu() {
|
|
|
10896
10979
|
});
|
|
10897
10980
|
}
|
|
10898
10981
|
}, [open, address]);
|
|
10899
|
-
const handleCopy = async () => {
|
|
10982
|
+
const handleCopy = (0, import_react39.useCallback)(async () => {
|
|
10900
10983
|
if (!address) return;
|
|
10901
10984
|
try {
|
|
10902
10985
|
await navigator.clipboard.writeText(address);
|
|
@@ -10905,34 +10988,44 @@ function ReceiveLumiaMenu() {
|
|
|
10905
10988
|
} catch (error) {
|
|
10906
10989
|
console.error("Failed to copy address:", error);
|
|
10907
10990
|
}
|
|
10908
|
-
};
|
|
10909
|
-
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
|
|
10913
|
-
|
|
10914
|
-
|
|
10915
|
-
|
|
10916
|
-
|
|
10917
|
-
|
|
10918
|
-
|
|
10919
|
-
|
|
10920
|
-
|
|
10921
|
-
|
|
10922
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
|
|
10926
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("
|
|
10927
|
-
|
|
10928
|
-
|
|
10929
|
-
|
|
10930
|
-
|
|
10991
|
+
}, [address]);
|
|
10992
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
10993
|
+
"div",
|
|
10994
|
+
{
|
|
10995
|
+
style: {
|
|
10996
|
+
"--l-pass-scrollbar-mah": `${MAX_CONTENT_HEIGHTS[layoutView]}px`,
|
|
10997
|
+
"--l-pass-list-scrollbar-pd-r": "8px"
|
|
10998
|
+
},
|
|
10999
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
11000
|
+
children: [
|
|
11001
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11002
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react36.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11003
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
11004
|
+
] }),
|
|
11005
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
|
|
11006
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
11007
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
11008
|
+
] }),
|
|
11009
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react36.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
11010
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { type: "info", children: [
|
|
11011
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
11012
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
11013
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react36.CheckCircle2, { className: "h-4 w-4" }),
|
|
11014
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Copied!" })
|
|
11015
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
11016
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react36.Copy, { className: "h-4 w-4" }),
|
|
11017
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Copy Address" })
|
|
11018
|
+
] }) })
|
|
11019
|
+
] }),
|
|
11020
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
|
|
11021
|
+
]
|
|
11022
|
+
}
|
|
11023
|
+
);
|
|
10931
11024
|
}
|
|
10932
11025
|
|
|
10933
11026
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
10934
11027
|
var import_lucide_react38 = require("lucide-react");
|
|
10935
|
-
var
|
|
11028
|
+
var import_react40 = require("react");
|
|
10936
11029
|
|
|
10937
11030
|
// src/internal/components/SettingsMenu/constants.ts
|
|
10938
11031
|
var import_lucide_react37 = require("lucide-react");
|
|
@@ -10966,7 +11059,7 @@ function SettingsMenu() {
|
|
|
10966
11059
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10967
11060
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
10968
11061
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
10969
|
-
(0,
|
|
11062
|
+
(0, import_react40.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
10970
11063
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
10971
11064
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
10972
11065
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
@@ -11026,7 +11119,7 @@ function TermsOfService() {
|
|
|
11026
11119
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11027
11120
|
var import_react_query23 = require("@tanstack/react-query");
|
|
11028
11121
|
var import_lucide_react41 = require("lucide-react");
|
|
11029
|
-
var
|
|
11122
|
+
var import_react41 = require("react");
|
|
11030
11123
|
|
|
11031
11124
|
// src/internal/components/TransactionsMenu/api.ts
|
|
11032
11125
|
init_base();
|
|
@@ -11506,9 +11599,10 @@ function TransactionsMenu() {
|
|
|
11506
11599
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11507
11600
|
const page = useLayoutDataStore((st) => st.page);
|
|
11508
11601
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11509
|
-
const
|
|
11510
|
-
const
|
|
11511
|
-
const
|
|
11602
|
+
const layoutView = useLayoutStore((st) => st.layoutView);
|
|
11603
|
+
const txContainerListRef = (0, import_react41.useRef)(null);
|
|
11604
|
+
const txListRef = (0, import_react41.useRef)(null);
|
|
11605
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react41.useState)({});
|
|
11512
11606
|
const {
|
|
11513
11607
|
data: txHistoryGroups = [],
|
|
11514
11608
|
isLoading: isTxHistoryLoading,
|
|
@@ -11520,26 +11614,26 @@ function TransactionsMenu() {
|
|
|
11520
11614
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
11521
11615
|
queryFn: () => getTransactionsListQuery(address)
|
|
11522
11616
|
});
|
|
11523
|
-
const refreshTxHistory = (0,
|
|
11617
|
+
const refreshTxHistory = (0, import_react41.useCallback)(
|
|
11524
11618
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
11525
11619
|
[qc, address]
|
|
11526
11620
|
);
|
|
11527
11621
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
11528
|
-
(0,
|
|
11622
|
+
(0, import_react41.useEffect)(() => {
|
|
11529
11623
|
if (!txContainerListRef.current || !txListRef.current) return;
|
|
11530
|
-
|
|
11531
|
-
|
|
11532
|
-
|
|
11533
|
-
|
|
11534
|
-
|
|
11535
|
-
|
|
11536
|
-
|
|
11537
|
-
|
|
11538
|
-
|
|
11539
|
-
|
|
11540
|
-
|
|
11541
|
-
|
|
11542
|
-
}, []);
|
|
11624
|
+
const listTargetHeight = MAX_CONTENT_HEIGHTS[layoutView] - 128;
|
|
11625
|
+
txContainerListRef.current.style.setProperty("--l-pass-scrollbar-mah", `${listTargetHeight}px`);
|
|
11626
|
+
txContainerListRef.current.style.setProperty(
|
|
11627
|
+
"--l-pass-list-bd",
|
|
11628
|
+
txListRef.current.clientHeight >= listTargetHeight ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
|
|
11629
|
+
// hide border if no scrollbar
|
|
11630
|
+
);
|
|
11631
|
+
txContainerListRef.current.style.setProperty(
|
|
11632
|
+
"--l-pass-list-scrollbar-pd-r",
|
|
11633
|
+
txListRef.current.clientHeight >= listTargetHeight ? "4px" : "0px"
|
|
11634
|
+
// remove padding if no scrollbar
|
|
11635
|
+
);
|
|
11636
|
+
}, [layoutView]);
|
|
11543
11637
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11544
11638
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
11545
11639
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
@@ -11567,7 +11661,10 @@ function TransactionsMenu() {
|
|
|
11567
11661
|
"div",
|
|
11568
11662
|
{
|
|
11569
11663
|
ref: txContainerListRef,
|
|
11570
|
-
style: {
|
|
11664
|
+
style: {
|
|
11665
|
+
borderTop: "1px solid var(--l-pass-list-bd)",
|
|
11666
|
+
borderBottom: "1px solid var(--l-pass-list-bd)"
|
|
11667
|
+
},
|
|
11571
11668
|
className: "list-scrollbar-y relative",
|
|
11572
11669
|
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref: txListRef, className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11573
11670
|
TransactionsGroup,
|
|
@@ -11693,7 +11790,7 @@ function usePageMapper() {
|
|
|
11693
11790
|
setIsDialogOpen,
|
|
11694
11791
|
setIsDialogClosing
|
|
11695
11792
|
} = useLayoutStore();
|
|
11696
|
-
const closeDialog = (0,
|
|
11793
|
+
const closeDialog = (0, import_react42.useCallback)(() => {
|
|
11697
11794
|
setIsDialogClosing(true);
|
|
11698
11795
|
setTimeout(() => {
|
|
11699
11796
|
setDialogContent(null);
|
|
@@ -11704,7 +11801,7 @@ function usePageMapper() {
|
|
|
11704
11801
|
setIsDialogOpen(false);
|
|
11705
11802
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
11706
11803
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
11707
|
-
const openDialog = (0,
|
|
11804
|
+
const openDialog = (0, import_react42.useCallback)(
|
|
11708
11805
|
(pageItem) => {
|
|
11709
11806
|
const PageContentComponent = pageItem.component;
|
|
11710
11807
|
setDialogTitle(pageItem.title);
|
|
@@ -11714,7 +11811,7 @@ function usePageMapper() {
|
|
|
11714
11811
|
},
|
|
11715
11812
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
11716
11813
|
);
|
|
11717
|
-
(0,
|
|
11814
|
+
(0, import_react42.useEffect)(() => {
|
|
11718
11815
|
if (page === null) return closeDialog();
|
|
11719
11816
|
const pageItem = protectedRoutes[page];
|
|
11720
11817
|
if (!pageItem) {
|
|
@@ -11727,7 +11824,7 @@ function usePageMapper() {
|
|
|
11727
11824
|
}
|
|
11728
11825
|
|
|
11729
11826
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
11730
|
-
var
|
|
11827
|
+
var import_react43 = require("react");
|
|
11731
11828
|
init_auth();
|
|
11732
11829
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
11733
11830
|
id: "email-not-connected",
|
|
@@ -11744,13 +11841,13 @@ function useSettingsNotifications() {
|
|
|
11744
11841
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
11745
11842
|
const providers = import_auth3.jwtTokenManager.getProviders();
|
|
11746
11843
|
const hasEmail = providers.includes("email");
|
|
11747
|
-
(0,
|
|
11844
|
+
(0, import_react43.useEffect)(() => {
|
|
11748
11845
|
setSettingsNotifications({
|
|
11749
11846
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
11750
11847
|
status: hasServerVault ? "resolved" : "active"
|
|
11751
11848
|
});
|
|
11752
11849
|
}, [hasServerVault, setSettingsNotifications]);
|
|
11753
|
-
(0,
|
|
11850
|
+
(0, import_react43.useEffect)(() => {
|
|
11754
11851
|
setSettingsNotifications({
|
|
11755
11852
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
11756
11853
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -11759,7 +11856,7 @@ function useSettingsNotifications() {
|
|
|
11759
11856
|
}
|
|
11760
11857
|
|
|
11761
11858
|
// src/internal/hooks/useWalletStatus.ts
|
|
11762
|
-
var
|
|
11859
|
+
var import_react44 = require("react");
|
|
11763
11860
|
init_auth();
|
|
11764
11861
|
function useWalletStatus() {
|
|
11765
11862
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -11769,7 +11866,7 @@ function useWalletStatus() {
|
|
|
11769
11866
|
config: { current: config },
|
|
11770
11867
|
callbacks
|
|
11771
11868
|
} = useLumiaPassportConfig();
|
|
11772
|
-
(0,
|
|
11869
|
+
(0, import_react44.useEffect)(() => {
|
|
11773
11870
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
11774
11871
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
11775
11872
|
const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
|
|
@@ -11791,26 +11888,27 @@ function useWalletStatus() {
|
|
|
11791
11888
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
11792
11889
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
11793
11890
|
function LumiaPassportDialog() {
|
|
11794
|
-
const
|
|
11795
|
-
|
|
11796
|
-
|
|
11797
|
-
const className = config?.ui?.dialogClassName;
|
|
11891
|
+
const config = useLumiaPassportConfig().config;
|
|
11892
|
+
const isWalletLinking = useManageWalletStore((st) => st.isWalletLinking);
|
|
11893
|
+
const className = config.current?.ui?.dialogClassName;
|
|
11798
11894
|
const session = useLumiaPassportSession((st) => st.session);
|
|
11799
11895
|
const page = useLayoutDataStore((st) => st.page);
|
|
11800
11896
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
11801
11897
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11802
11898
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
11803
|
-
(0,
|
|
11899
|
+
(0, import_react45.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
11804
11900
|
usePageMapper();
|
|
11805
11901
|
useAutoConnect();
|
|
11806
11902
|
useCheckVaultStatus();
|
|
11807
11903
|
useBackupStatusChanges();
|
|
11904
|
+
useDetectLayoutView();
|
|
11808
11905
|
useSettingsNotifications();
|
|
11809
11906
|
useWalletStatus();
|
|
11810
11907
|
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11811
11908
|
Dialog,
|
|
11812
11909
|
{
|
|
11813
11910
|
open: isDialogOpen,
|
|
11911
|
+
modal: !isWalletLinking,
|
|
11814
11912
|
onOpenChange: (open) => {
|
|
11815
11913
|
if (isDialogForced) return;
|
|
11816
11914
|
if (!open) setPage(null);
|
|
@@ -11838,23 +11936,23 @@ function LumiaPassportDialog() {
|
|
|
11838
11936
|
}
|
|
11839
11937
|
|
|
11840
11938
|
// src/internal/components/TssManager.tsx
|
|
11841
|
-
var
|
|
11939
|
+
var import_react46 = __toESM(require("react"), 1);
|
|
11842
11940
|
init_auth();
|
|
11843
11941
|
init_clients();
|
|
11844
|
-
var TssManagerWithRef =
|
|
11942
|
+
var TssManagerWithRef = import_react46.default.forwardRef((props, ref) => {
|
|
11845
11943
|
const { mpcPin } = props;
|
|
11846
11944
|
const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
|
|
11847
11945
|
const setStatus = useLumiaPassportSession((st) => st.setStatus);
|
|
11848
11946
|
const setSession = useLumiaPassportSession((st) => st.setSession);
|
|
11849
11947
|
const setAddress = useLumiaPassportSession((st) => st.setAddress);
|
|
11850
|
-
const onSessionCreated = (0,
|
|
11948
|
+
const onSessionCreated = (0, import_react46.useCallback)(
|
|
11851
11949
|
(session, address) => {
|
|
11852
11950
|
setSession(session);
|
|
11853
11951
|
setAddress(address);
|
|
11854
11952
|
},
|
|
11855
11953
|
[setSession, setAddress]
|
|
11856
11954
|
);
|
|
11857
|
-
const createSessionWithKeyshare =
|
|
11955
|
+
const createSessionWithKeyshare = import_react46.default.useCallback(
|
|
11858
11956
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
11859
11957
|
setStatus("checking key management setup...");
|
|
11860
11958
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -11875,48 +11973,53 @@ var TssManagerWithRef = import_react45.default.forwardRef((props, ref) => {
|
|
|
11875
11973
|
},
|
|
11876
11974
|
[setStatus, usePaymaster, mpcPin]
|
|
11877
11975
|
);
|
|
11878
|
-
|
|
11976
|
+
import_react46.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
11879
11977
|
return null;
|
|
11880
11978
|
});
|
|
11881
11979
|
|
|
11882
11980
|
// src/internal/components/WalletConnectHandler.tsx
|
|
11883
11981
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
11884
11982
|
var import_react_query24 = require("@tanstack/react-query");
|
|
11885
|
-
var
|
|
11983
|
+
var import_react47 = __toESM(require("react"), 1);
|
|
11886
11984
|
var import_wagmi4 = require("wagmi");
|
|
11887
11985
|
init_wallet();
|
|
11888
11986
|
function WalletConnectHandler() {
|
|
11889
11987
|
const qc = (0, import_react_query24.useQueryClient)();
|
|
11890
11988
|
const { callbacks } = useLumiaPassportConfig();
|
|
11891
|
-
const
|
|
11989
|
+
const userAddress = useLumiaPassportSession((st) => st.address);
|
|
11990
|
+
const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
|
|
11892
11991
|
const { disconnect } = (0, import_wagmi4.useDisconnect)();
|
|
11893
11992
|
const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
|
|
11894
11993
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11895
11994
|
const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
|
|
11896
|
-
const onError = (0,
|
|
11995
|
+
const onError = (0, import_react47.useCallback)((error) => {
|
|
11897
11996
|
setLinkError(error);
|
|
11898
11997
|
setIsWalletLinking(false);
|
|
11899
11998
|
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
11900
11999
|
}, []);
|
|
11901
|
-
const onLinkingComplete = (0,
|
|
12000
|
+
const onLinkingComplete = (0, import_react47.useCallback)(async (success) => {
|
|
12001
|
+
console.log("[WalletConnectHandler] onLinkingComplete called:", { success, userAddress });
|
|
12002
|
+
setIsWalletLinking(false);
|
|
11902
12003
|
if (success) {
|
|
11903
|
-
|
|
11904
|
-
|
|
12004
|
+
setProviderType(null);
|
|
12005
|
+
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
12006
|
+
console.log("[WalletConnectHandler] Invalidating and refetching queries with key:", [PROVIDERS_QUERY_KEY, userAddress]);
|
|
12007
|
+
await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, userAddress], refetchType: "active" });
|
|
12008
|
+
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, userAddress], refetchType: "active" });
|
|
12009
|
+
await qc.refetchQueries({ queryKey: [PROVIDERS_QUERY_KEY, userAddress] });
|
|
11905
12010
|
try {
|
|
11906
|
-
callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY,
|
|
12011
|
+
callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, userAddress]) });
|
|
11907
12012
|
} catch {
|
|
11908
12013
|
}
|
|
11909
|
-
setProviderType(null);
|
|
11910
|
-
setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
11911
12014
|
}
|
|
11912
|
-
|
|
11913
|
-
},
|
|
11914
|
-
const
|
|
11915
|
-
const
|
|
11916
|
-
|
|
11917
|
-
(0, import_react46.useEffect)(() => {
|
|
12015
|
+
}, [qc, userAddress, callbacks, setProviderType, setPage, setIsWalletLinking]);
|
|
12016
|
+
const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
|
|
12017
|
+
const [hasStartedLinking, setHasStartedLinking] = import_react47.default.useState(false);
|
|
12018
|
+
const timeoutRef = import_react47.default.useRef();
|
|
12019
|
+
(0, import_react47.useEffect)(() => {
|
|
11918
12020
|
if (isWalletLinking && !hasStartedLinking) {
|
|
11919
12021
|
setHasStartedLinking(true);
|
|
12022
|
+
setProviderType(null);
|
|
11920
12023
|
if (isConnected) {
|
|
11921
12024
|
disconnect();
|
|
11922
12025
|
setTimeout(() => {
|
|
@@ -11929,12 +12032,6 @@ function WalletConnectHandler() {
|
|
|
11929
12032
|
openConnectModal();
|
|
11930
12033
|
}
|
|
11931
12034
|
}
|
|
11932
|
-
timeoutRef.current = setTimeout(() => {
|
|
11933
|
-
if (!isConnected && isWalletLinking) {
|
|
11934
|
-
onLinkingComplete(false);
|
|
11935
|
-
setHasStartedLinking(false);
|
|
11936
|
-
}
|
|
11937
|
-
}, 3e4);
|
|
11938
12035
|
}
|
|
11939
12036
|
if (!isWalletLinking && hasStartedLinking) {
|
|
11940
12037
|
setHasStartedLinking(false);
|
|
@@ -11946,16 +12043,24 @@ function WalletConnectHandler() {
|
|
|
11946
12043
|
}
|
|
11947
12044
|
}
|
|
11948
12045
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect]);
|
|
11949
|
-
(0,
|
|
11950
|
-
|
|
12046
|
+
(0, import_react47.useEffect)(() => {
|
|
12047
|
+
console.log("[WalletConnectHandler] Modal state check:", { hasStartedLinking, connectModalOpen, isConnected, isWalletLinking });
|
|
12048
|
+
if (hasStartedLinking && !connectModalOpen && !isConnected && isWalletLinking) {
|
|
12049
|
+
console.log("[WalletConnectHandler] Modal closed without connecting, resetting state");
|
|
12050
|
+
onLinkingComplete(false);
|
|
12051
|
+
setHasStartedLinking(false);
|
|
12052
|
+
}
|
|
12053
|
+
}, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
|
|
12054
|
+
(0, import_react47.useEffect)(() => {
|
|
12055
|
+
if (isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
11951
12056
|
handleWalletSign();
|
|
11952
12057
|
}
|
|
11953
|
-
}, [isConnected,
|
|
12058
|
+
}, [isConnected, walletAddress, isWalletLinking, hasStartedLinking]);
|
|
11954
12059
|
const handleWalletSign = async () => {
|
|
11955
12060
|
if (timeoutRef.current) {
|
|
11956
12061
|
clearTimeout(timeoutRef.current);
|
|
11957
12062
|
}
|
|
11958
|
-
if (!
|
|
12063
|
+
if (!walletAddress || !chain) {
|
|
11959
12064
|
onError("No wallet connected");
|
|
11960
12065
|
disconnect();
|
|
11961
12066
|
onLinkingComplete(false);
|
|
@@ -11964,7 +12069,7 @@ function WalletConnectHandler() {
|
|
|
11964
12069
|
}
|
|
11965
12070
|
try {
|
|
11966
12071
|
setLinkIsLoading(true);
|
|
11967
|
-
const message = createSignatureMessage(
|
|
12072
|
+
const message = createSignatureMessage(walletAddress);
|
|
11968
12073
|
const signature = await signMessageAsync({ message });
|
|
11969
12074
|
if (!signature) {
|
|
11970
12075
|
throw new Error("Failed to get signature");
|
|
@@ -11977,7 +12082,7 @@ function WalletConnectHandler() {
|
|
|
11977
12082
|
connectorInfo: connector
|
|
11978
12083
|
});
|
|
11979
12084
|
await linkWallet({
|
|
11980
|
-
address,
|
|
12085
|
+
address: walletAddress,
|
|
11981
12086
|
signature,
|
|
11982
12087
|
message,
|
|
11983
12088
|
chainId: chain.id,
|
|
@@ -12034,7 +12139,7 @@ function LumiaPassportSessionProvider({ children }) {
|
|
|
12034
12139
|
const {
|
|
12035
12140
|
config: { current: config }
|
|
12036
12141
|
} = useLumiaPassportConfig();
|
|
12037
|
-
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
12142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react48.Fragment, { children: [
|
|
12038
12143
|
children,
|
|
12039
12144
|
config.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WalletConnectHandler, {}),
|
|
12040
12145
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BalanceFeedProvider, {}),
|
|
@@ -12086,14 +12191,14 @@ var LumiaWagmiProvider = ({ children }) => {
|
|
|
12086
12191
|
|
|
12087
12192
|
// src/context/LumiaPassportContext.tsx
|
|
12088
12193
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12089
|
-
var LumiaPassportContext = (0,
|
|
12194
|
+
var LumiaPassportContext = (0, import_react49.createContext)(void 0);
|
|
12090
12195
|
function LumiaPassportProvider(props) {
|
|
12091
12196
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
12092
12197
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
12093
12198
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
12094
|
-
(0,
|
|
12095
|
-
const config = (0,
|
|
12096
|
-
const updateConfig = (0,
|
|
12199
|
+
(0, import_react49.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
12200
|
+
const config = (0, import_react49.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
12201
|
+
const updateConfig = (0, import_react49.useCallback)((updates) => {
|
|
12097
12202
|
const prev = config.current;
|
|
12098
12203
|
const next = { ...prev };
|
|
12099
12204
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -12128,9 +12233,9 @@ function LumiaPassportProvider(props) {
|
|
|
12128
12233
|
}
|
|
12129
12234
|
config.current = next;
|
|
12130
12235
|
}, []);
|
|
12131
|
-
(0,
|
|
12236
|
+
(0, import_react49.useEffect)(() => {
|
|
12132
12237
|
if (typeof window === "undefined" || !projectId) return;
|
|
12133
|
-
const mergedConfig = (0,
|
|
12238
|
+
const mergedConfig = (0, import_lodash_es3.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
12134
12239
|
updateConfig(mergedConfig);
|
|
12135
12240
|
console.log("[ MERGED PROVIDER STORED CONFIG ]", mergedConfig);
|
|
12136
12241
|
try {
|
|
@@ -12173,18 +12278,18 @@ function LumiaPassportProvider(props) {
|
|
|
12173
12278
|
console.error("[LumiaPassport] Error setting up iframe manager:", error);
|
|
12174
12279
|
}
|
|
12175
12280
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
12176
|
-
const contextValue = (0,
|
|
12281
|
+
const contextValue = (0, import_react49.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
12177
12282
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
12178
12283
|
}
|
|
12179
12284
|
var useLumiaPassportConfig = () => {
|
|
12180
|
-
const ctx = (0,
|
|
12285
|
+
const ctx = (0, import_react49.useContext)(LumiaPassportContext);
|
|
12181
12286
|
if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
|
|
12182
12287
|
return ctx;
|
|
12183
12288
|
};
|
|
12184
12289
|
|
|
12185
12290
|
// src/components/ConnectWalletButton.tsx
|
|
12186
12291
|
var import_lucide_react42 = require("lucide-react");
|
|
12187
|
-
var
|
|
12292
|
+
var import_react50 = require("react");
|
|
12188
12293
|
init_auth();
|
|
12189
12294
|
var import_jsx_runtime65 = (
|
|
12190
12295
|
/** external Buttons can be provided */
|
|
@@ -12207,10 +12312,10 @@ function ConnectWalletButton(props) {
|
|
|
12207
12312
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12208
12313
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
12209
12314
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
12210
|
-
(0,
|
|
12315
|
+
(0, import_react50.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
12211
12316
|
const avatar = import_auth3.jwtTokenManager.getAvatar();
|
|
12212
12317
|
const displayName = import_auth3.jwtTokenManager.getDisplayName();
|
|
12213
|
-
const indicators = (0,
|
|
12318
|
+
const indicators = (0, import_react50.useMemo)(() => {
|
|
12214
12319
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
12215
12320
|
if (!userId) return { server: false, local: false, backup: false };
|
|
12216
12321
|
const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -12362,13 +12467,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
|
|
|
12362
12467
|
var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
|
|
12363
12468
|
|
|
12364
12469
|
// src/hooks/useLumiaPassportOpen.ts
|
|
12365
|
-
var
|
|
12470
|
+
var import_react51 = require("react");
|
|
12366
12471
|
function useLumiaPassportOpen() {
|
|
12367
12472
|
const page = useLayoutDataStore((st) => st.page);
|
|
12368
12473
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12369
12474
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
12370
12475
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12371
|
-
const open = (0,
|
|
12476
|
+
const open = (0, import_react51.useCallback)(
|
|
12372
12477
|
(passportPage, params) => {
|
|
12373
12478
|
if (!address) return setPage("auth" /* AUTH */);
|
|
12374
12479
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -12377,12 +12482,12 @@ function useLumiaPassportOpen() {
|
|
|
12377
12482
|
},
|
|
12378
12483
|
[setPage, setPageParams, address]
|
|
12379
12484
|
);
|
|
12380
|
-
const close = (0,
|
|
12485
|
+
const close = (0, import_react51.useCallback)(() => setPage(null), [setPage]);
|
|
12381
12486
|
return { open, close, isOpen: page !== null };
|
|
12382
12487
|
}
|
|
12383
12488
|
|
|
12384
12489
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
12385
|
-
var
|
|
12490
|
+
var import_react52 = require("react");
|
|
12386
12491
|
function useLumiaPassportColorMode() {
|
|
12387
12492
|
const {
|
|
12388
12493
|
config: { current: config }
|
|
@@ -12390,14 +12495,14 @@ function useLumiaPassportColorMode() {
|
|
|
12390
12495
|
const preferedColorMode = config?.preferedColorMode;
|
|
12391
12496
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12392
12497
|
const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
|
|
12393
|
-
const setColorMode = (0,
|
|
12498
|
+
const setColorMode = (0, import_react52.useCallback)(
|
|
12394
12499
|
(mode) => {
|
|
12395
12500
|
localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
|
|
12396
12501
|
handleStoreColorMode(mode);
|
|
12397
12502
|
},
|
|
12398
12503
|
[handleStoreColorMode]
|
|
12399
12504
|
);
|
|
12400
|
-
(0,
|
|
12505
|
+
(0, import_react52.useEffect)(() => {
|
|
12401
12506
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
12402
12507
|
if (!targetColorMode && !preferedColorMode) {
|
|
12403
12508
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -12439,7 +12544,7 @@ function ThemeToggle(props) {
|
|
|
12439
12544
|
}
|
|
12440
12545
|
|
|
12441
12546
|
// src/context/RainbowKitContext.tsx
|
|
12442
|
-
var
|
|
12547
|
+
var import_react53 = __toESM(require("react"), 1);
|
|
12443
12548
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
12444
12549
|
var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
12445
12550
|
var import_wagmi8 = require("wagmi");
|
|
@@ -12586,10 +12691,10 @@ var LumiaRainbowKitProvider = ({ children }) => {
|
|
|
12586
12691
|
config: { current: config }
|
|
12587
12692
|
} = useLumiaPassportConfig();
|
|
12588
12693
|
const isDark = useLayoutStore((st) => st.colorMode === "dark");
|
|
12589
|
-
const rainbowConfig2 =
|
|
12694
|
+
const rainbowConfig2 = import_react53.default.useMemo(() => {
|
|
12590
12695
|
return createRainbowConfig(config.wallet?.walletConnectProjectId);
|
|
12591
12696
|
}, [config.wallet?.walletConnectProjectId]);
|
|
12592
|
-
const customTheme =
|
|
12697
|
+
const customTheme = import_react53.default.useMemo(
|
|
12593
12698
|
() => isDark ? {
|
|
12594
12699
|
...(0, import_rainbowkit3.darkTheme)(),
|
|
12595
12700
|
colors: {
|
|
@@ -13050,14 +13155,14 @@ var Hash = ({
|
|
|
13050
13155
|
};
|
|
13051
13156
|
|
|
13052
13157
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
13053
|
-
var
|
|
13158
|
+
var import_react54 = require("react");
|
|
13054
13159
|
init_base();
|
|
13055
13160
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
13056
13161
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
13057
|
-
const [transactions, setTransactions] = (0,
|
|
13058
|
-
const [loading, setLoading] = (0,
|
|
13059
|
-
const [error, setError] = (0,
|
|
13060
|
-
(0,
|
|
13162
|
+
const [transactions, setTransactions] = (0, import_react54.useState)([]);
|
|
13163
|
+
const [loading, setLoading] = (0, import_react54.useState)(true);
|
|
13164
|
+
const [error, setError] = (0, import_react54.useState)(null);
|
|
13165
|
+
(0, import_react54.useEffect)(() => {
|
|
13061
13166
|
const fetchTransactions = async () => {
|
|
13062
13167
|
try {
|
|
13063
13168
|
setLoading(true);
|
|
@@ -13359,11 +13464,11 @@ function useUserOpStatus(options = {}) {
|
|
|
13359
13464
|
|
|
13360
13465
|
// src/hooks/useLogout.ts
|
|
13361
13466
|
var import_auth20 = require("@lumiapassport/core/auth");
|
|
13362
|
-
var
|
|
13467
|
+
var import_react55 = require("react");
|
|
13363
13468
|
function useLogout() {
|
|
13364
13469
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
|
|
13365
13470
|
const { callbacks } = useLumiaPassportConfig();
|
|
13366
|
-
const logout2 = (0,
|
|
13471
|
+
const logout2 = (0, import_react55.useCallback)(async () => {
|
|
13367
13472
|
const prevAddress = address;
|
|
13368
13473
|
let userId = null;
|
|
13369
13474
|
setIsLoading(true);
|