@lumiapassport/ui-kit 1.15.2 → 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 +1258 -595
- 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 +1368 -694
- 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,206 +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,
|
|
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)(
|
|
12505
12920
|
"img",
|
|
12506
12921
|
{
|
|
12507
12922
|
src: nicknameData.avatarSvg,
|
|
12508
12923
|
alt: nicknameData.handle,
|
|
12509
12924
|
className: "w-10 h-10 rounded-full object-cover flex-shrink-0"
|
|
12510
12925
|
}
|
|
12511
|
-
) : /* @__PURE__ */ (0,
|
|
12512
|
-
/* @__PURE__ */ (0,
|
|
12513
|
-
/* @__PURE__ */ (0,
|
|
12514
|
-
/* @__PURE__ */ (0,
|
|
12515
|
-
/* @__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)}` })
|
|
12516
12931
|
] }),
|
|
12517
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12518
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12519
|
-
/* @__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: [
|
|
12520
12935
|
"Fingerprint: ",
|
|
12521
12936
|
nicknameData.fingerprint
|
|
12522
12937
|
] }),
|
|
12523
|
-
/* @__PURE__ */ (0,
|
|
12938
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
12524
12939
|
] })
|
|
12525
12940
|
] })
|
|
12526
12941
|
] }),
|
|
12527
|
-
isNicknameInput && isFrozen && !isResolving && /* @__PURE__ */ (0,
|
|
12528
|
-
/* @__PURE__ */ (0,
|
|
12529
|
-
/* @__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." })
|
|
12530
12945
|
] }),
|
|
12531
|
-
isNicknameInput && isWalletNotSetup && !isResolving && /* @__PURE__ */ (0,
|
|
12532
|
-
/* @__PURE__ */ (0,
|
|
12533
|
-
/* @__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" })
|
|
12534
12949
|
] }),
|
|
12535
|
-
isNicknameInput && isNotFound && !isResolving && /* @__PURE__ */ (0,
|
|
12536
|
-
/* @__PURE__ */ (0,
|
|
12537
|
-
/* @__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" })
|
|
12538
12953
|
] })
|
|
12539
12954
|
] }),
|
|
12540
|
-
/* @__PURE__ */ (0,
|
|
12541
|
-
/* @__PURE__ */ (0,
|
|
12542
|
-
/* @__PURE__ */ (0,
|
|
12543
|
-
/* @__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: [
|
|
12544
12959
|
"Balance: ",
|
|
12545
|
-
balance
|
|
12546
|
-
"
|
|
12960
|
+
formatBalance(balance),
|
|
12961
|
+
" ",
|
|
12962
|
+
selectedAsset.symbol
|
|
12547
12963
|
] })
|
|
12548
12964
|
] }),
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
{
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
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
|
+
] })
|
|
12561
13011
|
] }),
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
|
|
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 })
|
|
12565
13030
|
] }),
|
|
12566
|
-
/* @__PURE__ */ (0,
|
|
13031
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: handleSend, disabled: isLoading || isComplianceLoading, className: "w-full", size: "large", children: "Continue" })
|
|
12567
13032
|
] }),
|
|
12568
|
-
txStep === "confirm" && effectiveAddress && /* @__PURE__ */ (0,
|
|
12569
|
-
isNicknameInput && isFrozen && /* @__PURE__ */ (0,
|
|
12570
|
-
/* @__PURE__ */ (0,
|
|
12571
|
-
/* @__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." })
|
|
13037
|
+
] }),
|
|
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" })
|
|
12572
13041
|
] }),
|
|
12573
|
-
/* @__PURE__ */ (0,
|
|
12574
|
-
/* @__PURE__ */ (0,
|
|
12575
|
-
nicknameData.avatarSvg ? /* @__PURE__ */ (0,
|
|
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)(
|
|
12576
13045
|
"img",
|
|
12577
13046
|
{
|
|
12578
13047
|
src: nicknameData.avatarSvg,
|
|
12579
13048
|
alt: nicknameData.handle,
|
|
12580
13049
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
12581
13050
|
}
|
|
12582
|
-
) : /* @__PURE__ */ (0,
|
|
12583
|
-
/* @__PURE__ */ (0,
|
|
12584
|
-
/* @__PURE__ */ (0,
|
|
12585
|
-
nicknameData.fingerprint && /* @__PURE__ */ (0,
|
|
12586
|
-
isFingerprintVerified ? /* @__PURE__ */ (0,
|
|
12587
|
-
/* @__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: [
|
|
12588
13057
|
"Fingerprint: ",
|
|
12589
13058
|
nicknameData.fingerprint
|
|
12590
13059
|
] }),
|
|
12591
|
-
isFingerprintVerified && /* @__PURE__ */ (0,
|
|
12592
|
-
/* @__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" })
|
|
12593
13062
|
] }),
|
|
12594
|
-
/* @__PURE__ */ (0,
|
|
13063
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "font-mono text-xs text-[var(--l-pass-fg-muted)]", children: [
|
|
12595
13064
|
"Address: ",
|
|
12596
13065
|
`${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-6)}`
|
|
12597
13066
|
] })
|
|
12598
13067
|
] })
|
|
12599
13068
|
] }),
|
|
12600
|
-
/* @__PURE__ */ (0,
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
/* @__PURE__ */ (0,
|
|
12604
|
-
|
|
12605
|
-
"
|
|
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
|
+
] })
|
|
12606
13091
|
] })
|
|
12607
|
-
|
|
12608
|
-
/* @__PURE__ */ (0,
|
|
12609
|
-
/* @__PURE__ */ (0,
|
|
12610
|
-
/* @__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" })
|
|
12611
13096
|
] })
|
|
12612
13097
|
] })
|
|
12613
|
-
] }) : /* @__PURE__ */ (0,
|
|
12614
|
-
/* @__PURE__ */ (0,
|
|
12615
|
-
/* @__PURE__ */ (0,
|
|
12616
|
-
/* @__PURE__ */ (0,
|
|
12617
|
-
/* @__PURE__ */ (0,
|
|
12618
|
-
/* @__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)}` })
|
|
12619
13104
|
] }),
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
/* @__PURE__ */ (0,
|
|
12623
|
-
|
|
12624
|
-
"
|
|
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
|
+
] })
|
|
12625
13126
|
] })
|
|
12626
|
-
|
|
12627
|
-
/* @__PURE__ */ (0,
|
|
12628
|
-
/* @__PURE__ */ (0,
|
|
12629
|
-
/* @__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" })
|
|
12630
13131
|
] })
|
|
12631
13132
|
] })
|
|
12632
13133
|
] }) }),
|
|
12633
|
-
/* @__PURE__ */ (0,
|
|
12634
|
-
/* @__PURE__ */ (0,
|
|
12635
|
-
/* @__PURE__ */ (0,
|
|
12636
|
-
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" }),
|
|
12637
13138
|
"Confirm"
|
|
12638
13139
|
] })
|
|
12639
13140
|
] })
|
|
12640
13141
|
] }),
|
|
12641
|
-
txStep === "pending" && /* @__PURE__ */ (0,
|
|
12642
|
-
/* @__PURE__ */ (0,
|
|
12643
|
-
/* @__PURE__ */ (0,
|
|
12644
|
-
/* @__PURE__ */ (0,
|
|
12645
|
-
/* @__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" })
|
|
12646
13147
|
] })
|
|
12647
13148
|
] }),
|
|
12648
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ (0,
|
|
12649
|
-
/* @__PURE__ */ (0,
|
|
12650
|
-
/* @__PURE__ */ (0,
|
|
12651
|
-
/* @__PURE__ */ (0,
|
|
12652
|
-
/* @__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" })
|
|
12653
13154
|
] }),
|
|
12654
|
-
/* @__PURE__ */ (0,
|
|
13155
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
12655
13156
|
] })
|
|
12656
13157
|
] });
|
|
12657
13158
|
}
|
|
12658
13159
|
|
|
12659
13160
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
12660
|
-
var
|
|
13161
|
+
var import_lucide_react44 = require("lucide-react");
|
|
12661
13162
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
12662
13163
|
var import_react51 = require("react");
|
|
12663
13164
|
init_clients();
|
|
12664
|
-
var
|
|
13165
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
12665
13166
|
function ReceiveLumiaMenu() {
|
|
12666
13167
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12667
13168
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -12693,7 +13194,7 @@ function ReceiveLumiaMenu() {
|
|
|
12693
13194
|
console.error("Failed to copy address:", error);
|
|
12694
13195
|
}
|
|
12695
13196
|
}, [address]);
|
|
12696
|
-
return /* @__PURE__ */ (0,
|
|
13197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
12697
13198
|
"div",
|
|
12698
13199
|
{
|
|
12699
13200
|
style: {
|
|
@@ -12702,43 +13203,43 @@ function ReceiveLumiaMenu() {
|
|
|
12702
13203
|
},
|
|
12703
13204
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12704
13205
|
children: [
|
|
12705
|
-
/* @__PURE__ */ (0,
|
|
12706
|
-
/* @__PURE__ */ (0,
|
|
12707
|
-
/* @__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" })
|
|
12708
13209
|
] }),
|
|
12709
|
-
/* @__PURE__ */ (0,
|
|
12710
|
-
/* @__PURE__ */ (0,
|
|
12711
|
-
/* @__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" })
|
|
12712
13213
|
] }),
|
|
12713
|
-
/* @__PURE__ */ (0,
|
|
12714
|
-
/* @__PURE__ */ (0,
|
|
12715
|
-
/* @__PURE__ */ (0,
|
|
12716
|
-
/* @__PURE__ */ (0,
|
|
12717
|
-
/* @__PURE__ */ (0,
|
|
12718
|
-
/* @__PURE__ */ (0,
|
|
12719
|
-
] }) : /* @__PURE__ */ (0,
|
|
12720
|
-
/* @__PURE__ */ (0,
|
|
12721
|
-
/* @__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" })
|
|
12722
13223
|
] }) })
|
|
12723
13224
|
] }),
|
|
12724
|
-
/* @__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." }) })
|
|
12725
13226
|
]
|
|
12726
13227
|
}
|
|
12727
13228
|
);
|
|
12728
13229
|
}
|
|
12729
13230
|
|
|
12730
13231
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12731
|
-
var
|
|
13232
|
+
var import_lucide_react46 = require("lucide-react");
|
|
12732
13233
|
var import_react52 = require("react");
|
|
12733
13234
|
|
|
12734
13235
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12735
|
-
var
|
|
13236
|
+
var import_lucide_react45 = require("lucide-react");
|
|
12736
13237
|
|
|
12737
13238
|
// src/internal/assets/KycIcon.tsx
|
|
12738
|
-
var
|
|
13239
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
12739
13240
|
function KycIcon(props) {
|
|
12740
13241
|
const { width = "24", height = "24", ...rest } = props;
|
|
12741
|
-
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)(
|
|
12742
13243
|
"path",
|
|
12743
13244
|
{
|
|
12744
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",
|
|
@@ -12749,16 +13250,16 @@ function KycIcon(props) {
|
|
|
12749
13250
|
|
|
12750
13251
|
// src/internal/components/SettingsMenu/constants.ts
|
|
12751
13252
|
var NAV_BUTTONS = [
|
|
12752
|
-
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon:
|
|
13253
|
+
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react45.ArrowLeftRight },
|
|
12753
13254
|
{ id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
|
|
12754
|
-
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon:
|
|
12755
|
-
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon:
|
|
12756
|
-
{ id: "security" /* SECURITY */, name: "Security", Icon:
|
|
12757
|
-
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon:
|
|
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 }
|
|
12758
13259
|
];
|
|
12759
13260
|
|
|
12760
13261
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
12761
|
-
var
|
|
13262
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
12762
13263
|
function SettingsMenu() {
|
|
12763
13264
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12764
13265
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -12769,7 +13270,7 @@ function SettingsMenu() {
|
|
|
12769
13270
|
useProvidersList();
|
|
12770
13271
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
12771
13272
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
12772
|
-
return /* @__PURE__ */ (0,
|
|
13273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
12773
13274
|
"div",
|
|
12774
13275
|
{
|
|
12775
13276
|
style: {
|
|
@@ -12778,11 +13279,11 @@ function SettingsMenu() {
|
|
|
12778
13279
|
},
|
|
12779
13280
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
12780
13281
|
children: [
|
|
12781
|
-
/* @__PURE__ */ (0,
|
|
12782
|
-
/* @__PURE__ */ (0,
|
|
12783
|
-
/* @__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" })
|
|
12784
13285
|
] }),
|
|
12785
|
-
/* @__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)(
|
|
12786
13287
|
Button,
|
|
12787
13288
|
{
|
|
12788
13289
|
variant: "outline",
|
|
@@ -12795,8 +13296,8 @@ function SettingsMenu() {
|
|
|
12795
13296
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
12796
13297
|
),
|
|
12797
13298
|
children: [
|
|
12798
|
-
/* @__PURE__ */ (0,
|
|
12799
|
-
/* @__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 })
|
|
12800
13301
|
]
|
|
12801
13302
|
},
|
|
12802
13303
|
id
|
|
@@ -12807,35 +13308,35 @@ function SettingsMenu() {
|
|
|
12807
13308
|
}
|
|
12808
13309
|
|
|
12809
13310
|
// src/internal/components/TermsOfService.tsx
|
|
12810
|
-
var
|
|
12811
|
-
var
|
|
13311
|
+
var import_lucide_react47 = require("lucide-react");
|
|
13312
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
12812
13313
|
function TermsOfService() {
|
|
12813
13314
|
const address = useLumiaPassportSession((st) => st.address);
|
|
12814
13315
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
12815
|
-
return /* @__PURE__ */ (0,
|
|
12816
|
-
/* @__PURE__ */ (0,
|
|
12817
|
-
/* @__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)(
|
|
12818
13319
|
Button,
|
|
12819
13320
|
{
|
|
12820
13321
|
variant: "ghost",
|
|
12821
13322
|
size: "icon",
|
|
12822
13323
|
title: "Back",
|
|
12823
13324
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
12824
|
-
children: /* @__PURE__ */ (0,
|
|
13325
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react47.ArrowLeft, { className: "h-4 w-4" })
|
|
12825
13326
|
}
|
|
12826
13327
|
),
|
|
12827
|
-
/* @__PURE__ */ (0,
|
|
13328
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
12828
13329
|
] }),
|
|
12829
|
-
/* @__PURE__ */ (0,
|
|
12830
|
-
/* @__PURE__ */ (0,
|
|
12831
|
-
/* @__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..." })
|
|
12832
13333
|
] })
|
|
12833
13334
|
] });
|
|
12834
13335
|
}
|
|
12835
13336
|
|
|
12836
13337
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
12837
13338
|
var import_react_query35 = require("@tanstack/react-query");
|
|
12838
|
-
var
|
|
13339
|
+
var import_lucide_react49 = require("lucide-react");
|
|
12839
13340
|
var import_react53 = require("react");
|
|
12840
13341
|
|
|
12841
13342
|
// src/internal/components/TransactionsMenu/api.ts
|
|
@@ -13092,7 +13593,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13092
13593
|
});
|
|
13093
13594
|
});
|
|
13094
13595
|
tokenTransfersData.forEach((transfer, index) => {
|
|
13095
|
-
const rawValue = transfer.value ?? "0";
|
|
13596
|
+
const rawValue = transfer.total?.value ?? transfer.value ?? "0";
|
|
13096
13597
|
const amount = toBigInt(rawValue);
|
|
13097
13598
|
if (amount === 0n) {
|
|
13098
13599
|
return;
|
|
@@ -13108,7 +13609,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13108
13609
|
}
|
|
13109
13610
|
const tsInput = transfer.timestamp;
|
|
13110
13611
|
const timestampMs = typeof tsInput === "number" ? tsInput > 1e12 ? tsInput : tsInput * 1e3 : tsInput ? new Date(tsInput).getTime() : now;
|
|
13111
|
-
const decimalsRaw = transfer.token?.decimals;
|
|
13612
|
+
const decimalsRaw = transfer.total?.decimals ?? transfer.token?.decimals;
|
|
13112
13613
|
const decimals = typeof decimalsRaw === "string" ? parseInt(decimalsRaw, 10) : typeof decimalsRaw === "number" ? decimalsRaw : 18;
|
|
13113
13614
|
const assetSymbol = transfer.token?.symbol || "Token";
|
|
13114
13615
|
const tokenItem = {
|
|
@@ -13160,7 +13661,7 @@ async function getTransactionsListQuery(address) {
|
|
|
13160
13661
|
}
|
|
13161
13662
|
|
|
13162
13663
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13163
|
-
var
|
|
13664
|
+
var import_lucide_react48 = require("lucide-react");
|
|
13164
13665
|
|
|
13165
13666
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
13166
13667
|
init_base();
|
|
@@ -13207,22 +13708,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
13207
13708
|
};
|
|
13208
13709
|
|
|
13209
13710
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
13210
|
-
var
|
|
13711
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
13211
13712
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
13212
13713
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
13213
13714
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
13214
|
-
return /* @__PURE__ */ (0,
|
|
13215
|
-
/* @__PURE__ */ (0,
|
|
13216
|
-
/* @__PURE__ */ (0,
|
|
13217
|
-
/* @__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: [
|
|
13218
13719
|
formatValue2(internal.value, internalDecimals),
|
|
13219
13720
|
" ",
|
|
13220
13721
|
internalSymbol
|
|
13221
13722
|
] })
|
|
13222
13723
|
] }),
|
|
13223
|
-
/* @__PURE__ */ (0,
|
|
13224
|
-
/* @__PURE__ */ (0,
|
|
13225
|
-
/* @__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) })
|
|
13226
13727
|
] })
|
|
13227
13728
|
] });
|
|
13228
13729
|
}
|
|
@@ -13233,7 +13734,7 @@ function TransactionsGroup(props) {
|
|
|
13233
13734
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
13234
13735
|
const assetDecimals = parent.decimals ?? 18;
|
|
13235
13736
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
13236
|
-
return /* @__PURE__ */ (0,
|
|
13737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13237
13738
|
"div",
|
|
13238
13739
|
{
|
|
13239
13740
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -13243,28 +13744,28 @@ function TransactionsGroup(props) {
|
|
|
13243
13744
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
13244
13745
|
),
|
|
13245
13746
|
children: [
|
|
13246
|
-
/* @__PURE__ */ (0,
|
|
13247
|
-
/* @__PURE__ */ (0,
|
|
13248
|
-
parent.direction === "in" ? /* @__PURE__ */ (0,
|
|
13249
|
-
/* @__PURE__ */ (0,
|
|
13250
|
-
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, {})
|
|
13251
13752
|
] }),
|
|
13252
|
-
/* @__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) })
|
|
13253
13754
|
] }),
|
|
13254
|
-
/* @__PURE__ */ (0,
|
|
13255
|
-
/* @__PURE__ */ (0,
|
|
13256
|
-
/* @__PURE__ */ (0,
|
|
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: [
|
|
13257
13758
|
formatValue2(parent.value, assetDecimals),
|
|
13258
13759
|
" ",
|
|
13259
13760
|
assetSymbol
|
|
13260
13761
|
] }),
|
|
13261
|
-
/* @__PURE__ */ (0,
|
|
13762
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "text-[10px] font-mono text-[var(--l-pass-fg-muted)]", children: [
|
|
13262
13763
|
isIncoming ? "From: " : "To: ",
|
|
13263
13764
|
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
13264
13765
|
] })
|
|
13265
13766
|
] }),
|
|
13266
|
-
/* @__PURE__ */ (0,
|
|
13267
|
-
/* @__PURE__ */ (0,
|
|
13767
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-center gap-0", children: [
|
|
13768
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13268
13769
|
Button,
|
|
13269
13770
|
{
|
|
13270
13771
|
variant: "ghost",
|
|
@@ -13273,10 +13774,10 @@ function TransactionsGroup(props) {
|
|
|
13273
13774
|
onClick: (e) => {
|
|
13274
13775
|
e.stopPropagation();
|
|
13275
13776
|
},
|
|
13276
|
-
children: /* @__PURE__ */ (0,
|
|
13777
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react48.Copy, { className: "w-4 h-4" })
|
|
13277
13778
|
}
|
|
13278
13779
|
),
|
|
13279
|
-
/* @__PURE__ */ (0,
|
|
13780
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13280
13781
|
Button,
|
|
13281
13782
|
{
|
|
13282
13783
|
variant: "ghost",
|
|
@@ -13285,24 +13786,24 @@ function TransactionsGroup(props) {
|
|
|
13285
13786
|
onClick: (e) => {
|
|
13286
13787
|
e.stopPropagation();
|
|
13287
13788
|
},
|
|
13288
|
-
children: /* @__PURE__ */ (0,
|
|
13789
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LumiaIcon, { className: "w-4 h-4" })
|
|
13289
13790
|
}
|
|
13290
13791
|
)
|
|
13291
13792
|
] })
|
|
13292
13793
|
] }),
|
|
13293
|
-
internalsToRender.length > 0 && /* @__PURE__ */ (0,
|
|
13294
|
-
/* @__PURE__ */ (0,
|
|
13295
|
-
/* @__PURE__ */ (0,
|
|
13296
|
-
/* @__PURE__ */ (0,
|
|
13297
|
-
/* @__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" })
|
|
13298
13799
|
] }),
|
|
13299
|
-
/* @__PURE__ */ (0,
|
|
13800
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13300
13801
|
"div",
|
|
13301
13802
|
{
|
|
13302
13803
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
13303
13804
|
onClick: (event) => event.stopPropagation(),
|
|
13304
13805
|
children: [
|
|
13305
|
-
/* @__PURE__ */ (0,
|
|
13806
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13306
13807
|
Button,
|
|
13307
13808
|
{
|
|
13308
13809
|
variant: "ghost",
|
|
@@ -13310,16 +13811,16 @@ function TransactionsGroup(props) {
|
|
|
13310
13811
|
className: "w-full justify-between",
|
|
13311
13812
|
onClick: () => onToggleExpanded(group.id),
|
|
13312
13813
|
children: [
|
|
13313
|
-
/* @__PURE__ */ (0,
|
|
13814
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
|
|
13314
13815
|
"View internal calls (",
|
|
13315
13816
|
internalsToRender.length,
|
|
13316
13817
|
")"
|
|
13317
13818
|
] }),
|
|
13318
|
-
/* @__PURE__ */ (0,
|
|
13819
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: expanded ? "Hide" : "Show" })
|
|
13319
13820
|
]
|
|
13320
13821
|
}
|
|
13321
13822
|
),
|
|
13322
|
-
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)(
|
|
13323
13824
|
InternalTransaction,
|
|
13324
13825
|
{
|
|
13325
13826
|
internal,
|
|
@@ -13338,7 +13839,7 @@ function TransactionsGroup(props) {
|
|
|
13338
13839
|
}
|
|
13339
13840
|
|
|
13340
13841
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
13341
|
-
var
|
|
13842
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
13342
13843
|
function TransactionsMenu() {
|
|
13343
13844
|
const qc = (0, import_react_query35.useQueryClient)();
|
|
13344
13845
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -13362,7 +13863,7 @@ function TransactionsMenu() {
|
|
|
13362
13863
|
[qc, address]
|
|
13363
13864
|
);
|
|
13364
13865
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
13365
|
-
return /* @__PURE__ */ (0,
|
|
13866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13366
13867
|
"div",
|
|
13367
13868
|
{
|
|
13368
13869
|
style: {
|
|
@@ -13370,11 +13871,11 @@ function TransactionsMenu() {
|
|
|
13370
13871
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
13371
13872
|
},
|
|
13372
13873
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
13373
|
-
children: /* @__PURE__ */ (0,
|
|
13374
|
-
/* @__PURE__ */ (0,
|
|
13375
|
-
/* @__PURE__ */ (0,
|
|
13376
|
-
/* @__PURE__ */ (0,
|
|
13377
|
-
/* @__PURE__ */ (0,
|
|
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)(
|
|
13378
13879
|
Button,
|
|
13379
13880
|
{
|
|
13380
13881
|
variant: "ghost",
|
|
@@ -13382,17 +13883,17 @@ function TransactionsMenu() {
|
|
|
13382
13883
|
onClick: refreshTxHistory,
|
|
13383
13884
|
disabled: isTxHistoryFetching,
|
|
13384
13885
|
title: "Refresh transactions",
|
|
13385
|
-
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" })
|
|
13386
13887
|
}
|
|
13387
13888
|
)
|
|
13388
13889
|
] }),
|
|
13389
|
-
isTxHistoryLoading && /* @__PURE__ */ (0,
|
|
13390
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0,
|
|
13391
|
-
/* @__PURE__ */ (0,
|
|
13392
|
-
/* @__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 })
|
|
13393
13894
|
] }),
|
|
13394
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0,
|
|
13395
|
-
!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)(
|
|
13396
13897
|
TransactionsGroup,
|
|
13397
13898
|
{
|
|
13398
13899
|
group,
|
|
@@ -13507,7 +14008,7 @@ var PAGE_MAP = {
|
|
|
13507
14008
|
};
|
|
13508
14009
|
|
|
13509
14010
|
// src/internal/hooks/usePageMapper.tsx
|
|
13510
|
-
var
|
|
14011
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
13511
14012
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
13512
14013
|
function usePageMapper() {
|
|
13513
14014
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -13535,7 +14036,7 @@ function usePageMapper() {
|
|
|
13535
14036
|
const PageContentComponent = pageItem.component;
|
|
13536
14037
|
setDialogTitle(pageItem.title);
|
|
13537
14038
|
setDialogDescription(pageItem.description);
|
|
13538
|
-
setDialogContent(/* @__PURE__ */ (0,
|
|
14039
|
+
setDialogContent(/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(PageContentComponent, {}));
|
|
13539
14040
|
setIsDialogOpen(true);
|
|
13540
14041
|
},
|
|
13541
14042
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -13603,7 +14104,7 @@ function useWalletStatus() {
|
|
|
13603
14104
|
}
|
|
13604
14105
|
|
|
13605
14106
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
13606
|
-
var
|
|
14107
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
13607
14108
|
function LumiaPassportDialog() {
|
|
13608
14109
|
const config = useLumiaPassportConfig().config;
|
|
13609
14110
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -13622,7 +14123,7 @@ function LumiaPassportDialog() {
|
|
|
13622
14123
|
useListenIframeAuthEvents();
|
|
13623
14124
|
useWalletStatus();
|
|
13624
14125
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
13625
|
-
return /* @__PURE__ */ (0,
|
|
14126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
13626
14127
|
Dialog,
|
|
13627
14128
|
{
|
|
13628
14129
|
open: isDialogOpen,
|
|
@@ -13630,11 +14131,11 @@ function LumiaPassportDialog() {
|
|
|
13630
14131
|
if (isDialogForced) return;
|
|
13631
14132
|
if (!open) setPage(null);
|
|
13632
14133
|
},
|
|
13633
|
-
children: /* @__PURE__ */ (0,
|
|
13634
|
-
/* @__PURE__ */ (0,
|
|
13635
|
-
/* @__PURE__ */ (0,
|
|
13636
|
-
!isHeaderHidden && /* @__PURE__ */ (0,
|
|
13637
|
-
/* @__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)(
|
|
13638
14139
|
import_framer_motion3.motion.div,
|
|
13639
14140
|
{
|
|
13640
14141
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -13646,7 +14147,7 @@ function LumiaPassportDialog() {
|
|
|
13646
14147
|
},
|
|
13647
14148
|
page || "empty"
|
|
13648
14149
|
) }),
|
|
13649
|
-
/* @__PURE__ */ (0,
|
|
14150
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Footer, {})
|
|
13650
14151
|
] })
|
|
13651
14152
|
}
|
|
13652
14153
|
);
|
|
@@ -13698,16 +14199,16 @@ var TssManagerWithRef = import_react58.default.forwardRef((props, ref) => {
|
|
|
13698
14199
|
var import_rainbowkit = require("@rainbow-me/rainbowkit");
|
|
13699
14200
|
var import_react_query36 = require("@tanstack/react-query");
|
|
13700
14201
|
var import_react59 = __toESM(require("react"), 1);
|
|
13701
|
-
var
|
|
14202
|
+
var import_wagmi4 = require("wagmi");
|
|
13702
14203
|
init_wallet();
|
|
13703
14204
|
function WalletConnectHandler() {
|
|
13704
14205
|
const qc = (0, import_react_query36.useQueryClient)();
|
|
13705
14206
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
13706
14207
|
const passportWalletAddress = useLumiaPassportSession((st) => st.address);
|
|
13707
|
-
const { address: walletAddress, isConnected, chain, connector } = (0,
|
|
14208
|
+
const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
|
|
13708
14209
|
const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
|
|
13709
|
-
const { disconnect } = (0,
|
|
13710
|
-
const { signMessageAsync } = (0,
|
|
14210
|
+
const { disconnect } = (0, import_wagmi4.useDisconnect)();
|
|
14211
|
+
const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
|
|
13711
14212
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
13712
14213
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
13713
14214
|
const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
|
|
@@ -13849,7 +14350,7 @@ function WalletConnectHandler() {
|
|
|
13849
14350
|
}
|
|
13850
14351
|
|
|
13851
14352
|
// src/context/LumiaPassportSessionContext.tsx
|
|
13852
|
-
var
|
|
14353
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
13853
14354
|
var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
13854
14355
|
isLoading: false,
|
|
13855
14356
|
usePaymaster: true,
|
|
@@ -13875,17 +14376,17 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
|
13875
14376
|
}));
|
|
13876
14377
|
function LumiaPassportSessionProvider({ children }) {
|
|
13877
14378
|
const config = useLumiaPassportConfig().config;
|
|
13878
|
-
return /* @__PURE__ */ (0,
|
|
14379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_react60.Fragment, { children: [
|
|
13879
14380
|
children,
|
|
13880
|
-
config.current?.wallet?.enabled && /* @__PURE__ */ (0,
|
|
13881
|
-
/* @__PURE__ */ (0,
|
|
13882
|
-
/* @__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)(
|
|
13883
14384
|
TssManagerWithRef,
|
|
13884
14385
|
{
|
|
13885
14386
|
mpcPin: void 0
|
|
13886
14387
|
}
|
|
13887
14388
|
),
|
|
13888
|
-
/* @__PURE__ */ (0,
|
|
14389
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LumiaPassportDialog, {})
|
|
13889
14390
|
] });
|
|
13890
14391
|
}
|
|
13891
14392
|
|
|
@@ -13901,15 +14402,15 @@ function notifyNoProjetctId(projectId) {
|
|
|
13901
14402
|
}
|
|
13902
14403
|
|
|
13903
14404
|
// src/context/WagmiContext.tsx
|
|
13904
|
-
var
|
|
14405
|
+
var import_wagmi6 = require("wagmi");
|
|
13905
14406
|
|
|
13906
14407
|
// src/config/wagmi.ts
|
|
13907
|
-
var
|
|
14408
|
+
var import_wagmi5 = require("wagmi");
|
|
13908
14409
|
init_base();
|
|
13909
|
-
var wagmiConfig = (0,
|
|
14410
|
+
var wagmiConfig = (0, import_wagmi5.createConfig)({
|
|
13910
14411
|
chains: [lumiaBeam],
|
|
13911
14412
|
transports: {
|
|
13912
|
-
[lumiaBeam.id]: (0,
|
|
14413
|
+
[lumiaBeam.id]: (0, import_wagmi5.http)(lumiaBeam.rpcUrls.default.http[0], {
|
|
13913
14414
|
timeout: 1e4,
|
|
13914
14415
|
retryCount: 0,
|
|
13915
14416
|
batch: false,
|
|
@@ -13920,13 +14421,13 @@ var wagmiConfig = (0, import_wagmi6.createConfig)({
|
|
|
13920
14421
|
});
|
|
13921
14422
|
|
|
13922
14423
|
// src/context/WagmiContext.tsx
|
|
13923
|
-
var
|
|
14424
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
13924
14425
|
var LumiaWagmiProvider = ({ children }) => {
|
|
13925
|
-
return /* @__PURE__ */ (0,
|
|
14426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_wagmi6.WagmiProvider, { config: wagmiConfig, children });
|
|
13926
14427
|
};
|
|
13927
14428
|
|
|
13928
14429
|
// src/context/LumiaPassportContext.tsx
|
|
13929
|
-
var
|
|
14430
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
13930
14431
|
var LumiaPassportContext = (0, import_react61.createContext)(void 0);
|
|
13931
14432
|
function LumiaPassportProvider(props) {
|
|
13932
14433
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
@@ -14015,7 +14516,7 @@ function LumiaPassportProvider(props) {
|
|
|
14015
14516
|
}
|
|
14016
14517
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
14017
14518
|
const contextValue = (0, import_react61.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
14018
|
-
return /* @__PURE__ */ (0,
|
|
14519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
14019
14520
|
}
|
|
14020
14521
|
var useLumiaPassportConfig = () => {
|
|
14021
14522
|
const ctx = (0, import_react61.useContext)(LumiaPassportContext);
|
|
@@ -14025,11 +14526,11 @@ var useLumiaPassportConfig = () => {
|
|
|
14025
14526
|
|
|
14026
14527
|
// src/components/ConnectWalletButton.tsx
|
|
14027
14528
|
var import_react_query37 = require("@tanstack/react-query");
|
|
14028
|
-
var
|
|
14529
|
+
var import_lucide_react50 = require("lucide-react");
|
|
14029
14530
|
var import_react62 = require("react");
|
|
14030
14531
|
init_auth();
|
|
14031
14532
|
init_profile();
|
|
14032
|
-
var
|
|
14533
|
+
var import_jsx_runtime77 = (
|
|
14033
14534
|
/** external Buttons can be provided */
|
|
14034
14535
|
require("react/jsx-runtime")
|
|
14035
14536
|
);
|
|
@@ -14068,18 +14569,18 @@ function ConnectWalletButton(props) {
|
|
|
14068
14569
|
return { server, local, backup: hasServerVault };
|
|
14069
14570
|
}, [session, address, hasServerVault]);
|
|
14070
14571
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
14071
|
-
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)(
|
|
14072
14573
|
ConnectButton,
|
|
14073
14574
|
{
|
|
14074
14575
|
type: "button",
|
|
14075
14576
|
disabled: isConnecting,
|
|
14076
14577
|
onClick: () => setPage("auth" /* AUTH */),
|
|
14077
14578
|
children: [
|
|
14078
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14579
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14079
14580
|
connectButtonLabel
|
|
14080
14581
|
]
|
|
14081
14582
|
}
|
|
14082
|
-
) : /* @__PURE__ */ (0,
|
|
14583
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14083
14584
|
Button,
|
|
14084
14585
|
{
|
|
14085
14586
|
type: "button",
|
|
@@ -14096,11 +14597,11 @@ function ConnectWalletButton(props) {
|
|
|
14096
14597
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
14097
14598
|
),
|
|
14098
14599
|
children: [
|
|
14099
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
14600
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react50.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
14100
14601
|
connectButtonLabel.toUpperCase()
|
|
14101
14602
|
]
|
|
14102
14603
|
}
|
|
14103
|
-
) }) : /* @__PURE__ */ (0,
|
|
14604
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14104
14605
|
"button",
|
|
14105
14606
|
{
|
|
14106
14607
|
type: "button",
|
|
@@ -14113,23 +14614,23 @@ function ConnectWalletButton(props) {
|
|
|
14113
14614
|
"rounded-[var(--l-pass-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
14114
14615
|
),
|
|
14115
14616
|
children: [
|
|
14116
|
-
/* @__PURE__ */ (0,
|
|
14117
|
-
/* @__PURE__ */ (0,
|
|
14118
|
-
/* @__PURE__ */ (0,
|
|
14119
|
-
isProfileLoading ? /* @__PURE__ */ (0,
|
|
14120
|
-
/* @__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, {})
|
|
14121
14622
|
] }),
|
|
14122
|
-
/* @__PURE__ */ (0,
|
|
14623
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(BalanceView, {})
|
|
14123
14624
|
] }),
|
|
14124
|
-
/* @__PURE__ */ (0,
|
|
14125
|
-
/* @__PURE__ */ (0,
|
|
14126
|
-
/* @__PURE__ */ (0,
|
|
14127
|
-
|
|
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,
|
|
14128
14629
|
{
|
|
14129
14630
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14130
14631
|
}
|
|
14131
14632
|
),
|
|
14132
|
-
/* @__PURE__ */ (0,
|
|
14633
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14133
14634
|
"div",
|
|
14134
14635
|
{
|
|
14135
14636
|
className: cn(
|
|
@@ -14144,14 +14645,14 @@ function ConnectWalletButton(props) {
|
|
|
14144
14645
|
}
|
|
14145
14646
|
)
|
|
14146
14647
|
] }),
|
|
14147
|
-
/* @__PURE__ */ (0,
|
|
14148
|
-
/* @__PURE__ */ (0,
|
|
14149
|
-
|
|
14648
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14649
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14650
|
+
import_lucide_react50.Laptop,
|
|
14150
14651
|
{
|
|
14151
14652
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14152
14653
|
}
|
|
14153
14654
|
),
|
|
14154
|
-
/* @__PURE__ */ (0,
|
|
14655
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14155
14656
|
"div",
|
|
14156
14657
|
{
|
|
14157
14658
|
className: cn(
|
|
@@ -14166,14 +14667,14 @@ function ConnectWalletButton(props) {
|
|
|
14166
14667
|
}
|
|
14167
14668
|
)
|
|
14168
14669
|
] }),
|
|
14169
|
-
/* @__PURE__ */ (0,
|
|
14170
|
-
/* @__PURE__ */ (0,
|
|
14171
|
-
|
|
14670
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "group relative", children: [
|
|
14671
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14672
|
+
import_lucide_react50.Shield,
|
|
14172
14673
|
{
|
|
14173
14674
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
14174
14675
|
}
|
|
14175
14676
|
),
|
|
14176
|
-
/* @__PURE__ */ (0,
|
|
14677
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
14177
14678
|
"div",
|
|
14178
14679
|
{
|
|
14179
14680
|
className: cn(
|
|
@@ -14189,7 +14690,7 @@ function ConnectWalletButton(props) {
|
|
|
14189
14690
|
)
|
|
14190
14691
|
] })
|
|
14191
14692
|
] }),
|
|
14192
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
14693
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
14193
14694
|
"div",
|
|
14194
14695
|
{
|
|
14195
14696
|
className: cn(
|
|
@@ -14282,24 +14783,24 @@ function useLumiaPassportColorMode() {
|
|
|
14282
14783
|
}
|
|
14283
14784
|
|
|
14284
14785
|
// src/components/ThemeToggle.tsx
|
|
14285
|
-
var
|
|
14286
|
-
var
|
|
14786
|
+
var import_lucide_react51 = require("lucide-react");
|
|
14787
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
14287
14788
|
function ThemeToggle(props) {
|
|
14288
14789
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
14289
|
-
return /* @__PURE__ */ (0,
|
|
14790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14290
14791
|
"div",
|
|
14291
14792
|
{
|
|
14292
14793
|
className: "lumia-scope",
|
|
14293
14794
|
"data-lumia-passport-mode": colorMode,
|
|
14294
14795
|
style: { width: "fit-content", height: "fit-content" },
|
|
14295
|
-
children: /* @__PURE__ */ (0,
|
|
14796
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
14296
14797
|
Button,
|
|
14297
14798
|
{
|
|
14298
14799
|
...props,
|
|
14299
14800
|
variant: "ghost",
|
|
14300
14801
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
14301
14802
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
14302
|
-
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" })
|
|
14303
14804
|
}
|
|
14304
14805
|
)
|
|
14305
14806
|
}
|
|
@@ -14309,7 +14810,7 @@ function ThemeToggle(props) {
|
|
|
14309
14810
|
// src/context/RainbowKitContext.tsx
|
|
14310
14811
|
var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
14311
14812
|
var import_react65 = require("react");
|
|
14312
|
-
var
|
|
14813
|
+
var import_wagmi8 = require("wagmi");
|
|
14313
14814
|
|
|
14314
14815
|
// src/config/rainbowkit.ts
|
|
14315
14816
|
var import_rainbowkit2 = require("@rainbow-me/rainbowkit");
|
|
@@ -14536,7 +15037,7 @@ var rainbowTheme = {
|
|
|
14536
15037
|
|
|
14537
15038
|
// src/context/RainbowKitContext.tsx
|
|
14538
15039
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
14539
|
-
var
|
|
15040
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
14540
15041
|
function LumiaRainbowKitProvider({ children }) {
|
|
14541
15042
|
const config = useLumiaPassportConfig().config;
|
|
14542
15043
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -14555,13 +15056,13 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
14555
15056
|
},
|
|
14556
15057
|
[colorMode]
|
|
14557
15058
|
);
|
|
14558
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0,
|
|
14559
|
-
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 }) });
|
|
14560
15061
|
}
|
|
14561
15062
|
|
|
14562
15063
|
// src/internal/components/UserOpStatus.tsx
|
|
14563
|
-
var
|
|
14564
|
-
var
|
|
15064
|
+
var import_lucide_react53 = require("lucide-react");
|
|
15065
|
+
var React10 = __toESM(require("react"), 1);
|
|
14565
15066
|
init_base();
|
|
14566
15067
|
|
|
14567
15068
|
// src/internal/utils/cn.ts
|
|
@@ -14572,9 +15073,9 @@ function cn2(...inputs) {
|
|
|
14572
15073
|
}
|
|
14573
15074
|
|
|
14574
15075
|
// src/internal/components/Address.tsx
|
|
14575
|
-
var
|
|
14576
|
-
var
|
|
14577
|
-
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");
|
|
14578
15079
|
function toExplorerAddressUrl(address, chain) {
|
|
14579
15080
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
14580
15081
|
if (!base2) return null;
|
|
@@ -14595,12 +15096,12 @@ var Address = ({
|
|
|
14595
15096
|
}) => {
|
|
14596
15097
|
const addr = address || "";
|
|
14597
15098
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
14598
|
-
const [copied, setCopied] =
|
|
14599
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
14600
|
-
return /* @__PURE__ */ (0,
|
|
14601
|
-
label && /* @__PURE__ */ (0,
|
|
14602
|
-
/* @__PURE__ */ (0,
|
|
14603
|
-
showCopy && /* @__PURE__ */ (0,
|
|
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)(
|
|
14604
15105
|
Button,
|
|
14605
15106
|
{
|
|
14606
15107
|
variant: "ghost",
|
|
@@ -14614,10 +15115,10 @@ var Address = ({
|
|
|
14614
15115
|
} catch {
|
|
14615
15116
|
}
|
|
14616
15117
|
},
|
|
14617
|
-
children: /* @__PURE__ */ (0,
|
|
15118
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react52.Copy, { className: "h-4 w-4" })
|
|
14618
15119
|
}
|
|
14619
15120
|
),
|
|
14620
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15121
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
14621
15122
|
"a",
|
|
14622
15123
|
{
|
|
14623
15124
|
href: explorer,
|
|
@@ -14625,7 +15126,7 @@ var Address = ({
|
|
|
14625
15126
|
rel: "noreferrer noopener",
|
|
14626
15127
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14627
15128
|
title: "Open in explorer",
|
|
14628
|
-
children: /* @__PURE__ */ (0,
|
|
15129
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react52.ExternalLink, { className: "h-4 w-4" })
|
|
14629
15130
|
}
|
|
14630
15131
|
)
|
|
14631
15132
|
] });
|
|
@@ -14633,7 +15134,7 @@ var Address = ({
|
|
|
14633
15134
|
|
|
14634
15135
|
// src/internal/components/ui/badge.tsx
|
|
14635
15136
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
14636
|
-
var
|
|
15137
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
14637
15138
|
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
14638
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",
|
|
14639
15140
|
{
|
|
@@ -14653,11 +15154,11 @@ var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
|
14653
15154
|
}
|
|
14654
15155
|
);
|
|
14655
15156
|
function Badge({ className, variant, ...props }) {
|
|
14656
|
-
return /* @__PURE__ */ (0,
|
|
15157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
14657
15158
|
}
|
|
14658
15159
|
|
|
14659
15160
|
// src/internal/components/UserOpStatus.tsx
|
|
14660
|
-
var
|
|
15161
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
14661
15162
|
var UserOpStatus = ({
|
|
14662
15163
|
userOpHash,
|
|
14663
15164
|
chain,
|
|
@@ -14668,20 +15169,20 @@ var UserOpStatus = ({
|
|
|
14668
15169
|
externalState
|
|
14669
15170
|
}) => {
|
|
14670
15171
|
const useExternalState = !!externalState;
|
|
14671
|
-
const [internalReceipt, setInternalReceipt] =
|
|
14672
|
-
const [internalMempool, setInternalMempool] =
|
|
14673
|
-
const [internalError, setInternalError] =
|
|
14674
|
-
const [attempt, setAttempt] =
|
|
14675
|
-
const [internalRefreshing, setInternalRefreshing] =
|
|
14676
|
-
const [timedOut, setTimedOut] =
|
|
14677
|
-
const [rejected, setRejected] =
|
|
14678
|
-
const intervalRef =
|
|
14679
|
-
const startTimeRef =
|
|
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());
|
|
14680
15181
|
const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
|
|
14681
15182
|
const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
|
|
14682
15183
|
const error = useExternalState ? externalState.error ?? null : internalError;
|
|
14683
15184
|
const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
|
|
14684
|
-
const rpc =
|
|
15185
|
+
const rpc = React10.useCallback(async (method, params) => {
|
|
14685
15186
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
14686
15187
|
const res = await fetch(getBundlerUrl(), {
|
|
14687
15188
|
method: "POST",
|
|
@@ -14692,14 +15193,14 @@ var UserOpStatus = ({
|
|
|
14692
15193
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
14693
15194
|
return json.result;
|
|
14694
15195
|
}, []);
|
|
14695
|
-
const extractMempoolInfo =
|
|
15196
|
+
const extractMempoolInfo = React10.useCallback((m) => {
|
|
14696
15197
|
if (!m) return null;
|
|
14697
15198
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
14698
15199
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
14699
15200
|
if (!entryPoint && !sender) return null;
|
|
14700
15201
|
return { entryPoint, sender };
|
|
14701
15202
|
}, []);
|
|
14702
|
-
const tick =
|
|
15203
|
+
const tick = React10.useCallback(async () => {
|
|
14703
15204
|
if (useExternalState) return;
|
|
14704
15205
|
const elapsed = Date.now() - startTimeRef.current;
|
|
14705
15206
|
if (elapsed > maxPollTimeMs) {
|
|
@@ -14743,7 +15244,7 @@ var UserOpStatus = ({
|
|
|
14743
15244
|
setAttempt((x) => x + 1);
|
|
14744
15245
|
}
|
|
14745
15246
|
}, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
|
|
14746
|
-
|
|
15247
|
+
React10.useEffect(() => {
|
|
14747
15248
|
if (useExternalState) return;
|
|
14748
15249
|
console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
|
|
14749
15250
|
startTimeRef.current = Date.now();
|
|
@@ -14755,7 +15256,7 @@ var UserOpStatus = ({
|
|
|
14755
15256
|
setAttempt(0);
|
|
14756
15257
|
setInternalRefreshing(false);
|
|
14757
15258
|
}, [userOpHash, useExternalState]);
|
|
14758
|
-
|
|
15259
|
+
React10.useEffect(() => {
|
|
14759
15260
|
if (useExternalState) {
|
|
14760
15261
|
console.log("[UserOpStatus] Using external state, skipping internal polling");
|
|
14761
15262
|
return;
|
|
@@ -14790,35 +15291,35 @@ var UserOpStatus = ({
|
|
|
14790
15291
|
const stateBadge = () => {
|
|
14791
15292
|
if (receipt) {
|
|
14792
15293
|
const ok = !!receipt.success;
|
|
14793
|
-
return /* @__PURE__ */ (0,
|
|
14794
|
-
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" }),
|
|
14795
15296
|
ok ? "Included" : "Failed"
|
|
14796
15297
|
] });
|
|
14797
15298
|
}
|
|
14798
15299
|
if (rejected) {
|
|
14799
|
-
return /* @__PURE__ */ (0,
|
|
14800
|
-
/* @__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" }),
|
|
14801
15302
|
" Rejected by bundler"
|
|
14802
15303
|
] });
|
|
14803
15304
|
}
|
|
14804
15305
|
if (timedOut) {
|
|
14805
|
-
return /* @__PURE__ */ (0,
|
|
14806
|
-
/* @__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" }),
|
|
14807
15308
|
" Timeout - may be rejected"
|
|
14808
15309
|
] });
|
|
14809
15310
|
}
|
|
14810
15311
|
if (mempool) {
|
|
14811
|
-
return /* @__PURE__ */ (0,
|
|
14812
|
-
/* @__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" }),
|
|
14813
15314
|
" Pending in bundler"
|
|
14814
15315
|
] });
|
|
14815
15316
|
}
|
|
14816
|
-
return /* @__PURE__ */ (0,
|
|
14817
|
-
/* @__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" }),
|
|
14818
15319
|
" Waiting"
|
|
14819
15320
|
] });
|
|
14820
15321
|
};
|
|
14821
|
-
return /* @__PURE__ */ (0,
|
|
15322
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
14822
15323
|
"div",
|
|
14823
15324
|
{
|
|
14824
15325
|
className: cn2(
|
|
@@ -14827,20 +15328,20 @@ var UserOpStatus = ({
|
|
|
14827
15328
|
),
|
|
14828
15329
|
style: { textAlign: "left", listStyle: "none" },
|
|
14829
15330
|
children: [
|
|
14830
|
-
/* @__PURE__ */ (0,
|
|
14831
|
-
/* @__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: [
|
|
14832
15333
|
stateBadge(),
|
|
14833
|
-
/* @__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." })
|
|
14834
15335
|
] }),
|
|
14835
|
-
/* @__PURE__ */ (0,
|
|
14836
|
-
/* @__PURE__ */ (0,
|
|
14837
|
-
/* @__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" })
|
|
14838
15339
|
] })
|
|
14839
15340
|
] }),
|
|
14840
|
-
/* @__PURE__ */ (0,
|
|
14841
|
-
/* @__PURE__ */ (0,
|
|
14842
|
-
/* @__PURE__ */ (0,
|
|
14843
|
-
/* @__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)(
|
|
14844
15345
|
Button,
|
|
14845
15346
|
{
|
|
14846
15347
|
variant: "ghost",
|
|
@@ -14852,14 +15353,14 @@ var UserOpStatus = ({
|
|
|
14852
15353
|
} catch {
|
|
14853
15354
|
}
|
|
14854
15355
|
},
|
|
14855
|
-
children: /* @__PURE__ */ (0,
|
|
15356
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Copy, { className: "h-3.5 w-3.5" })
|
|
14856
15357
|
}
|
|
14857
15358
|
)
|
|
14858
15359
|
] }),
|
|
14859
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
14860
|
-
/* @__PURE__ */ (0,
|
|
14861
|
-
/* @__PURE__ */ (0,
|
|
14862
|
-
/* @__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)(
|
|
14863
15364
|
Button,
|
|
14864
15365
|
{
|
|
14865
15366
|
variant: "ghost",
|
|
@@ -14871,10 +15372,10 @@ var UserOpStatus = ({
|
|
|
14871
15372
|
} catch {
|
|
14872
15373
|
}
|
|
14873
15374
|
},
|
|
14874
|
-
children: /* @__PURE__ */ (0,
|
|
15375
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.Copy, { className: "h-3.5 w-3.5" })
|
|
14875
15376
|
}
|
|
14876
15377
|
),
|
|
14877
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
15378
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
14878
15379
|
"a",
|
|
14879
15380
|
{
|
|
14880
15381
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -14882,11 +15383,11 @@ var UserOpStatus = ({
|
|
|
14882
15383
|
rel: "noreferrer noopener",
|
|
14883
15384
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
14884
15385
|
title: "Open in explorer",
|
|
14885
|
-
children: /* @__PURE__ */ (0,
|
|
15386
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react53.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
14886
15387
|
}
|
|
14887
15388
|
)
|
|
14888
15389
|
] }),
|
|
14889
|
-
receipt && /* @__PURE__ */ (0,
|
|
15390
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
14890
15391
|
"Block ",
|
|
14891
15392
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
14892
15393
|
" \u2022 Gas Used",
|
|
@@ -14895,32 +15396,32 @@ var UserOpStatus = ({
|
|
|
14895
15396
|
" \u2022 Success ",
|
|
14896
15397
|
String(!!receipt.success)
|
|
14897
15398
|
] }),
|
|
14898
|
-
/* @__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: [
|
|
14899
15400
|
"\u2022 Polling for ",
|
|
14900
15401
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
14901
15402
|
"s"
|
|
14902
15403
|
] }) }),
|
|
14903
|
-
mempool && /* @__PURE__ */ (0,
|
|
14904
|
-
/* @__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: [
|
|
14905
15406
|
"Seen by bundler at ",
|
|
14906
|
-
/* @__PURE__ */ (0,
|
|
15407
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
14907
15408
|
] }),
|
|
14908
|
-
/* @__PURE__ */ (0,
|
|
15409
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
|
|
14909
15410
|
"sender ",
|
|
14910
|
-
/* @__PURE__ */ (0,
|
|
15411
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
14911
15412
|
] })
|
|
14912
15413
|
] }),
|
|
14913
|
-
error && /* @__PURE__ */ (0,
|
|
14914
|
-
/* @__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" }),
|
|
14915
15416
|
" ",
|
|
14916
15417
|
error
|
|
14917
15418
|
] }),
|
|
14918
|
-
rejected && /* @__PURE__ */ (0,
|
|
14919
|
-
/* @__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" }),
|
|
14920
15421
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
14921
15422
|
] }),
|
|
14922
|
-
timedOut && /* @__PURE__ */ (0,
|
|
14923
|
-
/* @__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" }),
|
|
14924
15425
|
"Stopped polling after ",
|
|
14925
15426
|
Math.round(maxPollTimeMs / 1e3),
|
|
14926
15427
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -14931,9 +15432,9 @@ var UserOpStatus = ({
|
|
|
14931
15432
|
};
|
|
14932
15433
|
|
|
14933
15434
|
// src/internal/components/Hash.tsx
|
|
14934
|
-
var
|
|
14935
|
-
var
|
|
14936
|
-
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");
|
|
14937
15438
|
function toExplorerUrl(kind, value, chain) {
|
|
14938
15439
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
14939
15440
|
if (!base2) return null;
|
|
@@ -14956,12 +15457,12 @@ var Hash = ({
|
|
|
14956
15457
|
}) => {
|
|
14957
15458
|
const value = hash || "";
|
|
14958
15459
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
14959
|
-
const [copied, setCopied] =
|
|
14960
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
14961
|
-
return /* @__PURE__ */ (0,
|
|
14962
|
-
label && /* @__PURE__ */ (0,
|
|
14963
|
-
/* @__PURE__ */ (0,
|
|
14964
|
-
showCopy && /* @__PURE__ */ (0,
|
|
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)(
|
|
14965
15466
|
Button,
|
|
14966
15467
|
{
|
|
14967
15468
|
variant: "ghost",
|
|
@@ -14975,10 +15476,10 @@ var Hash = ({
|
|
|
14975
15476
|
} catch {
|
|
14976
15477
|
}
|
|
14977
15478
|
},
|
|
14978
|
-
children: /* @__PURE__ */ (0,
|
|
15479
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4" })
|
|
14979
15480
|
}
|
|
14980
15481
|
),
|
|
14981
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
15482
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
14982
15483
|
"a",
|
|
14983
15484
|
{
|
|
14984
15485
|
href: explorer,
|
|
@@ -14986,7 +15487,7 @@ var Hash = ({
|
|
|
14986
15487
|
rel: "noreferrer noopener",
|
|
14987
15488
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
14988
15489
|
title: "Open in explorer",
|
|
14989
|
-
children: /* @__PURE__ */ (0,
|
|
15490
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react54.ExternalLink, { className: "h-4 w-4" })
|
|
14990
15491
|
}
|
|
14991
15492
|
)
|
|
14992
15493
|
] });
|
|
@@ -14995,7 +15496,7 @@ var Hash = ({
|
|
|
14995
15496
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
14996
15497
|
var import_react66 = require("react");
|
|
14997
15498
|
init_base();
|
|
14998
|
-
var
|
|
15499
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
14999
15500
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
15000
15501
|
const [transactions, setTransactions] = (0, import_react66.useState)([]);
|
|
15001
15502
|
const [loading, setLoading] = (0, import_react66.useState)(true);
|
|
@@ -15046,31 +15547,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15046
15547
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
15047
15548
|
};
|
|
15048
15549
|
if (loading) {
|
|
15049
|
-
return /* @__PURE__ */ (0,
|
|
15050
|
-
/* @__PURE__ */ (0,
|
|
15051
|
-
/* @__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..." })
|
|
15052
15553
|
] });
|
|
15053
15554
|
}
|
|
15054
15555
|
if (error) {
|
|
15055
|
-
return /* @__PURE__ */ (0,
|
|
15056
|
-
/* @__PURE__ */ (0,
|
|
15057
|
-
/* @__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" })
|
|
15058
15559
|
] });
|
|
15059
15560
|
}
|
|
15060
15561
|
if (transactions.length === 0) {
|
|
15061
|
-
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" }) });
|
|
15062
15563
|
}
|
|
15063
|
-
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)(
|
|
15064
15565
|
"div",
|
|
15065
15566
|
{
|
|
15066
15567
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
15067
15568
|
onClick: () => openTransaction(tx.hash),
|
|
15068
15569
|
children: [
|
|
15069
|
-
/* @__PURE__ */ (0,
|
|
15070
|
-
/* @__PURE__ */ (0,
|
|
15071
|
-
/* @__PURE__ */ (0,
|
|
15072
|
-
/* @__PURE__ */ (0,
|
|
15073
|
-
/* @__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)(
|
|
15074
15575
|
"span",
|
|
15075
15576
|
{
|
|
15076
15577
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -15078,40 +15579,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15078
15579
|
}
|
|
15079
15580
|
)
|
|
15080
15581
|
] }),
|
|
15081
|
-
/* @__PURE__ */ (0,
|
|
15082
|
-
/* @__PURE__ */ (0,
|
|
15083
|
-
/* @__PURE__ */ (0,
|
|
15084
|
-
/* @__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: [
|
|
15085
15586
|
formatAddress3(tx.from.hash),
|
|
15086
|
-
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)" })
|
|
15087
15588
|
] })
|
|
15088
15589
|
] }),
|
|
15089
|
-
/* @__PURE__ */ (0,
|
|
15090
|
-
/* @__PURE__ */ (0,
|
|
15091
|
-
/* @__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: [
|
|
15092
15593
|
formatAddress3(tx.to.hash),
|
|
15093
|
-
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)" })
|
|
15094
15595
|
] })
|
|
15095
15596
|
] }),
|
|
15096
|
-
/* @__PURE__ */ (0,
|
|
15097
|
-
/* @__PURE__ */ (0,
|
|
15098
|
-
/* @__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: [
|
|
15099
15600
|
formatValue3(tx.value),
|
|
15100
15601
|
" LUMIA"
|
|
15101
15602
|
] })
|
|
15102
15603
|
] })
|
|
15103
15604
|
] })
|
|
15104
15605
|
] }),
|
|
15105
|
-
/* @__PURE__ */ (0,
|
|
15106
|
-
/* @__PURE__ */ (0,
|
|
15107
|
-
/* @__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: [
|
|
15108
15609
|
"Gas: ",
|
|
15109
15610
|
parseInt(tx.gas_used).toLocaleString()
|
|
15110
15611
|
] }),
|
|
15111
|
-
tx.method && /* @__PURE__ */ (0,
|
|
15612
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
15112
15613
|
] })
|
|
15113
15614
|
] }),
|
|
15114
|
-
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)) })
|
|
15115
15616
|
]
|
|
15116
15617
|
},
|
|
15117
15618
|
tx.hash
|
|
@@ -15119,7 +15620,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
15119
15620
|
};
|
|
15120
15621
|
|
|
15121
15622
|
// src/hooks/useUserOpStatus.ts
|
|
15122
|
-
var
|
|
15623
|
+
var React13 = __toESM(require("react"), 1);
|
|
15123
15624
|
init_base();
|
|
15124
15625
|
function useUserOpStatus(options = {}) {
|
|
15125
15626
|
const {
|
|
@@ -15131,16 +15632,16 @@ function useUserOpStatus(options = {}) {
|
|
|
15131
15632
|
onReceipt,
|
|
15132
15633
|
onTxHash
|
|
15133
15634
|
} = options;
|
|
15134
|
-
const [state, setState] =
|
|
15135
|
-
const [receipt, setReceipt] =
|
|
15136
|
-
const [mempool, setMempool] =
|
|
15137
|
-
const [txHash, setTxHash] =
|
|
15138
|
-
const [error, setError] =
|
|
15139
|
-
const [isPolling, setIsPolling] =
|
|
15140
|
-
const intervalRef =
|
|
15141
|
-
const startTimeRef =
|
|
15142
|
-
const prevStateRef =
|
|
15143
|
-
const rpc =
|
|
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) => {
|
|
15144
15645
|
const body = { jsonrpc: "2.0", id: 1, method, params };
|
|
15145
15646
|
const res = await fetch(getBundlerUrl(), {
|
|
15146
15647
|
method: "POST",
|
|
@@ -15151,21 +15652,21 @@ function useUserOpStatus(options = {}) {
|
|
|
15151
15652
|
if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
|
|
15152
15653
|
return json.result;
|
|
15153
15654
|
}, []);
|
|
15154
|
-
const extractMempoolInfo =
|
|
15655
|
+
const extractMempoolInfo = React13.useCallback((m) => {
|
|
15155
15656
|
if (!m) return null;
|
|
15156
15657
|
const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
|
|
15157
15658
|
const sender = m.sender || m?.userOperation?.sender || null;
|
|
15158
15659
|
if (!entryPoint && !sender) return null;
|
|
15159
15660
|
return { entryPoint, sender };
|
|
15160
15661
|
}, []);
|
|
15161
|
-
const updateState =
|
|
15662
|
+
const updateState = React13.useCallback((newState) => {
|
|
15162
15663
|
setState(newState);
|
|
15163
15664
|
if (prevStateRef.current !== newState) {
|
|
15164
15665
|
prevStateRef.current = newState;
|
|
15165
15666
|
onStateChange?.(newState);
|
|
15166
15667
|
}
|
|
15167
15668
|
}, [onStateChange]);
|
|
15168
|
-
const tick =
|
|
15669
|
+
const tick = React13.useCallback(async () => {
|
|
15169
15670
|
if (!userOpHash || !enabled) return;
|
|
15170
15671
|
if (receipt) {
|
|
15171
15672
|
console.log("[useUserOpStatus] Already have receipt, skipping tick");
|
|
@@ -15238,7 +15739,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15238
15739
|
onTxHash,
|
|
15239
15740
|
onReceipt
|
|
15240
15741
|
]);
|
|
15241
|
-
|
|
15742
|
+
React13.useEffect(() => {
|
|
15242
15743
|
if (!userOpHash || !enabled) return;
|
|
15243
15744
|
console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
|
|
15244
15745
|
startTimeRef.current = Date.now();
|
|
@@ -15250,7 +15751,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15250
15751
|
setError(null);
|
|
15251
15752
|
setIsPolling(false);
|
|
15252
15753
|
}, [userOpHash, enabled]);
|
|
15253
|
-
|
|
15754
|
+
React13.useEffect(() => {
|
|
15254
15755
|
if (!userOpHash || !enabled) {
|
|
15255
15756
|
console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
|
|
15256
15757
|
return;
|
|
@@ -15286,7 +15787,7 @@ function useUserOpStatus(options = {}) {
|
|
|
15286
15787
|
}
|
|
15287
15788
|
};
|
|
15288
15789
|
}, [userOpHash, enabled, pollMs]);
|
|
15289
|
-
const refresh =
|
|
15790
|
+
const refresh = React13.useCallback(async () => {
|
|
15290
15791
|
await tick();
|
|
15291
15792
|
}, [tick]);
|
|
15292
15793
|
return {
|
|
@@ -15345,13 +15846,13 @@ init_profile();
|
|
|
15345
15846
|
init_errors();
|
|
15346
15847
|
|
|
15347
15848
|
// src/modules/transactions.ts
|
|
15348
|
-
var
|
|
15849
|
+
var import_wagmi9 = require("wagmi");
|
|
15349
15850
|
var import_viem11 = require("viem");
|
|
15350
15851
|
init_base();
|
|
15351
15852
|
function useTransactions() {
|
|
15352
|
-
const publicClient2 = (0,
|
|
15353
|
-
const { data: walletClient } = (0,
|
|
15354
|
-
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)();
|
|
15355
15856
|
const sendTransaction = async (params) => {
|
|
15356
15857
|
if (!walletClient) {
|
|
15357
15858
|
throw new Error("Wallet not connected");
|
|
@@ -15407,10 +15908,171 @@ function useTransactions() {
|
|
|
15407
15908
|
};
|
|
15408
15909
|
}
|
|
15409
15910
|
|
|
15410
|
-
// src/modules/
|
|
15911
|
+
// src/modules/assets.ts
|
|
15912
|
+
var import_react68 = __toESM(require("react"), 1);
|
|
15913
|
+
var import_wagmi10 = require("wagmi");
|
|
15411
15914
|
var import_viem12 = require("viem");
|
|
15412
15915
|
init_base();
|
|
15413
|
-
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)(
|
|
15414
16076
|
"event UserOperationEvent(bytes32 indexed userOpHash, address indexed sender, address indexed paymaster, uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGasUsed)"
|
|
15415
16077
|
);
|
|
15416
16078
|
function useSmartAccountTransactions() {
|
|
@@ -15506,6 +16168,7 @@ init_iframe_manager();
|
|
|
15506
16168
|
signTypedData,
|
|
15507
16169
|
updateUserProfile,
|
|
15508
16170
|
useAssets,
|
|
16171
|
+
useErc3643Compliance,
|
|
15509
16172
|
useLogout,
|
|
15510
16173
|
useLumiaPassportAccountSession,
|
|
15511
16174
|
useLumiaPassportAddress,
|