@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.js CHANGED
@@ -4251,26 +4251,34 @@ var init_profile = __esm({
4251
4251
  });
4252
4252
 
4253
4253
  // src/styles/built.css
4254
- 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}';
4254
+ 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}';
4255
4255
 
4256
4256
  // src/context/LumiaPassportContext.tsx
4257
4257
  init_lumiaPassport();
4258
4258
  init_iframe_manager();
4259
4259
  import { initSdkErrorTracking } from "@lumiapassport/core/internal/error-tracking";
4260
- import { createContext, useCallback as useCallback16, useContext, useEffect as useEffect28, useState as useState14 } from "react";
4260
+ import { merge } from "lodash-es";
4261
+ import {
4262
+ createContext,
4263
+ useCallback as useCallback17,
4264
+ useContext,
4265
+ useEffect as useEffect30,
4266
+ useMemo as useMemo3,
4267
+ useRef as useRef10
4268
+ } from "react";
4261
4269
 
4262
4270
  // src/context/LumiaPassportSessionContext.tsx
4263
- import { Fragment as Fragment10 } from "react";
4271
+ import { Fragment as Fragment11 } from "react";
4264
4272
  import { create as create5 } from "zustand";
4265
4273
 
4266
4274
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
4267
4275
  import { AnimatePresence as AnimatePresence4, motion as motion4 } from "framer-motion";
4268
- import { useEffect as useEffect24 } from "react";
4276
+ import { useEffect as useEffect26 } from "react";
4269
4277
 
4270
4278
  // package.json
4271
4279
  var package_default = {
4272
4280
  name: "@lumiapassport/ui-kit",
4273
- version: "1.12.6",
4281
+ version: "1.13.0",
4274
4282
  description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
4275
4283
  type: "module",
4276
4284
  main: "./dist/index.cjs",
@@ -4359,7 +4367,7 @@ var package_default = {
4359
4367
 
4360
4368
  // src/internal/components/Footer/Footer.tsx
4361
4369
  import { useMutation } from "@tanstack/react-query";
4362
- import { LogOut } from "lucide-react";
4370
+ import { Loader, LogOut } from "lucide-react";
4363
4371
 
4364
4372
  // src/internal/assets/LumiaLogo.tsx
4365
4373
  import { forwardRef } from "react";
@@ -4422,8 +4430,10 @@ import { create } from "zustand";
4422
4430
  // src/internal/constants.ts
4423
4431
  init_assets();
4424
4432
  import { Key as Key2, Mail as Mail2, Wallet2 as Wallet22 } from "lucide-react";
4425
- var DEFAULT_MAIN_MENU_HEIGHT = 90;
4426
4433
  var DEFAULT_AUTH_MENU_HEIGHT = 253;
4434
+ var DEFAULT_MAIN_MENU_HEIGHT = 90;
4435
+ var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
4436
+ var MAX_LIST_HEIGHT = 320;
4427
4437
  var MAIN_DIALOG_ANIMATION_SPEED = 375;
4428
4438
  var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
4429
4439
  var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
@@ -4525,37 +4535,32 @@ var buttonVariants = cva(
4525
4535
  default: cn(
4526
4536
  "border border-transparent",
4527
4537
  "bg-[var(--l-pass-primary)] text-[var(--l-pass-fg-inverted)]",
4528
- "hover:bg-[var(--l-pass-primary-h)] disabled:hover:bg-[var(--l-pass-primary)] disabled:active:bg-[var(--l-pass-primary)]",
4529
- "active:bg-[var(--l-pass-primary-a)]"
4538
+ "hover:bg-[var(--l-pass-primary-h)]",
4539
+ "active:bg-[var(--l-pass-primary-a)]",
4540
+ "disabled:hover:bg-[var(--l-pass-primary)] disabled:active:bg-[var(--l-pass-primary)]"
4530
4541
  ),
4531
4542
  outline: cn(
4532
4543
  "border border-[var(--l-pass-bd)] bg-transparent text-[var(--l-pass-fg)]",
4533
- "hover:text-[var(--l-pass-fg-h)] hover:bg-[var(--l-pass-secondary-h)]",
4534
- "active:text-[var(--l-pass-fg-a)] active:bg-[var(--l-pass-secondary-a)]"
4544
+ "hover:text-[var(--l-pass-fg-h)]",
4545
+ "active:text-[var(--l-pass-fg-a)]",
4546
+ "disabled:hover:text-[var(--l-pass-fg)] disabled:active:text-[var(--l-pass-fg)]"
4535
4547
  ),
4536
4548
  ghost: cn(
4537
- "border border-transparent",
4538
- "bg-transparent text-[var(--l-pass-fg)]",
4549
+ "border border-transparent bg-transparent text-[var(--l-pass-fg)]",
4539
4550
  "hover:text-[var(--l-pass-fg-h)]",
4540
- "disabled:hover:text-[var(--l-pass-fg)] disabled:active:text-[var(--l-pass-fg)]",
4541
- "active:text-[var(--l-pass-fg-a)]"
4542
- ),
4543
- // deprecate
4544
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
4545
- secondary: "bg-gray-600 text-white hover:bg-gray-500 dark:bg-gray-700 dark:hover:bg-gray-600",
4546
- link: "bg-transparent !bg-transparent text-blue-600 hover:text-blue-700 underline-offset-4 hover:underline",
4547
- telegram: "bg-[#0088cc] text-white hover:bg-[#0077bb]",
4548
- success: "bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600"
4551
+ "active:text-[var(--l-pass-fg-a)]",
4552
+ "disabled:hover:text-[var(--l-pass-fg)] disabled:active:text-[var(--l-pass-fg)]"
4553
+ )
4549
4554
  },
4550
4555
  size: {
4551
4556
  small: "h-6 px-2 rounded-[5px]",
4552
4557
  medium: "h-8 px-4 rounded-[var(--l-pass-el-bdrs)]",
4553
4558
  large: "h-12 px-4 rounded-[var(--l-pass-el-bdrs)]",
4554
- icon: "h-8 w-8 p-0 rounded-[5px]",
4559
+ icon: "h-8 w-8 p-0 rounded-[5px]"
4555
4560
  // deprecate
4556
- default: "h-10 px-4 py-2",
4557
- sm: "h-9 rounded-xl px-3",
4558
- lg: "h-11 rounded-xl px-8"
4561
+ // default: 'h-10 px-4 py-2',
4562
+ // sm: 'h-9 rounded-xl px-3',
4563
+ // lg: 'h-11 rounded-xl px-8'
4559
4564
  }
4560
4565
  },
4561
4566
  defaultVariants: {
@@ -4651,12 +4656,12 @@ function Footer() {
4651
4656
  disabled: isDisconnecting,
4652
4657
  children: [
4653
4658
  /* @__PURE__ */ jsx4("span", { children: "Log Out" }),
4654
- /* @__PURE__ */ jsx4(LogOut, { className: "w-4 h-4" })
4659
+ isDisconnecting ? /* @__PURE__ */ jsx4(Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx4(LogOut, { className: "w-4 h-4" })
4655
4660
  ]
4656
4661
  }
4657
- ) : /* @__PURE__ */ jsx4("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4662
+ ) : /* @__PURE__ */ jsx4("span", { className: "font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4658
4663
  ] }),
4659
- !!address && /* @__PURE__ */ jsx4("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4664
+ !!address && /* @__PURE__ */ jsx4("span", { className: "font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: `v${package_default.version}` })
4660
4665
  ]
4661
4666
  }
4662
4667
  );
@@ -4713,7 +4718,7 @@ function LumiaIcon(props) {
4713
4718
 
4714
4719
  // src/internal/components/Header/Header.tsx
4715
4720
  import { useQuery } from "@tanstack/react-query";
4716
- import { Check, CheckCircle2, Copy, Loader } from "lucide-react";
4721
+ import { Check, CheckCircle2, Copy, Loader as Loader2 } from "lucide-react";
4717
4722
  import { useState } from "react";
4718
4723
  init_auth();
4719
4724
  init_clients();
@@ -4745,7 +4750,9 @@ function formatAddress(addr) {
4745
4750
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
4746
4751
  }
4747
4752
  function Header() {
4748
- const { config } = useLumiaPassportConfig();
4753
+ const {
4754
+ config: { current: config }
4755
+ } = useLumiaPassportConfig();
4749
4756
  const address = useLumiaPassportSession((st) => st.address);
4750
4757
  const [copied, setCopied] = useState(false);
4751
4758
  const avatar = jwtTokenManager2.getAvatar();
@@ -4770,7 +4777,16 @@ function Header() {
4770
4777
  children: [
4771
4778
  !!address && /* @__PURE__ */ jsx7(UsdBalance, { className: "text-lg leading-5 font-bold" }),
4772
4779
  /* @__PURE__ */ jsxs6("div", { className: "w-full flex items-center gap-2", children: [
4773
- /* @__PURE__ */ jsx7("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" }),
4780
+ /* @__PURE__ */ jsx7(
4781
+ "span",
4782
+ {
4783
+ className: cn(
4784
+ "max-w-full font-mono text-xs leading-4 font-medium text-[var(--l-pass-fg-muted)",
4785
+ "text-ellipsis overflow-hidden whitespace-nowrap"
4786
+ ),
4787
+ children: displayName || config.ui.title || "LumiaPassport"
4788
+ }
4789
+ ),
4774
4790
  isKycVerified && /* @__PURE__ */ jsxs6("div", { className: "group relative flex flex-shrink-0", children: [
4775
4791
  /* @__PURE__ */ jsx7(CheckCircle2, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
4776
4792
  /* @__PURE__ */ jsx7(
@@ -4786,14 +4802,14 @@ function Header() {
4786
4802
  }
4787
4803
  )
4788
4804
  ] }),
4789
- isUserProfileLoading && /* @__PURE__ */ jsx7(Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" })
4805
+ isUserProfileLoading && /* @__PURE__ */ jsx7(Loader2, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" })
4790
4806
  ] })
4791
4807
  ]
4792
4808
  }
4793
4809
  )
4794
4810
  ] }),
