@lumiapassport/ui-kit 1.12.6 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4299,26 +4299,27 @@ __export(index_exports, {
4299
4299
  module.exports = __toCommonJS(index_exports);
4300
4300
 
4301
4301
  // src/styles/built.css
4302
- var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-1\\.5{margin-right:.375rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-1\\.5{margin-top:.375rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[32px\\]{height:32px}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[60dvh\\]{max-height:60dvh}.lumia-scope .max-h-\\[60vh\\]{max-height:60vh}.lumia-scope .max-h-\\[80vh\\]{max-height:80vh}.lumia-scope .\\!w-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .\\!bg-transparent{background-color:transparent!important}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#0088cc\\]{--tw-bg-opacity:1;background-color:rgb(0 136 204/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Inter;src:url(@/src/styles/Inter-VariableFont_opsz,wght.ttf) format("truetype-variations");font-weight:100 900;font-stretch:75% 125%;font-style:normal;font-display:swap}.lumia-scope{--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.8));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.6));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.9));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.7));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,system-ui,Inter,sans-serif;font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{font-family:system-ui,-apple-system,sans-serif!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:calc(100% + 8px);padding-right:4px;overflow-y:auto;max-height:calc(var(--l-pass-maw)*2/3)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .file\\:mr-3::file-selector-button{margin-right:.75rem}.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-bg-info\\)\\]::file-selector-button{background-color:var(--l-pass-bg-info)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-3::file-selector-button{padding-left:.75rem;padding-right:.75rem}.lumia-scope .file\\:py-1\\.5::file-selector-button{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:text-xs::file-selector-button{font-size:.75rem;line-height:1rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-info\\)\\]::file-selector-button{color:var(--l-pass-info)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[\\#0077bb\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 119 187/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-500:hover{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .hover\\:file\\:opacity-90::file-selector-button:hover{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-2: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-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.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-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
4302
+ var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-1\\.5{margin-right:.375rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-1\\.5{margin-top:.375rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[32px\\]{height:32px}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[60vh\\]{max-height:60vh}.lumia-scope .max-h-\\[80vh\\]{max-height:80vh}.lumia-scope .\\!w-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-\\[var\\(--l-pass-list-bd\\)\\]{border-color:var(--l-pass-list-bd)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900\\/40{border-color:rgba(30,58,138,.4)}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-800\\/80{border-color:rgba(153,27,27,.8)}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900\\/30{background-color:rgba(20,83,45,.3)}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400\\/80{color:rgba(96,165,250,.8)}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Inter;src:url(@/src/styles/Inter-VariableFont_opsz,wght.ttf) format("truetype-variations");font-weight:100 900;font-stretch:75% 125%;font-style:normal;font-display:swap}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff);margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-style:solid;outline:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-l,0);overflow-y:auto;max-height:320px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .file\\:mr-3::file-selector-button{margin-right:.75rem}.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-bg-info\\)\\]::file-selector-button{background-color:var(--l-pass-bg-info)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-3::file-selector-button{padding-left:.75rem;padding-right:.75rem}.lumia-scope .file\\:py-1\\.5::file-selector-button{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:text-xs::file-selector-button{font-size:.75rem;line-height:1rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-info\\)\\]::file-selector-button{color:var(--l-pass-info)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .hover\\:file\\:opacity-90::file-selector-button:hover{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-2: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-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
4303
4303
 
4304
4304
  // src/context/LumiaPassportContext.tsx
4305
4305
  var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
4306
- var import_react45 = require("react");
4306
+ var import_lodash_es2 = require("lodash-es");
4307
+ var import_react47 = require("react");
4307
4308
  init_lumiaPassport();
4308
4309
  init_iframe_manager();
4309
4310
 
4310
4311
  // src/context/LumiaPassportSessionContext.tsx
4311
- var import_react44 = require("react");
4312
+ var import_react46 = require("react");
4312
4313
  var import_zustand5 = require("zustand");
4313
4314
 
4314
4315
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
4315
4316
  var import_framer_motion4 = require("framer-motion");
4316
- var import_react39 = require("react");
4317
+ var import_react41 = require("react");
4317
4318
 
4318
4319
  // package.json
4319
4320
  var package_default = {
4320
4321
  name: "@lumiapassport/ui-kit",
4321
- version: "1.12.6",
4322
+ version: "1.13.1",
4322
4323
  description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
4323
4324
  type: "module",
4324
4325
  main: "./dist/index.cjs",
@@ -4470,8 +4471,10 @@ var import_zustand = require("zustand");
4470
4471
  // src/internal/constants.ts
4471
4472
  var import_lucide_react2 = require("lucide-react");
4472
4473
  init_assets();
4473
- var DEFAULT_MAIN_MENU_HEIGHT = 90;
4474
4474
  var DEFAULT_AUTH_MENU_HEIGHT = 253;
4475
+ var DEFAULT_MAIN_MENU_HEIGHT = 90;
4476
+ var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
4477
+ var MAX_LIST_HEIGHT = 320;
4475
4478
  var MAIN_DIALOG_ANIMATION_SPEED = 375;
4476
4479
  var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
4477
4480
  var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
@@ -4573,37 +4576,32 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
4573
4576
  default: cn(
4574
4577
  "border border-transparent",
4575
4578
  "bg-[var(--l-pass-primary)] text-[var(--l-pass-fg-inverted)]",
4576
- "hover:bg-[var(--l-pass-primary-h)] disabled:hover:bg-[var(--l-pass-primary)] disabled:active:bg-[var(--l-pass-primary)]",
4577
- "active:bg-[var(--l-pass-primary-a)]"
4579
+ "hover:bg-[var(--l-pass-primary-h)]",
4580
+ "active:bg-[var(--l-pass-primary-a)]",
4581
+ "disabled:hover:bg-[var(--l-pass-primary)] disabled:active:bg-[var(--l-pass-primary)]"
4578
4582
  ),
4579
4583
  outline: cn(
4580
4584
  "border border-[var(--l-pass-bd)] bg-transparent text-[var(--l-pass-fg)]",
4581
- "hover:text-[var(--l-pass-fg-h)] hover:bg-[var(--l-pass-secondary-h)]",
4582
- "active:text-[var(--l-pass-fg-a)] active:bg-[var(--l-pass-secondary-a)]"
4585
+ "hover:text-[var(--l-pass-fg-h)]",
4586
+ "active:text-[var(--l-pass-fg-a)]",
4587
+ "disabled:hover:text-[var(--l-pass-fg)] disabled:active:text-[var(--l-pass-fg)]"
4583
4588
  ),
4584
4589
  ghost: cn(
4585
- "border border-transparent",
4586
- "bg-transparent text-[var(--l-pass-fg)]",
4590
+ "border border-transparent bg-transparent text-[var(--l-pass-fg)]",
4587
4591
  "hover:text-[var(--l-pass-fg-h)]",
4588
- "disabled:hover:text-[var(--l-pass-fg)] disabled:active:text-[var(--l-pass-fg)]",
4589
- "active:text-[var(--l-pass-fg-a)]"
4590
- ),
4591
- // deprecate
4592
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
4593
- secondary: "bg-gray-600 text-white hover:bg-gray-500 dark:bg-gray-700 dark:hover:bg-gray-600",
4594
- link: "bg-transparent !bg-transparent text-blue-600 hover:text-blue-700 underline-offset-4 hover:underline",
4595
- telegram: "bg-[#0088cc] text-white hover:bg-[#0077bb]",
4596
- success: "bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600"
4592
+ "active:text-[var(--l-pass-fg-a)]",
4593
+ "disabled:hover:text-[var(--l-pass-fg)] disabled:active:text-[var(--l-pass-fg)]"
4594
+ )
4597
4595
  },
4598
4596
  size: {
4599
4597
  small: "h-6 px-2 rounded-[5px]",
4600
4598
  medium: "h-8 px-4 rounded-[var(--l-pass-el-bdrs)]",
4601
4599
  large: "h-12 px-4 rounded-[var(--l-pass-el-bdrs)]",
4602
- icon: "h-8 w-8 p-0 rounded-[5px]",
4600
+ icon: "h-8 w-8 p-0 rounded-[5px]"
4603
4601
  // deprecate
4604
- default: "h-10 px-4 py-2",
4605
- sm: "h-9 rounded-xl px-3",
4606
- lg: "h-11 rounded-xl px-8"
4602
+ // default: 'h-10 px-4 py-2',
4603
+ // sm: 'h-9 rounded-xl px-3',
4604
+ // lg: 'h-11 rounded-xl px-8'
4607
4605
  }
4608
4606
  },
4609
4607
  defaultVariants: {
@@ -4657,10 +4655,8 @@ function Footer() {
4657
4655
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
4658
4656
  "div",
4659
4657
  {
4660
- className: cn(
4661
- "w-full flex flex-col gap-1 items-center p-[var(--l-pass-pd)] pb-5",
4662
- "border-t border-[var(--l-pass-bd)]"
4663
- ),
4658
+ style: { borderTop: "1px solid var(--l-pass-bd)" },
4659
+ className: cn("w-full flex flex-col gap-1 items-center p-[var(--l-pass-pd)] pb-5"),
4664
4660
  children: [
4665
4661
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "w-full flex items-center justify-between", children: [
4666
4662
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
@@ -4699,12 +4695,12 @@ function Footer() {
4699
4695
  disabled: isDisconnecting,
4700
4696
  children: [
4701
4697
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: "Log Out" }),
4702
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.LogOut, { className: "w-4 h-4" })
4698
+ isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.LogOut, { className: "w-4 h-4" })
4703
4699
  ]
4704
4700
  }
4705
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4701
+ ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4706
4702
  ] }),
4707
- !!address && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4703
+ !!address && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4708
4704
  ]
4709
4705
  }
4710
4706
  );
@@ -4793,7 +4789,9 @@ function formatAddress(addr) {
4793
4789
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
4794
4790
  }
4795
4791
  function Header() {
4796
- const { config } = useLumiaPassportConfig();
4792
+ const {
4793
+ config: { current: config }
4794
+ } = useLumiaPassportConfig();
4797
4795
  const address = useLumiaPassportSession((st) => st.address);
4798
4796
  const [copied, setCopied] = (0, import_react2.useState)(false);
4799
4797
  const avatar = import_auth3.jwtTokenManager.getAvatar();
@@ -4807,91 +4805,107 @@ function Header() {
4807
4805
  const isKycVerified = !isUserProfileLoading && userProfile?.kycDetails?.kycStatus === "verified" || true;
4808
4806
  const { name, logo, logoDataUri } = lumiaBeam;
4809
4807
  const isNetworkIcon = !!logoDataUri || logo === "lumia";
4810
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)] pt-5 border-b border-[var(--l-pass-bd)]", children: [
4811
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
4812
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex-none w-12 h-12 flex items-center justify-center", children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
4813
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4814
- "div",
4815
- {
4816
- style: { width: "calc(100% - 48px - var(--l-pass-gap))" },
4817
- className: "flex-1 flex flex-col justify-center gap-1",
4818
- children: [
4819
- !!address && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(UsdBalance, { className: "text-lg leading-5 font-bold" }),
4820
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex items-center gap-2", children: [
4821
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "max-w-full text-md leading-4 font-medium text-[var(--l-pass-fg-muted)] text-ellipsis overflow-hidden whitespace-nowrap", children: displayName || config.ui.title || "LumiaPassport" }),
4822
- isKycVerified && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "group relative flex flex-shrink-0", children: [
4823
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.CheckCircle2, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
4824
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
4825
- "div",
4826
- {
4827
- className: cn(
4828
- "transition-opacity pointer-events-none whitespace-nowrap z-50",
4829
- "absolute top-1/2 right-full -translate-y-1/2 -translate-x-[var(--l-pass-gap)]",
4830
- "px-2 py-1 bg-[var(--l-pass-bg-success)] text-[var(--l-pass-fg)] text-xs rounded-full",
4831
- "opacity-0 group-hover:opacity-100"
4832
- ),
4833
- children: "KYC Verified"
4834
- }
4835
- )
4836
- ] }),
4837
- isUserProfileLoading && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" })
4838
- ] })
4839
- ]
4840
- }
4841
- )
4842
- ] }),
4843
- !!address && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
4844
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "block text-xs text-[var(--l-pass-fg-muted)]", children: formatAddress(address) }),
4845
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-fit flex items-center gap-[var(--l-pass-gap)] justify-between", children: [
4846
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4847
- Button,
4848
- {
4849
- size: "small",
4850
- variant: "ghost",
4851
- className: "text-[10px] px-0 text-[var(--l-pass-fg-muted)] hover:text-[var(--l-pass-fg)]",
4852
- onClick: async () => {
4853
- await navigator.clipboard.writeText(address);
4854
- setCopied(true);
4855
- setTimeout(() => setCopied(false), 1500);
4856
- },
4857
- children: [
4858
- copied ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.Check, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.Copy, { className: "w-4 h-4" }),
4859
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: "COPY" })
4860
- ]
4861
- }
4862
- ),
4863
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4864
- Button,
4865
- {
4866
- size: "small",
4867
- variant: "ghost",
4868
- className: "text-[10px] px-0 text-[var(--l-pass-fg-muted)] hover:text-[var(--l-pass-fg)]",
4869
- onClick: () => {
4870
- if (!address) return;
4871
- window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
4872
- },
4873
- children: [
4874
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4875
- "div",
4876
- {
4877
- className: cn(
4878
- "flex-none w-4 h-4 rounded-full flex items-center justify-center overflow-hidden",
4879
- isNetworkIcon ? "bg-transparent" : "bg-[var(--l-pass-primary)]"
4808
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4809
+ "div",
4810
+ {
4811
+ style: { borderBottom: "1px solid var(--l-pass-bd)" },
4812
+ className: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)] pt-5",
4813
+ children: [
4814
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
4815
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex-none w-12 h-12 flex items-center justify-center", children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
4816
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4817
+ "div",
4818
+ {
4819
+ style: { width: "calc(100% - 48px - var(--l-pass-gap))" },
4820
+ className: "flex-1 flex flex-col justify-center gap-1",
4821
+ children: [
4822
+ !!address && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(UsdBalance, { className: "text-lg leading-5 font-bold" }),
4823
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex items-center gap-2", children: [
4824
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
4825
+ "span",
4826
+ {
4827
+ className: cn(
4828
+ "max-w-full font-mono text-xs leading-4 font-medium text-[var(--l-pass-fg-muted)",
4829
+ "text-ellipsis overflow-hidden whitespace-nowrap"
4830
+ ),
4831
+ children: displayName || config.ui.title || "LumiaPassport"
4832
+ }
4880
4833
  ),
4881
- children: [
4882
- logoDataUri && logo !== "lumia" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { src: logoDataUri, alt: "Chain Logo", className: "w-4 h-4 object-cover" }),
4883
- !logoDataUri && logo === "lumia" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LumiaLogo, { size: 16 }),
4884
- !logoDataUri && logo !== "lumia" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[var(--l-pass-fg-inverted)] text-xs font-bold", children: (name || "L").charAt(0) })
4885
- ]
4886
- }
4887
- ),
4888
- "EXPLORER"
4889
- ]
4890
- }
4891
- )
4892
- ] })
4893
- ] })
4894
- ] });
4834
+ isKycVerified && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "group relative flex flex-shrink-0", children: [
4835
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.CheckCircle2, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
4836
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
4837
+ "div",
4838
+ {
4839
+ className: cn(
4840
+ "transition-opacity pointer-events-none whitespace-nowrap z-50",
4841
+ "absolute top-1/2 right-full -translate-y-1/2 -translate-x-[var(--l-pass-gap)]",
4842
+ "px-2 py-1 bg-[var(--l-pass-bg-success)] text-[var(--l-pass-fg)] text-xs rounded-full",
4843
+ "opacity-0 group-hover:opacity-100"
4844
+ ),
4845
+ children: "KYC Verified"
4846
+ }
4847
+ )
4848
+ ] }),
4849
+ isUserProfileLoading && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" })
4850
+ ] })
4851
+ ]
4852
+ }
4853
+ )
4854
+ ] }),
4855
+ !!address && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
4856
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "block font-mono text-[10px] break-all leading-6 text-[var(--l-pass-fg-muted)]", children: formatAddress(address) }),
4857
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-fit flex items-center gap-[var(--l-pass-gap)] justify-between", children: [
4858
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4859
+ Button,
4860
+ {
4861
+ size: "small",
4862
+ variant: "ghost",
4863
+ className: "text-[10px] px-0 text-[var(--l-pass-fg-muted)] hover:text-[var(--l-pass-fg)]",
4864
+ onClick: async () => {
4865
+ await navigator.clipboard.writeText(address);
4866
+ setCopied(true);
4867
+ setTimeout(() => setCopied(false), 1500);
4868
+ },
4869
+ children: [
4870
+ copied ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.Check, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.Copy, { className: "w-4 h-4" }),
4871
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: "COPY" })
4872
+ ]
4873
+ }
4874
+ ),
4875
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4876
+ Button,
4877
+ {
4878
+ size: "small",
4879
+ variant: "ghost",
4880
+ className: "text-[10px] px-0 text-[var(--l-pass-fg-muted)] hover:text-[var(--l-pass-fg)]",
4881
+ onClick: () => {
4882
+ if (!address) return;
4883
+ window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
4884
+ },
4885
+ children: [
4886
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4887
+ "div",
4888
+ {
4889
+ className: cn(
4890
+ "flex-none w-4 h-4 rounded-full flex items-center justify-center overflow-hidden",
4891
+ isNetworkIcon ? "bg-transparent" : "bg-[var(--l-pass-primary)]"
4892
+ ),
4893
+ children: [
4894
+ logoDataUri && logo !== "lumia" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { src: logoDataUri, alt: "Chain Logo", className: "w-4 h-4 object-cover" }),
4895
+ !logoDataUri && logo === "lumia" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LumiaLogo, { size: 16 }),
4896
+ !logoDataUri && logo !== "lumia" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[var(--l-pass-fg-inverted)] text-xs font-bold", children: (name || "L").charAt(0) })
4897
+ ]
4898
+ }
4899
+ ),
4900
+ "EXPLORER"
4901
+ ]
4902
+ }
4903
+ )
4904
+ ] })
4905
+ ] })
4906
+ ]
4907
+ }
4908
+ );
4895
4909
  }
4896
4910
  {
4897
4911
  }
