@lumiapassport/ui-kit 1.14.9 → 1.14.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iframe/index.html +23 -16
- package/dist/iframe/main.js +147 -224
- package/dist/iframe/main.js.map +1 -1
- package/dist/index.cjs +879 -866
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +931 -930
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4332,7 +4332,7 @@ var init_profile = __esm({
|
|
|
4332
4332
|
});
|
|
4333
4333
|
|
|
4334
4334
|
// src/styles/built.css
|
|
4335
|
-
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-1{top:-.25rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .-top-3{top:-.75rem}.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-0{right:0}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .m-4{margin:1rem}.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 .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .mt-\\[var\\(--l-pass-gap\\)\\]{margin-top:var(--l-pass-gap)}.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 .aspect-square{aspect-ratio:1/1}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-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-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[150px\\]{max-width:150px}.lumia-scope .max-w-\\[160px\\]{max-width:160px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-warning)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-normal{overflow-wrap:normal;word-break:normal}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-accent\\)\\]{background-color:var(--l-pass-accent)}.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-muted\\)\\]{background-color:var(--l-pass-bg-muted)}.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-error\\)\\]{background-color:var(--l-pass-error)}.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-warning-bg\\)\\]{background-color:var(--l-pass-warning-bg)}.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-black\\/50{background-color:rgba(0,0,0,.5)}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-normal{font-weight:400}.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-8{line-height:2rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .shadow-xl{--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 .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,384px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4335
|
+
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-1{top:-.25rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .-top-3{top:-.75rem}.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-0{right:0}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .m-4{margin:1rem}.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 .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .mt-\\[var\\(--l-pass-gap\\)\\]{margin-top:var(--l-pass-gap)}.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 .aspect-square{aspect-ratio:1/1}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-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-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[150px\\]{max-width:150px}.lumia-scope .max-w-\\[160px\\]{max-width:160px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-warning)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-normal{overflow-wrap:normal;word-break:normal}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-accent\\)\\]{background-color:var(--l-pass-accent)}.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-muted\\)\\]{background-color:var(--l-pass-bg-muted)}.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-error\\)\\]{background-color:var(--l-pass-error)}.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-warning-bg\\)\\]{background-color:var(--l-pass-warning-bg)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-gap\\)\\]{padding-left:var(--l-pass-gap);padding-right:var(--l-pass-gap)}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-normal{font-weight:400}.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-8{line-height:2rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .shadow-xl{--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 .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,384px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4336
4336
|
|
|
4337
4337
|
// src/context/LumiaPassportContext.tsx
|
|
4338
4338
|
init_lumiaPassport();
|
|
@@ -4343,13 +4343,13 @@ import {
|
|
|
4343
4343
|
createContext,
|
|
4344
4344
|
useCallback as useCallback20,
|
|
4345
4345
|
useContext,
|
|
4346
|
-
useEffect as
|
|
4346
|
+
useEffect as useEffect32,
|
|
4347
4347
|
useMemo as useMemo5,
|
|
4348
4348
|
useRef as useRef13
|
|
4349
4349
|
} from "react";
|
|
4350
4350
|
|
|
4351
4351
|
// src/context/LumiaPassportSessionContext.tsx
|
|
4352
|
-
import { Fragment as
|
|
4352
|
+
import { Fragment as Fragment22 } from "react";
|
|
4353
4353
|
import { create as create6 } from "zustand";
|
|
4354
4354
|
|
|
4355
4355
|
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
@@ -4388,23 +4388,23 @@ var PROVIDERS_META2 = {
|
|
|
4388
4388
|
};
|
|
4389
4389
|
|
|
4390
4390
|
// src/internal/hooks/useLayoutDataStore.ts
|
|
4391
|
-
var PageKey = /* @__PURE__ */ ((
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
return
|
|
4391
|
+
var PageKey = /* @__PURE__ */ ((PageKey3) => {
|
|
4392
|
+
PageKey3["AUTH"] = "auth";
|
|
4393
|
+
PageKey3["TERMS_OF_SERVICE"] = "terms-of-service";
|
|
4394
|
+
PageKey3["MAIN_MENU"] = "main-menu";
|
|
4395
|
+
PageKey3["SETTINGS"] = "settings";
|
|
4396
|
+
PageKey3["SEND"] = "send";
|
|
4397
|
+
PageKey3["RECEIVE"] = "receive";
|
|
4398
|
+
PageKey3["BUY"] = "buy";
|
|
4399
|
+
PageKey3["KYC"] = "kyc";
|
|
4400
|
+
PageKey3["TRANSACTIONS"] = "transactions";
|
|
4401
|
+
PageKey3["ASSETS"] = "assets";
|
|
4402
|
+
PageKey3["MANAGE_WALLET"] = "manage-wallet";
|
|
4403
|
+
PageKey3["UNLINK_PROVIDER"] = "unlink-provider";
|
|
4404
|
+
PageKey3["SECURITY"] = "security";
|
|
4405
|
+
PageKey3["KEYSARE_BACKUP"] = "keysare-backup";
|
|
4406
|
+
PageKey3["KEYSHARE_RESTORE"] = "keyshare-restore";
|
|
4407
|
+
return PageKey3;
|
|
4408
4408
|
})(PageKey || {});
|
|
4409
4409
|
var useLayoutDataStore = create((set) => ({
|
|
4410
4410
|
page: null,
|
|
@@ -4526,12 +4526,12 @@ function BalanceFeedProvider() {
|
|
|
4526
4526
|
|
|
4527
4527
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4528
4528
|
import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
|
|
4529
|
-
import { useEffect as
|
|
4529
|
+
import { useEffect as useEffect30 } from "react";
|
|
4530
4530
|
|
|
4531
4531
|
// package.json
|
|
4532
4532
|
var package_default = {
|
|
4533
4533
|
name: "@lumiapassport/ui-kit",
|
|
4534
|
-
version: "1.14.
|
|
4534
|
+
version: "1.14.10",
|
|
4535
4535
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
4536
4536
|
type: "module",
|
|
4537
4537
|
main: "./dist/index.cjs",
|
|
@@ -5805,15 +5805,17 @@ import { debounce } from "lodash-es";
|
|
|
5805
5805
|
import { useCallback as useCallback3, useEffect as useEffect8 } from "react";
|
|
5806
5806
|
var DEBOUNCE_DELAY = 50;
|
|
5807
5807
|
function useDetectMaxScrollHeight() {
|
|
5808
|
+
const page = useLayoutDataStore((state) => state.page);
|
|
5808
5809
|
const setIsMobileView = useLayoutStore((state) => state.setIsMobileView);
|
|
5809
5810
|
const setMaxScrollHeight = useLayoutStore((state) => state.setMaxScrollHeight);
|
|
5810
5811
|
const onResize = useCallback3(
|
|
5811
5812
|
debounce(({ width, height }) => {
|
|
5812
|
-
const
|
|
5813
|
+
const headerHeight = page === "auth" /* AUTH */ || page === "keyshare-restore" /* KEYSHARE_RESTORE */ ? 0 : 116;
|
|
5814
|
+
const limContentHeight = height * 0.92 - headerHeight - 72;
|
|
5813
5815
|
setIsMobileView(width < height && (width < 475 || limContentHeight <= MAX_CONTENT_HEIGHT));
|
|
5814
5816
|
setMaxScrollHeight(Math.min(limContentHeight, MAX_CONTENT_HEIGHT));
|
|
5815
5817
|
}, DEBOUNCE_DELAY),
|
|
5816
|
-
[setMaxScrollHeight, setIsMobileView]
|
|
5818
|
+
[page, setMaxScrollHeight, setIsMobileView]
|
|
5817
5819
|
);
|
|
5818
5820
|
useEffect8(() => {
|
|
5819
5821
|
const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect));
|
|
@@ -5824,15 +5826,65 @@ function useDetectMaxScrollHeight() {
|
|
|
5824
5826
|
}
|
|
5825
5827
|
|
|
5826
5828
|
// src/internal/hooks/usePageMapper.tsx
|
|
5827
|
-
import { useCallback as useCallback17, useEffect as
|
|
5829
|
+
import { useCallback as useCallback17, useEffect as useEffect27 } from "react";
|
|
5828
5830
|
|
|
5829
5831
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5830
5832
|
import { AnimatePresence, motion } from "framer-motion";
|
|
5831
5833
|
import { AlertTriangle as AlertTriangle2, Loader as Loader5 } from "lucide-react";
|
|
5832
5834
|
import { useEffect as useEffect11, useMemo } from "react";
|
|
5833
5835
|
|
|
5834
|
-
// src/internal/components/
|
|
5836
|
+
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5837
|
+
import { useCallback as useCallback4, useEffect as useEffect9, useRef as useRef4 } from "react";
|
|
5838
|
+
var useExpandable = (props) => {
|
|
5839
|
+
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5840
|
+
const expandableRef = useRef4(null);
|
|
5841
|
+
const contentRef = useRef4(null);
|
|
5842
|
+
useEffect9(() => {
|
|
5843
|
+
if (!expandableRef.current) return;
|
|
5844
|
+
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
5845
|
+
}, []);
|
|
5846
|
+
const setExpandableHeight = useCallback4(
|
|
5847
|
+
(isExpnd) => {
|
|
5848
|
+
if (!contentRef.current || !expandableRef.current) return;
|
|
5849
|
+
expandableRef.current.style.setProperty(
|
|
5850
|
+
"--ifo-basic-expandable-h",
|
|
5851
|
+
isExpnd ? `${contentRef.current.clientHeight}px` : `${minHeight}px`
|
|
5852
|
+
);
|
|
5853
|
+
},
|
|
5854
|
+
// ON_RESIZE_DELEAY),
|
|
5855
|
+
[minHeight]
|
|
5856
|
+
);
|
|
5857
|
+
useEffect9(() => {
|
|
5858
|
+
if (!contentRef.current || !expandableRef.current) return;
|
|
5859
|
+
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
5860
|
+
obs.observe(expandableRef.current);
|
|
5861
|
+
return () => obs.disconnect();
|
|
5862
|
+
}, [isExpanded, children]);
|
|
5863
|
+
return {
|
|
5864
|
+
expandableRef,
|
|
5865
|
+
contentRef
|
|
5866
|
+
};
|
|
5867
|
+
};
|
|
5868
|
+
|
|
5869
|
+
// src/internal/components/Expandable/Expandable.tsx
|
|
5835
5870
|
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
5871
|
+
function Expandable(props) {
|
|
5872
|
+
const { children, className, contentClassName, minHeight, divProps } = props;
|
|
5873
|
+
const { expandableRef, contentRef } = useExpandable(props);
|
|
5874
|
+
return /* @__PURE__ */ jsx14(
|
|
5875
|
+
"div",
|
|
5876
|
+
{
|
|
5877
|
+
...divProps,
|
|
5878
|
+
ref: expandableRef,
|
|
5879
|
+
className: cn("w-full overflow-y-hidden", className),
|
|
5880
|
+
style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
|
|
5881
|
+
children: /* @__PURE__ */ jsx14("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
|
|
5882
|
+
}
|
|
5883
|
+
);
|
|
5884
|
+
}
|
|
5885
|
+
|
|
5886
|
+
// src/internal/components/ui/highlight.tsx
|
|
5887
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
5836
5888
|
var CARD_STYLES = {
|
|
5837
5889
|
info: "text-[var(--l-pass-info)] bg-[var(--l-pass-bg-info)]",
|
|
5838
5890
|
success: "text-[var(--l-pass-success)] bg-[var(--l-pass-bg-success)]",
|
|
@@ -5841,7 +5893,7 @@ var CARD_STYLES = {
|
|
|
5841
5893
|
};
|
|
5842
5894
|
function Highlight(props) {
|
|
5843
5895
|
const { type = "info", children, className } = props;
|
|
5844
|
-
return /* @__PURE__ */
|
|
5896
|
+
return /* @__PURE__ */ jsx15(
|
|
5845
5897
|
"div",
|
|
5846
5898
|
{
|
|
5847
5899
|
className: cn(
|
|
@@ -5878,13 +5930,13 @@ var useAuthStore = create3((set) => ({
|
|
|
5878
5930
|
}));
|
|
5879
5931
|
|
|
5880
5932
|
// src/internal/components/AuthMenu/AuthFailedStep.tsx
|
|
5881
|
-
import { jsx as
|
|
5933
|
+
import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
5882
5934
|
function AuthFailedStep() {
|
|
5883
5935
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
5884
5936
|
const { failedType, setStep, setFailedType, setAlert } = useAuthStore();
|
|
5885
5937
|
const isCritical = failedType === "critical" || failedType === "config";
|
|
5886
5938
|
return /* @__PURE__ */ jsxs12("div", { className: "w-full flex flex-col text-center gap-4 p-4", children: [
|
|
5887
|
-
/* @__PURE__ */
|
|
5939
|
+
/* @__PURE__ */ jsx16(
|
|
5888
5940
|
"div",
|
|
5889
5941
|
{
|
|
5890
5942
|
className: cn(
|
|
@@ -5892,28 +5944,28 @@ function AuthFailedStep() {
|
|
|
5892
5944
|
isCritical ? "text-[var(--l-pass-error)] bg-[var(--l-pass-bg-error)]" : "text-[var(--l-pass-warning)] bg-[var(--l-pass-bg-warning)]"
|
|
5893
5945
|
),
|
|
5894
5946
|
children: /* @__PURE__ */ jsxs12("div", { className: "w-full flex items-center justify-center gap-2", children: [
|
|
5895
|
-
isCritical ? /* @__PURE__ */
|
|
5896
|
-
/* @__PURE__ */
|
|
5947
|
+
isCritical ? /* @__PURE__ */ jsx16(AlertTriangle, { className: "w-5 h-5 text-[var(--l-pass-error)]" }) : /* @__PURE__ */ jsx16(Cross, { className: "w-5 h-5 text-[var(--l-pass-warning)]" }),
|
|
5948
|
+
/* @__PURE__ */ jsx16("span", { className: "text-center block text-xl font-bold", children: failedType === "config" ? "Configuration Error" : failedType === "critical" ? "Critical Error" : "Failed" })
|
|
5897
5949
|
] })
|
|
5898
5950
|
}
|
|
5899
5951
|
),
|
|
5900
5952
|
failedType === "config" && /* @__PURE__ */ jsxs12("div", { className: "p-2 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-info)]", children: [
|
|
5901
|
-
/* @__PURE__ */
|
|
5953
|
+
/* @__PURE__ */ jsx16("div", { className: "text-sm font-medium text-[var(--l-pass-info)] mb-2", children: "To fix this issue:" }),
|
|
5902
5954
|
/* @__PURE__ */ jsxs12("ul", { className: "text-xs text-[var(--l-pass-info)] text-left space-y-1 list-disc list-inside", children: [
|
|
5903
|
-
/* @__PURE__ */
|
|
5904
|
-
/* @__PURE__ */
|
|
5905
|
-
/* @__PURE__ */
|
|
5955
|
+
/* @__PURE__ */ jsx16("li", { children: "Contact your project administrator" }),
|
|
5956
|
+
/* @__PURE__ */ jsx16("li", { children: "Verify projectId is correctly configured" }),
|
|
5957
|
+
/* @__PURE__ */ jsx16("li", { children: "Check project metadata on the server" })
|
|
5906
5958
|
] })
|
|
5907
5959
|
] }),
|
|
5908
5960
|
failedType === "critical" && /* @__PURE__ */ jsxs12("div", { className: "p-2 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-error)] border", children: [
|
|
5909
|
-
/* @__PURE__ */
|
|
5961
|
+
/* @__PURE__ */ jsx16("div", { className: "text-sm font-semibold text-[var(--l-pass-error)] mb-2", children: "What to do next:" }),
|
|
5910
5962
|
/* @__PURE__ */ jsxs12("ul", { className: "text-xs text-[var(--l-pass-error)] text-left space-y-1 list-disc list-inside", children: [
|
|
5911
|
-
/* @__PURE__ */
|
|
5912
|
-
/* @__PURE__ */
|
|
5913
|
-
/* @__PURE__ */
|
|
5963
|
+
/* @__PURE__ */ jsx16("li", { children: "Contact support immediately" }),
|
|
5964
|
+
/* @__PURE__ */ jsx16("li", { children: "Provide your projectId and error details" }),
|
|
5965
|
+
/* @__PURE__ */ jsx16("li", { children: "You may need to create a new account" })
|
|
5914
5966
|
] })
|
|
5915
5967
|
] }),
|
|
5916
|
-
/* @__PURE__ */
|
|
5968
|
+
/* @__PURE__ */ jsx16("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ jsx16(
|
|
5917
5969
|
Button,
|
|
5918
5970
|
{
|
|
5919
5971
|
size: "large",
|
|
@@ -5937,11 +5989,11 @@ init_auth();
|
|
|
5937
5989
|
init_profile();
|
|
5938
5990
|
|
|
5939
5991
|
// src/internal/components/ui/input.tsx
|
|
5940
|
-
import React2, { useImperativeHandle, useRef as
|
|
5941
|
-
import { jsx as
|
|
5992
|
+
import React2, { useImperativeHandle, useRef as useRef5 } from "react";
|
|
5993
|
+
import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
5942
5994
|
var Input = React2.forwardRef((props, ref) => {
|
|
5943
5995
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5944
|
-
const internalRef =
|
|
5996
|
+
const internalRef = useRef5(null);
|
|
5945
5997
|
useImperativeHandle(ref, () => internalRef.current);
|
|
5946
5998
|
return /* @__PURE__ */ jsxs13("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
5947
5999
|
/* @__PURE__ */ jsxs13(
|
|
@@ -5960,8 +6012,8 @@ var Input = React2.forwardRef((props, ref) => {
|
|
|
5960
6012
|
internalRef.current?.focus();
|
|
5961
6013
|
},
|
|
5962
6014
|
children: [
|
|
5963
|
-
Icon && /* @__PURE__ */
|
|
5964
|
-
/* @__PURE__ */
|
|
6015
|
+
Icon && /* @__PURE__ */ jsx17("div", { className: "flex flex-none items-center justify-center w-6 h-6 p-1", children: /* @__PURE__ */ jsx17(Icon, { width: 16, height: 16, className: "text-[var(--l-pass-fg)]" }) }),
|
|
6016
|
+
/* @__PURE__ */ jsx17(
|
|
5965
6017
|
"input",
|
|
5966
6018
|
{
|
|
5967
6019
|
ref: internalRef,
|
|
@@ -5980,13 +6032,13 @@ var Input = React2.forwardRef((props, ref) => {
|
|
|
5980
6032
|
]
|
|
5981
6033
|
}
|
|
5982
6034
|
),
|
|
5983
|
-
!!error?.length && /* @__PURE__ */
|
|
6035
|
+
!!error?.length && /* @__PURE__ */ jsx17("span", { className: "block text-[var(--l-pass-error)]", children: error })
|
|
5984
6036
|
] });
|
|
5985
6037
|
});
|
|
5986
6038
|
Input.displayName = "Input";
|
|
5987
6039
|
|
|
5988
6040
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5989
|
-
import { jsx as
|
|
6041
|
+
import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
5990
6042
|
var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
5991
6043
|
const [displayName, setDisplayName] = useState4("");
|
|
5992
6044
|
const [isLoading, setIsLoading] = useState4(false);
|
|
@@ -6016,12 +6068,12 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6016
6068
|
};
|
|
6017
6069
|
return /* @__PURE__ */ jsxs14("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6018
6070
|
/* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
|
|
6019
|
-
/* @__PURE__ */
|
|
6020
|
-
/* @__PURE__ */
|
|
6071
|
+
/* @__PURE__ */ jsx18(LumiaLogo, { size: 24, className: "w-6 h-6" }),
|
|
6072
|
+
/* @__PURE__ */ jsx18("span", { className: "font-bold text-xl leading-6", children: "What's your name?" })
|
|
6021
6073
|
] }),
|
|
6022
|
-
/* @__PURE__ */
|
|
6074
|
+
/* @__PURE__ */ jsx18("span", { className: "block w-full text-xs text-center", children: "This helps personalize your experience" }),
|
|
6023
6075
|
/* @__PURE__ */ jsxs14("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-[var(--l-pass-pd)]", children: [
|
|
6024
|
-
/* @__PURE__ */
|
|
6076
|
+
/* @__PURE__ */ jsx18(
|
|
6025
6077
|
Input,
|
|
6026
6078
|
{
|
|
6027
6079
|
Icon: User,
|
|
@@ -6039,7 +6091,7 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6039
6091
|
}
|
|
6040
6092
|
),
|
|
6041
6093
|
/* @__PURE__ */ jsxs14("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
6042
|
-
/* @__PURE__ */
|
|
6094
|
+
/* @__PURE__ */ jsx18(
|
|
6043
6095
|
Button,
|
|
6044
6096
|
{
|
|
6045
6097
|
type: "submit",
|
|
@@ -6049,7 +6101,7 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6049
6101
|
children: isLoading ? "Saving..." : "Continue"
|
|
6050
6102
|
}
|
|
6051
6103
|
),
|
|
6052
|
-
/* @__PURE__ */
|
|
6104
|
+
/* @__PURE__ */ jsx18(
|
|
6053
6105
|
Button,
|
|
6054
6106
|
{
|
|
6055
6107
|
className: "flex-1 text-[var(--l-pass-fg-muted)]",
|
|
@@ -6067,7 +6119,7 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6067
6119
|
};
|
|
6068
6120
|
|
|
6069
6121
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameStep.tsx
|
|
6070
|
-
import { jsx as
|
|
6122
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
6071
6123
|
function DisplayNameStep(props) {
|
|
6072
6124
|
const { onAuthSuccess } = props;
|
|
6073
6125
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -6090,7 +6142,7 @@ function DisplayNameStep(props) {
|
|
|
6090
6142
|
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
6091
6143
|
if (onAuthSuccess) await onAuthSuccess();
|
|
6092
6144
|
};
|
|
6093
|
-
return /* @__PURE__ */
|
|
6145
|
+
return /* @__PURE__ */ jsx19(DisplayNameInput, { onComplete, onSkip });
|
|
6094
6146
|
}
|
|
6095
6147
|
|
|
6096
6148
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
@@ -6098,7 +6150,7 @@ import { ArrowLeft as ArrowLeft3, Key as Key3 } from "lucide-react";
|
|
|
6098
6150
|
import { useCallback as useCallback5 } from "react";
|
|
6099
6151
|
|
|
6100
6152
|
// src/internal/assets/PasskeyAddIcon.tsx
|
|
6101
|
-
import { jsx as
|
|
6153
|
+
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
6102
6154
|
function PasskeyAddIcon(props) {
|
|
6103
6155
|
const { width = "24", height = "24", className = "w-6 h-6", ...rest } = props;
|
|
6104
6156
|
return /* @__PURE__ */ jsxs15(
|
|
@@ -6114,11 +6166,11 @@ function PasskeyAddIcon(props) {
|
|
|
6114
6166
|
strokeLinejoin: "round",
|
|
6115
6167
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6116
6168
|
children: [
|
|
6117
|
-
/* @__PURE__ */
|
|
6118
|
-
/* @__PURE__ */
|
|
6119
|
-
/* @__PURE__ */
|
|
6120
|
-
/* @__PURE__ */
|
|
6121
|
-
/* @__PURE__ */
|
|
6169
|
+
/* @__PURE__ */ jsx20("path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" }),
|
|
6170
|
+
/* @__PURE__ */ jsx20("path", { d: "m21 2-9.6 9.6" }),
|
|
6171
|
+
/* @__PURE__ */ jsx20("circle", { cx: "7.5", cy: "15.5", r: "5.5" }),
|
|
6172
|
+
/* @__PURE__ */ jsx20("path", { d: "M18 15v6" }),
|
|
6173
|
+
/* @__PURE__ */ jsx20("path", { d: "M21 18h-6" })
|
|
6122
6174
|
]
|
|
6123
6175
|
}
|
|
6124
6176
|
);
|
|
@@ -6126,58 +6178,6 @@ function PasskeyAddIcon(props) {
|
|
|
6126
6178
|
|
|
6127
6179
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
6128
6180
|
init_auth();
|
|
6129
|
-
|
|
6130
|
-
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
6131
|
-
import { useCallback as useCallback4, useEffect as useEffect9, useRef as useRef5 } from "react";
|
|
6132
|
-
var useExpandable = (props) => {
|
|
6133
|
-
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
6134
|
-
const expandableRef = useRef5(null);
|
|
6135
|
-
const contentRef = useRef5(null);
|
|
6136
|
-
useEffect9(() => {
|
|
6137
|
-
if (!expandableRef.current) return;
|
|
6138
|
-
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
6139
|
-
}, []);
|
|
6140
|
-
const setExpandableHeight = useCallback4(
|
|
6141
|
-
(isExpnd) => {
|
|
6142
|
-
if (!contentRef.current || !expandableRef.current) return;
|
|
6143
|
-
expandableRef.current.style.setProperty(
|
|
6144
|
-
"--ifo-basic-expandable-h",
|
|
6145
|
-
isExpnd ? `${contentRef.current.clientHeight}px` : `${minHeight}px`
|
|
6146
|
-
);
|
|
6147
|
-
},
|
|
6148
|
-
// ON_RESIZE_DELEAY),
|
|
6149
|
-
[minHeight]
|
|
6150
|
-
);
|
|
6151
|
-
useEffect9(() => {
|
|
6152
|
-
if (!contentRef.current || !expandableRef.current) return;
|
|
6153
|
-
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
6154
|
-
obs.observe(expandableRef.current);
|
|
6155
|
-
return () => obs.disconnect();
|
|
6156
|
-
}, [isExpanded, children]);
|
|
6157
|
-
return {
|
|
6158
|
-
expandableRef,
|
|
6159
|
-
contentRef
|
|
6160
|
-
};
|
|
6161
|
-
};
|
|
6162
|
-
|
|
6163
|
-
// src/internal/components/Expandable/Expandable.tsx
|
|
6164
|
-
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
6165
|
-
function Expandable(props) {
|
|
6166
|
-
const { children, className, contentClassName, minHeight, divProps } = props;
|
|
6167
|
-
const { expandableRef, contentRef } = useExpandable(props);
|
|
6168
|
-
return /* @__PURE__ */ jsx20(
|
|
6169
|
-
"div",
|
|
6170
|
-
{
|
|
6171
|
-
...divProps,
|
|
6172
|
-
ref: expandableRef,
|
|
6173
|
-
className: cn("w-full overflow-y-hidden", className),
|
|
6174
|
-
style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
|
|
6175
|
-
children: /* @__PURE__ */ jsx20("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
|
|
6176
|
-
}
|
|
6177
|
-
);
|
|
6178
|
-
}
|
|
6179
|
-
|
|
6180
|
-
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
6181
6181
|
import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
6182
6182
|
function normalizeWebAuthnError(err) {
|
|
6183
6183
|
const raw = err?.message || String(err || "");
|
|
@@ -7574,28 +7574,27 @@ var AuthMenu = () => {
|
|
|
7574
7574
|
}),
|
|
7575
7575
|
[onAuthSuccess, goBackToSignIn, checkDisplayNameRequired]
|
|
7576
7576
|
);
|
|
7577
|
-
return /* @__PURE__ */
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
|
|
7582
|
-
|
|
7583
|
-
|
|
7584
|
-
|
|
7585
|
-
|
|
7586
|
-
stepContent[step]
|
|
7587
|
-
|
|
7588
|
-
|
|
7589
|
-
|
|
7590
|
-
|
|
7591
|
-
|
|
7592
|
-
|
|
7593
|
-
|
|
7594
|
-
|
|
7595
|
-
]
|
|
7596
|
-
}
|
|
7597
|
-
|
|
7598
|
-
) }) });
|
|
7577
|
+
return /* @__PURE__ */ jsxs23("div", { className: "w-full", children: [
|
|
7578
|
+
/* @__PURE__ */ jsx29(AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx29(
|
|
7579
|
+
motion.div,
|
|
7580
|
+
{
|
|
7581
|
+
initial: { opacity: 0, height: DEFAULT_AUTH_MENU_HEIGHT },
|
|
7582
|
+
animate: { opacity: 1, height: "auto" },
|
|
7583
|
+
exit: { opacity: 0, height: DEFAULT_AUTH_MENU_HEIGHT },
|
|
7584
|
+
style: { overflow: "hidden" },
|
|
7585
|
+
transition: Y_ANIMATION_SETUP,
|
|
7586
|
+
children: stepContent[step]
|
|
7587
|
+
},
|
|
7588
|
+
step
|
|
7589
|
+
) }),
|
|
7590
|
+
/* @__PURE__ */ jsx29(Expandable, { isExpanded: !!alert2, contentClassName: "px-[var(--l-pass-pd)]", children: /* @__PURE__ */ jsxs23(Highlight, { type: "error", className: "w-full flex gap-[var(--l-pass-gap)] ", children: [
|
|
7591
|
+
/* @__PURE__ */ jsx29(AlertTriangle2, { className: "w-5 h-5 text-[var(--l-pass-error)]" }),
|
|
7592
|
+
/* @__PURE__ */ jsxs23("span", { className: "block w-full flex flex-col gap-1 flex-1", children: [
|
|
7593
|
+
alert2?.title && /* @__PURE__ */ jsx29("span", { className: "block font-bold leading-5", children: alert2.title }),
|
|
7594
|
+
/* @__PURE__ */ jsx29("span", { className: "block whitespace-pre-line", children: alert2?.message || "Unknown error" })
|
|
7595
|
+
] })
|
|
7596
|
+
] }) })
|
|
7597
|
+
] });
|
|
7599
7598
|
};
|
|
7600
7599
|
|
|
7601
7600
|
// src/internal/components/BuyMenu/ByuMenu.tsx
|
|
@@ -8242,15 +8241,15 @@ function BuyMenu() {
|
|
|
8242
8241
|
simplex: "bg-[#081f2c]",
|
|
8243
8242
|
binance: "bg-[#f3ba2f]"
|
|
8244
8243
|
};
|
|
8245
|
-
return /* @__PURE__ */
|
|
8244
|
+
return /* @__PURE__ */ jsx36(
|
|
8246
8245
|
"div",
|
|
8247
8246
|
{
|
|
8248
8247
|
style: {
|
|
8249
8248
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
8250
8249
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
8251
8250
|
},
|
|
8252
|
-
className: "list-scrollbar-y w-full
|
|
8253
|
-
children: [
|
|
8251
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
8252
|
+
children: /* @__PURE__ */ jsxs28(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
8254
8253
|
/* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8255
8254
|
/* @__PURE__ */ jsx36(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx36(ArrowLeft5, { className: "h-4 w-4" }) }),
|
|
8256
8255
|
/* @__PURE__ */ jsx36("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
|
|
@@ -8268,22 +8267,20 @@ function BuyMenu() {
|
|
|
8268
8267
|
id
|
|
8269
8268
|
)) }),
|
|
8270
8269
|
/* @__PURE__ */ jsx36(ProviderComponent, { control, walletAddress })
|
|
8271
|
-
]
|
|
8270
|
+
] })
|
|
8272
8271
|
}
|
|
8273
8272
|
);
|
|
8274
8273
|
}
|
|
8275
8274
|
|
|
8276
8275
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8277
|
-
import { useMutation as useMutation10, useQuery as
|
|
8278
|
-
import { AlertCircle as AlertCircle2, CheckCircle2,
|
|
8276
|
+
import { useMutation as useMutation10, useQuery as useQuery7, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
|
|
8277
|
+
import { AlertCircle as AlertCircle2, CheckCircle2, CloudDownload, Loader as Loader11, UserCircle as UserCircle2 } from "lucide-react";
|
|
8279
8278
|
import { useEffect as useEffect19 } from "react";
|
|
8280
8279
|
init_vaultClient();
|
|
8281
8280
|
|
|
8282
8281
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
8283
|
-
import {
|
|
8284
|
-
import {
|
|
8285
|
-
import { Fragment as Fragment6, useEffect as useEffect17, useMemo as useMemo2 } from "react";
|
|
8286
|
-
init_vaultClient();
|
|
8282
|
+
import { Cloud, FileDown, FileUp, ShieldCheck } from "lucide-react";
|
|
8283
|
+
import { Fragment as Fragment6, useMemo as useMemo2 } from "react";
|
|
8287
8284
|
|
|
8288
8285
|
// src/internal/components/KeyshareRestoreMenu/hooks/useCheckBackupAvailability.ts
|
|
8289
8286
|
init_vaultClient();
|
|
@@ -8695,15 +8692,13 @@ function useRestoreAccount() {
|
|
|
8695
8692
|
|
|
8696
8693
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
8697
8694
|
import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
8698
|
-
var
|
|
8699
|
-
{ method: "server", label: "
|
|
8700
|
-
{ method: "file", label: "File", Icon: FileDown }
|
|
8701
|
-
|
|
8695
|
+
var restoreMethodes = (mode) => [
|
|
8696
|
+
{ method: "server", label: "Secured Vault", Icon: ShieldCheck },
|
|
8697
|
+
{ method: "file", label: "Local File", Icon: mode === "restore" ? FileUp : FileDown },
|
|
8698
|
+
{ method: "cloud", label: "Cloud", Icon: Cloud }
|
|
8702
8699
|
];
|
|
8703
8700
|
function MethodSelector(props) {
|
|
8704
|
-
const { mode = "restore" } = props;
|
|
8705
|
-
const qc = useQueryClient7();
|
|
8706
|
-
const address = useLumiaPassportSession((st) => st.address);
|
|
8701
|
+
const { mode = "restore", serverRecoveryStatus } = props;
|
|
8707
8702
|
const {
|
|
8708
8703
|
method: selectedRecoveryMethod,
|
|
8709
8704
|
setMethod,
|
|
@@ -8713,16 +8708,8 @@ function MethodSelector(props) {
|
|
|
8713
8708
|
setError,
|
|
8714
8709
|
setSuccess
|
|
8715
8710
|
} = useRestoreStore();
|
|
8716
|
-
const { data: serverRecoveryStatus, isFetching: isBackupStatusLoading } = useQuery6({
|
|
8717
|
-
retry: false,
|
|
8718
|
-
queryKey: [CHECK_BACKUP_QUERY_KEY, address],
|
|
8719
|
-
queryFn: async () => await getShareRecoveryStats()
|
|
8720
|
-
});
|
|
8721
|
-
useEffect17(() => {
|
|
8722
|
-
qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY] });
|
|
8723
|
-
}, [qc]);
|
|
8724
8711
|
const recoveryRenderMethods = useMemo2(() => {
|
|
8725
|
-
const methodsWithBackupData =
|
|
8712
|
+
const methodsWithBackupData = restoreMethodes(mode).map((mt) => {
|
|
8726
8713
|
const lastCreatedBackupMethod = serverRecoveryStatus?.created?.encryptionMethod;
|
|
8727
8714
|
let data = null;
|
|
8728
8715
|
switch (true) {
|
|
@@ -8744,19 +8731,21 @@ function MethodSelector(props) {
|
|
|
8744
8731
|
}, [mode, serverRecoveryStatus]);
|
|
8745
8732
|
if (!!selectedRecoveryMethod) return null;
|
|
8746
8733
|
return /* @__PURE__ */ jsxs29(Fragment6, { children: [
|
|
8747
|
-
/* @__PURE__ */ jsx37("span", { className: "block w-full text-xs font-semibold text-center leading-8 text-[var(--l-pass-fg-muted)]", children:
|
|
8734
|
+
/* @__PURE__ */ jsx37("span", { className: "block w-full text-xs font-semibold text-center leading-8 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx37("span", { className: "leading-8", children: mode === "restore" ? "Choose restore method" : "Create or Update Backup via" }) }),
|
|
8748
8735
|
/* @__PURE__ */ jsx37(
|
|
8749
8736
|
"div",
|
|
8750
8737
|
{
|
|
8751
8738
|
style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
|
|
8752
8739
|
className: "w-full grid gap-[var(--l-pass-gap)]",
|
|
8753
|
-
children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon, data }) => /* @__PURE__ */ jsxs29("div", { className: "w-full h-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
8754
|
-
/* @__PURE__ */
|
|
8740
|
+
children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon, data }) => /* @__PURE__ */ jsxs29("div", { className: "w-full h-full flex flex-col items-center gap-[var(--l-pass-gap)]", children: [
|
|
8741
|
+
/* @__PURE__ */ jsx37(
|
|
8755
8742
|
Button,
|
|
8756
8743
|
{
|
|
8757
|
-
size: "
|
|
8744
|
+
size: "icon",
|
|
8745
|
+
variant: "outline",
|
|
8758
8746
|
type: "button",
|
|
8759
|
-
|
|
8747
|
+
style: { height: "unset", maxWidth: "96px" },
|
|
8748
|
+
className: "w-full aspect-square h-unset rounded-[var(--l-pass-el-bdrs)]",
|
|
8760
8749
|
onClick: () => {
|
|
8761
8750
|
setRestorePassword("");
|
|
8762
8751
|
setRestoreFile(null);
|
|
@@ -8765,31 +8754,23 @@ function MethodSelector(props) {
|
|
|
8765
8754
|
setSuccess(null);
|
|
8766
8755
|
setMethod(recoveryMethod);
|
|
8767
8756
|
},
|
|
8768
|
-
children:
|
|
8769
|
-
/* @__PURE__ */ jsx37(Icon, { className: "h-6 w-6" }),
|
|
8770
|
-
label
|
|
8771
|
-
]
|
|
8757
|
+
children: /* @__PURE__ */ jsx37(Icon, { className: "w-5 h-5 md:w-8 md:h-8" })
|
|
8772
8758
|
}
|
|
8773
8759
|
),
|
|
8774
|
-
|
|
8775
|
-
"span",
|
|
8776
|
-
{
|
|
8777
|
-
className: cn(
|
|
8778
|
-
"flex w-full h-fit items-center gap-[var(--l-pass-gap)]",
|
|
8779
|
-
"rounded-[var(--l-pass-el-bdrs)] p-[var(--l-pass-pd)]",
|
|
8780
|
-
"bg-[var(--l-pass-bg-success)]",
|
|
8781
|
-
"text-[10px] text-black"
|
|
8782
|
-
),
|
|
8783
|
-
children: [
|
|
8784
|
-
`Last ${label} backup:`,
|
|
8785
|
-
/* @__PURE__ */ jsx37("br", {}),
|
|
8786
|
-
typeof data.lastBackup === "number" ? new Date(data.lastBackup).toLocaleString() : data.lastBackup.toUpperCase()
|
|
8787
|
-
]
|
|
8788
|
-
}
|
|
8789
|
-
)
|
|
8760
|
+
/* @__PURE__ */ jsx37("span", { className: "text-xs font-bold leading-4", children: label })
|
|
8790
8761
|
] }, recoveryMethod))
|
|
8791
8762
|
}
|
|
8792
|
-
)
|
|
8763
|
+
),
|
|
8764
|
+
/* @__PURE__ */ jsx37("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-gap)]", children: recoveryRenderMethods.filter((el) => !!el.data?.lastBackup).map(({ data, label, Icon }, methodIdx) => /* @__PURE__ */ jsxs29(Highlight, { type: "info", children: [
|
|
8765
|
+
/* @__PURE__ */ jsxs29("span", { children: [
|
|
8766
|
+
/* @__PURE__ */ jsx37(Icon, { className: "w-4 h-4 inline" }),
|
|
8767
|
+
" Last ",
|
|
8768
|
+
/* @__PURE__ */ jsx37("strong", { children: label }),
|
|
8769
|
+
" backup:"
|
|
8770
|
+
] }),
|
|
8771
|
+
/* @__PURE__ */ jsx37("br", {}),
|
|
8772
|
+
/* @__PURE__ */ jsx37("span", { className: "text-[10px] font-mono", children: typeof data.lastBackup === "number" ? new Date(data.lastBackup).toLocaleString() : data.lastBackup.toUpperCase() })
|
|
8773
|
+
] }, `${label}-${methodIdx}`)) })
|
|
8793
8774
|
] });
|
|
8794
8775
|
}
|
|
8795
8776
|
|
|
@@ -8802,7 +8783,7 @@ function NoBackupFound(props) {
|
|
|
8802
8783
|
const { isLoading, restoreFromFile } = props;
|
|
8803
8784
|
const { restoreFile, setRestoreFile } = useRestoreStore();
|
|
8804
8785
|
return /* @__PURE__ */ jsxs30(Fragment7, { children: [
|
|
8805
|
-
/* @__PURE__ */ jsxs30(Highlight, { type: "
|
|
8786
|
+
/* @__PURE__ */ jsxs30(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
|
|
8806
8787
|
/* @__PURE__ */ jsx38(AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8807
8788
|
/* @__PURE__ */ jsxs30("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
|
|
8808
8789
|
/* @__PURE__ */ jsx38("span", { className: "block w-full text-xl leading-5 font-semibold", children: "No Keyshare Found! Account Recovery Needed" }),
|
|
@@ -8864,7 +8845,7 @@ function File2(props) {
|
|
|
8864
8845
|
children: /* @__PURE__ */ jsx39(ArrowLeft6, { className: "h-4 w-4" })
|
|
8865
8846
|
}
|
|
8866
8847
|
),
|
|
8867
|
-
/* @__PURE__ */ jsx39("span", { className: "text-
|
|
8848
|
+
/* @__PURE__ */ jsx39("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} File Backup` })
|
|
8868
8849
|
] }),
|
|
8869
8850
|
mode === "restore" && /* @__PURE__ */ jsx39("label", { className: "block w-full flex items-center justify-center cursor-pointer p-[var(--l-pass-pd)] bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]", children: /* @__PURE__ */ jsx39(
|
|
8870
8851
|
"input",
|
|
@@ -8902,7 +8883,7 @@ function File2(props) {
|
|
|
8902
8883
|
}
|
|
8903
8884
|
|
|
8904
8885
|
// src/internal/components/KeyshareRestoreMenu/methods/Server.tsx
|
|
8905
|
-
import { ArrowLeft as ArrowLeft7, Eye, EyeOff, Loader as Loader9, ServerIcon } from "lucide-react";
|
|
8886
|
+
import { ArrowLeft as ArrowLeft7, ChevronRight as ChevronRight2, Eye, EyeOff, Loader as Loader9, ServerIcon } from "lucide-react";
|
|
8906
8887
|
import { useRef as useRef11 } from "react";
|
|
8907
8888
|
|
|
8908
8889
|
// src/internal/components/ui/checkbox.tsx
|
|
@@ -8968,40 +8949,54 @@ function Server(props) {
|
|
|
8968
8949
|
children: /* @__PURE__ */ jsx41(ArrowLeft7, { className: "h-4 w-4" })
|
|
8969
8950
|
}
|
|
8970
8951
|
),
|
|
8971
|
-
/* @__PURE__ */ jsx41("span", { className: "text-
|
|
8952
|
+
/* @__PURE__ */ jsx41("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} Server Backup` })
|
|
8972
8953
|
] }),
|
|
8973
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex
|
|
8954
|
+
!usePasskey ? /* @__PURE__ */ jsxs32("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
8974
8955
|
/* @__PURE__ */ jsx41(
|
|
8975
|
-
|
|
8956
|
+
Input,
|
|
8976
8957
|
{
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8958
|
+
autoComplete: "off",
|
|
8959
|
+
Icon: ServerIcon,
|
|
8960
|
+
type: showPassword ? "text" : "password",
|
|
8961
|
+
placeholder: "Your backup password",
|
|
8962
|
+
value: restorePassword,
|
|
8963
|
+
onChange: (e) => setRestorePassword(e.target.value),
|
|
8964
|
+
className: "flex-1",
|
|
8965
|
+
onKeyDown: (e) => {
|
|
8966
|
+
if (e.key === "Enter" && !isLoading && restorePassword) actionRef.current?.click();
|
|
8967
|
+
},
|
|
8968
|
+
element: /* @__PURE__ */ jsx41(
|
|
8969
|
+
Button,
|
|
8970
|
+
{
|
|
8971
|
+
variant: "ghost",
|
|
8972
|
+
size: "icon",
|
|
8973
|
+
type: "button",
|
|
8974
|
+
title: "Restore using Password",
|
|
8975
|
+
disabled: isLoading,
|
|
8976
|
+
onClick: () => setShowPassword(!showPassword),
|
|
8977
|
+
children: showPassword ? /* @__PURE__ */ jsx41(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx41(Eye, { className: "h-4 w-4" })
|
|
8978
|
+
}
|
|
8979
|
+
)
|
|
8981
8980
|
}
|
|
8982
8981
|
),
|
|
8983
|
-
/* @__PURE__ */ jsx41(
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
|
|
8989
|
-
|
|
8990
|
-
|
|
8991
|
-
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
8995
|
-
|
|
8996
|
-
},
|
|
8997
|
-
element: /* @__PURE__ */ jsx41(Button, { variant: "ghost", size: "icon", type: "button", onClick: () => setShowPassword(!showPassword), children: showPassword ? /* @__PURE__ */ jsx41(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx41(Eye, { className: "h-4 w-4" }) })
|
|
8998
|
-
}
|
|
8999
|
-
),
|
|
9000
|
-
/* @__PURE__ */ jsxs32(
|
|
8982
|
+
/* @__PURE__ */ jsx41(
|
|
8983
|
+
Button,
|
|
8984
|
+
{
|
|
8985
|
+
ref: actionRef,
|
|
8986
|
+
size: "icon",
|
|
8987
|
+
variant: "default",
|
|
8988
|
+
onClick: serverHandler,
|
|
8989
|
+
disabled: isLoading || !usePasskey && !restorePassword,
|
|
8990
|
+
className: "w-full w-12 h-12 flex-shrink-0 rounded-[var(--l-pass-el-bdrs)]",
|
|
8991
|
+
children: isLoading ? /* @__PURE__ */ jsx41(Loader9, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ jsx41(ChevronRight2, { className: "h-4 w-4" })
|
|
8992
|
+
}
|
|
8993
|
+
)
|
|
8994
|
+
] }) : /* @__PURE__ */ jsxs32(
|
|
9001
8995
|
Button,
|
|
9002
8996
|
{
|
|
9003
8997
|
ref: actionRef,
|
|
9004
8998
|
size: "large",
|
|
8999
|
+
title: "Restore using Passkey",
|
|
9005
9000
|
onClick: serverHandler,
|
|
9006
9001
|
disabled: isLoading || !usePasskey && !restorePassword,
|
|
9007
9002
|
className: "w-full",
|
|
@@ -9010,12 +9005,27 @@ function Server(props) {
|
|
|
9010
9005
|
/* @__PURE__ */ jsx41("span", { children: isLoading ? loadingText : `${actionText} with ${passkeyOrPassword}` })
|
|
9011
9006
|
]
|
|
9012
9007
|
}
|
|
9013
|
-
)
|
|
9008
|
+
),
|
|
9009
|
+
/* @__PURE__ */ jsxs32(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
9010
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9011
|
+
/* @__PURE__ */ jsx41(
|
|
9012
|
+
Checkbox,
|
|
9013
|
+
{
|
|
9014
|
+
id: "use-backup-password",
|
|
9015
|
+
name: "use-backup-password-checkbox",
|
|
9016
|
+
checked: usePasskey,
|
|
9017
|
+
onCheckedChange: (checked) => setUsePasskey(!!checked)
|
|
9018
|
+
}
|
|
9019
|
+
),
|
|
9020
|
+
/* @__PURE__ */ jsx41("label", { htmlFor: "use-backup-password", className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Use passkey instead of password" })
|
|
9021
|
+
] }),
|
|
9022
|
+
/* @__PURE__ */ jsx41("span", { className: "text-[10px] text-[var(--l-pass-fg-muted)]", children: "* use this option if you used passkey as encryption to create your server backup, otherwise use password" })
|
|
9023
|
+
] })
|
|
9014
9024
|
] });
|
|
9015
9025
|
}
|
|
9016
9026
|
|
|
9017
9027
|
// src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
|
|
9018
|
-
import { useQuery as
|
|
9028
|
+
import { useQuery as useQuery6 } from "@tanstack/react-query";
|
|
9019
9029
|
import { ArrowLeft as ArrowLeft8, CloudUpload, Loader as Loader10 } from "lucide-react";
|
|
9020
9030
|
import { useEffect as useEffect18 } from "react";
|
|
9021
9031
|
import { Fragment as Fragment10, jsx as jsx42, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
@@ -9028,7 +9038,7 @@ function Cloud2(props) {
|
|
|
9028
9038
|
data: cloudProviders = [],
|
|
9029
9039
|
isLoading: isCloudProvidersLoading,
|
|
9030
9040
|
error: cloudProvidersError
|
|
9031
|
-
} =
|
|
9041
|
+
} = useQuery6({
|
|
9032
9042
|
retry: false,
|
|
9033
9043
|
enabled: !!passportUserId,
|
|
9034
9044
|
queryKey: [AVAILABLE_CLOUD_PROVIDERS_QUERY_KEY, passportUserId],
|
|
@@ -9066,7 +9076,7 @@ function Cloud2(props) {
|
|
|
9066
9076
|
children: /* @__PURE__ */ jsx42(ArrowLeft8, { className: "h-4 w-4" })
|
|
9067
9077
|
}
|
|
9068
9078
|
),
|
|
9069
|
-
/* @__PURE__ */ jsx42("span", { className: "text-
|
|
9079
|
+
/* @__PURE__ */ jsx42("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} Cloud Backup` })
|
|
9070
9080
|
] }),
|
|
9071
9081
|
isCloudProvidersLoading && /* @__PURE__ */ jsx42(Loader10, { className: "animate-spin w-4 h-4 mx-auto" }),
|
|
9072
9082
|
!isCloudProvidersLoading && cloudProviders.length > 1 && /* @__PURE__ */ jsx42(
|
|
@@ -9103,10 +9113,10 @@ var RESTORE_COMPONENTS = {
|
|
|
9103
9113
|
file: File2
|
|
9104
9114
|
};
|
|
9105
9115
|
var KeyshareRestoreMenu = () => {
|
|
9106
|
-
const qc =
|
|
9116
|
+
const qc = useQueryClient7();
|
|
9107
9117
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
9108
9118
|
const { address, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
|
|
9109
|
-
const { isFetching: isBackupStatusLoading } =
|
|
9119
|
+
const { data: serverRecoveryStatus, isFetching: isBackupStatusLoading } = useQuery7({
|
|
9110
9120
|
retry: false,
|
|
9111
9121
|
queryKey: [CHECK_BACKUP_QUERY_KEY, address],
|
|
9112
9122
|
queryFn: async () => await getShareRecoveryStats()
|
|
@@ -9154,7 +9164,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9154
9164
|
setIsLoading(false);
|
|
9155
9165
|
setIsDialogForced(false);
|
|
9156
9166
|
callbacks?.onLumiaPassportDisconnect?.({ address: "0x", userId: disconnectedUserId });
|
|
9157
|
-
setPage("auth" /* AUTH */);
|
|
9167
|
+
setTimeout(() => setPage("auth" /* AUTH */), 50);
|
|
9158
9168
|
},
|
|
9159
9169
|
onError: (err) => {
|
|
9160
9170
|
setError(err.message || "An unknown error occurred during sign out");
|
|
@@ -9170,24 +9180,24 @@ var KeyshareRestoreMenu = () => {
|
|
|
9170
9180
|
style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
|
|
9171
9181
|
className: "list-scrollbar-y w-full",
|
|
9172
9182
|
children: /* @__PURE__ */ jsxs34(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
9173
|
-
checkingBackup && /* @__PURE__ */ jsxs34("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
|
|
9183
|
+
(checkingBackup || isBackupStatusLoading) && /* @__PURE__ */ jsxs34("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
|
|
9174
9184
|
/* @__PURE__ */ jsx43(Loader11, { className: "w-5 h-5 animate-spin" }),
|
|
9175
9185
|
/* @__PURE__ */ jsx43("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." }),
|
|
9176
9186
|
/* @__PURE__ */ jsx43("span", { className: "block w-full text-xs leading-4", children: "Please wait while we check for available backups..." })
|
|
9177
9187
|
] }),
|
|
9178
|
-
!isBackupStatusLoading && !checkingBackup && !hasServerBackup && /* @__PURE__ */ jsx43(
|
|
9188
|
+
!isBackupStatusLoading && !isDisconnecting && !checkingBackup && !hasServerBackup && /* @__PURE__ */ jsx43(
|
|
9179
9189
|
NoBackupFound,
|
|
9180
9190
|
{
|
|
9181
9191
|
isLoading: isRestoringFromServer || isRestoringFromCloud || isRestoringFromFile || isDisconnecting,
|
|
9182
9192
|
restoreFromFile
|
|
9183
9193
|
}
|
|
9184
9194
|
),
|
|
9185
|
-
!success && !checkingBackup && hasServerBackup && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
9195
|
+
!success && !checkingBackup && !isBackupStatusLoading && hasServerBackup && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
9186
9196
|
/* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)] px-[var(--l-pass-pd)] py-[var(--l-pass-gap)]", children: [
|
|
9187
|
-
/* @__PURE__ */ jsx43(
|
|
9197
|
+
/* @__PURE__ */ jsx43(CloudDownload, { className: "w-6 h-6" }),
|
|
9188
9198
|
/* @__PURE__ */ jsx43("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
|
|
9189
9199
|
] }),
|
|
9190
|
-
/* @__PURE__ */ jsx43(MethodSelector, { mode: "restore" }),
|
|
9200
|
+
/* @__PURE__ */ jsx43(MethodSelector, { mode: "restore", serverRecoveryStatus }),
|
|
9191
9201
|
!!currentRestoreMethod && /* @__PURE__ */ jsx43(
|
|
9192
9202
|
RestoreComponent,
|
|
9193
9203
|
{
|
|
@@ -9198,7 +9208,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9198
9208
|
}
|
|
9199
9209
|
)
|
|
9200
9210
|
] }),
|
|
9201
|
-
!success && !currentRestoreMethod && !checkingBackup && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
9211
|
+
!success && !currentRestoreMethod && !checkingBackup && !isBackupStatusLoading && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
9202
9212
|
/* @__PURE__ */ jsx43("div", { className: "w-full mt-[var(--l-pass-gap)]", style: { borderTop: "1px solid var(--l-pass-bd)" } }),
|
|
9203
9213
|
/* @__PURE__ */ jsx43("div", { className: "w-full flex items-center justify-center", children: /* @__PURE__ */ jsx43("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Or" }) }),
|
|
9204
9214
|
/* @__PURE__ */ jsxs34(
|
|
@@ -9210,8 +9220,8 @@ var KeyshareRestoreMenu = () => {
|
|
|
9210
9220
|
disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
|
|
9211
9221
|
className: "w-fit mx-auto",
|
|
9212
9222
|
children: [
|
|
9213
|
-
isDisconnecting ? /* @__PURE__ */ jsx43(Loader11, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx43(
|
|
9214
|
-
/* @__PURE__ */ jsx43("span", { children: "
|
|
9223
|
+
isDisconnecting ? /* @__PURE__ */ jsx43(Loader11, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx43(UserCircle2, { className: "w-4 h-4" }),
|
|
9224
|
+
/* @__PURE__ */ jsx43("span", { children: "Try Another Account" })
|
|
9215
9225
|
]
|
|
9216
9226
|
}
|
|
9217
9227
|
)
|
|
@@ -9230,8 +9240,10 @@ var KeyshareRestoreMenu = () => {
|
|
|
9230
9240
|
};
|
|
9231
9241
|
|
|
9232
9242
|
// src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx
|
|
9243
|
+
import { useQuery as useQuery8 } from "@tanstack/react-query";
|
|
9233
9244
|
import { AlertCircle as AlertCircle3, ArrowLeft as ArrowLeft9, CheckCircle2 as CheckCircle22 } from "lucide-react";
|
|
9234
9245
|
import { useEffect as useEffect20 } from "react";
|
|
9246
|
+
init_vaultClient();
|
|
9235
9247
|
import { Fragment as Fragment12, jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
9236
9248
|
var COMPONENTS = {
|
|
9237
9249
|
server: Server,
|
|
@@ -9240,6 +9252,7 @@ var COMPONENTS = {
|
|
|
9240
9252
|
};
|
|
9241
9253
|
var BACKUP_INFO_MESSAGE = "No existing backups found. Creating a backup will help you restore your account if you clear cache or lose access to this device.";
|
|
9242
9254
|
function KeyshareBackupMenu() {
|
|
9255
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
9243
9256
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9244
9257
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9245
9258
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
@@ -9257,6 +9270,11 @@ function KeyshareBackupMenu() {
|
|
|
9257
9270
|
setShowPassword,
|
|
9258
9271
|
setUsePasskey
|
|
9259
9272
|
} = useRestoreStore();
|
|
9273
|
+
const { data: serverRecoveryStatus, isFetching: isBackupStatusLoading } = useQuery8({
|
|
9274
|
+
retry: false,
|
|
9275
|
+
queryKey: [CHECK_BACKUP_QUERY_KEY, address],
|
|
9276
|
+
queryFn: async () => await getShareRecoveryStats()
|
|
9277
|
+
});
|
|
9260
9278
|
const { hasRecoveryData, isRecoveryLoading } = useCheckBackupAvailability();
|
|
9261
9279
|
const {
|
|
9262
9280
|
isPasswordBackupCreating,
|
|
@@ -9299,30 +9317,17 @@ function KeyshareBackupMenu() {
|
|
|
9299
9317
|
/* @__PURE__ */ jsx44(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9300
9318
|
/* @__PURE__ */ jsx44("span", { className: "block flex-1", children: BACKUP_INFO_MESSAGE })
|
|
9301
9319
|
] }),
|
|
9302
|
-
/* @__PURE__ */ jsx44(MethodSelector, { mode: "backup" }),
|
|
9303
|
-
!!currentBackupMethod && /* @__PURE__ */
|
|
9304
|
-
|
|
9305
|
-
|
|
9306
|
-
|
|
9307
|
-
|
|
9308
|
-
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
),
|
|
9314
|
-
currentBackupMethod === "server" && /* @__PURE__ */ jsxs35(Highlight, { className: "flex items-start gap-[var(--l-pass-gap)]", type: "info", children: [
|
|
9315
|
-
/* @__PURE__ */ jsx44(CheckCircle22, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9316
|
-
/* @__PURE__ */ jsxs35("div", { children: [
|
|
9317
|
-
/* @__PURE__ */ jsx44("span", { className: "font-medium", children: "Security Notice:" }),
|
|
9318
|
-
" All backups are encrypted with AES-256 using your ",
|
|
9319
|
-
usePasskey ? "passkey" : "custom password",
|
|
9320
|
-
".",
|
|
9321
|
-
usePasskey ? " Your passkey authenticator is required to restore backups. " : " Store your password securely - ",
|
|
9322
|
-
"Without backup access, you cannot recover your account if you lose this device."
|
|
9323
|
-
] })
|
|
9324
|
-
] })
|
|
9325
|
-
] }),
|
|
9320
|
+
/* @__PURE__ */ jsx44(MethodSelector, { mode: "backup", serverRecoveryStatus }),
|
|
9321
|
+
!!currentBackupMethod && /* @__PURE__ */ jsx44(Fragment12, { children: /* @__PURE__ */ jsx44(
|
|
9322
|
+
BackupComponent,
|
|
9323
|
+
{
|
|
9324
|
+
mode: "backup",
|
|
9325
|
+
isLoading: isPasswordBackupCreating || isCloudBackupCreating || isLocalBackupCreating,
|
|
9326
|
+
fileHandler: createLocalBackup,
|
|
9327
|
+
serverHandler: createPasswordBackup,
|
|
9328
|
+
cloudHandler: createCloudBackup
|
|
9329
|
+
}
|
|
9330
|
+
) }),
|
|
9326
9331
|
error && /* @__PURE__ */ jsxs35(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9327
9332
|
/* @__PURE__ */ jsx44(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9328
9333
|
/* @__PURE__ */ jsx44("span", { className: "block w-full flex-1", children: error })
|
|
@@ -9337,7 +9342,7 @@ function KeyshareBackupMenu() {
|
|
|
9337
9342
|
}
|
|
9338
9343
|
|
|
9339
9344
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9340
|
-
import { ChevronLeft, ChevronRight as
|
|
9345
|
+
import { ChevronLeft, ChevronRight as ChevronRight3, DollarSign as DollarSign3, Wallet2 as Wallet23 } from "lucide-react";
|
|
9341
9346
|
import { useEffect as useEffect21 } from "react";
|
|
9342
9347
|
|
|
9343
9348
|
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
@@ -9359,7 +9364,7 @@ function useProvidersList() {
|
|
|
9359
9364
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9360
9365
|
import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
9361
9366
|
var MAIN_MENU_BUTTONS = [
|
|
9362
|
-
{ id: "send" /* SEND */, label: "Send", icon:
|
|
9367
|
+
{ id: "send" /* SEND */, label: "Send", icon: ChevronRight3 },
|
|
9363
9368
|
{ id: "receive" /* RECEIVE */, label: "Receive", icon: ChevronLeft },
|
|
9364
9369
|
{ id: "buy" /* BUY */, label: "Buy", icon: DollarSign3 },
|
|
9365
9370
|
{ id: "assets" /* ASSETS */, label: "Portfolio", icon: Wallet23 }
|
|
@@ -9393,7 +9398,7 @@ import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft10, Loader as Lo
|
|
|
9393
9398
|
import { useMemo as useMemo3 } from "react";
|
|
9394
9399
|
|
|
9395
9400
|
// src/modules/linkedProfiles.ts
|
|
9396
|
-
import { useQuery as useQuery10, useQueryClient as
|
|
9401
|
+
import { useQuery as useQuery10, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
|
|
9397
9402
|
import { useCallback as useCallback10 } from "react";
|
|
9398
9403
|
init_auth();
|
|
9399
9404
|
init_common();
|
|
@@ -9414,7 +9419,7 @@ async function getLinkProfilesData() {
|
|
|
9414
9419
|
return { profiles: loadedProfiles, avatar };
|
|
9415
9420
|
}
|
|
9416
9421
|
function useLumiaPassportLinkedProfiles() {
|
|
9417
|
-
const qc =
|
|
9422
|
+
const qc = useQueryClient8();
|
|
9418
9423
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9419
9424
|
const {
|
|
9420
9425
|
data,
|
|
@@ -9434,14 +9439,14 @@ function useLumiaPassportLinkedProfiles() {
|
|
|
9434
9439
|
}
|
|
9435
9440
|
|
|
9436
9441
|
// src/internal/components/ManageWalletMenu/AddProvider.tsx
|
|
9437
|
-
import { useQueryClient as
|
|
9442
|
+
import { useQueryClient as useQueryClient10 } from "@tanstack/react-query";
|
|
9438
9443
|
init_passkey2();
|
|
9439
9444
|
|
|
9440
9445
|
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9441
9446
|
init_lumiaPassport();
|
|
9442
9447
|
init_projectId();
|
|
9443
9448
|
import { useMutation as useMutation11 } from "@tanstack/react-query";
|
|
9444
|
-
import { ChevronRight as
|
|
9449
|
+
import { ChevronRight as ChevronRight4, Loader as Loader12, Mail as Mail4 } from "lucide-react";
|
|
9445
9450
|
|
|
9446
9451
|
// src/internal/components/ManageWalletMenu/hooks/useStore.ts
|
|
9447
9452
|
import { create as create5 } from "zustand";
|
|
@@ -9554,7 +9559,7 @@ function EmailForm() {
|
|
|
9554
9559
|
size: "large",
|
|
9555
9560
|
disabled: !email || isLoading,
|
|
9556
9561
|
onClick: () => onSendVerificationCode(),
|
|
9557
|
-
children: isLoading ? /* @__PURE__ */ jsx46(Loader12, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx46(
|
|
9562
|
+
children: isLoading ? /* @__PURE__ */ jsx46(Loader12, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx46(ChevronRight4, { className: "w-4 h-4" })
|
|
9558
9563
|
}
|
|
9559
9564
|
)
|
|
9560
9565
|
] });
|
|
@@ -9590,11 +9595,11 @@ function useSendVerificationCode() {
|
|
|
9590
9595
|
}
|
|
9591
9596
|
|
|
9592
9597
|
// src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
|
|
9593
|
-
import { useMutation as useMutation13, useQueryClient as
|
|
9598
|
+
import { useMutation as useMutation13, useQueryClient as useQueryClient9 } from "@tanstack/react-query";
|
|
9594
9599
|
init_email();
|
|
9595
9600
|
function useVerifyCode() {
|
|
9596
9601
|
const { callbacks } = useLumiaPassportConfig();
|
|
9597
|
-
const qc =
|
|
9602
|
+
const qc = useQueryClient9();
|
|
9598
9603
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9599
9604
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
9600
9605
|
const { email, emailCode, setEmail, setEmailStep, setEmailCode, setProviderType, setLinkIsLoading, setAlert } = useManageWalletStore();
|
|
@@ -9646,7 +9651,7 @@ function normalizePasskeyLinkError(msg) {
|
|
|
9646
9651
|
return msg;
|
|
9647
9652
|
}
|
|
9648
9653
|
function AddProvider() {
|
|
9649
|
-
const qc =
|
|
9654
|
+
const qc = useQueryClient10();
|
|
9650
9655
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
9651
9656
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9652
9657
|
const {
|
|
@@ -9806,11 +9811,11 @@ function EmailNotConnectedWarning() {
|
|
|
9806
9811
|
}
|
|
9807
9812
|
|
|
9808
9813
|
// src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
|
|
9809
|
-
import { useQueryClient as
|
|
9814
|
+
import { useQueryClient as useQueryClient11 } from "@tanstack/react-query";
|
|
9810
9815
|
import React7, { useEffect as useEffect22 } from "react";
|
|
9811
9816
|
init_auth();
|
|
9812
9817
|
function useLinkSocial() {
|
|
9813
|
-
const qc =
|
|
9818
|
+
const qc = useQueryClient11();
|
|
9814
9819
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9815
9820
|
const {
|
|
9816
9821
|
config: { current: config },
|
|
@@ -9893,14 +9898,14 @@ function useLinkSocial() {
|
|
|
9893
9898
|
|
|
9894
9899
|
// src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
|
|
9895
9900
|
init_telegram2();
|
|
9896
|
-
import { useQueryClient as
|
|
9897
|
-
import { useCallback as useCallback11, useEffect as useEffect23, useState as
|
|
9901
|
+
import { useQueryClient as useQueryClient12 } from "@tanstack/react-query";
|
|
9902
|
+
import { useCallback as useCallback11, useEffect as useEffect23, useState as useState9 } from "react";
|
|
9898
9903
|
function useLinkTelegram() {
|
|
9899
9904
|
const {
|
|
9900
9905
|
config: { current: config },
|
|
9901
9906
|
callbacks
|
|
9902
9907
|
} = useLumiaPassportConfig();
|
|
9903
|
-
const qc =
|
|
9908
|
+
const qc = useQueryClient12();
|
|
9904
9909
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9905
9910
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
9906
9911
|
const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
|
|
@@ -9947,7 +9952,7 @@ function useLinkTelegram() {
|
|
|
9947
9952
|
setLinkIsLoading(false);
|
|
9948
9953
|
}
|
|
9949
9954
|
}, [config.social?.providers, callbacks]);
|
|
9950
|
-
const [telegramLinkStarted, setTelegramLinkStarted] =
|
|
9955
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = useState9(false);
|
|
9951
9956
|
useEffect23(() => {
|
|
9952
9957
|
console.log("[useLinkTelegram] Effect triggered:", {
|
|
9953
9958
|
providerType,
|
|
@@ -10194,18 +10199,18 @@ function ManageWalletMenu() {
|
|
|
10194
10199
|
}
|
|
10195
10200
|
|
|
10196
10201
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
10197
|
-
import { useMutation as useMutation14, useQueryClient as
|
|
10202
|
+
import { useMutation as useMutation14, useQueryClient as useQueryClient13 } from "@tanstack/react-query";
|
|
10198
10203
|
import { Key as Key5, Loader as Loader14 } from "lucide-react";
|
|
10199
|
-
import { useState as
|
|
10204
|
+
import { useState as useState10 } from "react";
|
|
10200
10205
|
init_auth();
|
|
10201
10206
|
import { jsx as jsx51, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
10202
10207
|
function UnlinkProviderMenu() {
|
|
10203
|
-
const qc =
|
|
10208
|
+
const qc = useQueryClient13();
|
|
10204
10209
|
const address = useLumiaPassportSession((st) => st.address);
|
|
10205
10210
|
const { callbacks } = useLumiaPassportConfig();
|
|
10206
10211
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10207
10212
|
const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
|
|
10208
|
-
const [confirmInput, setConfirmInput] =
|
|
10213
|
+
const [confirmInput, setConfirmInput] = useState10("");
|
|
10209
10214
|
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = useMutation14({
|
|
10210
10215
|
mutationFn: async () => {
|
|
10211
10216
|
if (!confirmUnlink) {
|
|
@@ -10279,7 +10284,7 @@ function UnlinkProviderMenu() {
|
|
|
10279
10284
|
}
|
|
10280
10285
|
|
|
10281
10286
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
10282
|
-
import { useQueryClient as
|
|
10287
|
+
import { useQueryClient as useQueryClient15 } from "@tanstack/react-query";
|
|
10283
10288
|
import { AlertCircle as AlertCircle4, ArrowLeft as ArrowLeft11, Gem, Loader as Loader16, RefreshCw } from "lucide-react";
|
|
10284
10289
|
import { useCallback as useCallback13 } from "react";
|
|
10285
10290
|
|
|
@@ -10595,9 +10600,9 @@ function useBlockscoutAssets(options) {
|
|
|
10595
10600
|
|
|
10596
10601
|
// src/internal/components/PortfolioMenu/PortfolioItem.tsx
|
|
10597
10602
|
init_base();
|
|
10598
|
-
import { useQuery as useQuery12, useQueryClient as
|
|
10603
|
+
import { useQuery as useQuery12, useQueryClient as useQueryClient14 } from "@tanstack/react-query";
|
|
10599
10604
|
import { Image as ImageIcon, Loader as Loader15, Shield, Sparkles } from "lucide-react";
|
|
10600
|
-
import { useState as
|
|
10605
|
+
import { useState as useState11 } from "react";
|
|
10601
10606
|
import { Fragment as Fragment15, jsx as jsx52, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
10602
10607
|
var price16 = Intl.NumberFormat("en-US", { minimumFractionDigits: 16, maximumFractionDigits: 16 });
|
|
10603
10608
|
function formatValue(price) {
|
|
@@ -10637,10 +10642,10 @@ async function getAssetRate2(symbol) {
|
|
|
10637
10642
|
var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
|
|
10638
10643
|
function PortfolioItem(props) {
|
|
10639
10644
|
const { address, asset, isProjectAsset } = props;
|
|
10640
|
-
const [nftImageError, setNftImageError] =
|
|
10641
|
-
const [logoError, setLogoError] =
|
|
10645
|
+
const [nftImageError, setNftImageError] = useState11(false);
|
|
10646
|
+
const [logoError, setLogoError] = useState11(false);
|
|
10642
10647
|
const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
|
|
10643
|
-
const qc =
|
|
10648
|
+
const qc = useQueryClient14();
|
|
10644
10649
|
const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
|
|
10645
10650
|
const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
|
|
10646
10651
|
const isNft = isNftAsset(asset);
|
|
@@ -10672,7 +10677,7 @@ function PortfolioItem(props) {
|
|
|
10672
10677
|
"flex-none flex items-center justify-center overflow-hidden relative",
|
|
10673
10678
|
"group-hover:opacity-60 transition-opacity",
|
|
10674
10679
|
// NFTs get rounded corners, tokens get circular
|
|
10675
|
-
isNft ? "w-12 h-12 rounded-
|
|
10680
|
+
isNft ? "w-12 h-12 rounded-[var(--l-pass-el-bdrs)]" : "w-12 h-12 rounded-full",
|
|
10676
10681
|
(!asset.logo || logoError) && !nftImage && "bg-[var(--l-pass-fg)]"
|
|
10677
10682
|
),
|
|
10678
10683
|
children: [
|
|
@@ -10710,7 +10715,14 @@ function PortfolioItem(props) {
|
|
|
10710
10715
|
),
|
|
10711
10716
|
/* @__PURE__ */ jsxs43("div", { className: "w-full flex-1", children: [
|
|
10712
10717
|
/* @__PURE__ */ jsxs43("div", { className: "w-full flex items-center justify-between text-xs", children: [
|
|
10713
|
-
/* @__PURE__ */ jsx52(
|
|
10718
|
+
/* @__PURE__ */ jsx52(
|
|
10719
|
+
"span",
|
|
10720
|
+
{
|
|
10721
|
+
className: "truncate max-w-[150px]",
|
|
10722
|
+
title: isNft ? asset.nftMetadata?.collectionName || asset.name : asset.name,
|
|
10723
|
+
children: isNft ? asset.nftMetadata?.collectionName || asset.name || (asset.address ? `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` : "Unknown") : asset.name || (asset.address ? `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` : "Unknown")
|
|
10724
|
+
}
|
|
10725
|
+
),
|
|
10714
10726
|
!isProjectAsset && !isNft && !isSecurity && /* @__PURE__ */ jsx52("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" }),
|
|
10715
10727
|
isNft && "type" in asset && /* @__PURE__ */ jsx52("span", { className: "text-[var(--l-pass-fg-muted)] uppercase text-[10px]", children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" }),
|
|
10716
10728
|
isSecurity && /* @__PURE__ */ jsx52("span", { className: "text-amber-500 uppercase text-[10px] font-medium", children: "Security Token" })
|
|
@@ -10746,7 +10758,7 @@ function PortfolioItem(props) {
|
|
|
10746
10758
|
import { jsx as jsx53, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
10747
10759
|
function PortfolioMenu() {
|
|
10748
10760
|
const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
|
|
10749
|
-
const qc =
|
|
10761
|
+
const qc = useQueryClient15();
|
|
10750
10762
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10751
10763
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10752
10764
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -10757,15 +10769,15 @@ function PortfolioMenu() {
|
|
|
10757
10769
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10758
10770
|
refreshBalances();
|
|
10759
10771
|
}, [qc, projectAssets, refreshBalances]);
|
|
10760
|
-
return /* @__PURE__ */
|
|
10772
|
+
return /* @__PURE__ */ jsx53(
|
|
10761
10773
|
"div",
|
|
10762
10774
|
{
|
|
10763
10775
|
style: {
|
|
10764
10776
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10765
10777
|
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
10766
10778
|
},
|
|
10767
|
-
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]
|
|
10768
|
-
children: [
|
|
10779
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
10780
|
+
children: /* @__PURE__ */ jsxs44(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
10769
10781
|
/* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10770
10782
|
/* @__PURE__ */ jsx53(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx53(ArrowLeft11, { className: "h-4 w-4" }) }),
|
|
10771
10783
|
/* @__PURE__ */ jsx53("span", { className: "text-xl font-semibold", children: "Your Assets" }),
|
|
@@ -10781,32 +10793,30 @@ function PortfolioMenu() {
|
|
|
10781
10793
|
}
|
|
10782
10794
|
)
|
|
10783
10795
|
] }),
|
|
10784
|
-
/* @__PURE__ */ jsxs44("div", { className: "w-full flex
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
|
|
10793
|
-
|
|
10794
|
-
|
|
10795
|
-
|
|
10796
|
-
|
|
10797
|
-
|
|
10798
|
-
|
|
10799
|
-
|
|
10800
|
-
|
|
10801
|
-
|
|
10802
|
-
|
|
10803
|
-
|
|
10804
|
-
|
|
10805
|
-
|
|
10806
|
-
))
|
|
10807
|
-
] })
|
|
10796
|
+
error && !isBlockscoutAvailable && /* @__PURE__ */ jsxs44("div", { className: "w-full flex items-center gap-2 p-3 rounded-lg bg-[var(--l-pass-warning-bg)] text-[var(--l-pass-warning)]", children: [
|
|
10797
|
+
/* @__PURE__ */ jsx53(AlertCircle4, { className: "h-4 w-4 flex-shrink-0" }),
|
|
10798
|
+
/* @__PURE__ */ jsx53("span", { className: "text-sm", children: error.message })
|
|
10799
|
+
] }),
|
|
10800
|
+
isLoading && /* @__PURE__ */ jsxs44("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
10801
|
+
/* @__PURE__ */ jsx53(Loader16, { className: "h-5 w-5 animate-spin" }),
|
|
10802
|
+
/* @__PURE__ */ jsx53("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
|
|
10803
|
+
] }),
|
|
10804
|
+
!isLoading && assets.length === 0 && /* @__PURE__ */ jsxs44("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
|
|
10805
|
+
/* @__PURE__ */ jsx53(Gem, { className: "w-12 h-12 mb-2" }),
|
|
10806
|
+
/* @__PURE__ */ jsx53("p", { children: "No assets found" })
|
|
10807
|
+
] }),
|
|
10808
|
+
!isLoading && assets.length > 0 && /* @__PURE__ */ jsxs44("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
|
|
10809
|
+
projectAssets.map((asset, index) => /* @__PURE__ */ jsx53(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
|
|
10810
|
+
assets.map((asset, index) => /* @__PURE__ */ jsx53(
|
|
10811
|
+
PortfolioItem,
|
|
10812
|
+
{
|
|
10813
|
+
address,
|
|
10814
|
+
asset
|
|
10815
|
+
},
|
|
10816
|
+
`${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
|
|
10817
|
+
))
|
|
10808
10818
|
] })
|
|
10809
|
-
]
|
|
10819
|
+
] })
|
|
10810
10820
|
}
|
|
10811
10821
|
);
|
|
10812
10822
|
}
|
|
@@ -10814,25 +10824,71 @@ function PortfolioMenu() {
|
|
|
10814
10824
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10815
10825
|
init_auth();
|
|
10816
10826
|
init_keyshare();
|
|
10817
|
-
import { useQuery as useQuery13, useQueryClient as
|
|
10818
|
-
import {
|
|
10819
|
-
|
|
10820
|
-
ArrowLeft as ArrowLeft12,
|
|
10821
|
-
CheckCircle2 as CheckCircle23,
|
|
10822
|
-
Cloud as Cloud3,
|
|
10823
|
-
HardDrive,
|
|
10824
|
-
Laptop,
|
|
10825
|
-
Loader as Loader17,
|
|
10826
|
-
RefreshCw as RefreshCw2,
|
|
10827
|
-
Server as Server2,
|
|
10828
|
-
Shield as Shield2,
|
|
10829
|
-
Trash2 as Trash22
|
|
10830
|
-
} from "lucide-react";
|
|
10831
|
-
import { useEffect as useEffect24, useState as useState11 } from "react";
|
|
10827
|
+
import { useQuery as useQuery13, useQueryClient as useQueryClient16 } from "@tanstack/react-query";
|
|
10828
|
+
import { ArrowLeft as ArrowLeft12, Loader as Loader19, Trash2 as Trash22 } from "lucide-react";
|
|
10829
|
+
import { useState as useState12 } from "react";
|
|
10832
10830
|
init_iframe_manager();
|
|
10833
10831
|
init_vaultClient();
|
|
10834
|
-
|
|
10832
|
+
|
|
10833
|
+
// src/internal/components/SecurityMenu/constants.ts
|
|
10835
10834
|
var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
|
|
10835
|
+
|
|
10836
|
+
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
10837
|
+
import { Cloud as Cloud4, Laptop, Loader as Loader18, RefreshCw as RefreshCw2, Server as Server3 } from "lucide-react";
|
|
10838
|
+
|
|
10839
|
+
// src/internal/assets/NegativeIcon.tsx
|
|
10840
|
+
import { jsx as jsx54, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
10841
|
+
function NegativeIcon(props) {
|
|
10842
|
+
const { width = "16", height = "16", ...rest } = props;
|
|
10843
|
+
return /* @__PURE__ */ jsxs45("svg", { ...rest, width, height, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
10844
|
+
/* @__PURE__ */ jsx54("rect", { width: "16", height: "16", rx: "8", fill: "var(--l-pass-bg-error)" }),
|
|
10845
|
+
/* @__PURE__ */ jsx54("path", { d: "M10.8048 5.19482L5.19434 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" }),
|
|
10846
|
+
/* @__PURE__ */ jsx54("path", { d: "M5.19421 5.19482L10.8047 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" })
|
|
10847
|
+
] });
|
|
10848
|
+
}
|
|
10849
|
+
|
|
10850
|
+
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
10851
|
+
init_vaultClient();
|
|
10852
|
+
|
|
10853
|
+
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
10854
|
+
import { Loader as Loader17 } from "lucide-react";
|
|
10855
|
+
import { jsx as jsx55, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
10856
|
+
function KeyshareStatus(props) {
|
|
10857
|
+
const { isLoading, content, icon: Icon, children } = props;
|
|
10858
|
+
if (isLoading) return /* @__PURE__ */ jsx55(Loader17, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
|
|
10859
|
+
return /* @__PURE__ */ jsxs46("div", { className: "group relative w-full h-full", children: [
|
|
10860
|
+
children,
|
|
10861
|
+
/* @__PURE__ */ jsx55(
|
|
10862
|
+
"div",
|
|
10863
|
+
{
|
|
10864
|
+
className: cn(
|
|
10865
|
+
"absolute -top-2 -right-2 w-6 h-6 flex items-center justify-center",
|
|
10866
|
+
"rounded-full bg-[var(--l-pass-bg)]"
|
|
10867
|
+
// 'border border-[var(--l-pass-bd)]'
|
|
10868
|
+
),
|
|
10869
|
+
children: /* @__PURE__ */ jsx55(Icon, { className: "w-4 h-4" })
|
|
10870
|
+
}
|
|
10871
|
+
),
|
|
10872
|
+
/* @__PURE__ */ jsx55(
|
|
10873
|
+
"div",
|
|
10874
|
+
{
|
|
10875
|
+
style: { transform: "translateY(calc(var(--l-pass-gap) * -4))" },
|
|
10876
|
+
className: cn(
|
|
10877
|
+
"transition-opacity pointer-events-none z-50",
|
|
10878
|
+
"absolute top-0 right-0 max-w-full",
|
|
10879
|
+
"px-2 py-1 bg-[var(--l-pass-bg)] text-[var(--l-pass-fg)] text-[10px] rounded-[var(--l-pass-el-bdrs)]",
|
|
10880
|
+
"border border-[var(--l-pass-bd)]",
|
|
10881
|
+
"opacity-0 group-hover:opacity-100"
|
|
10882
|
+
),
|
|
10883
|
+
children: content
|
|
10884
|
+
}
|
|
10885
|
+
)
|
|
10886
|
+
] });
|
|
10887
|
+
}
|
|
10888
|
+
|
|
10889
|
+
// src/internal/components/SecurityMenu/Keyshare/LastBackup.tsx
|
|
10890
|
+
import { Cloud as Cloud3, HardDrive, Server as Server2 } from "lucide-react";
|
|
10891
|
+
import { Fragment as Fragment16, jsx as jsx56, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
10836
10892
|
function parseOS(ua) {
|
|
10837
10893
|
if (!ua) return null;
|
|
10838
10894
|
if (ua.includes("Mac OS X")) return "macOS";
|
|
@@ -10842,30 +10898,128 @@ function parseOS(ua) {
|
|
|
10842
10898
|
if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
|
|
10843
10899
|
return null;
|
|
10844
10900
|
}
|
|
10901
|
+
function LastBackup(props) {
|
|
10902
|
+
const { backup, createdRecoveryStats } = props;
|
|
10903
|
+
const {
|
|
10904
|
+
at: recoveryCreatedAt,
|
|
10905
|
+
browser: recoveryBrowser,
|
|
10906
|
+
ua: recoveryUa,
|
|
10907
|
+
deviceId: recoveryDeviceId,
|
|
10908
|
+
deviceName: recoveryDeviceName
|
|
10909
|
+
// country: recoveryCountry
|
|
10910
|
+
} = createdRecoveryStats || {};
|
|
10911
|
+
const hasBackupData = backup?.server?.enabled && backup.server.lastBackup || !backup.server.lastBackup && recoveryCreatedAt || backup.cloud.enabled && backup.cloud?.lastBackup || backup.local.enabled && backup.local.lastBackup;
|
|
10912
|
+
if (!hasBackupData) return null;
|
|
10913
|
+
return /* @__PURE__ */ jsxs47(Highlight, { type: "info", className: "flex flex-col gap-[var(--l-pass-gap)] text-[10px] leading-tight", children: [
|
|
10914
|
+
/* @__PURE__ */ jsxs47("span", { className: "block font-bold text-xs", children: [
|
|
10915
|
+
/* @__PURE__ */ jsx56(Server2, { className: "w-4 h-4 inline" }),
|
|
10916
|
+
" Last Keyshare Vault Backup"
|
|
10917
|
+
] }),
|
|
10918
|
+
recoveryCreatedAt && /* @__PURE__ */ jsxs47(Fragment16, { children: [
|
|
10919
|
+
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Created At:" }),
|
|
10920
|
+
/* @__PURE__ */ jsx56("span", { children: new Date(recoveryCreatedAt).toLocaleString() }),
|
|
10921
|
+
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Via:" }),
|
|
10922
|
+
/* @__PURE__ */ jsx56("span", { children: `${recoveryBrowser || "UNKNOWN"} browser at ${recoveryDeviceName || "UNKNOWN"} device under ${parseOS(recoveryUa) || "UNKNOWN"} OS` })
|
|
10923
|
+
] }),
|
|
10924
|
+
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1", children: [
|
|
10925
|
+
/* @__PURE__ */ jsx56(Cloud3, { className: "h-3 w-3" }),
|
|
10926
|
+
/* @__PURE__ */ jsxs47("span", { children: [
|
|
10927
|
+
"Cloud: ",
|
|
10928
|
+
new Date(backup.cloud.lastBackup).toLocaleString()
|
|
10929
|
+
] })
|
|
10930
|
+
] }),
|
|
10931
|
+
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1", children: [
|
|
10932
|
+
/* @__PURE__ */ jsx56(HardDrive, { className: "h-3 w-3" }),
|
|
10933
|
+
/* @__PURE__ */ jsxs47("span", { children: [
|
|
10934
|
+
"Local: ",
|
|
10935
|
+
new Date(backup.local.lastBackup).toLocaleString()
|
|
10936
|
+
] })
|
|
10937
|
+
] })
|
|
10938
|
+
] });
|
|
10939
|
+
}
|
|
10940
|
+
|
|
10941
|
+
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
10942
|
+
import { Fragment as Fragment17, jsx as jsx57, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
10943
|
+
function Keyshare(props) {
|
|
10944
|
+
const { userId, serverHasKeyshare, localInfo, hasServerBackup, createdRecoveryStats, isLoading, refresh } = props;
|
|
10945
|
+
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10946
|
+
return /* @__PURE__ */ jsxs48(Fragment17, { children: [
|
|
10947
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
10948
|
+
/* @__PURE__ */ jsx57("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
10949
|
+
/* @__PURE__ */ jsx57(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ jsx57(Loader18, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx57(RefreshCw2, { className: "h-4 w-4" }) })
|
|
10950
|
+
] }),
|
|
10951
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)] px-[var(--l-pass-gap)]", children: [
|
|
10952
|
+
/* @__PURE__ */ jsx57(
|
|
10953
|
+
KeyshareStatus,
|
|
10954
|
+
{
|
|
10955
|
+
content: serverHasKeyshare ? "Your Server Security Key Share is safe and ready" : "Server Security Key Share is missing",
|
|
10956
|
+
icon: serverHasKeyshare ? PositiveIcon : NegativeIcon,
|
|
10957
|
+
children: /* @__PURE__ */ jsxs48(
|
|
10958
|
+
Highlight,
|
|
10959
|
+
{
|
|
10960
|
+
type: serverHasKeyshare ? "success" : "warning",
|
|
10961
|
+
className: "w-full h-full flex flex-col items-center gap-0",
|
|
10962
|
+
children: [
|
|
10963
|
+
/* @__PURE__ */ jsx57(Cloud4, { className: "h-6 w-6" }),
|
|
10964
|
+
/* @__PURE__ */ jsx57("span", { className: "text-[10px] font-medium leading-4", children: "Server Share" })
|
|
10965
|
+
]
|
|
10966
|
+
}
|
|
10967
|
+
)
|
|
10968
|
+
}
|
|
10969
|
+
),
|
|
10970
|
+
/* @__PURE__ */ jsx57(
|
|
10971
|
+
KeyshareStatus,
|
|
10972
|
+
{
|
|
10973
|
+
content: localInfo?.hasKeyshare ? "Your Private Local Security Key Share is safe and ready" : "Private Local Security Key Share is missing",
|
|
10974
|
+
icon: localInfo?.hasKeyshare ? PositiveIcon : NegativeIcon,
|
|
10975
|
+
children: /* @__PURE__ */ jsxs48(
|
|
10976
|
+
Highlight,
|
|
10977
|
+
{
|
|
10978
|
+
type: localInfo?.hasKeyshare ? "success" : "warning",
|
|
10979
|
+
className: "w-full h-full flex flex-col items-center gap-0",
|
|
10980
|
+
children: [
|
|
10981
|
+
/* @__PURE__ */ jsx57(Laptop, { className: "h-6 w-6" }),
|
|
10982
|
+
/* @__PURE__ */ jsx57("span", { className: "text-[10px] font-medium leading-4", children: "Local Share" })
|
|
10983
|
+
]
|
|
10984
|
+
}
|
|
10985
|
+
)
|
|
10986
|
+
}
|
|
10987
|
+
),
|
|
10988
|
+
/* @__PURE__ */ jsx57(
|
|
10989
|
+
KeyshareStatus,
|
|
10990
|
+
{
|
|
10991
|
+
content: hasServerBackup ? "Security Key Share Vault Backup exists and ready" : "Security Key Share Vault Backup Missing. Create one to ensure your data is safe.",
|
|
10992
|
+
icon: hasServerBackup ? PositiveIcon : NegativeIcon,
|
|
10993
|
+
children: /* @__PURE__ */ jsxs48(
|
|
10994
|
+
Highlight,
|
|
10995
|
+
{
|
|
10996
|
+
type: hasServerBackup ? "success" : "warning",
|
|
10997
|
+
className: "w-full h-full flex flex-col items-center gap-0",
|
|
10998
|
+
children: [
|
|
10999
|
+
/* @__PURE__ */ jsx57(Server3, { className: "h-6 w-6" }),
|
|
11000
|
+
/* @__PURE__ */ jsx57("span", { className: "text-[10px] font-medium leading-4", children: "Backup Vault" })
|
|
11001
|
+
]
|
|
11002
|
+
}
|
|
11003
|
+
)
|
|
11004
|
+
}
|
|
11005
|
+
)
|
|
11006
|
+
] }),
|
|
11007
|
+
/* @__PURE__ */ jsx57(LastBackup, { backup, createdRecoveryStats }),
|
|
11008
|
+
/* @__PURE__ */ jsx57("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
11009
|
+
] });
|
|
11010
|
+
}
|
|
11011
|
+
|
|
11012
|
+
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
11013
|
+
import { Fragment as Fragment18, jsx as jsx58, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
10845
11014
|
function SecurityMenu() {
|
|
10846
|
-
const qc =
|
|
11015
|
+
const qc = useQueryClient16();
|
|
10847
11016
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10848
11017
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10849
11018
|
const userId = jwtTokenManager2.getUserId();
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
const
|
|
10854
|
-
const [recoveryCreatedAt, setRecoveryCreatedAt] = useState11(null);
|
|
10855
|
-
const [recoveryBrowser, setRecoveryBrowser] = useState11(null);
|
|
10856
|
-
const [recoveryUa, setRecoveryUa] = useState11(null);
|
|
10857
|
-
const [recoveryDeviceId, setRecoveryDeviceId] = useState11(null);
|
|
10858
|
-
const [recoveryDeviceName, setRecoveryDeviceName] = useState11(null);
|
|
10859
|
-
const [recoveryCountry, setRecoveryCountry] = useState11(null);
|
|
10860
|
-
const [hasServerBackup, setHasServerBackup] = useState11(false);
|
|
10861
|
-
const [trustedApps, setTrustedApps] = useState11([]);
|
|
10862
|
-
const [appToRemove, setAppToRemove] = useState11(null);
|
|
10863
|
-
const [isRemoving, setIsRemoving] = useState11(false);
|
|
10864
|
-
const {
|
|
10865
|
-
data: recoveryData,
|
|
10866
|
-
isFetching: isRecoveryRefreshing
|
|
10867
|
-
// error: recoveryError
|
|
10868
|
-
} = useQuery13({
|
|
11019
|
+
const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
11020
|
+
const [isRemoving, setIsRemoving] = useState12(false);
|
|
11021
|
+
const [appToRemove, setAppToRemove] = useState12(null);
|
|
11022
|
+
const { data: recoveryData, isFetching: isRecoveryLoading } = useQuery13({
|
|
10869
11023
|
enabled: !!userId,
|
|
10870
11024
|
queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
|
|
10871
11025
|
queryFn: async () => {
|
|
@@ -10879,22 +11033,9 @@ function SecurityMenu() {
|
|
|
10879
11033
|
return { trustedApps: trustedApps2, keyshareInfo, shareRecoveryStats };
|
|
10880
11034
|
}
|
|
10881
11035
|
});
|
|
10882
|
-
|
|
10883
|
-
|
|
10884
|
-
|
|
10885
|
-
setLocalInfo(keyshareInfo);
|
|
10886
|
-
setTrustedApps(trustedApps2);
|
|
10887
|
-
const hasRecoveryData = shareRecoveryStats && (shareRecoveryStats.created || shareRecoveryStats.devices && shareRecoveryStats.devices.length > 0);
|
|
10888
|
-
const created = shareRecoveryStats?.created;
|
|
10889
|
-
setHasServerBackup(!!hasRecoveryData);
|
|
10890
|
-
setRecoveryCreatedAt(created?.at || null);
|
|
10891
|
-
setRecoveryBrowser(created?.browser || null);
|
|
10892
|
-
setRecoveryUa(created?.ua || null);
|
|
10893
|
-
setRecoveryDeviceId(created?.deviceId || null);
|
|
10894
|
-
setRecoveryDeviceName(created?.deviceName || null);
|
|
10895
|
-
setRecoveryCountry(created?.country || null);
|
|
10896
|
-
}, [recoveryData]);
|
|
10897
|
-
const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
11036
|
+
const localInfo = recoveryData?.keyshareInfo || {};
|
|
11037
|
+
const trustedApps = recoveryData?.trustedApps || [];
|
|
11038
|
+
const hasServerBackup = !!recoveryData?.shareRecoveryStats?.created || recoveryData?.shareRecoveryStats?.devices?.length > 0;
|
|
10898
11039
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10899
11040
|
const handleRemoveTrustedApp = async () => {
|
|
10900
11041
|
if (!userId || !appToRemove) return;
|
|
@@ -10917,280 +11058,151 @@ function SecurityMenu() {
|
|
|
10917
11058
|
setIsRemoving(false);
|
|
10918
11059
|
}
|
|
10919
11060
|
};
|
|
10920
|
-
return /* @__PURE__ */
|
|
11061
|
+
return /* @__PURE__ */ jsx58(
|
|
10921
11062
|
"div",
|
|
10922
11063
|
{
|
|
10923
11064
|
style: {
|
|
10924
11065
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10925
11066
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
10926
11067
|
},
|
|
10927
|
-
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]
|
|
10928
|
-
children: [
|
|
10929
|
-
/* @__PURE__ */
|
|
10930
|
-
/* @__PURE__ */
|
|
10931
|
-
/* @__PURE__ */ jsx54("span", { className: "text-xl font-semibold", children: "Security" })
|
|
10932
|
-
] }),
|
|
10933
|
-
/* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
10934
|
-
/* @__PURE__ */ jsx54("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
10935
|
-
/* @__PURE__ */ jsx54(
|
|
11068
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11069
|
+
children: /* @__PURE__ */ jsxs49(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11070
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11071
|
+
/* @__PURE__ */ jsx58(
|
|
10936
11072
|
Button,
|
|
10937
11073
|
{
|
|
10938
11074
|
variant: "ghost",
|
|
10939
11075
|
size: "icon",
|
|
10940
|
-
title: "
|
|
10941
|
-
|
|
10942
|
-
|
|
10943
|
-
|
|
11076
|
+
title: "Back",
|
|
11077
|
+
onClick: () => {
|
|
11078
|
+
if (!!appToRemove) setAppToRemove(null);
|
|
11079
|
+
else setPage("settings" /* SETTINGS */);
|
|
11080
|
+
},
|
|
11081
|
+
children: /* @__PURE__ */ jsx58(ArrowLeft12, { className: "h-4 w-4" })
|
|
10944
11082
|
}
|
|
10945
|
-
)
|
|
10946
|
-
|
|
10947
|
-
/* @__PURE__ */ jsxs45("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)]", children: [
|
|
10948
|
-
/* @__PURE__ */ jsxs45("div", { className: "space-y-2 text-center", children: [
|
|
10949
|
-
/* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
10950
|
-
/* @__PURE__ */ jsx54(Cloud3, { className: "h-4 w-4" }),
|
|
10951
|
-
/* @__PURE__ */ jsx54("span", { className: "text-xs font-medium", children: "Server" })
|
|
10952
|
-
] }),
|
|
10953
|
-
/* @__PURE__ */ jsxs45(
|
|
10954
|
-
"span",
|
|
10955
|
-
{
|
|
10956
|
-
className: cn(
|
|
10957
|
-
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10958
|
-
serverHasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10959
|
-
),
|
|
10960
|
-
children: [
|
|
10961
|
-
serverHasKeyshare ? /* @__PURE__ */ jsx54(CheckCircle23, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx54(AlertTriangle4, { className: "h-4 w-4" }),
|
|
10962
|
-
serverHasKeyshare ? "Ready" : "Missing"
|
|
10963
|
-
]
|
|
10964
|
-
}
|
|
10965
|
-
)
|
|
10966
|
-
] }),
|
|
10967
|
-
/* @__PURE__ */ jsxs45("div", { className: "space-y-2 text-center", children: [
|
|
10968
|
-
/* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
10969
|
-
/* @__PURE__ */ jsx54(Laptop, { className: "h-4 w-4" }),
|
|
10970
|
-
/* @__PURE__ */ jsx54("span", { className: "text-xs font-medium", children: "Local" })
|
|
10971
|
-
] }),
|
|
10972
|
-
/* @__PURE__ */ jsxs45(
|
|
10973
|
-
"span",
|
|
10974
|
-
{
|
|
10975
|
-
className: cn(
|
|
10976
|
-
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10977
|
-
localInfo?.hasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10978
|
-
),
|
|
10979
|
-
children: [
|
|
10980
|
-
localInfo?.hasKeyshare ? /* @__PURE__ */ jsx54(CheckCircle23, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx54(AlertTriangle4, { className: "h-4 w-4" }),
|
|
10981
|
-
localInfo?.hasKeyshare ? "Ready" : "Missing"
|
|
10982
|
-
]
|
|
10983
|
-
}
|
|
10984
|
-
)
|
|
10985
|
-
] }),
|
|
10986
|
-
/* @__PURE__ */ jsxs45("div", { className: "space-y-2 text-center", children: [
|
|
10987
|
-
/* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
10988
|
-
/* @__PURE__ */ jsx54(Shield2, { className: "h-4 w-4" }),
|
|
10989
|
-
/* @__PURE__ */ jsx54("span", { className: "text-xs font-medium", children: "Vault" })
|
|
10990
|
-
] }),
|
|
10991
|
-
/* @__PURE__ */ jsxs45(
|
|
10992
|
-
"span",
|
|
10993
|
-
{
|
|
10994
|
-
className: cn(
|
|
10995
|
-
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10996
|
-
hasServerBackup ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10997
|
-
),
|
|
10998
|
-
children: [
|
|
10999
|
-
hasServerBackup ? /* @__PURE__ */ jsx54(CheckCircle23, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx54(AlertTriangle4, { className: "h-4 w-4" }),
|
|
11000
|
-
hasServerBackup ? "Ready" : "None"
|
|
11001
|
-
]
|
|
11002
|
-
}
|
|
11003
|
-
)
|
|
11004
|
-
] })
|
|
11083
|
+
),
|
|
11084
|
+
/* @__PURE__ */ jsx58("span", { className: "text-xl font-semibold", children: "Security" })
|
|
11005
11085
|
] }),
|
|
11006
|
-
/* @__PURE__ */
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
|
|
11012
|
-
|
|
11013
|
-
|
|
11014
|
-
|
|
11015
|
-
|
|
11016
|
-
|
|
11017
|
-
|
|
11018
|
-
|
|
11019
|
-
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
11024
|
-
|
|
11025
|
-
|
|
11026
|
-
|
|
11027
|
-
|
|
11028
|
-
|
|
11029
|
-
|
|
11030
|
-
|
|
11031
|
-
|
|
11032
|
-
|
|
11033
|
-
|
|
11034
|
-
|
|
11035
|
-
|
|
11036
|
-
|
|
11037
|
-
|
|
11038
|
-
|
|
11039
|
-
|
|
11040
|
-
|
|
11041
|
-
|
|
11042
|
-
|
|
11086
|
+
!appToRemove && /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
11087
|
+
/* @__PURE__ */ jsx58(
|
|
11088
|
+
Keyshare,
|
|
11089
|
+
{
|
|
11090
|
+
userId,
|
|
11091
|
+
serverHasKeyshare,
|
|
11092
|
+
localInfo,
|
|
11093
|
+
hasServerBackup,
|
|
11094
|
+
isLoading: isRecoveryLoading,
|
|
11095
|
+
createdRecoveryStats: recoveryData?.shareRecoveryStats?.created,
|
|
11096
|
+
refresh: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] })
|
|
11097
|
+
}
|
|
11098
|
+
),
|
|
11099
|
+
trustedApps.length > 0 && /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
11100
|
+
/* @__PURE__ */ jsxs49("div", { className: "w-full space-y-2", children: [
|
|
11101
|
+
/* @__PURE__ */ jsx58("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
11102
|
+
/* @__PURE__ */ jsx58("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs49(
|
|
11103
|
+
"div",
|
|
11104
|
+
{
|
|
11105
|
+
className: "text-[10px] leading-tight p-2 rounded flex items-center gap-2 bg-[var(--l-pass-secondary)]",
|
|
11106
|
+
children: [
|
|
11107
|
+
app.appLogo ? /* @__PURE__ */ jsx58("img", { src: app.appLogo, alt: "", className: "w-8 h-8 rounded-md object-cover flex-shrink-0" }) : /* @__PURE__ */ jsx58("div", { className: "w-8 h-8 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx58("span", { className: "text-sm", children: "\u{1F517}" }) }),
|
|
11108
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex-1 min-w-0", children: [
|
|
11109
|
+
/* @__PURE__ */ jsx58("div", { className: "font-medium truncate", children: app.appName || new URL(app.origin).hostname }),
|
|
11110
|
+
/* @__PURE__ */ jsx58("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: new URL(app.origin).hostname }),
|
|
11111
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
11112
|
+
"Trusted: ",
|
|
11113
|
+
new Date(app.trustedAt).toLocaleDateString()
|
|
11114
|
+
] })
|
|
11115
|
+
] }),
|
|
11116
|
+
/* @__PURE__ */ jsx58(
|
|
11117
|
+
Button,
|
|
11118
|
+
{
|
|
11119
|
+
variant: "ghost",
|
|
11120
|
+
size: "icon",
|
|
11121
|
+
title: "Remove from trusted",
|
|
11122
|
+
className: "text-[var(--l-pass-error)] flex-shrink-0",
|
|
11123
|
+
onClick: () => setAppToRemove({
|
|
11124
|
+
projectId: app.projectId,
|
|
11125
|
+
origin: app.origin,
|
|
11126
|
+
hostname: new URL(app.origin).hostname,
|
|
11127
|
+
appName: app.appName,
|
|
11128
|
+
appLogo: app.appLogo
|
|
11129
|
+
}),
|
|
11130
|
+
children: /* @__PURE__ */ jsx58(Trash22, { className: "h-3 w-3" })
|
|
11131
|
+
}
|
|
11132
|
+
)
|
|
11133
|
+
]
|
|
11134
|
+
},
|
|
11135
|
+
index
|
|
11136
|
+
)) })
|
|
11043
11137
|
] }),
|
|
11044
|
-
|
|
11045
|
-
/* @__PURE__ */ jsx54(HardDrive, { className: "h-2.5 w-2.5" }),
|
|
11046
|
-
/* @__PURE__ */ jsxs45("span", { children: [
|
|
11047
|
-
"Local: ",
|
|
11048
|
-
new Date(backup.local.lastBackup).toLocaleString()
|
|
11049
|
-
] })
|
|
11050
|
-
] })
|
|
11138
|
+
/* @__PURE__ */ jsx58("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
11051
11139
|
] }),
|
|
11052
|
-
|
|
11053
|
-
/* @__PURE__ */
|
|
11054
|
-
|
|
11055
|
-
|
|
11056
|
-
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
"
|
|
11061
|
-
recoveryCountry
|
|
11062
|
-
] }),
|
|
11063
|
-
recoveryBrowser && /* @__PURE__ */ jsxs45("div", { children: [
|
|
11064
|
-
"Browser: ",
|
|
11065
|
-
recoveryBrowser
|
|
11066
|
-
] }),
|
|
11067
|
-
parseOS(recoveryUa) && /* @__PURE__ */ jsxs45("div", { children: [
|
|
11068
|
-
"OS: ",
|
|
11069
|
-
parseOS(recoveryUa)
|
|
11070
|
-
] }),
|
|
11071
|
-
recoveryDeviceName && /* @__PURE__ */ jsxs45("div", { children: [
|
|
11072
|
-
"Device: ",
|
|
11073
|
-
recoveryDeviceName
|
|
11140
|
+
/* @__PURE__ */ jsxs49(Highlight, { className: "flex flex-col gap-[var(--l-pass-gap)] user-select-none", type: "warning", children: [
|
|
11141
|
+
/* @__PURE__ */ jsxs49("label", { className: "cursor-pointer flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11142
|
+
/* @__PURE__ */ jsx58(
|
|
11143
|
+
Checkbox,
|
|
11144
|
+
{
|
|
11145
|
+
name: "paranoia-mode-checkbox"
|
|
11146
|
+
}
|
|
11147
|
+
),
|
|
11148
|
+
/* @__PURE__ */ jsx58("span", { className: "text-sm font-semibold", children: "Paranoia MODE (not implemented)" })
|
|
11074
11149
|
] }),
|
|
11075
|
-
|
|
11076
|
-
"Device ID: ",
|
|
11077
|
-
/* @__PURE__ */ jsx54("span", { className: "break-all", children: recoveryDeviceId })
|
|
11078
|
-
] })
|
|
11079
|
-
] }),
|
|
11080
|
-
trustedApps.length > 0 && /* @__PURE__ */ jsxs45("div", { className: "w-full space-y-2", children: [
|
|
11081
|
-
/* @__PURE__ */ jsx54("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
11082
|
-
/* @__PURE__ */ jsx54("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs45(
|
|
11083
|
-
"div",
|
|
11084
|
-
{
|
|
11085
|
-
className: "text-[10px] leading-tight p-2 rounded flex items-center gap-2 bg-[var(--l-pass-secondary)]",
|
|
11086
|
-
children: [
|
|
11087
|
-
app.appLogo ? /* @__PURE__ */ jsx54("img", { src: app.appLogo, alt: "", className: "w-8 h-8 rounded-md object-cover flex-shrink-0" }) : /* @__PURE__ */ jsx54("div", { className: "w-8 h-8 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx54("span", { className: "text-sm", children: "\u{1F517}" }) }),
|
|
11088
|
-
/* @__PURE__ */ jsxs45("div", { className: "flex-1 min-w-0", children: [
|
|
11089
|
-
/* @__PURE__ */ jsx54("div", { className: "font-medium truncate", children: app.appName || new URL(app.origin).hostname }),
|
|
11090
|
-
/* @__PURE__ */ jsx54("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: new URL(app.origin).hostname }),
|
|
11091
|
-
/* @__PURE__ */ jsxs45("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
11092
|
-
"Trusted: ",
|
|
11093
|
-
new Date(app.trustedAt).toLocaleDateString()
|
|
11094
|
-
] })
|
|
11095
|
-
] }),
|
|
11096
|
-
/* @__PURE__ */ jsx54(
|
|
11097
|
-
Button,
|
|
11098
|
-
{
|
|
11099
|
-
variant: "ghost",
|
|
11100
|
-
size: "icon",
|
|
11101
|
-
title: "Remove from trusted",
|
|
11102
|
-
className: "text-[var(--l-pass-error)] flex-shrink-0",
|
|
11103
|
-
onClick: () => setAppToRemove({
|
|
11104
|
-
projectId: app.projectId,
|
|
11105
|
-
origin: app.origin,
|
|
11106
|
-
hostname: new URL(app.origin).hostname,
|
|
11107
|
-
appName: app.appName,
|
|
11108
|
-
appLogo: app.appLogo
|
|
11109
|
-
}),
|
|
11110
|
-
children: /* @__PURE__ */ jsx54(Trash22, { className: "h-3 w-3" })
|
|
11111
|
-
}
|
|
11112
|
-
)
|
|
11113
|
-
]
|
|
11114
|
-
},
|
|
11115
|
-
index
|
|
11116
|
-
)) })
|
|
11150
|
+
/* @__PURE__ */ jsx58("span", { children: "Paranoia mode description... (wip)" })
|
|
11117
11151
|
] })
|
|
11118
11152
|
] }),
|
|
11119
|
-
/* @__PURE__ */
|
|
11120
|
-
|
|
11121
|
-
|
|
11122
|
-
/* @__PURE__ */
|
|
11123
|
-
|
|
11124
|
-
{
|
|
11125
|
-
|
|
11126
|
-
|
|
11127
|
-
),
|
|
11128
|
-
/* @__PURE__ */ jsx54("span", { className: "text-sm font-semibold", children: "Paranoia MODE" })
|
|
11129
|
-
] }),
|
|
11130
|
-
/* @__PURE__ */ jsx54("span", { children: "Paranoia mode description (not implemented)" })
|
|
11131
|
-
] }),
|
|
11132
|
-
appToRemove && /* @__PURE__ */ jsx54("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ jsxs45("div", { className: "bg-[var(--l-pass-bg)] border border-[var(--l-pass-bd)] rounded-lg p-4 m-4 max-w-sm w-full space-y-4 shadow-xl", children: [
|
|
11133
|
-
/* @__PURE__ */ jsxs45("div", { className: "text-center", children: [
|
|
11134
|
-
/* @__PURE__ */ jsx54("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
|
|
11135
|
-
/* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-center gap-2 mb-3", children: [
|
|
11136
|
-
appToRemove.appLogo ? /* @__PURE__ */ jsx54("img", { src: appToRemove.appLogo, alt: "", className: "w-10 h-10 rounded-md object-cover" }) : /* @__PURE__ */ jsx54("div", { className: "w-10 h-10 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center", children: /* @__PURE__ */ jsx54("span", { className: "text-lg", children: "\u{1F517}" }) }),
|
|
11137
|
-
/* @__PURE__ */ jsxs45("div", { className: "text-left", children: [
|
|
11138
|
-
/* @__PURE__ */ jsx54("div", { className: "font-medium", children: appToRemove.appName || appToRemove.hostname }),
|
|
11139
|
-
/* @__PURE__ */ jsx54("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: appToRemove.hostname })
|
|
11153
|
+
!!appToRemove && /* @__PURE__ */ jsxs49("div", { className: "w-full", children: [
|
|
11154
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-center", children: [
|
|
11155
|
+
/* @__PURE__ */ jsx58("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
|
|
11156
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-center gap-2 mb-3", children: [
|
|
11157
|
+
appToRemove.appLogo ? /* @__PURE__ */ jsx58("img", { src: appToRemove.appLogo, alt: "", className: "w-10 h-10 rounded-md object-cover" }) : /* @__PURE__ */ jsx58("div", { className: "w-10 h-10 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center", children: /* @__PURE__ */ jsx58("span", { className: "text-lg", children: "\u{1F517}" }) }),
|
|
11158
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-left", children: [
|
|
11159
|
+
/* @__PURE__ */ jsx58("div", { className: "font-medium", children: appToRemove.appName || appToRemove.hostname }),
|
|
11160
|
+
/* @__PURE__ */ jsx58("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: appToRemove.hostname })
|
|
11140
11161
|
] })
|
|
11141
11162
|
] }),
|
|
11142
|
-
/* @__PURE__ */
|
|
11143
|
-
/* @__PURE__ */
|
|
11144
|
-
/* @__PURE__ */
|
|
11145
|
-
/* @__PURE__ */
|
|
11146
|
-
/* @__PURE__ */
|
|
11163
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-xs text-[var(--l-pass-fg-muted)] text-left space-y-1 mb-4", children: [
|
|
11164
|
+
/* @__PURE__ */ jsx58("p", { children: "After removing this application:" }),
|
|
11165
|
+
/* @__PURE__ */ jsxs49("ul", { className: "list-disc list-inside ml-2 space-y-0.5", children: [
|
|
11166
|
+
/* @__PURE__ */ jsx58("li", { children: "All transactions will require confirmation" }),
|
|
11167
|
+
/* @__PURE__ */ jsx58("li", { children: 'You can re-add it anytime by checking "Trust this app"' })
|
|
11147
11168
|
] })
|
|
11148
11169
|
] })
|
|
11149
11170
|
] }),
|
|
11150
|
-
/* @__PURE__ */
|
|
11151
|
-
/* @__PURE__ */
|
|
11152
|
-
|
|
11153
|
-
{
|
|
11154
|
-
variant: "outline",
|
|
11155
|
-
className: "flex-1",
|
|
11156
|
-
onClick: () => setAppToRemove(null),
|
|
11157
|
-
disabled: isRemoving,
|
|
11158
|
-
children: "Cancel"
|
|
11159
|
-
}
|
|
11160
|
-
),
|
|
11161
|
-
/* @__PURE__ */ jsx54(
|
|
11171
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex gap-2", children: [
|
|
11172
|
+
/* @__PURE__ */ jsx58(Button, { variant: "outline", className: "flex-1", onClick: () => setAppToRemove(null), disabled: isRemoving, children: "Cancel" }),
|
|
11173
|
+
/* @__PURE__ */ jsx58(
|
|
11162
11174
|
Button,
|
|
11163
11175
|
{
|
|
11164
11176
|
variant: "default",
|
|
11165
|
-
className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/
|
|
11177
|
+
className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/60 active:bg-[var(--l-pass-error)]/40",
|
|
11166
11178
|
onClick: handleRemoveTrustedApp,
|
|
11167
11179
|
disabled: isRemoving,
|
|
11168
|
-
children: isRemoving ? /* @__PURE__ */
|
|
11180
|
+
children: isRemoving ? /* @__PURE__ */ jsx58(Loader19, { className: "h-4 w-4 animate-spin" }) : "Remove"
|
|
11169
11181
|
}
|
|
11170
11182
|
)
|
|
11171
11183
|
] })
|
|
11172
|
-
] })
|
|
11173
|
-
]
|
|
11184
|
+
] })
|
|
11185
|
+
] })
|
|
11174
11186
|
}
|
|
11175
11187
|
);
|
|
11176
11188
|
}
|
|
11177
11189
|
|
|
11178
11190
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11179
|
-
import { AlertCircle as AlertCircle5, ArrowLeft as ArrowLeft13, CheckCircle2 as
|
|
11180
|
-
import { useEffect as
|
|
11191
|
+
import { AlertCircle as AlertCircle5, ArrowLeft as ArrowLeft13, CheckCircle2 as CheckCircle23, Loader as Loader20, Wallet as Wallet3 } from "lucide-react";
|
|
11192
|
+
import { useEffect as useEffect24, useState as useState14 } from "react";
|
|
11181
11193
|
import { isAddress as isAddress2 } from "viem";
|
|
11182
11194
|
import { useBalance as useBalance4 } from "wagmi";
|
|
11183
11195
|
|
|
11184
11196
|
// src/hooks/useSendTransaction.ts
|
|
11185
|
-
import { useCallback as useCallback14, useState as
|
|
11197
|
+
import { useCallback as useCallback14, useState as useState13 } from "react";
|
|
11186
11198
|
import { isAddress, parseEther as parseEther2 } from "viem";
|
|
11187
11199
|
init_account();
|
|
11188
11200
|
function useSendTransaction() {
|
|
11189
11201
|
const session = useLumiaPassportSession((st) => st.session);
|
|
11190
11202
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11191
|
-
const [isLoading, setIsLoading] =
|
|
11192
|
-
const [error, setError] =
|
|
11193
|
-
const [userOpHash, setUserOpHash] =
|
|
11203
|
+
const [isLoading, setIsLoading] = useState13(false);
|
|
11204
|
+
const [error, setError] = useState13(null);
|
|
11205
|
+
const [userOpHash, setUserOpHash] = useState13(null);
|
|
11194
11206
|
const sendTransaction = useCallback14(
|
|
11195
11207
|
async (params) => {
|
|
11196
11208
|
if (!session || !address) {
|
|
@@ -11408,7 +11420,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
11408
11420
|
|
|
11409
11421
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11410
11422
|
init_base();
|
|
11411
|
-
import { Fragment as
|
|
11423
|
+
import { Fragment as Fragment19, jsx as jsx59, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
11412
11424
|
function SendLumiaMenu() {
|
|
11413
11425
|
const page = useLayoutDataStore((st) => st.page);
|
|
11414
11426
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -11420,13 +11432,13 @@ function SendLumiaMenu() {
|
|
|
11420
11432
|
address,
|
|
11421
11433
|
chainId: lumiaBeam.id
|
|
11422
11434
|
});
|
|
11423
|
-
const [recipient, setRecipient] =
|
|
11424
|
-
const [amount, setAmount] =
|
|
11425
|
-
const [txStep, setTxStep] =
|
|
11426
|
-
const [validationError, setValidationError] =
|
|
11435
|
+
const [recipient, setRecipient] = useState14("");
|
|
11436
|
+
const [amount, setAmount] = useState14("");
|
|
11437
|
+
const [txStep, setTxStep] = useState14("input");
|
|
11438
|
+
const [validationError, setValidationError] = useState14(null);
|
|
11427
11439
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
11428
11440
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
11429
|
-
|
|
11441
|
+
useEffect24(() => {
|
|
11430
11442
|
if (open) {
|
|
11431
11443
|
setTxStep("input");
|
|
11432
11444
|
setValidationError(null);
|
|
@@ -11481,15 +11493,15 @@ function SendLumiaMenu() {
|
|
|
11481
11493
|
const maxAmount = Math.max(0, balance - 1e-3);
|
|
11482
11494
|
setAmount(maxAmount.toFixed(6));
|
|
11483
11495
|
};
|
|
11484
|
-
return /* @__PURE__ */
|
|
11485
|
-
/* @__PURE__ */
|
|
11486
|
-
txStep === "input" && /* @__PURE__ */
|
|
11487
|
-
/* @__PURE__ */
|
|
11496
|
+
return /* @__PURE__ */ jsxs50("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11497
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11498
|
+
txStep === "input" && /* @__PURE__ */ jsx59(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx59(ArrowLeft13, { className: "h-4 w-4" }) }),
|
|
11499
|
+
/* @__PURE__ */ jsx59("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
|
|
11488
11500
|
] }),
|
|
11489
|
-
txStep === "input" && /* @__PURE__ */
|
|
11490
|
-
/* @__PURE__ */
|
|
11491
|
-
/* @__PURE__ */
|
|
11492
|
-
/* @__PURE__ */
|
|
11501
|
+
txStep === "input" && /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
11502
|
+
/* @__PURE__ */ jsxs50("div", { className: "w-full flex flex-col gap-2", children: [
|
|
11503
|
+
/* @__PURE__ */ jsx59("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
|
|
11504
|
+
/* @__PURE__ */ jsx59(
|
|
11493
11505
|
Input,
|
|
11494
11506
|
{
|
|
11495
11507
|
Icon: Wallet3,
|
|
@@ -11500,17 +11512,17 @@ function SendLumiaMenu() {
|
|
|
11500
11512
|
}
|
|
11501
11513
|
)
|
|
11502
11514
|
] }),
|
|
11503
|
-
/* @__PURE__ */
|
|
11504
|
-
/* @__PURE__ */
|
|
11505
|
-
/* @__PURE__ */
|
|
11506
|
-
/* @__PURE__ */
|
|
11515
|
+
/* @__PURE__ */ jsxs50("div", { className: "w-full flex flex-col gap-2", children: [
|
|
11516
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex justify-between items-center", children: [
|
|
11517
|
+
/* @__PURE__ */ jsx59("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
|
|
11518
|
+
/* @__PURE__ */ jsxs50("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
11507
11519
|
"Balance: ",
|
|
11508
11520
|
balance.toFixed(4),
|
|
11509
11521
|
" LUMIA"
|
|
11510
11522
|
] })
|
|
11511
11523
|
] }),
|
|
11512
|
-
/* @__PURE__ */
|
|
11513
|
-
/* @__PURE__ */
|
|
11524
|
+
/* @__PURE__ */ jsxs50("div", { className: "w-full relative", children: [
|
|
11525
|
+
/* @__PURE__ */ jsx59(
|
|
11514
11526
|
Input,
|
|
11515
11527
|
{
|
|
11516
11528
|
Icon: LumiaIcon,
|
|
@@ -11521,7 +11533,7 @@ function SendLumiaMenu() {
|
|
|
11521
11533
|
step: "0.000001"
|
|
11522
11534
|
}
|
|
11523
11535
|
),
|
|
11524
|
-
/* @__PURE__ */
|
|
11536
|
+
/* @__PURE__ */ jsx59(
|
|
11525
11537
|
Button,
|
|
11526
11538
|
{
|
|
11527
11539
|
onClick: handleMaxAmount,
|
|
@@ -11534,74 +11546,74 @@ function SendLumiaMenu() {
|
|
|
11534
11546
|
)
|
|
11535
11547
|
] })
|
|
11536
11548
|
] }),
|
|
11537
|
-
(validationError || error) && /* @__PURE__ */
|
|
11538
|
-
/* @__PURE__ */
|
|
11539
|
-
/* @__PURE__ */
|
|
11549
|
+
(validationError || error) && /* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-2 p-3 bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)] rounded-[var(--l-pass-el-bdrs)]", children: [
|
|
11550
|
+
/* @__PURE__ */ jsx59(AlertCircle5, { className: "h-4 w-4" }),
|
|
11551
|
+
/* @__PURE__ */ jsx59("span", { className: "text-sm", children: validationError || error })
|
|
11540
11552
|
] }),
|
|
11541
|
-
/* @__PURE__ */
|
|
11553
|
+
/* @__PURE__ */ jsx59(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
|
|
11542
11554
|
] }),
|
|
11543
|
-
txStep === "confirm" && /* @__PURE__ */
|
|
11544
|
-
/* @__PURE__ */
|
|
11545
|
-
/* @__PURE__ */
|
|
11546
|
-
/* @__PURE__ */
|
|
11547
|
-
/* @__PURE__ */
|
|
11548
|
-
/* @__PURE__ */
|
|
11549
|
-
/* @__PURE__ */
|
|
11555
|
+
txStep === "confirm" && /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
11556
|
+
/* @__PURE__ */ jsxs50("div", { className: "bg-gray-50 rounded-lg p-4", children: [
|
|
11557
|
+
/* @__PURE__ */ jsx59("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
|
|
11558
|
+
/* @__PURE__ */ jsxs50("div", { className: "space-y-2 text-sm", children: [
|
|
11559
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex justify-between", children: [
|
|
11560
|
+
/* @__PURE__ */ jsx59("span", { children: "To:" }),
|
|
11561
|
+
/* @__PURE__ */ jsx59("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
|
|
11550
11562
|
] }),
|
|
11551
|
-
/* @__PURE__ */
|
|
11552
|
-
/* @__PURE__ */
|
|
11553
|
-
/* @__PURE__ */
|
|
11563
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex justify-between", children: [
|
|
11564
|
+
/* @__PURE__ */ jsx59("span", { children: "Amount:" }),
|
|
11565
|
+
/* @__PURE__ */ jsxs50("span", { className: `font-semibold`, children: [
|
|
11554
11566
|
amount,
|
|
11555
11567
|
" LUMIA"
|
|
11556
11568
|
] })
|
|
11557
11569
|
] }),
|
|
11558
|
-
/* @__PURE__ */
|
|
11559
|
-
/* @__PURE__ */
|
|
11560
|
-
/* @__PURE__ */
|
|
11570
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex justify-between", children: [
|
|
11571
|
+
/* @__PURE__ */ jsx59("span", { children: "Network:" }),
|
|
11572
|
+
/* @__PURE__ */ jsx59("span", { children: "Lumia Beam" })
|
|
11561
11573
|
] })
|
|
11562
11574
|
] })
|
|
11563
11575
|
] }),
|
|
11564
|
-
/* @__PURE__ */
|
|
11565
|
-
/* @__PURE__ */
|
|
11566
|
-
/* @__PURE__ */
|
|
11567
|
-
isLoading && /* @__PURE__ */
|
|
11576
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex gap-2", children: [
|
|
11577
|
+
/* @__PURE__ */ jsx59(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
11578
|
+
/* @__PURE__ */ jsxs50(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
11579
|
+
isLoading && /* @__PURE__ */ jsx59(Loader20, { className: "h-4 w-4 animate-spin" }),
|
|
11568
11580
|
"Confirm"
|
|
11569
11581
|
] })
|
|
11570
11582
|
] })
|
|
11571
11583
|
] }),
|
|
11572
|
-
txStep === "pending" && /* @__PURE__ */
|
|
11573
|
-
/* @__PURE__ */
|
|
11574
|
-
/* @__PURE__ */
|
|
11575
|
-
/* @__PURE__ */
|
|
11576
|
-
/* @__PURE__ */
|
|
11584
|
+
txStep === "pending" && /* @__PURE__ */ jsxs50("div", { className: "py-8 text-center space-y-4", children: [
|
|
11585
|
+
/* @__PURE__ */ jsx59(Loader20, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
11586
|
+
/* @__PURE__ */ jsxs50("div", { children: [
|
|
11587
|
+
/* @__PURE__ */ jsx59("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
11588
|
+
/* @__PURE__ */ jsx59("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
11577
11589
|
] })
|
|
11578
11590
|
] }),
|
|
11579
|
-
txStep === "success" && userOpHash && /* @__PURE__ */
|
|
11580
|
-
/* @__PURE__ */
|
|
11581
|
-
/* @__PURE__ */
|
|
11582
|
-
/* @__PURE__ */
|
|
11583
|
-
/* @__PURE__ */
|
|
11591
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
11592
|
+
/* @__PURE__ */ jsxs50("div", { className: "text-center py-4", children: [
|
|
11593
|
+
/* @__PURE__ */ jsx59(CheckCircle23, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
11594
|
+
/* @__PURE__ */ jsx59("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
11595
|
+
/* @__PURE__ */ jsx59("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
11584
11596
|
] }),
|
|
11585
|
-
/* @__PURE__ */
|
|
11597
|
+
/* @__PURE__ */ jsx59(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
11586
11598
|
] })
|
|
11587
11599
|
] });
|
|
11588
11600
|
}
|
|
11589
11601
|
|
|
11590
11602
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
11591
11603
|
init_clients();
|
|
11592
|
-
import { ArrowLeft as ArrowLeft14, CheckCircle2 as
|
|
11604
|
+
import { ArrowLeft as ArrowLeft14, CheckCircle2 as CheckCircle24, Copy as Copy2, Loader as Loader21 } from "lucide-react";
|
|
11593
11605
|
import QRCode from "qrcode";
|
|
11594
|
-
import { useCallback as useCallback15, useEffect as
|
|
11595
|
-
import { Fragment as
|
|
11606
|
+
import { useCallback as useCallback15, useEffect as useEffect25, useState as useState15 } from "react";
|
|
11607
|
+
import { Fragment as Fragment20, jsx as jsx60, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
11596
11608
|
function ReceiveLumiaMenu() {
|
|
11597
11609
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11598
11610
|
const page = useLayoutDataStore((st) => st.page);
|
|
11599
11611
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11600
11612
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11601
11613
|
const open = page === "receive";
|
|
11602
|
-
const [qrCodeUrl, setQrCodeUrl] =
|
|
11603
|
-
const [copied, setCopied] =
|
|
11604
|
-
|
|
11614
|
+
const [qrCodeUrl, setQrCodeUrl] = useState15("");
|
|
11615
|
+
const [copied, setCopied] = useState15(false);
|
|
11616
|
+
useEffect25(() => {
|
|
11605
11617
|
if (open && address) {
|
|
11606
11618
|
QRCode.toDataURL(address, {
|
|
11607
11619
|
width: 200,
|
|
@@ -11624,7 +11636,7 @@ function ReceiveLumiaMenu() {
|
|
|
11624
11636
|
console.error("Failed to copy address:", error);
|
|
11625
11637
|
}
|
|
11626
11638
|
}, [address]);
|
|
11627
|
-
return /* @__PURE__ */
|
|
11639
|
+
return /* @__PURE__ */ jsxs51(
|
|
11628
11640
|
"div",
|
|
11629
11641
|
{
|
|
11630
11642
|
style: {
|
|
@@ -11633,26 +11645,26 @@ function ReceiveLumiaMenu() {
|
|
|
11633
11645
|
},
|
|
11634
11646
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
11635
11647
|
children: [
|
|
11636
|
-
/* @__PURE__ */
|
|
11637
|
-
/* @__PURE__ */
|
|
11638
|
-
/* @__PURE__ */
|
|
11648
|
+
/* @__PURE__ */ jsxs51("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11649
|
+
/* @__PURE__ */ jsx60(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx60(ArrowLeft14, { className: "h-4 w-4" }) }),
|
|
11650
|
+
/* @__PURE__ */ jsx60("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
11639
11651
|
] }),
|
|
11640
|
-
/* @__PURE__ */
|
|
11641
|
-
/* @__PURE__ */
|
|
11642
|
-
/* @__PURE__ */
|
|
11652
|
+
/* @__PURE__ */ jsxs51(Highlight, { className: "text-center", type: "warning", children: [
|
|
11653
|
+
/* @__PURE__ */ jsx60("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
11654
|
+
/* @__PURE__ */ jsx60("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
11643
11655
|
] }),
|
|
11644
|
-
/* @__PURE__ */
|
|
11645
|
-
/* @__PURE__ */
|
|
11646
|
-
/* @__PURE__ */
|
|
11647
|
-
/* @__PURE__ */
|
|
11648
|
-
/* @__PURE__ */
|
|
11649
|
-
/* @__PURE__ */
|
|
11650
|
-
] }) : /* @__PURE__ */
|
|
11651
|
-
/* @__PURE__ */
|
|
11652
|
-
/* @__PURE__ */
|
|
11656
|
+
/* @__PURE__ */ jsx60("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ jsx60("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ jsx60(Loader21, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
11657
|
+
/* @__PURE__ */ jsxs51(Highlight, { type: "info", children: [
|
|
11658
|
+
/* @__PURE__ */ jsx60("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
11659
|
+
/* @__PURE__ */ jsx60(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ jsxs51(Fragment20, { children: [
|
|
11660
|
+
/* @__PURE__ */ jsx60(CheckCircle24, { className: "h-4 w-4" }),
|
|
11661
|
+
/* @__PURE__ */ jsx60("span", { children: "Copied!" })
|
|
11662
|
+
] }) : /* @__PURE__ */ jsxs51(Fragment20, { children: [
|
|
11663
|
+
/* @__PURE__ */ jsx60(Copy2, { className: "h-4 w-4" }),
|
|
11664
|
+
/* @__PURE__ */ jsx60("span", { children: "Copy Address" })
|
|
11653
11665
|
] }) })
|
|
11654
11666
|
] }),
|
|
11655
|
-
/* @__PURE__ */
|
|
11667
|
+
/* @__PURE__ */ jsx60("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx60("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
|
|
11656
11668
|
]
|
|
11657
11669
|
}
|
|
11658
11670
|
);
|
|
@@ -11660,16 +11672,16 @@ function ReceiveLumiaMenu() {
|
|
|
11660
11672
|
|
|
11661
11673
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
11662
11674
|
import { ArrowLeft as ArrowLeft15 } from "lucide-react";
|
|
11663
|
-
import { useEffect as
|
|
11675
|
+
import { useEffect as useEffect26 } from "react";
|
|
11664
11676
|
|
|
11665
11677
|
// src/internal/components/SettingsMenu/constants.ts
|
|
11666
11678
|
import { ArrowLeftRight, DatabaseBackup, LockKeyhole, UsersRound } from "lucide-react";
|
|
11667
11679
|
|
|
11668
11680
|
// src/internal/assets/KycIcon.tsx
|
|
11669
|
-
import { jsx as
|
|
11681
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
11670
11682
|
function KycIcon(props) {
|
|
11671
11683
|
const { width = "24", height = "24", ...rest } = props;
|
|
11672
|
-
return /* @__PURE__ */
|
|
11684
|
+
return /* @__PURE__ */ jsx61("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx61(
|
|
11673
11685
|
"path",
|
|
11674
11686
|
{
|
|
11675
11687
|
d: "M12 18.5455C10.1727 18.5455 8.625 17.9114 7.35682 16.6432C6.08864 15.375 5.45455 13.8273 5.45455 12C5.45455 10.1727 6.08864 8.625 7.35682 7.35682C8.625 6.08864 10.1727 5.45455 12 5.45455C13.8273 5.45455 15.375 6.08864 16.6432 7.35682C17.9114 8.625 18.5455 10.1727 18.5455 12C18.5455 13.8273 17.9114 15.375 16.6432 16.6432C15.375 17.9114 13.8273 18.5455 12 18.5455ZM12 16.9091C13.3636 16.9091 14.5227 16.4318 15.4773 15.4773C16.4318 14.5227 16.9091 13.3636 16.9091 12C16.9091 11.7682 16.892 11.5398 16.858 11.3148C16.8239 11.0898 16.7727 10.8682 16.7045 10.65C16.5 10.6909 16.2955 10.7216 16.0909 10.742C15.8864 10.7625 15.6818 10.7727 15.4773 10.7727C14.6182 10.7727 13.8 10.6091 13.0227 10.2818C12.2455 9.95455 11.55 9.47727 10.9364 8.85C10.5545 9.62727 10.0295 10.3023 9.36136 10.875C8.69318 11.4477 7.93636 11.8636 7.09091 12.1227C7.13182 13.4591 7.62614 14.5909 8.57386 15.5182C9.52159 16.4455 10.6636 16.9091 12 16.9091ZM7.41818 10.2409C8.01818 9.92727 8.475 9.5625 8.78864 9.14659C9.10227 8.73068 9.40909 8.23636 9.70909 7.66364C9.19091 7.93636 8.73409 8.29432 8.33864 8.7375C7.94318 9.18068 7.63636 9.68182 7.41818 10.2409ZM9.95455 13.6364C9.72273 13.6364 9.52841 13.558 9.37159 13.4011C9.21477 13.2443 9.13636 13.05 9.13636 12.8182C9.13636 12.5864 9.21477 12.392 9.37159 12.2352C9.52841 12.0784 9.72273 12 9.95455 12C10.1864 12 10.3807 12.0784 10.5375 12.2352C10.6943 12.392 10.7727 12.5864 10.7727 12.8182C10.7727 13.05 10.6943 13.2443 10.5375 13.4011C10.3807 13.558 10.1864 13.6364 9.95455 13.6364ZM15.4773 9.13636H15.7227C15.8045 9.13636 15.8864 9.12955 15.9682 9.11591C15.5182 8.50227 14.9489 8.01136 14.2602 7.64318C13.5716 7.275 12.8182 7.09091 12 7.09091H11.7545C11.6727 7.09091 11.5977 7.09773 11.5295 7.11136C12.0614 7.725 12.6239 8.21591 13.217 8.58409C13.8102 8.95227 14.5636 9.13636 15.4773 9.13636ZM14.0455 13.6364C13.8136 13.6364 13.6193 13.558 13.4625 13.4011C13.3057 13.2443 13.2273 13.05 13.2273 12.8182C13.2273 12.5864 13.3057 12.392 13.4625 12.2352C13.6193 12.0784 13.8136 12 14.0455 12C14.2773 12 14.4716 12.0784 14.6284 12.2352C14.7852 12.392 14.8636 12.5864 14.8636 12.8182C14.8636 13.05 14.7852 13.2443 14.6284 13.4011C14.4716 13.558 14.2773 13.6364 14.0455 13.6364ZM3 7.09091V4.63636C3 4.18636 3.16023 3.80114 3.48068 3.48068C3.80114 3.16023 4.18636 3 4.63636 3H7.09091V4.63636H4.63636V7.09091H3ZM7.09091 21H4.63636C4.18636 21 3.80114 20.8398 3.48068 20.5193C3.16023 20.1989 3 19.8136 3 19.3636V16.9091H4.63636V19.3636H7.09091V21ZM16.9091 21V19.3636H19.3636V16.9091H21V19.3636C21 19.8136 20.8398 20.1989 20.5193 20.5193C20.1989 20.8398 19.8136 21 19.3636 21H16.9091ZM19.3636 7.09091V4.63636H16.9091V3H19.3636C19.8136 3 20.1989 3.16023 20.5193 3.48068C20.8398 3.80114 21 4.18636 21 4.63636V7.09091H19.3636Z",
|
|
@@ -11688,22 +11700,22 @@ var NAV_BUTTONS = [
|
|
|
11688
11700
|
];
|
|
11689
11701
|
|
|
11690
11702
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
11691
|
-
import { jsx as
|
|
11703
|
+
import { jsx as jsx62, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
11692
11704
|
function SettingsMenu() {
|
|
11693
11705
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11694
11706
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11695
11707
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
11696
11708
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
11697
|
-
|
|
11709
|
+
useEffect26(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
11698
11710
|
useProvidersList();
|
|
11699
11711
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
11700
11712
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
11701
|
-
return /* @__PURE__ */
|
|
11702
|
-
/* @__PURE__ */
|
|
11703
|
-
/* @__PURE__ */
|
|
11704
|
-
/* @__PURE__ */
|
|
11713
|
+
return /* @__PURE__ */ jsxs52("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11714
|
+
/* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11715
|
+
/* @__PURE__ */ jsx62(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx62(ArrowLeft15, { className: "h-4 w-4" }) }),
|
|
11716
|
+
/* @__PURE__ */ jsx62("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
11705
11717
|
] }),
|
|
11706
|
-
/* @__PURE__ */
|
|
11718
|
+
/* @__PURE__ */ jsx62("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ jsxs52(
|
|
11707
11719
|
Button,
|
|
11708
11720
|
{
|
|
11709
11721
|
variant: "outline",
|
|
@@ -11716,8 +11728,8 @@ function SettingsMenu() {
|
|
|
11716
11728
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
11717
11729
|
),
|
|
11718
11730
|
children: [
|
|
11719
|
-
/* @__PURE__ */
|
|
11720
|
-
/* @__PURE__ */
|
|
11731
|
+
/* @__PURE__ */ jsx62(Icon, { className: "w-4 h-4" }),
|
|
11732
|
+
/* @__PURE__ */ jsx62("span", { children: name })
|
|
11721
11733
|
]
|
|
11722
11734
|
},
|
|
11723
11735
|
id
|
|
@@ -11727,35 +11739,35 @@ function SettingsMenu() {
|
|
|
11727
11739
|
|
|
11728
11740
|
// src/internal/components/TermsOfService.tsx
|
|
11729
11741
|
import { ArrowLeft as ArrowLeft16 } from "lucide-react";
|
|
11730
|
-
import { jsx as
|
|
11742
|
+
import { jsx as jsx63, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
11731
11743
|
function TermsOfService() {
|
|
11732
11744
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11733
11745
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11734
|
-
return /* @__PURE__ */
|
|
11735
|
-
/* @__PURE__ */
|
|
11736
|
-
/* @__PURE__ */
|
|
11746
|
+
return /* @__PURE__ */ jsxs53("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11747
|
+
/* @__PURE__ */ jsxs53("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11748
|
+
/* @__PURE__ */ jsx63(
|
|
11737
11749
|
Button,
|
|
11738
11750
|
{
|
|
11739
11751
|
variant: "ghost",
|
|
11740
11752
|
size: "icon",
|
|
11741
11753
|
title: "Back",
|
|
11742
11754
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
11743
|
-
children: /* @__PURE__ */
|
|
11755
|
+
children: /* @__PURE__ */ jsx63(ArrowLeft16, { className: "h-4 w-4" })
|
|
11744
11756
|
}
|
|
11745
11757
|
),
|
|
11746
|
-
/* @__PURE__ */
|
|
11758
|
+
/* @__PURE__ */ jsx63("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
11747
11759
|
] }),
|
|
11748
|
-
/* @__PURE__ */
|
|
11749
|
-
/* @__PURE__ */
|
|
11750
|
-
/* @__PURE__ */
|
|
11760
|
+
/* @__PURE__ */ jsxs53(Highlight, { type: "warning", className: "text-center", children: [
|
|
11761
|
+
/* @__PURE__ */ jsx63("span", { className: "block text-xs", children: "By using Lumia Passport you agree to our terms." }),
|
|
11762
|
+
/* @__PURE__ */ jsx63("span", { className: "block text-xs", children: "To be updated..." })
|
|
11751
11763
|
] })
|
|
11752
11764
|
] });
|
|
11753
11765
|
}
|
|
11754
11766
|
|
|
11755
11767
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11756
|
-
import { useQuery as useQuery14, useQueryClient as
|
|
11757
|
-
import { ArrowLeft as ArrowLeft17, Loader as
|
|
11758
|
-
import { useCallback as useCallback16, useState as
|
|
11768
|
+
import { useQuery as useQuery14, useQueryClient as useQueryClient17 } from "@tanstack/react-query";
|
|
11769
|
+
import { ArrowLeft as ArrowLeft17, Loader as Loader22, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
|
|
11770
|
+
import { useCallback as useCallback16, useState as useState16 } from "react";
|
|
11759
11771
|
|
|
11760
11772
|
// src/internal/components/TransactionsMenu/api.ts
|
|
11761
11773
|
init_base();
|
|
@@ -12046,18 +12058,7 @@ async function getTransactionsListQuery(address) {
|
|
|
12046
12058
|
}
|
|
12047
12059
|
|
|
12048
12060
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
12049
|
-
import { ChevronLeft as ChevronLeft2, ChevronRight as
|
|
12050
|
-
|
|
12051
|
-
// src/internal/assets/NegativeIcon.tsx
|
|
12052
|
-
import { jsx as jsx60, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
12053
|
-
function NegativeIcon(props) {
|
|
12054
|
-
const { width = "16", height = "16", ...rest } = props;
|
|
12055
|
-
return /* @__PURE__ */ jsxs50("svg", { ...rest, width, height, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
12056
|
-
/* @__PURE__ */ jsx60("rect", { width: "16", height: "16", rx: "8", fill: "var(--l-pass-bg-error)" }),
|
|
12057
|
-
/* @__PURE__ */ jsx60("path", { d: "M10.8048 5.19482L5.19434 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" }),
|
|
12058
|
-
/* @__PURE__ */ jsx60("path", { d: "M5.19421 5.19482L10.8047 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" })
|
|
12059
|
-
] });
|
|
12060
|
-
}
|
|
12061
|
+
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight5, Copy as Copy3 } from "lucide-react";
|
|
12061
12062
|
|
|
12062
12063
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
12063
12064
|
init_base();
|
|
@@ -12104,22 +12105,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
12104
12105
|
};
|
|
12105
12106
|
|
|
12106
12107
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
12107
|
-
import { Fragment as
|
|
12108
|
+
import { Fragment as Fragment21, jsx as jsx64, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
12108
12109
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
12109
12110
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
12110
12111
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
12111
|
-
return /* @__PURE__ */
|
|
12112
|
-
/* @__PURE__ */
|
|
12113
|
-
/* @__PURE__ */
|
|
12114
|
-
/* @__PURE__ */
|
|
12112
|
+
return /* @__PURE__ */ jsxs54("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
|
|
12113
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
12114
|
+
/* @__PURE__ */ jsx64("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
|
|
12115
|
+
/* @__PURE__ */ jsxs54("span", { children: [
|
|
12115
12116
|
formatValue2(internal.value, internalDecimals),
|
|
12116
12117
|
" ",
|
|
12117
12118
|
internalSymbol
|
|
12118
12119
|
] })
|
|
12119
12120
|
] }),
|
|
12120
|
-
/* @__PURE__ */
|
|
12121
|
-
/* @__PURE__ */
|
|
12122
|
-
/* @__PURE__ */
|
|
12121
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
12122
|
+
/* @__PURE__ */ jsx64("span", { children: internal.direction === "in" ? "From" : "To" }),
|
|
12123
|
+
/* @__PURE__ */ jsx64("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
|
|
12123
12124
|
] })
|
|
12124
12125
|
] });
|
|
12125
12126
|
}
|
|
@@ -12130,7 +12131,7 @@ function TransactionsGroup(props) {
|
|
|
12130
12131
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
12131
12132
|
const assetDecimals = parent.decimals ?? 18;
|
|
12132
12133
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
12133
|
-
return /* @__PURE__ */
|
|
12134
|
+
return /* @__PURE__ */ jsxs54(
|
|
12134
12135
|
"div",
|
|
12135
12136
|
{
|
|
12136
12137
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -12140,22 +12141,22 @@ function TransactionsGroup(props) {
|
|
|
12140
12141
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
12141
12142
|
),
|
|
12142
12143
|
children: [
|
|
12143
|
-
/* @__PURE__ */
|
|
12144
|
-
/* @__PURE__ */
|
|
12145
|
-
parent.direction === "in" ? /* @__PURE__ */
|
|
12146
|
-
/* @__PURE__ */
|
|
12147
|
-
parent.status === "ok" ? /* @__PURE__ */
|
|
12144
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
12145
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
12146
|
+
parent.direction === "in" ? /* @__PURE__ */ jsx64(ChevronLeft2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx64(ChevronRight5, { className: "w-4 h-4" }),
|
|
12147
|
+
/* @__PURE__ */ jsx64("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
12148
|
+
parent.status === "ok" ? /* @__PURE__ */ jsx64(PositiveIcon, {}) : /* @__PURE__ */ jsx64(NegativeIcon, {})
|
|
12148
12149
|
] }),
|
|
12149
|
-
/* @__PURE__ */
|
|
12150
|
+
/* @__PURE__ */ jsx64("span", { className: "block flex-0 font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
12150
12151
|
] }),
|
|
12151
|
-
/* @__PURE__ */
|
|
12152
|
-
/* @__PURE__ */
|
|
12152
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
12153
|
+
/* @__PURE__ */ jsxs54("span", { className: "font-bold", children: [
|
|
12153
12154
|
formatValue2(parent.value, assetDecimals),
|
|
12154
12155
|
" ",
|
|
12155
12156
|
assetSymbol
|
|
12156
12157
|
] }),
|
|
12157
|
-
/* @__PURE__ */
|
|
12158
|
-
/* @__PURE__ */
|
|
12158
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-0", children: [
|
|
12159
|
+
/* @__PURE__ */ jsx64(
|
|
12159
12160
|
Button,
|
|
12160
12161
|
{
|
|
12161
12162
|
variant: "ghost",
|
|
@@ -12164,10 +12165,10 @@ function TransactionsGroup(props) {
|
|
|
12164
12165
|
onClick: (e) => {
|
|
12165
12166
|
e.stopPropagation();
|
|
12166
12167
|
},
|
|
12167
|
-
children: /* @__PURE__ */
|
|
12168
|
+
children: /* @__PURE__ */ jsx64(Copy3, { className: "w-4 h-4" })
|
|
12168
12169
|
}
|
|
12169
12170
|
),
|
|
12170
|
-
/* @__PURE__ */
|
|
12171
|
+
/* @__PURE__ */ jsx64(
|
|
12171
12172
|
Button,
|
|
12172
12173
|
{
|
|
12173
12174
|
variant: "ghost",
|
|
@@ -12176,24 +12177,24 @@ function TransactionsGroup(props) {
|
|
|
12176
12177
|
onClick: (e) => {
|
|
12177
12178
|
e.stopPropagation();
|
|
12178
12179
|
},
|
|
12179
|
-
children: /* @__PURE__ */
|
|
12180
|
+
children: /* @__PURE__ */ jsx64(LumiaIcon, { className: "w-4 h-4" })
|
|
12180
12181
|
}
|
|
12181
12182
|
)
|
|
12182
12183
|
] })
|
|
12183
12184
|
] }),
|
|
12184
|
-
internalsToRender.length > 0 && /* @__PURE__ */
|
|
12185
|
-
/* @__PURE__ */
|
|
12186
|
-
/* @__PURE__ */
|
|
12187
|
-
/* @__PURE__ */
|
|
12188
|
-
/* @__PURE__ */
|
|
12185
|
+
internalsToRender.length > 0 && /* @__PURE__ */ jsxs54(Fragment21, { children: [
|
|
12186
|
+
/* @__PURE__ */ jsxs54("div", { className: "w-full flex items-center", children: [
|
|
12187
|
+
/* @__PURE__ */ jsx64("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
12188
|
+
/* @__PURE__ */ jsx64("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Internals" }),
|
|
12189
|
+
/* @__PURE__ */ jsx64("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
12189
12190
|
] }),
|
|
12190
|
-
/* @__PURE__ */
|
|
12191
|
+
/* @__PURE__ */ jsxs54(
|
|
12191
12192
|
"div",
|
|
12192
12193
|
{
|
|
12193
12194
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
12194
12195
|
onClick: (event) => event.stopPropagation(),
|
|
12195
12196
|
children: [
|
|
12196
|
-
/* @__PURE__ */
|
|
12197
|
+
/* @__PURE__ */ jsxs54(
|
|
12197
12198
|
Button,
|
|
12198
12199
|
{
|
|
12199
12200
|
variant: "ghost",
|
|
@@ -12201,16 +12202,16 @@ function TransactionsGroup(props) {
|
|
|
12201
12202
|
className: "w-full justify-between",
|
|
12202
12203
|
onClick: () => onToggleExpanded(group.id),
|
|
12203
12204
|
children: [
|
|
12204
|
-
/* @__PURE__ */
|
|
12205
|
+
/* @__PURE__ */ jsxs54("span", { children: [
|
|
12205
12206
|
"View internal calls (",
|
|
12206
12207
|
internalsToRender.length,
|
|
12207
12208
|
")"
|
|
12208
12209
|
] }),
|
|
12209
|
-
/* @__PURE__ */
|
|
12210
|
+
/* @__PURE__ */ jsx64("span", { children: expanded ? "Hide" : "Show" })
|
|
12210
12211
|
]
|
|
12211
12212
|
}
|
|
12212
12213
|
),
|
|
12213
|
-
expanded && /* @__PURE__ */
|
|
12214
|
+
expanded && /* @__PURE__ */ jsx64("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx64(
|
|
12214
12215
|
InternalTransaction,
|
|
12215
12216
|
{
|
|
12216
12217
|
internal,
|
|
@@ -12229,14 +12230,14 @@ function TransactionsGroup(props) {
|
|
|
12229
12230
|
}
|
|
12230
12231
|
|
|
12231
12232
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
12232
|
-
import { jsx as
|
|
12233
|
+
import { jsx as jsx65, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
12233
12234
|
function TransactionsMenu() {
|
|
12234
|
-
const qc =
|
|
12235
|
+
const qc = useQueryClient17();
|
|
12235
12236
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12236
12237
|
const page = useLayoutDataStore((st) => st.page);
|
|
12237
12238
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12238
12239
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
12239
|
-
const [expandedGroups, setExpandedGroups] =
|
|
12240
|
+
const [expandedGroups, setExpandedGroups] = useState16({});
|
|
12240
12241
|
const {
|
|
12241
12242
|
data: txHistoryGroups = [],
|
|
12242
12243
|
isLoading: isTxHistoryLoading,
|
|
@@ -12253,19 +12254,19 @@ function TransactionsMenu() {
|
|
|
12253
12254
|
[qc, address]
|
|
12254
12255
|
);
|
|
12255
12256
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
12256
|
-
return /* @__PURE__ */
|
|
12257
|
+
return /* @__PURE__ */ jsx65(
|
|
12257
12258
|
"div",
|
|
12258
12259
|
{
|
|
12259
12260
|
style: {
|
|
12260
12261
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
12261
12262
|
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
12262
12263
|
},
|
|
12263
|
-
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]
|
|
12264
|
-
children: [
|
|
12265
|
-
/* @__PURE__ */
|
|
12266
|
-
/* @__PURE__ */
|
|
12267
|
-
/* @__PURE__ */
|
|
12268
|
-
/* @__PURE__ */
|
|
12264
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
12265
|
+
children: /* @__PURE__ */ jsxs55(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12266
|
+
/* @__PURE__ */ jsxs55("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12267
|
+
/* @__PURE__ */ jsx65(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx65(ArrowLeft17, { className: "h-4 w-4" }) }),
|
|
12268
|
+
/* @__PURE__ */ jsx65("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
12269
|
+
/* @__PURE__ */ jsx65(
|
|
12269
12270
|
Button,
|
|
12270
12271
|
{
|
|
12271
12272
|
variant: "ghost",
|
|
@@ -12273,18 +12274,18 @@ function TransactionsMenu() {
|
|
|
12273
12274
|
onClick: refreshTxHistory,
|
|
12274
12275
|
disabled: isTxHistoryFetching,
|
|
12275
12276
|
title: "Refresh transactions",
|
|
12276
|
-
children: isTxHistoryFetching ? /* @__PURE__ */
|
|
12277
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ jsx65(Loader22, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx65(RefreshCw3, { className: "h-4 w-4" })
|
|
12277
12278
|
}
|
|
12278
12279
|
)
|
|
12279
12280
|
] }),
|
|
12280
|
-
/* @__PURE__ */
|
|
12281
|
-
isTxHistoryLoading && /* @__PURE__ */
|
|
12282
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */
|
|
12283
|
-
/* @__PURE__ */
|
|
12284
|
-
/* @__PURE__ */
|
|
12281
|
+
/* @__PURE__ */ jsxs55("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12282
|
+
isTxHistoryLoading && /* @__PURE__ */ jsx65("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx65(Loader22, { className: "h-5 w-5 animate-spin" }) }),
|
|
12283
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs55(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
12284
|
+
/* @__PURE__ */ jsx65(XCircle2, { className: "w-4 h-4 flex-none" }),
|
|
12285
|
+
/* @__PURE__ */ jsx65("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
12285
12286
|
] }),
|
|
12286
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */
|
|
12287
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */
|
|
12287
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx65(Highlight, { type: "warning", children: /* @__PURE__ */ jsx65("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
|
|
12288
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx65("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx65(
|
|
12288
12289
|
TransactionsGroup,
|
|
12289
12290
|
{
|
|
12290
12291
|
group,
|
|
@@ -12294,7 +12295,7 @@ function TransactionsMenu() {
|
|
|
12294
12295
|
group.id
|
|
12295
12296
|
)) })
|
|
12296
12297
|
] })
|
|
12297
|
-
]
|
|
12298
|
+
] })
|
|
12298
12299
|
}
|
|
12299
12300
|
);
|
|
12300
12301
|
}
|
|
@@ -12394,7 +12395,7 @@ var PAGE_MAP = {
|
|
|
12394
12395
|
};
|
|
12395
12396
|
|
|
12396
12397
|
// src/internal/hooks/usePageMapper.tsx
|
|
12397
|
-
import { jsx as
|
|
12398
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
12398
12399
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
12399
12400
|
function usePageMapper() {
|
|
12400
12401
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -12424,12 +12425,12 @@ function usePageMapper() {
|
|
|
12424
12425
|
const PageContentComponent = pageItem.component;
|
|
12425
12426
|
setDialogTitle(pageItem.title);
|
|
12426
12427
|
setDialogDescription(pageItem.description);
|
|
12427
|
-
setDialogContent(/* @__PURE__ */
|
|
12428
|
+
setDialogContent(/* @__PURE__ */ jsx66(PageContentComponent, {}));
|
|
12428
12429
|
setIsDialogOpen(true);
|
|
12429
12430
|
},
|
|
12430
12431
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
12431
12432
|
);
|
|
12432
|
-
|
|
12433
|
+
useEffect27(() => {
|
|
12433
12434
|
if (page === null) return closeDialog();
|
|
12434
12435
|
const pageItem = protectedRoutes[page];
|
|
12435
12436
|
if (!pageItem) {
|
|
@@ -12443,7 +12444,7 @@ function usePageMapper() {
|
|
|
12443
12444
|
|
|
12444
12445
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
12445
12446
|
init_auth();
|
|
12446
|
-
import { useEffect as
|
|
12447
|
+
import { useEffect as useEffect28 } from "react";
|
|
12447
12448
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
12448
12449
|
id: "email-not-connected",
|
|
12449
12450
|
target: "manage-wallet" /* MANAGE_WALLET */,
|
|
@@ -12459,13 +12460,13 @@ function useSettingsNotifications() {
|
|
|
12459
12460
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
12460
12461
|
const providers = jwtTokenManager2.getProviders();
|
|
12461
12462
|
const hasEmail = providers.includes("email");
|
|
12462
|
-
|
|
12463
|
+
useEffect28(() => {
|
|
12463
12464
|
setSettingsNotifications({
|
|
12464
12465
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
12465
12466
|
status: hasServerVault ? "resolved" : "active"
|
|
12466
12467
|
});
|
|
12467
12468
|
}, [hasServerVault, setSettingsNotifications]);
|
|
12468
|
-
|
|
12469
|
+
useEffect28(() => {
|
|
12469
12470
|
setSettingsNotifications({
|
|
12470
12471
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
12471
12472
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -12474,7 +12475,7 @@ function useSettingsNotifications() {
|
|
|
12474
12475
|
}
|
|
12475
12476
|
|
|
12476
12477
|
// src/internal/hooks/useWalletStatus.ts
|
|
12477
|
-
import { useEffect as
|
|
12478
|
+
import { useEffect as useEffect29 } from "react";
|
|
12478
12479
|
init_auth();
|
|
12479
12480
|
function useWalletStatus() {
|
|
12480
12481
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -12484,7 +12485,7 @@ function useWalletStatus() {
|
|
|
12484
12485
|
config: { current: config },
|
|
12485
12486
|
callbacks
|
|
12486
12487
|
} = useLumiaPassportConfig();
|
|
12487
|
-
|
|
12488
|
+
useEffect29(() => {
|
|
12488
12489
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
12489
12490
|
const userId = jwtTokenManager2.getUserId();
|
|
12490
12491
|
const hasKeyshare = jwtTokenManager2.getHasKeyshare();
|
|
@@ -12504,7 +12505,7 @@ function useWalletStatus() {
|
|
|
12504
12505
|
}
|
|
12505
12506
|
|
|
12506
12507
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
12507
|
-
import { jsx as
|
|
12508
|
+
import { jsx as jsx67, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
12508
12509
|
function LumiaPassportDialog() {
|
|
12509
12510
|
const config = useLumiaPassportConfig().config;
|
|
12510
12511
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -12513,7 +12514,7 @@ function LumiaPassportDialog() {
|
|
|
12513
12514
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
12514
12515
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12515
12516
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
12516
|
-
|
|
12517
|
+
useEffect30(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
12517
12518
|
usePageMapper();
|
|
12518
12519
|
useAutoConnect();
|
|
12519
12520
|
useCheckVaultStatus();
|
|
@@ -12523,7 +12524,7 @@ function LumiaPassportDialog() {
|
|
|
12523
12524
|
useListenIframeAuthEvents();
|
|
12524
12525
|
useBackupWarning();
|
|
12525
12526
|
useWalletStatus();
|
|
12526
|
-
return /* @__PURE__ */
|
|
12527
|
+
return /* @__PURE__ */ jsx67(
|
|
12527
12528
|
Dialog,
|
|
12528
12529
|
{
|
|
12529
12530
|
open: isDialogOpen,
|
|
@@ -12531,11 +12532,11 @@ function LumiaPassportDialog() {
|
|
|
12531
12532
|
if (isDialogForced) return;
|
|
12532
12533
|
if (!open) setPage(null);
|
|
12533
12534
|
},
|
|
12534
|
-
children: /* @__PURE__ */
|
|
12535
|
-
/* @__PURE__ */
|
|
12536
|
-
/* @__PURE__ */
|
|
12537
|
-
!!session && /* @__PURE__ */
|
|
12538
|
-
/* @__PURE__ */
|
|
12535
|
+
children: /* @__PURE__ */ jsxs56(DialogContent, { colorMode, hideClose: isDialogForced, className, children: [
|
|
12536
|
+
/* @__PURE__ */ jsx67(VisuallyHidden, { children: /* @__PURE__ */ jsx67(DialogTitle, { children: dialogTitle }) }),
|
|
12537
|
+
/* @__PURE__ */ jsx67(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
12538
|
+
!!session && /* @__PURE__ */ jsx67(Header, {}),
|
|
12539
|
+
/* @__PURE__ */ jsx67(AnimatePresence3, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx67(
|
|
12539
12540
|
motion3.div,
|
|
12540
12541
|
{
|
|
12541
12542
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -12547,7 +12548,7 @@ function LumiaPassportDialog() {
|
|
|
12547
12548
|
},
|
|
12548
12549
|
page || "empty"
|
|
12549
12550
|
) }),
|
|
12550
|
-
/* @__PURE__ */
|
|
12551
|
+
/* @__PURE__ */ jsx67(Footer, {})
|
|
12551
12552
|
] })
|
|
12552
12553
|
}
|
|
12553
12554
|
);
|
|
@@ -12598,11 +12599,11 @@ var TssManagerWithRef = React10.forwardRef((props, ref) => {
|
|
|
12598
12599
|
// src/internal/components/WalletConnectHandler.tsx
|
|
12599
12600
|
init_wallet();
|
|
12600
12601
|
import { useConnectModal } from "@rainbow-me/rainbowkit";
|
|
12601
|
-
import { useMutation as useMutation15, useQueryClient as
|
|
12602
|
-
import React11, { useCallback as useCallback19, useEffect as
|
|
12602
|
+
import { useMutation as useMutation15, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
|
|
12603
|
+
import React11, { useCallback as useCallback19, useEffect as useEffect31 } from "react";
|
|
12603
12604
|
import { useAccount, useDisconnect, useSignMessage } from "wagmi";
|
|
12604
12605
|
function WalletConnectHandler() {
|
|
12605
|
-
const qc =
|
|
12606
|
+
const qc = useQueryClient18();
|
|
12606
12607
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
12607
12608
|
const passportWalletAddress = useLumiaPassportSession((st) => st.address);
|
|
12608
12609
|
const { address: walletAddress, isConnected, chain, connector } = useAccount();
|
|
@@ -12644,7 +12645,7 @@ function WalletConnectHandler() {
|
|
|
12644
12645
|
[qc, passportWalletAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
|
|
12645
12646
|
);
|
|
12646
12647
|
const [hasStartedLinking, setHasStartedLinking] = React11.useState(false);
|
|
12647
|
-
|
|
12648
|
+
useEffect31(() => {
|
|
12648
12649
|
if (isWalletLinking && !hasStartedLinking) {
|
|
12649
12650
|
setHasStartedLinking(true);
|
|
12650
12651
|
setProviderType(null);
|
|
@@ -12664,7 +12665,7 @@ function WalletConnectHandler() {
|
|
|
12664
12665
|
if (isConnected) disconnect();
|
|
12665
12666
|
}
|
|
12666
12667
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
|
|
12667
|
-
|
|
12668
|
+
useEffect31(() => {
|
|
12668
12669
|
if (hasStartedLinking && !connectModalOpen && !isConnected && isWalletLinking) {
|
|
12669
12670
|
console.log("[WalletConnectHandler] Modal closed without connecting");
|
|
12670
12671
|
onLinkingComplete(false);
|
|
@@ -12740,7 +12741,7 @@ function WalletConnectHandler() {
|
|
|
12740
12741
|
setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
|
|
12741
12742
|
}
|
|
12742
12743
|
});
|
|
12743
|
-
|
|
12744
|
+
useEffect31(() => {
|
|
12744
12745
|
if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
12745
12746
|
console.log("[WalletConnectHandler] handleWalletSign triggered");
|
|
12746
12747
|
handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
|
|
@@ -12750,7 +12751,7 @@ function WalletConnectHandler() {
|
|
|
12750
12751
|
}
|
|
12751
12752
|
|
|
12752
12753
|
// src/context/LumiaPassportSessionContext.tsx
|
|
12753
|
-
import { jsx as
|
|
12754
|
+
import { jsx as jsx68, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
12754
12755
|
var useLumiaPassportSession = create6((set) => ({
|
|
12755
12756
|
isLoading: false,
|
|
12756
12757
|
usePaymaster: true,
|
|
@@ -12776,17 +12777,17 @@ var useLumiaPassportSession = create6((set) => ({
|
|
|
12776
12777
|
}));
|
|
12777
12778
|
function LumiaPassportSessionProvider({ children }) {
|
|
12778
12779
|
const config = useLumiaPassportConfig().config;
|
|
12779
|
-
return /* @__PURE__ */
|
|
12780
|
+
return /* @__PURE__ */ jsxs57(Fragment22, { children: [
|
|
12780
12781
|
children,
|
|
12781
|
-
config.current?.wallet?.enabled && /* @__PURE__ */
|
|
12782
|
-
/* @__PURE__ */
|
|
12783
|
-
/* @__PURE__ */
|
|
12782
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ jsx68(WalletConnectHandler, {}),
|
|
12783
|
+
/* @__PURE__ */ jsx68(BalanceFeedProvider, {}),
|
|
12784
|
+
/* @__PURE__ */ jsx68(
|
|
12784
12785
|
TssManagerWithRef,
|
|
12785
12786
|
{
|
|
12786
12787
|
mpcPin: void 0
|
|
12787
12788
|
}
|
|
12788
12789
|
),
|
|
12789
|
-
/* @__PURE__ */
|
|
12790
|
+
/* @__PURE__ */ jsx68(LumiaPassportDialog, {})
|
|
12790
12791
|
] });
|
|
12791
12792
|
}
|
|
12792
12793
|
|
|
@@ -12821,19 +12822,19 @@ var wagmiConfig = createConfig({
|
|
|
12821
12822
|
});
|
|
12822
12823
|
|
|
12823
12824
|
// src/context/WagmiContext.tsx
|
|
12824
|
-
import { jsx as
|
|
12825
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
12825
12826
|
var LumiaWagmiProvider = ({ children }) => {
|
|
12826
|
-
return /* @__PURE__ */
|
|
12827
|
+
return /* @__PURE__ */ jsx69(WagmiProvider, { config: wagmiConfig, children });
|
|
12827
12828
|
};
|
|
12828
12829
|
|
|
12829
12830
|
// src/context/LumiaPassportContext.tsx
|
|
12830
|
-
import { jsx as
|
|
12831
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
12831
12832
|
var LumiaPassportContext = createContext(void 0);
|
|
12832
12833
|
function LumiaPassportProvider(props) {
|
|
12833
12834
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
12834
12835
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
12835
12836
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
12836
|
-
|
|
12837
|
+
useEffect32(() => notifyNoProjetctId(projectId), [projectId]);
|
|
12837
12838
|
const config = useRef13({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
12838
12839
|
const updateConfig = useCallback20((updates) => {
|
|
12839
12840
|
const prev = config.current;
|
|
@@ -12870,7 +12871,7 @@ function LumiaPassportProvider(props) {
|
|
|
12870
12871
|
}
|
|
12871
12872
|
config.current = next;
|
|
12872
12873
|
}, []);
|
|
12873
|
-
|
|
12874
|
+
useEffect32(() => {
|
|
12874
12875
|
if (typeof window === "undefined" || !projectId) return;
|
|
12875
12876
|
const mergedConfig = merge2(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
12876
12877
|
updateConfig(mergedConfig);
|
|
@@ -12916,7 +12917,7 @@ function LumiaPassportProvider(props) {
|
|
|
12916
12917
|
}
|
|
12917
12918
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
12918
12919
|
const contextValue = useMemo5(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
12919
|
-
return /* @__PURE__ */
|
|
12920
|
+
return /* @__PURE__ */ jsx70(LumiaWagmiProvider, { children: /* @__PURE__ */ jsx70(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
12920
12921
|
}
|
|
12921
12922
|
var useLumiaPassportConfig = () => {
|
|
12922
12923
|
const ctx = useContext(LumiaPassportContext);
|
|
@@ -12925,10 +12926,10 @@ var useLumiaPassportConfig = () => {
|
|
|
12925
12926
|
};
|
|
12926
12927
|
|
|
12927
12928
|
// src/components/ConnectWalletButton.tsx
|
|
12928
|
-
import { Cloud as
|
|
12929
|
-
import { useEffect as
|
|
12929
|
+
import { Cloud as Cloud5, Laptop as Laptop2, Loader as Loader23, Shield as Shield2 } from "lucide-react";
|
|
12930
|
+
import { useEffect as useEffect33, useMemo as useMemo6 } from "react";
|
|
12930
12931
|
init_auth();
|
|
12931
|
-
import { Fragment as
|
|
12932
|
+
import { Fragment as Fragment23, jsx as jsx71, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
12932
12933
|
function getFormattedStatus(label, status, showStatus) {
|
|
12933
12934
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
12934
12935
|
if (!isStatus) return label;
|
|
@@ -12947,7 +12948,7 @@ function ConnectWalletButton(props) {
|
|
|
12947
12948
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12948
12949
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
12949
12950
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
12950
|
-
|
|
12951
|
+
useEffect33(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
12951
12952
|
const avatar = jwtTokenManager2.getAvatar();
|
|
12952
12953
|
const displayName = jwtTokenManager2.getDisplayName();
|
|
12953
12954
|
const indicators = useMemo6(() => {
|
|
@@ -12958,20 +12959,20 @@ function ConnectWalletButton(props) {
|
|
|
12958
12959
|
return { server, local, backup: hasServerVault };
|
|
12959
12960
|
}, [session, address, hasServerVault]);
|
|
12960
12961
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
12961
|
-
return /* @__PURE__ */
|
|
12962
|
+
return /* @__PURE__ */ jsx71("div", { "data-lumia-passport-mode": colorMode, className: cn("lumia-scope w-fit h-fit", className), children: !address ? (
|
|
12962
12963
|
/** external Buttons can be provided */
|
|
12963
|
-
/* @__PURE__ */
|
|
12964
|
+
/* @__PURE__ */ jsx71(Fragment23, { children: ConnectButton ? /* @__PURE__ */ jsxs58(
|
|
12964
12965
|
ConnectButton,
|
|
12965
12966
|
{
|
|
12966
12967
|
type: "button",
|
|
12967
12968
|
disabled: isConnecting,
|
|
12968
12969
|
onClick: () => setPage("auth" /* AUTH */),
|
|
12969
12970
|
children: [
|
|
12970
|
-
isConnecting && /* @__PURE__ */
|
|
12971
|
+
isConnecting && /* @__PURE__ */ jsx71(Loader23, { className: "w-4 h-4 animate-spin" }),
|
|
12971
12972
|
connectButtonLabel
|
|
12972
12973
|
]
|
|
12973
12974
|
}
|
|
12974
|
-
) : /* @__PURE__ */
|
|
12975
|
+
) : /* @__PURE__ */ jsxs58(
|
|
12975
12976
|
Button,
|
|
12976
12977
|
{
|
|
12977
12978
|
type: "button",
|
|
@@ -12981,18 +12982,18 @@ function ConnectWalletButton(props) {
|
|
|
12981
12982
|
onClick: () => setPage("auth" /* AUTH */),
|
|
12982
12983
|
className: cn(
|
|
12983
12984
|
"lumia-passport-button w-fit h-16 px-8",
|
|
12984
|
-
"border border-transparent",
|
|
12985
|
+
"border-0 border-transparent",
|
|
12985
12986
|
// to override button appearance bd, which case to case might drop black border
|
|
12986
12987
|
"bg-[var(--l-pass-bg)] hover:bg-[var(--l-pass-bg)] active:bg-[var(--l-pass-bg)] text-[var(--l-pass-fg)]",
|
|
12987
12988
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
12988
12989
|
),
|
|
12989
12990
|
children: [
|
|
12990
|
-
isConnecting && /* @__PURE__ */
|
|
12991
|
+
isConnecting && /* @__PURE__ */ jsx71(Loader23, { className: "w-4 h-4 animate-spin" }),
|
|
12991
12992
|
connectButtonLabel.toUpperCase()
|
|
12992
12993
|
]
|
|
12993
12994
|
}
|
|
12994
12995
|
) })
|
|
12995
|
-
) : /* @__PURE__ */
|
|
12996
|
+
) : /* @__PURE__ */ jsxs58(
|
|
12996
12997
|
"button",
|
|
12997
12998
|
{
|
|
12998
12999
|
type: "button",
|
|
@@ -13005,23 +13006,23 @@ function ConnectWalletButton(props) {
|
|
|
13005
13006
|
"rounded-[var(--l-pass-el-bdrs)] p-2 max-w-sm min-w-[256px]"
|
|
13006
13007
|
),
|
|
13007
13008
|
children: [
|
|
13008
|
-
/* @__PURE__ */
|
|
13009
|
-
/* @__PURE__ */
|
|
13010
|
-
/* @__PURE__ */
|
|
13011
|
-
/* @__PURE__ */
|
|
13012
|
-
/* @__PURE__ */
|
|
13009
|
+
/* @__PURE__ */ jsx71("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ jsx71("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx71(LumiaIcon, { width: 48, height: 48 }) }),
|
|
13010
|
+
/* @__PURE__ */ jsxs58("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
|
|
13011
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13012
|
+
/* @__PURE__ */ jsx71("span", { className: "w-fit font-semibold text-base truncate max-w-[144px]", children: displayName }),
|
|
13013
|
+
/* @__PURE__ */ jsx71(KYCStatus, {})
|
|
13013
13014
|
] }),
|
|
13014
|
-
/* @__PURE__ */
|
|
13015
|
+
/* @__PURE__ */ jsx71(BalanceView, { className: "font-semibold text-base text-[var(--l-pass-fg-muted)]" })
|
|
13015
13016
|
] }),
|
|
13016
|
-
/* @__PURE__ */
|
|
13017
|
-
/* @__PURE__ */
|
|
13018
|
-
/* @__PURE__ */
|
|
13019
|
-
|
|
13017
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex items-center space-x-1", children: [
|
|
13018
|
+
/* @__PURE__ */ jsxs58("div", { className: "group relative", children: [
|
|
13019
|
+
/* @__PURE__ */ jsx71(
|
|
13020
|
+
Cloud5,
|
|
13020
13021
|
{
|
|
13021
13022
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13022
13023
|
}
|
|
13023
13024
|
),
|
|
13024
|
-
/* @__PURE__ */
|
|
13025
|
+
/* @__PURE__ */ jsxs58(
|
|
13025
13026
|
"div",
|
|
13026
13027
|
{
|
|
13027
13028
|
className: cn(
|
|
@@ -13036,14 +13037,14 @@ function ConnectWalletButton(props) {
|
|
|
13036
13037
|
}
|
|
13037
13038
|
)
|
|
13038
13039
|
] }),
|
|
13039
|
-
/* @__PURE__ */
|
|
13040
|
-
/* @__PURE__ */
|
|
13040
|
+
/* @__PURE__ */ jsxs58("div", { className: "group relative", children: [
|
|
13041
|
+
/* @__PURE__ */ jsx71(
|
|
13041
13042
|
Laptop2,
|
|
13042
13043
|
{
|
|
13043
13044
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13044
13045
|
}
|
|
13045
13046
|
),
|
|
13046
|
-
/* @__PURE__ */
|
|
13047
|
+
/* @__PURE__ */ jsxs58(
|
|
13047
13048
|
"div",
|
|
13048
13049
|
{
|
|
13049
13050
|
className: cn(
|
|
@@ -13058,14 +13059,14 @@ function ConnectWalletButton(props) {
|
|
|
13058
13059
|
}
|
|
13059
13060
|
)
|
|
13060
13061
|
] }),
|
|
13061
|
-
/* @__PURE__ */
|
|
13062
|
-
/* @__PURE__ */
|
|
13063
|
-
|
|
13062
|
+
/* @__PURE__ */ jsxs58("div", { className: "group relative", children: [
|
|
13063
|
+
/* @__PURE__ */ jsx71(
|
|
13064
|
+
Shield2,
|
|
13064
13065
|
{
|
|
13065
13066
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13066
13067
|
}
|
|
13067
13068
|
),
|
|
13068
|
-
/* @__PURE__ */
|
|
13069
|
+
/* @__PURE__ */ jsxs58(
|
|
13069
13070
|
"div",
|
|
13070
13071
|
{
|
|
13071
13072
|
className: cn(
|
|
@@ -13081,7 +13082,7 @@ function ConnectWalletButton(props) {
|
|
|
13081
13082
|
)
|
|
13082
13083
|
] })
|
|
13083
13084
|
] }),
|
|
13084
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
13085
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx71(
|
|
13085
13086
|
"div",
|
|
13086
13087
|
{
|
|
13087
13088
|
className: cn(
|
|
@@ -13142,7 +13143,7 @@ function useLumiaPassportOpen() {
|
|
|
13142
13143
|
}
|
|
13143
13144
|
|
|
13144
13145
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
13145
|
-
import { useCallback as useCallback22, useEffect as
|
|
13146
|
+
import { useCallback as useCallback22, useEffect as useEffect34 } from "react";
|
|
13146
13147
|
function useLumiaPassportColorMode() {
|
|
13147
13148
|
const {
|
|
13148
13149
|
config: { current: config }
|
|
@@ -13157,7 +13158,7 @@ function useLumiaPassportColorMode() {
|
|
|
13157
13158
|
},
|
|
13158
13159
|
[handleStoreColorMode]
|
|
13159
13160
|
);
|
|
13160
|
-
|
|
13161
|
+
useEffect34(() => {
|
|
13161
13162
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
13162
13163
|
if (!targetColorMode && !preferedColorMode) {
|
|
13163
13164
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -13175,23 +13176,23 @@ function useLumiaPassportColorMode() {
|
|
|
13175
13176
|
|
|
13176
13177
|
// src/components/ThemeToggle.tsx
|
|
13177
13178
|
import { Moon, Sun } from "lucide-react";
|
|
13178
|
-
import { jsx as
|
|
13179
|
+
import { jsx as jsx72 } from "react/jsx-runtime";
|
|
13179
13180
|
function ThemeToggle(props) {
|
|
13180
13181
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
13181
|
-
return /* @__PURE__ */
|
|
13182
|
+
return /* @__PURE__ */ jsx72(
|
|
13182
13183
|
"div",
|
|
13183
13184
|
{
|
|
13184
13185
|
className: "lumia-scope",
|
|
13185
13186
|
"data-lumia-passport-mode": colorMode,
|
|
13186
13187
|
style: { width: "fit-content", height: "fit-content" },
|
|
13187
|
-
children: /* @__PURE__ */
|
|
13188
|
+
children: /* @__PURE__ */ jsx72(
|
|
13188
13189
|
Button,
|
|
13189
13190
|
{
|
|
13190
13191
|
...props,
|
|
13191
13192
|
variant: "ghost",
|
|
13192
13193
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
13193
13194
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
13194
|
-
children: colorMode === "dark" ? /* @__PURE__ */
|
|
13195
|
+
children: colorMode === "dark" ? /* @__PURE__ */ jsx72(Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx72(Moon, { className: "w-4 h-4" })
|
|
13195
13196
|
}
|
|
13196
13197
|
)
|
|
13197
13198
|
}
|
|
@@ -13428,7 +13429,7 @@ var rainbowTheme = {
|
|
|
13428
13429
|
|
|
13429
13430
|
// src/context/RainbowKitContext.tsx
|
|
13430
13431
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
13431
|
-
import { Fragment as
|
|
13432
|
+
import { Fragment as Fragment24, jsx as jsx73 } from "react/jsx-runtime";
|
|
13432
13433
|
function LumiaRainbowKitProvider({ children }) {
|
|
13433
13434
|
const config = useLumiaPassportConfig().config;
|
|
13434
13435
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -13447,13 +13448,13 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
13447
13448
|
},
|
|
13448
13449
|
[colorMode]
|
|
13449
13450
|
);
|
|
13450
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */
|
|
13451
|
-
return /* @__PURE__ */
|
|
13451
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx73(Fragment24, { children });
|
|
13452
|
+
return /* @__PURE__ */ jsx73(WagmiProvider2, { config: rainbowConfig2, children: /* @__PURE__ */ jsx73(RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
13452
13453
|
}
|
|
13453
13454
|
|
|
13454
13455
|
// src/internal/components/UserOpStatus.tsx
|
|
13455
13456
|
init_base();
|
|
13456
|
-
import { AlertCircle as AlertCircle6, CheckCircle2 as
|
|
13457
|
+
import { AlertCircle as AlertCircle6, CheckCircle2 as CheckCircle26, Clock as Clock2, Copy as Copy5, ExternalLink as ExternalLink2, RefreshCw as RefreshCw4 } from "lucide-react";
|
|
13457
13458
|
import * as React13 from "react";
|
|
13458
13459
|
|
|
13459
13460
|
// src/internal/utils/cn.ts
|
|
@@ -13466,7 +13467,7 @@ function cn2(...inputs) {
|
|
|
13466
13467
|
// src/internal/components/Address.tsx
|
|
13467
13468
|
import { Copy as Copy4, ExternalLink } from "lucide-react";
|
|
13468
13469
|
import * as React12 from "react";
|
|
13469
|
-
import { jsx as
|
|
13470
|
+
import { jsx as jsx74, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
13470
13471
|
function toExplorerAddressUrl(address, chain) {
|
|
13471
13472
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
13472
13473
|
if (!base2) return null;
|
|
@@ -13488,11 +13489,11 @@ var Address = ({
|
|
|
13488
13489
|
const addr = address || "";
|
|
13489
13490
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
13490
13491
|
const [copied, setCopied] = React12.useState(false);
|
|
13491
|
-
if (!addr) return /* @__PURE__ */
|
|
13492
|
-
return /* @__PURE__ */
|
|
13493
|
-
label && /* @__PURE__ */
|
|
13494
|
-
/* @__PURE__ */
|
|
13495
|
-
showCopy && /* @__PURE__ */
|
|
13492
|
+
if (!addr) return /* @__PURE__ */ jsx74("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
13493
|
+
return /* @__PURE__ */ jsxs59("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
13494
|
+
label && /* @__PURE__ */ jsx74("span", { className: "text-sm font-medium", children: label }),
|
|
13495
|
+
/* @__PURE__ */ jsx74("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
13496
|
+
showCopy && /* @__PURE__ */ jsx74(
|
|
13496
13497
|
Button,
|
|
13497
13498
|
{
|
|
13498
13499
|
variant: "ghost",
|
|
@@ -13506,10 +13507,10 @@ var Address = ({
|
|
|
13506
13507
|
} catch {
|
|
13507
13508
|
}
|
|
13508
13509
|
},
|
|
13509
|
-
children: /* @__PURE__ */
|
|
13510
|
+
children: /* @__PURE__ */ jsx74(Copy4, { className: "h-4 w-4" })
|
|
13510
13511
|
}
|
|
13511
13512
|
),
|
|
13512
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
13513
|
+
showExplorer && explorer && /* @__PURE__ */ jsx74(
|
|
13513
13514
|
"a",
|
|
13514
13515
|
{
|
|
13515
13516
|
href: explorer,
|
|
@@ -13517,7 +13518,7 @@ var Address = ({
|
|
|
13517
13518
|
rel: "noreferrer noopener",
|
|
13518
13519
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
13519
13520
|
title: "Open in explorer",
|
|
13520
|
-
children: /* @__PURE__ */
|
|
13521
|
+
children: /* @__PURE__ */ jsx74(ExternalLink, { className: "h-4 w-4" })
|
|
13521
13522
|
}
|
|
13522
13523
|
)
|
|
13523
13524
|
] });
|
|
@@ -13525,7 +13526,7 @@ var Address = ({
|
|
|
13525
13526
|
|
|
13526
13527
|
// src/internal/components/ui/badge.tsx
|
|
13527
13528
|
import { cva as cva2 } from "class-variance-authority";
|
|
13528
|
-
import { jsx as
|
|
13529
|
+
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
13529
13530
|
var badgeVariants = cva2(
|
|
13530
13531
|
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
13531
13532
|
{
|
|
@@ -13545,11 +13546,11 @@ var badgeVariants = cva2(
|
|
|
13545
13546
|
}
|
|
13546
13547
|
);
|
|
13547
13548
|
function Badge({ className, variant, ...props }) {
|
|
13548
|
-
return /* @__PURE__ */
|
|
13549
|
+
return /* @__PURE__ */ jsx75("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
13549
13550
|
}
|
|
13550
13551
|
|
|
13551
13552
|
// src/internal/components/UserOpStatus.tsx
|
|
13552
|
-
import { jsx as
|
|
13553
|
+
import { jsx as jsx76, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
13553
13554
|
var UserOpStatus = ({
|
|
13554
13555
|
userOpHash,
|
|
13555
13556
|
chain,
|
|
@@ -13682,35 +13683,35 @@ var UserOpStatus = ({
|
|
|
13682
13683
|
const stateBadge = () => {
|
|
13683
13684
|
if (receipt) {
|
|
13684
13685
|
const ok = !!receipt.success;
|
|
13685
|
-
return /* @__PURE__ */
|
|
13686
|
-
ok ? /* @__PURE__ */
|
|
13686
|
+
return /* @__PURE__ */ jsxs60(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
13687
|
+
ok ? /* @__PURE__ */ jsx76(CheckCircle26, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx76(AlertCircle6, { className: "h-3 w-3" }),
|
|
13687
13688
|
ok ? "Included" : "Failed"
|
|
13688
13689
|
] });
|
|
13689
13690
|
}
|
|
13690
13691
|
if (rejected) {
|
|
13691
|
-
return /* @__PURE__ */
|
|
13692
|
-
/* @__PURE__ */
|
|
13692
|
+
return /* @__PURE__ */ jsxs60(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
13693
|
+
/* @__PURE__ */ jsx76(AlertCircle6, { className: "h-3 w-3" }),
|
|
13693
13694
|
" Rejected by bundler"
|
|
13694
13695
|
] });
|
|
13695
13696
|
}
|
|
13696
13697
|
if (timedOut) {
|
|
13697
|
-
return /* @__PURE__ */
|
|
13698
|
-
/* @__PURE__ */
|
|
13698
|
+
return /* @__PURE__ */ jsxs60(Badge, { variant: "warning", className: "gap-1", children: [
|
|
13699
|
+
/* @__PURE__ */ jsx76(AlertCircle6, { className: "h-3 w-3" }),
|
|
13699
13700
|
" Timeout - may be rejected"
|
|
13700
13701
|
] });
|
|
13701
13702
|
}
|
|
13702
13703
|
if (mempool) {
|
|
13703
|
-
return /* @__PURE__ */
|
|
13704
|
-
/* @__PURE__ */
|
|
13704
|
+
return /* @__PURE__ */ jsxs60(Badge, { variant: "outline", className: "gap-1", children: [
|
|
13705
|
+
/* @__PURE__ */ jsx76(Clock2, { className: "h-3 w-3" }),
|
|
13705
13706
|
" Pending in bundler"
|
|
13706
13707
|
] });
|
|
13707
13708
|
}
|
|
13708
|
-
return /* @__PURE__ */
|
|
13709
|
-
/* @__PURE__ */
|
|
13709
|
+
return /* @__PURE__ */ jsxs60(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
13710
|
+
/* @__PURE__ */ jsx76(Clock2, { className: "h-3 w-3" }),
|
|
13710
13711
|
" Waiting"
|
|
13711
13712
|
] });
|
|
13712
13713
|
};
|
|
13713
|
-
return /* @__PURE__ */
|
|
13714
|
+
return /* @__PURE__ */ jsxs60(
|
|
13714
13715
|
"div",
|
|
13715
13716
|
{
|
|
13716
13717
|
className: cn2(
|
|
@@ -13719,20 +13720,20 @@ var UserOpStatus = ({
|
|
|
13719
13720
|
),
|
|
13720
13721
|
style: { textAlign: "left", listStyle: "none" },
|
|
13721
13722
|
children: [
|
|
13722
|
-
/* @__PURE__ */
|
|
13723
|
-
/* @__PURE__ */
|
|
13723
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex items-center justify-between mb-3", children: [
|
|
13724
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
|
|
13724
13725
|
stateBadge(),
|
|
13725
|
-
/* @__PURE__ */
|
|
13726
|
+
/* @__PURE__ */ jsx76("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
13726
13727
|
] }),
|
|
13727
|
-
/* @__PURE__ */
|
|
13728
|
-
/* @__PURE__ */
|
|
13729
|
-
/* @__PURE__ */
|
|
13728
|
+
/* @__PURE__ */ jsxs60(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
13729
|
+
/* @__PURE__ */ jsx76(RefreshCw4, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
13730
|
+
/* @__PURE__ */ jsx76("span", { className: "text-xs", children: "Refresh" })
|
|
13730
13731
|
] })
|
|
13731
13732
|
] }),
|
|
13732
|
-
/* @__PURE__ */
|
|
13733
|
-
/* @__PURE__ */
|
|
13734
|
-
/* @__PURE__ */
|
|
13735
|
-
/* @__PURE__ */
|
|
13733
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
13734
|
+
/* @__PURE__ */ jsx76("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
13735
|
+
/* @__PURE__ */ jsx76("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
13736
|
+
/* @__PURE__ */ jsx76(
|
|
13736
13737
|
Button,
|
|
13737
13738
|
{
|
|
13738
13739
|
variant: "ghost",
|
|
@@ -13744,14 +13745,14 @@ var UserOpStatus = ({
|
|
|
13744
13745
|
} catch {
|
|
13745
13746
|
}
|
|
13746
13747
|
},
|
|
13747
|
-
children: /* @__PURE__ */
|
|
13748
|
+
children: /* @__PURE__ */ jsx76(Copy5, { className: "h-3.5 w-3.5" })
|
|
13748
13749
|
}
|
|
13749
13750
|
)
|
|
13750
13751
|
] }),
|
|
13751
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */
|
|
13752
|
-
/* @__PURE__ */
|
|
13753
|
-
/* @__PURE__ */
|
|
13754
|
-
/* @__PURE__ */
|
|
13752
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
13753
|
+
/* @__PURE__ */ jsx76("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
13754
|
+
/* @__PURE__ */ jsx76("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
13755
|
+
/* @__PURE__ */ jsx76(
|
|
13755
13756
|
Button,
|
|
13756
13757
|
{
|
|
13757
13758
|
variant: "ghost",
|
|
@@ -13763,10 +13764,10 @@ var UserOpStatus = ({
|
|
|
13763
13764
|
} catch {
|
|
13764
13765
|
}
|
|
13765
13766
|
},
|
|
13766
|
-
children: /* @__PURE__ */
|
|
13767
|
+
children: /* @__PURE__ */ jsx76(Copy5, { className: "h-3.5 w-3.5" })
|
|
13767
13768
|
}
|
|
13768
13769
|
),
|
|
13769
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */
|
|
13770
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx76(
|
|
13770
13771
|
"a",
|
|
13771
13772
|
{
|
|
13772
13773
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -13774,11 +13775,11 @@ var UserOpStatus = ({
|
|
|
13774
13775
|
rel: "noreferrer noopener",
|
|
13775
13776
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
13776
13777
|
title: "Open in explorer",
|
|
13777
|
-
children: /* @__PURE__ */
|
|
13778
|
+
children: /* @__PURE__ */ jsx76(ExternalLink2, { className: "h-3.5 w-3.5" })
|
|
13778
13779
|
}
|
|
13779
13780
|
)
|
|
13780
13781
|
] }),
|
|
13781
|
-
receipt && /* @__PURE__ */
|
|
13782
|
+
receipt && /* @__PURE__ */ jsxs60("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
13782
13783
|
"Block ",
|
|
13783
13784
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
13784
13785
|
" \u2022 Gas Used",
|
|
@@ -13787,32 +13788,32 @@ var UserOpStatus = ({
|
|
|
13787
13788
|
" \u2022 Success ",
|
|
13788
13789
|
String(!!receipt.success)
|
|
13789
13790
|
] }),
|
|
13790
|
-
/* @__PURE__ */
|
|
13791
|
+
/* @__PURE__ */ jsx76("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs60("span", { className: "ml-2", children: [
|
|
13791
13792
|
"\u2022 Polling for ",
|
|
13792
13793
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
13793
13794
|
"s"
|
|
13794
13795
|
] }) }),
|
|
13795
|
-
mempool && /* @__PURE__ */
|
|
13796
|
-
/* @__PURE__ */
|
|
13796
|
+
mempool && /* @__PURE__ */ jsxs60("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
13797
|
+
/* @__PURE__ */ jsxs60("div", { children: [
|
|
13797
13798
|
"Seen by bundler at ",
|
|
13798
|
-
/* @__PURE__ */
|
|
13799
|
+
/* @__PURE__ */ jsx76(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
13799
13800
|
] }),
|
|
13800
|
-
/* @__PURE__ */
|
|
13801
|
+
/* @__PURE__ */ jsxs60("div", { children: [
|
|
13801
13802
|
"sender ",
|
|
13802
|
-
/* @__PURE__ */
|
|
13803
|
+
/* @__PURE__ */ jsx76(Address, { address: mempool.sender, chain, truncate: false })
|
|
13803
13804
|
] })
|
|
13804
13805
|
] }),
|
|
13805
|
-
error && /* @__PURE__ */
|
|
13806
|
-
/* @__PURE__ */
|
|
13806
|
+
error && /* @__PURE__ */ jsxs60("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
13807
|
+
/* @__PURE__ */ jsx76(AlertCircle6, { className: "h-4 w-4" }),
|
|
13807
13808
|
" ",
|
|
13808
13809
|
error
|
|
13809
13810
|
] }),
|
|
13810
|
-
rejected && /* @__PURE__ */
|
|
13811
|
-
/* @__PURE__ */
|
|
13811
|
+
rejected && /* @__PURE__ */ jsxs60("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
13812
|
+
/* @__PURE__ */ jsx76(AlertCircle6, { className: "h-4 w-4" }),
|
|
13812
13813
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
13813
13814
|
] }),
|
|
13814
|
-
timedOut && /* @__PURE__ */
|
|
13815
|
-
/* @__PURE__ */
|
|
13815
|
+
timedOut && /* @__PURE__ */ jsxs60("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
13816
|
+
/* @__PURE__ */ jsx76(AlertCircle6, { className: "h-4 w-4" }),
|
|
13816
13817
|
"Stopped polling after ",
|
|
13817
13818
|
Math.round(maxPollTimeMs / 1e3),
|
|
13818
13819
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -13825,7 +13826,7 @@ var UserOpStatus = ({
|
|
|
13825
13826
|
// src/internal/components/Hash.tsx
|
|
13826
13827
|
import { Copy as Copy6, ExternalLink as ExternalLink3 } from "lucide-react";
|
|
13827
13828
|
import * as React14 from "react";
|
|
13828
|
-
import { jsx as
|
|
13829
|
+
import { jsx as jsx77, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
13829
13830
|
function toExplorerUrl(kind, value, chain) {
|
|
13830
13831
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
13831
13832
|
if (!base2) return null;
|
|
@@ -13849,11 +13850,11 @@ var Hash = ({
|
|
|
13849
13850
|
const value = hash || "";
|
|
13850
13851
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
13851
13852
|
const [copied, setCopied] = React14.useState(false);
|
|
13852
|
-
if (!value) return /* @__PURE__ */
|
|
13853
|
-
return /* @__PURE__ */
|
|
13854
|
-
label && /* @__PURE__ */
|
|
13855
|
-
/* @__PURE__ */
|
|
13856
|
-
showCopy && /* @__PURE__ */
|
|
13853
|
+
if (!value) return /* @__PURE__ */ jsx77("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
13854
|
+
return /* @__PURE__ */ jsxs61("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
13855
|
+
label && /* @__PURE__ */ jsx77("span", { className: "text-sm font-medium", children: label }),
|
|
13856
|
+
/* @__PURE__ */ jsx77("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
13857
|
+
showCopy && /* @__PURE__ */ jsx77(
|
|
13857
13858
|
Button,
|
|
13858
13859
|
{
|
|
13859
13860
|
variant: "ghost",
|
|
@@ -13867,10 +13868,10 @@ var Hash = ({
|
|
|
13867
13868
|
} catch {
|
|
13868
13869
|
}
|
|
13869
13870
|
},
|
|
13870
|
-
children: /* @__PURE__ */
|
|
13871
|
+
children: /* @__PURE__ */ jsx77(Copy6, { className: "h-4 w-4" })
|
|
13871
13872
|
}
|
|
13872
13873
|
),
|
|
13873
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
13874
|
+
showExplorer && explorer && /* @__PURE__ */ jsx77(
|
|
13874
13875
|
"a",
|
|
13875
13876
|
{
|
|
13876
13877
|
href: explorer,
|
|
@@ -13878,7 +13879,7 @@ var Hash = ({
|
|
|
13878
13879
|
rel: "noreferrer noopener",
|
|
13879
13880
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
13880
13881
|
title: "Open in explorer",
|
|
13881
|
-
children: /* @__PURE__ */
|
|
13882
|
+
children: /* @__PURE__ */ jsx77(ExternalLink3, { className: "h-4 w-4" })
|
|
13882
13883
|
}
|
|
13883
13884
|
)
|
|
13884
13885
|
] });
|
|
@@ -13886,13 +13887,13 @@ var Hash = ({
|
|
|
13886
13887
|
|
|
13887
13888
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
13888
13889
|
init_base();
|
|
13889
|
-
import { useEffect as
|
|
13890
|
-
import { jsx as
|
|
13890
|
+
import { useEffect as useEffect36, useState as useState20 } from "react";
|
|
13891
|
+
import { jsx as jsx78, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
13891
13892
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
13892
|
-
const [transactions, setTransactions] =
|
|
13893
|
-
const [loading, setLoading] =
|
|
13894
|
-
const [error, setError] =
|
|
13895
|
-
|
|
13893
|
+
const [transactions, setTransactions] = useState20([]);
|
|
13894
|
+
const [loading, setLoading] = useState20(true);
|
|
13895
|
+
const [error, setError] = useState20(null);
|
|
13896
|
+
useEffect36(() => {
|
|
13896
13897
|
const fetchTransactions = async () => {
|
|
13897
13898
|
try {
|
|
13898
13899
|
setLoading(true);
|
|
@@ -13938,31 +13939,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
13938
13939
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
13939
13940
|
};
|
|
13940
13941
|
if (loading) {
|
|
13941
|
-
return /* @__PURE__ */
|
|
13942
|
-
/* @__PURE__ */
|
|
13943
|
-
/* @__PURE__ */
|
|
13942
|
+
return /* @__PURE__ */ jsxs62("div", { className: "p-4 text-center", children: [
|
|
13943
|
+
/* @__PURE__ */ jsx78("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
13944
|
+
/* @__PURE__ */ jsx78("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
13944
13945
|
] });
|
|
13945
13946
|
}
|
|
13946
13947
|
if (error) {
|
|
13947
|
-
return /* @__PURE__ */
|
|
13948
|
-
/* @__PURE__ */
|
|
13949
|
-
/* @__PURE__ */
|
|
13948
|
+
return /* @__PURE__ */ jsxs62("div", { className: "p-4 text-center", children: [
|
|
13949
|
+
/* @__PURE__ */ jsx78("p", { className: "text-red-600 text-sm", children: error }),
|
|
13950
|
+
/* @__PURE__ */ jsx78("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
13950
13951
|
] });
|
|
13951
13952
|
}
|
|
13952
13953
|
if (transactions.length === 0) {
|
|
13953
|
-
return /* @__PURE__ */
|
|
13954
|
+
return /* @__PURE__ */ jsx78("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx78("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
13954
13955
|
}
|
|
13955
|
-
return /* @__PURE__ */
|
|
13956
|
+
return /* @__PURE__ */ jsx78("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx78("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs62(
|
|
13956
13957
|
"div",
|
|
13957
13958
|
{
|
|
13958
13959
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
13959
13960
|
onClick: () => openTransaction(tx.hash),
|
|
13960
13961
|
children: [
|
|
13961
|
-
/* @__PURE__ */
|
|
13962
|
-
/* @__PURE__ */
|
|
13963
|
-
/* @__PURE__ */
|
|
13964
|
-
/* @__PURE__ */
|
|
13965
|
-
/* @__PURE__ */
|
|
13962
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex justify-between items-start mb-2", children: [
|
|
13963
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex-1", children: [
|
|
13964
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
13965
|
+
/* @__PURE__ */ jsx78("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
13966
|
+
/* @__PURE__ */ jsx78(
|
|
13966
13967
|
"span",
|
|
13967
13968
|
{
|
|
13968
13969
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -13970,40 +13971,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
13970
13971
|
}
|
|
13971
13972
|
)
|
|
13972
13973
|
] }),
|
|
13973
|
-
/* @__PURE__ */
|
|
13974
|
-
/* @__PURE__ */
|
|
13975
|
-
/* @__PURE__ */
|
|
13976
|
-
/* @__PURE__ */
|
|
13974
|
+
/* @__PURE__ */ jsxs62("div", { className: "text-sm space-y-1", children: [
|
|
13975
|
+
/* @__PURE__ */ jsxs62("div", { children: [
|
|
13976
|
+
/* @__PURE__ */ jsx78("span", { className: "text-gray-600", children: "From:" }),
|
|
13977
|
+
/* @__PURE__ */ jsxs62("span", { className: "font-mono ml-1", children: [
|
|
13977
13978
|
formatAddress3(tx.from.hash),
|
|
13978
|
-
tx.from.is_contract && /* @__PURE__ */
|
|
13979
|
+
tx.from.is_contract && /* @__PURE__ */ jsx78("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
13979
13980
|
] })
|
|
13980
13981
|
] }),
|
|
13981
|
-
/* @__PURE__ */
|
|
13982
|
-
/* @__PURE__ */
|
|
13983
|
-
/* @__PURE__ */
|
|
13982
|
+
/* @__PURE__ */ jsxs62("div", { children: [
|
|
13983
|
+
/* @__PURE__ */ jsx78("span", { className: "text-gray-600", children: "To:" }),
|
|
13984
|
+
/* @__PURE__ */ jsxs62("span", { className: "font-mono ml-1", children: [
|
|
13984
13985
|
formatAddress3(tx.to.hash),
|
|
13985
|
-
tx.to.is_contract && /* @__PURE__ */
|
|
13986
|
+
tx.to.is_contract && /* @__PURE__ */ jsx78("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
13986
13987
|
] })
|
|
13987
13988
|
] }),
|
|
13988
|
-
/* @__PURE__ */
|
|
13989
|
-
/* @__PURE__ */
|
|
13990
|
-
/* @__PURE__ */
|
|
13989
|
+
/* @__PURE__ */ jsxs62("div", { children: [
|
|
13990
|
+
/* @__PURE__ */ jsx78("span", { className: "text-gray-600", children: "Value:" }),
|
|
13991
|
+
/* @__PURE__ */ jsxs62("span", { className: "font-semibold ml-1", children: [
|
|
13991
13992
|
formatValue3(tx.value),
|
|
13992
13993
|
" LUMIA"
|
|
13993
13994
|
] })
|
|
13994
13995
|
] })
|
|
13995
13996
|
] })
|
|
13996
13997
|
] }),
|
|
13997
|
-
/* @__PURE__ */
|
|
13998
|
-
/* @__PURE__ */
|
|
13999
|
-
/* @__PURE__ */
|
|
13998
|
+
/* @__PURE__ */ jsxs62("div", { className: "text-right text-xs text-gray-500", children: [
|
|
13999
|
+
/* @__PURE__ */ jsx78("div", { children: formatDate3(tx.timestamp) }),
|
|
14000
|
+
/* @__PURE__ */ jsxs62("div", { className: "mt-1", children: [
|
|
14000
14001
|
"Gas: ",
|
|
14001
14002
|
parseInt(tx.gas_used).toLocaleString()
|
|
14002
14003
|
] }),
|
|
14003
|
-
tx.method && /* @__PURE__ */
|
|
14004
|
+
tx.method && /* @__PURE__ */ jsx78("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
14004
14005
|
] })
|
|
14005
14006
|
] }),
|
|
14006
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */
|
|
14007
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ jsx78("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx78("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
14007
14008
|
]
|
|
14008
14009
|
},
|
|
14009
14010
|
tx.hash
|