@lumiapassport/ui-kit 1.15.1 → 1.15.3
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 +1309 -605
- 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 +1419 -704
- 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-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,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-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\\: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.3",
|
|
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",
|
|
@@ -11994,10 +12047,69 @@ function SecurityMenu() {
|
|
|
11994
12047
|
}
|
|
11995
12048
|
|
|
11996
12049
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11997
|
-
var
|
|
12050
|
+
var import_lucide_react43 = require("lucide-react");
|
|
11998
12051
|
var import_react50 = require("react");
|
|
11999
12052
|
var import_viem10 = require("viem");
|
|
12000
|
-
|
|
12053
|
+
|
|
12054
|
+
// src/hooks/useErc3643Compliance.ts
|
|
12055
|
+
var import_wagmi3 = require("wagmi");
|
|
12056
|
+
init_base();
|
|
12057
|
+
var ERC3643_CAN_TRANSFER_ABI = [
|
|
12058
|
+
{
|
|
12059
|
+
type: "function",
|
|
12060
|
+
name: "canTransfer",
|
|
12061
|
+
inputs: [
|
|
12062
|
+
{ name: "_to", type: "address" },
|
|
12063
|
+
{ name: "_value", type: "uint256" }
|
|
12064
|
+
],
|
|
12065
|
+
outputs: [{ name: "", type: "bool" }]
|
|
12066
|
+
}
|
|
12067
|
+
];
|
|
12068
|
+
function useErc3643Compliance(options) {
|
|
12069
|
+
const { tokenAddress, to, amount, enabled = true } = options;
|
|
12070
|
+
const isQueryEnabled = enabled && !!tokenAddress && !!to && amount !== void 0;
|
|
12071
|
+
const {
|
|
12072
|
+
data: canTransferResult,
|
|
12073
|
+
isLoading,
|
|
12074
|
+
error: queryError,
|
|
12075
|
+
refetch
|
|
12076
|
+
} = (0, import_wagmi3.useReadContract)({
|
|
12077
|
+
address: tokenAddress,
|
|
12078
|
+
abi: ERC3643_CAN_TRANSFER_ABI,
|
|
12079
|
+
functionName: "canTransfer",
|
|
12080
|
+
args: to && amount !== void 0 ? [to, amount] : void 0,
|
|
12081
|
+
chainId: lumiaBeam.id,
|
|
12082
|
+
query: {
|
|
12083
|
+
enabled: isQueryEnabled
|
|
12084
|
+
}
|
|
12085
|
+
});
|
|
12086
|
+
let error = null;
|
|
12087
|
+
if (queryError) {
|
|
12088
|
+
const errorMessage = queryError.message || "";
|
|
12089
|
+
if (errorMessage.includes("IDENTITY_NOT_VERIFIED")) {
|
|
12090
|
+
error = "Recipient identity is not verified for this security token";
|
|
12091
|
+
} else if (errorMessage.includes("COUNTRY_NOT_ALLOWED")) {
|
|
12092
|
+
error = "Transfer not allowed to recipient country";
|
|
12093
|
+
} else if (errorMessage.includes("INVESTOR_LIMIT_EXCEEDED")) {
|
|
12094
|
+
error = "Maximum investor limit exceeded for this token";
|
|
12095
|
+
} else if (errorMessage.includes("HOLDING_PERIOD_NOT_MET")) {
|
|
12096
|
+
error = "Holding period requirement not met";
|
|
12097
|
+
} else if (errorMessage.includes("AMOUNT_EXCEEDS_LIMIT")) {
|
|
12098
|
+
error = "Transfer amount exceeds allowed limit";
|
|
12099
|
+
} else {
|
|
12100
|
+
error = "Compliance check failed. Transfer may not be allowed.";
|
|
12101
|
+
}
|
|
12102
|
+
} else if (canTransferResult === false) {
|
|
12103
|
+
error = "Transfer not allowed by token compliance rules";
|
|
12104
|
+
}
|
|
12105
|
+
const canTransfer = typeof canTransferResult === "boolean" ? canTransferResult : void 0;
|
|
12106
|
+
return {
|
|
12107
|
+
canTransfer,
|
|
12108
|
+
isLoading,
|
|
12109
|
+
error,
|
|
12110
|
+
refetch
|
|
12111
|
+
};
|
|
12112
|
+
}
|
|
12001
12113
|
|
|
12002
12114
|
// src/hooks/useNicknameResolve.ts
|
|
12003
12115
|
var import_react_query34 = require("@tanstack/react-query");
|
|
@@ -12148,6 +12260,43 @@ function useNicknameResolve(input, options) {
|
|
|
12148
12260
|
var import_react48 = require("react");
|
|
12149
12261
|
var import_viem8 = require("viem");
|
|
12150
12262
|
init_account();
|
|
12263
|
+
var ERC20_TRANSFER_ABI = [
|
|
12264
|
+
{
|
|
12265
|
+
type: "function",
|
|
12266
|
+
name: "transfer",
|
|
12267
|
+
inputs: [
|
|
12268
|
+
{ name: "to", type: "address" },
|
|
12269
|
+
{ name: "amount", type: "uint256" }
|
|
12270
|
+
],
|
|
12271
|
+
outputs: [{ name: "", type: "bool" }]
|
|
12272
|
+
}
|
|
12273
|
+
];
|
|
12274
|
+
var ERC721_SAFE_TRANSFER_ABI = [
|
|
12275
|
+
{
|
|
12276
|
+
type: "function",
|
|
12277
|
+
name: "safeTransferFrom",
|
|
12278
|
+
inputs: [
|
|
12279
|
+
{ name: "from", type: "address" },
|
|
12280
|
+
{ name: "to", type: "address" },
|
|
12281
|
+
{ name: "tokenId", type: "uint256" }
|
|
12282
|
+
],
|
|
12283
|
+
outputs: []
|
|
12284
|
+
}
|
|
12285
|
+
];
|
|
12286
|
+
var ERC1155_SAFE_TRANSFER_ABI = [
|
|
12287
|
+
{
|
|
12288
|
+
type: "function",
|
|
12289
|
+
name: "safeTransferFrom",
|
|
12290
|
+
inputs: [
|
|
12291
|
+
{ name: "from", type: "address" },
|
|
12292
|
+
{ name: "to", type: "address" },
|
|
12293
|
+
{ name: "id", type: "uint256" },
|
|
12294
|
+
{ name: "amount", type: "uint256" },
|
|
12295
|
+
{ name: "data", type: "bytes" }
|
|
12296
|
+
],
|
|
12297
|
+
outputs: []
|
|
12298
|
+
}
|
|
12299
|
+
];
|
|
12151
12300
|
function useSendTransaction() {
|
|
12152
12301
|
const session = useLumiaPassportSession((st) => st.session);
|
|
12153
12302
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -12164,21 +12313,80 @@ function useSendTransaction() {
|
|
|
12164
12313
|
setError("Invalid recipient address");
|
|
12165
12314
|
return null;
|
|
12166
12315
|
}
|
|
12167
|
-
const
|
|
12168
|
-
if (
|
|
12169
|
-
|
|
12316
|
+
const assetType = params.assetType || "native";
|
|
12317
|
+
if (assetType !== "erc721") {
|
|
12318
|
+
const value = parseFloat(params.value);
|
|
12319
|
+
if (isNaN(value) || value < 0) {
|
|
12320
|
+
setError("Invalid amount");
|
|
12321
|
+
return null;
|
|
12322
|
+
}
|
|
12323
|
+
}
|
|
12324
|
+
if (assetType !== "native" && !params.tokenAddress) {
|
|
12325
|
+
setError("Token address is required for token transfers");
|
|
12326
|
+
return null;
|
|
12327
|
+
}
|
|
12328
|
+
if ((assetType === "erc721" || assetType === "erc1155") && !params.tokenId) {
|
|
12329
|
+
setError("Token ID is required for NFT transfers");
|
|
12170
12330
|
return null;
|
|
12171
12331
|
}
|
|
12172
12332
|
setIsLoading(true);
|
|
12173
12333
|
setError(null);
|
|
12174
12334
|
setUserOpHash(null);
|
|
12175
12335
|
try {
|
|
12176
|
-
|
|
12336
|
+
let callTarget;
|
|
12337
|
+
let valueWei;
|
|
12338
|
+
let innerData;
|
|
12339
|
+
switch (assetType) {
|
|
12340
|
+
case "native": {
|
|
12341
|
+
callTarget = params.to;
|
|
12342
|
+
valueWei = (0, import_viem8.parseEther)(params.value).toString();
|
|
12343
|
+
innerData = params.data || "0x";
|
|
12344
|
+
break;
|
|
12345
|
+
}
|
|
12346
|
+
case "erc20":
|
|
12347
|
+
case "erc3643": {
|
|
12348
|
+
const decimals = params.decimals ?? 18;
|
|
12349
|
+
const amount = (0, import_viem8.parseUnits)(params.value, decimals);
|
|
12350
|
+
callTarget = params.tokenAddress;
|
|
12351
|
+
valueWei = "0";
|
|
12352
|
+
innerData = (0, import_viem8.encodeFunctionData)({
|
|
12353
|
+
abi: ERC20_TRANSFER_ABI,
|
|
12354
|
+
functionName: "transfer",
|
|
12355
|
+
args: [params.to, amount]
|
|
12356
|
+
});
|
|
12357
|
+
break;
|
|
12358
|
+
}
|
|
12359
|
+
case "erc721": {
|
|
12360
|
+
callTarget = params.tokenAddress;
|
|
12361
|
+
valueWei = "0";
|
|
12362
|
+
innerData = (0, import_viem8.encodeFunctionData)({
|
|
12363
|
+
abi: ERC721_SAFE_TRANSFER_ABI,
|
|
12364
|
+
functionName: "safeTransferFrom",
|
|
12365
|
+
args: [address, params.to, BigInt(params.tokenId)]
|
|
12366
|
+
});
|
|
12367
|
+
break;
|
|
12368
|
+
}
|
|
12369
|
+
case "erc1155": {
|
|
12370
|
+
const amount = params.value ? BigInt(params.value) : 1n;
|
|
12371
|
+
callTarget = params.tokenAddress;
|
|
12372
|
+
valueWei = "0";
|
|
12373
|
+
innerData = (0, import_viem8.encodeFunctionData)({
|
|
12374
|
+
abi: ERC1155_SAFE_TRANSFER_ABI,
|
|
12375
|
+
functionName: "safeTransferFrom",
|
|
12376
|
+
args: [address, params.to, BigInt(params.tokenId), amount, "0x"]
|
|
12377
|
+
});
|
|
12378
|
+
break;
|
|
12379
|
+
}
|
|
12380
|
+
default: {
|
|
12381
|
+
setError(`Unsupported asset type: ${assetType}`);
|
|
12382
|
+
return null;
|
|
12383
|
+
}
|
|
12384
|
+
}
|
|
12177
12385
|
const hash = await sendUserOperation(
|
|
12178
12386
|
session,
|
|
12179
|
-
|
|
12387
|
+
callTarget,
|
|
12180
12388
|
valueWei,
|
|
12181
|
-
|
|
12389
|
+
innerData,
|
|
12182
12390
|
"standard",
|
|
12183
12391
|
"v0.7"
|
|
12184
12392
|
);
|
|
@@ -12208,185 +12416,331 @@ function useSendTransaction() {
|
|
|
12208
12416
|
};
|
|
12209
12417
|
}
|
|
12210
12418
|
|
|
12211
|
-
// src/
|
|
12212
|
-
var import_react49 = __toESM(require("react"), 1);
|
|
12213
|
-
var import_wagmi3 = require("wagmi");
|
|
12214
|
-
var import_viem9 = require("viem");
|
|
12419
|
+
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12215
12420
|
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
|
-
});
|
|
12421
|
+
|
|
12422
|
+
// src/internal/components/SendRecieveMenu/AssetSelector.tsx
|
|
12423
|
+
var import_lucide_react42 = require("lucide-react");
|
|
12424
|
+
var import_react49 = require("react");
|
|
12425
|
+
var import_viem9 = require("viem");
|
|
12426
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12427
|
+
function isNftAsset2(asset) {
|
|
12428
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
12429
|
+
}
|
|
12430
|
+
function isSecurityToken2(asset) {
|
|
12431
|
+
return asset.type === "erc3643";
|
|
12432
|
+
}
|
|
12433
|
+
function getAssetBalance(asset) {
|
|
12434
|
+
if (isNftAsset2(asset)) {
|
|
12435
|
+
return "1";
|
|
12436
|
+
}
|
|
12437
|
+
const balance = Number((0, import_viem9.formatUnits)(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
12438
|
+
if (balance >= 1e6) {
|
|
12439
|
+
return `${(balance / 1e6).toFixed(2)}M`;
|
|
12440
|
+
}
|
|
12441
|
+
if (balance >= 1e3) {
|
|
12442
|
+
return `${(balance / 1e3).toFixed(2)}K`;
|
|
12443
|
+
}
|
|
12444
|
+
return balance.toFixed(4);
|
|
12445
|
+
}
|
|
12446
|
+
function AssetIcon({ asset, size = "sm" }) {
|
|
12447
|
+
const [imageError, setImageError] = (0, import_react49.useState)(false);
|
|
12448
|
+
const sizeClasses = size === "sm" ? "w-6 h-6" : "w-10 h-10";
|
|
12449
|
+
const textSize = size === "sm" ? "text-xs" : "text-sm";
|
|
12450
|
+
const isNft = isNftAsset2(asset);
|
|
12451
|
+
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12452
|
+
const isSecurity = isSecurityToken2(asset);
|
|
12453
|
+
if (isNft && nftImage && !imageError) {
|
|
12454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-[var(--l-pass-el-bdrs)] overflow-hidden relative flex-shrink-0"), children: [
|
|
12455
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12456
|
+
"img",
|
|
12457
|
+
{
|
|
12458
|
+
src: nftImage,
|
|
12459
|
+
alt: asset.nftMetadata?.name || asset.name,
|
|
12460
|
+
className: "w-full h-full object-cover",
|
|
12461
|
+
onError: () => setImageError(true)
|
|
12276
12462
|
}
|
|
12277
|
-
|
|
12278
|
-
|
|
12279
|
-
|
|
12463
|
+
),
|
|
12464
|
+
/* @__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)]" }) })
|
|
12465
|
+
] });
|
|
12466
|
+
}
|
|
12467
|
+
if (isNft) {
|
|
12468
|
+
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: [
|
|
12469
|
+
/* @__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)]") }),
|
|
12470
|
+
/* @__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)]" }) })
|
|
12471
|
+
] });
|
|
12472
|
+
}
|
|
12473
|
+
if (asset.logo && !imageError) {
|
|
12474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn(sizeClasses, "rounded-full overflow-hidden relative flex-shrink-0"), children: [
|
|
12475
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12476
|
+
"img",
|
|
12477
|
+
{
|
|
12478
|
+
src: asset.logo,
|
|
12479
|
+
alt: asset.symbol,
|
|
12480
|
+
className: "w-full h-full object-cover",
|
|
12481
|
+
onError: () => setImageError(true)
|
|
12482
|
+
}
|
|
12483
|
+
),
|
|
12484
|
+
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" }) })
|
|
12485
|
+
] });
|
|
12486
|
+
}
|
|
12487
|
+
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: [
|
|
12488
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: cn("text-[var(--l-pass-fg-inverted)] font-bold", textSize), children: asset.symbol.charAt(0) }),
|
|
12489
|
+
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" }) })
|
|
12490
|
+
] });
|
|
12491
|
+
}
|
|
12492
|
+
function AssetListItem({ asset, onSelect, isSelected }) {
|
|
12493
|
+
const isNft = isNftAsset2(asset);
|
|
12494
|
+
const handleClick = (e) => {
|
|
12495
|
+
e.preventDefault();
|
|
12496
|
+
e.stopPropagation();
|
|
12497
|
+
onSelect();
|
|
12280
12498
|
};
|
|
12281
|
-
|
|
12282
|
-
|
|
12283
|
-
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12291
|
-
|
|
12292
|
-
|
|
12293
|
-
|
|
12294
|
-
|
|
12295
|
-
|
|
12296
|
-
|
|
12297
|
-
|
|
12298
|
-
|
|
12299
|
-
|
|
12300
|
-
|
|
12301
|
-
|
|
12499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12500
|
+
"button",
|
|
12501
|
+
{
|
|
12502
|
+
type: "button",
|
|
12503
|
+
className: cn(
|
|
12504
|
+
"w-full flex items-center gap-3 p-3 rounded-[var(--l-pass-el-bdrs)]",
|
|
12505
|
+
"hover:bg-[var(--l-pass-bg-secondary)] transition-colors cursor-pointer",
|
|
12506
|
+
isSelected && "bg-[var(--l-pass-bg-secondary)]"
|
|
12507
|
+
),
|
|
12508
|
+
onClick: handleClick,
|
|
12509
|
+
children: [
|
|
12510
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AssetIcon, { asset, size: "md" }),
|
|
12511
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex-1 min-w-0 text-left", children: [
|
|
12512
|
+
/* @__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 }),
|
|
12513
|
+
/* @__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: [
|
|
12514
|
+
asset.symbol,
|
|
12515
|
+
asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "ml-1", children: [
|
|
12516
|
+
"#",
|
|
12517
|
+
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
12518
|
+
] })
|
|
12519
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12520
|
+
getAssetBalance(asset),
|
|
12521
|
+
" ",
|
|
12522
|
+
asset.symbol
|
|
12523
|
+
] }) })
|
|
12524
|
+
] })
|
|
12525
|
+
]
|
|
12302
12526
|
}
|
|
12303
|
-
|
|
12527
|
+
);
|
|
12528
|
+
}
|
|
12529
|
+
function AssetSelector({ assets, selectedAsset, onSelect, disabled }) {
|
|
12530
|
+
const [isOpen, setIsOpen] = (0, import_react49.useState)(false);
|
|
12531
|
+
const dropdownRef = (0, import_react49.useRef)(null);
|
|
12532
|
+
const buttonRef = (0, import_react49.useRef)(null);
|
|
12533
|
+
(0, import_react49.useEffect)(() => {
|
|
12534
|
+
function handleClickOutside(event) {
|
|
12535
|
+
if (dropdownRef.current && !dropdownRef.current.contains(event.target) && buttonRef.current && !buttonRef.current.contains(event.target)) {
|
|
12536
|
+
setIsOpen(false);
|
|
12537
|
+
}
|
|
12538
|
+
}
|
|
12539
|
+
if (isOpen) {
|
|
12540
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
12541
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
12542
|
+
}
|
|
12543
|
+
}, [isOpen]);
|
|
12544
|
+
const transferableAssets = assets.filter((asset) => {
|
|
12545
|
+
if (isNftAsset2(asset)) return true;
|
|
12546
|
+
const balance = BigInt(asset.balance || "0");
|
|
12547
|
+
return balance > 0n;
|
|
12548
|
+
});
|
|
12549
|
+
const nativeAssets = transferableAssets.filter((a) => a.type === "native");
|
|
12550
|
+
const tokenAssets = transferableAssets.filter((a) => a.type === "erc20");
|
|
12551
|
+
const securityAssets = transferableAssets.filter((a) => a.type === "erc3643");
|
|
12552
|
+
const nftAssets = transferableAssets.filter((a) => a.type === "erc721" || a.type === "erc1155");
|
|
12553
|
+
const handleSelect = (asset) => {
|
|
12554
|
+
onSelect(asset);
|
|
12555
|
+
setIsOpen(false);
|
|
12304
12556
|
};
|
|
12305
|
-
const
|
|
12306
|
-
|
|
12307
|
-
|
|
12308
|
-
|
|
12309
|
-
|
|
12557
|
+
const handleToggle = (e) => {
|
|
12558
|
+
e.preventDefault();
|
|
12559
|
+
e.stopPropagation();
|
|
12560
|
+
if (!disabled) {
|
|
12561
|
+
setIsOpen(!isOpen);
|
|
12562
|
+
}
|
|
12310
12563
|
};
|
|
12311
|
-
|
|
12312
|
-
|
|
12313
|
-
|
|
12314
|
-
|
|
12315
|
-
getTokenBalance,
|
|
12316
|
-
refreshBalances,
|
|
12317
|
-
isLoading: nativeBalanceLoading || tokenBalancesLoading,
|
|
12318
|
-
isConnected: !!address
|
|
12564
|
+
const handleClose = (e) => {
|
|
12565
|
+
e.preventDefault();
|
|
12566
|
+
e.stopPropagation();
|
|
12567
|
+
setIsOpen(false);
|
|
12319
12568
|
};
|
|
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 };
|
|
12569
|
+
if (!selectedAsset) {
|
|
12570
|
+
return null;
|
|
12332
12571
|
}
|
|
12333
|
-
const
|
|
12334
|
-
|
|
12335
|
-
|
|
12336
|
-
|
|
12337
|
-
|
|
12338
|
-
|
|
12339
|
-
|
|
12340
|
-
|
|
12341
|
-
|
|
12572
|
+
const isNft = isNftAsset2(selectedAsset);
|
|
12573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "relative", style: { zIndex: isOpen ? 100 : "auto" }, children: [
|
|
12574
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12575
|
+
"button",
|
|
12576
|
+
{
|
|
12577
|
+
ref: buttonRef,
|
|
12578
|
+
type: "button",
|
|
12579
|
+
disabled,
|
|
12580
|
+
className: cn(
|
|
12581
|
+
"flex items-center gap-1.5 px-2 py-1 rounded-[var(--l-pass-el-bdrs)]",
|
|
12582
|
+
"bg-[var(--l-pass-bg)] hover:bg-[var(--l-pass-bg-secondary)]",
|
|
12583
|
+
"transition-colors cursor-pointer",
|
|
12584
|
+
disabled && "opacity-50 cursor-not-allowed"
|
|
12585
|
+
),
|
|
12586
|
+
onClick: handleToggle,
|
|
12587
|
+
children: [
|
|
12588
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AssetIcon, { asset: selectedAsset, size: "sm" }),
|
|
12589
|
+
/* @__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 }),
|
|
12590
|
+
/* @__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") })
|
|
12591
|
+
]
|
|
12342
12592
|
}
|
|
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
|
-
|
|
12593
|
+
),
|
|
12594
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12595
|
+
"div",
|
|
12596
|
+
{
|
|
12597
|
+
ref: dropdownRef,
|
|
12598
|
+
className: cn(
|
|
12599
|
+
"absolute left-0 bottom-full mb-2",
|
|
12600
|
+
"w-72 max-h-64 overflow-y-auto",
|
|
12601
|
+
"bg-[var(--l-pass-bg)] border border-[var(--l-pass-bd)]",
|
|
12602
|
+
"rounded-[var(--l-pass-el-bdrs)] shadow-lg"
|
|
12603
|
+
),
|
|
12604
|
+
style: { zIndex: 100 },
|
|
12605
|
+
onClick: (e) => e.stopPropagation(),
|
|
12606
|
+
children: [
|
|
12607
|
+
/* @__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: [
|
|
12608
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-sm font-semibold text-[var(--l-pass-fg)]", children: "Select Asset" }),
|
|
12609
|
+
/* @__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" }) })
|
|
12610
|
+
] }),
|
|
12611
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "p-2", children: [
|
|
12612
|
+
nativeAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_jsx_runtime64.Fragment, { children: nativeAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12613
|
+
AssetListItem,
|
|
12614
|
+
{
|
|
12615
|
+
asset,
|
|
12616
|
+
onSelect: () => handleSelect(asset),
|
|
12617
|
+
isSelected: selectedAsset?.type === asset.type && selectedAsset?.symbol === asset.symbol
|
|
12618
|
+
},
|
|
12619
|
+
`native-${asset.symbol}`
|
|
12620
|
+
)) }),
|
|
12621
|
+
tokenAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12622
|
+
/* @__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" }),
|
|
12623
|
+
tokenAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12624
|
+
AssetListItem,
|
|
12625
|
+
{
|
|
12626
|
+
asset,
|
|
12627
|
+
onSelect: () => handleSelect(asset),
|
|
12628
|
+
isSelected: selectedAsset?.address === asset.address && selectedAsset?.type === asset.type
|
|
12629
|
+
},
|
|
12630
|
+
`token-${asset.address}`
|
|
12631
|
+
))
|
|
12632
|
+
] }),
|
|
12633
|
+
securityAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12634
|
+
/* @__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" }),
|
|
12635
|
+
securityAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12636
|
+
AssetListItem,
|
|
12637
|
+
{
|
|
12638
|
+
asset,
|
|
12639
|
+
onSelect: () => handleSelect(asset),
|
|
12640
|
+
isSelected: selectedAsset?.address === asset.address && selectedAsset?.type === asset.type
|
|
12641
|
+
},
|
|
12642
|
+
`security-${asset.address}`
|
|
12643
|
+
))
|
|
12644
|
+
] }),
|
|
12645
|
+
nftAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12646
|
+
/* @__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" }),
|
|
12647
|
+
nftAssets.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12648
|
+
AssetListItem,
|
|
12649
|
+
{
|
|
12650
|
+
asset,
|
|
12651
|
+
onSelect: () => handleSelect(asset),
|
|
12652
|
+
isSelected: selectedAsset?.address === asset.address && selectedAsset?.tokenId === asset.tokenId
|
|
12653
|
+
},
|
|
12654
|
+
`nft-${asset.address}-${asset.tokenId}`
|
|
12655
|
+
))
|
|
12656
|
+
] }),
|
|
12657
|
+
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" })
|
|
12658
|
+
] })
|
|
12659
|
+
]
|
|
12660
|
+
}
|
|
12661
|
+
)
|
|
12662
|
+
] });
|
|
12370
12663
|
}
|
|
12371
12664
|
|
|
12372
12665
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
12373
|
-
|
|
12374
|
-
|
|
12666
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
12667
|
+
function isNftAsset3(asset) {
|
|
12668
|
+
if (!asset) return false;
|
|
12669
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
12670
|
+
}
|
|
12671
|
+
function isSecurityToken3(asset) {
|
|
12672
|
+
if (!asset) return false;
|
|
12673
|
+
return asset.type === "erc3643";
|
|
12674
|
+
}
|
|
12675
|
+
function getAssetBalance2(asset) {
|
|
12676
|
+
if (!asset) return 0;
|
|
12677
|
+
if (isNftAsset3(asset)) return 1;
|
|
12678
|
+
return Number((0, import_viem10.formatUnits)(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
12679
|
+
}
|
|
12680
|
+
function formatBalance(balance, decimals = 4) {
|
|
12681
|
+
if (balance >= 1e6) {
|
|
12682
|
+
return `${(balance / 1e6).toFixed(2)}M`;
|
|
12683
|
+
}
|
|
12684
|
+
if (balance >= 1e3) {
|
|
12685
|
+
return `${(balance / 1e3).toFixed(2)}K`;
|
|
12686
|
+
}
|
|
12687
|
+
return balance.toFixed(decimals);
|
|
12688
|
+
}
|
|
12689
|
+
function NftDisplayCard({ asset }) {
|
|
12690
|
+
const [imageError, setImageError] = (0, import_react50.useState)(false);
|
|
12691
|
+
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
12692
|
+
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: [
|
|
12693
|
+
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12694
|
+
"img",
|
|
12695
|
+
{
|
|
12696
|
+
src: nftImage,
|
|
12697
|
+
alt: asset.nftMetadata?.name || asset.name,
|
|
12698
|
+
className: "w-16 h-16 rounded-[var(--l-pass-el-bdrs)] object-cover",
|
|
12699
|
+
onError: () => setImageError(true)
|
|
12700
|
+
}
|
|
12701
|
+
) : /* @__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)]" }) }),
|
|
12702
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
12703
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "font-semibold text-[var(--l-pass-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
12704
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12705
|
+
asset.symbol,
|
|
12706
|
+
asset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "ml-1", children: [
|
|
12707
|
+
"#",
|
|
12708
|
+
asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
|
|
12709
|
+
] })
|
|
12710
|
+
] }),
|
|
12711
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-xs text-[var(--l-pass-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
12712
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Sparkles, { className: "w-3 h-3" }),
|
|
12713
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
12714
|
+
] })
|
|
12715
|
+
] })
|
|
12716
|
+
] });
|
|
12717
|
+
}
|
|
12375
12718
|
function SendLumiaMenu() {
|
|
12376
12719
|
const page = useLayoutDataStore((st) => st.page);
|
|
12377
12720
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12378
12721
|
const open = page === "send";
|
|
12379
12722
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12380
|
-
const {
|
|
12381
|
-
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12723
|
+
const {
|
|
12724
|
+
assets,
|
|
12725
|
+
refreshBalances,
|
|
12726
|
+
isLoading: isAssetsLoading
|
|
12727
|
+
} = useBlockscoutAssets({
|
|
12728
|
+
address
|
|
12385
12729
|
});
|
|
12730
|
+
const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
|
|
12386
12731
|
const [recipient, setRecipient] = (0, import_react50.useState)("");
|
|
12387
12732
|
const [amount, setAmount] = (0, import_react50.useState)("");
|
|
12733
|
+
const [selectedAsset, setSelectedAsset] = (0, import_react50.useState)(null);
|
|
12388
12734
|
const [txStep, setTxStep] = (0, import_react50.useState)("input");
|
|
12389
12735
|
const [validationError, setValidationError] = (0, import_react50.useState)(null);
|
|
12736
|
+
(0, import_react50.useEffect)(() => {
|
|
12737
|
+
if (assets.length > 0 && !selectedAsset) {
|
|
12738
|
+
const nativeAsset = assets.find((a) => a.type === "native");
|
|
12739
|
+
if (nativeAsset) {
|
|
12740
|
+
setSelectedAsset(nativeAsset);
|
|
12741
|
+
}
|
|
12742
|
+
}
|
|
12743
|
+
}, [assets, selectedAsset]);
|
|
12390
12744
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
12391
12745
|
const {
|
|
12392
12746
|
resolvedAddress,
|
|
@@ -12395,22 +12749,46 @@ function SendLumiaMenu() {
|
|
|
12395
12749
|
isWalletNotSetup,
|
|
12396
12750
|
isFrozen,
|
|
12397
12751
|
isFingerprintVerified,
|
|
12398
|
-
fingerprintVerification,
|
|
12399
12752
|
data: nicknameData
|
|
12400
12753
|
} = useNicknameResolve(recipient, {
|
|
12401
12754
|
enabled: isNicknameInput,
|
|
12402
12755
|
chainId: lumiaBeam.id
|
|
12403
12756
|
});
|
|
12404
12757
|
const effectiveAddress = isNicknameInput ? resolvedAddress : recipient;
|
|
12405
|
-
const
|
|
12406
|
-
const
|
|
12758
|
+
const balance = getAssetBalance2(selectedAsset);
|
|
12759
|
+
const isNft = isNftAsset3(selectedAsset);
|
|
12760
|
+
const isSecurity = isSecurityToken3(selectedAsset);
|
|
12761
|
+
const complianceAmount = (0, import_react50.useMemo)(() => {
|
|
12762
|
+
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
12763
|
+
try {
|
|
12764
|
+
return (0, import_viem10.parseUnits)(amount, selectedAsset.decimals || 18);
|
|
12765
|
+
} catch {
|
|
12766
|
+
return void 0;
|
|
12767
|
+
}
|
|
12768
|
+
}, [isSecurity, amount, selectedAsset]);
|
|
12769
|
+
const {
|
|
12770
|
+
canTransfer: erc3643CanTransfer,
|
|
12771
|
+
isLoading: isComplianceLoading,
|
|
12772
|
+
error: complianceError
|
|
12773
|
+
} = useErc3643Compliance({
|
|
12774
|
+
tokenAddress: selectedAsset?.address,
|
|
12775
|
+
to: effectiveAddress,
|
|
12776
|
+
amount: complianceAmount,
|
|
12777
|
+
enabled: isSecurity && !!effectiveAddress && !!complianceAmount
|
|
12778
|
+
});
|
|
12407
12779
|
(0, import_react50.useEffect)(() => {
|
|
12408
12780
|
if (open) {
|
|
12409
12781
|
setTxStep("input");
|
|
12410
12782
|
setValidationError(null);
|
|
12783
|
+
setRecipient("");
|
|
12784
|
+
setAmount("");
|
|
12411
12785
|
reset();
|
|
12786
|
+
const nativeAsset = assets.find((a) => a.type === "native");
|
|
12787
|
+
if (nativeAsset) {
|
|
12788
|
+
setSelectedAsset(nativeAsset);
|
|
12789
|
+
}
|
|
12412
12790
|
}
|
|
12413
|
-
}, [open, reset]);
|
|
12791
|
+
}, [open, reset, assets]);
|
|
12414
12792
|
const validateInput = () => {
|
|
12415
12793
|
if (!recipient) {
|
|
12416
12794
|
setValidationError("Please enter a recipient address or @nickname");
|
|
@@ -12445,14 +12823,34 @@ function SendLumiaMenu() {
|
|
|
12445
12823
|
setValidationError("Cannot send to yourself");
|
|
12446
12824
|
return false;
|
|
12447
12825
|
}
|
|
12448
|
-
|
|
12449
|
-
|
|
12450
|
-
setValidationError("Please enter a valid amount");
|
|
12826
|
+
if (!selectedAsset) {
|
|
12827
|
+
setValidationError("Please select an asset to send");
|
|
12451
12828
|
return false;
|
|
12452
12829
|
}
|
|
12453
|
-
if (
|
|
12454
|
-
|
|
12455
|
-
|
|
12830
|
+
if (!isNft) {
|
|
12831
|
+
const amountNum = parseFloat(amount);
|
|
12832
|
+
if (!amount || isNaN(amountNum) || amountNum <= 0) {
|
|
12833
|
+
setValidationError("Please enter a valid amount");
|
|
12834
|
+
return false;
|
|
12835
|
+
}
|
|
12836
|
+
if (amountNum > balance) {
|
|
12837
|
+
setValidationError("Insufficient balance");
|
|
12838
|
+
return false;
|
|
12839
|
+
}
|
|
12840
|
+
}
|
|
12841
|
+
if (isSecurity) {
|
|
12842
|
+
if (isComplianceLoading) {
|
|
12843
|
+
setValidationError("Checking compliance...");
|
|
12844
|
+
return false;
|
|
12845
|
+
}
|
|
12846
|
+
if (complianceError) {
|
|
12847
|
+
setValidationError(complianceError);
|
|
12848
|
+
return false;
|
|
12849
|
+
}
|
|
12850
|
+
if (erc3643CanTransfer === false) {
|
|
12851
|
+
setValidationError("Transfer not allowed by token compliance rules");
|
|
12852
|
+
return false;
|
|
12853
|
+
}
|
|
12456
12854
|
}
|
|
12457
12855
|
setValidationError(null);
|
|
12458
12856
|
return true;
|
|
@@ -12462,204 +12860,309 @@ function SendLumiaMenu() {
|
|
|
12462
12860
|
setTxStep("confirm");
|
|
12463
12861
|
};
|
|
12464
12862
|
const handleConfirm = async () => {
|
|
12465
|
-
if (!effectiveAddress) return;
|
|
12863
|
+
if (!effectiveAddress || !selectedAsset) return;
|
|
12466
12864
|
setTxStep("pending");
|
|
12865
|
+
const txAmount = isNft ? "1" : amount;
|
|
12467
12866
|
const hash = await sendTransaction({
|
|
12468
12867
|
to: effectiveAddress,
|
|
12469
|
-
value:
|
|
12868
|
+
value: txAmount,
|
|
12869
|
+
assetType: selectedAsset.type,
|
|
12870
|
+
tokenAddress: selectedAsset.address,
|
|
12871
|
+
tokenId: selectedAsset.tokenId,
|
|
12872
|
+
decimals: selectedAsset.decimals
|
|
12470
12873
|
});
|
|
12471
12874
|
if (hash) {
|
|
12472
12875
|
setTxStep("success");
|
|
12473
|
-
setTimeout(() =>
|
|
12474
|
-
refetchBalance();
|
|
12475
|
-
}, 2e3);
|
|
12876
|
+
setTimeout(() => refreshBalances(), 3e3);
|
|
12476
12877
|
} else {
|
|
12477
12878
|
setTxStep("input");
|
|
12478
12879
|
}
|
|
12479
12880
|
};
|
|
12480
12881
|
const handleMaxAmount = () => {
|
|
12481
|
-
|
|
12482
|
-
|
|
12882
|
+
if (!selectedAsset || isNft) return;
|
|
12883
|
+
if (selectedAsset.type === "native") {
|
|
12884
|
+
const maxAmount = Math.max(0, balance - 1e-3);
|
|
12885
|
+
setAmount(maxAmount.toFixed(6));
|
|
12886
|
+
} else {
|
|
12887
|
+
setAmount((0, import_viem10.formatUnits)(BigInt(selectedAsset.balance || "0"), selectedAsset.decimals || 18));
|
|
12888
|
+
}
|
|
12889
|
+
};
|
|
12890
|
+
const handleAssetSelect = (asset) => {
|
|
12891
|
+
setSelectedAsset(asset);
|
|
12892
|
+
setAmount("");
|
|
12483
12893
|
};
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12487
|
-
|
|
12894
|
+
const getPageTitle = () => {
|
|
12895
|
+
if (!selectedAsset) return "Send";
|
|
12896
|
+
if (isNft) return `Send NFT`;
|
|
12897
|
+
return `Send ${selectedAsset.symbol}`;
|
|
12898
|
+
};
|
|
12899
|
+
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: [
|
|
12900
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12901
|
+
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" }) }),
|
|
12902
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xl font-semibold", children: getPageTitle() })
|
|
12488
12903
|
] }),
|
|
12489
|
-
txStep === "input" && /* @__PURE__ */ (0,
|
|
12490
|
-
/* @__PURE__ */ (0,
|
|
12491
|
-
/* @__PURE__ */ (0,
|
|
12492
|
-
/* @__PURE__ */ (0,
|
|
12904
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
12905
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12906
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient" }),
|
|
12907
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12493
12908
|
Input,
|
|
12494
12909
|
{
|
|
12495
|
-
Icon: isNicknameInput ?
|
|
12910
|
+
Icon: isNicknameInput ? import_lucide_react43.AtSign : import_lucide_react43.Wallet,
|
|
12496
12911
|
type: "text",
|
|
12497
12912
|
value: recipient,
|
|
12498
12913
|
onChange: (e) => setRecipient(e.target.value),
|
|
12499
12914
|
placeholder: "0x... or @nickname",
|
|
12500
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */ (0,
|
|
12915
|
+
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
12916
|
}
|
|
12502
12917
|
),
|
|
12503
|
-
isNicknameInput && resolvedAddress && !isResolving && nicknameData && /* @__PURE__ */ (0,
|
|
12504
|
-
nicknameData.avatarSvg ? /* @__PURE__ */ (0,
|
|
12505
|
-
"
|
|
12918
|
+
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: [
|
|
12919
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12920
|
+
"img",
|
|
12506
12921
|
{
|
|
12507
|
-
|
|
12508
|
-
|
|
12922
|
+
src: nicknameData.avatarSvg,
|
|
12923
|
+
alt: nicknameData.handle,
|
|
12924
|
+
className: "w-10 h-10 rounded-full object-cover flex-shrink-0"
|
|
12509
12925
|
}
|
|
12510
|
-
) : /* @__PURE__ */ (0,
|
|
12511
|
-
/* @__PURE__ */ (0,
|
|
12512
|
-
/* @__PURE__ */ (0,
|
|
12513
|
-
/* @__PURE__ */ (0,
|
|
12514
|
-
/* @__PURE__ */ (0,
|
|
12926
|
+
) : /* @__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)]" }) }),
|
|
12927
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
12928
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-bg-success)]", children: [
|
|
12929
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "w-3 h-3 flex-shrink-0" }),
|
|
12930
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-mono", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)}` })
|
|
12515
12931
|
] }),
|
|
12516
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12517
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12518
|
-
/* @__PURE__ */ (0,
|
|
12932
|
+
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: [
|
|
12933
|
+
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" }),
|
|
12934
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { children: [
|
|
12519
12935
|
"Fingerprint: ",
|
|
12520
12936
|
nicknameData.fingerprint
|
|
12521
12937
|
] }),
|
|
12522
|
-
/* @__PURE__ */ (0,
|
|
12938
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12523
12939
|
] })
|
|
12524
12940
|
] })
|
|
12525
12941
|
] }),
|
|
12526
|
-
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */ (0,
|
|
12527
|
-
/* @__PURE__ */ (0,
|
|
12528
|
-
/* @__PURE__ */ (0,
|
|
12942
|
+
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: [
|
|
12943
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertTriangle, { className: "w-3 h-3" }),
|
|
12944
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "This handle is frozen. Proceed with caution." })
|
|
12529
12945
|
] }),
|
|
12530
|
-
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */ (0,
|
|
12531
|
-
/* @__PURE__ */ (0,
|
|
12532
|
-
/* @__PURE__ */ (0,
|
|
12946
|
+
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: [
|
|
12947
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "w-3 h-3" }),
|
|
12948
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "This user has not set up their wallet yet" })
|
|
12533
12949
|
] }),
|
|
12534
|
-
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */ (0,
|
|
12535
|
-
/* @__PURE__ */ (0,
|
|
12536
|
-
/* @__PURE__ */ (0,
|
|
12950
|
+
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: [
|
|
12951
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "w-3 h-3" }),
|
|
12952
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Nickname not found" })
|
|
12537
12953
|
] })
|
|
12538
12954
|
] }),
|
|
12539
|
-
/* @__PURE__ */ (0,
|
|
12540
|
-
/* @__PURE__ */ (0,
|
|
12541
|
-
/* @__PURE__ */ (0,
|
|
12542
|
-
/* @__PURE__ */ (0,
|
|
12955
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
12956
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between items-center", children: [
|
|
12957
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: isNft ? "Asset" : "Amount" }),
|
|
12958
|
+
!isNft && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
12543
12959
|
"Balance: ",
|
|
12544
|
-
balance
|
|
12545
|
-
"
|
|
12960
|
+
formatBalance(balance),
|
|
12961
|
+
" ",
|
|
12962
|
+
selectedAsset.symbol
|
|
12546
12963
|
] })
|
|
12547
12964
|
] }),
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
{
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12965
|
+
isNft && selectedAsset ? (
|
|
12966
|
+
// NFT display card
|
|
12967
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(NftDisplayCard, { asset: selectedAsset })
|
|
12968
|
+
) : (
|
|
12969
|
+
// Fungible token amount input
|
|
12970
|
+
/* @__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: [
|
|
12971
|
+
selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12972
|
+
AssetSelector,
|
|
12973
|
+
{
|
|
12974
|
+
assets,
|
|
12975
|
+
selectedAsset,
|
|
12976
|
+
onSelect: handleAssetSelect,
|
|
12977
|
+
disabled: isAssetsLoading
|
|
12978
|
+
}
|
|
12979
|
+
),
|
|
12980
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12981
|
+
"input",
|
|
12982
|
+
{
|
|
12983
|
+
type: "number",
|
|
12984
|
+
value: amount,
|
|
12985
|
+
onChange: (e) => setAmount(e.target.value),
|
|
12986
|
+
placeholder: "0.0",
|
|
12987
|
+
step: "0.000001",
|
|
12988
|
+
className: cn(
|
|
12989
|
+
"text-[16px] text-[var(--l-pass-fg)] font-semibold",
|
|
12990
|
+
"placeholder:text-[var(--l-pass-fg-muted)]",
|
|
12991
|
+
"focus-visible:outline-none focus-visible:ring-0",
|
|
12992
|
+
"w-full h-full flex-1 border-0 bg-transparent px-0"
|
|
12993
|
+
)
|
|
12994
|
+
}
|
|
12995
|
+
),
|
|
12996
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", children: "MAX" })
|
|
12997
|
+
] })
|
|
12998
|
+
),
|
|
12999
|
+
isNft && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-2 mt-2", children: [
|
|
13000
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Change asset:" }),
|
|
13001
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13002
|
+
AssetSelector,
|
|
13003
|
+
{
|
|
13004
|
+
assets,
|
|
13005
|
+
selectedAsset,
|
|
13006
|
+
onSelect: handleAssetSelect,
|
|
13007
|
+
disabled: isAssetsLoading
|
|
13008
|
+
}
|
|
13009
|
+
)
|
|
13010
|
+
] })
|
|
12560
13011
|
] }),
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
13012
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn(
|
|
13013
|
+
"flex items-center gap-2 p-3 rounded-[var(--l-pass-el-bdrs)]",
|
|
13014
|
+
isComplianceLoading && "bg-[var(--l-pass-bg-info)] text-[var(--l-pass-info)]",
|
|
13015
|
+
!isComplianceLoading && erc3643CanTransfer && "bg-[var(--l-pass-bg-success)] text-[var(--l-pass-success)]",
|
|
13016
|
+
!isComplianceLoading && !erc3643CanTransfer && "bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)]"
|
|
13017
|
+
), children: isComplianceLoading ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13018
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
13019
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: "Checking compliance..." })
|
|
13020
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13021
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "h-4 w-4" }),
|
|
13022
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: "Transfer compliant" })
|
|
13023
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13024
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "h-4 w-4" }),
|
|
13025
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: complianceError || "Transfer not allowed" })
|
|
13026
|
+
] }) }),
|
|
13027
|
+
(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: [
|
|
13028
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertCircle, { className: "h-4 w-4" }),
|
|
13029
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm", children: validationError || error })
|
|
12564
13030
|
] }),
|
|
12565
|
-
/* @__PURE__ */ (0,
|
|
13031
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleSend, disabled: isLoading || isComplianceLoading, className: "w-full", size: "large", children: "Continue" })
|
|
12566
13032
|
] }),
|
|
12567
|
-
txStep === "confirm" && effectiveAddress && /* @__PURE__ */ (0,
|
|
12568
|
-
isNicknameInput && isFrozen && /* @__PURE__ */ (0,
|
|
12569
|
-
/* @__PURE__ */ (0,
|
|
12570
|
-
/* @__PURE__ */ (0,
|
|
13033
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13034
|
+
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: [
|
|
13035
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.AlertTriangle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13036
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm font-medium", children: "This handle is frozen. Proceed with caution." })
|
|
12571
13037
|
] }),
|
|
12572
|
-
/* @__PURE__ */ (0,
|
|
12573
|
-
/* @__PURE__ */ (0,
|
|
12574
|
-
|
|
12575
|
-
|
|
13038
|
+
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: [
|
|
13039
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Shield, { className: "h-4 w-4 flex-shrink-0" }),
|
|
13040
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm font-medium", children: "Security token compliance verified" })
|
|
13041
|
+
] }),
|
|
13042
|
+
/* @__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: [
|
|
13043
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-start gap-3 mb-4", children: [
|
|
13044
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
13045
|
+
"img",
|
|
12576
13046
|
{
|
|
12577
|
-
|
|
12578
|
-
|
|
13047
|
+
src: nicknameData.avatarSvg,
|
|
13048
|
+
alt: nicknameData.handle,
|
|
13049
|
+
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
12579
13050
|
}
|
|
12580
|
-
) : /* @__PURE__ */ (0,
|
|
12581
|
-
/* @__PURE__ */ (0,
|
|
12582
|
-
/* @__PURE__ */ (0,
|
|
12583
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12584
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12585
|
-
/* @__PURE__ */ (0,
|
|
13051
|
+
) : /* @__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)]" }) }),
|
|
13052
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
13053
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold text-lg text-[var(--l-pass-fg)] truncate", children: nicknameData.handle }),
|
|
13054
|
+
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: [
|
|
13055
|
+
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" }),
|
|
13056
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { children: [
|
|
12586
13057
|
"Fingerprint: ",
|
|
12587
13058
|
nicknameData.fingerprint
|
|
12588
13059
|
] }),
|
|
12589
|
-
isFingerprintVerified && /* @__PURE__ */ (0,
|
|
12590
|
-
/* @__PURE__ */ (0,
|
|
13060
|
+
isFingerprintVerified && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "w-3 h-3" }),
|
|
13061
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs", children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12591
13062
|
] }),
|
|
12592
|
-
/* @__PURE__ */ (0,
|
|
13063
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-mono text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
12593
13064
|
"Address: ",
|
|
12594
13065
|
`${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-6)}`
|
|
12595
13066
|
] })
|
|
12596
13067
|
] })
|
|
12597
13068
|
] }),
|
|
12598
|
-
/* @__PURE__ */ (0,
|
|
12599
|
-
|
|
12600
|
-
|
|
12601
|
-
/* @__PURE__ */ (0,
|
|
12602
|
-
|
|
12603
|
-
"
|
|
13069
|
+
/* @__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: [
|
|
13070
|
+
isNft ? (
|
|
13071
|
+
// NFT details
|
|
13072
|
+
/* @__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: [
|
|
13073
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13074
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-right", children: [
|
|
13075
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13076
|
+
selectedAsset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13077
|
+
"#",
|
|
13078
|
+
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13079
|
+
] })
|
|
13080
|
+
] })
|
|
13081
|
+
] }) })
|
|
13082
|
+
) : (
|
|
13083
|
+
// Fungible token details
|
|
13084
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13085
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13086
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-semibold", children: [
|
|
13087
|
+
amount,
|
|
13088
|
+
" ",
|
|
13089
|
+
selectedAsset.symbol
|
|
13090
|
+
] })
|
|
12604
13091
|
] })
|
|
12605
|
-
|
|
12606
|
-
/* @__PURE__ */ (0,
|
|
12607
|
-
/* @__PURE__ */ (0,
|
|
12608
|
-
/* @__PURE__ */ (0,
|
|
13092
|
+
),
|
|
13093
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13094
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13095
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Lumia Beam" })
|
|
12609
13096
|
] })
|
|
12610
13097
|
] })
|
|
12611
|
-
] }) : /* @__PURE__ */ (0,
|
|
12612
|
-
/* @__PURE__ */ (0,
|
|
12613
|
-
/* @__PURE__ */ (0,
|
|
12614
|
-
/* @__PURE__ */ (0,
|
|
12615
|
-
/* @__PURE__ */ (0,
|
|
12616
|
-
/* @__PURE__ */ (0,
|
|
13098
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13099
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h3", { className: "font-medium mb-3 text-[var(--l-pass-fg)]", children: "Transaction Details" }),
|
|
13100
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "space-y-2 text-sm text-[var(--l-pass-fg)]", children: [
|
|
13101
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13102
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "To:" }),
|
|
13103
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
12617
13104
|
] }),
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
/* @__PURE__ */ (0,
|
|
12621
|
-
|
|
12622
|
-
"
|
|
13105
|
+
isNft ? (
|
|
13106
|
+
// NFT details
|
|
13107
|
+
/* @__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: [
|
|
13108
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "NFT:" }),
|
|
13109
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-right", children: [
|
|
13110
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
13111
|
+
selectedAsset.tokenId && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
13112
|
+
"#",
|
|
13113
|
+
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
13114
|
+
] })
|
|
13115
|
+
] })
|
|
13116
|
+
] }) })
|
|
13117
|
+
) : (
|
|
13118
|
+
// Fungible token details
|
|
13119
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13120
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Amount:" }),
|
|
13121
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-semibold", children: [
|
|
13122
|
+
amount,
|
|
13123
|
+
" ",
|
|
13124
|
+
selectedAsset.symbol
|
|
13125
|
+
] })
|
|
12623
13126
|
] })
|
|
12624
|
-
|
|
12625
|
-
/* @__PURE__ */ (0,
|
|
12626
|
-
/* @__PURE__ */ (0,
|
|
12627
|
-
/* @__PURE__ */ (0,
|
|
13127
|
+
),
|
|
13128
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex justify-between", children: [
|
|
13129
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Network:" }),
|
|
13130
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "Lumia Beam" })
|
|
12628
13131
|
] })
|
|
12629
13132
|
] })
|
|
12630
13133
|
] }) }),
|
|
12631
|
-
/* @__PURE__ */ (0,
|
|
12632
|
-
/* @__PURE__ */ (0,
|
|
12633
|
-
/* @__PURE__ */ (0,
|
|
12634
|
-
isLoading && /* @__PURE__ */ (0,
|
|
13134
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex gap-2", children: [
|
|
13135
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
13136
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
13137
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
12635
13138
|
"Confirm"
|
|
12636
13139
|
] })
|
|
12637
13140
|
] })
|
|
12638
13141
|
] }),
|
|
12639
|
-
txStep === "pending" && /* @__PURE__ */ (0,
|
|
12640
|
-
/* @__PURE__ */ (0,
|
|
12641
|
-
/* @__PURE__ */ (0,
|
|
12642
|
-
/* @__PURE__ */ (0,
|
|
12643
|
-
/* @__PURE__ */ (0,
|
|
13142
|
+
txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
|
|
13143
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.Loader, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
13144
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { children: [
|
|
13145
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
13146
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
12644
13147
|
] })
|
|
12645
13148
|
] }),
|
|
12646
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ (0,
|
|
12647
|
-
/* @__PURE__ */ (0,
|
|
12648
|
-
/* @__PURE__ */ (0,
|
|
12649
|
-
/* @__PURE__ */ (0,
|
|
12650
|
-
/* @__PURE__ */ (0,
|
|
13149
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
|
|
13150
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-center py-4", children: [
|
|
13151
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react43.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
13152
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
13153
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
12651
13154
|
] }),
|
|
12652
|
-
/* @__PURE__ */ (0,
|
|
13155
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
12653
13156
|
] })
|
|
12654
13157
|
] });
|
|
12655
13158
|
}
|
|
12656
13159
|
|
|
12657
13160
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
12658
|
-
var
|
|
13161
|
+
var import_lucide_react44 = require("lucide-react");
|
|
12659
13162
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
12660
13163
|
var import_react51 = require("react");
|
|
12661
13164
|
init_clients();
|
|
12662
|
-
var
|
|
13165
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
12663
13166
|
function ReceiveLumiaMenu() {
|
|
12664
13167
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12665
13168
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -12691,7 +13194,7 @@ function ReceiveLumiaMenu() {
|
|
|
12691
13194
|
console.error("Failed to copy address:", error);
|
|
12692
13195
|
}
|
|
12693
13196
|
}, [address]);
|
|
12694
|
-
return /* @__PURE__ */ (0,
|
|
13197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
12695
13198
|
"div",
|
|
12696
13199
|
{
|
|
12697
13200
|
style: {
|
|
@@ -12700,43 +13203,43 @@ function ReceiveLumiaMenu() {
|
|
|
12700
13203
|
},
|
|
12701
13204
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12702
13205
|
children: [
|
|
12703
|
-
/* @__PURE__ */ (0,
|
|
12704
|
-
/* @__PURE__ */ (0,
|
|
12705
|
-
/* @__PURE__ */ (0,
|
|
13206
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13207
|
+
/* @__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" }) }),
|
|
13208
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
12706
13209
|
] }),
|
|
12707
|
-
/* @__PURE__ */ (0,
|
|
12708
|
-
/* @__PURE__ */ (0,
|
|
12709
|
-
/* @__PURE__ */ (0,
|
|
13210
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
|
|
13211
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
13212
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
12710
13213
|
] }),
|
|
12711
|
-
/* @__PURE__ */ (0,
|
|
12712
|
-
/* @__PURE__ */ (0,
|
|
12713
|
-
/* @__PURE__ */ (0,
|
|
12714
|
-
/* @__PURE__ */ (0,
|
|
12715
|
-
/* @__PURE__ */ (0,
|
|
12716
|
-
/* @__PURE__ */ (0,
|
|
12717
|
-
] }) : /* @__PURE__ */ (0,
|
|
12718
|
-
/* @__PURE__ */ (0,
|
|
12719
|
-
/* @__PURE__ */ (0,
|
|
13214
|
+
/* @__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)]" }) }),
|
|
13215
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Highlight, { type: "info", children: [
|
|
13216
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
13217
|
+
/* @__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: [
|
|
13218
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.CheckCircle2, { className: "h-4 w-4" }),
|
|
13219
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: "Copied!" })
|
|
13220
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
13221
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react44.Copy, { className: "h-4 w-4" }),
|
|
13222
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: "Copy Address" })
|
|
12720
13223
|
] }) })
|
|
12721
13224
|
] }),
|
|
12722
|
-
/* @__PURE__ */ (0,
|
|
13225
|
+
/* @__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." }) })
|
|
12723
13226
|
]
|
|
12724
13227
|
}
|
|
12725
13228
|
);
|
|
12726
13229
|
}
|
|
12727
13230
|
|
|
12728
13231
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12729
|
-
var
|
|
13232
|
+
var import_lucide_react46 = require("lucide-react");
|
|
12730
13233
|
var import_react52 = require("react");
|
|
12731
13234
|
|
|
12732
13235
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12733
|
-
var
|
|
13236
|
+
var import_lucide_react45 = require("lucide-react");
|
|
12734
13237
|
|
|
12735
13238
|
// src/internal/assets/KycIcon.tsx
|
|
12736
|
-
var
|
|
13239
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
12737
13240
|
function KycIcon(props) {
|
|
12738
13241
|
const { width = "24", height = "24", ...rest } = props;
|
|
12739
|
-
return /* @__PURE__ */ (0,
|
|
13242
|
+
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)(
|
|
12740
13243
|
"path",
|
|
12741
13244
|
{
|
|
12742
13245
|
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",
|
|
@@ -12747,16 +13250,16 @@ function KycIcon(props) {
|
|
|
12747
13250
|
|
|
12748
13251
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12749
13252
|
var NAV_BUTTONS = [
|
|
12750
|
-
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon:
|
|
13253
|
+
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react45.ArrowLeftRight },
|
|
12751
13254
|
{ id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
|
|
12752
|
-
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon:
|
|
12753
|
-
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon:
|
|
12754
|
-
{ id: "security" /* SECURITY */, name: "Security", Icon:
|
|
12755
|
-
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon:
|
|
13255
|
+
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon: import_lucide_react45.AtSign },
|
|
13256
|
+
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react45.UsersRound },
|
|
13257
|
+
{ id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react45.LockKeyhole },
|
|
13258
|
+
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react45.DatabaseBackup }
|
|
12756
13259
|
];
|
|
12757
13260
|
|
|
12758
13261
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12759
|
-
var
|
|
13262
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
12760
13263
|
function SettingsMenu() {
|
|
12761
13264
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12762
13265
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -12767,7 +13270,7 @@ function SettingsMenu() {
|
|
|
12767
13270
|
useProvidersList();
|
|
12768
13271
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
12769
13272
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
12770
|
-
return /* @__PURE__ */ (0,
|
|
13273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
12771
13274
|
"div",
|
|
12772
13275
|
{
|
|
12773
13276
|
style: {
|
|
@@ -12776,11 +13279,11 @@ function SettingsMenu() {
|
|
|
12776
13279
|
},
|
|
12777
13280
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12778
13281
|
children: [
|
|
12779
|
-
/* @__PURE__ */ (0,
|
|
12780
|
-
/* @__PURE__ */ (0,
|
|
12781
|
-
/* @__PURE__ */ (0,
|
|
13282
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13283
|
+
/* @__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" }) }),
|
|
13284
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
12782
13285
|
] }),
|
|
12783
|
-
/* @__PURE__ */ (0,
|
|
13286
|
+
/* @__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)(
|
|
12784
13287
|
Button,
|
|
12785
13288
|
{
|
|
12786
13289
|
variant: "outline",
|
|
@@ -12793,8 +13296,8 @@ function SettingsMenu() {
|
|
|
12793
13296
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
12794
13297
|
),
|
|
12795
13298
|
children: [
|
|
12796
|
-
/* @__PURE__ */ (0,
|
|
12797
|
-
/* @__PURE__ */ (0,
|
|
13299
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon2, { className: "w-4 h-4" }),
|
|
13300
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: name })
|
|
12798
13301
|
]
|
|
12799
13302
|
},
|
|
12800
13303
|
id
|
|
@@ -12805,35 +13308,35 @@ function SettingsMenu() {
|
|
|
12805
13308
|
}
|
|
12806
13309
|
|
|
12807
13310
|
// src/internal/components/TermsOfService.tsx
|
|
12808
|
-
var
|
|
12809
|
-
var
|
|
13311
|
+
var import_lucide_react47 = require("lucide-react");
|
|
13312
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
12810
13313
|
function TermsOfService() {
|
|
12811
13314
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12812
13315
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12813
|
-
return /* @__PURE__ */ (0,
|
|
12814
|
-
/* @__PURE__ */ (0,
|
|
12815
|
-
/* @__PURE__ */ (0,
|
|
13316
|
+
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: [
|
|
13317
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13318
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12816
13319
|
Button,
|
|
12817
13320
|
{
|
|
12818
13321
|
variant: "ghost",
|
|
12819
13322
|
size: "icon",
|
|
12820
13323
|
title: "Back",
|
|
12821
13324
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
12822
|
-
children: /* @__PURE__ */ (0,
|
|
13325
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react47.ArrowLeft, { className: "h-4 w-4" })
|
|
12823
13326
|
}
|
|
12824
13327
|
),
|
|
12825
|
-
/* @__PURE__ */ (0,
|
|
13328
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
12826
13329
|
] }),
|
|
12827
|
-
/* @__PURE__ */ (0,
|
|
12828
|
-
/* @__PURE__ */ (0,
|
|
12829
|
-
/* @__PURE__ */ (0,
|
|
13330
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Highlight, { type: "warning", className: "text-center", children: [
|
|
13331
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "block text-xs", children: "By using Lumia Passport you agree to our terms." }),
|
|
13332
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "block text-xs", children: "To be updated..." })
|
|
12830
13333
|
] })
|
|
12831
13334
|
] });
|
|
12832
13335
|
}
|
|
12833
13336
|
|
|
12834
13337
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
12835
13338
|
var import_react_query35 = require("@tanstack/react-query");
|
|
12836
|
-
var
|
|
13339
|
+
var import_lucide_react49 = require("lucide-react");
|
|
12837
13340
|
var import_react53 = require("react");
|
|
12838
13341
|
|
|
12839
13342
|
// src/internal/components/TransactionsMenu/api.ts
|
|
@@ -13045,19 +13548,52 @@ async function getTransactionsListQuery(address) {
|
|
|
13045
13548
|
group.internals = [];
|
|
13046
13549
|
}
|
|
13047
13550
|
});
|
|
13551
|
+
const orphanGroupMap = /* @__PURE__ */ new Map();
|
|
13048
13552
|
orphanInternals.forEach((internalItem) => {
|
|
13049
13553
|
if (internalItem.isEntryPoint || toBigInt(internalItem.value) === 0n) {
|
|
13050
13554
|
return;
|
|
13051
13555
|
}
|
|
13556
|
+
const key = internalItem.parentHash.toLowerCase();
|
|
13557
|
+
const existing = orphanGroupMap.get(key) || [];
|
|
13558
|
+
existing.push(internalItem);
|
|
13559
|
+
orphanGroupMap.set(key, existing);
|
|
13560
|
+
});
|
|
13561
|
+
orphanGroupMap.forEach((internals, parentHash) => {
|
|
13562
|
+
const incomingInternals = internals.filter((internal) => {
|
|
13563
|
+
if (internal.direction !== "in") return false;
|
|
13564
|
+
const amount = toBigInt(internal.value);
|
|
13565
|
+
return amount > 0n;
|
|
13566
|
+
});
|
|
13567
|
+
if (incomingInternals.length === 0) {
|
|
13568
|
+
return;
|
|
13569
|
+
}
|
|
13570
|
+
let totalIn = 0n;
|
|
13571
|
+
incomingInternals.forEach((internal) => {
|
|
13572
|
+
totalIn += toBigInt(internal.value);
|
|
13573
|
+
});
|
|
13574
|
+
const sorted = incomingInternals.map((internal) => ({
|
|
13575
|
+
internal,
|
|
13576
|
+
amount: toBigInt(internal.value)
|
|
13577
|
+
})).sort((a, b) => {
|
|
13578
|
+
if (a.amount === b.amount) return 0;
|
|
13579
|
+
return a.amount > b.amount ? -1 : 1;
|
|
13580
|
+
});
|
|
13581
|
+
const primary = sorted[0].internal;
|
|
13582
|
+
const syntheticParent = {
|
|
13583
|
+
...primary,
|
|
13584
|
+
id: `orphan-${parentHash}`,
|
|
13585
|
+
direction: "in",
|
|
13586
|
+
value: totalIn.toString()
|
|
13587
|
+
};
|
|
13052
13588
|
groups.push({
|
|
13053
|
-
id:
|
|
13054
|
-
parent:
|
|
13589
|
+
id: syntheticParent.id,
|
|
13590
|
+
parent: syntheticParent,
|
|
13055
13591
|
internals: [],
|
|
13056
|
-
timestampMs:
|
|
13592
|
+
timestampMs: Math.max(...incomingInternals.map((i) => i.timestampMs))
|
|
13057
13593
|
});
|
|
13058
13594
|
});
|
|
13059
13595
|
tokenTransfersData.forEach((transfer, index) => {
|
|
13060
|
-
const rawValue = transfer.value ?? "0";
|
|
13596
|
+
const rawValue = transfer.total?.value ?? transfer.value ?? "0";
|
|
13061
13597
|
const amount = toBigInt(rawValue);
|
|
13062
13598
|
if (amount === 0n) {
|
|
13063
13599
|
return;
|
|
@@ -13073,7 +13609,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13073
13609
|
}
|
|
13074
13610
|
const tsInput = transfer.timestamp;
|
|
13075
13611
|
const timestampMs = typeof tsInput === "number" ? tsInput > 1e12 ? tsInput : tsInput * 1e3 : tsInput ? new Date(tsInput).getTime() : now;
|
|
13076
|
-
const decimalsRaw = transfer.token?.decimals;
|
|
13612
|
+
const decimalsRaw = transfer.total?.decimals ?? transfer.token?.decimals;
|
|
13077
13613
|
const decimals = typeof decimalsRaw === "string" ? parseInt(decimalsRaw, 10) : typeof decimalsRaw === "number" ? decimalsRaw : 18;
|
|
13078
13614
|
const assetSymbol = transfer.token?.symbol || "Token";
|
|
13079
13615
|
const tokenItem = {
|
|
@@ -13125,7 +13661,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13125
13661
|
}
|
|
13126
13662
|
|
|
13127
13663
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13128
|
-
var
|
|
13664
|
+
var import_lucide_react48 = require("lucide-react");
|
|
13129
13665
|
|
|
13130
13666
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
13131
13667
|
init_base();
|
|
@@ -13172,22 +13708,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
13172
13708
|
};
|
|
13173
13709
|
|
|
13174
13710
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13175
|
-
var
|
|
13711
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
13176
13712
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
13177
13713
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
13178
13714
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
13179
|
-
return /* @__PURE__ */ (0,
|
|
13180
|
-
/* @__PURE__ */ (0,
|
|
13181
|
-
/* @__PURE__ */ (0,
|
|
13182
|
-
/* @__PURE__ */ (0,
|
|
13715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
|
|
13716
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13717
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
|
|
13718
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13183
13719
|
formatValue2(internal.value, internalDecimals),
|
|
13184
13720
|
" ",
|
|
13185
13721
|
internalSymbol
|
|
13186
13722
|
] })
|
|
13187
13723
|
] }),
|
|
13188
|
-
/* @__PURE__ */ (0,
|
|
13189
|
-
/* @__PURE__ */ (0,
|
|
13190
|
-
/* @__PURE__ */ (0,
|
|
13724
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
13725
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
|
|
13726
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
|
|
13191
13727
|
] })
|
|
13192
13728
|
] });
|
|
13193
13729
|
}
|
|
@@ -13198,7 +13734,7 @@ function TransactionsGroup(props) {
|
|
|
13198
13734
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
13199
13735
|
const assetDecimals = parent.decimals ?? 18;
|
|
13200
13736
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
13201
|
-
return /* @__PURE__ */ (0,
|
|
13737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13202
13738
|
"div",
|
|
13203
13739
|
{
|
|
13204
13740
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -13208,22 +13744,28 @@ function TransactionsGroup(props) {
|
|
|
13208
13744
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
13209
13745
|
),
|
|
13210
13746
|
children: [
|
|
13211
|
-
/* @__PURE__ */ (0,
|
|
13212
|
-
/* @__PURE__ */ (0,
|
|
13213
|
-
parent.direction === "in" ? /* @__PURE__ */ (0,
|
|
13214
|
-
/* @__PURE__ */ (0,
|
|
13215
|
-
parent.status === "ok" ? /* @__PURE__ */ (0,
|
|
13747
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13748
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
13749
|
+
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" }),
|
|
13750
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
13751
|
+
parent.status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(NegativeIcon, {})
|
|
13216
13752
|
] }),
|
|
13217
|
-
/* @__PURE__ */ (0,
|
|
13753
|
+
/* @__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) })
|
|
13218
13754
|
] }),
|
|
13219
|
-
/* @__PURE__ */ (0,
|
|
13220
|
-
/* @__PURE__ */ (0,
|
|
13221
|
-
|
|
13222
|
-
|
|
13223
|
-
|
|
13755
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
13756
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col gap-0", children: [
|
|
13757
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "font-bold", children: [
|
|
13758
|
+
formatValue2(parent.value, assetDecimals),
|
|
13759
|
+
" ",
|
|
13760
|
+
assetSymbol
|
|
13761
|
+
] }),
|
|
13762
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "text-[10px] font-mono text-[var(--l-pass-fg-muted)]", children: [
|
|
13763
|
+
isIncoming ? "From: " : "To: ",
|
|
13764
|
+
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
13765
|
+
] })
|
|
13224
13766
|
] }),
|
|
13225
|
-
/* @__PURE__ */ (0,
|
|
13226
|
-
/* @__PURE__ */ (0,
|
|
13767
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-0", children: [
|
|
13768
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13227
13769
|
Button,
|
|
13228
13770
|
{
|
|
13229
13771
|
variant: "ghost",
|
|
@@ -13232,10 +13774,10 @@ function TransactionsGroup(props) {
|
|
|
13232
13774
|
onClick: (e) => {
|
|
13233
13775
|
e.stopPropagation();
|
|
13234
13776
|
},
|
|
13235
|
-
children: /* @__PURE__ */ (0,
|
|
13777
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react48.Copy, { className: "w-4 h-4" })
|
|
13236
13778
|
}
|
|
13237
13779
|
),
|
|
13238
|
-
/* @__PURE__ */ (0,
|
|
13780
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13239
13781
|
Button,
|
|
13240
13782
|
{
|
|
13241
13783
|
variant: "ghost",
|
|
@@ -13244,24 +13786,24 @@ function TransactionsGroup(props) {
|
|
|
13244
13786
|
onClick: (e) => {
|
|
13245
13787
|
e.stopPropagation();
|
|
13246
13788
|
},
|
|
13247
|
-
children: /* @__PURE__ */ (0,
|
|
13789
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LumiaIcon, { className: "w-4 h-4" })
|
|
13248
13790
|
}
|
|
13249
13791
|
)
|
|
13250
13792
|
] })
|
|
13251
13793
|
] }),
|
|
13252
|
-
internalsToRender.length > 0 && /* @__PURE__ */ (0,
|
|
13253
|
-
/* @__PURE__ */ (0,
|
|
13254
|
-
/* @__PURE__ */ (0,
|
|
13255
|
-
/* @__PURE__ */ (0,
|
|
13256
|
-
/* @__PURE__ */ (0,
|
|
13794
|
+
internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
13795
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
13796
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
13797
|
+
/* @__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" }),
|
|
13798
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
13257
13799
|
] }),
|
|
13258
|
-
/* @__PURE__ */ (0,
|
|
13800
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13259
13801
|
"div",
|
|
13260
13802
|
{
|
|
13261
13803
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
13262
13804
|
onClick: (event) => event.stopPropagation(),
|
|
13263
13805
|
children: [
|
|
13264
|
-
/* @__PURE__ */ (0,
|
|
13806
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13265
13807
|
Button,
|
|
13266
13808
|
{
|
|
13267
13809
|
variant: "ghost",
|
|
@@ -13269,16 +13811,16 @@ function TransactionsGroup(props) {
|
|
|
13269
13811
|
className: "w-full justify-between",
|
|
13270
13812
|
onClick: () => onToggleExpanded(group.id),
|
|
13271
13813
|
children: [
|
|
13272
|
-
/* @__PURE__ */ (0,
|
|
13814
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13273
13815
|
"View internal calls (",
|
|
13274
13816
|
internalsToRender.length,
|
|
13275
13817
|
")"
|
|
13276
13818
|
] }),
|
|
13277
|
-
/* @__PURE__ */ (0,
|
|
13819
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: expanded ? "Hide" : "Show" })
|
|
13278
13820
|
]
|
|
13279
13821
|
}
|
|
13280
13822
|
),
|
|
13281
|
-
expanded && /* @__PURE__ */ (0,
|
|
13823
|
+
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)(
|
|
13282
13824
|
InternalTransaction,
|
|
13283
13825
|
{
|
|
13284
13826
|
internal,
|
|
@@ -13297,7 +13839,7 @@ function TransactionsGroup(props) {
|
|
|
13297
13839
|
}
|
|
13298
13840
|
|
|
13299
13841
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13300
|
-
var
|
|
13842
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
13301
13843
|
function TransactionsMenu() {
|
|
13302
13844
|
const qc = (0, import_react_query35.useQueryClient)();
|
|
13303
13845
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -13321,7 +13863,7 @@ function TransactionsMenu() {
|
|
|
13321
13863
|
[qc, address]
|
|
13322
13864
|
);
|
|
13323
13865
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
13324
|
-
return /* @__PURE__ */ (0,
|
|
13866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13325
13867
|
"div",
|
|
13326
13868
|
{
|
|
13327
13869
|
style: {
|
|
@@ -13329,11 +13871,11 @@ function TransactionsMenu() {
|
|
|
13329
13871
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
13330
13872
|
},
|
|
13331
13873
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
13332
|
-
children: /* @__PURE__ */ (0,
|
|
13333
|
-
/* @__PURE__ */ (0,
|
|
13334
|
-
/* @__PURE__ */ (0,
|
|
13335
|
-
/* @__PURE__ */ (0,
|
|
13336
|
-
/* @__PURE__ */ (0,
|
|
13874
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
13875
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13876
|
+
/* @__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" }) }),
|
|
13877
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
13878
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13337
13879
|
Button,
|
|
13338
13880
|
{
|
|
13339
13881
|
variant: "ghost",
|
|
@@ -13341,17 +13883,17 @@ function TransactionsMenu() {
|
|
|
13341
13883
|
onClick: refreshTxHistory,
|
|
13342
13884
|
disabled: isTxHistoryFetching,
|
|
13343
13885
|
title: "Refresh transactions",
|
|
13344
|
-
children: isTxHistoryFetching ? /* @__PURE__ */ (0,
|
|
13886
|
+
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" })
|
|
13345
13887
|
}
|
|
13346
13888
|
)
|
|
13347
13889
|
] }),
|
|
13348
|
-
isTxHistoryLoading && /* @__PURE__ */ (0,
|
|
13349
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0,
|
|
13350
|
-
/* @__PURE__ */ (0,
|
|
13351
|
-
/* @__PURE__ */ (0,
|
|
13890
|
+
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" }) }),
|
|
13891
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
13892
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react49.XCircle, { className: "w-4 h-4 flex-none" }),
|
|
13893
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
13352
13894
|
] }),
|
|
13353
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0,
|
|
13354
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0,
|
|
13895
|
+
!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." }) }),
|
|
13896
|
+
!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)(
|
|
13355
13897
|
TransactionsGroup,
|
|
13356
13898
|
{
|
|
13357
13899
|
group,
|
|
@@ -13466,7 +14008,7 @@ var PAGE_MAP = {
|
|
|
13466
14008
|
};
|
|
13467
14009
|
|
|
13468
14010
|
// src/internal/hooks/usePageMapper.tsx
|
|
13469
|
-
var
|
|
14011
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
13470
14012
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
13471
14013
|
function usePageMapper() {
|
|
13472
14014
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -13494,7 +14036,7 @@ function usePageMapper() {
|
|
|
13494
14036
|
const PageContentComponent = pageItem.component;
|
|
13495
14037
|
setDialogTitle(pageItem.title);
|
|
13496
14038
|
setDialogDescription(pageItem.description);
|
|
13497
|
-
setDialogContent(/* @__PURE__ */ (0,
|
|
14039
|
+
setDialogContent(/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(PageContentComponent, {}));
|
|
13498
14040
|
setIsDialogOpen(true);
|
|
13499
14041
|
},
|
|
13500
14042
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -13562,7 +14104,7 @@ function useWalletStatus() {
|
|
|
13562
14104
|
}
|
|
13563
14105
|
|
|
13564
14106
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
13565
|
-
var
|
|
14107
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
13566
14108
|
function LumiaPassportDialog() {
|
|
13567
14109
|
const config = useLumiaPassportConfig().config;
|
|
13568
14110
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -13581,7 +14123,7 @@ function LumiaPassportDialog() {
|
|
|
13581
14123
|
useListenIframeAuthEvents();
|
|
13582
14124
|
useWalletStatus();
|
|
13583
14125
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
13584
|
-
return /* @__PURE__ */ (0,
|
|
14126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
13585
14127
|
Dialog,
|
|
13586
14128
|
{
|
|
13587
14129
|
open: isDialogOpen,
|
|
@@ -13589,11 +14131,11 @@ function LumiaPassportDialog() {
|
|
|
13589
14131
|
if (isDialogForced) return;
|
|
13590
14132
|
if (!open) setPage(null);
|
|
13591
14133
|
},
|
|
13592
|
-
children: /* @__PURE__ */ (0,
|
|
13593
|
-
/* @__PURE__ */ (0,
|
|
13594
|
-
/* @__PURE__ */ (0,
|
|
13595
|
-
!isHeaderHidden && /* @__PURE__ */ (0,
|
|
13596
|
-
/* @__PURE__ */ (0,
|
|
14134
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(DialogContent, { colorMode, className, children: [
|
|
14135
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogTitle, { children: dialogTitle }) }),
|
|
14136
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
14137
|
+
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Header, {}),
|
|
14138
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_framer_motion3.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
13597
14139
|
import_framer_motion3.motion.div,
|
|
13598
14140
|
{
|
|
13599
14141
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -13605,7 +14147,7 @@ function LumiaPassportDialog() {
|
|
|
13605
14147
|
},
|
|
13606
14148
|
page || "empty"
|
|
13607
14149
|
) }),
|
|
13608
|
-
/* @__PURE__ */ (0,
|
|
14150
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Footer, {})
|
|
13609
14151
|
] })
|
|
13610
14152
|
}
|
|
13611
14153
|
);
|
|
@@ -13657,16 +14199,16 @@ var TssManagerWithRef = import_react58.default.forwardRef((props, ref) => {
|
|
|
13657
14199
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
13658
14200
|
var import_react_query36 = require("@tanstack/react-query");
|
|
13659
14201
|
var import_react59 = __toESM(require("react"), 1);
|
|
13660
|
-
var
|
|
14202
|
+
var import_wagmi4 = require("wagmi");
|
|
13661
14203
|
init_wallet();
|
|
13662
14204
|
function WalletConnectHandler() {
|
|
13663
14205
|
const qc = (0, import_react_query36.useQueryClient)();
|
|
13664
14206
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
13665
14207
|
const passportWalletAddress = useLumiaPassportSession((st) => st.address);
|
|
13666
|
-
const { address: walletAddress, isConnected, chain, connector } = (0,
|
|
14208
|
+
const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
|
|
13667
14209
|
const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
|
|
13668
|
-
const { disconnect } = (0,
|
|
13669
|
-
const { signMessageAsync } = (0,
|
|
14210
|
+
const { disconnect } = (0, import_wagmi4.useDisconnect)();
|
|
14211
|
+
const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
|
|
13670
14212
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
13671
14213
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13672
14214
|
const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
|
|
@@ -13808,7 +14350,7 @@ function WalletConnectHandler() {
|
|
|
13808
14350
|
}
|
|
13809
14351
|
|
|
13810
14352
|
// src/context/LumiaPassportSessionContext.tsx
|
|
13811
|
-
var
|
|
14353
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
13812
14354
|
var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
13813
14355
|
isLoading: false,
|
|
13814
14356
|
usePaymaster: true,
|
|
@@ -13834,17 +14376,17 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
|
13834
14376
|
}));
|
|
13835
14377
|
function LumiaPassportSessionProvider({ children }) {
|
|
13836
14378
|
const config = useLumiaPassportConfig().config;
|
|
13837
|
-
return /* @__PURE__ */ (0,
|
|
14379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_react60.Fragment, { children: [
|
|
13838
14380
|
children,
|
|
13839
|
-
config.current?.wallet?.enabled && /* @__PURE__ */ (0,
|
|
13840
|
-
/* @__PURE__ */ (0,
|
|
13841
|
-
/* @__PURE__ */ (0,
|
|
14381
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletConnectHandler, {}),
|
|
14382
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(BalanceFeedProvider, {}),
|
|
14383
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13842
14384
|
TssManagerWithRef,
|
|
13843
14385
|
{
|
|
13844
14386
|
mpcPin: void 0
|
|
13845
14387
|
}
|
|
13846
14388
|
),
|
|
13847
|
-
/* @__PURE__ */ (0,
|
|
14389
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LumiaPassportDialog, {})
|
|
13848
14390
|
] });
|
|
13849
14391
|
}
|
|
13850
14392
|
|
|
@@ -13860,15 +14402,15 @@ function notifyNoProjetctId(projectId) {
|
|
|
13860
14402
|
}
|
|
13861
14403
|
|
|
13862
14404
|
// src/context/WagmiContext.tsx
|
|
13863
|
-
var
|
|
14405
|
+
var import_wagmi6 = require("wagmi");
|
|
13864
14406
|
|
|
13865
14407
|
// src/config/wagmi.ts
|
|
13866
|
-
var
|
|
14408
|
+
var import_wagmi5 = require("wagmi");
|
|
13867
14409
|
init_base();
|
|
13868
|
-
var wagmiConfig = (0,
|
|
14410
|
+
var wagmiConfig = (0, import_wagmi5.createConfig)({
|
|
13869
14411
|
chains: [lumiaBeam],
|
|
13870
14412
|
transports: {
|
|
13871
|
-
[lumiaBeam.id]: (0,
|
|
14413
|
+
[lumiaBeam.id]: (0, import_wagmi5.http)(lumiaBeam.rpcUrls.default.http[0], {
|
|
13872
14414
|
timeout: 1e4,
|
|
13873
14415
|
retryCount: 0,
|
|
13874
14416
|
batch: false,
|
|
@@ -13879,13 +14421,13 @@ var wagmiConfig = (0, import_wagmi6.createConfig)({
|
|
|
13879
14421
|
});
|
|
13880
14422
|
|
|
13881
14423
|
// src/context/WagmiContext.tsx
|
|
13882
|
-
var
|
|
14424
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
13883
14425
|
var LumiaWagmiProvider = ({ children }) => {
|
|
13884
|
-
return /* @__PURE__ */ (0,
|
|
14426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_wagmi6.WagmiProvider, { config: wagmiConfig, children });
|
|
13885
14427
|
};
|
|
13886
14428
|
|
|
13887
14429
|
// src/context/LumiaPassportContext.tsx
|
|
13888
|
-
var
|
|
14430
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
13889
14431
|
var LumiaPassportContext = (0, import_react61.createContext)(void 0);
|
|
13890
14432
|
function LumiaPassportProvider(props) {
|
|
13891
14433
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
@@ -13974,7 +14516,7 @@ function LumiaPassportProvider(props) {
|
|
|
13974
14516
|
}
|
|
13975
14517
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
13976
14518
|
const contextValue = (0, import_react61.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
13977
|
-
return /* @__PURE__ */ (0,
|
|
14519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
13978
14520
|
}
|
|
13979
14521
|
var useLumiaPassportConfig = () => {
|
|
13980
14522
|
const ctx = (0, import_react61.useContext)(LumiaPassportContext);
|
|
@@ -13984,11 +14526,11 @@ var useLumiaPassportConfig = () => {
|
|
|
13984
14526
|
|
|
13985
14527
|
// src/components/ConnectWalletButton.tsx
|
|
13986
14528
|
var import_react_query37 = require("@tanstack/react-query");
|
|
13987
|
-
var
|
|
14529
|
+
var import_lucide_react50 = require("lucide-react");
|
|
13988
14530
|
var import_react62 = require("react");
|
|
13989
14531
|
init_auth();
|
|
13990
14532
|
init_profile();
|
|
13991
|
-
var
|
|
14533
|
+
var import_jsx_runtime77 = (
|
|
13992
14534
|
/** external Buttons can be provided */
|
|
13993
14535
|
require("react/jsx-runtime")
|
|
13994
14536
|
);
|
|
@@ -14027,18 +14569,18 @@ function ConnectWalletButton(props) {
|
|
|
14027
14569
|
return { server, local, backup: hasServerVault };
|
|
14028
14570
|
}, [session, address, hasServerVault]);
|
|
14029
14571
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
14030
|
-
return /* @__PURE__ */ (0,
|
|
14572
|
+
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)(
|
|
14031
14573
|
ConnectButton,
|
|
14032
14574
|
{
|
|
14033
14575
|
type: "button",
|
|
14034
14576
|
disabled: isConnecting,
|
|
14035
14577
|
onClick: () => setPage("auth" /* AUTH */),
|
|
14036
14578
|
children: [
|
|
14037
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14579
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14038
14580
|
connectButtonLabel
|
|
14039
14581
|
]
|
|
14040
14582
|
}
|
|
14041
|
-
) : /* @__PURE__ */ (0,
|
|
14583
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14042
14584
|
Button,
|
|
14043
14585
|
{
|
|
14044
14586
|
type: "button",
|
|
@@ -14055,11 +14597,11 @@ function ConnectWalletButton(props) {
|
|
|
14055
14597
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
14056
14598
|
),
|
|
14057
14599
|
children: [
|
|
14058
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14600
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14059
14601
|
connectButtonLabel.toUpperCase()
|
|
14060
14602
|
]
|
|
14061
14603
|
}
|
|
14062
|
-
) }) : /* @__PURE__ */ (0,
|
|
14604
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14063
14605
|
"button",
|
|
14064
14606
|
{
|
|
14065
14607
|
type: "button",
|
|
@@ -14072,23 +14614,23 @@ function ConnectWalletButton(props) {
|
|
|
14072
14614
|
"rounded-[var(--l-pass-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
14073
14615
|
),
|
|
14074
14616
|
children: [
|
|
14075
|
-
/* @__PURE__ */ (0,
|
|
14076
|
-
/* @__PURE__ */ (0,
|
|
14077
|
-
/* @__PURE__ */ (0,
|
|
14078
|
-
isProfileLoading ? /* @__PURE__ */ (0,
|
|
14079
|
-
/* @__PURE__ */ (0,
|
|
14617
|
+
/* @__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 }) }),
|
|
14618
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
|
|
14619
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
14620
|
+
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 }),
|
|
14621
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(KYCStatus, {})
|
|
14080
14622
|
] }),
|
|
14081
|
-
/* @__PURE__ */ (0,
|
|
14623
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(BalanceView, {})
|
|
14082
14624
|
] }),
|
|
14083
|
-
/* @__PURE__ */ (0,
|
|
14084
|
-
/* @__PURE__ */ (0,
|
|
14085
|
-
/* @__PURE__ */ (0,
|
|
14086
|
-
|
|
14625
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
14626
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14627
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14628
|
+
import_lucide_react50.Cloud,
|
|
14087
14629
|
{
|
|
14088
14630
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14089
14631
|
}
|
|
14090
14632
|
),
|
|
14091
|
-
/* @__PURE__ */ (0,
|
|
14633
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14092
14634
|
"div",
|
|
14093
14635
|
{
|
|
14094
14636
|
className: cn(
|
|
@@ -14103,14 +14645,14 @@ function ConnectWalletButton(props) {
|
|
|
14103
14645
|
}
|
|
14104
14646
|
)
|
|
14105
14647
|
] }),
|
|
14106
|
-
/* @__PURE__ */ (0,
|
|
14107
|
-
/* @__PURE__ */ (0,
|
|
14108
|
-
|
|
14648
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14649
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14650
|
+
import_lucide_react50.Laptop,
|
|
14109
14651
|
{
|
|
14110
14652
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14111
14653
|
}
|
|
14112
14654
|
),
|
|
14113
|
-
/* @__PURE__ */ (0,
|
|
14655
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14114
14656
|
"div",
|
|
14115
14657
|
{
|
|
14116
14658
|
className: cn(
|
|
@@ -14125,14 +14667,14 @@ function ConnectWalletButton(props) {
|
|
|
14125
14667
|
}
|
|
14126
14668
|
)
|
|
14127
14669
|
] }),
|
|
14128
|
-
/* @__PURE__ */ (0,
|
|
14129
|
-
/* @__PURE__ */ (0,
|
|
14130
|
-
|
|
14670
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14671
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14672
|
+
import_lucide_react50.Shield,
|
|
14131
14673
|
{
|
|
14132
14674
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14133
14675
|
}
|
|
14134
14676
|
),
|
|
14135
|
-
/* @__PURE__ */ (0,
|
|
14677
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14136
14678
|
"div",
|
|
14137
14679
|
{
|
|
14138
14680
|
className: cn(
|
|
@@ -14148,7 +14690,7 @@ function ConnectWalletButton(props) {
|
|
|
14148
14690
|
)
|
|
14149
14691
|
] })
|
|
14150
14692
|
] }),
|
|
14151
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
14693
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14152
14694
|
"div",
|
|
14153
14695
|
{
|
|
14154
14696
|
className: cn(
|
|
@@ -14241,24 +14783,24 @@ function useLumiaPassportColorMode() {
|
|
|
14241
14783
|
}
|
|
14242
14784
|
|
|
14243
14785
|
// src/components/ThemeToggle.tsx
|
|
14244
|
-
var
|
|
14245
|
-
var
|
|
14786
|
+
var import_lucide_react51 = require("lucide-react");
|
|
14787
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
14246
14788
|
function ThemeToggle(props) {
|
|
14247
14789
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
14248
|
-
return /* @__PURE__ */ (0,
|
|
14790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14249
14791
|
"div",
|
|
14250
14792
|
{
|
|
14251
14793
|
className: "lumia-scope",
|
|
14252
14794
|
"data-lumia-passport-mode": colorMode,
|
|
14253
14795
|
style: { width: "fit-content", height: "fit-content" },
|
|
14254
|
-
children: /* @__PURE__ */ (0,
|
|
14796
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14255
14797
|
Button,
|
|
14256
14798
|
{
|
|
14257
14799
|
...props,
|
|
14258
14800
|
variant: "ghost",
|
|
14259
14801
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
14260
14802
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
14261
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
14803
|
+
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" })
|
|
14262
14804
|
}
|
|
14263
14805
|
)
|
|
14264
14806
|
}
|
|
@@ -14268,7 +14810,7 @@ function ThemeToggle(props) {
|
|
|
14268
14810
|
// src/context/RainbowKitContext.tsx
|
|
14269
14811
|
var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
14270
14812
|
var import_react65 = require("react");
|
|
14271
|
-
var
|
|
14813
|
+
var import_wagmi8 = require("wagmi");
|
|
14272
14814
|
|
|
14273
14815
|
// src/config/rainbowkit.ts
|
|
14274
14816
|
var import_rainbowkit2 = require("@rainbow-me/rainbowkit");
|
|
@@ -14495,7 +15037,7 @@ var rainbowTheme = {
|
|
|
14495
15037
|
|
|
14496
15038
|
// src/context/RainbowKitContext.tsx
|
|
14497
15039
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
14498
|
-
var
|
|
15040
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
14499
15041
|
function LumiaRainbowKitProvider({ children }) {
|
|
14500
15042
|
const config = useLumiaPassportConfig().config;
|
|
14501
15043
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -14514,13 +15056,13 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
14514
15056
|
},
|
|
14515
15057
|
[colorMode]
|
|
14516
15058
|
);
|
|
14517
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0,
|
|
14518
|
-
return /* @__PURE__ */ (0,
|
|
15059
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_jsx_runtime79.Fragment, { children });
|
|
15060
|
+
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 }) });
|
|
14519
15061
|
}
|
|
14520
15062
|
|
|
14521
15063
|
// src/internal/components/UserOpStatus.tsx
|
|
14522
|
-
var
|
|
14523
|
-
var
|
|
15064
|
+
var import_lucide_react53 = require("lucide-react");
|
|
15065
|
+
var React10 = __toESM(require("react"), 1);
|
|
14524
15066
|
init_base();
|
|
14525
15067
|
|
|
14526
15068
|
// src/internal/utils/cn.ts
|
|
@@ -14531,9 +15073,9 @@ function cn2(...inputs) {
|
|
|
14531
15073
|
}
|
|
14532
15074
|
|
|
14533
15075
|
// src/internal/components/Address.tsx
|
|
14534
|
-
var
|
|
14535
|
-
var
|
|
14536
|
-
var
|
|
15076
|
+
var import_lucide_react52 = require("lucide-react");
|
|
15077
|
+
var React9 = __toESM(require("react"), 1);
|
|
15078
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
14537
15079
|
function toExplorerAddressUrl(address, chain) {
|
|
14538
15080
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
14539
15081
|
if (!base2) return null;
|
|
@@ -14554,12 +15096,12 @@ var Address = ({
|
|
|
14554
15096
|
}) => {
|
|
14555
15097
|
const addr = address || "";
|
|
14556
15098
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
14557
|
-
const [copied, setCopied] =
|
|
14558
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
14559
|
-
return /* @__PURE__ */ (0,
|
|
14560
|
-
label && /* @__PURE__ */ (0,
|
|
14561
|
-
/* @__PURE__ */ (0,
|
|
14562
|
-
showCopy && /* @__PURE__ */ (0,
|
|
15099
|
+
const [copied, setCopied] = React9.useState(false);
|
|
15100
|
+
if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
15102
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
15103
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
15104
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14563
15105
|
Button,
|
|
14564
15106
|
{
|
|
14565
15107
|
variant: "ghost",
|
|
@@ -14573,10 +15115,10 @@ var Address = ({
|
|
|
14573
15115
|
} catch {
|
|
14574
15116
|
}
|
|
14575
15117
|
},
|
|
14576
|
-
children: /* @__PURE__ */ (0,
|
|
15118
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react52.Copy, { className: "h-4 w-4" })
|
|
14577
15119
|
}
|
|
14578
15120
|
),
|
|
14579
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15121
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14580
15122
|
"a",
|
|
14581
15123
|
{
|
|
14582
15124
|
href: explorer,
|
|
@@ -14584,7 +15126,7 @@ var Address = ({
|
|
|
14584
15126
|
rel: "noreferrer noopener",
|
|
14585
15127
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14586
15128
|
title: "Open in explorer",
|
|
14587
|
-
children: /* @__PURE__ */ (0,
|
|
15129
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react52.ExternalLink, { className: "h-4 w-4" })
|
|
14588
15130
|
}
|
|
14589
15131
|
)
|
|
14590
15132
|
] });
|
|
@@ -14592,7 +15134,7 @@ var Address = ({
|
|
|
14592
15134
|
|
|
14593
15135
|
// src/internal/components/ui/badge.tsx
|
|
14594
15136
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
14595
|
-
var
|
|
15137
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
14596
15138
|
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
14597
15139
|
"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",
|
|
14598
15140
|
{
|
|
@@ -14612,11 +15154,11 @@ var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
|
14612
15154
|
}
|
|
14613
15155
|
);
|
|
14614
15156
|
function Badge({ className, variant, ...props }) {
|
|
14615
|
-
return /* @__PURE__ */ (0,
|
|
15157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
14616
15158
|
}
|
|
14617
15159
|
|
|
14618
15160
|
// src/internal/components/UserOpStatus.tsx
|
|
14619
|
-
var
|
|
15161
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
14620
15162
|
var UserOpStatus = ({
|
|
14621
15163
|
userOpHash,
|
|
14622
15164
|
chain,
|
|
@@ -14627,20 +15169,20 @@ var UserOpStatus = ({
|
|
|
14627
15169
|
externalState
|
|
14628
15170
|
}) => {
|
|
14629
15171
|
const useExternalState = !!externalState;
|
|
14630
|
-
const [internalReceipt, setInternalReceipt] =
|
|
14631
|
-
const [internalMempool, setInternalMempool] =
|
|
14632
|
-
const [internalError, setInternalError] =
|
|
14633
|
-
const [attempt, setAttempt] =
|
|
14634
|
-
const [internalRefreshing, setInternalRefreshing] =
|
|
14635
|
-
const [timedOut, setTimedOut] =
|
|
14636
|
-
const [rejected, setRejected] =
|
|
14637
|
-
const intervalRef =
|
|
14638
|
-
const startTimeRef =
|
|
15172
|
+
const [internalReceipt, setInternalReceipt] = React10.useState(null);
|
|
15173
|
+
const [internalMempool, setInternalMempool] = React10.useState(null);
|
|
15174
|
+
const [internalError, setInternalError] = React10.useState(null);
|
|
15175
|
+
const [attempt, setAttempt] = React10.useState(0);
|
|
15176
|
+
const [internalRefreshing, setInternalRefreshing] = React10.useState(false);
|
|
15177
|
+
const [timedOut, setTimedOut] = React10.useState(false);
|
|
15178
|
+
const [rejected, setRejected] = React10.useState(false);
|
|
15179
|
+
const intervalRef = React10.useRef(null);
|
|
15180
|
+
const startTimeRef = React10.useRef(Date.now());
|
|
14639
15181
|
const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
|
|
14640
15182
|
const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
|
|
14641
15183
|
const error = useExternalState ? externalState.error ?? null : internalError;
|
|
14642
15184
|
const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
|
|
14643
|
-
const rpc =
|
|
15185
|
+
const rpc = React10.useCallback(async (method, params) => {
|
|
14644
15186
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
14645
15187
|
const res = await fetch(getBundlerUrl(), {
|
|
14646
15188
|
method: "POST",
|
|
@@ -14651,14 +15193,14 @@ var UserOpStatus = ({
|
|
|
14651
15193
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
14652
15194
|
return json.result;
|
|
14653
15195
|
}, []);
|
|
14654
|
-
const extractMempoolInfo =
|
|
15196
|
+
const extractMempoolInfo = React10.useCallback((m) => {
|
|
14655
15197
|
if (!m) return null;
|
|
14656
15198
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
14657
15199
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
14658
15200
|
if (!entryPoint && !sender) return null;
|
|
14659
15201
|
return { entryPoint, sender };
|
|
14660
15202
|
}, []);
|
|
14661
|
-
const tick =
|
|
15203
|
+
const tick = React10.useCallback(async () => {
|
|
14662
15204
|
if (useExternalState) return;
|
|
14663
15205
|
const elapsed = Date.now() - startTimeRef.current;
|
|
14664
15206
|
if (elapsed > maxPollTimeMs) {
|
|
@@ -14702,7 +15244,7 @@ var UserOpStatus = ({
|
|
|
14702
15244
|
setAttempt((x) => x + 1);
|
|
14703
15245
|
}
|
|
14704
15246
|
}, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
|
|
14705
|
-
|
|
15247
|
+
React10.useEffect(() => {
|
|
14706
15248
|
if (useExternalState) return;
|
|
14707
15249
|
console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
|
|
14708
15250
|
startTimeRef.current = Date.now();
|
|
@@ -14714,7 +15256,7 @@ var UserOpStatus = ({
|
|
|
14714
15256
|
setAttempt(0);
|
|
14715
15257
|
setInternalRefreshing(false);
|
|
14716
15258
|
}, [userOpHash, useExternalState]);
|
|
14717
|
-
|
|
15259
|
+
React10.useEffect(() => {
|
|
14718
15260
|
if (useExternalState) {
|
|
14719
15261
|
console.log("[UserOpStatus] Using external state, skipping internal polling");
|
|
14720
15262
|
return;
|
|
@@ -14749,35 +15291,35 @@ var UserOpStatus = ({
|
|
|
14749
15291
|
const stateBadge = () => {
|
|
14750
15292
|
if (receipt) {
|
|
14751
15293
|
const ok = !!receipt.success;
|
|
14752
|
-
return /* @__PURE__ */ (0,
|
|
14753
|
-
ok ? /* @__PURE__ */ (0,
|
|
15294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
15295
|
+
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" }),
|
|
14754
15296
|
ok ? "Included" : "Failed"
|
|
14755
15297
|
] });
|
|
14756
15298
|
}
|
|
14757
15299
|
if (rejected) {
|
|
14758
|
-
return /* @__PURE__ */ (0,
|
|
14759
|
-
/* @__PURE__ */ (0,
|
|
15300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
15301
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-3 w-3" }),
|
|
14760
15302
|
" Rejected by bundler"
|
|
14761
15303
|
] });
|
|
14762
15304
|
}
|
|
14763
15305
|
if (timedOut) {
|
|
14764
|
-
return /* @__PURE__ */ (0,
|
|
14765
|
-
/* @__PURE__ */ (0,
|
|
15306
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "warning", className: "gap-1", children: [
|
|
15307
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-3 w-3" }),
|
|
14766
15308
|
" Timeout - may be rejected"
|
|
14767
15309
|
] });
|
|
14768
15310
|
}
|
|
14769
15311
|
if (mempool) {
|
|
14770
|
-
return /* @__PURE__ */ (0,
|
|
14771
|
-
/* @__PURE__ */ (0,
|
|
15312
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "outline", className: "gap-1", children: [
|
|
15313
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Clock, { className: "h-3 w-3" }),
|
|
14772
15314
|
" Pending in bundler"
|
|
14773
15315
|
] });
|
|
14774
15316
|
}
|
|
14775
|
-
return /* @__PURE__ */ (0,
|
|
14776
|
-
/* @__PURE__ */ (0,
|
|
15317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
15318
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Clock, { className: "h-3 w-3" }),
|
|
14777
15319
|
" Waiting"
|
|
14778
15320
|
] });
|
|
14779
15321
|
};
|
|
14780
|
-
return /* @__PURE__ */ (0,
|
|
15322
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
14781
15323
|
"div",
|
|
14782
15324
|
{
|
|
14783
15325
|
className: cn2(
|
|
@@ -14786,20 +15328,20 @@ var UserOpStatus = ({
|
|
|
14786
15328
|
),
|
|
14787
15329
|
style: { textAlign: "left", listStyle: "none" },
|
|
14788
15330
|
children: [
|
|
14789
|
-
/* @__PURE__ */ (0,
|
|
14790
|
-
/* @__PURE__ */ (0,
|
|
15331
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
15332
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
14791
15333
|
stateBadge(),
|
|
14792
|
-
/* @__PURE__ */ (0,
|
|
15334
|
+
/* @__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." })
|
|
14793
15335
|
] }),
|
|
14794
|
-
/* @__PURE__ */ (0,
|
|
14795
|
-
/* @__PURE__ */ (0,
|
|
14796
|
-
/* @__PURE__ */ (0,
|
|
15336
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
15337
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
15338
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
14797
15339
|
] })
|
|
14798
15340
|
] }),
|
|
14799
|
-
/* @__PURE__ */ (0,
|
|
14800
|
-
/* @__PURE__ */ (0,
|
|
14801
|
-
/* @__PURE__ */ (0,
|
|
14802
|
-
/* @__PURE__ */ (0,
|
|
15341
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
15342
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
15343
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
15344
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14803
15345
|
Button,
|
|
14804
15346
|
{
|
|
14805
15347
|
variant: "ghost",
|
|
@@ -14811,14 +15353,14 @@ var UserOpStatus = ({
|
|
|
14811
15353
|
} catch {
|
|
14812
15354
|
}
|
|
14813
15355
|
},
|
|
14814
|
-
children: /* @__PURE__ */ (0,
|
|
15356
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Copy, { className: "h-3.5 w-3.5" })
|
|
14815
15357
|
}
|
|
14816
15358
|
)
|
|
14817
15359
|
] }),
|
|
14818
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
14819
|
-
/* @__PURE__ */ (0,
|
|
14820
|
-
/* @__PURE__ */ (0,
|
|
14821
|
-
/* @__PURE__ */ (0,
|
|
15360
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
15361
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
15362
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
15363
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14822
15364
|
Button,
|
|
14823
15365
|
{
|
|
14824
15366
|
variant: "ghost",
|
|
@@ -14830,10 +15372,10 @@ var UserOpStatus = ({
|
|
|
14830
15372
|
} catch {
|
|
14831
15373
|
}
|
|
14832
15374
|
},
|
|
14833
|
-
children: /* @__PURE__ */ (0,
|
|
15375
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Copy, { className: "h-3.5 w-3.5" })
|
|
14834
15376
|
}
|
|
14835
15377
|
),
|
|
14836
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
15378
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14837
15379
|
"a",
|
|
14838
15380
|
{
|
|
14839
15381
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -14841,11 +15383,11 @@ var UserOpStatus = ({
|
|
|
14841
15383
|
rel: "noreferrer noopener",
|
|
14842
15384
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
14843
15385
|
title: "Open in explorer",
|
|
14844
|
-
children: /* @__PURE__ */ (0,
|
|
15386
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
14845
15387
|
}
|
|
14846
15388
|
)
|
|
14847
15389
|
] }),
|
|
14848
|
-
receipt && /* @__PURE__ */ (0,
|
|
15390
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
14849
15391
|
"Block ",
|
|
14850
15392
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
14851
15393
|
" \u2022 Gas Used",
|
|
@@ -14854,32 +15396,32 @@ var UserOpStatus = ({
|
|
|
14854
15396
|
" \u2022 Success ",
|
|
14855
15397
|
String(!!receipt.success)
|
|
14856
15398
|
] }),
|
|
14857
|
-
/* @__PURE__ */ (0,
|
|
15399
|
+
/* @__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: [
|
|
14858
15400
|
"\u2022 Polling for ",
|
|
14859
15401
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
14860
15402
|
"s"
|
|
14861
15403
|
] }) }),
|
|
14862
|
-
mempool && /* @__PURE__ */ (0,
|
|
14863
|
-
/* @__PURE__ */ (0,
|
|
15404
|
+
mempool && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
15405
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
14864
15406
|
"Seen by bundler at ",
|
|
14865
|
-
/* @__PURE__ */ (0,
|
|
15407
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
14866
15408
|
] }),
|
|
14867
|
-
/* @__PURE__ */ (0,
|
|
15409
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
14868
15410
|
"sender ",
|
|
14869
|
-
/* @__PURE__ */ (0,
|
|
15411
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
14870
15412
|
] })
|
|
14871
15413
|
] }),
|
|
14872
|
-
error && /* @__PURE__ */ (0,
|
|
14873
|
-
/* @__PURE__ */ (0,
|
|
15414
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15415
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-4 w-4" }),
|
|
14874
15416
|
" ",
|
|
14875
15417
|
error
|
|
14876
15418
|
] }),
|
|
14877
|
-
rejected && /* @__PURE__ */ (0,
|
|
14878
|
-
/* @__PURE__ */ (0,
|
|
15419
|
+
rejected && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15420
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-4 w-4" }),
|
|
14879
15421
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
14880
15422
|
] }),
|
|
14881
|
-
timedOut && /* @__PURE__ */ (0,
|
|
14882
|
-
/* @__PURE__ */ (0,
|
|
15423
|
+
timedOut && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
15424
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.AlertCircle, { className: "h-4 w-4" }),
|
|
14883
15425
|
"Stopped polling after ",
|
|
14884
15426
|
Math.round(maxPollTimeMs / 1e3),
|
|
14885
15427
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -14890,9 +15432,9 @@ var UserOpStatus = ({
|
|
|
14890
15432
|
};
|
|
14891
15433
|
|
|
14892
15434
|
// src/internal/components/Hash.tsx
|
|
14893
|
-
var
|
|
14894
|
-
var
|
|
14895
|
-
var
|
|
15435
|
+
var import_lucide_react54 = require("lucide-react");
|
|
15436
|
+
var React11 = __toESM(require("react"), 1);
|
|
15437
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
14896
15438
|
function toExplorerUrl(kind, value, chain) {
|
|
14897
15439
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
14898
15440
|
if (!base2) return null;
|
|
@@ -14915,12 +15457,12 @@ var Hash = ({
|
|
|
14915
15457
|
}) => {
|
|
14916
15458
|
const value = hash || "";
|
|
14917
15459
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
14918
|
-
const [copied, setCopied] =
|
|
14919
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
14920
|
-
return /* @__PURE__ */ (0,
|
|
14921
|
-
label && /* @__PURE__ */ (0,
|
|
14922
|
-
/* @__PURE__ */ (0,
|
|
14923
|
-
showCopy && /* @__PURE__ */ (0,
|
|
15460
|
+
const [copied, setCopied] = React11.useState(false);
|
|
15461
|
+
if (!value) return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
15462
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
15463
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
15464
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
15465
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
14924
15466
|
Button,
|
|
14925
15467
|
{
|
|
14926
15468
|
variant: "ghost",
|
|
@@ -14934,10 +15476,10 @@ var Hash = ({
|
|
|
14934
15476
|
} catch {
|
|
14935
15477
|
}
|
|
14936
15478
|
},
|
|
14937
|
-
children: /* @__PURE__ */ (0,
|
|
15479
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4" })
|
|
14938
15480
|
}
|
|
14939
15481
|
),
|
|
14940
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15482
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
14941
15483
|
"a",
|
|
14942
15484
|
{
|
|
14943
15485
|
href: explorer,
|
|
@@ -14945,7 +15487,7 @@ var Hash = ({
|
|
|
14945
15487
|
rel: "noreferrer noopener",
|
|
14946
15488
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14947
15489
|
title: "Open in explorer",
|
|
14948
|
-
children: /* @__PURE__ */ (0,
|
|
15490
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react54.ExternalLink, { className: "h-4 w-4" })
|
|
14949
15491
|
}
|
|
14950
15492
|
)
|
|
14951
15493
|
] });
|
|
@@ -14954,7 +15496,7 @@ var Hash = ({
|
|
|
14954
15496
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
14955
15497
|
var import_react66 = require("react");
|
|
14956
15498
|
init_base();
|
|
14957
|
-
var
|
|
15499
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
14958
15500
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
14959
15501
|
const [transactions, setTransactions] = (0, import_react66.useState)([]);
|
|
14960
15502
|
const [loading, setLoading] = (0, import_react66.useState)(true);
|
|
@@ -15005,31 +15547,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15005
15547
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
15006
15548
|
};
|
|
15007
15549
|
if (loading) {
|
|
15008
|
-
return /* @__PURE__ */ (0,
|
|
15009
|
-
/* @__PURE__ */ (0,
|
|
15010
|
-
/* @__PURE__ */ (0,
|
|
15550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "p-4 text-center", children: [
|
|
15551
|
+
/* @__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" }),
|
|
15552
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
15011
15553
|
] });
|
|
15012
15554
|
}
|
|
15013
15555
|
if (error) {
|
|
15014
|
-
return /* @__PURE__ */ (0,
|
|
15015
|
-
/* @__PURE__ */ (0,
|
|
15016
|
-
/* @__PURE__ */ (0,
|
|
15556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "p-4 text-center", children: [
|
|
15557
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-red-600 text-sm", children: error }),
|
|
15558
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
15017
15559
|
] });
|
|
15018
15560
|
}
|
|
15019
15561
|
if (transactions.length === 0) {
|
|
15020
|
-
return /* @__PURE__ */ (0,
|
|
15562
|
+
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" }) });
|
|
15021
15563
|
}
|
|
15022
|
-
return /* @__PURE__ */ (0,
|
|
15564
|
+
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)(
|
|
15023
15565
|
"div",
|
|
15024
15566
|
{
|
|
15025
15567
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
15026
15568
|
onClick: () => openTransaction(tx.hash),
|
|
15027
15569
|
children: [
|
|
15028
|
-
/* @__PURE__ */ (0,
|
|
15029
|
-
/* @__PURE__ */ (0,
|
|
15030
|
-
/* @__PURE__ */ (0,
|
|
15031
|
-
/* @__PURE__ */ (0,
|
|
15032
|
-
/* @__PURE__ */ (0,
|
|
15570
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex justify-between items-start mb-2", children: [
|
|
15571
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex-1", children: [
|
|
15572
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
15573
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
15574
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
15033
15575
|
"span",
|
|
15034
15576
|
{
|
|
15035
15577
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -15037,40 +15579,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15037
15579
|
}
|
|
15038
15580
|
)
|
|
15039
15581
|
] }),
|
|
15040
|
-
/* @__PURE__ */ (0,
|
|
15041
|
-
/* @__PURE__ */ (0,
|
|
15042
|
-
/* @__PURE__ */ (0,
|
|
15043
|
-
/* @__PURE__ */ (0,
|
|
15582
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "text-sm space-y-1", children: [
|
|
15583
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15584
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "From:" }),
|
|
15585
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
15044
15586
|
formatAddress3(tx.from.hash),
|
|
15045
|
-
tx.from.is_contract && /* @__PURE__ */ (0,
|
|
15587
|
+
tx.from.is_contract && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15046
15588
|
] })
|
|
15047
15589
|
] }),
|
|
15048
|
-
/* @__PURE__ */ (0,
|
|
15049
|
-
/* @__PURE__ */ (0,
|
|
15050
|
-
/* @__PURE__ */ (0,
|
|
15590
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15591
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "To:" }),
|
|
15592
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
15051
15593
|
formatAddress3(tx.to.hash),
|
|
15052
|
-
tx.to.is_contract && /* @__PURE__ */ (0,
|
|
15594
|
+
tx.to.is_contract && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
15053
15595
|
] })
|
|
15054
15596
|
] }),
|
|
15055
|
-
/* @__PURE__ */ (0,
|
|
15056
|
-
/* @__PURE__ */ (0,
|
|
15057
|
-
/* @__PURE__ */ (0,
|
|
15597
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { children: [
|
|
15598
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-gray-600", children: "Value:" }),
|
|
15599
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("span", { className: "font-semibold ml-1", children: [
|
|
15058
15600
|
formatValue3(tx.value),
|
|
15059
15601
|
" LUMIA"
|
|
15060
15602
|
] })
|
|
15061
15603
|
] })
|
|
15062
15604
|
] })
|
|
15063
15605
|
] }),
|
|
15064
|
-
/* @__PURE__ */ (0,
|
|
15065
|
-
/* @__PURE__ */ (0,
|
|
15066
|
-
/* @__PURE__ */ (0,
|
|
15606
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "text-right text-xs text-gray-500", children: [
|
|
15607
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { children: formatDate3(tx.timestamp) }),
|
|
15608
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "mt-1", children: [
|
|
15067
15609
|
"Gas: ",
|
|
15068
15610
|
parseInt(tx.gas_used).toLocaleString()
|
|
15069
15611
|
] }),
|
|
15070
|
-
tx.method && /* @__PURE__ */ (0,
|
|
15612
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
15071
15613
|
] })
|
|
15072
15614
|
] }),
|
|
15073
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */ (0,
|
|
15615
|
+
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)) })
|
|
15074
15616
|
]
|
|
15075
15617
|
},
|
|
15076
15618
|
tx.hash
|
|
@@ -15078,7 +15620,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15078
15620
|
};
|
|
15079
15621
|
|
|
15080
15622
|
// src/hooks/useUserOpStatus.ts
|
|
15081
|
-
var
|
|
15623
|
+
var React13 = __toESM(require("react"), 1);
|
|
15082
15624
|
init_base();
|
|
15083
15625
|
function useUserOpStatus(options = {}) {
|
|
15084
15626
|
const {
|
|
@@ -15090,16 +15632,16 @@ function useUserOpStatus(options = {}) {
|
|
|
15090
15632
|
onReceipt,
|
|
15091
15633
|
onTxHash
|
|
15092
15634
|
} = options;
|
|
15093
|
-
const [state, setState] =
|
|
15094
|
-
const [receipt, setReceipt] =
|
|
15095
|
-
const [mempool, setMempool] =
|
|
15096
|
-
const [txHash, setTxHash] =
|
|
15097
|
-
const [error, setError] =
|
|
15098
|
-
const [isPolling, setIsPolling] =
|
|
15099
|
-
const intervalRef =
|
|
15100
|
-
const startTimeRef =
|
|
15101
|
-
const prevStateRef =
|
|
15102
|
-
const rpc =
|
|
15635
|
+
const [state, setState] = React13.useState("waiting");
|
|
15636
|
+
const [receipt, setReceipt] = React13.useState(null);
|
|
15637
|
+
const [mempool, setMempool] = React13.useState(null);
|
|
15638
|
+
const [txHash, setTxHash] = React13.useState(null);
|
|
15639
|
+
const [error, setError] = React13.useState(null);
|
|
15640
|
+
const [isPolling, setIsPolling] = React13.useState(false);
|
|
15641
|
+
const intervalRef = React13.useRef(null);
|
|
15642
|
+
const startTimeRef = React13.useRef(Date.now());
|
|
15643
|
+
const prevStateRef = React13.useRef("waiting");
|
|
15644
|
+
const rpc = React13.useCallback(async (method, params) => {
|
|
15103
15645
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
15104
15646
|
const res = await fetch(getBundlerUrl(), {
|
|
15105
15647
|
method: "POST",
|
|
@@ -15110,21 +15652,21 @@ function useUserOpStatus(options = {}) {
|
|
|
15110
15652
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
15111
15653
|
return json.result;
|
|
15112
15654
|
}, []);
|
|
15113
|
-
const extractMempoolInfo =
|
|
15655
|
+
const extractMempoolInfo = React13.useCallback((m) => {
|
|
15114
15656
|
if (!m) return null;
|
|
15115
15657
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
15116
15658
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
15117
15659
|
if (!entryPoint && !sender) return null;
|
|
15118
15660
|
return { entryPoint, sender };
|
|
15119
15661
|
}, []);
|
|
15120
|
-
const updateState =
|
|
15662
|
+
const updateState = React13.useCallback((newState) => {
|
|
15121
15663
|
setState(newState);
|
|
15122
15664
|
if (prevStateRef.current !== newState) {
|
|
15123
15665
|
prevStateRef.current = newState;
|
|
15124
15666
|
onStateChange?.(newState);
|
|
15125
15667
|
}
|
|
15126
15668
|
}, [onStateChange]);
|
|
15127
|
-
const tick =
|
|
15669
|
+
const tick = React13.useCallback(async () => {
|
|
15128
15670
|
if (!userOpHash || !enabled) return;
|
|
15129
15671
|
if (receipt) {
|
|
15130
15672
|
console.log("[useUserOpStatus] Already have receipt, skipping tick");
|
|
@@ -15197,7 +15739,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15197
15739
|
onTxHash,
|
|
15198
15740
|
onReceipt
|
|
15199
15741
|
]);
|
|
15200
|
-
|
|
15742
|
+
React13.useEffect(() => {
|
|
15201
15743
|
if (!userOpHash || !enabled) return;
|
|
15202
15744
|
console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
|
|
15203
15745
|
startTimeRef.current = Date.now();
|
|
@@ -15209,7 +15751,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15209
15751
|
setError(null);
|
|
15210
15752
|
setIsPolling(false);
|
|
15211
15753
|
}, [userOpHash, enabled]);
|
|
15212
|
-
|
|
15754
|
+
React13.useEffect(() => {
|
|
15213
15755
|
if (!userOpHash || !enabled) {
|
|
15214
15756
|
console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
|
|
15215
15757
|
return;
|
|
@@ -15245,7 +15787,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15245
15787
|
}
|
|
15246
15788
|
};
|
|
15247
15789
|
}, [userOpHash, enabled, pollMs]);
|
|
15248
|
-
const refresh =
|
|
15790
|
+
const refresh = React13.useCallback(async () => {
|
|
15249
15791
|
await tick();
|
|
15250
15792
|
}, [tick]);
|
|
15251
15793
|
return {
|
|
@@ -15304,13 +15846,13 @@ init_profile();
|
|
|
15304
15846
|
init_errors();
|
|
15305
15847
|
|
|
15306
15848
|
// src/modules/transactions.ts
|
|
15307
|
-
var
|
|
15849
|
+
var import_wagmi9 = require("wagmi");
|
|
15308
15850
|
var import_viem11 = require("viem");
|
|
15309
15851
|
init_base();
|
|
15310
15852
|
function useTransactions() {
|
|
15311
|
-
const publicClient2 = (0,
|
|
15312
|
-
const { data: walletClient } = (0,
|
|
15313
|
-
const { address } = (0,
|
|
15853
|
+
const publicClient2 = (0, import_wagmi9.usePublicClient)({ chainId: lumiaBeam.id });
|
|
15854
|
+
const { data: walletClient } = (0, import_wagmi9.useWalletClient)();
|
|
15855
|
+
const { address } = (0, import_wagmi9.useAccount)();
|
|
15314
15856
|
const sendTransaction = async (params) => {
|
|
15315
15857
|
if (!walletClient) {
|
|
15316
15858
|
throw new Error("Wallet not connected");
|
|
@@ -15366,10 +15908,171 @@ function useTransactions() {
|
|
|
15366
15908
|
};
|
|
15367
15909
|
}
|
|
15368
15910
|
|
|
15369
|
-
// src/modules/
|
|
15911
|
+
// src/modules/assets.ts
|
|
15912
|
+
var import_react68 = __toESM(require("react"), 1);
|
|
15913
|
+
var import_wagmi10 = require("wagmi");
|
|
15370
15914
|
var import_viem12 = require("viem");
|
|
15371
15915
|
init_base();
|
|
15372
|
-
var
|
|
15916
|
+
var COMMON_TOKENS = [
|
|
15917
|
+
// Add real token addresses here when available
|
|
15918
|
+
// {
|
|
15919
|
+
// address: '0x....',
|
|
15920
|
+
// name: 'USD Coin',
|
|
15921
|
+
// symbol: 'USDC',
|
|
15922
|
+
// decimals: 6,
|
|
15923
|
+
// logo: 'https://...'
|
|
15924
|
+
// }
|
|
15925
|
+
];
|
|
15926
|
+
function useAssets(address) {
|
|
15927
|
+
const { data: nativeBalance, isLoading: nativeBalanceLoading, refetch: refetchNativeBalance } = (0, import_wagmi10.useBalance)({
|
|
15928
|
+
address,
|
|
15929
|
+
chainId: lumiaBeam.id,
|
|
15930
|
+
query: {
|
|
15931
|
+
enabled: !!address
|
|
15932
|
+
}
|
|
15933
|
+
});
|
|
15934
|
+
const tokenContracts = COMMON_TOKENS.map((token) => ({
|
|
15935
|
+
address: token.address,
|
|
15936
|
+
abi: import_viem12.erc20Abi,
|
|
15937
|
+
functionName: "balanceOf",
|
|
15938
|
+
args: [address],
|
|
15939
|
+
chainId: lumiaBeam.id
|
|
15940
|
+
}));
|
|
15941
|
+
const readContractsResult = (0, import_wagmi10.useReadContracts)({
|
|
15942
|
+
contracts: tokenContracts,
|
|
15943
|
+
query: {
|
|
15944
|
+
enabled: !!address && COMMON_TOKENS.length > 0
|
|
15945
|
+
}
|
|
15946
|
+
});
|
|
15947
|
+
const { data: tokenBalances, isLoading: tokenBalancesLoading, refetch: refetchTokenBalances } = readContractsResult;
|
|
15948
|
+
const getAllAssets = () => {
|
|
15949
|
+
const assets = [];
|
|
15950
|
+
if (nativeBalance) {
|
|
15951
|
+
assets.push({
|
|
15952
|
+
type: "native",
|
|
15953
|
+
name: "Lumia",
|
|
15954
|
+
symbol: "LUMIA",
|
|
15955
|
+
balance: nativeBalance.value.toString(),
|
|
15956
|
+
formattedBalance: parseFloat(nativeBalance.formatted).toFixed(4),
|
|
15957
|
+
decimals: 18
|
|
15958
|
+
});
|
|
15959
|
+
}
|
|
15960
|
+
if (tokenBalances && COMMON_TOKENS.length > 0) {
|
|
15961
|
+
tokenBalances.forEach((balance, index) => {
|
|
15962
|
+
const token = COMMON_TOKENS[index];
|
|
15963
|
+
if (balance.status === "success" && balance.result) {
|
|
15964
|
+
const balanceValue = balance.result;
|
|
15965
|
+
const formattedBalance = (0, import_viem12.formatUnits)(balanceValue, token.decimals);
|
|
15966
|
+
assets.push({
|
|
15967
|
+
type: "erc20",
|
|
15968
|
+
address: token.address,
|
|
15969
|
+
name: token.name,
|
|
15970
|
+
symbol: token.symbol,
|
|
15971
|
+
balance: balanceValue.toString(),
|
|
15972
|
+
formattedBalance: parseFloat(formattedBalance).toFixed(4),
|
|
15973
|
+
decimals: token.decimals,
|
|
15974
|
+
logo: token.logo
|
|
15975
|
+
});
|
|
15976
|
+
}
|
|
15977
|
+
});
|
|
15978
|
+
}
|
|
15979
|
+
return assets;
|
|
15980
|
+
};
|
|
15981
|
+
const getTokenBalance = (tokenAddress) => {
|
|
15982
|
+
const tokenIndex = COMMON_TOKENS.findIndex(
|
|
15983
|
+
(token2) => token2.address.toLowerCase() === tokenAddress.toLowerCase()
|
|
15984
|
+
);
|
|
15985
|
+
if (tokenIndex === -1 || !tokenBalances?.[tokenIndex]) {
|
|
15986
|
+
return null;
|
|
15987
|
+
}
|
|
15988
|
+
const balance = tokenBalances[tokenIndex];
|
|
15989
|
+
const token = COMMON_TOKENS[tokenIndex];
|
|
15990
|
+
if (balance.status === "success" && balance.result) {
|
|
15991
|
+
const balanceValue = balance.result;
|
|
15992
|
+
const formattedBalance = (0, import_viem12.formatUnits)(balanceValue, token.decimals);
|
|
15993
|
+
return {
|
|
15994
|
+
address: token.address,
|
|
15995
|
+
name: token.name,
|
|
15996
|
+
symbol: token.symbol,
|
|
15997
|
+
decimals: token.decimals,
|
|
15998
|
+
balance: balanceValue.toString(),
|
|
15999
|
+
formattedBalance: parseFloat(formattedBalance).toFixed(4),
|
|
16000
|
+
logo: token.logo
|
|
16001
|
+
};
|
|
16002
|
+
}
|
|
16003
|
+
return null;
|
|
16004
|
+
};
|
|
16005
|
+
const refreshBalances = async () => {
|
|
16006
|
+
await Promise.all([
|
|
16007
|
+
refetchNativeBalance(),
|
|
16008
|
+
refetchTokenBalances()
|
|
16009
|
+
]);
|
|
16010
|
+
};
|
|
16011
|
+
return {
|
|
16012
|
+
nativeBalance,
|
|
16013
|
+
tokenBalances,
|
|
16014
|
+
assets: getAllAssets(),
|
|
16015
|
+
getTokenBalance,
|
|
16016
|
+
refreshBalances,
|
|
16017
|
+
isLoading: nativeBalanceLoading || tokenBalancesLoading,
|
|
16018
|
+
isConnected: !!address
|
|
16019
|
+
};
|
|
16020
|
+
}
|
|
16021
|
+
function useTokenInfo(tokenAddress) {
|
|
16022
|
+
const readContractsResult = (0, import_wagmi10.useReadContracts)({
|
|
16023
|
+
contracts: [
|
|
16024
|
+
{ address: tokenAddress, abi: import_viem12.erc20Abi, functionName: "name", chainId: lumiaBeam.id },
|
|
16025
|
+
{ address: tokenAddress, abi: import_viem12.erc20Abi, functionName: "symbol", chainId: lumiaBeam.id },
|
|
16026
|
+
{ address: tokenAddress, abi: import_viem12.erc20Abi, functionName: "decimals", chainId: lumiaBeam.id }
|
|
16027
|
+
]
|
|
16028
|
+
});
|
|
16029
|
+
const { data: tokenData, isLoading } = readContractsResult;
|
|
16030
|
+
if (!tokenData || isLoading) {
|
|
16031
|
+
return { isLoading, tokenInfo: null };
|
|
16032
|
+
}
|
|
16033
|
+
const [nameResult, symbolResult, decimalsResult] = tokenData;
|
|
16034
|
+
if (nameResult.status === "success" && symbolResult.status === "success" && decimalsResult.status === "success") {
|
|
16035
|
+
return {
|
|
16036
|
+
isLoading: false,
|
|
16037
|
+
tokenInfo: {
|
|
16038
|
+
name: nameResult.result,
|
|
16039
|
+
symbol: symbolResult.result,
|
|
16040
|
+
decimals: decimalsResult.result,
|
|
16041
|
+
address: tokenAddress
|
|
16042
|
+
}
|
|
16043
|
+
};
|
|
16044
|
+
}
|
|
16045
|
+
return { isLoading: false, tokenInfo: null };
|
|
16046
|
+
}
|
|
16047
|
+
function useTokenBalance(tokenAddress, userAddress) {
|
|
16048
|
+
const { data: balance, isLoading, refetch } = (0, import_wagmi10.useReadContract)({
|
|
16049
|
+
address: tokenAddress,
|
|
16050
|
+
abi: import_viem12.erc20Abi,
|
|
16051
|
+
functionName: "balanceOf",
|
|
16052
|
+
args: userAddress ? [userAddress] : void 0,
|
|
16053
|
+
chainId: lumiaBeam.id,
|
|
16054
|
+
query: {
|
|
16055
|
+
enabled: !!userAddress
|
|
16056
|
+
}
|
|
16057
|
+
});
|
|
16058
|
+
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
16059
|
+
const formattedBalance = import_react68.default.useMemo(() => {
|
|
16060
|
+
if (!balance || !tokenInfo) return "0";
|
|
16061
|
+
return (0, import_viem12.formatUnits)(balance, tokenInfo.decimals);
|
|
16062
|
+
}, [balance, tokenInfo]);
|
|
16063
|
+
return {
|
|
16064
|
+
balance,
|
|
16065
|
+
formattedBalance,
|
|
16066
|
+
tokenInfo,
|
|
16067
|
+
isLoading,
|
|
16068
|
+
refetch
|
|
16069
|
+
};
|
|
16070
|
+
}
|
|
16071
|
+
|
|
16072
|
+
// src/modules/smartAccountTransactions.ts
|
|
16073
|
+
var import_viem13 = require("viem");
|
|
16074
|
+
init_base();
|
|
16075
|
+
var USER_OP_EVENT = (0, import_viem13.parseAbiItem)(
|
|
15373
16076
|
"event UserOperationEvent(bytes32 indexed userOpHash, address indexed sender, address indexed paymaster, uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGasUsed)"
|
|
15374
16077
|
);
|
|
15375
16078
|
function useSmartAccountTransactions() {
|
|
@@ -15465,6 +16168,7 @@ init_iframe_manager();
|
|
|
15465
16168
|
signTypedData,
|
|
15466
16169
|
updateUserProfile,
|
|
15467
16170
|
useAssets,
|
|
16171
|
+
useErc3643Compliance,
|
|
15468
16172
|
useLogout,
|
|
15469
16173
|
useLumiaPassportAccountSession,
|
|
15470
16174
|
useLumiaPassportAddress,
|