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