@lumiapassport/ui-kit 1.14.8 → 1.14.10
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 +23 -16
- package/dist/iframe/main.js +156 -231
- package/dist/iframe/main.js.map +1 -1
- package/dist/index.cjs +928 -831
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +980 -895
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2078,7 +2078,7 @@ function getTssUrl3() {
|
|
|
2078
2078
|
return getServiceUrls().tssUrl;
|
|
2079
2079
|
}
|
|
2080
2080
|
function getProviderDisplayInfo(provider) {
|
|
2081
|
-
return PROVIDERS_META[provider];
|
|
2081
|
+
return PROVIDERS_META[provider] || UNKNOWN_PROVIDER;
|
|
2082
2082
|
}
|
|
2083
2083
|
function formatDate(dateString) {
|
|
2084
2084
|
if (!dateString) return "Never";
|
|
@@ -2089,7 +2089,7 @@ function formatDate(dateString) {
|
|
|
2089
2089
|
return "Invalid date";
|
|
2090
2090
|
}
|
|
2091
2091
|
}
|
|
2092
|
-
var import_lucide_react, PROVIDERS_META;
|
|
2092
|
+
var import_lucide_react, PROVIDERS_META, UNKNOWN_PROVIDER;
|
|
2093
2093
|
var init_types = __esm({
|
|
2094
2094
|
"src/internal/auth/providers/types.ts"() {
|
|
2095
2095
|
import_lucide_react = require("lucide-react");
|
|
@@ -2102,8 +2102,11 @@ var init_types = __esm({
|
|
|
2102
2102
|
google: { name: "Google", icon: GoogleIcon, description: "Google account" },
|
|
2103
2103
|
discord: { name: "Discord", icon: DiscordIcon, description: "Discord account" },
|
|
2104
2104
|
twitter: { name: "X", icon: TwitterIcon, description: "X (Twitter) account" },
|
|
2105
|
+
x: { name: "X", icon: TwitterIcon, description: "X (Twitter) account" },
|
|
2106
|
+
// Alias for twitter (API uses 'x')
|
|
2105
2107
|
wallet: { name: "Wallet", icon: import_lucide_react.Wallet2, description: "External wallet (EOA)" }
|
|
2106
2108
|
};
|
|
2109
|
+
UNKNOWN_PROVIDER = { name: "Unknown", icon: import_lucide_react.Key, description: "Unknown provider" };
|
|
2107
2110
|
}
|
|
2108
2111
|
});
|
|
2109
2112
|
|
|
@@ -4378,7 +4381,7 @@ __export(index_exports, {
|
|
|
4378
4381
|
module.exports = __toCommonJS(index_exports);
|
|
4379
4382
|
|
|
4380
4383
|
// src/styles/built.css
|
|
4381
|
-
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 .-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-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 .mt-\\[var\\(--l-pass-gap\\)\\]{margin-top:var(--l-pass-gap)}.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-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-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.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-\\[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-\\[256px\\]{min-width:256px}.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-\\[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-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.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 .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-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 .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.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-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-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-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-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-\\[var\\(--l-pass-warning-bg\\)\\]{background-color:var(--l-pass-warning-bg)}.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-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-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-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-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.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 .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.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-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 .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-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-muted\\)\\]{color:var(--l-pass-muted)}.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-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-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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 .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-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,#c9c9c9);--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%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--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,.5));--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;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px 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;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 .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.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-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.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\\)\\]:hover{color:var(--l-pass-fg)}.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\\: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-\\[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)}@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\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4384
|
+
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-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-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 .mt-\\[var\\(--l-pass-gap\\)\\]{margin-top:var(--l-pass-gap)}.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-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-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.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-\\[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-\\[256px\\]{min-width:256px}.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-\\[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-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.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 .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-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 .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.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-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-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-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-\\[var\\(--l-pass-warning-bg\\)\\]{background-color:var(--l-pass-warning-bg)}.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-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-gap\\)\\]{padding-left:var(--l-pass-gap);padding-right:var(--l-pass-gap)}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-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-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.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 .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.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-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 .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-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-muted\\)\\]{color:var(--l-pass-muted)}.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-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-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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-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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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-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,#c9c9c9);--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%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--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,.5));--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;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px 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;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 .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.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-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.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\\)\\]:hover{color:var(--l-pass-fg)}.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\\: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-\\[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)}@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\\]\\:shrink-0 svg){flex-shrink:0}';
|
|
4382
4385
|
|
|
4383
4386
|
// src/context/LumiaPassportContext.tsx
|
|
4384
4387
|
var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
|
|
@@ -4421,27 +4424,29 @@ var PROVIDERS_META2 = {
|
|
|
4421
4424
|
google: { name: "Google", icon: GoogleIcon, description: "Google account" },
|
|
4422
4425
|
discord: { name: "Discord", icon: DiscordIcon, description: "Discord account" },
|
|
4423
4426
|
twitter: { name: "X", icon: TwitterIcon, description: "X (Twitter) account" },
|
|
4427
|
+
x: { name: "X", icon: TwitterIcon, description: "X (Twitter) account" },
|
|
4428
|
+
// Alias for twitter (API uses 'x')
|
|
4424
4429
|
wallet: { name: "Wallet", icon: import_lucide_react2.Wallet2, description: "External wallet (EOA)" }
|
|
4425
4430
|
};
|
|
4426
4431
|
|
|
4427
4432
|
// src/internal/hooks/useLayoutDataStore.ts
|
|
4428
|
-
var PageKey = /* @__PURE__ */ ((
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
return
|
|
4433
|
+
var PageKey = /* @__PURE__ */ ((PageKey3) => {
|
|
4434
|
+
PageKey3["AUTH"] = "auth";
|
|
4435
|
+
PageKey3["TERMS_OF_SERVICE"] = "terms-of-service";
|
|
4436
|
+
PageKey3["MAIN_MENU"] = "main-menu";
|
|
4437
|
+
PageKey3["SETTINGS"] = "settings";
|
|
4438
|
+
PageKey3["SEND"] = "send";
|
|
4439
|
+
PageKey3["RECEIVE"] = "receive";
|
|
4440
|
+
PageKey3["BUY"] = "buy";
|
|
4441
|
+
PageKey3["KYC"] = "kyc";
|
|
4442
|
+
PageKey3["TRANSACTIONS"] = "transactions";
|
|
4443
|
+
PageKey3["ASSETS"] = "assets";
|
|
4444
|
+
PageKey3["MANAGE_WALLET"] = "manage-wallet";
|
|
4445
|
+
PageKey3["UNLINK_PROVIDER"] = "unlink-provider";
|
|
4446
|
+
PageKey3["SECURITY"] = "security";
|
|
4447
|
+
PageKey3["KEYSARE_BACKUP"] = "keysare-backup";
|
|
4448
|
+
PageKey3["KEYSHARE_RESTORE"] = "keyshare-restore";
|
|
4449
|
+
return PageKey3;
|
|
4445
4450
|
})(PageKey || {});
|
|
4446
4451
|
var useLayoutDataStore = (0, import_zustand.create)((set) => ({
|
|
4447
4452
|
page: null,
|
|
@@ -4568,7 +4573,7 @@ var import_react52 = require("react");
|
|
|
4568
4573
|
// package.json
|
|
4569
4574
|
var package_default = {
|
|
4570
4575
|
name: "@lumiapassport/ui-kit",
|
|
4571
|
-
version: "1.14.
|
|
4576
|
+
version: "1.14.10",
|
|
4572
4577
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
4573
4578
|
type: "module",
|
|
4574
4579
|
main: "./dist/index.cjs",
|
|
@@ -5842,15 +5847,17 @@ var import_lodash_es2 = require("lodash-es");
|
|
|
5842
5847
|
var import_react11 = require("react");
|
|
5843
5848
|
var DEBOUNCE_DELAY = 50;
|
|
5844
5849
|
function useDetectMaxScrollHeight() {
|
|
5850
|
+
const page = useLayoutDataStore((state) => state.page);
|
|
5845
5851
|
const setIsMobileView = useLayoutStore((state) => state.setIsMobileView);
|
|
5846
5852
|
const setMaxScrollHeight = useLayoutStore((state) => state.setMaxScrollHeight);
|
|
5847
5853
|
const onResize = (0, import_react11.useCallback)(
|
|
5848
5854
|
(0, import_lodash_es2.debounce)(({ width, height }) => {
|
|
5849
|
-
const
|
|
5855
|
+
const headerHeight = page === "auth" /* AUTH */ || page === "keyshare-restore" /* KEYSHARE_RESTORE */ ? 0 : 116;
|
|
5856
|
+
const limContentHeight = height * 0.92 - headerHeight - 72;
|
|
5850
5857
|
setIsMobileView(width < height && (width < 475 || limContentHeight <= MAX_CONTENT_HEIGHT));
|
|
5851
5858
|
setMaxScrollHeight(Math.min(limContentHeight, MAX_CONTENT_HEIGHT));
|
|
5852
5859
|
}, DEBOUNCE_DELAY),
|
|
5853
|
-
[setMaxScrollHeight, setIsMobileView]
|
|
5860
|
+
[page, setMaxScrollHeight, setIsMobileView]
|
|
5854
5861
|
);
|
|
5855
5862
|
(0, import_react11.useEffect)(() => {
|
|
5856
5863
|
const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect));
|
|
@@ -5868,8 +5875,58 @@ var import_framer_motion = require("framer-motion");
|
|
|
5868
5875
|
var import_lucide_react16 = require("lucide-react");
|
|
5869
5876
|
var import_react21 = require("react");
|
|
5870
5877
|
|
|
5871
|
-
// src/internal/components/
|
|
5878
|
+
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
5879
|
+
var import_react12 = require("react");
|
|
5880
|
+
var useExpandable = (props) => {
|
|
5881
|
+
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
5882
|
+
const expandableRef = (0, import_react12.useRef)(null);
|
|
5883
|
+
const contentRef = (0, import_react12.useRef)(null);
|
|
5884
|
+
(0, import_react12.useEffect)(() => {
|
|
5885
|
+
if (!expandableRef.current) return;
|
|
5886
|
+
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
5887
|
+
}, []);
|
|
5888
|
+
const setExpandableHeight = (0, import_react12.useCallback)(
|
|
5889
|
+
(isExpnd) => {
|
|
5890
|
+
if (!contentRef.current || !expandableRef.current) return;
|
|
5891
|
+
expandableRef.current.style.setProperty(
|
|
5892
|
+
"--ifo-basic-expandable-h",
|
|
5893
|
+
isExpnd ? `${contentRef.current.clientHeight}px` : `${minHeight}px`
|
|
5894
|
+
);
|
|
5895
|
+
},
|
|
5896
|
+
// ON_RESIZE_DELEAY),
|
|
5897
|
+
[minHeight]
|
|
5898
|
+
);
|
|
5899
|
+
(0, import_react12.useEffect)(() => {
|
|
5900
|
+
if (!contentRef.current || !expandableRef.current) return;
|
|
5901
|
+
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
5902
|
+
obs.observe(expandableRef.current);
|
|
5903
|
+
return () => obs.disconnect();
|
|
5904
|
+
}, [isExpanded, children]);
|
|
5905
|
+
return {
|
|
5906
|
+
expandableRef,
|
|
5907
|
+
contentRef
|
|
5908
|
+
};
|
|
5909
|
+
};
|
|
5910
|
+
|
|
5911
|
+
// src/internal/components/Expandable/Expandable.tsx
|
|
5872
5912
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
5913
|
+
function Expandable(props) {
|
|
5914
|
+
const { children, className, contentClassName, minHeight, divProps } = props;
|
|
5915
|
+
const { expandableRef, contentRef } = useExpandable(props);
|
|
5916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
5917
|
+
"div",
|
|
5918
|
+
{
|
|
5919
|
+
...divProps,
|
|
5920
|
+
ref: expandableRef,
|
|
5921
|
+
className: cn("w-full overflow-y-hidden", className),
|
|
5922
|
+
style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
|
|
5923
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
|
|
5924
|
+
}
|
|
5925
|
+
);
|
|
5926
|
+
}
|
|
5927
|
+
|
|
5928
|
+
// src/internal/components/ui/highlight.tsx
|
|
5929
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
5873
5930
|
var CARD_STYLES = {
|
|
5874
5931
|
info: "text-[var(--l-pass-info)] bg-[var(--l-pass-bg-info)]",
|
|
5875
5932
|
success: "text-[var(--l-pass-success)] bg-[var(--l-pass-bg-success)]",
|
|
@@ -5878,7 +5935,7 @@ var CARD_STYLES = {
|
|
|
5878
5935
|
};
|
|
5879
5936
|
function Highlight(props) {
|
|
5880
5937
|
const { type = "info", children, className } = props;
|
|
5881
|
-
return /* @__PURE__ */ (0,
|
|
5938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5882
5939
|
"div",
|
|
5883
5940
|
{
|
|
5884
5941
|
className: cn(
|
|
@@ -5915,42 +5972,42 @@ var useAuthStore = (0, import_zustand3.create)((set) => ({
|
|
|
5915
5972
|
}));
|
|
5916
5973
|
|
|
5917
5974
|
// src/internal/components/AuthMenu/AuthFailedStep.tsx
|
|
5918
|
-
var
|
|
5975
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
5919
5976
|
function AuthFailedStep() {
|
|
5920
5977
|
const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
|
|
5921
5978
|
const { failedType, setStep, setFailedType, setAlert } = useAuthStore();
|
|
5922
5979
|
const isCritical = failedType === "critical" || failedType === "config";
|
|
5923
|
-
return /* @__PURE__ */ (0,
|
|
5924
|
-
/* @__PURE__ */ (0,
|
|
5980
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "w-full flex flex-col text-center gap-4 p-4", children: [
|
|
5981
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
5925
5982
|
"div",
|
|
5926
5983
|
{
|
|
5927
5984
|
className: cn(
|
|
5928
5985
|
"w-full flex flex-col p-2 gap-2 rounded-[var(--l-pass-el-bdrs)]",
|
|
5929
5986
|
isCritical ? "text-[var(--l-pass-error)] bg-[var(--l-pass-bg-error)]" : "text-[var(--l-pass-warning)] bg-[var(--l-pass-bg-warning)]"
|
|
5930
5987
|
),
|
|
5931
|
-
children: /* @__PURE__ */ (0,
|
|
5932
|
-
isCritical ? /* @__PURE__ */ (0,
|
|
5933
|
-
/* @__PURE__ */ (0,
|
|
5988
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "w-full flex items-center justify-center gap-2", children: [
|
|
5989
|
+
isCritical ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react9.AlertTriangle, { className: "w-5 h-5 text-[var(--l-pass-error)]" }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react9.Cross, { className: "w-5 h-5 text-[var(--l-pass-warning)]" }),
|
|
5990
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-center block text-xl font-bold", children: failedType === "config" ? "Configuration Error" : failedType === "critical" ? "Critical Error" : "Failed" })
|
|
5934
5991
|
] })
|
|
5935
5992
|
}
|
|
5936
5993
|
),
|
|
5937
|
-
failedType === "config" && /* @__PURE__ */ (0,
|
|
5938
|
-
/* @__PURE__ */ (0,
|
|
5939
|
-
/* @__PURE__ */ (0,
|
|
5940
|
-
/* @__PURE__ */ (0,
|
|
5941
|
-
/* @__PURE__ */ (0,
|
|
5942
|
-
/* @__PURE__ */ (0,
|
|
5994
|
+
failedType === "config" && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "p-2 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-info)]", children: [
|
|
5995
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "text-sm font-medium text-[var(--l-pass-info)] mb-2", children: "To fix this issue:" }),
|
|
5996
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("ul", { className: "text-xs text-[var(--l-pass-info)] text-left space-y-1 list-disc list-inside", children: [
|
|
5997
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: "Contact your project administrator" }),
|
|
5998
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: "Verify projectId is correctly configured" }),
|
|
5999
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: "Check project metadata on the server" })
|
|
5943
6000
|
] })
|
|
5944
6001
|
] }),
|
|
5945
|
-
failedType === "critical" && /* @__PURE__ */ (0,
|
|
5946
|
-
/* @__PURE__ */ (0,
|
|
5947
|
-
/* @__PURE__ */ (0,
|
|
5948
|
-
/* @__PURE__ */ (0,
|
|
5949
|
-
/* @__PURE__ */ (0,
|
|
5950
|
-
/* @__PURE__ */ (0,
|
|
6002
|
+
failedType === "critical" && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "p-2 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-error)] border", children: [
|
|
6003
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "text-sm font-semibold text-[var(--l-pass-error)] mb-2", children: "What to do next:" }),
|
|
6004
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("ul", { className: "text-xs text-[var(--l-pass-error)] text-left space-y-1 list-disc list-inside", children: [
|
|
6005
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: "Contact support immediately" }),
|
|
6006
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: "Provide your projectId and error details" }),
|
|
6007
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", { children: "You may need to create a new account" })
|
|
5951
6008
|
] })
|
|
5952
6009
|
] }),
|
|
5953
|
-
/* @__PURE__ */ (0,
|
|
6010
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
5954
6011
|
Button,
|
|
5955
6012
|
{
|
|
5956
6013
|
size: "large",
|
|
@@ -5969,19 +6026,19 @@ function AuthFailedStep() {
|
|
|
5969
6026
|
|
|
5970
6027
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
5971
6028
|
var import_lucide_react10 = require("lucide-react");
|
|
5972
|
-
var
|
|
6029
|
+
var import_react14 = require("react");
|
|
5973
6030
|
init_auth();
|
|
5974
6031
|
init_profile();
|
|
5975
6032
|
|
|
5976
6033
|
// src/internal/components/ui/input.tsx
|
|
5977
|
-
var
|
|
5978
|
-
var
|
|
5979
|
-
var Input =
|
|
6034
|
+
var import_react13 = __toESM(require("react"), 1);
|
|
6035
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
6036
|
+
var Input = import_react13.default.forwardRef((props, ref) => {
|
|
5980
6037
|
const { className, disabled, error, Icon, element, ...inputProps } = props;
|
|
5981
|
-
const internalRef = (0,
|
|
5982
|
-
(0,
|
|
5983
|
-
return /* @__PURE__ */ (0,
|
|
5984
|
-
/* @__PURE__ */ (0,
|
|
6038
|
+
const internalRef = (0, import_react13.useRef)(null);
|
|
6039
|
+
(0, import_react13.useImperativeHandle)(ref, () => internalRef.current);
|
|
6040
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
6041
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
5985
6042
|
"div",
|
|
5986
6043
|
{
|
|
5987
6044
|
className: cn(
|
|
@@ -5997,8 +6054,8 @@ var Input = import_react12.default.forwardRef((props, ref) => {
|
|
|
5997
6054
|
internalRef.current?.focus();
|
|
5998
6055
|
},
|
|
5999
6056
|
children: [
|
|
6000
|
-
Icon && /* @__PURE__ */ (0,
|
|
6001
|
-
/* @__PURE__ */ (0,
|
|
6057
|
+
Icon && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex flex-none items-center justify-center w-6 h-6 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Icon, { width: 16, height: 16, className: "text-[var(--l-pass-fg)]" }) }),
|
|
6058
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
6002
6059
|
"input",
|
|
6003
6060
|
{
|
|
6004
6061
|
ref: internalRef,
|
|
@@ -6017,17 +6074,17 @@ var Input = import_react12.default.forwardRef((props, ref) => {
|
|
|
6017
6074
|
]
|
|
6018
6075
|
}
|
|
6019
6076
|
),
|
|
6020
|
-
!!error?.length && /* @__PURE__ */ (0,
|
|
6077
|
+
!!error?.length && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "block text-[var(--l-pass-error)]", children: error })
|
|
6021
6078
|
] });
|
|
6022
6079
|
});
|
|
6023
6080
|
Input.displayName = "Input";
|
|
6024
6081
|
|
|
6025
6082
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameInput.tsx
|
|
6026
|
-
var
|
|
6083
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
6027
6084
|
var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
6028
|
-
const [displayName, setDisplayName] = (0,
|
|
6029
|
-
const [isLoading, setIsLoading] = (0,
|
|
6030
|
-
const [error, setError] = (0,
|
|
6085
|
+
const [displayName, setDisplayName] = (0, import_react14.useState)("");
|
|
6086
|
+
const [isLoading, setIsLoading] = (0, import_react14.useState)(false);
|
|
6087
|
+
const [error, setError] = (0, import_react14.useState)("");
|
|
6031
6088
|
const handleSubmit = async (e) => {
|
|
6032
6089
|
e.preventDefault();
|
|
6033
6090
|
if (!displayName.trim()) {
|
|
@@ -6051,14 +6108,14 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6051
6108
|
setIsLoading(false);
|
|
6052
6109
|
}
|
|
6053
6110
|
};
|
|
6054
|
-
return /* @__PURE__ */ (0,
|
|
6055
|
-
/* @__PURE__ */ (0,
|
|
6056
|
-
/* @__PURE__ */ (0,
|
|
6057
|
-
/* @__PURE__ */ (0,
|
|
6111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
6112
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
|
|
6113
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(LumiaLogo, { size: 24, className: "w-6 h-6" }),
|
|
6114
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "font-bold text-xl leading-6", children: "What's your name?" })
|
|
6058
6115
|
] }),
|
|
6059
|
-
/* @__PURE__ */ (0,
|
|
6060
|
-
/* @__PURE__ */ (0,
|
|
6061
|
-
/* @__PURE__ */ (0,
|
|
6116
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "block w-full text-xs text-center", children: "This helps personalize your experience" }),
|
|
6117
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-[var(--l-pass-pd)]", children: [
|
|
6118
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
6062
6119
|
Input,
|
|
6063
6120
|
{
|
|
6064
6121
|
Icon: import_lucide_react10.User,
|
|
@@ -6075,8 +6132,8 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6075
6132
|
}
|
|
6076
6133
|
}
|
|
6077
6134
|
),
|
|
6078
|
-
/* @__PURE__ */ (0,
|
|
6079
|
-
/* @__PURE__ */ (0,
|
|
6135
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
6136
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
6080
6137
|
Button,
|
|
6081
6138
|
{
|
|
6082
6139
|
type: "submit",
|
|
@@ -6086,7 +6143,7 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6086
6143
|
children: isLoading ? "Saving..." : "Continue"
|
|
6087
6144
|
}
|
|
6088
6145
|
),
|
|
6089
|
-
/* @__PURE__ */ (0,
|
|
6146
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
6090
6147
|
Button,
|
|
6091
6148
|
{
|
|
6092
6149
|
className: "flex-1 text-[var(--l-pass-fg-muted)]",
|
|
@@ -6104,7 +6161,7 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
|
|
|
6104
6161
|
};
|
|
6105
6162
|
|
|
6106
6163
|
// src/internal/components/AuthMenu/DisaplayNameStep/DisplayNameStep.tsx
|
|
6107
|
-
var
|
|
6164
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
6108
6165
|
function DisplayNameStep(props) {
|
|
6109
6166
|
const { onAuthSuccess } = props;
|
|
6110
6167
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -6127,7 +6184,7 @@ function DisplayNameStep(props) {
|
|
|
6127
6184
|
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
6128
6185
|
if (onAuthSuccess) await onAuthSuccess();
|
|
6129
6186
|
};
|
|
6130
|
-
return /* @__PURE__ */ (0,
|
|
6187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DisplayNameInput, { onComplete, onSkip });
|
|
6131
6188
|
}
|
|
6132
6189
|
|
|
6133
6190
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
@@ -6135,10 +6192,10 @@ var import_lucide_react11 = require("lucide-react");
|
|
|
6135
6192
|
var import_react15 = require("react");
|
|
6136
6193
|
|
|
6137
6194
|
// src/internal/assets/PasskeyAddIcon.tsx
|
|
6138
|
-
var
|
|
6195
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
6139
6196
|
function PasskeyAddIcon(props) {
|
|
6140
6197
|
const { width = "24", height = "24", className = "w-6 h-6", ...rest } = props;
|
|
6141
|
-
return /* @__PURE__ */ (0,
|
|
6198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
6142
6199
|
"svg",
|
|
6143
6200
|
{
|
|
6144
6201
|
...rest,
|
|
@@ -6151,11 +6208,11 @@ function PasskeyAddIcon(props) {
|
|
|
6151
6208
|
strokeLinejoin: "round",
|
|
6152
6209
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6153
6210
|
children: [
|
|
6154
|
-
/* @__PURE__ */ (0,
|
|
6155
|
-
/* @__PURE__ */ (0,
|
|
6156
|
-
/* @__PURE__ */ (0,
|
|
6157
|
-
/* @__PURE__ */ (0,
|
|
6158
|
-
/* @__PURE__ */ (0,
|
|
6211
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" }),
|
|
6212
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("path", { d: "m21 2-9.6 9.6" }),
|
|
6213
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("circle", { cx: "7.5", cy: "15.5", r: "5.5" }),
|
|
6214
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("path", { d: "M18 15v6" }),
|
|
6215
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("path", { d: "M21 18h-6" })
|
|
6159
6216
|
]
|
|
6160
6217
|
}
|
|
6161
6218
|
);
|
|
@@ -6163,58 +6220,6 @@ function PasskeyAddIcon(props) {
|
|
|
6163
6220
|
|
|
6164
6221
|
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
6165
6222
|
init_auth();
|
|
6166
|
-
|
|
6167
|
-
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
6168
|
-
var import_react14 = require("react");
|
|
6169
|
-
var useExpandable = (props) => {
|
|
6170
|
-
const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
|
|
6171
|
-
const expandableRef = (0, import_react14.useRef)(null);
|
|
6172
|
-
const contentRef = (0, import_react14.useRef)(null);
|
|
6173
|
-
(0, import_react14.useEffect)(() => {
|
|
6174
|
-
if (!expandableRef.current) return;
|
|
6175
|
-
expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
|
|
6176
|
-
}, []);
|
|
6177
|
-
const setExpandableHeight = (0, import_react14.useCallback)(
|
|
6178
|
-
(isExpnd) => {
|
|
6179
|
-
if (!contentRef.current || !expandableRef.current) return;
|
|
6180
|
-
expandableRef.current.style.setProperty(
|
|
6181
|
-
"--ifo-basic-expandable-h",
|
|
6182
|
-
isExpnd ? `${contentRef.current.clientHeight}px` : `${minHeight}px`
|
|
6183
|
-
);
|
|
6184
|
-
},
|
|
6185
|
-
// ON_RESIZE_DELEAY),
|
|
6186
|
-
[minHeight]
|
|
6187
|
-
);
|
|
6188
|
-
(0, import_react14.useEffect)(() => {
|
|
6189
|
-
if (!contentRef.current || !expandableRef.current) return;
|
|
6190
|
-
const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
|
|
6191
|
-
obs.observe(expandableRef.current);
|
|
6192
|
-
return () => obs.disconnect();
|
|
6193
|
-
}, [isExpanded, children]);
|
|
6194
|
-
return {
|
|
6195
|
-
expandableRef,
|
|
6196
|
-
contentRef
|
|
6197
|
-
};
|
|
6198
|
-
};
|
|
6199
|
-
|
|
6200
|
-
// src/internal/components/Expandable/Expandable.tsx
|
|
6201
|
-
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
6202
|
-
function Expandable(props) {
|
|
6203
|
-
const { children, className, contentClassName, minHeight, divProps } = props;
|
|
6204
|
-
const { expandableRef, contentRef } = useExpandable(props);
|
|
6205
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
6206
|
-
"div",
|
|
6207
|
-
{
|
|
6208
|
-
...divProps,
|
|
6209
|
-
ref: expandableRef,
|
|
6210
|
-
className: cn("w-full overflow-y-hidden", className),
|
|
6211
|
-
style: { height: "var(--ifo-basic-expandable-h)", transition: "height 375ms ease" },
|
|
6212
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: cn("w-full", contentClassName), ref: contentRef, style: minHeight ? { minHeight } : void 0, children })
|
|
6213
|
-
}
|
|
6214
|
-
);
|
|
6215
|
-
}
|
|
6216
|
-
|
|
6217
|
-
// src/internal/components/AuthMenu/PassKeyStep.tsx
|
|
6218
6223
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
6219
6224
|
function normalizeWebAuthnError(err) {
|
|
6220
6225
|
const raw = err?.message || String(err || "");
|
|
@@ -7611,28 +7616,27 @@ var AuthMenu = () => {
|
|
|
7611
7616
|
}),
|
|
7612
7617
|
[onAuthSuccess, goBackToSignIn, checkDisplayNameRequired]
|
|
7613
7618
|
);
|
|
7614
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.
|
|
7615
|
-
import_framer_motion.
|
|
7616
|
-
|
|
7617
|
-
|
|
7618
|
-
|
|
7619
|
-
|
|
7620
|
-
|
|
7621
|
-
|
|
7622
|
-
|
|
7623
|
-
stepContent[step]
|
|
7624
|
-
|
|
7625
|
-
|
|
7626
|
-
|
|
7627
|
-
|
|
7628
|
-
|
|
7629
|
-
|
|
7630
|
-
|
|
7631
|
-
|
|
7632
|
-
]
|
|
7633
|
-
}
|
|
7634
|
-
|
|
7635
|
-
) }) });
|
|
7619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "w-full", children: [
|
|
7620
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_framer_motion.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
7621
|
+
import_framer_motion.motion.div,
|
|
7622
|
+
{
|
|
7623
|
+
initial: { opacity: 0, height: DEFAULT_AUTH_MENU_HEIGHT },
|
|
7624
|
+
animate: { opacity: 1, height: "auto" },
|
|
7625
|
+
exit: { opacity: 0, height: DEFAULT_AUTH_MENU_HEIGHT },
|
|
7626
|
+
style: { overflow: "hidden" },
|
|
7627
|
+
transition: Y_ANIMATION_SETUP,
|
|
7628
|
+
children: stepContent[step]
|
|
7629
|
+
},
|
|
7630
|
+
step
|
|
7631
|
+
) }),
|
|
7632
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Expandable, { isExpanded: !!alert2, contentClassName: "px-[var(--l-pass-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Highlight, { type: "error", className: "w-full flex gap-[var(--l-pass-gap)] ", children: [
|
|
7633
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react16.AlertTriangle, { className: "w-5 h-5 text-[var(--l-pass-error)]" }),
|
|
7634
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("span", { className: "block w-full flex flex-col gap-1 flex-1", children: [
|
|
7635
|
+
alert2?.title && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "block font-bold leading-5", children: alert2.title }),
|
|
7636
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "block whitespace-pre-line", children: alert2?.message || "Unknown error" })
|
|
7637
|
+
] })
|
|
7638
|
+
] }) })
|
|
7639
|
+
] });
|
|
7636
7640
|
};
|
|
7637
7641
|
|
|
7638
7642
|
// src/internal/components/BuyMenu/ByuMenu.tsx
|
|
@@ -8279,15 +8283,15 @@ function BuyMenu() {
|
|
|
8279
8283
|
simplex: "bg-[#081f2c]",
|
|
8280
8284
|
binance: "bg-[#f3ba2f]"
|
|
8281
8285
|
};
|
|
8282
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.
|
|
8286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
8283
8287
|
"div",
|
|
8284
8288
|
{
|
|
8285
8289
|
style: {
|
|
8286
8290
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
8287
8291
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
8288
8292
|
},
|
|
8289
|
-
className: "list-scrollbar-y w-full
|
|
8290
|
-
children: [
|
|
8293
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
8294
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
8291
8295
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
8292
8296
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react19.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
8293
8297
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
|
|
@@ -8305,22 +8309,20 @@ function BuyMenu() {
|
|
|
8305
8309
|
id
|
|
8306
8310
|
)) }),
|
|
8307
8311
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ProviderComponent, { control, walletAddress })
|
|
8308
|
-
]
|
|
8312
|
+
] })
|
|
8309
8313
|
}
|
|
8310
8314
|
);
|
|
8311
8315
|
}
|
|
8312
8316
|
|
|
8313
8317
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
8314
|
-
var
|
|
8318
|
+
var import_react_query16 = require("@tanstack/react-query");
|
|
8315
8319
|
var import_lucide_react26 = require("lucide-react");
|
|
8316
8320
|
var import_react31 = require("react");
|
|
8317
8321
|
init_vaultClient();
|
|
8318
8322
|
|
|
8319
8323
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
8320
|
-
var import_react_query15 = require("@tanstack/react-query");
|
|
8321
8324
|
var import_lucide_react20 = require("lucide-react");
|
|
8322
8325
|
var import_react28 = require("react");
|
|
8323
|
-
init_vaultClient();
|
|
8324
8326
|
|
|
8325
8327
|
// src/internal/components/KeyshareRestoreMenu/hooks/useCheckBackupAvailability.ts
|
|
8326
8328
|
var import_react_query12 = require("@tanstack/react-query");
|
|
@@ -8732,15 +8734,13 @@ function useRestoreAccount() {
|
|
|
8732
8734
|
|
|
8733
8735
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
8734
8736
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
8735
|
-
var
|
|
8736
|
-
{ method: "server", label: "
|
|
8737
|
-
{ method: "file", label: "File", Icon: import_lucide_react20.FileDown }
|
|
8738
|
-
|
|
8737
|
+
var restoreMethodes = (mode) => [
|
|
8738
|
+
{ method: "server", label: "Secured Vault", Icon: import_lucide_react20.ShieldCheck },
|
|
8739
|
+
{ method: "file", label: "Local File", Icon: mode === "restore" ? import_lucide_react20.FileUp : import_lucide_react20.FileDown },
|
|
8740
|
+
{ method: "cloud", label: "Cloud", Icon: import_lucide_react20.Cloud }
|
|
8739
8741
|
];
|
|
8740
8742
|
function MethodSelector(props) {
|
|
8741
|
-
const { mode = "restore" } = props;
|
|
8742
|
-
const qc = (0, import_react_query15.useQueryClient)();
|
|
8743
|
-
const address = useLumiaPassportSession((st) => st.address);
|
|
8743
|
+
const { mode = "restore", serverRecoveryStatus } = props;
|
|
8744
8744
|
const {
|
|
8745
8745
|
method: selectedRecoveryMethod,
|
|
8746
8746
|
setMethod,
|
|
@@ -8750,16 +8750,8 @@ function MethodSelector(props) {
|
|
|
8750
8750
|
setError,
|
|
8751
8751
|
setSuccess
|
|
8752
8752
|
} = useRestoreStore();
|
|
8753
|
-
const { data: serverRecoveryStatus, isFetching: isBackupStatusLoading } = (0, import_react_query15.useQuery)({
|
|
8754
|
-
retry: false,
|
|
8755
|
-
queryKey: [CHECK_BACKUP_QUERY_KEY, address],
|
|
8756
|
-
queryFn: async () => await getShareRecoveryStats()
|
|
8757
|
-
});
|
|
8758
|
-
(0, import_react28.useEffect)(() => {
|
|
8759
|
-
qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY] });
|
|
8760
|
-
}, [qc]);
|
|
8761
8753
|
const recoveryRenderMethods = (0, import_react28.useMemo)(() => {
|
|
8762
|
-
const methodsWithBackupData =
|
|
8754
|
+
const methodsWithBackupData = restoreMethodes(mode).map((mt) => {
|
|
8763
8755
|
const lastCreatedBackupMethod = serverRecoveryStatus?.created?.encryptionMethod;
|
|
8764
8756
|
let data = null;
|
|
8765
8757
|
switch (true) {
|
|
@@ -8781,19 +8773,21 @@ function MethodSelector(props) {
|
|
|
8781
8773
|
}, [mode, serverRecoveryStatus]);
|
|
8782
8774
|
if (!!selectedRecoveryMethod) return null;
|
|
8783
8775
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react28.Fragment, { children: [
|
|
8784
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "block w-full text-xs font-semibold text-center leading-8 text-[var(--l-pass-fg-muted)]", children:
|
|
8776
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "block w-full text-xs font-semibold text-center leading-8 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "leading-8", children: mode === "restore" ? "Choose restore method" : "Create or Update Backup via" }) }),
|
|
8785
8777
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
8786
8778
|
"div",
|
|
8787
8779
|
{
|
|
8788
8780
|
style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
|
|
8789
8781
|
className: "w-full grid gap-[var(--l-pass-gap)]",
|
|
8790
|
-
children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon, data }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full h-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
8791
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.
|
|
8782
|
+
children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon, data }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full h-full flex flex-col items-center gap-[var(--l-pass-gap)]", children: [
|
|
8783
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
8792
8784
|
Button,
|
|
8793
8785
|
{
|
|
8794
|
-
size: "
|
|
8786
|
+
size: "icon",
|
|
8787
|
+
variant: "outline",
|
|
8795
8788
|
type: "button",
|
|
8796
|
-
|
|
8789
|
+
style: { height: "unset", maxWidth: "96px" },
|
|
8790
|
+
className: "w-full aspect-square h-unset rounded-[var(--l-pass-el-bdrs)]",
|
|
8797
8791
|
onClick: () => {
|
|
8798
8792
|
setRestorePassword("");
|
|
8799
8793
|
setRestoreFile(null);
|
|
@@ -8802,31 +8796,23 @@ function MethodSelector(props) {
|
|
|
8802
8796
|
setSuccess(null);
|
|
8803
8797
|
setMethod(recoveryMethod);
|
|
8804
8798
|
},
|
|
8805
|
-
children:
|
|
8806
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { className: "h-6 w-6" }),
|
|
8807
|
-
label
|
|
8808
|
-
]
|
|
8799
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { className: "w-5 h-5 md:w-8 md:h-8" })
|
|
8809
8800
|
}
|
|
8810
8801
|
),
|
|
8811
|
-
|
|
8812
|
-
"span",
|
|
8813
|
-
{
|
|
8814
|
-
className: cn(
|
|
8815
|
-
"flex w-full h-fit items-center gap-[var(--l-pass-gap)]",
|
|
8816
|
-
"rounded-[var(--l-pass-el-bdrs)] p-[var(--l-pass-pd)]",
|
|
8817
|
-
"bg-[var(--l-pass-bg-success)]",
|
|
8818
|
-
"text-[10px] text-black"
|
|
8819
|
-
),
|
|
8820
|
-
children: [
|
|
8821
|
-
`Last ${label} backup:`,
|
|
8822
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("br", {}),
|
|
8823
|
-
typeof data.lastBackup === "number" ? new Date(data.lastBackup).toLocaleString() : data.lastBackup.toUpperCase()
|
|
8824
|
-
]
|
|
8825
|
-
}
|
|
8826
|
-
)
|
|
8802
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-xs font-bold leading-4", children: label })
|
|
8827
8803
|
] }, recoveryMethod))
|
|
8828
8804
|
}
|
|
8829
|
-
)
|
|
8805
|
+
),
|
|
8806
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-gap)]", children: recoveryRenderMethods.filter((el) => !!el.data?.lastBackup).map(({ data, label, Icon }, methodIdx) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Highlight, { type: "info", children: [
|
|
8807
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { children: [
|
|
8808
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { className: "w-4 h-4 inline" }),
|
|
8809
|
+
" Last ",
|
|
8810
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("strong", { children: label }),
|
|
8811
|
+
" backup:"
|
|
8812
|
+
] }),
|
|
8813
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("br", {}),
|
|
8814
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-[10px] font-mono", children: typeof data.lastBackup === "number" ? new Date(data.lastBackup).toLocaleString() : data.lastBackup.toUpperCase() })
|
|
8815
|
+
] }, `${label}-${methodIdx}`)) })
|
|
8830
8816
|
] });
|
|
8831
8817
|
}
|
|
8832
8818
|
|
|
@@ -8839,7 +8825,7 @@ function NoBackupFound(props) {
|
|
|
8839
8825
|
const { isLoading, restoreFromFile } = props;
|
|
8840
8826
|
const { restoreFile, setRestoreFile } = useRestoreStore();
|
|
8841
8827
|
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
8842
|
-
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Highlight, { type: "
|
|
8828
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
|
|
8843
8829
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react21.AlertCircle, { className: "h-4 w-4 flex-0" }),
|
|
8844
8830
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
|
|
8845
8831
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "block w-full text-xl leading-5 font-semibold", children: "No Keyshare Found! Account Recovery Needed" }),
|
|
@@ -8901,7 +8887,7 @@ function File2(props) {
|
|
|
8901
8887
|
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react22.ArrowLeft, { className: "h-4 w-4" })
|
|
8902
8888
|
}
|
|
8903
8889
|
),
|
|
8904
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-
|
|
8890
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} File Backup` })
|
|
8905
8891
|
] }),
|
|
8906
8892
|
mode === "restore" && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("label", { className: "block w-full flex items-center justify-center cursor-pointer p-[var(--l-pass-pd)] bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8907
8893
|
"input",
|
|
@@ -9005,40 +8991,54 @@ function Server(props) {
|
|
|
9005
8991
|
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.ArrowLeft, { className: "h-4 w-4" })
|
|
9006
8992
|
}
|
|
9007
8993
|
),
|
|
9008
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-
|
|
8994
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} Server Backup` })
|
|
9009
8995
|
] }),
|
|
9010
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex
|
|
8996
|
+
!usePasskey ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
|
|
9011
8997
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9012
|
-
|
|
8998
|
+
Input,
|
|
9013
8999
|
{
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
|
|
9000
|
+
autoComplete: "off",
|
|
9001
|
+
Icon: import_lucide_react24.ServerIcon,
|
|
9002
|
+
type: showPassword ? "text" : "password",
|
|
9003
|
+
placeholder: "Your backup password",
|
|
9004
|
+
value: restorePassword,
|
|
9005
|
+
onChange: (e) => setRestorePassword(e.target.value),
|
|
9006
|
+
className: "flex-1",
|
|
9007
|
+
onKeyDown: (e) => {
|
|
9008
|
+
if (e.key === "Enter" && !isLoading && restorePassword) actionRef.current?.click();
|
|
9009
|
+
},
|
|
9010
|
+
element: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9011
|
+
Button,
|
|
9012
|
+
{
|
|
9013
|
+
variant: "ghost",
|
|
9014
|
+
size: "icon",
|
|
9015
|
+
type: "button",
|
|
9016
|
+
title: "Restore using Password",
|
|
9017
|
+
disabled: isLoading,
|
|
9018
|
+
onClick: () => setShowPassword(!showPassword),
|
|
9019
|
+
children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.Eye, { className: "h-4 w-4" })
|
|
9020
|
+
}
|
|
9021
|
+
)
|
|
9018
9022
|
}
|
|
9019
9023
|
),
|
|
9020
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
},
|
|
9034
|
-
element: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button, { variant: "ghost", size: "icon", type: "button", onClick: () => setShowPassword(!showPassword), children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.Eye, { className: "h-4 w-4" }) })
|
|
9035
|
-
}
|
|
9036
|
-
),
|
|
9037
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
9024
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9025
|
+
Button,
|
|
9026
|
+
{
|
|
9027
|
+
ref: actionRef,
|
|
9028
|
+
size: "icon",
|
|
9029
|
+
variant: "default",
|
|
9030
|
+
onClick: serverHandler,
|
|
9031
|
+
disabled: isLoading || !usePasskey && !restorePassword,
|
|
9032
|
+
className: "w-full w-12 h-12 flex-shrink-0 rounded-[var(--l-pass-el-bdrs)]",
|
|
9033
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react24.ChevronRight, { className: "h-4 w-4" })
|
|
9034
|
+
}
|
|
9035
|
+
)
|
|
9036
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
9038
9037
|
Button,
|
|
9039
9038
|
{
|
|
9040
9039
|
ref: actionRef,
|
|
9041
9040
|
size: "large",
|
|
9041
|
+
title: "Restore using Passkey",
|
|
9042
9042
|
onClick: serverHandler,
|
|
9043
9043
|
disabled: isLoading || !usePasskey && !restorePassword,
|
|
9044
9044
|
className: "w-full",
|
|
@@ -9047,12 +9047,27 @@ function Server(props) {
|
|
|
9047
9047
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { children: isLoading ? loadingText : `${actionText} with ${passkeyOrPassword}` })
|
|
9048
9048
|
]
|
|
9049
9049
|
}
|
|
9050
|
-
)
|
|
9050
|
+
),
|
|
9051
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
9052
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
9053
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
9054
|
+
Checkbox,
|
|
9055
|
+
{
|
|
9056
|
+
id: "use-backup-password",
|
|
9057
|
+
name: "use-backup-password-checkbox",
|
|
9058
|
+
checked: usePasskey,
|
|
9059
|
+
onCheckedChange: (checked) => setUsePasskey(!!checked)
|
|
9060
|
+
}
|
|
9061
|
+
),
|
|
9062
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("label", { htmlFor: "use-backup-password", className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Use passkey instead of password" })
|
|
9063
|
+
] }),
|
|
9064
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-[10px] text-[var(--l-pass-fg-muted)]", children: "* use this option if you used passkey as encryption to create your server backup, otherwise use password" })
|
|
9065
|
+
] })
|
|
9051
9066
|
] });
|
|
9052
9067
|
}
|
|
9053
9068
|
|
|
9054
9069
|
// src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
|
|
9055
|
-
var
|
|
9070
|
+
var import_react_query15 = require("@tanstack/react-query");
|
|
9056
9071
|
var import_lucide_react25 = require("lucide-react");
|
|
9057
9072
|
var import_react30 = require("react");
|
|
9058
9073
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
@@ -9065,7 +9080,7 @@ function Cloud2(props) {
|
|
|
9065
9080
|
data: cloudProviders = [],
|
|
9066
9081
|
isLoading: isCloudProvidersLoading,
|
|
9067
9082
|
error: cloudProvidersError
|
|
9068
|
-
} = (0,
|
|
9083
|
+
} = (0, import_react_query15.useQuery)({
|
|
9069
9084
|
retry: false,
|
|
9070
9085
|
enabled: !!passportUserId,
|
|
9071
9086
|
queryKey: [AVAILABLE_CLOUD_PROVIDERS_QUERY_KEY, passportUserId],
|
|
@@ -9103,7 +9118,7 @@ function Cloud2(props) {
|
|
|
9103
9118
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react25.ArrowLeft, { className: "h-4 w-4" })
|
|
9104
9119
|
}
|
|
9105
9120
|
),
|
|
9106
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-
|
|
9121
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} Cloud Backup` })
|
|
9107
9122
|
] }),
|
|
9108
9123
|
isCloudProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react25.Loader, { className: "animate-spin w-4 h-4 mx-auto" }),
|
|
9109
9124
|
!isCloudProvidersLoading && cloudProviders.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
@@ -9140,10 +9155,10 @@ var RESTORE_COMPONENTS = {
|
|
|
9140
9155
|
file: File2
|
|
9141
9156
|
};
|
|
9142
9157
|
var KeyshareRestoreMenu = () => {
|
|
9143
|
-
const qc = (0,
|
|
9158
|
+
const qc = (0, import_react_query16.useQueryClient)();
|
|
9144
9159
|
const callbacks = useLumiaPassportConfig().callbacks;
|
|
9145
9160
|
const { address, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
|
|
9146
|
-
const { isFetching: isBackupStatusLoading } = (0,
|
|
9161
|
+
const { data: serverRecoveryStatus, isFetching: isBackupStatusLoading } = (0, import_react_query16.useQuery)({
|
|
9147
9162
|
retry: false,
|
|
9148
9163
|
queryKey: [CHECK_BACKUP_QUERY_KEY, address],
|
|
9149
9164
|
queryFn: async () => await getShareRecoveryStats()
|
|
@@ -9170,7 +9185,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9170
9185
|
restoreFromCloud,
|
|
9171
9186
|
isRestoringFromCloud
|
|
9172
9187
|
} = useRestoreAccount();
|
|
9173
|
-
const { mutate: disconnect, isPending: isDisconnecting } = (0,
|
|
9188
|
+
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query16.useMutation)({
|
|
9174
9189
|
mutationFn: async () => {
|
|
9175
9190
|
setError(null);
|
|
9176
9191
|
setMethod(null);
|
|
@@ -9191,7 +9206,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9191
9206
|
setIsLoading(false);
|
|
9192
9207
|
setIsDialogForced(false);
|
|
9193
9208
|
callbacks?.onLumiaPassportDisconnect?.({ address: "0x", userId: disconnectedUserId });
|
|
9194
|
-
setPage("auth" /* AUTH */);
|
|
9209
|
+
setTimeout(() => setPage("auth" /* AUTH */), 50);
|
|
9195
9210
|
},
|
|
9196
9211
|
onError: (err) => {
|
|
9197
9212
|
setError(err.message || "An unknown error occurred during sign out");
|
|
@@ -9207,24 +9222,24 @@ var KeyshareRestoreMenu = () => {
|
|
|
9207
9222
|
style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
|
|
9208
9223
|
className: "list-scrollbar-y w-full",
|
|
9209
9224
|
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
9210
|
-
checkingBackup && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
|
|
9225
|
+
(checkingBackup || isBackupStatusLoading) && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
|
|
9211
9226
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.Loader, { className: "w-5 h-5 animate-spin" }),
|
|
9212
9227
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." }),
|
|
9213
9228
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "block w-full text-xs leading-4", children: "Please wait while we check for available backups..." })
|
|
9214
9229
|
] }),
|
|
9215
|
-
!isBackupStatusLoading && !checkingBackup && !hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9230
|
+
!isBackupStatusLoading && !isDisconnecting && !checkingBackup && !hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9216
9231
|
NoBackupFound,
|
|
9217
9232
|
{
|
|
9218
9233
|
isLoading: isRestoringFromServer || isRestoringFromCloud || isRestoringFromFile || isDisconnecting,
|
|
9219
9234
|
restoreFromFile
|
|
9220
9235
|
}
|
|
9221
9236
|
),
|
|
9222
|
-
!success && !checkingBackup && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
9237
|
+
!success && !checkingBackup && !isBackupStatusLoading && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
9223
9238
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)] px-[var(--l-pass-pd)] py-[var(--l-pass-gap)]", children: [
|
|
9224
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.
|
|
9239
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.CloudDownload, { className: "w-6 h-6" }),
|
|
9225
9240
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
|
|
9226
9241
|
] }),
|
|
9227
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MethodSelector, { mode: "restore" }),
|
|
9242
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MethodSelector, { mode: "restore", serverRecoveryStatus }),
|
|
9228
9243
|
!!currentRestoreMethod && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9229
9244
|
RestoreComponent,
|
|
9230
9245
|
{
|
|
@@ -9235,7 +9250,7 @@ var KeyshareRestoreMenu = () => {
|
|
|
9235
9250
|
}
|
|
9236
9251
|
)
|
|
9237
9252
|
] }),
|
|
9238
|
-
!success && !currentRestoreMethod && !checkingBackup && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
9253
|
+
!success && !currentRestoreMethod && !checkingBackup && !isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
9239
9254
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-full mt-[var(--l-pass-gap)]", style: { borderTop: "1px solid var(--l-pass-bd)" } }),
|
|
9240
9255
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-full flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Or" }) }),
|
|
9241
9256
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
@@ -9247,8 +9262,8 @@ var KeyshareRestoreMenu = () => {
|
|
|
9247
9262
|
disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
|
|
9248
9263
|
className: "w-fit mx-auto",
|
|
9249
9264
|
children: [
|
|
9250
|
-
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.
|
|
9251
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { children: "
|
|
9265
|
+
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react26.UserCircle, { className: "w-4 h-4" }),
|
|
9266
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { children: "Try Another Account" })
|
|
9252
9267
|
]
|
|
9253
9268
|
}
|
|
9254
9269
|
)
|
|
@@ -9267,8 +9282,10 @@ var KeyshareRestoreMenu = () => {
|
|
|
9267
9282
|
};
|
|
9268
9283
|
|
|
9269
9284
|
// src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx
|
|
9285
|
+
var import_react_query17 = require("@tanstack/react-query");
|
|
9270
9286
|
var import_lucide_react27 = require("lucide-react");
|
|
9271
9287
|
var import_react32 = require("react");
|
|
9288
|
+
init_vaultClient();
|
|
9272
9289
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
9273
9290
|
var COMPONENTS = {
|
|
9274
9291
|
server: Server,
|
|
@@ -9277,6 +9294,7 @@ var COMPONENTS = {
|
|
|
9277
9294
|
};
|
|
9278
9295
|
var BACKUP_INFO_MESSAGE = "No existing backups found. Creating a backup will help you restore your account if you clear cache or lose access to this device.";
|
|
9279
9296
|
function KeyshareBackupMenu() {
|
|
9297
|
+
const address = useLumiaPassportSession((st) => st.address);
|
|
9280
9298
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
9281
9299
|
const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
|
|
9282
9300
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
@@ -9294,6 +9312,11 @@ function KeyshareBackupMenu() {
|
|
|
9294
9312
|
setShowPassword,
|
|
9295
9313
|
setUsePasskey
|
|
9296
9314
|
} = useRestoreStore();
|
|
9315
|
+
const { data: serverRecoveryStatus, isFetching: isBackupStatusLoading } = (0, import_react_query17.useQuery)({
|
|
9316
|
+
retry: false,
|
|
9317
|
+
queryKey: [CHECK_BACKUP_QUERY_KEY, address],
|
|
9318
|
+
queryFn: async () => await getShareRecoveryStats()
|
|
9319
|
+
});
|
|
9297
9320
|
const { hasRecoveryData, isRecoveryLoading } = useCheckBackupAvailability();
|
|
9298
9321
|
const {
|
|
9299
9322
|
isPasswordBackupCreating,
|
|
@@ -9336,30 +9359,17 @@ function KeyshareBackupMenu() {
|
|
|
9336
9359
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react27.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9337
9360
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "block flex-1", children: BACKUP_INFO_MESSAGE })
|
|
9338
9361
|
] }),
|
|
9339
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MethodSelector, { mode: "backup" }),
|
|
9340
|
-
!!currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime44.
|
|
9341
|
-
|
|
9342
|
-
|
|
9343
|
-
|
|
9344
|
-
|
|
9345
|
-
|
|
9346
|
-
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
|
|
9350
|
-
),
|
|
9351
|
-
currentBackupMethod === "server" && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Highlight, { className: "flex items-start gap-[var(--l-pass-gap)]", type: "info", children: [
|
|
9352
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react27.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9353
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { children: [
|
|
9354
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "font-medium", children: "Security Notice:" }),
|
|
9355
|
-
" All backups are encrypted with AES-256 using your ",
|
|
9356
|
-
usePasskey ? "passkey" : "custom password",
|
|
9357
|
-
".",
|
|
9358
|
-
usePasskey ? " Your passkey authenticator is required to restore backups. " : " Store your password securely - ",
|
|
9359
|
-
"Without backup access, you cannot recover your account if you lose this device."
|
|
9360
|
-
] })
|
|
9361
|
-
] })
|
|
9362
|
-
] }),
|
|
9362
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MethodSelector, { mode: "backup", serverRecoveryStatus }),
|
|
9363
|
+
!!currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9364
|
+
BackupComponent,
|
|
9365
|
+
{
|
|
9366
|
+
mode: "backup",
|
|
9367
|
+
isLoading: isPasswordBackupCreating || isCloudBackupCreating || isLocalBackupCreating,
|
|
9368
|
+
fileHandler: createLocalBackup,
|
|
9369
|
+
serverHandler: createPasswordBackup,
|
|
9370
|
+
cloudHandler: createCloudBackup
|
|
9371
|
+
}
|
|
9372
|
+
) }),
|
|
9363
9373
|
error && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
9364
9374
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react27.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
9365
9375
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "block w-full flex-1", children: error })
|
|
@@ -10017,6 +10027,10 @@ function ProviderCard(props) {
|
|
|
10017
10027
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10018
10028
|
const setConfirmUnlink = useManageWalletStore((st) => st.setConfirmUnlink);
|
|
10019
10029
|
const { data: providers = [] } = useProvidersList();
|
|
10030
|
+
if (!props?.provider) {
|
|
10031
|
+
console.warn("[ProviderCard] Received undefined provider");
|
|
10032
|
+
return null;
|
|
10033
|
+
}
|
|
10020
10034
|
const canUnlink = (p) => {
|
|
10021
10035
|
const verified = providers.filter((x) => x.verified);
|
|
10022
10036
|
if (verified.length <= 1 && p.verified) return false;
|
|
@@ -10108,16 +10122,24 @@ function ManageWalletMenu() {
|
|
|
10108
10122
|
const configuredProviders = getConfiguredProviders(config);
|
|
10109
10123
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
10110
10124
|
const renderProviders = (0, import_react37.useMemo)(() => {
|
|
10111
|
-
const
|
|
10125
|
+
const normalizeProviderName = (name) => {
|
|
10126
|
+
if (name === "x") return "twitter";
|
|
10127
|
+
return name;
|
|
10128
|
+
};
|
|
10129
|
+
const usedProviders = (0, import_lodash_es3.fromPairs)(
|
|
10130
|
+
providers.map((p) => [normalizeProviderName(p.provider), true])
|
|
10131
|
+
);
|
|
10112
10132
|
const used = [];
|
|
10113
10133
|
const unused = [];
|
|
10114
10134
|
POSSIBLE_PROVIDERS.forEach((provider, providerIdx) => {
|
|
10115
10135
|
if (!configuredProviders[provider]) return;
|
|
10116
10136
|
const Icon = PROVIDERS_META2[provider].icon;
|
|
10117
10137
|
if (usedProviders[provider]) {
|
|
10118
|
-
|
|
10119
|
-
|
|
10120
|
-
)
|
|
10138
|
+
const apiProviderName = provider === "twitter" ? "x" : provider;
|
|
10139
|
+
const providerData = providers.find((p) => p.provider === apiProviderName || p.provider === provider);
|
|
10140
|
+
if (providerData) {
|
|
10141
|
+
used.push(/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProviderCard, { ...providerData }, `${provider}-${providerIdx}`));
|
|
10142
|
+
}
|
|
10121
10143
|
} else {
|
|
10122
10144
|
unused.push(
|
|
10123
10145
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
@@ -10695,7 +10717,7 @@ function PortfolioItem(props) {
|
|
|
10695
10717
|
"flex-none flex items-center justify-center overflow-hidden relative",
|
|
10696
10718
|
"group-hover:opacity-60 transition-opacity",
|
|
10697
10719
|
// NFTs get rounded corners, tokens get circular
|
|
10698
|
-
isNft ? "w-12 h-12 rounded-
|
|
10720
|
+
isNft ? "w-12 h-12 rounded-[var(--l-pass-el-bdrs)]" : "w-12 h-12 rounded-full",
|
|
10699
10721
|
(!asset.logo || logoError) && !nftImage && "bg-[var(--l-pass-fg)]"
|
|
10700
10722
|
),
|
|
10701
10723
|
children: [
|
|
@@ -10733,7 +10755,14 @@ function PortfolioItem(props) {
|
|
|
10733
10755
|
),
|
|
10734
10756
|
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex-1", children: [
|
|
10735
10757
|
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex items-center justify-between text-xs", children: [
|
|
10736
|
-
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
10758
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
10759
|
+
"span",
|
|
10760
|
+
{
|
|
10761
|
+
className: "truncate max-w-[150px]",
|
|
10762
|
+
title: isNft ? asset.nftMetadata?.collectionName || asset.name : asset.name,
|
|
10763
|
+
children: isNft ? asset.nftMetadata?.collectionName || asset.name || (asset.address ? `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` : "Unknown") : asset.name || (asset.address ? `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` : "Unknown")
|
|
10764
|
+
}
|
|
10765
|
+
),
|
|
10737
10766
|
!isProjectAsset && !isNft && !isSecurity && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "USD" }),
|
|
10738
10767
|
isNft && "type" in asset && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-[var(--l-pass-fg-muted)] uppercase text-[10px]", children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" }),
|
|
10739
10768
|
isSecurity && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-amber-500 uppercase text-[10px] font-medium", children: "Security Token" })
|
|
@@ -10780,15 +10809,15 @@ function PortfolioMenu() {
|
|
|
10780
10809
|
Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
10781
10810
|
refreshBalances();
|
|
10782
10811
|
}, [qc, projectAssets, refreshBalances]);
|
|
10783
|
-
return /* @__PURE__ */ (0, import_jsx_runtime53.
|
|
10812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
10784
10813
|
"div",
|
|
10785
10814
|
{
|
|
10786
10815
|
style: {
|
|
10787
10816
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10788
10817
|
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
10789
10818
|
},
|
|
10790
|
-
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]
|
|
10791
|
-
children: [
|
|
10819
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
10820
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
10792
10821
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
10793
10822
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react35.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
10794
10823
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
|
|
@@ -10804,46 +10833,102 @@ function PortfolioMenu() {
|
|
|
10804
10833
|
}
|
|
10805
10834
|
)
|
|
10806
10835
|
] }),
|
|
10807
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex
|
|
10808
|
-
|
|
10809
|
-
|
|
10810
|
-
|
|
10811
|
-
|
|
10812
|
-
|
|
10813
|
-
|
|
10814
|
-
|
|
10815
|
-
|
|
10816
|
-
|
|
10817
|
-
|
|
10818
|
-
|
|
10819
|
-
|
|
10820
|
-
|
|
10821
|
-
|
|
10822
|
-
|
|
10823
|
-
|
|
10824
|
-
|
|
10825
|
-
|
|
10826
|
-
|
|
10827
|
-
|
|
10828
|
-
|
|
10829
|
-
))
|
|
10830
|
-
] })
|
|
10836
|
+
error && !isBlockscoutAvailable && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex items-center gap-2 p-3 rounded-lg bg-[var(--l-pass-warning-bg)] text-[var(--l-pass-warning)]", children: [
|
|
10837
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react35.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
|
|
10838
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-sm", children: error.message })
|
|
10839
|
+
] }),
|
|
10840
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
|
|
10841
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react35.Loader, { className: "h-5 w-5 animate-spin" }),
|
|
10842
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
|
|
10843
|
+
] }),
|
|
10844
|
+
!isLoading && assets.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
|
|
10845
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react35.Gem, { className: "w-12 h-12 mb-2" }),
|
|
10846
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { children: "No assets found" })
|
|
10847
|
+
] }),
|
|
10848
|
+
!isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
|
|
10849
|
+
projectAssets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
|
|
10850
|
+
assets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
10851
|
+
PortfolioItem,
|
|
10852
|
+
{
|
|
10853
|
+
address,
|
|
10854
|
+
asset
|
|
10855
|
+
},
|
|
10856
|
+
`${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
|
|
10857
|
+
))
|
|
10831
10858
|
] })
|
|
10832
|
-
]
|
|
10859
|
+
] })
|
|
10833
10860
|
}
|
|
10834
10861
|
);
|
|
10835
10862
|
}
|
|
10836
10863
|
|
|
10837
10864
|
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
10838
10865
|
var import_react_query30 = require("@tanstack/react-query");
|
|
10839
|
-
var
|
|
10866
|
+
var import_lucide_react39 = require("lucide-react");
|
|
10840
10867
|
var import_react42 = require("react");
|
|
10841
10868
|
init_auth();
|
|
10842
10869
|
init_keyshare();
|
|
10843
10870
|
init_iframe_manager();
|
|
10844
10871
|
init_vaultClient();
|
|
10845
|
-
|
|
10872
|
+
|
|
10873
|
+
// src/internal/components/SecurityMenu/constants.ts
|
|
10846
10874
|
var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
|
|
10875
|
+
|
|
10876
|
+
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
10877
|
+
var import_lucide_react38 = require("lucide-react");
|
|
10878
|
+
|
|
10879
|
+
// src/internal/assets/NegativeIcon.tsx
|
|
10880
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
10881
|
+
function NegativeIcon(props) {
|
|
10882
|
+
const { width = "16", height = "16", ...rest } = props;
|
|
10883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("svg", { ...rest, width, height, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
10884
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("rect", { width: "16", height: "16", rx: "8", fill: "var(--l-pass-bg-error)" }),
|
|
10885
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M10.8048 5.19482L5.19434 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" }),
|
|
10886
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M5.19421 5.19482L10.8047 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" })
|
|
10887
|
+
] });
|
|
10888
|
+
}
|
|
10889
|
+
|
|
10890
|
+
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
10891
|
+
init_vaultClient();
|
|
10892
|
+
|
|
10893
|
+
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
10894
|
+
var import_lucide_react36 = require("lucide-react");
|
|
10895
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
10896
|
+
function KeyshareStatus(props) {
|
|
10897
|
+
const { isLoading, content, icon: Icon, children } = props;
|
|
10898
|
+
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react36.Loader, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
|
|
10899
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "group relative w-full h-full", children: [
|
|
10900
|
+
children,
|
|
10901
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
10902
|
+
"div",
|
|
10903
|
+
{
|
|
10904
|
+
className: cn(
|
|
10905
|
+
"absolute -top-2 -right-2 w-6 h-6 flex items-center justify-center",
|
|
10906
|
+
"rounded-full bg-[var(--l-pass-bg)]"
|
|
10907
|
+
// 'border border-[var(--l-pass-bd)]'
|
|
10908
|
+
),
|
|
10909
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon, { className: "w-4 h-4" })
|
|
10910
|
+
}
|
|
10911
|
+
),
|
|
10912
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
10913
|
+
"div",
|
|
10914
|
+
{
|
|
10915
|
+
style: { transform: "translateY(calc(var(--l-pass-gap) * -4))" },
|
|
10916
|
+
className: cn(
|
|
10917
|
+
"transition-opacity pointer-events-none z-50",
|
|
10918
|
+
"absolute top-0 right-0 max-w-full",
|
|
10919
|
+
"px-2 py-1 bg-[var(--l-pass-bg)] text-[var(--l-pass-fg)] text-[10px] rounded-[var(--l-pass-el-bdrs)]",
|
|
10920
|
+
"border border-[var(--l-pass-bd)]",
|
|
10921
|
+
"opacity-0 group-hover:opacity-100"
|
|
10922
|
+
),
|
|
10923
|
+
children: content
|
|
10924
|
+
}
|
|
10925
|
+
)
|
|
10926
|
+
] });
|
|
10927
|
+
}
|
|
10928
|
+
|
|
10929
|
+
// src/internal/components/SecurityMenu/Keyshare/LastBackup.tsx
|
|
10930
|
+
var import_lucide_react37 = require("lucide-react");
|
|
10931
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
10847
10932
|
function parseOS(ua) {
|
|
10848
10933
|
if (!ua) return null;
|
|
10849
10934
|
if (ua.includes("Mac OS X")) return "macOS";
|
|
@@ -10853,29 +10938,128 @@ function parseOS(ua) {
|
|
|
10853
10938
|
if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
|
|
10854
10939
|
return null;
|
|
10855
10940
|
}
|
|
10941
|
+
function LastBackup(props) {
|
|
10942
|
+
const { backup, createdRecoveryStats } = props;
|
|
10943
|
+
const {
|
|
10944
|
+
at: recoveryCreatedAt,
|
|
10945
|
+
browser: recoveryBrowser,
|
|
10946
|
+
ua: recoveryUa,
|
|
10947
|
+
deviceId: recoveryDeviceId,
|
|
10948
|
+
deviceName: recoveryDeviceName
|
|
10949
|
+
// country: recoveryCountry
|
|
10950
|
+
} = createdRecoveryStats || {};
|
|
10951
|
+
const hasBackupData = backup?.server?.enabled && backup.server.lastBackup || !backup.server.lastBackup && recoveryCreatedAt || backup.cloud.enabled && backup.cloud?.lastBackup || backup.local.enabled && backup.local.lastBackup;
|
|
10952
|
+
if (!hasBackupData) return null;
|
|
10953
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Highlight, { type: "info", className: "flex flex-col gap-[var(--l-pass-gap)] text-[10px] leading-tight", children: [
|
|
10954
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: "block font-bold text-xs", children: [
|
|
10955
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react37.Server, { className: "w-4 h-4 inline" }),
|
|
10956
|
+
" Last Keyshare Vault Backup"
|
|
10957
|
+
] }),
|
|
10958
|
+
recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
|
|
10959
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Created At:" }),
|
|
10960
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: new Date(recoveryCreatedAt).toLocaleString() }),
|
|
10961
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: "Via:" }),
|
|
10962
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: `${recoveryBrowser || "UNKNOWN"} browser at ${recoveryDeviceName || "UNKNOWN"} device under ${parseOS(recoveryUa) || "UNKNOWN"} OS` })
|
|
10963
|
+
] }),
|
|
10964
|
+
backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
10965
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react37.Cloud, { className: "h-3 w-3" }),
|
|
10966
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { children: [
|
|
10967
|
+
"Cloud: ",
|
|
10968
|
+
new Date(backup.cloud.lastBackup).toLocaleString()
|
|
10969
|
+
] })
|
|
10970
|
+
] }),
|
|
10971
|
+
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
10972
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react37.HardDrive, { className: "h-3 w-3" }),
|
|
10973
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { children: [
|
|
10974
|
+
"Local: ",
|
|
10975
|
+
new Date(backup.local.lastBackup).toLocaleString()
|
|
10976
|
+
] })
|
|
10977
|
+
] })
|
|
10978
|
+
] });
|
|
10979
|
+
}
|
|
10980
|
+
|
|
10981
|
+
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
10982
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
10983
|
+
function Keyshare(props) {
|
|
10984
|
+
const { userId, serverHasKeyshare, localInfo, hasServerBackup, createdRecoveryStats, isLoading, refresh } = props;
|
|
10985
|
+
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10986
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
|
|
10987
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
10988
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
10989
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react38.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react38.RefreshCw, { className: "h-4 w-4" }) })
|
|
10990
|
+
] }),
|
|
10991
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)] px-[var(--l-pass-gap)]", children: [
|
|
10992
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
10993
|
+
KeyshareStatus,
|
|
10994
|
+
{
|
|
10995
|
+
content: serverHasKeyshare ? "Your Server Security Key Share is safe and ready" : "Server Security Key Share is missing",
|
|
10996
|
+
icon: serverHasKeyshare ? PositiveIcon : NegativeIcon,
|
|
10997
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
10998
|
+
Highlight,
|
|
10999
|
+
{
|
|
11000
|
+
type: serverHasKeyshare ? "success" : "warning",
|
|
11001
|
+
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11002
|
+
children: [
|
|
11003
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react38.Cloud, { className: "h-6 w-6" }),
|
|
11004
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Server Share" })
|
|
11005
|
+
]
|
|
11006
|
+
}
|
|
11007
|
+
)
|
|
11008
|
+
}
|
|
11009
|
+
),
|
|
11010
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11011
|
+
KeyshareStatus,
|
|
11012
|
+
{
|
|
11013
|
+
content: localInfo?.hasKeyshare ? "Your Private Local Security Key Share is safe and ready" : "Private Local Security Key Share is missing",
|
|
11014
|
+
icon: localInfo?.hasKeyshare ? PositiveIcon : NegativeIcon,
|
|
11015
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
11016
|
+
Highlight,
|
|
11017
|
+
{
|
|
11018
|
+
type: localInfo?.hasKeyshare ? "success" : "warning",
|
|
11019
|
+
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11020
|
+
children: [
|
|
11021
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react38.Laptop, { className: "h-6 w-6" }),
|
|
11022
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Local Share" })
|
|
11023
|
+
]
|
|
11024
|
+
}
|
|
11025
|
+
)
|
|
11026
|
+
}
|
|
11027
|
+
),
|
|
11028
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
11029
|
+
KeyshareStatus,
|
|
11030
|
+
{
|
|
11031
|
+
content: hasServerBackup ? "Security Key Share Vault Backup exists and ready" : "Security Key Share Vault Backup Missing. Create one to ensure your data is safe.",
|
|
11032
|
+
icon: hasServerBackup ? PositiveIcon : NegativeIcon,
|
|
11033
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
11034
|
+
Highlight,
|
|
11035
|
+
{
|
|
11036
|
+
type: hasServerBackup ? "success" : "warning",
|
|
11037
|
+
className: "w-full h-full flex flex-col items-center gap-0",
|
|
11038
|
+
children: [
|
|
11039
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react38.Server, { className: "h-6 w-6" }),
|
|
11040
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-[10px] font-medium leading-4", children: "Backup Vault" })
|
|
11041
|
+
]
|
|
11042
|
+
}
|
|
11043
|
+
)
|
|
11044
|
+
}
|
|
11045
|
+
)
|
|
11046
|
+
] }),
|
|
11047
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(LastBackup, { backup, createdRecoveryStats }),
|
|
11048
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
11049
|
+
] });
|
|
11050
|
+
}
|
|
11051
|
+
|
|
11052
|
+
// src/internal/components/SecurityMenu/SecurityMenu.tsx
|
|
11053
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
10856
11054
|
function SecurityMenu() {
|
|
10857
11055
|
const qc = (0, import_react_query30.useQueryClient)();
|
|
10858
11056
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
10859
11057
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
10860
11058
|
const userId = import_auth3.jwtTokenManager.getUserId();
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
}, [userId, setPage]);
|
|
10864
|
-
const [localInfo, setLocalInfo] = (0, import_react42.useState)(null);
|
|
10865
|
-
const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react42.useState)(null);
|
|
10866
|
-
const [recoveryBrowser, setRecoveryBrowser] = (0, import_react42.useState)(null);
|
|
10867
|
-
const [recoveryUa, setRecoveryUa] = (0, import_react42.useState)(null);
|
|
10868
|
-
const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react42.useState)(null);
|
|
10869
|
-
const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react42.useState)(null);
|
|
10870
|
-
const [recoveryCountry, setRecoveryCountry] = (0, import_react42.useState)(null);
|
|
10871
|
-
const [hasServerBackup, setHasServerBackup] = (0, import_react42.useState)(false);
|
|
10872
|
-
const [trustedApps, setTrustedApps] = (0, import_react42.useState)([]);
|
|
11059
|
+
const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
11060
|
+
const [isRemoving, setIsRemoving] = (0, import_react42.useState)(false);
|
|
10873
11061
|
const [appToRemove, setAppToRemove] = (0, import_react42.useState)(null);
|
|
10874
|
-
const {
|
|
10875
|
-
data: recoveryData,
|
|
10876
|
-
isFetching: isRecoveryRefreshing
|
|
10877
|
-
// error: recoveryError
|
|
10878
|
-
} = (0, import_react_query30.useQuery)({
|
|
11062
|
+
const { data: recoveryData, isFetching: isRecoveryLoading } = (0, import_react_query30.useQuery)({
|
|
10879
11063
|
enabled: !!userId,
|
|
10880
11064
|
queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
|
|
10881
11065
|
queryFn: async () => {
|
|
@@ -10889,238 +11073,162 @@ function SecurityMenu() {
|
|
|
10889
11073
|
return { trustedApps: trustedApps2, keyshareInfo, shareRecoveryStats };
|
|
10890
11074
|
}
|
|
10891
11075
|
});
|
|
10892
|
-
|
|
10893
|
-
|
|
10894
|
-
|
|
10895
|
-
setLocalInfo(keyshareInfo);
|
|
10896
|
-
setTrustedApps(trustedApps2);
|
|
10897
|
-
const hasRecoveryData = shareRecoveryStats && (shareRecoveryStats.created || shareRecoveryStats.devices && shareRecoveryStats.devices.length > 0);
|
|
10898
|
-
const created = shareRecoveryStats?.created;
|
|
10899
|
-
setHasServerBackup(!!hasRecoveryData);
|
|
10900
|
-
setRecoveryCreatedAt(created?.at || null);
|
|
10901
|
-
setRecoveryBrowser(created?.browser || null);
|
|
10902
|
-
setRecoveryUa(created?.ua || null);
|
|
10903
|
-
setRecoveryDeviceId(created?.deviceId || null);
|
|
10904
|
-
setRecoveryDeviceName(created?.deviceName || null);
|
|
10905
|
-
setRecoveryCountry(created?.country || null);
|
|
10906
|
-
}, [recoveryData]);
|
|
10907
|
-
const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
|
|
11076
|
+
const localInfo = recoveryData?.keyshareInfo || {};
|
|
11077
|
+
const trustedApps = recoveryData?.trustedApps || [];
|
|
11078
|
+
const hasServerBackup = !!recoveryData?.shareRecoveryStats?.created || recoveryData?.shareRecoveryStats?.devices?.length > 0;
|
|
10908
11079
|
const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
|
|
10909
|
-
|
|
11080
|
+
const handleRemoveTrustedApp = async () => {
|
|
11081
|
+
if (!userId || !appToRemove) return;
|
|
11082
|
+
setIsRemoving(true);
|
|
11083
|
+
try {
|
|
11084
|
+
const iframeManager = getIframeManager();
|
|
11085
|
+
if (!iframeManager) {
|
|
11086
|
+
throw new Error("Iframe manager not available");
|
|
11087
|
+
}
|
|
11088
|
+
const success = await iframeManager.removeTrustedApp(userId, appToRemove.projectId, appToRemove.origin);
|
|
11089
|
+
if (success) {
|
|
11090
|
+
qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] });
|
|
11091
|
+
setAppToRemove(null);
|
|
11092
|
+
} else {
|
|
11093
|
+
console.error("[SecurityMenu] Failed to remove trusted app");
|
|
11094
|
+
}
|
|
11095
|
+
} catch (error) {
|
|
11096
|
+
console.error("[SecurityMenu] Error removing trusted app:", error);
|
|
11097
|
+
} finally {
|
|
11098
|
+
setIsRemoving(false);
|
|
11099
|
+
}
|
|
11100
|
+
};
|
|
11101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
10910
11102
|
"div",
|
|
10911
11103
|
{
|
|
10912
11104
|
style: {
|
|
10913
11105
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
10914
11106
|
"--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
|
|
10915
11107
|
},
|
|
10916
|
-
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]
|
|
10917
|
-
children: [
|
|
10918
|
-
/* @__PURE__ */ (0,
|
|
10919
|
-
/* @__PURE__ */ (0,
|
|
10920
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-xl font-semibold", children: "Security" })
|
|
10921
|
-
] }),
|
|
10922
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
10923
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
|
|
10924
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
11108
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
11109
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11110
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11111
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
10925
11112
|
Button,
|
|
10926
11113
|
{
|
|
10927
11114
|
variant: "ghost",
|
|
10928
11115
|
size: "icon",
|
|
10929
|
-
title: "
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
|
|
11116
|
+
title: "Back",
|
|
11117
|
+
onClick: () => {
|
|
11118
|
+
if (!!appToRemove) setAppToRemove(null);
|
|
11119
|
+
else setPage("settings" /* SETTINGS */);
|
|
11120
|
+
},
|
|
11121
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react39.ArrowLeft, { className: "h-4 w-4" })
|
|
10933
11122
|
}
|
|
10934
|
-
)
|
|
11123
|
+
),
|
|
11124
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: "Security" })
|
|
10935
11125
|
] }),
|
|
10936
|
-
/* @__PURE__ */ (0,
|
|
10937
|
-
/* @__PURE__ */ (0,
|
|
10938
|
-
|
|
10939
|
-
|
|
10940
|
-
|
|
10941
|
-
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
|
|
10950
|
-
|
|
10951
|
-
|
|
10952
|
-
|
|
10953
|
-
|
|
10954
|
-
|
|
10955
|
-
|
|
10956
|
-
|
|
10957
|
-
|
|
10958
|
-
|
|
10959
|
-
|
|
11126
|
+
!appToRemove && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
|
|
11127
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11128
|
+
Keyshare,
|
|
11129
|
+
{
|
|
11130
|
+
userId,
|
|
11131
|
+
serverHasKeyshare,
|
|
11132
|
+
localInfo,
|
|
11133
|
+
hasServerBackup,
|
|
11134
|
+
isLoading: isRecoveryLoading,
|
|
11135
|
+
createdRecoveryStats: recoveryData?.shareRecoveryStats?.created,
|
|
11136
|
+
refresh: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] })
|
|
11137
|
+
}
|
|
11138
|
+
),
|
|
11139
|
+
trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
|
|
11140
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full space-y-2", children: [
|
|
11141
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
|
|
11142
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
11143
|
+
"div",
|
|
11144
|
+
{
|
|
11145
|
+
className: "text-[10px] leading-tight p-2 rounded flex items-center gap-2 bg-[var(--l-pass-secondary)]",
|
|
11146
|
+
children: [
|
|
11147
|
+
app.appLogo ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("img", { src: app.appLogo, alt: "", className: "w-8 h-8 rounded-md object-cover flex-shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-8 h-8 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm", children: "\u{1F517}" }) }),
|
|
11148
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
11149
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "font-medium truncate", children: app.appName || new URL(app.origin).hostname }),
|
|
11150
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "text-[var(--l-pass-fg-muted)] truncate", children: new URL(app.origin).hostname }),
|
|
11151
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
11152
|
+
"Trusted: ",
|
|
11153
|
+
new Date(app.trustedAt).toLocaleDateString()
|
|
11154
|
+
] })
|
|
11155
|
+
] }),
|
|
11156
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11157
|
+
Button,
|
|
11158
|
+
{
|
|
11159
|
+
variant: "ghost",
|
|
11160
|
+
size: "icon",
|
|
11161
|
+
title: "Remove from trusted",
|
|
11162
|
+
className: "text-[var(--l-pass-error)] flex-shrink-0",
|
|
11163
|
+
onClick: () => setAppToRemove({
|
|
11164
|
+
projectId: app.projectId,
|
|
11165
|
+
origin: app.origin,
|
|
11166
|
+
hostname: new URL(app.origin).hostname,
|
|
11167
|
+
appName: app.appName,
|
|
11168
|
+
appLogo: app.appLogo
|
|
11169
|
+
}),
|
|
11170
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react39.Trash2, { className: "h-3 w-3" })
|
|
11171
|
+
}
|
|
11172
|
+
)
|
|
11173
|
+
]
|
|
11174
|
+
},
|
|
11175
|
+
index
|
|
11176
|
+
)) })
|
|
10960
11177
|
] }),
|
|
10961
|
-
/* @__PURE__ */ (0,
|
|
10962
|
-
"span",
|
|
10963
|
-
{
|
|
10964
|
-
className: cn(
|
|
10965
|
-
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10966
|
-
localInfo?.hasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10967
|
-
),
|
|
10968
|
-
children: [
|
|
10969
|
-
localInfo?.hasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.CheckCircle2, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.AlertTriangle, { className: "h-4 w-4" }),
|
|
10970
|
-
localInfo?.hasKeyshare ? "Ready" : "Missing"
|
|
10971
|
-
]
|
|
10972
|
-
}
|
|
10973
|
-
)
|
|
11178
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } })
|
|
10974
11179
|
] }),
|
|
10975
|
-
/* @__PURE__ */ (0,
|
|
10976
|
-
/* @__PURE__ */ (0,
|
|
10977
|
-
/* @__PURE__ */ (0,
|
|
10978
|
-
|
|
11180
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Highlight, { className: "flex flex-col gap-[var(--l-pass-gap)] user-select-none", type: "warning", children: [
|
|
11181
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("label", { className: "cursor-pointer flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11182
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11183
|
+
Checkbox,
|
|
11184
|
+
{
|
|
11185
|
+
name: "paranoia-mode-checkbox"
|
|
11186
|
+
}
|
|
11187
|
+
),
|
|
11188
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm font-semibold", children: "Paranoia MODE (not implemented)" })
|
|
10979
11189
|
] }),
|
|
10980
|
-
/* @__PURE__ */ (0,
|
|
10981
|
-
"span",
|
|
10982
|
-
{
|
|
10983
|
-
className: cn(
|
|
10984
|
-
"inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
|
|
10985
|
-
hasServerBackup ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
|
|
10986
|
-
),
|
|
10987
|
-
children: [
|
|
10988
|
-
hasServerBackup ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.CheckCircle2, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.AlertTriangle, { className: "h-4 w-4" }),
|
|
10989
|
-
hasServerBackup ? "Ready" : "None"
|
|
10990
|
-
]
|
|
10991
|
-
}
|
|
10992
|
-
)
|
|
11190
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { children: "Paranoia mode description... (wip)" })
|
|
10993
11191
|
] })
|
|
10994
11192
|
] }),
|
|
10995
|
-
/* @__PURE__ */ (0,
|
|
10996
|
-
|
|
10997
|
-
|
|
10998
|
-
|
|
10999
|
-
/* @__PURE__ */ (0,
|
|
11000
|
-
/* @__PURE__ */ (0,
|
|
11001
|
-
|
|
11002
|
-
|
|
11003
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Size: " }),
|
|
11004
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
|
|
11005
|
-
] }),
|
|
11006
|
-
localInfo.sessionId && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11007
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Session: " }),
|
|
11008
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "font-mono break-all", children: localInfo.sessionId })
|
|
11009
|
-
] })
|
|
11010
|
-
] }),
|
|
11011
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
|
|
11012
|
-
backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11013
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.Server, { className: "h-2.5 w-2.5" }),
|
|
11014
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { children: [
|
|
11015
|
-
"Server: ",
|
|
11016
|
-
new Date(backup.server.lastBackup).toLocaleString()
|
|
11017
|
-
] })
|
|
11018
|
-
] }),
|
|
11019
|
-
!backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11020
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.Server, { className: "h-2.5 w-2.5" }),
|
|
11021
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { children: [
|
|
11022
|
-
"Server: ",
|
|
11023
|
-
new Date(recoveryCreatedAt).toLocaleString()
|
|
11193
|
+
!!appToRemove && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full", children: [
|
|
11194
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "text-center", children: [
|
|
11195
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
|
|
11196
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center justify-center gap-2 mb-3", children: [
|
|
11197
|
+
appToRemove.appLogo ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("img", { src: appToRemove.appLogo, alt: "", className: "w-10 h-10 rounded-md object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-10 h-10 rounded-md bg-[var(--l-pass-bg-muted)] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-lg", children: "\u{1F517}" }) }),
|
|
11198
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "text-left", children: [
|
|
11199
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "font-medium", children: appToRemove.appName || appToRemove.hostname }),
|
|
11200
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: appToRemove.hostname })
|
|
11024
11201
|
] })
|
|
11025
11202
|
] }),
|
|
11026
|
-
|
|
11027
|
-
/* @__PURE__ */ (0,
|
|
11028
|
-
/* @__PURE__ */ (0,
|
|
11029
|
-
"
|
|
11030
|
-
|
|
11203
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "text-xs text-[var(--l-pass-fg-muted)] text-left space-y-1 mb-4", children: [
|
|
11204
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { children: "After removing this application:" }),
|
|
11205
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("ul", { className: "list-disc list-inside ml-2 space-y-0.5", children: [
|
|
11206
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("li", { children: "All transactions will require confirmation" }),
|
|
11207
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("li", { children: 'You can re-add it anytime by checking "Trust this app"' })
|
|
11031
11208
|
] })
|
|
11032
|
-
] }),
|
|
11033
|
-
backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
11034
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.HardDrive, { className: "h-2.5 w-2.5" }),
|
|
11035
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { children: [
|
|
11036
|
-
"Local: ",
|
|
11037
|
-
new Date(backup.local.lastBackup).toLocaleString()
|
|
11038
|
-
] })
|
|
11039
|
-
] })
|
|
11040
|
-
] }),
|
|
11041
|
-
(recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Highlight, { type: "info", className: "space-y-0.5 text-[10px] leading-tight", children: [
|
|
11042
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "font-bold text-sm", children: "Device Information:" }),
|
|
11043
|
-
recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11044
|
-
"Created: ",
|
|
11045
|
-
new Date(recoveryCreatedAt).toLocaleString(),
|
|
11046
|
-
" "
|
|
11047
|
-
] }),
|
|
11048
|
-
recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11049
|
-
"Country: ",
|
|
11050
|
-
recoveryCountry
|
|
11051
|
-
] }),
|
|
11052
|
-
recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11053
|
-
"Browser: ",
|
|
11054
|
-
recoveryBrowser
|
|
11055
|
-
] }),
|
|
11056
|
-
parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11057
|
-
"OS: ",
|
|
11058
|
-
parseOS(recoveryUa)
|
|
11059
|
-
] }),
|
|
11060
|
-
recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11061
|
-
"Device: ",
|
|
11062
|
-
recoveryDeviceName
|
|
11063
|
-
] }),
|
|
11064
|
-
recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { children: [
|
|
11065
|
-
"Device ID: ",
|
|
11066
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "break-all", children: recoveryDeviceId })
|
|
11067
11209
|
] })
|
|
11068
11210
|
] }),
|
|
11069
|
-
|
|
11070
|
-
/* @__PURE__ */ (0,
|
|
11071
|
-
/* @__PURE__ */ (0,
|
|
11072
|
-
|
|
11073
|
-
{
|
|
11074
|
-
className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
|
|
11075
|
-
children: [
|
|
11076
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
11077
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "font-medium", children: new URL(app.origin).hostname }),
|
|
11078
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
|
|
11079
|
-
"Trusted: ",
|
|
11080
|
-
new Date(app.trustedAt).toLocaleDateString()
|
|
11081
|
-
] })
|
|
11082
|
-
] }),
|
|
11083
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
11084
|
-
Button,
|
|
11085
|
-
{
|
|
11086
|
-
variant: "ghost",
|
|
11087
|
-
size: "icon",
|
|
11088
|
-
title: "Remove from trusted",
|
|
11089
|
-
className: "text-[var(--l-pass-error)]",
|
|
11090
|
-
onClick: () => setAppToRemove({
|
|
11091
|
-
projectId: app.projectId,
|
|
11092
|
-
origin: app.origin,
|
|
11093
|
-
hostname: new URL(app.origin).hostname
|
|
11094
|
-
}),
|
|
11095
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react36.Trash2, { className: "h-3 w-3" })
|
|
11096
|
-
}
|
|
11097
|
-
)
|
|
11098
|
-
]
|
|
11099
|
-
},
|
|
11100
|
-
index
|
|
11101
|
-
)) })
|
|
11102
|
-
] })
|
|
11103
|
-
] }),
|
|
11104
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-full", style: { borderTop: "1px solid var(--l-pass-bd)" } }),
|
|
11105
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Highlight, { className: "flex flex-col gap-[var(--l-pass-gap)] user-select-none", type: "warning", children: [
|
|
11106
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("label", { className: "cursor-pointer flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11107
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
11108
|
-
Checkbox,
|
|
11211
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex gap-2", children: [
|
|
11212
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { variant: "outline", className: "flex-1", onClick: () => setAppToRemove(null), disabled: isRemoving, children: "Cancel" }),
|
|
11213
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11214
|
+
Button,
|
|
11109
11215
|
{
|
|
11110
|
-
|
|
11216
|
+
variant: "default",
|
|
11217
|
+
className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/60 active:bg-[var(--l-pass-error)]/40",
|
|
11218
|
+
onClick: handleRemoveTrustedApp,
|
|
11219
|
+
disabled: isRemoving,
|
|
11220
|
+
children: isRemoving ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react39.Loader, { className: "h-4 w-4 animate-spin" }) : "Remove"
|
|
11111
11221
|
}
|
|
11112
|
-
)
|
|
11113
|
-
|
|
11114
|
-
] }),
|
|
11115
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Paranoia mode description (not implemented)" })
|
|
11222
|
+
)
|
|
11223
|
+
] })
|
|
11116
11224
|
] })
|
|
11117
|
-
]
|
|
11225
|
+
] })
|
|
11118
11226
|
}
|
|
11119
11227
|
);
|
|
11120
11228
|
}
|
|
11121
11229
|
|
|
11122
11230
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11123
|
-
var
|
|
11231
|
+
var import_lucide_react40 = require("lucide-react");
|
|
11124
11232
|
var import_react45 = require("react");
|
|
11125
11233
|
var import_viem7 = require("viem");
|
|
11126
11234
|
var import_wagmi4 = require("wagmi");
|
|
@@ -11352,7 +11460,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
11352
11460
|
|
|
11353
11461
|
// src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
|
|
11354
11462
|
init_base();
|
|
11355
|
-
var
|
|
11463
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
11356
11464
|
function SendLumiaMenu() {
|
|
11357
11465
|
const page = useLayoutDataStore((st) => st.page);
|
|
11358
11466
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -11425,18 +11533,18 @@ function SendLumiaMenu() {
|
|
|
11425
11533
|
const maxAmount = Math.max(0, balance - 1e-3);
|
|
11426
11534
|
setAmount(maxAmount.toFixed(6));
|
|
11427
11535
|
};
|
|
11428
|
-
return /* @__PURE__ */ (0,
|
|
11429
|
-
/* @__PURE__ */ (0,
|
|
11430
|
-
txStep === "input" && /* @__PURE__ */ (0,
|
|
11431
|
-
/* @__PURE__ */ (0,
|
|
11536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11537
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11538
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react40.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11539
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
|
|
11432
11540
|
] }),
|
|
11433
|
-
txStep === "input" && /* @__PURE__ */ (0,
|
|
11434
|
-
/* @__PURE__ */ (0,
|
|
11435
|
-
/* @__PURE__ */ (0,
|
|
11436
|
-
/* @__PURE__ */ (0,
|
|
11541
|
+
txStep === "input" && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
11542
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
11543
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient Address" }),
|
|
11544
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11437
11545
|
Input,
|
|
11438
11546
|
{
|
|
11439
|
-
Icon:
|
|
11547
|
+
Icon: import_lucide_react40.Wallet,
|
|
11440
11548
|
type: "text",
|
|
11441
11549
|
value: recipient,
|
|
11442
11550
|
onChange: (e) => setRecipient(e.target.value),
|
|
@@ -11444,17 +11552,17 @@ function SendLumiaMenu() {
|
|
|
11444
11552
|
}
|
|
11445
11553
|
)
|
|
11446
11554
|
] }),
|
|
11447
|
-
/* @__PURE__ */ (0,
|
|
11448
|
-
/* @__PURE__ */ (0,
|
|
11449
|
-
/* @__PURE__ */ (0,
|
|
11450
|
-
/* @__PURE__ */ (0,
|
|
11555
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
11556
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex justify-between items-center", children: [
|
|
11557
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block text-sm font-medium text-[var(--l-pass-fg-muted)]", children: "Amount" }),
|
|
11558
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "block text-sm text-[var(--l-pass-fg-muted)]", children: [
|
|
11451
11559
|
"Balance: ",
|
|
11452
11560
|
balance.toFixed(4),
|
|
11453
11561
|
" LUMIA"
|
|
11454
11562
|
] })
|
|
11455
11563
|
] }),
|
|
11456
|
-
/* @__PURE__ */ (0,
|
|
11457
|
-
/* @__PURE__ */ (0,
|
|
11564
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full relative", children: [
|
|
11565
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11458
11566
|
Input,
|
|
11459
11567
|
{
|
|
11460
11568
|
Icon: LumiaIcon,
|
|
@@ -11465,7 +11573,7 @@ function SendLumiaMenu() {
|
|
|
11465
11573
|
step: "0.000001"
|
|
11466
11574
|
}
|
|
11467
11575
|
),
|
|
11468
|
-
/* @__PURE__ */ (0,
|
|
11576
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11469
11577
|
Button,
|
|
11470
11578
|
{
|
|
11471
11579
|
onClick: handleMaxAmount,
|
|
@@ -11478,65 +11586,65 @@ function SendLumiaMenu() {
|
|
|
11478
11586
|
)
|
|
11479
11587
|
] })
|
|
11480
11588
|
] }),
|
|
11481
|
-
(validationError || error) && /* @__PURE__ */ (0,
|
|
11482
|
-
/* @__PURE__ */ (0,
|
|
11483
|
-
/* @__PURE__ */ (0,
|
|
11589
|
+
(validationError || error) && /* @__PURE__ */ (0, import_jsx_runtime59.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: [
|
|
11590
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react40.AlertCircle, { className: "h-4 w-4" }),
|
|
11591
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm", children: validationError || error })
|
|
11484
11592
|
] }),
|
|
11485
|
-
/* @__PURE__ */ (0,
|
|
11593
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
|
|
11486
11594
|
] }),
|
|
11487
|
-
txStep === "confirm" && /* @__PURE__ */ (0,
|
|
11488
|
-
/* @__PURE__ */ (0,
|
|
11489
|
-
/* @__PURE__ */ (0,
|
|
11490
|
-
/* @__PURE__ */ (0,
|
|
11491
|
-
/* @__PURE__ */ (0,
|
|
11492
|
-
/* @__PURE__ */ (0,
|
|
11493
|
-
/* @__PURE__ */ (0,
|
|
11595
|
+
txStep === "confirm" && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
11596
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "bg-gray-50 rounded-lg p-4", children: [
|
|
11597
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
|
|
11598
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "space-y-2 text-sm", children: [
|
|
11599
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex justify-between", children: [
|
|
11600
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "To:" }),
|
|
11601
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: `font-mono`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
|
|
11494
11602
|
] }),
|
|
11495
|
-
/* @__PURE__ */ (0,
|
|
11496
|
-
/* @__PURE__ */ (0,
|
|
11497
|
-
/* @__PURE__ */ (0,
|
|
11603
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex justify-between", children: [
|
|
11604
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "Amount:" }),
|
|
11605
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: `font-semibold`, children: [
|
|
11498
11606
|
amount,
|
|
11499
11607
|
" LUMIA"
|
|
11500
11608
|
] })
|
|
11501
11609
|
] }),
|
|
11502
|
-
/* @__PURE__ */ (0,
|
|
11503
|
-
/* @__PURE__ */ (0,
|
|
11504
|
-
/* @__PURE__ */ (0,
|
|
11610
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex justify-between", children: [
|
|
11611
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "Network:" }),
|
|
11612
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "Lumia Beam" })
|
|
11505
11613
|
] })
|
|
11506
11614
|
] })
|
|
11507
11615
|
] }),
|
|
11508
|
-
/* @__PURE__ */ (0,
|
|
11509
|
-
/* @__PURE__ */ (0,
|
|
11510
|
-
/* @__PURE__ */ (0,
|
|
11511
|
-
isLoading && /* @__PURE__ */ (0,
|
|
11616
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex gap-2", children: [
|
|
11617
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
|
|
11618
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
|
|
11619
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react40.Loader, { className: "h-4 w-4 animate-spin" }),
|
|
11512
11620
|
"Confirm"
|
|
11513
11621
|
] })
|
|
11514
11622
|
] })
|
|
11515
11623
|
] }),
|
|
11516
|
-
txStep === "pending" && /* @__PURE__ */ (0,
|
|
11517
|
-
/* @__PURE__ */ (0,
|
|
11518
|
-
/* @__PURE__ */ (0,
|
|
11519
|
-
/* @__PURE__ */ (0,
|
|
11520
|
-
/* @__PURE__ */ (0,
|
|
11624
|
+
txStep === "pending" && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "py-8 text-center space-y-4", children: [
|
|
11625
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react40.Loader, { className: "h-5 w-5 animate-spin mx-auto" }),
|
|
11626
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { children: [
|
|
11627
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block font-medium", children: "Transaction Pending" }),
|
|
11628
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
|
|
11521
11629
|
] })
|
|
11522
11630
|
] }),
|
|
11523
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ (0,
|
|
11524
|
-
/* @__PURE__ */ (0,
|
|
11525
|
-
/* @__PURE__ */ (0,
|
|
11526
|
-
/* @__PURE__ */ (0,
|
|
11527
|
-
/* @__PURE__ */ (0,
|
|
11631
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
11632
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "text-center py-4", children: [
|
|
11633
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react40.CheckCircle2, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
|
|
11634
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "font-medium", children: "Transaction Sent!" }),
|
|
11635
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-sm mt-1", children: "Your transaction is being processed" })
|
|
11528
11636
|
] }),
|
|
11529
|
-
/* @__PURE__ */ (0,
|
|
11637
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "Done" })
|
|
11530
11638
|
] })
|
|
11531
11639
|
] });
|
|
11532
11640
|
}
|
|
11533
11641
|
|
|
11534
11642
|
// src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
|
|
11535
|
-
var
|
|
11643
|
+
var import_lucide_react41 = require("lucide-react");
|
|
11536
11644
|
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
11537
11645
|
var import_react46 = require("react");
|
|
11538
11646
|
init_clients();
|
|
11539
|
-
var
|
|
11647
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
11540
11648
|
function ReceiveLumiaMenu() {
|
|
11541
11649
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11542
11650
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -11568,7 +11676,7 @@ function ReceiveLumiaMenu() {
|
|
|
11568
11676
|
console.error("Failed to copy address:", error);
|
|
11569
11677
|
}
|
|
11570
11678
|
}, [address]);
|
|
11571
|
-
return /* @__PURE__ */ (0,
|
|
11679
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
11572
11680
|
"div",
|
|
11573
11681
|
{
|
|
11574
11682
|
style: {
|
|
@@ -11577,43 +11685,43 @@ function ReceiveLumiaMenu() {
|
|
|
11577
11685
|
},
|
|
11578
11686
|
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
|
|
11579
11687
|
children: [
|
|
11580
|
-
/* @__PURE__ */ (0,
|
|
11581
|
-
/* @__PURE__ */ (0,
|
|
11582
|
-
/* @__PURE__ */ (0,
|
|
11688
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11689
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react41.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11690
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
|
|
11583
11691
|
] }),
|
|
11584
|
-
/* @__PURE__ */ (0,
|
|
11585
|
-
/* @__PURE__ */ (0,
|
|
11586
|
-
/* @__PURE__ */ (0,
|
|
11692
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
|
|
11693
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
|
|
11694
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "block w-full", children: "Ensure sender is on the same network" })
|
|
11587
11695
|
] }),
|
|
11588
|
-
/* @__PURE__ */ (0,
|
|
11589
|
-
/* @__PURE__ */ (0,
|
|
11590
|
-
/* @__PURE__ */ (0,
|
|
11591
|
-
/* @__PURE__ */ (0,
|
|
11592
|
-
/* @__PURE__ */ (0,
|
|
11593
|
-
/* @__PURE__ */ (0,
|
|
11594
|
-
] }) : /* @__PURE__ */ (0,
|
|
11595
|
-
/* @__PURE__ */ (0,
|
|
11596
|
-
/* @__PURE__ */ (0,
|
|
11696
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react41.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
|
|
11697
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Highlight, { type: "info", children: [
|
|
11698
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
|
|
11699
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { onClick: handleCopy, className: "w-full", size: "medium", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
|
|
11700
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react41.CheckCircle2, { className: "h-4 w-4" }),
|
|
11701
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { children: "Copied!" })
|
|
11702
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
|
|
11703
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react41.Copy, { className: "h-4 w-4" }),
|
|
11704
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { children: "Copy Address" })
|
|
11597
11705
|
] }) })
|
|
11598
11706
|
] }),
|
|
11599
|
-
/* @__PURE__ */ (0,
|
|
11707
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "text-center text-xs text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "block", children: "Share this address to receive LUMIA tokens." }) })
|
|
11600
11708
|
]
|
|
11601
11709
|
}
|
|
11602
11710
|
);
|
|
11603
11711
|
}
|
|
11604
11712
|
|
|
11605
11713
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
11606
|
-
var
|
|
11714
|
+
var import_lucide_react43 = require("lucide-react");
|
|
11607
11715
|
var import_react47 = require("react");
|
|
11608
11716
|
|
|
11609
11717
|
// src/internal/components/SettingsMenu/constants.ts
|
|
11610
|
-
var
|
|
11718
|
+
var import_lucide_react42 = require("lucide-react");
|
|
11611
11719
|
|
|
11612
11720
|
// src/internal/assets/KycIcon.tsx
|
|
11613
|
-
var
|
|
11721
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
11614
11722
|
function KycIcon(props) {
|
|
11615
11723
|
const { width = "24", height = "24", ...rest } = props;
|
|
11616
|
-
return /* @__PURE__ */ (0,
|
|
11724
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11617
11725
|
"path",
|
|
11618
11726
|
{
|
|
11619
11727
|
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",
|
|
@@ -11624,15 +11732,15 @@ function KycIcon(props) {
|
|
|
11624
11732
|
|
|
11625
11733
|
// src/internal/components/SettingsMenu/constants.ts
|
|
11626
11734
|
var NAV_BUTTONS = [
|
|
11627
|
-
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon:
|
|
11735
|
+
{ id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: import_lucide_react42.ArrowLeftRight },
|
|
11628
11736
|
{ id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
|
|
11629
|
-
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon:
|
|
11630
|
-
{ id: "security" /* SECURITY */, name: "Security", Icon:
|
|
11631
|
-
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon:
|
|
11737
|
+
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: import_lucide_react42.UsersRound },
|
|
11738
|
+
{ id: "security" /* SECURITY */, name: "Security", Icon: import_lucide_react42.LockKeyhole },
|
|
11739
|
+
{ id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: import_lucide_react42.DatabaseBackup }
|
|
11632
11740
|
];
|
|
11633
11741
|
|
|
11634
11742
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
11635
|
-
var
|
|
11743
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
11636
11744
|
function SettingsMenu() {
|
|
11637
11745
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11638
11746
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
@@ -11642,12 +11750,12 @@ function SettingsMenu() {
|
|
|
11642
11750
|
useProvidersList();
|
|
11643
11751
|
const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
|
|
11644
11752
|
const highlightedKeys = settingsNotifications.map((n) => n.target);
|
|
11645
|
-
return /* @__PURE__ */ (0,
|
|
11646
|
-
/* @__PURE__ */ (0,
|
|
11647
|
-
/* @__PURE__ */ (0,
|
|
11648
|
-
/* @__PURE__ */ (0,
|
|
11753
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11754
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11755
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react43.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
11756
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
|
|
11649
11757
|
] }),
|
|
11650
|
-
/* @__PURE__ */ (0,
|
|
11758
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
11651
11759
|
Button,
|
|
11652
11760
|
{
|
|
11653
11761
|
variant: "outline",
|
|
@@ -11660,8 +11768,8 @@ function SettingsMenu() {
|
|
|
11660
11768
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
11661
11769
|
),
|
|
11662
11770
|
children: [
|
|
11663
|
-
/* @__PURE__ */ (0,
|
|
11664
|
-
/* @__PURE__ */ (0,
|
|
11771
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { className: "w-4 h-4" }),
|
|
11772
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { children: name })
|
|
11665
11773
|
]
|
|
11666
11774
|
},
|
|
11667
11775
|
id
|
|
@@ -11670,35 +11778,35 @@ function SettingsMenu() {
|
|
|
11670
11778
|
}
|
|
11671
11779
|
|
|
11672
11780
|
// src/internal/components/TermsOfService.tsx
|
|
11673
|
-
var
|
|
11674
|
-
var
|
|
11781
|
+
var import_lucide_react44 = require("lucide-react");
|
|
11782
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
11675
11783
|
function TermsOfService() {
|
|
11676
11784
|
const address = useLumiaPassportSession((st) => st.address);
|
|
11677
11785
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
11678
|
-
return /* @__PURE__ */ (0,
|
|
11679
|
-
/* @__PURE__ */ (0,
|
|
11680
|
-
/* @__PURE__ */ (0,
|
|
11786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
11787
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
11788
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11681
11789
|
Button,
|
|
11682
11790
|
{
|
|
11683
11791
|
variant: "ghost",
|
|
11684
11792
|
size: "icon",
|
|
11685
11793
|
title: "Back",
|
|
11686
11794
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
11687
|
-
children: /* @__PURE__ */ (0,
|
|
11795
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react44.ArrowLeft, { className: "h-4 w-4" })
|
|
11688
11796
|
}
|
|
11689
11797
|
),
|
|
11690
|
-
/* @__PURE__ */ (0,
|
|
11798
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
11691
11799
|
] }),
|
|
11692
|
-
/* @__PURE__ */ (0,
|
|
11693
|
-
/* @__PURE__ */ (0,
|
|
11694
|
-
/* @__PURE__ */ (0,
|
|
11800
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Highlight, { type: "warning", className: "text-center", children: [
|
|
11801
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "block text-xs", children: "By using Lumia Passport you agree to our terms." }),
|
|
11802
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "block text-xs", children: "To be updated..." })
|
|
11695
11803
|
] })
|
|
11696
11804
|
] });
|
|
11697
11805
|
}
|
|
11698
11806
|
|
|
11699
11807
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
11700
11808
|
var import_react_query31 = require("@tanstack/react-query");
|
|
11701
|
-
var
|
|
11809
|
+
var import_lucide_react46 = require("lucide-react");
|
|
11702
11810
|
var import_react48 = require("react");
|
|
11703
11811
|
|
|
11704
11812
|
// src/internal/components/TransactionsMenu/api.ts
|
|
@@ -11990,18 +12098,7 @@ async function getTransactionsListQuery(address) {
|
|
|
11990
12098
|
}
|
|
11991
12099
|
|
|
11992
12100
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
11993
|
-
var
|
|
11994
|
-
|
|
11995
|
-
// src/internal/assets/NegativeIcon.tsx
|
|
11996
|
-
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
11997
|
-
function NegativeIcon(props) {
|
|
11998
|
-
const { width = "16", height = "16", ...rest } = props;
|
|
11999
|
-
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("svg", { ...rest, width, height, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
12000
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("rect", { width: "16", height: "16", rx: "8", fill: "var(--l-pass-bg-error)" }),
|
|
12001
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("path", { d: "M10.8048 5.19482L5.19434 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" }),
|
|
12002
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("path", { d: "M5.19421 5.19482L10.8047 10.8055", stroke: "var(--l-pass-fg)", strokeLinecap: "round" })
|
|
12003
|
-
] });
|
|
12004
|
-
}
|
|
12101
|
+
var import_lucide_react45 = require("lucide-react");
|
|
12005
12102
|
|
|
12006
12103
|
// src/internal/components/TransactionsMenu/utils.ts
|
|
12007
12104
|
init_base();
|
|
@@ -12048,22 +12145,22 @@ var formatTimestamp = (timestampMs) => {
|
|
|
12048
12145
|
};
|
|
12049
12146
|
|
|
12050
12147
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
12051
|
-
var
|
|
12148
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12052
12149
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
12053
12150
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
12054
12151
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
12055
|
-
return /* @__PURE__ */ (0,
|
|
12056
|
-
/* @__PURE__ */ (0,
|
|
12057
|
-
/* @__PURE__ */ (0,
|
|
12058
|
-
/* @__PURE__ */ (0,
|
|
12152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "border-t border-dashed border-[var(--l-pass-bd)]", children: [
|
|
12153
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
12154
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-[var(--l-pass-fg-muted)]", children: internal.method || "CALL" }),
|
|
12155
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { children: [
|
|
12059
12156
|
formatValue2(internal.value, internalDecimals),
|
|
12060
12157
|
" ",
|
|
12061
12158
|
internalSymbol
|
|
12062
12159
|
] })
|
|
12063
12160
|
] }),
|
|
12064
|
-
/* @__PURE__ */ (0,
|
|
12065
|
-
/* @__PURE__ */ (0,
|
|
12066
|
-
/* @__PURE__ */ (0,
|
|
12161
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
12162
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { children: internal.direction === "in" ? "From" : "To" }),
|
|
12163
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "font-mono", children: internal.counterpartyName || formatAddress2(internal.counterparty) })
|
|
12067
12164
|
] })
|
|
12068
12165
|
] });
|
|
12069
12166
|
}
|
|
@@ -12074,7 +12171,7 @@ function TransactionsGroup(props) {
|
|
|
12074
12171
|
const assetSymbol = parent.assetSymbol || "LUMIA";
|
|
12075
12172
|
const assetDecimals = parent.decimals ?? 18;
|
|
12076
12173
|
const internalsToRender = group.internals.filter((internal) => parseValue(internal.value) !== 0n);
|
|
12077
|
-
return /* @__PURE__ */ (0,
|
|
12174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12078
12175
|
"div",
|
|
12079
12176
|
{
|
|
12080
12177
|
onClick: () => openInExplorer2(parent.parentHash),
|
|
@@ -12084,22 +12181,22 @@ function TransactionsGroup(props) {
|
|
|
12084
12181
|
"bg-transparent hover:bg-[var(--l-pass-secondary-h)] active:bg-[var(--l-pass-secondary-a)]"
|
|
12085
12182
|
),
|
|
12086
12183
|
children: [
|
|
12087
|
-
/* @__PURE__ */ (0,
|
|
12088
|
-
/* @__PURE__ */ (0,
|
|
12089
|
-
parent.direction === "in" ? /* @__PURE__ */ (0,
|
|
12090
|
-
/* @__PURE__ */ (0,
|
|
12091
|
-
parent.status === "ok" ? /* @__PURE__ */ (0,
|
|
12184
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
12185
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
12186
|
+
parent.direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react45.ChevronLeft, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react45.ChevronRight, { className: "w-4 h-4" }),
|
|
12187
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-[10px]", children: isIncoming ? "RECEIVED" : "SENT" }),
|
|
12188
|
+
parent.status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(NegativeIcon, {})
|
|
12092
12189
|
] }),
|
|
12093
|
-
/* @__PURE__ */ (0,
|
|
12190
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "block flex-0 font-mono text-[10px] text-[var(--l-pass-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
12094
12191
|
] }),
|
|
12095
|
-
/* @__PURE__ */ (0,
|
|
12096
|
-
/* @__PURE__ */ (0,
|
|
12192
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
|
|
12193
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "font-bold", children: [
|
|
12097
12194
|
formatValue2(parent.value, assetDecimals),
|
|
12098
12195
|
" ",
|
|
12099
12196
|
assetSymbol
|
|
12100
12197
|
] }),
|
|
12101
|
-
/* @__PURE__ */ (0,
|
|
12102
|
-
/* @__PURE__ */ (0,
|
|
12198
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-0", children: [
|
|
12199
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12103
12200
|
Button,
|
|
12104
12201
|
{
|
|
12105
12202
|
variant: "ghost",
|
|
@@ -12108,10 +12205,10 @@ function TransactionsGroup(props) {
|
|
|
12108
12205
|
onClick: (e) => {
|
|
12109
12206
|
e.stopPropagation();
|
|
12110
12207
|
},
|
|
12111
|
-
children: /* @__PURE__ */ (0,
|
|
12208
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react45.Copy, { className: "w-4 h-4" })
|
|
12112
12209
|
}
|
|
12113
12210
|
),
|
|
12114
|
-
/* @__PURE__ */ (0,
|
|
12211
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12115
12212
|
Button,
|
|
12116
12213
|
{
|
|
12117
12214
|
variant: "ghost",
|
|
@@ -12120,24 +12217,24 @@ function TransactionsGroup(props) {
|
|
|
12120
12217
|
onClick: (e) => {
|
|
12121
12218
|
e.stopPropagation();
|
|
12122
12219
|
},
|
|
12123
|
-
children: /* @__PURE__ */ (0,
|
|
12220
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaIcon, { className: "w-4 h-4" })
|
|
12124
12221
|
}
|
|
12125
12222
|
)
|
|
12126
12223
|
] })
|
|
12127
12224
|
] }),
|
|
12128
|
-
internalsToRender.length > 0 && /* @__PURE__ */ (0,
|
|
12129
|
-
/* @__PURE__ */ (0,
|
|
12130
|
-
/* @__PURE__ */ (0,
|
|
12131
|
-
/* @__PURE__ */ (0,
|
|
12132
|
-
/* @__PURE__ */ (0,
|
|
12225
|
+
internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
|
|
12226
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "w-full flex items-center", children: [
|
|
12227
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
|
|
12228
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Internals" }),
|
|
12229
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" })
|
|
12133
12230
|
] }),
|
|
12134
|
-
/* @__PURE__ */ (0,
|
|
12231
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12135
12232
|
"div",
|
|
12136
12233
|
{
|
|
12137
12234
|
className: "w-full rounded-[var(--l-pass-el-bdrs)] border border-dashed border-[var(--l-pass-bd)]",
|
|
12138
12235
|
onClick: (event) => event.stopPropagation(),
|
|
12139
12236
|
children: [
|
|
12140
|
-
/* @__PURE__ */ (0,
|
|
12237
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
12141
12238
|
Button,
|
|
12142
12239
|
{
|
|
12143
12240
|
variant: "ghost",
|
|
@@ -12145,16 +12242,16 @@ function TransactionsGroup(props) {
|
|
|
12145
12242
|
className: "w-full justify-between",
|
|
12146
12243
|
onClick: () => onToggleExpanded(group.id),
|
|
12147
12244
|
children: [
|
|
12148
|
-
/* @__PURE__ */ (0,
|
|
12245
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { children: [
|
|
12149
12246
|
"View internal calls (",
|
|
12150
12247
|
internalsToRender.length,
|
|
12151
12248
|
")"
|
|
12152
12249
|
] }),
|
|
12153
|
-
/* @__PURE__ */ (0,
|
|
12250
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { children: expanded ? "Hide" : "Show" })
|
|
12154
12251
|
]
|
|
12155
12252
|
}
|
|
12156
12253
|
),
|
|
12157
|
-
expanded && /* @__PURE__ */ (0,
|
|
12254
|
+
expanded && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12158
12255
|
InternalTransaction,
|
|
12159
12256
|
{
|
|
12160
12257
|
internal,
|
|
@@ -12173,7 +12270,7 @@ function TransactionsGroup(props) {
|
|
|
12173
12270
|
}
|
|
12174
12271
|
|
|
12175
12272
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
12176
|
-
var
|
|
12273
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
12177
12274
|
function TransactionsMenu() {
|
|
12178
12275
|
const qc = (0, import_react_query31.useQueryClient)();
|
|
12179
12276
|
const address = useLumiaPassportSession((st) => st.address);
|
|
@@ -12197,19 +12294,19 @@ function TransactionsMenu() {
|
|
|
12197
12294
|
[qc, address]
|
|
12198
12295
|
);
|
|
12199
12296
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
12200
|
-
return /* @__PURE__ */ (0,
|
|
12297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12201
12298
|
"div",
|
|
12202
12299
|
{
|
|
12203
12300
|
style: {
|
|
12204
12301
|
"--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
|
|
12205
12302
|
"--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
|
|
12206
12303
|
},
|
|
12207
|
-
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]
|
|
12208
|
-
children: [
|
|
12209
|
-
/* @__PURE__ */ (0,
|
|
12210
|
-
/* @__PURE__ */ (0,
|
|
12211
|
-
/* @__PURE__ */ (0,
|
|
12212
|
-
/* @__PURE__ */ (0,
|
|
12304
|
+
className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
|
|
12305
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12306
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
12307
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react46.ArrowLeft, { className: "h-4 w-4" }) }),
|
|
12308
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
|
|
12309
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12213
12310
|
Button,
|
|
12214
12311
|
{
|
|
12215
12312
|
variant: "ghost",
|
|
@@ -12217,18 +12314,18 @@ function TransactionsMenu() {
|
|
|
12217
12314
|
onClick: refreshTxHistory,
|
|
12218
12315
|
disabled: isTxHistoryFetching,
|
|
12219
12316
|
title: "Refresh transactions",
|
|
12220
|
-
children: isTxHistoryFetching ? /* @__PURE__ */ (0,
|
|
12317
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react46.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react46.RefreshCw, { className: "h-4 w-4" })
|
|
12221
12318
|
}
|
|
12222
12319
|
)
|
|
12223
12320
|
] }),
|
|
12224
|
-
/* @__PURE__ */ (0,
|
|
12225
|
-
isTxHistoryLoading && /* @__PURE__ */ (0,
|
|
12226
|
-
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0,
|
|
12227
|
-
/* @__PURE__ */ (0,
|
|
12228
|
-
/* @__PURE__ */ (0,
|
|
12321
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
|
|
12322
|
+
isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react46.Loader, { className: "h-5 w-5 animate-spin" }) }),
|
|
12323
|
+
!isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
|
|
12324
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react46.XCircle, { className: "w-4 h-4 flex-none" }),
|
|
12325
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
12229
12326
|
] }),
|
|
12230
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0,
|
|
12231
|
-
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0,
|
|
12327
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
|
|
12328
|
+
!isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12232
12329
|
TransactionsGroup,
|
|
12233
12330
|
{
|
|
12234
12331
|
group,
|
|
@@ -12238,7 +12335,7 @@ function TransactionsMenu() {
|
|
|
12238
12335
|
group.id
|
|
12239
12336
|
)) })
|
|
12240
12337
|
] })
|
|
12241
|
-
]
|
|
12338
|
+
] })
|
|
12242
12339
|
}
|
|
12243
12340
|
);
|
|
12244
12341
|
}
|
|
@@ -12338,7 +12435,7 @@ var PAGE_MAP = {
|
|
|
12338
12435
|
};
|
|
12339
12436
|
|
|
12340
12437
|
// src/internal/hooks/usePageMapper.tsx
|
|
12341
|
-
var
|
|
12438
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
12342
12439
|
var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
12343
12440
|
function usePageMapper() {
|
|
12344
12441
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -12368,7 +12465,7 @@ function usePageMapper() {
|
|
|
12368
12465
|
const PageContentComponent = pageItem.component;
|
|
12369
12466
|
setDialogTitle(pageItem.title);
|
|
12370
12467
|
setDialogDescription(pageItem.description);
|
|
12371
|
-
setDialogContent(/* @__PURE__ */ (0,
|
|
12468
|
+
setDialogContent(/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(PageContentComponent, {}));
|
|
12372
12469
|
setIsDialogOpen(true);
|
|
12373
12470
|
},
|
|
12374
12471
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -12448,7 +12545,7 @@ function useWalletStatus() {
|
|
|
12448
12545
|
}
|
|
12449
12546
|
|
|
12450
12547
|
// src/internal/components/Dialog/LumiaPassportDialog.tsx
|
|
12451
|
-
var
|
|
12548
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
12452
12549
|
function LumiaPassportDialog() {
|
|
12453
12550
|
const config = useLumiaPassportConfig().config;
|
|
12454
12551
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -12467,7 +12564,7 @@ function LumiaPassportDialog() {
|
|
|
12467
12564
|
useListenIframeAuthEvents();
|
|
12468
12565
|
useBackupWarning();
|
|
12469
12566
|
useWalletStatus();
|
|
12470
|
-
return /* @__PURE__ */ (0,
|
|
12567
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
12471
12568
|
Dialog,
|
|
12472
12569
|
{
|
|
12473
12570
|
open: isDialogOpen,
|
|
@@ -12475,11 +12572,11 @@ function LumiaPassportDialog() {
|
|
|
12475
12572
|
if (isDialogForced) return;
|
|
12476
12573
|
if (!open) setPage(null);
|
|
12477
12574
|
},
|
|
12478
|
-
children: /* @__PURE__ */ (0,
|
|
12479
|
-
/* @__PURE__ */ (0,
|
|
12480
|
-
/* @__PURE__ */ (0,
|
|
12481
|
-
!!session && /* @__PURE__ */ (0,
|
|
12482
|
-
/* @__PURE__ */ (0,
|
|
12575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(DialogContent, { colorMode, hideClose: isDialogForced, className, children: [
|
|
12576
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(DialogTitle, { children: dialogTitle }) }),
|
|
12577
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
12578
|
+
!!session && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Header, {}),
|
|
12579
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_framer_motion3.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
12483
12580
|
import_framer_motion3.motion.div,
|
|
12484
12581
|
{
|
|
12485
12582
|
initial: { opacity: 0, height: mainPageHeight },
|
|
@@ -12491,7 +12588,7 @@ function LumiaPassportDialog() {
|
|
|
12491
12588
|
},
|
|
12492
12589
|
page || "empty"
|
|
12493
12590
|
) }),
|
|
12494
|
-
/* @__PURE__ */ (0,
|
|
12591
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Footer, {})
|
|
12495
12592
|
] })
|
|
12496
12593
|
}
|
|
12497
12594
|
);
|
|
@@ -12694,7 +12791,7 @@ function WalletConnectHandler() {
|
|
|
12694
12791
|
}
|
|
12695
12792
|
|
|
12696
12793
|
// src/context/LumiaPassportSessionContext.tsx
|
|
12697
|
-
var
|
|
12794
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
12698
12795
|
var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
12699
12796
|
isLoading: false,
|
|
12700
12797
|
usePaymaster: true,
|
|
@@ -12720,17 +12817,17 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
|
|
|
12720
12817
|
}));
|
|
12721
12818
|
function LumiaPassportSessionProvider({ children }) {
|
|
12722
12819
|
const config = useLumiaPassportConfig().config;
|
|
12723
|
-
return /* @__PURE__ */ (0,
|
|
12820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_react55.Fragment, { children: [
|
|
12724
12821
|
children,
|
|
12725
|
-
config.current?.wallet?.enabled && /* @__PURE__ */ (0,
|
|
12726
|
-
/* @__PURE__ */ (0,
|
|
12727
|
-
/* @__PURE__ */ (0,
|
|
12822
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(WalletConnectHandler, {}),
|
|
12823
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(BalanceFeedProvider, {}),
|
|
12824
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12728
12825
|
TssManagerWithRef,
|
|
12729
12826
|
{
|
|
12730
12827
|
mpcPin: void 0
|
|
12731
12828
|
}
|
|
12732
12829
|
),
|
|
12733
|
-
/* @__PURE__ */ (0,
|
|
12830
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(LumiaPassportDialog, {})
|
|
12734
12831
|
] });
|
|
12735
12832
|
}
|
|
12736
12833
|
|
|
@@ -12765,13 +12862,13 @@ var wagmiConfig = (0, import_wagmi6.createConfig)({
|
|
|
12765
12862
|
});
|
|
12766
12863
|
|
|
12767
12864
|
// src/context/WagmiContext.tsx
|
|
12768
|
-
var
|
|
12865
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
12769
12866
|
var LumiaWagmiProvider = ({ children }) => {
|
|
12770
|
-
return /* @__PURE__ */ (0,
|
|
12867
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_wagmi7.WagmiProvider, { config: wagmiConfig, children });
|
|
12771
12868
|
};
|
|
12772
12869
|
|
|
12773
12870
|
// src/context/LumiaPassportContext.tsx
|
|
12774
|
-
var
|
|
12871
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
12775
12872
|
var LumiaPassportContext = (0, import_react56.createContext)(void 0);
|
|
12776
12873
|
function LumiaPassportProvider(props) {
|
|
12777
12874
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
@@ -12860,7 +12957,7 @@ function LumiaPassportProvider(props) {
|
|
|
12860
12957
|
}
|
|
12861
12958
|
}, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
|
|
12862
12959
|
const contextValue = (0, import_react56.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
|
|
12863
|
-
return /* @__PURE__ */ (0,
|
|
12960
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
|
|
12864
12961
|
}
|
|
12865
12962
|
var useLumiaPassportConfig = () => {
|
|
12866
12963
|
const ctx = (0, import_react56.useContext)(LumiaPassportContext);
|
|
@@ -12869,10 +12966,10 @@ var useLumiaPassportConfig = () => {
|
|
|
12869
12966
|
};
|
|
12870
12967
|
|
|
12871
12968
|
// src/components/ConnectWalletButton.tsx
|
|
12872
|
-
var
|
|
12969
|
+
var import_lucide_react47 = require("lucide-react");
|
|
12873
12970
|
var import_react57 = require("react");
|
|
12874
12971
|
init_auth();
|
|
12875
|
-
var
|
|
12972
|
+
var import_jsx_runtime71 = (
|
|
12876
12973
|
/** external Buttons can be provided */
|
|
12877
12974
|
require("react/jsx-runtime")
|
|
12878
12975
|
);
|
|
@@ -12905,18 +13002,18 @@ function ConnectWalletButton(props) {
|
|
|
12905
13002
|
return { server, local, backup: hasServerVault };
|
|
12906
13003
|
}, [session, address, hasServerVault]);
|
|
12907
13004
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
12908
|
-
return /* @__PURE__ */ (0,
|
|
13005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { "data-lumia-passport-mode": colorMode, className: cn("lumia-scope w-fit h-fit", className), children: !address ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_jsx_runtime71.Fragment, { children: ConnectButton ? /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
12909
13006
|
ConnectButton,
|
|
12910
13007
|
{
|
|
12911
13008
|
type: "button",
|
|
12912
13009
|
disabled: isConnecting,
|
|
12913
13010
|
onClick: () => setPage("auth" /* AUTH */),
|
|
12914
13011
|
children: [
|
|
12915
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
13012
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react47.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
12916
13013
|
connectButtonLabel
|
|
12917
13014
|
]
|
|
12918
13015
|
}
|
|
12919
|
-
) : /* @__PURE__ */ (0,
|
|
13016
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
12920
13017
|
Button,
|
|
12921
13018
|
{
|
|
12922
13019
|
type: "button",
|
|
@@ -12926,17 +13023,17 @@ function ConnectWalletButton(props) {
|
|
|
12926
13023
|
onClick: () => setPage("auth" /* AUTH */),
|
|
12927
13024
|
className: cn(
|
|
12928
13025
|
"lumia-passport-button w-fit h-16 px-8",
|
|
12929
|
-
"border border-transparent",
|
|
13026
|
+
"border-0 border-transparent",
|
|
12930
13027
|
// to override button appearance bd, which case to case might drop black border
|
|
12931
13028
|
"bg-[var(--l-pass-bg)] hover:bg-[var(--l-pass-bg)] active:bg-[var(--l-pass-bg)] text-[var(--l-pass-fg)]",
|
|
12932
13029
|
"disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
|
|
12933
13030
|
),
|
|
12934
13031
|
children: [
|
|
12935
|
-
isConnecting && /* @__PURE__ */ (0,
|
|
13032
|
+
isConnecting && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react47.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
12936
13033
|
connectButtonLabel.toUpperCase()
|
|
12937
13034
|
]
|
|
12938
13035
|
}
|
|
12939
|
-
) }) : /* @__PURE__ */ (0,
|
|
13036
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
12940
13037
|
"button",
|
|
12941
13038
|
{
|
|
12942
13039
|
type: "button",
|
|
@@ -12949,23 +13046,23 @@ function ConnectWalletButton(props) {
|
|
|
12949
13046
|
"rounded-[var(--l-pass-el-bdrs)] p-2 max-w-sm min-w-[256px]"
|
|
12950
13047
|
),
|
|
12951
13048
|
children: [
|
|
12952
|
-
/* @__PURE__ */ (0,
|
|
12953
|
-
/* @__PURE__ */ (0,
|
|
12954
|
-
/* @__PURE__ */ (0,
|
|
12955
|
-
/* @__PURE__ */ (0,
|
|
12956
|
-
/* @__PURE__ */ (0,
|
|
13049
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.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_runtime71.jsx)("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
|
|
13050
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
|
|
13051
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
|
|
13052
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "w-fit font-semibold text-base truncate max-w-[144px]", children: displayName }),
|
|
13053
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(KYCStatus, {})
|
|
12957
13054
|
] }),
|
|
12958
|
-
/* @__PURE__ */ (0,
|
|
13055
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BalanceView, { className: "font-semibold text-base text-[var(--l-pass-fg-muted)]" })
|
|
12959
13056
|
] }),
|
|
12960
|
-
/* @__PURE__ */ (0,
|
|
12961
|
-
/* @__PURE__ */ (0,
|
|
12962
|
-
/* @__PURE__ */ (0,
|
|
12963
|
-
|
|
13057
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
13058
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "group relative", children: [
|
|
13059
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13060
|
+
import_lucide_react47.Cloud,
|
|
12964
13061
|
{
|
|
12965
13062
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
12966
13063
|
}
|
|
12967
13064
|
),
|
|
12968
|
-
/* @__PURE__ */ (0,
|
|
13065
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
12969
13066
|
"div",
|
|
12970
13067
|
{
|
|
12971
13068
|
className: cn(
|
|
@@ -12980,14 +13077,14 @@ function ConnectWalletButton(props) {
|
|
|
12980
13077
|
}
|
|
12981
13078
|
)
|
|
12982
13079
|
] }),
|
|
12983
|
-
/* @__PURE__ */ (0,
|
|
12984
|
-
/* @__PURE__ */ (0,
|
|
12985
|
-
|
|
13080
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "group relative", children: [
|
|
13081
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13082
|
+
import_lucide_react47.Laptop,
|
|
12986
13083
|
{
|
|
12987
13084
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
12988
13085
|
}
|
|
12989
13086
|
),
|
|
12990
|
-
/* @__PURE__ */ (0,
|
|
13087
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
12991
13088
|
"div",
|
|
12992
13089
|
{
|
|
12993
13090
|
className: cn(
|
|
@@ -13002,14 +13099,14 @@ function ConnectWalletButton(props) {
|
|
|
13002
13099
|
}
|
|
13003
13100
|
)
|
|
13004
13101
|
] }),
|
|
13005
|
-
/* @__PURE__ */ (0,
|
|
13006
|
-
/* @__PURE__ */ (0,
|
|
13007
|
-
|
|
13102
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "group relative", children: [
|
|
13103
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13104
|
+
import_lucide_react47.Shield,
|
|
13008
13105
|
{
|
|
13009
13106
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--l-pass-bg-success)]" : "text-[var(--l-pass-bg-warning)]"}`
|
|
13010
13107
|
}
|
|
13011
13108
|
),
|
|
13012
|
-
/* @__PURE__ */ (0,
|
|
13109
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
13013
13110
|
"div",
|
|
13014
13111
|
{
|
|
13015
13112
|
className: cn(
|
|
@@ -13025,7 +13122,7 @@ function ConnectWalletButton(props) {
|
|
|
13025
13122
|
)
|
|
13026
13123
|
] })
|
|
13027
13124
|
] }),
|
|
13028
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
13125
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13029
13126
|
"div",
|
|
13030
13127
|
{
|
|
13031
13128
|
className: cn(
|
|
@@ -13118,24 +13215,24 @@ function useLumiaPassportColorMode() {
|
|
|
13118
13215
|
}
|
|
13119
13216
|
|
|
13120
13217
|
// src/components/ThemeToggle.tsx
|
|
13121
|
-
var
|
|
13122
|
-
var
|
|
13218
|
+
var import_lucide_react48 = require("lucide-react");
|
|
13219
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
13123
13220
|
function ThemeToggle(props) {
|
|
13124
13221
|
const { colorMode, setColorMode } = useLumiaPassportColorMode();
|
|
13125
|
-
return /* @__PURE__ */ (0,
|
|
13222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
13126
13223
|
"div",
|
|
13127
13224
|
{
|
|
13128
13225
|
className: "lumia-scope",
|
|
13129
13226
|
"data-lumia-passport-mode": colorMode,
|
|
13130
13227
|
style: { width: "fit-content", height: "fit-content" },
|
|
13131
|
-
children: /* @__PURE__ */ (0,
|
|
13228
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
13132
13229
|
Button,
|
|
13133
13230
|
{
|
|
13134
13231
|
...props,
|
|
13135
13232
|
variant: "ghost",
|
|
13136
13233
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
13137
13234
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
13138
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
13235
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react48.Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react48.Moon, { className: "w-4 h-4" })
|
|
13139
13236
|
}
|
|
13140
13237
|
)
|
|
13141
13238
|
}
|
|
@@ -13372,7 +13469,7 @@ var rainbowTheme = {
|
|
|
13372
13469
|
|
|
13373
13470
|
// src/context/RainbowKitContext.tsx
|
|
13374
13471
|
var import_styles = require("@rainbow-me/rainbowkit/styles.css");
|
|
13375
|
-
var
|
|
13472
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
13376
13473
|
function LumiaRainbowKitProvider({ children }) {
|
|
13377
13474
|
const config = useLumiaPassportConfig().config;
|
|
13378
13475
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
@@ -13391,12 +13488,12 @@ function LumiaRainbowKitProvider({ children }) {
|
|
|
13391
13488
|
},
|
|
13392
13489
|
[colorMode]
|
|
13393
13490
|
);
|
|
13394
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0,
|
|
13395
|
-
return /* @__PURE__ */ (0,
|
|
13491
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_jsx_runtime73.Fragment, { children });
|
|
13492
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_wagmi9.WagmiProvider, { config: rainbowConfig2, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_rainbowkit3.RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
13396
13493
|
}
|
|
13397
13494
|
|
|
13398
13495
|
// src/internal/components/UserOpStatus.tsx
|
|
13399
|
-
var
|
|
13496
|
+
var import_lucide_react50 = require("lucide-react");
|
|
13400
13497
|
var React13 = __toESM(require("react"), 1);
|
|
13401
13498
|
init_base();
|
|
13402
13499
|
|
|
@@ -13408,9 +13505,9 @@ function cn2(...inputs) {
|
|
|
13408
13505
|
}
|
|
13409
13506
|
|
|
13410
13507
|
// src/internal/components/Address.tsx
|
|
13411
|
-
var
|
|
13508
|
+
var import_lucide_react49 = require("lucide-react");
|
|
13412
13509
|
var React12 = __toESM(require("react"), 1);
|
|
13413
|
-
var
|
|
13510
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
13414
13511
|
function toExplorerAddressUrl(address, chain) {
|
|
13415
13512
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
13416
13513
|
if (!base2) return null;
|
|
@@ -13432,11 +13529,11 @@ var Address = ({
|
|
|
13432
13529
|
const addr = address || "";
|
|
13433
13530
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
13434
13531
|
const [copied, setCopied] = React12.useState(false);
|
|
13435
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
13436
|
-
return /* @__PURE__ */ (0,
|
|
13437
|
-
label && /* @__PURE__ */ (0,
|
|
13438
|
-
/* @__PURE__ */ (0,
|
|
13439
|
-
showCopy && /* @__PURE__ */ (0,
|
|
13532
|
+
if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
13533
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
13534
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
13535
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
13536
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13440
13537
|
Button,
|
|
13441
13538
|
{
|
|
13442
13539
|
variant: "ghost",
|
|
@@ -13450,10 +13547,10 @@ var Address = ({
|
|
|
13450
13547
|
} catch {
|
|
13451
13548
|
}
|
|
13452
13549
|
},
|
|
13453
|
-
children: /* @__PURE__ */ (0,
|
|
13550
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react49.Copy, { className: "h-4 w-4" })
|
|
13454
13551
|
}
|
|
13455
13552
|
),
|
|
13456
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
13553
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
13457
13554
|
"a",
|
|
13458
13555
|
{
|
|
13459
13556
|
href: explorer,
|
|
@@ -13461,7 +13558,7 @@ var Address = ({
|
|
|
13461
13558
|
rel: "noreferrer noopener",
|
|
13462
13559
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
13463
13560
|
title: "Open in explorer",
|
|
13464
|
-
children: /* @__PURE__ */ (0,
|
|
13561
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react49.ExternalLink, { className: "h-4 w-4" })
|
|
13465
13562
|
}
|
|
13466
13563
|
)
|
|
13467
13564
|
] });
|
|
@@ -13469,7 +13566,7 @@ var Address = ({
|
|
|
13469
13566
|
|
|
13470
13567
|
// src/internal/components/ui/badge.tsx
|
|
13471
13568
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
13472
|
-
var
|
|
13569
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
13473
13570
|
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
13474
13571
|
"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",
|
|
13475
13572
|
{
|
|
@@ -13489,11 +13586,11 @@ var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
|
13489
13586
|
}
|
|
13490
13587
|
);
|
|
13491
13588
|
function Badge({ className, variant, ...props }) {
|
|
13492
|
-
return /* @__PURE__ */ (0,
|
|
13589
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: cn2(badgeVariants({ variant }), className), ...props });
|
|
13493
13590
|
}
|
|
13494
13591
|
|
|
13495
13592
|
// src/internal/components/UserOpStatus.tsx
|
|
13496
|
-
var
|
|
13593
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
13497
13594
|
var UserOpStatus = ({
|
|
13498
13595
|
userOpHash,
|
|
13499
13596
|
chain,
|
|
@@ -13626,35 +13723,35 @@ var UserOpStatus = ({
|
|
|
13626
13723
|
const stateBadge = () => {
|
|
13627
13724
|
if (receipt) {
|
|
13628
13725
|
const ok = !!receipt.success;
|
|
13629
|
-
return /* @__PURE__ */ (0,
|
|
13630
|
-
ok ? /* @__PURE__ */ (0,
|
|
13726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
|
|
13727
|
+
ok ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.AlertCircle, { className: "h-3 w-3" }),
|
|
13631
13728
|
ok ? "Included" : "Failed"
|
|
13632
13729
|
] });
|
|
13633
13730
|
}
|
|
13634
13731
|
if (rejected) {
|
|
13635
|
-
return /* @__PURE__ */ (0,
|
|
13636
|
-
/* @__PURE__ */ (0,
|
|
13732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Badge, { variant: "destructive", className: "gap-1", children: [
|
|
13733
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.AlertCircle, { className: "h-3 w-3" }),
|
|
13637
13734
|
" Rejected by bundler"
|
|
13638
13735
|
] });
|
|
13639
13736
|
}
|
|
13640
13737
|
if (timedOut) {
|
|
13641
|
-
return /* @__PURE__ */ (0,
|
|
13642
|
-
/* @__PURE__ */ (0,
|
|
13738
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Badge, { variant: "warning", className: "gap-1", children: [
|
|
13739
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.AlertCircle, { className: "h-3 w-3" }),
|
|
13643
13740
|
" Timeout - may be rejected"
|
|
13644
13741
|
] });
|
|
13645
13742
|
}
|
|
13646
13743
|
if (mempool) {
|
|
13647
|
-
return /* @__PURE__ */ (0,
|
|
13648
|
-
/* @__PURE__ */ (0,
|
|
13744
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Badge, { variant: "outline", className: "gap-1", children: [
|
|
13745
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.Clock, { className: "h-3 w-3" }),
|
|
13649
13746
|
" Pending in bundler"
|
|
13650
13747
|
] });
|
|
13651
13748
|
}
|
|
13652
|
-
return /* @__PURE__ */ (0,
|
|
13653
|
-
/* @__PURE__ */ (0,
|
|
13749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Badge, { variant: "secondary", className: "gap-1", children: [
|
|
13750
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.Clock, { className: "h-3 w-3" }),
|
|
13654
13751
|
" Waiting"
|
|
13655
13752
|
] });
|
|
13656
13753
|
};
|
|
13657
|
-
return /* @__PURE__ */ (0,
|
|
13754
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
|
|
13658
13755
|
"div",
|
|
13659
13756
|
{
|
|
13660
13757
|
className: cn2(
|
|
@@ -13663,20 +13760,20 @@ var UserOpStatus = ({
|
|
|
13663
13760
|
),
|
|
13664
13761
|
style: { textAlign: "left", listStyle: "none" },
|
|
13665
13762
|
children: [
|
|
13666
|
-
/* @__PURE__ */ (0,
|
|
13667
|
-
/* @__PURE__ */ (0,
|
|
13763
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
13764
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
13668
13765
|
stateBadge(),
|
|
13669
|
-
/* @__PURE__ */ (0,
|
|
13766
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
13670
13767
|
] }),
|
|
13671
|
-
/* @__PURE__ */ (0,
|
|
13672
|
-
/* @__PURE__ */ (0,
|
|
13673
|
-
/* @__PURE__ */ (0,
|
|
13768
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
13769
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.RefreshCw, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
13770
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
13674
13771
|
] })
|
|
13675
13772
|
] }),
|
|
13676
|
-
/* @__PURE__ */ (0,
|
|
13677
|
-
/* @__PURE__ */ (0,
|
|
13678
|
-
/* @__PURE__ */ (0,
|
|
13679
|
-
/* @__PURE__ */ (0,
|
|
13773
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
13774
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
13775
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
13776
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
13680
13777
|
Button,
|
|
13681
13778
|
{
|
|
13682
13779
|
variant: "ghost",
|
|
@@ -13688,14 +13785,14 @@ var UserOpStatus = ({
|
|
|
13688
13785
|
} catch {
|
|
13689
13786
|
}
|
|
13690
13787
|
},
|
|
13691
|
-
children: /* @__PURE__ */ (0,
|
|
13788
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.Copy, { className: "h-3.5 w-3.5" })
|
|
13692
13789
|
}
|
|
13693
13790
|
)
|
|
13694
13791
|
] }),
|
|
13695
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
13696
|
-
/* @__PURE__ */ (0,
|
|
13697
|
-
/* @__PURE__ */ (0,
|
|
13698
|
-
/* @__PURE__ */ (0,
|
|
13792
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
13793
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
13794
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
13795
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
13699
13796
|
Button,
|
|
13700
13797
|
{
|
|
13701
13798
|
variant: "ghost",
|
|
@@ -13707,10 +13804,10 @@ var UserOpStatus = ({
|
|
|
13707
13804
|
} catch {
|
|
13708
13805
|
}
|
|
13709
13806
|
},
|
|
13710
|
-
children: /* @__PURE__ */ (0,
|
|
13807
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.Copy, { className: "h-3.5 w-3.5" })
|
|
13711
13808
|
}
|
|
13712
13809
|
),
|
|
13713
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
13810
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
13714
13811
|
"a",
|
|
13715
13812
|
{
|
|
13716
13813
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -13718,11 +13815,11 @@ var UserOpStatus = ({
|
|
|
13718
13815
|
rel: "noreferrer noopener",
|
|
13719
13816
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
13720
13817
|
title: "Open in explorer",
|
|
13721
|
-
children: /* @__PURE__ */ (0,
|
|
13818
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
13722
13819
|
}
|
|
13723
13820
|
)
|
|
13724
13821
|
] }),
|
|
13725
|
-
receipt && /* @__PURE__ */ (0,
|
|
13822
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
13726
13823
|
"Block ",
|
|
13727
13824
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
13728
13825
|
" \u2022 Gas Used",
|
|
@@ -13731,32 +13828,32 @@ var UserOpStatus = ({
|
|
|
13731
13828
|
" \u2022 Success ",
|
|
13732
13829
|
String(!!receipt.success)
|
|
13733
13830
|
] }),
|
|
13734
|
-
/* @__PURE__ */ (0,
|
|
13831
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { className: "ml-2", children: [
|
|
13735
13832
|
"\u2022 Polling for ",
|
|
13736
13833
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
13737
13834
|
"s"
|
|
13738
13835
|
] }) }),
|
|
13739
|
-
mempool && /* @__PURE__ */ (0,
|
|
13740
|
-
/* @__PURE__ */ (0,
|
|
13836
|
+
mempool && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
13837
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { children: [
|
|
13741
13838
|
"Seen by bundler at ",
|
|
13742
|
-
/* @__PURE__ */ (0,
|
|
13839
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
13743
13840
|
] }),
|
|
13744
|
-
/* @__PURE__ */ (0,
|
|
13841
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { children: [
|
|
13745
13842
|
"sender ",
|
|
13746
|
-
/* @__PURE__ */ (0,
|
|
13843
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
13747
13844
|
] })
|
|
13748
13845
|
] }),
|
|
13749
|
-
error && /* @__PURE__ */ (0,
|
|
13750
|
-
/* @__PURE__ */ (0,
|
|
13846
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
13847
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.AlertCircle, { className: "h-4 w-4" }),
|
|
13751
13848
|
" ",
|
|
13752
13849
|
error
|
|
13753
13850
|
] }),
|
|
13754
|
-
rejected && /* @__PURE__ */ (0,
|
|
13755
|
-
/* @__PURE__ */ (0,
|
|
13851
|
+
rejected && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
13852
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.AlertCircle, { className: "h-4 w-4" }),
|
|
13756
13853
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
13757
13854
|
] }),
|
|
13758
|
-
timedOut && /* @__PURE__ */ (0,
|
|
13759
|
-
/* @__PURE__ */ (0,
|
|
13855
|
+
timedOut && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
13856
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react50.AlertCircle, { className: "h-4 w-4" }),
|
|
13760
13857
|
"Stopped polling after ",
|
|
13761
13858
|
Math.round(maxPollTimeMs / 1e3),
|
|
13762
13859
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -13767,9 +13864,9 @@ var UserOpStatus = ({
|
|
|
13767
13864
|
};
|
|
13768
13865
|
|
|
13769
13866
|
// src/internal/components/Hash.tsx
|
|
13770
|
-
var
|
|
13867
|
+
var import_lucide_react51 = require("lucide-react");
|
|
13771
13868
|
var React14 = __toESM(require("react"), 1);
|
|
13772
|
-
var
|
|
13869
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
13773
13870
|
function toExplorerUrl(kind, value, chain) {
|
|
13774
13871
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
13775
13872
|
if (!base2) return null;
|
|
@@ -13793,11 +13890,11 @@ var Hash = ({
|
|
|
13793
13890
|
const value = hash || "";
|
|
13794
13891
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
13795
13892
|
const [copied, setCopied] = React14.useState(false);
|
|
13796
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
13797
|
-
return /* @__PURE__ */ (0,
|
|
13798
|
-
label && /* @__PURE__ */ (0,
|
|
13799
|
-
/* @__PURE__ */ (0,
|
|
13800
|
-
showCopy && /* @__PURE__ */ (0,
|
|
13893
|
+
if (!value) return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
13894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
13895
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
13896
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
13897
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
13801
13898
|
Button,
|
|
13802
13899
|
{
|
|
13803
13900
|
variant: "ghost",
|
|
@@ -13811,10 +13908,10 @@ var Hash = ({
|
|
|
13811
13908
|
} catch {
|
|
13812
13909
|
}
|
|
13813
13910
|
},
|
|
13814
|
-
children: /* @__PURE__ */ (0,
|
|
13911
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react51.Copy, { className: "h-4 w-4" })
|
|
13815
13912
|
}
|
|
13816
13913
|
),
|
|
13817
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
13914
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
13818
13915
|
"a",
|
|
13819
13916
|
{
|
|
13820
13917
|
href: explorer,
|
|
@@ -13822,7 +13919,7 @@ var Hash = ({
|
|
|
13822
13919
|
rel: "noreferrer noopener",
|
|
13823
13920
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
13824
13921
|
title: "Open in explorer",
|
|
13825
|
-
children: /* @__PURE__ */ (0,
|
|
13922
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react51.ExternalLink, { className: "h-4 w-4" })
|
|
13826
13923
|
}
|
|
13827
13924
|
)
|
|
13828
13925
|
] });
|
|
@@ -13831,7 +13928,7 @@ var Hash = ({
|
|
|
13831
13928
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
13832
13929
|
var import_react61 = require("react");
|
|
13833
13930
|
init_base();
|
|
13834
|
-
var
|
|
13931
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
13835
13932
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
13836
13933
|
const [transactions, setTransactions] = (0, import_react61.useState)([]);
|
|
13837
13934
|
const [loading, setLoading] = (0, import_react61.useState)(true);
|
|
@@ -13882,31 +13979,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
13882
13979
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
13883
13980
|
};
|
|
13884
13981
|
if (loading) {
|
|
13885
|
-
return /* @__PURE__ */ (0,
|
|
13886
|
-
/* @__PURE__ */ (0,
|
|
13887
|
-
/* @__PURE__ */ (0,
|
|
13982
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "p-4 text-center", children: [
|
|
13983
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
13984
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
13888
13985
|
] });
|
|
13889
13986
|
}
|
|
13890
13987
|
if (error) {
|
|
13891
|
-
return /* @__PURE__ */ (0,
|
|
13892
|
-
/* @__PURE__ */ (0,
|
|
13893
|
-
/* @__PURE__ */ (0,
|
|
13988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "p-4 text-center", children: [
|
|
13989
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-red-600 text-sm", children: error }),
|
|
13990
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
13894
13991
|
] });
|
|
13895
13992
|
}
|
|
13896
13993
|
if (transactions.length === 0) {
|
|
13897
|
-
return /* @__PURE__ */ (0,
|
|
13994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "p-4 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
13898
13995
|
}
|
|
13899
|
-
return /* @__PURE__ */ (0,
|
|
13996
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
13900
13997
|
"div",
|
|
13901
13998
|
{
|
|
13902
13999
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
13903
14000
|
onClick: () => openTransaction(tx.hash),
|
|
13904
14001
|
children: [
|
|
13905
|
-
/* @__PURE__ */ (0,
|
|
13906
|
-
/* @__PURE__ */ (0,
|
|
13907
|
-
/* @__PURE__ */ (0,
|
|
13908
|
-
/* @__PURE__ */ (0,
|
|
13909
|
-
/* @__PURE__ */ (0,
|
|
14002
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex justify-between items-start mb-2", children: [
|
|
14003
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex-1", children: [
|
|
14004
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
14005
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
14006
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
13910
14007
|
"span",
|
|
13911
14008
|
{
|
|
13912
14009
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -13914,40 +14011,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
13914
14011
|
}
|
|
13915
14012
|
)
|
|
13916
14013
|
] }),
|
|
13917
|
-
/* @__PURE__ */ (0,
|
|
13918
|
-
/* @__PURE__ */ (0,
|
|
13919
|
-
/* @__PURE__ */ (0,
|
|
13920
|
-
/* @__PURE__ */ (0,
|
|
14014
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "text-sm space-y-1", children: [
|
|
14015
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { children: [
|
|
14016
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-gray-600", children: "From:" }),
|
|
14017
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
13921
14018
|
formatAddress3(tx.from.hash),
|
|
13922
|
-
tx.from.is_contract && /* @__PURE__ */ (0,
|
|
14019
|
+
tx.from.is_contract && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
13923
14020
|
] })
|
|
13924
14021
|
] }),
|
|
13925
|
-
/* @__PURE__ */ (0,
|
|
13926
|
-
/* @__PURE__ */ (0,
|
|
13927
|
-
/* @__PURE__ */ (0,
|
|
14022
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { children: [
|
|
14023
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-gray-600", children: "To:" }),
|
|
14024
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
13928
14025
|
formatAddress3(tx.to.hash),
|
|
13929
|
-
tx.to.is_contract && /* @__PURE__ */ (0,
|
|
14026
|
+
tx.to.is_contract && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
13930
14027
|
] })
|
|
13931
14028
|
] }),
|
|
13932
|
-
/* @__PURE__ */ (0,
|
|
13933
|
-
/* @__PURE__ */ (0,
|
|
13934
|
-
/* @__PURE__ */ (0,
|
|
14029
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { children: [
|
|
14030
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-gray-600", children: "Value:" }),
|
|
14031
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "font-semibold ml-1", children: [
|
|
13935
14032
|
formatValue3(tx.value),
|
|
13936
14033
|
" LUMIA"
|
|
13937
14034
|
] })
|
|
13938
14035
|
] })
|
|
13939
14036
|
] })
|
|
13940
14037
|
] }),
|
|
13941
|
-
/* @__PURE__ */ (0,
|
|
13942
|
-
/* @__PURE__ */ (0,
|
|
13943
|
-
/* @__PURE__ */ (0,
|
|
14038
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "text-right text-xs text-gray-500", children: [
|
|
14039
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { children: formatDate3(tx.timestamp) }),
|
|
14040
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "mt-1", children: [
|
|
13944
14041
|
"Gas: ",
|
|
13945
14042
|
parseInt(tx.gas_used).toLocaleString()
|
|
13946
14043
|
] }),
|
|
13947
|
-
tx.method && /* @__PURE__ */ (0,
|
|
14044
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
13948
14045
|
] })
|
|
13949
14046
|
] }),
|
|
13950
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */ (0,
|
|
14047
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
13951
14048
|
]
|
|
13952
14049
|
},
|
|
13953
14050
|
tx.hash
|