@lumiapassport/ui-kit 1.12.6 → 1.13.0

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.0",
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: {
@@ -4699,12 +4697,12 @@ function Footer() {
4699
4697
  disabled: isDisconnecting,
4700
4698
  children: [
4701
4699
  /* @__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" })
4700
+ 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
4701
  ]
4704
4702
  }
4705
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4703
+ ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4706
4704
  ] }),
4707
- !!address && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4705
+ !!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
4706
  ]
4709
4707
  }
4710
4708
  );
@@ -4793,7 +4791,9 @@ function formatAddress(addr) {
4793
4791
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
4794
4792
  }
4795
4793
  function Header() {
4796
- const { config } = useLumiaPassportConfig();
4794
+ const {
4795
+ config: { current: config }
4796
+ } = useLumiaPassportConfig();
4797
4797
  const address = useLumiaPassportSession((st) => st.address);
4798
4798
  const [copied, setCopied] = (0, import_react2.useState)(false);
4799
4799
  const avatar = import_auth3.jwtTokenManager.getAvatar();
@@ -4818,7 +4818,16 @@ function Header() {
4818
4818
  children: [
4819
4819
  !!address && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(UsdBalance, { className: "text-lg leading-5 font-bold" }),
4820
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" }),
4821
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
4822
+ "span",
4823
+ {
4824
+ className: cn(
4825
+ "max-w-full font-mono text-xs leading-4 font-medium text-[var(--l-pass-fg-muted)",
4826
+ "text-ellipsis overflow-hidden whitespace-nowrap"
4827
+ ),
4828
+ children: displayName || config.ui.title || "LumiaPassport"
4829
+ }
4830
+ ),
4822
4831
  isKycVerified && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "group relative flex flex-shrink-0", children: [
4823
4832
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react4.CheckCircle2, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
4824
4833
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
@@ -4841,7 +4850,7 @@ function Header() {
4841
4850
  )
4842
4851
  ] }),
4843
4852
  !!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) }),
4853
+ /* @__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) }),
4845
4854
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-fit flex items-center gap-[var(--l-pass-gap)] justify-between", children: [
4846
4855
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
4847
4856
  Button,
@@ -5051,7 +5060,10 @@ var VisuallyHidden = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime9.j
5051
5060
  // src/internal/hooks/useAutoConnect.ts
5052
5061
  var import_react3 = require("react");
5053
5062
  function useAutoConnect() {
5054
- const { config, callbacks } = useLumiaPassportConfig();
5063
+ const {
5064
+ config: { current: config },
5065
+ callbacks
5066
+ } = useLumiaPassportConfig();
5055
5067
  const setPage = useLayoutDataStore((st) => st.setPage);
5056
5068
  const {
5057
5069
  session,
@@ -5277,7 +5289,7 @@ function useCheckVaultStatus() {
5277
5289
  }
5278
5290
 
5279
5291
  // src/internal/hooks/usePageMapper.tsx
5280
- var import_react36 = require("react");
5292
+ var import_react38 = require("react");
5281
5293
 
5282
5294
  // src/internal/components/AuthMenu/AuthMenu.tsx
5283
5295
  var import_framer_motion = require("framer-motion");
@@ -5543,7 +5555,10 @@ var import_lucide_react8 = require("lucide-react");
5543
5555
  init_projectId();
5544
5556
  var import_jsx_runtime14 = require("react/jsx-runtime");
5545
5557
  function Email() {
5546
- const { config, callbacks } = useLumiaPassportConfig();
5558
+ const {
5559
+ config: { current: config },
5560
+ callbacks
5561
+ } = useLumiaPassportConfig();
5547
5562
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
5548
5563
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
5549
5564
  const { email, codeSendError, setEmail, setCodeSendError, setExpiresIn, setStep } = useAuthStore();
@@ -5697,7 +5712,10 @@ var normalizeLoginResponse = async (rawLoginResponse, providerKey, userData) =>
5697
5712
  };
5698
5713
  function Social(props) {
5699
5714
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
5700
- const { config, callbacks } = useLumiaPassportConfig();
5715
+ const {
5716
+ config: { current: config },
5717
+ callbacks
5718
+ } = useLumiaPassportConfig();
5701
5719
  const setPage = useLayoutDataStore((st) => st.setPage);
5702
5720
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
5703
5721
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
@@ -6110,7 +6128,9 @@ function getSignInEnabledMethods(params) {
6110
6128
  var import_jsx_runtime17 = require("react/jsx-runtime");
6111
6129
  function SignInStep(props) {
6112
6130
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
6113
- const { config } = useLumiaPassportConfig();
6131
+ const {
6132
+ config: { current: config }
6133
+ } = useLumiaPassportConfig();
6114
6134
  const alert2 = useAuthStore((st) => st.alert);
6115
6135
  const setPage = useLayoutDataStore((st) => st.setPage);
6116
6136
  const enabledWoPasskey = getSignInEnabledMethods({ order: config.ui.authOrder, config, exclude: ["passkey"] });
@@ -6234,7 +6254,7 @@ function Expandable(props) {
6234
6254
  {
6235
6255
  ...divProps,
6236
6256
  ref: expandableRef,
6237
- className: cn("w-full overflow-hidden", className),
6257
+ className: cn("w-full overflow-y-hidden", className),
6238
6258
  style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
6239
6259
  children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
6240
6260
  }
@@ -6255,9 +6275,12 @@ function normalizeWebAuthnError(err) {
6255
6275
  }
6256
6276
  function PassKeyStep(props) {
6257
6277
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
6258
- const { config, callbacks } = useLumiaPassportConfig();
6259
- const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
6278
+ const {
6279
+ config: { current: config },
6280
+ callbacks
6281
+ } = useLumiaPassportConfig();
6260
6282
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
6283
+ const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
6261
6284
  const setPage = useLayoutDataStore((st) => st.setPage);
6262
6285
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6263
6286
  const autoCloseOnSuccess = !recoveryUserId;
@@ -6465,7 +6488,10 @@ function PassKeyStep(props) {
6465
6488
  var import_react12 = require("react");
6466
6489
  init_auth();
6467
6490
  function useAuthMenuHandlers() {
6468
- const { config, callbacks } = useLumiaPassportConfig();
6491
+ const {
6492
+ config: { current: config },
6493
+ callbacks
6494
+ } = useLumiaPassportConfig();
6469
6495
  const pendingLoginResponseRef = (0, import_react12.useRef)(null);
6470
6496
  const setPage = useLayoutDataStore((st) => st.setPage);
6471
6497
  const [telegramCleanup, setTelegramCleanup] = (0, import_react12.useState)(null);
@@ -6990,10 +7016,10 @@ function VerifyStep(props) {
6990
7016
  // src/internal/components/AuthMenu/AuthMenu.tsx
6991
7017
  var import_jsx_runtime24 = require("react/jsx-runtime");
6992
7018
  var AuthMenu = () => {
7019
+ const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
6993
7020
  const page = useLayoutDataStore((st) => st.page);
6994
7021
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
6995
7022
  (0, import_react15.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
6996
- const { isIframeReady } = useLumiaPassportSession();
6997
7023
  const {
6998
7024
  step,
6999
7025
  setStep,
@@ -7783,7 +7809,7 @@ var useSelectables = () => {
7783
7809
  // src/internal/components/BuyMenu/ByuMenu.tsx
7784
7810
  var import_jsx_runtime33 = require("react/jsx-runtime");
7785
7811
  function BuyMenu() {
7786
- const walletAddress = useLumiaPassportSession().address;
7812
+ const walletAddress = useLumiaPassportSession((st) => st.address);
7787
7813
  const setPage = useLayoutDataStore((st) => st.setPage);
7788
7814
  const control = useSelectables();
7789
7815
  const { rampProvider, setrRampProvider } = control;
@@ -7870,7 +7896,7 @@ function Highlight(props) {
7870
7896
  // src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
7871
7897
  var import_jsx_runtime36 = require("react/jsx-runtime");
7872
7898
  function KeyshareBackupMenu() {
7873
- const { session } = useLumiaPassportSession();
7899
+ const session = useLumiaPassportSession((st) => st.session);
7874
7900
  const setPage = useLayoutDataStore((st) => st.setPage);
7875
7901
  const userId = session?.mpcUserId || "";
7876
7902
  const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
@@ -8166,7 +8192,10 @@ var import_react22 = __toESM(require("react"), 1);
8166
8192
  init_vaultClient();
8167
8193
  var import_jsx_runtime37 = require("react/jsx-runtime");
8168
8194
  var KeyshareRestoreMenu = () => {
8169
- const { config, callbacks } = useLumiaPassportConfig();
8195
+ const {
8196
+ config: { current: config },
8197
+ callbacks
8198
+ } = useLumiaPassportConfig();
8170
8199
  const setPage = useLayoutDataStore((st) => st.setPage);
8171
8200
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8172
8201
  (0, import_react22.useEffect)(() => setIsDialogForced(true), []);
@@ -8742,13 +8771,15 @@ var SumsubIframeManager = class {
8742
8771
 
8743
8772
  // src/internal/components/KYC/useSumsubIframe.ts
8744
8773
  function useSumsubIframe({ iframeUrl }) {
8774
+ const {
8775
+ config: { current: config }
8776
+ } = useLumiaPassportConfig();
8745
8777
  const { colorMode } = useLumiaPassportColorMode();
8746
8778
  const iframeRef = (0, import_react23.useRef)(null);
8747
8779
  const [isLoading, setIsLoading] = (0, import_react23.useState)(true);
8748
8780
  const [error, setError] = (0, import_react23.useState)(null);
8749
8781
  const [height, setHeight] = (0, import_react23.useState)(0);
8750
8782
  const [status, setStatus] = (0, import_react23.useState)("");
8751
- const { config } = useLumiaPassportConfig();
8752
8783
  const levelName = config.kyc?.options?.levelName;
8753
8784
  (0, import_react23.useEffect)(() => {
8754
8785
  setError(null);
@@ -8796,7 +8827,9 @@ function useSumsubIframe({ iframeUrl }) {
8796
8827
  var import_jsx_runtime38 = require("react/jsx-runtime");
8797
8828
  var MAX_IFRAME_HEIGHT = 650;
8798
8829
  var SumsubIframe = () => {
8799
- const { config } = useLumiaPassportConfig();
8830
+ const {
8831
+ config: { current: config }
8832
+ } = useLumiaPassportConfig();
8800
8833
  const iframeUrl = `${config.services.iframeUrl}/kyc/sumsub.html`;
8801
8834
  const { iframeRef, isLoading, error, height, status } = useSumsubIframe({ iframeUrl });
8802
8835
  return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
@@ -8827,7 +8860,9 @@ var SumsubIframe = () => {
8827
8860
  // src/internal/components/KYC/KycContent.tsx
8828
8861
  var import_jsx_runtime39 = require("react/jsx-runtime");
8829
8862
  var KycContent = () => {
8830
- const { config } = useLumiaPassportConfig();
8863
+ const {
8864
+ config: { current: config }
8865
+ } = useLumiaPassportConfig();
8831
8866
  const provider = config.kyc?.provider;
8832
8867
  switch (provider) {
8833
8868
  case "sumsub":
@@ -8860,7 +8895,9 @@ var import_framer_motion2 = require("framer-motion");
8860
8895
  var import_lucide_react23 = require("lucide-react");
8861
8896
  var import_jsx_runtime41 = require("react/jsx-runtime");
8862
8897
  function BackupWarning() {
8863
- const { config } = useLumiaPassportConfig();
8898
+ const {
8899
+ config: { current: config }
8900
+ } = useLumiaPassportConfig();
8864
8901
  const setPage = useLayoutDataStore((st) => st.setPage);
8865
8902
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8866
8903
  const isShown = config.warnings?.backupWarning && !hasServerVault;
@@ -8931,15 +8968,56 @@ function MainMenu() {
8931
8968
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
8932
8969
  var import_lodash_es = require("lodash-es");
8933
8970
  var import_lucide_react28 = require("lucide-react");
8934
- var import_react27 = require("react");
8971
+ var import_react28 = require("react");
8972
+
8973
+ // src/modules/linkedProfiles.ts
8974
+ var import_react_query9 = require("@tanstack/react-query");
8975
+ var import_react25 = require("react");
8976
+ init_auth();
8977
+ init_common();
8978
+ init_types();
8979
+ var LINKED_PROFILES_QUERY_KEY = "lumia-passport-linked-profiles-query";
8980
+ async function getLinkProfilesData() {
8981
+ const list = await getLinkedProviders();
8982
+ const loadedProfiles = list.map((p) => {
8983
+ const info = getProviderDisplayInfo(p.provider);
8984
+ return { ...p, displayName: info.name, icon: info.icon };
8985
+ });
8986
+ let avatar = null;
8987
+ try {
8988
+ avatar = import_auth3.jwtTokenManager.getAvatar() || null;
8989
+ } catch {
8990
+ avatar = null;
8991
+ }
8992
+ return { profiles: loadedProfiles, avatar };
8993
+ }
8994
+ function useLumiaPassportLinkedProfiles() {
8995
+ const qc = (0, import_react_query9.useQueryClient)();
8996
+ const address = useLumiaPassportSession((st) => st.address);
8997
+ const {
8998
+ data,
8999
+ isFetching: isLoading,
9000
+ error
9001
+ } = (0, import_react_query9.useQuery)({
9002
+ retry: false,
9003
+ enabled: !!address,
9004
+ queryKey: [LINKED_PROFILES_QUERY_KEY, address],
9005
+ queryFn: getLinkProfilesData
9006
+ });
9007
+ const { profiles = [], avatar = null } = data || {};
9008
+ const refresh = (0, import_react25.useCallback)(async () => {
9009
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9010
+ }, [qc, address]);
9011
+ return { profiles, avatar, isLoading, error, refresh };
9012
+ }
8935
9013
 
8936
9014
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
8937
- var import_react_query13 = require("@tanstack/react-query");
9015
+ var import_react_query14 = require("@tanstack/react-query");
8938
9016
  init_passkey2();
8939
9017
 
8940
9018
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
8941
9019
  init_lumiaPassport();
8942
- var import_react_query9 = require("@tanstack/react-query");
9020
+ var import_react_query10 = require("@tanstack/react-query");
8943
9021
  var import_lucide_react25 = require("lucide-react");
8944
9022
  init_projectId();
8945
9023
 
@@ -8973,11 +9051,14 @@ var useManageWalletStore = (0, import_zustand4.create)((set) => ({
8973
9051
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
8974
9052
  var import_jsx_runtime43 = require("react/jsx-runtime");
8975
9053
  function EmailForm() {
8976
- const { config, callbacks } = useLumiaPassportConfig();
9054
+ const {
9055
+ config: { current: config },
9056
+ callbacks
9057
+ } = useLumiaPassportConfig();
8977
9058
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
8978
9059
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
8979
9060
  const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
8980
- const { mutate: onSendVerificationCode } = (0, import_react_query9.useMutation)({
9061
+ const { mutate: onSendVerificationCode } = (0, import_react_query10.useMutation)({
8981
9062
  mutationFn: async () => {
8982
9063
  if (!email) return;
8983
9064
  setIsLoading(true);
@@ -9054,12 +9135,12 @@ function EmailForm() {
9054
9135
  }
9055
9136
 
9056
9137
  // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9057
- var import_react_query10 = require("@tanstack/react-query");
9138
+ var import_react_query11 = require("@tanstack/react-query");
9058
9139
  init_common();
9059
9140
  var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9060
9141
  function useProvidersList() {
9061
- const walletAddress = useLumiaPassportSession().address;
9062
- return (0, import_react_query10.useQuery)({
9142
+ const walletAddress = useLumiaPassportSession((st) => st.address);
9143
+ return (0, import_react_query11.useQuery)({
9063
9144
  retry: false,
9064
9145
  enabled: !!walletAddress,
9065
9146
  queryKey: [PROVIDERS_QUERY_KEY, walletAddress],
@@ -9068,11 +9149,11 @@ function useProvidersList() {
9068
9149
  }
9069
9150
 
9070
9151
  // src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
9071
- var import_react_query11 = require("@tanstack/react-query");
9152
+ var import_react_query12 = require("@tanstack/react-query");
9072
9153
  init_email();
9073
9154
  function useSendVerificationCode() {
9074
9155
  const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
9075
- return (0, import_react_query11.useMutation)({
9156
+ return (0, import_react_query12.useMutation)({
9076
9157
  mutationFn: async (email) => {
9077
9158
  if (!email) {
9078
9159
  throw new Error("Email is required");
@@ -9095,12 +9176,12 @@ function useSendVerificationCode() {
9095
9176
  }
9096
9177
 
9097
9178
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
9098
- var import_react_query12 = require("@tanstack/react-query");
9179
+ var import_react_query13 = require("@tanstack/react-query");
9099
9180
  init_email();
9100
9181
  function useVerifyCode() {
9101
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9102
- const qc = (0, import_react_query12.useQueryClient)();
9103
- const walletAddress = useLumiaPassportSession((st) => st.address);
9182
+ const { callbacks } = useLumiaPassportConfig();
9183
+ const qc = (0, import_react_query13.useQueryClient)();
9184
+ const address = useLumiaPassportSession((st) => st.address);
9104
9185
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9105
9186
  const {
9106
9187
  email,
@@ -9113,7 +9194,7 @@ function useVerifyCode() {
9113
9194
  setVerificationError,
9114
9195
  setEmailCodeSentError
9115
9196
  } = useManageWalletStore();
9116
- return (0, import_react_query12.useMutation)({
9197
+ return (0, import_react_query13.useMutation)({
9117
9198
  mutationFn: async (codeToVerify) => {
9118
9199
  const code = codeToVerify ?? emailCode;
9119
9200
  if (!code) {
@@ -9127,7 +9208,8 @@ function useVerifyCode() {
9127
9208
  return await verifyEmailLinkCode(email, code);
9128
9209
  },
9129
9210
  onSuccess: async () => {
9130
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9211
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9212
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9131
9213
  setProviderType(null);
9132
9214
  setEmail("");
9133
9215
  setEmailCode("");
@@ -9135,8 +9217,7 @@ function useVerifyCode() {
9135
9217
  setEmailCodeSentError("");
9136
9218
  setEmailStep("input");
9137
9219
  try {
9138
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9139
- notifyProvidersUpdate?.();
9220
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9140
9221
  } catch {
9141
9222
  }
9142
9223
  setIsLoading(false);
@@ -9163,9 +9244,9 @@ function normalizePasskeyLinkError(msg) {
9163
9244
  return msg;
9164
9245
  }
9165
9246
  function AddProvider() {
9166
- const qc = (0, import_react_query13.useQueryClient)();
9167
- const walletAddress = useLumiaPassportSession().address;
9168
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9247
+ const qc = (0, import_react_query14.useQueryClient)();
9248
+ const { callbacks } = useLumiaPassportConfig();
9249
+ const address = useLumiaPassportSession((st) => st.address);
9169
9250
  const {
9170
9251
  linkIsLoading,
9171
9252
  providerType,
@@ -9223,12 +9304,12 @@ function AddProvider() {
9223
9304
  userVerification: "preferred"
9224
9305
  }
9225
9306
  });
9226
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9307
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9308
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9227
9309
  try {
9228
9310
  callbacks?.onLumiaPassportUpdate?.({
9229
- providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress])
9311
+ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
9230
9312
  });
9231
- notifyProvidersUpdate?.();
9232
9313
  } catch {
9233
9314
  }
9234
9315
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9264,12 +9345,12 @@ function AddProvider() {
9264
9345
  userVerification: "preferred"
9265
9346
  }
9266
9347
  });
9267
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9348
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9349
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9268
9350
  try {
9269
9351
  callbacks?.onLumiaPassportUpdate?.({
9270
- providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress])
9352
+ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
9271
9353
  });
9272
- notifyProvidersUpdate?.();
9273
9354
  } catch {
9274
9355
  }
9275
9356
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9300,7 +9381,9 @@ var import_jsx_runtime45 = require("react/jsx-runtime");
9300
9381
  function EmailNotConnectedWarning() {
9301
9382
  const providers = import_auth3.jwtTokenManager.getProviders();
9302
9383
  const hasEmail = providers.includes("email");
9303
- const { config } = useLumiaPassportConfig();
9384
+ const {
9385
+ config: { current: config }
9386
+ } = useLumiaPassportConfig();
9304
9387
  const isShown = config.warnings?.emailNotConnectedWarning && !hasEmail;
9305
9388
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_framer_motion3.AnimatePresence, { mode: "wait", initial: false, children: isShown ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9306
9389
  import_framer_motion3.motion.div,
@@ -9309,7 +9392,7 @@ function EmailNotConnectedWarning() {
9309
9392
  animate: { opacity: 1, height: "auto" },
9310
9393
  exit: { opacity: 0, height: 0 },
9311
9394
  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: [
9395
+ 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
9396
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "flex items-center gap-[var(--l-pass-gap)] text-lg font-bold", children: [
9314
9397
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.Mail, { className: "w-5 h-5" }),
9315
9398
  "CONNECT EMAIL"
@@ -9321,16 +9404,19 @@ function EmailNotConnectedWarning() {
9321
9404
  }
9322
9405
 
9323
9406
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
9324
- var import_react_query14 = require("@tanstack/react-query");
9325
- var import_react25 = __toESM(require("react"), 1);
9407
+ var import_react_query15 = require("@tanstack/react-query");
9408
+ var import_react26 = __toESM(require("react"), 1);
9326
9409
  init_auth();
9327
9410
  function useLinkSocial() {
9328
- const qc = (0, import_react_query14.useQueryClient)();
9329
- const walletAddress = useLumiaPassportSession().address;
9330
- const { config, callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9411
+ const qc = (0, import_react_query15.useQueryClient)();
9412
+ const address = useLumiaPassportSession((st) => st.address);
9413
+ const {
9414
+ config: { current: config },
9415
+ callbacks
9416
+ } = useLumiaPassportConfig();
9331
9417
  const setPage = useLayoutDataStore((st) => st.setPage);
9332
9418
  const { providerType, linkIsLoading, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
9333
- const handleLinkSocialProvider = import_react25.default.useCallback(
9419
+ const handleLinkSocialProvider = import_react26.default.useCallback(
9334
9420
  async (providerIdRaw) => {
9335
9421
  const providerKey = providerIdRaw.toLowerCase();
9336
9422
  try {
@@ -9362,10 +9448,10 @@ function useLinkSocial() {
9362
9448
  if (!result.success) {
9363
9449
  throw new Error(result.error || `${socialProvider.name || providerIdRaw} authentication failed`);
9364
9450
  }
9365
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9451
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9452
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9366
9453
  try {
9367
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9368
- notifyProvidersUpdate?.();
9454
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9369
9455
  } catch {
9370
9456
  }
9371
9457
  setProviderType(null);
@@ -9381,8 +9467,8 @@ function useLinkSocial() {
9381
9467
  },
9382
9468
  [config.social?.providers, callbacks]
9383
9469
  );
9384
- const [socialLinkStarted, setSocialLinkStarted] = import_react25.default.useState(false);
9385
- (0, import_react25.useEffect)(() => {
9470
+ const [socialLinkStarted, setSocialLinkStarted] = import_react26.default.useState(false);
9471
+ (0, import_react26.useEffect)(() => {
9386
9472
  const key = providerType?.toLowerCase();
9387
9473
  if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
9388
9474
  if (!linkIsLoading && !socialLinkStarted) {
@@ -9396,16 +9482,19 @@ function useLinkSocial() {
9396
9482
  }
9397
9483
 
9398
9484
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
9399
- var import_react_query15 = require("@tanstack/react-query");
9400
- var import_react26 = require("react");
9485
+ var import_react_query16 = require("@tanstack/react-query");
9486
+ var import_react27 = require("react");
9401
9487
  init_telegram2();
9402
9488
  function useLinkTelegram() {
9403
- const { config, callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9404
- const qc = (0, import_react_query15.useQueryClient)();
9405
- const walletAddress = useLumiaPassportSession((st) => st.address);
9489
+ const {
9490
+ config: { current: config },
9491
+ callbacks
9492
+ } = useLumiaPassportConfig();
9493
+ const qc = (0, import_react_query16.useQueryClient)();
9494
+ const address = useLumiaPassportSession((st) => st.address);
9406
9495
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
9407
9496
  const setPage = useLayoutDataStore((st) => st.setPage);
9408
- const handleLinkTelegram = (0, import_react26.useCallback)(async () => {
9497
+ const handleLinkTelegram = (0, import_react27.useCallback)(async () => {
9409
9498
  try {
9410
9499
  setLinkIsLoading(true);
9411
9500
  setLinkError("");
@@ -9431,10 +9520,10 @@ function useLinkTelegram() {
9431
9520
  }
9432
9521
  console.log("[ManageWallet] Linking Telegram with data:", user);
9433
9522
  await linkTelegram(user);
9434
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9523
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9524
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9435
9525
  try {
9436
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9437
- notifyProvidersUpdate?.();
9526
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9438
9527
  } catch {
9439
9528
  }
9440
9529
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9447,14 +9536,14 @@ function useLinkTelegram() {
9447
9536
  setLinkIsLoading(false);
9448
9537
  }
9449
9538
  }, [config.social?.providers, callbacks]);
9450
- const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react26.useState)(false);
9451
- (0, import_react26.useEffect)(() => {
9539
+ const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react27.useState)(false);
9540
+ (0, import_react27.useEffect)(() => {
9452
9541
  if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
9453
9542
  setTelegramLinkStarted(true);
9454
9543
  handleLinkTelegram();
9455
9544
  }
9456
9545
  }, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
9457
- (0, import_react26.useEffect)(() => {
9546
+ (0, import_react27.useEffect)(() => {
9458
9547
  if (providerType !== "telegram") {
9459
9548
  setTelegramLinkStarted(false);
9460
9549
  }
@@ -9540,7 +9629,9 @@ function getConfiguredProviders(config) {
9540
9629
  );
9541
9630
  }
9542
9631
  function ManageWalletMenu() {
9543
- const { config } = useLumiaPassportConfig();
9632
+ const {
9633
+ config: { current: config }
9634
+ } = useLumiaPassportConfig();
9544
9635
  const setPage = useLayoutDataStore((st) => st.setPage);
9545
9636
  const {
9546
9637
  providerType,
@@ -9558,12 +9649,12 @@ function ManageWalletMenu() {
9558
9649
  } = useManageWalletStore();
9559
9650
  const configuredProviders = getConfiguredProviders(config);
9560
9651
  const { data: providers = [], isFetching: isProvidersLoading, error: providersError } = useProvidersList();
9561
- const renderProviders = (0, import_react27.useMemo)(() => {
9652
+ const renderProviders = (0, import_react28.useMemo)(() => {
9562
9653
  const usedProviders = (0, import_lodash_es.fromPairs)(providers.map((p) => [p.provider, true]));
9563
9654
  const used = [];
9564
9655
  const unused = [];
9565
9656
  POSSIBLE_PROVIDERS.forEach((provider, providerIdx) => {
9566
- if (!configuredProviders[provider]) return null;
9657
+ if (!configuredProviders[provider]) return;
9567
9658
  const Icon = PROVIDERS_META2[provider].icon;
9568
9659
  if (usedProviders[provider]) {
9569
9660
  used.push(
@@ -9653,19 +9744,19 @@ function ManageWalletMenu() {
9653
9744
  }
9654
9745
 
9655
9746
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
9656
- var import_react_query16 = require("@tanstack/react-query");
9747
+ var import_react_query17 = require("@tanstack/react-query");
9657
9748
  var import_lucide_react29 = require("lucide-react");
9658
- var import_react28 = require("react");
9749
+ var import_react29 = require("react");
9659
9750
  init_auth();
9660
9751
  var import_jsx_runtime48 = require("react/jsx-runtime");
9661
9752
  function UnlinkProviderMenu() {
9662
- const qc = (0, import_react_query16.useQueryClient)();
9663
- const walletAddress = useLumiaPassportSession().address;
9664
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9753
+ const qc = (0, import_react_query17.useQueryClient)();
9754
+ const address = useLumiaPassportSession((st) => st.address);
9755
+ const { callbacks } = useLumiaPassportConfig();
9665
9756
  const setPage = useLayoutDataStore((st) => st.setPage);
9666
9757
  const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
9667
- const [confirmInput, setConfirmInput] = (0, import_react28.useState)("");
9668
- const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query16.useMutation)({
9758
+ const [confirmInput, setConfirmInput] = (0, import_react29.useState)("");
9759
+ const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query17.useMutation)({
9669
9760
  mutationFn: async () => {
9670
9761
  if (!confirmUnlink) {
9671
9762
  throw new Error("No provider to unlink");
@@ -9674,10 +9765,10 @@ function UnlinkProviderMenu() {
9674
9765
  await unlinkProvider(provider, externalId);
9675
9766
  },
9676
9767
  onSuccess: async () => {
9677
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9768
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9769
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9678
9770
  try {
9679
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9680
- notifyProvidersUpdate?.();
9771
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9681
9772
  } catch {
9682
9773
  }
9683
9774
  setConfirmUnlink(null);
@@ -9736,110 +9827,424 @@ function UnlinkProviderMenu() {
9736
9827
  ] });
9737
9828
  }
9738
9829
 
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);
9830
+ // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
9831
+ var import_lucide_react31 = require("lucide-react");
9832
+ var import_react31 = require("react");
9833
+
9834
+ // src/modules/assets.ts
9835
+ var import_react30 = __toESM(require("react"), 1);
9836
+ var import_wagmi = require("wagmi");
9837
+ var import_viem4 = require("viem");
9838
+ init_base();
9839
+ var COMMON_TOKENS = [
9840
+ // Add real token addresses here when available
9841
+ // {
9842
+ // address: '0x....',
9843
+ // name: 'USD Coin',
9844
+ // symbol: 'USDC',
9845
+ // decimals: 6,
9846
+ // logo: 'https://...'
9847
+ // }
9848
+ ];
9849
+ function useAssets(address) {
9850
+ const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0, import_wagmi.useBalance)({
9851
+ address,
9852
+ chainId: lumiaBeam.id,
9853
+ query: {
9854
+ enabled: !!address
9855
+ }
9856
+ });
9857
+ const tokenContracts = COMMON_TOKENS.map((token) => ({
9858
+ address: token.address,
9859
+ abi: import_viem4.erc20Abi,
9860
+ functionName: "balanceOf",
9861
+ args: [address],
9862
+ chainId: lumiaBeam.id
9863
+ }));
9864
+ const readContractsResult = (0, import_wagmi.useReadContracts)({
9865
+ contracts: tokenContracts,
9866
+ query: {
9867
+ enabled: !!address && COMMON_TOKENS.length > 0
9868
+ }
9869
+ });
9870
+ const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
9871
+ const getAllAssets = () => {
9872
+ const assets = [];
9873
+ if (nativeBalance) {
9874
+ assets.push({
9875
+ type: "native",
9876
+ name: "Lumia",
9877
+ symbol: "LUMIA",
9878
+ balance: nativeBalance.value.toString(),
9879
+ formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
9880
+ decimals: 18
9881
+ });
9882
+ }
9883
+ if (tokenBalances && COMMON_TOKENS.length > 0) {
9884
+ tokenBalances.forEach((balance, index) => {
9885
+ const token = COMMON_TOKENS[index];
9886
+ if (balance.status === "success" && balance.result) {
9887
+ const balanceValue = balance.result;
9888
+ const formattedBalance = (0, import_viem4.formatUnits)(balanceValue, token.decimals);
9889
+ assets.push({
9890
+ type: "erc20",
9891
+ address: token.address,
9892
+ name: token.name,
9893
+ symbol: token.symbol,
9894
+ balance: balanceValue.toString(),
9895
+ formattedBalance: parseFloat(formattedBalance).toFixed(4),
9896
+ decimals: token.decimals,
9897
+ logo: token.logo
9898
+ });
9899
+ }
9900
+ });
9901
+ }
9902
+ return assets;
9903
+ };
9904
+ const getTokenBalance = (tokenAddress) => {
9905
+ const tokenIndex = COMMON_TOKENS.findIndex(
9906
+ (token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
9907
+ );
9908
+ if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
9909
+ return null;
9910
+ }
9911
+ const balance = tokenBalances[tokenIndex];
9912
+ const token = COMMON_TOKENS[tokenIndex];
9913
+ if (balance.status === "success" && balance.result) {
9914
+ const balanceValue = balance.result;
9915
+ const formattedBalance = (0, import_viem4.formatUnits)(balanceValue, token.decimals);
9916
+ return {
9917
+ address: token.address,
9918
+ name: token.name,
9919
+ symbol: token.symbol,
9920
+ decimals: token.decimals,
9921
+ balance: balanceValue.toString(),
9922
+ formattedBalance: parseFloat(formattedBalance).toFixed(4),
9923
+ logo: token.logo
9924
+ };
9795
9925
  }
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";
9803
- if (ua.includes("Windows")) return "Windows";
9804
- if (ua.includes("Android")) return "Android";
9805
- if (ua.includes("Linux")) return "Linux";
9806
- if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
9807
9926
  return null;
9808
9927
  };
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" }) })
9815
- ] })
9816
- ] }) }),
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" })
9822
- ] }),
9823
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9824
- "span",
9825
- {
9826
- className: cn(
9928
+ const refreshBalances = async () => {
9929
+ await Promise.all([
9930
+ refetchNativeBalance(),
9931
+ refetchTokenBalances()
9932
+ ]);
9933
+ };
9934
+ return {
9935
+ nativeBalance,
9936
+ tokenBalances,
9937
+ assets: getAllAssets(),
9938
+ getTokenBalance,
9939
+ refreshBalances,
9940
+ isLoading: nativeBalanceLoading || tokenBalancesLoading,
9941
+ isConnected: !!address
9942
+ };
9943
+ }
9944
+ function useTokenInfo(tokenAddress) {
9945
+ const readContractsResult = (0, import_wagmi.useReadContracts)({
9946
+ contracts: [
9947
+ { address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
9948
+ { address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
9949
+ { address: tokenAddress, abi: import_viem4.erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
9950
+ ]
9951
+ });
9952
+ const { data: tokenData, isLoading } = readContractsResult;
9953
+ if (!tokenData || isLoading) {
9954
+ return { isLoading, tokenInfo: null };
9955
+ }
9956
+ const [nameResult, symbolResult, decimalsResult] = tokenData;
9957
+ if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
9958
+ return {
9959
+ isLoading: false,
9960
+ tokenInfo: {
9961
+ name: nameResult.result,
9962
+ symbol: symbolResult.result,
9963
+ decimals: decimalsResult.result,
9964
+ address: tokenAddress
9965
+ }
9966
+ };
9967
+ }
9968
+ return { isLoading: false, tokenInfo: null };
9969
+ }
9970
+ function useTokenBalance(tokenAddress, userAddress) {
9971
+ const { data: balance, isLoading, refetch } = (0, import_wagmi.useReadContract)({
9972
+ address: tokenAddress,
9973
+ abi: import_viem4.erc20Abi,
9974
+ functionName: "balanceOf",
9975
+ args: userAddress ? [userAddress] : void 0,
9976
+ chainId: lumiaBeam.id,
9977
+ query: {
9978
+ enabled: !!userAddress
9979
+ }
9980
+ });
9981
+ const { tokenInfo } = useTokenInfo(tokenAddress);
9982
+ const formattedBalance = import_react30.default.useMemo(() => {
9983
+ if (!balance || !tokenInfo) return "0";
9984
+ return (0, import_viem4.formatUnits)(balance, tokenInfo.decimals);
9985
+ }, [balance, tokenInfo]);
9986
+ return {
9987
+ balance,
9988
+ formattedBalance,
9989
+ tokenInfo,
9990
+ isLoading,
9991
+ refetch
9992
+ };
9993
+ }
9994
+
9995
+ // src/internal/components/PortfolioMenu/PortfolioItem.tsx
9996
+ var import_react_query18 = require("@tanstack/react-query");
9997
+ var import_lucide_react30 = require("lucide-react");
9998
+ init_base();
9999
+ var import_jsx_runtime49 = require("react/jsx-runtime");
10000
+ var price16 = Intl.NumberFormat("en-US", { minimumFractionDigits: 16, maximumFractionDigits: 16 });
10001
+ function formatValue(price) {
10002
+ console.log("[---PRICE---]", price);
10003
+ if (!price) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: `0.00` });
10004
+ if (price < 0.01) {
10005
+ const strigified = price16.format(price);
10006
+ const absValue = parseInt(strigified.replace(/^0\./, "")).toString().slice(0, 2);
10007
+ const zeroQnt = strigified.replace(/^0\./, "").split("").findIndex((el) => +el > 0);
10008
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
10009
+ `0.0`,
10010
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("sub", { className: "text-[10px]", children: zeroQnt }),
10011
+ absValue
10012
+ ] });
10013
+ }
10014
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: price.toFixed(2) });
10015
+ }
10016
+ function openInExplorer(address) {
10017
+ window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
10018
+ }
10019
+ async function getAssetRate(symbol) {
10020
+ const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}USDT`;
10021
+ const response = await fetch(assetURL);
10022
+ return await response.json();
10023
+ }
10024
+ var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
10025
+ function PortfolioItem(props) {
10026
+ const { address, asset } = props;
10027
+ const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query18.useQuery)({
10028
+ retry: false,
10029
+ staleTime: 4 * 60 * 1e3,
10030
+ enabled: !!address && !!asset.symbol,
10031
+ queryKey: [ASSETS_RATES_QUERY_KEY, address, asset.symbol],
10032
+ queryFn: async () => await getAssetRate(asset.symbol)
10033
+ });
10034
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10035
+ "div",
10036
+ {
10037
+ className: cn(
10038
+ "group cursor-pointer",
10039
+ "w-full flex items-center gap-[var(--l-pass-gap)]",
10040
+ "hover:text-[var(--l-pass-fg-h)] transition-colors"
10041
+ ),
10042
+ onClick: () => openInExplorer(asset.address),
10043
+ children: [
10044
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10045
+ "div",
10046
+ {
10047
+ className: cn(
10048
+ "flex-none w-10 h-10 bg-[var(--l-pass-primary)] rounded-full flex items-center justify-center",
10049
+ "group-hover:opacity-60 transition-opacity"
10050
+ ),
10051
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) })
10052
+ }
10053
+ ),
10054
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full flex-1", children: [
10055
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full flex items-center justify-between text-xs", children: [
10056
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: asset.name }),
10057
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" })
10058
+ ] }),
10059
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: [
10060
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { children: [
10061
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: formatValue(Number(asset.formattedBalance)) }),
10062
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: " " + asset.symbol })
10063
+ ] }),
10064
+ isRateLoading && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Loader, { className: "h-4 w-4 animate-spin" }),
10065
+ !!assetRate?.price && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: (Number(asset.formattedBalance) * Number(assetRate.price)).toLocaleString("en-US", {
10066
+ minimumFractionDigits: 2,
10067
+ maximumFractionDigits: 2,
10068
+ currency: "USD",
10069
+ style: "currency"
10070
+ }) })
10071
+ ] })
10072
+ ] })
10073
+ ]
10074
+ }
10075
+ );
10076
+ }
10077
+ {
10078
+ }
10079
+
10080
+ // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
10081
+ var import_jsx_runtime50 = require("react/jsx-runtime");
10082
+ function PortfolioMenu() {
10083
+ const setPage = useLayoutDataStore((st) => st.setPage);
10084
+ const assetsContainerListRef = (0, import_react31.useRef)(null);
10085
+ const assetsListRef = (0, import_react31.useRef)(null);
10086
+ const address = useLumiaPassportSession((st) => st.address);
10087
+ const { assets, refreshBalances, isLoading } = useAssets(address);
10088
+ (0, import_react31.useEffect)(() => {
10089
+ if (!assetsContainerListRef.current || !assetsListRef.current) return;
10090
+ if (assetsContainerListRef.current) {
10091
+ assetsContainerListRef.current.style.setProperty(
10092
+ "--l-pass-list-bd",
10093
+ assetsListRef.current.clientHeight >= MAX_LIST_HEIGHT ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
10094
+ // hide border if no scrollbar
10095
+ );
10096
+ assetsContainerListRef.current.style.setProperty(
10097
+ "--l-pass-list-scrollbar-pd-l",
10098
+ assetsListRef.current.clientHeight >= MAX_LIST_HEIGHT ? "4px" : "0px"
10099
+ // remove padding if no scrollbar
10100
+ );
10101
+ }
10102
+ }, []);
10103
+ 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: [
10104
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10105
+ /* @__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" }) }),
10106
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
10107
+ /* @__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" }) })
10108
+ ] }),
10109
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
10110
+ 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: [
10111
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Loader, { className: "h-5 w-5 animate-spin" }),
10112
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
10113
+ ] }),
10114
+ !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: [
10115
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react31.Gem, { className: "w-12 h-12 mb-2" }),
10116
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { children: "No assets found" })
10117
+ ] }),
10118
+ !isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10119
+ "div",
10120
+ {
10121
+ ref: assetsContainerListRef,
10122
+ className: "list-scrollbar-y relative border-t border-b border-[var(--l-pass-list-bd)]",
10123
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10124
+ "div",
10125
+ {
10126
+ ref: assetsListRef,
10127
+ className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]",
10128
+ children: assets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10129
+ PortfolioItem,
10130
+ {
10131
+ address,
10132
+ asset
10133
+ },
10134
+ `${asset.type}-${asset.address || "native"}-${index}`
10135
+ ))
10136
+ }
10137
+ )
10138
+ }
10139
+ )
10140
+ ] })
10141
+ ] });
10142
+ }
10143
+
10144
+ // src/internal/components/SecurityMenu/SecurityMenu.tsx
10145
+ var import_lucide_react32 = require("lucide-react");
10146
+ var import_react32 = require("react");
10147
+ init_auth();
10148
+ init_keyshare();
10149
+ init_vaultClient();
10150
+ var import_jsx_runtime51 = require("react/jsx-runtime");
10151
+ function SecurityMenu() {
10152
+ const page = useLayoutDataStore((st) => st.page);
10153
+ const setPage = useLayoutDataStore((st) => st.setPage);
10154
+ const open = page === "security";
10155
+ const userId = import_auth3.jwtTokenManager.getUserId();
10156
+ const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
10157
+ const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
10158
+ const [isRefreshing, setIsRefreshing] = (0, import_react32.useState)(false);
10159
+ const [localInfo, setLocalInfo] = (0, import_react32.useState)(null);
10160
+ const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react32.useState)(null);
10161
+ const [recoveryBrowser, setRecoveryBrowser] = (0, import_react32.useState)(null);
10162
+ const [recoveryUa, setRecoveryUa] = (0, import_react32.useState)(null);
10163
+ const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react32.useState)(null);
10164
+ const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react32.useState)(null);
10165
+ const [recoveryCountry, setRecoveryCountry] = (0, import_react32.useState)(null);
10166
+ const [hasServerBackup, setHasServerBackup] = (0, import_react32.useState)(false);
10167
+ const [trustedApps, setTrustedApps] = (0, import_react32.useState)([]);
10168
+ const [appToRemove, setAppToRemove] = (0, import_react32.useState)(null);
10169
+ const fetchRecovery = (0, import_react32.useCallback)(async () => {
10170
+ if (!userId) return;
10171
+ try {
10172
+ setIsRefreshing(true);
10173
+ const keyshareInfo = await getKeyshareInfo(userId);
10174
+ setLocalInfo(keyshareInfo);
10175
+ const { getIframeManager: getIframeManager2 } = await Promise.resolve().then(() => (init_iframe_manager(), iframe_manager_exports));
10176
+ try {
10177
+ console.log("[SecurityModal] Loading trusted apps for user:", userId);
10178
+ const iframeManager = getIframeManager2();
10179
+ const apps = await iframeManager.getTrustedApps(userId);
10180
+ console.log("[SecurityModal] Received trusted apps:", apps);
10181
+ console.log("[SecurityModal] Trusted apps count:", apps?.length);
10182
+ console.log("[SecurityModal] Setting trusted apps state with:", apps);
10183
+ setTrustedApps(apps);
10184
+ } catch (error) {
10185
+ console.error("[SecurityModal] Failed to load trusted apps:", error);
10186
+ setTrustedApps([]);
10187
+ }
10188
+ const stats = await getShareRecoveryStats();
10189
+ const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
10190
+ setHasServerBackup(!!hasRecoveryData);
10191
+ const created = stats?.created;
10192
+ setRecoveryCreatedAt(created?.at || null);
10193
+ setRecoveryBrowser(created?.browser || null);
10194
+ setRecoveryUa(created?.ua || null);
10195
+ setRecoveryDeviceId(created?.deviceId || null);
10196
+ setRecoveryDeviceName(created?.deviceName || null);
10197
+ setRecoveryCountry(created?.country || null);
10198
+ } finally {
10199
+ setIsRefreshing(false);
10200
+ }
10201
+ }, [userId]);
10202
+ (0, import_react32.useEffect)(() => {
10203
+ if (open) fetchRecovery();
10204
+ }, [open, fetchRecovery]);
10205
+ const parseOS = (ua) => {
10206
+ if (!ua) return null;
10207
+ if (ua.includes("Mac OS X")) return "macOS";
10208
+ if (ua.includes("Windows")) return "Windows";
10209
+ if (ua.includes("Android")) return "Android";
10210
+ if (ua.includes("Linux")) return "Linux";
10211
+ if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
10212
+ return null;
10213
+ };
10214
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
10215
+ /* @__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: [
10216
+ /* @__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" }) }),
10217
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-2 font-semibold", children: [
10218
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
10219
+ /* @__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" }) })
10220
+ ] })
10221
+ ] }) }),
10222
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "grid grid-cols-3 gap-4", children: [
10223
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10224
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10225
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Cloud, { className: "h-4 w-4" }),
10226
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Server" })
10227
+ ] }),
10228
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10229
+ "span",
10230
+ {
10231
+ className: cn(
9827
10232
  "inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
9828
10233
  serverHasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9829
10234
  ),
9830
10235
  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" }),
10236
+ 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
10237
  serverHasKeyshare ? "Ready" : "Missing"
9833
10238
  ]
9834
10239
  }
9835
10240
  )
9836
10241
  ] }),
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" })
10242
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10243
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10244
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Laptop, { className: "h-4 w-4" }),
10245
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Local" })
9841
10246
  ] }),
9842
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10247
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
9843
10248
  "span",
9844
10249
  {
9845
10250
  className: cn(
@@ -9847,18 +10252,18 @@ function SecurityMenu() {
9847
10252
  localInfo?.hasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9848
10253
  ),
9849
10254
  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" }),
10255
+ 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
10256
  localInfo?.hasKeyshare ? "Ready" : "Missing"
9852
10257
  ]
9853
10258
  }
9854
10259
  )
9855
10260
  ] }),
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" })
10261
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10262
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10263
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Shield, { className: "h-4 w-4" }),
10264
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Vault" })
9860
10265
  ] }),
9861
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10266
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
9862
10267
  "span",
9863
10268
  {
9864
10269
  className: cn(
@@ -9866,101 +10271,101 @@ function SecurityMenu() {
9866
10271
  hasServerBackup ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9867
10272
  ),
9868
10273
  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" }),
10274
+ 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
10275
  hasServerBackup ? "Ready" : "None"
9871
10276
  ]
9872
10277
  }
9873
10278
  )
9874
10279
  ] })
9875
10280
  ] }),
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 })
10281
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
10282
+ 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: [
10283
+ localInfo.ownerAddress && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10284
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Owner: " }),
10285
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
9881
10286
  ] }),
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` })
10287
+ typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10288
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Size: " }),
10289
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
9885
10290
  ] }),
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 })
10291
+ localInfo.sessionId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10292
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Session: " }),
10293
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.sessionId })
9889
10294
  ] })
9890
10295
  ] }),
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: [
10296
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10297
+ backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10298
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Server, { className: "h-2.5 w-2.5" }),
10299
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9895
10300
  "Server: ",
9896
10301
  new Date(backup.server.lastBackup).toLocaleString()
9897
10302
  ] })
9898
10303
  ] }),
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: [
10304
+ !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10305
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Server, { className: "h-2.5 w-2.5" }),
10306
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9902
10307
  "Server: ",
9903
10308
  new Date(recoveryCreatedAt).toLocaleString()
9904
10309
  ] })
9905
10310
  ] }),
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: [
10311
+ backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10312
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Cloud, { className: "h-2.5 w-2.5" }),
10313
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9909
10314
  "Cloud: ",
9910
10315
  new Date(backup.cloud.lastBackup).toLocaleString()
9911
10316
  ] })
9912
10317
  ] }),
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: [
10318
+ backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10319
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.HardDrive, { className: "h-2.5 w-2.5" }),
10320
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
9916
10321
  "Local: ",
9917
10322
  new Date(backup.local.lastBackup).toLocaleString()
9918
10323
  ] })
9919
10324
  ] })
9920
10325
  ] }),
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: [
10326
+ (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: [
10327
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: "Device Information:" }),
10328
+ recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9924
10329
  "Created: ",
9925
10330
  new Date(recoveryCreatedAt).toLocaleString(),
9926
10331
  " "
9927
10332
  ] }),
9928
- recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10333
+ recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9929
10334
  "Country: ",
9930
10335
  recoveryCountry
9931
10336
  ] }),
9932
- recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10337
+ recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9933
10338
  "Browser: ",
9934
10339
  recoveryBrowser
9935
10340
  ] }),
9936
- parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10341
+ parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9937
10342
  "OS: ",
9938
10343
  parseOS(recoveryUa)
9939
10344
  ] }),
9940
- recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10345
+ recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9941
10346
  "Device: ",
9942
10347
  recoveryDeviceName
9943
10348
  ] }),
9944
- recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10349
+ recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
9945
10350
  "Device ID: ",
9946
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-mono break-all", children: recoveryDeviceId })
10351
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: recoveryDeviceId })
9947
10352
  ] })
9948
10353
  ] }),
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)(
10354
+ trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full space-y-2", children: [
10355
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
10356
+ /* @__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
10357
  "div",
9953
10358
  {
9954
10359
  className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
9955
10360
  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: [
10361
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex-1 min-w-0", children: [
10362
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium", children: new URL(app.origin).hostname }),
10363
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
9959
10364
  "Trusted: ",
9960
10365
  new Date(app.trustedAt).toLocaleDateString()
9961
10366
  ] })
9962
10367
  ] }),
9963
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10368
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
9964
10369
  Button,
9965
10370
  {
9966
10371
  variant: "ghost",
@@ -9972,7 +10377,7 @@ function SecurityMenu() {
9972
10377
  origin: app.origin,
9973
10378
  hostname: new URL(app.origin).hostname
9974
10379
  }),
9975
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react30.Trash2, { className: "h-3 w-3" })
10380
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react32.Trash2, { className: "h-3 w-3" })
9976
10381
  }
9977
10382
  )
9978
10383
  ]
@@ -9985,58 +10390,62 @@ function SecurityMenu() {
9985
10390
  }
9986
10391
 
9987
10392
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
9988
- var import_lucide_react31 = require("lucide-react");
9989
- var import_react32 = require("react");
10393
+ var import_lucide_react33 = require("lucide-react");
10394
+ var import_react34 = require("react");
9990
10395
  var import_viem6 = require("viem");
9991
10396
  var import_wagmi2 = require("wagmi");
9992
10397
 
9993
10398
  // src/hooks/useSendTransaction.ts
9994
- var import_react30 = require("react");
9995
- var import_viem4 = require("viem");
10399
+ var import_react33 = require("react");
10400
+ var import_viem5 = require("viem");
9996
10401
  init_account();
9997
10402
  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)(() => {
10403
+ const session = useLumiaPassportSession((st) => st.session);
10404
+ const address = useLumiaPassportSession((st) => st.address);
10405
+ const [isLoading, setIsLoading] = (0, import_react33.useState)(false);
10406
+ const [error, setError] = (0, import_react33.useState)(null);
10407
+ const [userOpHash, setUserOpHash] = (0, import_react33.useState)(null);
10408
+ const sendTransaction = (0, import_react33.useCallback)(
10409
+ async (params) => {
10410
+ if (!session || !address) {
10411
+ setError("No active session");
10412
+ return null;
10413
+ }
10414
+ if (!(0, import_viem5.isAddress)(params.to)) {
10415
+ setError("Invalid recipient address");
10416
+ return null;
10417
+ }
10418
+ const value = parseFloat(params.value);
10419
+ if (isNaN(value) || value < 0) {
10420
+ setError("Invalid amount");
10421
+ return null;
10422
+ }
10423
+ setIsLoading(true);
10424
+ setError(null);
10425
+ setUserOpHash(null);
10426
+ try {
10427
+ const valueWei = (0, import_viem5.parseEther)(params.value).toString();
10428
+ const hash = await sendUserOperation(
10429
+ session,
10430
+ params.to,
10431
+ valueWei,
10432
+ params.data || "0x",
10433
+ "standard",
10434
+ "v0.7"
10435
+ );
10436
+ setUserOpHash(hash);
10437
+ return hash;
10438
+ } catch (err) {
10439
+ const errorMessage = err instanceof Error ? err.message : "Transaction failed";
10440
+ setError(errorMessage);
10441
+ return null;
10442
+ } finally {
10443
+ setIsLoading(false);
10444
+ }
10445
+ },
10446
+ [session, address]
10447
+ );
10448
+ const reset = (0, import_react33.useCallback)(() => {
10040
10449
  setError(null);
10041
10450
  setUserOpHash(null);
10042
10451
  setIsLoading(false);
@@ -10050,188 +10459,27 @@ function useSendTransaction() {
10050
10459
  };
10051
10460
  }
10052
10461
 
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
10462
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
10215
10463
  init_base();
10216
- var import_jsx_runtime50 = require("react/jsx-runtime");
10464
+ var import_jsx_runtime52 = require("react/jsx-runtime");
10217
10465
  function SendLumiaMenu() {
10218
10466
  const page = useLayoutDataStore((st) => st.page);
10219
10467
  const setPage = useLayoutDataStore((st) => st.setPage);
10220
10468
  const open = page === "send";
10221
- const { address } = useLumiaPassportSession();
10469
+ const address = useLumiaPassportSession((st) => st.address);
10222
10470
  const { assets } = useAssets(address);
10223
10471
  const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
10224
10472
  const { refetch: refetchBalance } = (0, import_wagmi2.useBalance)({
10225
10473
  address,
10226
10474
  chainId: lumiaBeam.id
10227
10475
  });
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);
10476
+ const [recipient, setRecipient] = (0, import_react34.useState)("");
10477
+ const [amount, setAmount] = (0, import_react34.useState)("");
10478
+ const [txStep, setTxStep] = (0, import_react34.useState)("input");
10479
+ const [validationError, setValidationError] = (0, import_react34.useState)(null);
10232
10480
  const nativeAsset = assets.find((a) => a.type === "native");
10233
10481
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
10234
- (0, import_react32.useEffect)(() => {
10482
+ (0, import_react34.useEffect)(() => {
10235
10483
  if (open) {
10236
10484
  setTxStep("input");
10237
10485
  setValidationError(null);
@@ -10286,18 +10534,18 @@ function SendLumiaMenu() {
10286
10534
  const maxAmount = Math.max(0, balance - 1e-3);
10287
10535
  setAmount(maxAmount.toFixed(6));
10288
10536
  };
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" })
10537
+ 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: [
10538
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10539
+ 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" }) }),
10540
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
10293
10541
  ] }),
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)(
10542
+ txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
10543
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
10544
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
10545
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10298
10546
  Input,
10299
10547
  {
10300
- Icon: import_lucide_react31.Wallet,
10548
+ Icon: import_lucide_react33.Wallet,
10301
10549
  type: "text",
10302
10550
  value: recipient,
10303
10551
  onChange: (e) => setRecipient(e.target.value),
@@ -10305,17 +10553,17 @@ function SendLumiaMenu() {
10305
10553
  }
10306
10554
  )
10307
10555
  ] }),
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: [
10556
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
10557
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between items-center", children: [
10558
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
10559
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
10312
10560
  "Balance: ",
10313
10561
  balance.toFixed(4),
10314
10562
  " LUMIA"
10315
10563
  ] })
10316
10564
  ] }),
10317
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full relative", children: [
10318
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10565
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full relative", children: [
10566
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10319
10567
  Input,
10320
10568
  {
10321
10569
  Icon: LumiaIcon,
@@ -10326,7 +10574,7 @@ function SendLumiaMenu() {
10326
10574
  step: "0.000001"
10327
10575
  }
10328
10576
  ),
10329
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10577
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10330
10578
  Button,
10331
10579
  {
10332
10580
  onClick: handleMaxAmount,
@@ -10339,73 +10587,73 @@ function SendLumiaMenu() {
10339
10587
  )
10340
10588
  ] })
10341
10589
  ] }),
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 })
10590
+ (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: [
10591
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.AlertCircle, { className: "h-4 w-4" }),
10592
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-sm", children: validationError || error })
10345
10593
  ] }),
10346
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
10594
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
10347
10595
  ] }),
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)}` })
10596
+ txStep === "confirm" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
10597
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "bg-gray-50 rounded-lg p-4", children: [
10598
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
10599
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "space-y-2 text-sm", children: [
10600
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between", children: [
10601
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "To:" }),
10602
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
10355
10603
  ] }),
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: [
10604
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between", children: [
10605
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "Amount:" }),
10606
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: `font-semibold`, children: [
10359
10607
  amount,
10360
10608
  " LUMIA"
10361
10609
  ] })
10362
10610
  ] }),
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" })
10611
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between", children: [
10612
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "Network:" }),
10613
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { children: "Lumia Beam" })
10366
10614
  ] })
10367
10615
  ] })
10368
10616
  ] }),
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" }),
10617
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex gap-2", children: [
10618
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
10619
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
10620
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.Loader, { className: "h-4 w-4 animate-spin" }),
10373
10621
  "Confirm"
10374
10622
  ] })
10375
10623
  ] })
10376
10624
  ] }),
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" })
10625
+ txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
10626
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.Loader, { className: "h-12 w-12 animate-spin mx-auto" }),
10627
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { children: [
10628
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
10629
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
10382
10630
  ] })
10383
10631
  ] }),
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" })
10632
+ txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
10633
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "text-center py-4", children: [
10634
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react33.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
10635
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
10636
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
10389
10637
  ] }),
10390
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
10638
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
10391
10639
  ] })
10392
10640
  ] });
10393
10641
  }
10394
10642
 
10395
10643
  // src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
10396
- var import_lucide_react32 = require("lucide-react");
10644
+ var import_lucide_react34 = require("lucide-react");
10397
10645
  var import_qrcode = __toESM(require("qrcode"), 1);
10398
- var import_react33 = require("react");
10646
+ var import_react35 = require("react");
10399
10647
  init_clients();
10400
- var import_jsx_runtime51 = require("react/jsx-runtime");
10648
+ var import_jsx_runtime53 = require("react/jsx-runtime");
10401
10649
  function ReceiveLumiaMenu() {
10402
10650
  const page = useLayoutDataStore((st) => st.page);
10403
10651
  const setPage = useLayoutDataStore((st) => st.setPage);
10404
10652
  const open = page === "receive";
10405
10653
  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)(() => {
10654
+ const [qrCodeUrl, setQrCodeUrl] = (0, import_react35.useState)("");
10655
+ const [copied, setCopied] = (0, import_react35.useState)(false);
10656
+ (0, import_react35.useEffect)(() => {
10409
10657
  if (open && address) {
10410
10658
  import_qrcode.default.toDataURL(address, {
10411
10659
  width: 200,
@@ -10428,41 +10676,42 @@ function ReceiveLumiaMenu() {
10428
10676
  console.error("Failed to copy address:", error);
10429
10677
  }
10430
10678
  };
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" })
10679
+ 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: [
10680
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
10681
+ /* @__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" }) }),
10682
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
10435
10683
  ] }),
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" })
10684
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
10685
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
10686
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
10439
10687
  ] }),
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" })
10688
+ /* @__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)]" }) }),
10689
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Highlight, { type: "info", children: [
10690
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
10691
+ /* @__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: [
10692
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4" }),
10693
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Copied!" })
10694
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
10695
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react34.Copy, { className: "h-4 w-4" }),
10696
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Copy Address" })
10449
10697
  ] }) })
10450
10698
  ] }),
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." }) })
10699
+ /* @__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
10700
  ] });
10453
10701
  }
10454
10702
 
10455
10703
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10456
- var import_lucide_react34 = require("lucide-react");
10704
+ var import_lucide_react36 = require("lucide-react");
10705
+ var import_react36 = require("react");
10457
10706
 
10458
10707
  // src/internal/components/SettingsMenu/constants.ts
10459
- var import_lucide_react33 = require("lucide-react");
10708
+ var import_lucide_react35 = require("lucide-react");
10460
10709
 
10461
10710
  // src/internal/assets/KycIcon.tsx
10462
- var import_jsx_runtime52 = require("react/jsx-runtime");
10711
+ var import_jsx_runtime54 = require("react/jsx-runtime");
10463
10712
  function KycIcon(props) {
10464
10713
  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)(
10714
+ 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
10715
  "path",
10467
10716
  {
10468
10717
  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 +10722,29 @@ function KycIcon(props) {
10473
10722
 
10474
10723
  // src/internal/components/SettingsMenu/constants.ts
10475
10724
  var NAV_BUTTONS = [
10476
- { id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react33.ArrowLeftRight },
10725
+ { id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react35.ArrowLeftRight },
10477
10726
  { 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 }
10727
+ { id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react35.UsersRound },
10728
+ { id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react35.LockKeyhole },
10729
+ { id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react35.DatabaseBackup }
10481
10730
  ];
10482
10731
 
10483
10732
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10484
- var import_jsx_runtime53 = require("react/jsx-runtime");
10733
+ var import_jsx_runtime55 = require("react/jsx-runtime");
10485
10734
  function SettingsMenu() {
10486
10735
  const address = useLumiaPassportSession((st) => st.address);
10487
10736
  const setPage = useLayoutDataStore((st) => st.setPage);
10488
10737
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
10738
+ const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
10739
+ (0, import_react36.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
10489
10740
  const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
10490
10741
  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" })
10742
+ 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: [
10743
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10744
+ /* @__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" }) }),
10745
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xl font-semibold", children: "Wallet Details" })
10495
10746
  ] }),
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)(
10747
+ /* @__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
10748
  Button,
10498
10749
  {
10499
10750
  variant: "outline",
@@ -10506,8 +10757,8 @@ function SettingsMenu() {
10506
10757
  highlightedKeys.includes(id) && "animate-glow-warning"
10507
10758
  ),
10508
10759
  children: [
10509
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Icon, { className: "w-4 h-4" }),
10510
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: name })
10760
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon, { className: "w-4 h-4" }),
10761
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: name })
10511
10762
  ]
10512
10763
  },
10513
10764
  id
@@ -10516,15 +10767,15 @@ function SettingsMenu() {
10516
10767
  }
10517
10768
 
10518
10769
  // src/internal/components/TermsOfService.tsx
10519
- var import_jsx_runtime54 = require("react/jsx-runtime");
10770
+ var import_jsx_runtime56 = require("react/jsx-runtime");
10520
10771
  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." }) });
10772
+ 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
10773
  }
10523
10774
 
10524
10775
  // 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");
10776
+ var import_react_query19 = require("@tanstack/react-query");
10777
+ var import_lucide_react38 = require("lucide-react");
10778
+ var import_react37 = require("react");
10528
10779
 
10529
10780
  // src/internal/components/TransactionsMenu/api.ts
10530
10781
  init_base();
@@ -10815,7 +11066,7 @@ async function getTransactionsListQuery(address) {
10815
11066
  }
10816
11067
 
10817
11068
  // src/internal/components/TransactionsMenu/TransactionsGroup.tsx
10818
- var import_lucide_react35 = require("lucide-react");
11069
+ var import_lucide_react37 = require("lucide-react");
10819
11070
 
10820
11071
  // src/internal/components/TransactionsMenu/utils.ts
10821
11072
  init_base();
@@ -10833,7 +11084,7 @@ var parseValue = (value) => {
10833
11084
  return 0n;
10834
11085
  }
10835
11086
  };
10836
- var formatValue = (value, decimals = 18) => {
11087
+ var formatValue2 = (value, decimals = 18) => {
10837
11088
  const amount = parseValue(value);
10838
11089
  if (amount === 0n) return "0";
10839
11090
  if (decimals <= 0) {
@@ -10849,7 +11100,7 @@ var formatValue = (value, decimals = 18) => {
10849
11100
  const trimmed = fractionStr.slice(0, Math.min(6, fractionStr.length));
10850
11101
  return `${whole.toString()}.${trimmed}`;
10851
11102
  };
10852
- var openInExplorer = (txHash) => {
11103
+ var openInExplorer2 = (txHash) => {
10853
11104
  const explorerUrl = getExplorerUrl();
10854
11105
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
10855
11106
  };
@@ -10862,24 +11113,24 @@ var formatTimestamp = (timestampMs) => {
10862
11113
  };
10863
11114
 
10864
11115
  // 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)]" });
11116
+ var import_jsx_runtime57 = require("react/jsx-runtime");
11117
+ 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)]" });
11118
+ 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
11119
  function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
10869
11120
  const internalSymbol = internal.assetSymbol || assetSymbol;
10870
11121
  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),
11122
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
11123
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
11124
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
11125
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { children: [
11126
+ formatValue2(internal.value, internalDecimals),
10876
11127
  " ",
10877
11128
  internalSymbol
10878
11129
  ] })
10879
11130
  ] }),
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) })
11131
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
11132
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
11133
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
10883
11134
  ] })
10884
11135
  ] });
10885
11136
  }
@@ -10890,22 +11141,22 @@ function TransactionsGroup(props) {
10890
11141
  const assetSymbol = parent.assetSymbol || "LUMIA";
10891
11142
  const assetDecimals = parent.decimals ?? 18;
10892
11143
  const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
10893
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11144
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10894
11145
  "div",
10895
11146
  {
10896
- onClick: () => openInExplorer(parent.parentHash),
11147
+ onClick: () => openInExplorer2(parent.parentHash),
10897
11148
  className: cn(
10898
11149
  "rounded-[var(--l-pass-el-bdrs)] p-2 transition-colors cursor-pointer border border-[var(--l-pass-bd)]",
10899
11150
  "bg-[var(--l-pass-secondary)] hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
10900
11151
  ),
10901
11152
  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: [
11153
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
11154
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center gap-2", children: [
10904
11155
  getTransactionIcon(parent.direction),
10905
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "font-medium", children: isIncoming ? "Received" : "Sent" }),
11156
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-medium", children: isIncoming ? "Received" : "Sent" }),
10906
11157
  getStatusIcon(parent.status)
10907
11158
  ] }),
10908
- parent.badgeLabel && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11159
+ parent.badgeLabel && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10909
11160
  "span",
10910
11161
  {
10911
11162
  className: cn(
@@ -10916,39 +11167,39 @@ function TransactionsGroup(props) {
10916
11167
  }
10917
11168
  )
10918
11169
  ] }),
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: [
11170
+ /* @__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) }),
11171
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-0 text-sm", children: [
11172
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11173
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: isIncoming ? "From:" : "To:" }),
11174
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "font-mono", children: [
10924
11175
  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)" })
11176
+ parent.counterpartyIsContract && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs text-[var(--l-pass-info)] ml-1", children: "(Contract)" })
10926
11177
  ] })
10927
11178
  ] }),
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),
11179
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11180
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Value:" }),
11181
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "font-semibold", children: [
11182
+ formatValue2(parent.value, assetDecimals),
10932
11183
  " ",
10933
11184
  assetSymbol
10934
11185
  ] })
10935
11186
  ] }),
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}` : "-" })
11187
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11188
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Block:" }),
11189
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-mono", children: parent.blockNumber ? `#${parent.blockNumber}` : "-" })
10939
11190
  ] }),
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 })
11191
+ parent.method && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between", children: [
11192
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Method:" }),
11193
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[var(--l-pass-info)] text-xs", children: parent.method })
10943
11194
  ] })
10944
11195
  ] }),
10945
- internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11196
+ internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10946
11197
  "div",
10947
11198
  {
10948
11199
  className: "mt-4 rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
10949
11200
  onClick: (event) => event.stopPropagation(),
10950
11201
  children: [
10951
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11202
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10952
11203
  Button,
10953
11204
  {
10954
11205
  variant: "ghost",
@@ -10956,16 +11207,16 @@ function TransactionsGroup(props) {
10956
11207
  className: "w-full justify-between",
10957
11208
  onClick: () => onToggleExpanded(group.id),
10958
11209
  children: [
10959
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { children: [
11210
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { children: [
10960
11211
  "View internal calls (",
10961
11212
  internalsToRender.length,
10962
11213
  ")"
10963
11214
  ] }),
10964
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: expanded ? "Hide" : "Show" })
11215
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: expanded ? "Hide" : "Show" })
10965
11216
  ]
10966
11217
  }
10967
11218
  ),
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)(
11219
+ 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
11220
  InternalTransaction,
10970
11221
  {
10971
11222
  internal,
@@ -10983,34 +11234,34 @@ function TransactionsGroup(props) {
10983
11234
  }
10984
11235
 
10985
11236
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
10986
- var import_jsx_runtime56 = require("react/jsx-runtime");
11237
+ var import_jsx_runtime58 = require("react/jsx-runtime");
10987
11238
  function TransactionsMenu() {
10988
- const qc = (0, import_react_query17.useQueryClient)();
11239
+ const qc = (0, import_react_query19.useQueryClient)();
10989
11240
  const address = useLumiaPassportSession((st) => st.address);
10990
11241
  const page = useLayoutDataStore((st) => st.page);
10991
11242
  const setPage = useLayoutDataStore((st) => st.setPage);
10992
- const [expandedGroups, setExpandedGroups] = (0, import_react34.useState)({});
11243
+ const [expandedGroups, setExpandedGroups] = (0, import_react37.useState)({});
10993
11244
  const {
10994
11245
  data: txHistoryGroups = [],
10995
11246
  isLoading: isTxHistoryLoading,
10996
11247
  isFetching: isTxHistoryFetching,
10997
11248
  error: txHistoryError
10998
- } = (0, import_react_query17.useQuery)({
11249
+ } = (0, import_react_query19.useQuery)({
10999
11250
  retry: false,
11000
11251
  enabled: !!address && page === "transactions",
11001
11252
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
11002
11253
  queryFn: () => getTransactionsListQuery(address)
11003
11254
  });
11004
- const refreshTxHistory = (0, import_react34.useCallback)(
11255
+ const refreshTxHistory = (0, import_react37.useCallback)(
11005
11256
  () => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
11006
11257
  [qc, address]
11007
11258
  );
11008
11259
  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)(
11260
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
11261
+ /* @__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: [
11262
+ /* @__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" }) }),
11263
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
11264
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11014
11265
  Button,
11015
11266
  {
11016
11267
  variant: "ghost",
@@ -11018,13 +11269,13 @@ function TransactionsMenu() {
11018
11269
  onClick: refreshTxHistory,
11019
11270
  disabled: isTxHistoryFetching,
11020
11271
  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" })
11272
+ 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
11273
  }
11023
11274
  )
11024
11275
  ] }) }),
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)(
11276
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "max-h-[60vh] overflow-y-auto", children: [
11277
+ 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" }) }),
11278
+ !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
11028
11279
  "div",
11029
11280
  {
11030
11281
  className: cn(
@@ -11033,20 +11284,20 @@ function TransactionsMenu() {
11033
11284
  "text-[var(--l-pass-error)]"
11034
11285
  ),
11035
11286
  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 })
11287
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.XCircle, { className: "w-12 h-12 mb-2" }),
11288
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "block w-full text-center text-sm", children: txHistoryResolvedError })
11038
11289
  ]
11039
11290
  }
11040
11291
  ),
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" })
11292
+ !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: [
11293
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Activity, { className: "w-12 h-12" }),
11294
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("span", { className: "block w-full text-center", children: [
11295
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: "No transactions found" }),
11296
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("br", {}),
11297
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
11047
11298
  ] })
11048
11299
  ] }),
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)(
11300
+ !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
11301
  TransactionsGroup,
11051
11302
  {
11052
11303
  group,
@@ -11059,127 +11310,6 @@ function TransactionsMenu() {
11059
11310
  ] });
11060
11311
  }
11061
11312
 
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
11313
  // src/internal/components/PageMap.tsx
11184
11314
  var PAGE_MAP = {
11185
11315
  ["auth" /* AUTH */]: {
@@ -11238,9 +11368,9 @@ var PAGE_MAP = {
11238
11368
  },
11239
11369
  ["assets" /* ASSETS */]: {
11240
11370
  key: "assets" /* ASSETS */,
11241
- title: "View Assets",
11371
+ title: "Assets Portfolio Menu",
11242
11372
  description: "View your token balances and assets",
11243
- component: ViewAssetsMenu
11373
+ component: PortfolioMenu
11244
11374
  },
11245
11375
  ["manage-wallet" /* MANAGE_WALLET */]: {
11246
11376
  key: "manage-wallet" /* MANAGE_WALLET */,
@@ -11289,7 +11419,7 @@ function usePageMapper() {
11289
11419
  setIsDialogOpen,
11290
11420
  setIsDialogClosing
11291
11421
  } = useLayoutStore();
11292
- const closeDialog = (0, import_react36.useCallback)(() => {
11422
+ const closeDialog = (0, import_react38.useCallback)(() => {
11293
11423
  setIsDialogClosing(true);
11294
11424
  setTimeout(() => {
11295
11425
  setDialogContent(null);
@@ -11300,7 +11430,7 @@ function usePageMapper() {
11300
11430
  setIsDialogOpen(false);
11301
11431
  }, CLEAR_DIALOG_TIMEOUT);
11302
11432
  }, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
11303
- const openDialog = (0, import_react36.useCallback)(
11433
+ const openDialog = (0, import_react38.useCallback)(
11304
11434
  (pageItem) => {
11305
11435
  const PageContentComponent = pageItem.component;
11306
11436
  setDialogTitle(pageItem.title);
@@ -11310,7 +11440,7 @@ function usePageMapper() {
11310
11440
  },
11311
11441
  [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
11312
11442
  );
11313
- (0, import_react36.useEffect)(() => {
11443
+ (0, import_react38.useEffect)(() => {
11314
11444
  if (page === null) return closeDialog();
11315
11445
  const pageItem = protectedRoutes[page];
11316
11446
  if (!pageItem) {
@@ -11323,7 +11453,7 @@ function usePageMapper() {
11323
11453
  }
11324
11454
 
11325
11455
  // src/internal/hooks/useSettingsNotifications.ts
11326
- var import_react37 = require("react");
11456
+ var import_react39 = require("react");
11327
11457
  init_auth();
11328
11458
  var EMAIL_NOT_CONNECTED_NOTIFICATION = {
11329
11459
  id: "email-not-connected",
@@ -11340,13 +11470,13 @@ function useSettingsNotifications() {
11340
11470
  const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
11341
11471
  const providers = import_auth3.jwtTokenManager.getProviders();
11342
11472
  const hasEmail = providers.includes("email");
11343
- (0, import_react37.useEffect)(() => {
11473
+ (0, import_react39.useEffect)(() => {
11344
11474
  setSettingsNotifications({
11345
11475
  ...BACKUP_IS_NOT_CREATED_NOTIFICATION,
11346
11476
  status: hasServerVault ? "resolved" : "active"
11347
11477
  });
11348
11478
  }, [hasServerVault, setSettingsNotifications]);
11349
- (0, import_react37.useEffect)(() => {
11479
+ (0, import_react39.useEffect)(() => {
11350
11480
  setSettingsNotifications({
11351
11481
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
11352
11482
  status: hasEmail ? "resolved" : "active"
@@ -11355,14 +11485,17 @@ function useSettingsNotifications() {
11355
11485
  }
11356
11486
 
11357
11487
  // src/internal/hooks/useWalletStatus.ts
11358
- var import_react38 = require("react");
11488
+ var import_react40 = require("react");
11359
11489
  init_auth();
11360
11490
  function useWalletStatus() {
11361
11491
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
11362
11492
  const address = useLumiaPassportSession((st) => st.address);
11363
11493
  const session = useLumiaPassportSession((st) => st.session);
11364
- const { config, callbacks } = useLumiaPassportConfig();
11365
- (0, import_react38.useEffect)(() => {
11494
+ const {
11495
+ config: { current: config },
11496
+ callbacks
11497
+ } = useLumiaPassportConfig();
11498
+ (0, import_react40.useEffect)(() => {
11366
11499
  if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
11367
11500
  const userId = import_auth3.jwtTokenManager.getUserId();
11368
11501
  const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
@@ -11384,13 +11517,16 @@ function useWalletStatus() {
11384
11517
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
11385
11518
  var import_jsx_runtime60 = require("react/jsx-runtime");
11386
11519
  function LumiaPassportDialog() {
11387
- const className = useLumiaPassportConfig()?.config?.ui?.dialogClassName;
11520
+ const {
11521
+ config: { current: config }
11522
+ } = useLumiaPassportConfig();
11523
+ const className = config?.ui?.dialogClassName;
11388
11524
  const session = useLumiaPassportSession((st) => st.session);
11389
11525
  const page = useLayoutDataStore((st) => st.page);
11390
11526
  const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
11391
11527
  const setPage = useLayoutDataStore((st) => st.setPage);
11392
11528
  const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
11393
- (0, import_react39.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
11529
+ (0, import_react41.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
11394
11530
  usePageMapper();
11395
11531
  useAutoConnect();
11396
11532
  useCheckVaultStatus();
@@ -11428,13 +11564,13 @@ function LumiaPassportDialog() {
11428
11564
  }
11429
11565
 
11430
11566
  // src/internal/components/LumiaPriceSSE.tsx
11431
- var import_react41 = require("react");
11567
+ var import_react43 = require("react");
11432
11568
  var import_wagmi3 = require("wagmi");
11433
11569
  init_base();
11434
11570
 
11435
11571
  // src/internal/hooks/useLumiaPriceSSE.ts
11436
- var import_react_query18 = require("@tanstack/react-query");
11437
- var import_react40 = require("react");
11572
+ var import_react_query20 = require("@tanstack/react-query");
11573
+ var import_react42 = require("react");
11438
11574
 
11439
11575
  // src/internal/lib/LumiaPriceSSEService.ts
11440
11576
  var FALLBACK3 = "https://fallback.lumia.passport.io";
@@ -11560,7 +11696,7 @@ async function sseConnectMutation() {
11560
11696
 
11561
11697
  // src/internal/hooks/useLumiaPriceSSE.ts
11562
11698
  function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11563
- const { mutate: connectSSE } = (0, import_react_query18.useMutation)({
11699
+ const { mutate: connectSSE } = (0, import_react_query20.useMutation)({
11564
11700
  mutationFn: sseConnectMutation,
11565
11701
  onSuccess: () => {
11566
11702
  lumiaPriceSSE.addListener(updateCurrentPrice);
@@ -11569,7 +11705,7 @@ function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11569
11705
  console.error("Lumia Price SSE connection error:", err);
11570
11706
  }
11571
11707
  });
11572
- (0, import_react40.useEffect)(() => {
11708
+ (0, import_react42.useEffect)(() => {
11573
11709
  const isConnected = lumiaPriceSSE.getConnectionStatus();
11574
11710
  console.log("[LUMIA PRICE SSE MANAGER] SSE status:", { enabled, isConnected });
11575
11711
  if (!enabled) {
@@ -11586,7 +11722,7 @@ function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11586
11722
 
11587
11723
  // src/internal/components/LumiaPriceSSE.tsx
11588
11724
  function LumiaPriceSSE() {
11589
- const address = useLumiaPassportSession().address;
11725
+ const address = useLumiaPassportSession((st) => st.address);
11590
11726
  const { data: balance } = (0, import_wagmi3.useBalance)({
11591
11727
  address,
11592
11728
  chainId: lumiaBeam.id,
@@ -11600,7 +11736,7 @@ function LumiaPriceSSE() {
11600
11736
  });
11601
11737
  const { lumiaRate, setLumiaRate, setUsdBalance, setBalance } = useLayoutDataStore();
11602
11738
  useLumiaPriceSSE(!!address, (update) => setLumiaRate(update.price || 1));
11603
- (0, import_react41.useEffect)(() => {
11739
+ (0, import_react43.useEffect)(() => {
11604
11740
  const usdBalance = Number(balance?.formatted || 0) * lumiaRate;
11605
11741
  setUsdBalance(usdBalance);
11606
11742
  setBalance(balance);
@@ -11609,23 +11745,23 @@ function LumiaPriceSSE() {
11609
11745
  }
11610
11746
 
11611
11747
  // src/internal/components/TssManager.tsx
11612
- var import_react42 = __toESM(require("react"), 1);
11748
+ var import_react44 = __toESM(require("react"), 1);
11613
11749
  init_auth();
11614
11750
  init_clients();
11615
- var TssManagerWithRef = import_react42.default.forwardRef((props, ref) => {
11751
+ var TssManagerWithRef = import_react44.default.forwardRef((props, ref) => {
11616
11752
  const { mpcPin } = props;
11617
11753
  const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
11618
11754
  const setStatus = useLumiaPassportSession((st) => st.setStatus);
11619
11755
  const setSession = useLumiaPassportSession((st) => st.setSession);
11620
11756
  const setAddress = useLumiaPassportSession((st) => st.setAddress);
11621
- const onSessionCreated = (0, import_react42.useCallback)(
11757
+ const onSessionCreated = (0, import_react44.useCallback)(
11622
11758
  (session, address) => {
11623
11759
  setSession(session);
11624
11760
  setAddress(address);
11625
11761
  },
11626
11762
  [setSession, setAddress]
11627
11763
  );
11628
- const createSessionWithKeyshare = import_react42.default.useCallback(
11764
+ const createSessionWithKeyshare = import_react44.default.useCallback(
11629
11765
  async (userId, hasServerKeyshare, isNewUser) => {
11630
11766
  setStatus("checking key management setup...");
11631
11767
  await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
@@ -11646,50 +11782,46 @@ var TssManagerWithRef = import_react42.default.forwardRef((props, ref) => {
11646
11782
  },
11647
11783
  [setStatus, usePaymaster, mpcPin]
11648
11784
  );
11649
- import_react42.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11785
+ import_react44.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11650
11786
  return null;
11651
11787
  });
11652
11788
 
11653
11789
  // src/internal/components/WalletConnectHandler.tsx
11654
11790
  var import_rainbowkit = require("@rainbow-me/rainbowkit");
11655
- var import_react_query19 = require("@tanstack/react-query");
11656
- var import_react43 = __toESM(require("react"), 1);
11791
+ var import_react_query21 = require("@tanstack/react-query");
11792
+ var import_react45 = __toESM(require("react"), 1);
11657
11793
  var import_wagmi4 = require("wagmi");
11658
11794
  init_wallet();
11659
11795
  function WalletConnectHandler() {
11660
- const qc = (0, import_react_query19.useQueryClient)();
11661
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
11796
+ const qc = (0, import_react_query21.useQueryClient)();
11797
+ const { callbacks } = useLumiaPassportConfig();
11798
+ const { address, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
11799
+ const { disconnect } = (0, import_wagmi4.useDisconnect)();
11800
+ const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
11662
11801
  const setPage = useLayoutDataStore((st) => st.setPage);
11663
11802
  const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
11664
- const onError = (0, import_react43.useCallback)((error) => {
11803
+ const onError = (0, import_react45.useCallback)((error) => {
11665
11804
  setLinkError(error);
11666
11805
  setIsWalletLinking(false);
11667
11806
  setPage("manage-wallet" /* MANAGE_WALLET */);
11668
11807
  }, []);
11669
- const onLinkingComplete = (0, import_react43.useCallback)(async (success) => {
11670
- setIsWalletLinking(false);
11808
+ const onLinkingComplete = (0, import_react45.useCallback)(async (success) => {
11671
11809
  if (success) {
11810
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
11811
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
11672
11812
  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);
11813
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
11814
+ } catch {
11681
11815
  }
11682
11816
  setProviderType(null);
11683
11817
  setPage("manage-wallet" /* MANAGE_WALLET */);
11684
11818
  }
11819
+ setIsWalletLinking(false);
11685
11820
  }, []);
11686
11821
  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)(() => {
11822
+ const [hasStartedLinking, setHasStartedLinking] = import_react45.default.useState(false);
11823
+ const timeoutRef = import_react45.default.useRef();
11824
+ (0, import_react45.useEffect)(() => {
11693
11825
  if (isWalletLinking && !hasStartedLinking) {
11694
11826
  setHasStartedLinking(true);
11695
11827
  if (isConnected) {
@@ -11721,7 +11853,7 @@ function WalletConnectHandler() {
11721
11853
  }
11722
11854
  }
11723
11855
  }, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect]);
11724
- (0, import_react43.useEffect)(() => {
11856
+ (0, import_react45.useEffect)(() => {
11725
11857
  if (isConnected && address && isWalletLinking && hasStartedLinking) {
11726
11858
  handleWalletSign();
11727
11859
  }
@@ -11806,9 +11938,10 @@ var useLumiaPassportSession = (0, import_zustand5.create)((set) => ({
11806
11938
  setWalletReadyStatus: (status) => set({ walletReadyStatus: status })
11807
11939
  }));
11808
11940
  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: [
11941
+ const {
11942
+ config: { current: config }
11943
+ } = useLumiaPassportConfig();
11944
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react46.Fragment, { children: [
11812
11945
  children,
11813
11946
  config.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(WalletConnectHandler, {}),
11814
11947
  /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(LumiaPriceSSE, {}),
@@ -11860,44 +11993,56 @@ var LumiaWagmiProvider = ({ children }) => {
11860
11993
 
11861
11994
  // src/context/LumiaPassportContext.tsx
11862
11995
  var import_jsx_runtime63 = require("react/jsx-runtime");
11863
- var LumiaPassportContext = (0, import_react45.createContext)(void 0);
11996
+ var LumiaPassportContext = (0, import_react47.createContext)(void 0);
11864
11997
  function LumiaPassportProvider(props) {
11865
11998
  const { children, projectId, initialConfig = {}, callbacks } = props;
11866
11999
  const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
11867
12000
  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;
12001
+ (0, import_react47.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
12002
+ const config = (0, import_react47.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
12003
+ const updateConfig = (0, import_react47.useCallback)((updates) => {
12004
+ const prev = config.current;
12005
+ const next = { ...prev };
12006
+ if (updates.projectId !== void 0) next.projectId = updates.projectId;
12007
+ if (updates.passkey) next.passkey = { ...next.passkey, ...updates.passkey };
12008
+ if (updates.email) next.email = { ...next.email, ...updates.email };
12009
+ if (updates.social) {
12010
+ next.social = { ...next.social, ...updates.social };
12011
+ if (updates.social.providers) next.social.providers = updates.social.providers;
12012
+ }
12013
+ if (updates.development) next.development = { ...next.development, ...updates.development };
12014
+ if (updates.ui) {
12015
+ next.ui = { ...next.ui, ...updates.ui };
12016
+ if (updates.ui.branding) next.ui.branding = { ...next.ui.branding, ...updates.ui.branding };
12017
+ }
12018
+ if (updates.network) next.network = { ...next.network, ...updates.network };
12019
+ if (updates.services) next.services = { ...next.services, ...updates.services };
12020
+ if (updates.features) next.features = { ...next.features, ...updates.features };
12021
+ if (updates.warnings) next.warnings = { ...next.warnings, ...updates.warnings };
12022
+ if (updates.kyc) next.kyc = { ...next.kyc, ...updates.kyc };
12023
+ if (updates.services && typeof window !== "undefined") {
12024
+ try {
12025
+ window.__LUMIA_SERVICES__ = next.services;
12026
+ } catch {
12027
+ }
12028
+ }
12029
+ if (updates.projectId !== void 0 && typeof window !== "undefined") {
12030
+ try {
12031
+ window.__LUMIA_PROJECT_ID__ = next.projectId;
12032
+ } catch {
12033
+ }
12034
+ }
12035
+ config.current = next;
12036
+ }, []);
12037
+ (0, import_react47.useEffect)(() => {
12038
+ if (typeof window === "undefined" || !projectId) return;
12039
+ const mergedConfig = (0, import_lodash_es2.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
12040
+ updateConfig(mergedConfig);
12041
+ console.log("[ MERGED PROVIDER STORED CONFIG ]", mergedConfig);
11896
12042
  try {
11897
12043
  if (typeof window !== "undefined") {
11898
- window.__LUMIA_SERVICES__ = merged.services;
12044
+ window.__LUMIA_SERVICES__ = mergedConfig.services;
11899
12045
  window.__LUMIA_PROJECT_ID__ = projectId;
11900
- console.log("[LumiaPassportProvider] Setting window.__LUMIA_SERVICES__:", merged.services);
11901
12046
  const resolvedServices = getServiceUrls();
11902
12047
  console.log("[LumiaPassportProvider] Resolved services:", resolvedServices);
11903
12048
  }
@@ -11910,60 +12055,12 @@ function LumiaPassportProvider(props) {
11910
12055
  console.warn("[LumiaPassport] Failed to initialize SDK error tracking:", error);
11911
12056
  }
11912
12057
  }
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
12058
  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
12059
  try {
11963
12060
  const iframeManager = getIframeManager({
11964
12061
  iframeUrl,
11965
12062
  projectId,
11966
- debug: config.features?.mpcSecurity ?? true,
12063
+ debug: mergedConfig.features?.mpcSecurity ?? true,
11967
12064
  onWalletReady: (status) => {
11968
12065
  callbacks?.onWalletReady?.(status);
11969
12066
  setWalletReadyStatus(status);
@@ -11971,7 +12068,6 @@ function LumiaPassportProvider(props) {
11971
12068
  });
11972
12069
  iframeManager.initialize().then(() => {
11973
12070
  setIsIframeReady(true);
11974
- console.log("[LumiaPassport] \u2705 Secure iframe wallet initialized successfully");
11975
12071
  }).catch((error) => {
11976
12072
  console.error("[LumiaPassport] \u274C Failed to initialize iframe wallet:", error);
11977
12073
  });
@@ -11982,24 +12078,19 @@ function LumiaPassportProvider(props) {
11982
12078
  } catch (error) {
11983
12079
  console.error("[LumiaPassport] Error setting up iframe manager:", error);
11984
12080
  }
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
- ) });
12081
+ }, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
12082
+ const contextValue = (0, import_react47.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
12083
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
11993
12084
  }
11994
12085
  var useLumiaPassportConfig = () => {
11995
- const ctx = (0, import_react45.useContext)(LumiaPassportContext);
12086
+ const ctx = (0, import_react47.useContext)(LumiaPassportContext);
11996
12087
  if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
11997
12088
  return ctx;
11998
12089
  };
11999
12090
 
12000
12091
  // src/components/ConnectWalletButton.tsx
12001
12092
  var import_lucide_react39 = require("lucide-react");
12002
- var import_react46 = require("react");
12093
+ var import_react48 = require("react");
12003
12094
  init_auth();
12004
12095
  var import_jsx_runtime64 = (
12005
12096
  /** external Buttons can be provided */
@@ -12018,15 +12109,14 @@ function ConnectWalletButton(props) {
12018
12109
  // TODO: provide usePaymaster via config context
12019
12110
  usePaymaster = true
12020
12111
  } = props;
12021
- console.log("[ CONNECT BUTTON RENDER ] should be as minimal as possible");
12022
12112
  const setPage = useLayoutDataStore((st) => st.setPage);
12023
12113
  const colorMode = useLayoutStore((st) => st.colorMode);
12024
12114
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
12025
12115
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
12026
- (0, import_react46.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12116
+ (0, import_react48.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12027
12117
  const avatar = import_auth3.jwtTokenManager.getAvatar();
12028
12118
  const displayName = import_auth3.jwtTokenManager.getDisplayName();
12029
- const indicators = (0, import_react46.useMemo)(() => {
12119
+ const indicators = (0, import_react48.useMemo)(() => {
12030
12120
  const userId = import_auth3.jwtTokenManager.getUserId();
12031
12121
  if (!userId) return { server: false, local: false, backup: false };
12032
12122
  const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
@@ -12074,14 +12164,7 @@ function ConnectWalletButton(props) {
12074
12164
  "rounded-[var(--l-pass-el-bdrs)] p-2 max-w-sm min-w-[256px]"
12075
12165
  ),
12076
12166
  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 }) }),
12167
+ /* @__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
12168
  /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
12086
12169
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "font-semibold text-base truncate max-w-[144px]", children: displayName }),
12087
12170
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(UsdBalance, { className: "font-semibold text-base text-[var(--l-pass-fg-muted)]" })
@@ -12178,13 +12261,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
12178
12261
  var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
12179
12262
 
12180
12263
  // src/hooks/useLumiaPassportOpen.ts
12181
- var import_react47 = require("react");
12264
+ var import_react49 = require("react");
12182
12265
  function useLumiaPassportOpen() {
12183
12266
  const page = useLayoutDataStore((st) => st.page);
12184
12267
  const setPage = useLayoutDataStore((st) => st.setPage);
12185
12268
  const setPageParams = useLayoutDataStore((st) => st.setPageParams);
12186
- const address = useLumiaPassportSession().address;
12187
- const open = (0, import_react47.useCallback)(
12269
+ const address = useLumiaPassportSession((st) => st.address);
12270
+ const open = (0, import_react49.useCallback)(
12188
12271
  (passportPage, params) => {
12189
12272
  if (!address) return setPage("auth" /* AUTH */);
12190
12273
  if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -12193,24 +12276,27 @@ function useLumiaPassportOpen() {
12193
12276
  },
12194
12277
  [setPage, setPageParams, address]
12195
12278
  );
12196
- const close = (0, import_react47.useCallback)(() => setPage(null), [setPage]);
12279
+ const close = (0, import_react49.useCallback)(() => setPage(null), [setPage]);
12197
12280
  return { open, close, isOpen: page !== null };
12198
12281
  }
12199
12282
 
12200
12283
  // src/hooks/useLumiaPassportColorMode.ts
12201
- var import_react48 = require("react");
12284
+ var import_react50 = require("react");
12202
12285
  function useLumiaPassportColorMode() {
12203
- const preferedColorMode = useLumiaPassportConfig().config?.preferedColorMode;
12286
+ const {
12287
+ config: { current: config }
12288
+ } = useLumiaPassportConfig();
12289
+ const preferedColorMode = config?.preferedColorMode;
12204
12290
  const colorMode = useLayoutStore((st) => st.colorMode);
12205
12291
  const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
12206
- const setColorMode = (0, import_react48.useCallback)(
12292
+ const setColorMode = (0, import_react50.useCallback)(
12207
12293
  (mode) => {
12208
12294
  localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
12209
12295
  handleStoreColorMode(mode);
12210
12296
  },
12211
12297
  [handleStoreColorMode]
12212
12298
  );
12213
- (0, import_react48.useEffect)(() => {
12299
+ (0, import_react50.useEffect)(() => {
12214
12300
  let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
12215
12301
  if (!targetColorMode && !preferedColorMode) {
12216
12302
  const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -12252,7 +12338,7 @@ function ThemeToggle(props) {
12252
12338
  }
12253
12339
 
12254
12340
  // src/context/RainbowKitContext.tsx
12255
- var import_react49 = __toESM(require("react"), 1);
12341
+ var import_react51 = __toESM(require("react"), 1);
12256
12342
  var import_styles = require("@rainbow-me/rainbowkit/styles.css");
12257
12343
  var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
12258
12344
  var import_wagmi8 = require("wagmi");
@@ -12395,12 +12481,14 @@ var rainbowTheme = {
12395
12481
  // src/context/RainbowKitContext.tsx
12396
12482
  var import_jsx_runtime66 = require("react/jsx-runtime");
12397
12483
  var LumiaRainbowKitProvider = ({ children }) => {
12398
- const { config } = useLumiaPassportConfig();
12484
+ const {
12485
+ config: { current: config }
12486
+ } = useLumiaPassportConfig();
12399
12487
  const isDark = useLayoutStore((st) => st.colorMode === "dark");
12400
- const rainbowConfig2 = import_react49.default.useMemo(() => {
12488
+ const rainbowConfig2 = import_react51.default.useMemo(() => {
12401
12489
  return createRainbowConfig(config.wallet?.walletConnectProjectId);
12402
12490
  }, [config.wallet?.walletConnectProjectId]);
12403
- const customTheme = import_react49.default.useMemo(
12491
+ const customTheme = import_react51.default.useMemo(
12404
12492
  () => isDark ? {
12405
12493
  ...(0, import_rainbowkit3.darkTheme)(),
12406
12494
  colors: {
@@ -12428,11 +12516,9 @@ var LumiaRainbowKitProvider = ({ children }) => {
12428
12516
  };
12429
12517
 
12430
12518
  // src/internal/components/UserOpStatus.tsx
12431
- var React20 = __toESM(require("react"), 1);
12432
12519
  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");
12520
+ var React18 = __toESM(require("react"), 1);
12521
+ init_base();
12436
12522
 
12437
12523
  // src/internal/utils/cn.ts
12438
12524
  var import_clsx3 = require("clsx");
@@ -12441,34 +12527,10 @@ function cn2(...inputs) {
12441
12527
  return (0, import_tailwind_merge2.twMerge)((0, import_clsx3.clsx)(inputs));
12442
12528
  }
12443
12529
 
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
12530
  // src/internal/components/Address.tsx
12469
- var React19 = __toESM(require("react"), 1);
12470
12531
  var import_lucide_react41 = require("lucide-react");
12471
- var import_jsx_runtime68 = require("react/jsx-runtime");
12532
+ var React17 = __toESM(require("react"), 1);
12533
+ var import_jsx_runtime67 = require("react/jsx-runtime");
12472
12534
  function toExplorerAddressUrl(address, chain) {
12473
12535
  const base2 = chain?.blockExplorers?.default?.url;
12474
12536
  if (!base2) return null;
@@ -12489,16 +12551,16 @@ var Address = ({
12489
12551
  }) => {
12490
12552
  const addr = address || "";
12491
12553
  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)(
12554
+ const [copied, setCopied] = React17.useState(false);
12555
+ if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12556
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
12557
+ label && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-sm font-medium", children: label }),
12558
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
12559
+ showCopy && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
12498
12560
  Button,
12499
12561
  {
12500
12562
  variant: "ghost",
12501
- size: "sm",
12563
+ size: "small",
12502
12564
  title: copied ? "Copied" : "Copy address",
12503
12565
  onClick: async () => {
12504
12566
  try {
@@ -12508,10 +12570,10 @@ var Address = ({
12508
12570
  } catch {
12509
12571
  }
12510
12572
  },
12511
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react41.Copy, { className: "h-4 w-4" })
12573
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react41.Copy, { className: "h-4 w-4" })
12512
12574
  }
12513
12575
  ),
12514
- showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
12576
+ showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
12515
12577
  "a",
12516
12578
  {
12517
12579
  href: explorer,
@@ -12519,14 +12581,38 @@ var Address = ({
12519
12581
  rel: "noreferrer noopener",
12520
12582
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
12521
12583
  title: "Open in explorer",
12522
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react41.ExternalLink, { className: "h-4 w-4" })
12584
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react41.ExternalLink, { className: "h-4 w-4" })
12523
12585
  }
12524
12586
  )
12525
12587
  ] });
12526
12588
  };
12527
12589
 
12590
+ // src/internal/components/ui/badge.tsx
12591
+ var import_class_variance_authority2 = require("class-variance-authority");
12592
+ var import_jsx_runtime68 = require("react/jsx-runtime");
12593
+ var badgeVariants = (0, import_class_variance_authority2.cva)(
12594
+ "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",
12595
+ {
12596
+ variants: {
12597
+ variant: {
12598
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
12599
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
12600
+ destructive: "border-transparent bg-red-600 text-white hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-600",
12601
+ outline: "text-foreground",
12602
+ success: "border-transparent bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600",
12603
+ warning: "border-transparent bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-600 dark:hover:bg-yellow-500"
12604
+ }
12605
+ },
12606
+ defaultVariants: {
12607
+ variant: "default"
12608
+ }
12609
+ }
12610
+ );
12611
+ function Badge({ className, variant, ...props }) {
12612
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
12613
+ }
12614
+
12528
12615
  // src/internal/components/UserOpStatus.tsx
12529
- init_base();
12530
12616
  var import_jsx_runtime69 = require("react/jsx-runtime");
12531
12617
  var UserOpStatus = ({
12532
12618
  userOpHash,
@@ -12538,20 +12624,20 @@ var UserOpStatus = ({
12538
12624
  externalState
12539
12625
  }) => {
12540
12626
  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());
12627
+ const [internalReceipt, setInternalReceipt] = React18.useState(null);
12628
+ const [internalMempool, setInternalMempool] = React18.useState(null);
12629
+ const [internalError, setInternalError] = React18.useState(null);
12630
+ const [attempt, setAttempt] = React18.useState(0);
12631
+ const [internalRefreshing, setInternalRefreshing] = React18.useState(false);
12632
+ const [timedOut, setTimedOut] = React18.useState(false);
12633
+ const [rejected, setRejected] = React18.useState(false);
12634
+ const intervalRef = React18.useRef(null);
12635
+ const startTimeRef = React18.useRef(Date.now());
12550
12636
  const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
12551
12637
  const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
12552
12638
  const error = useExternalState ? externalState.error ?? null : internalError;
12553
12639
  const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
12554
- const rpc = React20.useCallback(async (method, params) => {
12640
+ const rpc = React18.useCallback(async (method, params) => {
12555
12641
  const body = { jsonrpc: "2.0", id: 1, method, params };
12556
12642
  const res = await fetch(getBundlerUrl(), {
12557
12643
  method: "POST",
@@ -12562,14 +12648,14 @@ var UserOpStatus = ({
12562
12648
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
12563
12649
  return json.result;
12564
12650
  }, []);
12565
- const extractMempoolInfo = React20.useCallback((m) => {
12651
+ const extractMempoolInfo = React18.useCallback((m) => {
12566
12652
  if (!m) return null;
12567
12653
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
12568
12654
  const sender = m.sender || m?.userOperation?.sender || null;
12569
12655
  if (!entryPoint && !sender) return null;
12570
12656
  return { entryPoint, sender };
12571
12657
  }, []);
12572
- const tick = React20.useCallback(async () => {
12658
+ const tick = React18.useCallback(async () => {
12573
12659
  if (useExternalState) return;
12574
12660
  const elapsed = Date.now() - startTimeRef.current;
12575
12661
  if (elapsed > maxPollTimeMs) {
@@ -12613,7 +12699,7 @@ var UserOpStatus = ({
12613
12699
  setAttempt((x) => x + 1);
12614
12700
  }
12615
12701
  }, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
12616
- React20.useEffect(() => {
12702
+ React18.useEffect(() => {
12617
12703
  if (useExternalState) return;
12618
12704
  console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
12619
12705
  startTimeRef.current = Date.now();
@@ -12625,7 +12711,7 @@ var UserOpStatus = ({
12625
12711
  setAttempt(0);
12626
12712
  setInternalRefreshing(false);
12627
12713
  }, [userOpHash, useExternalState]);
12628
- React20.useEffect(() => {
12714
+ React18.useEffect(() => {
12629
12715
  if (useExternalState) {
12630
12716
  console.log("[UserOpStatus] Using external state, skipping internal polling");
12631
12717
  return;
@@ -12691,7 +12777,10 @@ var UserOpStatus = ({
12691
12777
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
12692
12778
  "div",
12693
12779
  {
12694
- className: cn2("lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]", className),
12780
+ className: cn2(
12781
+ "lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]",
12782
+ className
12783
+ ),
12695
12784
  style: { textAlign: "left", listStyle: "none" },
12696
12785
  children: [
12697
12786
  /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
@@ -12699,7 +12788,7 @@ var UserOpStatus = ({
12699
12788
  stateBadge(),
12700
12789
  /* @__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
12790
  ] }),
12702
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
12791
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
12703
12792
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react42.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
12704
12793
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xs", children: "Refresh" })
12705
12794
  ] })
@@ -12711,7 +12800,7 @@ var UserOpStatus = ({
12711
12800
  Button,
12712
12801
  {
12713
12802
  variant: "ghost",
12714
- size: "sm",
12803
+ size: "small",
12715
12804
  className: "h-8 w-8 p-0",
12716
12805
  onClick: async () => {
12717
12806
  try {
@@ -12730,7 +12819,7 @@ var UserOpStatus = ({
12730
12819
  Button,
12731
12820
  {
12732
12821
  variant: "ghost",
12733
- size: "sm",
12822
+ size: "small",
12734
12823
  className: "h-8 w-8 p-0",
12735
12824
  onClick: async () => {
12736
12825
  try {
@@ -12798,8 +12887,8 @@ var UserOpStatus = ({
12798
12887
  };
12799
12888
 
12800
12889
  // src/internal/components/Hash.tsx
12801
- var React21 = __toESM(require("react"), 1);
12802
12890
  var import_lucide_react43 = require("lucide-react");
12891
+ var React19 = __toESM(require("react"), 1);
12803
12892
  var import_jsx_runtime70 = require("react/jsx-runtime");
12804
12893
  function toExplorerUrl(kind, value, chain) {
12805
12894
  const base2 = chain?.blockExplorers?.default?.url;
@@ -12823,7 +12912,7 @@ var Hash = ({
12823
12912
  }) => {
12824
12913
  const value = hash || "";
12825
12914
  const explorer = toExplorerUrl(kind, value, chain || void 0);
12826
- const [copied, setCopied] = React21.useState(false);
12915
+ const [copied, setCopied] = React19.useState(false);
12827
12916
  if (!value) return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12828
12917
  return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
12829
12918
  label && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-sm font-medium", children: label }),
@@ -12832,7 +12921,7 @@ var Hash = ({
12832
12921
  Button,
12833
12922
  {
12834
12923
  variant: "ghost",
12835
- size: "sm",
12924
+ size: "small",
12836
12925
  title: copied ? "Copied" : "Copy",
12837
12926
  onClick: async () => {
12838
12927
  try {
@@ -12860,14 +12949,14 @@ var Hash = ({
12860
12949
  };
12861
12950
 
12862
12951
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
12863
- var import_react50 = require("react");
12952
+ var import_react52 = require("react");
12864
12953
  init_base();
12865
12954
  var import_jsx_runtime71 = require("react/jsx-runtime");
12866
12955
  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)(() => {
12956
+ const [transactions, setTransactions] = (0, import_react52.useState)([]);
12957
+ const [loading, setLoading] = (0, import_react52.useState)(true);
12958
+ const [error, setError] = (0, import_react52.useState)(null);
12959
+ (0, import_react52.useEffect)(() => {
12871
12960
  const fetchTransactions = async () => {
12872
12961
  try {
12873
12962
  setLoading(true);
@@ -12893,7 +12982,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12893
12982
  fetchTransactions();
12894
12983
  }
12895
12984
  }, [address, itemsCount]);
12896
- const formatValue2 = (value) => {
12985
+ const formatValue3 = (value) => {
12897
12986
  try {
12898
12987
  const wei = BigInt(value);
12899
12988
  const eth = Number(wei) / 1e18;
@@ -12963,7 +13052,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12963
13052
  /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { children: [
12964
13053
  /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-gray-600", children: "Value:" }),
12965
13054
  /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { className: "font-semibold ml-1", children: [
12966
- formatValue2(tx.value),
13055
+ formatValue3(tx.value),
12967
13056
  " LUMIA"
12968
13057
  ] })
12969
13058
  ] })
@@ -12986,7 +13075,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12986
13075
  };
12987
13076
 
12988
13077
  // src/hooks/useUserOpStatus.ts
12989
- var React23 = __toESM(require("react"), 1);
13078
+ var React21 = __toESM(require("react"), 1);
12990
13079
  init_base();
12991
13080
  function useUserOpStatus(options = {}) {
12992
13081
  const {
@@ -12998,16 +13087,16 @@ function useUserOpStatus(options = {}) {
12998
13087
  onReceipt,
12999
13088
  onTxHash
13000
13089
  } = 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) => {
13090
+ const [state, setState] = React21.useState("waiting");
13091
+ const [receipt, setReceipt] = React21.useState(null);
13092
+ const [mempool, setMempool] = React21.useState(null);
13093
+ const [txHash, setTxHash] = React21.useState(null);
13094
+ const [error, setError] = React21.useState(null);
13095
+ const [isPolling, setIsPolling] = React21.useState(false);
13096
+ const intervalRef = React21.useRef(null);
13097
+ const startTimeRef = React21.useRef(Date.now());
13098
+ const prevStateRef = React21.useRef("waiting");
13099
+ const rpc = React21.useCallback(async (method, params) => {
13011
13100
  const body = { jsonrpc: "2.0", id: 1, method, params };
13012
13101
  const res = await fetch(getBundlerUrl(), {
13013
13102
  method: "POST",
@@ -13018,21 +13107,21 @@ function useUserOpStatus(options = {}) {
13018
13107
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
13019
13108
  return json.result;
13020
13109
  }, []);
13021
- const extractMempoolInfo = React23.useCallback((m) => {
13110
+ const extractMempoolInfo = React21.useCallback((m) => {
13022
13111
  if (!m) return null;
13023
13112
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
13024
13113
  const sender = m.sender || m?.userOperation?.sender || null;
13025
13114
  if (!entryPoint && !sender) return null;
13026
13115
  return { entryPoint, sender };
13027
13116
  }, []);
13028
- const updateState = React23.useCallback((newState) => {
13117
+ const updateState = React21.useCallback((newState) => {
13029
13118
  setState(newState);
13030
13119
  if (prevStateRef.current !== newState) {
13031
13120
  prevStateRef.current = newState;
13032
13121
  onStateChange?.(newState);
13033
13122
  }
13034
13123
  }, [onStateChange]);
13035
- const tick = React23.useCallback(async () => {
13124
+ const tick = React21.useCallback(async () => {
13036
13125
  if (!userOpHash || !enabled) return;
13037
13126
  if (receipt) {
13038
13127
  console.log("[useUserOpStatus] Already have receipt, skipping tick");
@@ -13105,7 +13194,7 @@ function useUserOpStatus(options = {}) {
13105
13194
  onTxHash,
13106
13195
  onReceipt
13107
13196
  ]);
13108
- React23.useEffect(() => {
13197
+ React21.useEffect(() => {
13109
13198
  if (!userOpHash || !enabled) return;
13110
13199
  console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
13111
13200
  startTimeRef.current = Date.now();
@@ -13117,7 +13206,7 @@ function useUserOpStatus(options = {}) {
13117
13206
  setError(null);
13118
13207
  setIsPolling(false);
13119
13208
  }, [userOpHash, enabled]);
13120
- React23.useEffect(() => {
13209
+ React21.useEffect(() => {
13121
13210
  if (!userOpHash || !enabled) {
13122
13211
  console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
13123
13212
  return;
@@ -13153,7 +13242,7 @@ function useUserOpStatus(options = {}) {
13153
13242
  }
13154
13243
  };
13155
13244
  }, [userOpHash, enabled, pollMs]);
13156
- const refresh = React23.useCallback(async () => {
13245
+ const refresh = React21.useCallback(async () => {
13157
13246
  await tick();
13158
13247
  }, [tick]);
13159
13248
  return {
@@ -13168,22 +13257,22 @@ function useUserOpStatus(options = {}) {
13168
13257
  }
13169
13258
 
13170
13259
  // src/hooks/useLogout.ts
13171
- var import_auth19 = require("@lumiapassport/core/auth");
13172
- var import_react51 = require("react");
13260
+ var import_auth20 = require("@lumiapassport/core/auth");
13261
+ var import_react53 = require("react");
13173
13262
  function useLogout() {
13174
13263
  const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
13175
13264
  const { callbacks } = useLumiaPassportConfig();
13176
- const logout2 = (0, import_react51.useCallback)(async () => {
13265
+ const logout2 = (0, import_react53.useCallback)(async () => {
13177
13266
  const prevAddress = address;
13178
13267
  let userId = null;
13179
13268
  setIsLoading(true);
13180
13269
  try {
13181
- userId = import_auth19.jwtTokenManager.getUserId() || null;
13270
+ userId = import_auth20.jwtTokenManager.getUserId() || null;
13182
13271
  } catch (error) {
13183
13272
  console.warn("[useLogout] Could not get userId:", error);
13184
13273
  }
13185
13274
  try {
13186
- await (0, import_auth19.logout)();
13275
+ await (0, import_auth20.logout)();
13187
13276
  } catch (error) {
13188
13277
  console.warn("[useLogout] Core logout failed:", error);
13189
13278
  }
@@ -13320,49 +13409,6 @@ function useSmartAccountTransactions() {
13320
13409
  };
13321
13410
  }
13322
13411
 
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
13412
  // src/index.ts
13367
13413
  init_iframe_manager();
13368
13414
  (() => {