@lumiapassport/ui-kit 1.15.13 → 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 +823 -826
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +890 -893
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -4542,7 +4542,7 @@ __export(index_exports, {
|
|
|
4542
4542
|
module.exports = __toCommonJS(index_exports);
|
|
4543
4543
|
|
|
4544
4544
|
// src/styles/built.css
|
|
4545
|
-
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}';
|
|
4545
|
+
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}';
|
|
4546
4546
|
|
|
4547
4547
|
// src/context/LumiaPassportContext.tsx
|
|
4548
4548
|
var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
|
|
@@ -5570,7 +5570,7 @@ function Header() {
|
|
|
5570
5570
|
// package.json
|
|
5571
5571
|
var package_default = {
|
|
5572
5572
|
name: "@lumiapassport/ui-kit",
|
|
5573
|
-
version: "1.
|
|
5573
|
+
version: "1.16.0",
|
|
5574
5574
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
5575
5575
|
type: "module",
|
|
5576
5576
|
main: "./dist/index.cjs",
|
|
@@ -10815,144 +10815,28 @@ function UnlinkProviderMenu() {
|
|
|
10815
10815
|
] });
|
|
10816
10816
|
}
|
|
10817
10817
|
|
|
10818
|
-
// src/internal/components/
|
|
10819
|
-
var import_lucide_react36 = require("lucide-react");
|
|
10820
|
-
|
|
10821
|
-
// src/internal/hooks/useNicknameInfo.ts
|
|
10822
|
-
var import_react_query27 = require("@tanstack/react-query");
|
|
10823
|
-
init_nickname();
|
|
10824
|
-
init_profile();
|
|
10825
|
-
function useNicknameInfo(enabled = true) {
|
|
10826
|
-
const query = (0, import_react_query27.useQuery)({
|
|
10827
|
-
queryKey: [QUERY_KEYS.nicknameInfo],
|
|
10828
|
-
queryFn: getNicknameInfo,
|
|
10829
|
-
enabled,
|
|
10830
|
-
staleTime: 1e3 * 60 * 5,
|
|
10831
|
-
// 5 minutes
|
|
10832
|
-
retry: 1
|
|
10833
|
-
});
|
|
10834
|
-
return {
|
|
10835
|
-
data: query.data,
|
|
10836
|
-
isLoading: query.isLoading,
|
|
10837
|
-
isError: query.isError,
|
|
10838
|
-
error: query.error,
|
|
10839
|
-
refetch: query.refetch
|
|
10840
|
-
};
|
|
10841
|
-
}
|
|
10842
|
-
|
|
10843
|
-
// src/internal/components/NicknameSettings/NicknameEditForm.tsx
|
|
10844
|
-
var import_lucide_react35 = require("lucide-react");
|
|
10845
|
-
var import_react41 = require("react");
|
|
10846
|
-
|
|
10847
|
-
// src/internal/hooks/useChangeNickname.ts
|
|
10848
|
-
var import_react_query28 = require("@tanstack/react-query");
|
|
10849
|
-
init_nickname();
|
|
10850
|
-
init_profile();
|
|
10851
|
-
function useChangeNickname(options) {
|
|
10852
|
-
const queryClient3 = (0, import_react_query28.useQueryClient)();
|
|
10853
|
-
const mutation = (0, import_react_query28.useMutation)({
|
|
10854
|
-
mutationFn: (handle) => changeNickname(handle),
|
|
10855
|
-
onSuccess: (result) => {
|
|
10856
|
-
queryClient3.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
|
|
10857
|
-
queryClient3.invalidateQueries({ queryKey: [QUERY_KEYS.userProfile] });
|
|
10858
|
-
options?.onSuccess?.(result);
|
|
10859
|
-
},
|
|
10860
|
-
onError: (error) => {
|
|
10861
|
-
const nicknameError = {
|
|
10862
|
-
error: error.error || error.message,
|
|
10863
|
-
code: error.code || "UNKNOWN_ERROR",
|
|
10864
|
-
daysRemaining: error.daysRemaining,
|
|
10865
|
-
canChangeAt: error.canChangeAt
|
|
10866
|
-
};
|
|
10867
|
-
options?.onError?.(nicknameError);
|
|
10868
|
-
}
|
|
10869
|
-
});
|
|
10870
|
-
return {
|
|
10871
|
-
mutate: mutation.mutate,
|
|
10872
|
-
mutateAsync: mutation.mutateAsync,
|
|
10873
|
-
isLoading: mutation.isPending,
|
|
10874
|
-
isError: mutation.isError,
|
|
10875
|
-
isSuccess: mutation.isSuccess,
|
|
10876
|
-
error: mutation.error ? {
|
|
10877
|
-
error: mutation.error.error || mutation.error.message,
|
|
10878
|
-
code: mutation.error.code || "UNKNOWN_ERROR",
|
|
10879
|
-
daysRemaining: mutation.error.daysRemaining,
|
|
10880
|
-
canChangeAt: mutation.error.canChangeAt
|
|
10881
|
-
} : null,
|
|
10882
|
-
data: mutation.data,
|
|
10883
|
-
reset: mutation.reset
|
|
10884
|
-
};
|
|
10885
|
-
}
|
|
10886
|
-
|
|
10887
|
-
// src/internal/hooks/useNicknameAvailability.ts
|
|
10818
|
+
// src/internal/components/NicknameMenu/NicknameMenu.tsx
|
|
10888
10819
|
var import_react_query29 = require("@tanstack/react-query");
|
|
10889
|
-
var
|
|
10820
|
+
var import_dayjs2 = __toESM(require("dayjs"), 1);
|
|
10821
|
+
var import_lucide_react36 = require("lucide-react");
|
|
10822
|
+
var import_react42 = require("react");
|
|
10890
10823
|
init_nickname();
|
|
10891
10824
|
init_profile();
|
|
10892
10825
|
|
|
10893
|
-
// src/internal/lib/nickname-
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
if (
|
|
10900
|
-
|
|
10901
|
-
|
|
10902
|
-
|
|
10903
|
-
return { valid: false, error: "TOO_LONG" };
|
|
10904
|
-
}
|
|
10905
|
-
if (!NICKNAME_PATTERN.test(normalized)) {
|
|
10906
|
-
return { valid: false, error: "INVALID_CHARS" };
|
|
10907
|
-
}
|
|
10908
|
-
if (normalized.startsWith("_") || normalized.endsWith("_") || normalized.includes("__")) {
|
|
10909
|
-
return { valid: false, error: "INVALID_UNDERSCORE" };
|
|
10910
|
-
}
|
|
10911
|
-
return { valid: true };
|
|
10912
|
-
}
|
|
10913
|
-
function normalizeNickname(handle) {
|
|
10914
|
-
return handle.replace(/^@/, "").toLowerCase().trim();
|
|
10826
|
+
// src/internal/lib/nickname-cooldown.ts
|
|
10827
|
+
function getDaysRemaining(cooldownEndsAt) {
|
|
10828
|
+
if (!cooldownEndsAt) return 0;
|
|
10829
|
+
const endDate = new Date(cooldownEndsAt);
|
|
10830
|
+
const now = /* @__PURE__ */ new Date();
|
|
10831
|
+
if (isNaN(endDate.getTime())) return 0;
|
|
10832
|
+
if (endDate <= now) return 0;
|
|
10833
|
+
const diffMs = endDate.getTime() - now.getTime();
|
|
10834
|
+
const diffDays = Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
|
|
10835
|
+
return Math.max(0, diffDays);
|
|
10915
10836
|
}
|
|
10916
10837
|
|
|
10917
|
-
// src/internal/
|
|
10918
|
-
var
|
|
10919
|
-
function useNicknameAvailability(handle, enabled = true) {
|
|
10920
|
-
const [debouncedHandle, setDebouncedHandle] = (0, import_react40.useState)("");
|
|
10921
|
-
const [isDebouncing, setIsDebouncing] = (0, import_react40.useState)(false);
|
|
10922
|
-
const normalized = normalizeNickname(handle);
|
|
10923
|
-
const validation = validateNickname(handle);
|
|
10924
|
-
const isValidForCheck = validation.valid && normalized.length > 0;
|
|
10925
|
-
(0, import_react40.useEffect)(() => {
|
|
10926
|
-
if (!isValidForCheck || !enabled) {
|
|
10927
|
-
setDebouncedHandle("");
|
|
10928
|
-
setIsDebouncing(false);
|
|
10929
|
-
return;
|
|
10930
|
-
}
|
|
10931
|
-
setIsDebouncing(true);
|
|
10932
|
-
const timer = setTimeout(() => {
|
|
10933
|
-
setDebouncedHandle(normalized);
|
|
10934
|
-
setIsDebouncing(false);
|
|
10935
|
-
}, DEBOUNCE_MS);
|
|
10936
|
-
return () => {
|
|
10937
|
-
clearTimeout(timer);
|
|
10938
|
-
};
|
|
10939
|
-
}, [normalized, isValidForCheck, enabled]);
|
|
10940
|
-
const query = (0, import_react_query29.useQuery)({
|
|
10941
|
-
queryKey: QUERY_KEYS.nicknameAvailability(debouncedHandle),
|
|
10942
|
-
queryFn: () => checkNicknameAvailability(debouncedHandle),
|
|
10943
|
-
enabled: enabled && isValidForCheck && debouncedHandle.length > 0,
|
|
10944
|
-
staleTime: 1e3 * 30,
|
|
10945
|
-
// 30 seconds
|
|
10946
|
-
retry: 1
|
|
10947
|
-
});
|
|
10948
|
-
return {
|
|
10949
|
-
data: query.data,
|
|
10950
|
-
isLoading: query.isLoading,
|
|
10951
|
-
isChecking: isDebouncing || query.isFetching,
|
|
10952
|
-
isError: query.isError,
|
|
10953
|
-
error: query.error
|
|
10954
|
-
};
|
|
10955
|
-
}
|
|
10838
|
+
// src/internal/components/NicknameMenu/NicknameAvailabilityIndicator.tsx
|
|
10839
|
+
var import_lucide_react34 = require("lucide-react");
|
|
10956
10840
|
|
|
10957
10841
|
// src/internal/lib/nickname-errors.ts
|
|
10958
10842
|
var NICKNAME_ERROR_MESSAGES = {
|
|
@@ -10978,8 +10862,7 @@ function getNicknameErrorMessage(code, params) {
|
|
|
10978
10862
|
return message;
|
|
10979
10863
|
}
|
|
10980
10864
|
|
|
10981
|
-
// src/internal/components/
|
|
10982
|
-
var import_lucide_react34 = require("lucide-react");
|
|
10865
|
+
// src/internal/components/NicknameMenu/NicknameAvailabilityIndicator.tsx
|
|
10983
10866
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
10984
10867
|
function NicknameAvailabilityIndicator({
|
|
10985
10868
|
isChecking,
|
|
@@ -10990,8 +10873,8 @@ function NicknameAvailabilityIndicator({
|
|
|
10990
10873
|
return null;
|
|
10991
10874
|
}
|
|
10992
10875
|
if (isChecking) {
|
|
10993
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
10994
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.Loader, { className: "w-
|
|
10876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Highlight, { className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10877
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
10995
10878
|
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Checking availability..." })
|
|
10996
10879
|
] });
|
|
10997
10880
|
}
|
|
@@ -10999,197 +10882,302 @@ function NicknameAvailabilityIndicator({
|
|
|
10999
10882
|
return null;
|
|
11000
10883
|
}
|
|
11001
10884
|
if (availability.available) {
|
|
11002
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("
|
|
11003
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.Check, { className: "w-
|
|
10885
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10886
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.Check, { className: "w-4 h-4" }),
|
|
11004
10887
|
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Nickname is available" })
|
|
11005
10888
|
] });
|
|
11006
10889
|
}
|
|
11007
10890
|
const reason = availability.reason ? getNicknameErrorMessage(availability.reason) : "This nickname is not available";
|
|
11008
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("
|
|
11009
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.X, { className: "w-
|
|
10891
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
10892
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.X, { className: "w-4 h-4" }),
|
|
11010
10893
|
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: reason })
|
|
11011
10894
|
] });
|
|
11012
10895
|
}
|
|
11013
10896
|
|
|
11014
|
-
// src/internal/components/
|
|
10897
|
+
// src/internal/components/NicknameMenu/NicknameEditForm.tsx
|
|
10898
|
+
var import_react_query27 = require("@tanstack/react-query");
|
|
10899
|
+
var import_lucide_react35 = require("lucide-react");
|
|
10900
|
+
var import_react40 = require("react");
|
|
10901
|
+
init_nickname();
|
|
10902
|
+
init_profile();
|
|
10903
|
+
|
|
10904
|
+
// src/internal/lib/nickname-validation.ts
|
|
10905
|
+
var NICKNAME_MIN_LENGTH = 3;
|
|
10906
|
+
var NICKNAME_MAX_LENGTH = 20;
|
|
10907
|
+
var NICKNAME_PATTERN = /^[a-z0-9_]+$/;
|
|
10908
|
+
function validateNickname(handle) {
|
|
10909
|
+
const normalized = handle.replace(/^@/, "").toLowerCase().trim();
|
|
10910
|
+
if (normalized.length < NICKNAME_MIN_LENGTH) {
|
|
10911
|
+
return { valid: false, error: "TOO_SHORT" };
|
|
10912
|
+
}
|
|
10913
|
+
if (normalized.length > NICKNAME_MAX_LENGTH) {
|
|
10914
|
+
return { valid: false, error: "TOO_LONG" };
|
|
10915
|
+
}
|
|
10916
|
+
if (!NICKNAME_PATTERN.test(normalized)) {
|
|
10917
|
+
return { valid: false, error: "INVALID_CHARS" };
|
|
10918
|
+
}
|
|
10919
|
+
if (normalized.startsWith("_") || normalized.endsWith("_") || normalized.includes("__")) {
|
|
10920
|
+
return { valid: false, error: "INVALID_UNDERSCORE" };
|
|
10921
|
+
}
|
|
10922
|
+
return { valid: true };
|
|
10923
|
+
}
|
|
10924
|
+
function normalizeNickname(handle) {
|
|
10925
|
+
return handle.replace(/^@/, "").toLowerCase().trim();
|
|
10926
|
+
}
|
|
10927
|
+
|
|
10928
|
+
// src/internal/components/NicknameMenu/NicknameEditForm.tsx
|
|
11015
10929
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
11016
|
-
function NicknameEditForm(
|
|
11017
|
-
const
|
|
11018
|
-
|
|
11019
|
-
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
11024
|
-
|
|
10930
|
+
function NicknameEditForm(props) {
|
|
10931
|
+
const {
|
|
10932
|
+
inputValue,
|
|
10933
|
+
setInputValue,
|
|
10934
|
+
isUnavailable,
|
|
10935
|
+
isSameAsCurrentNickname,
|
|
10936
|
+
isAvailabilityChecking,
|
|
10937
|
+
//
|
|
10938
|
+
clientError,
|
|
10939
|
+
setClientError,
|
|
10940
|
+
info
|
|
10941
|
+
} = props;
|
|
10942
|
+
const { handle: currentNickname, canChange } = info || { handle: "", canChange: false };
|
|
10943
|
+
const qc = (0, import_react_query27.useQueryClient)();
|
|
10944
|
+
const [isNicknameCopied, setIsNicknameCopied] = (0, import_react40.useState)(false);
|
|
10945
|
+
const {
|
|
10946
|
+
mutate: changeNickname2,
|
|
10947
|
+
isError: isNicknameChangeError,
|
|
10948
|
+
isPending: isNicknameChanging,
|
|
10949
|
+
isSuccess: isNicknameChangeSuccess,
|
|
10950
|
+
// error: nicknameChangeError,
|
|
10951
|
+
reset
|
|
10952
|
+
} = (0, import_react_query27.useMutation)({
|
|
10953
|
+
mutationFn: (handle) => changeNickname(handle),
|
|
11025
10954
|
onSuccess: () => {
|
|
11026
|
-
|
|
11027
|
-
|
|
11028
|
-
|
|
10955
|
+
qc.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
|
|
10956
|
+
qc.invalidateQueries({ queryKey: [QUERY_KEYS.userProfile] });
|
|
10957
|
+
},
|
|
10958
|
+
onError: (error) => {
|
|
10959
|
+
console.error("Nickname change error:", error);
|
|
10960
|
+
const changeNicknameError = error;
|
|
10961
|
+
setClientError(
|
|
10962
|
+
changeNicknameError ? getNicknameErrorMessage(changeNicknameError.code, {
|
|
10963
|
+
days: changeNicknameError.daysRemaining,
|
|
10964
|
+
canChangeAt: changeNicknameError.canChangeAt
|
|
10965
|
+
}) : null
|
|
10966
|
+
);
|
|
11029
10967
|
}
|
|
11030
10968
|
});
|
|
11031
|
-
const handleInputChange = (0,
|
|
10969
|
+
const handleInputChange = (0, import_react40.useCallback)(
|
|
11032
10970
|
(e) => {
|
|
11033
10971
|
const value = e.target.value;
|
|
11034
10972
|
setInputValue(value);
|
|
11035
10973
|
if (clientError) setClientError(null);
|
|
11036
|
-
if (
|
|
11037
|
-
if (value
|
|
11038
|
-
|
|
11039
|
-
|
|
11040
|
-
|
|
11041
|
-
}
|
|
10974
|
+
if (isNicknameChangeError || isNicknameChangeSuccess) reset();
|
|
10975
|
+
if (value?.length < 1) return;
|
|
10976
|
+
const validation = validateNickname(value);
|
|
10977
|
+
if (!validation.valid && validation.error) {
|
|
10978
|
+
setClientError(getNicknameErrorMessage(validation.error));
|
|
11042
10979
|
}
|
|
11043
10980
|
},
|
|
11044
|
-
[clientError,
|
|
10981
|
+
[clientError, isNicknameChangeError, isNicknameChangeSuccess, reset]
|
|
11045
10982
|
);
|
|
11046
|
-
const handleSubmit = (0,
|
|
10983
|
+
const handleSubmit = (0, import_react40.useCallback)(
|
|
11047
10984
|
(e) => {
|
|
10985
|
+
if (!canChange) return;
|
|
11048
10986
|
e.preventDefault();
|
|
11049
|
-
const
|
|
11050
|
-
if (
|
|
10987
|
+
const normalized = normalizeNickname(inputValue);
|
|
10988
|
+
if (normalized === currentNickname.toLowerCase()) {
|
|
11051
10989
|
setClientError("This is already your nickname");
|
|
11052
10990
|
return;
|
|
11053
10991
|
}
|
|
11054
|
-
const
|
|
11055
|
-
if (!
|
|
11056
|
-
setClientError(getNicknameErrorMessage(
|
|
10992
|
+
const validation = validateNickname(inputValue);
|
|
10993
|
+
if (!validation.valid && validation.error) {
|
|
10994
|
+
setClientError(getNicknameErrorMessage(validation.error));
|
|
11057
10995
|
return;
|
|
11058
10996
|
}
|
|
11059
|
-
|
|
10997
|
+
changeNickname2(normalized);
|
|
11060
10998
|
},
|
|
11061
|
-
[inputValue,
|
|
10999
|
+
[inputValue, currentNickname, canChange, changeNickname2]
|
|
11062
11000
|
);
|
|
11063
|
-
const
|
|
11064
|
-
|
|
11065
|
-
|
|
11066
|
-
}) : null);
|
|
11067
|
-
const isUnavailable = shouldCheckAvailability && availability && !availability.available;
|
|
11068
|
-
const isSubmitDisabled = !canChange || isLoading || isChecking || inputValue.length === 0 || !!clientError || isSameAsCurrentHandle || isUnavailable;
|
|
11069
|
-
if (!canChange) {
|
|
11070
|
-
return null;
|
|
11071
|
-
}
|
|
11072
|
-
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-3", children: [
|
|
11073
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
11074
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "New nickname" }),
|
|
11001
|
+
const isSubmitDisabled = !canChange || isNicknameChanging || isAvailabilityChecking || inputValue.length === 0 || !!clientError || isSameAsCurrentNickname || isUnavailable;
|
|
11002
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
|
|
11003
|
+
canChange ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("form", { onSubmit: handleSubmit, className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11075
11004
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11076
11005
|
Input,
|
|
11077
11006
|
{
|
|
11007
|
+
Icon: import_lucide_react35.AtSign,
|
|
11078
11008
|
value: inputValue,
|
|
11079
11009
|
onChange: handleInputChange,
|
|
11080
11010
|
placeholder: "Enter new nickname",
|
|
11081
|
-
disabled:
|
|
11082
|
-
|
|
11011
|
+
disabled: isNicknameChanging,
|
|
11012
|
+
className: "flex-1"
|
|
11083
11013
|
}
|
|
11084
11014
|
),
|
|
11085
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("
|
|
11086
|
-
|
|
11015
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { type: "submit", size: "large", disabled: isSubmitDisabled, className: "w-12", children: isNicknameChanging ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.Loader, { className: "w-4 h-4 animate-spin" }) : isNicknameChangeSuccess ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.Check, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.ChevronRight, { className: "w-4 h-4" }) })
|
|
11016
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("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: [
|
|
11017
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
11018
|
+
"span",
|
|
11019
|
+
{
|
|
11020
|
+
className: cn("text-lg font-semibold leading-5 transition-colors duration-200", {
|
|
11021
|
+
"text-[var(--l-pass-fg-muted)]": !currentNickname.length
|
|
11022
|
+
}),
|
|
11023
|
+
children: [
|
|
11024
|
+
!!currentNickname.length && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "@" }),
|
|
11025
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: currentNickname || "your nickname" })
|
|
11026
|
+
]
|
|
11027
|
+
}
|
|
11028
|
+
),
|
|
11029
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11030
|
+
Button,
|
|
11031
|
+
{
|
|
11032
|
+
variant: "ghost",
|
|
11033
|
+
size: "icon",
|
|
11034
|
+
onClick: () => {
|
|
11035
|
+
if (!!isNicknameCopied) return;
|
|
11036
|
+
navigator.clipboard.writeText(currentNickname);
|
|
11037
|
+
setIsNicknameCopied(true);
|
|
11038
|
+
setTimeout(() => setIsNicknameCopied(false), 2e3);
|
|
11039
|
+
},
|
|
11040
|
+
children: isNicknameCopied ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(PositiveIcon, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.Copy, { className: "w-4 h-4" })
|
|
11041
|
+
}
|
|
11042
|
+
)
|
|
11087
11043
|
] }),
|
|
11088
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
11089
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.Loader, { className: "w-4 h-4 mr-2 animate-spin" }),
|
|
11090
|
-
"Changing..."
|
|
11091
|
-
] }) : isSuccess ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
|
|
11092
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react35.Check, { className: "w-4 h-4 mr-2" }),
|
|
11093
|
-
"Nickname changed!"
|
|
11094
|
-
] }) : "Change Nickname" })
|
|
11044
|
+
!!canChange && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "w-full flex items-center leadding-4 text-[10px]", children: "3-20 characters, letters, numbers, and underscores only" })
|
|
11095
11045
|
] });
|
|
11096
11046
|
}
|
|
11097
11047
|
|
|
11098
|
-
// src/internal/components/
|
|
11099
|
-
var
|
|
11100
|
-
|
|
11101
|
-
|
|
11102
|
-
|
|
11103
|
-
|
|
11104
|
-
|
|
11105
|
-
const
|
|
11106
|
-
|
|
11107
|
-
|
|
11108
|
-
const
|
|
11109
|
-
|
|
11110
|
-
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
const
|
|
11115
|
-
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
|
|
11119
|
-
|
|
11048
|
+
// src/internal/components/NicknameMenu/useNickname.ts
|
|
11049
|
+
var import_react_query28 = require("@tanstack/react-query");
|
|
11050
|
+
var import_react41 = require("react");
|
|
11051
|
+
init_nickname();
|
|
11052
|
+
init_profile();
|
|
11053
|
+
var DEBOUNCE_MS = 700;
|
|
11054
|
+
function useNicknameForm(currentNickname) {
|
|
11055
|
+
const [inputValue, setInputValue] = (0, import_react41.useState)("");
|
|
11056
|
+
const normalizedInputValue = normalizeNickname(inputValue);
|
|
11057
|
+
const validation = validateNickname(inputValue);
|
|
11058
|
+
const isValidForCheck = validation.valid && normalizedInputValue.length > 0;
|
|
11059
|
+
(0, import_react41.useEffect)(() => {
|
|
11060
|
+
console.log("[NICKNAME] form setup", currentNickname);
|
|
11061
|
+
setInputValue(currentNickname);
|
|
11062
|
+
}, [currentNickname]);
|
|
11063
|
+
const [queryInputValue, setQueryInputValue] = (0, import_react41.useState)("");
|
|
11064
|
+
const isSameAsCurrentNickname = normalizedInputValue === currentNickname.toLowerCase();
|
|
11065
|
+
const shouldCheckAvailability = validation.valid && !isSameAsCurrentNickname && inputValue.length > 0;
|
|
11066
|
+
(0, import_react41.useEffect)(() => {
|
|
11067
|
+
if (!isValidForCheck || !shouldCheckAvailability) {
|
|
11068
|
+
setQueryInputValue("");
|
|
11069
|
+
return;
|
|
11070
|
+
}
|
|
11071
|
+
const timer = setTimeout(() => {
|
|
11072
|
+
setQueryInputValue(normalizedInputValue);
|
|
11073
|
+
}, DEBOUNCE_MS);
|
|
11074
|
+
return () => {
|
|
11075
|
+
clearTimeout(timer);
|
|
11076
|
+
};
|
|
11077
|
+
}, [normalizedInputValue, isValidForCheck, shouldCheckAvailability]);
|
|
11078
|
+
const query = (0, import_react_query28.useQuery)({
|
|
11079
|
+
retry: 1,
|
|
11080
|
+
enabled: shouldCheckAvailability && isValidForCheck && queryInputValue.length > 0,
|
|
11081
|
+
queryKey: QUERY_KEYS.nicknameAvailability(queryInputValue),
|
|
11082
|
+
queryFn: () => checkNicknameAvailability(queryInputValue),
|
|
11083
|
+
staleTime: 1e3 * 30
|
|
11084
|
+
// 30 seconds stale to not check same InputValue repeatedly
|
|
11120
11085
|
});
|
|
11086
|
+
return {
|
|
11087
|
+
inputValue,
|
|
11088
|
+
setInputValue,
|
|
11089
|
+
isSameAsCurrentNickname,
|
|
11090
|
+
isUnavailable: shouldCheckAvailability && !query?.data?.available,
|
|
11091
|
+
shouldCheckAvailability,
|
|
11092
|
+
availabilityQuery: query
|
|
11093
|
+
};
|
|
11121
11094
|
}
|
|
11122
11095
|
|
|
11123
|
-
// src/internal/components/
|
|
11096
|
+
// src/internal/components/NicknameMenu/NicknameMenu.tsx
|
|
11124
11097
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
11125
|
-
function
|
|
11126
|
-
const
|
|
11127
|
-
const
|
|
11128
|
-
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_react42.Fragment, { children: [
|
|
11129
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
11130
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
|
|
11131
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-lg font-bold text-[var(--l-pass-fg)]", children: info.displayHandle })
|
|
11132
|
-
] }),
|
|
11133
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-4 text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
11134
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
|
|
11135
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: "Created" }),
|
|
11136
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.createdAt).toLocaleDateString(void 0, {
|
|
11137
|
-
year: "numeric",
|
|
11138
|
-
month: "short",
|
|
11139
|
-
day: "numeric"
|
|
11140
|
-
}) })
|
|
11141
|
-
] }),
|
|
11142
|
-
info.changedAt && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
|
|
11143
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: "Last changed" }),
|
|
11144
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.changedAt).toLocaleDateString(void 0, {
|
|
11145
|
-
year: "numeric",
|
|
11146
|
-
month: "short",
|
|
11147
|
-
day: "numeric"
|
|
11148
|
-
}) })
|
|
11149
|
-
] }),
|
|
11150
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
|
|
11151
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: "Times changed" }),
|
|
11152
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: info.changeCount })
|
|
11153
|
-
] })
|
|
11154
|
-
] }),
|
|
11155
|
-
!info.canChange && info.cooldownEndsAt && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-warning)]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: "text-sm text-[var(--l-pass-warning)]", children: [
|
|
11156
|
-
"You can change your nickname again on ",
|
|
11157
|
-
cooldownEndDate,
|
|
11158
|
-
" (",
|
|
11159
|
-
daysRemaining,
|
|
11160
|
-
" days remaining)"
|
|
11161
|
-
] }) }),
|
|
11162
|
-
info.canChange && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-success)]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm text-[var(--l-pass-success)]", children: "You can change your nickname" }) })
|
|
11163
|
-
] });
|
|
11164
|
-
}
|
|
11165
|
-
|
|
11166
|
-
// src/internal/components/NicknameSettings/NicknameSettings.tsx
|
|
11167
|
-
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
11168
|
-
function NicknameSettings() {
|
|
11098
|
+
function NicknameMenu() {
|
|
11099
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
11100
|
+
const [clientError, setClientError] = (0, import_react42.useState)(null);
|
|
11169
11101
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11170
11102
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
11171
|
-
const {
|
|
11172
|
-
|
|
11103
|
+
const {
|
|
11104
|
+
data: nicknameInfo,
|
|
11105
|
+
isLoading: isNicknameInfoLoading,
|
|
11106
|
+
error: nicknameInfoError
|
|
11107
|
+
} = (0, import_react_query29.useQuery)({
|
|
11108
|
+
retry: 1,
|
|
11109
|
+
enabled: !!address,
|
|
11110
|
+
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
11111
|
+
queryFn: getNicknameInfo
|
|
11112
|
+
});
|
|
11113
|
+
const {
|
|
11114
|
+
availabilityQuery,
|
|
11115
|
+
inputValue,
|
|
11116
|
+
isUnavailable,
|
|
11117
|
+
isSameAsCurrentNickname,
|
|
11118
|
+
shouldCheckAvailability,
|
|
11119
|
+
setInputValue
|
|
11120
|
+
} = useNicknameForm(nicknameInfo ? nicknameInfo.handle : "");
|
|
11121
|
+
const { data: availability, isFetching: isAvailabilityChecking } = availabilityQuery;
|
|
11122
|
+
const resolvedError = clientError || nicknameInfoError?.message || null;
|
|
11123
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11173
11124
|
"div",
|
|
11174
11125
|
{
|
|
11175
11126
|
style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
|
|
11176
11127
|
className: "list-scrollbar-y w-full",
|
|
11177
|
-
children: /* @__PURE__ */ (0,
|
|
11178
|
-
/* @__PURE__ */ (0,
|
|
11179
|
-
/* @__PURE__ */ (0,
|
|
11180
|
-
/* @__PURE__ */ (0,
|
|
11128
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
11129
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] ", children: [
|
|
11130
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
|
|
11131
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex gap-[var(--l-pass-gap)] items-center w-fit", children: [
|
|
11132
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xl font-semibold", children: "Nickname" }),
|
|
11133
|
+
isNicknameInfoLoading && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" })
|
|
11134
|
+
] })
|
|
11181
11135
|
] }),
|
|
11182
|
-
|
|
11183
|
-
|
|
11184
|
-
nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11136
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[10px] text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
|
|
11137
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
11185
11138
|
NicknameEditForm,
|
|
11186
11139
|
{
|
|
11187
|
-
|
|
11188
|
-
|
|
11189
|
-
|
|
11140
|
+
inputValue,
|
|
11141
|
+
setInputValue,
|
|
11142
|
+
info: nicknameInfo,
|
|
11143
|
+
isAvailabilityChecking,
|
|
11144
|
+
isUnavailable,
|
|
11145
|
+
isSameAsCurrentNickname,
|
|
11146
|
+
clientError,
|
|
11147
|
+
setClientError
|
|
11190
11148
|
}
|
|
11191
11149
|
),
|
|
11192
|
-
|
|
11150
|
+
shouldCheckAvailability && !clientError && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(NicknameAvailabilityIndicator, { isChecking: isAvailabilityChecking, availability }),
|
|
11151
|
+
!nicknameInfo?.canChange && nicknameInfo?.cooldownEndsAt && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11152
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.Info, { className: "w-4 h-4 flex-none" }),
|
|
11153
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { children: [
|
|
11154
|
+
"You can change your nickname again on",
|
|
11155
|
+
" ",
|
|
11156
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("strong", { children: (0, import_dayjs2.default)(nicknameInfo.cooldownEndsAt).format("MMM D, YYYY") }),
|
|
11157
|
+
" (",
|
|
11158
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { children: [
|
|
11159
|
+
getDaysRemaining(nicknameInfo.cooldownEndsAt),
|
|
11160
|
+
" days remained"
|
|
11161
|
+
] }),
|
|
11162
|
+
")"
|
|
11163
|
+
] })
|
|
11164
|
+
] }),
|
|
11165
|
+
!!nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] justify-between text-[10px]", children: [
|
|
11166
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { children: [
|
|
11167
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: nicknameInfo.changedAt ? "Last changed:" : "Created:" }),
|
|
11168
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: " " }),
|
|
11169
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("strong", { className: "text-[var(--l-pass-fg)]", children: (0, import_dayjs2.default)(nicknameInfo.changedAt || nicknameInfo.createdAt).format("MMM D, YYYY") })
|
|
11170
|
+
] }),
|
|
11171
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { children: [
|
|
11172
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Times changed:" }),
|
|
11173
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: " " }),
|
|
11174
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("strong", { className: "text-[var(--l-pass-fg)]", children: nicknameInfo.changeCount })
|
|
11175
|
+
] })
|
|
11176
|
+
] }),
|
|
11177
|
+
!!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11178
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react36.AlertTriangle, { className: "w-4 h-4 flex-none" }),
|
|
11179
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: resolvedError })
|
|
11180
|
+
] })
|
|
11193
11181
|
] })
|
|
11194
11182
|
}
|
|
11195
11183
|
);
|
|
@@ -11514,7 +11502,7 @@ var import_lucide_react37 = require("lucide-react");
|
|
|
11514
11502
|
var import_react44 = require("react");
|
|
11515
11503
|
var import_viem6 = require("viem");
|
|
11516
11504
|
init_base();
|
|
11517
|
-
var
|
|
11505
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
11518
11506
|
function openInExplorer(address) {
|
|
11519
11507
|
window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
|
|
11520
11508
|
}
|
|
@@ -11568,7 +11556,7 @@ function PortfolioItem(props) {
|
|
|
11568
11556
|
const showProjectFiatBalance = isProjectAsset && !!projectAssetBalance?.fiatFormatted;
|
|
11569
11557
|
const renderBalance = showProjectFiatBalance ? projectAssetBalance?.fiatFormatted || 0 : Number((0, import_viem6.formatUnits)(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
11570
11558
|
const usdRenderBalance = !!assetRate?.price ? renderBalance * Number(assetRate.price) : 0;
|
|
11571
|
-
return /* @__PURE__ */ (0,
|
|
11559
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
11572
11560
|
"div",
|
|
11573
11561
|
{
|
|
11574
11562
|
className: cn(
|
|
@@ -11579,7 +11567,7 @@ function PortfolioItem(props) {
|
|
|
11579
11567
|
),
|
|
11580
11568
|
onClick: () => asset.address ? openInExplorer(asset.address) : void 0,
|
|
11581
11569
|
children: [
|
|
11582
|
-
/* @__PURE__ */ (0,
|
|
11570
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
11583
11571
|
"div",
|
|
11584
11572
|
{
|
|
11585
11573
|
className: cn(
|
|
@@ -11590,7 +11578,7 @@ function PortfolioItem(props) {
|
|
|
11590
11578
|
(!asset.logo || logoError) && !nftImage && "bg-[var(--l-pass-fg)]"
|
|
11591
11579
|
),
|
|
11592
11580
|
children: [
|
|
11593
|
-
isNft && nftImage && !nftImageError ? /* @__PURE__ */ (0,
|
|
11581
|
+
isNft && nftImage && !nftImageError ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11594
11582
|
"img",
|
|
11595
11583
|
{
|
|
11596
11584
|
src: nftImage,
|
|
@@ -11600,8 +11588,8 @@ function PortfolioItem(props) {
|
|
|
11600
11588
|
}
|
|
11601
11589
|
) : isNft && (!nftImage || nftImageError) ? (
|
|
11602
11590
|
// NFT placeholder when no image available
|
|
11603
|
-
/* @__PURE__ */ (0,
|
|
11604
|
-
) : asset.logo && !logoError ? /* @__PURE__ */ (0,
|
|
11591
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-full h-full bg-[var(--l-pass-fg)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Image, { className: "w-5 h-5 text-[var(--l-pass-fg-inverted)]" }) })
|
|
11592
|
+
) : asset.logo && !logoError ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11605
11593
|
"img",
|
|
11606
11594
|
{
|
|
11607
11595
|
src: asset.logo,
|
|
@@ -11609,22 +11597,22 @@ function PortfolioItem(props) {
|
|
|
11609
11597
|
className: "w-full h-full object-cover",
|
|
11610
11598
|
onError: () => setLogoError(true)
|
|
11611
11599
|
}
|
|
11612
|
-
) : /* @__PURE__ */ (0,
|
|
11613
|
-
isNft && /* @__PURE__ */ (0,
|
|
11614
|
-
isSecurity && /* @__PURE__ */ (0,
|
|
11600
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[var(--l-pass-fg-inverted)] font-bold text-sm", children: asset.symbol.charAt(0) }),
|
|
11601
|
+
isNft && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-[var(--l-pass-accent)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Sparkles, { className: "w-2.5 h-2.5 text-[var(--l-pass-fg-inverted)]" }) }),
|
|
11602
|
+
isSecurity && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11615
11603
|
"div",
|
|
11616
11604
|
{
|
|
11617
11605
|
className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-amber-500 flex items-center justify-center",
|
|
11618
11606
|
title: "Security Token (ERC-3643)",
|
|
11619
|
-
children: /* @__PURE__ */ (0,
|
|
11607
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Shield, { className: "w-2.5 h-2.5 text-white" })
|
|
11620
11608
|
}
|
|
11621
11609
|
)
|
|
11622
11610
|
]
|
|
11623
11611
|
}
|
|
11624
11612
|
),
|
|
11625
|
-
/* @__PURE__ */ (0,
|
|
11626
|
-
/* @__PURE__ */ (0,
|
|
11627
|
-
/* @__PURE__ */ (0,
|
|
11613
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full flex-1", children: [
|
|
11614
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full flex items-center justify-between text-xs", children: [
|
|
11615
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11628
11616
|
"span",
|
|
11629
11617
|
{
|
|
11630
11618
|
className: "truncate max-w-[150px]",
|
|
@@ -11632,25 +11620,25 @@ function PortfolioItem(props) {
|
|
|
11632
11620
|
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")
|
|
11633
11621
|
}
|
|
11634
11622
|
),
|
|
11635
|
-
!!usdRenderBalance && !isProjectAsset && !isNft && !isSecurity && /* @__PURE__ */ (0,
|
|
11636
|
-
!isSecurity && isNft && "type" in asset && /* @__PURE__ */ (0,
|
|
11637
|
-
isSecurity && /* @__PURE__ */ (0,
|
|
11623
|
+
!!usdRenderBalance && !isProjectAsset && !isNft && !isSecurity && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" }),
|
|
11624
|
+
!isSecurity && isNft && "type" in asset && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "uppercase text-[10px] px-1 bg-[var(--l-pass-bg-info)] rounded-full", children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" }),
|
|
11625
|
+
isSecurity && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "uppercase text-[10px] px-1 bg-[var(--l-pass-bg-warning)] rounded-full", children: "Security Token" })
|
|
11638
11626
|
] }),
|
|
11639
|
-
/* @__PURE__ */ (0,
|
|
11640
|
-
/* @__PURE__ */ (0,
|
|
11641
|
-
"tokenId" in asset && asset.tokenId && /* @__PURE__ */ (0,
|
|
11627
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: isNft ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
11628
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "truncate max-w-[160px]", title: asset.nftMetadata?.name || asset.symbol, children: asset.nftMetadata?.name || asset.symbol }),
|
|
11629
|
+
"tokenId" in asset && asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)] font-normal", children: [
|
|
11642
11630
|
"#",
|
|
11643
11631
|
asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
|
|
11644
11632
|
] })
|
|
11645
|
-
] }) : /* @__PURE__ */ (0,
|
|
11646
|
-
/* @__PURE__ */ (0,
|
|
11647
|
-
/* @__PURE__ */ (0,
|
|
11648
|
-
/* @__PURE__ */ (0,
|
|
11633
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
11634
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { children: [
|
|
11635
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: formatPrice(Number(renderBalance)) }),
|
|
11636
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: " " + asset.symbol })
|
|
11649
11637
|
] }),
|
|
11650
|
-
isRateLoading && /* @__PURE__ */ (0,
|
|
11651
|
-
!isRateLoading && !!usdRenderBalance && /* @__PURE__ */ (0,
|
|
11652
|
-
/* @__PURE__ */ (0,
|
|
11653
|
-
/* @__PURE__ */ (0,
|
|
11638
|
+
isRateLoading && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react37.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
11639
|
+
!isRateLoading && !!usdRenderBalance && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { children: [
|
|
11640
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: "$" }),
|
|
11641
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { children: formatPrice(usdRenderBalance) })
|
|
11654
11642
|
] })
|
|
11655
11643
|
] }) })
|
|
11656
11644
|
] })
|
|
@@ -11660,7 +11648,7 @@ function PortfolioItem(props) {
|
|
|
11660
11648
|
}
|
|
11661
11649
|
|
|
11662
11650
|
// src/internal/components/PortfolioMenu/PortfolioMenu.tsx
|
|
11663
|
-
var
|
|
11651
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
11664
11652
|
function PortfolioMenu() {
|
|
11665
11653
|
const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
|
|
11666
11654
|
const qc = (0, import_react_query32.useQueryClient)();
|
|
@@ -11680,7 +11668,7 @@ function PortfolioMenu() {
|
|
|
11680
11668
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
11681
11669
|
refreshBlockscoutBalances();
|
|
11682
11670
|
}, [qc, projectAssets, refreshBlockscoutBalances]);
|
|
11683
|
-
return /* @__PURE__ */ (0,
|
|
11671
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11684
11672
|
"div",
|
|
11685
11673
|
{
|
|
11686
11674
|
style: {
|
|
@@ -11688,11 +11676,11 @@ function PortfolioMenu() {
|
|
|
11688
11676
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
11689
11677
|
},
|
|
11690
11678
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11691
|
-
children: /* @__PURE__ */ (0,
|
|
11692
|
-
/* @__PURE__ */ (0,
|
|
11693
|
-
/* @__PURE__ */ (0,
|
|
11694
|
-
/* @__PURE__ */ (0,
|
|
11695
|
-
/* @__PURE__ */ (0,
|
|
11679
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11680
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11681
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11682
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
|
|
11683
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11696
11684
|
Button,
|
|
11697
11685
|
{
|
|
11698
11686
|
title: "Refresh balances",
|
|
@@ -11700,17 +11688,17 @@ function PortfolioMenu() {
|
|
|
11700
11688
|
size: "icon",
|
|
11701
11689
|
onClick: refreshAllAssetsBalances,
|
|
11702
11690
|
disabled: isBlockscoutLoading,
|
|
11703
|
-
children: isBlockscoutLoading ? /* @__PURE__ */ (0,
|
|
11691
|
+
children: isBlockscoutLoading ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.RefreshCw, { className: "h-4 w-4" })
|
|
11704
11692
|
}
|
|
11705
11693
|
)
|
|
11706
11694
|
] }),
|
|
11707
|
-
isBlockscoutLoading && /* @__PURE__ */ (0,
|
|
11708
|
-
!isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ (0,
|
|
11709
|
-
/* @__PURE__ */ (0,
|
|
11710
|
-
/* @__PURE__ */ (0,
|
|
11695
|
+
isBlockscoutLoading && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Loader, { className: "h-5 w-5 animate-spin" }) }),
|
|
11696
|
+
!isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Highlight, { type: "info", className: "flex flex-col items-center justify-center gap-[var(--l-pass-gap)]", children: [
|
|
11697
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.Gem, { className: "w-8 h-8" }),
|
|
11698
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "block", children: "No assets found" })
|
|
11711
11699
|
] }),
|
|
11712
|
-
!isBlockscoutLoading && projectAssets?.map((asset, index) => /* @__PURE__ */ (0,
|
|
11713
|
-
!isBlockscoutLoading && blockscoutAssets?.length > 0 && blockscoutAssets.map((asset, index) => /* @__PURE__ */ (0,
|
|
11700
|
+
!isBlockscoutLoading && projectAssets?.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
|
|
11701
|
+
!isBlockscoutLoading && blockscoutAssets?.length > 0 && blockscoutAssets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11714
11702
|
PortfolioItem,
|
|
11715
11703
|
{
|
|
11716
11704
|
address,
|
|
@@ -11718,9 +11706,9 @@ function PortfolioMenu() {
|
|
|
11718
11706
|
},
|
|
11719
11707
|
`${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
|
|
11720
11708
|
)),
|
|
11721
|
-
blockscoutError && !isBlockscoutAvailable && /* @__PURE__ */ (0,
|
|
11722
|
-
/* @__PURE__ */ (0,
|
|
11723
|
-
/* @__PURE__ */ (0,
|
|
11709
|
+
blockscoutError && !isBlockscoutAvailable && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
11710
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react38.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
11711
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xs", children: blockscoutError.message })
|
|
11724
11712
|
] })
|
|
11725
11713
|
] })
|
|
11726
11714
|
}
|
|
@@ -11729,7 +11717,7 @@ function PortfolioMenu() {
|
|
|
11729
11717
|
|
|
11730
11718
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
11731
11719
|
var import_react_query33 = require("@tanstack/react-query");
|
|
11732
|
-
var
|
|
11720
|
+
var import_dayjs4 = __toESM(require("dayjs"), 1);
|
|
11733
11721
|
var import_lucide_react42 = require("lucide-react");
|
|
11734
11722
|
var import_react46 = require("react");
|
|
11735
11723
|
init_auth();
|
|
@@ -11744,13 +11732,13 @@ var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
|
|
|
11744
11732
|
var import_lucide_react41 = require("lucide-react");
|
|
11745
11733
|
|
|
11746
11734
|
// src/internal/assets/NegativeIcon.tsx
|
|
11747
|
-
var
|
|
11735
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
11748
11736
|
function NegativeIcon(props) {
|
|
11749
11737
|
const { width = "16", height = "16", ...rest } = props;
|
|
11750
|
-
return /* @__PURE__ */ (0,
|
|
11751
|
-
/* @__PURE__ */ (0,
|
|
11752
|
-
/* @__PURE__ */ (0,
|
|
11753
|
-
/* @__PURE__ */ (0,
|
|
11738
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("svg", { ...rest, width, height, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
11739
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("rect", { width: "16", height: "16", rx: "8", fill: "var(--l-pass-bg-error)" }),
|
|
11740
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { d: "M10.8048 5.19482L5.19434 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" }),
|
|
11741
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { d: "M5.19421 5.19482L10.8047 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" })
|
|
11754
11742
|
] });
|
|
11755
11743
|
}
|
|
11756
11744
|
|
|
@@ -11759,13 +11747,13 @@ init_vaultClient();
|
|
|
11759
11747
|
|
|
11760
11748
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
11761
11749
|
var import_lucide_react39 = require("lucide-react");
|
|
11762
|
-
var
|
|
11750
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
11763
11751
|
function KeyshareStatus(props) {
|
|
11764
11752
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
11765
|
-
if (isLoading) return /* @__PURE__ */ (0,
|
|
11766
|
-
return /* @__PURE__ */ (0,
|
|
11753
|
+
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react39.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
|
|
11754
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "group relative w-full h-full", children: [
|
|
11767
11755
|
children,
|
|
11768
|
-
/* @__PURE__ */ (0,
|
|
11756
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11769
11757
|
"div",
|
|
11770
11758
|
{
|
|
11771
11759
|
className: cn(
|
|
@@ -11773,10 +11761,10 @@ function KeyshareStatus(props) {
|
|
|
11773
11761
|
"rounded-full bg-[var(--l-pass-bg)]"
|
|
11774
11762
|
// 'border border-[var(--l-pass-bd)]'
|
|
11775
11763
|
),
|
|
11776
|
-
children: /* @__PURE__ */ (0,
|
|
11764
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon2, { className: "w-4 h-4" })
|
|
11777
11765
|
}
|
|
11778
11766
|
),
|
|
11779
|
-
/* @__PURE__ */ (0,
|
|
11767
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11780
11768
|
"div",
|
|
11781
11769
|
{
|
|
11782
11770
|
style: { transform: "translateY(calc(var(--l-pass-gap) * -4))" },
|
|
@@ -11794,9 +11782,9 @@ function KeyshareStatus(props) {
|
|
|
11794
11782
|
}
|
|
11795
11783
|
|
|
11796
11784
|
// src/internal/components/SecurityMenu/Keyshare/LastBackup.tsx
|
|
11797
|
-
var
|
|
11785
|
+
var import_dayjs3 = __toESM(require("dayjs"), 1);
|
|
11798
11786
|
var import_lucide_react40 = require("lucide-react");
|
|
11799
|
-
var
|
|
11787
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
11800
11788
|
function parseOS(ua) {
|
|
11801
11789
|
if (!ua) return null;
|
|
11802
11790
|
if (ua.includes("Mac OS X")) return "macOS";
|
|
@@ -11818,105 +11806,105 @@ function LastBackup(props) {
|
|
|
11818
11806
|
} = createdRecoveryStats || {};
|
|
11819
11807
|
const hasBackupData = backup?.server?.enabled && backup.server.lastBackup || !backup.server.lastBackup && recoveryCreatedAt || backup.cloud.enabled && backup.cloud?.lastBackup || backup.local.enabled && backup.local.lastBackup;
|
|
11820
11808
|
if (!hasBackupData) return null;
|
|
11821
|
-
return /* @__PURE__ */ (0,
|
|
11822
|
-
/* @__PURE__ */ (0,
|
|
11823
|
-
/* @__PURE__ */ (0,
|
|
11824
|
-
/* @__PURE__ */ (0,
|
|
11809
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Highlight, { type: "info", className: "flex flex-col gap-[var(--l-pass-gap)] text-[10px] leading-tight", children: [
|
|
11810
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("span", { className: "flex items-center gap-[var(--l-pass-gap)] font-bold text-xs leading-4", children: [
|
|
11811
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react40.Server, { className: "w-4 h-4 inline" }),
|
|
11812
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { children: "Last Keyshare Vault Backup" })
|
|
11825
11813
|
] }),
|
|
11826
|
-
recoveryCreatedAt && /* @__PURE__ */ (0,
|
|
11827
|
-
/* @__PURE__ */ (0,
|
|
11828
|
-
/* @__PURE__ */ (0,
|
|
11814
|
+
recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
11815
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { children: (0, import_dayjs3.default)(recoveryCreatedAt).format("MMMM DD, YYYY HH:mm") }),
|
|
11816
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { children: `${recoveryBrowser || "UNKNOWN"} browser at ${recoveryDeviceName || "UNKNOWN"} device under ${parseOS(recoveryUa) || "UNKNOWN"} OS` })
|
|
11829
11817
|
] }),
|
|
11830
|
-
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0,
|
|
11831
|
-
/* @__PURE__ */ (0,
|
|
11832
|
-
/* @__PURE__ */ (0,
|
|
11818
|
+
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11819
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react40.Cloud, { className: "h-3 w-3" }),
|
|
11820
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("span", { children: [
|
|
11833
11821
|
"Cloud: ",
|
|
11834
|
-
(0,
|
|
11822
|
+
(0, import_dayjs3.default)(backup.cloud.lastBackup).format("MMMM DD, YYYY HH:mm")
|
|
11835
11823
|
] })
|
|
11836
11824
|
] }),
|
|
11837
|
-
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0,
|
|
11838
|
-
/* @__PURE__ */ (0,
|
|
11839
|
-
/* @__PURE__ */ (0,
|
|
11825
|
+
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11826
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react40.HardDrive, { className: "h-3 w-3" }),
|
|
11827
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("span", { children: [
|
|
11840
11828
|
"Local: ",
|
|
11841
|
-
(0,
|
|
11829
|
+
(0, import_dayjs3.default)(backup.local.lastBackup).format("MMMM DD, YYYY HH:mm")
|
|
11842
11830
|
] })
|
|
11843
11831
|
] })
|
|
11844
11832
|
] });
|
|
11845
11833
|
}
|
|
11846
11834
|
|
|
11847
11835
|
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
11848
|
-
var
|
|
11836
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
11849
11837
|
function Keyshare(props) {
|
|
11850
11838
|
const { userId, serverHasKeyshare, localInfo, hasServerBackup, createdRecoveryStats, isLoading, refresh } = props;
|
|
11851
11839
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
11852
|
-
return /* @__PURE__ */ (0,
|
|
11853
|
-
/* @__PURE__ */ (0,
|
|
11854
|
-
/* @__PURE__ */ (0,
|
|
11855
|
-
/* @__PURE__ */ (0,
|
|
11840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
|
|
11841
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
11842
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
11843
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react41.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react41.RefreshCw, { className: "h-4 w-4" }) })
|
|
11856
11844
|
] }),
|
|
11857
|
-
/* @__PURE__ */ (0,
|
|
11858
|
-
/* @__PURE__ */ (0,
|
|
11845
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)] px-[var(--l-pass-gap)]", children: [
|
|
11846
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
11859
11847
|
KeyshareStatus,
|
|
11860
11848
|
{
|
|
11861
11849
|
content: serverHasKeyshare ? "Your Server Security Key Share is safe and ready" : "Server Security Key Share is missing",
|
|
11862
11850
|
icon: serverHasKeyshare ? PositiveIcon : NegativeIcon,
|
|
11863
|
-
children: /* @__PURE__ */ (0,
|
|
11851
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
11864
11852
|
Highlight,
|
|
11865
11853
|
{
|
|
11866
11854
|
type: serverHasKeyshare ? "success" : "warning",
|
|
11867
11855
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11868
11856
|
children: [
|
|
11869
|
-
/* @__PURE__ */ (0,
|
|
11870
|
-
/* @__PURE__ */ (0,
|
|
11857
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react41.Cloud, { className: "h-6 w-6" }),
|
|
11858
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Server Share" })
|
|
11871
11859
|
]
|
|
11872
11860
|
}
|
|
11873
11861
|
)
|
|
11874
11862
|
}
|
|
11875
11863
|
),
|
|
11876
|
-
/* @__PURE__ */ (0,
|
|
11864
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
11877
11865
|
KeyshareStatus,
|
|
11878
11866
|
{
|
|
11879
11867
|
content: localInfo?.hasKeyshare ? "Your Private Local Security Key Share is safe and ready" : "Private Local Security Key Share is missing",
|
|
11880
11868
|
icon: localInfo?.hasKeyshare ? PositiveIcon : NegativeIcon,
|
|
11881
|
-
children: /* @__PURE__ */ (0,
|
|
11869
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
11882
11870
|
Highlight,
|
|
11883
11871
|
{
|
|
11884
11872
|
type: localInfo?.hasKeyshare ? "success" : "warning",
|
|
11885
11873
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11886
11874
|
children: [
|
|
11887
|
-
/* @__PURE__ */ (0,
|
|
11888
|
-
/* @__PURE__ */ (0,
|
|
11875
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react41.Laptop, { className: "h-6 w-6" }),
|
|
11876
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Local Share" })
|
|
11889
11877
|
]
|
|
11890
11878
|
}
|
|
11891
11879
|
)
|
|
11892
11880
|
}
|
|
11893
11881
|
),
|
|
11894
|
-
/* @__PURE__ */ (0,
|
|
11882
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
11895
11883
|
KeyshareStatus,
|
|
11896
11884
|
{
|
|
11897
11885
|
content: hasServerBackup ? "Security Key Share Vault Backup exists and ready" : "Security Key Share Vault Backup Missing. Create one to ensure your data is safe.",
|
|
11898
11886
|
icon: hasServerBackup ? PositiveIcon : NegativeIcon,
|
|
11899
|
-
children: /* @__PURE__ */ (0,
|
|
11887
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
11900
11888
|
Highlight,
|
|
11901
11889
|
{
|
|
11902
11890
|
type: hasServerBackup ? "success" : "warning",
|
|
11903
11891
|
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11904
11892
|
children: [
|
|
11905
|
-
/* @__PURE__ */ (0,
|
|
11906
|
-
/* @__PURE__ */ (0,
|
|
11893
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react41.Server, { className: "h-6 w-6" }),
|
|
11894
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Backup Vault" })
|
|
11907
11895
|
]
|
|
11908
11896
|
}
|
|
11909
11897
|
)
|
|
11910
11898
|
}
|
|
11911
11899
|
)
|
|
11912
11900
|
] }),
|
|
11913
|
-
createdRecoveryStats?.at && /* @__PURE__ */ (0,
|
|
11914
|
-
/* @__PURE__ */ (0,
|
|
11901
|
+
createdRecoveryStats?.at && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LastBackup, { backup, createdRecoveryStats }),
|
|
11902
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
11915
11903
|
] });
|
|
11916
11904
|
}
|
|
11917
11905
|
|
|
11918
11906
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
11919
|
-
var
|
|
11907
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
11920
11908
|
function SecurityMenu() {
|
|
11921
11909
|
const qc = (0, import_react_query33.useQueryClient)();
|
|
11922
11910
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
@@ -11964,7 +11952,7 @@ function SecurityMenu() {
|
|
|
11964
11952
|
setIsRemoving(false);
|
|
11965
11953
|
}
|
|
11966
11954
|
};
|
|
11967
|
-
return /* @__PURE__ */ (0,
|
|
11955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11968
11956
|
"div",
|
|
11969
11957
|
{
|
|
11970
11958
|
style: {
|
|
@@ -11972,9 +11960,9 @@ function SecurityMenu() {
|
|
|
11972
11960
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
11973
11961
|
},
|
|
11974
11962
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11975
|
-
children: /* @__PURE__ */ (0,
|
|
11976
|
-
/* @__PURE__ */ (0,
|
|
11977
|
-
/* @__PURE__ */ (0,
|
|
11963
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11964
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11965
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11978
11966
|
Button,
|
|
11979
11967
|
{
|
|
11980
11968
|
variant: "ghost",
|
|
@@ -11984,13 +11972,13 @@ function SecurityMenu() {
|
|
|
11984
11972
|
if (!!appToRemove) setAppToRemove(null);
|
|
11985
11973
|
else setPage("settings" /* SETTINGS */);
|
|
11986
11974
|
},
|
|
11987
|
-
children: /* @__PURE__ */ (0,
|
|
11975
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react42.ArrowLeft, { className: "h-4 w-4" })
|
|
11988
11976
|
}
|
|
11989
11977
|
),
|
|
11990
|
-
/* @__PURE__ */ (0,
|
|
11978
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-xl font-semibold", children: "Security" })
|
|
11991
11979
|
] }),
|
|
11992
|
-
!appToRemove && /* @__PURE__ */ (0,
|
|
11993
|
-
/* @__PURE__ */ (0,
|
|
11980
|
+
!appToRemove && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
|
|
11981
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11994
11982
|
Keyshare,
|
|
11995
11983
|
{
|
|
11996
11984
|
userId,
|
|
@@ -12002,31 +11990,31 @@ function SecurityMenu() {
|
|
|
12002
11990
|
refresh: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] })
|
|
12003
11991
|
}
|
|
12004
11992
|
),
|
|
12005
|
-
trustedApps.length > 0 && /* @__PURE__ */ (0,
|
|
12006
|
-
/* @__PURE__ */ (0,
|
|
12007
|
-
/* @__PURE__ */ (0,
|
|
12008
|
-
/* @__PURE__ */ (0,
|
|
11993
|
+
trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
|
|
11994
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "w-full space-y-2", children: [
|
|
11995
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
11996
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
12009
11997
|
"div",
|
|
12010
11998
|
{
|
|
12011
11999
|
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)]",
|
|
12012
12000
|
children: [
|
|
12013
|
-
app.appLogo ? /* @__PURE__ */ (0,
|
|
12001
|
+
app.appLogo ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12014
12002
|
"img",
|
|
12015
12003
|
{
|
|
12016
12004
|
src: app.appLogo,
|
|
12017
12005
|
alt: app.appName,
|
|
12018
12006
|
className: "w-8 h-8 rounded-[var(--l-pass-el-bdrs)] object-cover flex-shrink-0"
|
|
12019
12007
|
}
|
|
12020
|
-
) : /* @__PURE__ */ (0,
|
|
12021
|
-
/* @__PURE__ */ (0,
|
|
12022
|
-
/* @__PURE__ */ (0,
|
|
12023
|
-
/* @__PURE__ */ (0,
|
|
12024
|
-
/* @__PURE__ */ (0,
|
|
12008
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("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__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-sm", children: "\u{1F517}" }) }),
|
|
12009
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
12010
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "font-semibold truncate", children: app.appName || new URL(app.origin).hostname }),
|
|
12011
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: new URL(app.origin).hostname }),
|
|
12012
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: [
|
|
12025
12013
|
"Trusted: ",
|
|
12026
|
-
(0,
|
|
12014
|
+
(0, import_dayjs4.default)(app.trustedAt).format("MMM D, YYYY HH:mm")
|
|
12027
12015
|
] })
|
|
12028
12016
|
] }),
|
|
12029
|
-
/* @__PURE__ */ (0,
|
|
12017
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12030
12018
|
Button,
|
|
12031
12019
|
{
|
|
12032
12020
|
variant: "ghost",
|
|
@@ -12040,7 +12028,7 @@ function SecurityMenu() {
|
|
|
12040
12028
|
appName: app.appName,
|
|
12041
12029
|
appLogo: app.appLogo
|
|
12042
12030
|
}),
|
|
12043
|
-
children: /* @__PURE__ */ (0,
|
|
12031
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react42.Trash2, { className: "h-4 w-4" })
|
|
12044
12032
|
}
|
|
12045
12033
|
)
|
|
12046
12034
|
]
|
|
@@ -12048,37 +12036,37 @@ function SecurityMenu() {
|
|
|
12048
12036
|
index
|
|
12049
12037
|
)) })
|
|
12050
12038
|
] }),
|
|
12051
|
-
/* @__PURE__ */ (0,
|
|
12039
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
12052
12040
|
] })
|
|
12053
12041
|
] }),
|
|
12054
|
-
!!appToRemove && /* @__PURE__ */ (0,
|
|
12055
|
-
/* @__PURE__ */ (0,
|
|
12056
|
-
/* @__PURE__ */ (0,
|
|
12057
|
-
/* @__PURE__ */ (0,
|
|
12058
|
-
appToRemove.appLogo ? /* @__PURE__ */ (0,
|
|
12059
|
-
/* @__PURE__ */ (0,
|
|
12060
|
-
/* @__PURE__ */ (0,
|
|
12061
|
-
/* @__PURE__ */ (0,
|
|
12042
|
+
!!appToRemove && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "w-full", children: [
|
|
12043
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "text-center", children: [
|
|
12044
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
|
|
12045
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center justify-center gap-2 mb-3", children: [
|
|
12046
|
+
appToRemove.appLogo ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("img", { src: appToRemove.appLogo, alt: "", className: "w-10 h-10 rounded-md object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "w-10 h-10 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-lg", children: "\u{1F517}" }) }),
|
|
12047
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "text-left", children: [
|
|
12048
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "font-medium", children: appToRemove.appName || appToRemove.hostname }),
|
|
12049
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: appToRemove.hostname })
|
|
12062
12050
|
] })
|
|
12063
12051
|
] }),
|
|
12064
|
-
/* @__PURE__ */ (0,
|
|
12065
|
-
/* @__PURE__ */ (0,
|
|
12066
|
-
/* @__PURE__ */ (0,
|
|
12067
|
-
/* @__PURE__ */ (0,
|
|
12068
|
-
/* @__PURE__ */ (0,
|
|
12052
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "text-xs text-[var(--l-pass-fg-muted)] text-left space-y-1 mb-4", children: [
|
|
12053
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { children: "After removing this application:" }),
|
|
12054
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("ul", { className: "list-disc list-inside ml-2 space-y-0.5", children: [
|
|
12055
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("li", { children: "All transactions will require confirmation" }),
|
|
12056
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("li", { children: 'You can re-add it anytime by checking "Trust this app"' })
|
|
12069
12057
|
] })
|
|
12070
12058
|
] })
|
|
12071
12059
|
] }),
|
|
12072
|
-
/* @__PURE__ */ (0,
|
|
12073
|
-
/* @__PURE__ */ (0,
|
|
12074
|
-
/* @__PURE__ */ (0,
|
|
12060
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex gap-2", children: [
|
|
12061
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button, { variant: "outline", className: "flex-1", onClick: () => setAppToRemove(null), disabled: isRemoving, children: "Cancel" }),
|
|
12062
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
12075
12063
|
Button,
|
|
12076
12064
|
{
|
|
12077
12065
|
variant: "default",
|
|
12078
12066
|
className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/60 active:bg-[var(--l-pass-error)]/40",
|
|
12079
12067
|
onClick: handleRemoveTrustedApp,
|
|
12080
12068
|
disabled: isRemoving,
|
|
12081
|
-
children: isRemoving ? /* @__PURE__ */ (0,
|
|
12069
|
+
children: isRemoving ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react42.Loader, { className: "h-4 w-4 animate-spin" }) : "Remove"
|
|
12082
12070
|
}
|
|
12083
12071
|
)
|
|
12084
12072
|
] })
|
|
@@ -12465,7 +12453,7 @@ init_base();
|
|
|
12465
12453
|
var import_lucide_react43 = require("lucide-react");
|
|
12466
12454
|
var import_react49 = require("react");
|
|
12467
12455
|
var import_viem9 = require("viem");
|
|
12468
|
-
var
|
|
12456
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12469
12457
|
function isNftAsset2(asset) {
|
|
12470
12458
|
return asset.type === "erc721" || asset.type === "erc1155";
|
|
12471
12459
|
}
|
|
@@ -12493,8 +12481,8 @@ function AssetIcon({ asset, size = "sm" }) {
|
|
|
12493
12481
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12494
12482
|
const isSecurity = isSecurityToken2(asset);
|
|
12495
12483
|
if (isNft && nftImage && !imageError) {
|
|
12496
|
-
return /* @__PURE__ */ (0,
|
|
12497
|
-
/* @__PURE__ */ (0,
|
|
12484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-[var(--l-pass-el-bdrs)] overflow-hidden relative flex-shrink-0"), children: [
|
|
12485
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12498
12486
|
"img",
|
|
12499
12487
|
{
|
|
12500
12488
|
src: nftImage,
|
|
@@ -12503,18 +12491,18 @@ function AssetIcon({ asset, size = "sm" }) {
|
|
|
12503
12491
|
onError: () => setImageError(true)
|
|
12504
12492
|
}
|
|
12505
12493
|
),
|
|
12506
|
-
/* @__PURE__ */ (0,
|
|
12494
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("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__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.Sparkles, { className: "w-2 h-2 text-[var(--l-pass-fg-inverted)]" }) })
|
|
12507
12495
|
] });
|
|
12508
12496
|
}
|
|
12509
12497
|
if (isNft) {
|
|
12510
|
-
return /* @__PURE__ */ (0,
|
|
12511
|
-
/* @__PURE__ */ (0,
|
|
12512
|
-
/* @__PURE__ */ (0,
|
|
12498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("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: [
|
|
12499
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.Image, { className: cn(size === "sm" ? "w-3 h-3" : "w-5 h-5", "text-[var(--l-pass-fg-inverted)]") }),
|
|
12500
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("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__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.Sparkles, { className: "w-2 h-2 text-[var(--l-pass-fg-inverted)]" }) })
|
|
12513
12501
|
] });
|
|
12514
12502
|
}
|
|
12515
12503
|
if (asset.logo && !imageError) {
|
|
12516
|
-
return /* @__PURE__ */ (0,
|
|
12517
|
-
/* @__PURE__ */ (0,
|
|
12504
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-full overflow-hidden relative flex-shrink-0"), children: [
|
|
12505
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12518
12506
|
"img",
|
|
12519
12507
|
{
|
|
12520
12508
|
src: asset.logo,
|
|
@@ -12523,12 +12511,12 @@ function AssetIcon({ asset, size = "sm" }) {
|
|
|
12523
12511
|
onError: () => setImageError(true)
|
|
12524
12512
|
}
|
|
12525
12513
|
),
|
|
12526
|
-
isSecurity && /* @__PURE__ */ (0,
|
|
12514
|
+
isSecurity && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("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__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.Shield, { className: "w-2 h-2 text-white" }) })
|
|
12527
12515
|
] });
|
|
12528
12516
|
}
|
|
12529
|
-
return /* @__PURE__ */ (0,
|
|
12530
|
-
/* @__PURE__ */ (0,
|
|
12531
|
-
isSecurity && /* @__PURE__ */ (0,
|
|
12517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center relative flex-shrink-0"), children: [
|
|
12518
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: cn("text-[var(--l-pass-fg-inverted)] font-bold", textSize), children: asset.symbol.charAt(0) }),
|
|
12519
|
+
isSecurity && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("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__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.Shield, { className: "w-2 h-2 text-white" }) })
|
|
12532
12520
|
] });
|
|
12533
12521
|
}
|
|
12534
12522
|
function AssetListItem({ asset, onSelect, isSelected }) {
|
|
@@ -12538,7 +12526,7 @@ function AssetListItem({ asset, onSelect, isSelected }) {
|
|
|
12538
12526
|
e.stopPropagation();
|
|
12539
12527
|
onSelect();
|
|
12540
12528
|
};
|
|
12541
|
-
return /* @__PURE__ */ (0,
|
|
12529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12542
12530
|
"button",
|
|
12543
12531
|
{
|
|
12544
12532
|
type: "button",
|
|
@@ -12549,16 +12537,16 @@ function AssetListItem({ asset, onSelect, isSelected }) {
|
|
|
12549
12537
|
),
|
|
12550
12538
|
onClick: handleClick,
|
|
12551
12539
|
children: [
|
|
12552
|
-
/* @__PURE__ */ (0,
|
|
12553
|
-
/* @__PURE__ */ (0,
|
|
12554
|
-
/* @__PURE__ */ (0,
|
|
12555
|
-
/* @__PURE__ */ (0,
|
|
12540
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AssetIcon, { asset, size: "md" }),
|
|
12541
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex-1 min-w-0 text-left", children: [
|
|
12542
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "font-semibold text-[var(--l-pass-fg)] truncate", children: isNft ? asset.nftMetadata?.name || asset.name : asset.name }),
|
|
12543
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: isNft ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12556
12544
|
asset.symbol,
|
|
12557
|
-
asset.tokenId && /* @__PURE__ */ (0,
|
|
12545
|
+
asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "ml-1", children: [
|
|
12558
12546
|
"#",
|
|
12559
12547
|
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
12560
12548
|
] })
|
|
12561
|
-
] }) : /* @__PURE__ */ (0,
|
|
12549
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12562
12550
|
getAssetBalance(asset),
|
|
12563
12551
|
" ",
|
|
12564
12552
|
asset.symbol
|
|
@@ -12612,8 +12600,8 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12612
12600
|
return null;
|
|
12613
12601
|
}
|
|
12614
12602
|
const isNft = isNftAsset2(selectedAsset);
|
|
12615
|
-
return /* @__PURE__ */ (0,
|
|
12616
|
-
/* @__PURE__ */ (0,
|
|
12603
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "relative", style: { zIndex: isOpen ? 100 : "auto" }, children: [
|
|
12604
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12617
12605
|
"button",
|
|
12618
12606
|
{
|
|
12619
12607
|
ref: buttonRef,
|
|
@@ -12627,13 +12615,13 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12627
12615
|
),
|
|
12628
12616
|
onClick: handleToggle,
|
|
12629
12617
|
children: [
|
|
12630
|
-
/* @__PURE__ */ (0,
|
|
12631
|
-
/* @__PURE__ */ (0,
|
|
12632
|
-
/* @__PURE__ */ (0,
|
|
12618
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AssetIcon, { asset: selectedAsset, size: "sm" }),
|
|
12619
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-sm font-semibold text-[var(--l-pass-fg)] max-w-[80px] truncate", children: isNft ? selectedAsset.nftMetadata?.name || selectedAsset.symbol : selectedAsset.symbol }),
|
|
12620
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.ChevronDown, { className: cn("w-4 h-4 text-[var(--l-pass-fg-muted)] transition-transform", isOpen && "rotate-180") })
|
|
12633
12621
|
]
|
|
12634
12622
|
}
|
|
12635
12623
|
),
|
|
12636
|
-
isOpen && /* @__PURE__ */ (0,
|
|
12624
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12637
12625
|
"div",
|
|
12638
12626
|
{
|
|
12639
12627
|
ref: dropdownRef,
|
|
@@ -12646,12 +12634,12 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12646
12634
|
style: { zIndex: 100 },
|
|
12647
12635
|
onClick: (e) => e.stopPropagation(),
|
|
12648
12636
|
children: [
|
|
12649
|
-
/* @__PURE__ */ (0,
|
|
12650
|
-
/* @__PURE__ */ (0,
|
|
12651
|
-
/* @__PURE__ */ (0,
|
|
12637
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("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: [
|
|
12638
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-sm font-semibold text-[var(--l-pass-fg)]", children: "Select Asset" }),
|
|
12639
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button, { variant: "ghost", size: "icon", onClick: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react43.X, { className: "w-4 h-4" }) })
|
|
12652
12640
|
] }),
|
|
12653
|
-
/* @__PURE__ */ (0,
|
|
12654
|
-
nativeAssets.length > 0 && /* @__PURE__ */ (0,
|
|
12641
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "p-2", children: [
|
|
12642
|
+
nativeAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_jsx_runtime64.Fragment, { children: nativeAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12655
12643
|
AssetListItem,
|
|
12656
12644
|
{
|
|
12657
12645
|
asset,
|
|
@@ -12660,9 +12648,9 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12660
12648
|
},
|
|
12661
12649
|
`native-${asset.symbol}`
|
|
12662
12650
|
)) }),
|
|
12663
|
-
tokenAssets.length > 0 && /* @__PURE__ */ (0,
|
|
12664
|
-
/* @__PURE__ */ (0,
|
|
12665
|
-
tokenAssets.map((asset) => /* @__PURE__ */ (0,
|
|
12651
|
+
tokenAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12652
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-3 py-1 text-xs text-[var(--l-pass-fg-muted)] uppercase tracking-wider mt-2", children: "Tokens" }),
|
|
12653
|
+
tokenAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12666
12654
|
AssetListItem,
|
|
12667
12655
|
{
|
|
12668
12656
|
asset,
|
|
@@ -12672,9 +12660,9 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12672
12660
|
`token-${asset.address}`
|
|
12673
12661
|
))
|
|
12674
12662
|
] }),
|
|
12675
|
-
securityAssets.length > 0 && /* @__PURE__ */ (0,
|
|
12676
|
-
/* @__PURE__ */ (0,
|
|
12677
|
-
securityAssets.map((asset) => /* @__PURE__ */ (0,
|
|
12663
|
+
securityAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12664
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-3 py-1 text-xs text-[var(--l-pass-fg-muted)] uppercase tracking-wider mt-2", children: "Security Tokens" }),
|
|
12665
|
+
securityAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12678
12666
|
AssetListItem,
|
|
12679
12667
|
{
|
|
12680
12668
|
asset,
|
|
@@ -12684,9 +12672,9 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12684
12672
|
`security-${asset.address}`
|
|
12685
12673
|
))
|
|
12686
12674
|
] }),
|
|
12687
|
-
nftAssets.length > 0 && /* @__PURE__ */ (0,
|
|
12688
|
-
/* @__PURE__ */ (0,
|
|
12689
|
-
nftAssets.map((asset) => /* @__PURE__ */ (0,
|
|
12675
|
+
nftAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12676
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-3 py-1 text-xs text-[var(--l-pass-fg-muted)] uppercase tracking-wider mt-2", children: "NFTs" }),
|
|
12677
|
+
nftAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12690
12678
|
AssetListItem,
|
|
12691
12679
|
{
|
|
12692
12680
|
asset,
|
|
@@ -12696,7 +12684,7 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12696
12684
|
`nft-${asset.address}-${asset.tokenId}`
|
|
12697
12685
|
))
|
|
12698
12686
|
] }),
|
|
12699
|
-
transferableAssets.length === 0 && /* @__PURE__ */ (0,
|
|
12687
|
+
transferableAssets.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "p-4 text-center text-sm text-[var(--l-pass-fg-muted)]", children: "No assets available" })
|
|
12700
12688
|
] })
|
|
12701
12689
|
]
|
|
12702
12690
|
}
|
|
@@ -12705,7 +12693,7 @@ function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
|
12705
12693
|
}
|
|
12706
12694
|
|
|
12707
12695
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12708
|
-
var
|
|
12696
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
12709
12697
|
function isNftAsset3(asset) {
|
|
12710
12698
|
if (!asset) return false;
|
|
12711
12699
|
return asset.type === "erc721" || asset.type === "erc1155";
|
|
@@ -12731,8 +12719,8 @@ function formatBalance(balance, decimals = 4) {
|
|
|
12731
12719
|
function NftDisplayCard({ asset }) {
|
|
12732
12720
|
const [imageError, setImageError] = (0, import_react50.useState)(false);
|
|
12733
12721
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12734
|
-
return /* @__PURE__ */ (0,
|
|
12735
|
-
nftImage && !imageError ? /* @__PURE__ */ (0,
|
|
12722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-secondary)]", children: [
|
|
12723
|
+
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12736
12724
|
"img",
|
|
12737
12725
|
{
|
|
12738
12726
|
src: nftImage,
|
|
@@ -12740,19 +12728,19 @@ function NftDisplayCard({ asset }) {
|
|
|
12740
12728
|
className: "w-16 h-16 rounded-[var(--l-pass-el-bdrs)] object-cover",
|
|
12741
12729
|
onError: () => setImageError(true)
|
|
12742
12730
|
}
|
|
12743
|
-
) : /* @__PURE__ */ (0,
|
|
12744
|
-
/* @__PURE__ */ (0,
|
|
12745
|
-
/* @__PURE__ */ (0,
|
|
12746
|
-
/* @__PURE__ */ (0,
|
|
12731
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-16 h-16 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-fg)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Image, { className: "w-8 h-8 text-[var(--l-pass-fg-inverted)]" }) }),
|
|
12732
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
12733
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "font-semibold text-[var(--l-pass-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
12734
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12747
12735
|
asset.symbol,
|
|
12748
|
-
asset.tokenId && /* @__PURE__ */ (0,
|
|
12736
|
+
asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "ml-1", children: [
|
|
12749
12737
|
"#",
|
|
12750
12738
|
asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
|
|
12751
12739
|
] })
|
|
12752
12740
|
] }),
|
|
12753
|
-
/* @__PURE__ */ (0,
|
|
12754
|
-
/* @__PURE__ */ (0,
|
|
12755
|
-
/* @__PURE__ */ (0,
|
|
12741
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-xs text-[var(--l-pass-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
12742
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Sparkles, { className: "w-3 h-3" }),
|
|
12743
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
12756
12744
|
] })
|
|
12757
12745
|
] })
|
|
12758
12746
|
] });
|
|
@@ -12938,15 +12926,15 @@ function SendLumiaMenu() {
|
|
|
12938
12926
|
if (isNft) return `Send NFT`;
|
|
12939
12927
|
return `Send ${selectedAsset.symbol}`;
|
|
12940
12928
|
};
|
|
12941
|
-
return /* @__PURE__ */ (0,
|
|
12942
|
-
/* @__PURE__ */ (0,
|
|
12943
|
-
txStep === "input" && /* @__PURE__ */ (0,
|
|
12944
|
-
/* @__PURE__ */ (0,
|
|
12929
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12930
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12931
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
12932
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xl font-semibold", children: getPageTitle() })
|
|
12945
12933
|
] }),
|
|
12946
|
-
txStep === "input" && /* @__PURE__ */ (0,
|
|
12947
|
-
/* @__PURE__ */ (0,
|
|
12948
|
-
/* @__PURE__ */ (0,
|
|
12949
|
-
/* @__PURE__ */ (0,
|
|
12934
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
12935
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12936
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient" }),
|
|
12937
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12950
12938
|
Input,
|
|
12951
12939
|
{
|
|
12952
12940
|
Icon: isNicknameInput ? import_lucide_react44.AtSign : import_lucide_react44.Wallet,
|
|
@@ -12954,50 +12942,50 @@ function SendLumiaMenu() {
|
|
|
12954
12942
|
value: recipient,
|
|
12955
12943
|
onChange: (e) => setRecipient(e.target.value),
|
|
12956
12944
|
placeholder: "0x... or @nickname",
|
|
12957
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */ (0,
|
|
12945
|
+
element: isNicknameInput && isResolving ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" }) : null
|
|
12958
12946
|
}
|
|
12959
12947
|
),
|
|
12960
|
-
isNicknameInput && resolvedAddress && !isResolving && nicknameData && /* @__PURE__ */ (0,
|
|
12961
|
-
nicknameData.avatarSvg ? /* @__PURE__ */ (0,
|
|
12948
|
+
isNicknameInput && resolvedAddress && !isResolving && nicknameData && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-start gap-3 p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-secondary)]", children: [
|
|
12949
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12962
12950
|
"img",
|
|
12963
12951
|
{
|
|
12964
12952
|
src: nicknameData.avatarSvg,
|
|
12965
12953
|
alt: nicknameData.handle,
|
|
12966
12954
|
className: "w-10 h-10 rounded-full object-cover flex-shrink-0"
|
|
12967
12955
|
}
|
|
12968
|
-
) : /* @__PURE__ */ (0,
|
|
12969
|
-
/* @__PURE__ */ (0,
|
|
12970
|
-
/* @__PURE__ */ (0,
|
|
12971
|
-
/* @__PURE__ */ (0,
|
|
12972
|
-
/* @__PURE__ */ (0,
|
|
12956
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-10 h-10 rounded-full bg-[var(--l-pass-bg)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AtSign, { className: "w-5 h-5 text-[var(--l-pass-fg-muted)]" }) }),
|
|
12957
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
12958
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-success)]", children: [
|
|
12959
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.CheckCircle2, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12960
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-mono", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)}` })
|
|
12973
12961
|
] }),
|
|
12974
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12975
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12976
|
-
/* @__PURE__ */ (0,
|
|
12962
|
+
nicknameData.fingerprint && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: `flex items-center gap-1.5 text-xs ${isFingerprintVerified ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-error)]"}`, children: [
|
|
12963
|
+
isFingerprintVerified ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Shield, { className: "w-3 h-3 flex-shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.ShieldAlert, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12964
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { children: [
|
|
12977
12965
|
"Fingerprint: ",
|
|
12978
12966
|
nicknameData.fingerprint
|
|
12979
12967
|
] }),
|
|
12980
|
-
/* @__PURE__ */ (0,
|
|
12968
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12981
12969
|
] })
|
|
12982
12970
|
] })
|
|
12983
12971
|
] }),
|
|
12984
|
-
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */ (0,
|
|
12985
|
-
/* @__PURE__ */ (0,
|
|
12986
|
-
/* @__PURE__ */ (0,
|
|
12972
|
+
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-warning)]", children: [
|
|
12973
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AlertTriangle, { className: "w-3 h-3" }),
|
|
12974
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "This handle is frozen. Proceed with caution." })
|
|
12987
12975
|
] }),
|
|
12988
|
-
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */ (0,
|
|
12989
|
-
/* @__PURE__ */ (0,
|
|
12990
|
-
/* @__PURE__ */ (0,
|
|
12976
|
+
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-error)]", children: [
|
|
12977
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AlertCircle, { className: "w-3 h-3" }),
|
|
12978
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "This user has not set up their wallet yet" })
|
|
12991
12979
|
] }),
|
|
12992
|
-
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */ (0,
|
|
12993
|
-
/* @__PURE__ */ (0,
|
|
12994
|
-
/* @__PURE__ */ (0,
|
|
12980
|
+
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-error)]", children: [
|
|
12981
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AlertCircle, { className: "w-3 h-3" }),
|
|
12982
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Nickname not found" })
|
|
12995
12983
|
] })
|
|
12996
12984
|
] }),
|
|
12997
|
-
/* @__PURE__ */ (0,
|
|
12998
|
-
/* @__PURE__ */ (0,
|
|
12999
|
-
/* @__PURE__ */ (0,
|
|
13000
|
-
!isNft && selectedAsset && /* @__PURE__ */ (0,
|
|
12985
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12986
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between items-center", children: [
|
|
12987
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: isNft ? "Asset" : "Amount" }),
|
|
12988
|
+
!isNft && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
13001
12989
|
"Balance: ",
|
|
13002
12990
|
formatBalance(balance),
|
|
13003
12991
|
" ",
|
|
@@ -13006,11 +12994,11 @@ function SendLumiaMenu() {
|
|
|
13006
12994
|
] }),
|
|
13007
12995
|
isNft && selectedAsset ? (
|
|
13008
12996
|
// NFT display card
|
|
13009
|
-
/* @__PURE__ */ (0,
|
|
12997
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(NftDisplayCard, { asset: selectedAsset })
|
|
13010
12998
|
) : (
|
|
13011
12999
|
// Fungible token amount input
|
|
13012
|
-
/* @__PURE__ */ (0,
|
|
13013
|
-
selectedAsset && /* @__PURE__ */ (0,
|
|
13000
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("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: [
|
|
13001
|
+
selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13014
13002
|
AssetSelector,
|
|
13015
13003
|
{
|
|
13016
13004
|
assets,
|
|
@@ -13019,7 +13007,7 @@ function SendLumiaMenu() {
|
|
|
13019
13007
|
disabled: isAssetsLoading
|
|
13020
13008
|
}
|
|
13021
13009
|
),
|
|
13022
|
-
/* @__PURE__ */ (0,
|
|
13010
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13023
13011
|
"input",
|
|
13024
13012
|
{
|
|
13025
13013
|
type: "number",
|
|
@@ -13035,12 +13023,12 @@ function SendLumiaMenu() {
|
|
|
13035
13023
|
)
|
|
13036
13024
|
}
|
|
13037
13025
|
),
|
|
13038
|
-
/* @__PURE__ */ (0,
|
|
13026
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", children: "MAX" })
|
|
13039
13027
|
] })
|
|
13040
13028
|
),
|
|
13041
|
-
isNft && selectedAsset && /* @__PURE__ */ (0,
|
|
13042
|
-
/* @__PURE__ */ (0,
|
|
13043
|
-
/* @__PURE__ */ (0,
|
|
13029
|
+
isNft && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-2 mt-2", children: [
|
|
13030
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Change asset:" }),
|
|
13031
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13044
13032
|
AssetSelector,
|
|
13045
13033
|
{
|
|
13046
13034
|
assets,
|
|
@@ -13051,71 +13039,71 @@ function SendLumiaMenu() {
|
|
|
13051
13039
|
)
|
|
13052
13040
|
] })
|
|
13053
13041
|
] }),
|
|
13054
|
-
isSecurity && effectiveAddress && amount && /* @__PURE__ */ (0,
|
|
13042
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn(
|
|
13055
13043
|
"flex items-center gap-2 p-3 rounded-[var(--l-pass-el-bdrs)]",
|
|
13056
13044
|
isComplianceLoading && "bg-[var(--l-pass-bg-info)] text-[var(--l-pass-info)]",
|
|
13057
13045
|
!isComplianceLoading && erc3643CanTransfer && "bg-[var(--l-pass-bg-success)] text-[var(--l-pass-success)]",
|
|
13058
13046
|
!isComplianceLoading && !erc3643CanTransfer && "bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)]"
|
|
13059
|
-
), children: isComplianceLoading ? /* @__PURE__ */ (0,
|
|
13060
|
-
/* @__PURE__ */ (0,
|
|
13061
|
-
/* @__PURE__ */ (0,
|
|
13062
|
-
] }) : erc3643CanTransfer ? /* @__PURE__ */ (0,
|
|
13063
|
-
/* @__PURE__ */ (0,
|
|
13064
|
-
/* @__PURE__ */ (0,
|
|
13065
|
-
] }) : /* @__PURE__ */ (0,
|
|
13066
|
-
/* @__PURE__ */ (0,
|
|
13067
|
-
/* @__PURE__ */ (0,
|
|
13047
|
+
), children: isComplianceLoading ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13048
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
13049
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: "Checking compliance..." })
|
|
13050
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13051
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.CheckCircle2, { className: "h-4 w-4" }),
|
|
13052
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: "Transfer compliant" })
|
|
13053
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13054
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AlertCircle, { className: "h-4 w-4" }),
|
|
13055
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: complianceError || "Transfer not allowed" })
|
|
13068
13056
|
] }) }),
|
|
13069
|
-
(validationError || error) && /* @__PURE__ */ (0,
|
|
13070
|
-
/* @__PURE__ */ (0,
|
|
13071
|
-
/* @__PURE__ */ (0,
|
|
13057
|
+
(validationError || error) && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-2 p-3 bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)] rounded-[var(--l-pass-el-bdrs)]", children: [
|
|
13058
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AlertCircle, { className: "h-4 w-4" }),
|
|
13059
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: validationError || error })
|
|
13072
13060
|
] }),
|
|
13073
|
-
/* @__PURE__ */ (0,
|
|
13061
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleSend, disabled: isLoading || isComplianceLoading, className: "w-full", size: "large", children: "Continue" })
|
|
13074
13062
|
] }),
|
|
13075
|
-
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ (0,
|
|
13076
|
-
isNicknameInput && isFrozen && /* @__PURE__ */ (0,
|
|
13077
|
-
/* @__PURE__ */ (0,
|
|
13078
|
-
/* @__PURE__ */ (0,
|
|
13063
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13064
|
+
isNicknameInput && isFrozen && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("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: [
|
|
13065
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AlertTriangle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13066
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm font-medium", children: "This handle is frozen. Proceed with caution." })
|
|
13079
13067
|
] }),
|
|
13080
|
-
isSecurity && erc3643CanTransfer && /* @__PURE__ */ (0,
|
|
13081
|
-
/* @__PURE__ */ (0,
|
|
13082
|
-
/* @__PURE__ */ (0,
|
|
13068
|
+
isSecurity && erc3643CanTransfer && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("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: [
|
|
13069
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Shield, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13070
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm font-medium", children: "Security token compliance verified" })
|
|
13083
13071
|
] }),
|
|
13084
|
-
/* @__PURE__ */ (0,
|
|
13085
|
-
/* @__PURE__ */ (0,
|
|
13086
|
-
nicknameData.avatarSvg ? /* @__PURE__ */ (0,
|
|
13072
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "bg-[var(--l-pass-bg-secondary)] rounded-[var(--l-pass-el-bdrs)] p-4", children: isNicknameInput && nicknameData ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13073
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-start gap-3 mb-4", children: [
|
|
13074
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13087
13075
|
"img",
|
|
13088
13076
|
{
|
|
13089
13077
|
src: nicknameData.avatarSvg,
|
|
13090
13078
|
alt: nicknameData.handle,
|
|
13091
13079
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
13092
13080
|
}
|
|
13093
|
-
) : /* @__PURE__ */ (0,
|
|
13094
|
-
/* @__PURE__ */ (0,
|
|
13095
|
-
/* @__PURE__ */ (0,
|
|
13096
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
13097
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
13098
|
-
/* @__PURE__ */ (0,
|
|
13081
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-bg)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.AtSign, { className: "w-6 h-6 text-[var(--l-pass-fg-muted)]" }) }),
|
|
13082
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
13083
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold text-lg text-[var(--l-pass-fg)] truncate", children: nicknameData.handle }),
|
|
13084
|
+
nicknameData.fingerprint && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: `flex items-center gap-1.5 text-sm ${isFingerprintVerified ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-error)]"}`, children: [
|
|
13085
|
+
isFingerprintVerified ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Shield, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.ShieldAlert, { className: "w-4 h-4 flex-shrink-0" }),
|
|
13086
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { children: [
|
|
13099
13087
|
"Fingerprint: ",
|
|
13100
13088
|
nicknameData.fingerprint
|
|
13101
13089
|
] }),
|
|
13102
|
-
isFingerprintVerified && /* @__PURE__ */ (0,
|
|
13103
|
-
/* @__PURE__ */ (0,
|
|
13090
|
+
isFingerprintVerified && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.CheckCircle2, { className: "w-3 h-3" }),
|
|
13091
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs", children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
13104
13092
|
] }),
|
|
13105
|
-
/* @__PURE__ */ (0,
|
|
13093
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-mono text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13106
13094
|
"Address: ",
|
|
13107
13095
|
`${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-6)}`
|
|
13108
13096
|
] })
|
|
13109
13097
|
] })
|
|
13110
13098
|
] }),
|
|
13111
|
-
/* @__PURE__ */ (0,
|
|
13099
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "border-t border-[var(--l-pass-border)] pt-3 space-y-2 text-sm text-[var(--l-pass-fg)]", children: [
|
|
13112
13100
|
isNft ? (
|
|
13113
13101
|
// NFT details
|
|
13114
|
-
/* @__PURE__ */ (0,
|
|
13115
|
-
/* @__PURE__ */ (0,
|
|
13116
|
-
/* @__PURE__ */ (0,
|
|
13117
|
-
/* @__PURE__ */ (0,
|
|
13118
|
-
selectedAsset.tokenId && /* @__PURE__ */ (0,
|
|
13102
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_jsx_runtime65.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between items-start", children: [
|
|
13103
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13104
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-right", children: [
|
|
13105
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13106
|
+
selectedAsset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13119
13107
|
"#",
|
|
13120
13108
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13121
13109
|
] })
|
|
@@ -13123,34 +13111,34 @@ function SendLumiaMenu() {
|
|
|
13123
13111
|
] }) })
|
|
13124
13112
|
) : (
|
|
13125
13113
|
// Fungible token details
|
|
13126
|
-
/* @__PURE__ */ (0,
|
|
13127
|
-
/* @__PURE__ */ (0,
|
|
13128
|
-
/* @__PURE__ */ (0,
|
|
13114
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13115
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13116
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-semibold", children: [
|
|
13129
13117
|
amount,
|
|
13130
13118
|
" ",
|
|
13131
13119
|
selectedAsset.symbol
|
|
13132
13120
|
] })
|
|
13133
13121
|
] })
|
|
13134
13122
|
),
|
|
13135
|
-
/* @__PURE__ */ (0,
|
|
13136
|
-
/* @__PURE__ */ (0,
|
|
13137
|
-
/* @__PURE__ */ (0,
|
|
13123
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13124
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13125
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Lumia Beam" })
|
|
13138
13126
|
] })
|
|
13139
13127
|
] })
|
|
13140
|
-
] }) : /* @__PURE__ */ (0,
|
|
13141
|
-
/* @__PURE__ */ (0,
|
|
13142
|
-
/* @__PURE__ */ (0,
|
|
13143
|
-
/* @__PURE__ */ (0,
|
|
13144
|
-
/* @__PURE__ */ (0,
|
|
13145
|
-
/* @__PURE__ */ (0,
|
|
13128
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13129
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h3", { className: "font-medium mb-3 text-[var(--l-pass-fg)]", children: "Transaction Details" }),
|
|
13130
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "space-y-2 text-sm text-[var(--l-pass-fg)]", children: [
|
|
13131
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13132
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "To:" }),
|
|
13133
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
13146
13134
|
] }),
|
|
13147
13135
|
isNft ? (
|
|
13148
13136
|
// NFT details
|
|
13149
|
-
/* @__PURE__ */ (0,
|
|
13150
|
-
/* @__PURE__ */ (0,
|
|
13151
|
-
/* @__PURE__ */ (0,
|
|
13152
|
-
/* @__PURE__ */ (0,
|
|
13153
|
-
selectedAsset.tokenId && /* @__PURE__ */ (0,
|
|
13137
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_jsx_runtime65.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between items-start", children: [
|
|
13138
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13139
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-right", children: [
|
|
13140
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13141
|
+
selectedAsset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13154
13142
|
"#",
|
|
13155
13143
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13156
13144
|
] })
|
|
@@ -13158,43 +13146,43 @@ function SendLumiaMenu() {
|
|
|
13158
13146
|
] }) })
|
|
13159
13147
|
) : (
|
|
13160
13148
|
// Fungible token details
|
|
13161
|
-
/* @__PURE__ */ (0,
|
|
13162
|
-
/* @__PURE__ */ (0,
|
|
13163
|
-
/* @__PURE__ */ (0,
|
|
13149
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13150
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13151
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-semibold", children: [
|
|
13164
13152
|
amount,
|
|
13165
13153
|
" ",
|
|
13166
13154
|
selectedAsset.symbol
|
|
13167
13155
|
] })
|
|
13168
13156
|
] })
|
|
13169
13157
|
),
|
|
13170
|
-
/* @__PURE__ */ (0,
|
|
13171
|
-
/* @__PURE__ */ (0,
|
|
13172
|
-
/* @__PURE__ */ (0,
|
|
13158
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13159
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13160
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Lumia Beam" })
|
|
13173
13161
|
] })
|
|
13174
13162
|
] })
|
|
13175
13163
|
] }) }),
|
|
13176
|
-
/* @__PURE__ */ (0,
|
|
13177
|
-
/* @__PURE__ */ (0,
|
|
13178
|
-
/* @__PURE__ */ (0,
|
|
13179
|
-
isLoading && /* @__PURE__ */ (0,
|
|
13164
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex gap-2", children: [
|
|
13165
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
13166
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
13167
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
13180
13168
|
"Confirm"
|
|
13181
13169
|
] })
|
|
13182
13170
|
] })
|
|
13183
13171
|
] }),
|
|
13184
|
-
txStep === "pending" && /* @__PURE__ */ (0,
|
|
13185
|
-
/* @__PURE__ */ (0,
|
|
13186
|
-
/* @__PURE__ */ (0,
|
|
13187
|
-
/* @__PURE__ */ (0,
|
|
13188
|
-
/* @__PURE__ */ (0,
|
|
13172
|
+
txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
|
|
13173
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.Loader, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
13174
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { children: [
|
|
13175
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
13176
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
13189
13177
|
] })
|
|
13190
13178
|
] }),
|
|
13191
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ (0,
|
|
13192
|
-
/* @__PURE__ */ (0,
|
|
13193
|
-
/* @__PURE__ */ (0,
|
|
13194
|
-
/* @__PURE__ */ (0,
|
|
13195
|
-
/* @__PURE__ */ (0,
|
|
13179
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13180
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-center py-4", children: [
|
|
13181
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react44.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
13182
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
13183
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
13196
13184
|
] }),
|
|
13197
|
-
/* @__PURE__ */ (0,
|
|
13185
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
13198
13186
|
] })
|
|
13199
13187
|
] });
|
|
13200
13188
|
}
|
|
@@ -13204,7 +13192,7 @@ var import_lucide_react45 = require("lucide-react");
|
|
|
13204
13192
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
13205
13193
|
var import_react51 = require("react");
|
|
13206
13194
|
init_clients();
|
|
13207
|
-
var
|
|
13195
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
13208
13196
|
function ReceiveLumiaMenu() {
|
|
13209
13197
|
const session = useLumiaPassportSession((st) => st.session);
|
|
13210
13198
|
const address = session?.smartAccountAddress ?? null;
|
|
@@ -13256,7 +13244,7 @@ function ReceiveLumiaMenu() {
|
|
|
13256
13244
|
console.error("Failed to copy fingerprint:", error);
|
|
13257
13245
|
}
|
|
13258
13246
|
}, [fingerprint]);
|
|
13259
|
-
return /* @__PURE__ */ (0,
|
|
13247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
13260
13248
|
"div",
|
|
13261
13249
|
{
|
|
13262
13250
|
style: {
|
|
@@ -13265,61 +13253,64 @@ function ReceiveLumiaMenu() {
|
|
|
13265
13253
|
},
|
|
13266
13254
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
13267
13255
|
children: [
|
|
13268
|
-
/* @__PURE__ */ (0,
|
|
13269
|
-
/* @__PURE__ */ (0,
|
|
13270
|
-
/* @__PURE__ */ (0,
|
|
13256
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13257
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
13258
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
13271
13259
|
] }),
|
|
13272
|
-
/* @__PURE__ */ (0,
|
|
13273
|
-
/* @__PURE__ */ (0,
|
|
13274
|
-
/* @__PURE__ */ (0,
|
|
13260
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
|
|
13261
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
13262
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
13275
13263
|
] }),
|
|
13276
|
-
/* @__PURE__ */ (0,
|
|
13277
|
-
fingerprint && /* @__PURE__ */ (0,
|
|
13278
|
-
/* @__PURE__ */ (0,
|
|
13279
|
-
/* @__PURE__ */ (0,
|
|
13280
|
-
/* @__PURE__ */ (0,
|
|
13281
|
-
/* @__PURE__ */ (0,
|
|
13282
|
-
/* @__PURE__ */ (0,
|
|
13283
|
-
/* @__PURE__ */ (0,
|
|
13264
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
13265
|
+
fingerprint && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center justify-center gap-2 p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-secondary)]", children: [
|
|
13266
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.Shield, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
|
|
13267
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Fingerprint:" }),
|
|
13268
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "font-mono text-sm font-semibold text-[var(--l-pass-fg)]", children: fingerprint }),
|
|
13269
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "relative group", children: [
|
|
13270
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.Info, { className: "w-3.5 h-3.5 text-[var(--l-pass-fg-muted)] cursor-help" }),
|
|
13271
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("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" })
|
|
13284
13272
|
] }),
|
|
13285
|
-
/* @__PURE__ */ (0,
|
|
13273
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
13286
13274
|
"button",
|
|
13287
13275
|
{
|
|
13288
13276
|
onClick: handleCopyFingerprint,
|
|
13289
13277
|
className: "p-1 rounded hover:bg-[var(--l-pass-bg)] transition-colors",
|
|
13290
13278
|
title: "Copy fingerprint",
|
|
13291
|
-
children: fingerprintCopied ? /* @__PURE__ */ (0,
|
|
13279
|
+
children: fingerprintCopied ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.CheckCircle2, { className: "w-3.5 h-3.5 text-[var(--l-pass-bg-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.Copy, { className: "w-3.5 h-3.5 text-[var(--l-pass-fg-muted)]" })
|
|
13292
13280
|
}
|
|
13293
13281
|
)
|
|
13294
13282
|
] }),
|
|
13295
|
-
/* @__PURE__ */ (0,
|
|
13296
|
-
/* @__PURE__ */ (0,
|
|
13297
|
-
/* @__PURE__ */ (0,
|
|
13298
|
-
/* @__PURE__ */ (0,
|
|
13299
|
-
/* @__PURE__ */ (0,
|
|
13300
|
-
] }) : /* @__PURE__ */ (0,
|
|
13301
|
-
/* @__PURE__ */ (0,
|
|
13302
|
-
/* @__PURE__ */ (0,
|
|
13283
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Highlight, { type: "info", children: [
|
|
13284
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
13285
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { onClick: handleCopy, className: "w-full", size: "large", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
13286
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.CheckCircle2, { className: "h-4 w-4" }),
|
|
13287
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: "Copied!" })
|
|
13288
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
13289
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react45.Copy, { className: "h-4 w-4" }),
|
|
13290
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: "Copy Address" })
|
|
13303
13291
|
] }) })
|
|
13304
13292
|
] }),
|
|
13305
|
-
/* @__PURE__ */ (0,
|
|
13293
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
|
|
13306
13294
|
]
|
|
13307
13295
|
}
|
|
13308
13296
|
);
|
|
13309
13297
|
}
|
|
13310
13298
|
|
|
13311
13299
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
13300
|
+
var import_react_query35 = require("@tanstack/react-query");
|
|
13312
13301
|
var import_lucide_react47 = require("lucide-react");
|
|
13313
13302
|
var import_react52 = require("react");
|
|
13303
|
+
init_nickname();
|
|
13304
|
+
init_profile();
|
|
13314
13305
|
|
|
13315
13306
|
// src/internal/components/SettingsMenu/constants.ts
|
|
13316
13307
|
var import_lucide_react46 = require("lucide-react");
|
|
13317
13308
|
|
|
13318
13309
|
// src/internal/assets/KycIcon.tsx
|
|
13319
|
-
var
|
|
13310
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
13320
13311
|
function KycIcon(props) {
|
|
13321
13312
|
const { width = "24", height = "24", ...rest } = props;
|
|
13322
|
-
return /* @__PURE__ */ (0,
|
|
13313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
13323
13314
|
"path",
|
|
13324
13315
|
{
|
|
13325
13316
|
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",
|
|
@@ -13339,7 +13330,7 @@ var NAV_BUTTONS = [
|
|
|
13339
13330
|
];
|
|
13340
13331
|
|
|
13341
13332
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
13342
|
-
var
|
|
13333
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
13343
13334
|
function SettingsMenu() {
|
|
13344
13335
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13345
13336
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -13348,9 +13339,15 @@ function SettingsMenu() {
|
|
|
13348
13339
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
13349
13340
|
(0, import_react52.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
|
|
13350
13341
|
useProvidersList();
|
|
13342
|
+
(0, import_react_query35.useQuery)({
|
|
13343
|
+
retry: 1,
|
|
13344
|
+
enabled: !!address,
|
|
13345
|
+
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
13346
|
+
queryFn: getNicknameInfo
|
|
13347
|
+
});
|
|
13351
13348
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
13352
13349
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
13353
|
-
return /* @__PURE__ */ (0,
|
|
13350
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
13354
13351
|
"div",
|
|
13355
13352
|
{
|
|
13356
13353
|
style: {
|
|
@@ -13359,11 +13356,11 @@ function SettingsMenu() {
|
|
|
13359
13356
|
},
|
|
13360
13357
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
13361
13358
|
children: [
|
|
13362
|
-
/* @__PURE__ */ (0,
|
|
13363
|
-
/* @__PURE__ */ (0,
|
|
13364
|
-
/* @__PURE__ */ (0,
|
|
13359
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13360
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react47.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
13361
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
13365
13362
|
] }),
|
|
13366
|
-
/* @__PURE__ */ (0,
|
|
13363
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
13367
13364
|
Button,
|
|
13368
13365
|
{
|
|
13369
13366
|
variant: "outline",
|
|
@@ -13376,8 +13373,8 @@ function SettingsMenu() {
|
|
|
13376
13373
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
13377
13374
|
),
|
|
13378
13375
|
children: [
|
|
13379
|
-
/* @__PURE__ */ (0,
|
|
13380
|
-
/* @__PURE__ */ (0,
|
|
13376
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon2, { className: "w-4 h-4" }),
|
|
13377
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: name })
|
|
13381
13378
|
]
|
|
13382
13379
|
},
|
|
13383
13380
|
id
|
|
@@ -13389,33 +13386,33 @@ function SettingsMenu() {
|
|
|
13389
13386
|
|
|
13390
13387
|
// src/internal/components/TermsOfService.tsx
|
|
13391
13388
|
var import_lucide_react48 = require("lucide-react");
|
|
13392
|
-
var
|
|
13389
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
13393
13390
|
function TermsOfService() {
|
|
13394
13391
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13395
13392
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13396
|
-
return /* @__PURE__ */ (0,
|
|
13397
|
-
/* @__PURE__ */ (0,
|
|
13398
|
-
/* @__PURE__ */ (0,
|
|
13393
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
13394
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13395
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
13399
13396
|
Button,
|
|
13400
13397
|
{
|
|
13401
13398
|
variant: "ghost",
|
|
13402
13399
|
size: "icon",
|
|
13403
13400
|
title: "Back",
|
|
13404
13401
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
13405
|
-
children: /* @__PURE__ */ (0,
|
|
13402
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react48.ArrowLeft, { className: "h-4 w-4" })
|
|
13406
13403
|
}
|
|
13407
13404
|
),
|
|
13408
|
-
/* @__PURE__ */ (0,
|
|
13405
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
13409
13406
|
] }),
|
|
13410
|
-
/* @__PURE__ */ (0,
|
|
13411
|
-
/* @__PURE__ */ (0,
|
|
13412
|
-
/* @__PURE__ */ (0,
|
|
13407
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Highlight, { type: "warning", className: "text-center", children: [
|
|
13408
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "block text-xs", children: "By using Lumia Passport you agree to our terms." }),
|
|
13409
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "block text-xs", children: "To be updated..." })
|
|
13413
13410
|
] })
|
|
13414
13411
|
] });
|
|
13415
13412
|
}
|
|
13416
13413
|
|
|
13417
13414
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13418
|
-
var
|
|
13415
|
+
var import_react_query36 = require("@tanstack/react-query");
|
|
13419
13416
|
var import_lucide_react50 = require("lucide-react");
|
|
13420
13417
|
var import_react53 = require("react");
|
|
13421
13418
|
|
|
@@ -13795,22 +13792,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
13795
13792
|
};
|
|
13796
13793
|
|
|
13797
13794
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13798
|
-
var
|
|
13795
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
13799
13796
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
13800
13797
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
13801
13798
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
13802
|
-
return /* @__PURE__ */ (0,
|
|
13803
|
-
/* @__PURE__ */ (0,
|
|
13804
|
-
/* @__PURE__ */ (0,
|
|
13805
|
-
/* @__PURE__ */ (0,
|
|
13799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
|
|
13800
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13801
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
|
|
13802
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13806
13803
|
formatValue2(internal.value, internalDecimals),
|
|
13807
13804
|
" ",
|
|
13808
13805
|
internalSymbol
|
|
13809
13806
|
] })
|
|
13810
13807
|
] }),
|
|
13811
|
-
/* @__PURE__ */ (0,
|
|
13812
|
-
/* @__PURE__ */ (0,
|
|
13813
|
-
/* @__PURE__ */ (0,
|
|
13808
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13809
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
|
|
13810
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
|
|
13814
13811
|
] })
|
|
13815
13812
|
] });
|
|
13816
13813
|
}
|
|
@@ -13821,7 +13818,7 @@ function TransactionsGroup(props) {
|
|
|
13821
13818
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
13822
13819
|
const assetDecimals = parent.decimals ?? 18;
|
|
13823
13820
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
13824
|
-
return /* @__PURE__ */ (0,
|
|
13821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13825
13822
|
"div",
|
|
13826
13823
|
{
|
|
13827
13824
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -13831,28 +13828,28 @@ function TransactionsGroup(props) {
|
|
|
13831
13828
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
13832
13829
|
),
|
|
13833
13830
|
children: [
|
|
13834
|
-
/* @__PURE__ */ (0,
|
|
13835
|
-
/* @__PURE__ */ (0,
|
|
13836
|
-
parent.direction === "in" ? /* @__PURE__ */ (0,
|
|
13837
|
-
/* @__PURE__ */ (0,
|
|
13838
|
-
parent.status === "ok" ? /* @__PURE__ */ (0,
|
|
13831
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13832
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
13833
|
+
parent.direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react49.ChevronLeft, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react49.ChevronRight, { className: "w-4 h-4" }),
|
|
13834
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
13835
|
+
parent.status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(NegativeIcon, {})
|
|
13839
13836
|
] }),
|
|
13840
|
-
/* @__PURE__ */ (0,
|
|
13837
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "block flex-0 font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
13841
13838
|
] }),
|
|
13842
|
-
/* @__PURE__ */ (0,
|
|
13843
|
-
/* @__PURE__ */ (0,
|
|
13844
|
-
/* @__PURE__ */ (0,
|
|
13839
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13840
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col gap-0", children: [
|
|
13841
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "font-bold", children: [
|
|
13845
13842
|
formatValue2(parent.value, assetDecimals),
|
|
13846
13843
|
" ",
|
|
13847
13844
|
assetSymbol
|
|
13848
13845
|
] }),
|
|
13849
|
-
/* @__PURE__ */ (0,
|
|
13846
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "text-[10px] font-mono text-[var(--l-pass-fg-muted)]", children: [
|
|
13850
13847
|
isIncoming ? "From: " : "To: ",
|
|
13851
13848
|
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
13852
13849
|
] })
|
|
13853
13850
|
] }),
|
|
13854
|
-
/* @__PURE__ */ (0,
|
|
13855
|
-
/* @__PURE__ */ (0,
|
|
13851
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-0", children: [
|
|
13852
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13856
13853
|
Button,
|
|
13857
13854
|
{
|
|
13858
13855
|
variant: "ghost",
|
|
@@ -13861,10 +13858,10 @@ function TransactionsGroup(props) {
|
|
|
13861
13858
|
onClick: (e) => {
|
|
13862
13859
|
e.stopPropagation();
|
|
13863
13860
|
},
|
|
13864
|
-
children: /* @__PURE__ */ (0,
|
|
13861
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react49.Copy, { className: "w-4 h-4" })
|
|
13865
13862
|
}
|
|
13866
13863
|
),
|
|
13867
|
-
/* @__PURE__ */ (0,
|
|
13864
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13868
13865
|
Button,
|
|
13869
13866
|
{
|
|
13870
13867
|
variant: "ghost",
|
|
@@ -13873,24 +13870,24 @@ function TransactionsGroup(props) {
|
|
|
13873
13870
|
onClick: (e) => {
|
|
13874
13871
|
e.stopPropagation();
|
|
13875
13872
|
},
|
|
13876
|
-
children: /* @__PURE__ */ (0,
|
|
13873
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LumiaIcon, { className: "w-4 h-4" })
|
|
13877
13874
|
}
|
|
13878
13875
|
)
|
|
13879
13876
|
] })
|
|
13880
13877
|
] }),
|
|
13881
|
-
internalsToRender.length > 0 && /* @__PURE__ */ (0,
|
|
13882
|
-
/* @__PURE__ */ (0,
|
|
13883
|
-
/* @__PURE__ */ (0,
|
|
13884
|
-
/* @__PURE__ */ (0,
|
|
13885
|
-
/* @__PURE__ */ (0,
|
|
13878
|
+
internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
13879
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
13880
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
13881
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Internals" }),
|
|
13882
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
13886
13883
|
] }),
|
|
13887
|
-
/* @__PURE__ */ (0,
|
|
13884
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13888
13885
|
"div",
|
|
13889
13886
|
{
|
|
13890
13887
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
13891
13888
|
onClick: (event) => event.stopPropagation(),
|
|
13892
13889
|
children: [
|
|
13893
|
-
/* @__PURE__ */ (0,
|
|
13890
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13894
13891
|
Button,
|
|
13895
13892
|
{
|
|
13896
13893
|
variant: "ghost",
|
|
@@ -13898,16 +13895,16 @@ function TransactionsGroup(props) {
|
|
|
13898
13895
|
className: "w-full justify-between",
|
|
13899
13896
|
onClick: () => onToggleExpanded(group.id),
|
|
13900
13897
|
children: [
|
|
13901
|
-
/* @__PURE__ */ (0,
|
|
13898
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13902
13899
|
"View internal calls (",
|
|
13903
13900
|
internalsToRender.length,
|
|
13904
13901
|
")"
|
|
13905
13902
|
] }),
|
|
13906
|
-
/* @__PURE__ */ (0,
|
|
13903
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: expanded ? "Hide" : "Show" })
|
|
13907
13904
|
]
|
|
13908
13905
|
}
|
|
13909
13906
|
),
|
|
13910
|
-
expanded && /* @__PURE__ */ (0,
|
|
13907
|
+
expanded && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13911
13908
|
InternalTransaction,
|
|
13912
13909
|
{
|
|
13913
13910
|
internal,
|
|
@@ -13926,9 +13923,9 @@ function TransactionsGroup(props) {
|
|
|
13926
13923
|
}
|
|
13927
13924
|
|
|
13928
13925
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13929
|
-
var
|
|
13926
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
13930
13927
|
function TransactionsMenu() {
|
|
13931
|
-
const qc = (0,
|
|
13928
|
+
const qc = (0, import_react_query36.useQueryClient)();
|
|
13932
13929
|
const address = useLumiaPassportSession((st) => st.address);
|
|
13933
13930
|
const page = useLayoutDataStore((st) => st.page);
|
|
13934
13931
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -13939,7 +13936,7 @@ function TransactionsMenu() {
|
|
|
13939
13936
|
isLoading: isTxHistoryLoading,
|
|
13940
13937
|
isFetching: isTxHistoryFetching,
|
|
13941
13938
|
error: txHistoryError
|
|
13942
|
-
} = (0,
|
|
13939
|
+
} = (0, import_react_query36.useQuery)({
|
|
13943
13940
|
retry: false,
|
|
13944
13941
|
enabled: !!address && page === "transactions",
|
|
13945
13942
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
|
|
@@ -13950,7 +13947,7 @@ function TransactionsMenu() {
|
|
|
13950
13947
|
[qc, address]
|
|
13951
13948
|
);
|
|
13952
13949
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
13953
|
-
return /* @__PURE__ */ (0,
|
|
13950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13954
13951
|
"div",
|
|
13955
13952
|
{
|
|
13956
13953
|
style: {
|
|
@@ -13958,11 +13955,11 @@ function TransactionsMenu() {
|
|
|
13958
13955
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
13959
13956
|
},
|
|
13960
13957
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
13961
|
-
children: /* @__PURE__ */ (0,
|
|
13962
|
-
/* @__PURE__ */ (0,
|
|
13963
|
-
/* @__PURE__ */ (0,
|
|
13964
|
-
/* @__PURE__ */ (0,
|
|
13965
|
-
/* @__PURE__ */ (0,
|
|
13958
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
13959
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13960
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react50.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
13961
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
13962
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13966
13963
|
Button,
|
|
13967
13964
|
{
|
|
13968
13965
|
variant: "ghost",
|
|
@@ -13970,17 +13967,17 @@ function TransactionsMenu() {
|
|
|
13970
13967
|
onClick: refreshTxHistory,
|
|
13971
13968
|
disabled: isTxHistoryFetching,
|
|
13972
13969
|
title: "Refresh transactions",
|
|
13973
|
-
children: isTxHistoryFetching ? /* @__PURE__ */ (0,
|
|
13970
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react50.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react50.RefreshCw, { className: "h-4 w-4" })
|
|
13974
13971
|
}
|
|
13975
13972
|
)
|
|
13976
13973
|
] }),
|
|
13977
|
-
isTxHistoryLoading && /* @__PURE__ */ (0,
|
|
13978
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0,
|
|
13979
|
-
/* @__PURE__ */ (0,
|
|
13980
|
-
/* @__PURE__ */ (0,
|
|
13974
|
+
isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react50.Loader, { className: "h-5 w-5 animate-spin" }) }),
|
|
13975
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
13976
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react50.XCircle, { className: "w-4 h-4 flex-none" }),
|
|
13977
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
13981
13978
|
] }),
|
|
13982
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0,
|
|
13983
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0,
|
|
13979
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { children: "No transactions found." }) }),
|
|
13980
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13984
13981
|
TransactionsGroup,
|
|
13985
13982
|
{
|
|
13986
13983
|
group,
|
|
@@ -14090,12 +14087,12 @@ var PAGE_MAP = {
|
|
|
14090
14087
|
key: "nickname-settings" /* NICKNAME_SETTINGS */,
|
|
14091
14088
|
title: "Nickname Settings",
|
|
14092
14089
|
description: "View and manage your @nickname",
|
|
14093
|
-
component:
|
|
14090
|
+
component: NicknameMenu
|
|
14094
14091
|
}
|
|
14095
14092
|
};
|
|
14096
14093
|
|
|
14097
14094
|
// src/internal/hooks/usePageMapper.tsx
|
|
14098
|
-
var
|
|
14095
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
14099
14096
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
14100
14097
|
function usePageMapper() {
|
|
14101
14098
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -14123,7 +14120,7 @@ function usePageMapper() {
|
|
|
14123
14120
|
const PageContentComponent = pageItem.component;
|
|
14124
14121
|
setDialogTitle(pageItem.title);
|
|
14125
14122
|
setDialogDescription(pageItem.description);
|
|
14126
|
-
setDialogContent(/* @__PURE__ */ (0,
|
|
14123
|
+
setDialogContent(/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(PageContentComponent, {}));
|
|
14127
14124
|
setIsDialogOpen(true);
|
|
14128
14125
|
},
|
|
14129
14126
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -14141,7 +14138,7 @@ function usePageMapper() {
|
|
|
14141
14138
|
}
|
|
14142
14139
|
|
|
14143
14140
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
14144
|
-
var
|
|
14141
|
+
var import_react_query37 = require("@tanstack/react-query");
|
|
14145
14142
|
var import_react55 = require("react");
|
|
14146
14143
|
init_auth();
|
|
14147
14144
|
init_profile();
|
|
@@ -14160,7 +14157,7 @@ function useSettingsNotifications() {
|
|
|
14160
14157
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
14161
14158
|
const providers = import_auth3.jwtTokenManager.getProviders();
|
|
14162
14159
|
const hasEmail = providers.includes("email");
|
|
14163
|
-
const { data: userProfile = null } = (0,
|
|
14160
|
+
const { data: userProfile = null } = (0, import_react_query37.useQuery)({
|
|
14164
14161
|
retry: false,
|
|
14165
14162
|
enabled: !!address,
|
|
14166
14163
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
@@ -14212,7 +14209,7 @@ function useWalletStatus() {
|
|
|
14212
14209
|
}
|
|
14213
14210
|
|
|
14214
14211
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
14215
|
-
var
|
|
14212
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
14216
14213
|
function LumiaPassportDialog() {
|
|
14217
14214
|
const config = useLumiaPassportConfig().config;
|
|
14218
14215
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -14231,7 +14228,7 @@ function LumiaPassportDialog() {
|
|
|
14231
14228
|
useListenIframeAuthEvents();
|
|
14232
14229
|
useWalletStatus();
|
|
14233
14230
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
14234
|
-
return /* @__PURE__ */ (0,
|
|
14231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
14235
14232
|
Dialog,
|
|
14236
14233
|
{
|
|
14237
14234
|
open: isDialogOpen,
|
|
@@ -14239,11 +14236,11 @@ function LumiaPassportDialog() {
|
|
|
14239
14236
|
if (isDialogForced) return;
|
|
14240
14237
|
if (!open) setPage(null);
|
|
14241
14238
|
},
|
|
14242
|
-
children: /* @__PURE__ */ (0,
|
|
14243
|
-
/* @__PURE__ */ (0,
|
|
14244
|
-
/* @__PURE__ */ (0,
|
|
14245
|
-
!isHeaderHidden && /* @__PURE__ */ (0,
|
|
14246
|
-
/* @__PURE__ */ (0,
|
|
14239
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(DialogContent, { colorMode, className, children: [
|
|
14240
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogTitle, { children: dialogTitle }) }),
|
|
14241
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
14242
|
+
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Header, {}),
|
|
14243
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_framer_motion3.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
14247
14244
|
import_framer_motion3.motion.div,
|
|
14248
14245
|
{
|
|
14249
14246
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -14255,7 +14252,7 @@ function LumiaPassportDialog() {
|
|
|
14255
14252
|
},
|
|
14256
14253
|
page || "empty"
|
|
14257
14254
|
) }),
|
|
14258
|
-
/* @__PURE__ */ (0,
|
|
14255
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Footer, {})
|
|
14259
14256
|
] })
|
|
14260
14257
|
}
|
|
14261
14258
|
);
|
|
@@ -14305,12 +14302,12 @@ var TssManagerWithRef = import_react58.default.forwardRef((props, ref) => {
|
|
|
14305
14302
|
|
|
14306
14303
|
// src/internal/components/WalletConnectHandler.tsx
|
|
14307
14304
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
14308
|
-
var
|
|
14305
|
+
var import_react_query38 = require("@tanstack/react-query");
|
|
14309
14306
|
var import_react59 = __toESM(require("react"), 1);
|
|
14310
14307
|
var import_wagmi4 = require("wagmi");
|
|
14311
14308
|
init_wallet();
|
|
14312
14309
|
function WalletConnectHandler() {
|
|
14313
|
-
const qc = (0,
|
|
14310
|
+
const qc = (0, import_react_query38.useQueryClient)();
|
|
14314
14311
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
14315
14312
|
const passportWalletAddress = useLumiaPassportSession((st) => st.address);
|
|
14316
14313
|
const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
|
|
@@ -14379,7 +14376,7 @@ function WalletConnectHandler() {
|
|
|
14379
14376
|
setHasStartedLinking(false);
|
|
14380
14377
|
}
|
|
14381
14378
|
}, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
|
|
14382
|
-
const { mutate: handleWalletSign, isPending: isWalletSigning } = (0,
|
|
14379
|
+
const { mutate: handleWalletSign, isPending: isWalletSigning } = (0, import_react_query38.useMutation)({
|
|
14383
14380
|
mutationFn: async (payload) => {
|
|
14384
14381
|
const { chainId, signingWalletAddress } = payload;
|
|
14385
14382
|
if (!signingWalletAddress || !chainId) {
|
|
@@ -14458,7 +14455,7 @@ function WalletConnectHandler() {
|
|
|
14458
14455
|
}
|
|
14459
14456
|
|
|
14460
14457
|
// src/context/LumiaPassportSessionContext.tsx
|
|
14461
|
-
var
|
|
14458
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
14462
14459
|
var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
14463
14460
|
isLoading: false,
|
|
14464
14461
|
usePaymaster: true,
|
|
@@ -14484,17 +14481,17 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
|
14484
14481
|
}));
|
|
14485
14482
|
function LumiaPassportSessionProvider({ children }) {
|
|
14486
14483
|
const config = useLumiaPassportConfig().config;
|
|
14487
|
-
return /* @__PURE__ */ (0,
|
|
14484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_react60.Fragment, { children: [
|
|
14488
14485
|
children,
|
|
14489
|
-
config.current?.wallet?.enabled && /* @__PURE__ */ (0,
|
|
14490
|
-
/* @__PURE__ */ (0,
|
|
14491
|
-
/* @__PURE__ */ (0,
|
|
14486
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletConnectHandler, {}),
|
|
14487
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(BalanceFeedProvider, {}),
|
|
14488
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
14492
14489
|
TssManagerWithRef,
|
|
14493
14490
|
{
|
|
14494
14491
|
mpcPin: void 0
|
|
14495
14492
|
}
|
|
14496
14493
|
),
|
|
14497
|
-
/* @__PURE__ */ (0,
|
|
14494
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LumiaPassportDialog, {})
|
|
14498
14495
|
] });
|
|
14499
14496
|
}
|
|
14500
14497
|
|
|
@@ -14529,13 +14526,13 @@ var wagmiConfig = (0, import_wagmi5.createConfig)({
|
|
|
14529
14526
|
});
|
|
14530
14527
|
|
|
14531
14528
|
// src/context/WagmiContext.tsx
|
|
14532
|
-
var
|
|
14529
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
14533
14530
|
var LumiaWagmiProvider = ({ children }) => {
|
|
14534
|
-
return /* @__PURE__ */ (0,
|
|
14531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_wagmi6.WagmiProvider, { config: wagmiConfig, children });
|
|
14535
14532
|
};
|
|
14536
14533
|
|
|
14537
14534
|
// src/context/LumiaPassportContext.tsx
|
|
14538
|
-
var
|
|
14535
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
14539
14536
|
var LumiaPassportContext = (0, import_react61.createContext)(void 0);
|
|
14540
14537
|
function LumiaPassportProvider(props) {
|
|
14541
14538
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
@@ -14624,7 +14621,7 @@ function LumiaPassportProvider(props) {
|
|
|
14624
14621
|
}
|
|
14625
14622
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
14626
14623
|
const contextValue = (0, import_react61.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
14627
|
-
return /* @__PURE__ */ (0,
|
|
14624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
14628
14625
|
}
|
|
14629
14626
|
var useLumiaPassportConfig = () => {
|
|
14630
14627
|
const ctx = (0, import_react61.useContext)(LumiaPassportContext);
|
|
@@ -14633,12 +14630,12 @@ var useLumiaPassportConfig = () => {
|
|
|
14633
14630
|
};
|
|
14634
14631
|
|
|
14635
14632
|
// src/components/ConnectWalletButton.tsx
|
|
14636
|
-
var
|
|
14633
|
+
var import_react_query39 = require("@tanstack/react-query");
|
|
14637
14634
|
var import_lucide_react51 = require("lucide-react");
|
|
14638
14635
|
var import_react62 = require("react");
|
|
14639
14636
|
init_auth();
|
|
14640
14637
|
init_profile();
|
|
14641
|
-
var
|
|
14638
|
+
var import_jsx_runtime77 = (
|
|
14642
14639
|
/** external Buttons can be provided */
|
|
14643
14640
|
require("react/jsx-runtime")
|
|
14644
14641
|
);
|
|
@@ -14661,7 +14658,7 @@ function ConnectWalletButton(props) {
|
|
|
14661
14658
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
|
|
14662
14659
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
14663
14660
|
(0, import_react62.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
14664
|
-
const { data: profile, isLoading: isProfileLoading } = (0,
|
|
14661
|
+
const { data: profile, isLoading: isProfileLoading } = (0, import_react_query39.useQuery)({
|
|
14665
14662
|
retry: false,
|
|
14666
14663
|
enabled: !!address,
|
|
14667
14664
|
queryKey: [QUERY_KEYS.userProfile, address],
|
|
@@ -14677,18 +14674,18 @@ function ConnectWalletButton(props) {
|
|
|
14677
14674
|
return { server, local, backup: hasServerVault };
|
|
14678
14675
|
}, [session, address, hasServerVault]);
|
|
14679
14676
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
14680
|
-
return /* @__PURE__ */ (0,
|
|
14677
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { "data-lumia-passport-mode": colorMode, className: cn("lumia-scope w-fit h-fit", className), children: !address ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_jsx_runtime77.Fragment, { children: ConnectButton ? /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14681
14678
|
ConnectButton,
|
|
14682
14679
|
{
|
|
14683
14680
|
type: "button",
|
|
14684
14681
|
disabled: isConnecting,
|
|
14685
14682
|
onClick: () => setPage("auth" /* AUTH */),
|
|
14686
14683
|
children: [
|
|
14687
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14684
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react51.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14688
14685
|
connectButtonLabel
|
|
14689
14686
|
]
|
|
14690
14687
|
}
|
|
14691
|
-
) : /* @__PURE__ */ (0,
|
|
14688
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14692
14689
|
Button,
|
|
14693
14690
|
{
|
|
14694
14691
|
type: "button",
|
|
@@ -14705,11 +14702,11 @@ function ConnectWalletButton(props) {
|
|
|
14705
14702
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
14706
14703
|
),
|
|
14707
14704
|
children: [
|
|
14708
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14705
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react51.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14709
14706
|
connectButtonLabel.toUpperCase()
|
|
14710
14707
|
]
|
|
14711
14708
|
}
|
|
14712
|
-
) }) : /* @__PURE__ */ (0,
|
|
14709
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14713
14710
|
"button",
|
|
14714
14711
|
{
|
|
14715
14712
|
type: "button",
|
|
@@ -14722,23 +14719,23 @@ function ConnectWalletButton(props) {
|
|
|
14722
14719
|
"rounded-[var(--l-pass-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
14723
14720
|
),
|
|
14724
14721
|
children: [
|
|
14725
|
-
/* @__PURE__ */ (0,
|
|
14726
|
-
/* @__PURE__ */ (0,
|
|
14727
|
-
/* @__PURE__ */ (0,
|
|
14728
|
-
isProfileLoading ? /* @__PURE__ */ (0,
|
|
14729
|
-
/* @__PURE__ */ (0,
|
|
14722
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
|
|
14723
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
|
|
14724
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
14725
|
+
isProfileLoading ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react51.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--l-pass-fg)]", children: displayName }),
|
|
14726
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(KYCStatus, {})
|
|
14730
14727
|
] }),
|
|
14731
|
-
/* @__PURE__ */ (0,
|
|
14728
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(BalanceView, {})
|
|
14732
14729
|
] }),
|
|
14733
|
-
/* @__PURE__ */ (0,
|
|
14734
|
-
/* @__PURE__ */ (0,
|
|
14735
|
-
/* @__PURE__ */ (0,
|
|
14730
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
14731
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14732
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14736
14733
|
import_lucide_react51.Cloud,
|
|
14737
14734
|
{
|
|
14738
14735
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14739
14736
|
}
|
|
14740
14737
|
),
|
|
14741
|
-
/* @__PURE__ */ (0,
|
|
14738
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14742
14739
|
"div",
|
|
14743
14740
|
{
|
|
14744
14741
|
className: cn(
|
|
@@ -14753,14 +14750,14 @@ function ConnectWalletButton(props) {
|
|
|
14753
14750
|
}
|
|
14754
14751
|
)
|
|
14755
14752
|
] }),
|
|
14756
|
-
/* @__PURE__ */ (0,
|
|
14757
|
-
/* @__PURE__ */ (0,
|
|
14753
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14754
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14758
14755
|
import_lucide_react51.Laptop,
|
|
14759
14756
|
{
|
|
14760
14757
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14761
14758
|
}
|
|
14762
14759
|
),
|
|
14763
|
-
/* @__PURE__ */ (0,
|
|
14760
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14764
14761
|
"div",
|
|
14765
14762
|
{
|
|
14766
14763
|
className: cn(
|
|
@@ -14775,14 +14772,14 @@ function ConnectWalletButton(props) {
|
|
|
14775
14772
|
}
|
|
14776
14773
|
)
|
|
14777
14774
|
] }),
|
|
14778
|
-
/* @__PURE__ */ (0,
|
|
14779
|
-
/* @__PURE__ */ (0,
|
|
14775
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14776
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14780
14777
|
import_lucide_react51.Shield,
|
|
14781
14778
|
{
|
|
14782
14779
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14783
14780
|
}
|
|
14784
14781
|
),
|
|
14785
|
-
/* @__PURE__ */ (0,
|
|
14782
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14786
14783
|
"div",
|
|
14787
14784
|
{
|
|
14788
14785
|
className: cn(
|
|
@@ -14798,7 +14795,7 @@ function ConnectWalletButton(props) {
|
|
|
14798
14795
|
)
|
|
14799
14796
|
] })
|
|
14800
14797
|
] }),
|
|
14801
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
14798
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14802
14799
|
"div",
|
|
14803
14800
|
{
|
|
14804
14801
|
className: cn(
|
|
@@ -14892,23 +14889,23 @@ function useLumiaPassportColorMode() {
|
|
|
14892
14889
|
|
|
14893
14890
|
// src/components/ThemeToggle.tsx
|
|
14894
14891
|
var import_lucide_react52 = require("lucide-react");
|
|
14895
|
-
var
|
|
14892
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
14896
14893
|
function ThemeToggle(props) {
|
|
14897
14894
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
14898
|
-
return /* @__PURE__ */ (0,
|
|
14895
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14899
14896
|
"div",
|
|
14900
14897
|
{
|
|
14901
14898
|
className: "lumia-scope",
|
|
14902
14899
|
"data-lumia-passport-mode": colorMode,
|
|
14903
14900
|
style: { width: "fit-content", height: "fit-content" },
|
|
14904
|
-
children: /* @__PURE__ */ (0,
|
|
14901
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14905
14902
|
Button,
|
|
14906
14903
|
{
|
|
14907
14904
|
...props,
|
|
14908
14905
|
variant: "ghost",
|
|
14909
14906
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
14910
14907
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
14911
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
14908
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react52.Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react52.Moon, { className: "w-4 h-4" })
|
|
14912
14909
|
}
|
|
14913
14910
|
)
|
|
14914
14911
|
}
|
|
@@ -15145,7 +15142,7 @@ var rainbowTheme = {
|
|
|
15145
15142
|
|
|
15146
15143
|
// src/context/RainbowKitContext.tsx
|
|
15147
15144
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
15148
|
-
var
|
|
15145
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
15149
15146
|
function LumiaRainbowKitProvider({ children }) {
|
|
15150
15147
|
const config = useLumiaPassportConfig().config;
|
|
15151
15148
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -15164,8 +15161,8 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
15164
15161
|
},
|
|
15165
15162
|
[colorMode]
|
|
15166
15163
|
);
|
|
15167
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0,
|
|
15168
|
-
return /* @__PURE__ */ (0,
|
|
15164
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_jsx_runtime79.Fragment, { children });
|
|
15165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_wagmi8.WagmiProvider, { config: rainbowConfig2, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_rainbowkit3.RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
15169
15166
|
}
|
|
15170
15167
|
|
|
15171
15168
|
// src/internal/components/UserOpStatus.tsx
|
|
@@ -15183,7 +15180,7 @@ function cn2(...inputs) {
|
|
|
15183
15180
|
// src/internal/components/Address.tsx
|
|
15184
15181
|
var import_lucide_react53 = require("lucide-react");
|
|
15185
15182
|
var React9 = __toESM(require("react"), 1);
|
|
15186
|
-
var
|
|
15183
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
15187
15184
|
function toExplorerAddressUrl(address, chain) {
|
|
15188
15185
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
15189
15186
|
if (!base2) return null;
|
|
@@ -15205,11 +15202,11 @@ var Address = ({
|
|
|
15205
15202
|
const addr = address || "";
|
|
15206
15203
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
15207
15204
|
const [copied, setCopied] = React9.useState(false);
|
|
15208
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
15209
|
-
return /* @__PURE__ */ (0,
|
|
15210
|
-
label && /* @__PURE__ */ (0,
|
|
15211
|
-
/* @__PURE__ */ (0,
|
|
15212
|
-
showCopy && /* @__PURE__ */ (0,
|
|
15205
|
+
if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
15207
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
15208
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
15209
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15213
15210
|
Button,
|
|
15214
15211
|
{
|
|
15215
15212
|
variant: "ghost",
|
|
@@ -15223,10 +15220,10 @@ var Address = ({
|
|
|
15223
15220
|
} catch {
|
|
15224
15221
|
}
|
|
15225
15222
|
},
|
|
15226
|
-
children: /* @__PURE__ */ (0,
|
|
15223
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react53.Copy, { className: "h-4 w-4" })
|
|
15227
15224
|
}
|
|
15228
15225
|
),
|
|
15229
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15226
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
15230
15227
|
"a",
|
|
15231
15228
|
{
|
|
15232
15229
|
href: explorer,
|
|
@@ -15234,7 +15231,7 @@ var Address = ({
|
|
|
15234
15231
|
rel: "noreferrer noopener",
|
|
15235
15232
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
15236
15233
|
title: "Open in explorer",
|
|
15237
|
-
children: /* @__PURE__ */ (0,
|
|
15234
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react53.ExternalLink, { className: "h-4 w-4" })
|
|
15238
15235
|
}
|
|
15239
15236
|
)
|
|
15240
15237
|
] });
|
|
@@ -15242,7 +15239,7 @@ var Address = ({
|
|
|
15242
15239
|
|
|
15243
15240
|
// src/internal/components/ui/badge.tsx
|
|
15244
15241
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
15245
|
-
var
|
|
15242
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
15246
15243
|
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
15247
15244
|
"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",
|
|
15248
15245
|
{
|
|
@@ -15262,11 +15259,11 @@ var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
|
15262
15259
|
}
|
|
15263
15260
|
);
|
|
15264
15261
|
function Badge({ className, variant, ...props }) {
|
|
15265
|
-
return /* @__PURE__ */ (0,
|
|
15262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
15266
15263
|
}
|
|
15267
15264
|
|
|
15268
15265
|
// src/internal/components/UserOpStatus.tsx
|
|
15269
|
-
var
|
|
15266
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
15270
15267
|
var UserOpStatus = ({
|
|
15271
15268
|
userOpHash,
|
|
15272
15269
|
chain,
|
|
@@ -15399,35 +15396,35 @@ var UserOpStatus = ({
|
|
|
15399
15396
|
const stateBadge = () => {
|
|
15400
15397
|
if (receipt) {
|
|
15401
15398
|
const ok = !!receipt.success;
|
|
15402
|
-
return /* @__PURE__ */ (0,
|
|
15403
|
-
ok ? /* @__PURE__ */ (0,
|
|
15399
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
15400
|
+
ok ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.AlertCircle, { className: "h-3 w-3" }),
|
|
15404
15401
|
ok ? "Included" : "Failed"
|
|
15405
15402
|
] });
|
|
15406
15403
|
}
|
|
15407
15404
|
if (rejected) {
|
|
15408
|
-
return /* @__PURE__ */ (0,
|
|
15409
|
-
/* @__PURE__ */ (0,
|
|
15405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
15406
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.AlertCircle, { className: "h-3 w-3" }),
|
|
15410
15407
|
" Rejected by bundler"
|
|
15411
15408
|
] });
|
|
15412
15409
|
}
|
|
15413
15410
|
if (timedOut) {
|
|
15414
|
-
return /* @__PURE__ */ (0,
|
|
15415
|
-
/* @__PURE__ */ (0,
|
|
15411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "warning", className: "gap-1", children: [
|
|
15412
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.AlertCircle, { className: "h-3 w-3" }),
|
|
15416
15413
|
" Timeout - may be rejected"
|
|
15417
15414
|
] });
|
|
15418
15415
|
}
|
|
15419
15416
|
if (mempool) {
|
|
15420
|
-
return /* @__PURE__ */ (0,
|
|
15421
|
-
/* @__PURE__ */ (0,
|
|
15417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "outline", className: "gap-1", children: [
|
|
15418
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.Clock, { className: "h-3 w-3" }),
|
|
15422
15419
|
" Pending in bundler"
|
|
15423
15420
|
] });
|
|
15424
15421
|
}
|
|
15425
|
-
return /* @__PURE__ */ (0,
|
|
15426
|
-
/* @__PURE__ */ (0,
|
|
15422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
15423
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.Clock, { className: "h-3 w-3" }),
|
|
15427
15424
|
" Waiting"
|
|
15428
15425
|
] });
|
|
15429
15426
|
};
|
|
15430
|
-
return /* @__PURE__ */ (0,
|
|
15427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
15431
15428
|
"div",
|
|
15432
15429
|
{
|
|
15433
15430
|
className: cn2(
|
|
@@ -15436,20 +15433,20 @@ var UserOpStatus = ({
|
|
|
15436
15433
|
),
|
|
15437
15434
|
style: { textAlign: "left", listStyle: "none" },
|
|
15438
15435
|
children: [
|
|
15439
|
-
/* @__PURE__ */ (0,
|
|
15440
|
-
/* @__PURE__ */ (0,
|
|
15436
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
15437
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
15441
15438
|
stateBadge(),
|
|
15442
|
-
/* @__PURE__ */ (0,
|
|
15439
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
15443
15440
|
] }),
|
|
15444
|
-
/* @__PURE__ */ (0,
|
|
15445
|
-
/* @__PURE__ */ (0,
|
|
15446
|
-
/* @__PURE__ */ (0,
|
|
15441
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
15442
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
15443
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
15447
15444
|
] })
|
|
15448
15445
|
] }),
|
|
15449
|
-
/* @__PURE__ */ (0,
|
|
15450
|
-
/* @__PURE__ */ (0,
|
|
15451
|
-
/* @__PURE__ */ (0,
|
|
15452
|
-
/* @__PURE__ */ (0,
|
|
15446
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
15447
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
15448
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
15449
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
15453
15450
|
Button,
|
|
15454
15451
|
{
|
|
15455
15452
|
variant: "ghost",
|
|
@@ -15461,14 +15458,14 @@ var UserOpStatus = ({
|
|
|
15461
15458
|
} catch {
|
|
15462
15459
|
}
|
|
15463
15460
|
},
|
|
15464
|
-
children: /* @__PURE__ */ (0,
|
|
15461
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.Copy, { className: "h-3.5 w-3.5" })
|
|
15465
15462
|
}
|
|
15466
15463
|
)
|
|
15467
15464
|
] }),
|
|
15468
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
15469
|
-
/* @__PURE__ */ (0,
|
|
15470
|
-
/* @__PURE__ */ (0,
|
|
15471
|
-
/* @__PURE__ */ (0,
|
|
15465
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
15466
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
15467
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
15468
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
15472
15469
|
Button,
|
|
15473
15470
|
{
|
|
15474
15471
|
variant: "ghost",
|
|
@@ -15480,10 +15477,10 @@ var UserOpStatus = ({
|
|
|
15480
15477
|
} catch {
|
|
15481
15478
|
}
|
|
15482
15479
|
},
|
|
15483
|
-
children: /* @__PURE__ */ (0,
|
|
15480
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.Copy, { className: "h-3.5 w-3.5" })
|
|
15484
15481
|
}
|
|
15485
15482
|
),
|
|
15486
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
15483
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
15487
15484
|
"a",
|
|
15488
15485
|
{
|
|
15489
15486
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -15491,11 +15488,11 @@ var UserOpStatus = ({
|
|
|
15491
15488
|
rel: "noreferrer noopener",
|
|
15492
15489
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
15493
15490
|
title: "Open in explorer",
|
|
15494
|
-
children: /* @__PURE__ */ (0,
|
|
15491
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
15495
15492
|
}
|
|
15496
15493
|
)
|
|
15497
15494
|
] }),
|
|
15498
|
-
receipt && /* @__PURE__ */ (0,
|
|
15495
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
15499
15496
|
"Block ",
|
|
15500
15497
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
15501
15498
|
" \u2022 Gas Used",
|
|
@@ -15504,32 +15501,32 @@ var UserOpStatus = ({
|
|
|
15504
15501
|
" \u2022 Success ",
|
|
15505
15502
|
String(!!receipt.success)
|
|
15506
15503
|
] }),
|
|
15507
|
-
/* @__PURE__ */ (0,
|
|
15504
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { className: "ml-2", children: [
|
|
15508
15505
|
"\u2022 Polling for ",
|
|
15509
15506
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
15510
15507
|
"s"
|
|
15511
15508
|
] }) }),
|
|
15512
|
-
mempool && /* @__PURE__ */ (0,
|
|
15513
|
-
/* @__PURE__ */ (0,
|
|
15509
|
+
mempool && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
15510
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
15514
15511
|
"Seen by bundler at ",
|
|
15515
|
-
/* @__PURE__ */ (0,
|
|
15512
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
15516
15513
|
] }),
|
|
15517
|
-
/* @__PURE__ */ (0,
|
|
15514
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
15518
15515
|
"sender ",
|
|
15519
|
-
/* @__PURE__ */ (0,
|
|
15516
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
15520
15517
|
] })
|
|
15521
15518
|
] }),
|
|
15522
|
-
error && /* @__PURE__ */ (0,
|
|
15523
|
-
/* @__PURE__ */ (0,
|
|
15519
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15520
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.AlertCircle, { className: "h-4 w-4" }),
|
|
15524
15521
|
" ",
|
|
15525
15522
|
error
|
|
15526
15523
|
] }),
|
|
15527
|
-
rejected && /* @__PURE__ */ (0,
|
|
15528
|
-
/* @__PURE__ */ (0,
|
|
15524
|
+
rejected && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15525
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.AlertCircle, { className: "h-4 w-4" }),
|
|
15529
15526
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
15530
15527
|
] }),
|
|
15531
|
-
timedOut && /* @__PURE__ */ (0,
|
|
15532
|
-
/* @__PURE__ */ (0,
|
|
15528
|
+
timedOut && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15529
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react54.AlertCircle, { className: "h-4 w-4" }),
|
|
15533
15530
|
"Stopped polling after ",
|
|
15534
15531
|
Math.round(maxPollTimeMs / 1e3),
|
|
15535
15532
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -15542,7 +15539,7 @@ var UserOpStatus = ({
|
|
|
15542
15539
|
// src/internal/components/Hash.tsx
|
|
15543
15540
|
var import_lucide_react55 = require("lucide-react");
|
|
15544
15541
|
var React11 = __toESM(require("react"), 1);
|
|
15545
|
-
var
|
|
15542
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
15546
15543
|
function toExplorerUrl(kind, value, chain) {
|
|
15547
15544
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
15548
15545
|
if (!base2) return null;
|
|
@@ -15566,11 +15563,11 @@ var Hash = ({
|
|
|
15566
15563
|
const value = hash || "";
|
|
15567
15564
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
15568
15565
|
const [copied, setCopied] = React11.useState(false);
|
|
15569
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
15570
|
-
return /* @__PURE__ */ (0,
|
|
15571
|
-
label && /* @__PURE__ */ (0,
|
|
15572
|
-
/* @__PURE__ */ (0,
|
|
15573
|
-
showCopy && /* @__PURE__ */ (0,
|
|
15566
|
+
if (!value) return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15567
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
15568
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
15569
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
15570
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
15574
15571
|
Button,
|
|
15575
15572
|
{
|
|
15576
15573
|
variant: "ghost",
|
|
@@ -15584,10 +15581,10 @@ var Hash = ({
|
|
|
15584
15581
|
} catch {
|
|
15585
15582
|
}
|
|
15586
15583
|
},
|
|
15587
|
-
children: /* @__PURE__ */ (0,
|
|
15584
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react55.Copy, { className: "h-4 w-4" })
|
|
15588
15585
|
}
|
|
15589
15586
|
),
|
|
15590
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15587
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
15591
15588
|
"a",
|
|
15592
15589
|
{
|
|
15593
15590
|
href: explorer,
|
|
@@ -15595,7 +15592,7 @@ var Hash = ({
|
|
|
15595
15592
|
rel: "noreferrer noopener",
|
|
15596
15593
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
15597
15594
|
title: "Open in explorer",
|
|
15598
|
-
children: /* @__PURE__ */ (0,
|
|
15595
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react55.ExternalLink, { className: "h-4 w-4" })
|
|
15599
15596
|
}
|
|
15600
15597
|
)
|
|
15601
15598
|
] });
|
|
@@ -15604,7 +15601,7 @@ var Hash = ({
|
|
|
15604
15601
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
15605
15602
|
var import_react66 = require("react");
|
|
15606
15603
|
init_base();
|
|
15607
|
-
var
|
|
15604
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
15608
15605
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
15609
15606
|
const [transactions, setTransactions] = (0, import_react66.useState)([]);
|
|
15610
15607
|
const [loading, setLoading] = (0, import_react66.useState)(true);
|
|
@@ -15655,31 +15652,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15655
15652
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
15656
15653
|
};
|
|
15657
15654
|
if (loading) {
|
|
15658
|
-
return /* @__PURE__ */ (0,
|
|
15659
|
-
/* @__PURE__ */ (0,
|
|
15660
|
-
/* @__PURE__ */ (0,
|
|
15655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "p-4 text-center", children: [
|
|
15656
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
15657
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
15661
15658
|
] });
|
|
15662
15659
|
}
|
|
15663
15660
|
if (error) {
|
|
15664
|
-
return /* @__PURE__ */ (0,
|
|
15665
|
-
/* @__PURE__ */ (0,
|
|
15666
|
-
/* @__PURE__ */ (0,
|
|
15661
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "p-4 text-center", children: [
|
|
15662
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-red-600 text-sm", children: error }),
|
|
15663
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
15667
15664
|
] });
|
|
15668
15665
|
}
|
|
15669
15666
|
if (transactions.length === 0) {
|
|
15670
|
-
return /* @__PURE__ */ (0,
|
|
15667
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "p-4 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
15671
15668
|
}
|
|
15672
|
-
return /* @__PURE__ */ (0,
|
|
15669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
15673
15670
|
"div",
|
|
15674
15671
|
{
|
|
15675
15672
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
15676
15673
|
onClick: () => openTransaction(tx.hash),
|
|
15677
15674
|
children: [
|
|
15678
|
-
/* @__PURE__ */ (0,
|
|
15679
|
-
/* @__PURE__ */ (0,
|
|
15680
|
-
/* @__PURE__ */ (0,
|
|
15681
|
-
/* @__PURE__ */ (0,
|
|
15682
|
-
/* @__PURE__ */ (0,
|
|
15675
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex justify-between items-start mb-2", children: [
|
|
15676
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex-1", children: [
|
|
15677
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
15678
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
15679
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
15683
15680
|
"span",
|
|
15684
15681
|
{
|
|
15685
15682
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -15687,40 +15684,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15687
15684
|
}
|
|
15688
15685
|
)
|
|
15689
15686
|
] }),
|
|
15690
|
-
/* @__PURE__ */ (0,
|
|
15691
|
-
/* @__PURE__ */ (0,
|
|
15692
|
-
/* @__PURE__ */ (0,
|
|
15693
|
-
/* @__PURE__ */ (0,
|
|
15687
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "text-sm space-y-1", children: [
|
|
15688
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15689
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "From:" }),
|
|
15690
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
15694
15691
|
formatAddress3(tx.from.hash),
|
|
15695
|
-
tx.from.is_contract && /* @__PURE__ */ (0,
|
|
15692
|
+
tx.from.is_contract && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15696
15693
|
] })
|
|
15697
15694
|
] }),
|
|
15698
|
-
/* @__PURE__ */ (0,
|
|
15699
|
-
/* @__PURE__ */ (0,
|
|
15700
|
-
/* @__PURE__ */ (0,
|
|
15695
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15696
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "To:" }),
|
|
15697
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
15701
15698
|
formatAddress3(tx.to.hash),
|
|
15702
|
-
tx.to.is_contract && /* @__PURE__ */ (0,
|
|
15699
|
+
tx.to.is_contract && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15703
15700
|
] })
|
|
15704
15701
|
] }),
|
|
15705
|
-
/* @__PURE__ */ (0,
|
|
15706
|
-
/* @__PURE__ */ (0,
|
|
15707
|
-
/* @__PURE__ */ (0,
|
|
15702
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15703
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "Value:" }),
|
|
15704
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-semibold ml-1", children: [
|
|
15708
15705
|
formatValue3(tx.value),
|
|
15709
15706
|
" LUMIA"
|
|
15710
15707
|
] })
|
|
15711
15708
|
] })
|
|
15712
15709
|
] })
|
|
15713
15710
|
] }),
|
|
15714
|
-
/* @__PURE__ */ (0,
|
|
15715
|
-
/* @__PURE__ */ (0,
|
|
15716
|
-
/* @__PURE__ */ (0,
|
|
15711
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "text-right text-xs text-gray-500", children: [
|
|
15712
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { children: formatDate3(tx.timestamp) }),
|
|
15713
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "mt-1", children: [
|
|
15717
15714
|
"Gas: ",
|
|
15718
15715
|
parseInt(tx.gas_used).toLocaleString()
|
|
15719
15716
|
] }),
|
|
15720
|
-
tx.method && /* @__PURE__ */ (0,
|
|
15717
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
15721
15718
|
] })
|
|
15722
15719
|
] }),
|
|
15723
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */ (0,
|
|
15720
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
15724
15721
|
]
|
|
15725
15722
|
},
|
|
15726
15723
|
tx.hash
|