@@ -4967,14 +4981,16 @@ var DialogContent = React2.forwardRef(
4967
4981
  DialogPrimitive.Content,
4968
4982
  {
4969
4983
  ref,
4970
- style: !!className ? void 0 : { boxShadow: "0px 4px 10px var(--l-pass-shadow-c)" },
4984
+ style: !!className ? void 0 : {
4985
+ backgroundColor: "var(--l-pass-bg)",
4986
+ border: "1px solid var(--l-pass-bd)",
4987
+ boxShadow: "0px 4px 10px var(--l-pass-shadow-c)"
4988
+ },
4971
4989
  className: cn(
4972
4990
  "relative pointer-events-auto w-full",
4973
4991
  "text-[var(--l-pass-fg)]",
4974
4992
  "rounded-[var(--l-pass-bdrs)] overflow-hidden",
4975
4993
  "max-w-[var(--l-pass-maw)] max-h-[80vh] p-0 gap-0",
4976
- // this gives complete dialog bg & border control by external className
4977
- !className && "bg-[var(--l-pass-bg)] border border-[var(--l-pass-bd)]",
4978
4994
  className
4979
4995
  ),
4980
4996
  ...props,
@@ -5051,7 +5067,10 @@ var VisuallyHidden = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime9.j
5051
5067
  // src/internal/hooks/useAutoConnect.ts
5052
5068
  var import_react3 = require("react");
5053
5069
  function useAutoConnect() {
5054
- const { config, callbacks } = useLumiaPassportConfig();
5070
+ const {
5071
+ config: { current: config },
5072
+ callbacks
5073
+ } = useLumiaPassportConfig();
5055
5074
  const setPage = useLayoutDataStore((st) => st.setPage);
5056
5075
  const {
5057
5076
  session,
@@ -5277,7 +5296,7 @@ function useCheckVaultStatus() {
5277
5296
  }
5278
5297
 
5279
5298
  // src/internal/hooks/usePageMapper.tsx
5280
- var import_react36 = require("react");
5299
+ var import_react38 = require("react");
5281
5300
 
5282
5301
  // src/internal/components/AuthMenu/AuthMenu.tsx
5283
5302
  var import_framer_motion = require("framer-motion");
@@ -5543,7 +5562,10 @@ var import_lucide_react8 = require("lucide-react");
5543
5562
  init_projectId();
5544
5563
  var import_jsx_runtime14 = require("react/jsx-runtime");
5545
5564
  function Email() {
5546
- const { config, callbacks } = useLumiaPassportConfig();
5565
+ const {
5566
+ config: { current: config },
5567
+ callbacks
5568
+ } = useLumiaPassportConfig();
5547
5569
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
5548
5570
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
5549
5571
  const { email, codeSendError, setEmail, setCodeSendError, setExpiresIn, setStep } = useAuthStore();
@@ -5697,7 +5719,10 @@ var normalizeLoginResponse = async (rawLoginResponse, providerKey, userData) =>
5697
5719
  };
5698
5720
  function Social(props) {
5699
5721
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
5700
- const { config, callbacks } = useLumiaPassportConfig();
5722
+ const {
5723
+ config: { current: config },
5724
+ callbacks
5725
+ } = useLumiaPassportConfig();
5701
5726
  const setPage = useLayoutDataStore((st) => st.setPage);
5702
5727
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
5703
5728
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
@@ -6110,7 +6135,9 @@ function getSignInEnabledMethods(params) {
6110
6135
  var import_jsx_runtime17 = require("react/jsx-runtime");
6111
6136
  function SignInStep(props) {
6112
6137
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
6113
- const { config } = useLumiaPassportConfig();
6138
+ const {
6139
+ config: { current: config }
6140
+ } = useLumiaPassportConfig();
6114
6141
  const alert2 = useAuthStore((st) => st.alert);
6115
6142
  const setPage = useLayoutDataStore((st) => st.setPage);
6116
6143
  const enabledWoPasskey = getSignInEnabledMethods({ order: config.ui.authOrder, config, exclude: ["passkey"] });
@@ -6234,7 +6261,7 @@ function Expandable(props) {
6234
6261
  {
6235
6262
  ...divProps,
6236
6263
  ref: expandableRef,
6237
- className: cn("w-full overflow-hidden", className),
6264
+ className: cn("w-full overflow-y-hidden", className),
6238
6265
  style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
6239
6266
  children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
6240
6267
  }
@@ -6255,9 +6282,12 @@ function normalizeWebAuthnError(err) {
6255
6282
  }
6256
6283
  function PassKeyStep(props) {
6257
6284
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
6258
- const { config, callbacks } = useLumiaPassportConfig();
6259
- const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
6285
+ const {
6286
+ config: { current: config },
6287
+ callbacks
6288
+ } = useLumiaPassportConfig();
6260
6289
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
6290
+ const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
6261
6291
  const setPage = useLayoutDataStore((st) => st.setPage);
6262
6292
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6263
6293
  const autoCloseOnSuccess = !recoveryUserId;
@@ -6465,7 +6495,10 @@ function PassKeyStep(props) {
6465
6495
  var import_react12 = require("react");
6466
6496
  init_auth();
6467
6497
  function useAuthMenuHandlers() {
6468
- const { config, callbacks } = useLumiaPassportConfig();
6498
+ const {
6499
+ config: { current: config },
6500
+ callbacks
6501
+ } = useLumiaPassportConfig();
6469
6502
  const pendingLoginResponseRef = (0, import_react12.useRef)(null);
6470
6503
  const setPage = useLayoutDataStore((st) => st.setPage);
6471
6504
  const [telegramCleanup, setTelegramCleanup] = (0, import_react12.useState)(null);
@@ -6787,7 +6820,7 @@ var VerificationCodeInput = (props) => {
6787
6820
  className: cn(
6788
6821
  isLoading ? "cursor-default opacity-50" : "cursor-text",
6789
6822
  "text-[var(--l-pass-fg)]",
6790
- "w-10 h-12 text-lg text-center font-semibold rounded-[var(--l-pass-el-bdrs)] border",
6823
+ "w-10 h-12 text-lg text-center font-semibold rounded-[var(--l-pass-el-bdrs)]",
6791
6824
  "bg-[var(--l-pass-secondary)] focus:bg-[var(--l-pass-secondary-a)] hover:bg-[var(--l-pass-secondary-h)]",
6792
6825
  "focus:outline-none focus:bg-[var(--l-pass-secondary-a)] focus:inset-ring-2 focus:inset-ring-[var(--l-pass-bd-intense)]"
6793
6826
  )
@@ -6990,10 +7023,10 @@ function VerifyStep(props) {
6990
7023
  // src/internal/components/AuthMenu/AuthMenu.tsx
6991
7024
  var import_jsx_runtime24 = require("react/jsx-runtime");
6992
7025
  var AuthMenu = () => {
7026
+ const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
6993
7027
  const page = useLayoutDataStore((st) => st.page);
6994
7028
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
6995
7029
  (0, import_react15.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
6996
- const { isIframeReady } = useLumiaPassportSession();
6997
7030
  const {
6998
7031
  step,
6999
7032
  setStep,
@@ -7783,7 +7816,7 @@ var useSelectables = () => {
7783
7816
  // src/internal/components/BuyMenu/ByuMenu.tsx
7784
7817
  var import_jsx_runtime33 = require("react/jsx-runtime");
7785
7818
  function BuyMenu() {
7786
- const walletAddress = useLumiaPassportSession().address;
7819
+ const walletAddress = useLumiaPassportSession((st) => st.address);
7787
7820
  const setPage = useLayoutDataStore((st) => st.setPage);
7788
7821
  const control = useSelectables();
7789
7822
  const { rampProvider, setrRampProvider } = control;
@@ -7870,7 +7903,7 @@ function Highlight(props) {
7870
7903
  // src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
7871
7904
  var import_jsx_runtime36 = require("react/jsx-runtime");
7872
7905
  function KeyshareBackupMenu() {
7873
- const { session } = useLumiaPassportSession();
7906
+ const session = useLumiaPassportSession((st) => st.session);
7874
7907
  const setPage = useLayoutDataStore((st) => st.setPage);
7875
7908
  const userId = session?.mpcUserId || "";
7876
7909
  const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
@@ -8166,7 +8199,10 @@ var import_react22 = __toESM(require("react"), 1);
8166
8199
  init_vaultClient();
8167
8200
  var import_jsx_runtime37 = require("react/jsx-runtime");
8168
8201
  var KeyshareRestoreMenu = () => {
8169
- const { config, callbacks } = useLumiaPassportConfig();
8202
+ const {
8203
+ config: { current: config },
8204
+ callbacks
8205
+ } = useLumiaPassportConfig();
8170
8206
  const setPage = useLayoutDataStore((st) => st.setPage);
8171
8207
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8172
8208
  (0, import_react22.useEffect)(() => setIsDialogForced(true), []);
@@ -8742,13 +8778,15 @@ var SumsubIframeManager = class {
8742
8778
 
8743
8779
  // src/internal/components/KYC/useSumsubIframe.ts
8744
8780
  function useSumsubIframe({ iframeUrl }) {
8781
+ const {
8782
+ config: { current: config }
8783
+ } = useLumiaPassportConfig();
8745
8784
  const { colorMode } = useLumiaPassportColorMode();
8746
8785
  const iframeRef = (0, import_react23.useRef)(null);
8747
8786
  const [isLoading, setIsLoading] = (0, import_react23.useState)(true);
8748
8787
  const [error, setError] = (0, import_react23.useState)(null);
8749
8788
  const [height, setHeight] = (0, import_react23.useState)(0);
8750
8789
  const [status, setStatus] = (0, import_react23.useState)("");
8751
- const { config } = useLumiaPassportConfig();
8752
8790
  const levelName = config.kyc?.options?.levelName;
8753
8791
  (0, import_react23.useEffect)(() => {
8754
8792
  setError(null);
@@ -8796,7 +8834,9 @@ function useSumsubIframe({ iframeUrl }) {
8796
8834
  var import_jsx_runtime38 = require("react/jsx-runtime");
8797
8835
  var MAX_IFRAME_HEIGHT = 650;
8798
8836
  var SumsubIframe = () => {
8799
- const { config } = useLumiaPassportConfig();
8837
+ const {
8838
+ config: { current: config }
8839
+ } = useLumiaPassportConfig();
8800
8840
  const iframeUrl = `${config.services.iframeUrl}/kyc/sumsub.html`;
8801
8841
  const { iframeRef, isLoading, error, height, status } = useSumsubIframe({ iframeUrl });
8802
8842
  return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
@@ -8827,7 +8867,9 @@ var SumsubIframe = () => {
8827
8867
  // src/internal/components/KYC/KycContent.tsx
8828
8868
  var import_jsx_runtime39 = require("react/jsx-runtime");
8829
8869
  var KycContent = () => {
8830
- const { config } = useLumiaPassportConfig();
8870
+ const {
8871
+ config: { current: config }
8872
+ } = useLumiaPassportConfig();
8831
8873
  const provider = config.kyc?.provider;
8832
8874
  switch (provider) {
8833
8875
  case "sumsub":
@@ -8860,7 +8902,9 @@ var import_framer_motion2 = require("framer-motion");
8860
8902
  var import_lucide_react23 = require("lucide-react");
8861
8903
  var import_jsx_runtime41 = require("react/jsx-runtime");
8862
8904
  function BackupWarning() {
8863
- const { config } = useLumiaPassportConfig();
8905
+ const {
8906
+ config: { current: config }
8907
+ } = useLumiaPassportConfig();
8864
8908
  const setPage = useLayoutDataStore((st) => st.setPage);
8865
8909
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8866
8910
  const isShown = config.warnings?.backupWarning && !hasServerVault;
@@ -8931,15 +8975,56 @@ function MainMenu() {
8931
8975
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
8932
8976
  var import_lodash_es = require("lodash-es");
8933
8977
  var import_lucide_react28 = require("lucide-react");
8934
- var import_react27 = require("react");
8978
+ var import_react28 = require("react");
8979
+
8980
+ // src/modules/linkedProfiles.ts
8981
+ var import_react_query9 = require("@tanstack/react-query");
8982
+ var import_react25 = require("react");
8983
+ init_auth();
8984
+ init_common();
8985
+ init_types();
8986
+ var LINKED_PROFILES_QUERY_KEY = "lumia-passport-linked-profiles-query";
8987
+ async function getLinkProfilesData() {
8988
+ const list = await getLinkedProviders();
8989
+ const loadedProfiles = list.map((p) => {
8990
+ const info = getProviderDisplayInfo(p.provider);
8991
+ return { ...p, displayName: info.name, icon: info.icon };
8992
+ });
8993
+ let avatar = null;
8994
+ try {
8995
+ avatar = import_auth3.jwtTokenManager.getAvatar() || null;
8996
+ } catch {
8997
+ avatar = null;
8998
+ }
8999
+ return { profiles: loadedProfiles, avatar };
9000
+ }
9001
+ function useLumiaPassportLinkedProfiles() {
9002
+ const qc = (0, import_react_query9.useQueryClient)();
9003
+ const address = useLumiaPassportSession((st) => st.address);
9004
+ const {
9005
+ data,
9006
+ isFetching: isLoading,
9007
+ error
9008
+ } = (0, import_react_query9.useQuery)({
9009
+ retry: false,
9010
+ enabled: !!address,
9011
+ queryKey: [LINKED_PROFILES_QUERY_KEY, address],
9012
+ queryFn: getLinkProfilesData
9013
+ });
9014
+ const { profiles = [], avatar = null } = data || {};
9015
+ const refresh = (0, import_react25.useCallback)(async () => {
9016
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9017
+ }, [qc, address]);
9018
+ return { profiles, avatar, isLoading, error, refresh };
9019
+ }
8935
9020
 
8936
9021
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
8937
- var import_react_query13 = require("@tanstack/react-query");
9022
+ var import_react_query14 = require("@tanstack/react-query");
8938
9023
  init_passkey2();
8939
9024
 
8940
9025
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
8941
9026
  init_lumiaPassport();
8942
- var import_react_query9 = require("@tanstack/react-query");
9027
+ var import_react_query10 = require("@tanstack/react-query");
8943
9028
  var import_lucide_react25 = require("lucide-react");
8944
9029
  init_projectId();
8945
9030
 
@@ -8973,11 +9058,14 @@ var useManageWalletStore = (0, import_zustand4.create)((set) => ({
8973
9058
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
8974
9059
  var import_jsx_runtime43 = require("react/jsx-runtime");
8975
9060
  function EmailForm() {
8976
- const { config, callbacks } = useLumiaPassportConfig();
9061
+ const {
9062
+ config: { current: config },
9063
+ callbacks
9064
+ } = useLumiaPassportConfig();
8977
9065
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
8978
9066
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
8979
9067
  const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
8980
- const { mutate: onSendVerificationCode } = (0, import_react_query9.useMutation)({
9068
+ const { mutate: onSendVerificationCode } = (0, import_react_query10.useMutation)({
8981
9069
  mutationFn: async () => {
8982
9070
  if (!email) return;
8983
9071
  setIsLoading(true);
@@ -9054,25 +9142,26 @@ function EmailForm() {
9054
9142
  }
9055
9143
 
9056
9144
  // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9057
- var import_react_query10 = require("@tanstack/react-query");
9145
+ var import_react_query11 = require("@tanstack/react-query");
9058
9146
  init_common();
9059
9147
  var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9060
9148
  function useProvidersList() {
9061
- const walletAddress = useLumiaPassportSession().address;
9062
- return (0, import_react_query10.useQuery)({
9149
+ const address = useLumiaPassportSession((st) => st.address);
9150
+ const page = useLayoutDataStore((st) => st.page);
9151
+ return (0, import_react_query11.useQuery)({
9063
9152
  retry: false,
9064
- enabled: !!walletAddress,
9065
- queryKey: [PROVIDERS_QUERY_KEY, walletAddress],
9066
- queryFn: getLinkedProviders
9153
+ enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
9154
+ queryKey: [PROVIDERS_QUERY_KEY, address],
9155
+ queryFn: async () => getLinkedProviders()
9067
9156
  });
9068
9157
  }
9069
9158
 
9070
9159
  // src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
9071
- var import_react_query11 = require("@tanstack/react-query");
9160
+ var import_react_query12 = require("@tanstack/react-query");
9072
9161
  init_email();
9073
9162
  function useSendVerificationCode() {
9074
9163
  const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
9075
- return (0, import_react_query11.useMutation)({
9164
+ return (0, import_react_query12.useMutation)({
9076
9165
  mutationFn: async (email) => {
9077
9166
  if (!email) {
9078
9167
  throw new Error("Email is required");
@@ -9095,12 +9184,12 @@ function useSendVerificationCode() {
9095
9184
  }
9096
9185
 
9097
9186
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
9098
- var import_react_query12 = require("@tanstack/react-query");
9187
+ var import_react_query13 = require("@tanstack/react-query");
9099
9188
  init_email();
9100
9189
  function useVerifyCode() {
9101
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9102
- const qc = (0, import_react_query12.useQueryClient)();
9103
- const walletAddress = useLumiaPassportSession((st) => st.address);
9190
+ const { callbacks } = useLumiaPassportConfig();
9191
+ const qc = (0, import_react_query13.useQueryClient)();
9192
+ const address = useLumiaPassportSession((st) => st.address);
9104
9193
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9105
9194
  const {
9106
9195
  email,
@@ -9113,7 +9202,7 @@ function useVerifyCode() {
9113
9202
  setVerificationError,
9114
9203
  setEmailCodeSentError
9115
9204
  } = useManageWalletStore();
9116
- return (0, import_react_query12.useMutation)({
9205
+ return (0, import_react_query13.useMutation)({
9117
9206
  mutationFn: async (codeToVerify) => {
9118
9207
  const code = codeToVerify ?? emailCode;
9119
9208
  if (!code) {
@@ -9127,7 +9216,8 @@ function useVerifyCode() {
9127
9216
  return await verifyEmailLinkCode(email, code);
9128
9217
  },
9129
9218
  onSuccess: async () => {
9130
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9219
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9220
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9131
9221
  setProviderType(null);
9132
9222
  setEmail("");
9133
9223
  setEmailCode("");
@@ -9135,8 +9225,7 @@ function useVerifyCode() {
9135
9225
  setEmailCodeSentError("");
9136
9226
  setEmailStep("input");
9137
9227
  try {
9138
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9139
- notifyProvidersUpdate?.();
9228
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9140
9229
  } catch {
9141
9230
  }
9142
9231
  setIsLoading(false);
@@ -9163,9 +9252,9 @@ function normalizePasskeyLinkError(msg) {
9163
9252
  return msg;
9164
9253
  }
9165
9254
  function AddProvider() {
9166
- const qc = (0, import_react_query13.useQueryClient)();
9167
- const walletAddress = useLumiaPassportSession().address;
9168
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9255
+ const qc = (0, import_react_query14.useQueryClient)();
9256
+ const { callbacks } = useLumiaPassportConfig();
9257
+ const address = useLumiaPassportSession((st) => st.address);
9169
9258
  const {
9170
9259
  linkIsLoading,
9171
9260
  providerType,
@@ -9223,12 +9312,12 @@ function AddProvider() {
9223
9312
  userVerification: "preferred"
9224
9313
  }
9225
9314
  });
9226
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9315
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9316
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9227
9317
  try {
9228
9318
  callbacks?.onLumiaPassportUpdate?.({
9229
- providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress])
9319
+ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
9230
9320
  });
9231
- notifyProvidersUpdate?.();
9232
9321
  } catch {
9233
9322
  }
9234
9323
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9264,12 +9353,12 @@ function AddProvider() {
9264
9353
  userVerification: "preferred"
9265
9354
  }
9266
9355
  });
9267
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9356
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9357
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9268
9358
  try {
9269
9359
  callbacks?.onLumiaPassportUpdate?.({
9270
- providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress])
9360
+ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
9271
9361
  });
9272
- notifyProvidersUpdate?.();
9273
9362
  } catch {
9274
9363
  }
9275
9364
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9300,7 +9389,9 @@ var import_jsx_runtime45 = require("react/jsx-runtime");
9300
9389
  function EmailNotConnectedWarning() {
9301
9390
  const providers = import_auth3.jwtTokenManager.getProviders();
9302
9391
  const hasEmail = providers.includes("email");
9303
- const { config } = useLumiaPassportConfig();
9392
+ const {
9393
+ config: { current: config }
9394
+ } = useLumiaPassportConfig();
9304
9395
  const isShown = config.warnings?.emailNotConnectedWarning && !hasEmail;
9305
9396
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_framer_motion3.AnimatePresence, { mode: "wait", initial: false, children: isShown ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9306
9397
  import_framer_motion3.motion.div,
@@ -9309,7 +9400,7 @@ function EmailNotConnectedWarning() {
9309
9400
  animate: { opacity: 1, height: "auto" },
9310
9401
  exit: { opacity: 0, height: 0 },
9311
9402
  transition: Y_ANIMATION_SETUP,
9312
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Highlight, { className: "flex flex-col gap-[var(--l-pass-gap)] items-center text-center", children: [
9403
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Highlight, { type: "warning", className: "flex flex-col gap-[var(--l-pass-gap)] items-center text-center", children: [
9313
9404
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "flex items-center gap-[var(--l-pass-gap)] text-lg font-bold", children: [
9314
9405
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.Mail, { className: "w-5 h-5" }),
9315
9406
  "CONNECT EMAIL"
@@ -9321,16 +9412,19 @@ function EmailNotConnectedWarning() {
9321
9412
  }
9322
9413
 
9323
9414
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
9324
- var import_react_query14 = require("@tanstack/react-query");
9325
- var import_react25 = __toESM(require("react"), 1);
9415
+ var import_react_query15 = require("@tanstack/react-query");
9416
+ var import_react26 = __toESM(require("react"), 1);
9326
9417
  init_auth();
9327
9418
  function useLinkSocial() {
9328
- const qc = (0, import_react_query14.useQueryClient)();
9329
- const walletAddress = useLumiaPassportSession().address;
9330
- const { config, callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9419
+ const qc = (0, import_react_query15.useQueryClient)();
9420
+ const address = useLumiaPassportSession((st) => st.address);
9421
+ const {
9422
+ config: { current: config },
9423
+ callbacks
9424
+ } = useLumiaPassportConfig();
9331
9425
  const setPage = useLayoutDataStore((st) => st.setPage);
9332
9426
  const { providerType, linkIsLoading, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
9333
- const handleLinkSocialProvider = import_react25.default.useCallback(
9427
+ const handleLinkSocialProvider = import_react26.default.useCallback(
9334
9428
  async (providerIdRaw) => {
9335
9429
  const providerKey = providerIdRaw.toLowerCase();
9336
9430
  try {
@@ -9362,10 +9456,10 @@ function useLinkSocial() {
9362
9456
  if (!result.success) {
9363
9457
  throw new Error(result.error || `${socialProvider.name || providerIdRaw} authentication failed`);
9364
9458
  }
9365
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9459
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9460
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9366
9461
  try {
9367
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9368
- notifyProvidersUpdate?.();
9462
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9369
9463
  } catch {
9370
9464
  }
9371
9465
  setProviderType(null);
@@ -9381,8 +9475,8 @@ function useLinkSocial() {
9381
9475
  },
9382
9476
  [config.social?.providers, callbacks]
9383
9477
  );
9384
- const [socialLinkStarted, setSocialLinkStarted] = import_react25.default.useState(false);
9385
- (0, import_react25.useEffect)(() => {
9478
+ const [socialLinkStarted, setSocialLinkStarted] = import_react26.default.useState(false);
9479
+ (0, import_react26.useEffect)(() => {
9386
9480
  const key = providerType?.toLowerCase();
9387
9481
  if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
9388
9482
  if (!linkIsLoading && !socialLinkStarted) {
@@ -9396,16 +9490,19 @@ function useLinkSocial() {
9396
9490
  }
9397
9491
 
9398
9492
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
9399
- var import_react_query15 = require("@tanstack/react-query");
9400
- var import_react26 = require("react");
9493
+ var import_react_query16 = require("@tanstack/react-query");
9494
+ var import_react27 = require("react");
9401
9495
  init_telegram2();
9402
9496
  function useLinkTelegram() {
9403
- const { config, callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9404
- const qc = (0, import_react_query15.useQueryClient)();
9405
- const walletAddress = useLumiaPassportSession((st) => st.address);
9497
+ const {
9498
+ config: { current: config },
9499
+ callbacks
9500
+ } = useLumiaPassportConfig();
9501
+ const qc = (0, import_react_query16.useQueryClient)();
9502
+ const address = useLumiaPassportSession((st) => st.address);
9406
9503
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
9407
9504
  const setPage = useLayoutDataStore((st) => st.setPage);
9408
- const handleLinkTelegram = (0, import_react26.useCallback)(async () => {
9505
+ const handleLinkTelegram = (0, import_react27.useCallback)(async () => {
9409
9506
  try {
9410
9507
  setLinkIsLoading(true);
9411
9508
  setLinkError("");
@@ -9431,10 +9528,10 @@ function useLinkTelegram() {
9431
9528
  }
9432
9529
  console.log("[ManageWallet] Linking Telegram with data:", user);
9433
9530
  await linkTelegram(user);
9434
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9531
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9532
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9435
9533
  try {
9436
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9437
- notifyProvidersUpdate?.();
9534
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9438
9535
  } catch {
9439
9536
  }
9440
9537
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9447,14 +9544,14 @@ function useLinkTelegram() {
9447
9544
  setLinkIsLoading(false);
9448
9545
  }
9449
9546
  }, [config.social?.providers, callbacks]);
9450
- const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react26.useState)(false);
9451
- (0, import_react26.useEffect)(() => {
9547
+ const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react27.useState)(false);
9548
+ (0, import_react27.useEffect)(() => {
9452
9549
  if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
9453
9550
  setTelegramLinkStarted(true);
9454
9551
  handleLinkTelegram();
9455
9552
  }
9456
9553
  }, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
9457
- (0, import_react26.useEffect)(() => {
9554
+ (0, import_react27.useEffect)(() => {
9458
9555
  if (providerType !== "telegram") {
9459
9556
  setTelegramLinkStarted(false);
9460
9557
  }
@@ -9540,7 +9637,9 @@ function getConfiguredProviders(config) {
9540
9637
  );
9541
9638
  }
9542
9639
  function ManageWalletMenu() {
9543
- const { config } = useLumiaPassportConfig();
9640
+ const {
9641
+ config: { current: config }
9642
+ } = useLumiaPassportConfig();
9544
9643
  const setPage = useLayoutDataStore((st) => st.setPage);
9545
9644
  const {
9546
9645
  providerType,
@@ -9557,13 +9656,14 @@ function ManageWalletMenu() {
9557
9656
  setVerificationError
9558
9657
  } = useManageWalletStore();
9559
9658
  const configuredProviders = getConfiguredProviders(config);
9560
- const { data: providers = [], isFetching: isProvidersLoading, error: providersError } = useProvidersList();
9561
- const renderProviders = (0, import_react27.useMemo)(() => {
9659
+ const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
9660
+ console.log("[MANAGE WALLET MENU] RENDER", providers);
9661
+ const renderProviders = (0, import_react28.useMemo)(() => {
9562
9662
  const usedProviders = (0, import_lodash_es.fromPairs)(providers.map((p) => [p.provider, true]));
9563
9663
  const used = [];
9564
9664
  const unused = [];
9565
9665
  POSSIBLE_PROVIDERS.forEach((provider, providerIdx) => {
9566
- if (!configuredProviders[provider]) return null;
9666
+ if (!configuredProviders[provider]) return;
9567
9667
  const Icon = PROVIDERS_META2[provider].icon;
9568
9668
  if (usedProviders[provider]) {
9569
9669
  used.push(
@@ -9653,19 +9753,19 @@ function ManageWalletMenu() {
9653
9753
  }
9654
9754
 
9655
9755
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
9656
- var import_react_query16 = require("@tanstack/react-query");
9756
+ var import_react_query17 = require("@tanstack/react-query");
9657
9757
  var import_lucide_react29 = require("lucide-react");
9658
- var import_react28 = require("react");
9758
+ var import_react29 = require("react");
9659
9759
  init_auth();
9660
9760
  var import_jsx_runtime48 = require("react/jsx-runtime");
9661
9761
  function UnlinkProviderMenu() {
9662
- const qc = (0, import_react_query16.useQueryClient)();
9663
- const walletAddress = useLumiaPassportSession().address;
9664
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9762
+ const qc = (0, import_react_query17.useQueryClient)();
9763
+ const address = useLumiaPassportSession((st) => st.address);
9764
+ const { callbacks } = useLumiaPassportConfig();
9665
9765
  const setPage = useLayoutDataStore((st) => st.setPage);
9666
9766
  const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
9667
- const [confirmInput, setConfirmInput] = (0, import_react28.useState)("");
9668
- const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query16.useMutation)({
9767
+ const [confirmInput, setConfirmInput] = (0, import_react29.useState)("");
9768
+ const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query17.useMutation)({
9669
9769
  mutationFn: async () => {
9670
9770
  if (!confirmUnlink) {
9671
9771
  throw new Error("No provider to unlink");
@@ -9674,10 +9774,10 @@ function UnlinkProviderMenu() {
9674
9774
  await unlinkProvider(provider, externalId);
9675
9775
  },
9676
9776
  onSuccess: async () => {
9677
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9777
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9778
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9678
9779
  try {
9679
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9680
- notifyProvidersUpdate?.();
9780
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9681
9781
  } catch {
9682
9782
  }
9683
9783
  setConfirmUnlink(null);
@@ -9736,91 +9836,405 @@ function UnlinkProviderMenu() {
9736
9836
  ] });
9737
9837
  }
9738
9838
 
9739
- // src/internal/components/SecurityMenu/SecurityMenu.tsx
9740
- var import_lucide_react30 = require("lucide-react");
9741
- var import_react29 = require("react");
9742
- init_auth();
9743
- init_keyshare();
9744
- init_vaultClient();
9745
- var import_jsx_runtime49 = require("react/jsx-runtime");
9746
- function SecurityMenu() {
9747
- const page = useLayoutDataStore((st) => st.page);
9748
- const setPage = useLayoutDataStore((st) => st.setPage);
9749
- const open = page === "security";
9750
- const userId = import_auth3.jwtTokenManager.getUserId();
9751
- const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
9752
- const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
9753
- const [isRefreshing, setIsRefreshing] = (0, import_react29.useState)(false);
9754
- const [localInfo, setLocalInfo] = (0, import_react29.useState)(null);
9755
- const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react29.useState)(null);
9756
- const [recoveryBrowser, setRecoveryBrowser] = (0, import_react29.useState)(null);
9757
- const [recoveryUa, setRecoveryUa] = (0, import_react29.useState)(null);
9758
- const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react29.useState)(null);
9759
- const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react29.useState)(null);
9760
- const [recoveryCountry, setRecoveryCountry] = (0, import_react29.useState)(null);
9761
- const [hasServerBackup, setHasServerBackup] = (0, import_react29.useState)(false);
9762
- const [trustedApps, setTrustedApps] = (0, import_react29.useState)([]);
9763
- const [appToRemove, setAppToRemove] = (0, import_react29.useState)(null);
9764
- const fetchRecovery = (0, import_react29.useCallback)(async () => {
9765
- if (!userId) return;
9766
- try {
9767
- setIsRefreshing(true);
9768
- const keyshareInfo = await getKeyshareInfo(userId);
9769
- setLocalInfo(keyshareInfo);
9770
- const { getIframeManager: getIframeManager2 } = await Promise.resolve().then(() => (init_iframe_manager(), iframe_manager_exports));
9771
- try {
9772
- console.log("[SecurityModal] Loading trusted apps for user:", userId);
9773
- const iframeManager = getIframeManager2();
9774
- const apps = await iframeManager.getTrustedApps(userId);
9775
- console.log("[SecurityModal] Received trusted apps:", apps);
9776
- console.log("[SecurityModal] Trusted apps count:", apps?.length);
9777
- console.log("[SecurityModal] Setting trusted apps state with:", apps);
9778
- setTrustedApps(apps);
9779
- } catch (error) {
9780
- console.error("[SecurityModal] Failed to load trusted apps:", error);
9781
- setTrustedApps([]);
9782
- }
9783
- const stats = await getShareRecoveryStats();
9784
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
9785
- setHasServerBackup(!!hasRecoveryData);
9786
- const created = stats?.created;
9787
- setRecoveryCreatedAt(created?.at || null);
9788
- setRecoveryBrowser(created?.browser || null);
9789
- setRecoveryUa(created?.ua || null);
9790
- setRecoveryDeviceId(created?.deviceId || null);
9791
- setRecoveryDeviceName(created?.deviceName || null);
9792
- setRecoveryCountry(created?.country || null);
9793
- } finally {
9794
- setIsRefreshing(false);
9839
+ // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
9840
+ var import_lucide_react31 = require("lucide-react");
9841
+ var import_react31 = require("react");
9842
+
9843
+ // src/modules/assets.ts
9844
+ var import_react30 = __toESM(require("react"), 1);
9845
+ var import_wagmi = require("wagmi");
9846
+ var import_viem4 = require("viem");
9847
+ init_base();
9848
+ var COMMON_TOKENS = [
9849
+ // Add real token addresses here when available
9850
+ // {
9851
+ // address: '0x....',
9852
+ // name: 'USD Coin',
9853
+ // symbol: 'USDC',
9854
+ // decimals: 6,
9855
+ // logo: 'https://...'
9856
+ // }
9857
+ ];
9858
+ function useAssets(address) {
9859
+ const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0, import_wagmi.useBalance)({
9860
+ address,
9861
+ chainId: lumiaBeam.id,
9862
+ query: {
9863
+ enabled: !!address
9795
9864
  }
9796
- }, [userId]);
9797
- (0, import_react29.useEffect)(() => {
9798
- if (open) fetchRecovery();
9799
- }, [open, fetchRecovery]);
9800
- const parseOS = (ua) => {
9801
- if (!ua) return null;
9802
- if (ua.includes("Mac OS X")) return "macOS";
9865
+ });
9866
+ const tokenContracts = COMMON_TOKENS.map((token) => ({
9867
+ address: token.address,
9868
+ abi: import_viem4.erc20Abi,
9869
+ functionName: "balanceOf",
9870
+ args: [address],
9871
+ chainId: lumiaBeam.id
9872
+ }));
9873
+ const readContractsResult = (0, import_wagmi.useReadContracts)({
9874
+ contracts: tokenContracts,
9875
+ query: {
9876
+ enabled: !!address && COMMON_TOKENS.length > 0
9877
+ }
9878
+ });
9879
+ const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
9880
+ const getAllAssets = () => {
9881
+ const assets = [];
9882
+ if (nativeBalance) {
9883
+ assets.push({
9884
+ type: "native",
9885
+ name: "Lumia",
9886
+ symbol: "LUMIA",
9887
+ balance: nativeBalance.value.toString(),
9888
+ formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
9889
+ decimals: 18
9890
+ });
9891
+ }
9892
+ if (tokenBalances && COMMON_TOKENS.length > 0) {
9893
+ tokenBalances.forEach((balance, index) => {
9894
+ const token = COMMON_TOKENS[index];
9895
+ if (balance.status === "success" && balance.result) {
9896
+ const balanceValue = balance.result;
9897
+ const formattedBalance = (0, import_viem4.formatUnits)(balanceValue, token.decimals);
9898
+ assets.push({
9899
+ type: "erc20",
9900
+ address: token.address,
9901
+ name: token.name,
9902
+ symbol: token.symbol,
9903
+ balance: balanceValue.toString(),
9904
+ formattedBalance: parseFloat(formattedBalance).toFixed(4),
9905
+ decimals: token.decimals,
9906
+ logo: token.logo
9907
+ });
9908
+ }
9909
+ });
9910
+ }
9911
+ return assets;
9912
+ };
9913
+ const getTokenBalance = (tokenAddress) => {
9914
+ const tokenIndex = COMMON_TOKENS.findIndex(
9915
+ (token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
9916
+ );
9917
+ if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
9918
+ return null;
9919
+ }
9920
+ const balance = tokenBalances[tokenIndex];
9921
+ const token = COMMON_TOKENS[tokenIndex];
9922
+ if (balance.status === "success" && balance.result) {
9923
+ const balanceValue = balance.result;
9924
+ const formattedBalance = (0, import_viem4.formatUnits)(balanceValue, token.decimals);
9925
+ return {
9926
+ address: token.address,
9927
+ name: token.name,
9928
+ symbol: token.symbol,
9929
+ decimals: token.decimals,
9930
+ balance: balanceValue.toString(),
9931
+ formattedBalance: parseFloat(formattedBalance).toFixed(4),
9932
+ logo: token.logo
9933
+ };
9934
+ }
9935
+ return null;
9936
+ };
9937
+ const refreshBalances = async () => {
9938
+ await Promise.all([
9939
+ refetchNativeBalance(),
9940
+ refetchTokenBalances()
9941
+ ]);
9942
+ };
9943
+ return {
9944
+ nativeBalance,
9945
+ tokenBalances,
9946
+ assets: getAllAssets(),
9947
+ getTokenBalance,
9948
+ refreshBalances,
9949
+ isLoading: nativeBalanceLoading || tokenBalancesLoading,
9950
+ isConnected: !!address
9951
+ };
9952
+ }
9953
+ function useTokenInfo(tokenAddress) {
9954
+ const readContractsResult = (0, import_wagmi.useReadContracts)({
9955
+ contracts: [
9956
+ { address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
9957
+ { address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
9958
+ { address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
9959
+ ]
9960
+ });
9961
+ const { data: tokenData, isLoading } = readContractsResult;
9962
+ if (!tokenData || isLoading) {
9963
+ return { isLoading, tokenInfo: null };
9964
+ }
9965
+ const [nameResult, symbolResult, decimalsResult] = tokenData;
9966
+ if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
9967
+ return {
9968
+ isLoading: false,
9969
+ tokenInfo: {
9970
+ name: nameResult.result,
9971
+ symbol: symbolResult.result,
9972
+ decimals: decimalsResult.result,
9973
+ address: tokenAddress
9974
+ }
9975
+ };
9976
+ }
9977
+ return { isLoading: false, tokenInfo: null };
9978
+ }
9979
+ function useTokenBalance(tokenAddress, userAddress) {
9980
+ const { data: balance, isLoading, refetch } = (0, import_wagmi.useReadContract)({
9981
+ address: tokenAddress,
9982
+ abi: import_viem4.erc20Abi,
9983
+ functionName: "balanceOf",
9984
+ args: userAddress ? [userAddress] : void 0,
9985
+ chainId: lumiaBeam.id,
9986
+ query: {
9987
+ enabled: !!userAddress
9988
+ }
9989
+ });
9990
+ const { tokenInfo } = useTokenInfo(tokenAddress);
9991
+ const formattedBalance = import_react30.default.useMemo(() => {
9992
+ if (!balance || !tokenInfo) return "0";
9993
+ return (0, import_viem4.formatUnits)(balance, tokenInfo.decimals);
9994
+ }, [balance, tokenInfo]);
9995
+ return {
9996
+ balance,
9997
+ formattedBalance,
9998
+ tokenInfo,
9999
+ isLoading,
10000
+ refetch
10001
+ };
10002
+ }
10003
+
10004
+ // src/internal/components/PortfolioMenu/PortfolioItem.tsx
10005
+ var import_react_query18 = require("@tanstack/react-query");
10006
+ var import_lucide_react30 = require("lucide-react");
10007
+ init_base();
10008
+ var import_jsx_runtime49 = require("react/jsx-runtime");
10009
+ var price16 = Intl.NumberFormat("en-US", { minimumFractionDigits: 16, maximumFractionDigits: 16 });
10010
+ function formatValue(price) {
10011
+ console.log("[---PRICE---]", price);
10012
+ if (!price) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: `0.00` });
10013
+ if (price < 0.01) {
10014
+ const strigified = price16.format(price);
10015
+ const absValue = parseInt(strigified.replace(/^0\./, "")).toString().slice(0, 2);
10016
+ const zeroQnt = strigified.replace(/^0\./, "").split("").findIndex((el) => +el > 0);
10017
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
10018
+ `0.0`,
10019
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("sub", { className: "text-[10px]", children: zeroQnt }),
10020
+ absValue
10021
+ ] });
10022
+ }
10023
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: price.toFixed(2) });
10024
+ }
10025
+ function openInExplorer(address) {
10026
+ window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
10027
+ }
10028
+ async function getAssetRate(symbol) {
10029
+ const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}USDT`;
10030
+ const response = await fetch(assetURL);
10031
+ return await response.json();
10032
+ }
10033
+ var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
10034
+ function PortfolioItem(props) {
10035
+ const { address, asset } = props;
10036
+ const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query18.useQuery)({
10037
+ retry: false,
10038
+ staleTime: 4 * 60 * 1e3,
10039
+ enabled: !!address && !!asset.symbol,
10040
+ queryKey: [ASSETS_RATES_QUERY_KEY, address, asset.symbol],
10041
+ queryFn: async () => await getAssetRate(asset.symbol)
10042
+ });
10043
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10044
+ "div",
10045
+ {
10046
+ className: cn(
10047
+ "group cursor-pointer",
10048
+ "w-full flex items-center gap-[var(--l-pass-gap)]",
10049
+ "hover:text-[var(--l-pass-fg-h)] transition-colors"
10050
+ ),
10051
+ onClick: () => openInExplorer(asset.address),
10052
+ children: [
10053
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10054
+ "div",
10055
+ {
10056
+ className: cn(
10057
+ "flex-none w-10 h-10 bg-[var(--l-pass-primary)] rounded-full flex items-center justify-center",
10058
+ "group-hover:opacity-60 transition-opacity"
10059
+ ),
10060
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) })
10061
+ }
10062
+ ),
10063
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full flex-1", children: [
10064
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full flex items-center justify-between text-xs", children: [
10065
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: asset.name }),
10066
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" })
10067
+ ] }),
10068
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: [
10069
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { children: [
10070
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: formatValue(Number(asset.formattedBalance)) }),
10071
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: " " + asset.symbol })
10072
+ ] }),
10073
+ isRateLoading && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Loader, { className: "h-4 w-4 animate-spin" }),
10074
+ !!assetRate?.price && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: (Number(asset.formattedBalance) * Number(assetRate.price)).toLocaleString("en-US", {
10075
+ minimumFractionDigits: 2,
10076
+ maximumFractionDigits: 2,
10077
+ currency: "USD",
10078
+ style: "currency"
10079
+ }) })
10080
+ ] })
10081
+ ] })
10082
+ ]
10083
+ }
10084
+ );
10085
+ }
10086
+ {
10087
+ }
10088
+
10089
+ // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
10090
+ var import_jsx_runtime50 = require("react/jsx-runtime");
10091
+ function PortfolioMenu() {
10092
+ const setPage = useLayoutDataStore((st) => st.setPage);
10093
+ const assetsContainerListRef = (0, import_react31.useRef)(null);
10094
+ const assetsListRef = (0, import_react31.useRef)(null);
10095
+ const address = useLumiaPassportSession((st) => st.address);
10096
+ const { assets, refreshBalances, isLoading } = useAssets(address);
10097
+ (0, import_react31.useEffect)(() => {
10098
+ if (!assetsContainerListRef.current || !assetsListRef.current) return;
10099
+ if (assetsContainerListRef.current) {
10100
+ assetsContainerListRef.current.style.setProperty(
10101
+ "--l-pass-list-bd",
10102
+ assetsListRef.current.clientHeight >= MAX_LIST_HEIGHT ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
10103
+ // hide border if no scrollbar
10104
+ );
10105
+ assetsContainerListRef.current.style.setProperty(
10106
+ "--l-pass-list-scrollbar-pd-l",
10107
+ assetsListRef.current.clientHeight >= MAX_LIST_HEIGHT ? "4px" : "0px"
10108
+ // remove padding if no scrollbar
10109
+ );
10110
+ }
10111
+ }, []);
10112
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10113
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10114
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.ArrowLeft, { className: "h-4 w-4" }) }),
10115
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
10116
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { title: "Refresh balances", variant: "ghost", size: "icon", onClick: refreshBalances, disabled: isLoading, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.RefreshCw, { className: "h-4 w-4" }) })
10117
+ ] }),
10118
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
10119
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
10120
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Loader, { className: "h-5 w-5 animate-spin" }),
10121
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
10122
+ ] }),
10123
+ !isLoading && assets.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
10124
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Gem, { className: "w-12 h-12 mb-2" }),
10125
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { children: "No assets found" })
10126
+ ] }),
10127
+ !isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10128
+ "div",
10129
+ {
10130
+ ref: assetsContainerListRef,
10131
+ className: "list-scrollbar-y relative border-t border-b border-[var(--l-pass-list-bd)]",
10132
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10133
+ "div",
10134
+ {
10135
+ ref: assetsListRef,
10136
+ className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]",
10137
+ children: assets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10138
+ PortfolioItem,
10139
+ {
10140
+ address,
10141
+ asset
10142
+ },
10143
+ `${asset.type}-${asset.address || "native"}-${index}`
10144
+ ))
10145
+ }
10146
+ )
10147
+ }
10148
+ )
10149
+ ] })
10150
+ ] });
10151
+ }
10152
+
10153
+ // src/internal/components/SecurityMenu/SecurityMenu.tsx
10154
+ var import_lucide_react32 = require("lucide-react");
10155
+ var import_react32 = require("react");
10156
+ init_auth();
10157
+ init_keyshare();
10158
+ init_vaultClient();
10159
+ var import_jsx_runtime51 = require("react/jsx-runtime");
10160
+ function SecurityMenu() {
10161
+ const page = useLayoutDataStore((st) => st.page);
10162
+ const setPage = useLayoutDataStore((st) => st.setPage);
10163
+ const open = page === "security";
10164
+ const userId = import_auth3.jwtTokenManager.getUserId();
10165
+ const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
10166
+ const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
10167
+ const [isRefreshing, setIsRefreshing] = (0, import_react32.useState)(false);
10168
+ const [localInfo, setLocalInfo] = (0, import_react32.useState)(null);
10169
+ const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react32.useState)(null);
10170
+ const [recoveryBrowser, setRecoveryBrowser] = (0, import_react32.useState)(null);
10171
+ const [recoveryUa, setRecoveryUa] = (0, import_react32.useState)(null);
10172
+ const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react32.useState)(null);
10173
+ const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react32.useState)(null);
10174
+ const [recoveryCountry, setRecoveryCountry] = (0, import_react32.useState)(null);
10175
+ const [hasServerBackup, setHasServerBackup] = (0, import_react32.useState)(false);
10176
+ const [trustedApps, setTrustedApps] = (0, import_react32.useState)([]);
10177
+ const [appToRemove, setAppToRemove] = (0, import_react32.useState)(null);
10178
+ const fetchRecovery = (0, import_react32.useCallback)(async () => {
10179
+ if (!userId) return;
10180
+ try {
10181
+ setIsRefreshing(true);
10182
+ const keyshareInfo = await getKeyshareInfo(userId);
10183
+ setLocalInfo(keyshareInfo);
10184
+ const { getIframeManager: getIframeManager2 } = await Promise.resolve().then(() => (init_iframe_manager(), iframe_manager_exports));
10185
+ try {
10186
+ console.log("[SecurityModal] Loading trusted apps for user:", userId);
10187
+ const iframeManager = getIframeManager2();
10188
+ const apps = await iframeManager.getTrustedApps(userId);
10189
+ console.log("[SecurityModal] Received trusted apps:", apps);
10190
+ console.log("[SecurityModal] Trusted apps count:", apps?.length);
10191
+ console.log("[SecurityModal] Setting trusted apps state with:", apps);
10192
+ setTrustedApps(apps);
10193
+ } catch (error) {
10194
+ console.error("[SecurityModal] Failed to load trusted apps:", error);
10195
+ setTrustedApps([]);
10196
+ }
10197
+ const stats = await getShareRecoveryStats();
10198
+ const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
10199
+ setHasServerBackup(!!hasRecoveryData);
10200
+ const created = stats?.created;
10201
+ setRecoveryCreatedAt(created?.at || null);
10202
+ setRecoveryBrowser(created?.browser || null);
10203
+ setRecoveryUa(created?.ua || null);
10204
+ setRecoveryDeviceId(created?.deviceId || null);
10205
+ setRecoveryDeviceName(created?.deviceName || null);
10206
+ setRecoveryCountry(created?.country || null);
10207
+ } finally {
10208
+ setIsRefreshing(false);
10209
+ }
10210
+ }, [userId]);
10211
+ (0, import_react32.useEffect)(() => {
10212
+ if (open) fetchRecovery();
10213
+ }, [open, fetchRecovery]);
10214
+ const parseOS = (ua) => {
10215
+ if (!ua) return null;
10216
+ if (ua.includes("Mac OS X")) return "macOS";
9803
10217
  if (ua.includes("Windows")) return "Windows";
9804
10218
  if (ua.includes("Android")) return "Android";
9805
10219
  if (ua.includes("Linux")) return "Linux";
9806
10220
  if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
9807
10221
  return null;
9808
10222
  };
9809
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
9810
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2", children: [
9811
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.ArrowLeft, { className: "h-4 w-4" }) }),
9812
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2 font-semibold", children: [
9813
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
9814
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", onClick: fetchRecovery, children: isRefreshing ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.RefreshCw, { className: "h-4 w-4" }) })
10223
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
10224
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-2", children: [
10225
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.ArrowLeft, { className: "h-4 w-4" }) }),
10226
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-2 font-semibold", children: [
10227
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
10228
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", onClick: fetchRecovery, children: isRefreshing ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.RefreshCw, { className: "h-4 w-4" }) })
9815
10229
  ] })
9816
10230
  ] }) }),
9817
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "grid grid-cols-3 gap-4", children: [
9818
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-2 text-center", children: [
9819
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
9820
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Cloud, { className: "h-4 w-4" }),
9821
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-sm font-medium", children: "Server" })
10231
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "grid grid-cols-3 gap-4", children: [
10232
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10233
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10234
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Cloud, { className: "h-4 w-4" }),
10235
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Server" })
9822
10236
  ] }),
9823
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10237
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
9824
10238
  "span",
9825
10239
  {
9826
10240
  className: cn(
@@ -9828,18 +10242,18 @@ function SecurityMenu() {
9828
10242
  serverHasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9829
10243
  ),
9830
10244
  children: [
9831
- serverHasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.AlertTriangle, { className: "h-4 w-4 mr-1" }),
10245
+ serverHasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.AlertTriangle, { className: "h-4 w-4 mr-1" }),
9832
10246
  serverHasKeyshare ? "Ready" : "Missing"
9833
10247
  ]
9834
10248
  }
9835
10249
  )
9836
10250
  ] }),
9837
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-2 text-center", children: [
9838
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
9839
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Laptop, { className: "h-4 w-4" }),
9840
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-sm font-medium", children: "Local" })
10251
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10252
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10253
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Laptop, { className: "h-4 w-4" }),
10254
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Local" })
9841
10255
  ] }),
9842
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10256
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
9843
10257
  "span",
9844
10258
  {
9845
10259
  className: cn(
@@ -9847,18 +10261,18 @@ function SecurityMenu() {
9847
10261
  localInfo?.hasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9848
10262
  ),
9849
10263
  children: [
9850
- localInfo?.hasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.AlertTriangle, { className: "h-4 w-4 mr-1" }),
10264
+ localInfo?.hasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.AlertTriangle, { className: "h-4 w-4 mr-1" }),
9851
10265
  localInfo?.hasKeyshare ? "Ready" : "Missing"
9852
10266
  ]
9853
10267
  }
9854
10268
  )
9855
10269
  ] }),
9856
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-2 text-center", children: [
9857
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
9858
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Shield, { className: "h-4 w-4" }),
9859
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-sm font-medium", children: "Vault" })
10270
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10271
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10272
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Shield, { className: "h-4 w-4" }),
10273
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Vault" })
9860
10274
  ] }),
9861
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10275
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
9862
10276
  "span",
9863
10277
  {
9864
10278
  className: cn(
@@ -9866,101 +10280,101 @@ function SecurityMenu() {
9866
10280
  hasServerBackup ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9867
10281
  ),
9868
10282
  children: [
9869
- hasServerBackup ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.AlertTriangle, { className: "h-4 w-4 mr-1" }),
10283
+ hasServerBackup ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.AlertTriangle, { className: "h-4 w-4 mr-1" }),
9870
10284
  hasServerBackup ? "Ready" : "None"
9871
10285
  ]
9872
10286
  }
9873
10287
  )
9874
10288
  ] })
9875
10289
  ] }),
9876
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
9877
- localInfo?.hasKeyshare && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
9878
- localInfo.ownerAddress && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
9879
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: "Owner: " }),
9880
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
10290
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
10291
+ localInfo?.hasKeyshare && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10292
+ localInfo.ownerAddress && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10293
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Owner: " }),
10294
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
9881
10295
  ] }),
9882
- typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
9883
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: "Size: " }),
9884
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
10296
+ typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10297
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Size: " }),
10298
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
9885
10299
  ] }),
9886
- localInfo.sessionId && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
9887
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: "Session: " }),
9888
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-mono break-all", children: localInfo.sessionId })
10300
+ localInfo.sessionId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10301
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Session: " }),
10302
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.sessionId })
9889
10303
  ] })
9890
10304
  ] }),
9891
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
9892
- backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-1", children: [
9893
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Server, { className: "h-2.5 w-2.5" }),
9894
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { children: [
10305
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10306
+ backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10307
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Server, { className: "h-2.5 w-2.5" }),
10308
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9895
10309
  "Server: ",
9896
10310
  new Date(backup.server.lastBackup).toLocaleString()
9897
10311
  ] })
9898
10312
  ] }),
9899
- !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-1", children: [
9900
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Server, { className: "h-2.5 w-2.5" }),
9901
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { children: [
10313
+ !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10314
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Server, { className: "h-2.5 w-2.5" }),
10315
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9902
10316
  "Server: ",
9903
10317
  new Date(recoveryCreatedAt).toLocaleString()
9904
10318
  ] })
9905
10319
  ] }),
9906
- backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-1", children: [
9907
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Cloud, { className: "h-2.5 w-2.5" }),
9908
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { children: [
10320
+ backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10321
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Cloud, { className: "h-2.5 w-2.5" }),
10322
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9909
10323
  "Cloud: ",
9910
10324
  new Date(backup.cloud.lastBackup).toLocaleString()
9911
10325
  ] })
9912
10326
  ] }),
9913
- backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-1", children: [
9914
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.HardDrive, { className: "h-2.5 w-2.5" }),
9915
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { children: [
10327
+ backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10328
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.HardDrive, { className: "h-2.5 w-2.5" }),
10329
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9916
10330
  "Local: ",
9917
10331
  new Date(backup.local.lastBackup).toLocaleString()
9918
10332
  ] })
9919
10333
  ] })
9920
10334
  ] }),
9921
- (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
9922
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: "Device Information:" }),
9923
- recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10335
+ (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10336
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: "Device Information:" }),
10337
+ recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9924
10338
  "Created: ",
9925
10339
  new Date(recoveryCreatedAt).toLocaleString(),
9926
10340
  " "
9927
10341
  ] }),
9928
- recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10342
+ recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9929
10343
  "Country: ",
9930
10344
  recoveryCountry
9931
10345
  ] }),
9932
- recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10346
+ recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9933
10347
  "Browser: ",
9934
10348
  recoveryBrowser
9935
10349
  ] }),
9936
- parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10350
+ parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9937
10351
  "OS: ",
9938
10352
  parseOS(recoveryUa)
9939
10353
  ] }),
9940
- recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10354
+ recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9941
10355
  "Device: ",
9942
10356
  recoveryDeviceName
9943
10357
  ] }),
9944
- recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10358
+ recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9945
10359
  "Device ID: ",
9946
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-mono break-all", children: recoveryDeviceId })
10360
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: recoveryDeviceId })
9947
10361
  ] })
9948
10362
  ] }),
9949
- trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full space-y-2", children: [
9950
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
9951
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10363
+ trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full space-y-2", children: [
10364
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
10365
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
9952
10366
  "div",
9953
10367
  {
9954
10368
  className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
9955
10369
  children: [
9956
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex-1 min-w-0", children: [
9957
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "font-medium", children: new URL(app.origin).hostname }),
9958
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
10370
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex-1 min-w-0", children: [
10371
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium", children: new URL(app.origin).hostname }),
10372
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
9959
10373
  "Trusted: ",
9960
10374
  new Date(app.trustedAt).toLocaleDateString()
9961
10375
  ] })
9962
10376
  ] }),
9963
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10377
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
9964
10378
  Button,
9965
10379
  {
9966
10380
  variant: "ghost",
@@ -9972,7 +10386,7 @@ function SecurityMenu() {
9972
10386
  origin: app.origin,
9973
10387
  hostname: new URL(app.origin).hostname
9974
10388
  }),
9975
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Trash2, { className: "h-3 w-3" })
10389
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Trash2, { className: "h-3 w-3" })
9976
10390
  }
9977
10391
  )
9978
10392
  ]
@@ -9985,58 +10399,62 @@ function SecurityMenu() {
9985
10399
  }
9986
10400
 
9987
10401
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
9988
- var import_lucide_react31 = require("lucide-react");
9989
- var import_react32 = require("react");
10402
+ var import_lucide_react33 = require("lucide-react");
10403
+ var import_react34 = require("react");
9990
10404
  var import_viem6 = require("viem");
9991
10405
  var import_wagmi2 = require("wagmi");
9992
10406
 
9993
10407
  // src/hooks/useSendTransaction.ts
9994
- var import_react30 = require("react");
9995
- var import_viem4 = require("viem");
10408
+ var import_react33 = require("react");
10409
+ var import_viem5 = require("viem");
9996
10410
  init_account();
9997
10411
  function useSendTransaction() {
9998
- const { session, address } = useLumiaPassportSession();
9999
- const [isLoading, setIsLoading] = (0, import_react30.useState)(false);
10000
- const [error, setError] = (0, import_react30.useState)(null);
10001
- const [userOpHash, setUserOpHash] = (0, import_react30.useState)(null);
10002
- const sendTransaction = (0, import_react30.useCallback)(async (params) => {
10003
- if (!session || !address) {
10004
- setError("No active session");
10005
- return null;
10006
- }
10007
- if (!(0, import_viem4.isAddress)(params.to)) {
10008
- setError("Invalid recipient address");
10009
- return null;
10010
- }
10011
- const value = parseFloat(params.value);
10012
- if (isNaN(value) || value < 0) {
10013
- setError("Invalid amount");
10014
- return null;
10015
- }
10016
- setIsLoading(true);
10017
- setError(null);
10018
- setUserOpHash(null);
10019
- try {
10020
- const valueWei = (0, import_viem4.parseEther)(params.value).toString();
10021
- const hash = await sendUserOperation(
10022
- session,
10023
- params.to,
10024
- valueWei,
10025
- params.data || "0x",
10026
- "standard",
10027
- "v0.7"
10028
- );
10029
- setUserOpHash(hash);
10030
- return hash;
10031
- } catch (err) {
10032
- const errorMessage = err instanceof Error ? err.message : "Transaction failed";
10033
- setError(errorMessage);
10034
- return null;
10035
- } finally {
10036
- setIsLoading(false);
10037
- }
10038
- }, [session, address]);
10039
- const reset = (0, import_react30.useCallback)(() => {
10412
+ const session = useLumiaPassportSession((st) => st.session);
10413
+ const address = useLumiaPassportSession((st) => st.address);
10414
+ const [isLoading, setIsLoading] = (0, import_react33.useState)(false);
10415
+ const [error, setError] = (0, import_react33.useState)(null);
10416
+ const [userOpHash, setUserOpHash] = (0, import_react33.useState)(null);
10417
+ const sendTransaction = (0, import_react33.useCallback)(
10418
+ async (params) => {
10419
+ if (!session || !address) {
10420
+ setError("No active session");
10421
+ return null;
10422
+ }
10423
+ if (!(0, import_viem5.isAddress)(params.to)) {
10424
+ setError("Invalid recipient address");
10425
+ return null;
10426
+ }
10427
+ const value = parseFloat(params.value);
10428
+ if (isNaN(value) || value < 0) {
10429
+ setError("Invalid amount");
10430
+ return null;
10431
+ }
10432
+ setIsLoading(true);
10433
+ setError(null);
10434
+ setUserOpHash(null);
10435
+ try {
10436
+ const valueWei = (0, import_viem5.parseEther)(params.value).toString();
10437
+ const hash = await sendUserOperation(
10438
+ session,
10439
+ params.to,
10440
+ valueWei,
10441
+ params.data || "0x",
10442
+ "standard",
10443
+ "v0.7"
10444
+ );
10445
+ setUserOpHash(hash);
10446
+ return hash;
10447
+ } catch (err) {
10448
+ const errorMessage = err instanceof Error ? err.message : "Transaction failed";
10449
+ setError(errorMessage);
10450
+ return null;
10451
+ } finally {
10452
+ setIsLoading(false);
10453
+ }
10454
+ },
10455
+ [session, address]
10456
+ );
10457
+ const reset = (0, import_react33.useCallback)(() => {
10040
10458
  setError(null);
10041
10459
  setUserOpHash(null);
10042
10460
  setIsLoading(false);
@@ -10050,188 +10468,27 @@ function useSendTransaction() {
10050
10468
  };
10051
10469
  }
10052
10470
 
10053
- // src/modules/assets.ts
10054
- var import_react31 = __toESM(require("react"), 1);
10055
- var import_wagmi = require("wagmi");
10056
- var import_viem5 = require("viem");
10057
- init_base();
10058
- var COMMON_TOKENS = [
10059
- // Add real token addresses here when available
10060
- // {
10061
- // address: '0x....',
10062
- // name: 'USD Coin',
10063
- // symbol: 'USDC',
10064
- // decimals: 6,
10065
- // logo: 'https://...'
10066
- // }
10067
- ];
10068
- function useAssets(address) {
10069
- const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0, import_wagmi.useBalance)({
10070
- address,
10071
- chainId: lumiaBeam.id,
10072
- query: {
10073
- enabled: !!address
10074
- }
10075
- });
10076
- const tokenContracts = COMMON_TOKENS.map((token) => ({
10077
- address: token.address,
10078
- abi: import_viem5.erc20Abi,
10079
- functionName: "balanceOf",
10080
- args: [address],
10081
- chainId: lumiaBeam.id
10082
- }));
10083
- const readContractsResult = (0, import_wagmi.useReadContracts)({
10084
- contracts: tokenContracts,
10085
- query: {
10086
- enabled: !!address && COMMON_TOKENS.length > 0
10087
- }
10088
- });
10089
- const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
10090
- const getAllAssets = () => {
10091
- const assets = [];
10092
- if (nativeBalance) {
10093
- assets.push({
10094
- type: "native",
10095
- name: "Lumia",
10096
- symbol: "LUMIA",
10097
- balance: nativeBalance.value.toString(),
10098
- formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
10099
- decimals: 18
10100
- });
10101
- }
10102
- if (tokenBalances && COMMON_TOKENS.length > 0) {
10103
- tokenBalances.forEach((balance, index) => {
10104
- const token = COMMON_TOKENS[index];
10105
- if (balance.status === "success" && balance.result) {
10106
- const balanceValue = balance.result;
10107
- const formattedBalance = (0, import_viem5.formatUnits)(balanceValue, token.decimals);
10108
- assets.push({
10109
- type: "erc20",
10110
- address: token.address,
10111
- name: token.name,
10112
- symbol: token.symbol,
10113
- balance: balanceValue.toString(),
10114
- formattedBalance: parseFloat(formattedBalance).toFixed(4),
10115
- decimals: token.decimals,
10116
- logo: token.logo
10117
- });
10118
- }
10119
- });
10120
- }
10121
- return assets;
10122
- };
10123
- const getTokenBalance = (tokenAddress) => {
10124
- const tokenIndex = COMMON_TOKENS.findIndex(
10125
- (token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
10126
- );
10127
- if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
10128
- return null;
10129
- }
10130
- const balance = tokenBalances[tokenIndex];
10131
- const token = COMMON_TOKENS[tokenIndex];
10132
- if (balance.status === "success" && balance.result) {
10133
- const balanceValue = balance.result;
10134
- const formattedBalance = (0, import_viem5.formatUnits)(balanceValue, token.decimals);
10135
- return {
10136
- address: token.address,
10137
- name: token.name,
10138
- symbol: token.symbol,
10139
- decimals: token.decimals,
10140
- balance: balanceValue.toString(),
10141
- formattedBalance: parseFloat(formattedBalance).toFixed(4),
10142
- logo: token.logo
10143
- };
10144
- }
10145
- return null;
10146
- };
10147
- const refreshBalances = async () => {
10148
- await Promise.all([
10149
- refetchNativeBalance(),
10150
- refetchTokenBalances()
10151
- ]);
10152
- };
10153
- return {
10154
- nativeBalance,
10155
- tokenBalances,
10156
- assets: getAllAssets(),
10157
- getTokenBalance,
10158
- refreshBalances,
10159
- isLoading: nativeBalanceLoading || tokenBalancesLoading,
10160
- isConnected: !!address
10161
- };
10162
- }
10163
- function useTokenInfo(tokenAddress) {
10164
- const readContractsResult = (0, import_wagmi.useReadContracts)({
10165
- contracts: [
10166
- { address: tokenAddress, abi: import_viem5.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
10167
- { address: tokenAddress, abi: import_viem5.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
10168
- { address: tokenAddress, abi: import_viem5.erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
10169
- ]
10170
- });
10171
- const { data: tokenData, isLoading } = readContractsResult;
10172
- if (!tokenData || isLoading) {
10173
- return { isLoading, tokenInfo: null };
10174
- }
10175
- const [nameResult, symbolResult, decimalsResult] = tokenData;
10176
- if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
10177
- return {
10178
- isLoading: false,
10179
- tokenInfo: {
10180
- name: nameResult.result,
10181
- symbol: symbolResult.result,
10182
- decimals: decimalsResult.result,
10183
- address: tokenAddress
10184
- }
10185
- };
10186
- }
10187
- return { isLoading: false, tokenInfo: null };
10188
- }
10189
- function useTokenBalance(tokenAddress, userAddress) {
10190
- const { data: balance, isLoading, refetch } = (0, import_wagmi.useReadContract)({
10191
- address: tokenAddress,
10192
- abi: import_viem5.erc20Abi,
10193
- functionName: "balanceOf",
10194
- args: userAddress ? [userAddress] : void 0,
10195
- chainId: lumiaBeam.id,
10196
- query: {
10197
- enabled: !!userAddress
10198
- }
10199
- });
10200
- const { tokenInfo } = useTokenInfo(tokenAddress);
10201
- const formattedBalance = import_react31.default.useMemo(() => {
10202
- if (!balance || !tokenInfo) return "0";
10203
- return (0, import_viem5.formatUnits)(balance, tokenInfo.decimals);
10204
- }, [balance, tokenInfo]);
10205
- return {
10206
- balance,
10207
- formattedBalance,
10208
- tokenInfo,
10209
- isLoading,
10210
- refetch
10211
- };
10212
- }
10213
-
10214
10471
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
10215
10472
  init_base();
10216
- var import_jsx_runtime50 = require("react/jsx-runtime");
10473
+ var import_jsx_runtime52 = require("react/jsx-runtime");
10217
10474
  function SendLumiaMenu() {
10218
10475
  const page = useLayoutDataStore((st) => st.page);
10219
10476
  const setPage = useLayoutDataStore((st) => st.setPage);
10220
10477
  const open = page === "send";
10221
- const { address } = useLumiaPassportSession();
10478
+ const address = useLumiaPassportSession((st) => st.address);
10222
10479
  const { assets } = useAssets(address);
10223
10480
  const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
10224
10481
  const { refetch: refetchBalance } = (0, import_wagmi2.useBalance)({
10225
10482
  address,
10226
10483
  chainId: lumiaBeam.id
10227
10484
  });
10228
- const [recipient, setRecipient] = (0, import_react32.useState)("");
10229
- const [amount, setAmount] = (0, import_react32.useState)("");
10230
- const [txStep, setTxStep] = (0, import_react32.useState)("input");
10231
- const [validationError, setValidationError] = (0, import_react32.useState)(null);
10485
+ const [recipient, setRecipient] = (0, import_react34.useState)("");
10486
+ const [amount, setAmount] = (0, import_react34.useState)("");
10487
+ const [txStep, setTxStep] = (0, import_react34.useState)("input");
10488
+ const [validationError, setValidationError] = (0, import_react34.useState)(null);
10232
10489
  const nativeAsset = assets.find((a) => a.type === "native");
10233
10490
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
10234
- (0, import_react32.useEffect)(() => {
10491
+ (0, import_react34.useEffect)(() => {
10235
10492
  if (open) {
10236
10493
  setTxStep("input");
10237
10494
  setValidationError(null);
@@ -10286,18 +10543,18 @@ function SendLumiaMenu() {
10286
10543
  const maxAmount = Math.max(0, balance - 1e-3);
10287
10544
  setAmount(maxAmount.toFixed(6));
10288
10545
  };
10289
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10290
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10291
- txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.ArrowLeft, { className: "h-4 w-4" }) }),
10292
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
10546
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10547
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10548
+ txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.ArrowLeft, { className: "h-4 w-4" }) }),
10549
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
10293
10550
  ] }),
10294
- txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
10295
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
10296
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
10297
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10551
+ txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
10552
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
10553
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
10554
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10298
10555
  Input,
10299
10556
  {
10300
- Icon: import_lucide_react31.Wallet,
10557
+ Icon: import_lucide_react33.Wallet,
10301
10558
  type: "text",
10302
10559
  value: recipient,
10303
10560
  onChange: (e) => setRecipient(e.target.value),
@@ -10305,17 +10562,17 @@ function SendLumiaMenu() {
10305
10562
  }
10306
10563
  )
10307
10564
  ] }),
10308
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
10309
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex justify-between items-center", children: [
10310
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
10311
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
10565
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
10566
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between items-center", children: [
10567
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
10568
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
10312
10569
  "Balance: ",
10313
10570
  balance.toFixed(4),
10314
10571
  " LUMIA"
10315
10572
  ] })
10316
10573
  ] }),
10317
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full relative", children: [
10318
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10574
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full relative", children: [
10575
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10319
10576
  Input,
10320
10577
  {
10321
10578
  Icon: LumiaIcon,
@@ -10326,7 +10583,7 @@ function SendLumiaMenu() {
10326
10583
  step: "0.000001"
10327
10584
  }
10328
10585
  ),
10329
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10586
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10330
10587
  Button,
10331
10588
  {
10332
10589
  onClick: handleMaxAmount,
@@ -10339,73 +10596,73 @@ function SendLumiaMenu() {
10339
10596
  )
10340
10597
  ] })
10341
10598
  ] }),
10342
- (validationError || error) && /* @__PURE__ */ (0, import_jsx_runtime50.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: [
10343
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.AlertCircle, { className: "h-4 w-4" }),
10344
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-sm", children: validationError || error })
10599
+ (validationError || error) && /* @__PURE__ */ (0, import_jsx_runtime52.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: [
10600
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.AlertCircle, { className: "h-4 w-4" }),
10601
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-sm", children: validationError || error })
10345
10602
  ] }),
10346
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
10603
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
10347
10604
  ] }),
10348
- txStep === "confirm" && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
10349
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "bg-gray-50 rounded-lg p-4", children: [
10350
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
10351
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "space-y-2 text-sm", children: [
10352
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex justify-between", children: [
10353
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { children: "To:" }),
10354
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
10605
+ txStep === "confirm" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
10606
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "bg-gray-50 rounded-lg p-4", children: [
10607
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
10608
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "space-y-2 text-sm", children: [
10609
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between", children: [
10610
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "To:" }),
10611
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
10355
10612
  ] }),
10356
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex justify-between", children: [
10357
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { children: "Amount:" }),
10358
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: `font-semibold`, children: [
10613
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between", children: [
10614
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "Amount:" }),
10615
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: `font-semibold`, children: [
10359
10616
  amount,
10360
10617
  " LUMIA"
10361
10618
  ] })
10362
10619
  ] }),
10363
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex justify-between", children: [
10364
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { children: "Network:" }),
10365
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { children: "Lumia Beam" })
10620
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between", children: [
10621
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "Network:" }),
10622
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "Lumia Beam" })
10366
10623
  ] })
10367
10624
  ] })
10368
10625
  ] }),
10369
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex gap-2", children: [
10370
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
10371
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
10372
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Loader, { className: "h-4 w-4 animate-spin" }),
10626
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex gap-2", children: [
10627
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
10628
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
10629
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.Loader, { className: "h-4 w-4 animate-spin" }),
10373
10630
  "Confirm"
10374
10631
  ] })
10375
10632
  ] })
10376
10633
  ] }),
10377
- txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
10378
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Loader, { className: "h-12 w-12 animate-spin mx-auto" }),
10379
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { children: [
10380
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
10381
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
10634
+ txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
10635
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.Loader, { className: "h-12 w-12 animate-spin mx-auto" }),
10636
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { children: [
10637
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
10638
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
10382
10639
  ] })
10383
10640
  ] }),
10384
- txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
10385
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "text-center py-4", children: [
10386
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
10387
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
10388
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
10641
+ txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
10642
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "text-center py-4", children: [
10643
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
10644
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
10645
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
10389
10646
  ] }),
10390
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
10647
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
10391
10648
  ] })
10392
10649
  ] });
10393
10650
  }
10394
10651
 
10395
10652
  // src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
10396
- var import_lucide_react32 = require("lucide-react");
10653
+ var import_lucide_react34 = require("lucide-react");
10397
10654
  var import_qrcode = __toESM(require("qrcode"), 1);
10398
- var import_react33 = require("react");
10655
+ var import_react35 = require("react");
10399
10656
  init_clients();
10400
- var import_jsx_runtime51 = require("react/jsx-runtime");
10657
+ var import_jsx_runtime53 = require("react/jsx-runtime");
10401
10658
  function ReceiveLumiaMenu() {
10402
10659
  const page = useLayoutDataStore((st) => st.page);
10403
10660
  const setPage = useLayoutDataStore((st) => st.setPage);
10404
10661
  const open = page === "receive";
10405
10662
  const { address } = useLumiaPassportSession();
10406
- const [qrCodeUrl, setQrCodeUrl] = (0, import_react33.useState)("");
10407
- const [copied, setCopied] = (0, import_react33.useState)(false);
10408
- (0, import_react33.useEffect)(() => {
10663
+ const [qrCodeUrl, setQrCodeUrl] = (0, import_react35.useState)("");
10664
+ const [copied, setCopied] = (0, import_react35.useState)(false);
10665
+ (0, import_react35.useEffect)(() => {
10409
10666
  if (open && address) {
10410
10667
  import_qrcode.default.toDataURL(address, {
10411
10668
  width: 200,
@@ -10428,41 +10685,42 @@ function ReceiveLumiaMenu() {
10428
10685
  console.error("Failed to copy address:", error);
10429
10686
  }
10430
10687
  };
10431
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10432
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
10433
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.ArrowLeft, { className: "h-4 w-4" }) }),
10434
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
10688
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10689
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
10690
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.ArrowLeft, { className: "h-4 w-4" }) }),
10691
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
10435
10692
  ] }),
10436
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
10437
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
10438
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
10693
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
10694
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
10695
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
10439
10696
  ] }),
10440
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
10441
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Highlight, { type: "info", children: [
10442
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
10443
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
10444
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.CheckCircle2, { className: "h-4 w-4" }),
10445
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Copied!" })
10446
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
10447
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Copy, { className: "h-4 w-4" }),
10448
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Copy Address" })
10697
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
10698
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { type: "info", children: [
10699
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
10700
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
10701
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4" }),
10702
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Copied!" })
10703
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
10704
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.Copy, { className: "h-4 w-4" }),
10705
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Copy Address" })
10449
10706
  ] }) })
10450
10707
  ] }),
10451
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
10708
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
10452
10709
  ] });
10453
10710
  }
10454
10711
 
10455
10712
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10456
- var import_lucide_react34 = require("lucide-react");
10713
+ var import_lucide_react36 = require("lucide-react");
10714
+ var import_react36 = require("react");
10457
10715
 
10458
10716
  // src/internal/components/SettingsMenu/constants.ts
10459
- var import_lucide_react33 = require("lucide-react");
10717
+ var import_lucide_react35 = require("lucide-react");
10460
10718
 
10461
10719
  // src/internal/assets/KycIcon.tsx
10462
- var import_jsx_runtime52 = require("react/jsx-runtime");
10720
+ var import_jsx_runtime54 = require("react/jsx-runtime");
10463
10721
  function KycIcon(props) {
10464
10722
  const { width = "24", height = "24", ...rest } = props;
10465
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10723
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10466
10724
  "path",
10467
10725
  {
10468
10726
  d: "M12 18.5455C10.1727 18.5455 8.625 17.9114 7.35682 16.6432C6.08864 15.375 5.45455 13.8273 5.45455 12C5.45455 10.1727 6.08864 8.625 7.35682 7.35682C8.625 6.08864 10.1727 5.45455 12 5.45455C13.8273 5.45455 15.375 6.08864 16.6432 7.35682C17.9114 8.625 18.5455 10.1727 18.5455 12C18.5455 13.8273 17.9114 15.375 16.6432 16.6432C15.375 17.9114 13.8273 18.5455 12 18.5455ZM12 16.9091C13.3636 16.9091 14.5227 16.4318 15.4773 15.4773C16.4318 14.5227 16.9091 13.3636 16.9091 12C16.9091 11.7682 16.892 11.5398 16.858 11.3148C16.8239 11.0898 16.7727 10.8682 16.7045 10.65C16.5 10.6909 16.2955 10.7216 16.0909 10.742C15.8864 10.7625 15.6818 10.7727 15.4773 10.7727C14.6182 10.7727 13.8 10.6091 13.0227 10.2818C12.2455 9.95455 11.55 9.47727 10.9364 8.85C10.5545 9.62727 10.0295 10.3023 9.36136 10.875C8.69318 11.4477 7.93636 11.8636 7.09091 12.1227C7.13182 13.4591 7.62614 14.5909 8.57386 15.5182C9.52159 16.4455 10.6636 16.9091 12 16.9091ZM7.41818 10.2409C8.01818 9.92727 8.475 9.5625 8.78864 9.14659C9.10227 8.73068 9.40909 8.23636 9.70909 7.66364C9.19091 7.93636 8.73409 8.29432 8.33864 8.7375C7.94318 9.18068 7.63636 9.68182 7.41818 10.2409ZM9.95455 13.6364C9.72273 13.6364 9.52841 13.558 9.37159 13.4011C9.21477 13.2443 9.13636 13.05 9.13636 12.8182C9.13636 12.5864 9.21477 12.392 9.37159 12.2352C9.52841 12.0784 9.72273 12 9.95455 12C10.1864 12 10.3807 12.0784 10.5375 12.2352C10.6943 12.392 10.7727 12.5864 10.7727 12.8182C10.7727 13.05 10.6943 13.2443 10.5375 13.4011C10.3807 13.558 10.1864 13.6364 9.95455 13.6364ZM15.4773 9.13636H15.7227C15.8045 9.13636 15.8864 9.12955 15.9682 9.11591C15.5182 8.50227 14.9489 8.01136 14.2602 7.64318C13.5716 7.275 12.8182 7.09091 12 7.09091H11.7545C11.6727 7.09091 11.5977 7.09773 11.5295 7.11136C12.0614 7.725 12.6239 8.21591 13.217 8.58409C13.8102 8.95227 14.5636 9.13636 15.4773 9.13636ZM14.0455 13.6364C13.8136 13.6364 13.6193 13.558 13.4625 13.4011C13.3057 13.2443 13.2273 13.05 13.2273 12.8182C13.2273 12.5864 13.3057 12.392 13.4625 12.2352C13.6193 12.0784 13.8136 12 14.0455 12C14.2773 12 14.4716 12.0784 14.6284 12.2352C14.7852 12.392 14.8636 12.5864 14.8636 12.8182C14.8636 13.05 14.7852 13.2443 14.6284 13.4011C14.4716 13.558 14.2773 13.6364 14.0455 13.6364ZM3 7.09091V4.63636C3 4.18636 3.16023 3.80114 3.48068 3.48068C3.80114 3.16023 4.18636 3 4.63636 3H7.09091V4.63636H4.63636V7.09091H3ZM7.09091 21H4.63636C4.18636 21 3.80114 20.8398 3.48068 20.5193C3.16023 20.1989 3 19.8136 3 19.3636V16.9091H4.63636V19.3636H7.09091V21ZM16.9091 21V19.3636H19.3636V16.9091H21V19.3636C21 19.8136 20.8398 20.1989 20.5193 20.5193C20.1989 20.8398 19.8136 21 19.3636 21H16.9091ZM19.3636 7.09091V4.63636H16.9091V3H19.3636C19.8136 3 20.1989 3.16023 20.5193 3.48068C20.8398 3.80114 21 4.18636 21 4.63636V7.09091H19.3636Z",
@@ -10473,27 +10731,29 @@ function KycIcon(props) {
10473
10731
 
10474
10732
  // src/internal/components/SettingsMenu/constants.ts
10475
10733
  var NAV_BUTTONS = [
10476
- { id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react33.ArrowLeftRight },
10734
+ { id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react35.ArrowLeftRight },
10477
10735
  { id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
10478
- { id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react33.UsersRound },
10479
- { id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react33.LockKeyhole },
10480
- { id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react33.DatabaseBackup }
10736
+ { id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react35.UsersRound },
10737
+ { id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react35.LockKeyhole },
10738
+ { id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react35.DatabaseBackup }
10481
10739
  ];
10482
10740
 
10483
10741
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10484
- var import_jsx_runtime53 = require("react/jsx-runtime");
10742
+ var import_jsx_runtime55 = require("react/jsx-runtime");
10485
10743
  function SettingsMenu() {
10486
10744
  const address = useLumiaPassportSession((st) => st.address);
10487
10745
  const setPage = useLayoutDataStore((st) => st.setPage);
10488
10746
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
10747
+ const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
10748
+ (0, import_react36.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
10489
10749
  const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
10490
10750
  const highlightedKeys = settingsNotifications.map((n) => n.target);
10491
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10492
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10493
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.ArrowLeft, { className: "h-4 w-4" }) }),
10494
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xl font-semibold", children: "Wallet Details" })
10751
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10752
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10753
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react36.ArrowLeft, { className: "h-4 w-4" }) }),
10754
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xl font-semibold", children: "Wallet Details" })
10495
10755
  ] }),
10496
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
10756
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
10497
10757
  Button,
10498
10758
  {
10499
10759
  variant: "outline",
@@ -10506,8 +10766,8 @@ function SettingsMenu() {
10506
10766
  highlightedKeys.includes(id) && "animate-glow-warning"
10507
10767
  ),
10508
10768
  children: [
10509
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Icon, { className: "w-4 h-4" }),
10510
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: name })
10769
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon, { className: "w-4 h-4" }),
10770
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: name })
10511
10771
  ]
10512
10772
  },
10513
10773
  id
@@ -10516,15 +10776,15 @@ function SettingsMenu() {
10516
10776
  }
10517
10777
 
10518
10778
  // src/internal/components/TermsOfService.tsx
10519
- var import_jsx_runtime54 = require("react/jsx-runtime");
10779
+ var import_jsx_runtime56 = require("react/jsx-runtime");
10520
10780
  function TermsOfService() {
10521
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-full p-4 flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "prose text-sm", children: "By using Lumia Passport you agree to our terms." }) });
10781
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full p-4 flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "prose text-sm", children: "By using Lumia Passport you agree to our terms." }) });
10522
10782
  }
10523
10783
 
10524
10784
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
10525
- var import_react_query17 = require("@tanstack/react-query");
10526
- var import_lucide_react36 = require("lucide-react");
10527
- var import_react34 = require("react");
10785
+ var import_react_query19 = require("@tanstack/react-query");
10786
+ var import_lucide_react38 = require("lucide-react");
10787
+ var import_react37 = require("react");
10528
10788
 
10529
10789
  // src/internal/components/TransactionsMenu/api.ts
10530
10790
  init_base();
@@ -10815,7 +11075,7 @@ async function getTransactionsListQuery(address) {
10815
11075
  }
10816
11076
 
10817
11077
  // src/internal/components/TransactionsMenu/TransactionsGroup.tsx
10818
- var import_lucide_react35 = require("lucide-react");
11078
+ var import_lucide_react37 = require("lucide-react");
10819
11079
 
10820
11080
  // src/internal/components/TransactionsMenu/utils.ts
10821
11081
  init_base();
@@ -10833,7 +11093,7 @@ var parseValue = (value) => {
10833
11093
  return 0n;
10834
11094
  }
10835
11095
  };
10836
- var formatValue = (value, decimals = 18) => {
11096
+ var formatValue2 = (value, decimals = 18) => {
10837
11097
  const amount = parseValue(value);
10838
11098
  if (amount === 0n) return "0";
10839
11099
  if (decimals <= 0) {
@@ -10849,7 +11109,7 @@ var formatValue = (value, decimals = 18) => {
10849
11109
  const trimmed = fractionStr.slice(0, Math.min(6, fractionStr.length));
10850
11110
  return `${whole.toString()}.${trimmed}`;
10851
11111
  };
10852
- var openInExplorer = (txHash) => {
11112
+ var openInExplorer2 = (txHash) => {
10853
11113
  const explorerUrl = getExplorerUrl();
10854
11114
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
10855
11115
  };
@@ -10862,24 +11122,24 @@ var formatTimestamp = (timestampMs) => {
10862
11122
  };
10863
11123
 
10864
11124
  // src/internal/components/TransactionsMenu/TransactionsGroup.tsx
10865
- var import_jsx_runtime55 = require("react/jsx-runtime");
10866
- var getStatusIcon = (status) => status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.CheckCircle2, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.XCircle, { className: "w-4 h-4 text-[var(--l-pass-error)]" });
10867
- var getTransactionIcon = (direction) => direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.ArrowDownRight, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.ArrowUpRight, { className: "w-4 h-4 text-[var(--l-pass-info)]" });
11125
+ var import_jsx_runtime57 = require("react/jsx-runtime");
11126
+ var getStatusIcon = (status) => status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.CheckCircle2, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.XCircle, { className: "w-4 h-4 text-[var(--l-pass-error)]" });
11127
+ var getTransactionIcon = (direction) => direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.ArrowDownRight, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.ArrowUpRight, { className: "w-4 h-4 text-[var(--l-pass-info)]" });
10868
11128
  function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
10869
11129
  const internalSymbol = internal.assetSymbol || assetSymbol;
10870
11130
  const internalDecimals = internal.decimals ?? assetDecimals;
10871
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
10872
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
10873
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
10874
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { children: [
10875
- formatValue(internal.value, internalDecimals),
11131
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
11132
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
11133
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
11134
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { children: [
11135
+ formatValue2(internal.value, internalDecimals),
10876
11136
  " ",
10877
11137
  internalSymbol
10878
11138
  ] })
10879
11139
  ] }),
10880
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
10881
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
10882
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
11140
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
11141
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
11142
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
10883
11143
  ] })
10884
11144
  ] });
10885
11145
  }
@@ -10890,22 +11150,22 @@ function TransactionsGroup(props) {
10890
11150
  const assetSymbol = parent.assetSymbol || "LUMIA";
10891
11151
  const assetDecimals = parent.decimals ?? 18;
10892
11152
  const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
10893
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11153
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10894
11154
  "div",
10895
11155
  {
10896
- onClick: () => openInExplorer(parent.parentHash),
11156
+ onClick: () => openInExplorer2(parent.parentHash),
10897
11157
  className: cn(
10898
11158
  "rounded-[var(--l-pass-el-bdrs)] p-2 transition-colors cursor-pointer border border-[var(--l-pass-bd)]",
10899
11159
  "bg-[var(--l-pass-secondary)] hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
10900
11160
  ),
10901
11161
  children: [
10902
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
10903
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2", children: [
11162
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
11163
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center gap-2", children: [
10904
11164
  getTransactionIcon(parent.direction),
10905
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "font-medium", children: isIncoming ? "Received" : "Sent" }),
11165
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-medium", children: isIncoming ? "Received" : "Sent" }),
10906
11166
  getStatusIcon(parent.status)
10907
11167
  ] }),
10908
- parent.badgeLabel && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11168
+ parent.badgeLabel && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10909
11169
  "span",
10910
11170
  {
10911
11171
  className: cn(
@@ -10916,39 +11176,39 @@ function TransactionsGroup(props) {
10916
11176
  }
10917
11177
  )
10918
11178
  ] }),
10919
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "block w-full leading-4 mb-1 text-xs text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) }),
10920
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-0 text-sm", children: [
10921
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex justify-between", children: [
10922
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: isIncoming ? "From:" : "To:" }),
10923
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "font-mono", children: [
11179
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "block w-full leading-4 mb-1 text-xs text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) }),
11180
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-0 text-sm", children: [
11181
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11182
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: isIncoming ? "From:" : "To:" }),
11183
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "font-mono", children: [
10924
11184
  parent.counterpartyName || formatAddress2(parent.counterparty),
10925
- parent.counterpartyIsContract && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs text-[var(--l-pass-info)] ml-1", children: "(Contract)" })
11185
+ parent.counterpartyIsContract && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs text-[var(--l-pass-info)] ml-1", children: "(Contract)" })
10926
11186
  ] })
10927
11187
  ] }),
10928
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex justify-between", children: [
10929
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Value:" }),
10930
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "font-semibold", children: [
10931
- formatValue(parent.value, assetDecimals),
11188
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11189
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Value:" }),
11190
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "font-semibold", children: [
11191
+ formatValue2(parent.value, assetDecimals),
10932
11192
  " ",
10933
11193
  assetSymbol
10934
11194
  ] })
10935
11195
  ] }),
10936
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex justify-between", children: [
10937
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Block:" }),
10938
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "font-mono", children: parent.blockNumber ? `#${parent.blockNumber}` : "-" })
11196
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11197
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Block:" }),
11198
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-mono", children: parent.blockNumber ? `#${parent.blockNumber}` : "-" })
10939
11199
  ] }),
10940
- parent.method && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex justify-between", children: [
10941
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Method:" }),
10942
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-[var(--l-pass-info)] text-xs", children: parent.method })
11200
+ parent.method && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11201
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Method:" }),
11202
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[var(--l-pass-info)] text-xs", children: parent.method })
10943
11203
  ] })
10944
11204
  ] }),
10945
- internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11205
+ internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10946
11206
  "div",
10947
11207
  {
10948
11208
  className: "mt-4 rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
10949
11209
  onClick: (event) => event.stopPropagation(),
10950
11210
  children: [
10951
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11211
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10952
11212
  Button,
10953
11213
  {
10954
11214
  variant: "ghost",
@@ -10956,16 +11216,16 @@ function TransactionsGroup(props) {
10956
11216
  className: "w-full justify-between",
10957
11217
  onClick: () => onToggleExpanded(group.id),
10958
11218
  children: [
10959
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { children: [
11219
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { children: [
10960
11220
  "View internal calls (",
10961
11221
  internalsToRender.length,
10962
11222
  ")"
10963
11223
  ] }),
10964
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: expanded ? "Hide" : "Show" })
11224
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: expanded ? "Hide" : "Show" })
10965
11225
  ]
10966
11226
  }
10967
11227
  ),
10968
- expanded && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "px-3 pb-3 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11228
+ expanded && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-3 pb-3 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10969
11229
  InternalTransaction,
10970
11230
  {
10971
11231
  internal,
@@ -10983,34 +11243,34 @@ function TransactionsGroup(props) {
10983
11243
  }
10984
11244
 
10985
11245
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
10986
- var import_jsx_runtime56 = require("react/jsx-runtime");
11246
+ var import_jsx_runtime58 = require("react/jsx-runtime");
10987
11247
  function TransactionsMenu() {
10988
- const qc = (0, import_react_query17.useQueryClient)();
11248
+ const qc = (0, import_react_query19.useQueryClient)();
10989
11249
  const address = useLumiaPassportSession((st) => st.address);
10990
11250
  const page = useLayoutDataStore((st) => st.page);
10991
11251
  const setPage = useLayoutDataStore((st) => st.setPage);
10992
- const [expandedGroups, setExpandedGroups] = (0, import_react34.useState)({});
11252
+ const [expandedGroups, setExpandedGroups] = (0, import_react37.useState)({});
10993
11253
  const {
10994
11254
  data: txHistoryGroups = [],
10995
11255
  isLoading: isTxHistoryLoading,
10996
11256
  isFetching: isTxHistoryFetching,
10997
11257
  error: txHistoryError
10998
- } = (0, import_react_query17.useQuery)({
11258
+ } = (0, import_react_query19.useQuery)({
10999
11259
  retry: false,
11000
11260
  enabled: !!address && page === "transactions",
11001
11261
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
11002
11262
  queryFn: () => getTransactionsListQuery(address)
11003
11263
  });
11004
- const refreshTxHistory = (0, import_react34.useCallback)(
11264
+ const refreshTxHistory = (0, import_react37.useCallback)(
11005
11265
  () => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
11006
11266
  [qc, address]
11007
11267
  );
11008
11268
  const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
11009
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
11010
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-2", children: [
11011
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.ArrowLeft, { className: "h-4 w-4" }) }),
11012
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
11013
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11269
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
11270
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-2", children: [
11271
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.ArrowLeft, { className: "h-4 w-4" }) }),
11272
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
11273
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11014
11274
  Button,
11015
11275
  {
11016
11276
  variant: "ghost",
@@ -11018,13 +11278,13 @@ function TransactionsMenu() {
11018
11278
  onClick: refreshTxHistory,
11019
11279
  disabled: isTxHistoryFetching,
11020
11280
  title: "Refresh transactions",
11021
- children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.RefreshCw, { className: "h-4 w-4" })
11281
+ children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.RefreshCw, { className: "h-4 w-4" })
11022
11282
  }
11023
11283
  )
11024
11284
  ] }) }),
11025
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "max-h-[60vh] overflow-y-auto", children: [
11026
- isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.Loader, { className: "h-5 w-5 animate-spin" }) }),
11027
- !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
11285
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "max-h-[60vh] overflow-y-auto", children: [
11286
+ isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Loader, { className: "h-5 w-5 animate-spin" }) }),
11287
+ !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
11028
11288
  "div",
11029
11289
  {
11030
11290
  className: cn(
@@ -11033,20 +11293,20 @@ function TransactionsMenu() {
11033
11293
  "text-[var(--l-pass-error)]"
11034
11294
  ),
11035
11295
  children: [
11036
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.XCircle, { className: "w-12 h-12 mb-2" }),
11037
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "block w-full text-center text-sm", children: txHistoryResolvedError })
11296
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.XCircle, { className: "w-12 h-12 mb-2" }),
11297
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "block w-full text-center text-sm", children: txHistoryResolvedError })
11038
11298
  ]
11039
11299
  }
11040
11300
  ),
11041
- !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-2 items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: [
11042
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.Activity, { className: "w-12 h-12" }),
11043
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: "block w-full text-center", children: [
11044
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: "No transactions found" }),
11045
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("br", {}),
11046
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
11301
+ !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col gap-2 items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: [
11302
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Activity, { className: "w-12 h-12" }),
11303
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("span", { className: "block w-full text-center", children: [
11304
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: "No transactions found" }),
11305
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("br", {}),
11306
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
11047
11307
  ] })
11048
11308
  ] }),
11049
- !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full flex flex-col gap-2", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11309
+ !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full flex flex-col gap-2", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11050
11310
  TransactionsGroup,
11051
11311
  {
11052
11312
  group,
@@ -11059,127 +11319,6 @@ function TransactionsMenu() {
11059
11319
  ] });
11060
11320
  }
11061
11321
 
11062
- // src/internal/components/ViewAssetsMenu/ViewAssetsMenu.tsx
11063
- var import_lucide_react38 = require("lucide-react");
11064
-
11065
- // src/internal/components/ViewAssetsMenu/AssetItem.tsx
11066
- var import_lucide_react37 = require("lucide-react");
11067
- var import_react35 = __toESM(require("react"), 1);
11068
- init_base();
11069
- var import_jsx_runtime57 = require("react/jsx-runtime");
11070
- var openInExplorer2 = (address) => {
11071
- window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
11072
- };
11073
- function AssetItem(props) {
11074
- const { address, asset } = props;
11075
- const [copied, setCopied] = import_react35.default.useState(null);
11076
- const handleCopy = async (text, type) => {
11077
- try {
11078
- await navigator.clipboard.writeText(text);
11079
- setCopied(type);
11080
- setTimeout(() => setCopied(null), 1500);
11081
- } catch (error) {
11082
- console.error("Failed to copy:", error);
11083
- }
11084
- };
11085
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full border border-[var(--l-pass-bd)] bg-[var(--l-pass-secondary)] hover:bg-[var(--l-pass-secondary-h)] rounded-xl p-3 transition-colors", children: [
11086
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
11087
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center gap-3", children: [
11088
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-10 h-10 bg-[var(--l-pass-primary)] rounded-full flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) }) }),
11089
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { children: [
11090
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "font-medium", children: asset.name }),
11091
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "text-sm", children: asset.symbol })
11092
- ] })
11093
- ] }),
11094
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "text-right", children: [
11095
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "font-mono", children: asset.formattedBalance }),
11096
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: asset.symbol })
11097
- ] })
11098
- ] }),
11099
- asset.address && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full space-y-2 mt-3 pt-3 border-t border-[var(--l-pass-bd)]", children: [
11100
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full flex items-center justify-between text-sm", children: [
11101
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: "Contract Address:" }),
11102
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center gap-2", children: [
11103
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: `font-mono text-xs`, children: `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` }),
11104
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11105
- Button,
11106
- {
11107
- variant: "ghost",
11108
- size: "icon",
11109
- title: "Copy address",
11110
- onClick: () => handleCopy(asset.address, "address"),
11111
- children: copied === "address" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Check, { className: "w-3 h-3 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Copy, { className: "w-3 h-3" })
11112
- }
11113
- ),
11114
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11115
- Button,
11116
- {
11117
- variant: "ghost",
11118
- size: "icon",
11119
- onClick: () => openInExplorer2(asset.address),
11120
- title: "View in explorer",
11121
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.ExternalLink, { className: "w-3 h-3" })
11122
- }
11123
- )
11124
- ] })
11125
- ] }),
11126
- asset.decimals && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full flex items-center justify-between text-sm", children: [
11127
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: "Decimals:" }),
11128
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: asset.decimals })
11129
- ] })
11130
- ] }),
11131
- asset.type === "native" && address && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "mt-3 pt-3 border-t border-[var(--l-pass-bd)]", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center justify-between text-sm", children: [
11132
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: "Your Address:" }),
11133
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center gap-2", children: [
11134
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-mono text-xs", children: `${address.slice(0, 6)}...${address.slice(-4)}` }),
11135
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11136
- Button,
11137
- {
11138
- variant: "ghost",
11139
- size: "icon",
11140
- onClick: () => handleCopy(address, "wallet"),
11141
- title: "Copy wallet address",
11142
- children: copied === "wallet" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Check, { className: "w-3 h-3 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Copy, { className: "w-3 h-3" })
11143
- }
11144
- ),
11145
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => openInExplorer2(address), title: "View in explorer", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.ExternalLink, { className: "w-3 h-3" }) })
11146
- ] })
11147
- ] }) })
11148
- ] });
11149
- }
11150
-
11151
- // src/internal/components/ViewAssetsMenu/ViewAssetsMenu.tsx
11152
- var import_jsx_runtime58 = require("react/jsx-runtime");
11153
- function ViewAssetsMenu() {
11154
- const setPage = useLayoutDataStore((st) => st.setPage);
11155
- const { address } = useLumiaPassportSession();
11156
- const { assets, refreshBalances, isLoading } = useAssets(address);
11157
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
11158
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-2", children: [
11159
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.ArrowLeft, { className: "h-4 w-4" }) }),
11160
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
11161
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { title: "Refresh balances", variant: "ghost", size: "icon", onClick: refreshBalances, disabled: isLoading, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.RefreshCw, { className: "h-4 w-4" }) })
11162
- ] }) }),
11163
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full max-h-[60dvh] overflow-y-auto", children: [
11164
- !isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full text-sm text-[var(--l-pass-muted)] mb-4", children: [
11165
- "Total: ",
11166
- assets.length,
11167
- " asset",
11168
- assets.length !== 1 ? "s" : ""
11169
- ] }),
11170
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full flex items-center justify-center gap-2 p-4", children: [
11171
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Loader, { className: "h-5 w-5 mr-2 animate-spin" }),
11172
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
11173
- ] }),
11174
- !isLoading && assets.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
11175
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Gem, { className: "w-12 h-12 mb-2" }),
11176
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { children: "No assets found" })
11177
- ] }),
11178
- !isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full flex flex-col gap-2", children: assets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AssetItem, { address, asset }, `${asset.type}-${asset.address || "native"}-${index}`)) })
11179
- ] })
11180
- ] });
11181
- }
11182
-
11183
11322
  // src/internal/components/PageMap.tsx
