@lumiapassport/ui-kit 1.14.21 → 1.14.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +457 -403
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +462 -408
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4439,17 +4439,17 @@ __export(index_exports, {
|
|
|
4439
4439
|
module.exports = __toCommonJS(index_exports);
|
|
4440
4440
|
|
|
4441
4441
|
// src/styles/built.css
|
|
4442
|
-
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-1{margin-left:-.25rem;margin-right:-.25rem}.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-1{margin-top:.25rem;margin-bottom:.25rem}.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-3{width:.75rem;height:.75rem}.lumia-scope .size-3\\.5{width:.875rem;height:.875rem}.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-\\[48px\\]{height:48px}.lumia-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.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-\\[40px\\]{width:40px}.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 .min-w-\\[8rem\\]{min-width:8rem}.lumia-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.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-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.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 .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lumia-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lumia-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lumia-scope .grid-cols-8{grid-template-columns:repeat(8,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-x-hidden{overflow-x:hidden}.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-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-1{padding-left:.25rem;padding-right:.25rem}.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-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.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 .pl-2{padding-left:.5rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pr-8{padding-right:2rem}.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-\\[14px\\]{font-size:14px}.lumia-scope .text-\\[16px\\]{font-size:16px}.lumia-scope .text-\\[8px\\]{font-size:8px}.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-\\[8px\\]{line-height:8px}.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-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-2{text-underline-offset:2px}.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-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.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-sm,.lumia-scope .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;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,#ebebeb);--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%,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.6));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.6));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.4));--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,.1));--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!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.lumia-scope input,.lumia-scope textarea{font-size:16px!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 20px 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;overflow-x:hidden;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 div[data-radix-popper-content-wrapper]{z-index:10000!important}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:font-mono::file-selector-button{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .file\\:text-\\[10px\\]::file-selector-button{font-size:10px}.lumia-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.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-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\\:bg-\\[var\\(--l-pass-secondary\\)\\]:hover:disabled{background-color:var(--l-pass-secondary)}.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-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.lumia-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.lumia-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{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 .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{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 .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.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)}.lumia-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--l-pass-gap\\)\\][data-slot=select-value]>*){gap:var(--l-pass-gap)}@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\\:not\\(\\[class\\*\\=\\\'size-\\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4442
|
+
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-1{margin-left:-.25rem;margin-right:-.25rem}.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-1{margin-top:.25rem;margin-bottom:.25rem}.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-3{width:.75rem;height:.75rem}.lumia-scope .size-3\\.5{width:.875rem;height:.875rem}.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-7{height:1.75rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-\\[48px\\]{height:48px}.lumia-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.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-\\[40px\\]{width:40px}.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-5{min-width:1.25rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[8rem\\]{min-width:8rem}.lumia-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.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-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.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 .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lumia-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lumia-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lumia-scope .grid-cols-8{grid-template-columns:repeat(8,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-x-hidden{overflow-x:hidden}.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-fg-inverted\\)\\]{background-color:var(--l-pass-fg-inverted)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-gap\\)\\]{padding:var(--l-pass-gap)}.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-1{padding-left:.25rem;padding-right:.25rem}.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-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.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 .pl-2{padding-left:.5rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pr-8{padding-right:2rem}.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-\\[14px\\]{font-size:14px}.lumia-scope .text-\\[16px\\]{font-size:16px}.lumia-scope .text-\\[8px\\]{font-size:8px}.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-\\[8px\\]{line-height:8px}.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-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-2{text-underline-offset:2px}.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-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.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-sm,.lumia-scope .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;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,#ebebeb);--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%,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.6));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.6));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.4));--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,.1));--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!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.lumia-scope input,.lumia-scope textarea{font-size:16px!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 20px 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;overflow-x:hidden;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 div[data-radix-popper-content-wrapper]{z-index:10000!important}.lumia-scope .file\\:mr-\\[var\\(--l-pass-gap\\)\\]::file-selector-button{margin-right:var(--l-pass-gap)}.lumia-scope .file\\:h-12::file-selector-button{height:3rem}.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-\\[16px\\]::file-selector-button{font-size:16px}.lumia-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.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-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\\:bg-\\[var\\(--l-pass-secondary\\)\\]:hover:disabled{background-color:var(--l-pass-secondary)}.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-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.lumia-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.lumia-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{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 .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{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 .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.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)}.lumia-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--l-pass-gap\\)\\][data-slot=select-value]>*){gap:var(--l-pass-gap)}@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\\:not\\(\\[class\\*\\=\\\'size-\\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4443
4443
|
|
|
4444
4444
|
// src/context/LumiaPassportContext.tsx
|
|
4445
4445
|
var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
|
|
4446
4446
|
var import_lodash_es4 = require("lodash-es");
|
|
4447
|
-
var
|
|
4447
|
+
var import_react60 = require("react");
|
|
4448
4448
|
init_lumiaPassport();
|
|
4449
4449
|
init_iframe_manager();
|
|
4450
4450
|
|
|
4451
4451
|
// src/context/LumiaPassportSessionContext.tsx
|
|
4452
|
-
var
|
|
4452
|
+
var import_react59 = require("react");
|
|
4453
4453
|
var import_zustand6 = require("zustand");
|
|
4454
4454
|
|
|
4455
4455
|
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
@@ -4627,7 +4627,7 @@ function BalanceFeedProvider() {
|
|
|
4627
4627
|
|
|
4628
4628
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4629
4629
|
var import_framer_motion3 = require("framer-motion");
|
|
4630
|
-
var
|
|
4630
|
+
var import_react56 = require("react");
|
|
4631
4631
|
|
|
4632
4632
|
// src/internal/components/Footer/Footer.tsx
|
|
4633
4633
|
var import_react_query2 = require("@tanstack/react-query");
|
|
@@ -5401,7 +5401,7 @@ function Header() {
|
|
|
5401
5401
|
// package.json
|
|
5402
5402
|
var package_default = {
|
|
5403
5403
|
name: "@lumiapassport/ui-kit",
|
|
5404
|
-
version: "1.14.
|
|
5404
|
+
version: "1.14.22",
|
|
5405
5405
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
5406
5406
|
type: "module",
|
|
5407
5407
|
main: "./dist/index.cjs",
|
|
@@ -5949,7 +5949,7 @@ function useDetectMaxScrollHeight() {
|
|
|
5949
5949
|
}
|
|
5950
5950
|
|
|
5951
5951
|
// src/internal/hooks/usePageMapper.tsx
|
|
5952
|
-
var
|
|
5952
|
+
var import_react53 = require("react");
|
|
5953
5953
|
|
|
5954
5954
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
5955
5955
|
var import_framer_motion = require("framer-motion");
|
|
@@ -8441,8 +8441,8 @@ function BuyMenu() {
|
|
|
8441
8441
|
|
|
8442
8442
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8443
8443
|
var import_react_query17 = require("@tanstack/react-query");
|
|
8444
|
-
var
|
|
8445
|
-
var
|
|
8444
|
+
var import_lucide_react26 = require("lucide-react");
|
|
8445
|
+
var import_react35 = require("react");
|
|
8446
8446
|
init_vaultClient();
|
|
8447
8447
|
|
|
8448
8448
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
@@ -8977,39 +8977,12 @@ function MethodSelector(props) {
|
|
|
8977
8977
|
}
|
|
8978
8978
|
|
|
8979
8979
|
// src/internal/components/KeyshareRestoreMenu/components/NoBackupFound.tsx
|
|
8980
|
-
var import_lucide_react22 = require("lucide-react");
|
|
8981
|
-
|
|
8982
|
-
// src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
|
|
8983
8980
|
var import_lucide_react21 = require("lucide-react");
|
|
8984
|
-
var import_react31 = require("react");
|
|
8985
8981
|
|
|
8986
|
-
// src/internal/components/
|
|
8987
|
-
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
8982
|
+
// src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
|
|
8988
8983
|
var import_lucide_react20 = require("lucide-react");
|
|
8984
|
+
var import_react31 = require("react");
|
|
8989
8985
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
8990
|
-
function Checkbox({ className, ...props }) {
|
|
8991
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8992
|
-
CheckboxPrimitive.Root,
|
|
8993
|
-
{
|
|
8994
|
-
"data-slot": "checkbox",
|
|
8995
|
-
className: cn(
|
|
8996
|
-
"cursor-pointer peer size-5 shrink-0 rounded-[5px] outline-none",
|
|
8997
|
-
"border border-[var(--l-pass-bd)] data-[state=checked]:border-[var(--l-pass-bd-intense)] aria-invalid:border-[var(--l-pass-error)]",
|
|
8998
|
-
"bg-[var(--l-pass-secondary)] data-[state=checked]:bg-[var(--l-pass-secondary)]",
|
|
8999
|
-
"data-[state=checked]:text-[var(--l-pass-fg)]",
|
|
9000
|
-
"aria-invalid:ring-[var(--l-pass-error)]",
|
|
9001
|
-
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[2px]",
|
|
9002
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
9003
|
-
className
|
|
9004
|
-
),
|
|
9005
|
-
...props,
|
|
9006
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center transition-none", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.CheckIcon, { className: "w-4 h-4 text-[var(--l-pass-fg)]" }) })
|
|
9007
|
-
}
|
|
9008
|
-
);
|
|
9009
|
-
}
|
|
9010
|
-
|
|
9011
|
-
// src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
|
|
9012
|
-
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
9013
8986
|
function PasswordPasskey(props) {
|
|
9014
8987
|
const {
|
|
9015
8988
|
mode = "restore",
|
|
@@ -9021,10 +8994,10 @@ function PasswordPasskey(props) {
|
|
|
9021
8994
|
actionHandler
|
|
9022
8995
|
} = props;
|
|
9023
8996
|
const actionRef = (0, import_react31.useRef)(null);
|
|
9024
|
-
const { showPassword, restorePassword, usePasskey, error,
|
|
9025
|
-
return /* @__PURE__ */ (0,
|
|
9026
|
-
!usePasskey ? /* @__PURE__ */ (0,
|
|
9027
|
-
/* @__PURE__ */ (0,
|
|
8997
|
+
const { showPassword, restorePassword, usePasskey, error, setRestorePassword, setShowPassword } = useRestoreStore();
|
|
8998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8999
|
+
!usePasskey ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
9000
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9028
9001
|
Input,
|
|
9029
9002
|
{
|
|
9030
9003
|
autoComplete: "off",
|
|
@@ -9040,7 +9013,7 @@ function PasswordPasskey(props) {
|
|
|
9040
9013
|
onKeyDown: (e) => {
|
|
9041
9014
|
if (e.key === "Enter" && !isLoading && restorePassword) actionRef.current?.click();
|
|
9042
9015
|
},
|
|
9043
|
-
element: /* @__PURE__ */ (0,
|
|
9016
|
+
element: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9044
9017
|
Button,
|
|
9045
9018
|
{
|
|
9046
9019
|
variant: "ghost",
|
|
@@ -9049,12 +9022,12 @@ function PasswordPasskey(props) {
|
|
|
9049
9022
|
title: "Toggle Password Visibility",
|
|
9050
9023
|
disabled: isLoading || disabled,
|
|
9051
9024
|
onClick: () => setShowPassword(!showPassword),
|
|
9052
|
-
children: showPassword ? /* @__PURE__ */ (0,
|
|
9025
|
+
children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.Eye, { className: "h-4 w-4" })
|
|
9053
9026
|
}
|
|
9054
9027
|
)
|
|
9055
9028
|
}
|
|
9056
9029
|
),
|
|
9057
|
-
/* @__PURE__ */ (0,
|
|
9030
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9058
9031
|
Button,
|
|
9059
9032
|
{
|
|
9060
9033
|
ref: actionRef,
|
|
@@ -9064,10 +9037,10 @@ function PasswordPasskey(props) {
|
|
|
9064
9037
|
title: actionCaption,
|
|
9065
9038
|
disabled: isLoading || disabled || error?.includes("Invalid backup file") || !usePasskey && !restorePassword,
|
|
9066
9039
|
className: "w-full w-12 h-12 flex-shrink-0 rounded-[var(--l-pass-el-bdrs)]",
|
|
9067
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
9040
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ActionIcon, { className: "h-4 w-4" })
|
|
9068
9041
|
}
|
|
9069
9042
|
)
|
|
9070
|
-
] }) : /* @__PURE__ */ (0,
|
|
9043
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
9071
9044
|
Button,
|
|
9072
9045
|
{
|
|
9073
9046
|
ref: actionRef,
|
|
@@ -9078,54 +9051,35 @@ function PasswordPasskey(props) {
|
|
|
9078
9051
|
disabled: isLoading || disabled || !!error || !usePasskey && !restorePassword,
|
|
9079
9052
|
className: "w-full",
|
|
9080
9053
|
children: [
|
|
9081
|
-
isLoading ? /* @__PURE__ */ (0,
|
|
9082
|
-
!isLoading && /* @__PURE__ */ (0,
|
|
9054
|
+
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ActionIcon, { className: "h-4 w-4" }),
|
|
9055
|
+
!isLoading && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: actionCaption })
|
|
9083
9056
|
]
|
|
9084
9057
|
}
|
|
9085
9058
|
),
|
|
9086
|
-
!isEncryptionMethod && /* @__PURE__ */ (0,
|
|
9087
|
-
|
|
9088
|
-
|
|
9089
|
-
/* @__PURE__ */ (0,
|
|
9090
|
-
|
|
9091
|
-
|
|
9092
|
-
/* @__PURE__ */ (0,
|
|
9093
|
-
"
|
|
9094
|
-
|
|
9095
|
-
"
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
className: "inline font-bold underline underline-offset-2",
|
|
9101
|
-
children: "Learn more about Google Passkey"
|
|
9102
|
-
}
|
|
9103
|
-
)
|
|
9104
|
-
] })
|
|
9105
|
-
] })
|
|
9106
|
-
] }),
|
|
9107
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9108
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
9109
|
-
Checkbox,
|
|
9110
|
-
{
|
|
9111
|
-
id: "use-backup-password-or-passkey",
|
|
9112
|
-
name: "use-backup-password-checkbox",
|
|
9113
|
-
checked: usePasskey,
|
|
9114
|
-
disabled: isLoading || disabled || !!error,
|
|
9115
|
-
onCheckedChange: (checked) => {
|
|
9116
|
-
if (!!checked) setRestorePassword("");
|
|
9117
|
-
setUsePasskey(!!checked);
|
|
9059
|
+
!isEncryptionMethod && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-[10px]", children: mode === "backup" && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9060
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.Info, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9061
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "text-[var(--l-pass-fg-muted)] block flex-1", children: [
|
|
9062
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "block mb-1", children: "Your Backup must be encrypted with a password or a passkey, so only you can decrypt it no matter where backup is stored." }),
|
|
9063
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { children: [
|
|
9064
|
+
" Strong passwords are recommended. Passkeys are a password-free alternative. ",
|
|
9065
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9066
|
+
"a",
|
|
9067
|
+
{
|
|
9068
|
+
target: "_blank",
|
|
9069
|
+
rel: "noopener noreferrer",
|
|
9070
|
+
href: "https://safety.google/safety/authentication/passkey/",
|
|
9071
|
+
className: "inline font-bold underline underline-offset-2 text-[var(--l-pass-fg)] hover:text-[var(--l-pass-fg-h)] active:text-[var(--l-pass-fg-a)]",
|
|
9072
|
+
children: "(Learn more about Google Passkey)"
|
|
9118
9073
|
}
|
|
9119
|
-
|
|
9120
|
-
)
|
|
9121
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("label", { htmlFor: "use-backup-password-or-passkey", className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Use Passkey to encrypt your keyshare backup" })
|
|
9074
|
+
)
|
|
9075
|
+
] })
|
|
9122
9076
|
] })
|
|
9123
|
-
] })
|
|
9077
|
+
] }) })
|
|
9124
9078
|
] });
|
|
9125
9079
|
}
|
|
9126
9080
|
|
|
9127
9081
|
// src/internal/components/KeyshareRestoreMenu/components/NoBackupFound.tsx
|
|
9128
|
-
var
|
|
9082
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
9129
9083
|
function NoBackupFound(props) {
|
|
9130
9084
|
const { isLoading, restoreFromFile } = props;
|
|
9131
9085
|
const restoreFile = useRestoreStore((st) => st.restoreFile);
|
|
@@ -9134,38 +9088,33 @@ function NoBackupFound(props) {
|
|
|
9134
9088
|
const setRestoreFile = useRestoreStore((st) => st.setRestoreFile);
|
|
9135
9089
|
const setError = useRestoreStore((st) => st.setError);
|
|
9136
9090
|
useValidateFileBackup();
|
|
9137
|
-
return /* @__PURE__ */ (0,
|
|
9138
|
-
|
|
9139
|
-
/* @__PURE__ */ (0,
|
|
9140
|
-
/* @__PURE__ */ (0,
|
|
9141
|
-
|
|
9142
|
-
|
|
9143
|
-
|
|
9144
|
-
|
|
9145
|
-
|
|
9091
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
|
|
9092
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
|
|
9093
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react21.User, { className: "w-6 h-6" }),
|
|
9094
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "font-bold text-xl leading-6", children: "Account Recovery" })
|
|
9095
|
+
] }),
|
|
9096
|
+
!restoreFile && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
|
|
9097
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react21.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
9098
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
|
|
9099
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "block w-full text-xl leading-5 font-bold", children: "No Backup Found" }),
|
|
9100
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("span", { className: "block w-full text-xs", children: [
|
|
9101
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "block mb-1", children: "This device doesn't have access to your wallet keyshare, and no backup was found." }),
|
|
9102
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "block w-full", children: "If you're using a different device, please return to the one where you created your account to create a backup, then restore access on this device." })
|
|
9146
9103
|
] })
|
|
9147
9104
|
] })
|
|
9148
9105
|
] }),
|
|
9149
|
-
restoreFile
|
|
9150
|
-
/* @__PURE__ */ (0,
|
|
9151
|
-
/* @__PURE__ */ (0,
|
|
9152
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
9153
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
9154
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4", children: "Account Recovery" }),
|
|
9155
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
9106
|
+
!restoreFile && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Highlight, { type: "info", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9107
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react21.Upload, { className: "h-4 w-4 flex-0" }),
|
|
9108
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "block w-full text-xs", children: "Upload a backup file if you have one" })
|
|
9156
9109
|
] }),
|
|
9157
|
-
|
|
9158
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react22.Upload, { className: "h-4 w-4 flex-0" }),
|
|
9159
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "block w-full text-xs", children: "Upload a backup file if you have one" })
|
|
9160
|
-
] }),
|
|
9161
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9110
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
9162
9111
|
"label",
|
|
9163
9112
|
{
|
|
9164
9113
|
className: cn(
|
|
9165
|
-
"block w-full
|
|
9166
|
-
"p-[var(--l-pass-
|
|
9114
|
+
"block w-full flex items-center justify-center cursor-pointer",
|
|
9115
|
+
"p-[var(--l-pass-gap)] bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]"
|
|
9167
9116
|
),
|
|
9168
|
-
children: /* @__PURE__ */ (0,
|
|
9117
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
9169
9118
|
"input",
|
|
9170
9119
|
{
|
|
9171
9120
|
type: "file",
|
|
@@ -9177,23 +9126,23 @@ function NoBackupFound(props) {
|
|
|
9177
9126
|
className: cn(
|
|
9178
9127
|
"file:cursor-pointer",
|
|
9179
9128
|
"transition-colors duration-200 ease-in-out",
|
|
9180
|
-
"block w-
|
|
9181
|
-
"file:
|
|
9129
|
+
"block w-full font-medium font-mono",
|
|
9130
|
+
"file:h-12 file:text-[16px] file:bg-[var(--l-pass-primary)] file:text-[var(--l-pass-fg-inverted)]",
|
|
9182
9131
|
"file:hover:opacity-90 file:active:opacity-80",
|
|
9183
|
-
"file:mr-[var(--l-pass-
|
|
9132
|
+
"file:mr-[var(--l-pass-gap)] file:px-[var(--l-pass-pd)] file:rounded-[var(--l-pass-el-bdrs)] file:border-0"
|
|
9184
9133
|
)
|
|
9185
9134
|
}
|
|
9186
9135
|
)
|
|
9187
9136
|
}
|
|
9188
9137
|
),
|
|
9189
|
-
restoreFile && /* @__PURE__ */ (0,
|
|
9138
|
+
restoreFile && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
9190
9139
|
PasswordPasskey,
|
|
9191
9140
|
{
|
|
9192
9141
|
mode: "restore",
|
|
9193
9142
|
isEncryptionMethod: true,
|
|
9194
9143
|
isLoading,
|
|
9195
9144
|
actionCaption: `Decrypt ${restoreFile ? restoreFile.name : "Backup File"} by ${usePasskey ? "Passkey" : "Password"}`,
|
|
9196
|
-
actionIcon:
|
|
9145
|
+
actionIcon: import_lucide_react21.FileUp,
|
|
9197
9146
|
actionHandler: () => restoreFromFile()
|
|
9198
9147
|
}
|
|
9199
9148
|
)
|
|
@@ -9201,40 +9150,128 @@ function NoBackupFound(props) {
|
|
|
9201
9150
|
}
|
|
9202
9151
|
|
|
9203
9152
|
// src/internal/components/KeyshareRestoreMenu/methods/File.tsx
|
|
9204
|
-
var
|
|
9153
|
+
var import_lucide_react22 = require("lucide-react");
|
|
9154
|
+
|
|
9155
|
+
// src/internal/components/ui/switch.tsx
|
|
9156
|
+
var import_react32 = require("react");
|
|
9157
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
9158
|
+
var Switch = (0, import_react32.forwardRef)((props, ref) => {
|
|
9159
|
+
const { className, labels, ...inputProps } = props;
|
|
9160
|
+
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
9161
|
+
const [labelW, setLabelW] = (0, import_react32.useState)(0);
|
|
9162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9163
|
+
"div",
|
|
9164
|
+
{
|
|
9165
|
+
role: "switch",
|
|
9166
|
+
"aria-checked": inputProps.checked,
|
|
9167
|
+
className: cn(
|
|
9168
|
+
"block rounded-full w-fit h-7 p-1 outline-none flex-none",
|
|
9169
|
+
inputProps.checked ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-primary)]",
|
|
9170
|
+
className
|
|
9171
|
+
),
|
|
9172
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
9173
|
+
"label",
|
|
9174
|
+
{
|
|
9175
|
+
className: "relative inline-block h-5 outline-none",
|
|
9176
|
+
style: {
|
|
9177
|
+
width: `calc(20px + ${labelW}px)`,
|
|
9178
|
+
transition: "width 200ms ease",
|
|
9179
|
+
cursor: inputProps.disabled ? "not-allowed" : "pointer"
|
|
9180
|
+
},
|
|
9181
|
+
children: [
|
|
9182
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("input", { type: "checkbox", className: "hidden sr-only peer outline-none", ref, ...inputProps }),
|
|
9183
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9184
|
+
"span",
|
|
9185
|
+
{
|
|
9186
|
+
ref: (inst) => {
|
|
9187
|
+
if (inst) setLabelW(inst.clientWidth);
|
|
9188
|
+
},
|
|
9189
|
+
style: {
|
|
9190
|
+
left: inputProps.checked ? "0px" : "20px",
|
|
9191
|
+
color: inputProps.checked ? colorMode === "dark" ? "var(--l-pass-fg-inverted)" : "var(--l-pass-fg)" : "var(--l-pass-fg-inverted)",
|
|
9192
|
+
transition: "left 200ms ease"
|
|
9193
|
+
},
|
|
9194
|
+
className: "absolute top-0 px-2 text-xs leading-5 font-semibold min-w-5 select-none",
|
|
9195
|
+
children: inputProps.checked ? labels?.checked : labels?.unchecked
|
|
9196
|
+
}
|
|
9197
|
+
),
|
|
9198
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9199
|
+
"span",
|
|
9200
|
+
{
|
|
9201
|
+
style: {
|
|
9202
|
+
left: inputProps.checked ? `${labelW}px` : "0px",
|
|
9203
|
+
transition: "left 200ms ease"
|
|
9204
|
+
},
|
|
9205
|
+
className: "absolute top-0 w-5 h-5 bg-[var(--l-pass-fg-inverted)] rounded-full"
|
|
9206
|
+
}
|
|
9207
|
+
)
|
|
9208
|
+
]
|
|
9209
|
+
}
|
|
9210
|
+
)
|
|
9211
|
+
}
|
|
9212
|
+
);
|
|
9213
|
+
});
|
|
9214
|
+
Switch.displayName = "Switch";
|
|
9215
|
+
|
|
9216
|
+
// src/internal/components/KeyshareRestoreMenu/methods/File.tsx
|
|
9205
9217
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
9206
9218
|
function File2(props) {
|
|
9207
9219
|
const { isLoading, mode = "restore", fileHandler } = props;
|
|
9208
|
-
const {
|
|
9220
|
+
const {
|
|
9221
|
+
restoreFile,
|
|
9222
|
+
error,
|
|
9223
|
+
usePasskey,
|
|
9224
|
+
setRestorePassword,
|
|
9225
|
+
setMethod,
|
|
9226
|
+
setRestoreFile,
|
|
9227
|
+
setUsePasskey,
|
|
9228
|
+
setError,
|
|
9229
|
+
setSuccess
|
|
9230
|
+
} = useRestoreStore();
|
|
9209
9231
|
useValidateFileBackup();
|
|
9210
9232
|
const actionText = mode === "backup" ? "Download" : "Restore with";
|
|
9211
9233
|
const isPasswordPasskey = mode === "restore" && !!restoreFile || mode === "backup";
|
|
9212
9234
|
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
9213
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex items-center
|
|
9214
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.
|
|
9215
|
-
|
|
9235
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
9236
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9237
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
9238
|
+
Button,
|
|
9239
|
+
{
|
|
9240
|
+
variant: "ghost",
|
|
9241
|
+
size: "icon",
|
|
9242
|
+
title: "Back",
|
|
9243
|
+
onClick: () => {
|
|
9244
|
+
setRestoreFile(null);
|
|
9245
|
+
setError(null);
|
|
9246
|
+
setSuccess(null);
|
|
9247
|
+
setUsePasskey(false);
|
|
9248
|
+
setMethod(null);
|
|
9249
|
+
},
|
|
9250
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react22.ArrowLeft, { className: "h-4 w-4" })
|
|
9251
|
+
}
|
|
9252
|
+
),
|
|
9253
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-xl font-semibold", children: `${mode === "restore" ? "Restore with" : ""} File ${mode === "restore" ? "by" : "Backup by"}`.trim() })
|
|
9254
|
+
] }),
|
|
9255
|
+
mode !== "restore" && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
9256
|
+
Switch,
|
|
9216
9257
|
{
|
|
9217
|
-
|
|
9218
|
-
|
|
9219
|
-
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
setMethod(null);
|
|
9226
|
-
},
|
|
9227
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react23.ArrowLeft, { className: "h-4 w-4" })
|
|
9258
|
+
name: "password-passkey-toggle",
|
|
9259
|
+
labels: { checked: "Password", unchecked: "Passkey" },
|
|
9260
|
+
disabled: isLoading || !!error,
|
|
9261
|
+
checked: !usePasskey,
|
|
9262
|
+
onChange: (e) => {
|
|
9263
|
+
if (!!e.target.checked) setRestorePassword("");
|
|
9264
|
+
setUsePasskey(!e.target.checked);
|
|
9265
|
+
}
|
|
9228
9266
|
}
|
|
9229
|
-
)
|
|
9230
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-xl font-semibold", children: `${mode === "restore" ? "Restore with" : "Create"} File ${mode === "restore" ? "" : "Backup"}`.trim() })
|
|
9267
|
+
)
|
|
9231
9268
|
] }),
|
|
9232
9269
|
mode === "restore" && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
9233
9270
|
"label",
|
|
9234
9271
|
{
|
|
9235
9272
|
className: cn(
|
|
9236
|
-
"block w-full
|
|
9237
|
-
"p-[var(--l-pass-
|
|
9273
|
+
"block w-full flex items-center justify-center cursor-pointer",
|
|
9274
|
+
"p-[var(--l-pass-gap)] bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]"
|
|
9238
9275
|
),
|
|
9239
9276
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
9240
9277
|
"input",
|
|
@@ -9248,9 +9285,9 @@ function File2(props) {
|
|
|
9248
9285
|
className: cn(
|
|
9249
9286
|
"file:cursor-pointer",
|
|
9250
9287
|
"transition-colors duration-200 ease-in-out",
|
|
9251
|
-
"block w-
|
|
9288
|
+
"block w-full file:h-12 text-xs file:bg-[var(--l-pass-primary)] file:text-[var(--l-pass-fg-inverted)]",
|
|
9252
9289
|
"file:hover:opacity-90 file:active:opacity-80",
|
|
9253
|
-
"file:mr-[var(--l-pass-
|
|
9290
|
+
"file:mr-[var(--l-pass-gap)] file:px-[var(--l-pass-pd)] file:rounded-[var(--l-pass-el-bdrs)] file:border-0 text-xs font-medium"
|
|
9254
9291
|
)
|
|
9255
9292
|
}
|
|
9256
9293
|
)
|
|
@@ -9263,7 +9300,7 @@ function File2(props) {
|
|
|
9263
9300
|
isLoading,
|
|
9264
9301
|
isEncryptionMethod: mode === "restore",
|
|
9265
9302
|
actionCaption: `${actionText} ${restoreFile ? restoreFile.name : "Backup File"}`,
|
|
9266
|
-
actionIcon: mode === "restore" ?
|
|
9303
|
+
actionIcon: mode === "restore" ? import_lucide_react22.FileUp : import_lucide_react22.FileDown,
|
|
9267
9304
|
actionHandler: () => fileHandler(),
|
|
9268
9305
|
disabled: !!isLoading || mode === "restore" && !restoreFile
|
|
9269
9306
|
}
|
|
@@ -9274,54 +9311,70 @@ function File2(props) {
|
|
|
9274
9311
|
// src/internal/components/KeyshareRestoreMenu/methods/Server.tsx
|
|
9275
9312
|
var import_react_query15 = require("@tanstack/react-query");
|
|
9276
9313
|
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
9277
|
-
var
|
|
9278
|
-
var
|
|
9314
|
+
var import_lucide_react23 = require("lucide-react");
|
|
9315
|
+
var import_react33 = require("react");
|
|
9279
9316
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
9280
9317
|
function Server(props) {
|
|
9281
9318
|
const { isLoading, mode = "restore", serverHandler } = props;
|
|
9282
9319
|
const qc = (0, import_react_query15.useQueryClient)();
|
|
9283
9320
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9284
|
-
const { usePasskey, setUsePasskey, setRestorePassword, setShowPassword, setMethod, setError, setSuccess } = useRestoreStore();
|
|
9321
|
+
const { usePasskey, error, setUsePasskey, setRestorePassword, setShowPassword, setMethod, setError, setSuccess } = useRestoreStore();
|
|
9285
9322
|
const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
|
|
9286
|
-
(0,
|
|
9323
|
+
(0, import_react33.useEffect)(() => {
|
|
9287
9324
|
if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
|
|
9288
9325
|
setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
|
|
9289
9326
|
}, [mode, serverRecoveryStatus, setUsePasskey]);
|
|
9327
|
+
const isEncryptionMethod = mode === "restore" && !!serverRecoveryStatus?.created?.encryptionMethod;
|
|
9290
9328
|
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
9291
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center
|
|
9292
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.
|
|
9293
|
-
|
|
9329
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
9330
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9331
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9332
|
+
Button,
|
|
9333
|
+
{
|
|
9334
|
+
variant: "ghost",
|
|
9335
|
+
size: "icon",
|
|
9336
|
+
title: "Back",
|
|
9337
|
+
onClick: () => {
|
|
9338
|
+
setShowPassword(false);
|
|
9339
|
+
setUsePasskey(false);
|
|
9340
|
+
setRestorePassword("");
|
|
9341
|
+
setUsePasskey(false);
|
|
9342
|
+
setError(null);
|
|
9343
|
+
setSuccess(null);
|
|
9344
|
+
setMethod(null);
|
|
9345
|
+
},
|
|
9346
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react23.ArrowLeft, { className: "h-4 w-4" })
|
|
9347
|
+
}
|
|
9348
|
+
),
|
|
9349
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-xl font-semibold", children: mode === "restore" ? "Restore with" : usePasskey ? "Passkey" : "Password" })
|
|
9350
|
+
] }),
|
|
9351
|
+
!isEncryptionMethod && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9352
|
+
Switch,
|
|
9294
9353
|
{
|
|
9295
|
-
|
|
9296
|
-
|
|
9297
|
-
|
|
9298
|
-
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
|
|
9303
|
-
setError(null);
|
|
9304
|
-
setSuccess(null);
|
|
9305
|
-
setMethod(null);
|
|
9306
|
-
},
|
|
9307
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react24.ArrowLeft, { className: "h-4 w-4" })
|
|
9354
|
+
name: "password-passkey-toggle",
|
|
9355
|
+
labels: { checked: "Password", unchecked: "Passkey" },
|
|
9356
|
+
disabled: isLoading || !!error,
|
|
9357
|
+
checked: !usePasskey,
|
|
9358
|
+
onChange: (e) => {
|
|
9359
|
+
if (!!e.target.checked) setRestorePassword("");
|
|
9360
|
+
setUsePasskey(!e.target.checked);
|
|
9361
|
+
}
|
|
9308
9362
|
}
|
|
9309
|
-
)
|
|
9310
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-xl font-semibold", children: `${mode === "restore" ? "Restore with" : "Create"} ${usePasskey ? "Passkey" : "Password"} ${mode === "restore" ? "" : "Backup"}`.trim() })
|
|
9363
|
+
)
|
|
9311
9364
|
] }),
|
|
9312
9365
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9313
9366
|
PasswordPasskey,
|
|
9314
9367
|
{
|
|
9315
9368
|
mode,
|
|
9316
|
-
isEncryptionMethod
|
|
9369
|
+
isEncryptionMethod,
|
|
9317
9370
|
isLoading,
|
|
9318
|
-
actionCaption: mode === "backup" ? "Create Backup" : "Restore from Vault",
|
|
9319
|
-
actionIcon: mode === "backup" ?
|
|
9371
|
+
actionCaption: mode === "backup" ? "Create Vault Backup" : "Restore from Vault",
|
|
9372
|
+
actionIcon: mode === "backup" ? import_lucide_react23.Upload : import_lucide_react23.Download,
|
|
9320
9373
|
actionHandler: () => serverHandler()
|
|
9321
9374
|
}
|
|
9322
9375
|
),
|
|
9323
9376
|
!!serverRecoveryStatus?.created?.at && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9324
|
-
serverRecoveryStatus.created.encryptionMethod === "password" ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(OtpIcon, { className: "w-4 h-4 inline" }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9377
|
+
serverRecoveryStatus.created.encryptionMethod === "password" ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(OtpIcon, { className: "w-4 h-4 inline" }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react23.Key, { className: "w-4 h-4 inline" }),
|
|
9325
9378
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "text-[10px] flex-1 block", children: [
|
|
9326
9379
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { children: `We found a ${serverRecoveryStatus.created.encryptionMethod?.toUpperCase()} Backup` }),
|
|
9327
9380
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("br", {}),
|
|
@@ -9336,12 +9389,12 @@ function Server(props) {
|
|
|
9336
9389
|
|
|
9337
9390
|
// src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
|
|
9338
9391
|
var import_react_query16 = require("@tanstack/react-query");
|
|
9339
|
-
var
|
|
9340
|
-
var
|
|
9392
|
+
var import_lucide_react25 = require("lucide-react");
|
|
9393
|
+
var import_react34 = require("react");
|
|
9341
9394
|
|
|
9342
9395
|
// src/internal/components/ui/select.tsx
|
|
9343
9396
|
var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
|
|
9344
|
-
var
|
|
9397
|
+
var import_lucide_react24 = require("lucide-react");
|
|
9345
9398
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
9346
9399
|
function Select({ ...props }) {
|
|
9347
9400
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
@@ -9371,7 +9424,7 @@ function SelectTrigger({
|
|
|
9371
9424
|
...props,
|
|
9372
9425
|
children: [
|
|
9373
9426
|
children,
|
|
9374
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9427
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react24.ChevronDownIcon, { className: "size-4 opacity-50" }) })
|
|
9375
9428
|
]
|
|
9376
9429
|
}
|
|
9377
9430
|
);
|
|
@@ -9432,7 +9485,7 @@ function SelectItem({ className, children, ...props }) {
|
|
|
9432
9485
|
),
|
|
9433
9486
|
...props,
|
|
9434
9487
|
children: [
|
|
9435
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { "data-slot": "select-item-indicator", className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9488
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { "data-slot": "select-item-indicator", className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react24.CheckIcon, { className: "size-4" }) }) }),
|
|
9436
9489
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectPrimitive.ItemText, { children })
|
|
9437
9490
|
]
|
|
9438
9491
|
}
|
|
@@ -9445,7 +9498,7 @@ function SelectScrollUpButton({ className, ...props }) {
|
|
|
9445
9498
|
"data-slot": "select-scroll-up-button",
|
|
9446
9499
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
9447
9500
|
...props,
|
|
9448
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9501
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react24.ChevronUpIcon, { className: "size-4" })
|
|
9449
9502
|
}
|
|
9450
9503
|
);
|
|
9451
9504
|
}
|
|
@@ -9459,7 +9512,7 @@ function SelectScrollDownButton({
|
|
|
9459
9512
|
"data-slot": "select-scroll-down-button",
|
|
9460
9513
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
9461
9514
|
...props,
|
|
9462
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9515
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react24.ChevronDownIcon, { className: "size-4" })
|
|
9463
9516
|
}
|
|
9464
9517
|
);
|
|
9465
9518
|
}
|
|
@@ -9485,7 +9538,7 @@ function Cloud2(props) {
|
|
|
9485
9538
|
return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
|
|
9486
9539
|
}
|
|
9487
9540
|
});
|
|
9488
|
-
(0,
|
|
9541
|
+
(0, import_react34.useEffect)(() => {
|
|
9489
9542
|
if (isCloudProvidersLoading) return;
|
|
9490
9543
|
if (!!cloudProvidersError) {
|
|
9491
9544
|
console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
|
|
@@ -9507,12 +9560,12 @@ function Cloud2(props) {
|
|
|
9507
9560
|
setSelectedCloudProvider(null);
|
|
9508
9561
|
setMethod(null);
|
|
9509
9562
|
},
|
|
9510
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
9563
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react25.ArrowLeft, { className: "h-4 w-4" })
|
|
9511
9564
|
}
|
|
9512
9565
|
),
|
|
9513
9566
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} Cloud Backup` })
|
|
9514
9567
|
] }),
|
|
9515
|
-
isCloudProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
9568
|
+
isCloudProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react25.Loader, { className: "animate-spin w-4 h-4 mx-auto" }),
|
|
9516
9569
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "block text-[10px] text-[var(--l-pass-fg-muted)]", children: "1. Select Cloud Backup Vault" }),
|
|
9517
9570
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
9518
9571
|
Select,
|
|
@@ -9542,7 +9595,7 @@ function Cloud2(props) {
|
|
|
9542
9595
|
mode,
|
|
9543
9596
|
isLoading,
|
|
9544
9597
|
actionCaption: mode === "backup" ? "Create Cloud Backup" : "Restore Cloud Backup",
|
|
9545
|
-
actionIcon: mode === "backup" ?
|
|
9598
|
+
actionIcon: mode === "backup" ? import_lucide_react25.CloudUpload : import_lucide_react25.CloudDownload,
|
|
9546
9599
|
actionHandler: () => cloudHandler?.(),
|
|
9547
9600
|
disabled: !!isCloudProvidersLoading || !selectedCloudProvider || cloudProviders.length === 0 || true
|
|
9548
9601
|
}
|
|
@@ -9569,7 +9622,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9569
9622
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
9570
9623
|
const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
|
|
9571
9624
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9572
|
-
(0,
|
|
9625
|
+
(0, import_react35.useEffect)(() => setIsDialogForced(true), []);
|
|
9573
9626
|
useCheckBackupAvailability();
|
|
9574
9627
|
const {
|
|
9575
9628
|
method: currentRestoreMethod,
|
|
@@ -9632,7 +9685,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9632
9685
|
className: "list-scrollbar-y w-full",
|
|
9633
9686
|
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
9634
9687
|
isBackupChecking && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
|
|
9635
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
9688
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.Loader, { className: "w-5 h-5 animate-spin" }),
|
|
9636
9689
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." }),
|
|
9637
9690
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "block w-full text-xs leading-4", children: "Please wait while we check for available backups..." })
|
|
9638
9691
|
] }),
|
|
@@ -9645,7 +9698,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9645
9698
|
),
|
|
9646
9699
|
!success && !isBackupChecking && !isDisconnecting && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
|
|
9647
9700
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)] px-[var(--l-pass-pd)] py-[var(--l-pass-gap)]", children: [
|
|
9648
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
9701
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.CloudDownload, { className: "w-6 h-6" }),
|
|
9649
9702
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
|
|
9650
9703
|
] }),
|
|
9651
9704
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MethodSelector, { mode: "restore", serverRecoveryStatus }),
|
|
@@ -9679,18 +9732,18 @@ var KeyshareRestoreMenu = () => {
|
|
|
9679
9732
|
disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
|
|
9680
9733
|
className: "w-fit mx-auto",
|
|
9681
9734
|
children: [
|
|
9682
|
-
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
9735
|
+
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.UserCircle, { className: "w-4 h-4" }),
|
|
9683
9736
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { children: "Try Another Account" })
|
|
9684
9737
|
]
|
|
9685
9738
|
}
|
|
9686
9739
|
)
|
|
9687
9740
|
] }),
|
|
9688
9741
|
error && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9689
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
9742
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9690
9743
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "w-full flex-1 block", children: error })
|
|
9691
9744
|
] }),
|
|
9692
9745
|
success && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9693
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
9746
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react26.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9694
9747
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "w-full flex-1 block", children: success })
|
|
9695
9748
|
] })
|
|
9696
9749
|
] })
|
|
@@ -9700,8 +9753,8 @@ var KeyshareRestoreMenu = () => {
|
|
|
9700
9753
|
|
|
9701
9754
|
// src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx
|
|
9702
9755
|
var import_react_query18 = require("@tanstack/react-query");
|
|
9703
|
-
var
|
|
9704
|
-
var
|
|
9756
|
+
var import_lucide_react27 = require("lucide-react");
|
|
9757
|
+
var import_react36 = require("react");
|
|
9705
9758
|
init_vaultClient();
|
|
9706
9759
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
9707
9760
|
var COMPONENTS = {
|
|
@@ -9714,7 +9767,7 @@ function KeyshareBackupMenu() {
|
|
|
9714
9767
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9715
9768
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9716
9769
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
9717
|
-
(0,
|
|
9770
|
+
(0, import_react36.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
9718
9771
|
const {
|
|
9719
9772
|
method: currentBackupMethod,
|
|
9720
9773
|
error,
|
|
@@ -9765,7 +9818,7 @@ function KeyshareBackupMenu() {
|
|
|
9765
9818
|
setSuccess(null);
|
|
9766
9819
|
setPage("settings" /* SETTINGS */);
|
|
9767
9820
|
},
|
|
9768
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9821
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react27.ArrowLeft, { className: "h-4 w-4" })
|
|
9769
9822
|
}
|
|
9770
9823
|
),
|
|
9771
9824
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xl font-semibold", children: "Create Backup" })
|
|
@@ -9782,21 +9835,21 @@ function KeyshareBackupMenu() {
|
|
|
9782
9835
|
}
|
|
9783
9836
|
) }),
|
|
9784
9837
|
!isRecoveryLoading && !currentBackupMethod && !hasRecoveryData && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9785
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9838
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react27.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9786
9839
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "block flex-1", children: [
|
|
9787
9840
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "font-semibold", children: "No Backup Found" }),
|
|
9788
9841
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("br", {}),
|
|
9789
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: "Create a backup to restore access if you switch devices or clear your browser." }),
|
|
9842
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-[10px]", children: "Create a backup to restore access if you switch devices or clear your browser." }),
|
|
9790
9843
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("br", {}),
|
|
9791
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: "You can ignore this if you already have a backup or don't want to use Keyshare Vault." })
|
|
9844
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-[10px]", children: "You can ignore this if you already have a backup or don't want to use Keyshare Vault." })
|
|
9792
9845
|
] })
|
|
9793
9846
|
] }),
|
|
9794
9847
|
error && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9795
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9848
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react27.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9796
9849
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "block w-full flex-1", children: error })
|
|
9797
9850
|
] }),
|
|
9798
9851
|
success && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9799
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
9852
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react27.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9800
9853
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "block w-full flex-1", children: success })
|
|
9801
9854
|
] })
|
|
9802
9855
|
] })
|
|
@@ -9805,8 +9858,8 @@ function KeyshareBackupMenu() {
|
|
|
9805
9858
|
}
|
|
9806
9859
|
|
|
9807
9860
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9808
|
-
var
|
|
9809
|
-
var
|
|
9861
|
+
var import_lucide_react28 = require("lucide-react");
|
|
9862
|
+
var import_react37 = require("react");
|
|
9810
9863
|
|
|
9811
9864
|
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
9812
9865
|
var import_react_query19 = require("@tanstack/react-query");
|
|
@@ -9827,16 +9880,16 @@ function useProvidersList() {
|
|
|
9827
9880
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9828
9881
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
9829
9882
|
var MAIN_MENU_BUTTONS = [
|
|
9830
|
-
{ id: "send" /* SEND */, label: "Send", icon:
|
|
9831
|
-
{ id: "receive" /* RECEIVE */, label: "Receive", icon:
|
|
9832
|
-
{ id: "buy" /* BUY */, label: "Buy", icon:
|
|
9833
|
-
{ id: "assets" /* ASSETS */, label: "Portfolio", icon:
|
|
9883
|
+
{ id: "send" /* SEND */, label: "Send", icon: import_lucide_react28.ChevronRight },
|
|
9884
|
+
{ id: "receive" /* RECEIVE */, label: "Receive", icon: import_lucide_react28.ChevronLeft },
|
|
9885
|
+
{ id: "buy" /* BUY */, label: "Buy", icon: import_lucide_react28.DollarSign },
|
|
9886
|
+
{ id: "assets" /* ASSETS */, label: "Portfolio", icon: import_lucide_react28.Wallet2 }
|
|
9834
9887
|
];
|
|
9835
9888
|
function MainMenu() {
|
|
9836
9889
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9837
9890
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9838
9891
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9839
|
-
(0,
|
|
9892
|
+
(0, import_react37.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
9840
9893
|
useProvidersList();
|
|
9841
9894
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--l-pass-gap)] py-[10px] md:py-1", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon2 }) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
9842
9895
|
Button,
|
|
@@ -9857,12 +9910,12 @@ function MainMenu() {
|
|
|
9857
9910
|
|
|
9858
9911
|
// src/internal/components/ManageWalletMenu/ManageWallet.tsx
|
|
9859
9912
|
var import_lodash_es3 = require("lodash-es");
|
|
9860
|
-
var
|
|
9861
|
-
var
|
|
9913
|
+
var import_lucide_react32 = require("lucide-react");
|
|
9914
|
+
var import_react41 = require("react");
|
|
9862
9915
|
|
|
9863
9916
|
// src/modules/linkedProfiles.ts
|
|
9864
9917
|
var import_react_query20 = require("@tanstack/react-query");
|
|
9865
|
-
var
|
|
9918
|
+
var import_react38 = require("react");
|
|
9866
9919
|
init_auth();
|
|
9867
9920
|
init_common();
|
|
9868
9921
|
init_types();
|
|
@@ -9895,7 +9948,7 @@ function useLumiaPassportLinkedProfiles() {
|
|
|
9895
9948
|
queryFn: getLinkProfilesData
|
|
9896
9949
|
});
|
|
9897
9950
|
const { profiles = [], avatar = null } = data || {};
|
|
9898
|
-
const refresh = (0,
|
|
9951
|
+
const refresh = (0, import_react38.useCallback)(async () => {
|
|
9899
9952
|
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
|
|
9900
9953
|
}, [qc, address]);
|
|
9901
9954
|
return { profiles, avatar, isLoading, error, refresh };
|
|
@@ -9908,7 +9961,7 @@ init_passkey2();
|
|
|
9908
9961
|
// src/internal/components/ManageWalletMenu/EmailForm.tsx
|
|
9909
9962
|
init_lumiaPassport();
|
|
9910
9963
|
var import_react_query21 = require("@tanstack/react-query");
|
|
9911
|
-
var
|
|
9964
|
+
var import_lucide_react29 = require("lucide-react");
|
|
9912
9965
|
init_projectId();
|
|
9913
9966
|
|
|
9914
9967
|
// src/internal/components/ManageWalletMenu/hooks/useStore.ts
|
|
@@ -10005,7 +10058,7 @@ function EmailForm() {
|
|
|
10005
10058
|
Input,
|
|
10006
10059
|
{
|
|
10007
10060
|
name: "signin-email",
|
|
10008
|
-
Icon:
|
|
10061
|
+
Icon: import_lucide_react29.Mail,
|
|
10009
10062
|
type: "email",
|
|
10010
10063
|
autoComplete: "off",
|
|
10011
10064
|
placeholder: config.email.placeholder,
|
|
@@ -10022,7 +10075,7 @@ function EmailForm() {
|
|
|
10022
10075
|
size: "large",
|
|
10023
10076
|
disabled: !email || isLoading,
|
|
10024
10077
|
onClick: () => onSendVerificationCode(),
|
|
10025
|
-
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
10078
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react29.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react29.ChevronRight, { className: "w-4 h-4" })
|
|
10026
10079
|
}
|
|
10027
10080
|
)
|
|
10028
10081
|
] });
|
|
@@ -10245,7 +10298,7 @@ function AddProvider() {
|
|
|
10245
10298
|
|
|
10246
10299
|
// src/internal/components/ManageWalletMenu/EmailNotConnectedWarning.tsx
|
|
10247
10300
|
var import_framer_motion2 = require("framer-motion");
|
|
10248
|
-
var
|
|
10301
|
+
var import_lucide_react30 = require("lucide-react");
|
|
10249
10302
|
init_auth();
|
|
10250
10303
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
10251
10304
|
function EmailNotConnectedWarning() {
|
|
@@ -10264,7 +10317,7 @@ function EmailNotConnectedWarning() {
|
|
|
10264
10317
|
transition: Y_ANIMATION_SETUP,
|
|
10265
10318
|
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Highlight, { type: "warning", className: "flex flex-col gap-[var(--l-pass-gap)] items-center text-center", children: [
|
|
10266
10319
|
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: "flex items-center gap-[var(--l-pass-gap)] text-lg font-bold", children: [
|
|
10267
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
10320
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react30.Mail, { className: "w-5 h-5" }),
|
|
10268
10321
|
"CONNECT EMAIL"
|
|
10269
10322
|
] }),
|
|
10270
10323
|
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-medium", children: "Connect your email for easier account recovery and additional security." })
|
|
@@ -10275,7 +10328,7 @@ function EmailNotConnectedWarning() {
|
|
|
10275
10328
|
|
|
10276
10329
|
// src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
|
|
10277
10330
|
var import_react_query25 = require("@tanstack/react-query");
|
|
10278
|
-
var
|
|
10331
|
+
var import_react39 = __toESM(require("react"), 1);
|
|
10279
10332
|
init_auth();
|
|
10280
10333
|
function useLinkSocial() {
|
|
10281
10334
|
const qc = (0, import_react_query25.useQueryClient)();
|
|
@@ -10287,7 +10340,7 @@ function useLinkSocial() {
|
|
|
10287
10340
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10288
10341
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
10289
10342
|
const { providerType, linkIsLoading, setProviderType, setAlert, setLinkIsLoading } = useManageWalletStore();
|
|
10290
|
-
const handleLinkSocialProvider =
|
|
10343
|
+
const handleLinkSocialProvider = import_react39.default.useCallback(
|
|
10291
10344
|
async (providerIdRaw) => {
|
|
10292
10345
|
const providerKey = providerIdRaw.toLowerCase();
|
|
10293
10346
|
const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
|
|
@@ -10339,8 +10392,8 @@ function useLinkSocial() {
|
|
|
10339
10392
|
},
|
|
10340
10393
|
[config.social?.providers, callbacks]
|
|
10341
10394
|
);
|
|
10342
|
-
const [socialLinkStarted, setSocialLinkStarted] =
|
|
10343
|
-
(0,
|
|
10395
|
+
const [socialLinkStarted, setSocialLinkStarted] = import_react39.default.useState(false);
|
|
10396
|
+
(0, import_react39.useEffect)(() => {
|
|
10344
10397
|
const key = providerType?.toLowerCase();
|
|
10345
10398
|
console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
|
|
10346
10399
|
if (isWalletLinking) {
|
|
@@ -10361,7 +10414,7 @@ function useLinkSocial() {
|
|
|
10361
10414
|
|
|
10362
10415
|
// src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
|
|
10363
10416
|
var import_react_query26 = require("@tanstack/react-query");
|
|
10364
|
-
var
|
|
10417
|
+
var import_react40 = require("react");
|
|
10365
10418
|
init_telegram2();
|
|
10366
10419
|
function useLinkTelegram() {
|
|
10367
10420
|
const {
|
|
@@ -10373,7 +10426,7 @@ function useLinkTelegram() {
|
|
|
10373
10426
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
10374
10427
|
const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
|
|
10375
10428
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10376
|
-
const handleLinkTelegram = (0,
|
|
10429
|
+
const handleLinkTelegram = (0, import_react40.useCallback)(async () => {
|
|
10377
10430
|
try {
|
|
10378
10431
|
setLinkIsLoading(true);
|
|
10379
10432
|
setAlert(null);
|
|
@@ -10415,8 +10468,8 @@ function useLinkTelegram() {
|
|
|
10415
10468
|
setLinkIsLoading(false);
|
|
10416
10469
|
}
|
|
10417
10470
|
}, [config.social?.providers, callbacks]);
|
|
10418
|
-
const [telegramLinkStarted, setTelegramLinkStarted] = (0,
|
|
10419
|
-
(0,
|
|
10471
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react40.useState)(false);
|
|
10472
|
+
(0, import_react40.useEffect)(() => {
|
|
10420
10473
|
console.log("[useLinkTelegram] Effect triggered:", {
|
|
10421
10474
|
providerType,
|
|
10422
10475
|
linkIsLoading,
|
|
@@ -10433,7 +10486,7 @@ function useLinkTelegram() {
|
|
|
10433
10486
|
handleLinkTelegram();
|
|
10434
10487
|
}
|
|
10435
10488
|
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
|
|
10436
|
-
(0,
|
|
10489
|
+
(0, import_react40.useEffect)(() => {
|
|
10437
10490
|
if (providerType !== "telegram") {
|
|
10438
10491
|
setTelegramLinkStarted(false);
|
|
10439
10492
|
}
|
|
@@ -10441,7 +10494,7 @@ function useLinkTelegram() {
|
|
|
10441
10494
|
}
|
|
10442
10495
|
|
|
10443
10496
|
// src/internal/components/ManageWalletMenu/ProviderCard.tsx
|
|
10444
|
-
var
|
|
10497
|
+
var import_lucide_react31 = require("lucide-react");
|
|
10445
10498
|
init_types();
|
|
10446
10499
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
10447
10500
|
function ProviderCard(props) {
|
|
@@ -10467,14 +10520,14 @@ function ProviderCard(props) {
|
|
|
10467
10520
|
props.externalId && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
10468
10521
|
"span",
|
|
10469
10522
|
{
|
|
10470
|
-
style: { maxWidth:
|
|
10471
|
-
className: "block w-full font-bold text-
|
|
10523
|
+
style: { maxWidth: 184 },
|
|
10524
|
+
className: "block w-full font-bold text-xs whitespace-nowrap text-ellipsis overflow-hidden",
|
|
10472
10525
|
children: props.externalId
|
|
10473
10526
|
}
|
|
10474
10527
|
)
|
|
10475
10528
|
] }),
|
|
10476
10529
|
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-fit flex items-center gap-[var(--l-pass-gap)] flex-none", children: [
|
|
10477
|
-
props.verified ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
10530
|
+
props.verified ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react31.CheckCircle, { className: `w-4 h-4 text-[var(--l-pass-bg-success)]` }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react31.Clock, { className: "w-4 h-4 text-[var(--l-pass-bg-warning)]" }),
|
|
10478
10531
|
allowUnlink && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
10479
10532
|
Button,
|
|
10480
10533
|
{
|
|
@@ -10486,7 +10539,7 @@ function ProviderCard(props) {
|
|
|
10486
10539
|
setConfirmUnlink({ provider: props.provider, providerName: info.name, externalId: props.externalId });
|
|
10487
10540
|
setPage("unlink-provider" /* UNLINK_PROVIDER */);
|
|
10488
10541
|
},
|
|
10489
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
10542
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react31.Trash2, { className: "w-4 h-4 text-[var(--l-pass-bg-error)]" })
|
|
10490
10543
|
}
|
|
10491
10544
|
)
|
|
10492
10545
|
] })
|
|
@@ -10542,7 +10595,7 @@ function ManageWalletMenu() {
|
|
|
10542
10595
|
} = useManageWalletStore();
|
|
10543
10596
|
const configuredProviders = getConfiguredProviders(config);
|
|
10544
10597
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
10545
|
-
const renderProviders = (0,
|
|
10598
|
+
const renderProviders = (0, import_react41.useMemo)(() => {
|
|
10546
10599
|
const normalizeProviderName = (name) => {
|
|
10547
10600
|
if (name === "x") return "twitter";
|
|
10548
10601
|
return name;
|
|
@@ -10635,17 +10688,17 @@ function ManageWalletMenu() {
|
|
|
10635
10688
|
if (!providerType) setPage("settings" /* SETTINGS */);
|
|
10636
10689
|
setProviderType(null);
|
|
10637
10690
|
},
|
|
10638
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
10691
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react32.ArrowLeft, { className: "h-4 w-4" })
|
|
10639
10692
|
}
|
|
10640
10693
|
),
|
|
10641
10694
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xl font-semibold", children: "Profiles" })
|
|
10642
10695
|
] }),
|
|
10643
|
-
isProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
10696
|
+
isProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react32.Loader, { className: "w-5 h-5 animate-spin" }) }),
|
|
10644
10697
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(EmailNotConnectedWarning, {}),
|
|
10645
10698
|
showCurrentProviders && renderProviders.map((node) => node),
|
|
10646
10699
|
showExtraProvidersUi && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AddProvider, {}),
|
|
10647
10700
|
combinedAlertMessage && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10648
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
10701
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react32.AlertTriangle, { className: "w-4 h-4 shrink-0" }),
|
|
10649
10702
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "break-words whitespace-pre-wrap", children: [
|
|
10650
10703
|
alert2?.title && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
10651
10704
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("strong", { children: alert2.title }),
|
|
@@ -10661,8 +10714,8 @@ function ManageWalletMenu() {
|
|
|
10661
10714
|
|
|
10662
10715
|
// src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
|
|
10663
10716
|
var import_react_query27 = require("@tanstack/react-query");
|
|
10664
|
-
var
|
|
10665
|
-
var
|
|
10717
|
+
var import_lucide_react33 = require("lucide-react");
|
|
10718
|
+
var import_react42 = require("react");
|
|
10666
10719
|
init_auth();
|
|
10667
10720
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
10668
10721
|
function UnlinkProviderMenu() {
|
|
@@ -10671,7 +10724,7 @@ function UnlinkProviderMenu() {
|
|
|
10671
10724
|
const { callbacks } = useLumiaPassportConfig();
|
|
10672
10725
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10673
10726
|
const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
|
|
10674
|
-
const [confirmInput, setConfirmInput] = (0,
|
|
10727
|
+
const [confirmInput, setConfirmInput] = (0, import_react42.useState)("");
|
|
10675
10728
|
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query27.useMutation)({
|
|
10676
10729
|
mutationFn: async () => {
|
|
10677
10730
|
if (!confirmUnlink) {
|
|
@@ -10704,7 +10757,7 @@ function UnlinkProviderMenu() {
|
|
|
10704
10757
|
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
10705
10758
|
Input,
|
|
10706
10759
|
{
|
|
10707
|
-
Icon:
|
|
10760
|
+
Icon: import_lucide_react33.Key,
|
|
10708
10761
|
value: confirmInput,
|
|
10709
10762
|
onChange: (e) => setConfirmInput(e.target.value),
|
|
10710
10763
|
placeholder: "Enter provider ID"
|
|
@@ -10735,7 +10788,7 @@ function UnlinkProviderMenu() {
|
|
|
10735
10788
|
disabled: !!isProviderUnlinking || !confirmUnlink || confirmInput !== confirmUnlink.externalId,
|
|
10736
10789
|
className: "w-full flex-1",
|
|
10737
10790
|
children: [
|
|
10738
|
-
isProviderUnlinking && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
10791
|
+
isProviderUnlinking && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react33.Loader, { className: "animate-spin h-4 w-4" }),
|
|
10739
10792
|
isProviderUnlinking ? "Removing\u2026" : "Remove"
|
|
10740
10793
|
]
|
|
10741
10794
|
}
|
|
@@ -10746,11 +10799,11 @@ function UnlinkProviderMenu() {
|
|
|
10746
10799
|
|
|
10747
10800
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
10748
10801
|
var import_react_query30 = require("@tanstack/react-query");
|
|
10749
|
-
var
|
|
10750
|
-
var
|
|
10802
|
+
var import_lucide_react35 = require("lucide-react");
|
|
10803
|
+
var import_react45 = require("react");
|
|
10751
10804
|
|
|
10752
10805
|
// src/internal/hooks/useBlockscoutAssets.ts
|
|
10753
|
-
var
|
|
10806
|
+
var import_react43 = require("react");
|
|
10754
10807
|
var import_react_query28 = require("@tanstack/react-query");
|
|
10755
10808
|
var import_wagmi2 = require("wagmi");
|
|
10756
10809
|
var import_viem5 = require("viem");
|
|
@@ -10893,12 +10946,12 @@ function createError(error) {
|
|
|
10893
10946
|
function useBlockscoutAssets(options) {
|
|
10894
10947
|
const { address, enabled = true, detectSecurityTokens = true } = options;
|
|
10895
10948
|
const blockscoutApiUrl = getBlockscoutApiUrl();
|
|
10896
|
-
const blockscoutClient = (0,
|
|
10949
|
+
const blockscoutClient = (0, import_react43.useMemo)(
|
|
10897
10950
|
() => (0, import_clients2.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }),
|
|
10898
10951
|
[blockscoutApiUrl]
|
|
10899
10952
|
);
|
|
10900
10953
|
const publicClient2 = (0, import_wagmi2.usePublicClient)({ chainId: lumiaBeam.id });
|
|
10901
|
-
const lastRefreshRef = (0,
|
|
10954
|
+
const lastRefreshRef = (0, import_react43.useRef)(0);
|
|
10902
10955
|
const {
|
|
10903
10956
|
data: nativeBalanceData,
|
|
10904
10957
|
isLoading: nativeLoading,
|
|
@@ -10938,7 +10991,7 @@ function useBlockscoutAssets(options) {
|
|
|
10938
10991
|
retry: 2,
|
|
10939
10992
|
retryDelay: 1e3
|
|
10940
10993
|
});
|
|
10941
|
-
const erc20TokenAddresses = (0,
|
|
10994
|
+
const erc20TokenAddresses = (0, import_react43.useMemo)(() => {
|
|
10942
10995
|
if (!tokenBalances) return [];
|
|
10943
10996
|
return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address);
|
|
10944
10997
|
}, [tokenBalances]);
|
|
@@ -10982,7 +11035,7 @@ function useBlockscoutAssets(options) {
|
|
|
10982
11035
|
gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
10983
11036
|
retry: 1
|
|
10984
11037
|
});
|
|
10985
|
-
const assets = (0,
|
|
11038
|
+
const assets = (0, import_react43.useMemo)(() => {
|
|
10986
11039
|
const result = [];
|
|
10987
11040
|
if (nativeBalanceData) {
|
|
10988
11041
|
result.push({
|
|
@@ -11018,7 +11071,7 @@ function useBlockscoutAssets(options) {
|
|
|
11018
11071
|
}
|
|
11019
11072
|
return result;
|
|
11020
11073
|
}, [nativeBalanceData, tokenBalances, nftItems, erc3643Results]);
|
|
11021
|
-
const nativeBalance = (0,
|
|
11074
|
+
const nativeBalance = (0, import_react43.useMemo)(() => {
|
|
11022
11075
|
if (!nativeBalanceData) return null;
|
|
11023
11076
|
return {
|
|
11024
11077
|
value: nativeBalanceData.value,
|
|
@@ -11026,11 +11079,11 @@ function useBlockscoutAssets(options) {
|
|
|
11026
11079
|
symbol: "LUMIA"
|
|
11027
11080
|
};
|
|
11028
11081
|
}, [nativeBalanceData]);
|
|
11029
|
-
const error = (0,
|
|
11082
|
+
const error = (0, import_react43.useMemo)(() => {
|
|
11030
11083
|
if (!tokensError) return null;
|
|
11031
11084
|
return createError(tokensError);
|
|
11032
11085
|
}, [tokensError]);
|
|
11033
|
-
const refreshBalances = (0,
|
|
11086
|
+
const refreshBalances = (0, import_react43.useCallback)(async () => {
|
|
11034
11087
|
const now = Date.now();
|
|
11035
11088
|
if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
|
|
11036
11089
|
return;
|
|
@@ -11038,7 +11091,7 @@ function useBlockscoutAssets(options) {
|
|
|
11038
11091
|
lastRefreshRef.current = now;
|
|
11039
11092
|
await Promise.all([refetchNative(), refetchTokens(), refetchNfts()]);
|
|
11040
11093
|
}, [refetchNative, refetchTokens, refetchNfts]);
|
|
11041
|
-
const getTokenBalance = (0,
|
|
11094
|
+
const getTokenBalance = (0, import_react43.useCallback)(
|
|
11042
11095
|
(tokenAddress) => {
|
|
11043
11096
|
return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
|
|
11044
11097
|
},
|
|
@@ -11059,8 +11112,8 @@ function useBlockscoutAssets(options) {
|
|
|
11059
11112
|
|
|
11060
11113
|
// src/internal/components/PortfolioMenu/PortfolioItem.tsx
|
|
11061
11114
|
var import_react_query29 = require("@tanstack/react-query");
|
|
11062
|
-
var
|
|
11063
|
-
var
|
|
11115
|
+
var import_lucide_react34 = require("lucide-react");
|
|
11116
|
+
var import_react44 = require("react");
|
|
11064
11117
|
var import_viem6 = require("viem");
|
|
11065
11118
|
init_base();
|
|
11066
11119
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
@@ -11098,8 +11151,8 @@ async function getAssetRate2(symbol) {
|
|
|
11098
11151
|
var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
|
|
11099
11152
|
function PortfolioItem(props) {
|
|
11100
11153
|
const { address, asset, isProjectAsset } = props;
|
|
11101
|
-
const [nftImageError, setNftImageError] = (0,
|
|
11102
|
-
const [logoError, setLogoError] = (0,
|
|
11154
|
+
const [nftImageError, setNftImageError] = (0, import_react44.useState)(false);
|
|
11155
|
+
const [logoError, setLogoError] = (0, import_react44.useState)(false);
|
|
11103
11156
|
const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
|
|
11104
11157
|
const qc = (0, import_react_query29.useQueryClient)();
|
|
11105
11158
|
const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
|
|
@@ -11149,7 +11202,7 @@ function PortfolioItem(props) {
|
|
|
11149
11202
|
}
|
|
11150
11203
|
) : isNft && (!nftImage || nftImageError) ? (
|
|
11151
11204
|
// NFT placeholder when no image available
|
|
11152
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-full h-full bg-[var(--l-pass-fg)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11205
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-full h-full bg-[var(--l-pass-fg)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react34.Image, { className: "w-5 h-5 text-[var(--l-pass-fg-inverted)]" }) })
|
|
11153
11206
|
) : asset.logo && !logoError ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11154
11207
|
"img",
|
|
11155
11208
|
{
|
|
@@ -11159,13 +11212,13 @@ function PortfolioItem(props) {
|
|
|
11159
11212
|
onError: () => setLogoError(true)
|
|
11160
11213
|
}
|
|
11161
11214
|
) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-[var(--l-pass-fg-inverted)] font-bold text-sm", children: asset.symbol.charAt(0) }),
|
|
11162
|
-
isNft && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-[var(--l-pass-accent)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11215
|
+
isNft && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-[var(--l-pass-accent)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react34.Sparkles, { className: "w-2.5 h-2.5 text-[var(--l-pass-fg-inverted)]" }) }),
|
|
11163
11216
|
isSecurity && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11164
11217
|
"div",
|
|
11165
11218
|
{
|
|
11166
11219
|
className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-amber-500 flex items-center justify-center",
|
|
11167
11220
|
title: "Security Token (ERC-3643)",
|
|
11168
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11221
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react34.Shield, { className: "w-2.5 h-2.5 text-white" })
|
|
11169
11222
|
}
|
|
11170
11223
|
)
|
|
11171
11224
|
]
|
|
@@ -11196,7 +11249,7 @@ function PortfolioItem(props) {
|
|
|
11196
11249
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: formatPrice(Number(renderBalance)) }),
|
|
11197
11250
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: " " + asset.symbol })
|
|
11198
11251
|
] }),
|
|
11199
|
-
isRateLoading && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11252
|
+
isRateLoading && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react34.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
11200
11253
|
!isRateLoading && !!usdRenderBalance && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { children: [
|
|
11201
11254
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "$" }),
|
|
11202
11255
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: formatPrice(usdRenderBalance) })
|
|
@@ -11225,7 +11278,7 @@ function PortfolioMenu() {
|
|
|
11225
11278
|
} = useBlockscoutAssets({
|
|
11226
11279
|
address
|
|
11227
11280
|
});
|
|
11228
|
-
const refreshAllAssetsBalances = (0,
|
|
11281
|
+
const refreshAllAssetsBalances = (0, import_react45.useCallback)(() => {
|
|
11229
11282
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
11230
11283
|
refreshBlockscoutBalances();
|
|
11231
11284
|
}, [qc, projectAssets, refreshBlockscoutBalances]);
|
|
@@ -11239,7 +11292,7 @@ function PortfolioMenu() {
|
|
|
11239
11292
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11240
11293
|
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11241
11294
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11242
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11295
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11243
11296
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
|
|
11244
11297
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11245
11298
|
Button,
|
|
@@ -11249,13 +11302,13 @@ function PortfolioMenu() {
|
|
|
11249
11302
|
size: "icon",
|
|
11250
11303
|
onClick: refreshAllAssetsBalances,
|
|
11251
11304
|
disabled: isBlockscoutLoading,
|
|
11252
|
-
children: isBlockscoutLoading ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11305
|
+
children: isBlockscoutLoading ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.RefreshCw, { className: "h-4 w-4" })
|
|
11253
11306
|
}
|
|
11254
11307
|
)
|
|
11255
11308
|
] }),
|
|
11256
|
-
isBlockscoutLoading && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11309
|
+
isBlockscoutLoading && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.Loader, { className: "h-5 w-5 animate-spin" }) }),
|
|
11257
11310
|
!isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Highlight, { type: "info", className: "flex flex-col items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
11258
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11311
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.Gem, { className: "w-8 h-8" }),
|
|
11259
11312
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "block", children: "No assets found" })
|
|
11260
11313
|
] }),
|
|
11261
11314
|
!isBlockscoutLoading && projectAssets?.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
|
|
@@ -11268,7 +11321,7 @@ function PortfolioMenu() {
|
|
|
11268
11321
|
`${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
|
|
11269
11322
|
)),
|
|
11270
11323
|
blockscoutError && !isBlockscoutAvailable && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11271
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11324
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
11272
11325
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xs", children: blockscoutError.message })
|
|
11273
11326
|
] })
|
|
11274
11327
|
] })
|
|
@@ -11278,8 +11331,8 @@ function PortfolioMenu() {
|
|
|
11278
11331
|
|
|
11279
11332
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
11280
11333
|
var import_react_query31 = require("@tanstack/react-query");
|
|
11281
|
-
var
|
|
11282
|
-
var
|
|
11334
|
+
var import_lucide_react39 = require("lucide-react");
|
|
11335
|
+
var import_react46 = require("react");
|
|
11283
11336
|
init_auth();
|
|
11284
11337
|
init_keyshare();
|
|
11285
11338
|
init_iframe_manager();
|
|
@@ -11289,7 +11342,7 @@ init_vaultClient();
|
|
|
11289
11342
|
var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
|
|
11290
11343
|
|
|
11291
11344
|
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
11292
|
-
var
|
|
11345
|
+
var import_lucide_react38 = require("lucide-react");
|
|
11293
11346
|
|
|
11294
11347
|
// src/internal/assets/NegativeIcon.tsx
|
|
11295
11348
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
@@ -11306,11 +11359,11 @@ function NegativeIcon(props) {
|
|
|
11306
11359
|
init_vaultClient();
|
|
11307
11360
|
|
|
11308
11361
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
11309
|
-
var
|
|
11362
|
+
var import_lucide_react36 = require("lucide-react");
|
|
11310
11363
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
11311
11364
|
function KeyshareStatus(props) {
|
|
11312
11365
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
11313
|
-
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11366
|
+
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react36.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
|
|
11314
11367
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "group relative w-full h-full", children: [
|
|
11315
11368
|
children,
|
|
11316
11369
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
@@ -11342,7 +11395,8 @@ function KeyshareStatus(props) {
|
|
|
11342
11395
|
}
|
|
11343
11396
|
|
|
11344
11397
|
// src/internal/components/SecurityMenu/Keyshare/LastBackup.tsx
|
|
11345
|
-
var
|
|
11398
|
+
var import_dayjs2 = __toESM(require("dayjs"), 1);
|
|
11399
|
+
var import_lucide_react37 = require("lucide-react");
|
|
11346
11400
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
11347
11401
|
function parseOS(ua) {
|
|
11348
11402
|
if (!ua) return null;
|
|
@@ -11366,26 +11420,26 @@ function LastBackup(props) {
|
|
|
11366
11420
|
const hasBackupData = backup?.server?.enabled && backup.server.lastBackup || !backup.server.lastBackup && recoveryCreatedAt || backup.cloud.enabled && backup.cloud?.lastBackup || backup.local.enabled && backup.local.lastBackup;
|
|
11367
11421
|
if (!hasBackupData) return null;
|
|
11368
11422
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Highlight, { type: "info", className: "flex flex-col gap-[var(--l-pass-gap)] text-[10px] leading-tight", children: [
|
|
11369
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "
|
|
11370
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11371
|
-
" Last Keyshare Vault Backup"
|
|
11423
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "flex items-center gap-[var(--l-pass-gap)] font-bold text-xs leading-4", children: [
|
|
11424
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react37.Server, { className: "w-4 h-4 inline" }),
|
|
11425
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "Last Keyshare Vault Backup" })
|
|
11372
11426
|
] }),
|
|
11373
11427
|
recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
11374
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children:
|
|
11428
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: (0, import_dayjs2.default)(recoveryCreatedAt).format("MMMM DD, YYYY HH:mm") }),
|
|
11375
11429
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: `${recoveryBrowser || "UNKNOWN"} browser at ${recoveryDeviceName || "UNKNOWN"} device under ${parseOS(recoveryUa) || "UNKNOWN"} OS` })
|
|
11376
11430
|
] }),
|
|
11377
11431
|
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11378
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11432
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react37.Cloud, { className: "h-3 w-3" }),
|
|
11379
11433
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { children: [
|
|
11380
11434
|
"Cloud: ",
|
|
11381
|
-
|
|
11435
|
+
(0, import_dayjs2.default)(backup.cloud.lastBackup).format("MMMM DD, YYYY HH:mm")
|
|
11382
11436
|
] })
|
|
11383
11437
|
] }),
|
|
11384
11438
|
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11385
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11439
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react37.HardDrive, { className: "h-3 w-3" }),
|
|
11386
11440
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { children: [
|
|
11387
11441
|
"Local: ",
|
|
11388
|
-
|
|
11442
|
+
(0, import_dayjs2.default)(backup.local.lastBackup).format("MMMM DD, YYYY HH:mm")
|
|
11389
11443
|
] })
|
|
11390
11444
|
] })
|
|
11391
11445
|
] });
|
|
@@ -11399,7 +11453,7 @@ function Keyshare(props) {
|
|
|
11399
11453
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
|
|
11400
11454
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
11401
11455
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
11402
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11456
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react38.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react38.RefreshCw, { className: "h-4 w-4" }) })
|
|
11403
11457
|
] }),
|
|
11404
11458
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)] px-[var(--l-pass-gap)]", children: [
|
|
11405
11459
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
@@ -11413,7 +11467,7 @@ function Keyshare(props) {
|
|
|
11413
11467
|
type: serverHasKeyshare ? "success" : "warning",
|
|
11414
11468
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11415
11469
|
children: [
|
|
11416
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11470
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react38.Cloud, { className: "h-6 w-6" }),
|
|
11417
11471
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Server Share" })
|
|
11418
11472
|
]
|
|
11419
11473
|
}
|
|
@@ -11431,7 +11485,7 @@ function Keyshare(props) {
|
|
|
11431
11485
|
type: localInfo?.hasKeyshare ? "success" : "warning",
|
|
11432
11486
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11433
11487
|
children: [
|
|
11434
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11488
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react38.Laptop, { className: "h-6 w-6" }),
|
|
11435
11489
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Local Share" })
|
|
11436
11490
|
]
|
|
11437
11491
|
}
|
|
@@ -11449,7 +11503,7 @@ function Keyshare(props) {
|
|
|
11449
11503
|
type: hasServerBackup ? "success" : "warning",
|
|
11450
11504
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11451
11505
|
children: [
|
|
11452
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11506
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react38.Server, { className: "h-6 w-6" }),
|
|
11453
11507
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Backup Vault" })
|
|
11454
11508
|
]
|
|
11455
11509
|
}
|
|
@@ -11470,8 +11524,8 @@ function SecurityMenu() {
|
|
|
11470
11524
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11471
11525
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
11472
11526
|
const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
11473
|
-
const [isRemoving, setIsRemoving] = (0,
|
|
11474
|
-
const [appToRemove, setAppToRemove] = (0,
|
|
11527
|
+
const [isRemoving, setIsRemoving] = (0, import_react46.useState)(false);
|
|
11528
|
+
const [appToRemove, setAppToRemove] = (0, import_react46.useState)(null);
|
|
11475
11529
|
const { data: recoveryData, isFetching: isRecoveryLoading } = (0, import_react_query31.useQuery)({
|
|
11476
11530
|
enabled: !!userId,
|
|
11477
11531
|
queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
|
|
@@ -11531,7 +11585,7 @@ function SecurityMenu() {
|
|
|
11531
11585
|
if (!!appToRemove) setAppToRemove(null);
|
|
11532
11586
|
else setPage("settings" /* SETTINGS */);
|
|
11533
11587
|
},
|
|
11534
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11588
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react39.ArrowLeft, { className: "h-4 w-4" })
|
|
11535
11589
|
}
|
|
11536
11590
|
),
|
|
11537
11591
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-xl font-semibold", children: "Security" })
|
|
@@ -11580,7 +11634,7 @@ function SecurityMenu() {
|
|
|
11580
11634
|
appName: app.appName,
|
|
11581
11635
|
appLogo: app.appLogo
|
|
11582
11636
|
}),
|
|
11583
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11637
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react39.Trash2, { className: "h-3 w-3" })
|
|
11584
11638
|
}
|
|
11585
11639
|
)
|
|
11586
11640
|
]
|
|
@@ -11618,7 +11672,7 @@ function SecurityMenu() {
|
|
|
11618
11672
|
className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/60 active:bg-[var(--l-pass-error)]/40",
|
|
11619
11673
|
onClick: handleRemoveTrustedApp,
|
|
11620
11674
|
disabled: isRemoving,
|
|
11621
|
-
children: isRemoving ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11675
|
+
children: isRemoving ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react39.Loader, { className: "h-4 w-4 animate-spin" }) : "Remove"
|
|
11622
11676
|
}
|
|
11623
11677
|
)
|
|
11624
11678
|
] })
|
|
@@ -11629,22 +11683,22 @@ function SecurityMenu() {
|
|
|
11629
11683
|
}
|
|
11630
11684
|
|
|
11631
11685
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11632
|
-
var
|
|
11633
|
-
var
|
|
11686
|
+
var import_lucide_react40 = require("lucide-react");
|
|
11687
|
+
var import_react49 = require("react");
|
|
11634
11688
|
var import_viem9 = require("viem");
|
|
11635
11689
|
var import_wagmi4 = require("wagmi");
|
|
11636
11690
|
|
|
11637
11691
|
// src/hooks/useSendTransaction.ts
|
|
11638
|
-
var
|
|
11692
|
+
var import_react47 = require("react");
|
|
11639
11693
|
var import_viem7 = require("viem");
|
|
11640
11694
|
init_account();
|
|
11641
11695
|
function useSendTransaction() {
|
|
11642
11696
|
const session = useLumiaPassportSession((st) => st.session);
|
|
11643
11697
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11644
|
-
const [isLoading, setIsLoading] = (0,
|
|
11645
|
-
const [error, setError] = (0,
|
|
11646
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
11647
|
-
const sendTransaction = (0,
|
|
11698
|
+
const [isLoading, setIsLoading] = (0, import_react47.useState)(false);
|
|
11699
|
+
const [error, setError] = (0, import_react47.useState)(null);
|
|
11700
|
+
const [userOpHash, setUserOpHash] = (0, import_react47.useState)(null);
|
|
11701
|
+
const sendTransaction = (0, import_react47.useCallback)(
|
|
11648
11702
|
async (params) => {
|
|
11649
11703
|
if (!session || !address) {
|
|
11650
11704
|
setError("No active session");
|
|
@@ -11684,7 +11738,7 @@ function useSendTransaction() {
|
|
|
11684
11738
|
},
|
|
11685
11739
|
[session, address]
|
|
11686
11740
|
);
|
|
11687
|
-
const reset = (0,
|
|
11741
|
+
const reset = (0, import_react47.useCallback)(() => {
|
|
11688
11742
|
setError(null);
|
|
11689
11743
|
setUserOpHash(null);
|
|
11690
11744
|
setIsLoading(false);
|
|
@@ -11699,7 +11753,7 @@ function useSendTransaction() {
|
|
|
11699
11753
|
}
|
|
11700
11754
|
|
|
11701
11755
|
// src/modules/assets.ts
|
|
11702
|
-
var
|
|
11756
|
+
var import_react48 = __toESM(require("react"), 1);
|
|
11703
11757
|
var import_wagmi3 = require("wagmi");
|
|
11704
11758
|
var import_viem8 = require("viem");
|
|
11705
11759
|
init_base();
|
|
@@ -11846,7 +11900,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
11846
11900
|
}
|
|
11847
11901
|
});
|
|
11848
11902
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
11849
|
-
const formattedBalance =
|
|
11903
|
+
const formattedBalance = import_react48.default.useMemo(() => {
|
|
11850
11904
|
if (!balance || !tokenInfo) return "0";
|
|
11851
11905
|
return (0, import_viem8.formatUnits)(balance, tokenInfo.decimals);
|
|
11852
11906
|
}, [balance, tokenInfo]);
|
|
@@ -11873,13 +11927,13 @@ function SendLumiaMenu() {
|
|
|
11873
11927
|
address,
|
|
11874
11928
|
chainId: lumiaBeam.id
|
|
11875
11929
|
});
|
|
11876
|
-
const [recipient, setRecipient] = (0,
|
|
11877
|
-
const [amount, setAmount] = (0,
|
|
11878
|
-
const [txStep, setTxStep] = (0,
|
|
11879
|
-
const [validationError, setValidationError] = (0,
|
|
11930
|
+
const [recipient, setRecipient] = (0, import_react49.useState)("");
|
|
11931
|
+
const [amount, setAmount] = (0, import_react49.useState)("");
|
|
11932
|
+
const [txStep, setTxStep] = (0, import_react49.useState)("input");
|
|
11933
|
+
const [validationError, setValidationError] = (0, import_react49.useState)(null);
|
|
11880
11934
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
11881
11935
|
const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
|
|
11882
|
-
(0,
|
|
11936
|
+
(0, import_react49.useEffect)(() => {
|
|
11883
11937
|
if (open) {
|
|
11884
11938
|
setTxStep("input");
|
|
11885
11939
|
setValidationError(null);
|
|
@@ -11936,7 +11990,7 @@ function SendLumiaMenu() {
|
|
|
11936
11990
|
};
|
|
11937
11991
|
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11938
11992
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11939
|
-
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
11993
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react40.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11940
11994
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
|
|
11941
11995
|
] }),
|
|
11942
11996
|
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
|
|
@@ -11945,7 +11999,7 @@ function SendLumiaMenu() {
|
|
|
11945
11999
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
11946
12000
|
Input,
|
|
11947
12001
|
{
|
|
11948
|
-
Icon:
|
|
12002
|
+
Icon: import_lucide_react40.Wallet,
|
|
11949
12003
|
type: "text",
|
|
11950
12004
|
value: recipient,
|
|
11951
12005
|
onChange: (e) => setRecipient(e.target.value),
|
|
@@ -11988,7 +12042,7 @@ function SendLumiaMenu() {
|
|
|
11988
12042
|
] })
|
|
11989
12043
|
] }),
|
|
11990
12044
|
(validationError || error) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("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: [
|
|
11991
|
-
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
12045
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react40.AlertCircle, { className: "h-4 w-4" }),
|
|
11992
12046
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-sm", children: validationError || error })
|
|
11993
12047
|
] }),
|
|
11994
12048
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
|
|
@@ -12017,13 +12071,13 @@ function SendLumiaMenu() {
|
|
|
12017
12071
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex gap-2", children: [
|
|
12018
12072
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
12019
12073
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
12020
|
-
isLoading && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
12074
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react40.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
12021
12075
|
"Confirm"
|
|
12022
12076
|
] })
|
|
12023
12077
|
] })
|
|
12024
12078
|
] }),
|
|
12025
12079
|
txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
|
|
12026
|
-
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
12080
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react40.Loader, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
12027
12081
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { children: [
|
|
12028
12082
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
12029
12083
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
@@ -12031,7 +12085,7 @@ function SendLumiaMenu() {
|
|
|
12031
12085
|
] }),
|
|
12032
12086
|
txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
|
|
12033
12087
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "text-center py-4", children: [
|
|
12034
|
-
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
12088
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react40.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
12035
12089
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
12036
12090
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
12037
12091
|
] }),
|
|
@@ -12041,9 +12095,9 @@ function SendLumiaMenu() {
|
|
|
12041
12095
|
}
|
|
12042
12096
|
|
|
12043
12097
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
12044
|
-
var
|
|
12098
|
+
var import_lucide_react41 = require("lucide-react");
|
|
12045
12099
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
12046
|
-
var
|
|
12100
|
+
var import_react50 = require("react");
|
|
12047
12101
|
init_clients();
|
|
12048
12102
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
12049
12103
|
function ReceiveLumiaMenu() {
|
|
@@ -12052,9 +12106,9 @@ function ReceiveLumiaMenu() {
|
|
|
12052
12106
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12053
12107
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
12054
12108
|
const open = page === "receive";
|
|
12055
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
12056
|
-
const [copied, setCopied] = (0,
|
|
12057
|
-
(0,
|
|
12109
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react50.useState)("");
|
|
12110
|
+
const [copied, setCopied] = (0, import_react50.useState)(false);
|
|
12111
|
+
(0, import_react50.useEffect)(() => {
|
|
12058
12112
|
if (open && address) {
|
|
12059
12113
|
import_qrcode.default.toDataURL(address, {
|
|
12060
12114
|
width: 200,
|
|
@@ -12067,7 +12121,7 @@ function ReceiveLumiaMenu() {
|
|
|
12067
12121
|
});
|
|
12068
12122
|
}
|
|
12069
12123
|
}, [open, address]);
|
|
12070
|
-
const handleCopy = (0,
|
|
12124
|
+
const handleCopy = (0, import_react50.useCallback)(async () => {
|
|
12071
12125
|
if (!address) return;
|
|
12072
12126
|
try {
|
|
12073
12127
|
await navigator.clipboard.writeText(address);
|
|
@@ -12087,21 +12141,21 @@ function ReceiveLumiaMenu() {
|
|
|
12087
12141
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12088
12142
|
children: [
|
|
12089
12143
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12090
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12144
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react41.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
12091
12145
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
12092
12146
|
] }),
|
|
12093
12147
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
|
|
12094
12148
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
12095
12149
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
12096
12150
|
] }),
|
|
12097
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12151
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react41.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
12098
12152
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Highlight, { type: "info", children: [
|
|
12099
12153
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
12100
12154
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
|
|
12101
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12155
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react41.CheckCircle2, { className: "h-4 w-4" }),
|
|
12102
12156
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: "Copied!" })
|
|
12103
12157
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
|
|
12104
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12158
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react41.Copy, { className: "h-4 w-4" }),
|
|
12105
12159
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: "Copy Address" })
|
|
12106
12160
|
] }) })
|
|
12107
12161
|
] }),
|
|
@@ -12112,11 +12166,11 @@ function ReceiveLumiaMenu() {
|
|
|
12112
12166
|
}
|
|
12113
12167
|
|
|
12114
12168
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12115
|
-
var
|
|
12116
|
-
var
|
|
12169
|
+
var import_lucide_react43 = require("lucide-react");
|
|
12170
|
+
var import_react51 = require("react");
|
|
12117
12171
|
|
|
12118
12172
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12119
|
-
var
|
|
12173
|
+
var import_lucide_react42 = require("lucide-react");
|
|
12120
12174
|
|
|
12121
12175
|
// src/internal/assets/KycIcon.tsx
|
|
12122
12176
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
@@ -12133,11 +12187,11 @@ function KycIcon(props) {
|
|
|
12133
12187
|
|
|
12134
12188
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12135
12189
|
var NAV_BUTTONS = [
|
|
12136
|
-
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon:
|
|
12190
|
+
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react42.ArrowLeftRight },
|
|
12137
12191
|
{ id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
|
|
12138
|
-
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon:
|
|
12139
|
-
{ id: "security" /* SECURITY */, name: "Security", Icon:
|
|
12140
|
-
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon:
|
|
12192
|
+
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react42.UsersRound },
|
|
12193
|
+
{ id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react42.LockKeyhole },
|
|
12194
|
+
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react42.DatabaseBackup }
|
|
12141
12195
|
];
|
|
12142
12196
|
|
|
12143
12197
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
@@ -12147,13 +12201,13 @@ function SettingsMenu() {
|
|
|
12147
12201
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12148
12202
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
12149
12203
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
12150
|
-
(0,
|
|
12204
|
+
(0, import_react51.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
12151
12205
|
useProvidersList();
|
|
12152
12206
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
12153
12207
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
12154
12208
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12155
12209
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12156
|
-
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12210
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
12157
12211
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
12158
12212
|
] }),
|
|
12159
12213
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
@@ -12179,7 +12233,7 @@ function SettingsMenu() {
|
|
|
12179
12233
|
}
|
|
12180
12234
|
|
|
12181
12235
|
// src/internal/components/TermsOfService.tsx
|
|
12182
|
-
var
|
|
12236
|
+
var import_lucide_react44 = require("lucide-react");
|
|
12183
12237
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
12184
12238
|
function TermsOfService() {
|
|
12185
12239
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -12193,7 +12247,7 @@ function TermsOfService() {
|
|
|
12193
12247
|
size: "icon",
|
|
12194
12248
|
title: "Back",
|
|
12195
12249
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
12196
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12250
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.ArrowLeft, { className: "h-4 w-4" })
|
|
12197
12251
|
}
|
|
12198
12252
|
),
|
|
12199
12253
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
@@ -12207,8 +12261,8 @@ function TermsOfService() {
|
|
|
12207
12261
|
|
|
12208
12262
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
12209
12263
|
var import_react_query32 = require("@tanstack/react-query");
|
|
12210
|
-
var
|
|
12211
|
-
var
|
|
12264
|
+
var import_lucide_react46 = require("lucide-react");
|
|
12265
|
+
var import_react52 = require("react");
|
|
12212
12266
|
|
|
12213
12267
|
// src/internal/components/TransactionsMenu/api.ts
|
|
12214
12268
|
init_base();
|
|
@@ -12499,7 +12553,7 @@ async function getTransactionsListQuery(address) {
|
|
|
12499
12553
|
}
|
|
12500
12554
|
|
|
12501
12555
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
12502
|
-
var
|
|
12556
|
+
var import_lucide_react45 = require("lucide-react");
|
|
12503
12557
|
|
|
12504
12558
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
12505
12559
|
init_base();
|
|
@@ -12584,7 +12638,7 @@ function TransactionsGroup(props) {
|
|
|
12584
12638
|
children: [
|
|
12585
12639
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
12586
12640
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
12587
|
-
parent.direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
12641
|
+
parent.direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react45.ChevronLeft, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react45.ChevronRight, { className: "w-4 h-4" }),
|
|
12588
12642
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
12589
12643
|
parent.status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(NegativeIcon, {})
|
|
12590
12644
|
] }),
|
|
@@ -12606,7 +12660,7 @@ function TransactionsGroup(props) {
|
|
|
12606
12660
|
onClick: (e) => {
|
|
12607
12661
|
e.stopPropagation();
|
|
12608
12662
|
},
|
|
12609
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
12663
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react45.Copy, { className: "w-4 h-4" })
|
|
12610
12664
|
}
|
|
12611
12665
|
),
|
|
12612
12666
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
@@ -12678,7 +12732,7 @@ function TransactionsMenu() {
|
|
|
12678
12732
|
const page = useLayoutDataStore((st) => st.page);
|
|
12679
12733
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12680
12734
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
12681
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
12735
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react52.useState)({});
|
|
12682
12736
|
const {
|
|
12683
12737
|
data: txHistoryGroups = [],
|
|
12684
12738
|
isLoading: isTxHistoryLoading,
|
|
@@ -12690,7 +12744,7 @@ function TransactionsMenu() {
|
|
|
12690
12744
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
12691
12745
|
queryFn: () => getTransactionsListQuery(address)
|
|
12692
12746
|
});
|
|
12693
|
-
const refreshTxHistory = (0,
|
|
12747
|
+
const refreshTxHistory = (0, import_react52.useCallback)(
|
|
12694
12748
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
12695
12749
|
[qc, address]
|
|
12696
12750
|
);
|
|
@@ -12705,7 +12759,7 @@ function TransactionsMenu() {
|
|
|
12705
12759
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
12706
12760
|
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12707
12761
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12708
|
-
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12762
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react46.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
12709
12763
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
12710
12764
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12711
12765
|
Button,
|
|
@@ -12715,13 +12769,13 @@ function TransactionsMenu() {
|
|
|
12715
12769
|
onClick: refreshTxHistory,
|
|
12716
12770
|
disabled: isTxHistoryFetching,
|
|
12717
12771
|
title: "Refresh transactions",
|
|
12718
|
-
children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12772
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react46.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react46.RefreshCw, { className: "h-4 w-4" })
|
|
12719
12773
|
}
|
|
12720
12774
|
)
|
|
12721
12775
|
] }),
|
|
12722
|
-
isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12776
|
+
isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react46.Loader, { className: "h-5 w-5 animate-spin" }) }),
|
|
12723
12777
|
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
12724
|
-
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12778
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react46.XCircle, { className: "w-4 h-4 flex-none" }),
|
|
12725
12779
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
12726
12780
|
] }),
|
|
12727
12781
|
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
|
|
@@ -12848,7 +12902,7 @@ function usePageMapper() {
|
|
|
12848
12902
|
setIsDialogOpen,
|
|
12849
12903
|
setIsDialogClosing
|
|
12850
12904
|
} = useLayoutStore();
|
|
12851
|
-
const closeDialog = (0,
|
|
12905
|
+
const closeDialog = (0, import_react53.useCallback)(() => {
|
|
12852
12906
|
setIsDialogClosing(true);
|
|
12853
12907
|
setTimeout(() => {
|
|
12854
12908
|
setDialogContent(null);
|
|
@@ -12859,7 +12913,7 @@ function usePageMapper() {
|
|
|
12859
12913
|
setIsDialogOpen(false);
|
|
12860
12914
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
12861
12915
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
12862
|
-
const openDialog = (0,
|
|
12916
|
+
const openDialog = (0, import_react53.useCallback)(
|
|
12863
12917
|
(pageItem) => {
|
|
12864
12918
|
const PageContentComponent = pageItem.component;
|
|
12865
12919
|
setDialogTitle(pageItem.title);
|
|
@@ -12869,7 +12923,7 @@ function usePageMapper() {
|
|
|
12869
12923
|
},
|
|
12870
12924
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
12871
12925
|
);
|
|
12872
|
-
(0,
|
|
12926
|
+
(0, import_react53.useEffect)(() => {
|
|
12873
12927
|
if (page === null) return closeDialog();
|
|
12874
12928
|
const pageItem = protectedRoutes[page];
|
|
12875
12929
|
if (!pageItem) {
|
|
@@ -12882,7 +12936,7 @@ function usePageMapper() {
|
|
|
12882
12936
|
}
|
|
12883
12937
|
|
|
12884
12938
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
12885
|
-
var
|
|
12939
|
+
var import_react54 = require("react");
|
|
12886
12940
|
init_auth();
|
|
12887
12941
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
12888
12942
|
id: "email-not-connected",
|
|
@@ -12899,13 +12953,13 @@ function useSettingsNotifications() {
|
|
|
12899
12953
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
12900
12954
|
const providers = import_auth3.jwtTokenManager.getProviders();
|
|
12901
12955
|
const hasEmail = providers.includes("email");
|
|
12902
|
-
(0,
|
|
12956
|
+
(0, import_react54.useEffect)(() => {
|
|
12903
12957
|
setSettingsNotifications({
|
|
12904
12958
|
...BACKUP_IS_NOT_CREATED_NOTIFICATION,
|
|
12905
12959
|
status: hasServerVault ? "resolved" : "active"
|
|
12906
12960
|
});
|
|
12907
12961
|
}, [hasServerVault, setSettingsNotifications]);
|
|
12908
|
-
(0,
|
|
12962
|
+
(0, import_react54.useEffect)(() => {
|
|
12909
12963
|
setSettingsNotifications({
|
|
12910
12964
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
12911
12965
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -12914,7 +12968,7 @@ function useSettingsNotifications() {
|
|
|
12914
12968
|
}
|
|
12915
12969
|
|
|
12916
12970
|
// src/internal/hooks/useWalletStatus.ts
|
|
12917
|
-
var
|
|
12971
|
+
var import_react55 = require("react");
|
|
12918
12972
|
init_auth();
|
|
12919
12973
|
function useWalletStatus() {
|
|
12920
12974
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -12924,7 +12978,7 @@ function useWalletStatus() {
|
|
|
12924
12978
|
config: { current: config },
|
|
12925
12979
|
callbacks
|
|
12926
12980
|
} = useLumiaPassportConfig();
|
|
12927
|
-
(0,
|
|
12981
|
+
(0, import_react55.useEffect)(() => {
|
|
12928
12982
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
12929
12983
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
12930
12984
|
const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
|
|
@@ -12953,7 +13007,7 @@ function LumiaPassportDialog() {
|
|
|
12953
13007
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
12954
13008
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12955
13009
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
12956
|
-
(0,
|
|
13010
|
+
(0, import_react56.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
12957
13011
|
usePageMapper();
|
|
12958
13012
|
useAutoConnect();
|
|
12959
13013
|
useCheckVaultStatus();
|
|
@@ -12994,23 +13048,23 @@ function LumiaPassportDialog() {
|
|
|
12994
13048
|
}
|
|
12995
13049
|
|
|
12996
13050
|
// src/internal/components/TssManager.tsx
|
|
12997
|
-
var
|
|
13051
|
+
var import_react57 = __toESM(require("react"), 1);
|
|
12998
13052
|
init_auth();
|
|
12999
13053
|
init_clients();
|
|
13000
|
-
var TssManagerWithRef =
|
|
13054
|
+
var TssManagerWithRef = import_react57.default.forwardRef((props, ref) => {
|
|
13001
13055
|
const { mpcPin } = props;
|
|
13002
13056
|
const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
|
|
13003
13057
|
const setStatus = useLumiaPassportSession((st) => st.setStatus);
|
|
13004
13058
|
const setSession = useLumiaPassportSession((st) => st.setSession);
|
|
13005
13059
|
const setAddress = useLumiaPassportSession((st) => st.setAddress);
|
|
13006
|
-
const onSessionCreated = (0,
|
|
13060
|
+
const onSessionCreated = (0, import_react57.useCallback)(
|
|
13007
13061
|
(session, address) => {
|
|
13008
13062
|
setSession(session);
|
|
13009
13063
|
setAddress(address);
|
|
13010
13064
|
},
|
|
13011
13065
|
[setSession, setAddress]
|
|
13012
13066
|
);
|
|
13013
|
-
const createSessionWithKeyshare =
|
|
13067
|
+
const createSessionWithKeyshare = import_react57.default.useCallback(
|
|
13014
13068
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
13015
13069
|
setStatus("checking key management setup...");
|
|
13016
13070
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -13031,14 +13085,14 @@ var TssManagerWithRef = import_react56.default.forwardRef((props, ref) => {
|
|
|
13031
13085
|
},
|
|
13032
13086
|
[setStatus, usePaymaster, mpcPin]
|
|
13033
13087
|
);
|
|
13034
|
-
|
|
13088
|
+
import_react57.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
13035
13089
|
return null;
|
|
13036
13090
|
});
|
|
13037
13091
|
|
|
13038
13092
|
// src/internal/components/WalletConnectHandler.tsx
|
|
13039
13093
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
13040
13094
|
var import_react_query33 = require("@tanstack/react-query");
|
|
13041
|
-
var
|
|
13095
|
+
var import_react58 = __toESM(require("react"), 1);
|
|
13042
13096
|
var import_wagmi5 = require("wagmi");
|
|
13043
13097
|
init_wallet();
|
|
13044
13098
|
function WalletConnectHandler() {
|
|
@@ -13056,7 +13110,7 @@ function WalletConnectHandler() {
|
|
|
13056
13110
|
const setManageWalletLinkError = useManageWalletStore((st) => st.setLinkError);
|
|
13057
13111
|
const setLinkIsLoading = useManageWalletStore((st) => st.setLinkIsLoading);
|
|
13058
13112
|
const setProviderType = useManageWalletStore((st) => st.setProviderType);
|
|
13059
|
-
const onLinkingComplete = (0,
|
|
13113
|
+
const onLinkingComplete = (0, import_react58.useCallback)(
|
|
13060
13114
|
async (success) => {
|
|
13061
13115
|
setIsWalletLinking(false);
|
|
13062
13116
|
if (!success && !passportWalletAddress) {
|
|
@@ -13083,8 +13137,8 @@ function WalletConnectHandler() {
|
|
|
13083
13137
|
},
|
|
13084
13138
|
[qc, passportWalletAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
|
|
13085
13139
|
);
|
|
13086
|
-
const [hasStartedLinking, setHasStartedLinking] =
|
|
13087
|
-
(0,
|
|
13140
|
+
const [hasStartedLinking, setHasStartedLinking] = import_react58.default.useState(false);
|
|
13141
|
+
(0, import_react58.useEffect)(() => {
|
|
13088
13142
|
if (isWalletLinking && !hasStartedLinking) {
|
|
13089
13143
|
setHasStartedLinking(true);
|
|
13090
13144
|
setProviderType(null);
|
|
@@ -13104,7 +13158,7 @@ function WalletConnectHandler() {
|
|
|
13104
13158
|
if (isConnected) disconnect();
|
|
13105
13159
|
}
|
|
13106
13160
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
|
|
13107
|
-
(0,
|
|
13161
|
+
(0, import_react58.useEffect)(() => {
|
|
13108
13162
|
if (hasStartedLinking && !connectModalOpen && !isConnected && isWalletLinking) {
|
|
13109
13163
|
console.log("[WalletConnectHandler] Modal closed without connecting");
|
|
13110
13164
|
onLinkingComplete(false);
|
|
@@ -13180,7 +13234,7 @@ function WalletConnectHandler() {
|
|
|
13180
13234
|
setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
|
|
13181
13235
|
}
|
|
13182
13236
|
});
|
|
13183
|
-
(0,
|
|
13237
|
+
(0, import_react58.useEffect)(() => {
|
|
13184
13238
|
if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
13185
13239
|
console.log("[WalletConnectHandler] handleWalletSign triggered");
|
|
13186
13240
|
handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
|
|
@@ -13216,7 +13270,7 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
|
13216
13270
|
}));
|
|
13217
13271
|
function LumiaPassportSessionProvider({ children }) {
|
|
13218
13272
|
const config = useLumiaPassportConfig().config;
|
|
13219
|
-
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
13273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react59.Fragment, { children: [
|
|
13220
13274
|
children,
|
|
13221
13275
|
config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(WalletConnectHandler, {}),
|
|
13222
13276
|
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BalanceFeedProvider, {}),
|
|
@@ -13268,14 +13322,14 @@ var LumiaWagmiProvider = ({ children }) => {
|
|
|
13268
13322
|
|
|
13269
13323
|
// src/context/LumiaPassportContext.tsx
|
|
13270
13324
|
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
13271
|
-
var LumiaPassportContext = (0,
|
|
13325
|
+
var LumiaPassportContext = (0, import_react60.createContext)(void 0);
|
|
13272
13326
|
function LumiaPassportProvider(props) {
|
|
13273
13327
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
13274
13328
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
13275
13329
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
13276
|
-
(0,
|
|
13277
|
-
const config = (0,
|
|
13278
|
-
const updateConfig = (0,
|
|
13330
|
+
(0, import_react60.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
13331
|
+
const config = (0, import_react60.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
13332
|
+
const updateConfig = (0, import_react60.useCallback)((updates) => {
|
|
13279
13333
|
const prev = config.current;
|
|
13280
13334
|
const next = { ...prev };
|
|
13281
13335
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -13310,7 +13364,7 @@ function LumiaPassportProvider(props) {
|
|
|
13310
13364
|
}
|
|
13311
13365
|
config.current = next;
|
|
13312
13366
|
}, []);
|
|
13313
|
-
(0,
|
|
13367
|
+
(0, import_react60.useEffect)(() => {
|
|
13314
13368
|
if (typeof window === "undefined" || !projectId) return;
|
|
13315
13369
|
const mergedConfig = (0, import_lodash_es4.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
13316
13370
|
updateConfig(mergedConfig);
|
|
@@ -13355,18 +13409,18 @@ function LumiaPassportProvider(props) {
|
|
|
13355
13409
|
console.error("[LumiaPassport] Error setting up iframe manager:", error);
|
|
13356
13410
|
}
|
|
13357
13411
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
13358
|
-
const contextValue = (0,
|
|
13412
|
+
const contextValue = (0, import_react60.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
13359
13413
|
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
13360
13414
|
}
|
|
13361
13415
|
var useLumiaPassportConfig = () => {
|
|
13362
|
-
const ctx = (0,
|
|
13416
|
+
const ctx = (0, import_react60.useContext)(LumiaPassportContext);
|
|
13363
13417
|
if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
|
|
13364
13418
|
return ctx;
|
|
13365
13419
|
};
|
|
13366
13420
|
|
|
13367
13421
|
// src/components/ConnectWalletButton.tsx
|
|
13368
|
-
var
|
|
13369
|
-
var
|
|
13422
|
+
var import_lucide_react47 = require("lucide-react");
|
|
13423
|
+
var import_react61 = require("react");
|
|
13370
13424
|
init_auth();
|
|
13371
13425
|
var import_jsx_runtime74 = (
|
|
13372
13426
|
/** external Buttons can be provided */
|
|
@@ -13390,10 +13444,10 @@ function ConnectWalletButton(props) {
|
|
|
13390
13444
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
13391
13445
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
13392
13446
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
13393
|
-
(0,
|
|
13447
|
+
(0, import_react61.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
13394
13448
|
const avatar = import_auth3.jwtTokenManager.getAvatar();
|
|
13395
13449
|
const displayName = import_auth3.jwtTokenManager.getDisplayName();
|
|
13396
|
-
const indicators = (0,
|
|
13450
|
+
const indicators = (0, import_react61.useMemo)(() => {
|
|
13397
13451
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
13398
13452
|
if (!userId) return { server: false, local: false, backup: false };
|
|
13399
13453
|
const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -13408,7 +13462,7 @@ function ConnectWalletButton(props) {
|
|
|
13408
13462
|
disabled: isConnecting,
|
|
13409
13463
|
onClick: () => setPage("auth" /* AUTH */),
|
|
13410
13464
|
children: [
|
|
13411
|
-
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13465
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react47.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
13412
13466
|
connectButtonLabel
|
|
13413
13467
|
]
|
|
13414
13468
|
}
|
|
@@ -13429,7 +13483,7 @@ function ConnectWalletButton(props) {
|
|
|
13429
13483
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
13430
13484
|
),
|
|
13431
13485
|
children: [
|
|
13432
|
-
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13486
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react47.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
13433
13487
|
connectButtonLabel.toUpperCase()
|
|
13434
13488
|
]
|
|
13435
13489
|
}
|
|
@@ -13457,7 +13511,7 @@ function ConnectWalletButton(props) {
|
|
|
13457
13511
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
13458
13512
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "group relative", children: [
|
|
13459
13513
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13460
|
-
|
|
13514
|
+
import_lucide_react47.Cloud,
|
|
13461
13515
|
{
|
|
13462
13516
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13463
13517
|
}
|
|
@@ -13479,7 +13533,7 @@ function ConnectWalletButton(props) {
|
|
|
13479
13533
|
] }),
|
|
13480
13534
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "group relative", children: [
|
|
13481
13535
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13482
|
-
|
|
13536
|
+
import_lucide_react47.Laptop,
|
|
13483
13537
|
{
|
|
13484
13538
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13485
13539
|
}
|
|
@@ -13501,7 +13555,7 @@ function ConnectWalletButton(props) {
|
|
|
13501
13555
|
] }),
|
|
13502
13556
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "group relative", children: [
|
|
13503
13557
|
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13504
|
-
|
|
13558
|
+
import_lucide_react47.Shield,
|
|
13505
13559
|
{
|
|
13506
13560
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13507
13561
|
}
|
|
@@ -13563,13 +13617,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
|
|
|
13563
13617
|
var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
|
|
13564
13618
|
|
|
13565
13619
|
// src/hooks/useLumiaPassportOpen.ts
|
|
13566
|
-
var
|
|
13620
|
+
var import_react62 = require("react");
|
|
13567
13621
|
function useLumiaPassportOpen() {
|
|
13568
13622
|
const page = useLayoutDataStore((st) => st.page);
|
|
13569
13623
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13570
13624
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
13571
13625
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13572
|
-
const open = (0,
|
|
13626
|
+
const open = (0, import_react62.useCallback)(
|
|
13573
13627
|
(passportPage, params) => {
|
|
13574
13628
|
if (!address) return setPage("auth" /* AUTH */);
|
|
13575
13629
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -13578,12 +13632,12 @@ function useLumiaPassportOpen() {
|
|
|
13578
13632
|
},
|
|
13579
13633
|
[setPage, setPageParams, address]
|
|
13580
13634
|
);
|
|
13581
|
-
const close = (0,
|
|
13635
|
+
const close = (0, import_react62.useCallback)(() => setPage(null), [setPage]);
|
|
13582
13636
|
return { open, close, isOpen: page !== null };
|
|
13583
13637
|
}
|
|
13584
13638
|
|
|
13585
13639
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
13586
|
-
var
|
|
13640
|
+
var import_react63 = require("react");
|
|
13587
13641
|
function useLumiaPassportColorMode() {
|
|
13588
13642
|
const {
|
|
13589
13643
|
config: { current: config }
|
|
@@ -13591,14 +13645,14 @@ function useLumiaPassportColorMode() {
|
|
|
13591
13645
|
const preferedColorMode = config?.preferedColorMode;
|
|
13592
13646
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
13593
13647
|
const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
|
|
13594
|
-
const setColorMode = (0,
|
|
13648
|
+
const setColorMode = (0, import_react63.useCallback)(
|
|
13595
13649
|
(mode) => {
|
|
13596
13650
|
localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
|
|
13597
13651
|
handleStoreColorMode(mode);
|
|
13598
13652
|
},
|
|
13599
13653
|
[handleStoreColorMode]
|
|
13600
13654
|
);
|
|
13601
|
-
(0,
|
|
13655
|
+
(0, import_react63.useEffect)(() => {
|
|
13602
13656
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
13603
13657
|
if (!targetColorMode && !preferedColorMode) {
|
|
13604
13658
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -13615,7 +13669,7 @@ function useLumiaPassportColorMode() {
|
|
|
13615
13669
|
}
|
|
13616
13670
|
|
|
13617
13671
|
// src/components/ThemeToggle.tsx
|
|
13618
|
-
var
|
|
13672
|
+
var import_lucide_react48 = require("lucide-react");
|
|
13619
13673
|
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
13620
13674
|
function ThemeToggle(props) {
|
|
13621
13675
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
@@ -13632,7 +13686,7 @@ function ThemeToggle(props) {
|
|
|
13632
13686
|
variant: "ghost",
|
|
13633
13687
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
13634
13688
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
13635
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
13689
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react48.Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react48.Moon, { className: "w-4 h-4" })
|
|
13636
13690
|
}
|
|
13637
13691
|
)
|
|
13638
13692
|
}
|
|
@@ -13641,7 +13695,7 @@ function ThemeToggle(props) {
|
|
|
13641
13695
|
|
|
13642
13696
|
// src/context/RainbowKitContext.tsx
|
|
13643
13697
|
var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
13644
|
-
var
|
|
13698
|
+
var import_react64 = require("react");
|
|
13645
13699
|
var import_wagmi9 = require("wagmi");
|
|
13646
13700
|
|
|
13647
13701
|
// src/config/rainbowkit.ts
|
|
@@ -13873,8 +13927,8 @@ var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
|
13873
13927
|
function LumiaRainbowKitProvider({ children }) {
|
|
13874
13928
|
const config = useLumiaPassportConfig().config;
|
|
13875
13929
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
13876
|
-
const rainbowConfig2 = (0,
|
|
13877
|
-
const customTheme = (0,
|
|
13930
|
+
const rainbowConfig2 = (0, import_react64.useMemo)(() => createRainbowConfig(config.current?.wallet?.walletConnectProjectId), [config]);
|
|
13931
|
+
const customTheme = (0, import_react64.useMemo)(
|
|
13878
13932
|
() => colorMode === "dark" ? {
|
|
13879
13933
|
...(0, import_rainbowkit3.darkTheme)(),
|
|
13880
13934
|
colors: { ...(0, import_rainbowkit3.darkTheme)().colors, ...rainbowTheme.darkMode.colors },
|
|
@@ -13893,7 +13947,7 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
13893
13947
|
}
|
|
13894
13948
|
|
|
13895
13949
|
// src/internal/components/UserOpStatus.tsx
|
|
13896
|
-
var
|
|
13950
|
+
var import_lucide_react50 = require("lucide-react");
|
|
13897
13951
|
var React12 = __toESM(require("react"), 1);
|
|
13898
13952
|
init_base();
|
|
13899
13953
|
|
|
@@ -13905,7 +13959,7 @@ function cn2(...inputs) {
|
|
|
13905
13959
|
}
|
|
13906
13960
|
|
|
13907
13961
|
// src/internal/components/Address.tsx
|
|
13908
|
-
var
|
|
13962
|
+
var import_lucide_react49 = require("lucide-react");
|
|
13909
13963
|
var React11 = __toESM(require("react"), 1);
|
|
13910
13964
|
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
13911
13965
|
function toExplorerAddressUrl(address, chain) {
|
|
@@ -13947,7 +14001,7 @@ var Address = ({
|
|
|
13947
14001
|
} catch {
|
|
13948
14002
|
}
|
|
13949
14003
|
},
|
|
13950
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14004
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react49.Copy, { className: "h-4 w-4" })
|
|
13951
14005
|
}
|
|
13952
14006
|
),
|
|
13953
14007
|
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
@@ -13958,7 +14012,7 @@ var Address = ({
|
|
|
13958
14012
|
rel: "noreferrer noopener",
|
|
13959
14013
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
13960
14014
|
title: "Open in explorer",
|
|
13961
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14015
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react49.ExternalLink, { className: "h-4 w-4" })
|
|
13962
14016
|
}
|
|
13963
14017
|
)
|
|
13964
14018
|
] });
|
|
@@ -14124,30 +14178,30 @@ var UserOpStatus = ({
|
|
|
14124
14178
|
if (receipt) {
|
|
14125
14179
|
const ok = !!receipt.success;
|
|
14126
14180
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
14127
|
-
ok ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14181
|
+
ok ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.AlertCircle, { className: "h-3 w-3" }),
|
|
14128
14182
|
ok ? "Included" : "Failed"
|
|
14129
14183
|
] });
|
|
14130
14184
|
}
|
|
14131
14185
|
if (rejected) {
|
|
14132
14186
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
14133
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14187
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.AlertCircle, { className: "h-3 w-3" }),
|
|
14134
14188
|
" Rejected by bundler"
|
|
14135
14189
|
] });
|
|
14136
14190
|
}
|
|
14137
14191
|
if (timedOut) {
|
|
14138
14192
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Badge, { variant: "warning", className: "gap-1", children: [
|
|
14139
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14193
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.AlertCircle, { className: "h-3 w-3" }),
|
|
14140
14194
|
" Timeout - may be rejected"
|
|
14141
14195
|
] });
|
|
14142
14196
|
}
|
|
14143
14197
|
if (mempool) {
|
|
14144
14198
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Badge, { variant: "outline", className: "gap-1", children: [
|
|
14145
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14199
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.Clock, { className: "h-3 w-3" }),
|
|
14146
14200
|
" Pending in bundler"
|
|
14147
14201
|
] });
|
|
14148
14202
|
}
|
|
14149
14203
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
14150
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14204
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.Clock, { className: "h-3 w-3" }),
|
|
14151
14205
|
" Waiting"
|
|
14152
14206
|
] });
|
|
14153
14207
|
};
|
|
@@ -14166,7 +14220,7 @@ var UserOpStatus = ({
|
|
|
14166
14220
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
14167
14221
|
] }),
|
|
14168
14222
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
14169
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14223
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
14170
14224
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
14171
14225
|
] })
|
|
14172
14226
|
] }),
|
|
@@ -14185,7 +14239,7 @@ var UserOpStatus = ({
|
|
|
14185
14239
|
} catch {
|
|
14186
14240
|
}
|
|
14187
14241
|
},
|
|
14188
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14242
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.Copy, { className: "h-3.5 w-3.5" })
|
|
14189
14243
|
}
|
|
14190
14244
|
)
|
|
14191
14245
|
] }),
|
|
@@ -14204,7 +14258,7 @@ var UserOpStatus = ({
|
|
|
14204
14258
|
} catch {
|
|
14205
14259
|
}
|
|
14206
14260
|
},
|
|
14207
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14261
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.Copy, { className: "h-3.5 w-3.5" })
|
|
14208
14262
|
}
|
|
14209
14263
|
),
|
|
14210
14264
|
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
@@ -14215,7 +14269,7 @@ var UserOpStatus = ({
|
|
|
14215
14269
|
rel: "noreferrer noopener",
|
|
14216
14270
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
14217
14271
|
title: "Open in explorer",
|
|
14218
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14272
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
14219
14273
|
}
|
|
14220
14274
|
)
|
|
14221
14275
|
] }),
|
|
@@ -14244,16 +14298,16 @@ var UserOpStatus = ({
|
|
|
14244
14298
|
] })
|
|
14245
14299
|
] }),
|
|
14246
14300
|
error && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
14247
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14301
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.AlertCircle, { className: "h-4 w-4" }),
|
|
14248
14302
|
" ",
|
|
14249
14303
|
error
|
|
14250
14304
|
] }),
|
|
14251
14305
|
rejected && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
14252
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14306
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.AlertCircle, { className: "h-4 w-4" }),
|
|
14253
14307
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
14254
14308
|
] }),
|
|
14255
14309
|
timedOut && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
14256
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
14310
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react50.AlertCircle, { className: "h-4 w-4" }),
|
|
14257
14311
|
"Stopped polling after ",
|
|
14258
14312
|
Math.round(maxPollTimeMs / 1e3),
|
|
14259
14313
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -14264,7 +14318,7 @@ var UserOpStatus = ({
|
|
|
14264
14318
|
};
|
|
14265
14319
|
|
|
14266
14320
|
// src/internal/components/Hash.tsx
|
|
14267
|
-
var
|
|
14321
|
+
var import_lucide_react51 = require("lucide-react");
|
|
14268
14322
|
var React13 = __toESM(require("react"), 1);
|
|
14269
14323
|
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
14270
14324
|
function toExplorerUrl(kind, value, chain) {
|
|
@@ -14308,7 +14362,7 @@ var Hash = ({
|
|
|
14308
14362
|
} catch {
|
|
14309
14363
|
}
|
|
14310
14364
|
},
|
|
14311
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14365
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react51.Copy, { className: "h-4 w-4" })
|
|
14312
14366
|
}
|
|
14313
14367
|
),
|
|
14314
14368
|
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
@@ -14319,21 +14373,21 @@ var Hash = ({
|
|
|
14319
14373
|
rel: "noreferrer noopener",
|
|
14320
14374
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14321
14375
|
title: "Open in explorer",
|
|
14322
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14376
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react51.ExternalLink, { className: "h-4 w-4" })
|
|
14323
14377
|
}
|
|
14324
14378
|
)
|
|
14325
14379
|
] });
|
|
14326
14380
|
};
|
|
14327
14381
|
|
|
14328
14382
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
14329
|
-
var
|
|
14383
|
+
var import_react65 = require("react");
|
|
14330
14384
|
init_base();
|
|
14331
14385
|
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
14332
14386
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
14333
|
-
const [transactions, setTransactions] = (0,
|
|
14334
|
-
const [loading, setLoading] = (0,
|
|
14335
|
-
const [error, setError] = (0,
|
|
14336
|
-
(0,
|
|
14387
|
+
const [transactions, setTransactions] = (0, import_react65.useState)([]);
|
|
14388
|
+
const [loading, setLoading] = (0, import_react65.useState)(true);
|
|
14389
|
+
const [error, setError] = (0, import_react65.useState)(null);
|
|
14390
|
+
(0, import_react65.useEffect)(() => {
|
|
14337
14391
|
const fetchTransactions = async () => {
|
|
14338
14392
|
try {
|
|
14339
14393
|
setLoading(true);
|
|
@@ -14635,11 +14689,11 @@ function useUserOpStatus(options = {}) {
|
|
|
14635
14689
|
|
|
14636
14690
|
// src/hooks/useLogout.ts
|
|
14637
14691
|
var import_auth20 = require("@lumiapassport/core/auth");
|
|
14638
|
-
var
|
|
14692
|
+
var import_react66 = require("react");
|
|
14639
14693
|
function useLogout() {
|
|
14640
14694
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
|
|
14641
14695
|
const { callbacks } = useLumiaPassportConfig();
|
|
14642
|
-
const logout2 = (0,
|
|
14696
|
+
const logout2 = (0, import_react66.useCallback)(async () => {
|
|
14643
14697
|
const prevAddress = address;
|
|
14644
14698
|
let userId = null;
|
|
14645
14699
|
setIsLoading(true);
|