4795
4811
  !!address && /* @__PURE__ */ jsxs6("div", { className: "w-full flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
4796
- /* @__PURE__ */ jsx7("span", { className: "block text-xs text-[var(--l-pass-fg-muted)]", children: formatAddress(address) }),
4812
+ /* @__PURE__ */ jsx7("span", { className: "block font-mono text-[10px] break-all leading-6 text-[var(--l-pass-fg-muted)]", children: formatAddress(address) }),
4797
4813
  /* @__PURE__ */ jsxs6("div", { className: "w-fit flex items-center gap-[var(--l-pass-gap)] justify-between", children: [
4798
4814
  /* @__PURE__ */ jsxs6(
4799
4815
  Button,
@@ -5003,7 +5019,10 @@ var VisuallyHidden = ({ children }) => /* @__PURE__ */ jsx9("span", { className:
5003
5019
  // src/internal/hooks/useAutoConnect.ts
5004
5020
  import { useCallback, useEffect, useRef } from "react";
5005
5021
  function useAutoConnect() {
5006
- const { config, callbacks } = useLumiaPassportConfig();
5022
+ const {
5023
+ config: { current: config },
5024
+ callbacks
5025
+ } = useLumiaPassportConfig();
5007
5026
  const setPage = useLayoutDataStore((st) => st.setPage);
5008
5027
  const {
5009
5028
  session,
@@ -5229,11 +5248,11 @@ function useCheckVaultStatus() {
5229
5248
  }
5230
5249
 
5231
5250
  // src/internal/hooks/usePageMapper.tsx
5232
- import { useCallback as useCallback13, useEffect as useEffect21 } from "react";
5251
+ import { useCallback as useCallback14, useEffect as useEffect23 } from "react";
5233
5252
 
5234
5253
  // src/internal/components/AuthMenu/AuthMenu.tsx
5235
5254
  import { AnimatePresence, motion } from "framer-motion";
5236
- import { Loader as Loader4 } from "lucide-react";
5255
+ import { Loader as Loader5 } from "lucide-react";
5237
5256
  import { useEffect as useEffect7, useMemo } from "react";
5238
5257
 
5239
5258
  // src/internal/components/AuthMenu/AuthFailedStep.tsx
@@ -5492,10 +5511,13 @@ import { Fragment } from "react";
5492
5511
  // src/internal/components/AuthMenu/SignInStep/Email.tsx
5493
5512
  init_lumiaPassport();
5494
5513
  init_projectId();
5495
- import { ChevronRight, Loader as Loader2, Mail as Mail3 } from "lucide-react";
5514
+ import { ChevronRight, Loader as Loader3, Mail as Mail3 } from "lucide-react";
5496
5515
  import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
5497
5516
  function Email() {
5498
- const { config, callbacks } = useLumiaPassportConfig();
5517
+ const {
5518
+ config: { current: config },
5519
+ callbacks
5520
+ } = useLumiaPassportConfig();
5499
5521
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
5500
5522
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
5501
5523
  const { email, codeSendError, setEmail, setCodeSendError, setExpiresIn, setStep } = useAuthStore();
@@ -5566,7 +5588,7 @@ function Email() {
5566
5588
  size: "large",
5567
5589
  disabled: !email || isLoading,
5568
5590
  onClick: onSendVerificationCode,
5569
- children: isLoading ? /* @__PURE__ */ jsx14(Loader2, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx14(ChevronRight, { className: "w-4 h-4" })
5591
+ children: isLoading ? /* @__PURE__ */ jsx14(Loader3, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx14(ChevronRight, { className: "w-4 h-4" })
5570
5592
  }
5571
5593
  )
5572
5594
  ] });
@@ -5649,7 +5671,10 @@ var normalizeLoginResponse = async (rawLoginResponse, providerKey, userData) =>
5649
5671
  };
5650
5672
  function Social(props) {
5651
5673
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
5652
- const { config, callbacks } = useLumiaPassportConfig();
5674
+ const {
5675
+ config: { current: config },
5676
+ callbacks
5677
+ } = useLumiaPassportConfig();
5653
5678
  const setPage = useLayoutDataStore((st) => st.setPage);
5654
5679
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
5655
5680
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
@@ -6062,7 +6087,9 @@ function getSignInEnabledMethods(params) {
6062
6087
  import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
6063
6088
  function SignInStep(props) {
6064
6089
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
6065
- const { config } = useLumiaPassportConfig();
6090
+ const {
6091
+ config: { current: config }
6092
+ } = useLumiaPassportConfig();
6066
6093
  const alert2 = useAuthStore((st) => st.alert);
6067
6094
  const setPage = useLayoutDataStore((st) => st.setPage);
6068
6095
  const enabledWoPasskey = getSignInEnabledMethods({ order: config.ui.authOrder, config, exclude: ["passkey"] });
@@ -6186,7 +6213,7 @@ function Expandable(props) {
6186
6213
  {
6187
6214
  ...divProps,
6188
6215
  ref: expandableRef,
6189
- className: cn("w-full overflow-hidden", className),
6216
+ className: cn("w-full overflow-y-hidden", className),
6190
6217
  style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
6191
6218
  children: /* @__PURE__ */ jsx19("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
6192
6219
  }
@@ -6207,9 +6234,12 @@ function normalizeWebAuthnError(err) {
6207
6234
  }
6208
6235
  function PassKeyStep(props) {
6209
6236
  const { pendingLoginResponseRef, onAuthSuccess, checkDisplayNameRequired } = props;
6210
- const { config, callbacks } = useLumiaPassportConfig();
6211
- const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
6237
+ const {
6238
+ config: { current: config },
6239
+ callbacks
6240
+ } = useLumiaPassportConfig();
6212
6241
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
6242
+ const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
6213
6243
  const setPage = useLayoutDataStore((st) => st.setPage);
6214
6244
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6215
6245
  const autoCloseOnSuccess = !recoveryUserId;
@@ -6417,7 +6447,10 @@ function PassKeyStep(props) {
6417
6447
  init_auth();
6418
6448
  import { useCallback as useCallback5, useRef as useRef4, useState as useState3 } from "react";
6419
6449
  function useAuthMenuHandlers() {
6420
- const { config, callbacks } = useLumiaPassportConfig();
6450
+ const {
6451
+ config: { current: config },
6452
+ callbacks
6453
+ } = useLumiaPassportConfig();
6421
6454
  const pendingLoginResponseRef = useRef4(null);
6422
6455
  const setPage = useLayoutDataStore((st) => st.setPage);
6423
6456
  const [telegramCleanup, setTelegramCleanup] = useState3(null);
@@ -6628,7 +6661,7 @@ function useListenIframeAuthEvents() {
6628
6661
  // src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
6629
6662
  init_lumiaPassport();
6630
6663
  import { useMutation as useMutation3 } from "@tanstack/react-query";
6631
- import { ArrowLeft as ArrowLeft3, Loader as Loader3 } from "lucide-react";
6664
+ import { ArrowLeft as ArrowLeft3, Loader as Loader4 } from "lucide-react";
6632
6665
 
6633
6666
  // src/internal/assets/OtpIcon.tsx
6634
6667
  import { jsx as jsx21 } from "react/jsx-runtime";
@@ -6904,7 +6937,7 @@ function VerifyStep(props) {
6904
6937
  /* @__PURE__ */ jsxs18("div", { className: "relative flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
6905
6938
  /* @__PURE__ */ jsx23(OtpIcon, { className: "w-6 h-6" }),
6906
6939
  /* @__PURE__ */ jsx23("span", { className: "font-bold text-xl leading-6", children: "Verification code" }),
6907
- isLoading && /* @__PURE__ */ jsx23(Loader3, { className: "h-4 w-4 animate-spin" }),
6940
+ isLoading && /* @__PURE__ */ jsx23(Loader4, { className: "h-4 w-4 animate-spin" }),
6908
6941
  /* @__PURE__ */ jsxs18(
6909
6942
  Button,
6910
6943
  {
@@ -6942,10 +6975,10 @@ function VerifyStep(props) {
6942
6975
  // src/internal/components/AuthMenu/AuthMenu.tsx
6943
6976
  import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
6944
6977
  var AuthMenu = () => {
6978
+ const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
6945
6979
  const page = useLayoutDataStore((st) => st.page);
6946
6980
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
6947
6981
  useEffect7(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
6948
- const { isIframeReady } = useLumiaPassportSession();
6949
6982
  const {
6950
6983
  step,
6951
6984
  setStep,
@@ -6971,7 +7004,7 @@ var AuthMenu = () => {
6971
7004
  const { pendingLoginResponseRef, onAuthSuccess, goBackToSignIn, checkDisplayNameRequired } = useAuthMenuHandlers();
6972
7005
  if (!isIframeReady) {
6973
7006
  return /* @__PURE__ */ jsxs19("div", { className: "w-full p-8 flex flex-col justify-center items-center", "data-auth-step": "initializing", children: [
6974
- /* @__PURE__ */ jsx24(Loader4, { className: "w-6 h-6 animate-spin mb-3" }),
7007
+ /* @__PURE__ */ jsx24(Loader5, { className: "w-6 h-6 animate-spin mb-3" }),
6975
7008
  /* @__PURE__ */ jsx24("p", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
6976
7009
  ] });
6977
7010
  }
@@ -7735,7 +7768,7 @@ var useSelectables = () => {
7735
7768
  // src/internal/components/BuyMenu/ByuMenu.tsx
7736
7769
  import { jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
7737
7770
  function BuyMenu() {
7738
- const walletAddress = useLumiaPassportSession().address;
7771
+ const walletAddress = useLumiaPassportSession((st) => st.address);
7739
7772
  const setPage = useLayoutDataStore((st) => st.setPage);
7740
7773
  const control = useSelectables();
7741
7774
  const { rampProvider, setrRampProvider } = control;
@@ -7822,7 +7855,7 @@ function Highlight(props) {
7822
7855
  // src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
7823
7856
  import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
7824
7857
  function KeyshareBackupMenu() {
7825
- const { session } = useLumiaPassportSession();
7858
+ const session = useLumiaPassportSession((st) => st.session);
7826
7859
  const setPage = useLayoutDataStore((st) => st.setPage);
7827
7860
  const userId = session?.mpcUserId || "";
7828
7861
  const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
@@ -8113,12 +8146,15 @@ function KeyshareBackupMenu() {
8113
8146
 
8114
8147
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
8115
8148
  import { useMutation as useMutation6 } from "@tanstack/react-query";
8116
- import { AlertCircle as AlertCircle2, CheckCircle2 as CheckCircle23, Eye as Eye2, EyeOff as EyeOff2, Key as Key6, Loader as Loader5, Server as Server2, Upload } from "lucide-react";
8149
+ import { AlertCircle as AlertCircle2, CheckCircle2 as CheckCircle23, Eye as Eye2, EyeOff as EyeOff2, Key as Key6, Loader as Loader6, Server as Server2, Upload } from "lucide-react";
8117
8150
  import React10, { useCallback as useCallback8, useEffect as useEffect13 } from "react";
8118
8151
  init_vaultClient();
8119
8152
  import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
8120
8153
  var KeyshareRestoreMenu = () => {
8121
- const { config, callbacks } = useLumiaPassportConfig();
8154
+ const {
8155
+ config: { current: config },
8156
+ callbacks
8157
+ } = useLumiaPassportConfig();
8122
8158
  const setPage = useLayoutDataStore((st) => st.setPage);
8123
8159
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8124
8160
  useEffect13(() => setIsDialogForced(true), []);
@@ -8323,7 +8359,7 @@ var KeyshareRestoreMenu = () => {
8323
8359
  return /* @__PURE__ */ jsxs27("div", { className: "w-full flex flex-col p-4", children: [
8324
8360
  /* @__PURE__ */ jsxs27("div", { className: "w-full flex flex-col gap-1", children: [
8325
8361
  /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-2", children: [
8326
- /* @__PURE__ */ jsx37(Loader5, { className: "w-5 h-5 animate-spin" }),
8362
+ /* @__PURE__ */ jsx37(Loader6, { className: "w-5 h-5 animate-spin" }),
8327
8363
  /* @__PURE__ */ jsx37("span", { className: "text-xl leading-5 font-semibold", children: "Checking Backup Availability" })
8328
8364
  ] }),
8329
8365
  /* @__PURE__ */ jsx37("span", { className: "text-sm", children: "Please wait while we check for available backups..." })
@@ -8694,13 +8730,15 @@ var SumsubIframeManager = class {
8694
8730
 
8695
8731
  // src/internal/components/KYC/useSumsubIframe.ts
8696
8732
  function useSumsubIframe({ iframeUrl }) {
8733
+ const {
8734
+ config: { current: config }
8735
+ } = useLumiaPassportConfig();
8697
8736
  const { colorMode } = useLumiaPassportColorMode();
8698
8737
  const iframeRef = useRef8(null);
8699
8738
  const [isLoading, setIsLoading] = useState6(true);
8700
8739
  const [error, setError] = useState6(null);
8701
8740
  const [height, setHeight] = useState6(0);
8702
8741
  const [status, setStatus] = useState6("");
8703
- const { config } = useLumiaPassportConfig();
8704
8742
  const levelName = config.kyc?.options?.levelName;
8705
8743
  useEffect14(() => {
8706
8744
  setError(null);
@@ -8748,7 +8786,9 @@ function useSumsubIframe({ iframeUrl }) {
8748
8786
  import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
8749
8787
  var MAX_IFRAME_HEIGHT = 650;
8750
8788
  var SumsubIframe = () => {
8751
- const { config } = useLumiaPassportConfig();
8789
+ const {
8790
+ config: { current: config }
8791
+ } = useLumiaPassportConfig();
8752
8792
  const iframeUrl = `${config.services.iframeUrl}/kyc/sumsub.html`;
8753
8793
  const { iframeRef, isLoading, error, height, status } = useSumsubIframe({ iframeUrl });
8754
8794
  return /* @__PURE__ */ jsxs28(Fragment6, { children: [
@@ -8779,7 +8819,9 @@ var SumsubIframe = () => {
8779
8819
  // src/internal/components/KYC/KycContent.tsx
8780
8820
  import { jsx as jsx39 } from "react/jsx-runtime";
8781
8821
  var KycContent = () => {
8782
- const { config } = useLumiaPassportConfig();
8822
+ const {
8823
+ config: { current: config }
8824
+ } = useLumiaPassportConfig();
8783
8825
  const provider = config.kyc?.provider;
8784
8826
  switch (provider) {
8785
8827
  case "sumsub":
@@ -8812,7 +8854,9 @@ import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-m
8812
8854
  import { DatabaseBackup } from "lucide-react";
8813
8855
  import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
8814
8856
  function BackupWarning() {
8815
- const { config } = useLumiaPassportConfig();
8857
+ const {
8858
+ config: { current: config }
8859
+ } = useLumiaPassportConfig();
8816
8860
  const setPage = useLayoutDataStore((st) => st.setPage);
8817
8861
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8818
8862
  const isShown = config.warnings?.backupWarning && !hasServerVault;
@@ -8882,18 +8926,59 @@ function MainMenu() {
8882
8926
 
8883
8927
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
8884
8928
  import { fromPairs } from "lodash-es";
8885
- import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft7, Loader as Loader7 } from "lucide-react";
8929
+ import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft7, Loader as Loader8 } from "lucide-react";
8886
8930
  import { useMemo as useMemo2 } from "react";
8887
8931
 
8932
+ // src/modules/linkedProfiles.ts
8933
+ import { useQuery as useQuery4, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
8934
+ import { useCallback as useCallback9 } from "react";
8935
+ init_auth();
8936
+ init_common();
8937
+ init_types();
8938
+ var LINKED_PROFILES_QUERY_KEY = "lumia-passport-linked-profiles-query";
8939
+ async function getLinkProfilesData() {
8940
+ const list = await getLinkedProviders();
8941
+ const loadedProfiles = list.map((p) => {
8942
+ const info = getProviderDisplayInfo(p.provider);
8943
+ return { ...p, displayName: info.name, icon: info.icon };
8944
+ });
8945
+ let avatar = null;
8946
+ try {
8947
+ avatar = jwtTokenManager2.getAvatar() || null;
8948
+ } catch {
8949
+ avatar = null;
8950
+ }
8951
+ return { profiles: loadedProfiles, avatar };
8952
+ }
8953
+ function useLumiaPassportLinkedProfiles() {
8954
+ const qc = useQueryClient3();
8955
+ const address = useLumiaPassportSession((st) => st.address);
8956
+ const {
8957
+ data,
8958
+ isFetching: isLoading,
8959
+ error
8960
+ } = useQuery4({
8961
+ retry: false,
8962
+ enabled: !!address,
8963
+ queryKey: [LINKED_PROFILES_QUERY_KEY, address],
8964
+ queryFn: getLinkProfilesData
8965
+ });
8966
+ const { profiles = [], avatar = null } = data || {};
8967
+ const refresh = useCallback9(async () => {
8968
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
8969
+ }, [qc, address]);
8970
+ return { profiles, avatar, isLoading, error, refresh };
8971
+ }
8972
+
8888
8973
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
8889
- import { useQueryClient as useQueryClient4 } from "@tanstack/react-query";
8974
+ import { useQueryClient as useQueryClient5 } from "@tanstack/react-query";
8890
8975
  init_passkey2();
8891
8976
 
8892
8977
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
8893
8978
  init_lumiaPassport();
8894
8979
  init_projectId();
8895
8980
  import { useMutation as useMutation7 } from "@tanstack/react-query";
8896
- import { ChevronRight as ChevronRight3, Loader as Loader6, Mail as Mail4 } from "lucide-react";
8981
+ import { ChevronRight as ChevronRight3, Loader as Loader7, Mail as Mail4 } from "lucide-react";
8897
8982
 
8898
8983
  // src/internal/components/ManageWalletMenu/hooks/useStore.ts
8899
8984
  import { create as create4 } from "zustand";
@@ -8925,7 +9010,10 @@ var useManageWalletStore = create4((set) => ({
8925
9010
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
8926
9011
  import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
8927
9012
  function EmailForm() {
8928
- const { config, callbacks } = useLumiaPassportConfig();
9013
+ const {
9014
+ config: { current: config },
9015
+ callbacks
9016
+ } = useLumiaPassportConfig();
8929
9017
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
8930
9018
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
8931
9019
  const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
@@ -8999,19 +9087,19 @@ function EmailForm() {
8999
9087
  size: "large",
9000
9088
  disabled: !email || isLoading,
9001
9089
  onClick: () => onSendVerificationCode(),
9002
- children: isLoading ? /* @__PURE__ */ jsx43(Loader6, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx43(ChevronRight3, { className: "w-4 h-4" })
9090
+ children: isLoading ? /* @__PURE__ */ jsx43(Loader7, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx43(ChevronRight3, { className: "w-4 h-4" })
9003
9091
  }
9004
9092
  )
9005
9093
  ] });
9006
9094
  }
9007
9095
 
9008
9096
  // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9009
- import { useQuery as useQuery4 } from "@tanstack/react-query";
9097
+ import { useQuery as useQuery5 } from "@tanstack/react-query";
9010
9098
  init_common();
9011
9099
  var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9012
9100
  function useProvidersList() {
9013
- const walletAddress = useLumiaPassportSession().address;
9014
- return useQuery4({
9101
+ const walletAddress = useLumiaPassportSession((st) => st.address);
9102
+ return useQuery5({
9015
9103
  retry: false,
9016
9104
  enabled: !!walletAddress,
9017
9105
  queryKey: [PROVIDERS_QUERY_KEY, walletAddress],
@@ -9047,12 +9135,12 @@ function useSendVerificationCode() {
9047
9135
  }
9048
9136
 
9049
9137
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
9050
- import { useMutation as useMutation9, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
9138
+ import { useMutation as useMutation9, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
9051
9139
  init_email();
9052
9140
  function useVerifyCode() {
9053
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9054
- const qc = useQueryClient3();
9055
- const walletAddress = useLumiaPassportSession((st) => st.address);
9141
+ const { callbacks } = useLumiaPassportConfig();
9142
+ const qc = useQueryClient4();
9143
+ const address = useLumiaPassportSession((st) => st.address);
9056
9144
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9057
9145
  const {
9058
9146
  email,
@@ -9079,7 +9167,8 @@ function useVerifyCode() {
9079
9167
  return await verifyEmailLinkCode(email, code);
9080
9168
  },
9081
9169
  onSuccess: async () => {
9082
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9170
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9171
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9083
9172
  setProviderType(null);
9084
9173
  setEmail("");
9085
9174
  setEmailCode("");
@@ -9087,8 +9176,7 @@ function useVerifyCode() {
9087
9176
  setEmailCodeSentError("");
9088
9177
  setEmailStep("input");
9089
9178
  try {
9090
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9091
- notifyProvidersUpdate?.();
9179
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9092
9180
  } catch {
9093
9181
  }
9094
9182
  setIsLoading(false);
@@ -9115,9 +9203,9 @@ function normalizePasskeyLinkError(msg) {
9115
9203
  return msg;
9116
9204
  }
9117
9205
  function AddProvider() {
9118
- const qc = useQueryClient4();
9119
- const walletAddress = useLumiaPassportSession().address;
9120
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9206
+ const qc = useQueryClient5();
9207
+ const { callbacks } = useLumiaPassportConfig();
9208
+ const address = useLumiaPassportSession((st) => st.address);
9121
9209
  const {
9122
9210
  linkIsLoading,
9123
9211
  providerType,
@@ -9175,12 +9263,12 @@ function AddProvider() {
9175
9263
  userVerification: "preferred"
9176
9264
  }
9177
9265
  });
9178
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9266
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9267
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9179
9268
  try {
9180
9269
  callbacks?.onLumiaPassportUpdate?.({
9181
- providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress])
9270
+ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
9182
9271
  });
9183
- notifyProvidersUpdate?.();
9184
9272
  } catch {
9185
9273
  }
9186
9274
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9216,12 +9304,12 @@ function AddProvider() {
9216
9304
  userVerification: "preferred"
9217
9305
  }
9218
9306
  });
9219
- 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] });
9220
9309
  try {
9221
9310
  callbacks?.onLumiaPassportUpdate?.({
9222
- providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress])
9311
+ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
9223
9312
  });
9224
- notifyProvidersUpdate?.();
9225
9313
  } catch {
9226
9314
  }
9227
9315
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9252,7 +9340,9 @@ import { jsx as jsx45, jsxs as jsxs34 } from "react/jsx-runtime";
9252
9340
  function EmailNotConnectedWarning() {
9253
9341
  const providers = jwtTokenManager2.getProviders();
9254
9342
  const hasEmail = providers.includes("email");
9255
- const { config } = useLumiaPassportConfig();
9343
+ const {
9344
+ config: { current: config }
9345
+ } = useLumiaPassportConfig();
9256
9346
  const isShown = config.warnings?.emailNotConnectedWarning && !hasEmail;
9257
9347
  return /* @__PURE__ */ jsx45(AnimatePresence3, { mode: "wait", initial: false, children: isShown ? /* @__PURE__ */ jsx45(
9258
9348
  motion3.div,
@@ -9261,7 +9351,7 @@ function EmailNotConnectedWarning() {
9261
9351
  animate: { opacity: 1, height: "auto" },
9262
9352
  exit: { opacity: 0, height: 0 },
9263
9353
  transition: Y_ANIMATION_SETUP,
9264
- children: /* @__PURE__ */ jsxs34(Highlight, { className: "flex flex-col gap-[var(--l-pass-gap)] items-center text-center", children: [
9354
+ children: /* @__PURE__ */ jsxs34(Highlight, { type: "warning", className: "flex flex-col gap-[var(--l-pass-gap)] items-center text-center", children: [
9265
9355
  /* @__PURE__ */ jsxs34("span", { className: "flex items-center gap-[var(--l-pass-gap)] text-lg font-bold", children: [
9266
9356
  /* @__PURE__ */ jsx45(Mail5, { className: "w-5 h-5" }),
9267
9357
  "CONNECT EMAIL"
@@ -9273,13 +9363,16 @@ function EmailNotConnectedWarning() {
9273
9363
  }
9274
9364
 
9275
9365
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
9276
- import { useQueryClient as useQueryClient5 } from "@tanstack/react-query";
9366
+ import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
9277
9367
  import React11, { useEffect as useEffect16 } from "react";
9278
9368
  init_auth();
9279
9369
  function useLinkSocial() {
9280
- const qc = useQueryClient5();
9281
- const walletAddress = useLumiaPassportSession().address;
9282
- const { config, callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9370
+ const qc = useQueryClient6();
9371
+ const address = useLumiaPassportSession((st) => st.address);
9372
+ const {
9373
+ config: { current: config },
9374
+ callbacks
9375
+ } = useLumiaPassportConfig();
9283
9376
  const setPage = useLayoutDataStore((st) => st.setPage);
9284
9377
  const { providerType, linkIsLoading, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
9285
9378
  const handleLinkSocialProvider = React11.useCallback(
@@ -9314,10 +9407,10 @@ function useLinkSocial() {
9314
9407
  if (!result.success) {
9315
9408
  throw new Error(result.error || `${socialProvider.name || providerIdRaw} authentication failed`);
9316
9409
  }
9317
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9410
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9411
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9318
9412
  try {
9319
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9320
- notifyProvidersUpdate?.();
9413
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9321
9414
  } catch {
9322
9415
  }
9323
9416
  setProviderType(null);
@@ -9348,16 +9441,19 @@ function useLinkSocial() {
9348
9441
  }
9349
9442
 
9350
9443
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
9351
- import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
9352
- import { useCallback as useCallback9, useEffect as useEffect17, useState as useState7 } from "react";
9444
+ import { useQueryClient as useQueryClient7 } from "@tanstack/react-query";
9445
+ import { useCallback as useCallback10, useEffect as useEffect17, useState as useState7 } from "react";
9353
9446
  init_telegram2();
9354
9447
  function useLinkTelegram() {
9355
- const { config, callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9356
- const qc = useQueryClient6();
9357
- const walletAddress = useLumiaPassportSession((st) => st.address);
9448
+ const {
9449
+ config: { current: config },
9450
+ callbacks
9451
+ } = useLumiaPassportConfig();
9452
+ const qc = useQueryClient7();
9453
+ const address = useLumiaPassportSession((st) => st.address);
9358
9454
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
9359
9455
  const setPage = useLayoutDataStore((st) => st.setPage);
9360
- const handleLinkTelegram = useCallback9(async () => {
9456
+ const handleLinkTelegram = useCallback10(async () => {
9361
9457
  try {
9362
9458
  setLinkIsLoading(true);
9363
9459
  setLinkError("");
@@ -9383,10 +9479,10 @@ function useLinkTelegram() {
9383
9479
  }
9384
9480
  console.log("[ManageWallet] Linking Telegram with data:", user);
9385
9481
  await linkTelegram(user);
9386
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9482
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9483
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9387
9484
  try {
9388
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9389
- notifyProvidersUpdate?.();
9485
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9390
9486
  } catch {
9391
9487
  }
9392
9488
  setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -9492,7 +9588,9 @@ function getConfiguredProviders(config) {
9492
9588
  );
9493
9589
  }
9494
9590
  function ManageWalletMenu() {
9495
- const { config } = useLumiaPassportConfig();
9591
+ const {
9592
+ config: { current: config }
9593
+ } = useLumiaPassportConfig();
9496
9594
  const setPage = useLayoutDataStore((st) => st.setPage);
9497
9595
  const {
9498
9596
  providerType,
@@ -9515,7 +9613,7 @@ function ManageWalletMenu() {
9515
9613
  const used = [];
9516
9614
  const unused = [];
9517
9615
  POSSIBLE_PROVIDERS.forEach((provider, providerIdx) => {
9518
- if (!configuredProviders[provider]) return null;
9616
+ if (!configuredProviders[provider]) return;
9519
9617
  const Icon = PROVIDERS_META2[provider].icon;
9520
9618
  if (usedProviders[provider]) {
9521
9619
  used.push(
@@ -9595,7 +9693,7 @@ function ManageWalletMenu() {
9595
9693
  /* @__PURE__ */ jsx47(AlertTriangle3, { className: "w-4 h-4 shrink-0" }),
9596
9694
  /* @__PURE__ */ jsx47("span", { className: "block", children: providersError.message })
9597
9695
  ] }),
9598
- isProvidersLoading && /* @__PURE__ */ jsx47("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx47(Loader7, { className: "w-5 h-5 animate-spin" }) }),
9696
+ isProvidersLoading && /* @__PURE__ */ jsx47("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx47(Loader8, { className: "w-5 h-5 animate-spin" }) }),
9599
9697
  /* @__PURE__ */ jsx47(EmailNotConnectedWarning, {}),
9600
9698
  showCurrentProviders && renderProviders.map((node) => node),
9601
9699
  showExtraProvidersUi && /* @__PURE__ */ jsx47(AddProvider, {}),
@@ -9605,15 +9703,15 @@ function ManageWalletMenu() {
9605
9703
  }
9606
9704
 
9607
9705
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
9608
- import { useMutation as useMutation10, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
9609
- import { Key as Key7, Loader as Loader8 } from "lucide-react";
9706
+ import { useMutation as useMutation10, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
9707
+ import { Key as Key7, Loader as Loader9 } from "lucide-react";
9610
9708
  import { useState as useState8 } from "react";
9611
9709
  init_auth();
9612
9710
  import { jsx as jsx48, jsxs as jsxs37 } from "react/jsx-runtime";
9613
9711
  function UnlinkProviderMenu() {
9614
- const qc = useQueryClient7();
9615
- const walletAddress = useLumiaPassportSession().address;
9616
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
9712
+ const qc = useQueryClient8();
9713
+ const address = useLumiaPassportSession((st) => st.address);
9714
+ const { callbacks } = useLumiaPassportConfig();
9617
9715
  const setPage = useLayoutDataStore((st) => st.setPage);
9618
9716
  const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
9619
9717
  const [confirmInput, setConfirmInput] = useState8("");
@@ -9626,10 +9724,10 @@ function UnlinkProviderMenu() {
9626
9724
  await unlinkProvider(provider, externalId);
9627
9725
  },
9628
9726
  onSuccess: async () => {
9629
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, walletAddress] });
9727
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
9728
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9630
9729
  try {
9631
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, walletAddress]) });
9632
- notifyProvidersUpdate?.();
9730
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
9633
9731
  } catch {
9634
9732
  }
9635
9733
  setConfirmUnlink(null);
@@ -9679,7 +9777,7 @@ function UnlinkProviderMenu() {
9679
9777
  disabled: !!isProviderUnlinking || !confirmUnlink || confirmInput !== confirmUnlink.externalId,
9680
9778
  className: "w-full flex-1",
9681
9779
  children: [
9682
- isProviderUnlinking && /* @__PURE__ */ jsx48(Loader8, { className: "animate-spin h-4 w-4" }),
9780
+ isProviderUnlinking && /* @__PURE__ */ jsx48(Loader9, { className: "animate-spin h-4 w-4" }),
9683
9781
  isProviderUnlinking ? "Removing\u2026" : "Remove"
9684
9782
  ]
9685
9783
  }
@@ -9688,122 +9786,436 @@ function UnlinkProviderMenu() {
9688
9786
  ] });
9689
9787
  }
9690
9788
 
9691
- // src/internal/components/SecurityMenu/SecurityMenu.tsx
9692
- init_auth();
9693
- init_keyshare();
9694
- import {
9695
- AlertTriangle as AlertTriangle4,
9696
- ArrowLeft as ArrowLeft8,
9697
- CheckCircle2 as CheckCircle24,
9698
- Cloud as Cloud2,
9699
- HardDrive,
9700
- Laptop,
9701
- Loader as Loader9,
9702
- RefreshCw,
9703
- Server as Server3,
9704
- Shield,
9705
- Trash2 as Trash22
9706
- } from "lucide-react";
9707
- import { useCallback as useCallback10, useEffect as useEffect18, useState as useState9 } from "react";
9708
- init_vaultClient();
9709
- import { jsx as jsx49, jsxs as jsxs38 } from "react/jsx-runtime";
9710
- function SecurityMenu() {
9711
- const page = useLayoutDataStore((st) => st.page);
9712
- const setPage = useLayoutDataStore((st) => st.setPage);
9713
- const open = page === "security";
9714
- const userId = jwtTokenManager2.getUserId();
9715
- const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
9716
- const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
9717
- const [isRefreshing, setIsRefreshing] = useState9(false);
9718
- const [localInfo, setLocalInfo] = useState9(null);
9719
- const [recoveryCreatedAt, setRecoveryCreatedAt] = useState9(null);
9720
- const [recoveryBrowser, setRecoveryBrowser] = useState9(null);
9721
- const [recoveryUa, setRecoveryUa] = useState9(null);
9722
- const [recoveryDeviceId, setRecoveryDeviceId] = useState9(null);
9723
- const [recoveryDeviceName, setRecoveryDeviceName] = useState9(null);
9724
- const [recoveryCountry, setRecoveryCountry] = useState9(null);
9725
- const [hasServerBackup, setHasServerBackup] = useState9(false);
9726
- const [trustedApps, setTrustedApps] = useState9([]);
9727
- const [appToRemove, setAppToRemove] = useState9(null);
9728
- const fetchRecovery = useCallback10(async () => {
9729
- if (!userId) return;
9730
- try {
9731
- setIsRefreshing(true);
9732
- const keyshareInfo = await getKeyshareInfo(userId);
9733
- setLocalInfo(keyshareInfo);
9734
- const { getIframeManager: getIframeManager2 } = await Promise.resolve().then(() => (init_iframe_manager(), iframe_manager_exports));
9735
- try {
9736
- console.log("[SecurityModal] Loading trusted apps for user:", userId);
9737
- const iframeManager = getIframeManager2();
9738
- const apps = await iframeManager.getTrustedApps(userId);
9739
- console.log("[SecurityModal] Received trusted apps:", apps);
9740
- console.log("[SecurityModal] Trusted apps count:", apps?.length);
9741
- console.log("[SecurityModal] Setting trusted apps state with:", apps);
9742
- setTrustedApps(apps);
9743
- } catch (error) {
9744
- console.error("[SecurityModal] Failed to load trusted apps:", error);
9745
- setTrustedApps([]);
9746
- }
9747
- const stats = await getShareRecoveryStats();
9748
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
9749
- setHasServerBackup(!!hasRecoveryData);
9750
- const created = stats?.created;
9751
- setRecoveryCreatedAt(created?.at || null);
9752
- setRecoveryBrowser(created?.browser || null);
9753
- setRecoveryUa(created?.ua || null);
9754
- setRecoveryDeviceId(created?.deviceId || null);
9755
- setRecoveryDeviceName(created?.deviceName || null);
9756
- setRecoveryCountry(created?.country || null);
9757
- } finally {
9758
- setIsRefreshing(false);
9789
+ // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
9790
+ import { ArrowLeft as ArrowLeft8, Gem, Loader as Loader11, RefreshCw } from "lucide-react";
9791
+ import { useEffect as useEffect18, useRef as useRef9 } from "react";
9792
+
9793
+ // src/modules/assets.ts
9794
+ init_base();
9795
+ import React12 from "react";
9796
+ import { useBalance, useReadContract, useReadContracts } from "wagmi";
9797
+ import { formatUnits, erc20Abi } from "viem";
9798
+ var COMMON_TOKENS = [
9799
+ // Add real token addresses here when available
9800
+ // {
9801
+ // address: '0x....',
9802
+ // name: 'USD Coin',
9803
+ // symbol: 'USDC',
9804
+ // decimals: 6,
9805
+ // logo: 'https://...'
9806
+ // }
9807
+ ];
9808
+ function useAssets(address) {
9809
+ const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = useBalance({
9810
+ address,
9811
+ chainId: lumiaBeam.id,
9812
+ query: {
9813
+ enabled: !!address
9814
+ }
9815
+ });
9816
+ const tokenContracts = COMMON_TOKENS.map((token) => ({
9817
+ address: token.address,
9818
+ abi: erc20Abi,
9819
+ functionName: "balanceOf",
9820
+ args: [address],
9821
+ chainId: lumiaBeam.id
9822
+ }));
9823
+ const readContractsResult = useReadContracts({
9824
+ contracts: tokenContracts,
9825
+ query: {
9826
+ enabled: !!address && COMMON_TOKENS.length > 0
9827
+ }
9828
+ });
9829
+ const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
9830
+ const getAllAssets = () => {
9831
+ const assets = [];
9832
+ if (nativeBalance) {
9833
+ assets.push({
9834
+ type: "native",
9835
+ name: "Lumia",
9836
+ symbol: "LUMIA",
9837
+ balance: nativeBalance.value.toString(),
9838
+ formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
9839
+ decimals: 18
9840
+ });
9841
+ }
9842
+ if (tokenBalances && COMMON_TOKENS.length > 0) {
9843
+ tokenBalances.forEach((balance, index) => {
9844
+ const token = COMMON_TOKENS[index];
9845
+ if (balance.status === "success" && balance.result) {
9846
+ const balanceValue = balance.result;
9847
+ const formattedBalance = formatUnits(balanceValue, token.decimals);
9848
+ assets.push({
9849
+ type: "erc20",
9850
+ address: token.address,
9851
+ name: token.name,
9852
+ symbol: token.symbol,
9853
+ balance: balanceValue.toString(),
9854
+ formattedBalance: parseFloat(formattedBalance).toFixed(4),
9855
+ decimals: token.decimals,
9856
+ logo: token.logo
9857
+ });
9858
+ }
9859
+ });
9860
+ }
9861
+ return assets;
9862
+ };
9863
+ const getTokenBalance = (tokenAddress) => {
9864
+ const tokenIndex = COMMON_TOKENS.findIndex(
9865
+ (token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
9866
+ );
9867
+ if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
9868
+ return null;
9869
+ }
9870
+ const balance = tokenBalances[tokenIndex];
9871
+ const token = COMMON_TOKENS[tokenIndex];
9872
+ if (balance.status === "success" && balance.result) {
9873
+ const balanceValue = balance.result;
9874
+ const formattedBalance = formatUnits(balanceValue, token.decimals);
9875
+ return {
9876
+ address: token.address,
9877
+ name: token.name,
9878
+ symbol: token.symbol,
9879
+ decimals: token.decimals,
9880
+ balance: balanceValue.toString(),
9881
+ formattedBalance: parseFloat(formattedBalance).toFixed(4),
9882
+ logo: token.logo
9883
+ };
9759
9884
  }
9760
- }, [userId]);
9761
- useEffect18(() => {
9762
- if (open) fetchRecovery();
9763
- }, [open, fetchRecovery]);
9764
- const parseOS = (ua) => {
9765
- if (!ua) return null;
9766
- if (ua.includes("Mac OS X")) return "macOS";
9767
- if (ua.includes("Windows")) return "Windows";
9768
- if (ua.includes("Android")) return "Android";
9769
- if (ua.includes("Linux")) return "Linux";
9770
- if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
9771
9885
  return null;
9772
9886
  };
9773
- return /* @__PURE__ */ jsxs38("div", { className: "w-full p-4 flex flex-col gap-4", children: [
9774
- /* @__PURE__ */ jsx49("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2", children: [
9775
- /* @__PURE__ */ jsx49(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx49(ArrowLeft8, { className: "h-4 w-4" }) }),
9776
- /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2 font-semibold", children: [
9777
- /* @__PURE__ */ jsx49("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
9778
- /* @__PURE__ */ jsx49(Button, { variant: "ghost", size: "icon", title: "Refresh", onClick: fetchRecovery, children: isRefreshing ? /* @__PURE__ */ jsx49(Loader9, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx49(RefreshCw, { className: "h-4 w-4" }) })
9779
- ] })
9780
- ] }) }),
9781
- /* @__PURE__ */ jsxs38("div", { className: "grid grid-cols-3 gap-4", children: [
9782
- /* @__PURE__ */ jsxs38("div", { className: "space-y-2 text-center", children: [
9783
- /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-center gap-2", children: [
9784
- /* @__PURE__ */ jsx49(Cloud2, { className: "h-4 w-4" }),
9785
- /* @__PURE__ */ jsx49("span", { className: "text-sm font-medium", children: "Server" })
9786
- ] }),
9787
- /* @__PURE__ */ jsxs38(
9788
- "span",
9789
- {
9790
- className: cn(
9791
- "inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
9792
- serverHasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9887
+ const refreshBalances = async () => {
9888
+ await Promise.all([
9889
+ refetchNativeBalance(),
9890
+ refetchTokenBalances()
9891
+ ]);
9892
+ };
9893
+ return {
9894
+ nativeBalance,
9895
+ tokenBalances,
9896
+ assets: getAllAssets(),
9897
+ getTokenBalance,
9898
+ refreshBalances,
9899
+ isLoading: nativeBalanceLoading || tokenBalancesLoading,
9900
+ isConnected: !!address
9901
+ };
9902
+ }
9903
+ function useTokenInfo(tokenAddress) {
9904
+ const readContractsResult = useReadContracts({
9905
+ contracts: [
9906
+ { address: tokenAddress, abi: erc20Abi, functionName: "name", chainId: lumiaBeam.id },
9907
+ { address: tokenAddress, abi: erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
9908
+ { address: tokenAddress, abi: erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
9909
+ ]
9910
+ });
9911
+ const { data: tokenData, isLoading } = readContractsResult;
9912
+ if (!tokenData || isLoading) {
9913
+ return { isLoading, tokenInfo: null };
9914
+ }
9915
+ const [nameResult, symbolResult, decimalsResult] = tokenData;
9916
+ if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
9917
+ return {
9918
+ isLoading: false,
9919
+ tokenInfo: {
9920
+ name: nameResult.result,
9921
+ symbol: symbolResult.result,
9922
+ decimals: decimalsResult.result,
9923
+ address: tokenAddress
9924
+ }
9925
+ };
9926
+ }
9927
+ return { isLoading: false, tokenInfo: null };
9928
+ }
9929
+ function useTokenBalance(tokenAddress, userAddress) {
9930
+ const { data: balance, isLoading, refetch } = useReadContract({
9931
+ address: tokenAddress,
9932
+ abi: erc20Abi,
9933
+ functionName: "balanceOf",
9934
+ args: userAddress ? [userAddress] : void 0,
9935
+ chainId: lumiaBeam.id,
9936
+ query: {
9937
+ enabled: !!userAddress
9938
+ }
9939
+ });
9940
+ const { tokenInfo } = useTokenInfo(tokenAddress);
9941
+ const formattedBalance = React12.useMemo(() => {
9942
+ if (!balance || !tokenInfo) return "0";
9943
+ return formatUnits(balance, tokenInfo.decimals);
9944
+ }, [balance, tokenInfo]);
9945
+ return {
9946
+ balance,
9947
+ formattedBalance,
9948
+ tokenInfo,
9949
+ isLoading,
9950
+ refetch
9951
+ };
9952
+ }
9953
+
9954
+ // src/internal/components/PortfolioMenu/PortfolioItem.tsx
9955
+ init_base();
9956
+ import { useQuery as useQuery6 } from "@tanstack/react-query";
9957
+ import { Loader as Loader10 } from "lucide-react";
9958
+ import { Fragment as Fragment8, jsx as jsx49, jsxs as jsxs38 } from "react/jsx-runtime";
9959
+ var price16 = Intl.NumberFormat("en-US", { minimumFractionDigits: 16, maximumFractionDigits: 16 });
9960
+ function formatValue(price) {
9961
+ console.log("[---PRICE---]", price);
9962
+ if (!price) return /* @__PURE__ */ jsx49(Fragment8, { children: `0.00` });
9963
+ if (price < 0.01) {
9964
+ const strigified = price16.format(price);
9965
+ const absValue = parseInt(strigified.replace(/^0\./, "")).toString().slice(0, 2);
9966
+ const zeroQnt = strigified.replace(/^0\./, "").split("").findIndex((el) => +el > 0);
9967
+ return /* @__PURE__ */ jsxs38(Fragment8, { children: [
9968
+ `0.0`,
9969
+ /* @__PURE__ */ jsx49("sub", { className: "text-[10px]", children: zeroQnt }),
9970
+ absValue
9971
+ ] });
9972
+ }
9973
+ return /* @__PURE__ */ jsx49(Fragment8, { children: price.toFixed(2) });
9974
+ }
9975
+ function openInExplorer(address) {
9976
+ window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
9977
+ }
9978
+ async function getAssetRate(symbol) {
9979
+ const assetURL = `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.toUpperCase()}USDT`;
9980
+ const response = await fetch(assetURL);
9981
+ return await response.json();
9982
+ }
9983
+ var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
9984
+ function PortfolioItem(props) {
9985
+ const { address, asset } = props;
9986
+ const { data: assetRate, isLoading: isRateLoading } = useQuery6({
9987
+ retry: false,
9988
+ staleTime: 4 * 60 * 1e3,
9989
+ enabled: !!address && !!asset.symbol,
9990
+ queryKey: [ASSETS_RATES_QUERY_KEY, address, asset.symbol],
9991
+ queryFn: async () => await getAssetRate(asset.symbol)
9992
+ });
9993
+ return /* @__PURE__ */ jsxs38(
9994
+ "div",
9995
+ {
9996
+ className: cn(
9997
+ "group cursor-pointer",
9998
+ "w-full flex items-center gap-[var(--l-pass-gap)]",
9999
+ "hover:text-[var(--l-pass-fg-h)] transition-colors"
10000
+ ),
10001
+ onClick: () => openInExplorer(asset.address),
10002
+ children: [
10003
+ /* @__PURE__ */ jsx49(
10004
+ "div",
10005
+ {
10006
+ className: cn(
10007
+ "flex-none w-10 h-10 bg-[var(--l-pass-primary)] rounded-full flex items-center justify-center",
10008
+ "group-hover:opacity-60 transition-opacity"
10009
+ ),
10010
+ children: /* @__PURE__ */ jsx49("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) })
10011
+ }
10012
+ ),
10013
+ /* @__PURE__ */ jsxs38("div", { className: "w-full flex-1", children: [
10014
+ /* @__PURE__ */ jsxs38("div", { className: "w-full flex items-center justify-between text-xs", children: [
10015
+ /* @__PURE__ */ jsx49("span", { children: asset.name }),
10016
+ /* @__PURE__ */ jsx49("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" })
10017
+ ] }),
10018
+ /* @__PURE__ */ jsxs38("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: [
10019
+ /* @__PURE__ */ jsxs38("span", { children: [
10020
+ /* @__PURE__ */ jsx49("span", { children: formatValue(Number(asset.formattedBalance)) }),
10021
+ /* @__PURE__ */ jsx49("span", { children: " " + asset.symbol })
10022
+ ] }),
10023
+ isRateLoading && /* @__PURE__ */ jsx49(Loader10, { className: "h-4 w-4 animate-spin" }),
10024
+ !!assetRate?.price && /* @__PURE__ */ jsx49("span", { children: (Number(asset.formattedBalance) * Number(assetRate.price)).toLocaleString("en-US", {
10025
+ minimumFractionDigits: 2,
10026
+ maximumFractionDigits: 2,
10027
+ currency: "USD",
10028
+ style: "currency"
10029
+ }) })
10030
+ ] })
10031
+ ] })
10032
+ ]
10033
+ }
10034
+ );
10035
+ }
10036
+ {
10037
+ }
10038
+
10039
+ // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
10040
+ import { jsx as jsx50, jsxs as jsxs39 } from "react/jsx-runtime";
10041
+ function PortfolioMenu() {
10042
+ const setPage = useLayoutDataStore((st) => st.setPage);
10043
+ const assetsContainerListRef = useRef9(null);
10044
+ const assetsListRef = useRef9(null);
10045
+ const address = useLumiaPassportSession((st) => st.address);
10046
+ const { assets, refreshBalances, isLoading } = useAssets(address);
10047
+ useEffect18(() => {
10048
+ if (!assetsContainerListRef.current || !assetsListRef.current) return;
10049
+ if (assetsContainerListRef.current) {
10050
+ assetsContainerListRef.current.style.setProperty(
10051
+ "--l-pass-list-bd",
10052
+ assetsListRef.current.clientHeight >= MAX_LIST_HEIGHT ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
10053
+ // hide border if no scrollbar
10054
+ );
10055
+ assetsContainerListRef.current.style.setProperty(
10056
+ "--l-pass-list-scrollbar-pd-l",
10057
+ assetsListRef.current.clientHeight >= MAX_LIST_HEIGHT ? "4px" : "0px"
10058
+ // remove padding if no scrollbar
10059
+ );
10060
+ }
10061
+ }, []);
10062
+ return /* @__PURE__ */ jsxs39("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10063
+ /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10064
+ /* @__PURE__ */ jsx50(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx50(ArrowLeft8, { className: "h-4 w-4" }) }),
10065
+ /* @__PURE__ */ jsx50("span", { className: "text-xl font-semibold", children: "Your Assets" }),
10066
+ /* @__PURE__ */ jsx50(Button, { title: "Refresh balances", variant: "ghost", size: "icon", onClick: refreshBalances, disabled: isLoading, children: isLoading ? /* @__PURE__ */ jsx50(Loader11, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx50(RefreshCw, { className: "h-4 w-4" }) })
10067
+ ] }),
10068
+ /* @__PURE__ */ jsxs39(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
10069
+ isLoading && /* @__PURE__ */ jsxs39("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
10070
+ /* @__PURE__ */ jsx50(Loader11, { className: "h-5 w-5 animate-spin" }),
10071
+ /* @__PURE__ */ jsx50("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
10072
+ ] }),
10073
+ !isLoading && assets.length === 0 && /* @__PURE__ */ jsxs39("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
10074
+ /* @__PURE__ */ jsx50(Gem, { className: "w-12 h-12 mb-2" }),
10075
+ /* @__PURE__ */ jsx50("p", { children: "No assets found" })
10076
+ ] }),
10077
+ !isLoading && assets.length > 0 && /* @__PURE__ */ jsx50(
10078
+ "div",
10079
+ {
10080
+ ref: assetsContainerListRef,
10081
+ className: "list-scrollbar-y relative border-t border-b border-[var(--l-pass-list-bd)]",
10082
+ children: /* @__PURE__ */ jsx50(
10083
+ "div",
10084
+ {
10085
+ ref: assetsListRef,
10086
+ className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]",
10087
+ children: assets.map((asset, index) => /* @__PURE__ */ jsx50(
10088
+ PortfolioItem,
10089
+ {
10090
+ address,
10091
+ asset
10092
+ },
10093
+ `${asset.type}-${asset.address || "native"}-${index}`
10094
+ ))
10095
+ }
10096
+ )
10097
+ }
10098
+ )
10099
+ ] })
10100
+ ] });
10101
+ }
10102
+
10103
+ // src/internal/components/SecurityMenu/SecurityMenu.tsx
10104
+ init_auth();
10105
+ init_keyshare();
10106
+ import {
10107
+ AlertTriangle as AlertTriangle4,
10108
+ ArrowLeft as ArrowLeft9,
10109
+ CheckCircle2 as CheckCircle24,
10110
+ Cloud as Cloud2,
10111
+ HardDrive,
10112
+ Laptop,
10113
+ Loader as Loader12,
10114
+ RefreshCw as RefreshCw2,
10115
+ Server as Server3,
10116
+ Shield,
10117
+ Trash2 as Trash22
10118
+ } from "lucide-react";
10119
+ import { useCallback as useCallback11, useEffect as useEffect19, useState as useState9 } from "react";
10120
+ init_vaultClient();
10121
+ import { jsx as jsx51, jsxs as jsxs40 } from "react/jsx-runtime";
10122
+ function SecurityMenu() {
10123
+ const page = useLayoutDataStore((st) => st.page);
10124
+ const setPage = useLayoutDataStore((st) => st.setPage);
10125
+ const open = page === "security";
10126
+ const userId = jwtTokenManager2.getUserId();
10127
+ const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
10128
+ const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
10129
+ const [isRefreshing, setIsRefreshing] = useState9(false);
10130
+ const [localInfo, setLocalInfo] = useState9(null);
10131
+ const [recoveryCreatedAt, setRecoveryCreatedAt] = useState9(null);
10132
+ const [recoveryBrowser, setRecoveryBrowser] = useState9(null);
10133
+ const [recoveryUa, setRecoveryUa] = useState9(null);
10134
+ const [recoveryDeviceId, setRecoveryDeviceId] = useState9(null);
10135
+ const [recoveryDeviceName, setRecoveryDeviceName] = useState9(null);
10136
+ const [recoveryCountry, setRecoveryCountry] = useState9(null);
10137
+ const [hasServerBackup, setHasServerBackup] = useState9(false);
10138
+ const [trustedApps, setTrustedApps] = useState9([]);
10139
+ const [appToRemove, setAppToRemove] = useState9(null);
10140
+ const fetchRecovery = useCallback11(async () => {
10141
+ if (!userId) return;
10142
+ try {
10143
+ setIsRefreshing(true);
10144
+ const keyshareInfo = await getKeyshareInfo(userId);
10145
+ setLocalInfo(keyshareInfo);
10146
+ const { getIframeManager: getIframeManager2 } = await Promise.resolve().then(() => (init_iframe_manager(), iframe_manager_exports));
10147
+ try {
10148
+ console.log("[SecurityModal] Loading trusted apps for user:", userId);
10149
+ const iframeManager = getIframeManager2();
10150
+ const apps = await iframeManager.getTrustedApps(userId);
10151
+ console.log("[SecurityModal] Received trusted apps:", apps);
10152
+ console.log("[SecurityModal] Trusted apps count:", apps?.length);
10153
+ console.log("[SecurityModal] Setting trusted apps state with:", apps);
10154
+ setTrustedApps(apps);
10155
+ } catch (error) {
10156
+ console.error("[SecurityModal] Failed to load trusted apps:", error);
10157
+ setTrustedApps([]);
10158
+ }
10159
+ const stats = await getShareRecoveryStats();
10160
+ const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
10161
+ setHasServerBackup(!!hasRecoveryData);
10162
+ const created = stats?.created;
10163
+ setRecoveryCreatedAt(created?.at || null);
10164
+ setRecoveryBrowser(created?.browser || null);
10165
+ setRecoveryUa(created?.ua || null);
10166
+ setRecoveryDeviceId(created?.deviceId || null);
10167
+ setRecoveryDeviceName(created?.deviceName || null);
10168
+ setRecoveryCountry(created?.country || null);
10169
+ } finally {
10170
+ setIsRefreshing(false);
10171
+ }
10172
+ }, [userId]);
10173
+ useEffect19(() => {
10174
+ if (open) fetchRecovery();
10175
+ }, [open, fetchRecovery]);
10176
+ const parseOS = (ua) => {
10177
+ if (!ua) return null;
10178
+ if (ua.includes("Mac OS X")) return "macOS";
10179
+ if (ua.includes("Windows")) return "Windows";
10180
+ if (ua.includes("Android")) return "Android";
10181
+ if (ua.includes("Linux")) return "Linux";
10182
+ if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
10183
+ return null;
10184
+ };
10185
+ return /* @__PURE__ */ jsxs40("div", { className: "w-full p-4 flex flex-col gap-4", children: [
10186
+ /* @__PURE__ */ jsx51("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-2", children: [
10187
+ /* @__PURE__ */ jsx51(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx51(ArrowLeft9, { className: "h-4 w-4" }) }),
10188
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-2 font-semibold", children: [
10189
+ /* @__PURE__ */ jsx51("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
10190
+ /* @__PURE__ */ jsx51(Button, { variant: "ghost", size: "icon", title: "Refresh", onClick: fetchRecovery, children: isRefreshing ? /* @__PURE__ */ jsx51(Loader12, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx51(RefreshCw2, { className: "h-4 w-4" }) })
10191
+ ] })
10192
+ ] }) }),
10193
+ /* @__PURE__ */ jsxs40("div", { className: "grid grid-cols-3 gap-4", children: [
10194
+ /* @__PURE__ */ jsxs40("div", { className: "space-y-2 text-center", children: [
10195
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center justify-center gap-2", children: [
10196
+ /* @__PURE__ */ jsx51(Cloud2, { className: "h-4 w-4" }),
10197
+ /* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Server" })
10198
+ ] }),
10199
+ /* @__PURE__ */ jsxs40(
10200
+ "span",
10201
+ {
10202
+ className: cn(
10203
+ "inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
10204
+ serverHasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9793
10205
  ),
9794
10206
  children: [
9795
- serverHasKeyshare ? /* @__PURE__ */ jsx49(CheckCircle24, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx49(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
10207
+ serverHasKeyshare ? /* @__PURE__ */ jsx51(CheckCircle24, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
9796
10208
  serverHasKeyshare ? "Ready" : "Missing"
9797
10209
  ]
9798
10210
  }
9799
10211
  )
9800
10212
  ] }),
9801
- /* @__PURE__ */ jsxs38("div", { className: "space-y-2 text-center", children: [
9802
- /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-center gap-2", children: [
9803
- /* @__PURE__ */ jsx49(Laptop, { className: "h-4 w-4" }),
9804
- /* @__PURE__ */ jsx49("span", { className: "text-sm font-medium", children: "Local" })
10213
+ /* @__PURE__ */ jsxs40("div", { className: "space-y-2 text-center", children: [
10214
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center justify-center gap-2", children: [
10215
+ /* @__PURE__ */ jsx51(Laptop, { className: "h-4 w-4" }),
10216
+ /* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Local" })
9805
10217
  ] }),
9806
- /* @__PURE__ */ jsxs38(
10218
+ /* @__PURE__ */ jsxs40(
9807
10219
  "span",
9808
10220
  {
9809
10221
  className: cn(
@@ -9811,18 +10223,18 @@ function SecurityMenu() {
9811
10223
  localInfo?.hasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9812
10224
  ),
9813
10225
  children: [
9814
- localInfo?.hasKeyshare ? /* @__PURE__ */ jsx49(CheckCircle24, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx49(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
10226
+ localInfo?.hasKeyshare ? /* @__PURE__ */ jsx51(CheckCircle24, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
9815
10227
  localInfo?.hasKeyshare ? "Ready" : "Missing"
9816
10228
  ]
9817
10229
  }
9818
10230
  )
9819
10231
  ] }),
9820
- /* @__PURE__ */ jsxs38("div", { className: "space-y-2 text-center", children: [
9821
- /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-center gap-2", children: [
9822
- /* @__PURE__ */ jsx49(Shield, { className: "h-4 w-4" }),
9823
- /* @__PURE__ */ jsx49("span", { className: "text-sm font-medium", children: "Vault" })
10232
+ /* @__PURE__ */ jsxs40("div", { className: "space-y-2 text-center", children: [
10233
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center justify-center gap-2", children: [
10234
+ /* @__PURE__ */ jsx51(Shield, { className: "h-4 w-4" }),
10235
+ /* @__PURE__ */ jsx51("span", { className: "text-sm font-medium", children: "Vault" })
9824
10236
  ] }),
9825
- /* @__PURE__ */ jsxs38(
10237
+ /* @__PURE__ */ jsxs40(
9826
10238
  "span",
9827
10239
  {
9828
10240
  className: cn(
@@ -9830,101 +10242,101 @@ function SecurityMenu() {
9830
10242
  hasServerBackup ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
9831
10243
  ),
9832
10244
  children: [
9833
- hasServerBackup ? /* @__PURE__ */ jsx49(CheckCircle24, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx49(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
10245
+ hasServerBackup ? /* @__PURE__ */ jsx51(CheckCircle24, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx51(AlertTriangle4, { className: "h-4 w-4 mr-1" }),
9834
10246
  hasServerBackup ? "Ready" : "None"
9835
10247
  ]
9836
10248
  }
9837
10249
  )
9838
10250
  ] })
9839
10251
  ] }),
9840
- /* @__PURE__ */ jsxs38(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
9841
- localInfo?.hasKeyshare && /* @__PURE__ */ jsxs38("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
9842
- localInfo.ownerAddress && /* @__PURE__ */ jsxs38("div", { children: [
9843
- /* @__PURE__ */ jsx49("span", { children: "Owner: " }),
9844
- /* @__PURE__ */ jsx49("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
10252
+ /* @__PURE__ */ jsxs40(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
10253
+ localInfo?.hasKeyshare && /* @__PURE__ */ jsxs40("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10254
+ localInfo.ownerAddress && /* @__PURE__ */ jsxs40("div", { children: [
10255
+ /* @__PURE__ */ jsx51("span", { children: "Owner: " }),
10256
+ /* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
9845
10257
  ] }),
9846
- typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs38("div", { children: [
9847
- /* @__PURE__ */ jsx49("span", { children: "Size: " }),
9848
- /* @__PURE__ */ jsx49("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
10258
+ typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs40("div", { children: [
10259
+ /* @__PURE__ */ jsx51("span", { children: "Size: " }),
10260
+ /* @__PURE__ */ jsx51("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
9849
10261
  ] }),
9850
- localInfo.sessionId && /* @__PURE__ */ jsxs38("div", { children: [
9851
- /* @__PURE__ */ jsx49("span", { children: "Session: " }),
9852
- /* @__PURE__ */ jsx49("span", { className: "font-mono break-all", children: localInfo.sessionId })
10262
+ localInfo.sessionId && /* @__PURE__ */ jsxs40("div", { children: [
10263
+ /* @__PURE__ */ jsx51("span", { children: "Session: " }),
10264
+ /* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: localInfo.sessionId })
9853
10265
  ] })
9854
10266
  ] }),
9855
- /* @__PURE__ */ jsxs38("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
9856
- backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-1", children: [
9857
- /* @__PURE__ */ jsx49(Server3, { className: "h-2.5 w-2.5" }),
9858
- /* @__PURE__ */ jsxs38("span", { children: [
10267
+ /* @__PURE__ */ jsxs40("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10268
+ backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-1", children: [
10269
+ /* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
10270
+ /* @__PURE__ */ jsxs40("span", { children: [
9859
10271
  "Server: ",
9860
10272
  new Date(backup.server.lastBackup).toLocaleString()
9861
10273
  ] })
9862
10274
  ] }),
9863
- !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-1", children: [
9864
- /* @__PURE__ */ jsx49(Server3, { className: "h-2.5 w-2.5" }),
9865
- /* @__PURE__ */ jsxs38("span", { children: [
10275
+ !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-1", children: [
10276
+ /* @__PURE__ */ jsx51(Server3, { className: "h-2.5 w-2.5" }),
10277
+ /* @__PURE__ */ jsxs40("span", { children: [
9866
10278
  "Server: ",
9867
10279
  new Date(recoveryCreatedAt).toLocaleString()
9868
10280
  ] })
9869
10281
  ] }),
9870
- backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-1", children: [
9871
- /* @__PURE__ */ jsx49(Cloud2, { className: "h-2.5 w-2.5" }),
9872
- /* @__PURE__ */ jsxs38("span", { children: [
10282
+ backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-1", children: [
10283
+ /* @__PURE__ */ jsx51(Cloud2, { className: "h-2.5 w-2.5" }),
10284
+ /* @__PURE__ */ jsxs40("span", { children: [
9873
10285
  "Cloud: ",
9874
10286
  new Date(backup.cloud.lastBackup).toLocaleString()
9875
10287
  ] })
9876
10288
  ] }),
9877
- backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-1", children: [
9878
- /* @__PURE__ */ jsx49(HardDrive, { className: "h-2.5 w-2.5" }),
9879
- /* @__PURE__ */ jsxs38("span", { children: [
10289
+ backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-1", children: [
10290
+ /* @__PURE__ */ jsx51(HardDrive, { className: "h-2.5 w-2.5" }),
10291
+ /* @__PURE__ */ jsxs40("span", { children: [
9880
10292
  "Local: ",
9881
10293
  new Date(backup.local.lastBackup).toLocaleString()
9882
10294
  ] })
9883
10295
  ] })
9884
10296
  ] }),
9885
- (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ jsxs38("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
9886
- /* @__PURE__ */ jsx49("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: "Device Information:" }),
9887
- recoveryCreatedAt && /* @__PURE__ */ jsxs38("div", { children: [
10297
+ (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ jsxs40("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10298
+ /* @__PURE__ */ jsx51("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: "Device Information:" }),
10299
+ recoveryCreatedAt && /* @__PURE__ */ jsxs40("div", { children: [
9888
10300
  "Created: ",
9889
10301
  new Date(recoveryCreatedAt).toLocaleString(),
9890
10302
  " "
9891
10303
  ] }),
9892
- recoveryCountry && /* @__PURE__ */ jsxs38("div", { children: [
10304
+ recoveryCountry && /* @__PURE__ */ jsxs40("div", { children: [
9893
10305
  "Country: ",
9894
10306
  recoveryCountry
9895
10307
  ] }),
9896
- recoveryBrowser && /* @__PURE__ */ jsxs38("div", { children: [
10308
+ recoveryBrowser && /* @__PURE__ */ jsxs40("div", { children: [
9897
10309
  "Browser: ",
9898
10310
  recoveryBrowser
9899
10311
  ] }),
9900
- parseOS(recoveryUa) && /* @__PURE__ */ jsxs38("div", { children: [
10312
+ parseOS(recoveryUa) && /* @__PURE__ */ jsxs40("div", { children: [
9901
10313
  "OS: ",
9902
10314
  parseOS(recoveryUa)
9903
10315
  ] }),
9904
- recoveryDeviceName && /* @__PURE__ */ jsxs38("div", { children: [
10316
+ recoveryDeviceName && /* @__PURE__ */ jsxs40("div", { children: [
9905
10317
  "Device: ",
9906
10318
  recoveryDeviceName
9907
10319
  ] }),
9908
- recoveryDeviceId && /* @__PURE__ */ jsxs38("div", { children: [
10320
+ recoveryDeviceId && /* @__PURE__ */ jsxs40("div", { children: [
9909
10321
  "Device ID: ",
9910
- /* @__PURE__ */ jsx49("span", { className: "font-mono break-all", children: recoveryDeviceId })
10322
+ /* @__PURE__ */ jsx51("span", { className: "font-mono break-all", children: recoveryDeviceId })
9911
10323
  ] })
9912
10324
  ] }),
9913
- trustedApps.length > 0 && /* @__PURE__ */ jsxs38("div", { className: "w-full space-y-2", children: [
9914
- /* @__PURE__ */ jsx49("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
9915
- /* @__PURE__ */ jsx49("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs38(
10325
+ trustedApps.length > 0 && /* @__PURE__ */ jsxs40("div", { className: "w-full space-y-2", children: [
10326
+ /* @__PURE__ */ jsx51("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
10327
+ /* @__PURE__ */ jsx51("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs40(
9916
10328
  "div",
9917
10329
  {
9918
10330
  className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
9919
10331
  children: [
9920
- /* @__PURE__ */ jsxs38("div", { className: "flex-1 min-w-0", children: [
9921
- /* @__PURE__ */ jsx49("div", { className: "font-medium", children: new URL(app.origin).hostname }),
9922
- /* @__PURE__ */ jsxs38("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
10332
+ /* @__PURE__ */ jsxs40("div", { className: "flex-1 min-w-0", children: [
10333
+ /* @__PURE__ */ jsx51("div", { className: "font-medium", children: new URL(app.origin).hostname }),
10334
+ /* @__PURE__ */ jsxs40("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
9923
10335
  "Trusted: ",
9924
10336
  new Date(app.trustedAt).toLocaleDateString()
9925
10337
  ] })
9926
10338
  ] }),
9927
- /* @__PURE__ */ jsx49(
10339
+ /* @__PURE__ */ jsx51(
9928
10340
  Button,
9929
10341
  {
9930
10342
  variant: "ghost",
@@ -9936,7 +10348,7 @@ function SecurityMenu() {
9936
10348
  origin: app.origin,
9937
10349
  hostname: new URL(app.origin).hostname
9938
10350
  }),
9939
- children: /* @__PURE__ */ jsx49(Trash22, { className: "h-3 w-3" })
10351
+ children: /* @__PURE__ */ jsx51(Trash22, { className: "h-3 w-3" })
9940
10352
  }
9941
10353
  )
9942
10354
  ]
@@ -9949,240 +10361,83 @@ function SecurityMenu() {
9949
10361
  }
9950
10362
 
9951
10363
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
9952
- import { AlertCircle as AlertCircle3, ArrowLeft as ArrowLeft9, CheckCircle2 as CheckCircle25, Loader as Loader10, Wallet } from "lucide-react";
9953
- import { useEffect as useEffect19, useState as useState11 } from "react";
10364
+ import { AlertCircle as AlertCircle3, ArrowLeft as ArrowLeft10, CheckCircle2 as CheckCircle25, Loader as Loader13, Wallet } from "lucide-react";
10365
+ import { useEffect as useEffect20, useState as useState11 } from "react";
9954
10366
  import { isAddress as isAddress2 } from "viem";
9955
10367
  import { useBalance as useBalance2 } from "wagmi";
9956
10368
 
9957
10369
  // src/hooks/useSendTransaction.ts
10370
+ import { useCallback as useCallback12, useState as useState10 } from "react";
10371
+ import { isAddress, parseEther as parseEther2 } from "viem";
9958
10372
  init_account();
9959
- import { useState as useState10, useCallback as useCallback11 } from "react";
9960
- import { parseEther as parseEther2, isAddress } from "viem";
9961
10373
  function useSendTransaction() {
9962
- const { session, address } = useLumiaPassportSession();
10374
+ const session = useLumiaPassportSession((st) => st.session);
10375
+ const address = useLumiaPassportSession((st) => st.address);
9963
10376
  const [isLoading, setIsLoading] = useState10(false);
9964
10377
  const [error, setError] = useState10(null);
9965
10378
  const [userOpHash, setUserOpHash] = useState10(null);
9966
- const sendTransaction = useCallback11(async (params) => {
9967
- if (!session || !address) {
9968
- setError("No active session");
9969
- return null;
9970
- }
9971
- if (!isAddress(params.to)) {
9972
- setError("Invalid recipient address");
9973
- return null;
9974
- }
9975
- const value = parseFloat(params.value);
9976
- if (isNaN(value) || value < 0) {
9977
- setError("Invalid amount");
9978
- return null;
9979
- }
9980
- setIsLoading(true);
9981
- setError(null);
9982
- setUserOpHash(null);
9983
- try {
9984
- const valueWei = parseEther2(params.value).toString();
9985
- const hash = await sendUserOperation(
9986
- session,
9987
- params.to,
9988
- valueWei,
9989
- params.data || "0x",
9990
- "standard",
9991
- "v0.7"
9992
- );
9993
- setUserOpHash(hash);
9994
- return hash;
9995
- } catch (err) {
9996
- const errorMessage = err instanceof Error ? err.message : "Transaction failed";
9997
- setError(errorMessage);
9998
- return null;
9999
- } finally {
10000
- setIsLoading(false);
10001
- }
10002
- }, [session, address]);
10003
- const reset = useCallback11(() => {
10004
- setError(null);
10005
- setUserOpHash(null);
10006
- setIsLoading(false);
10007
- }, []);
10008
- return {
10009
- sendTransaction,
10010
- isLoading,
10011
- error,
10012
- userOpHash,
10013
- reset
10014
- };
10015
- }
10016
-
10017
- // src/modules/assets.ts
10018
- init_base();
10019
- import React12 from "react";
10020
- import { useBalance, useReadContract, useReadContracts } from "wagmi";
10021
- import { formatUnits, erc20Abi } from "viem";
10022
- var COMMON_TOKENS = [
10023
- // Add real token addresses here when available
10024
- // {
10025
- // address: '0x....',
10026
- // name: 'USD Coin',
10027
- // symbol: 'USDC',
10028
- // decimals: 6,
10029
- // logo: 'https://...'
10030
- // }
10031
- ];
10032
- function useAssets(address) {
10033
- const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = useBalance({
10034
- address,
10035
- chainId: lumiaBeam.id,
10036
- query: {
10037
- enabled: !!address
10038
- }
10039
- });
10040
- const tokenContracts = COMMON_TOKENS.map((token) => ({
10041
- address: token.address,
10042
- abi: erc20Abi,
10043
- functionName: "balanceOf",
10044
- args: [address],
10045
- chainId: lumiaBeam.id
10046
- }));
10047
- const readContractsResult = useReadContracts({
10048
- contracts: tokenContracts,
10049
- query: {
10050
- enabled: !!address && COMMON_TOKENS.length > 0
10051
- }
10052
- });
10053
- const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
10054
- const getAllAssets = () => {
10055
- const assets = [];
10056
- if (nativeBalance) {
10057
- assets.push({
10058
- type: "native",
10059
- name: "Lumia",
10060
- symbol: "LUMIA",
10061
- balance: nativeBalance.value.toString(),
10062
- formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
10063
- decimals: 18
10064
- });
10065
- }
10066
- if (tokenBalances && COMMON_TOKENS.length > 0) {
10067
- tokenBalances.forEach((balance, index) => {
10068
- const token = COMMON_TOKENS[index];
10069
- if (balance.status === "success" && balance.result) {
10070
- const balanceValue = balance.result;
10071
- const formattedBalance = formatUnits(balanceValue, token.decimals);
10072
- assets.push({
10073
- type: "erc20",
10074
- address: token.address,
10075
- name: token.name,
10076
- symbol: token.symbol,
10077
- balance: balanceValue.toString(),
10078
- formattedBalance: parseFloat(formattedBalance).toFixed(4),
10079
- decimals: token.decimals,
10080
- logo: token.logo
10081
- });
10082
- }
10083
- });
10084
- }
10085
- return assets;
10086
- };
10087
- const getTokenBalance = (tokenAddress) => {
10088
- const tokenIndex = COMMON_TOKENS.findIndex(
10089
- (token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
10090
- );
10091
- if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
10092
- return null;
10093
- }
10094
- const balance = tokenBalances[tokenIndex];
10095
- const token = COMMON_TOKENS[tokenIndex];
10096
- if (balance.status === "success" && balance.result) {
10097
- const balanceValue = balance.result;
10098
- const formattedBalance = formatUnits(balanceValue, token.decimals);
10099
- return {
10100
- address: token.address,
10101
- name: token.name,
10102
- symbol: token.symbol,
10103
- decimals: token.decimals,
10104
- balance: balanceValue.toString(),
10105
- formattedBalance: parseFloat(formattedBalance).toFixed(4),
10106
- logo: token.logo
10107
- };
10108
- }
10109
- return null;
10110
- };
10111
- const refreshBalances = async () => {
10112
- await Promise.all([
10113
- refetchNativeBalance(),
10114
- refetchTokenBalances()
10115
- ]);
10116
- };
10117
- return {
10118
- nativeBalance,
10119
- tokenBalances,
10120
- assets: getAllAssets(),
10121
- getTokenBalance,
10122
- refreshBalances,
10123
- isLoading: nativeBalanceLoading || tokenBalancesLoading,
10124
- isConnected: !!address
10125
- };
10126
- }
10127
- function useTokenInfo(tokenAddress) {
10128
- const readContractsResult = useReadContracts({
10129
- contracts: [
10130
- { address: tokenAddress, abi: erc20Abi, functionName: "name", chainId: lumiaBeam.id },
10131
- { address: tokenAddress, abi: erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
10132
- { address: tokenAddress, abi: erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
10133
- ]
10134
- });
10135
- const { data: tokenData, isLoading } = readContractsResult;
10136
- if (!tokenData || isLoading) {
10137
- return { isLoading, tokenInfo: null };
10138
- }
10139
- const [nameResult, symbolResult, decimalsResult] = tokenData;
10140
- if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
10141
- return {
10142
- isLoading: false,
10143
- tokenInfo: {
10144
- name: nameResult.result,
10145
- symbol: symbolResult.result,
10146
- decimals: decimalsResult.result,
10147
- address: tokenAddress
10379
+ const sendTransaction = useCallback12(
10380
+ async (params) => {
10381
+ if (!session || !address) {
10382
+ setError("No active session");
10383
+ return null;
10148
10384
  }
10149
- };
10150
- }
10151
- return { isLoading: false, tokenInfo: null };
10152
- }
10153
- function useTokenBalance(tokenAddress, userAddress) {
10154
- const { data: balance, isLoading, refetch } = useReadContract({
10155
- address: tokenAddress,
10156
- abi: erc20Abi,
10157
- functionName: "balanceOf",
10158
- args: userAddress ? [userAddress] : void 0,
10159
- chainId: lumiaBeam.id,
10160
- query: {
10161
- enabled: !!userAddress
10162
- }
10163
- });
10164
- const { tokenInfo } = useTokenInfo(tokenAddress);
10165
- const formattedBalance = React12.useMemo(() => {
10166
- if (!balance || !tokenInfo) return "0";
10167
- return formatUnits(balance, tokenInfo.decimals);
10168
- }, [balance, tokenInfo]);
10385
+ if (!isAddress(params.to)) {
10386
+ setError("Invalid recipient address");
10387
+ return null;
10388
+ }
10389
+ const value = parseFloat(params.value);
10390
+ if (isNaN(value) || value < 0) {
10391
+ setError("Invalid amount");
10392
+ return null;
10393
+ }
10394
+ setIsLoading(true);
10395
+ setError(null);
10396
+ setUserOpHash(null);
10397
+ try {
10398
+ const valueWei = parseEther2(params.value).toString();
10399
+ const hash = await sendUserOperation(
10400
+ session,
10401
+ params.to,
10402
+ valueWei,
10403
+ params.data || "0x",
10404
+ "standard",
10405
+ "v0.7"
10406
+ );
10407
+ setUserOpHash(hash);
10408
+ return hash;
10409
+ } catch (err) {
10410
+ const errorMessage = err instanceof Error ? err.message : "Transaction failed";
10411
+ setError(errorMessage);
10412
+ return null;
10413
+ } finally {
10414
+ setIsLoading(false);
10415
+ }
10416
+ },
10417
+ [session, address]
10418
+ );
10419
+ const reset = useCallback12(() => {
10420
+ setError(null);
10421
+ setUserOpHash(null);
10422
+ setIsLoading(false);
10423
+ }, []);
10169
10424
  return {
10170
- balance,
10171
- formattedBalance,
10172
- tokenInfo,
10425
+ sendTransaction,
10173
10426
  isLoading,
10174
- refetch
10427
+ error,
10428
+ userOpHash,
10429
+ reset
10175
10430
  };
10176
10431
  }
10177
10432
 
10178
10433
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
10179
10434
  init_base();
10180
- import { Fragment as Fragment8, jsx as jsx50, jsxs as jsxs39 } from "react/jsx-runtime";
10435
+ import { Fragment as Fragment9, jsx as jsx52, jsxs as jsxs41 } from "react/jsx-runtime";
10181
10436
  function SendLumiaMenu() {
10182
10437
  const page = useLayoutDataStore((st) => st.page);
10183
10438
  const setPage = useLayoutDataStore((st) => st.setPage);
10184
10439
  const open = page === "send";
10185
- const { address } = useLumiaPassportSession();
10440
+ const address = useLumiaPassportSession((st) => st.address);
10186
10441
  const { assets } = useAssets(address);
10187
10442
  const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
10188
10443
  const { refetch: refetchBalance } = useBalance2({
@@ -10195,7 +10450,7 @@ function SendLumiaMenu() {
10195
10450
  const [validationError, setValidationError] = useState11(null);
10196
10451
  const nativeAsset = assets.find((a) => a.type === "native");
10197
10452
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
10198
- useEffect19(() => {
10453
+ useEffect20(() => {
10199
10454
  if (open) {
10200
10455
  setTxStep("input");
10201
10456
  setValidationError(null);
@@ -10250,15 +10505,15 @@ function SendLumiaMenu() {
10250
10505
  const maxAmount = Math.max(0, balance - 1e-3);
10251
10506
  setAmount(maxAmount.toFixed(6));
10252
10507
  };
10253
- return /* @__PURE__ */ jsxs39("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10254
- /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10255
- txStep === "input" && /* @__PURE__ */ jsx50(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx50(ArrowLeft9, { className: "h-4 w-4" }) }),
10256
- /* @__PURE__ */ jsx50("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
10508
+ return /* @__PURE__ */ jsxs41("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10509
+ /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10510
+ txStep === "input" && /* @__PURE__ */ jsx52(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx52(ArrowLeft10, { className: "h-4 w-4" }) }),
10511
+ /* @__PURE__ */ jsx52("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
10257
10512
  ] }),
10258
- txStep === "input" && /* @__PURE__ */ jsxs39(Fragment8, { children: [
10259
- /* @__PURE__ */ jsxs39("div", { className: "w-full flex flex-col gap-2", children: [
10260
- /* @__PURE__ */ jsx50("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
10261
- /* @__PURE__ */ jsx50(
10513
+ txStep === "input" && /* @__PURE__ */ jsxs41(Fragment9, { children: [
10514
+ /* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col gap-2", children: [
10515
+ /* @__PURE__ */ jsx52("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
10516
+ /* @__PURE__ */ jsx52(
10262
10517
  Input,
10263
10518
  {
10264
10519
  Icon: Wallet,
@@ -10269,17 +10524,17 @@ function SendLumiaMenu() {
10269
10524
  }
10270
10525
  )
10271
10526
  ] }),
10272
- /* @__PURE__ */ jsxs39("div", { className: "w-full flex flex-col gap-2", children: [
10273
- /* @__PURE__ */ jsxs39("div", { className: "flex justify-between items-center", children: [
10274
- /* @__PURE__ */ jsx50("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
10275
- /* @__PURE__ */ jsxs39("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
10527
+ /* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col gap-2", children: [
10528
+ /* @__PURE__ */ jsxs41("div", { className: "flex justify-between items-center", children: [
10529
+ /* @__PURE__ */ jsx52("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
10530
+ /* @__PURE__ */ jsxs41("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
10276
10531
  "Balance: ",
10277
10532
  balance.toFixed(4),
10278
10533
  " LUMIA"
10279
10534
  ] })
10280
10535
  ] }),
10281
- /* @__PURE__ */ jsxs39("div", { className: "w-full relative", children: [
10282
- /* @__PURE__ */ jsx50(
10536
+ /* @__PURE__ */ jsxs41("div", { className: "w-full relative", children: [
10537
+ /* @__PURE__ */ jsx52(
10283
10538
  Input,
10284
10539
  {
10285
10540
  Icon: LumiaIcon,
@@ -10290,7 +10545,7 @@ function SendLumiaMenu() {
10290
10545
  step: "0.000001"
10291
10546
  }
10292
10547
  ),
10293
- /* @__PURE__ */ jsx50(
10548
+ /* @__PURE__ */ jsx52(
10294
10549
  Button,
10295
10550
  {
10296
10551
  onClick: handleMaxAmount,
@@ -10303,65 +10558,65 @@ function SendLumiaMenu() {
10303
10558
  )
10304
10559
  ] })
10305
10560
  ] }),
10306
- (validationError || error) && /* @__PURE__ */ jsxs39("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: [
10307
- /* @__PURE__ */ jsx50(AlertCircle3, { className: "h-4 w-4" }),
10308
- /* @__PURE__ */ jsx50("span", { className: "text-sm", children: validationError || error })
10561
+ (validationError || error) && /* @__PURE__ */ jsxs41("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: [
10562
+ /* @__PURE__ */ jsx52(AlertCircle3, { className: "h-4 w-4" }),
10563
+ /* @__PURE__ */ jsx52("span", { className: "text-sm", children: validationError || error })
10309
10564
  ] }),
10310
- /* @__PURE__ */ jsx50(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
10565
+ /* @__PURE__ */ jsx52(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
10311
10566
  ] }),
10312
- txStep === "confirm" && /* @__PURE__ */ jsxs39(Fragment8, { children: [
10313
- /* @__PURE__ */ jsxs39("div", { className: "bg-gray-50 rounded-lg p-4", children: [
10314
- /* @__PURE__ */ jsx50("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
10315
- /* @__PURE__ */ jsxs39("div", { className: "space-y-2 text-sm", children: [
10316
- /* @__PURE__ */ jsxs39("div", { className: "flex justify-between", children: [
10317
- /* @__PURE__ */ jsx50("span", { children: "To:" }),
10318
- /* @__PURE__ */ jsx50("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
10567
+ txStep === "confirm" && /* @__PURE__ */ jsxs41(Fragment9, { children: [
10568
+ /* @__PURE__ */ jsxs41("div", { className: "bg-gray-50 rounded-lg p-4", children: [
10569
+ /* @__PURE__ */ jsx52("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
10570
+ /* @__PURE__ */ jsxs41("div", { className: "space-y-2 text-sm", children: [
10571
+ /* @__PURE__ */ jsxs41("div", { className: "flex justify-between", children: [
10572
+ /* @__PURE__ */ jsx52("span", { children: "To:" }),
10573
+ /* @__PURE__ */ jsx52("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
10319
10574
  ] }),
10320
- /* @__PURE__ */ jsxs39("div", { className: "flex justify-between", children: [
10321
- /* @__PURE__ */ jsx50("span", { children: "Amount:" }),
10322
- /* @__PURE__ */ jsxs39("span", { className: `font-semibold`, children: [
10575
+ /* @__PURE__ */ jsxs41("div", { className: "flex justify-between", children: [
10576
+ /* @__PURE__ */ jsx52("span", { children: "Amount:" }),
10577
+ /* @__PURE__ */ jsxs41("span", { className: `font-semibold`, children: [
10323
10578
  amount,
10324
10579
  " LUMIA"
10325
10580
  ] })
10326
10581
  ] }),
10327
- /* @__PURE__ */ jsxs39("div", { className: "flex justify-between", children: [
10328
- /* @__PURE__ */ jsx50("span", { children: "Network:" }),
10329
- /* @__PURE__ */ jsx50("span", { children: "Lumia Beam" })
10582
+ /* @__PURE__ */ jsxs41("div", { className: "flex justify-between", children: [
10583
+ /* @__PURE__ */ jsx52("span", { children: "Network:" }),
10584
+ /* @__PURE__ */ jsx52("span", { children: "Lumia Beam" })
10330
10585
  ] })
10331
10586
  ] })
10332
10587
  ] }),
10333
- /* @__PURE__ */ jsxs39("div", { className: "flex gap-2", children: [
10334
- /* @__PURE__ */ jsx50(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
10335
- /* @__PURE__ */ jsxs39(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
10336
- isLoading && /* @__PURE__ */ jsx50(Loader10, { className: "h-4 w-4 animate-spin" }),
10588
+ /* @__PURE__ */ jsxs41("div", { className: "flex gap-2", children: [
10589
+ /* @__PURE__ */ jsx52(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
10590
+ /* @__PURE__ */ jsxs41(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
10591
+ isLoading && /* @__PURE__ */ jsx52(Loader13, { className: "h-4 w-4 animate-spin" }),
10337
10592
  "Confirm"
10338
10593
  ] })
10339
10594
  ] })
10340
10595
  ] }),
10341
- txStep === "pending" && /* @__PURE__ */ jsxs39("div", { className: "py-8 text-center space-y-4", children: [
10342
- /* @__PURE__ */ jsx50(Loader10, { className: "h-12 w-12 animate-spin mx-auto" }),
10343
- /* @__PURE__ */ jsxs39("div", { children: [
10344
- /* @__PURE__ */ jsx50("span", { className: "block font-medium", children: "Transaction Pending" }),
10345
- /* @__PURE__ */ jsx50("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
10596
+ txStep === "pending" && /* @__PURE__ */ jsxs41("div", { className: "py-8 text-center space-y-4", children: [
10597
+ /* @__PURE__ */ jsx52(Loader13, { className: "h-12 w-12 animate-spin mx-auto" }),
10598
+ /* @__PURE__ */ jsxs41("div", { children: [
10599
+ /* @__PURE__ */ jsx52("span", { className: "block font-medium", children: "Transaction Pending" }),
10600
+ /* @__PURE__ */ jsx52("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
10346
10601
  ] })
10347
10602
  ] }),
10348
- txStep === "success" && userOpHash && /* @__PURE__ */ jsxs39(Fragment8, { children: [
10349
- /* @__PURE__ */ jsxs39("div", { className: "text-center py-4", children: [
10350
- /* @__PURE__ */ jsx50(CheckCircle25, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
10351
- /* @__PURE__ */ jsx50("p", { className: "font-medium", children: "Transaction Sent!" }),
10352
- /* @__PURE__ */ jsx50("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
10603
+ txStep === "success" && userOpHash && /* @__PURE__ */ jsxs41(Fragment9, { children: [
10604
+ /* @__PURE__ */ jsxs41("div", { className: "text-center py-4", children: [
10605
+ /* @__PURE__ */ jsx52(CheckCircle25, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
10606
+ /* @__PURE__ */ jsx52("p", { className: "font-medium", children: "Transaction Sent!" }),
10607
+ /* @__PURE__ */ jsx52("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
10353
10608
  ] }),
10354
- /* @__PURE__ */ jsx50(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
10609
+ /* @__PURE__ */ jsx52(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
10355
10610
  ] })
10356
10611
  ] });
10357
10612
  }
10358
10613
 
10359
10614
  // src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
10360
- import { ArrowLeft as ArrowLeft10, CheckCircle2 as CheckCircle26, Copy as Copy2, Loader as Loader11 } from "lucide-react";
10615
+ import { ArrowLeft as ArrowLeft11, CheckCircle2 as CheckCircle26, Copy as Copy2, Loader as Loader14 } from "lucide-react";
10361
10616
  import QRCode from "qrcode";
10362
- import { useEffect as useEffect20, useState as useState12 } from "react";
10617
+ import { useEffect as useEffect21, useState as useState12 } from "react";
10363
10618
  init_clients();
10364
- import { Fragment as Fragment9, jsx as jsx51, jsxs as jsxs40 } from "react/jsx-runtime";
10619
+ import { Fragment as Fragment10, jsx as jsx53, jsxs as jsxs42 } from "react/jsx-runtime";
10365
10620
  function ReceiveLumiaMenu() {
10366
10621
  const page = useLayoutDataStore((st) => st.page);
10367
10622
  const setPage = useLayoutDataStore((st) => st.setPage);
@@ -10369,7 +10624,7 @@ function ReceiveLumiaMenu() {
10369
10624
  const { address } = useLumiaPassportSession();
10370
10625
  const [qrCodeUrl, setQrCodeUrl] = useState12("");
10371
10626
  const [copied, setCopied] = useState12(false);
10372
- useEffect20(() => {
10627
+ useEffect21(() => {
10373
10628
  if (open && address) {
10374
10629
  QRCode.toDataURL(address, {
10375
10630
  width: 200,
@@ -10392,41 +10647,42 @@ function ReceiveLumiaMenu() {
10392
10647
  console.error("Failed to copy address:", error);
10393
10648
  }
10394
10649
  };
10395
- return /* @__PURE__ */ jsxs40("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10396
- /* @__PURE__ */ jsxs40("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
10397
- /* @__PURE__ */ jsx51(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx51(ArrowLeft10, { className: "h-4 w-4" }) }),
10398
- /* @__PURE__ */ jsx51("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
10650
+ return /* @__PURE__ */ jsxs42("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10651
+ /* @__PURE__ */ jsxs42("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
10652
+ /* @__PURE__ */ jsx53(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx53(ArrowLeft11, { className: "h-4 w-4" }) }),
10653
+ /* @__PURE__ */ jsx53("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
10399
10654
  ] }),
10400
- /* @__PURE__ */ jsxs40(Highlight, { className: "text-center", type: "warning", children: [
10401
- /* @__PURE__ */ jsx51("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
10402
- /* @__PURE__ */ jsx51("span", { className: "block w-full", children: "Ensure sender is on the same network" })
10655
+ /* @__PURE__ */ jsxs42(Highlight, { className: "text-center", type: "warning", children: [
10656
+ /* @__PURE__ */ jsx53("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
10657
+ /* @__PURE__ */ jsx53("span", { className: "block w-full", children: "Ensure sender is on the same network" })
10403
10658
  ] }),
10404
- /* @__PURE__ */ jsx51("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ jsx51("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ jsx51(Loader11, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
10405
- /* @__PURE__ */ jsxs40(Highlight, { type: "info", children: [
10406
- /* @__PURE__ */ jsx51("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
10407
- /* @__PURE__ */ jsx51(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ jsxs40(Fragment9, { children: [
10408
- /* @__PURE__ */ jsx51(CheckCircle26, { className: "h-4 w-4" }),
10409
- /* @__PURE__ */ jsx51("span", { children: "Copied!" })
10410
- ] }) : /* @__PURE__ */ jsxs40(Fragment9, { children: [
10411
- /* @__PURE__ */ jsx51(Copy2, { className: "h-4 w-4" }),
10412
- /* @__PURE__ */ jsx51("span", { children: "Copy Address" })
10659
+ /* @__PURE__ */ jsx53("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ jsx53("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ jsx53(Loader14, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
10660
+ /* @__PURE__ */ jsxs42(Highlight, { type: "info", children: [
10661
+ /* @__PURE__ */ jsx53("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
10662
+ /* @__PURE__ */ jsx53(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ jsxs42(Fragment10, { children: [
10663
+ /* @__PURE__ */ jsx53(CheckCircle26, { className: "h-4 w-4" }),
10664
+ /* @__PURE__ */ jsx53("span", { children: "Copied!" })
10665
+ ] }) : /* @__PURE__ */ jsxs42(Fragment10, { children: [
10666
+ /* @__PURE__ */ jsx53(Copy2, { className: "h-4 w-4" }),
10667
+ /* @__PURE__ */ jsx53("span", { children: "Copy Address" })
10413
10668
  ] }) })
10414
10669
  ] }),
10415
- /* @__PURE__ */ jsx51("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx51("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
10670
+ /* @__PURE__ */ jsx53("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx53("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
10416
10671
  ] });
10417
10672
  }
10418
10673
 
10419
10674
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10420
- import { ArrowLeft as ArrowLeft11 } from "lucide-react";
10675
+ import { ArrowLeft as ArrowLeft12 } from "lucide-react";
10676
+ import { useEffect as useEffect22 } from "react";
10421
10677
 
10422
10678
  // src/internal/components/SettingsMenu/constants.ts
10423
10679
  import { ArrowLeftRight, DatabaseBackup as DatabaseBackup2, LockKeyhole, UsersRound } from "lucide-react";
10424
10680
 
10425
10681
  // src/internal/assets/KycIcon.tsx
10426
- import { jsx as jsx52 } from "react/jsx-runtime";
10682
+ import { jsx as jsx54 } from "react/jsx-runtime";
10427
10683
  function KycIcon(props) {
10428
10684
  const { width = "24", height = "24", ...rest } = props;
10429
- return /* @__PURE__ */ jsx52("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx52(
10685
+ return /* @__PURE__ */ jsx54("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx54(
10430
10686
  "path",
10431
10687
  {
10432
10688
  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",
@@ -10445,19 +10701,21 @@ var NAV_BUTTONS = [
10445
10701
  ];
10446
10702
 
10447
10703
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10448
- import { jsx as jsx53, jsxs as jsxs41 } from "react/jsx-runtime";
10704
+ import { jsx as jsx55, jsxs as jsxs43 } from "react/jsx-runtime";
10449
10705
  function SettingsMenu() {
10450
10706
  const address = useLumiaPassportSession((st) => st.address);
10451
10707
  const setPage = useLayoutDataStore((st) => st.setPage);
10452
10708
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
10709
+ const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
10710
+ useEffect22(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
10453
10711
  const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
10454
10712
  const highlightedKeys = settingsNotifications.map((n) => n.target);
10455
- return /* @__PURE__ */ jsxs41("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10456
- /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10457
- /* @__PURE__ */ jsx53(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx53(ArrowLeft11, { className: "h-4 w-4" }) }),
10458
- /* @__PURE__ */ jsx53("span", { className: "text-xl font-semibold", children: "Wallet Details" })
10713
+ return /* @__PURE__ */ jsxs43("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10714
+ /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10715
+ /* @__PURE__ */ jsx55(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx55(ArrowLeft12, { className: "h-4 w-4" }) }),
10716
+ /* @__PURE__ */ jsx55("span", { className: "text-xl font-semibold", children: "Wallet Details" })
10459
10717
  ] }),
10460
- /* @__PURE__ */ jsx53("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ jsxs41(
10718
+ /* @__PURE__ */ jsx55("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ jsxs43(
10461
10719
  Button,
10462
10720
  {
10463
10721
  variant: "outline",
@@ -10470,8 +10728,8 @@ function SettingsMenu() {
10470
10728
  highlightedKeys.includes(id) && "animate-glow-warning"
10471
10729
  ),
10472
10730
  children: [
10473
- /* @__PURE__ */ jsx53(Icon, { className: "w-4 h-4" }),
10474
- /* @__PURE__ */ jsx53("span", { children: name })
10731
+ /* @__PURE__ */ jsx55(Icon, { className: "w-4 h-4" }),
10732
+ /* @__PURE__ */ jsx55("span", { children: name })
10475
10733
  ]
10476
10734
  },
10477
10735
  id
@@ -10480,15 +10738,15 @@ function SettingsMenu() {
10480
10738
  }
10481
10739
 
10482
10740
  // src/internal/components/TermsOfService.tsx
10483
- import { jsx as jsx54 } from "react/jsx-runtime";
10741
+ import { jsx as jsx56 } from "react/jsx-runtime";
10484
10742
  function TermsOfService() {
10485
- return /* @__PURE__ */ jsx54("div", { className: "w-full p-4 flex flex-col gap-4", children: /* @__PURE__ */ jsx54("span", { className: "prose text-sm", children: "By using Lumia Passport you agree to our terms." }) });
10743
+ return /* @__PURE__ */ jsx56("div", { className: "w-full p-4 flex flex-col gap-4", children: /* @__PURE__ */ jsx56("span", { className: "prose text-sm", children: "By using Lumia Passport you agree to our terms." }) });
10486
10744
  }
10487
10745
 
10488
10746
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
10489
- import { useQuery as useQuery5, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
10490
- import { Activity, ArrowLeft as ArrowLeft12, Loader as Loader12, RefreshCw as RefreshCw2, XCircle as XCircle2 } from "lucide-react";
10491
- import { useCallback as useCallback12, useState as useState13 } from "react";
10747
+ import { useQuery as useQuery7, useQueryClient as useQueryClient9 } from "@tanstack/react-query";
10748
+ import { Activity, ArrowLeft as ArrowLeft13, Loader as Loader15, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
10749
+ import { useCallback as useCallback13, useState as useState13 } from "react";
10492
10750
 
10493
10751
  // src/internal/components/TransactionsMenu/api.ts
10494
10752
  init_base();
@@ -10797,7 +11055,7 @@ var parseValue = (value) => {
10797
11055
  return 0n;
10798
11056
  }
10799
11057
  };
10800
- var formatValue = (value, decimals = 18) => {
11058
+ var formatValue2 = (value, decimals = 18) => {
10801
11059
  const amount = parseValue(value);
10802
11060
  if (amount === 0n) return "0";
10803
11061
  if (decimals <= 0) {
@@ -10813,7 +11071,7 @@ var formatValue = (value, decimals = 18) => {
10813
11071
  const trimmed = fractionStr.slice(0, Math.min(6, fractionStr.length));
10814
11072
  return `${whole.toString()}.${trimmed}`;
10815
11073
  };
10816
- var openInExplorer = (txHash) => {
11074
+ var openInExplorer2 = (txHash) => {
10817
11075
  const explorerUrl = getExplorerUrl();
10818
11076
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
10819
11077
  };
@@ -10826,24 +11084,24 @@ var formatTimestamp = (timestampMs) => {
10826
11084
  };
10827
11085
 
10828
11086
  // src/internal/components/TransactionsMenu/TransactionsGroup.tsx
10829
- import { jsx as jsx55, jsxs as jsxs42 } from "react/jsx-runtime";
10830
- var getStatusIcon = (status) => status === "ok" ? /* @__PURE__ */ jsx55(CheckCircle27, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ jsx55(XCircle, { className: "w-4 h-4 text-[var(--l-pass-error)]" });
10831
- var getTransactionIcon = (direction) => direction === "in" ? /* @__PURE__ */ jsx55(ArrowDownRight, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ jsx55(ArrowUpRight, { className: "w-4 h-4 text-[var(--l-pass-info)]" });
11087
+ import { jsx as jsx57, jsxs as jsxs44 } from "react/jsx-runtime";
11088
+ var getStatusIcon = (status) => status === "ok" ? /* @__PURE__ */ jsx57(CheckCircle27, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ jsx57(XCircle, { className: "w-4 h-4 text-[var(--l-pass-error)]" });
11089
+ var getTransactionIcon = (direction) => direction === "in" ? /* @__PURE__ */ jsx57(ArrowDownRight, { className: "w-4 h-4 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ jsx57(ArrowUpRight, { className: "w-4 h-4 text-[var(--l-pass-info)]" });
10832
11090
  function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
10833
11091
  const internalSymbol = internal.assetSymbol || assetSymbol;
10834
11092
  const internalDecimals = internal.decimals ?? assetDecimals;
10835
- return /* @__PURE__ */ jsxs42("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
10836
- /* @__PURE__ */ jsxs42("div", { className: "flex gap-2 items-center justify-between", children: [
10837
- /* @__PURE__ */ jsx55("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
10838
- /* @__PURE__ */ jsxs42("span", { children: [
10839
- formatValue(internal.value, internalDecimals),
11093
+ return /* @__PURE__ */ jsxs44("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
11094
+ /* @__PURE__ */ jsxs44("div", { className: "flex gap-2 items-center justify-between", children: [
11095
+ /* @__PURE__ */ jsx57("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
11096
+ /* @__PURE__ */ jsxs44("span", { children: [
11097
+ formatValue2(internal.value, internalDecimals),
10840
11098
  " ",
10841
11099
  internalSymbol
10842
11100
  ] })
10843
11101
  ] }),
10844
- /* @__PURE__ */ jsxs42("div", { className: "flex gap-2 items-center justify-between", children: [
10845
- /* @__PURE__ */ jsx55("span", { children: internal.direction === "in" ? "From" : "To" }),
10846
- /* @__PURE__ */ jsx55("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
11102
+ /* @__PURE__ */ jsxs44("div", { className: "flex gap-2 items-center justify-between", children: [
11103
+ /* @__PURE__ */ jsx57("span", { children: internal.direction === "in" ? "From" : "To" }),
11104
+ /* @__PURE__ */ jsx57("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
10847
11105
  ] })
10848
11106
  ] });
10849
11107
  }
@@ -10854,22 +11112,22 @@ function TransactionsGroup(props) {
10854
11112
  const assetSymbol = parent.assetSymbol || "LUMIA";
10855
11113
  const assetDecimals = parent.decimals ?? 18;
10856
11114
  const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
10857
- return /* @__PURE__ */ jsxs42(
11115
+ return /* @__PURE__ */ jsxs44(
10858
11116
  "div",
10859
11117
  {
10860
- onClick: () => openInExplorer(parent.parentHash),
11118
+ onClick: () => openInExplorer2(parent.parentHash),
10861
11119
  className: cn(
10862
11120
  "rounded-[var(--l-pass-el-bdrs)] p-2 transition-colors cursor-pointer border border-[var(--l-pass-bd)]",
10863
11121
  "bg-[var(--l-pass-secondary)] hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
10864
11122
  ),
10865
11123
  children: [
10866
- /* @__PURE__ */ jsxs42("div", { className: "flex items-center justify-between gap-2", children: [
10867
- /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-2", children: [
11124
+ /* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between gap-2", children: [
11125
+ /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
10868
11126
  getTransactionIcon(parent.direction),
10869
- /* @__PURE__ */ jsx55("span", { className: "font-medium", children: isIncoming ? "Received" : "Sent" }),
11127
+ /* @__PURE__ */ jsx57("span", { className: "font-medium", children: isIncoming ? "Received" : "Sent" }),
10870
11128
  getStatusIcon(parent.status)
10871
11129
  ] }),
10872
- parent.badgeLabel && /* @__PURE__ */ jsx55(
11130
+ parent.badgeLabel && /* @__PURE__ */ jsx57(
10873
11131
  "span",
10874
11132
  {
10875
11133
  className: cn(
@@ -10880,39 +11138,39 @@ function TransactionsGroup(props) {
10880
11138
  }
10881
11139
  )
10882
11140
  ] }),
10883
- /* @__PURE__ */ jsx55("span", { className: "block w-full leading-4 mb-1 text-xs text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) }),
10884
- /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0 text-sm", children: [
10885
- /* @__PURE__ */ jsxs42("div", { className: "flex justify-between", children: [
10886
- /* @__PURE__ */ jsx55("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: isIncoming ? "From:" : "To:" }),
10887
- /* @__PURE__ */ jsxs42("span", { className: "font-mono", children: [
11141
+ /* @__PURE__ */ jsx57("span", { className: "block w-full leading-4 mb-1 text-xs text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) }),
11142
+ /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-0 text-sm", children: [
11143
+ /* @__PURE__ */ jsxs44("div", { className: "flex justify-between", children: [
11144
+ /* @__PURE__ */ jsx57("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: isIncoming ? "From:" : "To:" }),
11145
+ /* @__PURE__ */ jsxs44("span", { className: "font-mono", children: [
10888
11146
  parent.counterpartyName || formatAddress2(parent.counterparty),
10889
- parent.counterpartyIsContract && /* @__PURE__ */ jsx55("span", { className: "text-xs text-[var(--l-pass-info)] ml-1", children: "(Contract)" })
11147
+ parent.counterpartyIsContract && /* @__PURE__ */ jsx57("span", { className: "text-xs text-[var(--l-pass-info)] ml-1", children: "(Contract)" })
10890
11148
  ] })
10891
11149
  ] }),
10892
- /* @__PURE__ */ jsxs42("div", { className: "flex justify-between", children: [
10893
- /* @__PURE__ */ jsx55("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Value:" }),
10894
- /* @__PURE__ */ jsxs42("span", { className: "font-semibold", children: [
10895
- formatValue(parent.value, assetDecimals),
11150
+ /* @__PURE__ */ jsxs44("div", { className: "flex justify-between", children: [
11151
+ /* @__PURE__ */ jsx57("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Value:" }),
11152
+ /* @__PURE__ */ jsxs44("span", { className: "font-semibold", children: [
11153
+ formatValue2(parent.value, assetDecimals),
10896
11154
  " ",
10897
11155
  assetSymbol
10898
11156
  ] })
10899
11157
  ] }),
10900
- /* @__PURE__ */ jsxs42("div", { className: "flex justify-between", children: [
10901
- /* @__PURE__ */ jsx55("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Block:" }),
10902
- /* @__PURE__ */ jsx55("span", { className: "font-mono", children: parent.blockNumber ? `#${parent.blockNumber}` : "-" })
11158
+ /* @__PURE__ */ jsxs44("div", { className: "flex justify-between", children: [
11159
+ /* @__PURE__ */ jsx57("span", { className: "text-xs leading-5 text-[var(--l-pass-fg-muted)]", children: "Block:" }),
11160
+ /* @__PURE__ */ jsx57("span", { className: "font-mono", children: parent.blockNumber ? `#${parent.blockNumber}` : "-" })
10903
11161
  ] }),
10904
- parent.method && /* @__PURE__ */ jsxs42("div", { className: "flex justify-between", children: [
10905
- /* @__PURE__ */ jsx55("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Method:" }),
10906
- /* @__PURE__ */ jsx55("span", { className: "text-[var(--l-pass-info)] text-xs", children: parent.method })
11162
+ parent.method && /* @__PURE__ */ jsxs44("div", { className: "flex justify-between", children: [
11163
+ /* @__PURE__ */ jsx57("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Method:" }),
11164
+ /* @__PURE__ */ jsx57("span", { className: "text-[var(--l-pass-info)] text-xs", children: parent.method })
10907
11165
  ] })
10908
11166
  ] }),
10909
- internalsToRender.length > 0 && /* @__PURE__ */ jsxs42(
11167
+ internalsToRender.length > 0 && /* @__PURE__ */ jsxs44(
10910
11168
  "div",
10911
11169
  {
10912
11170
  className: "mt-4 rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
10913
11171
  onClick: (event) => event.stopPropagation(),
10914
11172
  children: [
10915
- /* @__PURE__ */ jsxs42(
11173
+ /* @__PURE__ */ jsxs44(
10916
11174
  Button,
10917
11175
  {
10918
11176
  variant: "ghost",
@@ -10920,16 +11178,16 @@ function TransactionsGroup(props) {
10920
11178
  className: "w-full justify-between",
10921
11179
  onClick: () => onToggleExpanded(group.id),
10922
11180
  children: [
10923
- /* @__PURE__ */ jsxs42("span", { children: [
11181
+ /* @__PURE__ */ jsxs44("span", { children: [
10924
11182
  "View internal calls (",
10925
11183
  internalsToRender.length,
10926
11184
  ")"
10927
11185
  ] }),
10928
- /* @__PURE__ */ jsx55("span", { children: expanded ? "Hide" : "Show" })
11186
+ /* @__PURE__ */ jsx57("span", { children: expanded ? "Hide" : "Show" })
10929
11187
  ]
10930
11188
  }
10931
11189
  ),
10932
- expanded && /* @__PURE__ */ jsx55("div", { className: "px-3 pb-3 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx55(
11190
+ expanded && /* @__PURE__ */ jsx57("div", { className: "px-3 pb-3 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx57(
10933
11191
  InternalTransaction,
10934
11192
  {
10935
11193
  internal,
@@ -10947,9 +11205,9 @@ function TransactionsGroup(props) {
10947
11205
  }
10948
11206
 
10949
11207
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
10950
- import { jsx as jsx56, jsxs as jsxs43 } from "react/jsx-runtime";
11208
+ import { jsx as jsx58, jsxs as jsxs45 } from "react/jsx-runtime";
10951
11209
  function TransactionsMenu() {
10952
- const qc = useQueryClient8();
11210
+ const qc = useQueryClient9();
10953
11211
  const address = useLumiaPassportSession((st) => st.address);
10954
11212
  const page = useLayoutDataStore((st) => st.page);
10955
11213
  const setPage = useLayoutDataStore((st) => st.setPage);
@@ -10959,22 +11217,22 @@ function TransactionsMenu() {
10959
11217
  isLoading: isTxHistoryLoading,
10960
11218
  isFetching: isTxHistoryFetching,
10961
11219
  error: txHistoryError
10962
- } = useQuery5({
11220
+ } = useQuery7({
10963
11221
  retry: false,
10964
11222
  enabled: !!address && page === "transactions",
10965
11223
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
10966
11224
  queryFn: () => getTransactionsListQuery(address)
10967
11225
  });
10968
- const refreshTxHistory = useCallback12(
11226
+ const refreshTxHistory = useCallback13(
10969
11227
  () => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
10970
11228
  [qc, address]
10971
11229
  );
10972
11230
  const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
10973
- return /* @__PURE__ */ jsxs43("div", { className: "w-full p-4 flex flex-col gap-4", children: [
10974
- /* @__PURE__ */ jsx56("div", { className: "w-full", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-2", children: [
10975
- /* @__PURE__ */ jsx56(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx56(ArrowLeft12, { className: "h-4 w-4" }) }),
10976
- /* @__PURE__ */ jsx56("span", { className: "text-xl font-semibold", children: "Transaction History" }),
10977
- /* @__PURE__ */ jsx56(
11231
+ return /* @__PURE__ */ jsxs45("div", { className: "w-full p-4 flex flex-col gap-4", children: [
11232
+ /* @__PURE__ */ jsx58("div", { className: "w-full", children: /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-2", children: [
11233
+ /* @__PURE__ */ jsx58(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx58(ArrowLeft13, { className: "h-4 w-4" }) }),
11234
+ /* @__PURE__ */ jsx58("span", { className: "text-xl font-semibold", children: "Transaction History" }),
11235
+ /* @__PURE__ */ jsx58(
10978
11236
  Button,
10979
11237
  {
10980
11238
  variant: "ghost",
@@ -10982,13 +11240,13 @@ function TransactionsMenu() {
10982
11240
  onClick: refreshTxHistory,
10983
11241
  disabled: isTxHistoryFetching,
10984
11242
  title: "Refresh transactions",
10985
- children: isTxHistoryFetching ? /* @__PURE__ */ jsx56(Loader12, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx56(RefreshCw2, { className: "h-4 w-4" })
11243
+ children: isTxHistoryFetching ? /* @__PURE__ */ jsx58(Loader15, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx58(RefreshCw3, { className: "h-4 w-4" })
10986
11244
  }
10987
11245
  )
10988
11246
  ] }) }),
10989
- /* @__PURE__ */ jsxs43("div", { className: "max-h-[60vh] overflow-y-auto", children: [
10990
- isTxHistoryLoading && /* @__PURE__ */ jsx56("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx56(Loader12, { className: "h-5 w-5 animate-spin" }) }),
10991
- !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs43(
11247
+ /* @__PURE__ */ jsxs45("div", { className: "max-h-[60vh] overflow-y-auto", children: [
11248
+ isTxHistoryLoading && /* @__PURE__ */ jsx58("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx58(Loader15, { className: "h-5 w-5 animate-spin" }) }),
11249
+ !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs45(
10992
11250
  "div",
10993
11251
  {
10994
11252
  className: cn(
@@ -10997,20 +11255,20 @@ function TransactionsMenu() {
10997
11255
  "text-[var(--l-pass-error)]"
10998
11256
  ),
10999
11257
  children: [
11000
- /* @__PURE__ */ jsx56(XCircle2, { className: "w-12 h-12 mb-2" }),
11001
- /* @__PURE__ */ jsx56("span", { className: "block w-full text-center text-sm", children: txHistoryResolvedError })
11258
+ /* @__PURE__ */ jsx58(XCircle2, { className: "w-12 h-12 mb-2" }),
11259
+ /* @__PURE__ */ jsx58("span", { className: "block w-full text-center text-sm", children: txHistoryResolvedError })
11002
11260
  ]
11003
11261
  }
11004
11262
  ),
11005
- !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsxs43("div", { className: "flex flex-col gap-2 items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: [
11006
- /* @__PURE__ */ jsx56(Activity, { className: "w-12 h-12" }),
11007
- /* @__PURE__ */ jsxs43("span", { className: "block w-full text-center", children: [
11008
- /* @__PURE__ */ jsx56("span", { children: "No transactions found" }),
11009
- /* @__PURE__ */ jsx56("br", {}),
11010
- /* @__PURE__ */ jsx56("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
11263
+ !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsxs45("div", { className: "flex flex-col gap-2 items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: [
11264
+ /* @__PURE__ */ jsx58(Activity, { className: "w-12 h-12" }),
11265
+ /* @__PURE__ */ jsxs45("span", { className: "block w-full text-center", children: [
11266
+ /* @__PURE__ */ jsx58("span", { children: "No transactions found" }),
11267
+ /* @__PURE__ */ jsx58("br", {}),
11268
+ /* @__PURE__ */ jsx58("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
11011
11269
  ] })
11012
11270
  ] }),
11013
- !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx56("div", { className: "w-full flex flex-col gap-2", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx56(
11271
+ !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx58("div", { className: "w-full flex flex-col gap-2", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx58(
11014
11272
  TransactionsGroup,
11015
11273
  {
11016
11274
  group,
@@ -11023,127 +11281,6 @@ function TransactionsMenu() {
11023
11281
  ] });
11024
11282
  }
11025
11283
 
11026
- // src/internal/components/ViewAssetsMenu/ViewAssetsMenu.tsx
11027
- import { ArrowLeft as ArrowLeft13, Gem, Loader as Loader13, RefreshCw as RefreshCw3 } from "lucide-react";
11028
-
11029
- // src/internal/components/ViewAssetsMenu/AssetItem.tsx
11030
- init_base();
11031
- import { Check as Check2, Copy as Copy3, ExternalLink } from "lucide-react";
11032
- import React14 from "react";
11033
- import { jsx as jsx57, jsxs as jsxs44 } from "react/jsx-runtime";
11034
- var openInExplorer2 = (address) => {
11035
- window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
11036
- };
11037
- function AssetItem(props) {
11038
- const { address, asset } = props;
11039
- const [copied, setCopied] = React14.useState(null);
11040
- const handleCopy = async (text, type) => {
11041
- try {
11042
- await navigator.clipboard.writeText(text);
11043
- setCopied(type);
11044
- setTimeout(() => setCopied(null), 1500);
11045
- } catch (error) {
11046
- console.error("Failed to copy:", error);
11047
- }
11048
- };
11049
- return /* @__PURE__ */ jsxs44("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: [
11050
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between mb-2", children: [
11051
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-3", children: [
11052
- /* @__PURE__ */ jsx57("div", { className: "w-10 h-10 bg-[var(--l-pass-primary)] rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx57("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) }) }),
11053
- /* @__PURE__ */ jsxs44("div", { children: [
11054
- /* @__PURE__ */ jsx57("div", { className: "font-medium", children: asset.name }),
11055
- /* @__PURE__ */ jsx57("div", { className: "text-sm", children: asset.symbol })
11056
- ] })
11057
- ] }),
11058
- /* @__PURE__ */ jsxs44("div", { className: "text-right", children: [
11059
- /* @__PURE__ */ jsx57("div", { className: "font-mono", children: asset.formattedBalance }),
11060
- /* @__PURE__ */ jsx57("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: asset.symbol })
11061
- ] })
11062
- ] }),
11063
- asset.address && /* @__PURE__ */ jsxs44("div", { className: "w-full space-y-2 mt-3 pt-3 border-t border-[var(--l-pass-bd)]", children: [
11064
- /* @__PURE__ */ jsxs44("div", { className: "w-full flex items-center justify-between text-sm", children: [
11065
- /* @__PURE__ */ jsx57("span", { children: "Contract Address:" }),
11066
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
11067
- /* @__PURE__ */ jsx57("span", { className: `font-mono text-xs`, children: `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` }),
11068
- /* @__PURE__ */ jsx57(
11069
- Button,
11070
- {
11071
- variant: "ghost",
11072
- size: "icon",
11073
- title: "Copy address",
11074
- onClick: () => handleCopy(asset.address, "address"),
11075
- children: copied === "address" ? /* @__PURE__ */ jsx57(Check2, { className: "w-3 h-3 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ jsx57(Copy3, { className: "w-3 h-3" })
11076
- }
11077
- ),
11078
- /* @__PURE__ */ jsx57(
11079
- Button,
11080
- {
11081
- variant: "ghost",
11082
- size: "icon",
11083
- onClick: () => openInExplorer2(asset.address),
11084
- title: "View in explorer",
11085
- children: /* @__PURE__ */ jsx57(ExternalLink, { className: "w-3 h-3" })
11086
- }
11087
- )
11088
- ] })
11089
- ] }),
11090
- asset.decimals && /* @__PURE__ */ jsxs44("div", { className: "w-full flex items-center justify-between text-sm", children: [
11091
- /* @__PURE__ */ jsx57("span", { children: "Decimals:" }),
11092
- /* @__PURE__ */ jsx57("span", { children: asset.decimals })
11093
- ] })
11094
- ] }),
11095
- asset.type === "native" && address && /* @__PURE__ */ jsx57("div", { className: "mt-3 pt-3 border-t border-[var(--l-pass-bd)]", children: /* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between text-sm", children: [
11096
- /* @__PURE__ */ jsx57("span", { children: "Your Address:" }),
11097
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
11098
- /* @__PURE__ */ jsx57("span", { className: "font-mono text-xs", children: `${address.slice(0, 6)}...${address.slice(-4)}` }),
11099
- /* @__PURE__ */ jsx57(
11100
- Button,
11101
- {
11102
- variant: "ghost",
11103
- size: "icon",
11104
- onClick: () => handleCopy(address, "wallet"),
11105
- title: "Copy wallet address",
11106
- children: copied === "wallet" ? /* @__PURE__ */ jsx57(Check2, { className: "w-3 h-3 text-[var(--l-pass-success)]" }) : /* @__PURE__ */ jsx57(Copy3, { className: "w-3 h-3" })
11107
- }
11108
- ),
11109
- /* @__PURE__ */ jsx57(Button, { variant: "ghost", size: "icon", onClick: () => openInExplorer2(address), title: "View in explorer", children: /* @__PURE__ */ jsx57(ExternalLink, { className: "w-3 h-3" }) })
11110
- ] })
11111
- ] }) })
11112
- ] });
11113
- }
11114
-
11115
- // src/internal/components/ViewAssetsMenu/ViewAssetsMenu.tsx
11116
- import { jsx as jsx58, jsxs as jsxs45 } from "react/jsx-runtime";
11117
- function ViewAssetsMenu() {
11118
- const setPage = useLayoutDataStore((st) => st.setPage);
11119
- const { address } = useLumiaPassportSession();
11120
- const { assets, refreshBalances, isLoading } = useAssets(address);
11121
- return /* @__PURE__ */ jsxs45("div", { className: "w-full p-4 flex flex-col gap-4", children: [
11122
- /* @__PURE__ */ jsx58("div", { className: "w-full", children: /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-2", children: [
11123
- /* @__PURE__ */ jsx58(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx58(ArrowLeft13, { className: "h-4 w-4" }) }),
11124
- /* @__PURE__ */ jsx58("span", { className: "text-xl font-semibold", children: "Your Assets" }),
11125
- /* @__PURE__ */ jsx58(Button, { title: "Refresh balances", variant: "ghost", size: "icon", onClick: refreshBalances, disabled: isLoading, children: isLoading ? /* @__PURE__ */ jsx58(Loader13, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx58(RefreshCw3, { className: "h-4 w-4" }) })
11126
- ] }) }),
11127
- /* @__PURE__ */ jsxs45(Expandable, { isExpanded: true, contentClassName: "w-full max-h-[60dvh] overflow-y-auto", children: [
11128
- !isLoading && assets.length > 0 && /* @__PURE__ */ jsxs45("div", { className: "w-full text-sm text-[var(--l-pass-muted)] mb-4", children: [
11129
- "Total: ",
11130
- assets.length,
11131
- " asset",
11132
- assets.length !== 1 ? "s" : ""
11133
- ] }),
11134
- isLoading && /* @__PURE__ */ jsxs45("div", { className: "w-full flex items-center justify-center gap-2 p-4", children: [
11135
- /* @__PURE__ */ jsx58(Loader13, { className: "h-5 w-5 mr-2 animate-spin" }),
11136
- /* @__PURE__ */ jsx58("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
11137
- ] }),
11138
- !isLoading && assets.length === 0 && /* @__PURE__ */ jsxs45("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
11139
- /* @__PURE__ */ jsx58(Gem, { className: "w-12 h-12 mb-2" }),
11140
- /* @__PURE__ */ jsx58("p", { children: "No assets found" })
11141
- ] }),
11142
- !isLoading && assets.length > 0 && /* @__PURE__ */ jsx58("div", { className: "w-full flex flex-col gap-2", children: assets.map((asset, index) => /* @__PURE__ */ jsx58(AssetItem, { address, asset }, `${asset.type}-${asset.address || "native"}-${index}`)) })
11143
- ] })
11144
- ] });
11145
- }
11146
-
11147
11284
  // src/internal/components/PageMap.tsx
11148
11285
  var PAGE_MAP = {
11149
11286
  ["auth" /* AUTH */]: {
@@ -11202,9 +11339,9 @@ var PAGE_MAP = {
11202
11339
  },
11203
11340
  ["assets" /* ASSETS */]: {
11204
11341
  key: "assets" /* ASSETS */,
11205
- title: "View Assets",
11342
+ title: "Assets Portfolio Menu",
11206
11343
  description: "View your token balances and assets",
11207
- component: ViewAssetsMenu
11344
+ component: PortfolioMenu
11208
11345
  },
11209
11346
  ["manage-wallet" /* MANAGE_WALLET */]: {
11210
11347
  key: "manage-wallet" /* MANAGE_WALLET */,
@@ -11253,7 +11390,7 @@ function usePageMapper() {
11253
11390
  setIsDialogOpen,
11254
11391
  setIsDialogClosing
11255
11392
  } = useLayoutStore();
11256
- const closeDialog = useCallback13(() => {
11393
+ const closeDialog = useCallback14(() => {
11257
11394
  setIsDialogClosing(true);
11258
11395
  setTimeout(() => {
11259
11396
  setDialogContent(null);
@@ -11264,7 +11401,7 @@ function usePageMapper() {
11264
11401
  setIsDialogOpen(false);
11265
11402
  }, CLEAR_DIALOG_TIMEOUT);
11266
11403
  }, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
11267
- const openDialog = useCallback13(
11404
+ const openDialog = useCallback14(
11268
11405
  (pageItem) => {
11269
11406
  const PageContentComponent = pageItem.component;
11270
11407
  setDialogTitle(pageItem.title);
@@ -11274,7 +11411,7 @@ function usePageMapper() {
11274
11411
  },
11275
11412
  [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
11276
11413
  );
11277
- useEffect21(() => {
11414
+ useEffect23(() => {
11278
11415
  if (page === null) return closeDialog();
11279
11416
  const pageItem = protectedRoutes[page];
11280
11417
  if (!pageItem) {
@@ -11288,7 +11425,7 @@ function usePageMapper() {
11288
11425
 
11289
11426
  // src/internal/hooks/useSettingsNotifications.ts
11290
11427
  init_auth();
11291
- import { useEffect as useEffect22 } from "react";
11428
+ import { useEffect as useEffect24 } from "react";
11292
11429
  var EMAIL_NOT_CONNECTED_NOTIFICATION = {
11293
11430
  id: "email-not-connected",
11294
11431
  target: "manage-wallet" /* MANAGE_WALLET */,
@@ -11304,13 +11441,13 @@ function useSettingsNotifications() {
11304
11441
  const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
11305
11442
  const providers = jwtTokenManager2.getProviders();
11306
11443
  const hasEmail = providers.includes("email");
11307
- useEffect22(() => {
11444
+ useEffect24(() => {
11308
11445
  setSettingsNotifications({
11309
11446
  ...BACKUP_IS_NOT_CREATED_NOTIFICATION,
11310
11447
  status: hasServerVault ? "resolved" : "active"
11311
11448
  });
11312
11449
  }, [hasServerVault, setSettingsNotifications]);
11313
- useEffect22(() => {
11450
+ useEffect24(() => {
11314
11451
  setSettingsNotifications({
11315
11452
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
11316
11453
  status: hasEmail ? "resolved" : "active"
@@ -11319,14 +11456,17 @@ function useSettingsNotifications() {
11319
11456
  }
11320
11457
 
11321
11458
  // src/internal/hooks/useWalletStatus.ts
11322
- import { useEffect as useEffect23 } from "react";
11459
+ import { useEffect as useEffect25 } from "react";
11323
11460
  init_auth();
11324
11461
  function useWalletStatus() {
11325
11462
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
11326
11463
  const address = useLumiaPassportSession((st) => st.address);
11327
11464
  const session = useLumiaPassportSession((st) => st.session);
11328
- const { config, callbacks } = useLumiaPassportConfig();
11329
- useEffect23(() => {
11465
+ const {
11466
+ config: { current: config },
11467
+ callbacks
11468
+ } = useLumiaPassportConfig();
11469
+ useEffect25(() => {
11330
11470
  if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
11331
11471
  const userId = jwtTokenManager2.getUserId();
11332
11472
  const hasKeyshare = jwtTokenManager2.getHasKeyshare();
@@ -11348,13 +11488,16 @@ function useWalletStatus() {
11348
11488
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
11349
11489
  import { jsx as jsx60, jsxs as jsxs46 } from "react/jsx-runtime";
11350
11490
  function LumiaPassportDialog() {
11351
- const className = useLumiaPassportConfig()?.config?.ui?.dialogClassName;
11491
+ const {
11492
+ config: { current: config }
11493
+ } = useLumiaPassportConfig();
11494
+ const className = config?.ui?.dialogClassName;
11352
11495
  const session = useLumiaPassportSession((st) => st.session);
11353
11496
  const page = useLayoutDataStore((st) => st.page);
11354
11497
  const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
11355
11498
  const setPage = useLayoutDataStore((st) => st.setPage);
11356
11499
  const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
11357
- useEffect24(() => setIsSettings(!!session), [session, setIsSettings]);
11500
+ useEffect26(() => setIsSettings(!!session), [session, setIsSettings]);
11358
11501
  usePageMapper();
11359
11502
  useAutoConnect();
11360
11503
  useCheckVaultStatus();
@@ -11392,13 +11535,13 @@ function LumiaPassportDialog() {
11392
11535
  }
11393
11536
 
11394
11537
  // src/internal/components/LumiaPriceSSE.tsx
11395
- import { useEffect as useEffect26 } from "react";
11538
+ import { useEffect as useEffect28 } from "react";
11396
11539
  import { useBalance as useBalance3 } from "wagmi";
11397
11540
  init_base();
11398
11541
 
11399
11542
  // src/internal/hooks/useLumiaPriceSSE.ts
11400
11543
  import { useMutation as useMutation11 } from "@tanstack/react-query";
11401
- import { useEffect as useEffect25 } from "react";
11544
+ import { useEffect as useEffect27 } from "react";
11402
11545
 
11403
11546
  // src/internal/lib/LumiaPriceSSEService.ts
11404
11547
  var FALLBACK3 = "https://fallback.lumia.passport.io";
@@ -11533,7 +11676,7 @@ function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11533
11676
  console.error("Lumia Price SSE connection error:", err);
11534
11677
  }
11535
11678
  });
11536
- useEffect25(() => {
11679
+ useEffect27(() => {
11537
11680
  const isConnected = lumiaPriceSSE.getConnectionStatus();
11538
11681
  console.log("[LUMIA PRICE SSE MANAGER] SSE status:", { enabled, isConnected });
11539
11682
  if (!enabled) {
@@ -11550,7 +11693,7 @@ function useLumiaPriceSSE(enabled, updateCurrentPrice) {
11550
11693
 
11551
11694
  // src/internal/components/LumiaPriceSSE.tsx
11552
11695
  function LumiaPriceSSE() {
11553
- const address = useLumiaPassportSession().address;
11696
+ const address = useLumiaPassportSession((st) => st.address);
11554
11697
  const { data: balance } = useBalance3({
11555
11698
  address,
11556
11699
  chainId: lumiaBeam.id,
@@ -11564,7 +11707,7 @@ function LumiaPriceSSE() {
11564
11707
  });
11565
11708
  const { lumiaRate, setLumiaRate, setUsdBalance, setBalance } = useLayoutDataStore();
11566
11709
  useLumiaPriceSSE(!!address, (update) => setLumiaRate(update.price || 1));
11567
- useEffect26(() => {
11710
+ useEffect28(() => {
11568
11711
  const usdBalance = Number(balance?.formatted || 0) * lumiaRate;
11569
11712
  setUsdBalance(usdBalance);
11570
11713
  setBalance(balance);
@@ -11573,23 +11716,23 @@ function LumiaPriceSSE() {
11573
11716
  }
11574
11717
 
11575
11718
  // src/internal/components/TssManager.tsx
11576
- import React15, { useCallback as useCallback14 } from "react";
11719
+ import React14, { useCallback as useCallback15 } from "react";
11577
11720
  init_auth();
11578
11721
  init_clients();
11579
- var TssManagerWithRef = React15.forwardRef((props, ref) => {
11722
+ var TssManagerWithRef = React14.forwardRef((props, ref) => {
11580
11723
  const { mpcPin } = props;
11581
11724
  const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
11582
11725
  const setStatus = useLumiaPassportSession((st) => st.setStatus);
11583
11726
  const setSession = useLumiaPassportSession((st) => st.setSession);
11584
11727
  const setAddress = useLumiaPassportSession((st) => st.setAddress);
11585
- const onSessionCreated = useCallback14(
11728
+ const onSessionCreated = useCallback15(
11586
11729
  (session, address) => {
11587
11730
  setSession(session);
11588
11731
  setAddress(address);
11589
11732
  },
11590
11733
  [setSession, setAddress]
11591
11734
  );
11592
- const createSessionWithKeyshare = React15.useCallback(
11735
+ const createSessionWithKeyshare = React14.useCallback(
11593
11736
  async (userId, hasServerKeyshare, isNewUser) => {
11594
11737
  setStatus("checking key management setup...");
11595
11738
  await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
@@ -11610,50 +11753,46 @@ var TssManagerWithRef = React15.forwardRef((props, ref) => {
11610
11753
  },
11611
11754
  [setStatus, usePaymaster, mpcPin]
11612
11755
  );
11613
- React15.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11756
+ React14.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11614
11757
  return null;
11615
11758
  });
11616
11759
 
11617
11760
  // src/internal/components/WalletConnectHandler.tsx
11761
+ init_wallet();
11618
11762
  import { useConnectModal } from "@rainbow-me/rainbowkit";
11619
- import { useQueryClient as useQueryClient9 } from "@tanstack/react-query";
11620
- import React16, { useCallback as useCallback15, useEffect as useEffect27 } from "react";
11763
+ import { useQueryClient as useQueryClient10 } from "@tanstack/react-query";
11764
+ import React15, { useCallback as useCallback16, useEffect as useEffect29 } from "react";
11621
11765
  import { useAccount, useDisconnect, useSignMessage } from "wagmi";
11622
- init_wallet();
11623
11766
  function WalletConnectHandler() {
11624
- const qc = useQueryClient9();
11625
- const { callbacks, notifyProvidersUpdate } = useLumiaPassportConfig();
11767
+ const qc = useQueryClient10();
11768
+ const { callbacks } = useLumiaPassportConfig();
11769
+ const { address, isConnected, chain, connector } = useAccount();
11770
+ const { disconnect } = useDisconnect();
11771
+ const { signMessageAsync } = useSignMessage();
11626
11772
  const setPage = useLayoutDataStore((st) => st.setPage);
11627
11773
  const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
11628
- const onError = useCallback15((error) => {
11774
+ const onError = useCallback16((error) => {
11629
11775
  setLinkError(error);
11630
11776
  setIsWalletLinking(false);
11631
11777
  setPage("manage-wallet" /* MANAGE_WALLET */);
11632
11778
  }, []);
11633
- const onLinkingComplete = useCallback15(async (success) => {
11634
- setIsWalletLinking(false);
11779
+ const onLinkingComplete = useCallback16(async (success) => {
11635
11780
  if (success) {
11781
+ await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
11782
+ await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
11636
11783
  try {
11637
- await qc.invalidateQueries({ queryKey: [PROVIDERS_QUERY_KEY, address] });
11638
- try {
11639
- callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
11640
- notifyProvidersUpdate?.();
11641
- } catch {
11642
- }
11643
- } catch (e) {
11644
- console.error("Failed to load providers:", e);
11784
+ callbacks?.onLumiaPassportUpdate?.({ providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address]) });
11785
+ } catch {
11645
11786
  }
11646
11787
  setProviderType(null);
11647
11788
  setPage("manage-wallet" /* MANAGE_WALLET */);
11648
11789
  }
11790
+ setIsWalletLinking(false);
11649
11791
  }, []);
11650
11792
  const { openConnectModal } = useConnectModal();
11651
- const { address, isConnected, chain, connector } = useAccount();
11652
- const { disconnect } = useDisconnect();
11653
- const { signMessageAsync } = useSignMessage();
11654
- const [hasStartedLinking, setHasStartedLinking] = React16.useState(false);
11655
- const timeoutRef = React16.useRef();
11656
- useEffect27(() => {
11793
+ const [hasStartedLinking, setHasStartedLinking] = React15.useState(false);
11794
+ const timeoutRef = React15.useRef();
11795
+ useEffect29(() => {
11657
11796
  if (isWalletLinking && !hasStartedLinking) {
11658
11797
  setHasStartedLinking(true);
11659
11798
  if (isConnected) {
@@ -11685,7 +11824,7 @@ function WalletConnectHandler() {
11685
11824
  }
11686
11825
  }
11687
11826
  }, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect]);
11688
- useEffect27(() => {
11827
+ useEffect29(() => {
11689
11828
  if (isConnected && address && isWalletLinking && hasStartedLinking) {
11690
11829
  handleWalletSign();
11691
11830
  }
@@ -11770,9 +11909,10 @@ var useLumiaPassportSession = create5((set) => ({
11770
11909
  setWalletReadyStatus: (status) => set({ walletReadyStatus: status })
11771
11910
  }));
11772
11911
  function LumiaPassportSessionProvider({ children }) {
11773
- const { config } = useLumiaPassportConfig();
11774
- console.log("[PASSPORT PROVIDER RENDER]: should be as less as possible");
11775
- return /* @__PURE__ */ jsxs47(Fragment10, { children: [
11912
+ const {
11913
+ config: { current: config }
11914
+ } = useLumiaPassportConfig();
11915
+ return /* @__PURE__ */ jsxs47(Fragment11, { children: [
11776
11916
  children,
11777
11917
  config.wallet?.enabled && /* @__PURE__ */ jsx61(WalletConnectHandler, {}),
11778
11918
  /* @__PURE__ */ jsx61(LumiaPriceSSE, {}),
@@ -11829,39 +11969,51 @@ function LumiaPassportProvider(props) {
11829
11969
  const { children, projectId, initialConfig = {}, callbacks } = props;
11830
11970
  const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
11831
11971
  const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
11832
- const [providersVersion, setProvidersVersion] = useState14(0);
11833
- const notifyProvidersUpdate = useCallback16(() => setProvidersVersion((prev) => prev + 1), []);
11834
- const [config, setConfig] = useState14(() => {
11835
- const merged = { ...DEFAULT_LUMIA_PASSPORT_CONFIG };
11836
- if (projectId) {
11837
- merged.projectId = projectId;
11838
- } else if (initialConfig.projectId) {
11839
- merged.projectId = initialConfig.projectId;
11840
- }
11841
- notifyNoProjetctId(merged.projectId);
11842
- if (initialConfig.passkey) merged.passkey = { ...merged.passkey, ...initialConfig.passkey };
11843
- if (initialConfig.email) merged.email = { ...merged.email, ...initialConfig.email };
11844
- if (initialConfig.social) {
11845
- merged.social = { ...merged.social, ...initialConfig.social };
11846
- if (initialConfig.social.providers) merged.social.providers = initialConfig.social.providers;
11847
- }
11848
- if (initialConfig.development) merged.development = { ...merged.development, ...initialConfig.development };
11849
- if (initialConfig.ui) {
11850
- merged.ui = { ...merged.ui, ...initialConfig.ui };
11851
- if (initialConfig.ui.branding) merged.ui.branding = { ...merged.ui.branding, ...initialConfig.ui.branding };
11852
- if (initialConfig.ui.dialogClassName) merged.ui.dialogClassName = initialConfig.ui.dialogClassName;
11853
- }
11854
- if (initialConfig.network) merged.network = { ...merged.network, ...initialConfig.network };
11855
- if (initialConfig.services) merged.services = { ...merged.services, ...initialConfig.services };
11856
- if (initialConfig.features) merged.features = { ...merged.features, ...initialConfig.features };
11857
- if (initialConfig.kyc) merged.kyc = { ...merged.kyc, ...initialConfig.kyc };
11858
- if (initialConfig.warnings) merged.warnings = { ...merged.warnings, ...initialConfig.warnings };
11859
- if (initialConfig.preferedColorMode) merged.preferedColorMode = initialConfig.preferedColorMode;
11972
+ useEffect30(() => notifyNoProjetctId(projectId), [projectId]);
11973
+ const config = useRef10({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
11974
+ const updateConfig = useCallback17((updates) => {
11975
+ const prev = config.current;
11976
+ const next = { ...prev };
11977
+ if (updates.projectId !== void 0) next.projectId = updates.projectId;
11978
+ if (updates.passkey) next.passkey = { ...next.passkey, ...updates.passkey };
11979
+ if (updates.email) next.email = { ...next.email, ...updates.email };
11980
+ if (updates.social) {
11981
+ next.social = { ...next.social, ...updates.social };
11982
+ if (updates.social.providers) next.social.providers = updates.social.providers;
11983
+ }
11984
+ if (updates.development) next.development = { ...next.development, ...updates.development };
11985
+ if (updates.ui) {
11986
+ next.ui = { ...next.ui, ...updates.ui };
11987
+ if (updates.ui.branding) next.ui.branding = { ...next.ui.branding, ...updates.ui.branding };
11988
+ }
11989
+ if (updates.network) next.network = { ...next.network, ...updates.network };
11990
+ if (updates.services) next.services = { ...next.services, ...updates.services };
11991
+ if (updates.features) next.features = { ...next.features, ...updates.features };
11992
+ if (updates.warnings) next.warnings = { ...next.warnings, ...updates.warnings };
11993
+ if (updates.kyc) next.kyc = { ...next.kyc, ...updates.kyc };
11994
+ if (updates.services && typeof window !== "undefined") {
11995
+ try {
11996
+ window.__LUMIA_SERVICES__ = next.services;
11997
+ } catch {
11998
+ }
11999
+ }
12000
+ if (updates.projectId !== void 0 && typeof window !== "undefined") {
12001
+ try {
12002
+ window.__LUMIA_PROJECT_ID__ = next.projectId;
12003
+ } catch {
12004
+ }
12005
+ }
12006
+ config.current = next;
12007
+ }, []);
12008
+ useEffect30(() => {
12009
+ if (typeof window === "undefined" || !projectId) return;
12010
+ const mergedConfig = merge(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
12011
+ updateConfig(mergedConfig);
12012
+ console.log("[ MERGED PROVIDER STORED CONFIG ]", mergedConfig);
11860
12013
  try {
11861
12014
  if (typeof window !== "undefined") {
11862
- window.__LUMIA_SERVICES__ = merged.services;
12015
+ window.__LUMIA_SERVICES__ = mergedConfig.services;
11863
12016
  window.__LUMIA_PROJECT_ID__ = projectId;
11864
- console.log("[LumiaPassportProvider] Setting window.__LUMIA_SERVICES__:", merged.services);
11865
12017
  const resolvedServices = getServiceUrls();
11866
12018
  console.log("[LumiaPassportProvider] Resolved services:", resolvedServices);
11867
12019
  }
@@ -11874,60 +12026,12 @@ function LumiaPassportProvider(props) {
11874
12026
  console.warn("[LumiaPassport] Failed to initialize SDK error tracking:", error);
11875
12027
  }
11876
12028
  }
11877
- return merged;
11878
- });
11879
- const updateConfig = useCallback16((updates) => {
11880
- setConfig((prev) => {
11881
- const next = { ...prev };
11882
- if (updates.projectId !== void 0) next.projectId = updates.projectId;
11883
- if (updates.passkey) next.passkey = { ...next.passkey, ...updates.passkey };
11884
- if (updates.email) next.email = { ...next.email, ...updates.email };
11885
- if (updates.social) {
11886
- next.social = { ...next.social, ...updates.social };
11887
- if (updates.social.providers) next.social.providers = updates.social.providers;
11888
- }
11889
- if (updates.development) next.development = { ...next.development, ...updates.development };
11890
- if (updates.ui) {
11891
- next.ui = { ...next.ui, ...updates.ui };
11892
- if (updates.ui.branding) next.ui.branding = { ...next.ui.branding, ...updates.ui.branding };
11893
- }
11894
- if (updates.network) next.network = { ...next.network, ...updates.network };
11895
- if (updates.services) next.services = { ...next.services, ...updates.services };
11896
- if (updates.features) next.features = { ...next.features, ...updates.features };
11897
- if (updates.warnings) next.warnings = { ...next.warnings, ...updates.warnings };
11898
- if (updates.kyc) next.kyc = { ...next.kyc, ...updates.kyc };
11899
- if (updates.services && typeof window !== "undefined") {
11900
- try {
11901
- window.__LUMIA_SERVICES__ = next.services;
11902
- console.log("[LumiaPassportProvider] Updated window.__LUMIA_SERVICES__:", next.services);
11903
- } catch {
11904
- }
11905
- }
11906
- if (updates.projectId !== void 0 && typeof window !== "undefined") {
11907
- try {
11908
- ;
11909
- window.__LUMIA_PROJECT_ID__ = next.projectId;
11910
- console.log("[LumiaPassportProvider] Updated __LUMIA_PROJECT_ID__:", next.projectId);
11911
- } catch {
11912
- }
11913
- }
11914
- return next;
11915
- });
11916
- }, []);
11917
- useEffect28(() => {
11918
- if (typeof window === "undefined") return;
11919
- if (!config.projectId) return;
11920
12029
  const iframeUrl = getIframeUrl();
11921
- console.log("[LumiaPassport] Initializing secure iframe wallet:", {
11922
- iframeUrl,
11923
- projectId: `${projectId.substring(0, 10)}...`,
11924
- note: "All MPC operations will happen in isolated iframe context"
11925
- });
11926
12030
  try {
11927
12031
  const iframeManager = getIframeManager({
11928
12032
  iframeUrl,
11929
12033
  projectId,
11930
- debug: config.features?.mpcSecurity ?? true,
12034
+ debug: mergedConfig.features?.mpcSecurity ?? true,
11931
12035
  onWalletReady: (status) => {
11932
12036
  callbacks?.onWalletReady?.(status);
11933
12037
  setWalletReadyStatus(status);
@@ -11935,7 +12039,6 @@ function LumiaPassportProvider(props) {
11935
12039
  });
11936
12040
  iframeManager.initialize().then(() => {
11937
12041
  setIsIframeReady(true);
11938
- console.log("[LumiaPassport] \u2705 Secure iframe wallet initialized successfully");
11939
12042
  }).catch((error) => {
11940
12043
  console.error("[LumiaPassport] \u274C Failed to initialize iframe wallet:", error);
11941
12044
  });
@@ -11946,14 +12049,9 @@ function LumiaPassportProvider(props) {
11946
12049
  } catch (error) {
11947
12050
  console.error("[LumiaPassport] Error setting up iframe manager:", error);
11948
12051
  }
11949
- }, [config.projectId, config.features?.mpcSecurity]);
11950
- return /* @__PURE__ */ jsx63(LumiaWagmiProvider, { children: /* @__PURE__ */ jsx63(
11951
- LumiaPassportContext.Provider,
11952
- {
11953
- value: { config, updateConfig, callbacks, providersVersion, notifyProvidersUpdate },
11954
- children
11955
- }
11956
- ) });
12052
+ }, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
12053
+ const contextValue = useMemo3(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
12054
+ return /* @__PURE__ */ jsx63(LumiaWagmiProvider, { children: /* @__PURE__ */ jsx63(LumiaPassportContext.Provider, { value: contextValue, children }) });
11957
12055
  }
11958
12056
  var useLumiaPassportConfig = () => {
11959
12057
  const ctx = useContext(LumiaPassportContext);
@@ -11962,10 +12060,10 @@ var useLumiaPassportConfig = () => {
11962
12060
  };
11963
12061
 
11964
12062
  // src/components/ConnectWalletButton.tsx
11965
- import { Cloud as Cloud3, Laptop as Laptop2, Loader as Loader14, Shield as Shield2 } from "lucide-react";
11966
- import { useEffect as useEffect29, useMemo as useMemo3 } from "react";
12063
+ import { Cloud as Cloud3, Laptop as Laptop2, Loader as Loader16, Shield as Shield2 } from "lucide-react";
12064
+ import { useEffect as useEffect31, useMemo as useMemo4 } from "react";
11967
12065
  init_auth();
11968
- import { Fragment as Fragment11, jsx as jsx64, jsxs as jsxs48 } from "react/jsx-runtime";
12066
+ import { Fragment as Fragment12, jsx as jsx64, jsxs as jsxs48 } from "react/jsx-runtime";
11969
12067
  function getFormattedStatus(label, status, showStatus) {
11970
12068
  const isStatus = showStatus && status && status !== "idle" && status !== "ready";
11971
12069
  if (!isStatus) return label;
@@ -11979,15 +12077,14 @@ function ConnectWalletButton(props) {
11979
12077
  // TODO: provide usePaymaster via config context
11980
12078
  usePaymaster = true
11981
12079
  } = props;
11982
- console.log("[ CONNECT BUTTON RENDER ] should be as minimal as possible");
11983
12080
  const setPage = useLayoutDataStore((st) => st.setPage);
11984
12081
  const colorMode = useLayoutStore((st) => st.colorMode);
11985
12082
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
11986
12083
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
11987
- useEffect29(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12084
+ useEffect31(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
11988
12085
  const avatar = jwtTokenManager2.getAvatar();
11989
12086
  const displayName = jwtTokenManager2.getDisplayName();
11990
- const indicators = useMemo3(() => {
12087
+ const indicators = useMemo4(() => {
11991
12088
  const userId = jwtTokenManager2.getUserId();
11992
12089
  if (!userId) return { server: false, local: false, backup: false };
11993
12090
  const server = jwtTokenManager2.getHasKeyshare() ?? false;
@@ -11997,14 +12094,14 @@ function ConnectWalletButton(props) {
11997
12094
  const isConnecting = connectButtonLabel !== label || isLoading;
11998
12095
  return /* @__PURE__ */ jsx64("div", { "data-lumia-passport-mode": colorMode, className: cn("lumia-scope w-fit h-fit", className), children: !address ? (
11999
12096
  /** external Buttons can be provided */
12000
- /* @__PURE__ */ jsx64(Fragment11, { children: ConnectButton ? /* @__PURE__ */ jsxs48(
12097
+ /* @__PURE__ */ jsx64(Fragment12, { children: ConnectButton ? /* @__PURE__ */ jsxs48(
12001
12098
  ConnectButton,
12002
12099
  {
12003
12100
  type: "button",
12004
12101
  disabled: isConnecting,
12005
12102
  onClick: () => setPage("auth" /* AUTH */),
12006
12103
  children: [
12007
- isConnecting && /* @__PURE__ */ jsx64(Loader14, { className: "w-4 h-4 animate-spin" }),
12104
+ isConnecting && /* @__PURE__ */ jsx64(Loader16, { className: "w-4 h-4 animate-spin" }),
12008
12105
  connectButtonLabel
12009
12106
  ]
12010
12107
  }
@@ -12022,7 +12119,7 @@ function ConnectWalletButton(props) {
12022
12119
  "disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
12023
12120
  ),
12024
12121
  children: [
12025
- isConnecting && /* @__PURE__ */ jsx64(Loader14, { className: "w-4 h-4 animate-spin" }),
12122
+ isConnecting && /* @__PURE__ */ jsx64(Loader16, { className: "w-4 h-4 animate-spin" }),
12026
12123
  connectButtonLabel.toUpperCase()
12027
12124
  ]
12028
12125
  }
@@ -12038,14 +12135,7 @@ function ConnectWalletButton(props) {
12038
12135
  "rounded-[var(--l-pass-el-bdrs)] p-2 max-w-sm min-w-[256px]"
12039
12136
  ),
12040
12137
  children: [
12041
- /* @__PURE__ */ jsx64("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ jsx64(
12042
- "img",
12043
- {
12044
- src: avatar,
12045
- alt: "User avatar",
12046
- className: "w-full h-full object-cover"
12047
- }
12048
- ) : /* @__PURE__ */ jsx64(LumiaIcon, { width: 48, height: 48 }) }),
12138
+ /* @__PURE__ */ jsx64("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ jsx64("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx64(LumiaIcon, { width: 48, height: 48 }) }),
12049
12139
  /* @__PURE__ */ jsxs48("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
12050
12140
  /* @__PURE__ */ jsx64("div", { className: "font-semibold text-base truncate max-w-[144px]", children: displayName }),
12051
12141
  /* @__PURE__ */ jsx64(UsdBalance, { className: "font-semibold text-base text-[var(--l-pass-fg-muted)]" })
@@ -12142,13 +12232,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
12142
12232
  var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
12143
12233
 
12144
12234
  // src/hooks/useLumiaPassportOpen.ts
12145
- import { useCallback as useCallback17 } from "react";
12235
+ import { useCallback as useCallback18 } from "react";
12146
12236
  function useLumiaPassportOpen() {
12147
12237
  const page = useLayoutDataStore((st) => st.page);
12148
12238
  const setPage = useLayoutDataStore((st) => st.setPage);
12149
12239
  const setPageParams = useLayoutDataStore((st) => st.setPageParams);
12150
- const address = useLumiaPassportSession().address;
12151
- const open = useCallback17(
12240
+ const address = useLumiaPassportSession((st) => st.address);
12241
+ const open = useCallback18(
12152
12242
  (passportPage, params) => {
12153
12243
  if (!address) return setPage("auth" /* AUTH */);
12154
12244
  if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -12157,24 +12247,27 @@ function useLumiaPassportOpen() {
12157
12247
  },
12158
12248
  [setPage, setPageParams, address]
12159
12249
  );
12160
- const close = useCallback17(() => setPage(null), [setPage]);
12250
+ const close = useCallback18(() => setPage(null), [setPage]);
12161
12251
  return { open, close, isOpen: page !== null };
12162
12252
  }
12163
12253
 
12164
12254
  // src/hooks/useLumiaPassportColorMode.ts
12165
- import { useCallback as useCallback18, useEffect as useEffect30 } from "react";
12255
+ import { useCallback as useCallback19, useEffect as useEffect32 } from "react";
12166
12256
  function useLumiaPassportColorMode() {
12167
- const preferedColorMode = useLumiaPassportConfig().config?.preferedColorMode;
12257
+ const {
12258
+ config: { current: config }
12259
+ } = useLumiaPassportConfig();
12260
+ const preferedColorMode = config?.preferedColorMode;
12168
12261
  const colorMode = useLayoutStore((st) => st.colorMode);
12169
12262
  const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
12170
- const setColorMode = useCallback18(
12263
+ const setColorMode = useCallback19(
12171
12264
  (mode) => {
12172
12265
  localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
12173
12266
  handleStoreColorMode(mode);
12174
12267
  },
12175
12268
  [handleStoreColorMode]
12176
12269
  );
12177
- useEffect30(() => {
12270
+ useEffect32(() => {
12178
12271
  let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
12179
12272
  if (!targetColorMode && !preferedColorMode) {
12180
12273
  const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -12216,7 +12309,7 @@ function ThemeToggle(props) {
12216
12309
  }
12217
12310
 
12218
12311
  // src/context/RainbowKitContext.tsx
12219
- import React18 from "react";
12312
+ import React16 from "react";
12220
12313
  import "@rainbow-me/rainbowkit/styles.css";
12221
12314
  import { darkTheme, lightTheme, RainbowKitProvider } from "@rainbow-me/rainbowkit";
12222
12315
  import { WagmiProvider as WagmiProvider2 } from "wagmi";
@@ -12366,14 +12459,16 @@ var rainbowTheme = {
12366
12459
  };
12367
12460
 
12368
12461
  // src/context/RainbowKitContext.tsx
12369
- import { Fragment as Fragment12, jsx as jsx66 } from "react/jsx-runtime";
12462
+ import { Fragment as Fragment13, jsx as jsx66 } from "react/jsx-runtime";
12370
12463
  var LumiaRainbowKitProvider = ({ children }) => {
12371
- const { config } = useLumiaPassportConfig();
12464
+ const {
12465
+ config: { current: config }
12466
+ } = useLumiaPassportConfig();
12372
12467
  const isDark = useLayoutStore((st) => st.colorMode === "dark");
12373
- const rainbowConfig2 = React18.useMemo(() => {
12468
+ const rainbowConfig2 = React16.useMemo(() => {
12374
12469
  return createRainbowConfig(config.wallet?.walletConnectProjectId);
12375
12470
  }, [config.wallet?.walletConnectProjectId]);
12376
- const customTheme = React18.useMemo(
12471
+ const customTheme = React16.useMemo(
12377
12472
  () => isDark ? {
12378
12473
  ...darkTheme(),
12379
12474
  colors: {
@@ -12395,17 +12490,15 @@ var LumiaRainbowKitProvider = ({ children }) => {
12395
12490
  );
12396
12491
  const isWalletEnabled = config.wallet?.enabled ?? false;
12397
12492
  if (!isWalletEnabled) {
12398
- return /* @__PURE__ */ jsx66(Fragment12, { children });
12493
+ return /* @__PURE__ */ jsx66(Fragment13, { children });
12399
12494
  }
12400
12495
  return /* @__PURE__ */ jsx66(WagmiProvider2, { config: rainbowConfig2, children: /* @__PURE__ */ jsx66(RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
12401
12496
  };
12402
12497
 
12403
12498
  // src/internal/components/UserOpStatus.tsx
12404
- import * as React20 from "react";
12405
- import { AlertCircle as AlertCircle4, CheckCircle2 as CheckCircle28, Clock as Clock2, Copy as Copy5, ExternalLink as ExternalLink3, RefreshCw as RefreshCw4 } from "lucide-react";
12406
-
12407
- // src/internal/components/ui/badge.tsx
12408
- import { cva as cva2 } from "class-variance-authority";
12499
+ init_base();
12500
+ import { AlertCircle as AlertCircle4, CheckCircle2 as CheckCircle28, Clock as Clock2, Copy as Copy4, ExternalLink as ExternalLink2, RefreshCw as RefreshCw4 } from "lucide-react";
12501
+ import * as React18 from "react";
12409
12502
 
12410
12503
  // src/internal/utils/cn.ts
12411
12504
  import { clsx as clsx3 } from "clsx";
@@ -12414,34 +12507,10 @@ function cn2(...inputs) {
12414
12507
  return twMerge2(clsx3(inputs));
12415
12508
  }
12416
12509
 
12417
- // src/internal/components/ui/badge.tsx
12418
- import { jsx as jsx67 } from "react/jsx-runtime";
12419
- var badgeVariants = cva2(
12420
- "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",
12421
- {
12422
- variants: {
12423
- variant: {
12424
- default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
12425
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
12426
- destructive: "border-transparent bg-red-600 text-white hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-600",
12427
- outline: "text-foreground",
12428
- success: "border-transparent bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600",
12429
- warning: "border-transparent bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-600 dark:hover:bg-yellow-500"
12430
- }
12431
- },
12432
- defaultVariants: {
12433
- variant: "default"
12434
- }
12435
- }
12436
- );
12437
- function Badge({ className, variant, ...props }) {
12438
- return /* @__PURE__ */ jsx67("div", { className: cn2(badgeVariants({ variant }), className), ...props });
12439
- }
12440
-
12441
12510
  // src/internal/components/Address.tsx
12442
- import * as React19 from "react";
12443
- import { Copy as Copy4, ExternalLink as ExternalLink2 } from "lucide-react";
12444
- import { jsx as jsx68, jsxs as jsxs49 } from "react/jsx-runtime";
12511
+ import { Copy as Copy3, ExternalLink } from "lucide-react";
12512
+ import * as React17 from "react";
12513
+ import { jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
12445
12514
  function toExplorerAddressUrl(address, chain) {
12446
12515
  const base2 = chain?.blockExplorers?.default?.url;
12447
12516
  if (!base2) return null;
@@ -12462,16 +12531,16 @@ var Address = ({
12462
12531
  }) => {
12463
12532
  const addr = address || "";
12464
12533
  const explorer = toExplorerAddressUrl(addr, chain || void 0);
12465
- const [copied, setCopied] = React19.useState(false);
12466
- if (!addr) return /* @__PURE__ */ jsx68("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12534
+ const [copied, setCopied] = React17.useState(false);
12535
+ if (!addr) return /* @__PURE__ */ jsx67("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12467
12536
  return /* @__PURE__ */ jsxs49("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
12468
- label && /* @__PURE__ */ jsx68("span", { className: "text-sm font-medium", children: label }),
12469
- /* @__PURE__ */ jsx68("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
12470
- showCopy && /* @__PURE__ */ jsx68(
12537
+ label && /* @__PURE__ */ jsx67("span", { className: "text-sm font-medium", children: label }),
12538
+ /* @__PURE__ */ jsx67("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
12539
+ showCopy && /* @__PURE__ */ jsx67(
12471
12540
  Button,
12472
12541
  {
12473
12542
  variant: "ghost",
12474
- size: "sm",
12543
+ size: "small",
12475
12544
  title: copied ? "Copied" : "Copy address",
12476
12545
  onClick: async () => {
12477
12546
  try {
@@ -12481,10 +12550,10 @@ var Address = ({
12481
12550
  } catch {
12482
12551
  }
12483
12552
  },
12484
- children: /* @__PURE__ */ jsx68(Copy4, { className: "h-4 w-4" })
12553
+ children: /* @__PURE__ */ jsx67(Copy3, { className: "h-4 w-4" })
12485
12554
  }
12486
12555
  ),
12487
- showExplorer && explorer && /* @__PURE__ */ jsx68(
12556
+ showExplorer && explorer && /* @__PURE__ */ jsx67(
12488
12557
  "a",
12489
12558
  {
12490
12559
  href: explorer,
@@ -12492,14 +12561,38 @@ var Address = ({
12492
12561
  rel: "noreferrer noopener",
12493
12562
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
12494
12563
  title: "Open in explorer",
12495
- children: /* @__PURE__ */ jsx68(ExternalLink2, { className: "h-4 w-4" })
12564
+ children: /* @__PURE__ */ jsx67(ExternalLink, { className: "h-4 w-4" })
12496
12565
  }
12497
12566
  )
12498
12567
  ] });
12499
12568
  };
12500
12569
 
12570
+ // src/internal/components/ui/badge.tsx
12571
+ import { cva as cva2 } from "class-variance-authority";
12572
+ import { jsx as jsx68 } from "react/jsx-runtime";
12573
+ var badgeVariants = cva2(
12574
+ "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",
12575
+ {
12576
+ variants: {
12577
+ variant: {
12578
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
12579
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
12580
+ destructive: "border-transparent bg-red-600 text-white hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-600",
12581
+ outline: "text-foreground",
12582
+ success: "border-transparent bg-green-600 text-white hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-600",
12583
+ warning: "border-transparent bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-600 dark:hover:bg-yellow-500"
12584
+ }
12585
+ },
12586
+ defaultVariants: {
12587
+ variant: "default"
12588
+ }
12589
+ }
12590
+ );
12591
+ function Badge({ className, variant, ...props }) {
12592
+ return /* @__PURE__ */ jsx68("div", { className: cn2(badgeVariants({ variant }), className), ...props });
12593
+ }
12594
+
12501
12595
  // src/internal/components/UserOpStatus.tsx
12502
- init_base();
12503
12596
  import { jsx as jsx69, jsxs as jsxs50 } from "react/jsx-runtime";
12504
12597
  var UserOpStatus = ({
12505
12598
  userOpHash,
@@ -12511,20 +12604,20 @@ var UserOpStatus = ({
12511
12604
  externalState
12512
12605
  }) => {
12513
12606
  const useExternalState = !!externalState;
12514
- const [internalReceipt, setInternalReceipt] = React20.useState(null);
12515
- const [internalMempool, setInternalMempool] = React20.useState(null);
12516
- const [internalError, setInternalError] = React20.useState(null);
12517
- const [attempt, setAttempt] = React20.useState(0);
12518
- const [internalRefreshing, setInternalRefreshing] = React20.useState(false);
12519
- const [timedOut, setTimedOut] = React20.useState(false);
12520
- const [rejected, setRejected] = React20.useState(false);
12521
- const intervalRef = React20.useRef(null);
12522
- const startTimeRef = React20.useRef(Date.now());
12607
+ const [internalReceipt, setInternalReceipt] = React18.useState(null);
12608
+ const [internalMempool, setInternalMempool] = React18.useState(null);
12609
+ const [internalError, setInternalError] = React18.useState(null);
12610
+ const [attempt, setAttempt] = React18.useState(0);
12611
+ const [internalRefreshing, setInternalRefreshing] = React18.useState(false);
12612
+ const [timedOut, setTimedOut] = React18.useState(false);
12613
+ const [rejected, setRejected] = React18.useState(false);
12614
+ const intervalRef = React18.useRef(null);
12615
+ const startTimeRef = React18.useRef(Date.now());
12523
12616
  const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
12524
12617
  const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
12525
12618
  const error = useExternalState ? externalState.error ?? null : internalError;
12526
12619
  const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
12527
- const rpc = React20.useCallback(async (method, params) => {
12620
+ const rpc = React18.useCallback(async (method, params) => {
12528
12621
  const body = { jsonrpc: "2.0", id: 1, method, params };
12529
12622
  const res = await fetch(getBundlerUrl(), {
12530
12623
  method: "POST",
@@ -12535,14 +12628,14 @@ var UserOpStatus = ({
12535
12628
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
12536
12629
  return json.result;
12537
12630
  }, []);
12538
- const extractMempoolInfo = React20.useCallback((m) => {
12631
+ const extractMempoolInfo = React18.useCallback((m) => {
12539
12632
  if (!m) return null;
12540
12633
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
12541
12634
  const sender = m.sender || m?.userOperation?.sender || null;
12542
12635
  if (!entryPoint && !sender) return null;
12543
12636
  return { entryPoint, sender };
12544
12637
  }, []);
12545
- const tick = React20.useCallback(async () => {
12638
+ const tick = React18.useCallback(async () => {
12546
12639
  if (useExternalState) return;
12547
12640
  const elapsed = Date.now() - startTimeRef.current;
12548
12641
  if (elapsed > maxPollTimeMs) {
@@ -12586,7 +12679,7 @@ var UserOpStatus = ({
12586
12679
  setAttempt((x) => x + 1);
12587
12680
  }
12588
12681
  }, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
12589
- React20.useEffect(() => {
12682
+ React18.useEffect(() => {
12590
12683
  if (useExternalState) return;
12591
12684
  console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
12592
12685
  startTimeRef.current = Date.now();
@@ -12598,7 +12691,7 @@ var UserOpStatus = ({
12598
12691
  setAttempt(0);
12599
12692
  setInternalRefreshing(false);
12600
12693
  }, [userOpHash, useExternalState]);
12601
- React20.useEffect(() => {
12694
+ React18.useEffect(() => {
12602
12695
  if (useExternalState) {
12603
12696
  console.log("[UserOpStatus] Using external state, skipping internal polling");
12604
12697
  return;
@@ -12664,7 +12757,10 @@ var UserOpStatus = ({
12664
12757
  return /* @__PURE__ */ jsxs50(
12665
12758
  "div",
12666
12759
  {
12667
- className: cn2("lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]", className),
12760
+ className: cn2(
12761
+ "lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]",
12762
+ className
12763
+ ),
12668
12764
  style: { textAlign: "left", listStyle: "none" },
12669
12765
  children: [
12670
12766
  /* @__PURE__ */ jsxs50("div", { className: "flex items-center justify-between mb-3", children: [
@@ -12672,7 +12768,7 @@ var UserOpStatus = ({
12672
12768
  stateBadge(),
12673
12769
  /* @__PURE__ */ jsx69("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
12674
12770
  ] }),
12675
- /* @__PURE__ */ jsxs50(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
12771
+ /* @__PURE__ */ jsxs50(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
12676
12772
  /* @__PURE__ */ jsx69(RefreshCw4, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
12677
12773
  /* @__PURE__ */ jsx69("span", { className: "text-xs", children: "Refresh" })
12678
12774
  ] })
@@ -12684,7 +12780,7 @@ var UserOpStatus = ({
12684
12780
  Button,
12685
12781
  {
12686
12782
  variant: "ghost",
12687
- size: "sm",
12783
+ size: "small",
12688
12784
  className: "h-8 w-8 p-0",
12689
12785
  onClick: async () => {
12690
12786
  try {
@@ -12692,7 +12788,7 @@ var UserOpStatus = ({
12692
12788
  } catch {
12693
12789
  }
12694
12790
  },
12695
- children: /* @__PURE__ */ jsx69(Copy5, { className: "h-3.5 w-3.5" })
12791
+ children: /* @__PURE__ */ jsx69(Copy4, { className: "h-3.5 w-3.5" })
12696
12792
  }
12697
12793
  )
12698
12794
  ] }),
@@ -12703,7 +12799,7 @@ var UserOpStatus = ({
12703
12799
  Button,
12704
12800
  {
12705
12801
  variant: "ghost",
12706
- size: "sm",
12802
+ size: "small",
12707
12803
  className: "h-8 w-8 p-0",
12708
12804
  onClick: async () => {
12709
12805
  try {
@@ -12711,7 +12807,7 @@ var UserOpStatus = ({
12711
12807
  } catch {
12712
12808
  }
12713
12809
  },
12714
- children: /* @__PURE__ */ jsx69(Copy5, { className: "h-3.5 w-3.5" })
12810
+ children: /* @__PURE__ */ jsx69(Copy4, { className: "h-3.5 w-3.5" })
12715
12811
  }
12716
12812
  ),
12717
12813
  chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx69(
@@ -12722,7 +12818,7 @@ var UserOpStatus = ({
12722
12818
  rel: "noreferrer noopener",
12723
12819
  className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
12724
12820
  title: "Open in explorer",
12725
- children: /* @__PURE__ */ jsx69(ExternalLink3, { className: "h-3.5 w-3.5" })
12821
+ children: /* @__PURE__ */ jsx69(ExternalLink2, { className: "h-3.5 w-3.5" })
12726
12822
  }
12727
12823
  )
12728
12824
  ] }),
@@ -12771,8 +12867,8 @@ var UserOpStatus = ({
12771
12867
  };
12772
12868
 
12773
12869
  // src/internal/components/Hash.tsx
12774
- import * as React21 from "react";
12775
- import { Copy as Copy6, ExternalLink as ExternalLink4 } from "lucide-react";
12870
+ import { Copy as Copy5, ExternalLink as ExternalLink3 } from "lucide-react";
12871
+ import * as React19 from "react";
12776
12872
  import { jsx as jsx70, jsxs as jsxs51 } from "react/jsx-runtime";
12777
12873
  function toExplorerUrl(kind, value, chain) {
12778
12874
  const base2 = chain?.blockExplorers?.default?.url;
@@ -12796,7 +12892,7 @@ var Hash = ({
12796
12892
  }) => {
12797
12893
  const value = hash || "";
12798
12894
  const explorer = toExplorerUrl(kind, value, chain || void 0);
12799
- const [copied, setCopied] = React21.useState(false);
12895
+ const [copied, setCopied] = React19.useState(false);
12800
12896
  if (!value) return /* @__PURE__ */ jsx70("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12801
12897
  return /* @__PURE__ */ jsxs51("div", { className: cn2("flex items-center gap-2", className), children: [
12802
12898
  label && /* @__PURE__ */ jsx70("span", { className: "text-sm font-medium", children: label }),
@@ -12805,7 +12901,7 @@ var Hash = ({
12805
12901
  Button,
12806
12902
  {
12807
12903
  variant: "ghost",
12808
- size: "sm",
12904
+ size: "small",
12809
12905
  title: copied ? "Copied" : "Copy",
12810
12906
  onClick: async () => {
12811
12907
  try {
@@ -12815,7 +12911,7 @@ var Hash = ({
12815
12911
  } catch {
12816
12912
  }
12817
12913
  },
12818
- children: /* @__PURE__ */ jsx70(Copy6, { className: "h-4 w-4" })
12914
+ children: /* @__PURE__ */ jsx70(Copy5, { className: "h-4 w-4" })
12819
12915
  }
12820
12916
  ),
12821
12917
  showExplorer && explorer && /* @__PURE__ */ jsx70(
@@ -12826,7 +12922,7 @@ var Hash = ({
12826
12922
  rel: "noreferrer noopener",
12827
12923
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
12828
12924
  title: "Open in explorer",
12829
- children: /* @__PURE__ */ jsx70(ExternalLink4, { className: "h-4 w-4" })
12925
+ children: /* @__PURE__ */ jsx70(ExternalLink3, { className: "h-4 w-4" })
12830
12926
  }
12831
12927
  )
12832
12928
  ] });
@@ -12834,13 +12930,13 @@ var Hash = ({
12834
12930
 
12835
12931
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
12836
12932
  init_base();
12837
- import { useEffect as useEffect32, useState as useState18 } from "react";
12933
+ import { useEffect as useEffect34, useState as useState17 } from "react";
12838
12934
  import { jsx as jsx71, jsxs as jsxs52 } from "react/jsx-runtime";
12839
12935
  var TransactionsList = ({ address, itemsCount = 10 }) => {
12840
- const [transactions, setTransactions] = useState18([]);
12841
- const [loading, setLoading] = useState18(true);
12842
- const [error, setError] = useState18(null);
12843
- useEffect32(() => {
12936
+ const [transactions, setTransactions] = useState17([]);
12937
+ const [loading, setLoading] = useState17(true);
12938
+ const [error, setError] = useState17(null);
12939
+ useEffect34(() => {
12844
12940
  const fetchTransactions = async () => {
12845
12941
  try {
12846
12942
  setLoading(true);
@@ -12866,7 +12962,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12866
12962
  fetchTransactions();
12867
12963
  }
12868
12964
  }, [address, itemsCount]);
12869
- const formatValue2 = (value) => {
12965
+ const formatValue3 = (value) => {
12870
12966
  try {
12871
12967
  const wei = BigInt(value);
12872
12968
  const eth = Number(wei) / 1e18;
@@ -12936,7 +13032,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12936
13032
  /* @__PURE__ */ jsxs52("div", { children: [
12937
13033
  /* @__PURE__ */ jsx71("span", { className: "text-gray-600", children: "Value:" }),
12938
13034
  /* @__PURE__ */ jsxs52("span", { className: "font-semibold ml-1", children: [
12939
- formatValue2(tx.value),
13035
+ formatValue3(tx.value),
12940
13036
  " LUMIA"
12941
13037
  ] })
12942
13038
  ] })
@@ -12960,7 +13056,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
12960
13056
 
12961
13057
  // src/hooks/useUserOpStatus.ts
12962
13058
  init_base();
12963
- import * as React23 from "react";
13059
+ import * as React21 from "react";
12964
13060
  function useUserOpStatus(options = {}) {
12965
13061
  const {
12966
13062
  userOpHash,
@@ -12971,16 +13067,16 @@ function useUserOpStatus(options = {}) {
12971
13067
  onReceipt,
12972
13068
  onTxHash
12973
13069
  } = options;
12974
- const [state, setState] = React23.useState("waiting");
12975
- const [receipt, setReceipt] = React23.useState(null);
12976
- const [mempool, setMempool] = React23.useState(null);
12977
- const [txHash, setTxHash] = React23.useState(null);
12978
- const [error, setError] = React23.useState(null);
12979
- const [isPolling, setIsPolling] = React23.useState(false);
12980
- const intervalRef = React23.useRef(null);
12981
- const startTimeRef = React23.useRef(Date.now());
12982
- const prevStateRef = React23.useRef("waiting");
12983
- const rpc = React23.useCallback(async (method, params) => {
13070
+ const [state, setState] = React21.useState("waiting");
13071
+ const [receipt, setReceipt] = React21.useState(null);
13072
+ const [mempool, setMempool] = React21.useState(null);
13073
+ const [txHash, setTxHash] = React21.useState(null);
13074
+ const [error, setError] = React21.useState(null);
13075
+ const [isPolling, setIsPolling] = React21.useState(false);
13076
+ const intervalRef = React21.useRef(null);
13077
+ const startTimeRef = React21.useRef(Date.now());
13078
+ const prevStateRef = React21.useRef("waiting");
13079
+ const rpc = React21.useCallback(async (method, params) => {
12984
13080
  const body = { jsonrpc: "2.0", id: 1, method, params };
12985
13081
  const res = await fetch(getBundlerUrl(), {
12986
13082
  method: "POST",
@@ -12991,21 +13087,21 @@ function useUserOpStatus(options = {}) {
12991
13087
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
12992
13088
  return json.result;
12993
13089
  }, []);
12994
- const extractMempoolInfo = React23.useCallback((m) => {
13090
+ const extractMempoolInfo = React21.useCallback((m) => {
12995
13091
  if (!m) return null;
12996
13092
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
12997
13093
  const sender = m.sender || m?.userOperation?.sender || null;
12998
13094
  if (!entryPoint && !sender) return null;
12999
13095
  return { entryPoint, sender };
13000
13096
  }, []);
13001
- const updateState = React23.useCallback((newState) => {
13097
+ const updateState = React21.useCallback((newState) => {
13002
13098
  setState(newState);
13003
13099
  if (prevStateRef.current !== newState) {
13004
13100
  prevStateRef.current = newState;
13005
13101
  onStateChange?.(newState);
13006
13102
  }
13007
13103
  }, [onStateChange]);
13008
- const tick = React23.useCallback(async () => {
13104
+ const tick = React21.useCallback(async () => {
13009
13105
  if (!userOpHash || !enabled) return;
13010
13106
  if (receipt) {
13011
13107
  console.log("[useUserOpStatus] Already have receipt, skipping tick");
@@ -13078,7 +13174,7 @@ function useUserOpStatus(options = {}) {
13078
13174
  onTxHash,
13079
13175
  onReceipt
13080
13176
  ]);
13081
- React23.useEffect(() => {
13177
+ React21.useEffect(() => {
13082
13178
  if (!userOpHash || !enabled) return;
13083
13179
  console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
13084
13180
  startTimeRef.current = Date.now();
@@ -13090,7 +13186,7 @@ function useUserOpStatus(options = {}) {
13090
13186
  setError(null);
13091
13187
  setIsPolling(false);
13092
13188
  }, [userOpHash, enabled]);
13093
- React23.useEffect(() => {
13189
+ React21.useEffect(() => {
13094
13190
  if (!userOpHash || !enabled) {
13095
13191
  console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
13096
13192
  return;
@@ -13126,7 +13222,7 @@ function useUserOpStatus(options = {}) {
13126
13222
  }
13127
13223
  };
13128
13224
  }, [userOpHash, enabled, pollMs]);
13129
- const refresh = React23.useCallback(async () => {
13225
+ const refresh = React21.useCallback(async () => {
13130
13226
  await tick();
13131
13227
  }, [tick]);
13132
13228
  return {
@@ -13142,11 +13238,11 @@ function useUserOpStatus(options = {}) {
13142
13238
 
13143
13239
  // src/hooks/useLogout.ts
13144
13240
  import { logout as coreLogout, jwtTokenManager as jwtTokenManager3 } from "@lumiapassport/core/auth";
13145
- import { useCallback as useCallback21 } from "react";
13241
+ import { useCallback as useCallback22 } from "react";
13146
13242
  function useLogout() {
13147
13243
  const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
13148
13244
  const { callbacks } = useLumiaPassportConfig();
13149
- const logout2 = useCallback21(async () => {
13245
+ const logout2 = useCallback22(async () => {
13150
13246
  const prevAddress = address;
13151
13247
  let userId = null;
13152
13248
  setIsLoading(true);
@@ -13293,49 +13389,6 @@ function useSmartAccountTransactions() {
13293
13389
  };
13294
13390
  }
13295
13391
 
13296
- // src/modules/linkedProfiles.ts
13297
- import * as React24 from "react";
13298
- init_auth();
13299
- init_common();
13300
- init_types();
13301
- function useLumiaPassportLinkedProfiles() {
13302
- const { providersVersion } = useLumiaPassportConfig();
13303
- const [profiles, setProfiles] = React24.useState([]);
13304
- const [avatar, setAvatar] = React24.useState(null);
13305
- const [isLoading, setIsLoading] = React24.useState(false);
13306
- const [error, setError] = React24.useState(null);
13307
- const load = React24.useCallback(async () => {
13308
- setIsLoading(true);
13309
- setError(null);
13310
- try {
13311
- const list = await getLinkedProviders();
13312
- const enriched = list.map((p) => {
13313
- const info = getProviderDisplayInfo(p.provider);
13314
- return {
13315
- ...p,
13316
- displayName: info.name,
13317
- icon: info.icon
13318
- // color: info.color,
13319
- };
13320
- });
13321
- setProfiles(enriched);
13322
- try {
13323
- setAvatar(jwtTokenManager2.getAvatar() || null);
13324
- } catch {
13325
- setAvatar(null);
13326
- }
13327
- } catch (e) {
13328
- setError(e?.message || "Failed to load linked profiles");
13329
- } finally {
13330
- setIsLoading(false);
13331
- }
13332
- }, []);
13333
- React24.useEffect(() => {
13334
- load();
13335
- }, [load, providersVersion]);
13336
- return { profiles, avatar, isLoading, error, refresh: load };
13337
- }
13338
-
13339
13392
  // src/index.ts
13340
13393
  init_iframe_manager();
13341
13394
  (() => {