11184
11323
  var PAGE_MAP = {
11185
11324
  ["auth" /* AUTH */]: {
@@ -11238,9 +11377,9 @@ var PAGE_MAP = {
11238
11377
  },
11239
11378
  ["assets" /* ASSETS */]: {
11240
11379
  key: "assets" /* ASSETS */,
11241
- title: "View Assets",
11380
+ title: "Assets Portfolio Menu",
11242
11381
  description: "View your token balances and assets",
11243
- component: ViewAssetsMenu
11382
+ component: PortfolioMenu
11244
11383
  },
11245
11384
  ["manage-wallet" /* MANAGE_WALLET */]: {
11246
11385
  key: "manage-wallet" /* MANAGE_WALLET */,
@@ -11289,7 +11428,7 @@ function usePageMapper() {
11289
11428
  setIsDialogOpen,
11290
11429
  setIsDialogClosing
11291
11430
  } = useLayoutStore();
11292
- const closeDialog = (0, import_react36.useCallback)(() => {
11431
+ const closeDialog = (0, import_react38.useCallback)(() => {
11293
11432
  setIsDialogClosing(true);
11294
11433
  setTimeout(() => {
11295
11434
  setDialogContent(null);
@@ -11300,7 +11439,7 @@ function usePageMapper() {
11300
11439
  setIsDialogOpen(false);
11301
11440
  }, CLEAR_DIALOG_TIMEOUT);
11302
11441
  }, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
11303
- const openDialog = (0, import_react36.useCallback)(
11442
+ const openDialog = (0, import_react38.useCallback)(
11304
11443
  (pageItem) => {
11305
11444
  const PageContentComponent = pageItem.component;
11306
11445
  setDialogTitle(pageItem.title);
@@ -11310,7 +11449,7 @@ function usePageMapper() {
11310
11449
  },
11311
11450
  [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
11312
11451
  );
11313
- (0, import_react36.useEffect)(() => {
11452
+ (0, import_react38.useEffect)(() => {
11314
11453
  if (page === null) return closeDialog();
11315
11454
  const pageItem = protectedRoutes[page];
11316
11455
  if (!pageItem) {
@@ -11323,7 +11462,7 @@ function usePageMapper() {
11323
11462
  }
11324
11463
 
11325
11464
  // src/internal/hooks/useSettingsNotifications.ts
11326
- var import_react37 = require("react");
11465
+ var import_react39 = require("react");
11327
11466
  init_auth();
11328
11467
  var EMAIL_NOT_CONNECTED_NOTIFICATION = {
11329
11468
  id: "email-not-connected",
@@ -11340,13 +11479,13 @@ function useSettingsNotifications() {
11340
11479
  const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
11341
11480
  const providers = import_auth3.jwtTokenManager.getProviders();
11342
11481
  const hasEmail = providers.includes("email");
11343
- (0, import_react37.useEffect)(() => {
11482
+ (0, import_react39.useEffect)(() => {
11344
11483
  setSettingsNotifications({
11345
11484
  ...BACKUP_IS_NOT_CREATED_NOTIFICATION,
11346
11485
  status: hasServerVault ? "resolved" : "active"
11347
11486
  });
11348
11487
  }, [hasServerVault, setSettingsNotifications]);
11349
- (0, import_react37.useEffect)(() => {
11488
+ (0, import_react39.useEffect)(() => {
11350
11489
  setSettingsNotifications({
11351
11490
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
11352
11491
  status: hasEmail ? "resolved" : "active"
@@ -11355,14 +11494,17 @@ function useSettingsNotifications() {
11355
11494
  }
11356
11495
 
11357
11496
  // src/internal/hooks/useWalletStatus.ts
11358
- var import_react38 = require("react");
11497
+ var import_react40 = require("react");
11359
11498
  init_auth();
11360
11499
  function useWalletStatus() {
11361
11500
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
11362
11501
  const address = useLumiaPassportSession((st) => st.address);
11363
11502
  const session = useLumiaPassportSession((st) => st.session);
11364
- const { config, callbacks } = useLumiaPassportConfig();
11365
- (0, import_react38.useEffect)(() => {
11503
+ const {
11504
+ config: { current: config },
11505
+ callbacks
11506
+ } = useLumiaPassportConfig();
11507
+ (0, import_react40.useEffect)(() => {
11366
11508
  if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
11367
11509
  const userId = import_auth3.jwtTokenManager.getUserId();
11368
11510
  const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
@@ -11384,13 +11526,16 @@ function useWalletStatus() {
11384
11526
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
11385
11527
  var import_jsx_runtime60 = require("react/jsx-runtime");
11386
11528
  function LumiaPassportDialog() {
11387
- const className = useLumiaPassportConfig()?.config?.ui?.dialogClassName;
11529
+ const {
11530
+ config: { current: config }
11531
+ } = useLumiaPassportConfig();
11532
+ const className = config?.ui?.dialogClassName;
11388
11533
  const session = useLumiaPassportSession((st) => st.session);
11389
11534
  const page = useLayoutDataStore((st) => st.page);
11390
11535
  const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
11391
11536
  const setPage = useLayoutDataStore((st) => st.setPage);
11392
11537
  const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
11393
- (0, import_react39.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
11538
+ (0, import_react41.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
11394
11539
  usePageMapper();
11395
11540
  useAutoConnect();
11396
11541
  useCheckVaultStatus();
@@ -11428,13 +11573,13 @@ function LumiaPassportDialog() {
11428
11573
  }
11429
11574
 
11430
11575
  // src/internal/components/LumiaPriceSSE.tsx
11431
- var import_react41 = require("react");
11576
+ var import_react43 = require("react");
11432
11577
  var import_wagmi3 = require("wagmi");
11433
11578
  init_base();
11434
11579
 
11435
11580
  // src/internal/hooks/useLumiaPriceSSE.ts
11436
- var import_react_query18 = require("@tanstack/react-query");
11437
- var import_react40 = require("react");
11581
+ var import_react_query20 = require("@tanstack/react-query");
11582
+ var import_react42 = require("react");
11438
11583
 
11439
11584
  // src/internal/lib/LumiaPriceSSEService.ts
11440
11585
  var FALLBACK3 = "https://fallback.lumia.passport.io";
@@ -11560,7 +11705,7 @@ async function sseConnectMutation() {
11560
11705
 
11561
11706
  // src/internal/hooks/useLumiaPriceSSE.ts
11562
11707
  function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11563
- const { mutate: connectSSE } = (0, import_react_query18.useMutation)({
11708
+ const { mutate: connectSSE } = (0, import_react_query20.useMutation)({
11564
11709
  mutationFn: sseConnectMutation,
11565
11710
  onSuccess: () => {
11566
11711
  lumiaPriceSSE.addListener(updateCurrentPrice);
@@ -11569,7 +11714,7 @@ function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11569
11714
  console.error("Lumia Price SSE connection error:", err);
11570
11715
  }
11571
11716
  });
11572
- (0, import_react40.useEffect)(() => {
11717
+ (0, import_react42.useEffect)(() => {
11573
11718
  const isConnected = lumiaPriceSSE.getConnectionStatus();
11574
11719
  console.log("[LUMIA PRICE SSE MANAGER] SSE status:", { enabled, isConnected });
11575
11720
  if (!enabled) {
@@ -11586,7 +11731,7 @@ function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11586
11731
 
11587
11732
  // src/internal/components/LumiaPriceSSE.tsx
11588
11733
  function LumiaPriceSSE() {
11589
- const address = useLumiaPassportSession().address;
11734
+ const address = useLumiaPassportSession((st) => st.address);
11590
11735
  const { data: balance } = (0, import_wagmi3.useBalance)({
11591
11736
  address,
11592
11737
  chainId: lumiaBeam.id,
@@ -11600,7 +11745,7 @@ function LumiaPriceSSE() {
11600
11745
  });
11601
11746
  const { lumiaRate, setLumiaRate, setUsdBalance, setBalance } = useLayoutDataStore();
11602
11747
  useLumiaPriceSSE(!!address, (update) => setLumiaRate(update.price || 1));
11603
- (0, import_react41.useEffect)(() => {
11748
+ (0, import_react43.useEffect)(() => {
11604
11749
  const usdBalance = Number(balance?.formatted || 0) * lumiaRate;
11605
11750
  setUsdBalance(usdBalance);
11606
11751
  setBalance(balance);
@@ -11609,23 +11754,23 @@ function LumiaPriceSSE() {
11609
11754
  }
11610
11755
 
11611
11756
  // src/internal/components/TssManager.tsx
11612
- var import_react42 = __toESM(require("react"), 1);
11757
+ var import_react44 = __toESM(require("react"), 1);
11613
11758
  init_auth();
11614
11759
  init_clients();
11615
- var TssManagerWithRef = import_react42.default.forwardRef((props, ref) => {
11760
+ var TssManagerWithRef = import_react44.default.forwardRef((props, ref) => {
11616
11761
  const { mpcPin } = props;
11617
11762
  const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
11618
11763
  const setStatus = useLumiaPassportSession((st) => st.setStatus);
11619
11764
  const setSession = useLumiaPassportSession((st) => st.setSession);
11620
11765
  const setAddress = useLumiaPassportSession((st) => st.setAddress);
11621
- const onSessionCreated = (0, import_react42.useCallback)(
11766
+ const onSessionCreated = (0, import_react44.useCallback)(
11622
11767
  (session, address) => {
11623
11768
  setSession(session);
11624
11769
  setAddress(address);
11625
11770
  },
11626
11771
  [setSession, setAddress]
11627
11772
  );
11628
- const createSessionWithKeyshare = import_react42.default.useCallback(
11773
+ const createSessionWithKeyshare = import_react44.default.useCallback(
11629
11774
  async (userId, hasServerKeyshare, isNewUser) => {
11630
11775
  setStatus("checking key management setup...");
11631
11776
  await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
@@ -11646,50 +11791,46 @@ var TssManagerWithRef = import_react42.default.forwardRef((props, ref) => {
11646
11791
  },
11647
11792
  [setStatus, usePaymaster, mpcPin]
11648
11793
  );
11649
- import_react42.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11794
+ import_react44.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11650
11795
  return null;
11651
11796
  });
11652
11797
 
11653
11798
  // src/internal/components/WalletConnectHandler.tsx
11654
11799
  var import_rainbowkit = require("@rainbow-me/rainbowkit");
11655
- var import_react_query19 = require("@tanstack/react-query");
11656
- var import_react43 = __toESM(require("react"), 1);
11800
+ var import_react_query21 = require("@tanstack/react-query");
11801
+ var import_react45 = __toESM(require("react"), 1);
11657
11802
  var import_wagmi4 = require("wagmi");
11658
11803
  init_wallet();
11659
11804
  function WalletConnectHandler() {
11660
- const qc = (0, import_react_query19.useQueryClient)();
11661
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
11805
+ const qc = (0, import_react_query21.useQueryClient)();
11806
+ const { callbacks } = useLumiaPassportConfig();
11807
+ const { address, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
11808
+ const { disconnect } = (0, import_wagmi4.useDisconnect)();
11809
+ const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
11662
11810
  const setPage = useLayoutDataStore((st) => st.setPage);
11663
11811
  const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
11664
- const onError = (0, import_react43.useCallback)((error) => {
11812
+ const onError = (0, import_react45.useCallback)((error) => {
11665
11813
  setLinkError(error);
11666
11814
  setIsWalletLinking(false);
11667
11815
  setPage("manage-wallet" /* MANAGE_WALLET */);
11668
11816
  }, []);
11669
- const onLinkingComplete = (0, import_react43.useCallback)(async (success) => {
11670
- setIsWalletLinking(false);
11817
+ const onLinkingComplete = (0, import_react45.useCallback)(async (success) => {
11671
11818
  if (success) {
11819
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
11820
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
11672
11821
  try {
11673
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
11674
- try {
11675
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
11676
- notifyProvidersUpdate?.();
11677
- } catch {
11678
- }
11679
- } catch (e) {
11680
- console.error("Failed to load providers:", e);
11822
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
11823
+ } catch {
11681
11824
  }
11682
11825
  setProviderType(null);
11683
11826
  setPage("manage-wallet" /* MANAGE_WALLET */);
11684
11827
  }
11828
+ setIsWalletLinking(false);
11685
11829
  }, []);
11686
11830
  const { openConnectModal } = (0, import_rainbowkit.useConnectModal)();
11687
- const { address, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
11688
- const { disconnect } = (0, import_wagmi4.useDisconnect)();
11689
- const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
11690
- const [hasStartedLinking, setHasStartedLinking] = import_react43.default.useState(false);
11691
- const timeoutRef = import_react43.default.useRef();
11692
- (0, import_react43.useEffect)(() => {
11831
+ const [hasStartedLinking, setHasStartedLinking] = import_react45.default.useState(false);
11832
+ const timeoutRef = import_react45.default.useRef();
11833
+ (0, import_react45.useEffect)(() => {
11693
11834
  if (isWalletLinking && !hasStartedLinking) {
11694
11835
  setHasStartedLinking(true);
11695
11836
  if (isConnected) {
@@ -11721,7 +11862,7 @@ function WalletConnectHandler() {
11721
11862
  }
11722
11863
  }
11723
11864
  }, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect]);
11724
- (0, import_react43.useEffect)(() => {
11865
+ (0, import_react45.useEffect)(() => {
11725
11866
  if (isConnected && address && isWalletLinking && hasStartedLinking) {
11726
11867
  handleWalletSign();
11727
11868
  }
@@ -11806,9 +11947,10 @@ var useLumiaPassportSession = (0, import_zustand5.create)((set) => ({
11806
11947
  setWalletReadyStatus: (status) => set({ walletReadyStatus: status })
11807
11948
  }));
11808
11949
  function LumiaPassportSessionProvider({ children }) {
11809
- const { config } = useLumiaPassportConfig();
11810
- console.log("[PASSPORT PROVIDER RENDER]: should be as less as possible");
11811
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react44.Fragment, { children: [
11950
+ const {
11951
+ config: { current: config }
11952
+ } = useLumiaPassportConfig();
11953
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react46.Fragment, { children: [
11812
11954
  children,
11813
11955
  config.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(WalletConnectHandler, {}),
11814
11956
  /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(LumiaPriceSSE, {}),
@@ -11860,44 +12002,56 @@ var LumiaWagmiProvider = ({ children }) => {
11860
12002
 
11861
12003
  // src/context/LumiaPassportContext.tsx
11862
12004
  var import_jsx_runtime63 = require("react/jsx-runtime");
11863
- var LumiaPassportContext = (0, import_react45.createContext)(void 0);
12005
+ var LumiaPassportContext = (0, import_react47.createContext)(void 0);
11864
12006
  function LumiaPassportProvider(props) {
11865
12007
  const { children, projectId, initialConfig = {}, callbacks } = props;
11866
12008
  const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
11867
12009
  const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
11868
- const [providersVersion, setProvidersVersion] = (0, import_react45.useState)(0);
11869
- const notifyProvidersUpdate = (0, import_react45.useCallback)(() => setProvidersVersion((prev) => prev + 1), []);
11870
- const [config, setConfig] = (0, import_react45.useState)(() => {
11871
- const merged = { ...DEFAULT_LUMIA_PASSPORT_CONFIG };
11872
- if (projectId) {
11873
- merged.projectId = projectId;
11874
- } else if (initialConfig.projectId) {
11875
- merged.projectId = initialConfig.projectId;
11876
- }
11877
- notifyNoProjetctId(merged.projectId);
11878
- if (initialConfig.passkey) merged.passkey = { ...merged.passkey, ...initialConfig.passkey };
11879
- if (initialConfig.email) merged.email = { ...merged.email, ...initialConfig.email };
11880
- if (initialConfig.social) {
11881
- merged.social = { ...merged.social, ...initialConfig.social };
11882
- if (initialConfig.social.providers) merged.social.providers = initialConfig.social.providers;
11883
- }
11884
- if (initialConfig.development) merged.development = { ...merged.development, ...initialConfig.development };
11885
- if (initialConfig.ui) {
11886
- merged.ui = { ...merged.ui, ...initialConfig.ui };
11887
- if (initialConfig.ui.branding) merged.ui.branding = { ...merged.ui.branding, ...initialConfig.ui.branding };
11888
- if (initialConfig.ui.dialogClassName) merged.ui.dialogClassName = initialConfig.ui.dialogClassName;
11889
- }
11890
- if (initialConfig.network) merged.network = { ...merged.network, ...initialConfig.network };
11891
- if (initialConfig.services) merged.services = { ...merged.services, ...initialConfig.services };
11892
- if (initialConfig.features) merged.features = { ...merged.features, ...initialConfig.features };
11893
- if (initialConfig.kyc) merged.kyc = { ...merged.kyc, ...initialConfig.kyc };
11894
- if (initialConfig.warnings) merged.warnings = { ...merged.warnings, ...initialConfig.warnings };
11895
- if (initialConfig.preferedColorMode) merged.preferedColorMode = initialConfig.preferedColorMode;
12010
+ (0, import_react47.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
12011
+ const config = (0, import_react47.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
12012
+ const updateConfig = (0, import_react47.useCallback)((updates) => {
12013
+ const prev = config.current;
12014
+ const next = { ...prev };
12015
+ if (updates.projectId !== void 0) next.projectId = updates.projectId;
12016
+ if (updates.passkey) next.passkey = { ...next.passkey, ...updates.passkey };
12017
+ if (updates.email) next.email = { ...next.email, ...updates.email };
12018
+ if (updates.social) {
12019
+ next.social = { ...next.social, ...updates.social };
12020
+ if (updates.social.providers) next.social.providers = updates.social.providers;
12021
+ }
12022
+ if (updates.development) next.development = { ...next.development, ...updates.development };
12023
+ if (updates.ui) {
12024
+ next.ui = { ...next.ui, ...updates.ui };
12025
+ if (updates.ui.branding) next.ui.branding = { ...next.ui.branding, ...updates.ui.branding };
12026
+ }
12027
+ if (updates.network) next.network = { ...next.network, ...updates.network };
12028
+ if (updates.services) next.services = { ...next.services, ...updates.services };
12029
+ if (updates.features) next.features = { ...next.features, ...updates.features };
12030
+ if (updates.warnings) next.warnings = { ...next.warnings, ...updates.warnings };
12031
+ if (updates.kyc) next.kyc = { ...next.kyc, ...updates.kyc };
12032
+ if (updates.services && typeof window !== "undefined") {
12033
+ try {
12034
+ window.__LUMIA_SERVICES__ = next.services;
12035
+ } catch {
12036
+ }
12037
+ }
12038
+ if (updates.projectId !== void 0 && typeof window !== "undefined") {
12039
+ try {
12040
+ window.__LUMIA_PROJECT_ID__ = next.projectId;
12041
+ } catch {
12042
+ }
12043
+ }
12044
+ config.current = next;
12045
+ }, []);
12046
+ (0, import_react47.useEffect)(() => {
12047
+ if (typeof window === "undefined" || !projectId) return;
12048
+ const mergedConfig = (0, import_lodash_es2.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
12049
+ updateConfig(mergedConfig);
12050
+ console.log("[ MERGED PROVIDER STORED CONFIG ]", mergedConfig);
11896
12051
  try {
11897
12052
  if (typeof window !== "undefined") {
11898
- window.__LUMIA_SERVICES__ = merged.services;
12053
+ window.__LUMIA_SERVICES__ = mergedConfig.services;
11899
12054
  window.__LUMIA_PROJECT_ID__ = projectId;
11900
- console.log("[LumiaPassportProvider] Setting window.__LUMIA_SERVICES__:", merged.services);
11901
12055
  const resolvedServices = getServiceUrls();
11902
12056
  console.log("[LumiaPassportProvider] Resolved services:", resolvedServices);
11903
12057
  }
@@ -11910,60 +12064,12 @@ function LumiaPassportProvider(props) {
11910
12064
  console.warn("[LumiaPassport] Failed to initialize SDK error tracking:", error);
11911
12065
  }
11912
12066
  }
11913
- return merged;
11914
- });
11915
- const updateConfig = (0, import_react45.useCallback)((updates) => {
11916
- setConfig((prev) => {
11917
- const next = { ...prev };
11918
- if (updates.projectId !== void 0) next.projectId = updates.projectId;
11919
- if (updates.passkey) next.passkey = { ...next.passkey, ...updates.passkey };
11920
- if (updates.email) next.email = { ...next.email, ...updates.email };
11921
- if (updates.social) {
11922
- next.social = { ...next.social, ...updates.social };
11923
- if (updates.social.providers) next.social.providers = updates.social.providers;
11924
- }
11925
- if (updates.development) next.development = { ...next.development, ...updates.development };
11926
- if (updates.ui) {
11927
- next.ui = { ...next.ui, ...updates.ui };
11928
- if (updates.ui.branding) next.ui.branding = { ...next.ui.branding, ...updates.ui.branding };
11929
- }
11930
- if (updates.network) next.network = { ...next.network, ...updates.network };
11931
- if (updates.services) next.services = { ...next.services, ...updates.services };
11932
- if (updates.features) next.features = { ...next.features, ...updates.features };
11933
- if (updates.warnings) next.warnings = { ...next.warnings, ...updates.warnings };
11934
- if (updates.kyc) next.kyc = { ...next.kyc, ...updates.kyc };
11935
- if (updates.services && typeof window !== "undefined") {
11936
- try {
11937
- window.__LUMIA_SERVICES__ = next.services;
11938
- console.log("[LumiaPassportProvider] Updated window.__LUMIA_SERVICES__:", next.services);
11939
- } catch {
11940
- }
11941
- }
11942
- if (updates.projectId !== void 0 && typeof window !== "undefined") {
11943
- try {
11944
- ;
11945
- window.__LUMIA_PROJECT_ID__ = next.projectId;
11946
- console.log("[LumiaPassportProvider] Updated __LUMIA_PROJECT_ID__:", next.projectId);
11947
- } catch {
11948
- }
11949
- }
11950
- return next;
11951
- });
11952
- }, []);
11953
- (0, import_react45.useEffect)(() => {
11954
- if (typeof window === "undefined") return;
11955
- if (!config.projectId) return;
11956
12067
  const iframeUrl = getIframeUrl();
11957
- console.log("[LumiaPassport] Initializing secure iframe wallet:", {
11958
- iframeUrl,
11959
- projectId: `${projectId.substring(0, 10)}...`,
11960
- note: "All MPC operations will happen in isolated iframe context"
11961
- });
11962
12068
  try {
11963
12069
  const iframeManager = getIframeManager({
11964
12070
  iframeUrl,
11965
12071
  projectId,
11966
- debug: config.features?.mpcSecurity ?? true,
12072
+ debug: mergedConfig.features?.mpcSecurity ?? true,
11967
12073
  onWalletReady: (status) => {
11968
12074
  callbacks?.onWalletReady?.(status);
11969
12075
  setWalletReadyStatus(status);
@@ -11971,7 +12077,6 @@ function LumiaPassportProvider(props) {
11971
12077
  });
11972
12078
  iframeManager.initialize().then(() => {
11973
12079
  setIsIframeReady(true);
11974
- console.log("[LumiaPassport] \u2705 Secure iframe wallet initialized successfully");
11975
12080
  }).catch((error) => {
11976
12081
  console.error("[LumiaPassport] \u274C Failed to initialize iframe wallet:", error);
11977
12082
  });
@@ -11982,24 +12087,19 @@ function LumiaPassportProvider(props) {
11982
12087
  } catch (error) {
11983
12088
  console.error("[LumiaPassport] Error setting up iframe manager:", error);
11984
12089
  }
11985
- }, [config.projectId, config.features?.mpcSecurity]);
11986
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
11987
- LumiaPassportContext.Provider,
11988
- {
11989
- value: { config, updateConfig, callbacks, providersVersion, notifyProvidersUpdate },
11990
- children
11991
- }
11992
- ) });
12090
+ }, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
12091
+ const contextValue = (0, import_react47.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
12092
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
11993
12093
  }
11994
12094
  var useLumiaPassportConfig = () => {
11995
- const ctx = (0, import_react45.useContext)(LumiaPassportContext);
12095
+ const ctx = (0, import_react47.useContext)(LumiaPassportContext);
11996
12096
  if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
11997
12097
  return ctx;
11998
12098
  };
11999
12099
 
12000
12100
  // src/components/ConnectWalletButton.tsx
12001
12101
  var import_lucide_react39 = require("lucide-react");
12002
- var import_react46 = require("react");
12102
+ var import_react48 = require("react");
12003
12103
  init_auth();
12004
12104
  var import_jsx_runtime64 = (
12005
12105
  /** external Buttons can be provided */
@@ -12018,15 +12118,14 @@ function ConnectWalletButton(props) {
12018
12118
  // TODO: provide usePaymaster via config context
12019
12119
  usePaymaster = true
12020
12120
  } = props;
12021
- console.log("[ CONNECT BUTTON RENDER ] should be as minimal as possible");
12022
12121
  const setPage = useLayoutDataStore((st) => st.setPage);
12023
12122
  const colorMode = useLayoutStore((st) => st.colorMode);
12024
12123
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
12025
12124
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
12026
- (0, import_react46.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12125
+ (0, import_react48.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12027
12126
  const avatar = import_auth3.jwtTokenManager.getAvatar();
12028
12127
  const displayName = import_auth3.jwtTokenManager.getDisplayName();
12029
- const indicators = (0, import_react46.useMemo)(() => {
12128
+ const indicators = (0, import_react48.useMemo)(() => {
12030
12129
  const userId = import_auth3.jwtTokenManager.getUserId();
12031
12130
  if (!userId) return { server: false, local: false, backup: false };
12032
12131
  const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
@@ -12074,14 +12173,7 @@ function ConnectWalletButton(props) {
12074
12173
  "rounded-[var(--l-pass-el-bdrs)] p-2 max-w-sm min-w-[256px]"
12075
12174
  ),
12076
12175
  children: [
12077
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12078
- "img",
12079
- {
12080
- src: avatar,
12081
- alt: "User avatar",
12082
- className: "w-full h-full object-cover"
12083
- }
12084
- ) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
12176
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
12085
12177
  /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
12086
12178
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "font-semibold text-base truncate max-w-[144px]", children: displayName }),
12087
12179
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(UsdBalance, { className: "font-semibold text-base text-[var(--l-pass-fg-muted)]" })
@@ -12178,13 +12270,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
12178
12270
  var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
12179
12271
 
12180
12272
  // src/hooks/useLumiaPassportOpen.ts
12181
- var import_react47 = require("react");
12273
+ var import_react49 = require("react");
12182
12274
  function useLumiaPassportOpen() {
12183
12275
  const page = useLayoutDataStore((st) => st.page);
12184
12276
  const setPage = useLayoutDataStore((st) => st.setPage);
12185
12277
  const setPageParams = useLayoutDataStore((st) => st.setPageParams);
12186
- const address = useLumiaPassportSession().address;
12187
- const open = (0, import_react47.useCallback)(
12278
+ const address = useLumiaPassportSession((st) => st.address);
12279
+ const open = (0, import_react49.useCallback)(
12188
12280
  (passportPage, params) => {
12189
12281
  if (!address) return setPage("auth" /* AUTH */);
12190
12282
  if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -12193,24 +12285,27 @@ function useLumiaPassportOpen() {
12193
12285
  },
12194
12286
  [setPage, setPageParams, address]
12195
12287
  );
12196
- const close = (0, import_react47.useCallback)(() => setPage(null), [setPage]);
12288
+ const close = (0, import_react49.useCallback)(() => setPage(null), [setPage]);
12197
12289
  return { open, close, isOpen: page !== null };
12198
12290
  }
12199
12291
 
12200
12292
  // src/hooks/useLumiaPassportColorMode.ts
12201
- var import_react48 = require("react");
12293
+ var import_react50 = require("react");
12202
12294
  function useLumiaPassportColorMode() {
12203
- const preferedColorMode = useLumiaPassportConfig().config?.preferedColorMode;
12295
+ const {
12296
+ config: { current: config }
12297
+ } = useLumiaPassportConfig();
12298
+ const preferedColorMode = config?.preferedColorMode;
12204
12299
  const colorMode = useLayoutStore((st) => st.colorMode);
12205
12300
  const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
12206
- const setColorMode = (0, import_react48.useCallback)(
12301
+ const setColorMode = (0, import_react50.useCallback)(
12207
12302
  (mode) => {
12208
12303
  localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
12209
12304
  handleStoreColorMode(mode);
12210
12305
  },
12211
12306
  [handleStoreColorMode]
12212
12307
  );
12213
- (0, import_react48.useEffect)(() => {
12308
+ (0, import_react50.useEffect)(() => {
12214
12309
  let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
12215
12310
  if (!targetColorMode && !preferedColorMode) {
12216
12311
  const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -12252,7 +12347,7 @@ function ThemeToggle(props) {
12252
12347
  }
12253
12348
 
12254
12349
  // src/context/RainbowKitContext.tsx
12255
- var import_react49 = __toESM(require("react"), 1);
12350
+ var import_react51 = __toESM(require("react"), 1);
12256
12351
  var import_styles = require("@rainbow-me/rainbowkit/styles.css");
12257
12352
  var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
12258
12353
  var import_wagmi8 = require("wagmi");
@@ -12395,12 +12490,14 @@ var rainbowTheme = {
12395
12490
  // src/context/RainbowKitContext.tsx
12396
12491
  var import_jsx_runtime66 = require("react/jsx-runtime");
12397
12492
  var LumiaRainbowKitProvider = ({ children }) => {
12398
- const { config } = useLumiaPassportConfig();
12493
+ const {
12494
+ config: { current: config }
12495
+ } = useLumiaPassportConfig();
12399
12496
  const isDark = useLayoutStore((st) => st.colorMode === "dark");
12400
- const rainbowConfig2 = import_react49.default.useMemo(() => {
12497
+ const rainbowConfig2 = import_react51.default.useMemo(() => {
12401
12498
  return createRainbowConfig(config.wallet?.walletConnectProjectId);
12402
12499
  }, [config.wallet?.walletConnectProjectId]);
12403
- const customTheme = import_react49.default.useMemo(
12500
+ const customTheme = import_react51.default.useMemo(
12404
12501
  () => isDark ? {
12405
12502
  ...(0, import_rainbowkit3.darkTheme)(),
12406
12503
  colors: {
@@ -12428,11 +12525,9 @@ var LumiaRainbowKitProvider = ({ children }) => {
12428
12525
  };
12429
12526
 
12430
12527
  // src/internal/components/UserOpStatus.tsx
12431
- var React20 = __toESM(require("react"), 1);
12432
12528
  var import_lucide_react42 = require("lucide-react");
12433
-
12434
- // src/internal/components/ui/badge.tsx
12435
- var import_class_variance_authority2 = require("class-variance-authority");
12529
+ var React18 = __toESM(require("react"), 1);
12530
+ init_base();
12436
12531
 
12437
12532
  // src/internal/utils/cn.ts
12438
12533
  var import_clsx3 = require("clsx");
@@ -12441,34 +12536,10 @@ function cn2(...inputs) {
12441
12536
  return (0, import_tailwind_merge2.twMerge)((0, import_clsx3.clsx)(inputs));
12442
12537
  }
12443
12538
 
12444
- // src/internal/components/ui/badge.tsx
12445
- var import_jsx_runtime67 = require("react/jsx-runtime");
12446
- var badgeVariants = (0, import_class_variance_authority2.cva)(
12447
- "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
12448
- {
12449
- variants: {
12450
- variant: {
12451
- default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
12452
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
12453
- destructive: "border-transparent bg-red-600 text-white hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-600",
12454
- outline: "text-foreground",
12455
- success: "border-transparent bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600",
12456
- warning: "border-transparent bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-600 dark:hover:bg-yellow-500"
12457
- }
12458
- },
12459
- defaultVariants: {
12460
- variant: "default"
12461
- }
12462
- }
12463
- );
12464
- function Badge({ className, variant, ...props }) {
12465
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
12466
- }
12467
-
12468
12539
  // src/internal/components/Address.tsx
12469
- var React19 = __toESM(require("react"), 1);
12470
12540
  var import_lucide_react41 = require("lucide-react");
12471
- var import_jsx_runtime68 = require("react/jsx-runtime");
12541
+ var React17 = __toESM(require("react"), 1);
12542
+ var import_jsx_runtime67 = require("react/jsx-runtime");
12472
12543
  function toExplorerAddressUrl(address, chain) {
12473
12544
  const base2 = chain?.blockExplorers?.default?.url;
12474
12545
  if (!base2) return null;
@@ -12489,16 +12560,16 @@ var Address = ({
12489
12560
  }) => {
12490
12561
  const addr = address || "";
12491
12562
  const explorer = toExplorerAddressUrl(addr, chain || void 0);
12492
- const [copied, setCopied] = React19.useState(false);
12493
- if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12494
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
12495
- label && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-sm font-medium", children: label }),
12496
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
12497
- showCopy && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
12563
+ const [copied, setCopied] = React17.useState(false);
12564
+ if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12565
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
12566
+ label && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-sm font-medium", children: label }),
12567
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
12568
+ showCopy && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
12498
12569
  Button,
12499
12570
  {
12500
12571
  variant: "ghost",
12501
- size: "sm",
12572
+ size: "small",
12502
12573
  title: copied ? "Copied" : "Copy address",
12503
12574
  onClick: async () => {
12504
12575
  try {
@@ -12508,10 +12579,10 @@ var Address = ({
12508
12579
  } catch {
12509
12580
  }
12510
12581
  },
12511
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react41.Copy, { className: "h-4 w-4" })
12582
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react41.Copy, { className: "h-4 w-4" })
12512
12583
  }
12513
12584
  ),
12514
- showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
12585
+ showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
12515
12586
  "a",
12516
12587
  {
12517
12588
  href: explorer,
@@ -12519,14 +12590,38 @@ var Address = ({
12519
12590
  rel: "noreferrer noopener",
12520
12591
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
12521
12592
  title: "Open in explorer",
12522
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react41.ExternalLink, { className: "h-4 w-4" })
12593
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react41.ExternalLink, { className: "h-4 w-4" })
12523
12594
  }
12524
12595
  )
12525
12596
  ] });
12526
12597
  };
12527
12598
 
12599
+ // src/internal/components/ui/badge.tsx
12600
+ var import_class_variance_authority2 = require("class-variance-authority");
12601
+ var import_jsx_runtime68 = require("react/jsx-runtime");
12602
+ var badgeVariants = (0, import_class_variance_authority2.cva)(
12603
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
12604
+ {
12605
+ variants: {
12606
+ variant: {
12607
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
12608
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
12609
+ destructive: "border-transparent bg-red-600 text-white hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-600",
12610
+ outline: "text-foreground",
12611
+ success: "border-transparent bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600",
12612
+ warning: "border-transparent bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-600 dark:hover:bg-yellow-500"
12613
+ }
12614
+ },
12615
+ defaultVariants: {
12616
+ variant: "default"
12617
+ }
12618
+ }
12619
+ );
12620
+ function Badge({ className, variant, ...props }) {
12621
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
12622
+ }
12623
+
12528
12624
  // src/internal/components/UserOpStatus.tsx
12529
- init_base();
12530
12625
  var import_jsx_runtime69 = require("react/jsx-runtime");
12531
12626
  var UserOpStatus = ({
12532
12627
  userOpHash,
@@ -12538,20 +12633,20 @@ var UserOpStatus = ({
12538
12633
  externalState
12539
12634
  }) => {
12540
12635
  const useExternalState = !!externalState;
12541
- const [internalReceipt, setInternalReceipt] = React20.useState(null);
12542
- const [internalMempool, setInternalMempool] = React20.useState(null);
12543
- const [internalError, setInternalError] = React20.useState(null);
12544
- const [attempt, setAttempt] = React20.useState(0);
12545
- const [internalRefreshing, setInternalRefreshing] = React20.useState(false);
12546
- const [timedOut, setTimedOut] = React20.useState(false);
12547
- const [rejected, setRejected] = React20.useState(false);
12548
- const intervalRef = React20.useRef(null);
12549
- const startTimeRef = React20.useRef(Date.now());
12636
+ const [internalReceipt, setInternalReceipt] = React18.useState(null);
12637
+ const [internalMempool, setInternalMempool] = React18.useState(null);
12638
+ const [internalError, setInternalError] = React18.useState(null);
12639
+ const [attempt, setAttempt] = React18.useState(0);
12640
+ const [internalRefreshing, setInternalRefreshing] = React18.useState(false);
12641
+ const [timedOut, setTimedOut] = React18.useState(false);
12642
+ const [rejected, setRejected] = React18.useState(false);
12643
+ const intervalRef = React18.useRef(null);
12644
+ const startTimeRef = React18.useRef(Date.now());
12550
12645
  const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
12551
12646
  const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
12552
12647
  const error = useExternalState ? externalState.error ?? null : internalError;
12553
12648
  const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
12554
- const rpc = React20.useCallback(async (method, params) => {
12649
+ const rpc = React18.useCallback(async (method, params) => {
12555
12650
  const body = { jsonrpc: "2.0", id: 1, method, params };
12556
12651
  const res = await fetch(getBundlerUrl(), {
12557
12652
  method: "POST",
@@ -12562,14 +12657,14 @@ var UserOpStatus = ({
12562
12657
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
12563
12658
  return json.result;
12564
12659
  }, []);
12565
- const extractMempoolInfo = React20.useCallback((m) => {
12660
+ const extractMempoolInfo = React18.useCallback((m) => {
12566
12661
  if (!m) return null;
12567
12662
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
12568
12663
  const sender = m.sender || m?.userOperation?.sender || null;
12569
12664
  if (!entryPoint && !sender) return null;
12570
12665
  return { entryPoint, sender };
12571
12666
  }, []);
12572
- const tick = React20.useCallback(async () => {
12667
+ const tick = React18.useCallback(async () => {
12573
12668
  if (useExternalState) return;
12574
12669
  const elapsed = Date.now() - startTimeRef.current;
12575
12670
  if (elapsed > maxPollTimeMs) {
@@ -12613,7 +12708,7 @@ var UserOpStatus = ({
12613
12708
  setAttempt((x) => x + 1);
12614
12709
  }
12615
12710
  }, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
12616
- React20.useEffect(() => {
12711
+ React18.useEffect(() => {
12617
12712
  if (useExternalState) return;
12618
12713
  console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
12619
12714
  startTimeRef.current = Date.now();
@@ -12625,7 +12720,7 @@ var UserOpStatus = ({
12625
12720
  setAttempt(0);
12626
12721
  setInternalRefreshing(false);
12627
12722
  }, [userOpHash, useExternalState]);
12628
- React20.useEffect(() => {
12723
+ React18.useEffect(() => {
12629
12724
  if (useExternalState) {
12630
12725
  console.log("[UserOpStatus] Using external state, skipping internal polling");
12631
12726
  return;
@@ -12691,7 +12786,10 @@ var UserOpStatus = ({
12691
12786
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
12692
12787
  "div",
12693
12788
  {
12694
- className: cn2("lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]", className),
12789
+ className: cn2(
12790
+ "lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]",
12791
+ className
12792
+ ),
12695
12793
  style: { textAlign: "left", listStyle: "none" },
12696
12794
  children: [
12697
12795
  /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
@@ -12699,7 +12797,7 @@ var UserOpStatus = ({
12699
12797
  stateBadge(),
12700
12798
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
12701
12799
  ] }),
12702
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
12800
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
12703
12801
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react42.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
12704
12802
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xs", children: "Refresh" })
12705
12803
  ] })
@@ -12711,7 +12809,7 @@ var UserOpStatus = ({
12711
12809
  Button,
12712
12810
  {
12713
12811
  variant: "ghost",
12714
- size: "sm",
12812
+ size: "small",
12715
12813
  className: "h-8 w-8 p-0",
12716
12814
  onClick: async () => {
12717
12815
  try {
@@ -12730,7 +12828,7 @@ var UserOpStatus = ({
12730
12828
  Button,
12731
12829
  {
12732
12830
  variant: "ghost",
12733
- size: "sm",
12831
+ size: "small",
12734
12832
  className: "h-8 w-8 p-0",
12735
12833
  onClick: async () => {
12736
12834
  try {
@@ -12798,8 +12896,8 @@ var UserOpStatus = ({
12798
12896
  };
12799
12897
 
12800
12898
  // src/internal/components/Hash.tsx
12801
- var React21 = __toESM(require("react"), 1);
12802
12899
  var import_lucide_react43 = require("lucide-react");
12900
+ var React19 = __toESM(require("react"), 1);
12803
12901
  var import_jsx_runtime70 = require("react/jsx-runtime");
12804
12902
  function toExplorerUrl(kind, value, chain) {
12805
12903
  const base2 = chain?.blockExplorers?.default?.url;
@@ -12823,7 +12921,7 @@ var Hash = ({
12823
12921
  }) => {
12824
12922
  const value = hash || "";
12825
12923
  const explorer = toExplorerUrl(kind, value, chain || void 0);
12826
- const [copied, setCopied] = React21.useState(false);
12924
+ const [copied, setCopied] = React19.useState(false);
12827
12925
  if (!value) return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12828
12926
  return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
12829
12927
  label && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-sm font-medium", children: label }),
@@ -12832,7 +12930,7 @@ var Hash = ({
12832
12930
  Button,
12833
12931
  {
12834
12932
  variant: "ghost",
12835
- size: "sm",
12933
+ size: "small",
12836
12934
  title: copied ? "Copied" : "Copy",
12837
12935
  onClick: async () => {
12838
12936
  try {
@@ -12860,14 +12958,14 @@ var Hash = ({
12860
12958
  };
12861
12959
 
12862
12960
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
12863
- var import_react50 = require("react");
12961
+ var import_react52 = require("react");
12864
12962
  init_base();
12865
12963
  var import_jsx_runtime71 = require("react/jsx-runtime");
12866
12964
  var TransactionsList = ({ address, itemsCount = 10 }) => {
12867
- const [transactions, setTransactions] = (0, import_react50.useState)([]);
12868
- const [loading, setLoading] = (0, import_react50.useState)(true);
12869
- const [error, setError] = (0, import_react50.useState)(null);
12870
- (0, import_react50.useEffect)(() => {
12965
+ const [transactions, setTransactions] = (0, import_react52.useState)([]);
12966
+ const [loading, setLoading] = (0, import_react52.useState)(true);
12967
+ const [error, setError] = (0, import_react52.useState)(null);
12968
+ (0, import_react52.useEffect)(() => {
12871
12969
  const fetchTransactions = async () => {
12872
12970
  try {
12873
12971
  setLoading(true);
@@ -12893,7 +12991,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12893
12991
  fetchTransactions();
12894
12992
  }
12895
12993
  }, [address, itemsCount]);
12896
- const formatValue2 = (value) => {
12994
+ const formatValue3 = (value) => {
12897
12995
  try {
12898
12996
  const wei = BigInt(value);
12899
12997
  const eth = Number(wei) / 1e18;
@@ -12963,7 +13061,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12963
13061
  /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
12964
13062
  /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-gray-600", children: "Value:" }),
12965
13063
  /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { className: "font-semibold ml-1", children: [
12966
- formatValue2(tx.value),
13064
+ formatValue3(tx.value),
12967
13065
  " LUMIA"
12968
13066
  ] })
12969
13067
  ] })
@@ -12986,7 +13084,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12986
13084
  };
12987
13085
 
12988
13086
  // src/hooks/useUserOpStatus.ts
12989
- var React23 = __toESM(require("react"), 1);
13087
+ var React21 = __toESM(require("react"), 1);
12990
13088
  init_base();
12991
13089
  function useUserOpStatus(options = {}) {
12992
13090
  const {
@@ -12998,16 +13096,16 @@ function useUserOpStatus(options = {}) {
12998
13096
  onReceipt,
12999
13097
  onTxHash
13000
13098
  } = options;
13001
- const [state, setState] = React23.useState("waiting");
13002
- const [receipt, setReceipt] = React23.useState(null);
13003
- const [mempool, setMempool] = React23.useState(null);
13004
- const [txHash, setTxHash] = React23.useState(null);
13005
- const [error, setError] = React23.useState(null);
13006
- const [isPolling, setIsPolling] = React23.useState(false);
13007
- const intervalRef = React23.useRef(null);
13008
- const startTimeRef = React23.useRef(Date.now());
13009
- const prevStateRef = React23.useRef("waiting");
13010
- const rpc = React23.useCallback(async (method, params) => {
13099
+ const [state, setState] = React21.useState("waiting");
13100
+ const [receipt, setReceipt] = React21.useState(null);
13101
+ const [mempool, setMempool] = React21.useState(null);
13102
+ const [txHash, setTxHash] = React21.useState(null);
13103
+ const [error, setError] = React21.useState(null);
13104
+ const [isPolling, setIsPolling] = React21.useState(false);
13105
+ const intervalRef = React21.useRef(null);
13106
+ const startTimeRef = React21.useRef(Date.now());
13107
+ const prevStateRef = React21.useRef("waiting");
13108
+ const rpc = React21.useCallback(async (method, params) => {
13011
13109
  const body = { jsonrpc: "2.0", id: 1, method, params };
13012
13110
  const res = await fetch(getBundlerUrl(), {
13013
13111
  method: "POST",
@@ -13018,21 +13116,21 @@ function useUserOpStatus(options = {}) {
13018
13116
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
13019
13117
  return json.result;
13020
13118
  }, []);
13021
- const extractMempoolInfo = React23.useCallback((m) => {
13119
+ const extractMempoolInfo = React21.useCallback((m) => {
13022
13120
  if (!m) return null;
13023
13121
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
13024
13122
  const sender = m.sender || m?.userOperation?.sender || null;
13025
13123
  if (!entryPoint && !sender) return null;
13026
13124
  return { entryPoint, sender };
13027
13125
  }, []);
13028
- const updateState = React23.useCallback((newState) => {
13126
+ const updateState = React21.useCallback((newState) => {
13029
13127
  setState(newState);
13030
13128
  if (prevStateRef.current !== newState) {
13031
13129
  prevStateRef.current = newState;
13032
13130
  onStateChange?.(newState);
13033
13131
  }
13034
13132
  }, [onStateChange]);
13035
- const tick = React23.useCallback(async () => {
13133
+ const tick = React21.useCallback(async () => {
13036
13134
  if (!userOpHash || !enabled) return;
13037
13135
  if (receipt) {
13038
13136
  console.log("[useUserOpStatus] Already have receipt, skipping tick");
@@ -13105,7 +13203,7 @@ function useUserOpStatus(options = {}) {
13105
13203
  onTxHash,
13106
13204
  onReceipt
13107
13205
  ]);
13108
- React23.useEffect(() => {
13206
+ React21.useEffect(() => {
13109
13207
  if (!userOpHash || !enabled) return;
13110
13208
  console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
13111
13209
  startTimeRef.current = Date.now();
@@ -13117,7 +13215,7 @@ function useUserOpStatus(options = {}) {
13117
13215
  setError(null);
13118
13216
  setIsPolling(false);
13119
13217
  }, [userOpHash, enabled]);
13120
- React23.useEffect(() => {
13218
+ React21.useEffect(() => {
13121
13219
  if (!userOpHash || !enabled) {
13122
13220
  console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
13123
13221
  return;
@@ -13153,7 +13251,7 @@ function useUserOpStatus(options = {}) {
13153
13251
  }
13154
13252
  };
13155
13253
  }, [userOpHash, enabled, pollMs]);
13156
- const refresh = React23.useCallback(async () => {
13254
+ const refresh = React21.useCallback(async () => {
13157
13255
  await tick();
13158
13256
  }, [tick]);
13159
13257
  return {
@@ -13168,22 +13266,22 @@ function useUserOpStatus(options = {}) {
13168
13266
  }
13169
13267
 
13170
13268
  // src/hooks/useLogout.ts
13171
- var import_auth19 = require("@lumiapassport/core/auth");
13172
- var import_react51 = require("react");
13269
+ var import_auth20 = require("@lumiapassport/core/auth");
13270
+ var import_react53 = require("react");
13173
13271
  function useLogout() {
13174
13272
  const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
13175
13273
  const { callbacks } = useLumiaPassportConfig();
13176
- const logout2 = (0, import_react51.useCallback)(async () => {
13274
+ const logout2 = (0, import_react53.useCallback)(async () => {
13177
13275
  const prevAddress = address;
13178
13276
  let userId = null;
13179
13277
  setIsLoading(true);
13180
13278
  try {
13181
- userId = import_auth19.jwtTokenManager.getUserId() || null;
13279
+ userId = import_auth20.jwtTokenManager.getUserId() || null;
13182
13280
  } catch (error) {
13183
13281
  console.warn("[useLogout] Could not get userId:", error);
13184
13282
  }
13185
13283
  try {
13186
- await (0, import_auth19.logout)();
13284
+ await (0, import_auth20.logout)();
13187
13285
  } catch (error) {
13188
13286
  console.warn("[useLogout] Core logout failed:", error);
13189
13287
  }
@@ -13320,49 +13418,6 @@ function useSmartAccountTransactions() {
13320
13418
  };
13321
13419
  }
13322
13420
 
13323
- // src/modules/linkedProfiles.ts
13324
- var React24 = __toESM(require("react"), 1);
13325
- init_auth();
13326
- init_common();
13327
- init_types();
13328
- function useLumiaPassportLinkedProfiles() {
13329
- const { providersVersion } = useLumiaPassportConfig();
13330
- const [profiles, setProfiles] = React24.useState([]);
13331
- const [avatar, setAvatar] = React24.useState(null);
13332
- const [isLoading, setIsLoading] = React24.useState(false);
13333
- const [error, setError] = React24.useState(null);
13334
- const load = React24.useCallback(async () => {
13335
- setIsLoading(true);
13336
- setError(null);
13337
- try {
13338
- const list = await getLinkedProviders();
13339
- const enriched = list.map((p) => {
13340
- const info = getProviderDisplayInfo(p.provider);
13341
- return {
13342
- ...p,
13343
- displayName: info.name,
13344
- icon: info.icon
13345
- // color: info.color,
13346
- };
13347
- });
13348
- setProfiles(enriched);
13349
- try {
13350
- setAvatar(import_auth3.jwtTokenManager.getAvatar() || null);
13351
- } catch {
13352
- setAvatar(null);
13353
- }
13354
- } catch (e) {
13355
- setError(e?.message || "Failed to load linked profiles");
13356
- } finally {
13357
- setIsLoading(false);
13358
- }
13359
- }, []);
13360
- React24.useEffect(() => {
13361
- load();
13362
- }, [load, providersVersion]);
13363
- return { profiles, avatar, isLoading, error, refresh: load };
13364
- }
13365
-
13366
13421
  // src/index.ts
13367
13422
  init_iframe_manager();
13368
13423
  (() => {