@lumiapassport/ui-kit 1.15.2 → 1.15.4
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 +1360 -637
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +48 -1
- package/dist/index.d.ts +48 -1
- package/dist/index.js +1512 -778
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4557,6 +4557,7 @@ __export(index_exports, {
|
|
|
4557
4557
|
signTypedData: () => signTypedData,
|
|
4558
4558
|
updateUserProfile: () => updateUserProfile,
|
|
4559
4559
|
useAssets: () => useAssets,
|
|
4560
|
+
useErc3643Compliance: () => useErc3643Compliance,
|
|
4560
4561
|
useLogout: () => useLogout,
|
|
4561
4562
|
useLumiaPassportAccountSession: () => useLumiaPassportAccountSession,
|
|
4562
4563
|
useLumiaPassportAddress: () => useLumiaPassportAddress,
|
|
@@ -4586,7 +4587,7 @@ __export(index_exports, {
|
|
|
4586
4587
|
module.exports = __toCommonJS(index_exports);
|
|
4587
4588
|
|
|
4588
4589
|
// src/styles/built.css
|
|
4589
|
-
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 .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-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-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-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[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-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-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-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-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-\\[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-\\[2px\\]{padding-left:2px;padding-right:2px}.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 .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 .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,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.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,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-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-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-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\\: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}';
|
|
4590
|
+
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-\\[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-\\[2px\\]{padding-left:2px;padding-right:2px}.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,#e4e4e4);--l-pass-success:var(--lumia-passport-success,#16a34a);--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,#ca8a04);--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#dc2626);--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,#2a2a2a);--l-pass-success:var(--lumia-passport-success,#22c55e);--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,#eab308);--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#ef4444);--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}';
|
|
4590
4591
|
|
|
4591
4592
|
// src/context/LumiaPassportContext.tsx
|
|
4592
4593
|
var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
|
|
@@ -5458,6 +5459,23 @@ function Header() {
|
|
|
5458
5459
|
const config = useLumiaPassportConfig().config;
|
|
5459
5460
|
const address = useLumiaPassportSession((st) => st.address);
|
|
5460
5461
|
const [copied, setCopied] = (0, import_react5.useState)(false);
|
|
5462
|
+
const [showEasterEgg, setShowEasterEgg] = (0, import_react5.useState)(false);
|
|
5463
|
+
const clickCountRef = (0, import_react5.useRef)(0);
|
|
5464
|
+
const clickTimerRef = (0, import_react5.useRef)(null);
|
|
5465
|
+
const handleAvatarClick = (0, import_react5.useCallback)(() => {
|
|
5466
|
+
clickCountRef.current += 1;
|
|
5467
|
+
if (clickTimerRef.current) {
|
|
5468
|
+
clearTimeout(clickTimerRef.current);
|
|
5469
|
+
}
|
|
5470
|
+
if (clickCountRef.current >= 5) {
|
|
5471
|
+
clickCountRef.current = 0;
|
|
5472
|
+
setShowEasterEgg(true);
|
|
5473
|
+
} else {
|
|
5474
|
+
clickTimerRef.current = setTimeout(() => {
|
|
5475
|
+
clickCountRef.current = 0;
|
|
5476
|
+
}, 1e3);
|
|
5477
|
+
}
|
|
5478
|
+
}, []);
|
|
5461
5479
|
const { data: profile, isLoading: isProfileLoading } = (0, import_react_query5.useQuery)({
|
|
5462
5480
|
retry: false,
|
|
5463
5481
|
enabled: !!address,
|
|
@@ -5475,7 +5493,14 @@ function Header() {
|
|
|
5475
5493
|
className: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)] pt-5",
|
|
5476
5494
|
children: [
|
|
5477
5495
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
5478
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
5496
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
5497
|
+
"div",
|
|
5498
|
+
{
|
|
5499
|
+
className: "flex-none w-12 h-12 flex items-center justify-center cursor-pointer select-none",
|
|
5500
|
+
onClick: handleAvatarClick,
|
|
5501
|
+
children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LumiaIcon, { width: 48, height: 48 })
|
|
5502
|
+
}
|
|
5503
|
+
),
|
|
5479
5504
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
5480
5505
|
"div",
|
|
5481
5506
|
{
|
|
@@ -5553,7 +5578,35 @@ function Header() {
|
|
|
5553
5578
|
}
|
|
5554
5579
|
)
|
|
5555
5580
|
] })
|
|
5556
|
-
] })
|
|
5581
|
+
] }),
|
|
5582
|
+
showEasterEgg && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
5583
|
+
"div",
|
|
5584
|
+
{
|
|
5585
|
+
className: "fixed inset-0 z-[9999] bg-black/90 flex items-center justify-center",
|
|
5586
|
+
onClick: () => setShowEasterEgg(false),
|
|
5587
|
+
children: [
|
|
5588
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
5589
|
+
"button",
|
|
5590
|
+
{
|
|
5591
|
+
className: "absolute top-4 right-4 text-white hover:text-gray-300 transition-colors",
|
|
5592
|
+
onClick: () => setShowEasterEgg(false),
|
|
5593
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react7.X, { className: "w-8 h-8" })
|
|
5594
|
+
}
|
|
5595
|
+
),
|
|
5596
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
5597
|
+
"video",
|
|
5598
|
+
{
|
|
5599
|
+
autoPlay: true,
|
|
5600
|
+
controls: true,
|
|
5601
|
+
className: "max-w-full max-h-full",
|
|
5602
|
+
onEnded: () => setShowEasterEgg(false),
|
|
5603
|
+
onClick: (e) => e.stopPropagation(),
|
|
5604
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("source", { src: "https://github.com/cyberkostyan/ABrobot-ESP32-C3/raw/main/2026.webm", type: "video/webm" })
|
|
5605
|
+
}
|
|
5606
|
+
)
|
|
5607
|
+
]
|
|
5608
|
+
}
|
|
5609
|
+
)
|
|
5557
5610
|
]
|
|
5558
5611
|
}
|
|
5559
5612
|
);
|
|
@@ -5562,7 +5615,7 @@ function Header() {
|
|
|
5562
5615
|
// package.json
|
|
5563
5616
|
var package_default = {
|
|
5564
5617
|
name: "@lumiapassport/ui-kit",
|
|
5565
|
-
version: "1.15.
|
|
5618
|
+
version: "1.15.4",
|
|
5566
5619
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
5567
5620
|
type: "module",
|
|
5568
5621
|
main: "./dist/index.cjs",
|
|
@@ -6523,9 +6576,12 @@ Input.displayName = "Input";
|
|
|
6523
6576
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
6524
6577
|
function Email() {
|
|
6525
6578
|
const { config, callbacks } = useLumiaPassportConfig();
|
|
6579
|
+
const focusRef = (0, import_react14.useRef)(null);
|
|
6580
|
+
const inputRef = (0, import_react14.useRef)(null);
|
|
6526
6581
|
const buttonRef = (0, import_react14.useRef)(null);
|
|
6527
6582
|
const isLoading = useLumiaPassportSession((st) => st.isLoading);
|
|
6528
6583
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
6584
|
+
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
6529
6585
|
const { email, alert: alert2, setEmail, setExpiresIn, setStep, setAlert } = useAuthStore();
|
|
6530
6586
|
const { mutate: onSendVerificationCode } = (0, import_react_query7.useMutation)({
|
|
6531
6587
|
mutationFn: async (mail) => {
|
|
@@ -6578,48 +6634,67 @@ function Email() {
|
|
|
6578
6634
|
setIsLoading(false);
|
|
6579
6635
|
}
|
|
6580
6636
|
});
|
|
6581
|
-
|
|
6582
|
-
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
|
|
6594
|
-
|
|
6595
|
-
|
|
6596
|
-
|
|
6597
|
-
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6601
|
-
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
setEmail(e.target.value);
|
|
6605
|
-
}
|
|
6606
|
-
}
|
|
6607
|
-
),
|
|
6608
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
6609
|
-
Button,
|
|
6610
|
-
{
|
|
6611
|
-
ref: buttonRef,
|
|
6612
|
-
className: "w-12 h-12 flex-none",
|
|
6613
|
-
variant: "default",
|
|
6614
|
-
size: "large",
|
|
6615
|
-
disabled: !email || isLoading,
|
|
6616
|
-
onClick: () => onSendVerificationCode(email),
|
|
6617
|
-
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react11.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react11.ChevronRight, { className: "w-4 h-4" })
|
|
6637
|
+
(0, import_react14.useEffect)(() => {
|
|
6638
|
+
if (!focusRef.current || !isMobileView) return;
|
|
6639
|
+
focusRef.current?.focus();
|
|
6640
|
+
setTimeout(() => {
|
|
6641
|
+
inputRef.current?.focus();
|
|
6642
|
+
}, 375 * 3);
|
|
6643
|
+
}, [isMobileView]);
|
|
6644
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "relative w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6645
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
6646
|
+
"div",
|
|
6647
|
+
{
|
|
6648
|
+
ref: focusRef,
|
|
6649
|
+
className: "absolute top-4 left-4 w-1 h-1 rounded-full focus:bg-transparent outline-none",
|
|
6650
|
+
tabIndex: -1
|
|
6651
|
+
}
|
|
6652
|
+
),
|
|
6653
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
6654
|
+
"div",
|
|
6655
|
+
{
|
|
6656
|
+
className: "w-full flex gap-[10px] items-center",
|
|
6657
|
+
onKeyDown: (e) => {
|
|
6658
|
+
if (e.key === "Enter" && !isLoading && email) {
|
|
6659
|
+
buttonRef.current?.click();
|
|
6618
6660
|
}
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6661
|
+
},
|
|
6662
|
+
children: [
|
|
6663
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
6664
|
+
Input,
|
|
6665
|
+
{
|
|
6666
|
+
ref: inputRef,
|
|
6667
|
+
name: "signin-email",
|
|
6668
|
+
Icon: import_lucide_react11.Mail,
|
|
6669
|
+
type: "email",
|
|
6670
|
+
autoComplete: "off",
|
|
6671
|
+
autoFocus: !isMobileView,
|
|
6672
|
+
placeholder: config.current?.email?.placeholder || "Enter your email",
|
|
6673
|
+
value: email,
|
|
6674
|
+
disabled: isLoading,
|
|
6675
|
+
className: "flex-1 w-full",
|
|
6676
|
+
onChange: (e) => {
|
|
6677
|
+
if (alert2) setAlert(null);
|
|
6678
|
+
setEmail(e.target.value);
|
|
6679
|
+
}
|
|
6680
|
+
}
|
|
6681
|
+
),
|
|
6682
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
6683
|
+
Button,
|
|
6684
|
+
{
|
|
6685
|
+
ref: buttonRef,
|
|
6686
|
+
className: "w-12 h-12 flex-none",
|
|
6687
|
+
variant: "default",
|
|
6688
|
+
size: "large",
|
|
6689
|
+
disabled: !email || isLoading,
|
|
6690
|
+
onClick: () => onSendVerificationCode(email),
|
|
6691
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react11.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react11.ChevronRight, { className: "w-4 h-4" })
|
|
6692
|
+
}
|
|
6693
|
+
)
|
|
6694
|
+
]
|
|
6695
|
+
}
|
|
6696
|
+
)
|
|
6697
|
+
] });
|
|
6623
6698
|
}
|
|
6624
6699
|
|
|
6625
6700
|
// src/internal/components/AuthMenu/SignInStep/Social.tsx
|
|
@@ -11994,10 +12069,69 @@ function SecurityMenu() {
|
|
|
11994
12069
|
}
|
|
11995
12070
|
|
|
11996
12071
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11997
|
-
var
|
|
12072
|
+
var import_lucide_react43 = require("lucide-react");
|
|
11998
12073
|
var import_react50 = require("react");
|
|
11999
12074
|
var import_viem10 = require("viem");
|
|
12000
|
-
|
|
12075
|
+
|
|
12076
|
+
// src/hooks/useErc3643Compliance.ts
|
|
12077
|
+
var import_wagmi3 = require("wagmi");
|
|
12078
|
+
init_base();
|
|
12079
|
+
var ERC3643_CAN_TRANSFER_ABI = [
|
|
12080
|
+
{
|
|
12081
|
+
type: "function",
|
|
12082
|
+
name: "canTransfer",
|
|
12083
|
+
inputs: [
|
|
12084
|
+
{ name: "_to", type: "address" },
|
|
12085
|
+
{ name: "_value", type: "uint256" }
|
|
12086
|
+
],
|
|
12087
|
+
outputs: [{ name: "", type: "bool" }]
|
|
12088
|
+
}
|
|
12089
|
+
];
|
|
12090
|
+
function useErc3643Compliance(options) {
|
|
12091
|
+
const { tokenAddress, to, amount, enabled = true } = options;
|
|
12092
|
+
const isQueryEnabled = enabled && !!tokenAddress && !!to && amount !== void 0;
|
|
12093
|
+
const {
|
|
12094
|
+
data: canTransferResult,
|
|
12095
|
+
isLoading,
|
|
12096
|
+
error: queryError,
|
|
12097
|
+
refetch
|
|
12098
|
+
} = (0, import_wagmi3.useReadContract)({
|
|
12099
|
+
address: tokenAddress,
|
|
12100
|
+
abi: ERC3643_CAN_TRANSFER_ABI,
|
|
12101
|
+
functionName: "canTransfer",
|
|
12102
|
+
args: to && amount !== void 0 ? [to, amount] : void 0,
|
|
12103
|
+
chainId: lumiaBeam.id,
|
|
12104
|
+
query: {
|
|
12105
|
+
enabled: isQueryEnabled
|
|
12106
|
+
}
|
|
12107
|
+
});
|
|
12108
|
+
let error = null;
|
|
12109
|
+
if (queryError) {
|
|
12110
|
+
const errorMessage = queryError.message || "";
|
|
12111
|
+
if (errorMessage.includes("IDENTITY_NOT_VERIFIED")) {
|
|
12112
|
+
error = "Recipient identity is not verified for this security token";
|
|
12113
|
+
} else if (errorMessage.includes("COUNTRY_NOT_ALLOWED")) {
|
|
12114
|
+
error = "Transfer not allowed to recipient country";
|
|
12115
|
+
} else if (errorMessage.includes("INVESTOR_LIMIT_EXCEEDED")) {
|
|
12116
|
+
error = "Maximum investor limit exceeded for this token";
|
|
12117
|
+
} else if (errorMessage.includes("HOLDING_PERIOD_NOT_MET")) {
|
|
12118
|
+
error = "Holding period requirement not met";
|
|
12119
|
+
} else if (errorMessage.includes("AMOUNT_EXCEEDS_LIMIT")) {
|
|
12120
|
+
error = "Transfer amount exceeds allowed limit";
|
|
12121
|
+
} else {
|
|
12122
|
+
error = "Compliance check failed. Transfer may not be allowed.";
|
|
12123
|
+
}
|
|
12124
|
+
} else if (canTransferResult === false) {
|
|
12125
|
+
error = "Transfer not allowed by token compliance rules";
|
|
12126
|
+
}
|
|
12127
|
+
const canTransfer = typeof canTransferResult === "boolean" ? canTransferResult : void 0;
|
|
12128
|
+
return {
|
|
12129
|
+
canTransfer,
|
|
12130
|
+
isLoading,
|
|
12131
|
+
error,
|
|
12132
|
+
refetch
|
|
12133
|
+
};
|
|
12134
|
+
}
|
|
12001
12135
|
|
|
12002
12136
|
// src/hooks/useNicknameResolve.ts
|
|
12003
12137
|
var import_react_query34 = require("@tanstack/react-query");
|
|
@@ -12148,6 +12282,43 @@ function useNicknameResolve(input, options) {
|
|
|
12148
12282
|
var import_react48 = require("react");
|
|
12149
12283
|
var import_viem8 = require("viem");
|
|
12150
12284
|
init_account();
|
|
12285
|
+
var ERC20_TRANSFER_ABI = [
|
|
12286
|
+
{
|
|
12287
|
+
type: "function",
|
|
12288
|
+
name: "transfer",
|
|
12289
|
+
inputs: [
|
|
12290
|
+
{ name: "to", type: "address" },
|
|
12291
|
+
{ name: "amount", type: "uint256" }
|
|
12292
|
+
],
|
|
12293
|
+
outputs: [{ name: "", type: "bool" }]
|
|
12294
|
+
}
|
|
12295
|
+
];
|
|
12296
|
+
var ERC721_SAFE_TRANSFER_ABI = [
|
|
12297
|
+
{
|
|
12298
|
+
type: "function",
|
|
12299
|
+
name: "safeTransferFrom",
|
|
12300
|
+
inputs: [
|
|
12301
|
+
{ name: "from", type: "address" },
|
|
12302
|
+
{ name: "to", type: "address" },
|
|
12303
|
+
{ name: "tokenId", type: "uint256" }
|
|
12304
|
+
],
|
|
12305
|
+
outputs: []
|
|
12306
|
+
}
|
|
12307
|
+
];
|
|
12308
|
+
var ERC1155_SAFE_TRANSFER_ABI = [
|
|
12309
|
+
{
|
|
12310
|
+
type: "function",
|
|
12311
|
+
name: "safeTransferFrom",
|
|
12312
|
+
inputs: [
|
|
12313
|
+
{ name: "from", type: "address" },
|
|
12314
|
+
{ name: "to", type: "address" },
|
|
12315
|
+
{ name: "id", type: "uint256" },
|
|
12316
|
+
{ name: "amount", type: "uint256" },
|
|
12317
|
+
{ name: "data", type: "bytes" }
|
|
12318
|
+
],
|
|
12319
|
+
outputs: []
|
|
12320
|
+
}
|
|
12321
|
+
];
|
|
12151
12322
|
function useSendTransaction() {
|
|
12152
12323
|
const session = useLumiaPassportSession((st) => st.session);
|
|
12153
12324
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -12164,21 +12335,80 @@ function useSendTransaction() {
|
|
|
12164
12335
|
setError("Invalid recipient address");
|
|
12165
12336
|
return null;
|
|
12166
12337
|
}
|
|
12167
|
-
const
|
|
12168
|
-
if (
|
|
12169
|
-
|
|
12338
|
+
const assetType = params.assetType || "native";
|
|
12339
|
+
if (assetType !== "erc721") {
|
|
12340
|
+
const value = parseFloat(params.value);
|
|
12341
|
+
if (isNaN(value) || value < 0) {
|
|
12342
|
+
setError("Invalid amount");
|
|
12343
|
+
return null;
|
|
12344
|
+
}
|
|
12345
|
+
}
|
|
12346
|
+
if (assetType !== "native" && !params.tokenAddress) {
|
|
12347
|
+
setError("Token address is required for token transfers");
|
|
12348
|
+
return null;
|
|
12349
|
+
}
|
|
12350
|
+
if ((assetType === "erc721" || assetType === "erc1155") && !params.tokenId) {
|
|
12351
|
+
setError("Token ID is required for NFT transfers");
|
|
12170
12352
|
return null;
|
|
12171
12353
|
}
|
|
12172
12354
|
setIsLoading(true);
|
|
12173
12355
|
setError(null);
|
|
12174
12356
|
setUserOpHash(null);
|
|
12175
12357
|
try {
|
|
12176
|
-
|
|
12358
|
+
let callTarget;
|
|
12359
|
+
let valueWei;
|
|
12360
|
+
let innerData;
|
|
12361
|
+
switch (assetType) {
|
|
12362
|
+
case "native": {
|
|
12363
|
+
callTarget = params.to;
|
|
12364
|
+
valueWei = (0, import_viem8.parseEther)(params.value).toString();
|
|
12365
|
+
innerData = params.data || "0x";
|
|
12366
|
+
break;
|
|
12367
|
+
}
|
|
12368
|
+
case "erc20":
|
|
12369
|
+
case "erc3643": {
|
|
12370
|
+
const decimals = params.decimals ?? 18;
|
|
12371
|
+
const amount = (0, import_viem8.parseUnits)(params.value, decimals);
|
|
12372
|
+
callTarget = params.tokenAddress;
|
|
12373
|
+
valueWei = "0";
|
|
12374
|
+
innerData = (0, import_viem8.encodeFunctionData)({
|
|
12375
|
+
abi: ERC20_TRANSFER_ABI,
|
|
12376
|
+
functionName: "transfer",
|
|
12377
|
+
args: [params.to, amount]
|
|
12378
|
+
});
|
|
12379
|
+
break;
|
|
12380
|
+
}
|
|
12381
|
+
case "erc721": {
|
|
12382
|
+
callTarget = params.tokenAddress;
|
|
12383
|
+
valueWei = "0";
|
|
12384
|
+
innerData = (0, import_viem8.encodeFunctionData)({
|
|
12385
|
+
abi: ERC721_SAFE_TRANSFER_ABI,
|
|
12386
|
+
functionName: "safeTransferFrom",
|
|
12387
|
+
args: [address, params.to, BigInt(params.tokenId)]
|
|
12388
|
+
});
|
|
12389
|
+
break;
|
|
12390
|
+
}
|
|
12391
|
+
case "erc1155": {
|
|
12392
|
+
const amount = params.value ? BigInt(params.value) : 1n;
|
|
12393
|
+
callTarget = params.tokenAddress;
|
|
12394
|
+
valueWei = "0";
|
|
12395
|
+
innerData = (0, import_viem8.encodeFunctionData)({
|
|
12396
|
+
abi: ERC1155_SAFE_TRANSFER_ABI,
|
|
12397
|
+
functionName: "safeTransferFrom",
|
|
12398
|
+
args: [address, params.to, BigInt(params.tokenId), amount, "0x"]
|
|
12399
|
+
});
|
|
12400
|
+
break;
|
|
12401
|
+
}
|
|
12402
|
+
default: {
|
|
12403
|
+
setError(`Unsupported asset type: ${assetType}`);
|
|
12404
|
+
return null;
|
|
12405
|
+
}
|
|
12406
|
+
}
|
|
12177
12407
|
const hash = await sendUserOperation(
|
|
12178
12408
|
session,
|
|
12179
|
-
|
|
12409
|
+
callTarget,
|
|
12180
12410
|
valueWei,
|
|
12181
|
-
|
|
12411
|
+
innerData,
|
|
12182
12412
|
"standard",
|
|
12183
12413
|
"v0.7"
|
|
12184
12414
|
);
|
|
@@ -12208,185 +12438,331 @@ function useSendTransaction() {
|
|
|
12208
12438
|
};
|
|
12209
12439
|
}
|
|
12210
12440
|
|
|
12211
|
-
// src/
|
|
12212
|
-
var import_react49 = __toESM(require("react"), 1);
|
|
12213
|
-
var import_wagmi3 = require("wagmi");
|
|
12214
|
-
var import_viem9 = require("viem");
|
|
12441
|
+
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12215
12442
|
init_base();
|
|
12216
|
-
|
|
12217
|
-
|
|
12218
|
-
|
|
12219
|
-
|
|
12220
|
-
|
|
12221
|
-
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12225
|
-
|
|
12226
|
-
|
|
12227
|
-
|
|
12228
|
-
|
|
12229
|
-
|
|
12230
|
-
|
|
12231
|
-
|
|
12232
|
-
|
|
12233
|
-
|
|
12234
|
-
|
|
12235
|
-
|
|
12236
|
-
|
|
12237
|
-
|
|
12238
|
-
|
|
12239
|
-
|
|
12240
|
-
|
|
12241
|
-
|
|
12242
|
-
|
|
12243
|
-
|
|
12244
|
-
|
|
12245
|
-
|
|
12246
|
-
|
|
12247
|
-
const
|
|
12248
|
-
|
|
12249
|
-
|
|
12250
|
-
|
|
12251
|
-
|
|
12252
|
-
|
|
12253
|
-
|
|
12254
|
-
|
|
12255
|
-
|
|
12256
|
-
|
|
12257
|
-
decimals: 18
|
|
12258
|
-
});
|
|
12259
|
-
}
|
|
12260
|
-
if (tokenBalances && COMMON_TOKENS.length > 0) {
|
|
12261
|
-
tokenBalances.forEach((balance, index) => {
|
|
12262
|
-
const token = COMMON_TOKENS[index];
|
|
12263
|
-
if (balance.status === "success" && balance.result) {
|
|
12264
|
-
const balanceValue = balance.result;
|
|
12265
|
-
const formattedBalance = (0, import_viem9.formatUnits)(balanceValue, token.decimals);
|
|
12266
|
-
assets.push({
|
|
12267
|
-
type: "erc20",
|
|
12268
|
-
address: token.address,
|
|
12269
|
-
name: token.name,
|
|
12270
|
-
symbol: token.symbol,
|
|
12271
|
-
balance: balanceValue.toString(),
|
|
12272
|
-
formattedBalance: parseFloat(formattedBalance).toFixed(4),
|
|
12273
|
-
decimals: token.decimals,
|
|
12274
|
-
logo: token.logo
|
|
12275
|
-
});
|
|
12443
|
+
|
|
12444
|
+
// src/internal/components/SendRecieveMenu/AssetSelector.tsx
|
|
12445
|
+
var import_lucide_react42 = require("lucide-react");
|
|
12446
|
+
var import_react49 = require("react");
|
|
12447
|
+
var import_viem9 = require("viem");
|
|
12448
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12449
|
+
function isNftAsset2(asset) {
|
|
12450
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
12451
|
+
}
|
|
12452
|
+
function isSecurityToken2(asset) {
|
|
12453
|
+
return asset.type === "erc3643";
|
|
12454
|
+
}
|
|
12455
|
+
function getAssetBalance(asset) {
|
|
12456
|
+
if (isNftAsset2(asset)) {
|
|
12457
|
+
return "1";
|
|
12458
|
+
}
|
|
12459
|
+
const balance = Number((0, import_viem9.formatUnits)(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
12460
|
+
if (balance >= 1e6) {
|
|
12461
|
+
return `${(balance / 1e6).toFixed(2)}M`;
|
|
12462
|
+
}
|
|
12463
|
+
if (balance >= 1e3) {
|
|
12464
|
+
return `${(balance / 1e3).toFixed(2)}K`;
|
|
12465
|
+
}
|
|
12466
|
+
return balance.toFixed(4);
|
|
12467
|
+
}
|
|
12468
|
+
function AssetIcon({ asset, size = "sm" }) {
|
|
12469
|
+
const [imageError, setImageError] = (0, import_react49.useState)(false);
|
|
12470
|
+
const sizeClasses = size === "sm" ? "w-6 h-6" : "w-10 h-10";
|
|
12471
|
+
const textSize = size === "sm" ? "text-xs" : "text-sm";
|
|
12472
|
+
const isNft = isNftAsset2(asset);
|
|
12473
|
+
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12474
|
+
const isSecurity = isSecurityToken2(asset);
|
|
12475
|
+
if (isNft && nftImage && !imageError) {
|
|
12476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-[var(--l-pass-el-bdrs)] overflow-hidden relative flex-shrink-0"), children: [
|
|
12477
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12478
|
+
"img",
|
|
12479
|
+
{
|
|
12480
|
+
src: nftImage,
|
|
12481
|
+
alt: asset.nftMetadata?.name || asset.name,
|
|
12482
|
+
className: "w-full h-full object-cover",
|
|
12483
|
+
onError: () => setImageError(true)
|
|
12276
12484
|
}
|
|
12277
|
-
|
|
12278
|
-
|
|
12279
|
-
|
|
12485
|
+
),
|
|
12486
|
+
/* @__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_react42.Sparkles, { className: "w-2 h-2 text-[var(--l-pass-fg-inverted)]" }) })
|
|
12487
|
+
] });
|
|
12488
|
+
}
|
|
12489
|
+
if (isNft) {
|
|
12490
|
+
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: [
|
|
12491
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react42.Image, { className: cn(size === "sm" ? "w-3 h-3" : "w-5 h-5", "text-[var(--l-pass-fg-inverted)]") }),
|
|
12492
|
+
/* @__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_react42.Sparkles, { className: "w-2 h-2 text-[var(--l-pass-fg-inverted)]" }) })
|
|
12493
|
+
] });
|
|
12494
|
+
}
|
|
12495
|
+
if (asset.logo && !imageError) {
|
|
12496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-full overflow-hidden relative flex-shrink-0"), children: [
|
|
12497
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12498
|
+
"img",
|
|
12499
|
+
{
|
|
12500
|
+
src: asset.logo,
|
|
12501
|
+
alt: asset.symbol,
|
|
12502
|
+
className: "w-full h-full object-cover",
|
|
12503
|
+
onError: () => setImageError(true)
|
|
12504
|
+
}
|
|
12505
|
+
),
|
|
12506
|
+
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_react42.Shield, { className: "w-2 h-2 text-white" }) })
|
|
12507
|
+
] });
|
|
12508
|
+
}
|
|
12509
|
+
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: [
|
|
12510
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: cn("text-[var(--l-pass-fg-inverted)] font-bold", textSize), children: asset.symbol.charAt(0) }),
|
|
12511
|
+
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_react42.Shield, { className: "w-2 h-2 text-white" }) })
|
|
12512
|
+
] });
|
|
12513
|
+
}
|
|
12514
|
+
function AssetListItem({ asset, onSelect, isSelected }) {
|
|
12515
|
+
const isNft = isNftAsset2(asset);
|
|
12516
|
+
const handleClick = (e) => {
|
|
12517
|
+
e.preventDefault();
|
|
12518
|
+
e.stopPropagation();
|
|
12519
|
+
onSelect();
|
|
12280
12520
|
};
|
|
12281
|
-
|
|
12282
|
-
|
|
12283
|
-
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12291
|
-
|
|
12292
|
-
|
|
12293
|
-
|
|
12294
|
-
|
|
12295
|
-
|
|
12296
|
-
|
|
12297
|
-
|
|
12298
|
-
|
|
12299
|
-
|
|
12300
|
-
|
|
12301
|
-
|
|
12521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12522
|
+
"button",
|
|
12523
|
+
{
|
|
12524
|
+
type: "button",
|
|
12525
|
+
className: cn(
|
|
12526
|
+
"w-full flex items-center gap-3 p-3 rounded-[var(--l-pass-el-bdrs)]",
|
|
12527
|
+
"hover:bg-[var(--l-pass-bg-secondary)] transition-colors cursor-pointer",
|
|
12528
|
+
isSelected && "bg-[var(--l-pass-bg-secondary)]"
|
|
12529
|
+
),
|
|
12530
|
+
onClick: handleClick,
|
|
12531
|
+
children: [
|
|
12532
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AssetIcon, { asset, size: "md" }),
|
|
12533
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex-1 min-w-0 text-left", children: [
|
|
12534
|
+
/* @__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 }),
|
|
12535
|
+
/* @__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: [
|
|
12536
|
+
asset.symbol,
|
|
12537
|
+
asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "ml-1", children: [
|
|
12538
|
+
"#",
|
|
12539
|
+
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
12540
|
+
] })
|
|
12541
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12542
|
+
getAssetBalance(asset),
|
|
12543
|
+
" ",
|
|
12544
|
+
asset.symbol
|
|
12545
|
+
] }) })
|
|
12546
|
+
] })
|
|
12547
|
+
]
|
|
12302
12548
|
}
|
|
12303
|
-
|
|
12549
|
+
);
|
|
12550
|
+
}
|
|
12551
|
+
function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
12552
|
+
const [isOpen, setIsOpen] = (0, import_react49.useState)(false);
|
|
12553
|
+
const dropdownRef = (0, import_react49.useRef)(null);
|
|
12554
|
+
const buttonRef = (0, import_react49.useRef)(null);
|
|
12555
|
+
(0, import_react49.useEffect)(() => {
|
|
12556
|
+
function handleClickOutside(event) {
|
|
12557
|
+
if (dropdownRef.current && !dropdownRef.current.contains(event.target) && buttonRef.current && !buttonRef.current.contains(event.target)) {
|
|
12558
|
+
setIsOpen(false);
|
|
12559
|
+
}
|
|
12560
|
+
}
|
|
12561
|
+
if (isOpen) {
|
|
12562
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
12563
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
12564
|
+
}
|
|
12565
|
+
}, [isOpen]);
|
|
12566
|
+
const transferableAssets = assets.filter((asset) => {
|
|
12567
|
+
if (isNftAsset2(asset)) return true;
|
|
12568
|
+
const balance = BigInt(asset.balance || "0");
|
|
12569
|
+
return balance > 0n;
|
|
12570
|
+
});
|
|
12571
|
+
const nativeAssets = transferableAssets.filter((a) => a.type === "native");
|
|
12572
|
+
const tokenAssets = transferableAssets.filter((a) => a.type === "erc20");
|
|
12573
|
+
const securityAssets = transferableAssets.filter((a) => a.type === "erc3643");
|
|
12574
|
+
const nftAssets = transferableAssets.filter((a) => a.type === "erc721" || a.type === "erc1155");
|
|
12575
|
+
const handleSelect = (asset) => {
|
|
12576
|
+
onSelect(asset);
|
|
12577
|
+
setIsOpen(false);
|
|
12304
12578
|
};
|
|
12305
|
-
const
|
|
12306
|
-
|
|
12307
|
-
|
|
12308
|
-
|
|
12309
|
-
|
|
12579
|
+
const handleToggle = (e) => {
|
|
12580
|
+
e.preventDefault();
|
|
12581
|
+
e.stopPropagation();
|
|
12582
|
+
if (!disabled) {
|
|
12583
|
+
setIsOpen(!isOpen);
|
|
12584
|
+
}
|
|
12310
12585
|
};
|
|
12311
|
-
|
|
12312
|
-
|
|
12313
|
-
|
|
12314
|
-
|
|
12315
|
-
getTokenBalance,
|
|
12316
|
-
refreshBalances,
|
|
12317
|
-
isLoading: nativeBalanceLoading || tokenBalancesLoading,
|
|
12318
|
-
isConnected: !!address
|
|
12586
|
+
const handleClose = (e) => {
|
|
12587
|
+
e.preventDefault();
|
|
12588
|
+
e.stopPropagation();
|
|
12589
|
+
setIsOpen(false);
|
|
12319
12590
|
};
|
|
12320
|
-
|
|
12321
|
-
|
|
12322
|
-
const readContractsResult = (0, import_wagmi3.useReadContracts)({
|
|
12323
|
-
contracts: [
|
|
12324
|
-
{ address: tokenAddress, abi: import_viem9.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
|
|
12325
|
-
{ address: tokenAddress, abi: import_viem9.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
|
|
12326
|
-
{ address: tokenAddress, abi: import_viem9.erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
|
|
12327
|
-
]
|
|
12328
|
-
});
|
|
12329
|
-
const { data: tokenData, isLoading } = readContractsResult;
|
|
12330
|
-
if (!tokenData || isLoading) {
|
|
12331
|
-
return { isLoading, tokenInfo: null };
|
|
12591
|
+
if (!selectedAsset) {
|
|
12592
|
+
return null;
|
|
12332
12593
|
}
|
|
12333
|
-
const
|
|
12334
|
-
|
|
12335
|
-
|
|
12336
|
-
|
|
12337
|
-
|
|
12338
|
-
|
|
12339
|
-
|
|
12340
|
-
|
|
12341
|
-
|
|
12594
|
+
const isNft = isNftAsset2(selectedAsset);
|
|
12595
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "relative", style: { zIndex: isOpen ? 100 : "auto" }, children: [
|
|
12596
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12597
|
+
"button",
|
|
12598
|
+
{
|
|
12599
|
+
ref: buttonRef,
|
|
12600
|
+
type: "button",
|
|
12601
|
+
disabled,
|
|
12602
|
+
className: cn(
|
|
12603
|
+
"flex items-center gap-1.5 px-2 py-1 rounded-[var(--l-pass-el-bdrs)]",
|
|
12604
|
+
"bg-[var(--l-pass-bg)] hover:bg-[var(--l-pass-bg-secondary)]",
|
|
12605
|
+
"transition-colors cursor-pointer",
|
|
12606
|
+
disabled && "opacity-50 cursor-not-allowed"
|
|
12607
|
+
),
|
|
12608
|
+
onClick: handleToggle,
|
|
12609
|
+
children: [
|
|
12610
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AssetIcon, { asset: selectedAsset, size: "sm" }),
|
|
12611
|
+
/* @__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 }),
|
|
12612
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react42.ChevronDown, { className: cn("w-4 h-4 text-[var(--l-pass-fg-muted)] transition-transform", isOpen && "rotate-180") })
|
|
12613
|
+
]
|
|
12342
12614
|
}
|
|
12343
|
-
|
|
12344
|
-
|
|
12345
|
-
|
|
12346
|
-
|
|
12347
|
-
|
|
12348
|
-
|
|
12349
|
-
|
|
12350
|
-
|
|
12351
|
-
|
|
12352
|
-
|
|
12353
|
-
|
|
12354
|
-
|
|
12355
|
-
|
|
12356
|
-
|
|
12357
|
-
|
|
12358
|
-
|
|
12359
|
-
|
|
12360
|
-
|
|
12361
|
-
|
|
12362
|
-
|
|
12363
|
-
|
|
12364
|
-
|
|
12365
|
-
|
|
12366
|
-
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12615
|
+
),
|
|
12616
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12617
|
+
"div",
|
|
12618
|
+
{
|
|
12619
|
+
ref: dropdownRef,
|
|
12620
|
+
className: cn(
|
|
12621
|
+
"absolute left-0 bottom-full mb-2",
|
|
12622
|
+
"w-72 max-h-64 overflow-y-auto",
|
|
12623
|
+
"bg-[var(--l-pass-bg)] border border-[var(--l-pass-bd)]",
|
|
12624
|
+
"rounded-[var(--l-pass-el-bdrs)] shadow-lg"
|
|
12625
|
+
),
|
|
12626
|
+
style: { zIndex: 100 },
|
|
12627
|
+
onClick: (e) => e.stopPropagation(),
|
|
12628
|
+
children: [
|
|
12629
|
+
/* @__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: [
|
|
12630
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-sm font-semibold text-[var(--l-pass-fg)]", children: "Select Asset" }),
|
|
12631
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button, { variant: "ghost", size: "icon", onClick: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react42.X, { className: "w-4 h-4" }) })
|
|
12632
|
+
] }),
|
|
12633
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "p-2", children: [
|
|
12634
|
+
nativeAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_jsx_runtime64.Fragment, { children: nativeAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12635
|
+
AssetListItem,
|
|
12636
|
+
{
|
|
12637
|
+
asset,
|
|
12638
|
+
onSelect: () => handleSelect(asset),
|
|
12639
|
+
isSelected: selectedAsset?.type === asset.type && selectedAsset?.symbol === asset.symbol
|
|
12640
|
+
},
|
|
12641
|
+
`native-${asset.symbol}`
|
|
12642
|
+
)) }),
|
|
12643
|
+
tokenAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12644
|
+
/* @__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" }),
|
|
12645
|
+
tokenAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12646
|
+
AssetListItem,
|
|
12647
|
+
{
|
|
12648
|
+
asset,
|
|
12649
|
+
onSelect: () => handleSelect(asset),
|
|
12650
|
+
isSelected: selectedAsset?.address === asset.address && selectedAsset?.type === asset.type
|
|
12651
|
+
},
|
|
12652
|
+
`token-${asset.address}`
|
|
12653
|
+
))
|
|
12654
|
+
] }),
|
|
12655
|
+
securityAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12656
|
+
/* @__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" }),
|
|
12657
|
+
securityAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12658
|
+
AssetListItem,
|
|
12659
|
+
{
|
|
12660
|
+
asset,
|
|
12661
|
+
onSelect: () => handleSelect(asset),
|
|
12662
|
+
isSelected: selectedAsset?.address === asset.address && selectedAsset?.type === asset.type
|
|
12663
|
+
},
|
|
12664
|
+
`security-${asset.address}`
|
|
12665
|
+
))
|
|
12666
|
+
] }),
|
|
12667
|
+
nftAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12668
|
+
/* @__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" }),
|
|
12669
|
+
nftAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12670
|
+
AssetListItem,
|
|
12671
|
+
{
|
|
12672
|
+
asset,
|
|
12673
|
+
onSelect: () => handleSelect(asset),
|
|
12674
|
+
isSelected: selectedAsset?.address === asset.address && selectedAsset?.tokenId === asset.tokenId
|
|
12675
|
+
},
|
|
12676
|
+
`nft-${asset.address}-${asset.tokenId}`
|
|
12677
|
+
))
|
|
12678
|
+
] }),
|
|
12679
|
+
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" })
|
|
12680
|
+
] })
|
|
12681
|
+
]
|
|
12682
|
+
}
|
|
12683
|
+
)
|
|
12684
|
+
] });
|
|
12370
12685
|
}
|
|
12371
12686
|
|
|
12372
12687
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12373
|
-
|
|
12374
|
-
|
|
12688
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
12689
|
+
function isNftAsset3(asset) {
|
|
12690
|
+
if (!asset) return false;
|
|
12691
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
12692
|
+
}
|
|
12693
|
+
function isSecurityToken3(asset) {
|
|
12694
|
+
if (!asset) return false;
|
|
12695
|
+
return asset.type === "erc3643";
|
|
12696
|
+
}
|
|
12697
|
+
function getAssetBalance2(asset) {
|
|
12698
|
+
if (!asset) return 0;
|
|
12699
|
+
if (isNftAsset3(asset)) return 1;
|
|
12700
|
+
return Number((0, import_viem10.formatUnits)(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
12701
|
+
}
|
|
12702
|
+
function formatBalance(balance, decimals = 4) {
|
|
12703
|
+
if (balance >= 1e6) {
|
|
12704
|
+
return `${(balance / 1e6).toFixed(2)}M`;
|
|
12705
|
+
}
|
|
12706
|
+
if (balance >= 1e3) {
|
|
12707
|
+
return `${(balance / 1e3).toFixed(2)}K`;
|
|
12708
|
+
}
|
|
12709
|
+
return balance.toFixed(decimals);
|
|
12710
|
+
}
|
|
12711
|
+
function NftDisplayCard({ asset }) {
|
|
12712
|
+
const [imageError, setImageError] = (0, import_react50.useState)(false);
|
|
12713
|
+
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12714
|
+
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: [
|
|
12715
|
+
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12716
|
+
"img",
|
|
12717
|
+
{
|
|
12718
|
+
src: nftImage,
|
|
12719
|
+
alt: asset.nftMetadata?.name || asset.name,
|
|
12720
|
+
className: "w-16 h-16 rounded-[var(--l-pass-el-bdrs)] object-cover",
|
|
12721
|
+
onError: () => setImageError(true)
|
|
12722
|
+
}
|
|
12723
|
+
) : /* @__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_react43.Image, { className: "w-8 h-8 text-[var(--l-pass-fg-inverted)]" }) }),
|
|
12724
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
12725
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "font-semibold text-[var(--l-pass-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
12726
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12727
|
+
asset.symbol,
|
|
12728
|
+
asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "ml-1", children: [
|
|
12729
|
+
"#",
|
|
12730
|
+
asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
|
|
12731
|
+
] })
|
|
12732
|
+
] }),
|
|
12733
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-xs text-[var(--l-pass-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
12734
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Sparkles, { className: "w-3 h-3" }),
|
|
12735
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
12736
|
+
] })
|
|
12737
|
+
] })
|
|
12738
|
+
] });
|
|
12739
|
+
}
|
|
12375
12740
|
function SendLumiaMenu() {
|
|
12376
12741
|
const page = useLayoutDataStore((st) => st.page);
|
|
12377
12742
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12378
12743
|
const open = page === "send";
|
|
12379
12744
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12380
|
-
const {
|
|
12381
|
-
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12745
|
+
const {
|
|
12746
|
+
assets,
|
|
12747
|
+
refreshBalances,
|
|
12748
|
+
isLoading: isAssetsLoading
|
|
12749
|
+
} = useBlockscoutAssets({
|
|
12750
|
+
address
|
|
12385
12751
|
});
|
|
12752
|
+
const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
|
|
12386
12753
|
const [recipient, setRecipient] = (0, import_react50.useState)("");
|
|
12387
12754
|
const [amount, setAmount] = (0, import_react50.useState)("");
|
|
12755
|
+
const [selectedAsset, setSelectedAsset] = (0, import_react50.useState)(null);
|
|
12388
12756
|
const [txStep, setTxStep] = (0, import_react50.useState)("input");
|
|
12389
12757
|
const [validationError, setValidationError] = (0, import_react50.useState)(null);
|
|
12758
|
+
(0, import_react50.useEffect)(() => {
|
|
12759
|
+
if (assets.length > 0 && !selectedAsset) {
|
|
12760
|
+
const nativeAsset = assets.find((a) => a.type === "native");
|
|
12761
|
+
if (nativeAsset) {
|
|
12762
|
+
setSelectedAsset(nativeAsset);
|
|
12763
|
+
}
|
|
12764
|
+
}
|
|
12765
|
+
}, [assets, selectedAsset]);
|
|
12390
12766
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
12391
12767
|
const {
|
|
12392
12768
|
resolvedAddress,
|
|
@@ -12395,22 +12771,46 @@ function SendLumiaMenu() {
|
|
|
12395
12771
|
isWalletNotSetup,
|
|
12396
12772
|
isFrozen,
|
|
12397
12773
|
isFingerprintVerified,
|
|
12398
|
-
fingerprintVerification,
|
|
12399
12774
|
data: nicknameData
|
|
12400
12775
|
} = useNicknameResolve(recipient, {
|
|
12401
12776
|
enabled: isNicknameInput,
|
|
12402
12777
|
chainId: lumiaBeam.id
|
|
12403
12778
|
});
|
|
12404
12779
|
const effectiveAddress = isNicknameInput ? resolvedAddress : recipient;
|
|
12405
|
-
const
|
|
12406
|
-
const
|
|
12780
|
+
const balance = getAssetBalance2(selectedAsset);
|
|
12781
|
+
const isNft = isNftAsset3(selectedAsset);
|
|
12782
|
+
const isSecurity = isSecurityToken3(selectedAsset);
|
|
12783
|
+
const complianceAmount = (0, import_react50.useMemo)(() => {
|
|
12784
|
+
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
12785
|
+
try {
|
|
12786
|
+
return (0, import_viem10.parseUnits)(amount, selectedAsset.decimals || 18);
|
|
12787
|
+
} catch {
|
|
12788
|
+
return void 0;
|
|
12789
|
+
}
|
|
12790
|
+
}, [isSecurity, amount, selectedAsset]);
|
|
12791
|
+
const {
|
|
12792
|
+
canTransfer: erc3643CanTransfer,
|
|
12793
|
+
isLoading: isComplianceLoading,
|
|
12794
|
+
error: complianceError
|
|
12795
|
+
} = useErc3643Compliance({
|
|
12796
|
+
tokenAddress: selectedAsset?.address,
|
|
12797
|
+
to: effectiveAddress,
|
|
12798
|
+
amount: complianceAmount,
|
|
12799
|
+
enabled: isSecurity && !!effectiveAddress && !!complianceAmount
|
|
12800
|
+
});
|
|
12407
12801
|
(0, import_react50.useEffect)(() => {
|
|
12408
12802
|
if (open) {
|
|
12409
12803
|
setTxStep("input");
|
|
12410
12804
|
setValidationError(null);
|
|
12805
|
+
setRecipient("");
|
|
12806
|
+
setAmount("");
|
|
12411
12807
|
reset();
|
|
12808
|
+
const nativeAsset = assets.find((a) => a.type === "native");
|
|
12809
|
+
if (nativeAsset) {
|
|
12810
|
+
setSelectedAsset(nativeAsset);
|
|
12811
|
+
}
|
|
12412
12812
|
}
|
|
12413
|
-
}, [open, reset]);
|
|
12813
|
+
}, [open, reset, assets]);
|
|
12414
12814
|
const validateInput = () => {
|
|
12415
12815
|
if (!recipient) {
|
|
12416
12816
|
setValidationError("Please enter a recipient address or @nickname");
|
|
@@ -12445,14 +12845,34 @@ function SendLumiaMenu() {
|
|
|
12445
12845
|
setValidationError("Cannot send to yourself");
|
|
12446
12846
|
return false;
|
|
12447
12847
|
}
|
|
12448
|
-
|
|
12449
|
-
|
|
12450
|
-
setValidationError("Please enter a valid amount");
|
|
12848
|
+
if (!selectedAsset) {
|
|
12849
|
+
setValidationError("Please select an asset to send");
|
|
12451
12850
|
return false;
|
|
12452
12851
|
}
|
|
12453
|
-
if (
|
|
12454
|
-
|
|
12455
|
-
|
|
12852
|
+
if (!isNft) {
|
|
12853
|
+
const amountNum = parseFloat(amount);
|
|
12854
|
+
if (!amount || isNaN(amountNum) || amountNum <= 0) {
|
|
12855
|
+
setValidationError("Please enter a valid amount");
|
|
12856
|
+
return false;
|
|
12857
|
+
}
|
|
12858
|
+
if (amountNum > balance) {
|
|
12859
|
+
setValidationError("Insufficient balance");
|
|
12860
|
+
return false;
|
|
12861
|
+
}
|
|
12862
|
+
}
|
|
12863
|
+
if (isSecurity) {
|
|
12864
|
+
if (isComplianceLoading) {
|
|
12865
|
+
setValidationError("Checking compliance...");
|
|
12866
|
+
return false;
|
|
12867
|
+
}
|
|
12868
|
+
if (complianceError) {
|
|
12869
|
+
setValidationError(complianceError);
|
|
12870
|
+
return false;
|
|
12871
|
+
}
|
|
12872
|
+
if (erc3643CanTransfer === false) {
|
|
12873
|
+
setValidationError("Transfer not allowed by token compliance rules");
|
|
12874
|
+
return false;
|
|
12875
|
+
}
|
|
12456
12876
|
}
|
|
12457
12877
|
setValidationError(null);
|
|
12458
12878
|
return true;
|
|
@@ -12462,214 +12882,327 @@ function SendLumiaMenu() {
|
|
|
12462
12882
|
setTxStep("confirm");
|
|
12463
12883
|
};
|
|
12464
12884
|
const handleConfirm = async () => {
|
|
12465
|
-
if (!effectiveAddress) return;
|
|
12885
|
+
if (!effectiveAddress || !selectedAsset) return;
|
|
12466
12886
|
setTxStep("pending");
|
|
12887
|
+
const txAmount = isNft ? "1" : amount;
|
|
12467
12888
|
const hash = await sendTransaction({
|
|
12468
12889
|
to: effectiveAddress,
|
|
12469
|
-
value:
|
|
12890
|
+
value: txAmount,
|
|
12891
|
+
assetType: selectedAsset.type,
|
|
12892
|
+
tokenAddress: selectedAsset.address,
|
|
12893
|
+
tokenId: selectedAsset.tokenId,
|
|
12894
|
+
decimals: selectedAsset.decimals
|
|
12470
12895
|
});
|
|
12471
12896
|
if (hash) {
|
|
12472
12897
|
setTxStep("success");
|
|
12473
|
-
setTimeout(() =>
|
|
12474
|
-
refetchBalance();
|
|
12475
|
-
}, 2e3);
|
|
12898
|
+
setTimeout(() => refreshBalances(), 3e3);
|
|
12476
12899
|
} else {
|
|
12477
12900
|
setTxStep("input");
|
|
12478
12901
|
}
|
|
12479
12902
|
};
|
|
12480
12903
|
const handleMaxAmount = () => {
|
|
12481
|
-
|
|
12482
|
-
|
|
12904
|
+
if (!selectedAsset || isNft) return;
|
|
12905
|
+
if (selectedAsset.type === "native") {
|
|
12906
|
+
const maxAmount = Math.max(0, balance - 1e-3);
|
|
12907
|
+
setAmount(maxAmount.toFixed(6));
|
|
12908
|
+
} else {
|
|
12909
|
+
setAmount((0, import_viem10.formatUnits)(BigInt(selectedAsset.balance || "0"), selectedAsset.decimals || 18));
|
|
12910
|
+
}
|
|
12483
12911
|
};
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12487
|
-
|
|
12912
|
+
const handleAssetSelect = (asset) => {
|
|
12913
|
+
setSelectedAsset(asset);
|
|
12914
|
+
setAmount("");
|
|
12915
|
+
};
|
|
12916
|
+
const getPageTitle = () => {
|
|
12917
|
+
if (!selectedAsset) return "Send";
|
|
12918
|
+
if (isNft) return `Send NFT`;
|
|
12919
|
+
return `Send ${selectedAsset.symbol}`;
|
|
12920
|
+
};
|
|
12921
|
+
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: [
|
|
12922
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12923
|
+
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_react43.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
12924
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xl font-semibold", children: getPageTitle() })
|
|
12488
12925
|
] }),
|
|
12489
|
-
txStep === "input" && /* @__PURE__ */ (0,
|
|
12490
|
-
/* @__PURE__ */ (0,
|
|
12491
|
-
/* @__PURE__ */ (0,
|
|
12492
|
-
/* @__PURE__ */ (0,
|
|
12926
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
12927
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12928
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient" }),
|
|
12929
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12493
12930
|
Input,
|
|
12494
12931
|
{
|
|
12495
|
-
Icon: isNicknameInput ?
|
|
12932
|
+
Icon: isNicknameInput ? import_lucide_react43.AtSign : import_lucide_react43.Wallet,
|
|
12496
12933
|
type: "text",
|
|
12497
12934
|
value: recipient,
|
|
12498
12935
|
onChange: (e) => setRecipient(e.target.value),
|
|
12499
12936
|
placeholder: "0x... or @nickname",
|
|
12500
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */ (0,
|
|
12937
|
+
element: isNicknameInput && isResolving ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" }) : null
|
|
12501
12938
|
}
|
|
12502
12939
|
),
|
|
12503
|
-
isNicknameInput && resolvedAddress && !isResolving && nicknameData && /* @__PURE__ */ (0,
|
|
12504
|
-
nicknameData.avatarSvg ? /* @__PURE__ */ (0,
|
|
12940
|
+
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: [
|
|
12941
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12505
12942
|
"img",
|
|
12506
12943
|
{
|
|
12507
12944
|
src: nicknameData.avatarSvg,
|
|
12508
12945
|
alt: nicknameData.handle,
|
|
12509
12946
|
className: "w-10 h-10 rounded-full object-cover flex-shrink-0"
|
|
12510
12947
|
}
|
|
12511
|
-
) : /* @__PURE__ */ (0,
|
|
12512
|
-
/* @__PURE__ */ (0,
|
|
12513
|
-
/* @__PURE__ */ (0,
|
|
12514
|
-
/* @__PURE__ */ (0,
|
|
12515
|
-
/* @__PURE__ */ (0,
|
|
12948
|
+
) : /* @__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_react43.AtSign, { className: "w-5 h-5 text-[var(--l-pass-fg-muted)]" }) }),
|
|
12949
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
12950
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-success)]", children: [
|
|
12951
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12952
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-mono", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)}` })
|
|
12516
12953
|
] }),
|
|
12517
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12518
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12519
|
-
/* @__PURE__ */ (0,
|
|
12954
|
+
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: [
|
|
12955
|
+
isFingerprintVerified ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Shield, { className: "w-3 h-3 flex-shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.ShieldAlert, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12956
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { children: [
|
|
12520
12957
|
"Fingerprint: ",
|
|
12521
12958
|
nicknameData.fingerprint
|
|
12522
12959
|
] }),
|
|
12523
|
-
/* @__PURE__ */ (0,
|
|
12960
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12524
12961
|
] })
|
|
12525
12962
|
] })
|
|
12526
12963
|
] }),
|
|
12527
|
-
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */ (0,
|
|
12528
|
-
/* @__PURE__ */ (0,
|
|
12529
|
-
/* @__PURE__ */ (0,
|
|
12964
|
+
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: [
|
|
12965
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertTriangle, { className: "w-3 h-3" }),
|
|
12966
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "This handle is frozen. Proceed with caution." })
|
|
12530
12967
|
] }),
|
|
12531
|
-
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */ (0,
|
|
12532
|
-
/* @__PURE__ */ (0,
|
|
12533
|
-
/* @__PURE__ */ (0,
|
|
12968
|
+
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: [
|
|
12969
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "w-3 h-3" }),
|
|
12970
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "This user has not set up their wallet yet" })
|
|
12534
12971
|
] }),
|
|
12535
|
-
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */ (0,
|
|
12536
|
-
/* @__PURE__ */ (0,
|
|
12537
|
-
/* @__PURE__ */ (0,
|
|
12972
|
+
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: [
|
|
12973
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "w-3 h-3" }),
|
|
12974
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Nickname not found" })
|
|
12538
12975
|
] })
|
|
12539
12976
|
] }),
|
|
12540
|
-
/* @__PURE__ */ (0,
|
|
12541
|
-
/* @__PURE__ */ (0,
|
|
12542
|
-
/* @__PURE__ */ (0,
|
|
12543
|
-
/* @__PURE__ */ (0,
|
|
12977
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12978
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between items-center", children: [
|
|
12979
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: isNft ? "Asset" : "Amount" }),
|
|
12980
|
+
!isNft && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12544
12981
|
"Balance: ",
|
|
12545
|
-
balance
|
|
12546
|
-
"
|
|
12982
|
+
formatBalance(balance),
|
|
12983
|
+
" ",
|
|
12984
|
+
selectedAsset.symbol
|
|
12547
12985
|
] })
|
|
12548
12986
|
] }),
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
{
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12987
|
+
isNft && selectedAsset ? (
|
|
12988
|
+
// NFT display card
|
|
12989
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(NftDisplayCard, { asset: selectedAsset })
|
|
12990
|
+
) : (
|
|
12991
|
+
// Fungible token amount input
|
|
12992
|
+
/* @__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: [
|
|
12993
|
+
selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12994
|
+
AssetSelector,
|
|
12995
|
+
{
|
|
12996
|
+
assets,
|
|
12997
|
+
selectedAsset,
|
|
12998
|
+
onSelect: handleAssetSelect,
|
|
12999
|
+
disabled: isAssetsLoading
|
|
13000
|
+
}
|
|
13001
|
+
),
|
|
13002
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13003
|
+
"input",
|
|
13004
|
+
{
|
|
13005
|
+
type: "number",
|
|
13006
|
+
value: amount,
|
|
13007
|
+
onChange: (e) => setAmount(e.target.value),
|
|
13008
|
+
placeholder: "0.0",
|
|
13009
|
+
step: "0.000001",
|
|
13010
|
+
className: cn(
|
|
13011
|
+
"text-[16px] text-[var(--l-pass-fg)] font-semibold",
|
|
13012
|
+
"placeholder:text-[var(--l-pass-fg-muted)]",
|
|
13013
|
+
"focus-visible:outline-none focus-visible:ring-0",
|
|
13014
|
+
"w-full h-full flex-1 border-0 bg-transparent px-0"
|
|
13015
|
+
)
|
|
13016
|
+
}
|
|
13017
|
+
),
|
|
13018
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", children: "MAX" })
|
|
13019
|
+
] })
|
|
13020
|
+
),
|
|
13021
|
+
isNft && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-2 mt-2", children: [
|
|
13022
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Change asset:" }),
|
|
13023
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13024
|
+
AssetSelector,
|
|
13025
|
+
{
|
|
13026
|
+
assets,
|
|
13027
|
+
selectedAsset,
|
|
13028
|
+
onSelect: handleAssetSelect,
|
|
13029
|
+
disabled: isAssetsLoading
|
|
13030
|
+
}
|
|
13031
|
+
)
|
|
13032
|
+
] })
|
|
12561
13033
|
] }),
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
|
|
13034
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn(
|
|
13035
|
+
"flex items-center gap-2 p-3 rounded-[var(--l-pass-el-bdrs)]",
|
|
13036
|
+
isComplianceLoading && "bg-[var(--l-pass-bg-info)] text-[var(--l-pass-info)]",
|
|
13037
|
+
!isComplianceLoading && erc3643CanTransfer && "bg-[var(--l-pass-bg-success)] text-[var(--l-pass-success)]",
|
|
13038
|
+
!isComplianceLoading && !erc3643CanTransfer && "bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)]"
|
|
13039
|
+
), children: isComplianceLoading ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13040
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
13041
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: "Checking compliance..." })
|
|
13042
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13043
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "h-4 w-4" }),
|
|
13044
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: "Transfer compliant" })
|
|
13045
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13046
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "h-4 w-4" }),
|
|
13047
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: complianceError || "Transfer not allowed" })
|
|
13048
|
+
] }) }),
|
|
13049
|
+
(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: [
|
|
13050
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "h-4 w-4" }),
|
|
13051
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: validationError || error })
|
|
12565
13052
|
] }),
|
|
12566
|
-
/* @__PURE__ */ (0,
|
|
13053
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleSend, disabled: isLoading || isComplianceLoading, className: "w-full", size: "large", children: "Continue" })
|
|
12567
13054
|
] }),
|
|
12568
|
-
txStep === "confirm" && effectiveAddress && /* @__PURE__ */ (0,
|
|
12569
|
-
isNicknameInput && isFrozen && /* @__PURE__ */ (0,
|
|
12570
|
-
/* @__PURE__ */ (0,
|
|
12571
|
-
/* @__PURE__ */ (0,
|
|
13055
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13056
|
+
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: [
|
|
13057
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertTriangle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13058
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm font-medium", children: "This handle is frozen. Proceed with caution." })
|
|
12572
13059
|
] }),
|
|
12573
|
-
/* @__PURE__ */ (0,
|
|
12574
|
-
/* @__PURE__ */ (0,
|
|
12575
|
-
|
|
13060
|
+
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: [
|
|
13061
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Shield, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13062
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm font-medium", children: "Security token compliance verified" })
|
|
13063
|
+
] }),
|
|
13064
|
+
/* @__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: [
|
|
13065
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-start gap-3 mb-4", children: [
|
|
13066
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12576
13067
|
"img",
|
|
12577
13068
|
{
|
|
12578
13069
|
src: nicknameData.avatarSvg,
|
|
12579
13070
|
alt: nicknameData.handle,
|
|
12580
13071
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
12581
13072
|
}
|
|
12582
|
-
) : /* @__PURE__ */ (0,
|
|
12583
|
-
/* @__PURE__ */ (0,
|
|
12584
|
-
/* @__PURE__ */ (0,
|
|
12585
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12586
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12587
|
-
/* @__PURE__ */ (0,
|
|
13073
|
+
) : /* @__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_react43.AtSign, { className: "w-6 h-6 text-[var(--l-pass-fg-muted)]" }) }),
|
|
13074
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
13075
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold text-lg text-[var(--l-pass-fg)] truncate", children: nicknameData.handle }),
|
|
13076
|
+
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: [
|
|
13077
|
+
isFingerprintVerified ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Shield, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.ShieldAlert, { className: "w-4 h-4 flex-shrink-0" }),
|
|
13078
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { children: [
|
|
12588
13079
|
"Fingerprint: ",
|
|
12589
13080
|
nicknameData.fingerprint
|
|
12590
13081
|
] }),
|
|
12591
|
-
isFingerprintVerified && /* @__PURE__ */ (0,
|
|
12592
|
-
/* @__PURE__ */ (0,
|
|
13082
|
+
isFingerprintVerified && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "w-3 h-3" }),
|
|
13083
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs", children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12593
13084
|
] }),
|
|
12594
|
-
/* @__PURE__ */ (0,
|
|
13085
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-mono text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
12595
13086
|
"Address: ",
|
|
12596
13087
|
`${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-6)}`
|
|
12597
13088
|
] })
|
|
12598
13089
|
] })
|
|
12599
13090
|
] }),
|
|
12600
|
-
/* @__PURE__ */ (0,
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
/* @__PURE__ */ (0,
|
|
12604
|
-
|
|
12605
|
-
"
|
|
13091
|
+
/* @__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: [
|
|
13092
|
+
isNft ? (
|
|
13093
|
+
// NFT details
|
|
13094
|
+
/* @__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: [
|
|
13095
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13096
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-right", children: [
|
|
13097
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13098
|
+
selectedAsset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13099
|
+
"#",
|
|
13100
|
+
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13101
|
+
] })
|
|
13102
|
+
] })
|
|
13103
|
+
] }) })
|
|
13104
|
+
) : (
|
|
13105
|
+
// Fungible token details
|
|
13106
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13107
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13108
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-semibold", children: [
|
|
13109
|
+
amount,
|
|
13110
|
+
" ",
|
|
13111
|
+
selectedAsset.symbol
|
|
13112
|
+
] })
|
|
12606
13113
|
] })
|
|
12607
|
-
|
|
12608
|
-
/* @__PURE__ */ (0,
|
|
12609
|
-
/* @__PURE__ */ (0,
|
|
12610
|
-
/* @__PURE__ */ (0,
|
|
13114
|
+
),
|
|
13115
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13116
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13117
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Lumia Beam" })
|
|
12611
13118
|
] })
|
|
12612
13119
|
] })
|
|
12613
|
-
] }) : /* @__PURE__ */ (0,
|
|
12614
|
-
/* @__PURE__ */ (0,
|
|
12615
|
-
/* @__PURE__ */ (0,
|
|
12616
|
-
/* @__PURE__ */ (0,
|
|
12617
|
-
/* @__PURE__ */ (0,
|
|
12618
|
-
/* @__PURE__ */ (0,
|
|
13120
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13121
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h3", { className: "font-medium mb-3 text-[var(--l-pass-fg)]", children: "Transaction Details" }),
|
|
13122
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "space-y-2 text-sm text-[var(--l-pass-fg)]", children: [
|
|
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: "To:" }),
|
|
13125
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
12619
13126
|
] }),
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
/* @__PURE__ */ (0,
|
|
12623
|
-
|
|
12624
|
-
"
|
|
13127
|
+
isNft ? (
|
|
13128
|
+
// NFT details
|
|
13129
|
+
/* @__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: [
|
|
13130
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13131
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-right", children: [
|
|
13132
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13133
|
+
selectedAsset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13134
|
+
"#",
|
|
13135
|
+
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13136
|
+
] })
|
|
13137
|
+
] })
|
|
13138
|
+
] }) })
|
|
13139
|
+
) : (
|
|
13140
|
+
// Fungible token details
|
|
13141
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13142
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13143
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-semibold", children: [
|
|
13144
|
+
amount,
|
|
13145
|
+
" ",
|
|
13146
|
+
selectedAsset.symbol
|
|
13147
|
+
] })
|
|
12625
13148
|
] })
|
|
12626
|
-
|
|
12627
|
-
/* @__PURE__ */ (0,
|
|
12628
|
-
/* @__PURE__ */ (0,
|
|
12629
|
-
/* @__PURE__ */ (0,
|
|
13149
|
+
),
|
|
13150
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13151
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13152
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Lumia Beam" })
|
|
12630
13153
|
] })
|
|
12631
13154
|
] })
|
|
12632
13155
|
] }) }),
|
|
12633
|
-
/* @__PURE__ */ (0,
|
|
12634
|
-
/* @__PURE__ */ (0,
|
|
12635
|
-
/* @__PURE__ */ (0,
|
|
12636
|
-
isLoading && /* @__PURE__ */ (0,
|
|
13156
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex gap-2", children: [
|
|
13157
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
13158
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
13159
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
12637
13160
|
"Confirm"
|
|
12638
13161
|
] })
|
|
12639
13162
|
] })
|
|
12640
13163
|
] }),
|
|
12641
|
-
txStep === "pending" && /* @__PURE__ */ (0,
|
|
12642
|
-
/* @__PURE__ */ (0,
|
|
12643
|
-
/* @__PURE__ */ (0,
|
|
12644
|
-
/* @__PURE__ */ (0,
|
|
12645
|
-
/* @__PURE__ */ (0,
|
|
13164
|
+
txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
|
|
13165
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
13166
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { children: [
|
|
13167
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
13168
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
12646
13169
|
] })
|
|
12647
13170
|
] }),
|
|
12648
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ (0,
|
|
12649
|
-
/* @__PURE__ */ (0,
|
|
12650
|
-
/* @__PURE__ */ (0,
|
|
12651
|
-
/* @__PURE__ */ (0,
|
|
12652
|
-
/* @__PURE__ */ (0,
|
|
13171
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13172
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-center py-4", children: [
|
|
13173
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
13174
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
13175
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
12653
13176
|
] }),
|
|
12654
|
-
/* @__PURE__ */ (0,
|
|
13177
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
12655
13178
|
] })
|
|
12656
13179
|
] });
|
|
12657
13180
|
}
|
|
12658
13181
|
|
|
12659
13182
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
12660
|
-
var
|
|
13183
|
+
var import_lucide_react44 = require("lucide-react");
|
|
12661
13184
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
12662
13185
|
var import_react51 = require("react");
|
|
12663
13186
|
init_clients();
|
|
12664
|
-
var
|
|
13187
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
12665
13188
|
function ReceiveLumiaMenu() {
|
|
12666
|
-
const
|
|
13189
|
+
const session = useLumiaPassportSession((st) => st.session);
|
|
13190
|
+
const address = session?.smartAccountAddress ?? null;
|
|
12667
13191
|
const page = useLayoutDataStore((st) => st.page);
|
|
12668
13192
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12669
13193
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
12670
13194
|
const open = page === "receive";
|
|
12671
13195
|
const [qrCodeUrl, setQrCodeUrl] = (0, import_react51.useState)("");
|
|
12672
13196
|
const [copied, setCopied] = (0, import_react51.useState)(false);
|
|
13197
|
+
const [fingerprintCopied, setFingerprintCopied] = (0, import_react51.useState)(false);
|
|
13198
|
+
const fingerprint = (0, import_react51.useMemo)(() => {
|
|
13199
|
+
if (!session?.ownerAddress) return null;
|
|
13200
|
+
try {
|
|
13201
|
+
return generateFingerprint(session.ownerAddress);
|
|
13202
|
+
} catch {
|
|
13203
|
+
return null;
|
|
13204
|
+
}
|
|
13205
|
+
}, [session?.ownerAddress]);
|
|
12673
13206
|
(0, import_react51.useEffect)(() => {
|
|
12674
13207
|
if (open && address) {
|
|
12675
13208
|
import_qrcode.default.toDataURL(address, {
|
|
@@ -12693,7 +13226,17 @@ function ReceiveLumiaMenu() {
|
|
|
12693
13226
|
console.error("Failed to copy address:", error);
|
|
12694
13227
|
}
|
|
12695
13228
|
}, [address]);
|
|
12696
|
-
|
|
13229
|
+
const handleCopyFingerprint = (0, import_react51.useCallback)(async () => {
|
|
13230
|
+
if (!fingerprint) return;
|
|
13231
|
+
try {
|
|
13232
|
+
await navigator.clipboard.writeText(fingerprint);
|
|
13233
|
+
setFingerprintCopied(true);
|
|
13234
|
+
setTimeout(() => setFingerprintCopied(false), 2e3);
|
|
13235
|
+
} catch (error) {
|
|
13236
|
+
console.error("Failed to copy fingerprint:", error);
|
|
13237
|
+
}
|
|
13238
|
+
}, [fingerprint]);
|
|
13239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
12697
13240
|
"div",
|
|
12698
13241
|
{
|
|
12699
13242
|
style: {
|
|
@@ -12702,43 +13245,61 @@ function ReceiveLumiaMenu() {
|
|
|
12702
13245
|
},
|
|
12703
13246
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12704
13247
|
children: [
|
|
12705
|
-
/* @__PURE__ */ (0,
|
|
12706
|
-
/* @__PURE__ */ (0,
|
|
12707
|
-
/* @__PURE__ */ (0,
|
|
13248
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13249
|
+
/* @__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_react44.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
13250
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
12708
13251
|
] }),
|
|
12709
|
-
/* @__PURE__ */ (0,
|
|
12710
|
-
/* @__PURE__ */ (0,
|
|
12711
|
-
/* @__PURE__ */ (0,
|
|
13252
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
|
|
13253
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
13254
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
12712
13255
|
] }),
|
|
12713
|
-
/* @__PURE__ */ (0,
|
|
12714
|
-
/* @__PURE__ */ (0,
|
|
12715
|
-
/* @__PURE__ */ (0,
|
|
12716
|
-
/* @__PURE__ */ (0,
|
|
12717
|
-
|
|
12718
|
-
|
|
12719
|
-
|
|
12720
|
-
/* @__PURE__ */ (0,
|
|
12721
|
-
|
|
13256
|
+
/* @__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_react44.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
13257
|
+
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: [
|
|
13258
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.Shield, { className: "w-4 h-4 text-[var(--l-pass-bg-success)]" }),
|
|
13259
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Fingerprint:" }),
|
|
13260
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "font-mono text-sm font-semibold text-[var(--l-pass-fg)]", children: fingerprint }),
|
|
13261
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "relative group", children: [
|
|
13262
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.Info, { className: "w-3.5 h-3.5 text-[var(--l-pass-fg-muted)] cursor-help" }),
|
|
13263
|
+
/* @__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" })
|
|
13264
|
+
] }),
|
|
13265
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
13266
|
+
"button",
|
|
13267
|
+
{
|
|
13268
|
+
onClick: handleCopyFingerprint,
|
|
13269
|
+
className: "p-1 rounded hover:bg-[var(--l-pass-bg)] transition-colors",
|
|
13270
|
+
title: "Copy fingerprint",
|
|
13271
|
+
children: fingerprintCopied ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.CheckCircle2, { className: "w-3.5 h-3.5 text-[var(--l-pass-bg-success)]" }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.Copy, { className: "w-3.5 h-3.5 text-[var(--l-pass-fg-muted)]" })
|
|
13272
|
+
}
|
|
13273
|
+
)
|
|
13274
|
+
] }),
|
|
13275
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Highlight, { type: "info", children: [
|
|
13276
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
13277
|
+
/* @__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: [
|
|
13278
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.CheckCircle2, { className: "h-4 w-4" }),
|
|
13279
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: "Copied!" })
|
|
13280
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
13281
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.Copy, { className: "h-4 w-4" }),
|
|
13282
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: "Copy Address" })
|
|
12722
13283
|
] }) })
|
|
12723
13284
|
] }),
|
|
12724
|
-
/* @__PURE__ */ (0,
|
|
13285
|
+
/* @__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." }) })
|
|
12725
13286
|
]
|
|
12726
13287
|
}
|
|
12727
13288
|
);
|
|
12728
13289
|
}
|
|
12729
13290
|
|
|
12730
13291
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12731
|
-
var
|
|
13292
|
+
var import_lucide_react46 = require("lucide-react");
|
|
12732
13293
|
var import_react52 = require("react");
|
|
12733
13294
|
|
|
12734
13295
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12735
|
-
var
|
|
13296
|
+
var import_lucide_react45 = require("lucide-react");
|
|
12736
13297
|
|
|
12737
13298
|
// src/internal/assets/KycIcon.tsx
|
|
12738
|
-
var
|
|
13299
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
12739
13300
|
function KycIcon(props) {
|
|
12740
13301
|
const { width = "24", height = "24", ...rest } = props;
|
|
12741
|
-
return /* @__PURE__ */ (0,
|
|
13302
|
+
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)(
|
|
12742
13303
|
"path",
|
|
12743
13304
|
{
|
|
12744
13305
|
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",
|
|
@@ -12749,16 +13310,16 @@ function KycIcon(props) {
|
|
|
12749
13310
|
|
|
12750
13311
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12751
13312
|
var NAV_BUTTONS = [
|
|
12752
|
-
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon:
|
|
13313
|
+
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react45.ArrowLeftRight },
|
|
12753
13314
|
{ id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
|
|
12754
|
-
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon:
|
|
12755
|
-
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon:
|
|
12756
|
-
{ id: "security" /* SECURITY */, name: "Security", Icon:
|
|
12757
|
-
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon:
|
|
13315
|
+
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon: import_lucide_react45.AtSign },
|
|
13316
|
+
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react45.UsersRound },
|
|
13317
|
+
{ id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react45.LockKeyhole },
|
|
13318
|
+
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react45.DatabaseBackup }
|
|
12758
13319
|
];
|
|
12759
13320
|
|
|
12760
13321
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12761
|
-
var
|
|
13322
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
12762
13323
|
function SettingsMenu() {
|
|
12763
13324
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12764
13325
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -12769,7 +13330,7 @@ function SettingsMenu() {
|
|
|
12769
13330
|
useProvidersList();
|
|
12770
13331
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
12771
13332
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
12772
|
-
return /* @__PURE__ */ (0,
|
|
13333
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
12773
13334
|
"div",
|
|
12774
13335
|
{
|
|
12775
13336
|
style: {
|
|
@@ -12778,11 +13339,11 @@ function SettingsMenu() {
|
|
|
12778
13339
|
},
|
|
12779
13340
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12780
13341
|
children: [
|
|
12781
|
-
/* @__PURE__ */ (0,
|
|
12782
|
-
/* @__PURE__ */ (0,
|
|
12783
|
-
/* @__PURE__ */ (0,
|
|
13342
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13343
|
+
/* @__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_react46.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
13344
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
12784
13345
|
] }),
|
|
12785
|
-
/* @__PURE__ */ (0,
|
|
13346
|
+
/* @__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)(
|
|
12786
13347
|
Button,
|
|
12787
13348
|
{
|
|
12788
13349
|
variant: "outline",
|
|
@@ -12795,8 +13356,8 @@ function SettingsMenu() {
|
|
|
12795
13356
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
12796
13357
|
),
|
|
12797
13358
|
children: [
|
|
12798
|
-
/* @__PURE__ */ (0,
|
|
12799
|
-
/* @__PURE__ */ (0,
|
|
13359
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon2, { className: "w-4 h-4" }),
|
|
13360
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: name })
|
|
12800
13361
|
]
|
|
12801
13362
|
},
|
|
12802
13363
|
id
|
|
@@ -12807,35 +13368,35 @@ function SettingsMenu() {
|
|
|
12807
13368
|
}
|
|
12808
13369
|
|
|
12809
13370
|
// src/internal/components/TermsOfService.tsx
|
|
12810
|
-
var
|
|
12811
|
-
var
|
|
13371
|
+
var import_lucide_react47 = require("lucide-react");
|
|
13372
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
12812
13373
|
function TermsOfService() {
|
|
12813
13374
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12814
13375
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12815
|
-
return /* @__PURE__ */ (0,
|
|
12816
|
-
/* @__PURE__ */ (0,
|
|
12817
|
-
/* @__PURE__ */ (0,
|
|
13376
|
+
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: [
|
|
13377
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13378
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12818
13379
|
Button,
|
|
12819
13380
|
{
|
|
12820
13381
|
variant: "ghost",
|
|
12821
13382
|
size: "icon",
|
|
12822
13383
|
title: "Back",
|
|
12823
13384
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
12824
|
-
children: /* @__PURE__ */ (0,
|
|
13385
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react47.ArrowLeft, { className: "h-4 w-4" })
|
|
12825
13386
|
}
|
|
12826
13387
|
),
|
|
12827
|
-
/* @__PURE__ */ (0,
|
|
13388
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
12828
13389
|
] }),
|
|
12829
|
-
/* @__PURE__ */ (0,
|
|
12830
|
-
/* @__PURE__ */ (0,
|
|
12831
|
-
/* @__PURE__ */ (0,
|
|
13390
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Highlight, { type: "warning", className: "text-center", children: [
|
|
13391
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "block text-xs", children: "By using Lumia Passport you agree to our terms." }),
|
|
13392
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "block text-xs", children: "To be updated..." })
|
|
12832
13393
|
] })
|
|
12833
13394
|
] });
|
|
12834
13395
|
}
|
|
12835
13396
|
|
|
12836
13397
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
12837
13398
|
var import_react_query35 = require("@tanstack/react-query");
|
|
12838
|
-
var
|
|
13399
|
+
var import_lucide_react49 = require("lucide-react");
|
|
12839
13400
|
var import_react53 = require("react");
|
|
12840
13401
|
|
|
12841
13402
|
// src/internal/components/TransactionsMenu/api.ts
|
|
@@ -13092,7 +13653,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13092
13653
|
});
|
|
13093
13654
|
});
|
|
13094
13655
|
tokenTransfersData.forEach((transfer, index) => {
|
|
13095
|
-
const rawValue = transfer.value ?? "0";
|
|
13656
|
+
const rawValue = transfer.total?.value ?? transfer.value ?? "0";
|
|
13096
13657
|
const amount = toBigInt(rawValue);
|
|
13097
13658
|
if (amount === 0n) {
|
|
13098
13659
|
return;
|
|
@@ -13108,7 +13669,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13108
13669
|
}
|
|
13109
13670
|
const tsInput = transfer.timestamp;
|
|
13110
13671
|
const timestampMs = typeof tsInput === "number" ? tsInput > 1e12 ? tsInput : tsInput * 1e3 : tsInput ? new Date(tsInput).getTime() : now;
|
|
13111
|
-
const decimalsRaw = transfer.token?.decimals;
|
|
13672
|
+
const decimalsRaw = transfer.total?.decimals ?? transfer.token?.decimals;
|
|
13112
13673
|
const decimals = typeof decimalsRaw === "string" ? parseInt(decimalsRaw, 10) : typeof decimalsRaw === "number" ? decimalsRaw : 18;
|
|
13113
13674
|
const assetSymbol = transfer.token?.symbol || "Token";
|
|
13114
13675
|
const tokenItem = {
|
|
@@ -13160,7 +13721,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13160
13721
|
}
|
|
13161
13722
|
|
|
13162
13723
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13163
|
-
var
|
|
13724
|
+
var import_lucide_react48 = require("lucide-react");
|
|
13164
13725
|
|
|
13165
13726
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
13166
13727
|
init_base();
|
|
@@ -13207,22 +13768,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
13207
13768
|
};
|
|
13208
13769
|
|
|
13209
13770
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13210
|
-
var
|
|
13771
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
13211
13772
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
13212
13773
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
13213
13774
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
13214
|
-
return /* @__PURE__ */ (0,
|
|
13215
|
-
/* @__PURE__ */ (0,
|
|
13216
|
-
/* @__PURE__ */ (0,
|
|
13217
|
-
/* @__PURE__ */ (0,
|
|
13775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
|
|
13776
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13777
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
|
|
13778
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13218
13779
|
formatValue2(internal.value, internalDecimals),
|
|
13219
13780
|
" ",
|
|
13220
13781
|
internalSymbol
|
|
13221
13782
|
] })
|
|
13222
13783
|
] }),
|
|
13223
|
-
/* @__PURE__ */ (0,
|
|
13224
|
-
/* @__PURE__ */ (0,
|
|
13225
|
-
/* @__PURE__ */ (0,
|
|
13784
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13785
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
|
|
13786
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
|
|
13226
13787
|
] })
|
|
13227
13788
|
] });
|
|
13228
13789
|
}
|
|
@@ -13233,7 +13794,7 @@ function TransactionsGroup(props) {
|
|
|
13233
13794
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
13234
13795
|
const assetDecimals = parent.decimals ?? 18;
|
|
13235
13796
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
13236
|
-
return /* @__PURE__ */ (0,
|
|
13797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13237
13798
|
"div",
|
|
13238
13799
|
{
|
|
13239
13800
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -13243,28 +13804,28 @@ function TransactionsGroup(props) {
|
|
|
13243
13804
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
13244
13805
|
),
|
|
13245
13806
|
children: [
|
|
13246
|
-
/* @__PURE__ */ (0,
|
|
13247
|
-
/* @__PURE__ */ (0,
|
|
13248
|
-
parent.direction === "in" ? /* @__PURE__ */ (0,
|
|
13249
|
-
/* @__PURE__ */ (0,
|
|
13250
|
-
parent.status === "ok" ? /* @__PURE__ */ (0,
|
|
13807
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13808
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
13809
|
+
parent.direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react48.ChevronLeft, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react48.ChevronRight, { className: "w-4 h-4" }),
|
|
13810
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
13811
|
+
parent.status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(NegativeIcon, {})
|
|
13251
13812
|
] }),
|
|
13252
|
-
/* @__PURE__ */ (0,
|
|
13813
|
+
/* @__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) })
|
|
13253
13814
|
] }),
|
|
13254
|
-
/* @__PURE__ */ (0,
|
|
13255
|
-
/* @__PURE__ */ (0,
|
|
13256
|
-
/* @__PURE__ */ (0,
|
|
13815
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13816
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col gap-0", children: [
|
|
13817
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "font-bold", children: [
|
|
13257
13818
|
formatValue2(parent.value, assetDecimals),
|
|
13258
13819
|
" ",
|
|
13259
13820
|
assetSymbol
|
|
13260
13821
|
] }),
|
|
13261
|
-
/* @__PURE__ */ (0,
|
|
13822
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "text-[10px] font-mono text-[var(--l-pass-fg-muted)]", children: [
|
|
13262
13823
|
isIncoming ? "From: " : "To: ",
|
|
13263
13824
|
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
13264
13825
|
] })
|
|
13265
13826
|
] }),
|
|
13266
|
-
/* @__PURE__ */ (0,
|
|
13267
|
-
/* @__PURE__ */ (0,
|
|
13827
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-0", children: [
|
|
13828
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13268
13829
|
Button,
|
|
13269
13830
|
{
|
|
13270
13831
|
variant: "ghost",
|
|
@@ -13273,10 +13834,10 @@ function TransactionsGroup(props) {
|
|
|
13273
13834
|
onClick: (e) => {
|
|
13274
13835
|
e.stopPropagation();
|
|
13275
13836
|
},
|
|
13276
|
-
children: /* @__PURE__ */ (0,
|
|
13837
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react48.Copy, { className: "w-4 h-4" })
|
|
13277
13838
|
}
|
|
13278
13839
|
),
|
|
13279
|
-
/* @__PURE__ */ (0,
|
|
13840
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13280
13841
|
Button,
|
|
13281
13842
|
{
|
|
13282
13843
|
variant: "ghost",
|
|
@@ -13285,24 +13846,24 @@ function TransactionsGroup(props) {
|
|
|
13285
13846
|
onClick: (e) => {
|
|
13286
13847
|
e.stopPropagation();
|
|
13287
13848
|
},
|
|
13288
|
-
children: /* @__PURE__ */ (0,
|
|
13849
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LumiaIcon, { className: "w-4 h-4" })
|
|
13289
13850
|
}
|
|
13290
13851
|
)
|
|
13291
13852
|
] })
|
|
13292
13853
|
] }),
|
|
13293
|
-
internalsToRender.length > 0 && /* @__PURE__ */ (0,
|
|
13294
|
-
/* @__PURE__ */ (0,
|
|
13295
|
-
/* @__PURE__ */ (0,
|
|
13296
|
-
/* @__PURE__ */ (0,
|
|
13297
|
-
/* @__PURE__ */ (0,
|
|
13854
|
+
internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
13855
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
13856
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
13857
|
+
/* @__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" }),
|
|
13858
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
13298
13859
|
] }),
|
|
13299
|
-
/* @__PURE__ */ (0,
|
|
13860
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13300
13861
|
"div",
|
|
13301
13862
|
{
|
|
13302
13863
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
13303
13864
|
onClick: (event) => event.stopPropagation(),
|
|
13304
13865
|
children: [
|
|
13305
|
-
/* @__PURE__ */ (0,
|
|
13866
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13306
13867
|
Button,
|
|
13307
13868
|
{
|
|
13308
13869
|
variant: "ghost",
|
|
@@ -13310,16 +13871,16 @@ function TransactionsGroup(props) {
|
|
|
13310
13871
|
className: "w-full justify-between",
|
|
13311
13872
|
onClick: () => onToggleExpanded(group.id),
|
|
13312
13873
|
children: [
|
|
13313
|
-
/* @__PURE__ */ (0,
|
|
13874
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13314
13875
|
"View internal calls (",
|
|
13315
13876
|
internalsToRender.length,
|
|
13316
13877
|
")"
|
|
13317
13878
|
] }),
|
|
13318
|
-
/* @__PURE__ */ (0,
|
|
13879
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: expanded ? "Hide" : "Show" })
|
|
13319
13880
|
]
|
|
13320
13881
|
}
|
|
13321
13882
|
),
|
|
13322
|
-
expanded && /* @__PURE__ */ (0,
|
|
13883
|
+
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)(
|
|
13323
13884
|
InternalTransaction,
|
|
13324
13885
|
{
|
|
13325
13886
|
internal,
|
|
@@ -13338,7 +13899,7 @@ function TransactionsGroup(props) {
|
|
|
13338
13899
|
}
|
|
13339
13900
|
|
|
13340
13901
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13341
|
-
var
|
|
13902
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
13342
13903
|
function TransactionsMenu() {
|
|
13343
13904
|
const qc = (0, import_react_query35.useQueryClient)();
|
|
13344
13905
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -13362,7 +13923,7 @@ function TransactionsMenu() {
|
|
|
13362
13923
|
[qc, address]
|
|
13363
13924
|
);
|
|
13364
13925
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
13365
|
-
return /* @__PURE__ */ (0,
|
|
13926
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13366
13927
|
"div",
|
|
13367
13928
|
{
|
|
13368
13929
|
style: {
|
|
@@ -13370,11 +13931,11 @@ function TransactionsMenu() {
|
|
|
13370
13931
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
13371
13932
|
},
|
|
13372
13933
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
13373
|
-
children: /* @__PURE__ */ (0,
|
|
13374
|
-
/* @__PURE__ */ (0,
|
|
13375
|
-
/* @__PURE__ */ (0,
|
|
13376
|
-
/* @__PURE__ */ (0,
|
|
13377
|
-
/* @__PURE__ */ (0,
|
|
13934
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
13935
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13936
|
+
/* @__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_react49.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
13937
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
13938
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13378
13939
|
Button,
|
|
13379
13940
|
{
|
|
13380
13941
|
variant: "ghost",
|
|
@@ -13382,17 +13943,17 @@ function TransactionsMenu() {
|
|
|
13382
13943
|
onClick: refreshTxHistory,
|
|
13383
13944
|
disabled: isTxHistoryFetching,
|
|
13384
13945
|
title: "Refresh transactions",
|
|
13385
|
-
children: isTxHistoryFetching ? /* @__PURE__ */ (0,
|
|
13946
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react49.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react49.RefreshCw, { className: "h-4 w-4" })
|
|
13386
13947
|
}
|
|
13387
13948
|
)
|
|
13388
13949
|
] }),
|
|
13389
|
-
isTxHistoryLoading && /* @__PURE__ */ (0,
|
|
13390
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0,
|
|
13391
|
-
/* @__PURE__ */ (0,
|
|
13392
|
-
/* @__PURE__ */ (0,
|
|
13950
|
+
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_react49.Loader, { className: "h-5 w-5 animate-spin" }) }),
|
|
13951
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
13952
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react49.XCircle, { className: "w-4 h-4 flex-none" }),
|
|
13953
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
13393
13954
|
] }),
|
|
13394
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0,
|
|
13395
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0,
|
|
13955
|
+
!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." }) }),
|
|
13956
|
+
!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)(
|
|
13396
13957
|
TransactionsGroup,
|
|
13397
13958
|
{
|
|
13398
13959
|
group,
|
|
@@ -13507,7 +14068,7 @@ var PAGE_MAP = {
|
|
|
13507
14068
|
};
|
|
13508
14069
|
|
|
13509
14070
|
// src/internal/hooks/usePageMapper.tsx
|
|
13510
|
-
var
|
|
14071
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
13511
14072
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
13512
14073
|
function usePageMapper() {
|
|
13513
14074
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -13535,7 +14096,7 @@ function usePageMapper() {
|
|
|
13535
14096
|
const PageContentComponent = pageItem.component;
|
|
13536
14097
|
setDialogTitle(pageItem.title);
|
|
13537
14098
|
setDialogDescription(pageItem.description);
|
|
13538
|
-
setDialogContent(/* @__PURE__ */ (0,
|
|
14099
|
+
setDialogContent(/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(PageContentComponent, {}));
|
|
13539
14100
|
setIsDialogOpen(true);
|
|
13540
14101
|
},
|
|
13541
14102
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -13603,7 +14164,7 @@ function useWalletStatus() {
|
|
|
13603
14164
|
}
|
|
13604
14165
|
|
|
13605
14166
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
13606
|
-
var
|
|
14167
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
13607
14168
|
function LumiaPassportDialog() {
|
|
13608
14169
|
const config = useLumiaPassportConfig().config;
|
|
13609
14170
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -13622,7 +14183,7 @@ function LumiaPassportDialog() {
|
|
|
13622
14183
|
useListenIframeAuthEvents();
|
|
13623
14184
|
useWalletStatus();
|
|
13624
14185
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
13625
|
-
return /* @__PURE__ */ (0,
|
|
14186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
13626
14187
|
Dialog,
|
|
13627
14188
|
{
|
|
13628
14189
|
open: isDialogOpen,
|
|
@@ -13630,11 +14191,11 @@ function LumiaPassportDialog() {
|
|
|
13630
14191
|
if (isDialogForced) return;
|
|
13631
14192
|
if (!open) setPage(null);
|
|
13632
14193
|
},
|
|
13633
|
-
children: /* @__PURE__ */ (0,
|
|
13634
|
-
/* @__PURE__ */ (0,
|
|
13635
|
-
/* @__PURE__ */ (0,
|
|
13636
|
-
!isHeaderHidden && /* @__PURE__ */ (0,
|
|
13637
|
-
/* @__PURE__ */ (0,
|
|
14194
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(DialogContent, { colorMode, className, children: [
|
|
14195
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogTitle, { children: dialogTitle }) }),
|
|
14196
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
14197
|
+
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Header, {}),
|
|
14198
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_framer_motion3.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
13638
14199
|
import_framer_motion3.motion.div,
|
|
13639
14200
|
{
|
|
13640
14201
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -13646,7 +14207,7 @@ function LumiaPassportDialog() {
|
|
|
13646
14207
|
},
|
|
13647
14208
|
page || "empty"
|
|
13648
14209
|
) }),
|
|
13649
|
-
/* @__PURE__ */ (0,
|
|
14210
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Footer, {})
|
|
13650
14211
|
] })
|
|
13651
14212
|
}
|
|
13652
14213
|
);
|
|
@@ -13698,16 +14259,16 @@ var TssManagerWithRef = import_react58.default.forwardRef((props, ref) => {
|
|
|
13698
14259
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
13699
14260
|
var import_react_query36 = require("@tanstack/react-query");
|
|
13700
14261
|
var import_react59 = __toESM(require("react"), 1);
|
|
13701
|
-
var
|
|
14262
|
+
var import_wagmi4 = require("wagmi");
|
|
13702
14263
|
init_wallet();
|
|
13703
14264
|
function WalletConnectHandler() {
|
|
13704
14265
|
const qc = (0, import_react_query36.useQueryClient)();
|
|
13705
14266
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
13706
14267
|
const passportWalletAddress = useLumiaPassportSession((st) => st.address);
|
|
13707
|
-
const { address: walletAddress, isConnected, chain, connector } = (0,
|
|
14268
|
+
const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
|
|
13708
14269
|
const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
|
|
13709
|
-
const { disconnect } = (0,
|
|
13710
|
-
const { signMessageAsync } = (0,
|
|
14270
|
+
const { disconnect } = (0, import_wagmi4.useDisconnect)();
|
|
14271
|
+
const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
|
|
13711
14272
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
13712
14273
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13713
14274
|
const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
|
|
@@ -13849,7 +14410,7 @@ function WalletConnectHandler() {
|
|
|
13849
14410
|
}
|
|
13850
14411
|
|
|
13851
14412
|
// src/context/LumiaPassportSessionContext.tsx
|
|
13852
|
-
var
|
|
14413
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
13853
14414
|
var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
13854
14415
|
isLoading: false,
|
|
13855
14416
|
usePaymaster: true,
|
|
@@ -13875,17 +14436,17 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
|
13875
14436
|
}));
|
|
13876
14437
|
function LumiaPassportSessionProvider({ children }) {
|
|
13877
14438
|
const config = useLumiaPassportConfig().config;
|
|
13878
|
-
return /* @__PURE__ */ (0,
|
|
14439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_react60.Fragment, { children: [
|
|
13879
14440
|
children,
|
|
13880
|
-
config.current?.wallet?.enabled && /* @__PURE__ */ (0,
|
|
13881
|
-
/* @__PURE__ */ (0,
|
|
13882
|
-
/* @__PURE__ */ (0,
|
|
14441
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletConnectHandler, {}),
|
|
14442
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(BalanceFeedProvider, {}),
|
|
14443
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13883
14444
|
TssManagerWithRef,
|
|
13884
14445
|
{
|
|
13885
14446
|
mpcPin: void 0
|
|
13886
14447
|
}
|
|
13887
14448
|
),
|
|
13888
|
-
/* @__PURE__ */ (0,
|
|
14449
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LumiaPassportDialog, {})
|
|
13889
14450
|
] });
|
|
13890
14451
|
}
|
|
13891
14452
|
|
|
@@ -13901,15 +14462,15 @@ function notifyNoProjetctId(projectId) {
|
|
|
13901
14462
|
}
|
|
13902
14463
|
|
|
13903
14464
|
// src/context/WagmiContext.tsx
|
|
13904
|
-
var
|
|
14465
|
+
var import_wagmi6 = require("wagmi");
|
|
13905
14466
|
|
|
13906
14467
|
// src/config/wagmi.ts
|
|
13907
|
-
var
|
|
14468
|
+
var import_wagmi5 = require("wagmi");
|
|
13908
14469
|
init_base();
|
|
13909
|
-
var wagmiConfig = (0,
|
|
14470
|
+
var wagmiConfig = (0, import_wagmi5.createConfig)({
|
|
13910
14471
|
chains: [lumiaBeam],
|
|
13911
14472
|
transports: {
|
|
13912
|
-
[lumiaBeam.id]: (0,
|
|
14473
|
+
[lumiaBeam.id]: (0, import_wagmi5.http)(lumiaBeam.rpcUrls.default.http[0], {
|
|
13913
14474
|
timeout: 1e4,
|
|
13914
14475
|
retryCount: 0,
|
|
13915
14476
|
batch: false,
|
|
@@ -13920,13 +14481,13 @@ var wagmiConfig = (0, import_wagmi6.createConfig)({
|
|
|
13920
14481
|
});
|
|
13921
14482
|
|
|
13922
14483
|
// src/context/WagmiContext.tsx
|
|
13923
|
-
var
|
|
14484
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
13924
14485
|
var LumiaWagmiProvider = ({ children }) => {
|
|
13925
|
-
return /* @__PURE__ */ (0,
|
|
14486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_wagmi6.WagmiProvider, { config: wagmiConfig, children });
|
|
13926
14487
|
};
|
|
13927
14488
|
|
|
13928
14489
|
// src/context/LumiaPassportContext.tsx
|
|
13929
|
-
var
|
|
14490
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
13930
14491
|
var LumiaPassportContext = (0, import_react61.createContext)(void 0);
|
|
13931
14492
|
function LumiaPassportProvider(props) {
|
|
13932
14493
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
@@ -14015,7 +14576,7 @@ function LumiaPassportProvider(props) {
|
|
|
14015
14576
|
}
|
|
14016
14577
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
14017
14578
|
const contextValue = (0, import_react61.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
14018
|
-
return /* @__PURE__ */ (0,
|
|
14579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
14019
14580
|
}
|
|
14020
14581
|
var useLumiaPassportConfig = () => {
|
|
14021
14582
|
const ctx = (0, import_react61.useContext)(LumiaPassportContext);
|
|
@@ -14025,11 +14586,11 @@ var useLumiaPassportConfig = () => {
|
|
|
14025
14586
|
|
|
14026
14587
|
// src/components/ConnectWalletButton.tsx
|
|
14027
14588
|
var import_react_query37 = require("@tanstack/react-query");
|
|
14028
|
-
var
|
|
14589
|
+
var import_lucide_react50 = require("lucide-react");
|
|
14029
14590
|
var import_react62 = require("react");
|
|
14030
14591
|
init_auth();
|
|
14031
14592
|
init_profile();
|
|
14032
|
-
var
|
|
14593
|
+
var import_jsx_runtime77 = (
|
|
14033
14594
|
/** external Buttons can be provided */
|
|
14034
14595
|
require("react/jsx-runtime")
|
|
14035
14596
|
);
|
|
@@ -14068,18 +14629,18 @@ function ConnectWalletButton(props) {
|
|
|
14068
14629
|
return { server, local, backup: hasServerVault };
|
|
14069
14630
|
}, [session, address, hasServerVault]);
|
|
14070
14631
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
14071
|
-
return /* @__PURE__ */ (0,
|
|
14632
|
+
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)(
|
|
14072
14633
|
ConnectButton,
|
|
14073
14634
|
{
|
|
14074
14635
|
type: "button",
|
|
14075
14636
|
disabled: isConnecting,
|
|
14076
14637
|
onClick: () => setPage("auth" /* AUTH */),
|
|
14077
14638
|
children: [
|
|
14078
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14639
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14079
14640
|
connectButtonLabel
|
|
14080
14641
|
]
|
|
14081
14642
|
}
|
|
14082
|
-
) : /* @__PURE__ */ (0,
|
|
14643
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14083
14644
|
Button,
|
|
14084
14645
|
{
|
|
14085
14646
|
type: "button",
|
|
@@ -14096,11 +14657,11 @@ function ConnectWalletButton(props) {
|
|
|
14096
14657
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
14097
14658
|
),
|
|
14098
14659
|
children: [
|
|
14099
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14660
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14100
14661
|
connectButtonLabel.toUpperCase()
|
|
14101
14662
|
]
|
|
14102
14663
|
}
|
|
14103
|
-
) }) : /* @__PURE__ */ (0,
|
|
14664
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14104
14665
|
"button",
|
|
14105
14666
|
{
|
|
14106
14667
|
type: "button",
|
|
@@ -14113,23 +14674,23 @@ function ConnectWalletButton(props) {
|
|
|
14113
14674
|
"rounded-[var(--l-pass-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
14114
14675
|
),
|
|
14115
14676
|
children: [
|
|
14116
|
-
/* @__PURE__ */ (0,
|
|
14117
|
-
/* @__PURE__ */ (0,
|
|
14118
|
-
/* @__PURE__ */ (0,
|
|
14119
|
-
isProfileLoading ? /* @__PURE__ */ (0,
|
|
14120
|
-
/* @__PURE__ */ (0,
|
|
14677
|
+
/* @__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 }) }),
|
|
14678
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
|
|
14679
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
14680
|
+
isProfileLoading ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.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 }),
|
|
14681
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(KYCStatus, {})
|
|
14121
14682
|
] }),
|
|
14122
|
-
/* @__PURE__ */ (0,
|
|
14683
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(BalanceView, {})
|
|
14123
14684
|
] }),
|
|
14124
|
-
/* @__PURE__ */ (0,
|
|
14125
|
-
/* @__PURE__ */ (0,
|
|
14126
|
-
/* @__PURE__ */ (0,
|
|
14127
|
-
|
|
14685
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
14686
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14687
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14688
|
+
import_lucide_react50.Cloud,
|
|
14128
14689
|
{
|
|
14129
14690
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14130
14691
|
}
|
|
14131
14692
|
),
|
|
14132
|
-
/* @__PURE__ */ (0,
|
|
14693
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14133
14694
|
"div",
|
|
14134
14695
|
{
|
|
14135
14696
|
className: cn(
|
|
@@ -14144,14 +14705,14 @@ function ConnectWalletButton(props) {
|
|
|
14144
14705
|
}
|
|
14145
14706
|
)
|
|
14146
14707
|
] }),
|
|
14147
|
-
/* @__PURE__ */ (0,
|
|
14148
|
-
/* @__PURE__ */ (0,
|
|
14149
|
-
|
|
14708
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14709
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14710
|
+
import_lucide_react50.Laptop,
|
|
14150
14711
|
{
|
|
14151
14712
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14152
14713
|
}
|
|
14153
14714
|
),
|
|
14154
|
-
/* @__PURE__ */ (0,
|
|
14715
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14155
14716
|
"div",
|
|
14156
14717
|
{
|
|
14157
14718
|
className: cn(
|
|
@@ -14166,14 +14727,14 @@ function ConnectWalletButton(props) {
|
|
|
14166
14727
|
}
|
|
14167
14728
|
)
|
|
14168
14729
|
] }),
|
|
14169
|
-
/* @__PURE__ */ (0,
|
|
14170
|
-
/* @__PURE__ */ (0,
|
|
14171
|
-
|
|
14730
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14731
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14732
|
+
import_lucide_react50.Shield,
|
|
14172
14733
|
{
|
|
14173
14734
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14174
14735
|
}
|
|
14175
14736
|
),
|
|
14176
|
-
/* @__PURE__ */ (0,
|
|
14737
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14177
14738
|
"div",
|
|
14178
14739
|
{
|
|
14179
14740
|
className: cn(
|
|
@@ -14189,7 +14750,7 @@ function ConnectWalletButton(props) {
|
|
|
14189
14750
|
)
|
|
14190
14751
|
] })
|
|
14191
14752
|
] }),
|
|
14192
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
14753
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14193
14754
|
"div",
|
|
14194
14755
|
{
|
|
14195
14756
|
className: cn(
|
|
@@ -14282,24 +14843,24 @@ function useLumiaPassportColorMode() {
|
|
|
14282
14843
|
}
|
|
14283
14844
|
|
|
14284
14845
|
// src/components/ThemeToggle.tsx
|
|
14285
|
-
var
|
|
14286
|
-
var
|
|
14846
|
+
var import_lucide_react51 = require("lucide-react");
|
|
14847
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
14287
14848
|
function ThemeToggle(props) {
|
|
14288
14849
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
14289
|
-
return /* @__PURE__ */ (0,
|
|
14850
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14290
14851
|
"div",
|
|
14291
14852
|
{
|
|
14292
14853
|
className: "lumia-scope",
|
|
14293
14854
|
"data-lumia-passport-mode": colorMode,
|
|
14294
14855
|
style: { width: "fit-content", height: "fit-content" },
|
|
14295
|
-
children: /* @__PURE__ */ (0,
|
|
14856
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14296
14857
|
Button,
|
|
14297
14858
|
{
|
|
14298
14859
|
...props,
|
|
14299
14860
|
variant: "ghost",
|
|
14300
14861
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
14301
14862
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
14302
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
14863
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react51.Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react51.Moon, { className: "w-4 h-4" })
|
|
14303
14864
|
}
|
|
14304
14865
|
)
|
|
14305
14866
|
}
|
|
@@ -14309,7 +14870,7 @@ function ThemeToggle(props) {
|
|
|
14309
14870
|
// src/context/RainbowKitContext.tsx
|
|
14310
14871
|
var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
14311
14872
|
var import_react65 = require("react");
|
|
14312
|
-
var
|
|
14873
|
+
var import_wagmi8 = require("wagmi");
|
|
14313
14874
|
|
|
14314
14875
|
// src/config/rainbowkit.ts
|
|
14315
14876
|
var import_rainbowkit2 = require("@rainbow-me/rainbowkit");
|
|
@@ -14536,7 +15097,7 @@ var rainbowTheme = {
|
|
|
14536
15097
|
|
|
14537
15098
|
// src/context/RainbowKitContext.tsx
|
|
14538
15099
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
14539
|
-
var
|
|
15100
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
14540
15101
|
function LumiaRainbowKitProvider({ children }) {
|
|
14541
15102
|
const config = useLumiaPassportConfig().config;
|
|
14542
15103
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -14555,13 +15116,13 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
14555
15116
|
},
|
|
14556
15117
|
[colorMode]
|
|
14557
15118
|
);
|
|
14558
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0,
|
|
14559
|
-
return /* @__PURE__ */ (0,
|
|
15119
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_jsx_runtime79.Fragment, { children });
|
|
15120
|
+
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 }) });
|
|
14560
15121
|
}
|
|
14561
15122
|
|
|
14562
15123
|
// src/internal/components/UserOpStatus.tsx
|
|
14563
|
-
var
|
|
14564
|
-
var
|
|
15124
|
+
var import_lucide_react53 = require("lucide-react");
|
|
15125
|
+
var React10 = __toESM(require("react"), 1);
|
|
14565
15126
|
init_base();
|
|
14566
15127
|
|
|
14567
15128
|
// src/internal/utils/cn.ts
|
|
@@ -14572,9 +15133,9 @@ function cn2(...inputs) {
|
|
|
14572
15133
|
}
|
|
14573
15134
|
|
|
14574
15135
|
// src/internal/components/Address.tsx
|
|
14575
|
-
var
|
|
14576
|
-
var
|
|
14577
|
-
var
|
|
15136
|
+
var import_lucide_react52 = require("lucide-react");
|
|
15137
|
+
var React9 = __toESM(require("react"), 1);
|
|
15138
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
14578
15139
|
function toExplorerAddressUrl(address, chain) {
|
|
14579
15140
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
14580
15141
|
if (!base2) return null;
|
|
@@ -14595,12 +15156,12 @@ var Address = ({
|
|
|
14595
15156
|
}) => {
|
|
14596
15157
|
const addr = address || "";
|
|
14597
15158
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
14598
|
-
const [copied, setCopied] =
|
|
14599
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
14600
|
-
return /* @__PURE__ */ (0,
|
|
14601
|
-
label && /* @__PURE__ */ (0,
|
|
14602
|
-
/* @__PURE__ */ (0,
|
|
14603
|
-
showCopy && /* @__PURE__ */ (0,
|
|
15159
|
+
const [copied, setCopied] = React9.useState(false);
|
|
15160
|
+
if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
15162
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
15163
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
15164
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14604
15165
|
Button,
|
|
14605
15166
|
{
|
|
14606
15167
|
variant: "ghost",
|
|
@@ -14614,10 +15175,10 @@ var Address = ({
|
|
|
14614
15175
|
} catch {
|
|
14615
15176
|
}
|
|
14616
15177
|
},
|
|
14617
|
-
children: /* @__PURE__ */ (0,
|
|
15178
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react52.Copy, { className: "h-4 w-4" })
|
|
14618
15179
|
}
|
|
14619
15180
|
),
|
|
14620
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15181
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14621
15182
|
"a",
|
|
14622
15183
|
{
|
|
14623
15184
|
href: explorer,
|
|
@@ -14625,7 +15186,7 @@ var Address = ({
|
|
|
14625
15186
|
rel: "noreferrer noopener",
|
|
14626
15187
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14627
15188
|
title: "Open in explorer",
|
|
14628
|
-
children: /* @__PURE__ */ (0,
|
|
15189
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react52.ExternalLink, { className: "h-4 w-4" })
|
|
14629
15190
|
}
|
|
14630
15191
|
)
|
|
14631
15192
|
] });
|
|
@@ -14633,7 +15194,7 @@ var Address = ({
|
|
|
14633
15194
|
|
|
14634
15195
|
// src/internal/components/ui/badge.tsx
|
|
14635
15196
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
14636
|
-
var
|
|
15197
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
14637
15198
|
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
14638
15199
|
"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",
|
|
14639
15200
|
{
|
|
@@ -14653,11 +15214,11 @@ var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
|
14653
15214
|
}
|
|
14654
15215
|
);
|
|
14655
15216
|
function Badge({ className, variant, ...props }) {
|
|
14656
|
-
return /* @__PURE__ */ (0,
|
|
15217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
14657
15218
|
}
|
|
14658
15219
|
|
|
14659
15220
|
// src/internal/components/UserOpStatus.tsx
|
|
14660
|
-
var
|
|
15221
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
14661
15222
|
var UserOpStatus = ({
|
|
14662
15223
|
userOpHash,
|
|
14663
15224
|
chain,
|
|
@@ -14668,20 +15229,20 @@ var UserOpStatus = ({
|
|
|
14668
15229
|
externalState
|
|
14669
15230
|
}) => {
|
|
14670
15231
|
const useExternalState = !!externalState;
|
|
14671
|
-
const [internalReceipt, setInternalReceipt] =
|
|
14672
|
-
const [internalMempool, setInternalMempool] =
|
|
14673
|
-
const [internalError, setInternalError] =
|
|
14674
|
-
const [attempt, setAttempt] =
|
|
14675
|
-
const [internalRefreshing, setInternalRefreshing] =
|
|
14676
|
-
const [timedOut, setTimedOut] =
|
|
14677
|
-
const [rejected, setRejected] =
|
|
14678
|
-
const intervalRef =
|
|
14679
|
-
const startTimeRef =
|
|
15232
|
+
const [internalReceipt, setInternalReceipt] = React10.useState(null);
|
|
15233
|
+
const [internalMempool, setInternalMempool] = React10.useState(null);
|
|
15234
|
+
const [internalError, setInternalError] = React10.useState(null);
|
|
15235
|
+
const [attempt, setAttempt] = React10.useState(0);
|
|
15236
|
+
const [internalRefreshing, setInternalRefreshing] = React10.useState(false);
|
|
15237
|
+
const [timedOut, setTimedOut] = React10.useState(false);
|
|
15238
|
+
const [rejected, setRejected] = React10.useState(false);
|
|
15239
|
+
const intervalRef = React10.useRef(null);
|
|
15240
|
+
const startTimeRef = React10.useRef(Date.now());
|
|
14680
15241
|
const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
|
|
14681
15242
|
const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
|
|
14682
15243
|
const error = useExternalState ? externalState.error ?? null : internalError;
|
|
14683
15244
|
const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
|
|
14684
|
-
const rpc =
|
|
15245
|
+
const rpc = React10.useCallback(async (method, params) => {
|
|
14685
15246
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
14686
15247
|
const res = await fetch(getBundlerUrl(), {
|
|
14687
15248
|
method: "POST",
|
|
@@ -14692,14 +15253,14 @@ var UserOpStatus = ({
|
|
|
14692
15253
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
14693
15254
|
return json.result;
|
|
14694
15255
|
}, []);
|
|
14695
|
-
const extractMempoolInfo =
|
|
15256
|
+
const extractMempoolInfo = React10.useCallback((m) => {
|
|
14696
15257
|
if (!m) return null;
|
|
14697
15258
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
14698
15259
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
14699
15260
|
if (!entryPoint && !sender) return null;
|
|
14700
15261
|
return { entryPoint, sender };
|
|
14701
15262
|
}, []);
|
|
14702
|
-
const tick =
|
|
15263
|
+
const tick = React10.useCallback(async () => {
|
|
14703
15264
|
if (useExternalState) return;
|
|
14704
15265
|
const elapsed = Date.now() - startTimeRef.current;
|
|
14705
15266
|
if (elapsed > maxPollTimeMs) {
|
|
@@ -14743,7 +15304,7 @@ var UserOpStatus = ({
|
|
|
14743
15304
|
setAttempt((x) => x + 1);
|
|
14744
15305
|
}
|
|
14745
15306
|
}, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
|
|
14746
|
-
|
|
15307
|
+
React10.useEffect(() => {
|
|
14747
15308
|
if (useExternalState) return;
|
|
14748
15309
|
console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
|
|
14749
15310
|
startTimeRef.current = Date.now();
|
|
@@ -14755,7 +15316,7 @@ var UserOpStatus = ({
|
|
|
14755
15316
|
setAttempt(0);
|
|
14756
15317
|
setInternalRefreshing(false);
|
|
14757
15318
|
}, [userOpHash, useExternalState]);
|
|
14758
|
-
|
|
15319
|
+
React10.useEffect(() => {
|
|
14759
15320
|
if (useExternalState) {
|
|
14760
15321
|
console.log("[UserOpStatus] Using external state, skipping internal polling");
|
|
14761
15322
|
return;
|
|
@@ -14790,35 +15351,35 @@ var UserOpStatus = ({
|
|
|
14790
15351
|
const stateBadge = () => {
|
|
14791
15352
|
if (receipt) {
|
|
14792
15353
|
const ok = !!receipt.success;
|
|
14793
|
-
return /* @__PURE__ */ (0,
|
|
14794
|
-
ok ? /* @__PURE__ */ (0,
|
|
15354
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
15355
|
+
ok ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-3 w-3" }),
|
|
14795
15356
|
ok ? "Included" : "Failed"
|
|
14796
15357
|
] });
|
|
14797
15358
|
}
|
|
14798
15359
|
if (rejected) {
|
|
14799
|
-
return /* @__PURE__ */ (0,
|
|
14800
|
-
/* @__PURE__ */ (0,
|
|
15360
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
15361
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-3 w-3" }),
|
|
14801
15362
|
" Rejected by bundler"
|
|
14802
15363
|
] });
|
|
14803
15364
|
}
|
|
14804
15365
|
if (timedOut) {
|
|
14805
|
-
return /* @__PURE__ */ (0,
|
|
14806
|
-
/* @__PURE__ */ (0,
|
|
15366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "warning", className: "gap-1", children: [
|
|
15367
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-3 w-3" }),
|
|
14807
15368
|
" Timeout - may be rejected"
|
|
14808
15369
|
] });
|
|
14809
15370
|
}
|
|
14810
15371
|
if (mempool) {
|
|
14811
|
-
return /* @__PURE__ */ (0,
|
|
14812
|
-
/* @__PURE__ */ (0,
|
|
15372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "outline", className: "gap-1", children: [
|
|
15373
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Clock, { className: "h-3 w-3" }),
|
|
14813
15374
|
" Pending in bundler"
|
|
14814
15375
|
] });
|
|
14815
15376
|
}
|
|
14816
|
-
return /* @__PURE__ */ (0,
|
|
14817
|
-
/* @__PURE__ */ (0,
|
|
15377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
15378
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Clock, { className: "h-3 w-3" }),
|
|
14818
15379
|
" Waiting"
|
|
14819
15380
|
] });
|
|
14820
15381
|
};
|
|
14821
|
-
return /* @__PURE__ */ (0,
|
|
15382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
14822
15383
|
"div",
|
|
14823
15384
|
{
|
|
14824
15385
|
className: cn2(
|
|
@@ -14827,20 +15388,20 @@ var UserOpStatus = ({
|
|
|
14827
15388
|
),
|
|
14828
15389
|
style: { textAlign: "left", listStyle: "none" },
|
|
14829
15390
|
children: [
|
|
14830
|
-
/* @__PURE__ */ (0,
|
|
14831
|
-
/* @__PURE__ */ (0,
|
|
15391
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
15392
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
14832
15393
|
stateBadge(),
|
|
14833
|
-
/* @__PURE__ */ (0,
|
|
15394
|
+
/* @__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." })
|
|
14834
15395
|
] }),
|
|
14835
|
-
/* @__PURE__ */ (0,
|
|
14836
|
-
/* @__PURE__ */ (0,
|
|
14837
|
-
/* @__PURE__ */ (0,
|
|
15396
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
15397
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
15398
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
14838
15399
|
] })
|
|
14839
15400
|
] }),
|
|
14840
|
-
/* @__PURE__ */ (0,
|
|
14841
|
-
/* @__PURE__ */ (0,
|
|
14842
|
-
/* @__PURE__ */ (0,
|
|
14843
|
-
/* @__PURE__ */ (0,
|
|
15401
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
15402
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
15403
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
15404
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14844
15405
|
Button,
|
|
14845
15406
|
{
|
|
14846
15407
|
variant: "ghost",
|
|
@@ -14852,14 +15413,14 @@ var UserOpStatus = ({
|
|
|
14852
15413
|
} catch {
|
|
14853
15414
|
}
|
|
14854
15415
|
},
|
|
14855
|
-
children: /* @__PURE__ */ (0,
|
|
15416
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Copy, { className: "h-3.5 w-3.5" })
|
|
14856
15417
|
}
|
|
14857
15418
|
)
|
|
14858
15419
|
] }),
|
|
14859
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
14860
|
-
/* @__PURE__ */ (0,
|
|
14861
|
-
/* @__PURE__ */ (0,
|
|
14862
|
-
/* @__PURE__ */ (0,
|
|
15420
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
15421
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
15422
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
15423
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14863
15424
|
Button,
|
|
14864
15425
|
{
|
|
14865
15426
|
variant: "ghost",
|
|
@@ -14871,10 +15432,10 @@ var UserOpStatus = ({
|
|
|
14871
15432
|
} catch {
|
|
14872
15433
|
}
|
|
14873
15434
|
},
|
|
14874
|
-
children: /* @__PURE__ */ (0,
|
|
15435
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Copy, { className: "h-3.5 w-3.5" })
|
|
14875
15436
|
}
|
|
14876
15437
|
),
|
|
14877
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
15438
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14878
15439
|
"a",
|
|
14879
15440
|
{
|
|
14880
15441
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -14882,11 +15443,11 @@ var UserOpStatus = ({
|
|
|
14882
15443
|
rel: "noreferrer noopener",
|
|
14883
15444
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
14884
15445
|
title: "Open in explorer",
|
|
14885
|
-
children: /* @__PURE__ */ (0,
|
|
15446
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
14886
15447
|
}
|
|
14887
15448
|
)
|
|
14888
15449
|
] }),
|
|
14889
|
-
receipt && /* @__PURE__ */ (0,
|
|
15450
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
14890
15451
|
"Block ",
|
|
14891
15452
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
14892
15453
|
" \u2022 Gas Used",
|
|
@@ -14895,32 +15456,32 @@ var UserOpStatus = ({
|
|
|
14895
15456
|
" \u2022 Success ",
|
|
14896
15457
|
String(!!receipt.success)
|
|
14897
15458
|
] }),
|
|
14898
|
-
/* @__PURE__ */ (0,
|
|
15459
|
+
/* @__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: [
|
|
14899
15460
|
"\u2022 Polling for ",
|
|
14900
15461
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
14901
15462
|
"s"
|
|
14902
15463
|
] }) }),
|
|
14903
|
-
mempool && /* @__PURE__ */ (0,
|
|
14904
|
-
/* @__PURE__ */ (0,
|
|
15464
|
+
mempool && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
15465
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
14905
15466
|
"Seen by bundler at ",
|
|
14906
|
-
/* @__PURE__ */ (0,
|
|
15467
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
14907
15468
|
] }),
|
|
14908
|
-
/* @__PURE__ */ (0,
|
|
15469
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
14909
15470
|
"sender ",
|
|
14910
|
-
/* @__PURE__ */ (0,
|
|
15471
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
14911
15472
|
] })
|
|
14912
15473
|
] }),
|
|
14913
|
-
error && /* @__PURE__ */ (0,
|
|
14914
|
-
/* @__PURE__ */ (0,
|
|
15474
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15475
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-4 w-4" }),
|
|
14915
15476
|
" ",
|
|
14916
15477
|
error
|
|
14917
15478
|
] }),
|
|
14918
|
-
rejected && /* @__PURE__ */ (0,
|
|
14919
|
-
/* @__PURE__ */ (0,
|
|
15479
|
+
rejected && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15480
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-4 w-4" }),
|
|
14920
15481
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
14921
15482
|
] }),
|
|
14922
|
-
timedOut && /* @__PURE__ */ (0,
|
|
14923
|
-
/* @__PURE__ */ (0,
|
|
15483
|
+
timedOut && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15484
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-4 w-4" }),
|
|
14924
15485
|
"Stopped polling after ",
|
|
14925
15486
|
Math.round(maxPollTimeMs / 1e3),
|
|
14926
15487
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -14931,9 +15492,9 @@ var UserOpStatus = ({
|
|
|
14931
15492
|
};
|
|
14932
15493
|
|
|
14933
15494
|
// src/internal/components/Hash.tsx
|
|
14934
|
-
var
|
|
14935
|
-
var
|
|
14936
|
-
var
|
|
15495
|
+
var import_lucide_react54 = require("lucide-react");
|
|
15496
|
+
var React11 = __toESM(require("react"), 1);
|
|
15497
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
14937
15498
|
function toExplorerUrl(kind, value, chain) {
|
|
14938
15499
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
14939
15500
|
if (!base2) return null;
|
|
@@ -14956,12 +15517,12 @@ var Hash = ({
|
|
|
14956
15517
|
}) => {
|
|
14957
15518
|
const value = hash || "";
|
|
14958
15519
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
14959
|
-
const [copied, setCopied] =
|
|
14960
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
14961
|
-
return /* @__PURE__ */ (0,
|
|
14962
|
-
label && /* @__PURE__ */ (0,
|
|
14963
|
-
/* @__PURE__ */ (0,
|
|
14964
|
-
showCopy && /* @__PURE__ */ (0,
|
|
15520
|
+
const [copied, setCopied] = React11.useState(false);
|
|
15521
|
+
if (!value) return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
15523
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
15524
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
15525
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
14965
15526
|
Button,
|
|
14966
15527
|
{
|
|
14967
15528
|
variant: "ghost",
|
|
@@ -14975,10 +15536,10 @@ var Hash = ({
|
|
|
14975
15536
|
} catch {
|
|
14976
15537
|
}
|
|
14977
15538
|
},
|
|
14978
|
-
children: /* @__PURE__ */ (0,
|
|
15539
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4" })
|
|
14979
15540
|
}
|
|
14980
15541
|
),
|
|
14981
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15542
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
14982
15543
|
"a",
|
|
14983
15544
|
{
|
|
14984
15545
|
href: explorer,
|
|
@@ -14986,7 +15547,7 @@ var Hash = ({
|
|
|
14986
15547
|
rel: "noreferrer noopener",
|
|
14987
15548
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14988
15549
|
title: "Open in explorer",
|
|
14989
|
-
children: /* @__PURE__ */ (0,
|
|
15550
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react54.ExternalLink, { className: "h-4 w-4" })
|
|
14990
15551
|
}
|
|
14991
15552
|
)
|
|
14992
15553
|
] });
|
|
@@ -14995,7 +15556,7 @@ var Hash = ({
|
|
|
14995
15556
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
14996
15557
|
var import_react66 = require("react");
|
|
14997
15558
|
init_base();
|
|
14998
|
-
var
|
|
15559
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
14999
15560
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
15000
15561
|
const [transactions, setTransactions] = (0, import_react66.useState)([]);
|
|
15001
15562
|
const [loading, setLoading] = (0, import_react66.useState)(true);
|
|
@@ -15046,31 +15607,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15046
15607
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
15047
15608
|
};
|
|
15048
15609
|
if (loading) {
|
|
15049
|
-
return /* @__PURE__ */ (0,
|
|
15050
|
-
/* @__PURE__ */ (0,
|
|
15051
|
-
/* @__PURE__ */ (0,
|
|
15610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "p-4 text-center", children: [
|
|
15611
|
+
/* @__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" }),
|
|
15612
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
15052
15613
|
] });
|
|
15053
15614
|
}
|
|
15054
15615
|
if (error) {
|
|
15055
|
-
return /* @__PURE__ */ (0,
|
|
15056
|
-
/* @__PURE__ */ (0,
|
|
15057
|
-
/* @__PURE__ */ (0,
|
|
15616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "p-4 text-center", children: [
|
|
15617
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-red-600 text-sm", children: error }),
|
|
15618
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
15058
15619
|
] });
|
|
15059
15620
|
}
|
|
15060
15621
|
if (transactions.length === 0) {
|
|
15061
|
-
return /* @__PURE__ */ (0,
|
|
15622
|
+
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" }) });
|
|
15062
15623
|
}
|
|
15063
|
-
return /* @__PURE__ */ (0,
|
|
15624
|
+
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)(
|
|
15064
15625
|
"div",
|
|
15065
15626
|
{
|
|
15066
15627
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
15067
15628
|
onClick: () => openTransaction(tx.hash),
|
|
15068
15629
|
children: [
|
|
15069
|
-
/* @__PURE__ */ (0,
|
|
15070
|
-
/* @__PURE__ */ (0,
|
|
15071
|
-
/* @__PURE__ */ (0,
|
|
15072
|
-
/* @__PURE__ */ (0,
|
|
15073
|
-
/* @__PURE__ */ (0,
|
|
15630
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex justify-between items-start mb-2", children: [
|
|
15631
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex-1", children: [
|
|
15632
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
15633
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
15634
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
15074
15635
|
"span",
|
|
15075
15636
|
{
|
|
15076
15637
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -15078,40 +15639,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15078
15639
|
}
|
|
15079
15640
|
)
|
|
15080
15641
|
] }),
|
|
15081
|
-
/* @__PURE__ */ (0,
|
|
15082
|
-
/* @__PURE__ */ (0,
|
|
15083
|
-
/* @__PURE__ */ (0,
|
|
15084
|
-
/* @__PURE__ */ (0,
|
|
15642
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "text-sm space-y-1", children: [
|
|
15643
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15644
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "From:" }),
|
|
15645
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
15085
15646
|
formatAddress3(tx.from.hash),
|
|
15086
|
-
tx.from.is_contract && /* @__PURE__ */ (0,
|
|
15647
|
+
tx.from.is_contract && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15087
15648
|
] })
|
|
15088
15649
|
] }),
|
|
15089
|
-
/* @__PURE__ */ (0,
|
|
15090
|
-
/* @__PURE__ */ (0,
|
|
15091
|
-
/* @__PURE__ */ (0,
|
|
15650
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15651
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "To:" }),
|
|
15652
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
15092
15653
|
formatAddress3(tx.to.hash),
|
|
15093
|
-
tx.to.is_contract && /* @__PURE__ */ (0,
|
|
15654
|
+
tx.to.is_contract && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15094
15655
|
] })
|
|
15095
15656
|
] }),
|
|
15096
|
-
/* @__PURE__ */ (0,
|
|
15097
|
-
/* @__PURE__ */ (0,
|
|
15098
|
-
/* @__PURE__ */ (0,
|
|
15657
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15658
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "Value:" }),
|
|
15659
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-semibold ml-1", children: [
|
|
15099
15660
|
formatValue3(tx.value),
|
|
15100
15661
|
" LUMIA"
|
|
15101
15662
|
] })
|
|
15102
15663
|
] })
|
|
15103
15664
|
] })
|
|
15104
15665
|
] }),
|
|
15105
|
-
/* @__PURE__ */ (0,
|
|
15106
|
-
/* @__PURE__ */ (0,
|
|
15107
|
-
/* @__PURE__ */ (0,
|
|
15666
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "text-right text-xs text-gray-500", children: [
|
|
15667
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { children: formatDate3(tx.timestamp) }),
|
|
15668
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "mt-1", children: [
|
|
15108
15669
|
"Gas: ",
|
|
15109
15670
|
parseInt(tx.gas_used).toLocaleString()
|
|
15110
15671
|
] }),
|
|
15111
|
-
tx.method && /* @__PURE__ */ (0,
|
|
15672
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
15112
15673
|
] })
|
|
15113
15674
|
] }),
|
|
15114
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */ (0,
|
|
15675
|
+
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)) })
|
|
15115
15676
|
]
|
|
15116
15677
|
},
|
|
15117
15678
|
tx.hash
|
|
@@ -15119,7 +15680,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15119
15680
|
};
|
|
15120
15681
|
|
|
15121
15682
|
// src/hooks/useUserOpStatus.ts
|
|
15122
|
-
var
|
|
15683
|
+
var React13 = __toESM(require("react"), 1);
|
|
15123
15684
|
init_base();
|
|
15124
15685
|
function useUserOpStatus(options = {}) {
|
|
15125
15686
|
const {
|
|
@@ -15131,16 +15692,16 @@ function useUserOpStatus(options = {}) {
|
|
|
15131
15692
|
onReceipt,
|
|
15132
15693
|
onTxHash
|
|
15133
15694
|
} = options;
|
|
15134
|
-
const [state, setState] =
|
|
15135
|
-
const [receipt, setReceipt] =
|
|
15136
|
-
const [mempool, setMempool] =
|
|
15137
|
-
const [txHash, setTxHash] =
|
|
15138
|
-
const [error, setError] =
|
|
15139
|
-
const [isPolling, setIsPolling] =
|
|
15140
|
-
const intervalRef =
|
|
15141
|
-
const startTimeRef =
|
|
15142
|
-
const prevStateRef =
|
|
15143
|
-
const rpc =
|
|
15695
|
+
const [state, setState] = React13.useState("waiting");
|
|
15696
|
+
const [receipt, setReceipt] = React13.useState(null);
|
|
15697
|
+
const [mempool, setMempool] = React13.useState(null);
|
|
15698
|
+
const [txHash, setTxHash] = React13.useState(null);
|
|
15699
|
+
const [error, setError] = React13.useState(null);
|
|
15700
|
+
const [isPolling, setIsPolling] = React13.useState(false);
|
|
15701
|
+
const intervalRef = React13.useRef(null);
|
|
15702
|
+
const startTimeRef = React13.useRef(Date.now());
|
|
15703
|
+
const prevStateRef = React13.useRef("waiting");
|
|
15704
|
+
const rpc = React13.useCallback(async (method, params) => {
|
|
15144
15705
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
15145
15706
|
const res = await fetch(getBundlerUrl(), {
|
|
15146
15707
|
method: "POST",
|
|
@@ -15151,21 +15712,21 @@ function useUserOpStatus(options = {}) {
|
|
|
15151
15712
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
15152
15713
|
return json.result;
|
|
15153
15714
|
}, []);
|
|
15154
|
-
const extractMempoolInfo =
|
|
15715
|
+
const extractMempoolInfo = React13.useCallback((m) => {
|
|
15155
15716
|
if (!m) return null;
|
|
15156
15717
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
15157
15718
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
15158
15719
|
if (!entryPoint && !sender) return null;
|
|
15159
15720
|
return { entryPoint, sender };
|
|
15160
15721
|
}, []);
|
|
15161
|
-
const updateState =
|
|
15722
|
+
const updateState = React13.useCallback((newState) => {
|
|
15162
15723
|
setState(newState);
|
|
15163
15724
|
if (prevStateRef.current !== newState) {
|
|
15164
15725
|
prevStateRef.current = newState;
|
|
15165
15726
|
onStateChange?.(newState);
|
|
15166
15727
|
}
|
|
15167
15728
|
}, [onStateChange]);
|
|
15168
|
-
const tick =
|
|
15729
|
+
const tick = React13.useCallback(async () => {
|
|
15169
15730
|
if (!userOpHash || !enabled) return;
|
|
15170
15731
|
if (receipt) {
|
|
15171
15732
|
console.log("[useUserOpStatus] Already have receipt, skipping tick");
|
|
@@ -15238,7 +15799,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15238
15799
|
onTxHash,
|
|
15239
15800
|
onReceipt
|
|
15240
15801
|
]);
|
|
15241
|
-
|
|
15802
|
+
React13.useEffect(() => {
|
|
15242
15803
|
if (!userOpHash || !enabled) return;
|
|
15243
15804
|
console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
|
|
15244
15805
|
startTimeRef.current = Date.now();
|
|
@@ -15250,7 +15811,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15250
15811
|
setError(null);
|
|
15251
15812
|
setIsPolling(false);
|
|
15252
15813
|
}, [userOpHash, enabled]);
|
|
15253
|
-
|
|
15814
|
+
React13.useEffect(() => {
|
|
15254
15815
|
if (!userOpHash || !enabled) {
|
|
15255
15816
|
console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
|
|
15256
15817
|
return;
|
|
@@ -15286,7 +15847,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15286
15847
|
}
|
|
15287
15848
|
};
|
|
15288
15849
|
}, [userOpHash, enabled, pollMs]);
|
|
15289
|
-
const refresh =
|
|
15850
|
+
const refresh = React13.useCallback(async () => {
|
|
15290
15851
|
await tick();
|
|
15291
15852
|
}, [tick]);
|
|
15292
15853
|
return {
|
|
@@ -15345,13 +15906,13 @@ init_profile();
|
|
|
15345
15906
|
init_errors();
|
|
15346
15907
|
|
|
15347
15908
|
// src/modules/transactions.ts
|
|
15348
|
-
var
|
|
15909
|
+
var import_wagmi9 = require("wagmi");
|
|
15349
15910
|
var import_viem11 = require("viem");
|
|
15350
15911
|
init_base();
|
|
15351
15912
|
function useTransactions() {
|
|
15352
|
-
const publicClient2 = (0,
|
|
15353
|
-
const { data: walletClient } = (0,
|
|
15354
|
-
const { address } = (0,
|
|
15913
|
+
const publicClient2 = (0, import_wagmi9.usePublicClient)({ chainId: lumiaBeam.id });
|
|
15914
|
+
const { data: walletClient } = (0, import_wagmi9.useWalletClient)();
|
|
15915
|
+
const { address } = (0, import_wagmi9.useAccount)();
|
|
15355
15916
|
const sendTransaction = async (params) => {
|
|
15356
15917
|
if (!walletClient) {
|
|
15357
15918
|
throw new Error("Wallet not connected");
|
|
@@ -15407,10 +15968,171 @@ function useTransactions() {
|
|
|
15407
15968
|
};
|
|
15408
15969
|
}
|
|
15409
15970
|
|
|
15410
|
-
// src/modules/
|
|
15971
|
+
// src/modules/assets.ts
|
|
15972
|
+
var import_react68 = __toESM(require("react"), 1);
|
|
15973
|
+
var import_wagmi10 = require("wagmi");
|
|
15411
15974
|
var import_viem12 = require("viem");
|
|
15412
15975
|
init_base();
|
|
15413
|
-
var
|
|
15976
|
+
var COMMON_TOKENS = [
|
|
15977
|
+
// Add real token addresses here when available
|
|
15978
|
+
// {
|
|
15979
|
+
// address: '0x....',
|
|
15980
|
+
// name: 'USD Coin',
|
|
15981
|
+
// symbol: 'USDC',
|
|
15982
|
+
// decimals: 6,
|
|
15983
|
+
// logo: 'https://...'
|
|
15984
|
+
// }
|
|
15985
|
+
];
|
|
15986
|
+
function useAssets(address) {
|
|
15987
|
+
const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0, import_wagmi10.useBalance)({
|
|
15988
|
+
address,
|
|
15989
|
+
chainId: lumiaBeam.id,
|
|
15990
|
+
query: {
|
|
15991
|
+
enabled: !!address
|
|
15992
|
+
}
|
|
15993
|
+
});
|
|
15994
|
+
const tokenContracts = COMMON_TOKENS.map((token) => ({
|
|
15995
|
+
address: token.address,
|
|
15996
|
+
abi: import_viem12.erc20Abi,
|
|
15997
|
+
functionName: "balanceOf",
|
|
15998
|
+
args: [address],
|
|
15999
|
+
chainId: lumiaBeam.id
|
|
16000
|
+
}));
|
|
16001
|
+
const readContractsResult = (0, import_wagmi10.useReadContracts)({
|
|
16002
|
+
contracts: tokenContracts,
|
|
16003
|
+
query: {
|
|
16004
|
+
enabled: !!address && COMMON_TOKENS.length > 0
|
|
16005
|
+
}
|
|
16006
|
+
});
|
|
16007
|
+
const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
|
|
16008
|
+
const getAllAssets = () => {
|
|
16009
|
+
const assets = [];
|
|
16010
|
+
if (nativeBalance) {
|
|
16011
|
+
assets.push({
|
|
16012
|
+
type: "native",
|
|
16013
|
+
name: "Lumia",
|
|
16014
|
+
symbol: "LUMIA",
|
|
16015
|
+
balance: nativeBalance.value.toString(),
|
|
16016
|
+
formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
|
|
16017
|
+
decimals: 18
|
|
16018
|
+
});
|
|
16019
|
+
}
|
|
16020
|
+
if (tokenBalances && COMMON_TOKENS.length > 0) {
|
|
16021
|
+
tokenBalances.forEach((balance, index) => {
|
|
16022
|
+
const token = COMMON_TOKENS[index];
|
|
16023
|
+
if (balance.status === "success" && balance.result) {
|
|
16024
|
+
const balanceValue = balance.result;
|
|
16025
|
+
const formattedBalance = (0, import_viem12.formatUnits)(balanceValue, token.decimals);
|
|
16026
|
+
assets.push({
|
|
16027
|
+
type: "erc20",
|
|
16028
|
+
address: token.address,
|
|
16029
|
+
name: token.name,
|
|
16030
|
+
symbol: token.symbol,
|
|
16031
|
+
balance: balanceValue.toString(),
|
|
16032
|
+
formattedBalance: parseFloat(formattedBalance).toFixed(4),
|
|
16033
|
+
decimals: token.decimals,
|
|
16034
|
+
logo: token.logo
|
|
16035
|
+
});
|
|
16036
|
+
}
|
|
16037
|
+
});
|
|
16038
|
+
}
|
|
16039
|
+
return assets;
|
|
16040
|
+
};
|
|
16041
|
+
const getTokenBalance = (tokenAddress) => {
|
|
16042
|
+
const tokenIndex = COMMON_TOKENS.findIndex(
|
|
16043
|
+
(token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
|
|
16044
|
+
);
|
|
16045
|
+
if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
|
|
16046
|
+
return null;
|
|
16047
|
+
}
|
|
16048
|
+
const balance = tokenBalances[tokenIndex];
|
|
16049
|
+
const token = COMMON_TOKENS[tokenIndex];
|
|
16050
|
+
if (balance.status === "success" && balance.result) {
|
|
16051
|
+
const balanceValue = balance.result;
|
|
16052
|
+
const formattedBalance = (0, import_viem12.formatUnits)(balanceValue, token.decimals);
|
|
16053
|
+
return {
|
|
16054
|
+
address: token.address,
|
|
16055
|
+
name: token.name,
|
|
16056
|
+
symbol: token.symbol,
|
|
16057
|
+
decimals: token.decimals,
|
|
16058
|
+
balance: balanceValue.toString(),
|
|
16059
|
+
formattedBalance: parseFloat(formattedBalance).toFixed(4),
|
|
16060
|
+
logo: token.logo
|
|
16061
|
+
};
|
|
16062
|
+
}
|
|
16063
|
+
return null;
|
|
16064
|
+
};
|
|
16065
|
+
const refreshBalances = async () => {
|
|
16066
|
+
await Promise.all([
|
|
16067
|
+
refetchNativeBalance(),
|
|
16068
|
+
refetchTokenBalances()
|
|
16069
|
+
]);
|
|
16070
|
+
};
|
|
16071
|
+
return {
|
|
16072
|
+
nativeBalance,
|
|
16073
|
+
tokenBalances,
|
|
16074
|
+
assets: getAllAssets(),
|
|
16075
|
+
getTokenBalance,
|
|
16076
|
+
refreshBalances,
|
|
16077
|
+
isLoading: nativeBalanceLoading || tokenBalancesLoading,
|
|
16078
|
+
isConnected: !!address
|
|
16079
|
+
};
|
|
16080
|
+
}
|
|
16081
|
+
function useTokenInfo(tokenAddress) {
|
|
16082
|
+
const readContractsResult = (0, import_wagmi10.useReadContracts)({
|
|
16083
|
+
contracts: [
|
|
16084
|
+
{ address: tokenAddress, abi: import_viem12.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
|
|
16085
|
+
{ address: tokenAddress, abi: import_viem12.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
|
|
16086
|
+
{ address: tokenAddress, abi: import_viem12.erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
|
|
16087
|
+
]
|
|
16088
|
+
});
|
|
16089
|
+
const { data: tokenData, isLoading } = readContractsResult;
|
|
16090
|
+
if (!tokenData || isLoading) {
|
|
16091
|
+
return { isLoading, tokenInfo: null };
|
|
16092
|
+
}
|
|
16093
|
+
const [nameResult, symbolResult, decimalsResult] = tokenData;
|
|
16094
|
+
if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
|
|
16095
|
+
return {
|
|
16096
|
+
isLoading: false,
|
|
16097
|
+
tokenInfo: {
|
|
16098
|
+
name: nameResult.result,
|
|
16099
|
+
symbol: symbolResult.result,
|
|
16100
|
+
decimals: decimalsResult.result,
|
|
16101
|
+
address: tokenAddress
|
|
16102
|
+
}
|
|
16103
|
+
};
|
|
16104
|
+
}
|
|
16105
|
+
return { isLoading: false, tokenInfo: null };
|
|
16106
|
+
}
|
|
16107
|
+
function useTokenBalance(tokenAddress, userAddress) {
|
|
16108
|
+
const { data: balance, isLoading, refetch } = (0, import_wagmi10.useReadContract)({
|
|
16109
|
+
address: tokenAddress,
|
|
16110
|
+
abi: import_viem12.erc20Abi,
|
|
16111
|
+
functionName: "balanceOf",
|
|
16112
|
+
args: userAddress ? [userAddress] : void 0,
|
|
16113
|
+
chainId: lumiaBeam.id,
|
|
16114
|
+
query: {
|
|
16115
|
+
enabled: !!userAddress
|
|
16116
|
+
}
|
|
16117
|
+
});
|
|
16118
|
+
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
16119
|
+
const formattedBalance = import_react68.default.useMemo(() => {
|
|
16120
|
+
if (!balance || !tokenInfo) return "0";
|
|
16121
|
+
return (0, import_viem12.formatUnits)(balance, tokenInfo.decimals);
|
|
16122
|
+
}, [balance, tokenInfo]);
|
|
16123
|
+
return {
|
|
16124
|
+
balance,
|
|
16125
|
+
formattedBalance,
|
|
16126
|
+
tokenInfo,
|
|
16127
|
+
isLoading,
|
|
16128
|
+
refetch
|
|
16129
|
+
};
|
|
16130
|
+
}
|
|
16131
|
+
|
|
16132
|
+
// src/modules/smartAccountTransactions.ts
|
|
16133
|
+
var import_viem13 = require("viem");
|
|
16134
|
+
init_base();
|
|
16135
|
+
var USER_OP_EVENT = (0, import_viem13.parseAbiItem)(
|
|
15414
16136
|
"event UserOperationEvent(bytes32 indexed userOpHash, address indexed sender, address indexed paymaster, uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGasUsed)"
|
|
15415
16137
|
);
|
|
15416
16138
|
function useSmartAccountTransactions() {
|
|
@@ -15506,6 +16228,7 @@ init_iframe_manager();
|
|
|
15506
16228
|
signTypedData,
|
|
15507
16229
|
updateUserProfile,
|
|
15508
16230
|
useAssets,
|
|
16231
|
+
useErc3643Compliance,
|
|
15509
16232
|
useLogout,
|
|
15510
16233
|
useLumiaPassportAccountSession,
|
|
15511
16234
|
useLumiaPassportAddress,
|