@lumiapassport/ui-kit 1.15.12 → 1.16.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/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +829 -827
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +939 -937
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -4483,7 +4483,7 @@ var init_profile = __esm({
|
|
|
4483
4483
|
});
|
|
4484
4484
|
|
|
4485
4485
|
// src/styles/built.css
|
|
4486
|
-
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .sticky{position:sticky}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-0{right:0}.lumia-scope .-right-0\\.5{right:-.125rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-0{top:0}.lumia-scope .-top-0\\.5{top:-.125rem}.lumia-scope .-top-1{top:-.25rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .-top-3{top:-.75rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-0{right:0}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .m-4{margin:1rem}.lumia-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .aspect-square{aspect-ratio:1/1}.lumia-scope .size-3{width:.75rem;height:.75rem}.lumia-scope .size-3\\.5{width:.875rem;height:.875rem}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .h-1{height:.25rem}.lumia-scope .h-1\\.5{height:.375rem}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-7{height:1.75rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-\\[48px\\]{height:48px}.lumia-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-64{max-height:16rem}.lumia-scope .max-h-80{max-height:20rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .max-h-full{max-height:100%}.lumia-scope .w-1{width:.25rem}.lumia-scope .w-1\\.5{width:.375rem}.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-72{width:18rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[40px\\]{width:40px}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-4{min-width:1rem}.lumia-scope .min-w-5{min-width:1.25rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[8rem\\]{min-width:8rem}.lumia-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[150px\\]{max-width:150px}.lumia-scope .max-w-\\[160px\\]{max-width:160px}.lumia-scope .max-w-\\[256px\\]{max-width:256px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[80px\\]{max-width:80px}.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 .rotate-180{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 .rotate-180{--tw-rotate:180deg}.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-warning)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-help{cursor:help}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lumia-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lumia-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lumia-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-0\\.5{gap:.125rem}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-1\\.5{gap:.375rem}.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 :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-x-hidden{overflow-x:hidden}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-normal{overflow-wrap:normal;word-break:normal}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-border\\)\\]{border-color:var(--l-pass-border)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-accent\\)\\]{background-color:var(--l-pass-accent)}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-muted\\)\\]{background-color:var(--l-pass-bg-muted)}.lumia-scope .bg-\\[var\\(--l-pass-bg-secondary\\)\\]{background-color:var(--l-pass-bg-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-error\\)\\]{background-color:var(--l-pass-error)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-black\\/90{background-color:rgba(0,0,0,.9)}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[2px\\]{padding:2px}.lumia-scope .p-\\[var\\(--l-pass-gap\\)\\]{padding:var(--l-pass-gap)}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-1{padding-left:.25rem;padding-right:.25rem}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-gap\\)\\]{padding-left:var(--l-pass-gap);padding-right:var(--l-pass-gap)}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pl-2{padding-left:.5rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pr-8{padding-right:2rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[14px\\]{font-size:14px}.lumia-scope .text-\\[16px\\]{font-size:16px}.lumia-scope .text-\\[8px\\]{font-size:8px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-normal{font-weight:400}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .lowercase{text-transform:lowercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-8{line-height:2rem}.lumia-scope .leading-\\[8px\\]{line-height:8px}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .tracking-wider{letter-spacing:.05em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-2{text-underline-offset:2px}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .shadow-sm,.lumia-scope .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,384px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#ebebeb);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,var(--l-pass-secondary));--l-pass-success:var(--lumia-passport-success,#000);--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,#000);--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.6));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.6));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.4));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,var(--l-pass-secondary));--l-pass-success:var(--lumia-passport-success,#000);--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,#000);--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.lumia-scope input,.lumia-scope textarea{font-size:16px!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 20px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.lumia-scope .file\\:mr-\\[var\\(--l-pass-gap\\)\\]::file-selector-button{margin-right:var(--l-pass-gap)}.lumia-scope .file\\:h-12::file-selector-button{height:3rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.lumia-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg-secondary\\)\\]:hover{background-color:var(--l-pass-bg-secondary)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-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\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:bg-transparent:focus{background-color:transparent}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-secondary\\)\\]:hover:disabled{background-color:var(--l-pass-secondary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.lumia-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.lumia-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}.lumia-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--l-pass-gap\\)\\][data-slot=select-value]>*){gap:var(--l-pass-gap)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\'size-\\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4486
|
+
var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .sticky{position:sticky}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-0{right:0}.lumia-scope .-right-0\\.5{right:-.125rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-0{top:0}.lumia-scope .-top-0\\.5{top:-.125rem}.lumia-scope .-top-1{top:-.25rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .-top-3{top:-.75rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-0{right:0}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .m-4{margin:1rem}.lumia-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .aspect-square{aspect-ratio:1/1}.lumia-scope .size-3{width:.75rem;height:.75rem}.lumia-scope .size-3\\.5{width:.875rem;height:.875rem}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .h-1{height:.25rem}.lumia-scope .h-1\\.5{height:.375rem}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-7{height:1.75rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-\\[48px\\]{height:48px}.lumia-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-64{max-height:16rem}.lumia-scope .max-h-80{max-height:20rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .max-h-full{max-height:100%}.lumia-scope .w-1{width:.25rem}.lumia-scope .w-1\\.5{width:.375rem}.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-72{width:18rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[40px\\]{width:40px}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-4{min-width:1rem}.lumia-scope .min-w-5{min-width:1.25rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[8rem\\]{min-width:8rem}.lumia-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[150px\\]{max-width:150px}.lumia-scope .max-w-\\[160px\\]{max-width:160px}.lumia-scope .max-w-\\[256px\\]{max-width:256px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[80px\\]{max-width:80px}.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 .rotate-180{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 .rotate-180{--tw-rotate:180deg}.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-warning)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-help{cursor:help}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lumia-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lumia-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lumia-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-1\\.5{gap:.375rem}.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 :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-x-hidden{overflow-x:hidden}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-normal{overflow-wrap:normal;word-break:normal}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-border\\)\\]{border-color:var(--l-pass-border)}.lumia-scope .border-\\[var\\(--l-pass-error\\)\\]{border-color:var(--l-pass-error)}.lumia-scope .border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.lumia-scope .border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.lumia-scope .border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.lumia-scope .border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.lumia-scope .border-amber-900{--tw-border-opacity:1;border-color:rgb(120 53 15/var(--tw-border-opacity,1))}.lumia-scope .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.lumia-scope .border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.lumia-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.lumia-scope .border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-900{--tw-border-opacity:1;border-color:rgb(30 58 138/var(--tw-border-opacity,1))}.lumia-scope .border-current{border-color:currentColor}.lumia-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.lumia-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.lumia-scope .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.lumia-scope .border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity,1))}.lumia-scope .border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.lumia-scope .border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.lumia-scope .border-green-800{--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.lumia-scope .border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.lumia-scope .border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.lumia-scope .border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[var\\(--l-pass-accent\\)\\]{background-color:var(--l-pass-accent)}.lumia-scope .bg-\\[var\\(--l-pass-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-muted\\)\\]{background-color:var(--l-pass-bg-muted)}.lumia-scope .bg-\\[var\\(--l-pass-bg-secondary\\)\\]{background-color:var(--l-pass-bg-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-error\\)\\]{background-color:var(--l-pass-error)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-black\\/90{background-color:rgba(0,0,0,.9)}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[2px\\]{padding:2px}.lumia-scope .p-\\[var\\(--l-pass-gap\\)\\]{padding:var(--l-pass-gap)}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-1{padding-left:.25rem;padding-right:.25rem}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-gap\\)\\]{padding-left:var(--l-pass-gap);padding-right:var(--l-pass-gap)}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pl-2{padding-left:.5rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pr-8{padding-right:2rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[14px\\]{font-size:14px}.lumia-scope .text-\\[16px\\]{font-size:16px}.lumia-scope .text-\\[8px\\]{font-size:8px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-normal{font-weight:400}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .lowercase{text-transform:lowercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-8{line-height:2rem}.lumia-scope .leading-\\[8px\\]{line-height:8px}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .tracking-wider{letter-spacing:.05em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-2{text-underline-offset:2px}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .shadow-sm,.lumia-scope .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,384px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#ebebeb);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,var(--l-pass-secondary));--l-pass-success:var(--lumia-passport-success,#000);--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,#000);--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.6));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.6));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.4));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,var(--l-pass-secondary));--l-pass-success:var(--lumia-passport-success,#000);--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,#000);--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.lumia-scope input,.lumia-scope textarea{font-size:16px!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 20px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.lumia-scope .file\\:mr-\\[var\\(--l-pass-gap\\)\\]::file-selector-button{margin-right:var(--l-pass-gap)}.lumia-scope .file\\:h-12::file-selector-button{height:3rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.lumia-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg-secondary\\)\\]:hover{background-color:var(--l-pass-bg-secondary)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-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\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:bg-transparent:focus{background-color:transparent}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-secondary\\)\\]:hover:disabled{background-color:var(--l-pass-secondary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.lumia-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.lumia-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}.lumia-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--l-pass-gap\\)\\][data-slot=select-value]>*){gap:var(--l-pass-gap)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\'size-\\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4487
4487
|
|
|
4488
4488
|
// src/context/LumiaPassportContext.tsx
|
|
4489
4489
|
init_lumiaPassport();
|
|
@@ -4492,15 +4492,15 @@ import { initSdkErrorTracking } from "@lumiapassport/core/internal/error-trackin
|
|
|
4492
4492
|
import { merge as merge2 } from "lodash-es";
|
|
4493
4493
|
import {
|
|
4494
4494
|
createContext,
|
|
4495
|
-
useCallback as
|
|
4495
|
+
useCallback as useCallback22,
|
|
4496
4496
|
useContext,
|
|
4497
|
-
useEffect as
|
|
4497
|
+
useEffect as useEffect36,
|
|
4498
4498
|
useMemo as useMemo8,
|
|
4499
4499
|
useRef as useRef15
|
|
4500
4500
|
} from "react";
|
|
4501
4501
|
|
|
4502
4502
|
// src/context/LumiaPassportSessionContext.tsx
|
|
4503
|
-
import { Fragment as
|
|
4503
|
+
import { Fragment as Fragment27 } from "react";
|
|
4504
4504
|
import { create as create6 } from "zustand";
|
|
4505
4505
|
|
|
4506
4506
|
// src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
|
|
@@ -4679,7 +4679,7 @@ function BalanceFeedProvider() {
|
|
|
4679
4679
|
|
|
4680
4680
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
4681
4681
|
import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
|
|
4682
|
-
import { useEffect as
|
|
4682
|
+
import { useEffect as useEffect34 } from "react";
|
|
4683
4683
|
|
|
4684
4684
|
// src/internal/components/Footer/Footer.tsx
|
|
4685
4685
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
@@ -5518,7 +5518,7 @@ function Header() {
|
|
|
5518
5518
|
// package.json
|
|
5519
5519
|
var package_default = {
|
|
5520
5520
|
name: "@lumiapassport/ui-kit",
|
|
5521
|
-
version: "1.
|
|
5521
|
+
version: "1.16.0",
|
|
5522
5522
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
5523
5523
|
type: "module",
|
|
5524
5524
|
main: "./dist/index.cjs",
|
|
@@ -6021,7 +6021,7 @@ function useDetectMaxScrollHeight() {
|
|
|
6021
6021
|
}
|
|
6022
6022
|
|
|
6023
6023
|
// src/internal/hooks/usePageMapper.tsx
|
|
6024
|
-
import { useCallback as
|
|
6024
|
+
import { useCallback as useCallback19, useEffect as useEffect31 } from "react";
|
|
6025
6025
|
|
|
6026
6026
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
6027
6027
|
import { AnimatePresence, motion } from "framer-motion";
|
|
@@ -8342,7 +8342,7 @@ function BuyMenu() {
|
|
|
8342
8342
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8343
8343
|
import { useMutation as useMutation9, useQuery as useQuery7, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
|
|
8344
8344
|
import { AlertCircle as AlertCircle2, CheckCircle2, CloudDownload as CloudDownload2, Loader as Loader10, UserCircle as UserCircle2 } from "lucide-react";
|
|
8345
|
-
import { useEffect as
|
|
8345
|
+
import { useEffect as useEffect20 } from "react";
|
|
8346
8346
|
init_vaultClient();
|
|
8347
8347
|
|
|
8348
8348
|
// src/internal/components/ui/switch.tsx
|
|
@@ -8943,7 +8943,7 @@ import { AlertCircle, FileUp as FileUp2, Upload, User } from "lucide-react";
|
|
|
8943
8943
|
|
|
8944
8944
|
// src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
|
|
8945
8945
|
import { ChevronRight as ChevronRight2, Eye, EyeOff, Info as Info2, Key as Key4, Loader as Loader8, Plus } from "lucide-react";
|
|
8946
|
-
import { useRef as useRef12 } from "react";
|
|
8946
|
+
import { useEffect as useEffect17, useRef as useRef12 } from "react";
|
|
8947
8947
|
import { Fragment as Fragment9, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
8948
8948
|
function PasswordPasskey(props) {
|
|
8949
8949
|
const {
|
|
@@ -8969,8 +8969,13 @@ function PasswordPasskey(props) {
|
|
|
8969
8969
|
setUsePasskey,
|
|
8970
8970
|
setRestoreFile
|
|
8971
8971
|
} = useRestoreStore();
|
|
8972
|
+
const { config } = useLumiaPassportConfig();
|
|
8973
|
+
const isPasskeyEnabled = config.current.passkey.enabled;
|
|
8974
|
+
useEffect17(() => {
|
|
8975
|
+
if (!isPasskeyEnabled && usePasskey) setUsePasskey(false);
|
|
8976
|
+
}, [isPasskeyEnabled, usePasskey]);
|
|
8972
8977
|
return /* @__PURE__ */ jsxs32(Fragment9, { children: [
|
|
8973
|
-
mode === "backup" && /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-center px-[var(--l-pass-pd)]", children: [
|
|
8978
|
+
mode === "backup" && isPasskeyEnabled && /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-center px-[var(--l-pass-pd)]", children: [
|
|
8974
8979
|
/* @__PURE__ */ jsxs32(
|
|
8975
8980
|
Button,
|
|
8976
8981
|
{
|
|
@@ -9245,7 +9250,7 @@ function File2(props) {
|
|
|
9245
9250
|
import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
|
|
9246
9251
|
import dayjs from "dayjs";
|
|
9247
9252
|
import { Download, Key as Key5, Upload as Upload2 } from "lucide-react";
|
|
9248
|
-
import { useEffect as
|
|
9253
|
+
import { useEffect as useEffect18 } from "react";
|
|
9249
9254
|
import { Fragment as Fragment12, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
9250
9255
|
function Server(props) {
|
|
9251
9256
|
const { isLoading, mode = "restore", serverHandler, createPasskeyHandler } = props;
|
|
@@ -9253,7 +9258,7 @@ function Server(props) {
|
|
|
9253
9258
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9254
9259
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
9255
9260
|
const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
|
|
9256
|
-
|
|
9261
|
+
useEffect18(() => {
|
|
9257
9262
|
if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
|
|
9258
9263
|
setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
|
|
9259
9264
|
}, [mode, serverRecoveryStatus, setUsePasskey]);
|
|
@@ -9287,7 +9292,7 @@ function Server(props) {
|
|
|
9287
9292
|
// src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
|
|
9288
9293
|
import { useQuery as useQuery6 } from "@tanstack/react-query";
|
|
9289
9294
|
import { ArrowLeft as ArrowLeft6, CloudDownload, CloudUpload, Loader as Loader9 } from "lucide-react";
|
|
9290
|
-
import { useEffect as
|
|
9295
|
+
import { useEffect as useEffect19 } from "react";
|
|
9291
9296
|
|
|
9292
9297
|
// src/internal/components/ui/select.tsx
|
|
9293
9298
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
@@ -9435,7 +9440,7 @@ function Cloud2(props) {
|
|
|
9435
9440
|
return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
|
|
9436
9441
|
}
|
|
9437
9442
|
});
|
|
9438
|
-
|
|
9443
|
+
useEffect19(() => {
|
|
9439
9444
|
if (isCloudProvidersLoading) return;
|
|
9440
9445
|
if (!!cloudProvidersError) {
|
|
9441
9446
|
console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
|
|
@@ -9526,7 +9531,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9526
9531
|
setSuccess,
|
|
9527
9532
|
setMethod
|
|
9528
9533
|
} = useRestoreStore();
|
|
9529
|
-
|
|
9534
|
+
useEffect20(() => {
|
|
9530
9535
|
setIsDialogForced(true);
|
|
9531
9536
|
return () => {
|
|
9532
9537
|
setRestorePassword("");
|
|
@@ -9551,7 +9556,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9551
9556
|
queryFn: async () => await getShareRecoveryStats()
|
|
9552
9557
|
});
|
|
9553
9558
|
const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
9554
|
-
|
|
9559
|
+
useEffect20(() => {
|
|
9555
9560
|
if (!!hasServerBackup) setMethod("server");
|
|
9556
9561
|
}, [hasServerBackup]);
|
|
9557
9562
|
const { mutate: disconnect, isPending: isDisconnecting } = useMutation9({
|
|
@@ -9677,7 +9682,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9677
9682
|
// src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx
|
|
9678
9683
|
import { useQuery as useQuery8 } from "@tanstack/react-query";
|
|
9679
9684
|
import { AlertCircle as AlertCircle3, ArrowLeft as ArrowLeft7, CheckCircle2 as CheckCircle22, Loader as Loader11, LockIcon } from "lucide-react";
|
|
9680
|
-
import { useEffect as
|
|
9685
|
+
import { useEffect as useEffect21 } from "react";
|
|
9681
9686
|
init_vaultClient();
|
|
9682
9687
|
import { Fragment as Fragment15, jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
9683
9688
|
var COMPONENTS = {
|
|
@@ -9703,7 +9708,7 @@ function KeyshareBackupMenu() {
|
|
|
9703
9708
|
setUsePasskey,
|
|
9704
9709
|
setMethod
|
|
9705
9710
|
} = useRestoreStore();
|
|
9706
|
-
|
|
9711
|
+
useEffect21(() => {
|
|
9707
9712
|
setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT);
|
|
9708
9713
|
return () => {
|
|
9709
9714
|
setSuccess(null);
|
|
@@ -9721,7 +9726,7 @@ function KeyshareBackupMenu() {
|
|
|
9721
9726
|
queryFn: async () => await getShareRecoveryStats()
|
|
9722
9727
|
});
|
|
9723
9728
|
const hasRecoveryData = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
9724
|
-
|
|
9729
|
+
useEffect21(() => {
|
|
9725
9730
|
if (!!hasRecoveryData) setMethod("server");
|
|
9726
9731
|
}, [hasRecoveryData]);
|
|
9727
9732
|
const {
|
|
@@ -9820,7 +9825,7 @@ function KeyshareBackupMenu() {
|
|
|
9820
9825
|
|
|
9821
9826
|
// src/internal/components/MainMenu/MainMenu.tsx
|
|
9822
9827
|
import { ChevronLeft, ChevronRight as ChevronRight3, DollarSign as DollarSign3, Wallet2 as Wallet23 } from "lucide-react";
|
|
9823
|
-
import { useEffect as
|
|
9828
|
+
import { useEffect as useEffect22 } from "react";
|
|
9824
9829
|
|
|
9825
9830
|
// src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
|
|
9826
9831
|
init_common();
|
|
@@ -9850,7 +9855,7 @@ function MainMenu() {
|
|
|
9850
9855
|
const address = useLumiaPassportSession((st) => st.address);
|
|
9851
9856
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9852
9857
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9853
|
-
|
|
9858
|
+
useEffect22(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
|
|
9854
9859
|
useProvidersList();
|
|
9855
9860
|
return /* @__PURE__ */ jsx47("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: /* @__PURE__ */ jsx47("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--l-pass-gap)] py-[10px] md:py-1", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon2 }) => /* @__PURE__ */ jsxs40(
|
|
9856
9861
|
Button,
|
|
@@ -10289,7 +10294,7 @@ function EmailNotConnectedWarning() {
|
|
|
10289
10294
|
|
|
10290
10295
|
// src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
|
|
10291
10296
|
import { useQueryClient as useQueryClient11 } from "@tanstack/react-query";
|
|
10292
|
-
import React5, { useEffect as
|
|
10297
|
+
import React5, { useEffect as useEffect23 } from "react";
|
|
10293
10298
|
init_auth();
|
|
10294
10299
|
function useLinkSocial() {
|
|
10295
10300
|
const qc = useQueryClient11();
|
|
@@ -10354,7 +10359,7 @@ function useLinkSocial() {
|
|
|
10354
10359
|
[config.social?.providers, callbacks]
|
|
10355
10360
|
);
|
|
10356
10361
|
const [socialLinkStarted, setSocialLinkStarted] = React5.useState(false);
|
|
10357
|
-
|
|
10362
|
+
useEffect23(() => {
|
|
10358
10363
|
const key = providerType?.toLowerCase();
|
|
10359
10364
|
console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
|
|
10360
10365
|
if (isWalletLinking) {
|
|
@@ -10376,7 +10381,7 @@ function useLinkSocial() {
|
|
|
10376
10381
|
// src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
|
|
10377
10382
|
init_telegram2();
|
|
10378
10383
|
import { useQueryClient as useQueryClient12 } from "@tanstack/react-query";
|
|
10379
|
-
import { useCallback as useCallback12, useEffect as
|
|
10384
|
+
import { useCallback as useCallback12, useEffect as useEffect24, useState as useState10 } from "react";
|
|
10380
10385
|
function useLinkTelegram() {
|
|
10381
10386
|
const {
|
|
10382
10387
|
config: { current: config },
|
|
@@ -10430,7 +10435,7 @@ function useLinkTelegram() {
|
|
|
10430
10435
|
}
|
|
10431
10436
|
}, [config.social?.providers, callbacks]);
|
|
10432
10437
|
const [telegramLinkStarted, setTelegramLinkStarted] = useState10(false);
|
|
10433
|
-
|
|
10438
|
+
useEffect24(() => {
|
|
10434
10439
|
console.log("[useLinkTelegram] Effect triggered:", {
|
|
10435
10440
|
providerType,
|
|
10436
10441
|
linkIsLoading,
|
|
@@ -10447,7 +10452,7 @@ function useLinkTelegram() {
|
|
|
10447
10452
|
handleLinkTelegram();
|
|
10448
10453
|
}
|
|
10449
10454
|
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
|
|
10450
|
-
|
|
10455
|
+
useEffect24(() => {
|
|
10451
10456
|
if (providerType !== "telegram") {
|
|
10452
10457
|
setTelegramLinkStarted(false);
|
|
10453
10458
|
}
|
|
@@ -10758,144 +10763,28 @@ function UnlinkProviderMenu() {
|
|
|
10758
10763
|
] });
|
|
10759
10764
|
}
|
|
10760
10765
|
|
|
10761
|
-
// src/internal/components/
|
|
10762
|
-
import { ArrowLeft as ArrowLeft9, Loader as Loader17 } from "lucide-react";
|
|
10763
|
-
|
|
10764
|
-
// src/internal/hooks/useNicknameInfo.ts
|
|
10765
|
-
init_nickname();
|
|
10766
|
-
init_profile();
|
|
10767
|
-
import { useQuery as useQuery11 } from "@tanstack/react-query";
|
|
10768
|
-
function useNicknameInfo(enabled = true) {
|
|
10769
|
-
const query = useQuery11({
|
|
10770
|
-
queryKey: [QUERY_KEYS.nicknameInfo],
|
|
10771
|
-
queryFn: getNicknameInfo,
|
|
10772
|
-
enabled,
|
|
10773
|
-
staleTime: 1e3 * 60 * 5,
|
|
10774
|
-
// 5 minutes
|
|
10775
|
-
retry: 1
|
|
10776
|
-
});
|
|
10777
|
-
return {
|
|
10778
|
-
data: query.data,
|
|
10779
|
-
isLoading: query.isLoading,
|
|
10780
|
-
isError: query.isError,
|
|
10781
|
-
error: query.error,
|
|
10782
|
-
refetch: query.refetch
|
|
10783
|
-
};
|
|
10784
|
-
}
|
|
10785
|
-
|
|
10786
|
-
// src/internal/components/NicknameSettings/NicknameEditForm.tsx
|
|
10787
|
-
import { Check as Check2, Loader as Loader16 } from "lucide-react";
|
|
10788
|
-
import { useCallback as useCallback14, useState as useState13 } from "react";
|
|
10789
|
-
|
|
10790
|
-
// src/internal/hooks/useChangeNickname.ts
|
|
10791
|
-
init_nickname();
|
|
10792
|
-
init_profile();
|
|
10793
|
-
import { useMutation as useMutation14, useQueryClient as useQueryClient14 } from "@tanstack/react-query";
|
|
10794
|
-
function useChangeNickname(options) {
|
|
10795
|
-
const queryClient3 = useQueryClient14();
|
|
10796
|
-
const mutation = useMutation14({
|
|
10797
|
-
mutationFn: (handle) => changeNickname(handle),
|
|
10798
|
-
onSuccess: (result) => {
|
|
10799
|
-
queryClient3.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
|
|
10800
|
-
queryClient3.invalidateQueries({ queryKey: [QUERY_KEYS.userProfile] });
|
|
10801
|
-
options?.onSuccess?.(result);
|
|
10802
|
-
},
|
|
10803
|
-
onError: (error) => {
|
|
10804
|
-
const nicknameError = {
|
|
10805
|
-
error: error.error || error.message,
|
|
10806
|
-
code: error.code || "UNKNOWN_ERROR",
|
|
10807
|
-
daysRemaining: error.daysRemaining,
|
|
10808
|
-
canChangeAt: error.canChangeAt
|
|
10809
|
-
};
|
|
10810
|
-
options?.onError?.(nicknameError);
|
|
10811
|
-
}
|
|
10812
|
-
});
|
|
10813
|
-
return {
|
|
10814
|
-
mutate: mutation.mutate,
|
|
10815
|
-
mutateAsync: mutation.mutateAsync,
|
|
10816
|
-
isLoading: mutation.isPending,
|
|
10817
|
-
isError: mutation.isError,
|
|
10818
|
-
isSuccess: mutation.isSuccess,
|
|
10819
|
-
error: mutation.error ? {
|
|
10820
|
-
error: mutation.error.error || mutation.error.message,
|
|
10821
|
-
code: mutation.error.code || "UNKNOWN_ERROR",
|
|
10822
|
-
daysRemaining: mutation.error.daysRemaining,
|
|
10823
|
-
canChangeAt: mutation.error.canChangeAt
|
|
10824
|
-
} : null,
|
|
10825
|
-
data: mutation.data,
|
|
10826
|
-
reset: mutation.reset
|
|
10827
|
-
};
|
|
10828
|
-
}
|
|
10829
|
-
|
|
10830
|
-
// src/internal/hooks/useNicknameAvailability.ts
|
|
10766
|
+
// src/internal/components/NicknameMenu/NicknameMenu.tsx
|
|
10831
10767
|
init_nickname();
|
|
10832
10768
|
init_profile();
|
|
10833
10769
|
import { useQuery as useQuery12 } from "@tanstack/react-query";
|
|
10834
|
-
import
|
|
10770
|
+
import dayjs2 from "dayjs";
|
|
10771
|
+
import { AlertTriangle as AlertTriangle4, ArrowLeft as ArrowLeft9, Info as Info3, Loader as Loader17 } from "lucide-react";
|
|
10772
|
+
import { useState as useState14 } from "react";
|
|
10835
10773
|
|
|
10836
|
-
// src/internal/lib/nickname-
|
|
10837
|
-
|
|
10838
|
-
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
|
-
|
|
10842
|
-
if (
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
return { valid: false, error: "TOO_LONG" };
|
|
10847
|
-
}
|
|
10848
|
-
if (!NICKNAME_PATTERN.test(normalized)) {
|
|
10849
|
-
return { valid: false, error: "INVALID_CHARS" };
|
|
10850
|
-
}
|
|
10851
|
-
if (normalized.startsWith("_") || normalized.endsWith("_") || normalized.includes("__")) {
|
|
10852
|
-
return { valid: false, error: "INVALID_UNDERSCORE" };
|
|
10853
|
-
}
|
|
10854
|
-
return { valid: true };
|
|
10855
|
-
}
|
|
10856
|
-
function normalizeNickname(handle) {
|
|
10857
|
-
return handle.replace(/^@/, "").toLowerCase().trim();
|
|
10774
|
+
// src/internal/lib/nickname-cooldown.ts
|
|
10775
|
+
function getDaysRemaining(cooldownEndsAt) {
|
|
10776
|
+
if (!cooldownEndsAt) return 0;
|
|
10777
|
+
const endDate = new Date(cooldownEndsAt);
|
|
10778
|
+
const now = /* @__PURE__ */ new Date();
|
|
10779
|
+
if (isNaN(endDate.getTime())) return 0;
|
|
10780
|
+
if (endDate <= now) return 0;
|
|
10781
|
+
const diffMs = endDate.getTime() - now.getTime();
|
|
10782
|
+
const diffDays = Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
|
|
10783
|
+
return Math.max(0, diffDays);
|
|
10858
10784
|
}
|
|
10859
10785
|
|
|
10860
|
-
// src/internal/
|
|
10861
|
-
|
|
10862
|
-
function useNicknameAvailability(handle, enabled = true) {
|
|
10863
|
-
const [debouncedHandle, setDebouncedHandle] = useState12("");
|
|
10864
|
-
const [isDebouncing, setIsDebouncing] = useState12(false);
|
|
10865
|
-
const normalized = normalizeNickname(handle);
|
|
10866
|
-
const validation = validateNickname(handle);
|
|
10867
|
-
const isValidForCheck = validation.valid && normalized.length > 0;
|
|
10868
|
-
useEffect24(() => {
|
|
10869
|
-
if (!isValidForCheck || !enabled) {
|
|
10870
|
-
setDebouncedHandle("");
|
|
10871
|
-
setIsDebouncing(false);
|
|
10872
|
-
return;
|
|
10873
|
-
}
|
|
10874
|
-
setIsDebouncing(true);
|
|
10875
|
-
const timer = setTimeout(() => {
|
|
10876
|
-
setDebouncedHandle(normalized);
|
|
10877
|
-
setIsDebouncing(false);
|
|
10878
|
-
}, DEBOUNCE_MS);
|
|
10879
|
-
return () => {
|
|
10880
|
-
clearTimeout(timer);
|
|
10881
|
-
};
|
|
10882
|
-
}, [normalized, isValidForCheck, enabled]);
|
|
10883
|
-
const query = useQuery12({
|
|
10884
|
-
queryKey: QUERY_KEYS.nicknameAvailability(debouncedHandle),
|
|
10885
|
-
queryFn: () => checkNicknameAvailability(debouncedHandle),
|
|
10886
|
-
enabled: enabled && isValidForCheck && debouncedHandle.length > 0,
|
|
10887
|
-
staleTime: 1e3 * 30,
|
|
10888
|
-
// 30 seconds
|
|
10889
|
-
retry: 1
|
|
10890
|
-
});
|
|
10891
|
-
return {
|
|
10892
|
-
data: query.data,
|
|
10893
|
-
isLoading: query.isLoading,
|
|
10894
|
-
isChecking: isDebouncing || query.isFetching,
|
|
10895
|
-
isError: query.isError,
|
|
10896
|
-
error: query.error
|
|
10897
|
-
};
|
|
10898
|
-
}
|
|
10786
|
+
// src/internal/components/NicknameMenu/NicknameAvailabilityIndicator.tsx
|
|
10787
|
+
import { Check, Loader as Loader15, X as X3 } from "lucide-react";
|
|
10899
10788
|
|
|
10900
10789
|
// src/internal/lib/nickname-errors.ts
|
|
10901
10790
|
var NICKNAME_ERROR_MESSAGES = {
|
|
@@ -10921,8 +10810,7 @@ function getNicknameErrorMessage(code, params) {
|
|
|
10921
10810
|
return message;
|
|
10922
10811
|
}
|
|
10923
10812
|
|
|
10924
|
-
// src/internal/components/
|
|
10925
|
-
import { Loader as Loader15, Check, X as X3 } from "lucide-react";
|
|
10813
|
+
// src/internal/components/NicknameMenu/NicknameAvailabilityIndicator.tsx
|
|
10926
10814
|
import { jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
10927
10815
|
function NicknameAvailabilityIndicator({
|
|
10928
10816
|
isChecking,
|
|
@@ -10933,8 +10821,8 @@ function NicknameAvailabilityIndicator({
|
|
|
10933
10821
|
return null;
|
|
10934
10822
|
}
|
|
10935
10823
|
if (isChecking) {
|
|
10936
|
-
return /* @__PURE__ */ jsxs47(
|
|
10937
|
-
/* @__PURE__ */ jsx54(Loader15, { className: "w-
|
|
10824
|
+
return /* @__PURE__ */ jsxs47(Highlight, { className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10825
|
+
/* @__PURE__ */ jsx54(Loader15, { className: "w-4 h-4 animate-spin" }),
|
|
10938
10826
|
/* @__PURE__ */ jsx54("span", { children: "Checking availability..." })
|
|
10939
10827
|
] });
|
|
10940
10828
|
}
|
|
@@ -10942,197 +10830,302 @@ function NicknameAvailabilityIndicator({
|
|
|
10942
10830
|
return null;
|
|
10943
10831
|
}
|
|
10944
10832
|
if (availability.available) {
|
|
10945
|
-
return /* @__PURE__ */ jsxs47("
|
|
10946
|
-
/* @__PURE__ */ jsx54(Check, { className: "w-
|
|
10833
|
+
return /* @__PURE__ */ jsxs47(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10834
|
+
/* @__PURE__ */ jsx54(Check, { className: "w-4 h-4" }),
|
|
10947
10835
|
/* @__PURE__ */ jsx54("span", { children: "Nickname is available" })
|
|
10948
10836
|
] });
|
|
10949
10837
|
}
|
|
10950
10838
|
const reason = availability.reason ? getNicknameErrorMessage(availability.reason) : "This nickname is not available";
|
|
10951
|
-
return /* @__PURE__ */ jsxs47("
|
|
10952
|
-
/* @__PURE__ */ jsx54(X3, { className: "w-
|
|
10839
|
+
return /* @__PURE__ */ jsxs47(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10840
|
+
/* @__PURE__ */ jsx54(X3, { className: "w-4 h-4" }),
|
|
10953
10841
|
/* @__PURE__ */ jsx54("span", { children: reason })
|
|
10954
10842
|
] });
|
|
10955
10843
|
}
|
|
10956
10844
|
|
|
10957
|
-
// src/internal/components/
|
|
10845
|
+
// src/internal/components/NicknameMenu/NicknameEditForm.tsx
|
|
10846
|
+
import { useMutation as useMutation14, useQueryClient as useQueryClient14 } from "@tanstack/react-query";
|
|
10847
|
+
import { AtSign, Check as Check2, ChevronRight as ChevronRight5, Copy as Copy2, Loader as Loader16 } from "lucide-react";
|
|
10848
|
+
import { useCallback as useCallback13, useState as useState12 } from "react";
|
|
10849
|
+
init_nickname();
|
|
10850
|
+
init_profile();
|
|
10851
|
+
|
|
10852
|
+
// src/internal/lib/nickname-validation.ts
|
|
10853
|
+
var NICKNAME_MIN_LENGTH = 3;
|
|
10854
|
+
var NICKNAME_MAX_LENGTH = 20;
|
|
10855
|
+
var NICKNAME_PATTERN = /^[a-z0-9_]+$/;
|
|
10856
|
+
function validateNickname(handle) {
|
|
10857
|
+
const normalized = handle.replace(/^@/, "").toLowerCase().trim();
|
|
10858
|
+
if (normalized.length < NICKNAME_MIN_LENGTH) {
|
|
10859
|
+
return { valid: false, error: "TOO_SHORT" };
|
|
10860
|
+
}
|
|
10861
|
+
if (normalized.length > NICKNAME_MAX_LENGTH) {
|
|
10862
|
+
return { valid: false, error: "TOO_LONG" };
|
|
10863
|
+
}
|
|
10864
|
+
if (!NICKNAME_PATTERN.test(normalized)) {
|
|
10865
|
+
return { valid: false, error: "INVALID_CHARS" };
|
|
10866
|
+
}
|
|
10867
|
+
if (normalized.startsWith("_") || normalized.endsWith("_") || normalized.includes("__")) {
|
|
10868
|
+
return { valid: false, error: "INVALID_UNDERSCORE" };
|
|
10869
|
+
}
|
|
10870
|
+
return { valid: true };
|
|
10871
|
+
}
|
|
10872
|
+
function normalizeNickname(handle) {
|
|
10873
|
+
return handle.replace(/^@/, "").toLowerCase().trim();
|
|
10874
|
+
}
|
|
10875
|
+
|
|
10876
|
+
// src/internal/components/NicknameMenu/NicknameEditForm.tsx
|
|
10958
10877
|
import { Fragment as Fragment18, jsx as jsx55, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
10959
|
-
function NicknameEditForm(
|
|
10960
|
-
const
|
|
10961
|
-
|
|
10962
|
-
|
|
10963
|
-
|
|
10964
|
-
|
|
10965
|
-
|
|
10966
|
-
|
|
10967
|
-
|
|
10878
|
+
function NicknameEditForm(props) {
|
|
10879
|
+
const {
|
|
10880
|
+
inputValue,
|
|
10881
|
+
setInputValue,
|
|
10882
|
+
isUnavailable,
|
|
10883
|
+
isSameAsCurrentNickname,
|
|
10884
|
+
isAvailabilityChecking,
|
|
10885
|
+
//
|
|
10886
|
+
clientError,
|
|
10887
|
+
setClientError,
|
|
10888
|
+
info
|
|
10889
|
+
} = props;
|
|
10890
|
+
const { handle: currentNickname, canChange } = info || { handle: "", canChange: false };
|
|
10891
|
+
const qc = useQueryClient14();
|
|
10892
|
+
const [isNicknameCopied, setIsNicknameCopied] = useState12(false);
|
|
10893
|
+
const {
|
|
10894
|
+
mutate: changeNickname2,
|
|
10895
|
+
isError: isNicknameChangeError,
|
|
10896
|
+
isPending: isNicknameChanging,
|
|
10897
|
+
isSuccess: isNicknameChangeSuccess,
|
|
10898
|
+
// error: nicknameChangeError,
|
|
10899
|
+
reset
|
|
10900
|
+
} = useMutation14({
|
|
10901
|
+
mutationFn: (handle) => changeNickname(handle),
|
|
10968
10902
|
onSuccess: () => {
|
|
10969
|
-
|
|
10970
|
-
|
|
10971
|
-
|
|
10903
|
+
qc.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
|
|
10904
|
+
qc.invalidateQueries({ queryKey: [QUERY_KEYS.userProfile] });
|
|
10905
|
+
},
|
|
10906
|
+
onError: (error) => {
|
|
10907
|
+
console.error("Nickname change error:", error);
|
|
10908
|
+
const changeNicknameError = error;
|
|
10909
|
+
setClientError(
|
|
10910
|
+
changeNicknameError ? getNicknameErrorMessage(changeNicknameError.code, {
|
|
10911
|
+
days: changeNicknameError.daysRemaining,
|
|
10912
|
+
canChangeAt: changeNicknameError.canChangeAt
|
|
10913
|
+
}) : null
|
|
10914
|
+
);
|
|
10972
10915
|
}
|
|
10973
10916
|
});
|
|
10974
|
-
const handleInputChange =
|
|
10917
|
+
const handleInputChange = useCallback13(
|
|
10975
10918
|
(e) => {
|
|
10976
10919
|
const value = e.target.value;
|
|
10977
10920
|
setInputValue(value);
|
|
10978
10921
|
if (clientError) setClientError(null);
|
|
10979
|
-
if (
|
|
10980
|
-
if (value
|
|
10981
|
-
|
|
10982
|
-
|
|
10983
|
-
|
|
10984
|
-
}
|
|
10922
|
+
if (isNicknameChangeError || isNicknameChangeSuccess) reset();
|
|
10923
|
+
if (value?.length < 1) return;
|
|
10924
|
+
const validation = validateNickname(value);
|
|
10925
|
+
if (!validation.valid && validation.error) {
|
|
10926
|
+
setClientError(getNicknameErrorMessage(validation.error));
|
|
10985
10927
|
}
|
|
10986
10928
|
},
|
|
10987
|
-
[clientError,
|
|
10929
|
+
[clientError, isNicknameChangeError, isNicknameChangeSuccess, reset]
|
|
10988
10930
|
);
|
|
10989
|
-
const handleSubmit =
|
|
10931
|
+
const handleSubmit = useCallback13(
|
|
10990
10932
|
(e) => {
|
|
10933
|
+
if (!canChange) return;
|
|
10991
10934
|
e.preventDefault();
|
|
10992
|
-
const
|
|
10993
|
-
if (
|
|
10935
|
+
const normalized = normalizeNickname(inputValue);
|
|
10936
|
+
if (normalized === currentNickname.toLowerCase()) {
|
|
10994
10937
|
setClientError("This is already your nickname");
|
|
10995
10938
|
return;
|
|
10996
10939
|
}
|
|
10997
|
-
const
|
|
10998
|
-
if (!
|
|
10999
|
-
setClientError(getNicknameErrorMessage(
|
|
10940
|
+
const validation = validateNickname(inputValue);
|
|
10941
|
+
if (!validation.valid && validation.error) {
|
|
10942
|
+
setClientError(getNicknameErrorMessage(validation.error));
|
|
11000
10943
|
return;
|
|
11001
10944
|
}
|
|
11002
|
-
|
|
10945
|
+
changeNickname2(normalized);
|
|
11003
10946
|
},
|
|
11004
|
-
[inputValue,
|
|
10947
|
+
[inputValue, currentNickname, canChange, changeNickname2]
|
|
11005
10948
|
);
|
|
11006
|
-
const
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
}) : null);
|
|
11010
|
-
const isUnavailable = shouldCheckAvailability && availability && !availability.available;
|
|
11011
|
-
const isSubmitDisabled = !canChange || isLoading || isChecking || inputValue.length === 0 || !!clientError || isSameAsCurrentHandle || isUnavailable;
|
|
11012
|
-
if (!canChange) {
|
|
11013
|
-
return null;
|
|
11014
|
-
}
|
|
11015
|
-
return /* @__PURE__ */ jsxs48("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-3", children: [
|
|
11016
|
-
/* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-1", children: [
|
|
11017
|
-
/* @__PURE__ */ jsx55("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "New nickname" }),
|
|
10949
|
+
const isSubmitDisabled = !canChange || isNicknameChanging || isAvailabilityChecking || inputValue.length === 0 || !!clientError || isSameAsCurrentNickname || isUnavailable;
|
|
10950
|
+
return /* @__PURE__ */ jsxs48(Fragment18, { children: [
|
|
10951
|
+
canChange ? /* @__PURE__ */ jsx55("form", { onSubmit: handleSubmit, className: "w-full", children: /* @__PURE__ */ jsxs48("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11018
10952
|
/* @__PURE__ */ jsx55(
|
|
11019
10953
|
Input,
|
|
11020
10954
|
{
|
|
10955
|
+
Icon: AtSign,
|
|
11021
10956
|
value: inputValue,
|
|
11022
10957
|
onChange: handleInputChange,
|
|
11023
10958
|
placeholder: "Enter new nickname",
|
|
11024
|
-
disabled:
|
|
11025
|
-
|
|
10959
|
+
disabled: isNicknameChanging,
|
|
10960
|
+
className: "flex-1"
|
|
11026
10961
|
}
|
|
11027
10962
|
),
|
|
11028
|
-
/* @__PURE__ */ jsx55("
|
|
11029
|
-
|
|
10963
|
+
/* @__PURE__ */ jsx55(Button, { type: "submit", size: "large", disabled: isSubmitDisabled, className: "w-12", children: isNicknameChanging ? /* @__PURE__ */ jsx55(Loader16, { className: "w-4 h-4 animate-spin" }) : isNicknameChangeSuccess ? /* @__PURE__ */ jsx55(Check2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx55(ChevronRight5, { className: "w-4 h-4" }) })
|
|
10964
|
+
] }) }) : /* @__PURE__ */ jsxs48("div", { className: "w-full flex items-center justify-between px-[var(--l-pass-pd)] h-12 bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]", children: [
|
|
10965
|
+
/* @__PURE__ */ jsxs48(
|
|
10966
|
+
"span",
|
|
10967
|
+
{
|
|
10968
|
+
className: cn("text-lg font-semibold leading-5 transition-colors duration-200", {
|
|
10969
|
+
"text-[var(--l-pass-fg-muted)]": !currentNickname.length
|
|
10970
|
+
}),
|
|
10971
|
+
children: [
|
|
10972
|
+
!!currentNickname.length && /* @__PURE__ */ jsx55("span", { children: "@" }),
|
|
10973
|
+
/* @__PURE__ */ jsx55("span", { children: currentNickname || "your nickname" })
|
|
10974
|
+
]
|
|
10975
|
+
}
|
|
10976
|
+
),
|
|
10977
|
+
/* @__PURE__ */ jsx55(
|
|
10978
|
+
Button,
|
|
10979
|
+
{
|
|
10980
|
+
variant: "ghost",
|
|
10981
|
+
size: "icon",
|
|
10982
|
+
onClick: () => {
|
|
10983
|
+
if (!!isNicknameCopied) return;
|
|
10984
|
+
navigator.clipboard.writeText(currentNickname);
|
|
10985
|
+
setIsNicknameCopied(true);
|
|
10986
|
+
setTimeout(() => setIsNicknameCopied(false), 2e3);
|
|
10987
|
+
},
|
|
10988
|
+
children: isNicknameCopied ? /* @__PURE__ */ jsx55(PositiveIcon, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx55(Copy2, { className: "w-4 h-4" })
|
|
10989
|
+
}
|
|
10990
|
+
)
|
|
11030
10991
|
] }),
|
|
11031
|
-
/* @__PURE__ */ jsx55(
|
|
11032
|
-
/* @__PURE__ */ jsx55(Loader16, { className: "w-4 h-4 mr-2 animate-spin" }),
|
|
11033
|
-
"Changing..."
|
|
11034
|
-
] }) : isSuccess ? /* @__PURE__ */ jsxs48(Fragment18, { children: [
|
|
11035
|
-
/* @__PURE__ */ jsx55(Check2, { className: "w-4 h-4 mr-2" }),
|
|
11036
|
-
"Nickname changed!"
|
|
11037
|
-
] }) : "Change Nickname" })
|
|
10992
|
+
!!canChange && /* @__PURE__ */ jsx55("span", { className: "w-full flex items-center leadding-4 text-[10px]", children: "3-20 characters, letters, numbers, and underscores only" })
|
|
11038
10993
|
] });
|
|
11039
10994
|
}
|
|
11040
10995
|
|
|
11041
|
-
// src/internal/components/
|
|
11042
|
-
|
|
11043
|
-
|
|
11044
|
-
|
|
11045
|
-
|
|
11046
|
-
|
|
11047
|
-
|
|
11048
|
-
const
|
|
11049
|
-
|
|
11050
|
-
|
|
11051
|
-
const
|
|
11052
|
-
|
|
11053
|
-
|
|
11054
|
-
|
|
11055
|
-
|
|
11056
|
-
|
|
11057
|
-
const
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
|
|
11061
|
-
|
|
11062
|
-
|
|
10996
|
+
// src/internal/components/NicknameMenu/useNickname.ts
|
|
10997
|
+
init_nickname();
|
|
10998
|
+
init_profile();
|
|
10999
|
+
import { useQuery as useQuery11 } from "@tanstack/react-query";
|
|
11000
|
+
import { useEffect as useEffect25, useState as useState13 } from "react";
|
|
11001
|
+
var DEBOUNCE_MS = 700;
|
|
11002
|
+
function useNicknameForm(currentNickname) {
|
|
11003
|
+
const [inputValue, setInputValue] = useState13("");
|
|
11004
|
+
const normalizedInputValue = normalizeNickname(inputValue);
|
|
11005
|
+
const validation = validateNickname(inputValue);
|
|
11006
|
+
const isValidForCheck = validation.valid && normalizedInputValue.length > 0;
|
|
11007
|
+
useEffect25(() => {
|
|
11008
|
+
console.log("[NICKNAME] form setup", currentNickname);
|
|
11009
|
+
setInputValue(currentNickname);
|
|
11010
|
+
}, [currentNickname]);
|
|
11011
|
+
const [queryInputValue, setQueryInputValue] = useState13("");
|
|
11012
|
+
const isSameAsCurrentNickname = normalizedInputValue === currentNickname.toLowerCase();
|
|
11013
|
+
const shouldCheckAvailability = validation.valid && !isSameAsCurrentNickname && inputValue.length > 0;
|
|
11014
|
+
useEffect25(() => {
|
|
11015
|
+
if (!isValidForCheck || !shouldCheckAvailability) {
|
|
11016
|
+
setQueryInputValue("");
|
|
11017
|
+
return;
|
|
11018
|
+
}
|
|
11019
|
+
const timer = setTimeout(() => {
|
|
11020
|
+
setQueryInputValue(normalizedInputValue);
|
|
11021
|
+
}, DEBOUNCE_MS);
|
|
11022
|
+
return () => {
|
|
11023
|
+
clearTimeout(timer);
|
|
11024
|
+
};
|
|
11025
|
+
}, [normalizedInputValue, isValidForCheck, shouldCheckAvailability]);
|
|
11026
|
+
const query = useQuery11({
|
|
11027
|
+
retry: 1,
|
|
11028
|
+
enabled: shouldCheckAvailability && isValidForCheck && queryInputValue.length > 0,
|
|
11029
|
+
queryKey: QUERY_KEYS.nicknameAvailability(queryInputValue),
|
|
11030
|
+
queryFn: () => checkNicknameAvailability(queryInputValue),
|
|
11031
|
+
staleTime: 1e3 * 30
|
|
11032
|
+
// 30 seconds stale to not check same InputValue repeatedly
|
|
11063
11033
|
});
|
|
11034
|
+
return {
|
|
11035
|
+
inputValue,
|
|
11036
|
+
setInputValue,
|
|
11037
|
+
isSameAsCurrentNickname,
|
|
11038
|
+
isUnavailable: shouldCheckAvailability && !query?.data?.available,
|
|
11039
|
+
shouldCheckAvailability,
|
|
11040
|
+
availabilityQuery: query
|
|
11041
|
+
};
|
|
11064
11042
|
}
|
|
11065
11043
|
|
|
11066
|
-
// src/internal/components/
|
|
11044
|
+
// src/internal/components/NicknameMenu/NicknameMenu.tsx
|
|
11067
11045
|
import { jsx as jsx56, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
11068
|
-
function
|
|
11069
|
-
const
|
|
11070
|
-
const
|
|
11071
|
-
return /* @__PURE__ */ jsxs49(Fragment19, { children: [
|
|
11072
|
-
/* @__PURE__ */ jsxs49("div", { className: "flex flex-col gap-1", children: [
|
|
11073
|
-
/* @__PURE__ */ jsx56("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
|
|
11074
|
-
/* @__PURE__ */ jsx56("span", { className: "text-lg font-bold text-[var(--l-pass-fg)]", children: info.displayHandle })
|
|
11075
|
-
] }),
|
|
11076
|
-
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-4 text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
11077
|
-
/* @__PURE__ */ jsxs49("div", { className: "flex flex-col gap-0.5", children: [
|
|
11078
|
-
/* @__PURE__ */ jsx56("span", { children: "Created" }),
|
|
11079
|
-
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.createdAt).toLocaleDateString(void 0, {
|
|
11080
|
-
year: "numeric",
|
|
11081
|
-
month: "short",
|
|
11082
|
-
day: "numeric"
|
|
11083
|
-
}) })
|
|
11084
|
-
] }),
|
|
11085
|
-
info.changedAt && /* @__PURE__ */ jsxs49("div", { className: "flex flex-col gap-0.5", children: [
|
|
11086
|
-
/* @__PURE__ */ jsx56("span", { children: "Last changed" }),
|
|
11087
|
-
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.changedAt).toLocaleDateString(void 0, {
|
|
11088
|
-
year: "numeric",
|
|
11089
|
-
month: "short",
|
|
11090
|
-
day: "numeric"
|
|
11091
|
-
}) })
|
|
11092
|
-
] }),
|
|
11093
|
-
/* @__PURE__ */ jsxs49("div", { className: "flex flex-col gap-0.5", children: [
|
|
11094
|
-
/* @__PURE__ */ jsx56("span", { children: "Times changed" }),
|
|
11095
|
-
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg)]", children: info.changeCount })
|
|
11096
|
-
] })
|
|
11097
|
-
] }),
|
|
11098
|
-
!info.canChange && info.cooldownEndsAt && /* @__PURE__ */ jsx56("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-warning)]", children: /* @__PURE__ */ jsxs49("span", { className: "text-sm text-[var(--l-pass-warning)]", children: [
|
|
11099
|
-
"You can change your nickname again on ",
|
|
11100
|
-
cooldownEndDate,
|
|
11101
|
-
" (",
|
|
11102
|
-
daysRemaining,
|
|
11103
|
-
" days remaining)"
|
|
11104
|
-
] }) }),
|
|
11105
|
-
info.canChange && /* @__PURE__ */ jsx56("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-success)]", children: /* @__PURE__ */ jsx56("span", { className: "text-sm text-[var(--l-pass-success)]", children: "You can change your nickname" }) })
|
|
11106
|
-
] });
|
|
11107
|
-
}
|
|
11108
|
-
|
|
11109
|
-
// src/internal/components/NicknameSettings/NicknameSettings.tsx
|
|
11110
|
-
import { jsx as jsx57, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
11111
|
-
function NicknameSettings() {
|
|
11046
|
+
function NicknameMenu() {
|
|
11047
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
11048
|
+
const [clientError, setClientError] = useState14(null);
|
|
11112
11049
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11113
11050
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11114
|
-
const {
|
|
11115
|
-
|
|
11051
|
+
const {
|
|
11052
|
+
data: nicknameInfo,
|
|
11053
|
+
isLoading: isNicknameInfoLoading,
|
|
11054
|
+
error: nicknameInfoError
|
|
11055
|
+
} = useQuery12({
|
|
11056
|
+
retry: 1,
|
|
11057
|
+
enabled: !!address,
|
|
11058
|
+
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
11059
|
+
queryFn: getNicknameInfo
|
|
11060
|
+
});
|
|
11061
|
+
const {
|
|
11062
|
+
availabilityQuery,
|
|
11063
|
+
inputValue,
|
|
11064
|
+
isUnavailable,
|
|
11065
|
+
isSameAsCurrentNickname,
|
|
11066
|
+
shouldCheckAvailability,
|
|
11067
|
+
setInputValue
|
|
11068
|
+
} = useNicknameForm(nicknameInfo ? nicknameInfo.handle : "");
|
|
11069
|
+
const { data: availability, isFetching: isAvailabilityChecking } = availabilityQuery;
|
|
11070
|
+
const resolvedError = clientError || nicknameInfoError?.message || null;
|
|
11071
|
+
return /* @__PURE__ */ jsx56(
|
|
11116
11072
|
"div",
|
|
11117
11073
|
{
|
|
11118
11074
|
style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
|
|
11119
11075
|
className: "list-scrollbar-y w-full",
|
|
11120
|
-
children: /* @__PURE__ */
|
|
11121
|
-
/* @__PURE__ */
|
|
11122
|
-
/* @__PURE__ */
|
|
11123
|
-
/* @__PURE__ */
|
|
11076
|
+
children: /* @__PURE__ */ jsxs49(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
11077
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-[var(--l-pass-gap)] ", children: [
|
|
11078
|
+
/* @__PURE__ */ jsx56(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx56(ArrowLeft9, { className: "h-4 w-4 flex-none" }) }),
|
|
11079
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex gap-[var(--l-pass-gap)] items-center w-fit", children: [
|
|
11080
|
+
/* @__PURE__ */ jsx56("span", { className: "text-xl font-semibold", children: "Nickname" }),
|
|
11081
|
+
isNicknameInfoLoading && /* @__PURE__ */ jsx56(Loader17, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" })
|
|
11082
|
+
] })
|
|
11124
11083
|
] }),
|
|
11125
|
-
|
|
11126
|
-
|
|
11127
|
-
nicknameInfo && /* @__PURE__ */ jsx57(
|
|
11084
|
+
/* @__PURE__ */ jsx56("span", { className: "text-[10px] text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
|
|
11085
|
+
/* @__PURE__ */ jsx56(
|
|
11128
11086
|
NicknameEditForm,
|
|
11129
11087
|
{
|
|
11130
|
-
|
|
11131
|
-
|
|
11132
|
-
|
|
11088
|
+
inputValue,
|
|
11089
|
+
setInputValue,
|
|
11090
|
+
info: nicknameInfo,
|
|
11091
|
+
isAvailabilityChecking,
|
|
11092
|
+
isUnavailable,
|
|
11093
|
+
isSameAsCurrentNickname,
|
|
11094
|
+
clientError,
|
|
11095
|
+
setClientError
|
|
11133
11096
|
}
|
|
11134
11097
|
),
|
|
11135
|
-
|
|
11098
|
+
shouldCheckAvailability && !clientError && /* @__PURE__ */ jsx56(NicknameAvailabilityIndicator, { isChecking: isAvailabilityChecking, availability }),
|
|
11099
|
+
!nicknameInfo?.canChange && nicknameInfo?.cooldownEndsAt && /* @__PURE__ */ jsxs49(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11100
|
+
/* @__PURE__ */ jsx56(Info3, { className: "w-4 h-4 flex-none" }),
|
|
11101
|
+
/* @__PURE__ */ jsxs49("span", { children: [
|
|
11102
|
+
"You can change your nickname again on",
|
|
11103
|
+
" ",
|
|
11104
|
+
/* @__PURE__ */ jsx56("strong", { children: dayjs2(nicknameInfo.cooldownEndsAt).format("MMM D, YYYY") }),
|
|
11105
|
+
" (",
|
|
11106
|
+
/* @__PURE__ */ jsxs49("span", { children: [
|
|
11107
|
+
getDaysRemaining(nicknameInfo.cooldownEndsAt),
|
|
11108
|
+
" days remained"
|
|
11109
|
+
] }),
|
|
11110
|
+
")"
|
|
11111
|
+
] })
|
|
11112
|
+
] }),
|
|
11113
|
+
!!nicknameInfo && /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-[var(--l-pass-gap)] justify-between text-[10px]", children: [
|
|
11114
|
+
/* @__PURE__ */ jsxs49("span", { children: [
|
|
11115
|
+
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg-muted)]", children: nicknameInfo.changedAt ? "Last changed:" : "Created:" }),
|
|
11116
|
+
/* @__PURE__ */ jsx56("span", { children: " " }),
|
|
11117
|
+
/* @__PURE__ */ jsx56("strong", { className: "text-[var(--l-pass-fg)]", children: dayjs2(nicknameInfo.changedAt || nicknameInfo.createdAt).format("MMM D, YYYY") })
|
|
11118
|
+
] }),
|
|
11119
|
+
/* @__PURE__ */ jsxs49("span", { children: [
|
|
11120
|
+
/* @__PURE__ */ jsx56("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Times changed:" }),
|
|
11121
|
+
/* @__PURE__ */ jsx56("span", { children: " " }),
|
|
11122
|
+
/* @__PURE__ */ jsx56("strong", { className: "text-[var(--l-pass-fg)]", children: nicknameInfo.changeCount })
|
|
11123
|
+
] })
|
|
11124
|
+
] }),
|
|
11125
|
+
!!resolvedError?.length && /* @__PURE__ */ jsxs49(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11126
|
+
/* @__PURE__ */ jsx56(AlertTriangle4, { className: "w-4 h-4 flex-none" }),
|
|
11127
|
+
/* @__PURE__ */ jsx56("span", { children: resolvedError })
|
|
11128
|
+
] })
|
|
11136
11129
|
] })
|
|
11137
11130
|
}
|
|
11138
11131
|
);
|
|
@@ -11141,12 +11134,12 @@ function NicknameSettings() {
|
|
|
11141
11134
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
11142
11135
|
import { useQueryClient as useQueryClient16 } from "@tanstack/react-query";
|
|
11143
11136
|
import { AlertCircle as AlertCircle4, ArrowLeft as ArrowLeft10, Gem, Loader as Loader19, RefreshCw } from "lucide-react";
|
|
11144
|
-
import { useCallback as
|
|
11137
|
+
import { useCallback as useCallback15 } from "react";
|
|
11145
11138
|
|
|
11146
11139
|
// src/internal/hooks/useBlockscoutAssets.ts
|
|
11147
11140
|
init_lumiaPassport();
|
|
11148
11141
|
init_base();
|
|
11149
|
-
import { useCallback as
|
|
11142
|
+
import { useCallback as useCallback14, useMemo as useMemo4, useRef as useRef13 } from "react";
|
|
11150
11143
|
import { useQuery as useQuery13 } from "@tanstack/react-query";
|
|
11151
11144
|
import { useBalance as useBalance2, usePublicClient } from "wagmi";
|
|
11152
11145
|
import { formatUnits as formatUnits2 } from "viem";
|
|
@@ -11426,7 +11419,7 @@ function useBlockscoutAssets(options) {
|
|
|
11426
11419
|
if (!tokensError) return null;
|
|
11427
11420
|
return createError(tokensError);
|
|
11428
11421
|
}, [tokensError]);
|
|
11429
|
-
const refreshBalances =
|
|
11422
|
+
const refreshBalances = useCallback14(async () => {
|
|
11430
11423
|
const now = Date.now();
|
|
11431
11424
|
if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
|
|
11432
11425
|
return;
|
|
@@ -11434,7 +11427,7 @@ function useBlockscoutAssets(options) {
|
|
|
11434
11427
|
lastRefreshRef.current = now;
|
|
11435
11428
|
await Promise.all([refetchNative(), refetchTokens(), refetchNfts()]);
|
|
11436
11429
|
}, [refetchNative, refetchTokens, refetchNfts]);
|
|
11437
|
-
const getTokenBalance =
|
|
11430
|
+
const getTokenBalance = useCallback14(
|
|
11438
11431
|
(tokenAddress) => {
|
|
11439
11432
|
return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
|
|
11440
11433
|
},
|
|
@@ -11457,9 +11450,9 @@ function useBlockscoutAssets(options) {
|
|
|
11457
11450
|
init_base();
|
|
11458
11451
|
import { useQuery as useQuery14, useQueryClient as useQueryClient15 } from "@tanstack/react-query";
|
|
11459
11452
|
import { Image as ImageIcon, Loader as Loader18, Shield, Sparkles } from "lucide-react";
|
|
11460
|
-
import { useState as
|
|
11453
|
+
import { useState as useState15 } from "react";
|
|
11461
11454
|
import { formatUnits as formatUnits3 } from "viem";
|
|
11462
|
-
import { Fragment as
|
|
11455
|
+
import { Fragment as Fragment19, jsx as jsx57, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
11463
11456
|
function openInExplorer(address) {
|
|
11464
11457
|
window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
|
|
11465
11458
|
}
|
|
@@ -11494,8 +11487,8 @@ async function getAssetRate2(symbol) {
|
|
|
11494
11487
|
var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
|
|
11495
11488
|
function PortfolioItem(props) {
|
|
11496
11489
|
const { address, asset, isProjectAsset } = props;
|
|
11497
|
-
const [nftImageError, setNftImageError] =
|
|
11498
|
-
const [logoError, setLogoError] =
|
|
11490
|
+
const [nftImageError, setNftImageError] = useState15(false);
|
|
11491
|
+
const [logoError, setLogoError] = useState15(false);
|
|
11499
11492
|
const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
|
|
11500
11493
|
const qc = useQueryClient15();
|
|
11501
11494
|
const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
|
|
@@ -11513,7 +11506,7 @@ function PortfolioItem(props) {
|
|
|
11513
11506
|
const showProjectFiatBalance = isProjectAsset && !!projectAssetBalance?.fiatFormatted;
|
|
11514
11507
|
const renderBalance = showProjectFiatBalance ? projectAssetBalance?.fiatFormatted || 0 : Number(formatUnits3(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
11515
11508
|
const usdRenderBalance = !!assetRate?.price ? renderBalance * Number(assetRate.price) : 0;
|
|
11516
|
-
return /* @__PURE__ */
|
|
11509
|
+
return /* @__PURE__ */ jsxs50(
|
|
11517
11510
|
"div",
|
|
11518
11511
|
{
|
|
11519
11512
|
className: cn(
|
|
@@ -11524,7 +11517,7 @@ function PortfolioItem(props) {
|
|
|
11524
11517
|
),
|
|
11525
11518
|
onClick: () => asset.address ? openInExplorer(asset.address) : void 0,
|
|
11526
11519
|
children: [
|
|
11527
|
-
/* @__PURE__ */
|
|
11520
|
+
/* @__PURE__ */ jsxs50(
|
|
11528
11521
|
"div",
|
|
11529
11522
|
{
|
|
11530
11523
|
className: cn(
|
|
@@ -11535,7 +11528,7 @@ function PortfolioItem(props) {
|
|
|
11535
11528
|
(!asset.logo || logoError) && !nftImage && "bg-[var(--l-pass-fg)]"
|
|
11536
11529
|
),
|
|
11537
11530
|
children: [
|
|
11538
|
-
isNft && nftImage && !nftImageError ? /* @__PURE__ */
|
|
11531
|
+
isNft && nftImage && !nftImageError ? /* @__PURE__ */ jsx57(
|
|
11539
11532
|
"img",
|
|
11540
11533
|
{
|
|
11541
11534
|
src: nftImage,
|
|
@@ -11545,8 +11538,8 @@ function PortfolioItem(props) {
|
|
|
11545
11538
|
}
|
|
11546
11539
|
) : isNft && (!nftImage || nftImageError) ? (
|
|
11547
11540
|
// NFT placeholder when no image available
|
|
11548
|
-
/* @__PURE__ */
|
|
11549
|
-
) : asset.logo && !logoError ? /* @__PURE__ */
|
|
11541
|
+
/* @__PURE__ */ jsx57("div", { className: "w-full h-full bg-[var(--l-pass-fg)] flex items-center justify-center", children: /* @__PURE__ */ jsx57(ImageIcon, { className: "w-5 h-5 text-[var(--l-pass-fg-inverted)]" }) })
|
|
11542
|
+
) : asset.logo && !logoError ? /* @__PURE__ */ jsx57(
|
|
11550
11543
|
"img",
|
|
11551
11544
|
{
|
|
11552
11545
|
src: asset.logo,
|
|
@@ -11554,22 +11547,22 @@ function PortfolioItem(props) {
|
|
|
11554
11547
|
className: "w-full h-full object-cover",
|
|
11555
11548
|
onError: () => setLogoError(true)
|
|
11556
11549
|
}
|
|
11557
|
-
) : /* @__PURE__ */
|
|
11558
|
-
isNft && /* @__PURE__ */
|
|
11559
|
-
isSecurity && /* @__PURE__ */
|
|
11550
|
+
) : /* @__PURE__ */ jsx57("span", { className: "text-[var(--l-pass-fg-inverted)] font-bold text-sm", children: asset.symbol.charAt(0) }),
|
|
11551
|
+
isNft && /* @__PURE__ */ jsx57("div", { className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-[var(--l-pass-accent)] flex items-center justify-center", children: /* @__PURE__ */ jsx57(Sparkles, { className: "w-2.5 h-2.5 text-[var(--l-pass-fg-inverted)]" }) }),
|
|
11552
|
+
isSecurity && /* @__PURE__ */ jsx57(
|
|
11560
11553
|
"div",
|
|
11561
11554
|
{
|
|
11562
11555
|
className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-amber-500 flex items-center justify-center",
|
|
11563
11556
|
title: "Security Token (ERC-3643)",
|
|
11564
|
-
children: /* @__PURE__ */
|
|
11557
|
+
children: /* @__PURE__ */ jsx57(Shield, { className: "w-2.5 h-2.5 text-white" })
|
|
11565
11558
|
}
|
|
11566
11559
|
)
|
|
11567
11560
|
]
|
|
11568
11561
|
}
|
|
11569
11562
|
),
|
|
11570
|
-
/* @__PURE__ */
|
|
11571
|
-
/* @__PURE__ */
|
|
11572
|
-
/* @__PURE__ */
|
|
11563
|
+
/* @__PURE__ */ jsxs50("div", { className: "w-full flex-1", children: [
|
|
11564
|
+
/* @__PURE__ */ jsxs50("div", { className: "w-full flex items-center justify-between text-xs", children: [
|
|
11565
|
+
/* @__PURE__ */ jsx57(
|
|
11573
11566
|
"span",
|
|
11574
11567
|
{
|
|
11575
11568
|
className: "truncate max-w-[150px]",
|
|
@@ -11577,25 +11570,25 @@ function PortfolioItem(props) {
|
|
|
11577
11570
|
children: isNft ? asset.nftMetadata?.collectionName || asset.name || (asset.address ? `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` : "Unknown") : asset.name || (asset.address ? `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` : "Unknown")
|
|
11578
11571
|
}
|
|
11579
11572
|
),
|
|
11580
|
-
!!usdRenderBalance && !isProjectAsset && !isNft && !isSecurity && /* @__PURE__ */
|
|
11581
|
-
!isSecurity && isNft && "type" in asset && /* @__PURE__ */
|
|
11582
|
-
isSecurity && /* @__PURE__ */
|
|
11573
|
+
!!usdRenderBalance && !isProjectAsset && !isNft && !isSecurity && /* @__PURE__ */ jsx57("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" }),
|
|
11574
|
+
!isSecurity && isNft && "type" in asset && /* @__PURE__ */ jsx57("span", { className: "uppercase text-[10px] px-1 bg-[var(--l-pass-bg-info)] rounded-full", children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" }),
|
|
11575
|
+
isSecurity && /* @__PURE__ */ jsx57("span", { className: "uppercase text-[10px] px-1 bg-[var(--l-pass-bg-warning)] rounded-full", children: "Security Token" })
|
|
11583
11576
|
] }),
|
|
11584
|
-
/* @__PURE__ */
|
|
11585
|
-
/* @__PURE__ */
|
|
11586
|
-
"tokenId" in asset && asset.tokenId && /* @__PURE__ */
|
|
11577
|
+
/* @__PURE__ */ jsx57("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: isNft ? /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
11578
|
+
/* @__PURE__ */ jsx57("span", { className: "truncate max-w-[160px]", title: asset.nftMetadata?.name || asset.symbol, children: asset.nftMetadata?.name || asset.symbol }),
|
|
11579
|
+
"tokenId" in asset && asset.tokenId && /* @__PURE__ */ jsxs50("span", { className: "text-xs text-[var(--l-pass-fg-muted)] font-normal", children: [
|
|
11587
11580
|
"#",
|
|
11588
11581
|
asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
|
|
11589
11582
|
] })
|
|
11590
|
-
] }) : /* @__PURE__ */
|
|
11591
|
-
/* @__PURE__ */
|
|
11592
|
-
/* @__PURE__ */
|
|
11593
|
-
/* @__PURE__ */
|
|
11583
|
+
] }) : /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
11584
|
+
/* @__PURE__ */ jsxs50("span", { children: [
|
|
11585
|
+
/* @__PURE__ */ jsx57("span", { children: formatPrice(Number(renderBalance)) }),
|
|
11586
|
+
/* @__PURE__ */ jsx57("span", { children: " " + asset.symbol })
|
|
11594
11587
|
] }),
|
|
11595
|
-
isRateLoading && /* @__PURE__ */
|
|
11596
|
-
!isRateLoading && !!usdRenderBalance && /* @__PURE__ */
|
|
11597
|
-
/* @__PURE__ */
|
|
11598
|
-
/* @__PURE__ */
|
|
11588
|
+
isRateLoading && /* @__PURE__ */ jsx57(Loader18, { className: "h-4 w-4 animate-spin" }),
|
|
11589
|
+
!isRateLoading && !!usdRenderBalance && /* @__PURE__ */ jsxs50("span", { children: [
|
|
11590
|
+
/* @__PURE__ */ jsx57("span", { children: "$" }),
|
|
11591
|
+
/* @__PURE__ */ jsx57("span", { children: formatPrice(usdRenderBalance) })
|
|
11599
11592
|
] })
|
|
11600
11593
|
] }) })
|
|
11601
11594
|
] })
|
|
@@ -11605,7 +11598,7 @@ function PortfolioItem(props) {
|
|
|
11605
11598
|
}
|
|
11606
11599
|
|
|
11607
11600
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
11608
|
-
import { jsx as
|
|
11601
|
+
import { jsx as jsx58, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
11609
11602
|
function PortfolioMenu() {
|
|
11610
11603
|
const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
|
|
11611
11604
|
const qc = useQueryClient16();
|
|
@@ -11621,11 +11614,11 @@ function PortfolioMenu() {
|
|
|
11621
11614
|
} = useBlockscoutAssets({
|
|
11622
11615
|
address
|
|
11623
11616
|
});
|
|
11624
|
-
const refreshAllAssetsBalances =
|
|
11617
|
+
const refreshAllAssetsBalances = useCallback15(() => {
|
|
11625
11618
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
11626
11619
|
refreshBlockscoutBalances();
|
|
11627
11620
|
}, [qc, projectAssets, refreshBlockscoutBalances]);
|
|
11628
|
-
return /* @__PURE__ */
|
|
11621
|
+
return /* @__PURE__ */ jsx58(
|
|
11629
11622
|
"div",
|
|
11630
11623
|
{
|
|
11631
11624
|
style: {
|
|
@@ -11633,11 +11626,11 @@ function PortfolioMenu() {
|
|
|
11633
11626
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
11634
11627
|
},
|
|
11635
11628
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11636
|
-
children: /* @__PURE__ */
|
|
11637
|
-
/* @__PURE__ */
|
|
11638
|
-
/* @__PURE__ */
|
|
11639
|
-
/* @__PURE__ */
|
|
11640
|
-
/* @__PURE__ */
|
|
11629
|
+
children: /* @__PURE__ */ jsxs51(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11630
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11631
|
+
/* @__PURE__ */ jsx58(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx58(ArrowLeft10, { className: "h-4 w-4" }) }),
|
|
11632
|
+
/* @__PURE__ */ jsx58("span", { className: "text-xl font-semibold", children: "Your Assets" }),
|
|
11633
|
+
/* @__PURE__ */ jsx58(
|
|
11641
11634
|
Button,
|
|
11642
11635
|
{
|
|
11643
11636
|
title: "Refresh balances",
|
|
@@ -11645,17 +11638,17 @@ function PortfolioMenu() {
|
|
|
11645
11638
|
size: "icon",
|
|
11646
11639
|
onClick: refreshAllAssetsBalances,
|
|
11647
11640
|
disabled: isBlockscoutLoading,
|
|
11648
|
-
children: isBlockscoutLoading ? /* @__PURE__ */
|
|
11641
|
+
children: isBlockscoutLoading ? /* @__PURE__ */ jsx58(Loader19, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx58(RefreshCw, { className: "h-4 w-4" })
|
|
11649
11642
|
}
|
|
11650
11643
|
)
|
|
11651
11644
|
] }),
|
|
11652
|
-
isBlockscoutLoading && /* @__PURE__ */
|
|
11653
|
-
!isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */
|
|
11654
|
-
/* @__PURE__ */
|
|
11655
|
-
/* @__PURE__ */
|
|
11645
|
+
isBlockscoutLoading && /* @__PURE__ */ jsx58("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: /* @__PURE__ */ jsx58(Loader19, { className: "h-5 w-5 animate-spin" }) }),
|
|
11646
|
+
!isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ jsxs51(Highlight, { type: "info", className: "flex flex-col items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
11647
|
+
/* @__PURE__ */ jsx58(Gem, { className: "w-8 h-8" }),
|
|
11648
|
+
/* @__PURE__ */ jsx58("span", { className: "block", children: "No assets found" })
|
|
11656
11649
|
] }),
|
|
11657
|
-
!isBlockscoutLoading && projectAssets?.map((asset, index) => /* @__PURE__ */
|
|
11658
|
-
!isBlockscoutLoading && blockscoutAssets?.length > 0 && blockscoutAssets.map((asset, index) => /* @__PURE__ */
|
|
11650
|
+
!isBlockscoutLoading && projectAssets?.map((asset, index) => /* @__PURE__ */ jsx58(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
|
|
11651
|
+
!isBlockscoutLoading && blockscoutAssets?.length > 0 && blockscoutAssets.map((asset, index) => /* @__PURE__ */ jsx58(
|
|
11659
11652
|
PortfolioItem,
|
|
11660
11653
|
{
|
|
11661
11654
|
address,
|
|
@@ -11663,9 +11656,9 @@ function PortfolioMenu() {
|
|
|
11663
11656
|
},
|
|
11664
11657
|
`${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
|
|
11665
11658
|
)),
|
|
11666
|
-
blockscoutError && !isBlockscoutAvailable && /* @__PURE__ */
|
|
11667
|
-
/* @__PURE__ */
|
|
11668
|
-
/* @__PURE__ */
|
|
11659
|
+
blockscoutError && !isBlockscoutAvailable && /* @__PURE__ */ jsxs51(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11660
|
+
/* @__PURE__ */ jsx58(AlertCircle4, { className: "h-4 w-4 flex-shrink-0" }),
|
|
11661
|
+
/* @__PURE__ */ jsx58("span", { className: "text-xs", children: blockscoutError.message })
|
|
11669
11662
|
] })
|
|
11670
11663
|
] })
|
|
11671
11664
|
}
|
|
@@ -11676,9 +11669,9 @@ function PortfolioMenu() {
|
|
|
11676
11669
|
init_auth();
|
|
11677
11670
|
init_keyshare();
|
|
11678
11671
|
import { useQuery as useQuery15, useQueryClient as useQueryClient17 } from "@tanstack/react-query";
|
|
11679
|
-
import
|
|
11672
|
+
import dayjs4 from "dayjs";
|
|
11680
11673
|
import { ArrowLeft as ArrowLeft11, Loader as Loader22, Trash2 as Trash22 } from "lucide-react";
|
|
11681
|
-
import { useState as
|
|
11674
|
+
import { useState as useState16 } from "react";
|
|
11682
11675
|
init_iframe_manager();
|
|
11683
11676
|
init_vaultClient();
|
|
11684
11677
|
|
|
@@ -11689,13 +11682,13 @@ var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
|
|
|
11689
11682
|
import { Cloud as Cloud4, Laptop, Loader as Loader21, RefreshCw as RefreshCw2, Server as Server3 } from "lucide-react";
|
|
11690
11683
|
|
|
11691
11684
|
// src/internal/assets/NegativeIcon.tsx
|
|
11692
|
-
import { jsx as
|
|
11685
|
+
import { jsx as jsx59, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
11693
11686
|
function NegativeIcon(props) {
|
|
11694
11687
|
const { width = "16", height = "16", ...rest } = props;
|
|
11695
|
-
return /* @__PURE__ */
|
|
11696
|
-
/* @__PURE__ */
|
|
11697
|
-
/* @__PURE__ */
|
|
11698
|
-
/* @__PURE__ */
|
|
11688
|
+
return /* @__PURE__ */ jsxs52("svg", { ...rest, width, height, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
11689
|
+
/* @__PURE__ */ jsx59("rect", { width: "16", height: "16", rx: "8", fill: "var(--l-pass-bg-error)" }),
|
|
11690
|
+
/* @__PURE__ */ jsx59("path", { d: "M10.8048 5.19482L5.19434 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" }),
|
|
11691
|
+
/* @__PURE__ */ jsx59("path", { d: "M5.19421 5.19482L10.8047 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" })
|
|
11699
11692
|
] });
|
|
11700
11693
|
}
|
|
11701
11694
|
|
|
@@ -11704,13 +11697,13 @@ init_vaultClient();
|
|
|
11704
11697
|
|
|
11705
11698
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
11706
11699
|
import { Loader as Loader20 } from "lucide-react";
|
|
11707
|
-
import { jsx as
|
|
11700
|
+
import { jsx as jsx60, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
11708
11701
|
function KeyshareStatus(props) {
|
|
11709
11702
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
11710
|
-
if (isLoading) return /* @__PURE__ */
|
|
11711
|
-
return /* @__PURE__ */
|
|
11703
|
+
if (isLoading) return /* @__PURE__ */ jsx60(Loader20, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
|
|
11704
|
+
return /* @__PURE__ */ jsxs53("div", { className: "group relative w-full h-full", children: [
|
|
11712
11705
|
children,
|
|
11713
|
-
/* @__PURE__ */
|
|
11706
|
+
/* @__PURE__ */ jsx60(
|
|
11714
11707
|
"div",
|
|
11715
11708
|
{
|
|
11716
11709
|
className: cn(
|
|
@@ -11718,10 +11711,10 @@ function KeyshareStatus(props) {
|
|
|
11718
11711
|
"rounded-full bg-[var(--l-pass-bg)]"
|
|
11719
11712
|
// 'border border-[var(--l-pass-bd)]'
|
|
11720
11713
|
),
|
|
11721
|
-
children: /* @__PURE__ */
|
|
11714
|
+
children: /* @__PURE__ */ jsx60(Icon2, { className: "w-4 h-4" })
|
|
11722
11715
|
}
|
|
11723
11716
|
),
|
|
11724
|
-
/* @__PURE__ */
|
|
11717
|
+
/* @__PURE__ */ jsx60(
|
|
11725
11718
|
"div",
|
|
11726
11719
|
{
|
|
11727
11720
|
style: { transform: "translateY(calc(var(--l-pass-gap) * -4))" },
|
|
@@ -11739,9 +11732,9 @@ function KeyshareStatus(props) {
|
|
|
11739
11732
|
}
|
|
11740
11733
|
|
|
11741
11734
|
// src/internal/components/SecurityMenu/Keyshare/LastBackup.tsx
|
|
11742
|
-
import
|
|
11735
|
+
import dayjs3 from "dayjs";
|
|
11743
11736
|
import { Cloud as Cloud3, HardDrive, Server as Server2 } from "lucide-react";
|
|
11744
|
-
import { Fragment as
|
|
11737
|
+
import { Fragment as Fragment20, jsx as jsx61, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
11745
11738
|
function parseOS(ua) {
|
|
11746
11739
|
if (!ua) return null;
|
|
11747
11740
|
if (ua.includes("Mac OS X")) return "macOS";
|
|
@@ -11763,113 +11756,113 @@ function LastBackup(props) {
|
|
|
11763
11756
|
} = createdRecoveryStats || {};
|
|
11764
11757
|
const hasBackupData = backup?.server?.enabled && backup.server.lastBackup || !backup.server.lastBackup && recoveryCreatedAt || backup.cloud.enabled && backup.cloud?.lastBackup || backup.local.enabled && backup.local.lastBackup;
|
|
11765
11758
|
if (!hasBackupData) return null;
|
|
11766
|
-
return /* @__PURE__ */
|
|
11767
|
-
/* @__PURE__ */
|
|
11768
|
-
/* @__PURE__ */
|
|
11769
|
-
/* @__PURE__ */
|
|
11759
|
+
return /* @__PURE__ */ jsxs54(Highlight, { type: "info", className: "flex flex-col gap-[var(--l-pass-gap)] text-[10px] leading-tight", children: [
|
|
11760
|
+
/* @__PURE__ */ jsxs54("span", { className: "flex items-center gap-[var(--l-pass-gap)] font-bold text-xs leading-4", children: [
|
|
11761
|
+
/* @__PURE__ */ jsx61(Server2, { className: "w-4 h-4 inline" }),
|
|
11762
|
+
/* @__PURE__ */ jsx61("span", { children: "Last Keyshare Vault Backup" })
|
|
11770
11763
|
] }),
|
|
11771
|
-
recoveryCreatedAt && /* @__PURE__ */
|
|
11772
|
-
/* @__PURE__ */
|
|
11773
|
-
/* @__PURE__ */
|
|
11764
|
+
recoveryCreatedAt && /* @__PURE__ */ jsxs54(Fragment20, { children: [
|
|
11765
|
+
/* @__PURE__ */ jsx61("span", { children: dayjs3(recoveryCreatedAt).format("MMMM DD, YYYY HH:mm") }),
|
|
11766
|
+
/* @__PURE__ */ jsx61("span", { children: `${recoveryBrowser || "UNKNOWN"} browser at ${recoveryDeviceName || "UNKNOWN"} device under ${parseOS(recoveryUa) || "UNKNOWN"} OS` })
|
|
11774
11767
|
] }),
|
|
11775
|
-
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */
|
|
11776
|
-
/* @__PURE__ */
|
|
11777
|
-
/* @__PURE__ */
|
|
11768
|
+
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-1", children: [
|
|
11769
|
+
/* @__PURE__ */ jsx61(Cloud3, { className: "h-3 w-3" }),
|
|
11770
|
+
/* @__PURE__ */ jsxs54("span", { children: [
|
|
11778
11771
|
"Cloud: ",
|
|
11779
|
-
|
|
11772
|
+
dayjs3(backup.cloud.lastBackup).format("MMMM DD, YYYY HH:mm")
|
|
11780
11773
|
] })
|
|
11781
11774
|
] }),
|
|
11782
|
-
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */
|
|
11783
|
-
/* @__PURE__ */
|
|
11784
|
-
/* @__PURE__ */
|
|
11775
|
+
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-1", children: [
|
|
11776
|
+
/* @__PURE__ */ jsx61(HardDrive, { className: "h-3 w-3" }),
|
|
11777
|
+
/* @__PURE__ */ jsxs54("span", { children: [
|
|
11785
11778
|
"Local: ",
|
|
11786
|
-
|
|
11779
|
+
dayjs3(backup.local.lastBackup).format("MMMM DD, YYYY HH:mm")
|
|
11787
11780
|
] })
|
|
11788
11781
|
] })
|
|
11789
11782
|
] });
|
|
11790
11783
|
}
|
|
11791
11784
|
|
|
11792
11785
|
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
11793
|
-
import { Fragment as
|
|
11786
|
+
import { Fragment as Fragment21, jsx as jsx62, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
11794
11787
|
function Keyshare(props) {
|
|
11795
11788
|
const { userId, serverHasKeyshare, localInfo, hasServerBackup, createdRecoveryStats, isLoading, refresh } = props;
|
|
11796
11789
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
11797
|
-
return /* @__PURE__ */
|
|
11798
|
-
/* @__PURE__ */
|
|
11799
|
-
/* @__PURE__ */
|
|
11800
|
-
/* @__PURE__ */
|
|
11790
|
+
return /* @__PURE__ */ jsxs55(Fragment21, { children: [
|
|
11791
|
+
/* @__PURE__ */ jsxs55("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
11792
|
+
/* @__PURE__ */ jsx62("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
11793
|
+
/* @__PURE__ */ jsx62(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ jsx62(Loader21, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx62(RefreshCw2, { className: "h-4 w-4" }) })
|
|
11801
11794
|
] }),
|
|
11802
|
-
/* @__PURE__ */
|
|
11803
|
-
/* @__PURE__ */
|
|
11795
|
+
/* @__PURE__ */ jsxs55("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)] px-[var(--l-pass-gap)]", children: [
|
|
11796
|
+
/* @__PURE__ */ jsx62(
|
|
11804
11797
|
KeyshareStatus,
|
|
11805
11798
|
{
|
|
11806
11799
|
content: serverHasKeyshare ? "Your Server Security Key Share is safe and ready" : "Server Security Key Share is missing",
|
|
11807
11800
|
icon: serverHasKeyshare ? PositiveIcon : NegativeIcon,
|
|
11808
|
-
children: /* @__PURE__ */
|
|
11801
|
+
children: /* @__PURE__ */ jsxs55(
|
|
11809
11802
|
Highlight,
|
|
11810
11803
|
{
|
|
11811
11804
|
type: serverHasKeyshare ? "success" : "warning",
|
|
11812
11805
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11813
11806
|
children: [
|
|
11814
|
-
/* @__PURE__ */
|
|
11815
|
-
/* @__PURE__ */
|
|
11807
|
+
/* @__PURE__ */ jsx62(Cloud4, { className: "h-6 w-6" }),
|
|
11808
|
+
/* @__PURE__ */ jsx62("span", { className: "text-[10px] font-medium leading-4", children: "Server Share" })
|
|
11816
11809
|
]
|
|
11817
11810
|
}
|
|
11818
11811
|
)
|
|
11819
11812
|
}
|
|
11820
11813
|
),
|
|
11821
|
-
/* @__PURE__ */
|
|
11814
|
+
/* @__PURE__ */ jsx62(
|
|
11822
11815
|
KeyshareStatus,
|
|
11823
11816
|
{
|
|
11824
11817
|
content: localInfo?.hasKeyshare ? "Your Private Local Security Key Share is safe and ready" : "Private Local Security Key Share is missing",
|
|
11825
11818
|
icon: localInfo?.hasKeyshare ? PositiveIcon : NegativeIcon,
|
|
11826
|
-
children: /* @__PURE__ */
|
|
11819
|
+
children: /* @__PURE__ */ jsxs55(
|
|
11827
11820
|
Highlight,
|
|
11828
11821
|
{
|
|
11829
11822
|
type: localInfo?.hasKeyshare ? "success" : "warning",
|
|
11830
11823
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11831
11824
|
children: [
|
|
11832
|
-
/* @__PURE__ */
|
|
11833
|
-
/* @__PURE__ */
|
|
11825
|
+
/* @__PURE__ */ jsx62(Laptop, { className: "h-6 w-6" }),
|
|
11826
|
+
/* @__PURE__ */ jsx62("span", { className: "text-[10px] font-medium leading-4", children: "Local Share" })
|
|
11834
11827
|
]
|
|
11835
11828
|
}
|
|
11836
11829
|
)
|
|
11837
11830
|
}
|
|
11838
11831
|
),
|
|
11839
|
-
/* @__PURE__ */
|
|
11832
|
+
/* @__PURE__ */ jsx62(
|
|
11840
11833
|
KeyshareStatus,
|
|
11841
11834
|
{
|
|
11842
11835
|
content: hasServerBackup ? "Security Key Share Vault Backup exists and ready" : "Security Key Share Vault Backup Missing. Create one to ensure your data is safe.",
|
|
11843
11836
|
icon: hasServerBackup ? PositiveIcon : NegativeIcon,
|
|
11844
|
-
children: /* @__PURE__ */
|
|
11837
|
+
children: /* @__PURE__ */ jsxs55(
|
|
11845
11838
|
Highlight,
|
|
11846
11839
|
{
|
|
11847
11840
|
type: hasServerBackup ? "success" : "warning",
|
|
11848
11841
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11849
11842
|
children: [
|
|
11850
|
-
/* @__PURE__ */
|
|
11851
|
-
/* @__PURE__ */
|
|
11843
|
+
/* @__PURE__ */ jsx62(Server3, { className: "h-6 w-6" }),
|
|
11844
|
+
/* @__PURE__ */ jsx62("span", { className: "text-[10px] font-medium leading-4", children: "Backup Vault" })
|
|
11852
11845
|
]
|
|
11853
11846
|
}
|
|
11854
11847
|
)
|
|
11855
11848
|
}
|
|
11856
11849
|
)
|
|
11857
11850
|
] }),
|
|
11858
|
-
createdRecoveryStats?.at && /* @__PURE__ */
|
|
11859
|
-
/* @__PURE__ */
|
|
11851
|
+
createdRecoveryStats?.at && /* @__PURE__ */ jsx62(LastBackup, { backup, createdRecoveryStats }),
|
|
11852
|
+
/* @__PURE__ */ jsx62("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
11860
11853
|
] });
|
|
11861
11854
|
}
|
|
11862
11855
|
|
|
11863
11856
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
11864
|
-
import { Fragment as
|
|
11857
|
+
import { Fragment as Fragment22, jsx as jsx63, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
11865
11858
|
function SecurityMenu() {
|
|
11866
11859
|
const qc = useQueryClient17();
|
|
11867
11860
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11868
11861
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11869
11862
|
const userId = jwtTokenManager2.getUserId();
|
|
11870
11863
|
const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
11871
|
-
const [isRemoving, setIsRemoving] =
|
|
11872
|
-
const [appToRemove, setAppToRemove] =
|
|
11864
|
+
const [isRemoving, setIsRemoving] = useState16(false);
|
|
11865
|
+
const [appToRemove, setAppToRemove] = useState16(null);
|
|
11873
11866
|
const { data: recoveryData, isFetching: isRecoveryLoading } = useQuery15({
|
|
11874
11867
|
enabled: !!userId,
|
|
11875
11868
|
queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
|
|
@@ -11909,7 +11902,7 @@ function SecurityMenu() {
|
|
|
11909
11902
|
setIsRemoving(false);
|
|
11910
11903
|
}
|
|
11911
11904
|
};
|
|
11912
|
-
return /* @__PURE__ */
|
|
11905
|
+
return /* @__PURE__ */ jsx63(
|
|
11913
11906
|
"div",
|
|
11914
11907
|
{
|
|
11915
11908
|
style: {
|
|
@@ -11917,9 +11910,9 @@ function SecurityMenu() {
|
|
|
11917
11910
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
11918
11911
|
},
|
|
11919
11912
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11920
|
-
children: /* @__PURE__ */
|
|
11921
|
-
/* @__PURE__ */
|
|
11922
|
-
/* @__PURE__ */
|
|
11913
|
+
children: /* @__PURE__ */ jsxs56(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11914
|
+
/* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11915
|
+
/* @__PURE__ */ jsx63(
|
|
11923
11916
|
Button,
|
|
11924
11917
|
{
|
|
11925
11918
|
variant: "ghost",
|
|
@@ -11929,13 +11922,13 @@ function SecurityMenu() {
|
|
|
11929
11922
|
if (!!appToRemove) setAppToRemove(null);
|
|
11930
11923
|
else setPage("settings" /* SETTINGS */);
|
|
11931
11924
|
},
|
|
11932
|
-
children: /* @__PURE__ */
|
|
11925
|
+
children: /* @__PURE__ */ jsx63(ArrowLeft11, { className: "h-4 w-4" })
|
|
11933
11926
|
}
|
|
11934
11927
|
),
|
|
11935
|
-
/* @__PURE__ */
|
|
11928
|
+
/* @__PURE__ */ jsx63("span", { className: "text-xl font-semibold", children: "Security" })
|
|
11936
11929
|
] }),
|
|
11937
|
-
!appToRemove && /* @__PURE__ */
|
|
11938
|
-
/* @__PURE__ */
|
|
11930
|
+
!appToRemove && /* @__PURE__ */ jsxs56(Fragment22, { children: [
|
|
11931
|
+
/* @__PURE__ */ jsx63(
|
|
11939
11932
|
Keyshare,
|
|
11940
11933
|
{
|
|
11941
11934
|
userId,
|
|
@@ -11947,31 +11940,31 @@ function SecurityMenu() {
|
|
|
11947
11940
|
refresh: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] })
|
|
11948
11941
|
}
|
|
11949
11942
|
),
|
|
11950
|
-
trustedApps.length > 0 && /* @__PURE__ */
|
|
11951
|
-
/* @__PURE__ */
|
|
11952
|
-
/* @__PURE__ */
|
|
11953
|
-
/* @__PURE__ */
|
|
11943
|
+
trustedApps.length > 0 && /* @__PURE__ */ jsxs56(Fragment22, { children: [
|
|
11944
|
+
/* @__PURE__ */ jsxs56("div", { className: "w-full space-y-2", children: [
|
|
11945
|
+
/* @__PURE__ */ jsx63("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
11946
|
+
/* @__PURE__ */ jsx63("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs56(
|
|
11954
11947
|
"div",
|
|
11955
11948
|
{
|
|
11956
11949
|
className: "text-[10px] leading-tight p-2 rounded-[var(--l-pass-el-bdrs)] flex items-center gap-[var(--l-pass-gap)] bg-[var(--l-pass-bg-info)]",
|
|
11957
11950
|
children: [
|
|
11958
|
-
app.appLogo ? /* @__PURE__ */
|
|
11951
|
+
app.appLogo ? /* @__PURE__ */ jsx63(
|
|
11959
11952
|
"img",
|
|
11960
11953
|
{
|
|
11961
11954
|
src: app.appLogo,
|
|
11962
11955
|
alt: app.appName,
|
|
11963
11956
|
className: "w-8 h-8 rounded-[var(--l-pass-el-bdrs)] object-cover flex-shrink-0"
|
|
11964
11957
|
}
|
|
11965
|
-
) : /* @__PURE__ */
|
|
11966
|
-
/* @__PURE__ */
|
|
11967
|
-
/* @__PURE__ */
|
|
11968
|
-
/* @__PURE__ */
|
|
11969
|
-
/* @__PURE__ */
|
|
11958
|
+
) : /* @__PURE__ */ jsx63("div", { className: "w-8 h-8 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-muted)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx63("span", { className: "text-sm", children: "\u{1F517}" }) }),
|
|
11959
|
+
/* @__PURE__ */ jsxs56("div", { className: "flex-1 min-w-0", children: [
|
|
11960
|
+
/* @__PURE__ */ jsx63("div", { className: "font-semibold truncate", children: app.appName || new URL(app.origin).hostname }),
|
|
11961
|
+
/* @__PURE__ */ jsx63("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: new URL(app.origin).hostname }),
|
|
11962
|
+
/* @__PURE__ */ jsxs56("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: [
|
|
11970
11963
|
"Trusted: ",
|
|
11971
|
-
|
|
11964
|
+
dayjs4(app.trustedAt).format("MMM D, YYYY HH:mm")
|
|
11972
11965
|
] })
|
|
11973
11966
|
] }),
|
|
11974
|
-
/* @__PURE__ */
|
|
11967
|
+
/* @__PURE__ */ jsx63(
|
|
11975
11968
|
Button,
|
|
11976
11969
|
{
|
|
11977
11970
|
variant: "ghost",
|
|
@@ -11985,7 +11978,7 @@ function SecurityMenu() {
|
|
|
11985
11978
|
appName: app.appName,
|
|
11986
11979
|
appLogo: app.appLogo
|
|
11987
11980
|
}),
|
|
11988
|
-
children: /* @__PURE__ */
|
|
11981
|
+
children: /* @__PURE__ */ jsx63(Trash22, { className: "h-4 w-4" })
|
|
11989
11982
|
}
|
|
11990
11983
|
)
|
|
11991
11984
|
]
|
|
@@ -11993,37 +11986,37 @@ function SecurityMenu() {
|
|
|
11993
11986
|
index
|
|
11994
11987
|
)) })
|
|
11995
11988
|
] }),
|
|
11996
|
-
/* @__PURE__ */
|
|
11989
|
+
/* @__PURE__ */ jsx63("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
11997
11990
|
] })
|
|
11998
11991
|
] }),
|
|
11999
|
-
!!appToRemove && /* @__PURE__ */
|
|
12000
|
-
/* @__PURE__ */
|
|
12001
|
-
/* @__PURE__ */
|
|
12002
|
-
/* @__PURE__ */
|
|
12003
|
-
appToRemove.appLogo ? /* @__PURE__ */
|
|
12004
|
-
/* @__PURE__ */
|
|
12005
|
-
/* @__PURE__ */
|
|
12006
|
-
/* @__PURE__ */
|
|
11992
|
+
!!appToRemove && /* @__PURE__ */ jsxs56("div", { className: "w-full", children: [
|
|
11993
|
+
/* @__PURE__ */ jsxs56("div", { className: "text-center", children: [
|
|
11994
|
+
/* @__PURE__ */ jsx63("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
|
|
11995
|
+
/* @__PURE__ */ jsxs56("div", { className: "flex items-center justify-center gap-2 mb-3", children: [
|
|
11996
|
+
appToRemove.appLogo ? /* @__PURE__ */ jsx63("img", { src: appToRemove.appLogo, alt: "", className: "w-10 h-10 rounded-md object-cover" }) : /* @__PURE__ */ jsx63("div", { className: "w-10 h-10 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center", children: /* @__PURE__ */ jsx63("span", { className: "text-lg", children: "\u{1F517}" }) }),
|
|
11997
|
+
/* @__PURE__ */ jsxs56("div", { className: "text-left", children: [
|
|
11998
|
+
/* @__PURE__ */ jsx63("div", { className: "font-medium", children: appToRemove.appName || appToRemove.hostname }),
|
|
11999
|
+
/* @__PURE__ */ jsx63("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: appToRemove.hostname })
|
|
12007
12000
|
] })
|
|
12008
12001
|
] }),
|
|
12009
|
-
/* @__PURE__ */
|
|
12010
|
-
/* @__PURE__ */
|
|
12011
|
-
/* @__PURE__ */
|
|
12012
|
-
/* @__PURE__ */
|
|
12013
|
-
/* @__PURE__ */
|
|
12002
|
+
/* @__PURE__ */ jsxs56("div", { className: "text-xs text-[var(--l-pass-fg-muted)] text-left space-y-1 mb-4", children: [
|
|
12003
|
+
/* @__PURE__ */ jsx63("p", { children: "After removing this application:" }),
|
|
12004
|
+
/* @__PURE__ */ jsxs56("ul", { className: "list-disc list-inside ml-2 space-y-0.5", children: [
|
|
12005
|
+
/* @__PURE__ */ jsx63("li", { children: "All transactions will require confirmation" }),
|
|
12006
|
+
/* @__PURE__ */ jsx63("li", { children: 'You can re-add it anytime by checking "Trust this app"' })
|
|
12014
12007
|
] })
|
|
12015
12008
|
] })
|
|
12016
12009
|
] }),
|
|
12017
|
-
/* @__PURE__ */
|
|
12018
|
-
/* @__PURE__ */
|
|
12019
|
-
/* @__PURE__ */
|
|
12010
|
+
/* @__PURE__ */ jsxs56("div", { className: "flex gap-2", children: [
|
|
12011
|
+
/* @__PURE__ */ jsx63(Button, { variant: "outline", className: "flex-1", onClick: () => setAppToRemove(null), disabled: isRemoving, children: "Cancel" }),
|
|
12012
|
+
/* @__PURE__ */ jsx63(
|
|
12020
12013
|
Button,
|
|
12021
12014
|
{
|
|
12022
12015
|
variant: "default",
|
|
12023
12016
|
className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/60 active:bg-[var(--l-pass-error)]/40",
|
|
12024
12017
|
onClick: handleRemoveTrustedApp,
|
|
12025
12018
|
disabled: isRemoving,
|
|
12026
|
-
children: isRemoving ? /* @__PURE__ */
|
|
12019
|
+
children: isRemoving ? /* @__PURE__ */ jsx63(Loader22, { className: "h-4 w-4 animate-spin" }) : "Remove"
|
|
12027
12020
|
}
|
|
12028
12021
|
)
|
|
12029
12022
|
] })
|
|
@@ -12036,9 +12029,9 @@ function SecurityMenu() {
|
|
|
12036
12029
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12037
12030
|
import {
|
|
12038
12031
|
AlertCircle as AlertCircle5,
|
|
12039
|
-
AlertTriangle as
|
|
12032
|
+
AlertTriangle as AlertTriangle5,
|
|
12040
12033
|
ArrowLeft as ArrowLeft12,
|
|
12041
|
-
AtSign,
|
|
12034
|
+
AtSign as AtSign2,
|
|
12042
12035
|
CheckCircle2 as CheckCircle23,
|
|
12043
12036
|
Image as ImageIcon3,
|
|
12044
12037
|
Loader as Loader23,
|
|
@@ -12047,7 +12040,7 @@ import {
|
|
|
12047
12040
|
Sparkles as Sparkles3,
|
|
12048
12041
|
Wallet as Wallet3
|
|
12049
12042
|
} from "lucide-react";
|
|
12050
|
-
import { useEffect as
|
|
12043
|
+
import { useEffect as useEffect28, useMemo as useMemo6, useState as useState20 } from "react";
|
|
12051
12044
|
import { formatUnits as formatUnits5, isAddress as isAddress2, parseUnits as parseUnits2 } from "viem";
|
|
12052
12045
|
|
|
12053
12046
|
// src/hooks/useErc3643Compliance.ts
|
|
@@ -12114,7 +12107,7 @@ function useErc3643Compliance(options) {
|
|
|
12114
12107
|
init_nickname();
|
|
12115
12108
|
init_profile();
|
|
12116
12109
|
import { useQuery as useQuery16 } from "@tanstack/react-query";
|
|
12117
|
-
import { useState as
|
|
12110
|
+
import { useState as useState17, useEffect as useEffect26, useMemo as useMemo5 } from "react";
|
|
12118
12111
|
|
|
12119
12112
|
// src/internal/lib/nickname-fingerprint.ts
|
|
12120
12113
|
import { keccak256 as keccak2562, getAddress as getAddress2 } from "viem";
|
|
@@ -12202,11 +12195,11 @@ function looksLikeNickname(input) {
|
|
|
12202
12195
|
}
|
|
12203
12196
|
function useNicknameResolve(input, options) {
|
|
12204
12197
|
const { enabled = true, chainId } = options;
|
|
12205
|
-
const [debouncedInput, setDebouncedInput] =
|
|
12206
|
-
const [isDebouncing, setIsDebouncing] =
|
|
12198
|
+
const [debouncedInput, setDebouncedInput] = useState17("");
|
|
12199
|
+
const [isDebouncing, setIsDebouncing] = useState17(false);
|
|
12207
12200
|
const normalized = normalizeNickname(input);
|
|
12208
12201
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
12209
|
-
|
|
12202
|
+
useEffect26(() => {
|
|
12210
12203
|
if (!isNicknameInput || !enabled) {
|
|
12211
12204
|
setDebouncedInput("");
|
|
12212
12205
|
setIsDebouncing(false);
|
|
@@ -12256,7 +12249,7 @@ function useNicknameResolve(input, options) {
|
|
|
12256
12249
|
}
|
|
12257
12250
|
|
|
12258
12251
|
// src/hooks/useSendTransaction.ts
|
|
12259
|
-
import { useCallback as
|
|
12252
|
+
import { useCallback as useCallback16, useState as useState18 } from "react";
|
|
12260
12253
|
import { encodeFunctionData as encodeFunctionData2, isAddress, parseEther as parseEther2, parseUnits } from "viem";
|
|
12261
12254
|
init_account();
|
|
12262
12255
|
var ERC20_TRANSFER_ABI = [
|
|
@@ -12299,10 +12292,10 @@ var ERC1155_SAFE_TRANSFER_ABI = [
|
|
|
12299
12292
|
function useSendTransaction() {
|
|
12300
12293
|
const session = useLumiaPassportSession((st) => st.session);
|
|
12301
12294
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12302
|
-
const [isLoading, setIsLoading] =
|
|
12303
|
-
const [error, setError] =
|
|
12304
|
-
const [userOpHash, setUserOpHash] =
|
|
12305
|
-
const sendTransaction =
|
|
12295
|
+
const [isLoading, setIsLoading] = useState18(false);
|
|
12296
|
+
const [error, setError] = useState18(null);
|
|
12297
|
+
const [userOpHash, setUserOpHash] = useState18(null);
|
|
12298
|
+
const sendTransaction = useCallback16(
|
|
12306
12299
|
async (params) => {
|
|
12307
12300
|
if (!session || !address) {
|
|
12308
12301
|
setError("No active session");
|
|
@@ -12401,7 +12394,7 @@ function useSendTransaction() {
|
|
|
12401
12394
|
},
|
|
12402
12395
|
[session, address]
|
|
12403
12396
|
);
|
|
12404
|
-
const reset =
|
|
12397
|
+
const reset = useCallback16(() => {
|
|
12405
12398
|
setError(null);
|
|
12406
12399
|
setUserOpHash(null);
|
|
12407
12400
|
setIsLoading(false);
|
|
@@ -12420,9 +12413,9 @@ init_base();
|
|
|
12420
12413
|
|
|
12421
12414
|
// src/internal/components/SendRecieveMenu/AssetSelector.tsx
|
|
12422
12415
|
import { ChevronDown, Image as ImageIcon2, Shield as Shield2, Sparkles as Sparkles2, X as X4 } from "lucide-react";
|
|
12423
|
-
import { useState as
|
|
12416
|
+
import { useState as useState19, useRef as useRef14, useEffect as useEffect27 } from "react";
|
|
12424
12417
|
import { formatUnits as formatUnits4 } from "viem";
|
|
12425
|
-
import { Fragment as
|
|
12418
|
+
import { Fragment as Fragment23, jsx as jsx64, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
12426
12419
|
function isNftAsset2(asset) {
|
|
12427
12420
|
return asset.type === "erc721" || asset.type === "erc1155";
|
|
12428
12421
|
}
|
|
@@ -12443,15 +12436,15 @@ function getAssetBalance(asset) {
|
|
|
12443
12436
|
return balance.toFixed(4);
|
|
12444
12437
|
}
|
|
12445
12438
|
function AssetIcon({ asset, size = "sm" }) {
|
|
12446
|
-
const [imageError, setImageError] =
|
|
12439
|
+
const [imageError, setImageError] = useState19(false);
|
|
12447
12440
|
const sizeClasses = size === "sm" ? "w-6 h-6" : "w-10 h-10";
|
|
12448
12441
|
const textSize = size === "sm" ? "text-xs" : "text-sm";
|
|
12449
12442
|
const isNft = isNftAsset2(asset);
|
|
12450
12443
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12451
12444
|
const isSecurity = isSecurityToken2(asset);
|
|
12452
12445
|
if (isNft && nftImage && !imageError) {
|
|
12453
|
-
return /* @__PURE__ */
|
|
12454
|
-
/* @__PURE__ */
|
|
12446
|
+
return /* @__PURE__ */ jsxs57("div", { className: cn(sizeClasses, "rounded-[var(--l-pass-el-bdrs)] overflow-hidden relative flex-shrink-0"), children: [
|
|
12447
|
+
/* @__PURE__ */ jsx64(
|
|
12455
12448
|
"img",
|
|
12456
12449
|
{
|
|
12457
12450
|
src: nftImage,
|
|
@@ -12460,18 +12453,18 @@ function AssetIcon({ asset, size = "sm" }) {
|
|
|
12460
12453
|
onError: () => setImageError(true)
|
|
12461
12454
|
}
|
|
12462
12455
|
),
|
|
12463
|
-
/* @__PURE__ */
|
|
12456
|
+
/* @__PURE__ */ jsx64("div", { className: "absolute -top-0.5 -right-0.5 w-3 h-3 rounded-full bg-[var(--l-pass-accent)] flex items-center justify-center", children: /* @__PURE__ */ jsx64(Sparkles2, { className: "w-2 h-2 text-[var(--l-pass-fg-inverted)]" }) })
|
|
12464
12457
|
] });
|
|
12465
12458
|
}
|
|
12466
12459
|
if (isNft) {
|
|
12467
|
-
return /* @__PURE__ */
|
|
12468
|
-
/* @__PURE__ */
|
|
12469
|
-
/* @__PURE__ */
|
|
12460
|
+
return /* @__PURE__ */ jsxs57("div", { className: cn(sizeClasses, "rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-fg)] flex items-center justify-center relative flex-shrink-0"), children: [
|
|
12461
|
+
/* @__PURE__ */ jsx64(ImageIcon2, { className: cn(size === "sm" ? "w-3 h-3" : "w-5 h-5", "text-[var(--l-pass-fg-inverted)]") }),
|
|
12462
|
+
/* @__PURE__ */ jsx64("div", { className: "absolute -top-0.5 -right-0.5 w-3 h-3 rounded-full bg-[var(--l-pass-accent)] flex items-center justify-center", children: /* @__PURE__ */ jsx64(Sparkles2, { className: "w-2 h-2 text-[var(--l-pass-fg-inverted)]" }) })
|
|
12470
12463
|
] });
|
|
12471
12464
|
}
|
|
12472
12465
|
if (asset.logo && !imageError) {
|
|
12473
|
-
return /* @__PURE__ */
|
|
12474
|
-
/* @__PURE__ */
|
|
12466
|
+
return /* @__PURE__ */ jsxs57("div", { className: cn(sizeClasses, "rounded-full overflow-hidden relative flex-shrink-0"), children: [
|
|
12467
|
+
/* @__PURE__ */ jsx64(
|
|
12475
12468
|
"img",
|
|
12476
12469
|
{
|
|
12477
12470
|
src: asset.logo,
|
|
@@ -12480,12 +12473,12 @@ function AssetIcon({ asset, size = "sm" }) {
|
|
|
12480
12473
|
onError: () => setImageError(true)
|
|
12481
12474
|
}
|
|
12482
12475
|
),
|
|
12483
|
-
isSecurity && /* @__PURE__ */
|
|
12476
|
+
isSecurity && /* @__PURE__ */ jsx64("div", { className: "absolute -top-0.5 -right-0.5 w-3 h-3 rounded-full bg-amber-500 flex items-center justify-center", children: /* @__PURE__ */ jsx64(Shield2, { className: "w-2 h-2 text-white" }) })
|
|
12484
12477
|
] });
|
|
12485
12478
|
}
|
|
12486
|
-
return /* @__PURE__ */
|
|
12487
|
-
/* @__PURE__ */
|
|
12488
|
-
isSecurity && /* @__PURE__ */
|
|
12479
|
+
return /* @__PURE__ */ jsxs57("div", { className: cn(sizeClasses, "rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center relative flex-shrink-0"), children: [
|
|
12480
|
+
/* @__PURE__ */ jsx64("span", { className: cn("text-[var(--l-pass-fg-inverted)] font-bold", textSize), children: asset.symbol.charAt(0) }),
|
|
12481
|
+
isSecurity && /* @__PURE__ */ jsx64("div", { className: "absolute -top-0.5 -right-0.5 w-3 h-3 rounded-full bg-amber-500 flex items-center justify-center", children: /* @__PURE__ */ jsx64(Shield2, { className: "w-2 h-2 text-white" }) })
|
|
12489
12482
|
] });
|
|
12490
12483
|
}
|
|
12491
12484
|
function AssetListItem({ asset, onSelect, isSelected }) {
|
|
@@ -12495,7 +12488,7 @@ function AssetListItem({ asset, onSelect, isSelected }) {
|
|
|
12495
12488
|
e.stopPropagation();
|
|
12496
12489
|
onSelect();
|
|
12497
12490
|
};
|
|
12498
|
-
return /* @__PURE__ */
|
|
12491
|
+
return /* @__PURE__ */ jsxs57(
|
|
12499
12492
|
"button",
|
|
12500
12493
|
{
|
|
12501
12494
|
type: "button",
|
|
@@ -12506,16 +12499,16 @@ function AssetListItem({ asset, onSelect, isSelected }) {
|
|
|
12506
12499
|
),
|
|
12507
12500
|
onClick: handleClick,
|
|
12508
12501
|
children: [
|
|
12509
|
-
/* @__PURE__ */
|
|
12510
|
-
/* @__PURE__ */
|
|
12511
|
-
/* @__PURE__ */
|
|
12512
|
-
/* @__PURE__ */
|
|
12502
|
+
/* @__PURE__ */ jsx64(AssetIcon, { asset, size: "md" }),
|
|
12503
|
+
/* @__PURE__ */ jsxs57("div", { className: "flex-1 min-w-0 text-left", children: [
|
|
12504
|
+
/* @__PURE__ */ jsx64("div", { className: "font-semibold text-[var(--l-pass-fg)] truncate", children: isNft ? asset.nftMetadata?.name || asset.name : asset.name }),
|
|
12505
|
+
/* @__PURE__ */ jsx64("div", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: isNft ? /* @__PURE__ */ jsxs57(Fragment23, { children: [
|
|
12513
12506
|
asset.symbol,
|
|
12514
|
-
asset.tokenId && /* @__PURE__ */
|
|
12507
|
+
asset.tokenId && /* @__PURE__ */ jsxs57("span", { className: "ml-1", children: [
|
|
12515
12508
|
"#",
|
|
12516
12509
|
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
12517
12510
|
] })
|
|
12518
|
-
] }) : /* @__PURE__ */
|
|
12511
|
+
] }) : /* @__PURE__ */ jsxs57(Fragment23, { children: [
|
|
12519
12512
|
getAssetBalance(asset),
|
|
12520
12513
|
" ",
|
|
12521
12514
|
asset.symbol
|
|
@@ -12526,10 +12519,10 @@ function AssetListItem({ asset, onSelect, isSelected }) {
|
|
|
12526
12519
|
);
|
|
12527
12520
|
}
|
|
12528
12521
|
function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
12529
|
-
const [isOpen, setIsOpen] =
|
|
12522
|
+
const [isOpen, setIsOpen] = useState19(false);
|
|
12530
12523
|
const dropdownRef = useRef14(null);
|
|
12531
12524
|
const buttonRef = useRef14(null);
|
|
12532
|
-
|
|
12525
|
+
useEffect27(() => {
|
|
12533
12526
|
function handleClickOutside(event) {
|
|
12534
12527
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target) && buttonRef.current && !buttonRef.current.contains(event.target)) {
|
|
12535
12528
|
setIsOpen(false);
|
|
@@ -12569,8 +12562,8 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12569
12562
|
return null;
|
|
12570
12563
|
}
|
|
12571
12564
|
const isNft = isNftAsset2(selectedAsset);
|
|
12572
|
-
return /* @__PURE__ */
|
|
12573
|
-
/* @__PURE__ */
|
|
12565
|
+
return /* @__PURE__ */ jsxs57("div", { className: "relative", style: { zIndex: isOpen ? 100 : "auto" }, children: [
|
|
12566
|
+
/* @__PURE__ */ jsxs57(
|
|
12574
12567
|
"button",
|
|
12575
12568
|
{
|
|
12576
12569
|
ref: buttonRef,
|
|
@@ -12584,13 +12577,13 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12584
12577
|
),
|
|
12585
12578
|
onClick: handleToggle,
|
|
12586
12579
|
children: [
|
|
12587
|
-
/* @__PURE__ */
|
|
12588
|
-
/* @__PURE__ */
|
|
12589
|
-
/* @__PURE__ */
|
|
12580
|
+
/* @__PURE__ */ jsx64(AssetIcon, { asset: selectedAsset, size: "sm" }),
|
|
12581
|
+
/* @__PURE__ */ jsx64("span", { className: "text-sm font-semibold text-[var(--l-pass-fg)] max-w-[80px] truncate", children: isNft ? selectedAsset.nftMetadata?.name || selectedAsset.symbol : selectedAsset.symbol }),
|
|
12582
|
+
/* @__PURE__ */ jsx64(ChevronDown, { className: cn("w-4 h-4 text-[var(--l-pass-fg-muted)] transition-transform", isOpen && "rotate-180") })
|
|
12590
12583
|
]
|
|
12591
12584
|
}
|
|
12592
12585
|
),
|
|
12593
|
-
isOpen && /* @__PURE__ */
|
|
12586
|
+
isOpen && /* @__PURE__ */ jsxs57(
|
|
12594
12587
|
"div",
|
|
12595
12588
|
{
|
|
12596
12589
|
ref: dropdownRef,
|
|
@@ -12603,12 +12596,12 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12603
12596
|
style: { zIndex: 100 },
|
|
12604
12597
|
onClick: (e) => e.stopPropagation(),
|
|
12605
12598
|
children: [
|
|
12606
|
-
/* @__PURE__ */
|
|
12607
|
-
/* @__PURE__ */
|
|
12608
|
-
/* @__PURE__ */
|
|
12599
|
+
/* @__PURE__ */ jsxs57("div", { className: "sticky top-0 flex items-center justify-between px-3 py-2 bg-[var(--l-pass-bg)] border-b border-[var(--l-pass-bd)]", children: [
|
|
12600
|
+
/* @__PURE__ */ jsx64("span", { className: "text-sm font-semibold text-[var(--l-pass-fg)]", children: "Select Asset" }),
|
|
12601
|
+
/* @__PURE__ */ jsx64(Button, { variant: "ghost", size: "icon", onClick: handleClose, children: /* @__PURE__ */ jsx64(X4, { className: "w-4 h-4" }) })
|
|
12609
12602
|
] }),
|
|
12610
|
-
/* @__PURE__ */
|
|
12611
|
-
nativeAssets.length > 0 && /* @__PURE__ */
|
|
12603
|
+
/* @__PURE__ */ jsxs57("div", { className: "p-2", children: [
|
|
12604
|
+
nativeAssets.length > 0 && /* @__PURE__ */ jsx64(Fragment23, { children: nativeAssets.map((asset) => /* @__PURE__ */ jsx64(
|
|
12612
12605
|
AssetListItem,
|
|
12613
12606
|
{
|
|
12614
12607
|
asset,
|
|
@@ -12617,9 +12610,9 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12617
12610
|
},
|
|
12618
12611
|
`native-${asset.symbol}`
|
|
12619
12612
|
)) }),
|
|
12620
|
-
tokenAssets.length > 0 && /* @__PURE__ */
|
|
12621
|
-
/* @__PURE__ */
|
|
12622
|
-
tokenAssets.map((asset) => /* @__PURE__ */
|
|
12613
|
+
tokenAssets.length > 0 && /* @__PURE__ */ jsxs57(Fragment23, { children: [
|
|
12614
|
+
/* @__PURE__ */ jsx64("div", { className: "px-3 py-1 text-xs text-[var(--l-pass-fg-muted)] uppercase tracking-wider mt-2", children: "Tokens" }),
|
|
12615
|
+
tokenAssets.map((asset) => /* @__PURE__ */ jsx64(
|
|
12623
12616
|
AssetListItem,
|
|
12624
12617
|
{
|
|
12625
12618
|
asset,
|
|
@@ -12629,9 +12622,9 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12629
12622
|
`token-${asset.address}`
|
|
12630
12623
|
))
|
|
12631
12624
|
] }),
|
|
12632
|
-
securityAssets.length > 0 && /* @__PURE__ */
|
|
12633
|
-
/* @__PURE__ */
|
|
12634
|
-
securityAssets.map((asset) => /* @__PURE__ */
|
|
12625
|
+
securityAssets.length > 0 && /* @__PURE__ */ jsxs57(Fragment23, { children: [
|
|
12626
|
+
/* @__PURE__ */ jsx64("div", { className: "px-3 py-1 text-xs text-[var(--l-pass-fg-muted)] uppercase tracking-wider mt-2", children: "Security Tokens" }),
|
|
12627
|
+
securityAssets.map((asset) => /* @__PURE__ */ jsx64(
|
|
12635
12628
|
AssetListItem,
|
|
12636
12629
|
{
|
|
12637
12630
|
asset,
|
|
@@ -12641,9 +12634,9 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12641
12634
|
`security-${asset.address}`
|
|
12642
12635
|
))
|
|
12643
12636
|
] }),
|
|
12644
|
-
nftAssets.length > 0 && /* @__PURE__ */
|
|
12645
|
-
/* @__PURE__ */
|
|
12646
|
-
nftAssets.map((asset) => /* @__PURE__ */
|
|
12637
|
+
nftAssets.length > 0 && /* @__PURE__ */ jsxs57(Fragment23, { children: [
|
|
12638
|
+
/* @__PURE__ */ jsx64("div", { className: "px-3 py-1 text-xs text-[var(--l-pass-fg-muted)] uppercase tracking-wider mt-2", children: "NFTs" }),
|
|
12639
|
+
nftAssets.map((asset) => /* @__PURE__ */ jsx64(
|
|
12647
12640
|
AssetListItem,
|
|
12648
12641
|
{
|
|
12649
12642
|
asset,
|
|
@@ -12653,7 +12646,7 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12653
12646
|
`nft-${asset.address}-${asset.tokenId}`
|
|
12654
12647
|
))
|
|
12655
12648
|
] }),
|
|
12656
|
-
transferableAssets.length === 0 && /* @__PURE__ */
|
|
12649
|
+
transferableAssets.length === 0 && /* @__PURE__ */ jsx64("div", { className: "p-4 text-center text-sm text-[var(--l-pass-fg-muted)]", children: "No assets available" })
|
|
12657
12650
|
] })
|
|
12658
12651
|
]
|
|
12659
12652
|
}
|
|
@@ -12662,7 +12655,7 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12662
12655
|
}
|
|
12663
12656
|
|
|
12664
12657
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12665
|
-
import { Fragment as
|
|
12658
|
+
import { Fragment as Fragment24, jsx as jsx65, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
12666
12659
|
function isNftAsset3(asset) {
|
|
12667
12660
|
if (!asset) return false;
|
|
12668
12661
|
return asset.type === "erc721" || asset.type === "erc1155";
|
|
@@ -12686,10 +12679,10 @@ function formatBalance(balance, decimals = 4) {
|
|
|
12686
12679
|
return balance.toFixed(decimals);
|
|
12687
12680
|
}
|
|
12688
12681
|
function NftDisplayCard({ asset }) {
|
|
12689
|
-
const [imageError, setImageError] =
|
|
12682
|
+
const [imageError, setImageError] = useState20(false);
|
|
12690
12683
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12691
|
-
return /* @__PURE__ */
|
|
12692
|
-
nftImage && !imageError ? /* @__PURE__ */
|
|
12684
|
+
return /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-3 p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-secondary)]", children: [
|
|
12685
|
+
nftImage && !imageError ? /* @__PURE__ */ jsx65(
|
|
12693
12686
|
"img",
|
|
12694
12687
|
{
|
|
12695
12688
|
src: nftImage,
|
|
@@ -12697,19 +12690,19 @@ function NftDisplayCard({ asset }) {
|
|
|
12697
12690
|
className: "w-16 h-16 rounded-[var(--l-pass-el-bdrs)] object-cover",
|
|
12698
12691
|
onError: () => setImageError(true)
|
|
12699
12692
|
}
|
|
12700
|
-
) : /* @__PURE__ */
|
|
12701
|
-
/* @__PURE__ */
|
|
12702
|
-
/* @__PURE__ */
|
|
12703
|
-
/* @__PURE__ */
|
|
12693
|
+
) : /* @__PURE__ */ jsx65("div", { className: "w-16 h-16 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-fg)] flex items-center justify-center", children: /* @__PURE__ */ jsx65(ImageIcon3, { className: "w-8 h-8 text-[var(--l-pass-fg-inverted)]" }) }),
|
|
12694
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex-1 min-w-0", children: [
|
|
12695
|
+
/* @__PURE__ */ jsx65("div", { className: "font-semibold text-[var(--l-pass-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
12696
|
+
/* @__PURE__ */ jsxs58("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12704
12697
|
asset.symbol,
|
|
12705
|
-
asset.tokenId && /* @__PURE__ */
|
|
12698
|
+
asset.tokenId && /* @__PURE__ */ jsxs58("span", { className: "ml-1", children: [
|
|
12706
12699
|
"#",
|
|
12707
12700
|
asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
|
|
12708
12701
|
] })
|
|
12709
12702
|
] }),
|
|
12710
|
-
/* @__PURE__ */
|
|
12711
|
-
/* @__PURE__ */
|
|
12712
|
-
/* @__PURE__ */
|
|
12703
|
+
/* @__PURE__ */ jsxs58("div", { className: "text-xs text-[var(--l-pass-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
12704
|
+
/* @__PURE__ */ jsx65(Sparkles3, { className: "w-3 h-3" }),
|
|
12705
|
+
/* @__PURE__ */ jsx65("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
12713
12706
|
] })
|
|
12714
12707
|
] })
|
|
12715
12708
|
] });
|
|
@@ -12727,12 +12720,12 @@ function SendLumiaMenu() {
|
|
|
12727
12720
|
address
|
|
12728
12721
|
});
|
|
12729
12722
|
const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
|
|
12730
|
-
const [recipient, setRecipient] =
|
|
12731
|
-
const [amount, setAmount] =
|
|
12732
|
-
const [selectedAsset, setSelectedAsset] =
|
|
12733
|
-
const [txStep, setTxStep] =
|
|
12734
|
-
const [validationError, setValidationError] =
|
|
12735
|
-
|
|
12723
|
+
const [recipient, setRecipient] = useState20("");
|
|
12724
|
+
const [amount, setAmount] = useState20("");
|
|
12725
|
+
const [selectedAsset, setSelectedAsset] = useState20(null);
|
|
12726
|
+
const [txStep, setTxStep] = useState20("input");
|
|
12727
|
+
const [validationError, setValidationError] = useState20(null);
|
|
12728
|
+
useEffect28(() => {
|
|
12736
12729
|
if (assets.length > 0 && !selectedAsset) {
|
|
12737
12730
|
const nativeAsset = assets.find((a) => a.type === "native");
|
|
12738
12731
|
if (nativeAsset) {
|
|
@@ -12775,7 +12768,7 @@ function SendLumiaMenu() {
|
|
|
12775
12768
|
amount: complianceAmount,
|
|
12776
12769
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount
|
|
12777
12770
|
});
|
|
12778
|
-
|
|
12771
|
+
useEffect28(() => {
|
|
12779
12772
|
if (open) {
|
|
12780
12773
|
setTxStep("input");
|
|
12781
12774
|
setValidationError(null);
|
|
@@ -12895,66 +12888,66 @@ function SendLumiaMenu() {
|
|
|
12895
12888
|
if (isNft) return `Send NFT`;
|
|
12896
12889
|
return `Send ${selectedAsset.symbol}`;
|
|
12897
12890
|
};
|
|
12898
|
-
return /* @__PURE__ */
|
|
12899
|
-
/* @__PURE__ */
|
|
12900
|
-
txStep === "input" && /* @__PURE__ */
|
|
12901
|
-
/* @__PURE__ */
|
|
12891
|
+
return /* @__PURE__ */ jsxs58("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12892
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12893
|
+
txStep === "input" && /* @__PURE__ */ jsx65(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx65(ArrowLeft12, { className: "h-4 w-4" }) }),
|
|
12894
|
+
/* @__PURE__ */ jsx65("span", { className: "text-xl font-semibold", children: getPageTitle() })
|
|
12902
12895
|
] }),
|
|
12903
|
-
txStep === "input" && /* @__PURE__ */
|
|
12904
|
-
/* @__PURE__ */
|
|
12905
|
-
/* @__PURE__ */
|
|
12906
|
-
/* @__PURE__ */
|
|
12896
|
+
txStep === "input" && /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
12897
|
+
/* @__PURE__ */ jsxs58("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12898
|
+
/* @__PURE__ */ jsx65("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient" }),
|
|
12899
|
+
/* @__PURE__ */ jsx65(
|
|
12907
12900
|
Input,
|
|
12908
12901
|
{
|
|
12909
|
-
Icon: isNicknameInput ?
|
|
12902
|
+
Icon: isNicknameInput ? AtSign2 : Wallet3,
|
|
12910
12903
|
type: "text",
|
|
12911
12904
|
value: recipient,
|
|
12912
12905
|
onChange: (e) => setRecipient(e.target.value),
|
|
12913
12906
|
placeholder: "0x... or @nickname",
|
|
12914
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */
|
|
12907
|
+
element: isNicknameInput && isResolving ? /* @__PURE__ */ jsx65(Loader23, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" }) : null
|
|
12915
12908
|
}
|
|
12916
12909
|
),
|
|
12917
|
-
isNicknameInput && resolvedAddress && !isResolving && nicknameData && /* @__PURE__ */
|
|
12918
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
12910
|
+
isNicknameInput && resolvedAddress && !isResolving && nicknameData && /* @__PURE__ */ jsxs58("div", { className: "flex items-start gap-3 p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-secondary)]", children: [
|
|
12911
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx65(
|
|
12919
12912
|
"img",
|
|
12920
12913
|
{
|
|
12921
12914
|
src: nicknameData.avatarSvg,
|
|
12922
12915
|
alt: nicknameData.handle,
|
|
12923
12916
|
className: "w-10 h-10 rounded-full object-cover flex-shrink-0"
|
|
12924
12917
|
}
|
|
12925
|
-
) : /* @__PURE__ */
|
|
12926
|
-
/* @__PURE__ */
|
|
12927
|
-
/* @__PURE__ */
|
|
12928
|
-
/* @__PURE__ */
|
|
12929
|
-
/* @__PURE__ */
|
|
12918
|
+
) : /* @__PURE__ */ jsx65("div", { className: "w-10 h-10 rounded-full bg-[var(--l-pass-bg)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx65(AtSign2, { className: "w-5 h-5 text-[var(--l-pass-fg-muted)]" }) }),
|
|
12919
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
12920
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-success)]", children: [
|
|
12921
|
+
/* @__PURE__ */ jsx65(CheckCircle23, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12922
|
+
/* @__PURE__ */ jsx65("span", { className: "font-mono", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)}` })
|
|
12930
12923
|
] }),
|
|
12931
|
-
nicknameData.fingerprint && /* @__PURE__ */
|
|
12932
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
12933
|
-
/* @__PURE__ */
|
|
12924
|
+
nicknameData.fingerprint && /* @__PURE__ */ jsxs58("div", { className: `flex items-center gap-1.5 text-xs ${isFingerprintVerified ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-error)]"}`, children: [
|
|
12925
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx65(Shield3, { className: "w-3 h-3 flex-shrink-0" }) : /* @__PURE__ */ jsx65(ShieldAlert, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12926
|
+
/* @__PURE__ */ jsxs58("span", { children: [
|
|
12934
12927
|
"Fingerprint: ",
|
|
12935
12928
|
nicknameData.fingerprint
|
|
12936
12929
|
] }),
|
|
12937
|
-
/* @__PURE__ */
|
|
12930
|
+
/* @__PURE__ */ jsx65("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12938
12931
|
] })
|
|
12939
12932
|
] })
|
|
12940
12933
|
] }),
|
|
12941
|
-
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */
|
|
12942
|
-
/* @__PURE__ */
|
|
12943
|
-
/* @__PURE__ */
|
|
12934
|
+
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-warning)]", children: [
|
|
12935
|
+
/* @__PURE__ */ jsx65(AlertTriangle5, { className: "w-3 h-3" }),
|
|
12936
|
+
/* @__PURE__ */ jsx65("span", { children: "This handle is frozen. Proceed with caution." })
|
|
12944
12937
|
] }),
|
|
12945
|
-
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */
|
|
12946
|
-
/* @__PURE__ */
|
|
12947
|
-
/* @__PURE__ */
|
|
12938
|
+
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-error)]", children: [
|
|
12939
|
+
/* @__PURE__ */ jsx65(AlertCircle5, { className: "w-3 h-3" }),
|
|
12940
|
+
/* @__PURE__ */ jsx65("span", { children: "This user has not set up their wallet yet" })
|
|
12948
12941
|
] }),
|
|
12949
|
-
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */
|
|
12950
|
-
/* @__PURE__ */
|
|
12951
|
-
/* @__PURE__ */
|
|
12942
|
+
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-error)]", children: [
|
|
12943
|
+
/* @__PURE__ */ jsx65(AlertCircle5, { className: "w-3 h-3" }),
|
|
12944
|
+
/* @__PURE__ */ jsx65("span", { children: "Nickname not found" })
|
|
12952
12945
|
] })
|
|
12953
12946
|
] }),
|
|
12954
|
-
/* @__PURE__ */
|
|
12955
|
-
/* @__PURE__ */
|
|
12956
|
-
/* @__PURE__ */
|
|
12957
|
-
!isNft && selectedAsset && /* @__PURE__ */
|
|
12947
|
+
/* @__PURE__ */ jsxs58("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12948
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex justify-between items-center", children: [
|
|
12949
|
+
/* @__PURE__ */ jsx65("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: isNft ? "Asset" : "Amount" }),
|
|
12950
|
+
!isNft && selectedAsset && /* @__PURE__ */ jsxs58("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12958
12951
|
"Balance: ",
|
|
12959
12952
|
formatBalance(balance),
|
|
12960
12953
|
" ",
|
|
@@ -12963,11 +12956,11 @@ function SendLumiaMenu() {
|
|
|
12963
12956
|
] }),
|
|
12964
12957
|
isNft && selectedAsset ? (
|
|
12965
12958
|
// NFT display card
|
|
12966
|
-
/* @__PURE__ */
|
|
12959
|
+
/* @__PURE__ */ jsx65(NftDisplayCard, { asset: selectedAsset })
|
|
12967
12960
|
) : (
|
|
12968
12961
|
// Fungible token amount input
|
|
12969
|
-
/* @__PURE__ */
|
|
12970
|
-
selectedAsset && /* @__PURE__ */
|
|
12962
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex h-12 w-full rounded-[var(--l-pass-el-bdrs)] items-center gap-[var(--l-pass-gap)] px-[var(--l-pass-pd)] bg-[var(--l-pass-secondary)] hover:bg-[var(--l-pass-secondary-h)] transition-colors duration-200 ease-in-out focus-within:bg-[var(--l-pass-secondary-a)]", children: [
|
|
12963
|
+
selectedAsset && /* @__PURE__ */ jsx65(
|
|
12971
12964
|
AssetSelector,
|
|
12972
12965
|
{
|
|
12973
12966
|
assets,
|
|
@@ -12976,7 +12969,7 @@ function SendLumiaMenu() {
|
|
|
12976
12969
|
disabled: isAssetsLoading
|
|
12977
12970
|
}
|
|
12978
12971
|
),
|
|
12979
|
-
/* @__PURE__ */
|
|
12972
|
+
/* @__PURE__ */ jsx65(
|
|
12980
12973
|
"input",
|
|
12981
12974
|
{
|
|
12982
12975
|
type: "number",
|
|
@@ -12992,12 +12985,12 @@ function SendLumiaMenu() {
|
|
|
12992
12985
|
)
|
|
12993
12986
|
}
|
|
12994
12987
|
),
|
|
12995
|
-
/* @__PURE__ */
|
|
12988
|
+
/* @__PURE__ */ jsx65(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", children: "MAX" })
|
|
12996
12989
|
] })
|
|
12997
12990
|
),
|
|
12998
|
-
isNft && selectedAsset && /* @__PURE__ */
|
|
12999
|
-
/* @__PURE__ */
|
|
13000
|
-
/* @__PURE__ */
|
|
12991
|
+
isNft && selectedAsset && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-2 mt-2", children: [
|
|
12992
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Change asset:" }),
|
|
12993
|
+
/* @__PURE__ */ jsx65(
|
|
13001
12994
|
AssetSelector,
|
|
13002
12995
|
{
|
|
13003
12996
|
assets,
|
|
@@ -13008,71 +13001,71 @@ function SendLumiaMenu() {
|
|
|
13008
13001
|
)
|
|
13009
13002
|
] })
|
|
13010
13003
|
] }),
|
|
13011
|
-
isSecurity && effectiveAddress && amount && /* @__PURE__ */
|
|
13004
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ jsx65("div", { className: cn(
|
|
13012
13005
|
"flex items-center gap-2 p-3 rounded-[var(--l-pass-el-bdrs)]",
|
|
13013
13006
|
isComplianceLoading && "bg-[var(--l-pass-bg-info)] text-[var(--l-pass-info)]",
|
|
13014
13007
|
!isComplianceLoading && erc3643CanTransfer && "bg-[var(--l-pass-bg-success)] text-[var(--l-pass-success)]",
|
|
13015
13008
|
!isComplianceLoading && !erc3643CanTransfer && "bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)]"
|
|
13016
|
-
), children: isComplianceLoading ? /* @__PURE__ */
|
|
13017
|
-
/* @__PURE__ */
|
|
13018
|
-
/* @__PURE__ */
|
|
13019
|
-
] }) : erc3643CanTransfer ? /* @__PURE__ */
|
|
13020
|
-
/* @__PURE__ */
|
|
13021
|
-
/* @__PURE__ */
|
|
13022
|
-
] }) : /* @__PURE__ */
|
|
13023
|
-
/* @__PURE__ */
|
|
13024
|
-
/* @__PURE__ */
|
|
13009
|
+
), children: isComplianceLoading ? /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13010
|
+
/* @__PURE__ */ jsx65(Loader23, { className: "h-4 w-4 animate-spin" }),
|
|
13011
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm", children: "Checking compliance..." })
|
|
13012
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13013
|
+
/* @__PURE__ */ jsx65(CheckCircle23, { className: "h-4 w-4" }),
|
|
13014
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm", children: "Transfer compliant" })
|
|
13015
|
+
] }) : /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13016
|
+
/* @__PURE__ */ jsx65(AlertCircle5, { className: "h-4 w-4" }),
|
|
13017
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm", children: complianceError || "Transfer not allowed" })
|
|
13025
13018
|
] }) }),
|
|
13026
|
-
(validationError || error) && /* @__PURE__ */
|
|
13027
|
-
/* @__PURE__ */
|
|
13028
|
-
/* @__PURE__ */
|
|
13019
|
+
(validationError || error) && /* @__PURE__ */ jsxs58("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: [
|
|
13020
|
+
/* @__PURE__ */ jsx65(AlertCircle5, { className: "h-4 w-4" }),
|
|
13021
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm", children: validationError || error })
|
|
13029
13022
|
] }),
|
|
13030
|
-
/* @__PURE__ */
|
|
13023
|
+
/* @__PURE__ */ jsx65(Button, { onClick: handleSend, disabled: isLoading || isComplianceLoading, className: "w-full", size: "large", children: "Continue" })
|
|
13031
13024
|
] }),
|
|
13032
|
-
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */
|
|
13033
|
-
isNicknameInput && isFrozen && /* @__PURE__ */
|
|
13034
|
-
/* @__PURE__ */
|
|
13035
|
-
/* @__PURE__ */
|
|
13025
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13026
|
+
isNicknameInput && isFrozen && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-2 p-3 bg-[var(--l-pass-bg-warning)] text-[var(--l-pass-warning)] rounded-[var(--l-pass-el-bdrs)]", children: [
|
|
13027
|
+
/* @__PURE__ */ jsx65(AlertTriangle5, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13028
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm font-medium", children: "This handle is frozen. Proceed with caution." })
|
|
13036
13029
|
] }),
|
|
13037
|
-
isSecurity && erc3643CanTransfer && /* @__PURE__ */
|
|
13038
|
-
/* @__PURE__ */
|
|
13039
|
-
/* @__PURE__ */
|
|
13030
|
+
isSecurity && erc3643CanTransfer && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-2 p-3 bg-[var(--l-pass-bg-success)] text-[var(--l-pass-success)] rounded-[var(--l-pass-el-bdrs)]", children: [
|
|
13031
|
+
/* @__PURE__ */ jsx65(Shield3, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13032
|
+
/* @__PURE__ */ jsx65("span", { className: "text-sm font-medium", children: "Security token compliance verified" })
|
|
13040
13033
|
] }),
|
|
13041
|
-
/* @__PURE__ */
|
|
13042
|
-
/* @__PURE__ */
|
|
13043
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
13034
|
+
/* @__PURE__ */ jsx65("div", { className: "bg-[var(--l-pass-bg-secondary)] rounded-[var(--l-pass-el-bdrs)] p-4", children: isNicknameInput && nicknameData ? /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13035
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex items-start gap-3 mb-4", children: [
|
|
13036
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx65(
|
|
13044
13037
|
"img",
|
|
13045
13038
|
{
|
|
13046
13039
|
src: nicknameData.avatarSvg,
|
|
13047
13040
|
alt: nicknameData.handle,
|
|
13048
13041
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
13049
13042
|
}
|
|
13050
|
-
) : /* @__PURE__ */
|
|
13051
|
-
/* @__PURE__ */
|
|
13052
|
-
/* @__PURE__ */
|
|
13053
|
-
nicknameData.fingerprint && /* @__PURE__ */
|
|
13054
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
13055
|
-
/* @__PURE__ */
|
|
13043
|
+
) : /* @__PURE__ */ jsx65("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-bg)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx65(AtSign2, { className: "w-6 h-6 text-[var(--l-pass-fg-muted)]" }) }),
|
|
13044
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
13045
|
+
/* @__PURE__ */ jsx65("span", { className: "font-semibold text-lg text-[var(--l-pass-fg)] truncate", children: nicknameData.handle }),
|
|
13046
|
+
nicknameData.fingerprint && /* @__PURE__ */ jsxs58("div", { className: `flex items-center gap-1.5 text-sm ${isFingerprintVerified ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-error)]"}`, children: [
|
|
13047
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx65(Shield3, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx65(ShieldAlert, { className: "w-4 h-4 flex-shrink-0" }),
|
|
13048
|
+
/* @__PURE__ */ jsxs58("span", { children: [
|
|
13056
13049
|
"Fingerprint: ",
|
|
13057
13050
|
nicknameData.fingerprint
|
|
13058
13051
|
] }),
|
|
13059
|
-
isFingerprintVerified && /* @__PURE__ */
|
|
13060
|
-
/* @__PURE__ */
|
|
13052
|
+
isFingerprintVerified && /* @__PURE__ */ jsx65(CheckCircle23, { className: "w-3 h-3" }),
|
|
13053
|
+
/* @__PURE__ */ jsx65("span", { className: "text-xs", children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
13061
13054
|
] }),
|
|
13062
|
-
/* @__PURE__ */
|
|
13055
|
+
/* @__PURE__ */ jsxs58("span", { className: "font-mono text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13063
13056
|
"Address: ",
|
|
13064
13057
|
`${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-6)}`
|
|
13065
13058
|
] })
|
|
13066
13059
|
] })
|
|
13067
13060
|
] }),
|
|
13068
|
-
/* @__PURE__ */
|
|
13061
|
+
/* @__PURE__ */ jsxs58("div", { className: "border-t border-[var(--l-pass-border)] pt-3 space-y-2 text-sm text-[var(--l-pass-fg)]", children: [
|
|
13069
13062
|
isNft ? (
|
|
13070
13063
|
// NFT details
|
|
13071
|
-
/* @__PURE__ */
|
|
13072
|
-
/* @__PURE__ */
|
|
13073
|
-
/* @__PURE__ */
|
|
13074
|
-
/* @__PURE__ */
|
|
13075
|
-
selectedAsset.tokenId && /* @__PURE__ */
|
|
13064
|
+
/* @__PURE__ */ jsx65(Fragment24, { children: /* @__PURE__ */ jsxs58("div", { className: "flex justify-between items-start", children: [
|
|
13065
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13066
|
+
/* @__PURE__ */ jsxs58("div", { className: "text-right", children: [
|
|
13067
|
+
/* @__PURE__ */ jsx65("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13068
|
+
selectedAsset.tokenId && /* @__PURE__ */ jsxs58("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13076
13069
|
"#",
|
|
13077
13070
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13078
13071
|
] })
|
|
@@ -13080,34 +13073,34 @@ function SendLumiaMenu() {
|
|
|
13080
13073
|
] }) })
|
|
13081
13074
|
) : (
|
|
13082
13075
|
// Fungible token details
|
|
13083
|
-
/* @__PURE__ */
|
|
13084
|
-
/* @__PURE__ */
|
|
13085
|
-
/* @__PURE__ */
|
|
13076
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex justify-between", children: [
|
|
13077
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13078
|
+
/* @__PURE__ */ jsxs58("span", { className: "font-semibold", children: [
|
|
13086
13079
|
amount,
|
|
13087
13080
|
" ",
|
|
13088
13081
|
selectedAsset.symbol
|
|
13089
13082
|
] })
|
|
13090
13083
|
] })
|
|
13091
13084
|
),
|
|
13092
|
-
/* @__PURE__ */
|
|
13093
|
-
/* @__PURE__ */
|
|
13094
|
-
/* @__PURE__ */
|
|
13085
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex justify-between", children: [
|
|
13086
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13087
|
+
/* @__PURE__ */ jsx65("span", { children: "Lumia Beam" })
|
|
13095
13088
|
] })
|
|
13096
13089
|
] })
|
|
13097
|
-
] }) : /* @__PURE__ */
|
|
13098
|
-
/* @__PURE__ */
|
|
13099
|
-
/* @__PURE__ */
|
|
13100
|
-
/* @__PURE__ */
|
|
13101
|
-
/* @__PURE__ */
|
|
13102
|
-
/* @__PURE__ */
|
|
13090
|
+
] }) : /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13091
|
+
/* @__PURE__ */ jsx65("h3", { className: "font-medium mb-3 text-[var(--l-pass-fg)]", children: "Transaction Details" }),
|
|
13092
|
+
/* @__PURE__ */ jsxs58("div", { className: "space-y-2 text-sm text-[var(--l-pass-fg)]", children: [
|
|
13093
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex justify-between", children: [
|
|
13094
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "To:" }),
|
|
13095
|
+
/* @__PURE__ */ jsx65("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
13103
13096
|
] }),
|
|
13104
13097
|
isNft ? (
|
|
13105
13098
|
// NFT details
|
|
13106
|
-
/* @__PURE__ */
|
|
13107
|
-
/* @__PURE__ */
|
|
13108
|
-
/* @__PURE__ */
|
|
13109
|
-
/* @__PURE__ */
|
|
13110
|
-
selectedAsset.tokenId && /* @__PURE__ */
|
|
13099
|
+
/* @__PURE__ */ jsx65(Fragment24, { children: /* @__PURE__ */ jsxs58("div", { className: "flex justify-between items-start", children: [
|
|
13100
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13101
|
+
/* @__PURE__ */ jsxs58("div", { className: "text-right", children: [
|
|
13102
|
+
/* @__PURE__ */ jsx65("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13103
|
+
selectedAsset.tokenId && /* @__PURE__ */ jsxs58("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13111
13104
|
"#",
|
|
13112
13105
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13113
13106
|
] })
|
|
@@ -13115,53 +13108,53 @@ function SendLumiaMenu() {
|
|
|
13115
13108
|
] }) })
|
|
13116
13109
|
) : (
|
|
13117
13110
|
// Fungible token details
|
|
13118
|
-
/* @__PURE__ */
|
|
13119
|
-
/* @__PURE__ */
|
|
13120
|
-
/* @__PURE__ */
|
|
13111
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex justify-between", children: [
|
|
13112
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13113
|
+
/* @__PURE__ */ jsxs58("span", { className: "font-semibold", children: [
|
|
13121
13114
|
amount,
|
|
13122
13115
|
" ",
|
|
13123
13116
|
selectedAsset.symbol
|
|
13124
13117
|
] })
|
|
13125
13118
|
] })
|
|
13126
13119
|
),
|
|
13127
|
-
/* @__PURE__ */
|
|
13128
|
-
/* @__PURE__ */
|
|
13129
|
-
/* @__PURE__ */
|
|
13120
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex justify-between", children: [
|
|
13121
|
+
/* @__PURE__ */ jsx65("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13122
|
+
/* @__PURE__ */ jsx65("span", { children: "Lumia Beam" })
|
|
13130
13123
|
] })
|
|
13131
13124
|
] })
|
|
13132
13125
|
] }) }),
|
|
13133
|
-
/* @__PURE__ */
|
|
13134
|
-
/* @__PURE__ */
|
|
13135
|
-
/* @__PURE__ */
|
|
13136
|
-
isLoading && /* @__PURE__ */
|
|
13126
|
+
/* @__PURE__ */ jsxs58("div", { className: "flex gap-2", children: [
|
|
13127
|
+
/* @__PURE__ */ jsx65(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
13128
|
+
/* @__PURE__ */ jsxs58(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
13129
|
+
isLoading && /* @__PURE__ */ jsx65(Loader23, { className: "h-4 w-4 animate-spin" }),
|
|
13137
13130
|
"Confirm"
|
|
13138
13131
|
] })
|
|
13139
13132
|
] })
|
|
13140
13133
|
] }),
|
|
13141
|
-
txStep === "pending" && /* @__PURE__ */
|
|
13142
|
-
/* @__PURE__ */
|
|
13143
|
-
/* @__PURE__ */
|
|
13144
|
-
/* @__PURE__ */
|
|
13145
|
-
/* @__PURE__ */
|
|
13134
|
+
txStep === "pending" && /* @__PURE__ */ jsxs58("div", { className: "py-8 text-center space-y-4", children: [
|
|
13135
|
+
/* @__PURE__ */ jsx65(Loader23, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
13136
|
+
/* @__PURE__ */ jsxs58("div", { children: [
|
|
13137
|
+
/* @__PURE__ */ jsx65("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
13138
|
+
/* @__PURE__ */ jsx65("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
13146
13139
|
] })
|
|
13147
13140
|
] }),
|
|
13148
|
-
txStep === "success" && userOpHash && /* @__PURE__ */
|
|
13149
|
-
/* @__PURE__ */
|
|
13150
|
-
/* @__PURE__ */
|
|
13151
|
-
/* @__PURE__ */
|
|
13152
|
-
/* @__PURE__ */
|
|
13141
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
13142
|
+
/* @__PURE__ */ jsxs58("div", { className: "text-center py-4", children: [
|
|
13143
|
+
/* @__PURE__ */ jsx65(CheckCircle23, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
13144
|
+
/* @__PURE__ */ jsx65("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
13145
|
+
/* @__PURE__ */ jsx65("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
13153
13146
|
] }),
|
|
13154
|
-
/* @__PURE__ */
|
|
13147
|
+
/* @__PURE__ */ jsx65(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
13155
13148
|
] })
|
|
13156
13149
|
] });
|
|
13157
13150
|
}
|
|
13158
13151
|
|
|
13159
13152
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
13160
|
-
import { ArrowLeft as ArrowLeft13, CheckCircle2 as CheckCircle24, Copy as
|
|
13153
|
+
import { ArrowLeft as ArrowLeft13, CheckCircle2 as CheckCircle24, Copy as Copy3, Info as Info4, Loader as Loader24, Shield as Shield4 } from "lucide-react";
|
|
13161
13154
|
import QRCode from "qrcode";
|
|
13162
|
-
import { useCallback as
|
|
13155
|
+
import { useCallback as useCallback17, useEffect as useEffect29, useMemo as useMemo7, useState as useState21 } from "react";
|
|
13163
13156
|
init_clients();
|
|
13164
|
-
import { Fragment as
|
|
13157
|
+
import { Fragment as Fragment25, jsx as jsx66, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
13165
13158
|
function ReceiveLumiaMenu() {
|
|
13166
13159
|
const session = useLumiaPassportSession((st) => st.session);
|
|
13167
13160
|
const address = session?.smartAccountAddress ?? null;
|
|
@@ -13169,9 +13162,9 @@ function ReceiveLumiaMenu() {
|
|
|
13169
13162
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13170
13163
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
13171
13164
|
const open = page === "receive";
|
|
13172
|
-
const [qrCodeUrl, setQrCodeUrl] =
|
|
13173
|
-
const [copied, setCopied] =
|
|
13174
|
-
const [fingerprintCopied, setFingerprintCopied] =
|
|
13165
|
+
const [qrCodeUrl, setQrCodeUrl] = useState21("");
|
|
13166
|
+
const [copied, setCopied] = useState21(false);
|
|
13167
|
+
const [fingerprintCopied, setFingerprintCopied] = useState21(false);
|
|
13175
13168
|
const fingerprint = useMemo7(() => {
|
|
13176
13169
|
if (!session?.ownerAddress) return null;
|
|
13177
13170
|
try {
|
|
@@ -13180,7 +13173,7 @@ function ReceiveLumiaMenu() {
|
|
|
13180
13173
|
return null;
|
|
13181
13174
|
}
|
|
13182
13175
|
}, [session?.ownerAddress]);
|
|
13183
|
-
|
|
13176
|
+
useEffect29(() => {
|
|
13184
13177
|
if (open && address) {
|
|
13185
13178
|
QRCode.toDataURL(address, {
|
|
13186
13179
|
width: 200,
|
|
@@ -13193,7 +13186,7 @@ function ReceiveLumiaMenu() {
|
|
|
13193
13186
|
});
|
|
13194
13187
|
}
|
|
13195
13188
|
}, [open, address]);
|
|
13196
|
-
const handleCopy =
|
|
13189
|
+
const handleCopy = useCallback17(async () => {
|
|
13197
13190
|
if (!address) return;
|
|
13198
13191
|
try {
|
|
13199
13192
|
await navigator.clipboard.writeText(address);
|
|
@@ -13203,7 +13196,7 @@ function ReceiveLumiaMenu() {
|
|
|
13203
13196
|
console.error("Failed to copy address:", error);
|
|
13204
13197
|
}
|
|
13205
13198
|
}, [address]);
|
|
13206
|
-
const handleCopyFingerprint =
|
|
13199
|
+
const handleCopyFingerprint = useCallback17(async () => {
|
|
13207
13200
|
if (!fingerprint) return;
|
|
13208
13201
|
try {
|
|
13209
13202
|
await navigator.clipboard.writeText(fingerprint);
|
|
@@ -13213,7 +13206,7 @@ function ReceiveLumiaMenu() {
|
|
|
13213
13206
|
console.error("Failed to copy fingerprint:", error);
|
|
13214
13207
|
}
|
|
13215
13208
|
}, [fingerprint]);
|
|
13216
|
-
return /* @__PURE__ */
|
|
13209
|
+
return /* @__PURE__ */ jsxs59(
|
|
13217
13210
|
"div",
|
|
13218
13211
|
{
|
|
13219
13212
|
style: {
|
|
@@ -13222,61 +13215,64 @@ function ReceiveLumiaMenu() {
|
|
|
13222
13215
|
},
|
|
13223
13216
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
13224
13217
|
children: [
|
|
13225
|
-
/* @__PURE__ */
|
|
13226
|
-
/* @__PURE__ */
|
|
13227
|
-
/* @__PURE__ */
|
|
13218
|
+
/* @__PURE__ */ jsxs59("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13219
|
+
/* @__PURE__ */ jsx66(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx66(ArrowLeft13, { className: "h-4 w-4" }) }),
|
|
13220
|
+
/* @__PURE__ */ jsx66("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
13228
13221
|
] }),
|
|
13229
|
-
/* @__PURE__ */
|
|
13230
|
-
/* @__PURE__ */
|
|
13231
|
-
/* @__PURE__ */
|
|
13222
|
+
/* @__PURE__ */ jsxs59(Highlight, { className: "text-center", type: "warning", children: [
|
|
13223
|
+
/* @__PURE__ */ jsx66("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
13224
|
+
/* @__PURE__ */ jsx66("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
13232
13225
|
] }),
|
|
13233
|
-
/* @__PURE__ */
|
|
13234
|
-
fingerprint && /* @__PURE__ */
|
|
13235
|
-
/* @__PURE__ */
|
|
13236
|
-
/* @__PURE__ */
|
|
13237
|
-
/* @__PURE__ */
|
|
13238
|
-
/* @__PURE__ */
|
|
13239
|
-
/* @__PURE__ */
|
|
13240
|
-
/* @__PURE__ */
|
|
13226
|
+
/* @__PURE__ */ jsx66("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ jsx66("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ jsx66(Loader24, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
13227
|
+
fingerprint && /* @__PURE__ */ jsxs59("div", { className: "flex items-center justify-center gap-2 p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-secondary)]", children: [
|
|
13228
|
+
/* @__PURE__ */ jsx66(Shield4, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
|
|
13229
|
+
/* @__PURE__ */ jsx66("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Fingerprint:" }),
|
|
13230
|
+
/* @__PURE__ */ jsx66("span", { className: "font-mono text-sm font-semibold text-[var(--l-pass-fg)]", children: fingerprint }),
|
|
13231
|
+
/* @__PURE__ */ jsxs59("div", { className: "relative group", children: [
|
|
13232
|
+
/* @__PURE__ */ jsx66(Info4, { className: "w-3.5 h-3.5 text-[var(--l-pass-fg-muted)] cursor-help" }),
|
|
13233
|
+
/* @__PURE__ */ jsx66("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 text-xs bg-[var(--l-pass-bg)] text-[var(--l-pass-fg)] rounded shadow-lg opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none z-10", children: "Share this to verify your identity" })
|
|
13241
13234
|
] }),
|
|
13242
|
-
/* @__PURE__ */
|
|
13235
|
+
/* @__PURE__ */ jsx66(
|
|
13243
13236
|
"button",
|
|
13244
13237
|
{
|
|
13245
13238
|
onClick: handleCopyFingerprint,
|
|
13246
13239
|
className: "p-1 rounded hover:bg-[var(--l-pass-bg)] transition-colors",
|
|
13247
13240
|
title: "Copy fingerprint",
|
|
13248
|
-
children: fingerprintCopied ? /* @__PURE__ */
|
|
13241
|
+
children: fingerprintCopied ? /* @__PURE__ */ jsx66(CheckCircle24, { className: "w-3.5 h-3.5 text-[var(--l-pass-bg-success)]" }) : /* @__PURE__ */ jsx66(Copy3, { className: "w-3.5 h-3.5 text-[var(--l-pass-fg-muted)]" })
|
|
13249
13242
|
}
|
|
13250
13243
|
)
|
|
13251
13244
|
] }),
|
|
13252
|
-
/* @__PURE__ */
|
|
13253
|
-
/* @__PURE__ */
|
|
13254
|
-
/* @__PURE__ */
|
|
13255
|
-
/* @__PURE__ */
|
|
13256
|
-
/* @__PURE__ */
|
|
13257
|
-
] }) : /* @__PURE__ */
|
|
13258
|
-
/* @__PURE__ */
|
|
13259
|
-
/* @__PURE__ */
|
|
13245
|
+
/* @__PURE__ */ jsxs59(Highlight, { type: "info", children: [
|
|
13246
|
+
/* @__PURE__ */ jsx66("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
13247
|
+
/* @__PURE__ */ jsx66(Button, { onClick: handleCopy, className: "w-full", size: "large", children: copied ? /* @__PURE__ */ jsxs59(Fragment25, { children: [
|
|
13248
|
+
/* @__PURE__ */ jsx66(CheckCircle24, { className: "h-4 w-4" }),
|
|
13249
|
+
/* @__PURE__ */ jsx66("span", { children: "Copied!" })
|
|
13250
|
+
] }) : /* @__PURE__ */ jsxs59(Fragment25, { children: [
|
|
13251
|
+
/* @__PURE__ */ jsx66(Copy3, { className: "h-4 w-4" }),
|
|
13252
|
+
/* @__PURE__ */ jsx66("span", { children: "Copy Address" })
|
|
13260
13253
|
] }) })
|
|
13261
13254
|
] }),
|
|
13262
|
-
/* @__PURE__ */
|
|
13255
|
+
/* @__PURE__ */ jsx66("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx66("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
|
|
13263
13256
|
]
|
|
13264
13257
|
}
|
|
13265
13258
|
);
|
|
13266
13259
|
}
|
|
13267
13260
|
|
|
13268
13261
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
13262
|
+
init_nickname();
|
|
13263
|
+
init_profile();
|
|
13264
|
+
import { useQuery as useQuery17 } from "@tanstack/react-query";
|
|
13269
13265
|
import { ArrowLeft as ArrowLeft14 } from "lucide-react";
|
|
13270
|
-
import { useEffect as
|
|
13266
|
+
import { useEffect as useEffect30 } from "react";
|
|
13271
13267
|
|
|
13272
13268
|
// src/internal/components/SettingsMenu/constants.ts
|
|
13273
|
-
import { ArrowLeftRight, AtSign as
|
|
13269
|
+
import { ArrowLeftRight, AtSign as AtSign3, DatabaseBackup, LockKeyhole, UsersRound } from "lucide-react";
|
|
13274
13270
|
|
|
13275
13271
|
// src/internal/assets/KycIcon.tsx
|
|
13276
|
-
import { jsx as
|
|
13272
|
+
import { jsx as jsx67 } from "react/jsx-runtime";
|
|
13277
13273
|
function KycIcon(props) {
|
|
13278
13274
|
const { width = "24", height = "24", ...rest } = props;
|
|
13279
|
-
return /* @__PURE__ */
|
|
13275
|
+
return /* @__PURE__ */ jsx67("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx67(
|
|
13280
13276
|
"path",
|
|
13281
13277
|
{
|
|
13282
13278
|
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",
|
|
@@ -13289,25 +13285,31 @@ function KycIcon(props) {
|
|
|
13289
13285
|
var NAV_BUTTONS = [
|
|
13290
13286
|
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: ArrowLeftRight },
|
|
13291
13287
|
{ id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
|
|
13292
|
-
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon:
|
|
13288
|
+
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon: AtSign3 },
|
|
13293
13289
|
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: UsersRound },
|
|
13294
13290
|
{ id: "security" /* SECURITY */, name: "Security", Icon: LockKeyhole },
|
|
13295
13291
|
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: DatabaseBackup }
|
|
13296
13292
|
];
|
|
13297
13293
|
|
|
13298
13294
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
13299
|
-
import { jsx as
|
|
13295
|
+
import { jsx as jsx68, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
13300
13296
|
function SettingsMenu() {
|
|
13301
13297
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13302
13298
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13303
13299
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
13304
13300
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
13305
13301
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
13306
|
-
|
|
13302
|
+
useEffect30(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
13307
13303
|
useProvidersList();
|
|
13304
|
+
useQuery17({
|
|
13305
|
+
retry: 1,
|
|
13306
|
+
enabled: !!address,
|
|
13307
|
+
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
13308
|
+
queryFn: getNicknameInfo
|
|
13309
|
+
});
|
|
13308
13310
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
13309
13311
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
13310
|
-
return /* @__PURE__ */
|
|
13312
|
+
return /* @__PURE__ */ jsxs60(
|
|
13311
13313
|
"div",
|
|
13312
13314
|
{
|
|
13313
13315
|
style: {
|
|
@@ -13316,11 +13318,11 @@ function SettingsMenu() {
|
|
|
13316
13318
|
},
|
|
13317
13319
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
13318
13320
|
children: [
|
|
13319
|
-
/* @__PURE__ */
|
|
13320
|
-
/* @__PURE__ */
|
|
13321
|
-
/* @__PURE__ */
|
|
13321
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13322
|
+
/* @__PURE__ */ jsx68(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx68(ArrowLeft14, { className: "h-4 w-4" }) }),
|
|
13323
|
+
/* @__PURE__ */ jsx68("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
13322
13324
|
] }),
|
|
13323
|
-
/* @__PURE__ */
|
|
13325
|
+
/* @__PURE__ */ jsx68("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ jsxs60(
|
|
13324
13326
|
Button,
|
|
13325
13327
|
{
|
|
13326
13328
|
variant: "outline",
|
|
@@ -13333,8 +13335,8 @@ function SettingsMenu() {
|
|
|
13333
13335
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
13334
13336
|
),
|
|
13335
13337
|
children: [
|
|
13336
|
-
/* @__PURE__ */
|
|
13337
|
-
/* @__PURE__ */
|
|
13338
|
+
/* @__PURE__ */ jsx68(Icon2, { className: "w-4 h-4" }),
|
|
13339
|
+
/* @__PURE__ */ jsx68("span", { children: name })
|
|
13338
13340
|
]
|
|
13339
13341
|
},
|
|
13340
13342
|
id
|
|
@@ -13346,35 +13348,35 @@ function SettingsMenu() {
|
|
|
13346
13348
|
|
|
13347
13349
|
// src/internal/components/TermsOfService.tsx
|
|
13348
13350
|
import { ArrowLeft as ArrowLeft15 } from "lucide-react";
|
|
13349
|
-
import { jsx as
|
|
13351
|
+
import { jsx as jsx69, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
13350
13352
|
function TermsOfService() {
|
|
13351
13353
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13352
13354
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13353
|
-
return /* @__PURE__ */
|
|
13354
|
-
/* @__PURE__ */
|
|
13355
|
-
/* @__PURE__ */
|
|
13355
|
+
return /* @__PURE__ */ jsxs61("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
13356
|
+
/* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13357
|
+
/* @__PURE__ */ jsx69(
|
|
13356
13358
|
Button,
|
|
13357
13359
|
{
|
|
13358
13360
|
variant: "ghost",
|
|
13359
13361
|
size: "icon",
|
|
13360
13362
|
title: "Back",
|
|
13361
13363
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
13362
|
-
children: /* @__PURE__ */
|
|
13364
|
+
children: /* @__PURE__ */ jsx69(ArrowLeft15, { className: "h-4 w-4" })
|
|
13363
13365
|
}
|
|
13364
13366
|
),
|
|
13365
|
-
/* @__PURE__ */
|
|
13367
|
+
/* @__PURE__ */ jsx69("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
13366
13368
|
] }),
|
|
13367
|
-
/* @__PURE__ */
|
|
13368
|
-
/* @__PURE__ */
|
|
13369
|
-
/* @__PURE__ */
|
|
13369
|
+
/* @__PURE__ */ jsxs61(Highlight, { type: "warning", className: "text-center", children: [
|
|
13370
|
+
/* @__PURE__ */ jsx69("span", { className: "block text-xs", children: "By using Lumia Passport you agree to our terms." }),
|
|
13371
|
+
/* @__PURE__ */ jsx69("span", { className: "block text-xs", children: "To be updated..." })
|
|
13370
13372
|
] })
|
|
13371
13373
|
] });
|
|
13372
13374
|
}
|
|
13373
13375
|
|
|
13374
13376
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13375
|
-
import { useQuery as
|
|
13377
|
+
import { useQuery as useQuery18, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
|
|
13376
13378
|
import { ArrowLeft as ArrowLeft16, Loader as Loader25, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
|
|
13377
|
-
import { useCallback as
|
|
13379
|
+
import { useCallback as useCallback18, useState as useState22 } from "react";
|
|
13378
13380
|
|
|
13379
13381
|
// src/internal/components/TransactionsMenu/api.ts
|
|
13380
13382
|
init_base();
|
|
@@ -13702,7 +13704,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13702
13704
|
}
|
|
13703
13705
|
|
|
13704
13706
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13705
|
-
import { ChevronLeft as ChevronLeft2, ChevronRight as
|
|
13707
|
+
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6, Copy as Copy4 } from "lucide-react";
|
|
13706
13708
|
|
|
13707
13709
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
13708
13710
|
init_base();
|
|
@@ -13752,22 +13754,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
13752
13754
|
};
|
|
13753
13755
|
|
|
13754
13756
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13755
|
-
import { Fragment as
|
|
13757
|
+
import { Fragment as Fragment26, jsx as jsx70, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
13756
13758
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
13757
13759
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
13758
13760
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
13759
|
-
return /* @__PURE__ */
|
|
13760
|
-
/* @__PURE__ */
|
|
13761
|
-
/* @__PURE__ */
|
|
13762
|
-
/* @__PURE__ */
|
|
13761
|
+
return /* @__PURE__ */ jsxs62("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
|
|
13762
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13763
|
+
/* @__PURE__ */ jsx70("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
|
|
13764
|
+
/* @__PURE__ */ jsxs62("span", { children: [
|
|
13763
13765
|
formatValue2(internal.value, internalDecimals),
|
|
13764
13766
|
" ",
|
|
13765
13767
|
internalSymbol
|
|
13766
13768
|
] })
|
|
13767
13769
|
] }),
|
|
13768
|
-
/* @__PURE__ */
|
|
13769
|
-
/* @__PURE__ */
|
|
13770
|
-
/* @__PURE__ */
|
|
13770
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13771
|
+
/* @__PURE__ */ jsx70("span", { children: internal.direction === "in" ? "From" : "To" }),
|
|
13772
|
+
/* @__PURE__ */ jsx70("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
|
|
13771
13773
|
] })
|
|
13772
13774
|
] });
|
|
13773
13775
|
}
|
|
@@ -13778,7 +13780,7 @@ function TransactionsGroup(props) {
|
|
|
13778
13780
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
13779
13781
|
const assetDecimals = parent.decimals ?? 18;
|
|
13780
13782
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
13781
|
-
return /* @__PURE__ */
|
|
13783
|
+
return /* @__PURE__ */ jsxs62(
|
|
13782
13784
|
"div",
|
|
13783
13785
|
{
|
|
13784
13786
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -13788,28 +13790,28 @@ function TransactionsGroup(props) {
|
|
|
13788
13790
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
13789
13791
|
),
|
|
13790
13792
|
children: [
|
|
13791
|
-
/* @__PURE__ */
|
|
13792
|
-
/* @__PURE__ */
|
|
13793
|
-
parent.direction === "in" ? /* @__PURE__ */
|
|
13794
|
-
/* @__PURE__ */
|
|
13795
|
-
parent.status === "ok" ? /* @__PURE__ */
|
|
13793
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13794
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
13795
|
+
parent.direction === "in" ? /* @__PURE__ */ jsx70(ChevronLeft2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx70(ChevronRight6, { className: "w-4 h-4" }),
|
|
13796
|
+
/* @__PURE__ */ jsx70("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
13797
|
+
parent.status === "ok" ? /* @__PURE__ */ jsx70(PositiveIcon, {}) : /* @__PURE__ */ jsx70(NegativeIcon, {})
|
|
13796
13798
|
] }),
|
|
13797
|
-
/* @__PURE__ */
|
|
13799
|
+
/* @__PURE__ */ jsx70("span", { className: "block flex-0 font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
13798
13800
|
] }),
|
|
13799
|
-
/* @__PURE__ */
|
|
13800
|
-
/* @__PURE__ */
|
|
13801
|
-
/* @__PURE__ */
|
|
13801
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13802
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex flex-col gap-0", children: [
|
|
13803
|
+
/* @__PURE__ */ jsxs62("span", { className: "font-bold", children: [
|
|
13802
13804
|
formatValue2(parent.value, assetDecimals),
|
|
13803
13805
|
" ",
|
|
13804
13806
|
assetSymbol
|
|
13805
13807
|
] }),
|
|
13806
|
-
/* @__PURE__ */
|
|
13808
|
+
/* @__PURE__ */ jsxs62("span", { className: "text-[10px] font-mono text-[var(--l-pass-fg-muted)]", children: [
|
|
13807
13809
|
isIncoming ? "From: " : "To: ",
|
|
13808
13810
|
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
13809
13811
|
] })
|
|
13810
13812
|
] }),
|
|
13811
|
-
/* @__PURE__ */
|
|
13812
|
-
/* @__PURE__ */
|
|
13813
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex items-center gap-0", children: [
|
|
13814
|
+
/* @__PURE__ */ jsx70(
|
|
13813
13815
|
Button,
|
|
13814
13816
|
{
|
|
13815
13817
|
variant: "ghost",
|
|
@@ -13818,10 +13820,10 @@ function TransactionsGroup(props) {
|
|
|
13818
13820
|
onClick: (e) => {
|
|
13819
13821
|
e.stopPropagation();
|
|
13820
13822
|
},
|
|
13821
|
-
children: /* @__PURE__ */
|
|
13823
|
+
children: /* @__PURE__ */ jsx70(Copy4, { className: "w-4 h-4" })
|
|
13822
13824
|
}
|
|
13823
13825
|
),
|
|
13824
|
-
/* @__PURE__ */
|
|
13826
|
+
/* @__PURE__ */ jsx70(
|
|
13825
13827
|
Button,
|
|
13826
13828
|
{
|
|
13827
13829
|
variant: "ghost",
|
|
@@ -13830,24 +13832,24 @@ function TransactionsGroup(props) {
|
|
|
13830
13832
|
onClick: (e) => {
|
|
13831
13833
|
e.stopPropagation();
|
|
13832
13834
|
},
|
|
13833
|
-
children: /* @__PURE__ */
|
|
13835
|
+
children: /* @__PURE__ */ jsx70(LumiaIcon, { className: "w-4 h-4" })
|
|
13834
13836
|
}
|
|
13835
13837
|
)
|
|
13836
13838
|
] })
|
|
13837
13839
|
] }),
|
|
13838
|
-
internalsToRender.length > 0 && /* @__PURE__ */
|
|
13839
|
-
/* @__PURE__ */
|
|
13840
|
-
/* @__PURE__ */
|
|
13841
|
-
/* @__PURE__ */
|
|
13842
|
-
/* @__PURE__ */
|
|
13840
|
+
internalsToRender.length > 0 && /* @__PURE__ */ jsxs62(Fragment26, { children: [
|
|
13841
|
+
/* @__PURE__ */ jsxs62("div", { className: "w-full flex items-center", children: [
|
|
13842
|
+
/* @__PURE__ */ jsx70("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
13843
|
+
/* @__PURE__ */ jsx70("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Internals" }),
|
|
13844
|
+
/* @__PURE__ */ jsx70("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
13843
13845
|
] }),
|
|
13844
|
-
/* @__PURE__ */
|
|
13846
|
+
/* @__PURE__ */ jsxs62(
|
|
13845
13847
|
"div",
|
|
13846
13848
|
{
|
|
13847
13849
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
13848
13850
|
onClick: (event) => event.stopPropagation(),
|
|
13849
13851
|
children: [
|
|
13850
|
-
/* @__PURE__ */
|
|
13852
|
+
/* @__PURE__ */ jsxs62(
|
|
13851
13853
|
Button,
|
|
13852
13854
|
{
|
|
13853
13855
|
variant: "ghost",
|
|
@@ -13855,16 +13857,16 @@ function TransactionsGroup(props) {
|
|
|
13855
13857
|
className: "w-full justify-between",
|
|
13856
13858
|
onClick: () => onToggleExpanded(group.id),
|
|
13857
13859
|
children: [
|
|
13858
|
-
/* @__PURE__ */
|
|
13860
|
+
/* @__PURE__ */ jsxs62("span", { children: [
|
|
13859
13861
|
"View internal calls (",
|
|
13860
13862
|
internalsToRender.length,
|
|
13861
13863
|
")"
|
|
13862
13864
|
] }),
|
|
13863
|
-
/* @__PURE__ */
|
|
13865
|
+
/* @__PURE__ */ jsx70("span", { children: expanded ? "Hide" : "Show" })
|
|
13864
13866
|
]
|
|
13865
13867
|
}
|
|
13866
13868
|
),
|
|
13867
|
-
expanded && /* @__PURE__ */
|
|
13869
|
+
expanded && /* @__PURE__ */ jsx70("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx70(
|
|
13868
13870
|
InternalTransaction,
|
|
13869
13871
|
{
|
|
13870
13872
|
internal,
|
|
@@ -13883,31 +13885,31 @@ function TransactionsGroup(props) {
|
|
|
13883
13885
|
}
|
|
13884
13886
|
|
|
13885
13887
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13886
|
-
import { jsx as
|
|
13888
|
+
import { jsx as jsx71, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
13887
13889
|
function TransactionsMenu() {
|
|
13888
13890
|
const qc = useQueryClient18();
|
|
13889
13891
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13890
13892
|
const page = useLayoutDataStore((st) => st.page);
|
|
13891
13893
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13892
13894
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
13893
|
-
const [expandedGroups, setExpandedGroups] =
|
|
13895
|
+
const [expandedGroups, setExpandedGroups] = useState22({});
|
|
13894
13896
|
const {
|
|
13895
13897
|
data: txHistoryGroups = [],
|
|
13896
13898
|
isLoading: isTxHistoryLoading,
|
|
13897
13899
|
isFetching: isTxHistoryFetching,
|
|
13898
13900
|
error: txHistoryError
|
|
13899
|
-
} =
|
|
13901
|
+
} = useQuery18({
|
|
13900
13902
|
retry: false,
|
|
13901
13903
|
enabled: !!address && page === "transactions",
|
|
13902
13904
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
13903
13905
|
queryFn: () => getTransactionsListQuery(address)
|
|
13904
13906
|
});
|
|
13905
|
-
const refreshTxHistory =
|
|
13907
|
+
const refreshTxHistory = useCallback18(
|
|
13906
13908
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
|
|
13907
13909
|
[qc, address]
|
|
13908
13910
|
);
|
|
13909
13911
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
13910
|
-
return /* @__PURE__ */
|
|
13912
|
+
return /* @__PURE__ */ jsx71(
|
|
13911
13913
|
"div",
|
|
13912
13914
|
{
|
|
13913
13915
|
style: {
|
|
@@ -13915,11 +13917,11 @@ function TransactionsMenu() {
|
|
|
13915
13917
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
13916
13918
|
},
|
|
13917
13919
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
13918
|
-
children: /* @__PURE__ */
|
|
13919
|
-
/* @__PURE__ */
|
|
13920
|
-
/* @__PURE__ */
|
|
13921
|
-
/* @__PURE__ */
|
|
13922
|
-
/* @__PURE__ */
|
|
13920
|
+
children: /* @__PURE__ */ jsxs63(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
13921
|
+
/* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13922
|
+
/* @__PURE__ */ jsx71(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx71(ArrowLeft16, { className: "h-4 w-4" }) }),
|
|
13923
|
+
/* @__PURE__ */ jsx71("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
13924
|
+
/* @__PURE__ */ jsx71(
|
|
13923
13925
|
Button,
|
|
13924
13926
|
{
|
|
13925
13927
|
variant: "ghost",
|
|
@@ -13927,17 +13929,17 @@ function TransactionsMenu() {
|
|
|
13927
13929
|
onClick: refreshTxHistory,
|
|
13928
13930
|
disabled: isTxHistoryFetching,
|
|
13929
13931
|
title: "Refresh transactions",
|
|
13930
|
-
children: isTxHistoryFetching ? /* @__PURE__ */
|
|
13932
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ jsx71(Loader25, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx71(RefreshCw3, { className: "h-4 w-4" })
|
|
13931
13933
|
}
|
|
13932
13934
|
)
|
|
13933
13935
|
] }),
|
|
13934
|
-
isTxHistoryLoading && /* @__PURE__ */
|
|
13935
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */
|
|
13936
|
-
/* @__PURE__ */
|
|
13937
|
-
/* @__PURE__ */
|
|
13936
|
+
isTxHistoryLoading && /* @__PURE__ */ jsx71("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx71(Loader25, { className: "h-5 w-5 animate-spin" }) }),
|
|
13937
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs63(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
13938
|
+
/* @__PURE__ */ jsx71(XCircle2, { className: "w-4 h-4 flex-none" }),
|
|
13939
|
+
/* @__PURE__ */ jsx71("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
13938
13940
|
] }),
|
|
13939
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */
|
|
13940
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */
|
|
13941
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx71(Highlight, { type: "warning", children: /* @__PURE__ */ jsx71("span", { children: "No transactions found." }) }),
|
|
13942
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx71("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx71(
|
|
13941
13943
|
TransactionsGroup,
|
|
13942
13944
|
{
|
|
13943
13945
|
group,
|
|
@@ -14047,12 +14049,12 @@ var PAGE_MAP = {
|
|
|
14047
14049
|
key: "nickname-settings" /* NICKNAME_SETTINGS */,
|
|
14048
14050
|
title: "Nickname Settings",
|
|
14049
14051
|
description: "View and manage your @nickname",
|
|
14050
|
-
component:
|
|
14052
|
+
component: NicknameMenu
|
|
14051
14053
|
}
|
|
14052
14054
|
};
|
|
14053
14055
|
|
|
14054
14056
|
// src/internal/hooks/usePageMapper.tsx
|
|
14055
|
-
import { jsx as
|
|
14057
|
+
import { jsx as jsx72 } from "react/jsx-runtime";
|
|
14056
14058
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
14057
14059
|
function usePageMapper() {
|
|
14058
14060
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -14064,7 +14066,7 @@ function usePageMapper() {
|
|
|
14064
14066
|
setIsDialogOpen,
|
|
14065
14067
|
setIsDialogClosing
|
|
14066
14068
|
} = useLayoutStore();
|
|
14067
|
-
const closeDialog =
|
|
14069
|
+
const closeDialog = useCallback19(() => {
|
|
14068
14070
|
setIsDialogClosing(true);
|
|
14069
14071
|
setTimeout(() => {
|
|
14070
14072
|
setDialogContent(null);
|
|
@@ -14075,17 +14077,17 @@ function usePageMapper() {
|
|
|
14075
14077
|
setIsDialogOpen(false);
|
|
14076
14078
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
14077
14079
|
}, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
|
|
14078
|
-
const openDialog =
|
|
14080
|
+
const openDialog = useCallback19(
|
|
14079
14081
|
(pageItem) => {
|
|
14080
14082
|
const PageContentComponent = pageItem.component;
|
|
14081
14083
|
setDialogTitle(pageItem.title);
|
|
14082
14084
|
setDialogDescription(pageItem.description);
|
|
14083
|
-
setDialogContent(/* @__PURE__ */
|
|
14085
|
+
setDialogContent(/* @__PURE__ */ jsx72(PageContentComponent, {}));
|
|
14084
14086
|
setIsDialogOpen(true);
|
|
14085
14087
|
},
|
|
14086
14088
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
14087
14089
|
);
|
|
14088
|
-
|
|
14090
|
+
useEffect31(() => {
|
|
14089
14091
|
if (page === null) return closeDialog();
|
|
14090
14092
|
const pageItem = PAGE_MAP[page];
|
|
14091
14093
|
if (!pageItem) {
|
|
@@ -14100,8 +14102,8 @@ function usePageMapper() {
|
|
|
14100
14102
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
14101
14103
|
init_auth();
|
|
14102
14104
|
init_profile();
|
|
14103
|
-
import { useQuery as
|
|
14104
|
-
import { useEffect as
|
|
14105
|
+
import { useQuery as useQuery19 } from "@tanstack/react-query";
|
|
14106
|
+
import { useEffect as useEffect32 } from "react";
|
|
14105
14107
|
var EMAIL_NOT_CONNECTED_NOTIFICATION = {
|
|
14106
14108
|
id: "email-not-connected",
|
|
14107
14109
|
target: "manage-wallet" /* MANAGE_WALLET */,
|
|
@@ -14117,20 +14119,20 @@ function useSettingsNotifications() {
|
|
|
14117
14119
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
14118
14120
|
const providers = jwtTokenManager2.getProviders();
|
|
14119
14121
|
const hasEmail = providers.includes("email");
|
|
14120
|
-
const { data: userProfile = null } =
|
|
14122
|
+
const { data: userProfile = null } = useQuery19({
|
|
14121
14123
|
retry: false,
|
|
14122
14124
|
enabled: !!address,
|
|
14123
14125
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
14124
14126
|
queryFn: getUserProfile
|
|
14125
14127
|
});
|
|
14126
|
-
|
|
14128
|
+
useEffect32(() => {
|
|
14127
14129
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
14128
14130
|
setSettingsNotifications({
|
|
14129
14131
|
...COMPLETE_KYC_PROGRESS,
|
|
14130
14132
|
status: isKYCVerified ? "resolved" : "active"
|
|
14131
14133
|
});
|
|
14132
14134
|
}, [userProfile, setSettingsNotifications]);
|
|
14133
|
-
|
|
14135
|
+
useEffect32(() => {
|
|
14134
14136
|
setSettingsNotifications({
|
|
14135
14137
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
14136
14138
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -14139,7 +14141,7 @@ function useSettingsNotifications() {
|
|
|
14139
14141
|
}
|
|
14140
14142
|
|
|
14141
14143
|
// src/internal/hooks/useWalletStatus.ts
|
|
14142
|
-
import { useEffect as
|
|
14144
|
+
import { useEffect as useEffect33 } from "react";
|
|
14143
14145
|
init_auth();
|
|
14144
14146
|
function useWalletStatus() {
|
|
14145
14147
|
const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
|
|
@@ -14149,7 +14151,7 @@ function useWalletStatus() {
|
|
|
14149
14151
|
config: { current: config },
|
|
14150
14152
|
callbacks
|
|
14151
14153
|
} = useLumiaPassportConfig();
|
|
14152
|
-
|
|
14154
|
+
useEffect33(() => {
|
|
14153
14155
|
if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
|
|
14154
14156
|
const userId = jwtTokenManager2.getUserId();
|
|
14155
14157
|
const hasKeyshare = jwtTokenManager2.getHasKeyshare();
|
|
@@ -14169,7 +14171,7 @@ function useWalletStatus() {
|
|
|
14169
14171
|
}
|
|
14170
14172
|
|
|
14171
14173
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
14172
|
-
import { jsx as
|
|
14174
|
+
import { jsx as jsx73, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
14173
14175
|
function LumiaPassportDialog() {
|
|
14174
14176
|
const config = useLumiaPassportConfig().config;
|
|
14175
14177
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -14179,7 +14181,7 @@ function LumiaPassportDialog() {
|
|
|
14179
14181
|
const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
|
|
14180
14182
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
14181
14183
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
14182
|
-
|
|
14184
|
+
useEffect34(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
14183
14185
|
usePageMapper();
|
|
14184
14186
|
useAutoConnect();
|
|
14185
14187
|
useBackupStatusChanges();
|
|
@@ -14188,7 +14190,7 @@ function LumiaPassportDialog() {
|
|
|
14188
14190
|
useListenIframeAuthEvents();
|
|
14189
14191
|
useWalletStatus();
|
|
14190
14192
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
14191
|
-
return /* @__PURE__ */
|
|
14193
|
+
return /* @__PURE__ */ jsx73(
|
|
14192
14194
|
Dialog,
|
|
14193
14195
|
{
|
|
14194
14196
|
open: isDialogOpen,
|
|
@@ -14196,11 +14198,11 @@ function LumiaPassportDialog() {
|
|
|
14196
14198
|
if (isDialogForced) return;
|
|
14197
14199
|
if (!open) setPage(null);
|
|
14198
14200
|
},
|
|
14199
|
-
children: /* @__PURE__ */
|
|
14200
|
-
/* @__PURE__ */
|
|
14201
|
-
/* @__PURE__ */
|
|
14202
|
-
!isHeaderHidden && /* @__PURE__ */
|
|
14203
|
-
/* @__PURE__ */
|
|
14201
|
+
children: /* @__PURE__ */ jsxs64(DialogContent, { colorMode, className, children: [
|
|
14202
|
+
/* @__PURE__ */ jsx73(VisuallyHidden, { children: /* @__PURE__ */ jsx73(DialogTitle, { children: dialogTitle }) }),
|
|
14203
|
+
/* @__PURE__ */ jsx73(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
14204
|
+
!isHeaderHidden && /* @__PURE__ */ jsx73(Header, {}),
|
|
14205
|
+
/* @__PURE__ */ jsx73(AnimatePresence3, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx73(
|
|
14204
14206
|
motion3.div,
|
|
14205
14207
|
{
|
|
14206
14208
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -14212,14 +14214,14 @@ function LumiaPassportDialog() {
|
|
|
14212
14214
|
},
|
|
14213
14215
|
page || "empty"
|
|
14214
14216
|
) }),
|
|
14215
|
-
/* @__PURE__ */
|
|
14217
|
+
/* @__PURE__ */ jsx73(Footer, {})
|
|
14216
14218
|
] })
|
|
14217
14219
|
}
|
|
14218
14220
|
);
|
|
14219
14221
|
}
|
|
14220
14222
|
|
|
14221
14223
|
// src/internal/components/TssManager.tsx
|
|
14222
|
-
import React7, { useCallback as
|
|
14224
|
+
import React7, { useCallback as useCallback20 } from "react";
|
|
14223
14225
|
init_auth();
|
|
14224
14226
|
init_clients();
|
|
14225
14227
|
var TssManagerWithRef = React7.forwardRef((props, ref) => {
|
|
@@ -14228,7 +14230,7 @@ var TssManagerWithRef = React7.forwardRef((props, ref) => {
|
|
|
14228
14230
|
const setStatus = useLumiaPassportSession((st) => st.setStatus);
|
|
14229
14231
|
const setSession = useLumiaPassportSession((st) => st.setSession);
|
|
14230
14232
|
const setAddress = useLumiaPassportSession((st) => st.setAddress);
|
|
14231
|
-
const onSessionCreated =
|
|
14233
|
+
const onSessionCreated = useCallback20(
|
|
14232
14234
|
(session, address) => {
|
|
14233
14235
|
setSession(session);
|
|
14234
14236
|
setAddress(address);
|
|
@@ -14264,7 +14266,7 @@ var TssManagerWithRef = React7.forwardRef((props, ref) => {
|
|
|
14264
14266
|
init_wallet();
|
|
14265
14267
|
import { useConnectModal } from "@rainbow-me/rainbowkit";
|
|
14266
14268
|
import { useMutation as useMutation15, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
|
|
14267
|
-
import React8, { useCallback as
|
|
14269
|
+
import React8, { useCallback as useCallback21, useEffect as useEffect35 } from "react";
|
|
14268
14270
|
import { useAccount, useDisconnect, useSignMessage } from "wagmi";
|
|
14269
14271
|
function WalletConnectHandler() {
|
|
14270
14272
|
const qc = useQueryClient19();
|
|
@@ -14281,7 +14283,7 @@ function WalletConnectHandler() {
|
|
|
14281
14283
|
const setManageWalletLinkError = useManageWalletStore((st) => st.setLinkError);
|
|
14282
14284
|
const setLinkIsLoading = useManageWalletStore((st) => st.setLinkIsLoading);
|
|
14283
14285
|
const setProviderType = useManageWalletStore((st) => st.setProviderType);
|
|
14284
|
-
const onLinkingComplete =
|
|
14286
|
+
const onLinkingComplete = useCallback21(
|
|
14285
14287
|
async (success) => {
|
|
14286
14288
|
setIsWalletLinking(false);
|
|
14287
14289
|
if (!success && !passportWalletAddress) {
|
|
@@ -14309,7 +14311,7 @@ function WalletConnectHandler() {
|
|
|
14309
14311
|
[qc, passportWalletAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
|
|
14310
14312
|
);
|
|
14311
14313
|
const [hasStartedLinking, setHasStartedLinking] = React8.useState(false);
|
|
14312
|
-
|
|
14314
|
+
useEffect35(() => {
|
|
14313
14315
|
if (isWalletLinking && !hasStartedLinking) {
|
|
14314
14316
|
setHasStartedLinking(true);
|
|
14315
14317
|
setProviderType(null);
|
|
@@ -14329,7 +14331,7 @@ function WalletConnectHandler() {
|
|
|
14329
14331
|
if (isConnected) disconnect();
|
|
14330
14332
|
}
|
|
14331
14333
|
}, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
|
|
14332
|
-
|
|
14334
|
+
useEffect35(() => {
|
|
14333
14335
|
if (hasStartedLinking && !connectModalOpen && !isConnected && isWalletLinking) {
|
|
14334
14336
|
console.log("[WalletConnectHandler] Modal closed without connecting");
|
|
14335
14337
|
onLinkingComplete(false);
|
|
@@ -14405,7 +14407,7 @@ function WalletConnectHandler() {
|
|
|
14405
14407
|
setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
|
|
14406
14408
|
}
|
|
14407
14409
|
});
|
|
14408
|
-
|
|
14410
|
+
useEffect35(() => {
|
|
14409
14411
|
if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
|
|
14410
14412
|
console.log("[WalletConnectHandler] handleWalletSign triggered");
|
|
14411
14413
|
handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
|
|
@@ -14415,7 +14417,7 @@ function WalletConnectHandler() {
|
|
|
14415
14417
|
}
|
|
14416
14418
|
|
|
14417
14419
|
// src/context/LumiaPassportSessionContext.tsx
|
|
14418
|
-
import { jsx as
|
|
14420
|
+
import { jsx as jsx74, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
14419
14421
|
var useLumiaPassportSession = create6((set) => ({
|
|
14420
14422
|
isLoading: false,
|
|
14421
14423
|
usePaymaster: true,
|
|
@@ -14441,17 +14443,17 @@ var useLumiaPassportSession = create6((set) => ({
|
|
|
14441
14443
|
}));
|
|
14442
14444
|
function LumiaPassportSessionProvider({ children }) {
|
|
14443
14445
|
const config = useLumiaPassportConfig().config;
|
|
14444
|
-
return /* @__PURE__ */
|
|
14446
|
+
return /* @__PURE__ */ jsxs65(Fragment27, { children: [
|
|
14445
14447
|
children,
|
|
14446
|
-
config.current?.wallet?.enabled && /* @__PURE__ */
|
|
14447
|
-
/* @__PURE__ */
|
|
14448
|
-
/* @__PURE__ */
|
|
14448
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ jsx74(WalletConnectHandler, {}),
|
|
14449
|
+
/* @__PURE__ */ jsx74(BalanceFeedProvider, {}),
|
|
14450
|
+
/* @__PURE__ */ jsx74(
|
|
14449
14451
|
TssManagerWithRef,
|
|
14450
14452
|
{
|
|
14451
14453
|
mpcPin: void 0
|
|
14452
14454
|
}
|
|
14453
14455
|
),
|
|
14454
|
-
/* @__PURE__ */
|
|
14456
|
+
/* @__PURE__ */ jsx74(LumiaPassportDialog, {})
|
|
14455
14457
|
] });
|
|
14456
14458
|
}
|
|
14457
14459
|
|
|
@@ -14486,21 +14488,21 @@ var wagmiConfig = createConfig({
|
|
|
14486
14488
|
});
|
|
14487
14489
|
|
|
14488
14490
|
// src/context/WagmiContext.tsx
|
|
14489
|
-
import { jsx as
|
|
14491
|
+
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
14490
14492
|
var LumiaWagmiProvider = ({ children }) => {
|
|
14491
|
-
return /* @__PURE__ */
|
|
14493
|
+
return /* @__PURE__ */ jsx75(WagmiProvider, { config: wagmiConfig, children });
|
|
14492
14494
|
};
|
|
14493
14495
|
|
|
14494
14496
|
// src/context/LumiaPassportContext.tsx
|
|
14495
|
-
import { jsx as
|
|
14497
|
+
import { jsx as jsx76 } from "react/jsx-runtime";
|
|
14496
14498
|
var LumiaPassportContext = createContext(void 0);
|
|
14497
14499
|
function LumiaPassportProvider(props) {
|
|
14498
14500
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
14499
14501
|
const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
|
|
14500
14502
|
const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
|
|
14501
|
-
|
|
14503
|
+
useEffect36(() => notifyNoProjetctId(projectId), [projectId]);
|
|
14502
14504
|
const config = useRef15({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
|
|
14503
|
-
const updateConfig =
|
|
14505
|
+
const updateConfig = useCallback22((updates) => {
|
|
14504
14506
|
const prev = config.current;
|
|
14505
14507
|
const next = { ...prev };
|
|
14506
14508
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -14535,7 +14537,7 @@ function LumiaPassportProvider(props) {
|
|
|
14535
14537
|
}
|
|
14536
14538
|
config.current = next;
|
|
14537
14539
|
}, []);
|
|
14538
|
-
|
|
14540
|
+
useEffect36(() => {
|
|
14539
14541
|
if (typeof window === "undefined" || !projectId) return;
|
|
14540
14542
|
const mergedConfig = merge2(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
|
|
14541
14543
|
updateConfig(mergedConfig);
|
|
@@ -14581,7 +14583,7 @@ function LumiaPassportProvider(props) {
|
|
|
14581
14583
|
}
|
|
14582
14584
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
14583
14585
|
const contextValue = useMemo8(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
14584
|
-
return /* @__PURE__ */
|
|
14586
|
+
return /* @__PURE__ */ jsx76(LumiaWagmiProvider, { children: /* @__PURE__ */ jsx76(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
14585
14587
|
}
|
|
14586
14588
|
var useLumiaPassportConfig = () => {
|
|
14587
14589
|
const ctx = useContext(LumiaPassportContext);
|
|
@@ -14590,12 +14592,12 @@ var useLumiaPassportConfig = () => {
|
|
|
14590
14592
|
};
|
|
14591
14593
|
|
|
14592
14594
|
// src/components/ConnectWalletButton.tsx
|
|
14593
|
-
import { useQuery as
|
|
14595
|
+
import { useQuery as useQuery20 } from "@tanstack/react-query";
|
|
14594
14596
|
import { Cloud as Cloud5, Laptop as Laptop2, Loader as Loader26, Shield as Shield5 } from "lucide-react";
|
|
14595
|
-
import { useEffect as
|
|
14597
|
+
import { useEffect as useEffect37, useMemo as useMemo9 } from "react";
|
|
14596
14598
|
init_auth();
|
|
14597
14599
|
init_profile();
|
|
14598
|
-
import { Fragment as
|
|
14600
|
+
import { Fragment as Fragment28, jsx as jsx77, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
14599
14601
|
function getFormattedStatus(label, status, showStatus) {
|
|
14600
14602
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
14601
14603
|
if (!isStatus) return label;
|
|
@@ -14614,8 +14616,8 @@ function ConnectWalletButton(props) {
|
|
|
14614
14616
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
14615
14617
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
14616
14618
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
14617
|
-
|
|
14618
|
-
const { data: profile, isLoading: isProfileLoading } =
|
|
14619
|
+
useEffect37(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
14620
|
+
const { data: profile, isLoading: isProfileLoading } = useQuery20({
|
|
14619
14621
|
retry: false,
|
|
14620
14622
|
enabled: !!address,
|
|
14621
14623
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
@@ -14631,20 +14633,20 @@ function ConnectWalletButton(props) {
|
|
|
14631
14633
|
return { server, local, backup: hasServerVault };
|
|
14632
14634
|
}, [session, address, hasServerVault]);
|
|
14633
14635
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
14634
|
-
return /* @__PURE__ */
|
|
14636
|
+
return /* @__PURE__ */ jsx77("div", { "data-lumia-passport-mode": colorMode, className: cn("lumia-scope w-fit h-fit", className), children: !address ? (
|
|
14635
14637
|
/** external Buttons can be provided */
|
|
14636
|
-
/* @__PURE__ */
|
|
14638
|
+
/* @__PURE__ */ jsx77(Fragment28, { children: ConnectButton ? /* @__PURE__ */ jsxs66(
|
|
14637
14639
|
ConnectButton,
|
|
14638
14640
|
{
|
|
14639
14641
|
type: "button",
|
|
14640
14642
|
disabled: isConnecting,
|
|
14641
14643
|
onClick: () => setPage("auth" /* AUTH */),
|
|
14642
14644
|
children: [
|
|
14643
|
-
isConnecting && /* @__PURE__ */
|
|
14645
|
+
isConnecting && /* @__PURE__ */ jsx77(Loader26, { className: "w-4 h-4 animate-spin" }),
|
|
14644
14646
|
connectButtonLabel
|
|
14645
14647
|
]
|
|
14646
14648
|
}
|
|
14647
|
-
) : /* @__PURE__ */
|
|
14649
|
+
) : /* @__PURE__ */ jsxs66(
|
|
14648
14650
|
Button,
|
|
14649
14651
|
{
|
|
14650
14652
|
type: "button",
|
|
@@ -14661,12 +14663,12 @@ function ConnectWalletButton(props) {
|
|
|
14661
14663
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
14662
14664
|
),
|
|
14663
14665
|
children: [
|
|
14664
|
-
isConnecting && /* @__PURE__ */
|
|
14666
|
+
isConnecting && /* @__PURE__ */ jsx77(Loader26, { className: "w-4 h-4 animate-spin" }),
|
|
14665
14667
|
connectButtonLabel.toUpperCase()
|
|
14666
14668
|
]
|
|
14667
14669
|
}
|
|
14668
14670
|
) })
|
|
14669
|
-
) : /* @__PURE__ */
|
|
14671
|
+
) : /* @__PURE__ */ jsxs66(
|
|
14670
14672
|
"button",
|
|
14671
14673
|
{
|
|
14672
14674
|
type: "button",
|
|
@@ -14679,23 +14681,23 @@ function ConnectWalletButton(props) {
|
|
|
14679
14681
|
"rounded-[var(--l-pass-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
14680
14682
|
),
|
|
14681
14683
|
children: [
|
|
14682
|
-
/* @__PURE__ */
|
|
14683
|
-
/* @__PURE__ */
|
|
14684
|
-
/* @__PURE__ */
|
|
14685
|
-
isProfileLoading ? /* @__PURE__ */
|
|
14686
|
-
/* @__PURE__ */
|
|
14684
|
+
/* @__PURE__ */ jsx77("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ jsx77("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx77(LumiaIcon, { width: 48, height: 48 }) }),
|
|
14685
|
+
/* @__PURE__ */ jsxs66("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
|
|
14686
|
+
/* @__PURE__ */ jsxs66("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
14687
|
+
isProfileLoading ? /* @__PURE__ */ jsx77(Loader26, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx77("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--l-pass-fg)]", children: displayName }),
|
|
14688
|
+
/* @__PURE__ */ jsx77(KYCStatus, {})
|
|
14687
14689
|
] }),
|
|
14688
|
-
/* @__PURE__ */
|
|
14690
|
+
/* @__PURE__ */ jsx77(BalanceView, {})
|
|
14689
14691
|
] }),
|
|
14690
|
-
/* @__PURE__ */
|
|
14691
|
-
/* @__PURE__ */
|
|
14692
|
-
/* @__PURE__ */
|
|
14692
|
+
/* @__PURE__ */ jsxs66("div", { className: "flex items-center space-x-1", children: [
|
|
14693
|
+
/* @__PURE__ */ jsxs66("div", { className: "group relative", children: [
|
|
14694
|
+
/* @__PURE__ */ jsx77(
|
|
14693
14695
|
Cloud5,
|
|
14694
14696
|
{
|
|
14695
14697
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14696
14698
|
}
|
|
14697
14699
|
),
|
|
14698
|
-
/* @__PURE__ */
|
|
14700
|
+
/* @__PURE__ */ jsxs66(
|
|
14699
14701
|
"div",
|
|
14700
14702
|
{
|
|
14701
14703
|
className: cn(
|
|
@@ -14710,14 +14712,14 @@ function ConnectWalletButton(props) {
|
|
|
14710
14712
|
}
|
|
14711
14713
|
)
|
|
14712
14714
|
] }),
|
|
14713
|
-
/* @__PURE__ */
|
|
14714
|
-
/* @__PURE__ */
|
|
14715
|
+
/* @__PURE__ */ jsxs66("div", { className: "group relative", children: [
|
|
14716
|
+
/* @__PURE__ */ jsx77(
|
|
14715
14717
|
Laptop2,
|
|
14716
14718
|
{
|
|
14717
14719
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14718
14720
|
}
|
|
14719
14721
|
),
|
|
14720
|
-
/* @__PURE__ */
|
|
14722
|
+
/* @__PURE__ */ jsxs66(
|
|
14721
14723
|
"div",
|
|
14722
14724
|
{
|
|
14723
14725
|
className: cn(
|
|
@@ -14732,14 +14734,14 @@ function ConnectWalletButton(props) {
|
|
|
14732
14734
|
}
|
|
14733
14735
|
)
|
|
14734
14736
|
] }),
|
|
14735
|
-
/* @__PURE__ */
|
|
14736
|
-
/* @__PURE__ */
|
|
14737
|
+
/* @__PURE__ */ jsxs66("div", { className: "group relative", children: [
|
|
14738
|
+
/* @__PURE__ */ jsx77(
|
|
14737
14739
|
Shield5,
|
|
14738
14740
|
{
|
|
14739
14741
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14740
14742
|
}
|
|
14741
14743
|
),
|
|
14742
|
-
/* @__PURE__ */
|
|
14744
|
+
/* @__PURE__ */ jsxs66(
|
|
14743
14745
|
"div",
|
|
14744
14746
|
{
|
|
14745
14747
|
className: cn(
|
|
@@ -14755,7 +14757,7 @@ function ConnectWalletButton(props) {
|
|
|
14755
14757
|
)
|
|
14756
14758
|
] })
|
|
14757
14759
|
] }),
|
|
14758
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
14760
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx77(
|
|
14759
14761
|
"div",
|
|
14760
14762
|
{
|
|
14761
14763
|
className: cn(
|
|
@@ -14796,13 +14798,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
|
|
|
14796
14798
|
var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
|
|
14797
14799
|
|
|
14798
14800
|
// src/hooks/useLumiaPassportOpen.ts
|
|
14799
|
-
import { useCallback as
|
|
14801
|
+
import { useCallback as useCallback23 } from "react";
|
|
14800
14802
|
function useLumiaPassportOpen() {
|
|
14801
14803
|
const page = useLayoutDataStore((st) => st.page);
|
|
14802
14804
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
14803
14805
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
14804
14806
|
const address = useLumiaPassportSession((st) => st.address);
|
|
14805
|
-
const open =
|
|
14807
|
+
const open = useCallback23(
|
|
14806
14808
|
(passportPage, params) => {
|
|
14807
14809
|
if (!address) return setPage("auth" /* AUTH */);
|
|
14808
14810
|
if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
|
|
@@ -14811,12 +14813,12 @@ function useLumiaPassportOpen() {
|
|
|
14811
14813
|
},
|
|
14812
14814
|
[setPage, setPageParams, address]
|
|
14813
14815
|
);
|
|
14814
|
-
const close =
|
|
14816
|
+
const close = useCallback23(() => setPage(null), [setPage]);
|
|
14815
14817
|
return { open, close, isOpen: page !== null };
|
|
14816
14818
|
}
|
|
14817
14819
|
|
|
14818
14820
|
// src/hooks/useLumiaPassportColorMode.ts
|
|
14819
|
-
import { useCallback as
|
|
14821
|
+
import { useCallback as useCallback24, useEffect as useEffect38 } from "react";
|
|
14820
14822
|
function useLumiaPassportColorMode() {
|
|
14821
14823
|
const {
|
|
14822
14824
|
config: { current: config }
|
|
@@ -14824,14 +14826,14 @@ function useLumiaPassportColorMode() {
|
|
|
14824
14826
|
const preferedColorMode = config?.preferedColorMode;
|
|
14825
14827
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
14826
14828
|
const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
|
|
14827
|
-
const setColorMode =
|
|
14829
|
+
const setColorMode = useCallback24(
|
|
14828
14830
|
(mode) => {
|
|
14829
14831
|
localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
|
|
14830
14832
|
handleStoreColorMode(mode);
|
|
14831
14833
|
},
|
|
14832
14834
|
[handleStoreColorMode]
|
|
14833
14835
|
);
|
|
14834
|
-
|
|
14836
|
+
useEffect38(() => {
|
|
14835
14837
|
let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
|
|
14836
14838
|
if (!targetColorMode && !preferedColorMode) {
|
|
14837
14839
|
const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
@@ -14849,23 +14851,23 @@ function useLumiaPassportColorMode() {
|
|
|
14849
14851
|
|
|
14850
14852
|
// src/components/ThemeToggle.tsx
|
|
14851
14853
|
import { Moon, Sun } from "lucide-react";
|
|
14852
|
-
import { jsx as
|
|
14854
|
+
import { jsx as jsx78 } from "react/jsx-runtime";
|
|
14853
14855
|
function ThemeToggle(props) {
|
|
14854
14856
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
14855
|
-
return /* @__PURE__ */
|
|
14857
|
+
return /* @__PURE__ */ jsx78(
|
|
14856
14858
|
"div",
|
|
14857
14859
|
{
|
|
14858
14860
|
className: "lumia-scope",
|
|
14859
14861
|
"data-lumia-passport-mode": colorMode,
|
|
14860
14862
|
style: { width: "fit-content", height: "fit-content" },
|
|
14861
|
-
children: /* @__PURE__ */
|
|
14863
|
+
children: /* @__PURE__ */ jsx78(
|
|
14862
14864
|
Button,
|
|
14863
14865
|
{
|
|
14864
14866
|
...props,
|
|
14865
14867
|
variant: "ghost",
|
|
14866
14868
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
14867
14869
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
14868
|
-
children: colorMode === "dark" ? /* @__PURE__ */
|
|
14870
|
+
children: colorMode === "dark" ? /* @__PURE__ */ jsx78(Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx78(Moon, { className: "w-4 h-4" })
|
|
14869
14871
|
}
|
|
14870
14872
|
)
|
|
14871
14873
|
}
|
|
@@ -15102,7 +15104,7 @@ var rainbowTheme = {
|
|
|
15102
15104
|
|
|
15103
15105
|
// src/context/RainbowKitContext.tsx
|
|
15104
15106
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
15105
|
-
import { Fragment as
|
|
15107
|
+
import { Fragment as Fragment29, jsx as jsx79 } from "react/jsx-runtime";
|
|
15106
15108
|
function LumiaRainbowKitProvider({ children }) {
|
|
15107
15109
|
const config = useLumiaPassportConfig().config;
|
|
15108
15110
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -15121,13 +15123,13 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
15121
15123
|
},
|
|
15122
15124
|
[colorMode]
|
|
15123
15125
|
);
|
|
15124
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */
|
|
15125
|
-
return /* @__PURE__ */
|
|
15126
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx79(Fragment29, { children });
|
|
15127
|
+
return /* @__PURE__ */ jsx79(WagmiProvider2, { config: rainbowConfig2, children: /* @__PURE__ */ jsx79(RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
15126
15128
|
}
|
|
15127
15129
|
|
|
15128
15130
|
// src/internal/components/UserOpStatus.tsx
|
|
15129
15131
|
init_base();
|
|
15130
|
-
import { AlertCircle as AlertCircle6, CheckCircle2 as CheckCircle26, Clock as Clock2, Copy as
|
|
15132
|
+
import { AlertCircle as AlertCircle6, CheckCircle2 as CheckCircle26, Clock as Clock2, Copy as Copy6, ExternalLink as ExternalLink2, RefreshCw as RefreshCw4 } from "lucide-react";
|
|
15131
15133
|
import * as React10 from "react";
|
|
15132
15134
|
|
|
15133
15135
|
// src/internal/utils/cn.ts
|
|
@@ -15138,9 +15140,9 @@ function cn2(...inputs) {
|
|
|
15138
15140
|
}
|
|
15139
15141
|
|
|
15140
15142
|
// src/internal/components/Address.tsx
|
|
15141
|
-
import { Copy as
|
|
15143
|
+
import { Copy as Copy5, ExternalLink } from "lucide-react";
|
|
15142
15144
|
import * as React9 from "react";
|
|
15143
|
-
import { jsx as
|
|
15145
|
+
import { jsx as jsx80, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
15144
15146
|
function toExplorerAddressUrl(address, chain) {
|
|
15145
15147
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
15146
15148
|
if (!base2) return null;
|
|
@@ -15162,11 +15164,11 @@ var Address = ({
|
|
|
15162
15164
|
const addr = address || "";
|
|
15163
15165
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
15164
15166
|
const [copied, setCopied] = React9.useState(false);
|
|
15165
|
-
if (!addr) return /* @__PURE__ */
|
|
15166
|
-
return /* @__PURE__ */
|
|
15167
|
-
label && /* @__PURE__ */
|
|
15168
|
-
/* @__PURE__ */
|
|
15169
|
-
showCopy && /* @__PURE__ */
|
|
15167
|
+
if (!addr) return /* @__PURE__ */ jsx80("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15168
|
+
return /* @__PURE__ */ jsxs67("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
15169
|
+
label && /* @__PURE__ */ jsx80("span", { className: "text-sm font-medium", children: label }),
|
|
15170
|
+
/* @__PURE__ */ jsx80("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
15171
|
+
showCopy && /* @__PURE__ */ jsx80(
|
|
15170
15172
|
Button,
|
|
15171
15173
|
{
|
|
15172
15174
|
variant: "ghost",
|
|
@@ -15180,10 +15182,10 @@ var Address = ({
|
|
|
15180
15182
|
} catch {
|
|
15181
15183
|
}
|
|
15182
15184
|
},
|
|
15183
|
-
children: /* @__PURE__ */
|
|
15185
|
+
children: /* @__PURE__ */ jsx80(Copy5, { className: "h-4 w-4" })
|
|
15184
15186
|
}
|
|
15185
15187
|
),
|
|
15186
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
15188
|
+
showExplorer && explorer && /* @__PURE__ */ jsx80(
|
|
15187
15189
|
"a",
|
|
15188
15190
|
{
|
|
15189
15191
|
href: explorer,
|
|
@@ -15191,7 +15193,7 @@ var Address = ({
|
|
|
15191
15193
|
rel: "noreferrer noopener",
|
|
15192
15194
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
15193
15195
|
title: "Open in explorer",
|
|
15194
|
-
children: /* @__PURE__ */
|
|
15196
|
+
children: /* @__PURE__ */ jsx80(ExternalLink, { className: "h-4 w-4" })
|
|
15195
15197
|
}
|
|
15196
15198
|
)
|
|
15197
15199
|
] });
|
|
@@ -15199,7 +15201,7 @@ var Address = ({
|
|
|
15199
15201
|
|
|
15200
15202
|
// src/internal/components/ui/badge.tsx
|
|
15201
15203
|
import { cva as cva2 } from "class-variance-authority";
|
|
15202
|
-
import { jsx as
|
|
15204
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
15203
15205
|
var badgeVariants = cva2(
|
|
15204
15206
|
"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",
|
|
15205
15207
|
{
|
|
@@ -15219,11 +15221,11 @@ var badgeVariants = cva2(
|
|
|
15219
15221
|
}
|
|
15220
15222
|
);
|
|
15221
15223
|
function Badge({ className, variant, ...props }) {
|
|
15222
|
-
return /* @__PURE__ */
|
|
15224
|
+
return /* @__PURE__ */ jsx81("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
15223
15225
|
}
|
|
15224
15226
|
|
|
15225
15227
|
// src/internal/components/UserOpStatus.tsx
|
|
15226
|
-
import { jsx as
|
|
15228
|
+
import { jsx as jsx82, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
15227
15229
|
var UserOpStatus = ({
|
|
15228
15230
|
userOpHash,
|
|
15229
15231
|
chain,
|
|
@@ -15356,35 +15358,35 @@ var UserOpStatus = ({
|
|
|
15356
15358
|
const stateBadge = () => {
|
|
15357
15359
|
if (receipt) {
|
|
15358
15360
|
const ok = !!receipt.success;
|
|
15359
|
-
return /* @__PURE__ */
|
|
15360
|
-
ok ? /* @__PURE__ */
|
|
15361
|
+
return /* @__PURE__ */ jsxs68(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
15362
|
+
ok ? /* @__PURE__ */ jsx82(CheckCircle26, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx82(AlertCircle6, { className: "h-3 w-3" }),
|
|
15361
15363
|
ok ? "Included" : "Failed"
|
|
15362
15364
|
] });
|
|
15363
15365
|
}
|
|
15364
15366
|
if (rejected) {
|
|
15365
|
-
return /* @__PURE__ */
|
|
15366
|
-
/* @__PURE__ */
|
|
15367
|
+
return /* @__PURE__ */ jsxs68(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
15368
|
+
/* @__PURE__ */ jsx82(AlertCircle6, { className: "h-3 w-3" }),
|
|
15367
15369
|
" Rejected by bundler"
|
|
15368
15370
|
] });
|
|
15369
15371
|
}
|
|
15370
15372
|
if (timedOut) {
|
|
15371
|
-
return /* @__PURE__ */
|
|
15372
|
-
/* @__PURE__ */
|
|
15373
|
+
return /* @__PURE__ */ jsxs68(Badge, { variant: "warning", className: "gap-1", children: [
|
|
15374
|
+
/* @__PURE__ */ jsx82(AlertCircle6, { className: "h-3 w-3" }),
|
|
15373
15375
|
" Timeout - may be rejected"
|
|
15374
15376
|
] });
|
|
15375
15377
|
}
|
|
15376
15378
|
if (mempool) {
|
|
15377
|
-
return /* @__PURE__ */
|
|
15378
|
-
/* @__PURE__ */
|
|
15379
|
+
return /* @__PURE__ */ jsxs68(Badge, { variant: "outline", className: "gap-1", children: [
|
|
15380
|
+
/* @__PURE__ */ jsx82(Clock2, { className: "h-3 w-3" }),
|
|
15379
15381
|
" Pending in bundler"
|
|
15380
15382
|
] });
|
|
15381
15383
|
}
|
|
15382
|
-
return /* @__PURE__ */
|
|
15383
|
-
/* @__PURE__ */
|
|
15384
|
+
return /* @__PURE__ */ jsxs68(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
15385
|
+
/* @__PURE__ */ jsx82(Clock2, { className: "h-3 w-3" }),
|
|
15384
15386
|
" Waiting"
|
|
15385
15387
|
] });
|
|
15386
15388
|
};
|
|
15387
|
-
return /* @__PURE__ */
|
|
15389
|
+
return /* @__PURE__ */ jsxs68(
|
|
15388
15390
|
"div",
|
|
15389
15391
|
{
|
|
15390
15392
|
className: cn2(
|
|
@@ -15393,20 +15395,20 @@ var UserOpStatus = ({
|
|
|
15393
15395
|
),
|
|
15394
15396
|
style: { textAlign: "left", listStyle: "none" },
|
|
15395
15397
|
children: [
|
|
15396
|
-
/* @__PURE__ */
|
|
15397
|
-
/* @__PURE__ */
|
|
15398
|
+
/* @__PURE__ */ jsxs68("div", { className: "flex items-center justify-between mb-3", children: [
|
|
15399
|
+
/* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2", children: [
|
|
15398
15400
|
stateBadge(),
|
|
15399
|
-
/* @__PURE__ */
|
|
15401
|
+
/* @__PURE__ */ jsx82("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
15400
15402
|
] }),
|
|
15401
|
-
/* @__PURE__ */
|
|
15402
|
-
/* @__PURE__ */
|
|
15403
|
-
/* @__PURE__ */
|
|
15403
|
+
/* @__PURE__ */ jsxs68(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
15404
|
+
/* @__PURE__ */ jsx82(RefreshCw4, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
15405
|
+
/* @__PURE__ */ jsx82("span", { className: "text-xs", children: "Refresh" })
|
|
15404
15406
|
] })
|
|
15405
15407
|
] }),
|
|
15406
|
-
/* @__PURE__ */
|
|
15407
|
-
/* @__PURE__ */
|
|
15408
|
-
/* @__PURE__ */
|
|
15409
|
-
/* @__PURE__ */
|
|
15408
|
+
/* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
15409
|
+
/* @__PURE__ */ jsx82("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
15410
|
+
/* @__PURE__ */ jsx82("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
15411
|
+
/* @__PURE__ */ jsx82(
|
|
15410
15412
|
Button,
|
|
15411
15413
|
{
|
|
15412
15414
|
variant: "ghost",
|
|
@@ -15418,14 +15420,14 @@ var UserOpStatus = ({
|
|
|
15418
15420
|
} catch {
|
|
15419
15421
|
}
|
|
15420
15422
|
},
|
|
15421
|
-
children: /* @__PURE__ */
|
|
15423
|
+
children: /* @__PURE__ */ jsx82(Copy6, { className: "h-3.5 w-3.5" })
|
|
15422
15424
|
}
|
|
15423
15425
|
)
|
|
15424
15426
|
] }),
|
|
15425
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */
|
|
15426
|
-
/* @__PURE__ */
|
|
15427
|
-
/* @__PURE__ */
|
|
15428
|
-
/* @__PURE__ */
|
|
15427
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
15428
|
+
/* @__PURE__ */ jsx82("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
15429
|
+
/* @__PURE__ */ jsx82("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
15430
|
+
/* @__PURE__ */ jsx82(
|
|
15429
15431
|
Button,
|
|
15430
15432
|
{
|
|
15431
15433
|
variant: "ghost",
|
|
@@ -15437,10 +15439,10 @@ var UserOpStatus = ({
|
|
|
15437
15439
|
} catch {
|
|
15438
15440
|
}
|
|
15439
15441
|
},
|
|
15440
|
-
children: /* @__PURE__ */
|
|
15442
|
+
children: /* @__PURE__ */ jsx82(Copy6, { className: "h-3.5 w-3.5" })
|
|
15441
15443
|
}
|
|
15442
15444
|
),
|
|
15443
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */
|
|
15445
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx82(
|
|
15444
15446
|
"a",
|
|
15445
15447
|
{
|
|
15446
15448
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -15448,11 +15450,11 @@ var UserOpStatus = ({
|
|
|
15448
15450
|
rel: "noreferrer noopener",
|
|
15449
15451
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
15450
15452
|
title: "Open in explorer",
|
|
15451
|
-
children: /* @__PURE__ */
|
|
15453
|
+
children: /* @__PURE__ */ jsx82(ExternalLink2, { className: "h-3.5 w-3.5" })
|
|
15452
15454
|
}
|
|
15453
15455
|
)
|
|
15454
15456
|
] }),
|
|
15455
|
-
receipt && /* @__PURE__ */
|
|
15457
|
+
receipt && /* @__PURE__ */ jsxs68("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
15456
15458
|
"Block ",
|
|
15457
15459
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
15458
15460
|
" \u2022 Gas Used",
|
|
@@ -15461,32 +15463,32 @@ var UserOpStatus = ({
|
|
|
15461
15463
|
" \u2022 Success ",
|
|
15462
15464
|
String(!!receipt.success)
|
|
15463
15465
|
] }),
|
|
15464
|
-
/* @__PURE__ */
|
|
15466
|
+
/* @__PURE__ */ jsx82("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs68("span", { className: "ml-2", children: [
|
|
15465
15467
|
"\u2022 Polling for ",
|
|
15466
15468
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
15467
15469
|
"s"
|
|
15468
15470
|
] }) }),
|
|
15469
|
-
mempool && /* @__PURE__ */
|
|
15470
|
-
/* @__PURE__ */
|
|
15471
|
+
mempool && /* @__PURE__ */ jsxs68("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
15472
|
+
/* @__PURE__ */ jsxs68("div", { children: [
|
|
15471
15473
|
"Seen by bundler at ",
|
|
15472
|
-
/* @__PURE__ */
|
|
15474
|
+
/* @__PURE__ */ jsx82(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
15473
15475
|
] }),
|
|
15474
|
-
/* @__PURE__ */
|
|
15476
|
+
/* @__PURE__ */ jsxs68("div", { children: [
|
|
15475
15477
|
"sender ",
|
|
15476
|
-
/* @__PURE__ */
|
|
15478
|
+
/* @__PURE__ */ jsx82(Address, { address: mempool.sender, chain, truncate: false })
|
|
15477
15479
|
] })
|
|
15478
15480
|
] }),
|
|
15479
|
-
error && /* @__PURE__ */
|
|
15480
|
-
/* @__PURE__ */
|
|
15481
|
+
error && /* @__PURE__ */ jsxs68("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15482
|
+
/* @__PURE__ */ jsx82(AlertCircle6, { className: "h-4 w-4" }),
|
|
15481
15483
|
" ",
|
|
15482
15484
|
error
|
|
15483
15485
|
] }),
|
|
15484
|
-
rejected && /* @__PURE__ */
|
|
15485
|
-
/* @__PURE__ */
|
|
15486
|
+
rejected && /* @__PURE__ */ jsxs68("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15487
|
+
/* @__PURE__ */ jsx82(AlertCircle6, { className: "h-4 w-4" }),
|
|
15486
15488
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
15487
15489
|
] }),
|
|
15488
|
-
timedOut && /* @__PURE__ */
|
|
15489
|
-
/* @__PURE__ */
|
|
15490
|
+
timedOut && /* @__PURE__ */ jsxs68("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15491
|
+
/* @__PURE__ */ jsx82(AlertCircle6, { className: "h-4 w-4" }),
|
|
15490
15492
|
"Stopped polling after ",
|
|
15491
15493
|
Math.round(maxPollTimeMs / 1e3),
|
|
15492
15494
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -15497,9 +15499,9 @@ var UserOpStatus = ({
|
|
|
15497
15499
|
};
|
|
15498
15500
|
|
|
15499
15501
|
// src/internal/components/Hash.tsx
|
|
15500
|
-
import { Copy as
|
|
15502
|
+
import { Copy as Copy7, ExternalLink as ExternalLink3 } from "lucide-react";
|
|
15501
15503
|
import * as React11 from "react";
|
|
15502
|
-
import { jsx as
|
|
15504
|
+
import { jsx as jsx83, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
15503
15505
|
function toExplorerUrl(kind, value, chain) {
|
|
15504
15506
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
15505
15507
|
if (!base2) return null;
|
|
@@ -15523,11 +15525,11 @@ var Hash = ({
|
|
|
15523
15525
|
const value = hash || "";
|
|
15524
15526
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
15525
15527
|
const [copied, setCopied] = React11.useState(false);
|
|
15526
|
-
if (!value) return /* @__PURE__ */
|
|
15527
|
-
return /* @__PURE__ */
|
|
15528
|
-
label && /* @__PURE__ */
|
|
15529
|
-
/* @__PURE__ */
|
|
15530
|
-
showCopy && /* @__PURE__ */
|
|
15528
|
+
if (!value) return /* @__PURE__ */ jsx83("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15529
|
+
return /* @__PURE__ */ jsxs69("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
15530
|
+
label && /* @__PURE__ */ jsx83("span", { className: "text-sm font-medium", children: label }),
|
|
15531
|
+
/* @__PURE__ */ jsx83("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
15532
|
+
showCopy && /* @__PURE__ */ jsx83(
|
|
15531
15533
|
Button,
|
|
15532
15534
|
{
|
|
15533
15535
|
variant: "ghost",
|
|
@@ -15541,10 +15543,10 @@ var Hash = ({
|
|
|
15541
15543
|
} catch {
|
|
15542
15544
|
}
|
|
15543
15545
|
},
|
|
15544
|
-
children: /* @__PURE__ */
|
|
15546
|
+
children: /* @__PURE__ */ jsx83(Copy7, { className: "h-4 w-4" })
|
|
15545
15547
|
}
|
|
15546
15548
|
),
|
|
15547
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
15549
|
+
showExplorer && explorer && /* @__PURE__ */ jsx83(
|
|
15548
15550
|
"a",
|
|
15549
15551
|
{
|
|
15550
15552
|
href: explorer,
|
|
@@ -15552,7 +15554,7 @@ var Hash = ({
|
|
|
15552
15554
|
rel: "noreferrer noopener",
|
|
15553
15555
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
15554
15556
|
title: "Open in explorer",
|
|
15555
|
-
children: /* @__PURE__ */
|
|
15557
|
+
children: /* @__PURE__ */ jsx83(ExternalLink3, { className: "h-4 w-4" })
|
|
15556
15558
|
}
|
|
15557
15559
|
)
|
|
15558
15560
|
] });
|
|
@@ -15560,13 +15562,13 @@ var Hash = ({
|
|
|
15560
15562
|
|
|
15561
15563
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
15562
15564
|
init_base();
|
|
15563
|
-
import { useEffect as
|
|
15564
|
-
import { jsx as
|
|
15565
|
+
import { useEffect as useEffect40, useState as useState26 } from "react";
|
|
15566
|
+
import { jsx as jsx84, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
15565
15567
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
15566
|
-
const [transactions, setTransactions] =
|
|
15567
|
-
const [loading, setLoading] =
|
|
15568
|
-
const [error, setError] =
|
|
15569
|
-
|
|
15568
|
+
const [transactions, setTransactions] = useState26([]);
|
|
15569
|
+
const [loading, setLoading] = useState26(true);
|
|
15570
|
+
const [error, setError] = useState26(null);
|
|
15571
|
+
useEffect40(() => {
|
|
15570
15572
|
const fetchTransactions = async () => {
|
|
15571
15573
|
try {
|
|
15572
15574
|
setLoading(true);
|
|
@@ -15612,31 +15614,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15612
15614
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
15613
15615
|
};
|
|
15614
15616
|
if (loading) {
|
|
15615
|
-
return /* @__PURE__ */
|
|
15616
|
-
/* @__PURE__ */
|
|
15617
|
-
/* @__PURE__ */
|
|
15617
|
+
return /* @__PURE__ */ jsxs70("div", { className: "p-4 text-center", children: [
|
|
15618
|
+
/* @__PURE__ */ jsx84("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
15619
|
+
/* @__PURE__ */ jsx84("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
15618
15620
|
] });
|
|
15619
15621
|
}
|
|
15620
15622
|
if (error) {
|
|
15621
|
-
return /* @__PURE__ */
|
|
15622
|
-
/* @__PURE__ */
|
|
15623
|
-
/* @__PURE__ */
|
|
15623
|
+
return /* @__PURE__ */ jsxs70("div", { className: "p-4 text-center", children: [
|
|
15624
|
+
/* @__PURE__ */ jsx84("p", { className: "text-red-600 text-sm", children: error }),
|
|
15625
|
+
/* @__PURE__ */ jsx84("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
15624
15626
|
] });
|
|
15625
15627
|
}
|
|
15626
15628
|
if (transactions.length === 0) {
|
|
15627
|
-
return /* @__PURE__ */
|
|
15629
|
+
return /* @__PURE__ */ jsx84("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx84("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
15628
15630
|
}
|
|
15629
|
-
return /* @__PURE__ */
|
|
15631
|
+
return /* @__PURE__ */ jsx84("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx84("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs70(
|
|
15630
15632
|
"div",
|
|
15631
15633
|
{
|
|
15632
15634
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
15633
15635
|
onClick: () => openTransaction(tx.hash),
|
|
15634
15636
|
children: [
|
|
15635
|
-
/* @__PURE__ */
|
|
15636
|
-
/* @__PURE__ */
|
|
15637
|
-
/* @__PURE__ */
|
|
15638
|
-
/* @__PURE__ */
|
|
15639
|
-
/* @__PURE__ */
|
|
15637
|
+
/* @__PURE__ */ jsxs70("div", { className: "flex justify-between items-start mb-2", children: [
|
|
15638
|
+
/* @__PURE__ */ jsxs70("div", { className: "flex-1", children: [
|
|
15639
|
+
/* @__PURE__ */ jsxs70("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
15640
|
+
/* @__PURE__ */ jsx84("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
15641
|
+
/* @__PURE__ */ jsx84(
|
|
15640
15642
|
"span",
|
|
15641
15643
|
{
|
|
15642
15644
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -15644,40 +15646,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15644
15646
|
}
|
|
15645
15647
|
)
|
|
15646
15648
|
] }),
|
|
15647
|
-
/* @__PURE__ */
|
|
15648
|
-
/* @__PURE__ */
|
|
15649
|
-
/* @__PURE__ */
|
|
15650
|
-
/* @__PURE__ */
|
|
15649
|
+
/* @__PURE__ */ jsxs70("div", { className: "text-sm space-y-1", children: [
|
|
15650
|
+
/* @__PURE__ */ jsxs70("div", { children: [
|
|
15651
|
+
/* @__PURE__ */ jsx84("span", { className: "text-gray-600", children: "From:" }),
|
|
15652
|
+
/* @__PURE__ */ jsxs70("span", { className: "font-mono ml-1", children: [
|
|
15651
15653
|
formatAddress3(tx.from.hash),
|
|
15652
|
-
tx.from.is_contract && /* @__PURE__ */
|
|
15654
|
+
tx.from.is_contract && /* @__PURE__ */ jsx84("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15653
15655
|
] })
|
|
15654
15656
|
] }),
|
|
15655
|
-
/* @__PURE__ */
|
|
15656
|
-
/* @__PURE__ */
|
|
15657
|
-
/* @__PURE__ */
|
|
15657
|
+
/* @__PURE__ */ jsxs70("div", { children: [
|
|
15658
|
+
/* @__PURE__ */ jsx84("span", { className: "text-gray-600", children: "To:" }),
|
|
15659
|
+
/* @__PURE__ */ jsxs70("span", { className: "font-mono ml-1", children: [
|
|
15658
15660
|
formatAddress3(tx.to.hash),
|
|
15659
|
-
tx.to.is_contract && /* @__PURE__ */
|
|
15661
|
+
tx.to.is_contract && /* @__PURE__ */ jsx84("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15660
15662
|
] })
|
|
15661
15663
|
] }),
|
|
15662
|
-
/* @__PURE__ */
|
|
15663
|
-
/* @__PURE__ */
|
|
15664
|
-
/* @__PURE__ */
|
|
15664
|
+
/* @__PURE__ */ jsxs70("div", { children: [
|
|
15665
|
+
/* @__PURE__ */ jsx84("span", { className: "text-gray-600", children: "Value:" }),
|
|
15666
|
+
/* @__PURE__ */ jsxs70("span", { className: "font-semibold ml-1", children: [
|
|
15665
15667
|
formatValue3(tx.value),
|
|
15666
15668
|
" LUMIA"
|
|
15667
15669
|
] })
|
|
15668
15670
|
] })
|
|
15669
15671
|
] })
|
|
15670
15672
|
] }),
|
|
15671
|
-
/* @__PURE__ */
|
|
15672
|
-
/* @__PURE__ */
|
|
15673
|
-
/* @__PURE__ */
|
|
15673
|
+
/* @__PURE__ */ jsxs70("div", { className: "text-right text-xs text-gray-500", children: [
|
|
15674
|
+
/* @__PURE__ */ jsx84("div", { children: formatDate3(tx.timestamp) }),
|
|
15675
|
+
/* @__PURE__ */ jsxs70("div", { className: "mt-1", children: [
|
|
15674
15676
|
"Gas: ",
|
|
15675
15677
|
parseInt(tx.gas_used).toLocaleString()
|
|
15676
15678
|
] }),
|
|
15677
|
-
tx.method && /* @__PURE__ */
|
|
15679
|
+
tx.method && /* @__PURE__ */ jsx84("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
15678
15680
|
] })
|
|
15679
15681
|
] }),
|
|
15680
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */
|
|
15682
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ jsx84("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx84("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
15681
15683
|
]
|
|
15682
15684
|
},
|
|
15683
15685
|
tx.hash
|
|
@@ -15868,11 +15870,11 @@ function useUserOpStatus(options = {}) {
|
|
|
15868
15870
|
|
|
15869
15871
|
// src/hooks/useLogout.ts
|
|
15870
15872
|
import { logout as coreLogout, jwtTokenManager as jwtTokenManager3 } from "@lumiapassport/core/auth";
|
|
15871
|
-
import { useCallback as
|
|
15873
|
+
import { useCallback as useCallback27 } from "react";
|
|
15872
15874
|
function useLogout() {
|
|
15873
15875
|
const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
|
|
15874
15876
|
const { callbacks } = useLumiaPassportConfig();
|
|
15875
|
-
const logout2 =
|
|
15877
|
+
const logout2 = useCallback27(async () => {
|
|
15876
15878
|
const prevAddress = address;
|
|
15877
15879
|
let userId = null;
|
|
15878
15880
|
setIsLoading(true);
|