@lumiapassport/ui-kit 1.14.24 → 1.14.26

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/index.js CHANGED
@@ -4342,8 +4342,9 @@ async function changeNickname(handle) {
4342
4342
  }
4343
4343
  async function checkNicknameAvailability(handle) {
4344
4344
  const normalizedHandle = handle.toLowerCase().replace(/^@/, "");
4345
- const response = await tssClient.get(
4346
- `/api/auth/nicknames/${encodeURIComponent(normalizedHandle)}/check`,
4345
+ const response = await tssClient.post(
4346
+ "/api/auth/nicknames/check",
4347
+ { handle: normalizedHandle },
4347
4348
  false
4348
4349
  // Public endpoint, no auth required
4349
4350
  );
@@ -4355,14 +4356,15 @@ async function checkNicknameAvailability(handle) {
4355
4356
  }
4356
4357
  async function resolveNickname(handle) {
4357
4358
  const normalizedHandle = handle.toLowerCase().replace(/^@/, "");
4358
- const response = await tssClient.get(
4359
- `/api/auth/nicknames/${encodeURIComponent(normalizedHandle)}/resolve`,
4359
+ const response = await tssClient.post(
4360
+ "/api/auth/nicknames/resolve",
4361
+ { handle: normalizedHandle },
4360
4362
  false
4361
4363
  // Public endpoint, no auth required
4362
4364
  );
4363
4365
  if (!response.success || !response.data) {
4364
- const errorData = response.data;
4365
- if (errorData?.code === "NICKNAME_NOT_FOUND") {
4366
+ const errorData = response.data || {};
4367
+ if (errorData.code === "NICKNAME_NOT_FOUND") {
4366
4368
  const error = new Error("Nickname not found");
4367
4369
  error.code = "NICKNAME_NOT_FOUND";
4368
4370
  throw error;
@@ -4474,7 +4476,7 @@ var init_profile = __esm({
4474
4476
  });
4475
4477
 
4476
4478
  // src/styles/built.css
4477
- var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-1{top:-.25rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .-top-3{top:-.75rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-0{right:0}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .m-4{margin:1rem}.lumia-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .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-3{width:.75rem;height:.75rem}.lumia-scope .size-3\\.5{width:.875rem;height:.875rem}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-7{height:1.75rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-\\[48px\\]{height:48px}.lumia-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[40px\\]{width:40px}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-5{min-width:1.25rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[8rem\\]{min-width:8rem}.lumia-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[150px\\]{max-width:150px}.lumia-scope .max-w-\\[160px\\]{max-width:160px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-warning)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lumia-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lumia-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lumia-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-0\\.5{gap:.125rem}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-1\\.5{gap:.375rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-x-hidden{overflow-x:hidden}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-normal{overflow-wrap:normal;word-break:normal}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-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-fg-inverted\\)\\]{background-color:var(--l-pass-fg-inverted)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-gap\\)\\]{padding:var(--l-pass-gap)}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-1{padding-left:.25rem;padding-right:.25rem}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-gap\\)\\]{padding-left:var(--l-pass-gap);padding-right:var(--l-pass-gap)}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-gap\\)\\]{padding-top:var(--l-pass-gap);padding-bottom:var(--l-pass-gap)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pl-2{padding-left:.5rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pr-8{padding-right:2rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[14px\\]{font-size:14px}.lumia-scope .text-\\[16px\\]{font-size:16px}.lumia-scope .text-\\[8px\\]{font-size:8px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-normal{font-weight:400}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .lowercase{text-transform:lowercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-8{line-height:2rem}.lumia-scope .leading-\\[8px\\]{line-height:8px}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-2{text-underline-offset:2px}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .shadow-sm,.lumia-scope .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,384px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#ebebeb);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.6));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.6));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.4));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.lumia-scope input,.lumia-scope textarea{font-size:16px!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 20px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.lumia-scope .file\\:mr-\\[var\\(--l-pass-gap\\)\\]::file-selector-button{margin-right:var(--l-pass-gap)}.lumia-scope .file\\:h-12::file-selector-button{height:3rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.lumia-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-secondary\\)\\]:hover:disabled{background-color:var(--l-pass-secondary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.lumia-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.lumia-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}.lumia-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--l-pass-gap\\)\\][data-slot=select-value]>*){gap:var(--l-pass-gap)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\'size-\\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
4479
+ var built_default = '.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\\201C""\\201D""\\2018""\\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lumia-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lumia-scope .pointer-events-none{pointer-events:none}.lumia-scope .pointer-events-auto{pointer-events:auto}.lumia-scope .visible{visibility:visible}.lumia-scope .invisible{visibility:hidden}.lumia-scope .collapse{visibility:collapse}.lumia-scope .static{position:static}.lumia-scope .fixed{position:fixed}.lumia-scope .absolute{position:absolute}.lumia-scope .relative{position:relative}.lumia-scope .inset-0{inset:0}.lumia-scope .inset-y-0{top:0;bottom:0}.lumia-scope .-bottom-1{bottom:-.25rem}.lumia-scope .-right-1{right:-.25rem}.lumia-scope .-right-2{right:-.5rem}.lumia-scope .-top-1{top:-.25rem}.lumia-scope .-top-2{top:-.5rem}.lumia-scope .-top-3{top:-.75rem}.lumia-scope .bottom-full{bottom:100%}.lumia-scope .left-0{left:0}.lumia-scope .left-1{left:.25rem}.lumia-scope .left-1\\/2{left:50%}.lumia-scope .left-3{left:.75rem}.lumia-scope .left-4{left:1rem}.lumia-scope .right-0{right:0}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .m-4{margin:1rem}.lumia-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-3{margin-left:.75rem}.lumia-scope .ml-4{margin-left:1rem}.lumia-scope .ml-auto{margin-left:auto}.lumia-scope .mr-1{margin-right:.25rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-2{margin-top:.5rem}.lumia-scope .mt-3{margin-top:.75rem}.lumia-scope .mt-4{margin-top:1rem}.lumia-scope .mt-6{margin-top:1.5rem}.lumia-scope .block{display:block}.lumia-scope .inline-block{display:inline-block}.lumia-scope .inline{display:inline}.lumia-scope .flex{display:flex}.lumia-scope .inline-flex{display:inline-flex}.lumia-scope .table{display:table}.lumia-scope .grid{display:grid}.lumia-scope .contents{display:contents}.lumia-scope .hidden{display:none}.lumia-scope .aspect-square{aspect-ratio:1/1}.lumia-scope .size-3{width:.75rem;height:.75rem}.lumia-scope .size-3\\.5{width:.875rem;height:.875rem}.lumia-scope .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-7{height:1.75rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-\\[48px\\]{height:48px}.lumia-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.lumia-scope .h-fit{height:-moz-fit-content;height:fit-content}.lumia-scope .h-full{height:100%}.lumia-scope .h-px{height:1px}.lumia-scope .max-h-24{max-height:6rem}.lumia-scope .max-h-96{max-height:24rem}.lumia-scope .max-h-\\[95dvh\\]{max-height:95dvh}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[40px\\]{width:40px}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-4{min-width:1rem}.lumia-scope .min-w-5{min-width:1.25rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[8rem\\]{min-width:8rem}.lumia-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[150px\\]{max-width:150px}.lumia-scope .max-w-\\[160px\\]{max-width:160px}.lumia-scope .max-w-\\[256px\\]{max-width:256px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-full{max-width:100%}.lumia-scope .max-w-lg{max-width:32rem}.lumia-scope .max-w-md{max-width:28rem}.lumia-scope .max-w-sm{max-width:24rem}.lumia-scope .flex-1{flex:1 1 0%}.lumia-scope .flex-none{flex:none}.lumia-scope .flex-shrink{flex-shrink:1}.lumia-scope .flex-shrink-0,.lumia-scope .shrink-0{flex-shrink:0}.lumia-scope .border-collapse{border-collapse:collapse}.lumia-scope .-translate-x-1{--tw-translate-x:-0.25rem}.lumia-scope .-translate-x-1,.lumia-scope .-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\]{--tw-translate-x:calc(var(--l-pass-gap)*-1)}.lumia-scope .-translate-x-\\[var\\(--l-pass-gap\\)\\],.lumia-scope .-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .-translate-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .-translate-y-1\\/2,.lumia-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--l-pass-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-warning)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lumia-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lumia-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lumia-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-0\\.5{gap:.125rem}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-1\\.5{gap:.375rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-x-hidden{overflow-x:hidden}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-normal{overflow-wrap:normal;word-break:normal}.lumia-scope .break-words{overflow-wrap:break-word}.lumia-scope .break-all{word-break:break-all}.lumia-scope .rounded{border-radius:.25rem}.lumia-scope .rounded-2xl{border-radius:1rem}.lumia-scope .rounded-3xl{border-radius:1.5rem}.lumia-scope .rounded-\\[10px\\]{border-radius:10px}.lumia-scope .rounded-\\[5px\\]{border-radius:5px}.lumia-scope .rounded-\\[var\\(--l-pass-bdrs\\)\\]{border-radius:var(--l-pass-bdrs)}.lumia-scope .rounded-\\[var\\(--l-pass-el-bdrs\\)\\]{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .rounded-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:.5rem}.lumia-scope .rounded-md{border-radius:.375rem}.lumia-scope .rounded-sm{border-radius:.125rem}.lumia-scope .rounded-xl{border-radius:.75rem}.lumia-scope .border{border-width:1px}.lumia-scope .border-0{border-width:0}.lumia-scope .border-2{border-width:2px}.lumia-scope .border-b{border-bottom-width:1px}.lumia-scope .border-b-2{border-bottom-width:2px}.lumia-scope .border-t{border-top-width:1px}.lumia-scope .border-dashed{border-style:dashed}.lumia-scope .border-\\[var\\(--l-pass-bd\\)\\]{border-color:var(--l-pass-bd)}.lumia-scope .border-\\[var\\(--l-pass-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-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-gap\\)\\]{padding:var(--l-pass-gap)}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-1{padding-left:.25rem;padding-right:.25rem}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[2px\\]{padding-left:2px;padding-right:2px}.lumia-scope .px-\\[var\\(--l-pass-gap\\)\\]{padding-left:var(--l-pass-gap);padding-right:var(--l-pass-gap)}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pl-2{padding-left:.5rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pr-8{padding-right:2rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[14px\\]{font-size:14px}.lumia-scope .text-\\[16px\\]{font-size:16px}.lumia-scope .text-\\[8px\\]{font-size:8px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-normal{font-weight:400}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .lowercase{text-transform:lowercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-8{line-height:2rem}.lumia-scope .leading-\\[8px\\]{line-height:8px}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-2{text-underline-offset:2px}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .shadow-sm,.lumia-scope .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,384px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#ebebeb);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.6));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.6));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.4));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.lumia-scope input,.lumia-scope textarea{font-size:16px!important}.lumia-scope .lumia-passport-button{box-shadow:0 4px 20px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.lumia-scope .file\\:mr-\\[var\\(--l-pass-gap\\)\\]::file-selector-button{margin-right:var(--l-pass-gap)}.lumia-scope .file\\:h-12::file-selector-button{height:3rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.lumia-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-secondary\\)\\]:hover:disabled{background-color:var(--l-pass-secondary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.lumia-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.lumia-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.lumia-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.lumia-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lumia-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}.lumia-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.lumia-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--l-pass-gap\\)\\][data-slot=select-value]>*){gap:var(--l-pass-gap)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\'size-\\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
4478
4480
 
4479
4481
  // src/context/LumiaPassportContext.tsx
4480
4482
  init_lumiaPassport();
@@ -4485,13 +4487,13 @@ import {
4485
4487
  createContext,
4486
4488
  useCallback as useCallback22,
4487
4489
  useContext,
4488
- useEffect as useEffect36,
4490
+ useEffect as useEffect33,
4489
4491
  useMemo as useMemo5,
4490
- useRef as useRef14
4492
+ useRef as useRef13
4491
4493
  } from "react";
4492
4494
 
4493
4495
  // src/context/LumiaPassportSessionContext.tsx
4494
- import { Fragment as Fragment25 } from "react";
4496
+ import { Fragment as Fragment27 } from "react";
4495
4497
  import { create as create6 } from "zustand";
4496
4498
 
4497
4499
  // src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
@@ -4510,7 +4512,7 @@ import { Key as Key2, Mail as Mail2, Wallet2 as Wallet22 } from "lucide-react";
4510
4512
  var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
4511
4513
  var DEFAULT_AUTH_MENU_HEIGHT = 253;
4512
4514
  var DEFAULT_MAIN_MENU_HEIGHT = 90;
4513
- var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
4515
+ var DEFAULT_SETTINGS_MENU_HEIGHT = 404;
4514
4516
  var MAX_CONTENT_HEIGHT = 640;
4515
4517
  var MAIN_DIALOG_ANIMATION_SPEED = 375;
4516
4518
  var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
@@ -4670,7 +4672,7 @@ function BalanceFeedProvider() {
4670
4672
 
4671
4673
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
4672
4674
  import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
4673
- import { useEffect as useEffect34 } from "react";
4675
+ import { useEffect as useEffect31 } from "react";
4674
4676
 
4675
4677
  // src/internal/components/Footer/Footer.tsx
4676
4678
  import { useMutation, useQueryClient } from "@tanstack/react-query";
@@ -4989,7 +4991,7 @@ function LumiaIcon(props) {
4989
4991
 
4990
4992
  // src/internal/components/Header/Header.tsx
4991
4993
  import { useQuery as useQuery3 } from "@tanstack/react-query";
4992
- import { Copy } from "lucide-react";
4994
+ import { Copy, Loader as Loader3 } from "lucide-react";
4993
4995
  import { useState as useState3 } from "react";
4994
4996
 
4995
4997
  // src/internal/assets/PositiveIcon.tsx
@@ -5344,23 +5346,20 @@ function KYCStatus() {
5344
5346
  }
5345
5347
 
5346
5348
  // src/internal/components/Header/Header.tsx
5347
- import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
5349
+ import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
5348
5350
  function formatAddress(addr) {
5349
5351
  if (!addr) return "";
5350
5352
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
5351
5353
  }
5352
5354
  function Header() {
5353
- const {
5354
- config: { current: config }
5355
- } = useLumiaPassportConfig();
5355
+ const config = useLumiaPassportConfig().config;
5356
5356
  const address = useLumiaPassportSession((st) => st.address);
5357
5357
  const [copied, setCopied] = useState3(false);
5358
- const { data: profile } = useQuery3({
5359
- queryKey: [QUERY_KEYS.userProfile],
5360
- queryFn: getUserProfile,
5358
+ const { data: profile, isLoading: isProfileLoading } = useQuery3({
5359
+ retry: false,
5361
5360
  enabled: !!address,
5362
- staleTime: 1e3 * 60 * 5
5363
- // 5 minutes
5361
+ queryKey: [QUERY_KEYS.userProfile, address],
5362
+ queryFn: getUserProfile
5364
5363
  });
5365
5364
  const avatar = profile?.avatar || jwtTokenManager2.getAvatar();
5366
5365
  const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
@@ -5380,20 +5379,23 @@ function Header() {
5380
5379
  style: { width: "calc(100% - 48px - var(--l-pass-gap))" },
5381
5380
  className: "flex-1 flex flex-col justify-center gap-1",
5382
5381
  children: [
5383
- /* @__PURE__ */ jsxs11("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
5384
- /* @__PURE__ */ jsx12(
5385
- "span",
5386
- {
5387
- className: cn(
5388
- "text-[14px] leading-4 truncate max-w-[144px] font-medium",
5389
- "text-ellipsis overflow-hidden whitespace-nowrap"
5390
- ),
5391
- children: displayName || config.ui.title || "LumiaPassport"
5392
- }
5393
- ),
5394
- /* @__PURE__ */ jsx12(KYCStatus, {})
5395
- ] }),
5396
- !!address && /* @__PURE__ */ jsx12(BalanceView, {})
5382
+ isProfileLoading && /* @__PURE__ */ jsx12(Loader3, { className: "w-4 h-4 animate-spin" }),
5383
+ !!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs11(Fragment3, { children: [
5384
+ /* @__PURE__ */ jsxs11("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
5385
+ /* @__PURE__ */ jsx12(
5386
+ "span",
5387
+ {
5388
+ className: cn(
5389
+ "text-[14px] leading-4 truncate max-w-[144px] font-medium",
5390
+ "text-ellipsis overflow-hidden whitespace-nowrap"
5391
+ ),
5392
+ children: displayName || config.current?.ui?.title || "LumiaPassport"
5393
+ }
5394
+ ),
5395
+ /* @__PURE__ */ jsx12(KYCStatus, {})
5396
+ ] }),
5397
+ /* @__PURE__ */ jsx12(BalanceView, {})
5398
+ ] })
5397
5399
  ]
5398
5400
  }
5399
5401
  )
@@ -5453,13 +5455,11 @@ function Header() {
5453
5455
  }
5454
5456
  );
5455
5457
  }
5456
- {
5457
- }
5458
5458
 
5459
5459
  // package.json
5460
5460
  var package_default = {
5461
5461
  name: "@lumiapassport/ui-kit",
5462
- version: "1.14.24",
5462
+ version: "1.14.25",
5463
5463
  description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
5464
5464
  type: "module",
5465
5465
  main: "./dist/index.cjs",
@@ -5898,17 +5898,28 @@ import { useEffect as useEffect5 } from "react";
5898
5898
  init_vaultClient();
5899
5899
  function useBackupStatusChanges() {
5900
5900
  const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
5901
+ const setPage = useLayoutDataStore((st) => st.setPage);
5901
5902
  const { mutate: handleBackupStatusChanged } = useMutation2({
5902
5903
  mutationFn: async (event) => {
5903
5904
  const customEvent = event;
5904
- return await getShareRecoveryStats();
5905
+ console.log("[BACKUP STATUS] changed:", customEvent?.detail);
5906
+ return { stats: await getShareRecoveryStats(), detail: customEvent?.detail };
5905
5907
  },
5906
- onSuccess: (stats) => {
5908
+ onSuccess: ({ stats, detail }) => {
5907
5909
  const hasRecoveryData = stats && (!!stats.created || !!stats?.devices?.length);
5908
5910
  if (!!hasRecoveryData) {
5911
+ console.log(
5912
+ "[BACKUP STATUS] Recovery data found after backup status change.\n Redirect to main menu:",
5913
+ detail?.navigateToMainMenu
5914
+ );
5909
5915
  setHasServerVault(true);
5916
+ if (!!detail?.navigateToMainMenu) {
5917
+ setTimeout(() => setPage("main-menu" /* MAIN_MENU */), 1e3);
5918
+ }
5919
+ console.info("[BACKUP STATUS] Recovery data found in vault, marking as has-server-vault");
5910
5920
  } else {
5911
5921
  setHasServerVault(false);
5922
+ setPage("keysare-backup" /* KEYSARE_BACKUP */);
5912
5923
  console.warn("[BACKUP STATUS] No recovery data found in vault, marking as no-server-vault");
5913
5924
  }
5914
5925
  },
@@ -5925,68 +5936,9 @@ function useBackupStatusChanges() {
5925
5936
  }, []);
5926
5937
  }
5927
5938
 
5928
- // src/internal/hooks/useBackupWarning.ts
5929
- import { useEffect as useEffect6, useRef as useRef3 } from "react";
5930
- var WARNING_TIMEOUT_MS = 4500;
5931
- function useBackupWarning() {
5932
- const address = useLumiaPassportSession((st) => st.address);
5933
- const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
5934
- const page = useLayoutDataStore((st) => st.page);
5935
- const setPage = useLayoutDataStore((st) => st.setPage);
5936
- const timeoutRef = useRef3(null);
5937
- const touchedRef = useRef3(false);
5938
- useEffect6(() => {
5939
- if (touchedRef.current) return;
5940
- if (timeoutRef.current) {
5941
- clearTimeout(timeoutRef.current);
5942
- timeoutRef.current = null;
5943
- }
5944
- if (!address || !!hasServerVault || page === "keysare-backup" /* KEYSARE_BACKUP */) return;
5945
- timeoutRef.current = setTimeout(() => {
5946
- setPage("keysare-backup" /* KEYSARE_BACKUP */);
5947
- touchedRef.current = true;
5948
- timeoutRef.current = null;
5949
- }, WARNING_TIMEOUT_MS);
5950
- return () => {
5951
- if (timeoutRef.current) {
5952
- clearTimeout(timeoutRef.current);
5953
- timeoutRef.current = null;
5954
- }
5955
- };
5956
- }, [address, page, hasServerVault, setPage]);
5957
- return null;
5958
- }
5959
-
5960
- // src/internal/hooks/useCheckVaultStatus.ts
5961
- import { useMutation as useMutation3 } from "@tanstack/react-query";
5962
- import { useEffect as useEffect7 } from "react";
5963
- init_vaultClient();
5964
- function useCheckVaultStatus() {
5965
- const address = useLumiaPassportSession((st) => st.address);
5966
- const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
5967
- const { mutate: checkVaultStatus } = useMutation3({
5968
- mutationFn: async () => {
5969
- const stats = await getShareRecoveryStats();
5970
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
5971
- return !!hasRecoveryData;
5972
- },
5973
- onSuccess: (hasRecoveryData) => {
5974
- setHasServerVault(hasRecoveryData);
5975
- },
5976
- onError: (error) => {
5977
- console.warn("[UI-KIT] Failed to check vault status:", error);
5978
- setHasServerVault(false);
5979
- }
5980
- });
5981
- useEffect7(() => {
5982
- if (!address) return setHasServerVault(false);
5983
- checkVaultStatus();
5984
- }, [address, checkVaultStatus]);
5985
- }
5986
-
5987
5939
  // src/internal/hooks/useDetectMaxScrollHeight.ts
5988
5940
  import { debounce } from "lodash-es";
5989
- import { useCallback as useCallback3, useEffect as useEffect8 } from "react";
5941
+ import { useCallback as useCallback3, useEffect as useEffect6 } from "react";
5990
5942
  var DEBOUNCE_DELAY = 50;
5991
5943
  function useDetectMaxScrollHeight() {
5992
5944
  const page = useLayoutDataStore((state) => state.page);
@@ -6001,7 +5953,7 @@ function useDetectMaxScrollHeight() {
6001
5953
  }, DEBOUNCE_DELAY),
6002
5954
  [page, setMaxScrollHeight, setIsMobileView]
6003
5955
  );
6004
- useEffect8(() => {
5956
+ useEffect6(() => {
6005
5957
  const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect));
6006
5958
  const doc = window.document.getElementsByTagName("html")[0];
6007
5959
  if (doc) obs.observe(doc);
@@ -6010,20 +5962,20 @@ function useDetectMaxScrollHeight() {
6010
5962
  }
6011
5963
 
6012
5964
  // src/internal/hooks/usePageMapper.tsx
6013
- import { useCallback as useCallback19, useEffect as useEffect31 } from "react";
5965
+ import { useCallback as useCallback19, useEffect as useEffect28 } from "react";
6014
5966
 
6015
5967
  // src/internal/components/AuthMenu/AuthMenu.tsx
6016
5968
  import { AnimatePresence, motion } from "framer-motion";
6017
- import { AlertTriangle as AlertTriangle2, Loader as Loader5 } from "lucide-react";
6018
- import { useEffect as useEffect11, useMemo, useRef as useRef9, useState as useState6 } from "react";
5969
+ import { AlertTriangle as AlertTriangle2, Loader as Loader6 } from "lucide-react";
5970
+ import { useEffect as useEffect9, useMemo, useRef as useRef8, useState as useState6 } from "react";
6019
5971
 
6020
5972
  // src/internal/components/Expandable/hooks/useExpandable.ts
6021
- import { useCallback as useCallback4, useEffect as useEffect9, useRef as useRef4 } from "react";
5973
+ import { useCallback as useCallback4, useEffect as useEffect7, useRef as useRef3 } from "react";
6022
5974
  var useExpandable = (props) => {
6023
5975
  const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
6024
- const expandableRef = useRef4(null);
6025
- const contentRef = useRef4(null);
6026
- useEffect9(() => {
5976
+ const expandableRef = useRef3(null);
5977
+ const contentRef = useRef3(null);
5978
+ useEffect7(() => {
6027
5979
  if (!expandableRef.current) return;
6028
5980
  expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
6029
5981
  }, []);
@@ -6038,7 +5990,7 @@ var useExpandable = (props) => {
6038
5990
  // ON_RESIZE_DELEAY),
6039
5991
  [minHeight]
6040
5992
  );
6041
- useEffect9(() => {
5993
+ useEffect7(() => {
6042
5994
  if (!contentRef.current || !expandableRef.current) return;
6043
5995
  const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
6044
5996
  obs.observe(expandableRef.current);
@@ -6199,7 +6151,7 @@ function PasskeyAddIcon(props) {
6199
6151
 
6200
6152
  // src/internal/components/AuthMenu/PassKeyStep.tsx
6201
6153
  init_auth();
6202
- import { Fragment as Fragment3, jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
6154
+ import { Fragment as Fragment4, jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
6203
6155
  function normalizeWebAuthnError(err) {
6204
6156
  const raw = err?.message || String(err || "");
6205
6157
  const lower = raw.toLowerCase();
@@ -6392,7 +6344,7 @@ function PassKeyStep(props) {
6392
6344
  /* @__PURE__ */ jsx19(Key3, { className: "w-4 h-4" }),
6393
6345
  "Sign in with existing Passkey"
6394
6346
  ] }),
6395
- config.passkey.showCreateButton && /* @__PURE__ */ jsxs15(Fragment3, { children: [
6347
+ config.passkey.showCreateButton && /* @__PURE__ */ jsxs15(Fragment4, { children: [
6396
6348
  /* @__PURE__ */ jsx19("span", { className: "block w-full text-center text-sm text-[var(--l-pass-fg-muted)]", children: "Don't have a passkey?" }),
6397
6349
  /* @__PURE__ */ jsxs15(Button, { variant: "outline", size: "large", className: "w-full", onClick: onPasskeyRegister, disabled: isLoading, children: [
6398
6350
  /* @__PURE__ */ jsx19(PasskeyAddIcon, { className: "w-4 h-4" }),
@@ -6406,21 +6358,21 @@ function PassKeyStep(props) {
6406
6358
 
6407
6359
  // src/internal/components/AuthMenu/SignInStep/SignInStep.tsx
6408
6360
  import { UserCircle } from "lucide-react";
6409
- import { Fragment as Fragment4 } from "react";
6361
+ import { Fragment as Fragment5 } from "react";
6410
6362
 
6411
6363
  // src/internal/components/AuthMenu/SignInStep/Email.tsx
6412
6364
  init_lumiaPassport();
6413
6365
  init_projectId();
6414
- import { useMutation as useMutation4 } from "@tanstack/react-query";
6415
- import { ChevronRight, Loader as Loader3, Mail as Mail3 } from "lucide-react";
6416
- import { useRef as useRef6 } from "react";
6366
+ import { useMutation as useMutation3 } from "@tanstack/react-query";
6367
+ import { ChevronRight, Loader as Loader4, Mail as Mail3 } from "lucide-react";
6368
+ import { useRef as useRef5 } from "react";
6417
6369
 
6418
6370
  // src/internal/components/ui/input.tsx
6419
- import React, { useImperativeHandle, useRef as useRef5 } from "react";
6371
+ import React, { useImperativeHandle, useRef as useRef4 } from "react";
6420
6372
  import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
6421
6373
  var Input = React.forwardRef((props, ref) => {
6422
6374
  const { className, disabled, error, Icon: Icon2, element, ...inputProps } = props;
6423
- const internalRef = useRef5(null);
6375
+ const internalRef = useRef4(null);
6424
6376
  useImperativeHandle(ref, () => internalRef.current);
6425
6377
  return /* @__PURE__ */ jsxs16("div", { className: cn("w-full flex flex-col gap-1", className), children: [
6426
6378
  /* @__PURE__ */ jsxs16(
@@ -6468,11 +6420,11 @@ Input.displayName = "Input";
6468
6420
  import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
6469
6421
  function Email() {
6470
6422
  const { config, callbacks } = useLumiaPassportConfig();
6471
- const buttonRef = useRef6(null);
6423
+ const buttonRef = useRef5(null);
6472
6424
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
6473
6425
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6474
6426
  const { email, alert: alert2, setEmail, setExpiresIn, setStep, setAlert } = useAuthStore();
6475
- const { mutate: onSendVerificationCode } = useMutation4({
6427
+ const { mutate: onSendVerificationCode } = useMutation3({
6476
6428
  mutationFn: async (mail) => {
6477
6429
  const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
6478
6430
  if (!isEmailValid) {
@@ -6559,7 +6511,7 @@ function Email() {
6559
6511
  size: "large",
6560
6512
  disabled: !email || isLoading,
6561
6513
  onClick: () => onSendVerificationCode(email),
6562
- children: isLoading ? /* @__PURE__ */ jsx21(Loader3, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx21(ChevronRight, { className: "w-4 h-4" })
6514
+ children: isLoading ? /* @__PURE__ */ jsx21(Loader4, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx21(ChevronRight, { className: "w-4 h-4" })
6563
6515
  }
6564
6516
  )
6565
6517
  ]
@@ -7043,7 +6995,7 @@ function SignInStep(props) {
7043
6995
  /* @__PURE__ */ jsx24(UserCircle, { className: "w-6 h-6" }),
7044
6996
  /* @__PURE__ */ jsx24("span", { className: "font-bold text-xl leading-6", children: "Sign In" })
7045
6997
  ] }),
7046
- /* @__PURE__ */ jsx24("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: enabledSigninMethods.map((kind, idx) => /* @__PURE__ */ jsxs20(Fragment4, { children: [
6998
+ /* @__PURE__ */ jsx24("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: enabledSigninMethods.map((kind, idx) => /* @__PURE__ */ jsxs20(Fragment5, { children: [
7047
6999
  idx > 0 && /* @__PURE__ */ jsxs20("div", { className: "flex items-center h-4", children: [
7048
7000
  /* @__PURE__ */ jsx24("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
7049
7001
  /* @__PURE__ */ jsx24("div", { className: "text-[10px] px-2 flex-none leading-4", children: "Or sign in using" }),
@@ -7070,11 +7022,11 @@ function SignInStep(props) {
7070
7022
  // src/internal/components/AuthMenu/useAuthMenuHanders.ts
7071
7023
  init_auth();
7072
7024
  import { useQueryClient as useQueryClient2 } from "@tanstack/react-query";
7073
- import { useCallback as useCallback7, useRef as useRef7, useState as useState4 } from "react";
7025
+ import { useCallback as useCallback7, useRef as useRef6, useState as useState4 } from "react";
7074
7026
  function useAuthMenuHandlers() {
7075
7027
  const { config, callbacks } = useLumiaPassportConfig();
7076
7028
  const qc = useQueryClient2();
7077
- const pendingLoginResponseRef = useRef7(null);
7029
+ const pendingLoginResponseRef = useRef6(null);
7078
7030
  const setPage = useLayoutDataStore((st) => st.setPage);
7079
7031
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
7080
7032
  const [telegramCleanup, setTelegramCleanup] = useState4(null);
@@ -7159,6 +7111,7 @@ function useAuthMenuHandlers() {
7159
7111
  callbacks?.onLumiaPassportAccount?.({ userId, address: addr, session: sess, hasKeyshare: hasServerKeyshare });
7160
7112
  } catch {
7161
7113
  }
7114
+ let hasKeyshareVaultBackup = false;
7162
7115
  try {
7163
7116
  const { checkServerBackupAvailability: checkServerBackupAvailability2, updateBackupStatus: updateBackupStatus2, getShareRecoveryStats: getShareRecoveryStats2 } = await Promise.resolve().then(() => (init_vaultClient(), vaultClient_exports));
7164
7117
  const result = await checkServerBackupAvailability2();
@@ -7168,8 +7121,8 @@ function useAuthMenuHandlers() {
7168
7121
  updateBackupStatus2(userId, "server", { enabled: false, error: "No server vault found" });
7169
7122
  }
7170
7123
  const stats = await getShareRecoveryStats2();
7171
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
7172
- setHasServerVault(!!hasRecoveryData);
7124
+ hasKeyshareVaultBackup = !!stats && (!!stats.created || !!stats.devices && stats.devices.length > 0);
7125
+ setHasServerVault(!!hasKeyshareVaultBackup);
7173
7126
  qc.refetchQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, addr] });
7174
7127
  } catch (e) {
7175
7128
  console.warn("[UI-KIT] Vault status check failed:", e);
@@ -7177,13 +7130,17 @@ function useAuthMenuHandlers() {
7177
7130
  setSession(sess);
7178
7131
  setAddress(addr);
7179
7132
  setStatus("ready");
7180
- if (jwt?.isNewUser) {
7181
- console.log("[AuthMenu] New user detected - forcing backup flow");
7182
- setIsDialogForced(true);
7183
- setPage("keysare-backup" /* KEYSARE_BACKUP */);
7184
- } else {
7185
- setPage(null);
7186
- }
7133
+ setTimeout(() => {
7134
+ if (!!jwt?.isNewUser || !hasKeyshareVaultBackup) {
7135
+ if (!!jwt?.isNewUser) console.log("[AuthMenu] New user detected - forcing backup flow");
7136
+ if (!hasKeyshareVaultBackup) console.log("[AuthMenu] No recovery data found - forcing backup flow");
7137
+ setIsDialogForced(true);
7138
+ setPage("keysare-backup" /* KEYSARE_BACKUP */);
7139
+ } else {
7140
+ setIsDialogForced(false);
7141
+ setPage(null);
7142
+ }
7143
+ }, 100);
7187
7144
  } catch (error) {
7188
7145
  if (error?.code === "KEYSHARE_RECOVERY_NEEDED") {
7189
7146
  console.warn("[AuthMenu] Keyshare recovery needed for user:", userId);
@@ -7191,7 +7148,9 @@ function useAuthMenuHandlers() {
7191
7148
  setError(null);
7192
7149
  setRecoveryUserId(userId);
7193
7150
  setStatus("recovery_needed");
7194
- setTimeout(() => setPage("keyshare-restore" /* KEYSHARE_RESTORE */), 300);
7151
+ setTimeout(() => {
7152
+ setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
7153
+ }, 100);
7195
7154
  } else {
7196
7155
  pendingLoginResponseRef.current = null;
7197
7156
  await jwtTokenManager2.clearTokens();
@@ -7207,7 +7166,6 @@ function useAuthMenuHandlers() {
7207
7166
  setIsLoading(false);
7208
7167
  }
7209
7168
  }, [
7210
- // config.projectId,
7211
7169
  qc,
7212
7170
  callbacks,
7213
7171
  setPage,
@@ -7238,8 +7196,8 @@ function useAuthMenuHandlers() {
7238
7196
 
7239
7197
  // src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
7240
7198
  init_lumiaPassport();
7241
- import { useMutation as useMutation5 } from "@tanstack/react-query";
7242
- import { ArrowLeft as ArrowLeft4, Loader as Loader4 } from "lucide-react";
7199
+ import { useMutation as useMutation4 } from "@tanstack/react-query";
7200
+ import { ArrowLeft as ArrowLeft4, Loader as Loader5 } from "lucide-react";
7243
7201
 
7244
7202
  // src/internal/assets/OtpIcon.tsx
7245
7203
  import { jsx as jsx25 } from "react/jsx-runtime";
@@ -7258,21 +7216,21 @@ function OtpIcon(props) {
7258
7216
  init_projectId();
7259
7217
 
7260
7218
  // src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
7261
- import { useEffect as useEffect10, useRef as useRef8, useState as useState5 } from "react";
7219
+ import { useEffect as useEffect8, useRef as useRef7, useState as useState5 } from "react";
7262
7220
  import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
7263
7221
  var VerificationCodeInput = (props) => {
7264
7222
  const { onVerifyCode, onResendCode, isLoading, expiresIn } = props;
7265
7223
  const setAlert = useAuthStore((st) => st.setAlert);
7266
7224
  const [timeLeft, setTimeLeft] = useState5(expiresIn);
7267
- useEffect10(() => setTimeLeft(expiresIn), [expiresIn]);
7268
- useEffect10(() => {
7225
+ useEffect8(() => setTimeLeft(expiresIn), [expiresIn]);
7226
+ useEffect8(() => {
7269
7227
  const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
7270
7228
  return () => clearInterval(t);
7271
7229
  }, []);
7272
- const lastSubmittedRef = useRef8(null);
7273
- const inputsRef = useRef8([]);
7230
+ const lastSubmittedRef = useRef7(null);
7231
+ const inputsRef = useRef7([]);
7274
7232
  const [digits, setDigits] = useState5(["", "", "", "", "", ""]);
7275
- useEffect10(() => {
7233
+ useEffect8(() => {
7276
7234
  const code = digits.join("");
7277
7235
  if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
7278
7236
  if (lastSubmittedRef.current !== code) {
@@ -7281,7 +7239,7 @@ var VerificationCodeInput = (props) => {
7281
7239
  }
7282
7240
  }
7283
7241
  }, [digits, isLoading, onVerifyCode]);
7284
- useEffect10(() => {
7242
+ useEffect8(() => {
7285
7243
  const t = setTimeout(() => {
7286
7244
  inputsRef.current[0]?.focus();
7287
7245
  }, 0);
@@ -7393,10 +7351,9 @@ import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
7393
7351
  function VerifyStep(props) {
7394
7352
  const { pendingLoginResponseRef, goBackToSignIn, onAuthSuccess } = props;
7395
7353
  const { callbacks } = useLumiaPassportConfig();
7396
- const setPage = useLayoutDataStore((st) => st.setPage);
7354
+ const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
7397
7355
  const isSessionLoading = useLumiaPassportSession((st) => st.isLoading);
7398
7356
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
7399
- const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
7400
7357
  const {
7401
7358
  email,
7402
7359
  expiresIn,
@@ -7406,7 +7363,7 @@ function VerifyStep(props) {
7406
7363
  setExpiresIn,
7407
7364
  setAlert
7408
7365
  } = useAuthStore();
7409
- const { mutate: onVerifyCode, isPending: isCodeVerifying } = useMutation5({
7366
+ const { mutate: onVerifyCode, isPending: isCodeVerifying } = useMutation4({
7410
7367
  mutationFn: async (code) => {
7411
7368
  setIsLoading(true);
7412
7369
  setAlert(null);
@@ -7441,14 +7398,13 @@ function VerifyStep(props) {
7441
7398
  const storage = typeof window !== "undefined" ? window.localStorage : void 0;
7442
7399
  const localKeyshare = storage?.getItem(`tss.${loginResponse.userId}.keyshare`);
7443
7400
  const needsRecovery = loginResponse.hasKeyshare && !loginResponse.isNewUser && !localKeyshare;
7444
- await onAuthSuccess?.();
7445
- console.log("[AuthModal] Authentication successful, closing modal");
7446
7401
  if (!recoveryUserId && !needsRecovery) {
7447
7402
  setStep("signin");
7448
7403
  setEmail("");
7449
7404
  setAlert(null);
7450
- setPage(null);
7451
7405
  }
7406
+ await onAuthSuccess?.();
7407
+ console.log("[AuthModal] Authentication successful");
7452
7408
  setIsLoading(false);
7453
7409
  },
7454
7410
  onError: (error) => {
@@ -7473,7 +7429,7 @@ function VerifyStep(props) {
7473
7429
  setIsLoading(false);
7474
7430
  }
7475
7431
  });
7476
- const { mutate: onResendCode, isPending: isCodeResending } = useMutation5({
7432
+ const { mutate: onResendCode, isPending: isCodeResending } = useMutation4({
7477
7433
  mutationFn: async () => {
7478
7434
  setAlert(null);
7479
7435
  setIsLoading(true);
@@ -7517,7 +7473,7 @@ function VerifyStep(props) {
7517
7473
  /* @__PURE__ */ jsxs22("div", { className: "relative flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
7518
7474
  /* @__PURE__ */ jsx27(OtpIcon, { className: "w-6 h-6" }),
7519
7475
  /* @__PURE__ */ jsx27("span", { className: "font-bold text-xl leading-6", children: "Verification code" }),
7520
- isLoading && /* @__PURE__ */ jsx27(Loader4, { className: "h-4 w-4 animate-spin" }),
7476
+ isLoading && /* @__PURE__ */ jsx27(Loader5, { className: "h-4 w-4 animate-spin" }),
7521
7477
  /* @__PURE__ */ jsxs22(
7522
7478
  Button,
7523
7479
  {
@@ -7560,8 +7516,8 @@ var AuthMenu = () => {
7560
7516
  const { step, alert: alert2, setStep, setPasskeyStatus, setEmail, setAlert } = useAuthStore();
7561
7517
  const { pendingLoginResponseRef, onAuthSuccess, goBackToSignIn } = useAuthMenuHandlers();
7562
7518
  const [isAlertShowReady, setIsAlertShowReady] = useState6(false);
7563
- const readyTimeout = useRef9(null);
7564
- useEffect11(() => {
7519
+ const readyTimeout = useRef8(null);
7520
+ useEffect9(() => {
7565
7521
  if (readyTimeout.current) {
7566
7522
  clearTimeout(readyTimeout.current);
7567
7523
  readyTimeout.current = null;
@@ -7569,7 +7525,7 @@ var AuthMenu = () => {
7569
7525
  setIsAlertShowReady(false);
7570
7526
  readyTimeout.current = setTimeout(() => setIsAlertShowReady(true), 750);
7571
7527
  }, [step]);
7572
- useEffect11(() => {
7528
+ useEffect9(() => {
7573
7529
  setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT);
7574
7530
  return () => {
7575
7531
  setStep("signin");
@@ -7581,7 +7537,7 @@ var AuthMenu = () => {
7581
7537
  }, []);
7582
7538
  if (!isIframeReady) {
7583
7539
  return /* @__PURE__ */ jsxs23("div", { className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--l-pass-gap)]", children: [
7584
- /* @__PURE__ */ jsx28(Loader5, { className: "w-5 h-5 animate-spin" }),
7540
+ /* @__PURE__ */ jsx28(Loader6, { className: "w-5 h-5 animate-spin" }),
7585
7541
  /* @__PURE__ */ jsx28("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
7586
7542
  ] });
7587
7543
  }
@@ -7596,20 +7552,8 @@ var AuthMenu = () => {
7596
7552
  onAuthSuccess
7597
7553
  }
7598
7554
  ),
7599
- "signin": /* @__PURE__ */ jsx28(
7600
- SignInStep,
7601
- {
7602
- pendingLoginResponseRef,
7603
- onAuthSuccess
7604
- }
7605
- ),
7606
- "signin-passkey": /* @__PURE__ */ jsx28(
7607
- PassKeyStep,
7608
- {
7609
- pendingLoginResponseRef,
7610
- onAuthSuccess
7611
- }
7612
- )
7555
+ "signin": /* @__PURE__ */ jsx28(SignInStep, { pendingLoginResponseRef, onAuthSuccess }),
7556
+ "signin-passkey": /* @__PURE__ */ jsx28(PassKeyStep, { pendingLoginResponseRef, onAuthSuccess })
7613
7557
  }),
7614
7558
  [onAuthSuccess, goBackToSignIn]
7615
7559
  );
@@ -7738,9 +7682,9 @@ function RampnowIcon() {
7738
7682
  }
7739
7683
 
7740
7684
  // src/internal/components/BuyMenu/binance/Binance.tsx
7741
- import { useMutation as useMutation6, useQuery as useQuery4, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
7685
+ import { useMutation as useMutation5, useQuery as useQuery4, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
7742
7686
  import { DollarSign, LoaderIcon as LoaderIcon2 } from "lucide-react";
7743
- import { useEffect as useEffect13, useRef as useRef10 } from "react";
7687
+ import { useEffect as useEffect11, useRef as useRef9 } from "react";
7744
7688
 
7745
7689
  // src/internal/components/BuyMenu/components/PaymentSelector.tsx
7746
7690
  import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
@@ -7837,7 +7781,7 @@ async function createPreorderMutation(payload) {
7837
7781
  }
7838
7782
 
7839
7783
  // src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
7840
- import { useEffect as useEffect12 } from "react";
7784
+ import { useEffect as useEffect10 } from "react";
7841
7785
 
7842
7786
  // src/internal/components/BuyMenu/binance/utils.ts
7843
7787
  function getPayMethodID(pm) {
@@ -7857,7 +7801,7 @@ function handleErrors(errors) {
7857
7801
  // src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
7858
7802
  var useQueriesErrorHandler = (errors, stateUpdater) => {
7859
7803
  const { error: errorTitle, message: errorMessage } = handleErrors(errors);
7860
- useEffect12(() => {
7804
+ useEffect10(() => {
7861
7805
  if (!errorTitle && !errorMessage) return;
7862
7806
  console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
7863
7807
  stateUpdater(1);
@@ -7867,7 +7811,7 @@ var useQueriesErrorHandler = (errors, stateUpdater) => {
7867
7811
  };
7868
7812
 
7869
7813
  // src/internal/components/BuyMenu/binance/Binance.tsx
7870
- import { Fragment as Fragment5, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
7814
+ import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
7871
7815
  var BINANCE_LUMIA_NETWORK = "LUMIA";
7872
7816
  function Binance(props) {
7873
7817
  const { walletAddress, control } = props;
@@ -7905,15 +7849,15 @@ function Binance(props) {
7905
7849
  queryKey: [QUERY_KEYS3.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
7906
7850
  queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
7907
7851
  });
7908
- const lastLoadedPaymentModes = useRef10([]);
7909
- useEffect13(() => {
7852
+ const lastLoadedPaymentModes = useRef9([]);
7853
+ useEffect11(() => {
7910
7854
  if (!paymentModes?.length) return;
7911
7855
  setPaymentMode(getPayMethodID(paymentModes[0]));
7912
7856
  lastLoadedPaymentModes.current = paymentModes;
7913
7857
  }, [paymentModes]);
7914
7858
  const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
7915
7859
  const minimum = Number(selectedPaymentMode?.fiatMinLimit || "0");
7916
- useEffect13(() => setMinAmount(minimum), [minimum]);
7860
+ useEffect11(() => setMinAmount(minimum), [minimum]);
7917
7861
  const {
7918
7862
  data: quoteData = null,
7919
7863
  isLoading: isQuoteDataLoading,
@@ -7934,7 +7878,7 @@ function Binance(props) {
7934
7878
  [lumiaNetworkError, paymentMethodsError, quoteError],
7935
7879
  setSrcInputAmount
7936
7880
  );
7937
- const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation6({
7881
+ const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation5({
7938
7882
  mutationFn: async () => {
7939
7883
  setRedirecting(true);
7940
7884
  const returnUrl = window.location.href.split("?")[0];
@@ -7958,7 +7902,7 @@ function Binance(props) {
7958
7902
  setRedirecting(false);
7959
7903
  }
7960
7904
  });
7961
- useEffect13(() => {
7905
+ useEffect11(() => {
7962
7906
  return () => {
7963
7907
  qc.resetQueries({ queryKey: [QUERY_KEYS3.binanceNetworksQuery] });
7964
7908
  qc.resetQueries({ queryKey: [QUERY_KEYS3.binancePaymentModes] });
@@ -7969,7 +7913,7 @@ function Binance(props) {
7969
7913
  const isLoading = !!isLumiaNetworkLoading || !!isQuoteDataLoading || !!isPaymentModesLoading;
7970
7914
  const isContinueDisabled = !!redirecting || !!isLoading || !!isFundWalletOrderCheckouting || !quoteData || srcInputAmount < minimum || srcInputAmount !== srcQueryAmount;
7971
7915
  const localError = errorMessage?.length ? errorMessage : srcInputAmount < minimum ? `Provider min: $${minimum}` : void 0;
7972
- return /* @__PURE__ */ jsxs26(Fragment5, { children: [
7916
+ return /* @__PURE__ */ jsxs26(Fragment6, { children: [
7973
7917
  /* @__PURE__ */ jsx32(
7974
7918
  Input,
7975
7919
  {
@@ -8020,9 +7964,9 @@ function Binance(props) {
8020
7964
  }
8021
7965
 
8022
7966
  // src/internal/components/BuyMenu/rampnow/Rampnow.tsx
8023
- import { useMutation as useMutation7, useQuery as useQuery5, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
7967
+ import { useMutation as useMutation6, useQuery as useQuery5, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
8024
7968
  import { DollarSign as DollarSign2, LoaderIcon as LoaderIcon3 } from "lucide-react";
8025
- import { useEffect as useEffect14 } from "react";
7969
+ import { useEffect as useEffect12 } from "react";
8026
7970
 
8027
7971
  // src/internal/components/BuyMenu/rampnow/api.ts
8028
7972
  init_iframe_manager();
@@ -8072,7 +8016,7 @@ var ORDER_URL_QUERIES = [
8072
8016
  ];
8073
8017
 
8074
8018
  // src/internal/components/BuyMenu/rampnow/Rampnow.tsx
8075
- import { Fragment as Fragment6, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
8019
+ import { Fragment as Fragment7, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
8076
8020
  function Rampnow(props) {
8077
8021
  const { walletAddress, control } = props;
8078
8022
  const {
@@ -8087,7 +8031,7 @@ function Rampnow(props) {
8087
8031
  setMinAmount
8088
8032
  } = control;
8089
8033
  const qc = useQueryClient4();
8090
- useEffect14(() => {
8034
+ useEffect12(() => {
8091
8035
  setMinAmount(MINIMUM_RAMP_AMOUNT);
8092
8036
  setPaymentMode(PAYMENT_MODES[0].id);
8093
8037
  }, []);
@@ -8115,7 +8059,7 @@ function Rampnow(props) {
8115
8059
  paymentMode
8116
8060
  })
8117
8061
  });
8118
- const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation7({
8062
+ const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = useMutation6({
8119
8063
  mutationFn: async () => {
8120
8064
  if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
8121
8065
  throw new Error("RampNow order service is not available");
@@ -8144,7 +8088,7 @@ function Rampnow(props) {
8144
8088
  console.error("Create CheckoutOrder failed:", err);
8145
8089
  }
8146
8090
  });
8147
- useEffect14(() => {
8091
+ useEffect12(() => {
8148
8092
  return () => {
8149
8093
  qc.resetQueries({ queryKey: [QUERY_KEYS3.getRampNowConfig] });
8150
8094
  qc.resetQueries({ queryKey: [QUERY_KEYS3.getRampNowQuote] });
@@ -8155,7 +8099,7 @@ function Rampnow(props) {
8155
8099
  const isContinueDisabled = !!redirecting || !!isLoading || !!isFundWalletOrderCheckouting || !quoteData || srcInputAmount < MINIMUM_RAMP_AMOUNT || srcInputAmount !== srcQueryAmount;
8156
8100
  const errorMessage = quoteError?.message || configError?.message || null;
8157
8101
  const localError = errorMessage?.length ? errorMessage : srcInputAmount < MINIMUM_RAMP_AMOUNT ? `Provider min: $${MINIMUM_RAMP_AMOUNT}` : void 0;
8158
- return /* @__PURE__ */ jsxs27(Fragment6, { children: [
8102
+ return /* @__PURE__ */ jsxs27(Fragment7, { children: [
8159
8103
  /* @__PURE__ */ jsx33(
8160
8104
  Input,
8161
8105
  {
@@ -8226,7 +8170,7 @@ var RAMP_PROVIDERS = {
8226
8170
  var REDIRECT_TIMEOUT_MS = 1500;
8227
8171
 
8228
8172
  // src/internal/components/BuyMenu/useSelectables.ts
8229
- import { useCallback as useCallback8, useEffect as useEffect15, useRef as useRef11, useState as useState7 } from "react";
8173
+ import { useCallback as useCallback8, useEffect as useEffect13, useRef as useRef10, useState as useState7 } from "react";
8230
8174
 
8231
8175
  // src/internal/utils/debounce.ts
8232
8176
  function debounce2(func, waitFor) {
@@ -8243,7 +8187,7 @@ var useSelectables = () => {
8243
8187
  const [redirecting, setRedirecting] = useState7(false);
8244
8188
  const [rampProvider, setrRampProvider] = useState7("binance");
8245
8189
  const [minAmount, setMinAmount] = useState7(0);
8246
- const inputRef = useRef11(null);
8190
+ const inputRef = useRef10(null);
8247
8191
  const [srcQueryAmount, setSrcQueryAmount] = useState7(0);
8248
8192
  const [srcInputAmount, setSrcInputAmount] = useState7(0);
8249
8193
  const [paymentMode, setPaymentMode] = useState7(null);
@@ -8255,7 +8199,7 @@ var useSelectables = () => {
8255
8199
  }, ON_INPUT_QUERY_DELAY),
8256
8200
  [minAmount]
8257
8201
  );
8258
- useEffect15(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
8202
+ useEffect13(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
8259
8203
  return {
8260
8204
  inputRef,
8261
8205
  redirecting,
@@ -8317,19 +8261,78 @@ function BuyMenu() {
8317
8261
  }
8318
8262
 
8319
8263
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
8320
- import { useMutation as useMutation10, useQuery as useQuery8, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
8321
- import { AlertCircle as AlertCircle2, CheckCircle2, CloudDownload as CloudDownload2, Loader as Loader8, UserCircle as UserCircle2 } from "lucide-react";
8322
- import { useEffect as useEffect21 } from "react";
8264
+ import { useMutation as useMutation9, useQuery as useQuery7, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
8265
+ import { AlertCircle as AlertCircle2, CheckCircle2, CloudDownload as CloudDownload2, Loader as Loader9, UserCircle as UserCircle2 } from "lucide-react";
8266
+ import { useEffect as useEffect18 } from "react";
8323
8267
  init_vaultClient();
8324
8268
 
8269
+ // src/internal/components/ui/switch.tsx
8270
+ import { forwardRef as forwardRef4, useState as useState8 } from "react";
8271
+ import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
8272
+ var Switch = forwardRef4((props, ref) => {
8273
+ const { className, labels, ...inputProps } = props;
8274
+ const colorMode = useLayoutStore((st) => st.colorMode);
8275
+ const [labelW, setLabelW] = useState8(0);
8276
+ return /* @__PURE__ */ jsx36(
8277
+ "div",
8278
+ {
8279
+ role: "switch",
8280
+ "aria-checked": inputProps.checked,
8281
+ className: cn(
8282
+ "block rounded-full w-fit h-5 px-[2px] outline-none flex-none",
8283
+ inputProps.checked ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-info)]",
8284
+ className
8285
+ ),
8286
+ children: /* @__PURE__ */ jsxs29(
8287
+ "label",
8288
+ {
8289
+ className: "relative inline-block h-4 outline-none",
8290
+ style: {
8291
+ width: `calc(16px + ${labelW}px)`,
8292
+ transition: "width 200ms ease",
8293
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
8294
+ },
8295
+ children: [
8296
+ /* @__PURE__ */ jsx36("input", { type: "checkbox", className: "hidden sr-only peer outline-none", ref, ...inputProps }),
8297
+ /* @__PURE__ */ jsx36(
8298
+ "span",
8299
+ {
8300
+ ref: (inst) => {
8301
+ if (inst) setLabelW(inst.clientWidth);
8302
+ },
8303
+ style: {
8304
+ left: inputProps.checked ? "0px" : "16px",
8305
+ color: inputProps.checked ? colorMode === "dark" ? "var(--l-pass-fg-inverted)" : "var(--l-pass-fg)" : "var(--l-pass-fg)",
8306
+ transition: "left 200ms ease"
8307
+ },
8308
+ className: "absolute top-0 px-2 text-[10px] leading-4 font-semibold min-w-4 select-none",
8309
+ children: inputProps.checked ? labels?.checked : labels?.unchecked
8310
+ }
8311
+ ),
8312
+ /* @__PURE__ */ jsx36(
8313
+ "span",
8314
+ {
8315
+ style: {
8316
+ left: inputProps.checked ? `${labelW}px` : "0px",
8317
+ transition: "left 200ms ease"
8318
+ },
8319
+ className: "absolute top-0 w-4 h-4 rounded-full bg-[var(--l-pass-fg)]"
8320
+ }
8321
+ )
8322
+ ]
8323
+ }
8324
+ )
8325
+ }
8326
+ );
8327
+ });
8328
+ Switch.displayName = "Switch";
8329
+
8325
8330
  // src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
8326
8331
  import { Cloud, FileDown, FileUp } from "lucide-react";
8327
- import { Fragment as Fragment7, useMemo as useMemo2 } from "react";
8332
+ import { Fragment as Fragment8, useMemo as useMemo2 } from "react";
8328
8333
 
8329
- // src/internal/components/KeyshareRestoreMenu/hooks/useCheckBackupAvailability.ts
8330
- init_vaultClient();
8331
- import { useQuery as useQuery6, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
8332
- import { useEffect as useEffect16 } from "react";
8334
+ // src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts
8335
+ import { useCallback as useCallback9 } from "react";
8333
8336
 
8334
8337
  // src/internal/components/KeyshareRestoreMenu/hooks/useRestoreStore.ts
8335
8338
  import { create as create4 } from "zustand";
@@ -8358,47 +8361,7 @@ var useRestoreStore = create4((set) => ({
8358
8361
  setSuccess: (success) => set({ success })
8359
8362
  }));
8360
8363
 
8361
- // src/internal/components/KeyshareRestoreMenu/hooks/useCheckBackupAvailability.ts
8362
- function useCheckBackupAvailability() {
8363
- const qc = useQueryClient5();
8364
- const address = useLumiaPassportSession((st) => st.address);
8365
- const { setError, setHasServerBackup, setCheckingBackup } = useRestoreStore();
8366
- const {
8367
- data: serverRecoveryData,
8368
- isLoading: isRecoveryLoading,
8369
- error: recoveryError
8370
- } = useQuery6({
8371
- retry: false,
8372
- queryKey: [CHECK_BACKUP_QUERY_KEY, address],
8373
- queryFn: async () => await getShareRecoveryStats()
8374
- });
8375
- useEffect16(() => {
8376
- qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY] });
8377
- }, [qc]);
8378
- useEffect16(() => {
8379
- setCheckingBackup(isRecoveryLoading);
8380
- if (!!isRecoveryLoading) return;
8381
- if (!!recoveryError) {
8382
- console.warn("[KeyshareRestoreMenu] Failed to check backup availability:", recoveryError);
8383
- setError("Failed to check backup availability");
8384
- setHasServerBackup(false);
8385
- setCheckingBackup(false);
8386
- return;
8387
- }
8388
- const hasRecoveryData = serverRecoveryData?.created || serverRecoveryData?.devices?.length > 0;
8389
- setHasServerBackup(!!hasRecoveryData);
8390
- setCheckingBackup(false);
8391
- }, [serverRecoveryData, recoveryError, isRecoveryLoading]);
8392
- return {
8393
- serverRecoveryData,
8394
- isRecoveryLoading,
8395
- recoveryError,
8396
- hasRecoveryData: serverRecoveryData?.created || serverRecoveryData?.devices?.length > 0
8397
- };
8398
- }
8399
-
8400
8364
  // src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts
8401
- import { useCallback as useCallback9 } from "react";
8402
8365
  function useOnRestoreSuccess() {
8403
8366
  const { config, callbacks } = useLumiaPassportConfig();
8404
8367
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
@@ -8446,14 +8409,9 @@ function useOnRestoreSuccess() {
8446
8409
  if (recoveryUserId) {
8447
8410
  try {
8448
8411
  const { session: sess, address: addr } = await createSessionWithKeyshare(recoveryUserId, hasServerKeyshare);
8449
- setSession(sess);
8450
- setAddress(addr);
8451
- setStatus("ready");
8452
8412
  setRecoveryUserId(null);
8453
8413
  setSuccess(null);
8454
8414
  setError(null);
8455
- setIsDialogForced(false);
8456
- setPage("main-menu" /* MAIN_MENU */);
8457
8415
  try {
8458
8416
  callbacks?.onLumiaPassportConnect?.({
8459
8417
  address: addr,
@@ -8485,11 +8443,17 @@ function useOnRestoreSuccess() {
8485
8443
  } catch (e) {
8486
8444
  console.warn("[UI-KIT] Failed to update backup status:", e);
8487
8445
  }
8446
+ setSession(sess);
8447
+ setAddress(addr);
8448
+ setStatus("ready");
8449
+ setPage("main-menu" /* MAIN_MENU */);
8450
+ setTimeout(() => {
8451
+ setIsDialogForced(false);
8452
+ }, 375);
8488
8453
  } catch (err) {
8489
8454
  setSuccess(null);
8490
8455
  setError(err?.message || String(err));
8491
8456
  setStatus("error");
8492
- setIsDialogForced(false);
8493
8457
  }
8494
8458
  }
8495
8459
  }, [
@@ -8507,17 +8471,17 @@ function useOnRestoreSuccess() {
8507
8471
  }
8508
8472
 
8509
8473
  // src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts
8510
- import { useMutation as useMutation8, useQueryClient as useQueryClient6 } from "@tanstack/react-query";
8511
- import { useEffect as useEffect17 } from "react";
8474
+ import { useMutation as useMutation7, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
8475
+ import { useEffect as useEffect14 } from "react";
8512
8476
  init_iframe_manager();
8513
8477
  function useCreateBackup() {
8514
- const qc = useQueryClient6();
8478
+ const qc = useQueryClient5();
8515
8479
  const session = useLumiaPassportSession((st) => st.session);
8516
8480
  const address = useLumiaPassportSession((st) => st.address);
8517
8481
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8518
8482
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8519
8483
  const { usePasskey, restorePassword, selectedCloudProvider, setSuccess, setError, setMethod } = useRestoreStore();
8520
- useEffect17(() => {
8484
+ useEffect14(() => {
8521
8485
  if (!hasServerVault) {
8522
8486
  setMethod("server");
8523
8487
  setIsDialogForced(true);
@@ -8525,7 +8489,7 @@ function useCreateBackup() {
8525
8489
  }, [hasServerVault, setIsDialogForced, setMethod]);
8526
8490
  const passportUserId = session?.mpcUserId || "";
8527
8491
  const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
8528
- const { mutate: createPasswordBackup, isPending: isPasswordBackupCreating } = useMutation8({
8492
+ const { mutate: createPasswordBackup, isPending: isPasswordBackupCreating } = useMutation7({
8529
8493
  mutationFn: async () => {
8530
8494
  const iframeManager = getIframeManager();
8531
8495
  if (!iframeManager) {
@@ -8535,20 +8499,25 @@ function useCreateBackup() {
8535
8499
  if (!usePasskey && !restorePassword) {
8536
8500
  throw new Error("Please provide a password for the backup");
8537
8501
  }
8538
- return await iframeManager.createBackup(
8539
- passportUserId,
8540
- { method: "server", password: restorePassword },
8541
- jwt.accessToken
8542
- );
8502
+ const navigateToMainMenu = jwt.isNewUser || !hasServerVault;
8503
+ console.log("[BACKUP STATUS] is new user:", jwt.isNewUser, !hasServerVault);
8504
+ return {
8505
+ response: await iframeManager.createBackup(
8506
+ passportUserId,
8507
+ { method: "server", password: restorePassword },
8508
+ jwt.accessToken
8509
+ ),
8510
+ navigateToMainMenu
8511
+ };
8543
8512
  },
8544
- onSuccess: async (response) => {
8513
+ onSuccess: async ({ response, navigateToMainMenu }) => {
8545
8514
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8546
8515
  if (response.success) {
8547
8516
  setSuccess("Successfully created server backup");
8548
8517
  if (typeof window !== "undefined") {
8549
8518
  window.dispatchEvent(
8550
8519
  new CustomEvent("lumia-passport-backup-status-changed", {
8551
- detail: { method: "server", success: true }
8520
+ detail: { method: "server", success: true, navigateToMainMenu }
8552
8521
  })
8553
8522
  );
8554
8523
  }
@@ -8556,13 +8525,14 @@ function useCreateBackup() {
8556
8525
  } else {
8557
8526
  setError(response.error || "Server backup failed");
8558
8527
  }
8528
+ setIsDialogForced(false);
8559
8529
  },
8560
8530
  onError: async (error) => {
8561
8531
  setError(error?.message || "Backup creation failed");
8562
8532
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8563
8533
  }
8564
8534
  });
8565
- const { mutate: createLocalBackup, isPending: isLocalBackupCreating } = useMutation8({
8535
+ const { mutate: createLocalBackup, isPending: isLocalBackupCreating } = useMutation7({
8566
8536
  mutationFn: async () => {
8567
8537
  const iframeManager = getIframeManager();
8568
8538
  if (!usePasskey && !restorePassword) {
@@ -8596,7 +8566,7 @@ function useCreateBackup() {
8596
8566
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8597
8567
  }
8598
8568
  });
8599
- const { mutate: createCloudBackup, isPending: isCloudBackupCreating } = useMutation8({
8569
+ const { mutate: createCloudBackup, isPending: isCloudBackupCreating } = useMutation7({
8600
8570
  mutationFn: async () => {
8601
8571
  const iframeManager = getIframeManager();
8602
8572
  const encryptedData = await iframeManager.encryptBackupData(passportUserId);
@@ -8647,7 +8617,7 @@ function useCreateBackup() {
8647
8617
  }
8648
8618
 
8649
8619
  // src/internal/components/KeyshareRestoreMenu/hooks/useRestoreAccount.ts
8650
- import { useMutation as useMutation9 } from "@tanstack/react-query";
8620
+ import { useMutation as useMutation8 } from "@tanstack/react-query";
8651
8621
  function useRestoreAccount() {
8652
8622
  const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
8653
8623
  const {
@@ -8661,7 +8631,7 @@ function useRestoreAccount() {
8661
8631
  setRestoreFile
8662
8632
  } = useRestoreStore();
8663
8633
  const { onRestoreSuccess } = useOnRestoreSuccess();
8664
- const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = useMutation9({
8634
+ const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = useMutation8({
8665
8635
  mutationFn: async () => {
8666
8636
  setError(null);
8667
8637
  setSuccess(null);
@@ -8691,18 +8661,16 @@ function useRestoreAccount() {
8691
8661
  onRestoreSuccess();
8692
8662
  } else {
8693
8663
  console.error("[KeyshareRestoreMenu] Server restore failed:", response.error);
8694
- setMethod(null);
8695
8664
  setError(response.error || "Server restore failed");
8696
8665
  }
8697
8666
  },
8698
8667
  onError: async (err) => {
8699
8668
  console.error("[KeyshareRestoreMenu] Server restore exception:", err);
8700
8669
  const errorMsg = err instanceof Error ? err.message : "Server restore failed";
8701
- setMethod(null);
8702
8670
  setError(errorMsg);
8703
8671
  }
8704
8672
  });
8705
- const { mutate: restoreFromFile, isPending: isRestoringFromFile } = useMutation9({
8673
+ const { mutate: restoreFromFile, isPending: isRestoringFromFile } = useMutation8({
8706
8674
  mutationFn: async () => {
8707
8675
  if (!restoreFile) {
8708
8676
  throw new Error("Please select a backup file");
@@ -8728,17 +8696,15 @@ function useRestoreAccount() {
8728
8696
  setMethod(null);
8729
8697
  onRestoreSuccess();
8730
8698
  } else {
8731
- setMethod(null);
8732
8699
  setError(response.error || "File restore failed");
8733
8700
  }
8734
8701
  },
8735
8702
  onError: async (err) => {
8736
8703
  const errorMsg = err instanceof Error ? err.message : "Restore failed";
8737
- setMethod(null);
8738
8704
  setError(errorMsg);
8739
8705
  }
8740
8706
  });
8741
- const { mutate: restoreFromCloud, isPending: isRestoringFromCloud } = useMutation9({
8707
+ const { mutate: restoreFromCloud, isPending: isRestoringFromCloud } = useMutation8({
8742
8708
  mutationFn: async () => {
8743
8709
  alert("Cloud restore not implemented yet");
8744
8710
  return null;
@@ -8759,7 +8725,7 @@ function useRestoreAccount() {
8759
8725
  }
8760
8726
 
8761
8727
  // src/internal/components/KeyshareRestoreMenu/hooks/useValidateFileBackup.ts
8762
- import { useEffect as useEffect18 } from "react";
8728
+ import { useEffect as useEffect15 } from "react";
8763
8729
  function validateRestoreFileFormat(parsedData) {
8764
8730
  if (typeof parsedData !== "object" || parsedData === null) return false;
8765
8731
  const data = parsedData;
@@ -8769,7 +8735,7 @@ function useValidateFileBackup() {
8769
8735
  const restoreFile = useRestoreStore((st) => st.restoreFile);
8770
8736
  const setError = useRestoreStore((st) => st.setError);
8771
8737
  const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
8772
- useEffect18(() => {
8738
+ useEffect15(() => {
8773
8739
  if (!restoreFile) {
8774
8740
  return;
8775
8741
  }
@@ -8792,9 +8758,9 @@ function useValidateFileBackup() {
8792
8758
  }
8793
8759
 
8794
8760
  // src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
8795
- import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
8761
+ import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
8796
8762
  var getRecoveryRenderMethods = (mode) => [
8797
- { method: "server", label: "Password", Icon: OtpIcon },
8763
+ // { method: 'server', label: 'Password', Icon: OtpIcon },
8798
8764
  { method: "file", label: "Local File", Icon: mode === "restore" ? FileUp : FileDown },
8799
8765
  { method: "cloud", label: "Cloud", Icon: Cloud, disabled: true }
8800
8766
  ];
@@ -8824,51 +8790,48 @@ function MethodSelector(props) {
8824
8790
  return methodsWithBackupData;
8825
8791
  }, [mode, serverRecoveryStatus]);
8826
8792
  if (!!selectedRecoveryMethod) return null;
8827
- return /* @__PURE__ */ jsxs29(Fragment7, { children: [
8828
- /* @__PURE__ */ jsx36("span", { className: "block w-full text-xs font-semibold text-center leading-8 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx36("span", { className: "leading-8", children: mode === "restore" ? "Choose restore method" : "Create or Update Backup via" }) }),
8829
- /* @__PURE__ */ jsx36(
8830
- "div",
8831
- {
8832
- style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
8833
- className: "w-full grid gap-[var(--l-pass-gap)]",
8834
- children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon: Icon2, data, disabled }) => /* @__PURE__ */ jsxs29("div", { className: "w-full h-full flex flex-col items-center gap-[var(--l-pass-gap)]", children: [
8835
- /* @__PURE__ */ jsxs29(
8836
- Button,
8837
- {
8838
- size: "icon",
8839
- variant: "outline",
8840
- type: "button",
8841
- disabled,
8842
- style: { height: "unset", maxWidth: "96px" },
8843
- className: "relative w-full aspect-square h-unset rounded-[var(--l-pass-el-bdrs)]",
8844
- onClick: () => {
8845
- setRestorePassword("");
8846
- setRestoreFile(null);
8847
- setShowPassword(false);
8848
- setError(null);
8849
- setSuccess(null);
8850
- setMethod(recoveryMethod);
8851
- },
8852
- children: [
8853
- /* @__PURE__ */ jsx36(Icon2, { className: "w-5 h-5 md:w-8 md:h-8" }),
8854
- !!data?.lastBackup && /* @__PURE__ */ jsx36("div", { className: "w-6 h-6 absolute -top-2 -right-2 flex items-center justify-center bg-transparent", children: /* @__PURE__ */ jsx36(PositiveIcon, { className: "w-4 h-4" }) })
8855
- ]
8856
- }
8857
- ),
8858
- /* @__PURE__ */ jsx36("span", { className: "text-xs font-bold leading-4", children: label })
8859
- ] }, recoveryMethod))
8860
- }
8861
- )
8862
- ] });
8793
+ return /* @__PURE__ */ jsx37(Fragment8, { children: /* @__PURE__ */ jsx37(
8794
+ "div",
8795
+ {
8796
+ style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
8797
+ className: "w-full max-w-[256px] grid gap-[var(--l-pass-gap)] mx-auto py-[var(--l-pass-pd)]",
8798
+ children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon: Icon2, data, disabled }) => /* @__PURE__ */ jsxs30("div", { className: "w-full h-full flex flex-col items-center gap-[var(--l-pass-gap)]", children: [
8799
+ /* @__PURE__ */ jsxs30(
8800
+ Button,
8801
+ {
8802
+ size: "icon",
8803
+ variant: "outline",
8804
+ type: "button",
8805
+ disabled,
8806
+ style: { height: "unset", maxWidth: "96px" },
8807
+ className: "relative w-full aspect-square h-unset rounded-[var(--l-pass-el-bdrs)]",
8808
+ onClick: () => {
8809
+ setRestorePassword("");
8810
+ setRestoreFile(null);
8811
+ setShowPassword(false);
8812
+ setError(null);
8813
+ setSuccess(null);
8814
+ setMethod(recoveryMethod);
8815
+ },
8816
+ children: [
8817
+ /* @__PURE__ */ jsx37(Icon2, { className: "w-5 h-5 md:w-8 md:h-8" }),
8818
+ !!data?.lastBackup && /* @__PURE__ */ jsx37("div", { className: "w-6 h-6 absolute -top-2 -right-2 flex items-center justify-center bg-transparent", children: /* @__PURE__ */ jsx37(PositiveIcon, { className: "w-4 h-4" }) })
8819
+ ]
8820
+ }
8821
+ ),
8822
+ /* @__PURE__ */ jsx37("span", { className: "text-xs font-bold leading-4", children: label })
8823
+ ] }, recoveryMethod))
8824
+ }
8825
+ ) });
8863
8826
  }
8864
8827
 
8865
8828
  // src/internal/components/KeyshareRestoreMenu/components/NoBackupFound.tsx
8866
8829
  import { AlertCircle, FileUp as FileUp2, Upload, User } from "lucide-react";
8867
8830
 
8868
8831
  // src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
8869
- import { ChevronRight as ChevronRight2, Eye, EyeOff, Info, Loader as Loader6 } from "lucide-react";
8870
- import { useRef as useRef12 } from "react";
8871
- import { Fragment as Fragment8, jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
8832
+ import { ChevronRight as ChevronRight2, Eye, EyeOff, Info, Key as Key4, Loader as Loader7 } from "lucide-react";
8833
+ import { useRef as useRef11 } from "react";
8834
+ import { Fragment as Fragment9, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
8872
8835
  function PasswordPasskey(props) {
8873
8836
  const {
8874
8837
  mode = "restore",
@@ -8880,32 +8843,79 @@ function PasswordPasskey(props) {
8880
8843
  actionHandler
8881
8844
  } = props;
8882
8845
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8883
- const actionRef = useRef12(null);
8884
- const { showPassword, restorePassword, usePasskey, error, setRestorePassword, setShowPassword } = useRestoreStore();
8885
- return /* @__PURE__ */ jsxs30(Fragment8, { children: [
8886
- !hasServerVault && /* @__PURE__ */ jsxs30("span", { className: "block w-full text-[10px] leading-4 px-[var(--l-pass-pd)] truncate", children: [
8887
- "Use your ",
8888
- /* @__PURE__ */ jsx37("strong", { children: usePasskey ? "Passkey" : "Password" }),
8889
- " to complete account security setup."
8890
- ] }),
8891
- !usePasskey ? /* @__PURE__ */ jsxs30("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
8892
- /* @__PURE__ */ jsx37(
8893
- Input,
8894
- {
8895
- autoComplete: "off",
8896
- Icon: OtpIcon,
8897
- type: showPassword ? "text" : "password",
8898
- placeholder: "Password",
8899
- value: restorePassword,
8900
- disabled: isLoading || disabled,
8901
- className: "flex-1",
8902
- onChange: (e) => {
8846
+ const actionRef = useRef11(null);
8847
+ const {
8848
+ showPassword,
8849
+ restorePassword,
8850
+ usePasskey,
8851
+ error,
8852
+ setRestorePassword,
8853
+ setShowPassword,
8854
+ setUsePasskey,
8855
+ setRestoreFile
8856
+ } = useRestoreStore();
8857
+ return /* @__PURE__ */ jsxs31(Fragment9, { children: [
8858
+ mode === "backup" && /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-center px-[var(--l-pass-pd)]", children: [
8859
+ /* @__PURE__ */ jsxs31(
8860
+ Button,
8861
+ {
8862
+ size: "medium",
8863
+ variant: "ghost",
8864
+ onClick: () => {
8865
+ setUsePasskey(false);
8866
+ setRestoreFile(null);
8867
+ setRestorePassword("");
8868
+ },
8869
+ className: cn(usePasskey ? "opacity-50" : "opacity-100"),
8870
+ children: [
8871
+ /* @__PURE__ */ jsx38(OtpIcon, { className: "w-4 h-4 inline-block mr-1" }),
8872
+ "Password"
8873
+ ]
8874
+ }
8875
+ ),
8876
+ /* @__PURE__ */ jsxs31(
8877
+ Button,
8878
+ {
8879
+ size: "medium",
8880
+ variant: "ghost",
8881
+ onClick: () => {
8882
+ setUsePasskey(true);
8883
+ setRestoreFile(null);
8884
+ setRestorePassword("");
8885
+ },
8886
+ className: cn(usePasskey ? "opacity-100" : "opacity-50"),
8887
+ children: [
8888
+ /* @__PURE__ */ jsx38(Key4, { className: "w-4 h-4 inline-block mr-1" }),
8889
+ "Passkey"
8890
+ ]
8891
+ }
8892
+ )
8893
+ ] }),
8894
+ !hasServerVault && /* @__PURE__ */ jsxs31("span", { className: "block w-full text-[10px] leading-8 px-[var(--l-pass-pd)] truncate", children: [
8895
+ "Use your ",
8896
+ /* @__PURE__ */ jsx38("strong", { children: usePasskey ? "Passkey" : "Password" }),
8897
+ " to",
8898
+ " ",
8899
+ /* @__PURE__ */ jsx38("span", { children: mode === "backup" ? "complete account security setup." : "get access to your account." })
8900
+ ] }),
8901
+ !usePasskey ? /* @__PURE__ */ jsxs31("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
8902
+ /* @__PURE__ */ jsx38(
8903
+ Input,
8904
+ {
8905
+ autoComplete: "off",
8906
+ Icon: OtpIcon,
8907
+ type: showPassword ? "text" : "password",
8908
+ placeholder: "Password",
8909
+ value: restorePassword,
8910
+ disabled: isLoading || disabled,
8911
+ className: "flex-1",
8912
+ onChange: (e) => {
8903
8913
  setRestorePassword(e.target.value);
8904
8914
  },
8905
8915
  onKeyDown: (e) => {
8906
8916
  if (e.key === "Enter" && !isLoading && restorePassword) actionRef.current?.click();
8907
8917
  },
8908
- element: /* @__PURE__ */ jsx37(
8918
+ element: /* @__PURE__ */ jsx38(
8909
8919
  Button,
8910
8920
  {
8911
8921
  variant: "ghost",
@@ -8914,12 +8924,12 @@ function PasswordPasskey(props) {
8914
8924
  title: "Toggle Password Visibility",
8915
8925
  disabled: isLoading || disabled,
8916
8926
  onClick: () => setShowPassword(!showPassword),
8917
- children: showPassword ? /* @__PURE__ */ jsx37(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx37(Eye, { className: "h-4 w-4" })
8927
+ children: showPassword ? /* @__PURE__ */ jsx38(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx38(Eye, { className: "h-4 w-4" })
8918
8928
  }
8919
8929
  )
8920
8930
  }
8921
8931
  ),
8922
- /* @__PURE__ */ jsx37(
8932
+ /* @__PURE__ */ jsx38(
8923
8933
  Button,
8924
8934
  {
8925
8935
  ref: actionRef,
@@ -8929,10 +8939,10 @@ function PasswordPasskey(props) {
8929
8939
  title: actionCaption,
8930
8940
  disabled: isLoading || disabled || error?.includes("Invalid backup file") || !usePasskey && !restorePassword,
8931
8941
  className: "w-full w-12 h-12 flex-shrink-0 rounded-[var(--l-pass-el-bdrs)]",
8932
- children: isLoading ? /* @__PURE__ */ jsx37(Loader6, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ jsx37(ChevronRight2, { className: "h-4 w-4" })
8942
+ children: isLoading ? /* @__PURE__ */ jsx38(Loader7, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ jsx38(ChevronRight2, { className: "h-4 w-4" })
8933
8943
  }
8934
8944
  )
8935
- ] }) : /* @__PURE__ */ jsxs30(
8945
+ ] }) : /* @__PURE__ */ jsxs31(
8936
8946
  Button,
8937
8947
  {
8938
8948
  ref: actionRef,
@@ -8943,18 +8953,18 @@ function PasswordPasskey(props) {
8943
8953
  disabled: isLoading || disabled || !!error || !usePasskey && !restorePassword,
8944
8954
  className: "w-full",
8945
8955
  children: [
8946
- isLoading ? /* @__PURE__ */ jsx37(Loader6, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ jsx37(ActionIcon, { className: "h-4 w-4" }),
8947
- !isLoading && /* @__PURE__ */ jsx37("span", { children: actionCaption })
8956
+ isLoading ? /* @__PURE__ */ jsx38(Loader7, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ jsx38(ActionIcon, { className: "h-4 w-4" }),
8957
+ !isLoading && /* @__PURE__ */ jsx38("span", { children: actionCaption })
8948
8958
  ]
8949
8959
  }
8950
8960
  ),
8951
- !isEncryptionMethod && !!usePasskey && /* @__PURE__ */ jsx37(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-[10px]", children: mode === "backup" && /* @__PURE__ */ jsxs30("div", { className: "flex gap-[var(--l-pass-gap)]", children: [
8952
- /* @__PURE__ */ jsx37(Info, { className: "h-4 w-4 flex-shrink-0" }),
8953
- /* @__PURE__ */ jsxs30("span", { className: "text-[var(--l-pass-fg-muted)] block flex-1", children: [
8954
- /* @__PURE__ */ jsx37("span", { className: "block mb-1", children: "Your Backup must be encrypted with a password or a passkey, so only you can decrypt it no matter where backup is stored." }),
8955
- /* @__PURE__ */ jsxs30("span", { className: "block", children: [
8961
+ !isEncryptionMethod && !!usePasskey && /* @__PURE__ */ jsx38(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-[10px]", children: mode === "backup" && /* @__PURE__ */ jsxs31("div", { className: "flex gap-[var(--l-pass-gap)]", children: [
8962
+ /* @__PURE__ */ jsx38(Info, { className: "h-4 w-4 flex-shrink-0" }),
8963
+ /* @__PURE__ */ jsxs31("span", { className: "text-[var(--l-pass-fg-muted)] block flex-1", children: [
8964
+ /* @__PURE__ */ jsx38("span", { className: "block mb-1", children: "Your Backup must be encrypted with a password or a passkey, so only you can decrypt it no matter where backup is stored." }),
8965
+ /* @__PURE__ */ jsxs31("span", { className: "block", children: [
8956
8966
  " Passkeys are a password-free alternative. ",
8957
- /* @__PURE__ */ jsx37(
8967
+ /* @__PURE__ */ jsx38(
8958
8968
  "a",
8959
8969
  {
8960
8970
  target: "_blank",
@@ -8971,7 +8981,7 @@ function PasswordPasskey(props) {
8971
8981
  }
8972
8982
 
8973
8983
  // src/internal/components/KeyshareRestoreMenu/components/NoBackupFound.tsx
8974
- import { Fragment as Fragment9, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
8984
+ import { Fragment as Fragment10, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
8975
8985
  function NoBackupFound(props) {
8976
8986
  const { isLoading, restoreFromFile } = props;
8977
8987
  const restoreFile = useRestoreStore((st) => st.restoreFile);
@@ -8980,33 +8990,33 @@ function NoBackupFound(props) {
8980
8990
  const setRestoreFile = useRestoreStore((st) => st.setRestoreFile);
8981
8991
  const setError = useRestoreStore((st) => st.setError);
8982
8992
  useValidateFileBackup();
8983
- return /* @__PURE__ */ jsxs31(Fragment9, { children: [
8984
- /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
8985
- /* @__PURE__ */ jsx38(User, { className: "w-6 h-6" }),
8986
- /* @__PURE__ */ jsx38("span", { className: "font-bold text-xl leading-6", children: "Account Recovery" })
8993
+ return /* @__PURE__ */ jsxs32(Fragment10, { children: [
8994
+ /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
8995
+ /* @__PURE__ */ jsx39(User, { className: "w-6 h-6" }),
8996
+ /* @__PURE__ */ jsx39("span", { className: "font-bold text-xl leading-6", children: "Account Recovery" })
8987
8997
  ] }),
8988
- !restoreFile && /* @__PURE__ */ jsxs31(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
8989
- /* @__PURE__ */ jsx38(AlertCircle, { className: "h-4 w-4 flex-0" }),
8990
- /* @__PURE__ */ jsxs31("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
8991
- /* @__PURE__ */ jsx38("span", { className: "block w-full text-sm leading-4 font-bold", children: "No Backup Found" }),
8992
- /* @__PURE__ */ jsxs31("span", { className: "block w-full text-xs", children: [
8993
- /* @__PURE__ */ jsx38("span", { className: "block mb-1", children: "This device doesn't have access to your wallet keyshare, and no backup was found." }),
8994
- /* @__PURE__ */ jsx38("span", { className: "block w-full", children: "If you're using a different device, please return to the one where you created your account to create a backup, then restore access on this device." })
8998
+ !restoreFile && /* @__PURE__ */ jsxs32(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
8999
+ /* @__PURE__ */ jsx39(AlertCircle, { className: "h-4 w-4 flex-0" }),
9000
+ /* @__PURE__ */ jsxs32("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
9001
+ /* @__PURE__ */ jsx39("span", { className: "block w-full text-sm leading-4 font-bold", children: "No Backup Found" }),
9002
+ /* @__PURE__ */ jsxs32("span", { className: "block w-full text-xs", children: [
9003
+ /* @__PURE__ */ jsx39("span", { className: "block mb-1", children: "This device doesn't have access to your wallet keyshare, and no backup was found." }),
9004
+ /* @__PURE__ */ jsx39("span", { className: "block w-full", children: "If you're using a different device, please return to the one where you created your account to create a backup, then restore access on this device." })
8995
9005
  ] })
8996
9006
  ] })
8997
9007
  ] }),
8998
- !restoreFile && /* @__PURE__ */ jsxs31(Highlight, { type: "info", className: "flex gap-[var(--l-pass-gap)]", children: [
8999
- /* @__PURE__ */ jsx38(Upload, { className: "h-4 w-4 flex-0" }),
9000
- /* @__PURE__ */ jsx38("span", { className: "block w-full text-xs", children: "Upload a backup file if you have one" })
9008
+ !restoreFile && /* @__PURE__ */ jsxs32(Highlight, { type: "info", className: "flex gap-[var(--l-pass-gap)]", children: [
9009
+ /* @__PURE__ */ jsx39(Upload, { className: "h-4 w-4 flex-0" }),
9010
+ /* @__PURE__ */ jsx39("span", { className: "block w-full text-xs", children: "Upload a backup file if you have one" })
9001
9011
  ] }),
9002
- /* @__PURE__ */ jsx38(
9012
+ /* @__PURE__ */ jsx39(
9003
9013
  "label",
9004
9014
  {
9005
9015
  className: cn(
9006
9016
  "block w-full flex items-center justify-center cursor-pointer",
9007
9017
  "p-[var(--l-pass-gap)] bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]"
9008
9018
  ),
9009
- children: /* @__PURE__ */ jsx38(
9019
+ children: /* @__PURE__ */ jsx39(
9010
9020
  "input",
9011
9021
  {
9012
9022
  type: "file",
@@ -9027,7 +9037,7 @@ function NoBackupFound(props) {
9027
9037
  )
9028
9038
  }
9029
9039
  ),
9030
- restoreFile && /* @__PURE__ */ jsx38(
9040
+ restoreFile && /* @__PURE__ */ jsx39(
9031
9041
  PasswordPasskey,
9032
9042
  {
9033
9043
  mode: "restore",
@@ -9042,125 +9052,16 @@ function NoBackupFound(props) {
9042
9052
  }
9043
9053
 
9044
9054
  // src/internal/components/KeyshareRestoreMenu/methods/File.tsx
9045
- import { ArrowLeft as ArrowLeft6, FileDown as FileDown2, FileUp as FileUp3 } from "lucide-react";
9046
-
9047
- // src/internal/components/ui/switch.tsx
9048
- import { forwardRef as forwardRef4, useState as useState9 } from "react";
9049
- import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
9050
- var Switch = forwardRef4((props, ref) => {
9051
- const { className, labels, ...inputProps } = props;
9052
- const colorMode = useLayoutStore((st) => st.colorMode);
9053
- const [labelW, setLabelW] = useState9(0);
9054
- return /* @__PURE__ */ jsx39(
9055
- "div",
9056
- {
9057
- role: "switch",
9058
- "aria-checked": inputProps.checked,
9059
- className: cn(
9060
- "block rounded-full w-fit h-7 p-1 outline-none flex-none",
9061
- inputProps.checked ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-info)]",
9062
- className
9063
- ),
9064
- children: /* @__PURE__ */ jsxs32(
9065
- "label",
9066
- {
9067
- className: "relative inline-block h-5 outline-none",
9068
- style: {
9069
- width: `calc(20px + ${labelW}px)`,
9070
- transition: "width 200ms ease",
9071
- cursor: inputProps.disabled ? "not-allowed" : "pointer"
9072
- },
9073
- children: [
9074
- /* @__PURE__ */ jsx39("input", { type: "checkbox", className: "hidden sr-only peer outline-none", ref, ...inputProps }),
9075
- /* @__PURE__ */ jsx39(
9076
- "span",
9077
- {
9078
- ref: (inst) => {
9079
- if (inst) setLabelW(inst.clientWidth);
9080
- },
9081
- style: {
9082
- left: inputProps.checked ? "0px" : "20px",
9083
- color: inputProps.checked ? colorMode === "dark" ? "var(--l-pass-fg-inverted)" : "var(--l-pass-fg)" : "var(--l-pass-fg)",
9084
- transition: "left 200ms ease"
9085
- },
9086
- className: "absolute top-0 px-2 text-xs leading-5 font-semibold min-w-5 select-none",
9087
- children: inputProps.checked ? labels?.checked : labels?.unchecked
9088
- }
9089
- ),
9090
- /* @__PURE__ */ jsx39(
9091
- "span",
9092
- {
9093
- style: {
9094
- left: inputProps.checked ? `${labelW}px` : "0px",
9095
- transition: "left 200ms ease"
9096
- },
9097
- className: cn("absolute top-0 w-5 h-5 rounded-full bg-[var(--l-pass-fg)]", {
9098
- // 'bg-[var(--l-pass-fg-inverted)]': inputProps.checked,
9099
- // 'bg-[var(--l-pass-fg)]': !inputProps.checked
9100
- })
9101
- }
9102
- )
9103
- ]
9104
- }
9105
- )
9106
- }
9107
- );
9108
- });
9109
- Switch.displayName = "Switch";
9110
-
9111
- // src/internal/components/KeyshareRestoreMenu/methods/File.tsx
9112
- import { Fragment as Fragment10, jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
9055
+ import { FileDown as FileDown2, FileUp as FileUp3 } from "lucide-react";
9056
+ import { Fragment as Fragment11, jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
9113
9057
  function File2(props) {
9114
9058
  const { isLoading, mode = "restore", fileHandler } = props;
9115
- const {
9116
- restoreFile,
9117
- error,
9118
- usePasskey,
9119
- setRestorePassword,
9120
- setMethod,
9121
- setRestoreFile,
9122
- setUsePasskey,
9123
- setError,
9124
- setSuccess
9125
- } = useRestoreStore();
9059
+ const { restoreFile, error, setRestoreFile, setError } = useRestoreStore();
9126
9060
  useValidateFileBackup();
9127
9061
  const actionText = mode === "backup" ? "Download" : "Restore with";
9128
9062
  const isPasswordPasskey = mode === "restore" && !!restoreFile || mode === "backup";
9129
- return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9130
- /* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between", children: [
9131
- /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9132
- /* @__PURE__ */ jsx40(
9133
- Button,
9134
- {
9135
- variant: "ghost",
9136
- size: "icon",
9137
- title: "Back",
9138
- onClick: () => {
9139
- setRestoreFile(null);
9140
- setError(null);
9141
- setSuccess(null);
9142
- setUsePasskey(false);
9143
- setMethod(null);
9144
- },
9145
- children: /* @__PURE__ */ jsx40(ArrowLeft6, { className: "h-4 w-4" })
9146
- }
9147
- ),
9148
- /* @__PURE__ */ jsx40("span", { className: "text-xl font-semibold", children: `${mode === "restore" ? "Restore with" : ""} File ${mode === "restore" ? "by" : "Backup by"}`.trim() })
9149
- ] }),
9150
- mode !== "restore" && /* @__PURE__ */ jsx40(
9151
- Switch,
9152
- {
9153
- name: "password-passkey-toggle",
9154
- labels: { checked: "Password", unchecked: "Passkey" },
9155
- disabled: isLoading || !!error,
9156
- checked: !usePasskey,
9157
- onChange: (e) => {
9158
- if (!!e.target.checked) setRestorePassword("");
9159
- setUsePasskey(!e.target.checked);
9160
- }
9161
- }
9162
- )
9163
- ] }),
9063
+ return /* @__PURE__ */ jsxs33(Fragment11, { children: [
9064
+ /* @__PURE__ */ jsx40("span", { className: "block w-full text-[10px] text-center leading-8 px-[var(--l-pass-pd)] truncate", children: `${mode === "restore" ? "Restore with" : ""} File ${mode === "restore" ? "" : "Backup by"}`.trim() }),
9164
9065
  mode === "restore" && /* @__PURE__ */ jsx40(
9165
9066
  "label",
9166
9067
  {
@@ -9204,61 +9105,23 @@ function File2(props) {
9204
9105
  }
9205
9106
 
9206
9107
  // src/internal/components/KeyshareRestoreMenu/methods/Server.tsx
9207
- import { useQueryClient as useQueryClient7 } from "@tanstack/react-query";
9108
+ import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
9208
9109
  import dayjs from "dayjs";
9209
- import { ArrowLeft as ArrowLeft7, Download, Key as Key4, Upload as Upload2 } from "lucide-react";
9210
- import { useEffect as useEffect19 } from "react";
9211
- import { Fragment as Fragment11, jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
9110
+ import { Download, Key as Key5, Upload as Upload2 } from "lucide-react";
9111
+ import { useEffect as useEffect16 } from "react";
9112
+ import { Fragment as Fragment12, jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
9212
9113
  function Server(props) {
9213
9114
  const { isLoading, mode = "restore", serverHandler } = props;
9214
- const qc = useQueryClient7();
9115
+ const qc = useQueryClient6();
9215
9116
  const address = useLumiaPassportSession((st) => st.address);
9216
- const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
9217
- const { usePasskey, error, setUsePasskey, setRestorePassword, setShowPassword, setMethod, setError, setSuccess } = useRestoreStore();
9117
+ const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
9218
9118
  const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
9219
- useEffect19(() => {
9119
+ useEffect16(() => {
9220
9120
  if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
9221
9121
  setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
9222
9122
  }, [mode, serverRecoveryStatus, setUsePasskey]);
9223
9123
  const isEncryptionMethod = mode === "restore" && !!serverRecoveryStatus?.created?.encryptionMethod;
9224
- return /* @__PURE__ */ jsxs34(Fragment11, { children: [
9225
- /* @__PURE__ */ jsxs34("div", { className: cn("flex items-center justify-between", { "px-[var(--l-pass-pd)]": !hasServerVault }), children: [
9226
- /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9227
- !!hasServerVault && /* @__PURE__ */ jsx41(
9228
- Button,
9229
- {
9230
- variant: "ghost",
9231
- size: "icon",
9232
- title: "Back",
9233
- onClick: () => {
9234
- setShowPassword(false);
9235
- setUsePasskey(false);
9236
- setRestorePassword("");
9237
- setUsePasskey(false);
9238
- setError(null);
9239
- setSuccess(null);
9240
- setMethod(null);
9241
- },
9242
- children: /* @__PURE__ */ jsx41(ArrowLeft7, { className: "h-4 w-4" })
9243
- }
9244
- ),
9245
- /* @__PURE__ */ jsx41("span", { className: "text-xl font-semibold", children: mode === "restore" ? "Restore with" : usePasskey ? "Passkey" : "Password" })
9246
- ] }),
9247
- !isEncryptionMethod && /* @__PURE__ */ jsx41(
9248
- Switch,
9249
- {
9250
- name: "password-passkey-toggle",
9251
- labels: { checked: "Password", unchecked: "Passkey" },
9252
- disabled: isLoading,
9253
- checked: !usePasskey,
9254
- onChange: (e) => {
9255
- if (!!error) setError(null);
9256
- if (!!e.target.checked) setRestorePassword("");
9257
- setUsePasskey(!e.target.checked);
9258
- }
9259
- }
9260
- )
9261
- ] }),
9124
+ return /* @__PURE__ */ jsxs34(Fragment12, { children: [
9262
9125
  /* @__PURE__ */ jsx41(
9263
9126
  PasswordPasskey,
9264
9127
  {
@@ -9271,7 +9134,7 @@ function Server(props) {
9271
9134
  }
9272
9135
  ),
9273
9136
  !!serverRecoveryStatus?.created?.at && /* @__PURE__ */ jsxs34(Highlight, { type: "success", className: "flex gap-[var(--l-pass-gap)]", children: [
9274
- serverRecoveryStatus.created.encryptionMethod === "password" ? /* @__PURE__ */ jsx41(OtpIcon, { className: "w-4 h-4 inline" }) : /* @__PURE__ */ jsx41(Key4, { className: "w-4 h-4 inline" }),
9137
+ serverRecoveryStatus.created.encryptionMethod === "password" ? /* @__PURE__ */ jsx41(OtpIcon, { className: "w-4 h-4 inline" }) : /* @__PURE__ */ jsx41(Key5, { className: "w-4 h-4 inline" }),
9275
9138
  /* @__PURE__ */ jsxs34("span", { className: "text-[10px] flex-1 block", children: [
9276
9139
  /* @__PURE__ */ jsx41("span", { children: `We found a ${serverRecoveryStatus.created.encryptionMethod?.toUpperCase()} Backup` }),
9277
9140
  /* @__PURE__ */ jsx41("br", {}),
@@ -9285,9 +9148,9 @@ function Server(props) {
9285
9148
  }
9286
9149
 
9287
9150
  // src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
9288
- import { useQuery as useQuery7 } from "@tanstack/react-query";
9289
- import { ArrowLeft as ArrowLeft8, CloudDownload, CloudUpload, Loader as Loader7 } from "lucide-react";
9290
- import { useEffect as useEffect20 } from "react";
9151
+ import { useQuery as useQuery6 } from "@tanstack/react-query";
9152
+ import { ArrowLeft as ArrowLeft6, CloudDownload, CloudUpload, Loader as Loader8 } from "lucide-react";
9153
+ import { useEffect as useEffect17 } from "react";
9291
9154
 
9292
9155
  // src/internal/components/ui/select.tsx
9293
9156
  import * as SelectPrimitive from "@radix-ui/react-select";
@@ -9415,7 +9278,7 @@ function SelectScrollDownButton({
9415
9278
  }
9416
9279
 
9417
9280
  // src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
9418
- import { Fragment as Fragment12, jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
9281
+ import { Fragment as Fragment13, jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
9419
9282
  function Cloud2(props) {
9420
9283
  const { isLoading, mode = "restore", cloudHandler } = props;
9421
9284
  const session = useLumiaPassportSession((st) => st.session);
@@ -9425,7 +9288,7 @@ function Cloud2(props) {
9425
9288
  data: cloudProviders = [],
9426
9289
  isLoading: isCloudProvidersLoading,
9427
9290
  error: cloudProvidersError
9428
- } = useQuery7({
9291
+ } = useQuery6({
9429
9292
  retry: false,
9430
9293
  enabled: !!passportUserId,
9431
9294
  queryKey: [AVAILABLE_CLOUD_PROVIDERS_QUERY_KEY, passportUserId],
@@ -9435,7 +9298,7 @@ function Cloud2(props) {
9435
9298
  return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
9436
9299
  }
9437
9300
  });
9438
- useEffect20(() => {
9301
+ useEffect17(() => {
9439
9302
  if (isCloudProvidersLoading) return;
9440
9303
  if (!!cloudProvidersError) {
9441
9304
  console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
@@ -9443,7 +9306,7 @@ function Cloud2(props) {
9443
9306
  }
9444
9307
  if (cloudProviders.length > 0 && !selectedCloudProvider) setSelectedCloudProvider(cloudProviders[0].id);
9445
9308
  }, [cloudProviders, selectedCloudProvider, cloudProvidersError, isCloudProvidersLoading]);
9446
- return /* @__PURE__ */ jsxs36(Fragment12, { children: [
9309
+ return /* @__PURE__ */ jsxs36(Fragment13, { children: [
9447
9310
  /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9448
9311
  /* @__PURE__ */ jsx43(
9449
9312
  Button,
@@ -9457,12 +9320,12 @@ function Cloud2(props) {
9457
9320
  setSelectedCloudProvider(null);
9458
9321
  setMethod(null);
9459
9322
  },
9460
- children: /* @__PURE__ */ jsx43(ArrowLeft8, { className: "h-4 w-4" })
9323
+ children: /* @__PURE__ */ jsx43(ArrowLeft6, { className: "h-4 w-4" })
9461
9324
  }
9462
9325
  ),
9463
9326
  /* @__PURE__ */ jsx43("span", { className: "text-lg font-semibold", children: `${mode === "restore" ? "Restore" : "Create"} Cloud Backup` })
9464
9327
  ] }),
9465
- isCloudProvidersLoading && /* @__PURE__ */ jsx43(Loader7, { className: "animate-spin w-4 h-4 mx-auto" }),
9328
+ isCloudProvidersLoading && /* @__PURE__ */ jsx43(Loader8, { className: "animate-spin w-4 h-4 mx-auto" }),
9466
9329
  /* @__PURE__ */ jsx43("span", { className: "block text-[10px] text-[var(--l-pass-fg-muted)]", children: "1. Select Cloud Backup Vault" }),
9467
9330
  /* @__PURE__ */ jsxs36(
9468
9331
  Select,
@@ -9501,30 +9364,21 @@ function Cloud2(props) {
9501
9364
  }
9502
9365
 
9503
9366
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
9504
- import { Fragment as Fragment13, jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
9367
+ import { Fragment as Fragment14, jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
9505
9368
  var RESTORE_COMPONENTS = {
9506
9369
  server: Server,
9507
9370
  cloud: Cloud2,
9508
9371
  file: File2
9509
9372
  };
9510
9373
  var KeyshareRestoreMenu = () => {
9511
- const qc = useQueryClient8();
9374
+ const qc = useQueryClient7();
9512
9375
  const callbacks = useLumiaPassportConfig().callbacks;
9513
9376
  const { address, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
9514
- const { data: serverRecoveryStatus, isLoading: isBackupStatusLoading } = useQuery8({
9515
- retry: false,
9516
- queryKey: [CHECK_BACKUP_QUERY_KEY, address],
9517
- queryFn: async () => await getShareRecoveryStats()
9518
- });
9519
9377
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
9520
9378
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
9521
9379
  const setPage = useLayoutDataStore((st) => st.setPage);
9522
- useEffect21(() => setIsDialogForced(true), []);
9523
- useCheckBackupAvailability();
9524
9380
  const {
9525
9381
  method: currentRestoreMethod,
9526
- checkingBackup,
9527
- hasServerBackup,
9528
9382
  error,
9529
9383
  success,
9530
9384
  setError,
@@ -9535,6 +9389,16 @@ var KeyshareRestoreMenu = () => {
9535
9389
  setSuccess,
9536
9390
  setMethod
9537
9391
  } = useRestoreStore();
9392
+ useEffect18(() => {
9393
+ setIsDialogForced(true);
9394
+ return () => {
9395
+ setRestoreFile(null);
9396
+ setShowPassword(false);
9397
+ setUsePasskey(false);
9398
+ setMethod(null);
9399
+ setIsDialogForced(false);
9400
+ };
9401
+ }, []);
9538
9402
  const {
9539
9403
  restoreFromServer: restoreFromServer2,
9540
9404
  isRestoringFromServer,
@@ -9543,7 +9407,16 @@ var KeyshareRestoreMenu = () => {
9543
9407
  restoreFromCloud,
9544
9408
  isRestoringFromCloud
9545
9409
  } = useRestoreAccount();
9546
- const { mutate: disconnect, isPending: isDisconnecting } = useMutation10({
9410
+ const { data: serverRecoveryStatus, isLoading: isBackupStatusLoading } = useQuery7({
9411
+ retry: false,
9412
+ queryKey: [CHECK_BACKUP_QUERY_KEY, address],
9413
+ queryFn: async () => await getShareRecoveryStats()
9414
+ });
9415
+ const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
9416
+ useEffect18(() => {
9417
+ if (!!hasServerBackup) setMethod("server");
9418
+ }, [hasServerBackup]);
9419
+ const { mutate: disconnect, isPending: isDisconnecting } = useMutation9({
9547
9420
  mutationFn: async () => {
9548
9421
  setError(null);
9549
9422
  setMethod(null);
@@ -9574,29 +9447,47 @@ var KeyshareRestoreMenu = () => {
9574
9447
  }
9575
9448
  });
9576
9449
  const RestoreComponent = currentRestoreMethod ? RESTORE_COMPONENTS[currentRestoreMethod] : null;
9577
- const isBackupChecking = checkingBackup || isBackupStatusLoading;
9578
9450
  return /* @__PURE__ */ jsx44(
9579
9451
  "div",
9580
9452
  {
9581
9453
  style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
9582
9454
  className: "list-scrollbar-y w-full",
9583
9455
  children: /* @__PURE__ */ jsxs37(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
9584
- isBackupChecking && /* @__PURE__ */ jsxs37("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
9585
- /* @__PURE__ */ jsx44(Loader8, { className: "w-5 h-5 animate-spin" }),
9586
- /* @__PURE__ */ jsx44("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." }),
9587
- /* @__PURE__ */ jsx44("span", { className: "block w-full text-xs leading-4", children: "Please wait while we check for available backups..." })
9456
+ isBackupStatusLoading && /* @__PURE__ */ jsxs37("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
9457
+ /* @__PURE__ */ jsx44(Loader9, { className: "w-5 h-5 animate-spin" }),
9458
+ /* @__PURE__ */ jsx44("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." })
9588
9459
  ] }),
9589
- !success && !isBackupChecking && !isDisconnecting && !hasServerBackup && /* @__PURE__ */ jsx44(
9460
+ !success && !isBackupStatusLoading && !isDisconnecting && !hasServerBackup && /* @__PURE__ */ jsx44(
9590
9461
  NoBackupFound,
9591
9462
  {
9592
9463
  isLoading: isRestoringFromServer || isRestoringFromCloud || isRestoringFromFile || isDisconnecting,
9593
9464
  restoreFromFile
9594
9465
  }
9595
9466
  ),
9596
- !success && !isBackupChecking && !isDisconnecting && hasServerBackup && /* @__PURE__ */ jsxs37(Fragment13, { children: [
9597
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)] px-[var(--l-pass-pd)] py-[var(--l-pass-gap)]", children: [
9598
- /* @__PURE__ */ jsx44(CloudDownload2, { className: "w-6 h-6" }),
9599
- /* @__PURE__ */ jsx44("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
9467
+ !success && !isBackupStatusLoading && !isDisconnecting && hasServerBackup && /* @__PURE__ */ jsxs37(Fragment14, { children: [
9468
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
9469
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9470
+ /* @__PURE__ */ jsx44(CloudDownload2, { className: "w-6 h-6" }),
9471
+ /* @__PURE__ */ jsx44("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
9472
+ ] }),
9473
+ /* @__PURE__ */ jsx44(
9474
+ Switch,
9475
+ {
9476
+ name: "advanced-restore-flow-toggle",
9477
+ labels: { checked: "Standard", unchecked: "Advanced" },
9478
+ checked: currentRestoreMethod !== "server",
9479
+ onChange: () => {
9480
+ if (!!error) setError(null);
9481
+ if (currentRestoreMethod === "server") {
9482
+ setRestorePassword("");
9483
+ setMethod(null);
9484
+ } else {
9485
+ setRestoreFile(null);
9486
+ setMethod("server");
9487
+ }
9488
+ }
9489
+ }
9490
+ )
9600
9491
  ] }),
9601
9492
  /* @__PURE__ */ jsx44(MethodSelector, { mode: "restore", serverRecoveryStatus }),
9602
9493
  !!currentRestoreMethod && /* @__PURE__ */ jsx44(
@@ -9609,32 +9500,29 @@ var KeyshareRestoreMenu = () => {
9609
9500
  }
9610
9501
  )
9611
9502
  ] }),
9612
- !success && !currentRestoreMethod && !isBackupChecking && /* @__PURE__ */ jsxs37(Fragment13, { children: [
9613
- /* @__PURE__ */ jsx44("div", { className: "w-full mt-[var(--l-pass-gap)]", style: { borderTop: "1px solid var(--l-pass-bd)" } }),
9614
- /* @__PURE__ */ jsxs37(
9615
- Button,
9616
- {
9617
- size: "large",
9618
- variant: "ghost",
9619
- onClick: () => {
9620
- setError(null);
9621
- setShowPassword(false);
9622
- setUsePasskey(false);
9623
- setRestoreFile(null);
9624
- setRestorePassword("");
9625
- setSuccess(null);
9626
- setMethod(null);
9627
- disconnect();
9628
- },
9629
- disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
9630
- className: "w-fit mx-auto",
9631
- children: [
9632
- isDisconnecting ? /* @__PURE__ */ jsx44(Loader8, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx44(UserCircle2, { className: "w-4 h-4" }),
9633
- /* @__PURE__ */ jsx44("span", { children: "Try Another Account" })
9634
- ]
9635
- }
9636
- )
9637
- ] }),
9503
+ !success && !isBackupStatusLoading && /* @__PURE__ */ jsxs37(
9504
+ Button,
9505
+ {
9506
+ size: "large",
9507
+ variant: "ghost",
9508
+ onClick: () => {
9509
+ setError(null);
9510
+ setShowPassword(false);
9511
+ setUsePasskey(false);
9512
+ setRestoreFile(null);
9513
+ setRestorePassword("");
9514
+ setSuccess(null);
9515
+ setMethod(null);
9516
+ disconnect();
9517
+ },
9518
+ disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
9519
+ className: "w-fit mx-auto",
9520
+ children: [
9521
+ isDisconnecting ? /* @__PURE__ */ jsx44(Loader9, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx44(UserCircle2, { className: "w-4 h-4" }),
9522
+ /* @__PURE__ */ jsx44("span", { children: "Try Another Account" })
9523
+ ]
9524
+ }
9525
+ ),
9638
9526
  error && /* @__PURE__ */ jsxs37(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
9639
9527
  /* @__PURE__ */ jsx44(AlertCircle2, { className: "h-4 w-4 flex-shrink-0" }),
9640
9528
  /* @__PURE__ */ jsx44("span", { className: "w-full flex-1 block", children: error })
@@ -9649,11 +9537,11 @@ var KeyshareRestoreMenu = () => {
9649
9537
  };
9650
9538
 
9651
9539
  // src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx
9652
- import { useQuery as useQuery9 } from "@tanstack/react-query";
9653
- import { AlertCircle as AlertCircle3, ArrowLeft as ArrowLeft9, CheckCircle2 as CheckCircle22, LockIcon } from "lucide-react";
9654
- import { useEffect as useEffect22 } from "react";
9540
+ import { useQuery as useQuery8 } from "@tanstack/react-query";
9541
+ import { AlertCircle as AlertCircle3, ArrowLeft as ArrowLeft7, CheckCircle2 as CheckCircle22, Loader as Loader10, LockIcon } from "lucide-react";
9542
+ import { useEffect as useEffect19 } from "react";
9655
9543
  init_vaultClient();
9656
- import { Fragment as Fragment14, jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
9544
+ import { Fragment as Fragment15, jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
9657
9545
  var COMPONENTS = {
9658
9546
  server: Server,
9659
9547
  file: File2,
@@ -9661,7 +9549,6 @@ var COMPONENTS = {
9661
9549
  };
9662
9550
  function KeyshareBackupMenu() {
9663
9551
  const address = useLumiaPassportSession((st) => st.address);
9664
- const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
9665
9552
  const setPage = useLayoutDataStore((st) => st.setPage);
9666
9553
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
9667
9554
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
@@ -9678,18 +9565,27 @@ function KeyshareBackupMenu() {
9678
9565
  setUsePasskey,
9679
9566
  setMethod
9680
9567
  } = useRestoreStore();
9681
- useEffect22(() => {
9568
+ useEffect19(() => {
9682
9569
  setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT);
9683
9570
  return () => {
9571
+ setSuccess(null);
9572
+ setError(null);
9573
+ setRestoreFile(null);
9574
+ setRestorePassword("");
9575
+ setShowPassword(false);
9576
+ setUsePasskey(false);
9684
9577
  setMethod(null);
9685
9578
  };
9686
9579
  }, []);
9687
- const { data: serverRecoveryStatus } = useQuery9({
9580
+ const { data: serverRecoveryStatus, isLoading: isRecoveryLoading } = useQuery8({
9688
9581
  retry: false,
9689
9582
  queryKey: [CHECK_BACKUP_QUERY_KEY, address],
9690
9583
  queryFn: async () => await getShareRecoveryStats()
9691
9584
  });
9692
- const { hasRecoveryData, isRecoveryLoading } = useCheckBackupAvailability();
9585
+ const hasRecoveryData = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
9586
+ useEffect19(() => {
9587
+ if (!!hasRecoveryData) setMethod("server");
9588
+ }, [hasRecoveryData]);
9693
9589
  const {
9694
9590
  isPasswordBackupCreating,
9695
9591
  createPasswordBackup,
@@ -9705,35 +9601,56 @@ function KeyshareBackupMenu() {
9705
9601
  style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
9706
9602
  className: "list-scrollbar-y w-full",
9707
9603
  children: /* @__PURE__ */ jsxs38(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
9708
- !hasServerVault && /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
9604
+ !!isRecoveryLoading && /* @__PURE__ */ jsx45("div", { className: "w-full flex items-center justify-center p-[var(--l-pass-pd)]", children: /* @__PURE__ */ jsx45(Loader10, { className: "h-5 w-5 animate-spin" }) }),
9605
+ !isRecoveryLoading && !hasRecoveryData && /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-center gap-2 px-5 py-[var(--l-pass-pd)]", children: [
9709
9606
  /* @__PURE__ */ jsx45(LockIcon, { className: "w-6 h-6" }),
9710
9607
  /* @__PURE__ */ jsx45("span", { className: "font-bold text-xl leading-6", children: "Secure Account" })
9711
9608
  ] }),
9712
- !!hasServerVault && !currentBackupMethod && /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9609
+ !isRecoveryLoading && !!hasRecoveryData && /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
9610
+ /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9611
+ /* @__PURE__ */ jsx45(
9612
+ Button,
9613
+ {
9614
+ variant: "ghost",
9615
+ size: "icon",
9616
+ title: "Back",
9617
+ onClick: () => {
9618
+ setRestorePassword("");
9619
+ setRestoreFile(null);
9620
+ setShowPassword(false);
9621
+ setSelectedCloudProvider(null);
9622
+ setUsePasskey(false);
9623
+ setError(null);
9624
+ setSuccess(null);
9625
+ setMethod(null);
9626
+ setPage("settings" /* SETTINGS */);
9627
+ },
9628
+ children: /* @__PURE__ */ jsx45(ArrowLeft7, { className: "h-4 w-4" })
9629
+ }
9630
+ ),
9631
+ /* @__PURE__ */ jsx45("span", { className: "text-xl font-semibold leading-8", children: "Create Backup" })
9632
+ ] }),
9713
9633
  /* @__PURE__ */ jsx45(
9714
- Button,
9634
+ Switch,
9715
9635
  {
9716
- variant: "ghost",
9717
- size: "icon",
9718
- title: "Back",
9719
- onClick: () => {
9720
- setRestorePassword("");
9721
- setRestoreFile(null);
9722
- setShowPassword(false);
9723
- setSelectedCloudProvider(null);
9724
- setUsePasskey(false);
9725
- setError(null);
9726
- setSuccess(null);
9727
- setMethod(null);
9728
- setPage("settings" /* SETTINGS */);
9729
- },
9730
- children: /* @__PURE__ */ jsx45(ArrowLeft9, { className: "h-4 w-4" })
9636
+ name: "advanced-restore-flow-toggle",
9637
+ labels: { checked: "Standard", unchecked: "Advanced" },
9638
+ checked: currentBackupMethod !== "server",
9639
+ onChange: () => {
9640
+ if (!!error) setError(null);
9641
+ if (currentBackupMethod === "server") {
9642
+ setRestorePassword("");
9643
+ setMethod(null);
9644
+ } else {
9645
+ setRestoreFile(null);
9646
+ setMethod("server");
9647
+ }
9648
+ }
9731
9649
  }
9732
- ),
9733
- /* @__PURE__ */ jsx45("span", { className: "text-xl font-semibold leading-8", children: "Create Backup" })
9650
+ )
9734
9651
  ] }),
9735
- !!hasServerVault && !currentBackupMethod && /* @__PURE__ */ jsx45(MethodSelector, { mode: "backup", serverRecoveryStatus }),
9736
- !!currentBackupMethod && /* @__PURE__ */ jsx45(Fragment14, { children: /* @__PURE__ */ jsx45(
9652
+ !isRecoveryLoading && !!hasRecoveryData && /* @__PURE__ */ jsx45(MethodSelector, { mode: "backup", serverRecoveryStatus }),
9653
+ !isRecoveryLoading && !!currentBackupMethod && /* @__PURE__ */ jsx45(Fragment15, { children: /* @__PURE__ */ jsx45(
9737
9654
  BackupComponent,
9738
9655
  {
9739
9656
  mode: "backup",
@@ -9745,13 +9662,7 @@ function KeyshareBackupMenu() {
9745
9662
  ) }),
9746
9663
  !isRecoveryLoading && !currentBackupMethod && !hasRecoveryData && /* @__PURE__ */ jsxs38(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
9747
9664
  /* @__PURE__ */ jsx45(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
9748
- /* @__PURE__ */ jsxs38("span", { className: "block flex-1", children: [
9749
- /* @__PURE__ */ jsx45("span", { className: "font-semibold", children: "No Backup Found" }),
9750
- /* @__PURE__ */ jsx45("br", {}),
9751
- /* @__PURE__ */ jsx45("span", { className: "text-[10px]", children: "Create a backup to restore access if you switch devices or clear your browser." }),
9752
- /* @__PURE__ */ jsx45("br", {}),
9753
- /* @__PURE__ */ jsx45("span", { className: "text-[10px]", children: "You can ignore this if you already have a backup or don't want to use Keyshare Vault." })
9754
- ] })
9665
+ /* @__PURE__ */ jsx45("span", { className: "block flex-1 font-semibold", children: "No Backup Found" })
9755
9666
  ] }),
9756
9667
  error && /* @__PURE__ */ jsxs38(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
9757
9668
  /* @__PURE__ */ jsx45(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
@@ -9768,16 +9679,16 @@ function KeyshareBackupMenu() {
9768
9679
 
9769
9680
  // src/internal/components/MainMenu/MainMenu.tsx
9770
9681
  import { ChevronLeft, ChevronRight as ChevronRight3, DollarSign as DollarSign3, Wallet2 as Wallet23 } from "lucide-react";
9771
- import { useEffect as useEffect23 } from "react";
9682
+ import { useEffect as useEffect20 } from "react";
9772
9683
 
9773
9684
  // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9774
9685
  init_common();
9775
- import { useQuery as useQuery10 } from "@tanstack/react-query";
9686
+ import { useQuery as useQuery9 } from "@tanstack/react-query";
9776
9687
  var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9777
9688
  function useProvidersList() {
9778
9689
  const address = useLumiaPassportSession((st) => st.address);
9779
9690
  const page = useLayoutDataStore((st) => st.page);
9780
- return useQuery10({
9691
+ return useQuery9({
9781
9692
  retry: false,
9782
9693
  // hook is invoked on multiple pages to preload cache
9783
9694
  enabled: !!address && (page === "manage-wallet" /* MANAGE_WALLET */ || page === "settings" /* SETTINGS */ || page === "main-menu" /* MAIN_MENU */),
@@ -9798,7 +9709,7 @@ function MainMenu() {
9798
9709
  const address = useLumiaPassportSession((st) => st.address);
9799
9710
  const setPage = useLayoutDataStore((st) => st.setPage);
9800
9711
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
9801
- useEffect23(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
9712
+ useEffect20(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
9802
9713
  useProvidersList();
9803
9714
  return /* @__PURE__ */ jsx46("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: /* @__PURE__ */ jsx46("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--l-pass-gap)] py-[10px] md:py-1", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon2 }) => /* @__PURE__ */ jsxs39(
9804
9715
  Button,
@@ -9819,11 +9730,11 @@ function MainMenu() {
9819
9730
 
9820
9731
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
9821
9732
  import { fromPairs } from "lodash-es";
9822
- import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft10, Loader as Loader10 } from "lucide-react";
9733
+ import { AlertTriangle as AlertTriangle3, ArrowLeft as ArrowLeft8, Loader as Loader12 } from "lucide-react";
9823
9734
  import { useMemo as useMemo3 } from "react";
9824
9735
 
9825
9736
  // src/modules/linkedProfiles.ts
9826
- import { useQuery as useQuery11, useQueryClient as useQueryClient9 } from "@tanstack/react-query";
9737
+ import { useQuery as useQuery10, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
9827
9738
  import { useCallback as useCallback10 } from "react";
9828
9739
  init_auth();
9829
9740
  init_common();
@@ -9844,13 +9755,13 @@ async function getLinkProfilesData() {
9844
9755
  return { profiles: loadedProfiles, avatar };
9845
9756
  }
9846
9757
  function useLumiaPassportLinkedProfiles() {
9847
- const qc = useQueryClient9();
9758
+ const qc = useQueryClient8();
9848
9759
  const address = useLumiaPassportSession((st) => st.address);
9849
9760
  const {
9850
9761
  data,
9851
9762
  isFetching: isLoading,
9852
9763
  error
9853
- } = useQuery11({
9764
+ } = useQuery10({
9854
9765
  retry: false,
9855
9766
  enabled: !!address,
9856
9767
  queryKey: [LINKED_PROFILES_QUERY_KEY, address],
@@ -9864,14 +9775,14 @@ function useLumiaPassportLinkedProfiles() {
9864
9775
  }
9865
9776
 
9866
9777
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
9867
- import { useQueryClient as useQueryClient11 } from "@tanstack/react-query";
9778
+ import { useQueryClient as useQueryClient10 } from "@tanstack/react-query";
9868
9779
  init_passkey2();
9869
9780
 
9870
9781
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
9871
9782
  init_lumiaPassport();
9872
9783
  init_projectId();
9873
- import { useMutation as useMutation11 } from "@tanstack/react-query";
9874
- import { ChevronRight as ChevronRight4, Loader as Loader9, Mail as Mail4 } from "lucide-react";
9784
+ import { useMutation as useMutation10 } from "@tanstack/react-query";
9785
+ import { ChevronRight as ChevronRight4, Loader as Loader11, Mail as Mail4 } from "lucide-react";
9875
9786
 
9876
9787
  // src/internal/components/ManageWalletMenu/hooks/useStore.ts
9877
9788
  import { create as create5 } from "zustand";
@@ -9904,7 +9815,7 @@ function EmailForm() {
9904
9815
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
9905
9816
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9906
9817
  const { email, setEmail, setAlert, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
9907
- const { mutate: onSendVerificationCode } = useMutation11({
9818
+ const { mutate: onSendVerificationCode } = useMutation10({
9908
9819
  mutationFn: async () => {
9909
9820
  if (!email) return;
9910
9821
  setIsLoading(true);
@@ -9984,7 +9895,7 @@ function EmailForm() {
9984
9895
  size: "large",
9985
9896
  disabled: !email || isLoading,
9986
9897
  onClick: () => onSendVerificationCode(),
9987
- children: isLoading ? /* @__PURE__ */ jsx47(Loader9, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx47(ChevronRight4, { className: "w-4 h-4" })
9898
+ children: isLoading ? /* @__PURE__ */ jsx47(Loader11, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx47(ChevronRight4, { className: "w-4 h-4" })
9988
9899
  }
9989
9900
  )
9990
9901
  ] });
@@ -9992,12 +9903,12 @@ function EmailForm() {
9992
9903
 
9993
9904
  // src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
9994
9905
  init_email();
9995
- import { useMutation as useMutation12 } from "@tanstack/react-query";
9906
+ import { useMutation as useMutation11 } from "@tanstack/react-query";
9996
9907
  function useSendVerificationCode() {
9997
9908
  const setAlert = useManageWalletStore((st) => st.setAlert);
9998
9909
  const setLinkIsLoading = useManageWalletStore((st) => st.setLinkIsLoading);
9999
9910
  const setEmailCodeExpiresIn = useManageWalletStore((st) => st.setEmailCodeExpiresIn);
10000
- return useMutation12({
9911
+ return useMutation11({
10001
9912
  mutationFn: async (email) => {
10002
9913
  if (!email) {
10003
9914
  throw new Error("Email is required");
@@ -10020,15 +9931,15 @@ function useSendVerificationCode() {
10020
9931
  }
10021
9932
 
10022
9933
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
10023
- import { useMutation as useMutation13, useQueryClient as useQueryClient10 } from "@tanstack/react-query";
9934
+ import { useMutation as useMutation12, useQueryClient as useQueryClient9 } from "@tanstack/react-query";
10024
9935
  init_email();
10025
9936
  function useVerifyCode() {
10026
9937
  const { callbacks } = useLumiaPassportConfig();
10027
- const qc = useQueryClient10();
9938
+ const qc = useQueryClient9();
10028
9939
  const address = useLumiaPassportSession((st) => st.address);
10029
9940
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
10030
9941
  const { email, emailCode, setEmail, setEmailStep, setEmailCode, setProviderType, setLinkIsLoading, setAlert } = useManageWalletStore();
10031
- return useMutation13({
9942
+ return useMutation12({
10032
9943
  mutationFn: async (codeToVerify) => {
10033
9944
  const code = codeToVerify ?? emailCode;
10034
9945
  if (!code) {
@@ -10064,7 +9975,7 @@ function useVerifyCode() {
10064
9975
  }
10065
9976
 
10066
9977
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
10067
- import { Fragment as Fragment15, jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
9978
+ import { Fragment as Fragment16, jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
10068
9979
  function normalizePasskeyLinkError(msg) {
10069
9980
  const lower = msg.toLowerCase();
10070
9981
  if (lower.includes("already registered") || lower.includes("credential") && lower.includes("exists")) {
@@ -10076,7 +9987,7 @@ function normalizePasskeyLinkError(msg) {
10076
9987
  return msg;
10077
9988
  }
10078
9989
  function AddProvider() {
10079
- const qc = useQueryClient11();
9990
+ const qc = useQueryClient10();
10080
9991
  const callbacks = useLumiaPassportConfig().callbacks;
10081
9992
  const address = useLumiaPassportSession((st) => st.address);
10082
9993
  const {
@@ -10094,7 +10005,7 @@ function AddProvider() {
10094
10005
  const { mutate: onVerifyCode, isPending: isCodeVerifying } = useVerifyCode();
10095
10006
  const isLoading = linkIsLoading || isCodeSending || isCodeVerifying;
10096
10007
  if (!providerType) return null;
10097
- return /* @__PURE__ */ jsxs41(Fragment15, { children: [
10008
+ return /* @__PURE__ */ jsxs41(Fragment16, { children: [
10098
10009
  providerType === "email" && emailStep === "input" && /* @__PURE__ */ jsxs41("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
10099
10010
  /* @__PURE__ */ jsx48("div", { className: "w-full flex flex-col gap-1 text-center", children: /* @__PURE__ */ jsx48("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Provide Email to connect" }) }),
10100
10011
  /* @__PURE__ */ jsx48(EmailForm, {})
@@ -10236,11 +10147,11 @@ function EmailNotConnectedWarning() {
10236
10147
  }
10237
10148
 
10238
10149
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
10239
- import { useQueryClient as useQueryClient12 } from "@tanstack/react-query";
10240
- import React5, { useEffect as useEffect24 } from "react";
10150
+ import { useQueryClient as useQueryClient11 } from "@tanstack/react-query";
10151
+ import React5, { useEffect as useEffect21 } from "react";
10241
10152
  init_auth();
10242
10153
  function useLinkSocial() {
10243
- const qc = useQueryClient12();
10154
+ const qc = useQueryClient11();
10244
10155
  const address = useLumiaPassportSession((st) => st.address);
10245
10156
  const {
10246
10157
  config: { current: config },
@@ -10302,7 +10213,7 @@ function useLinkSocial() {
10302
10213
  [config.social?.providers, callbacks]
10303
10214
  );
10304
10215
  const [socialLinkStarted, setSocialLinkStarted] = React5.useState(false);
10305
- useEffect24(() => {
10216
+ useEffect21(() => {
10306
10217
  const key = providerType?.toLowerCase();
10307
10218
  console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
10308
10219
  if (isWalletLinking) {
@@ -10323,14 +10234,14 @@ function useLinkSocial() {
10323
10234
 
10324
10235
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
10325
10236
  init_telegram2();
10326
- import { useQueryClient as useQueryClient13 } from "@tanstack/react-query";
10327
- import { useCallback as useCallback11, useEffect as useEffect25, useState as useState10 } from "react";
10237
+ import { useQueryClient as useQueryClient12 } from "@tanstack/react-query";
10238
+ import { useCallback as useCallback11, useEffect as useEffect22, useState as useState10 } from "react";
10328
10239
  function useLinkTelegram() {
10329
10240
  const {
10330
10241
  config: { current: config },
10331
10242
  callbacks
10332
10243
  } = useLumiaPassportConfig();
10333
- const qc = useQueryClient13();
10244
+ const qc = useQueryClient12();
10334
10245
  const address = useLumiaPassportSession((st) => st.address);
10335
10246
  const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
10336
10247
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
@@ -10378,7 +10289,7 @@ function useLinkTelegram() {
10378
10289
  }
10379
10290
  }, [config.social?.providers, callbacks]);
10380
10291
  const [telegramLinkStarted, setTelegramLinkStarted] = useState10(false);
10381
- useEffect25(() => {
10292
+ useEffect22(() => {
10382
10293
  console.log("[useLinkTelegram] Effect triggered:", {
10383
10294
  providerType,
10384
10295
  linkIsLoading,
@@ -10395,7 +10306,7 @@ function useLinkTelegram() {
10395
10306
  handleLinkTelegram();
10396
10307
  }
10397
10308
  }, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
10398
- useEffect25(() => {
10309
+ useEffect22(() => {
10399
10310
  if (providerType !== "telegram") {
10400
10311
  setTelegramLinkStarted(false);
10401
10312
  }
@@ -10456,7 +10367,7 @@ function ProviderCard(props) {
10456
10367
  }
10457
10368
 
10458
10369
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
10459
- import { Fragment as Fragment16, jsx as jsx51, jsxs as jsxs44 } from "react/jsx-runtime";
10370
+ import { Fragment as Fragment17, jsx as jsx51, jsxs as jsxs44 } from "react/jsx-runtime";
10460
10371
  var POSSIBLE_PROVIDERS = [
10461
10372
  "email",
10462
10373
  // 'google',
@@ -10597,19 +10508,19 @@ function ManageWalletMenu() {
10597
10508
  if (!providerType) setPage("settings" /* SETTINGS */);
10598
10509
  setProviderType(null);
10599
10510
  },
10600
- children: /* @__PURE__ */ jsx51(ArrowLeft10, { className: "h-4 w-4" })
10511
+ children: /* @__PURE__ */ jsx51(ArrowLeft8, { className: "h-4 w-4" })
10601
10512
  }
10602
10513
  ),
10603
10514
  /* @__PURE__ */ jsx51("span", { className: "text-xl font-semibold", children: "Profiles" })
10604
10515
  ] }),
10605
- isProvidersLoading && /* @__PURE__ */ jsx51("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx51(Loader10, { className: "w-5 h-5 animate-spin" }) }),
10516
+ isProvidersLoading && /* @__PURE__ */ jsx51("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ jsx51(Loader12, { className: "w-5 h-5 animate-spin" }) }),
10606
10517
  /* @__PURE__ */ jsx51(EmailNotConnectedWarning, {}),
10607
10518
  showCurrentProviders && renderProviders.map((node) => node),
10608
10519
  showExtraProvidersUi && /* @__PURE__ */ jsx51(AddProvider, {}),
10609
10520
  combinedAlertMessage && /* @__PURE__ */ jsxs44(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
10610
10521
  /* @__PURE__ */ jsx51(AlertTriangle3, { className: "w-4 h-4 shrink-0" }),
10611
10522
  /* @__PURE__ */ jsxs44("span", { className: "break-words whitespace-pre-wrap", children: [
10612
- alert2?.title && /* @__PURE__ */ jsxs44(Fragment16, { children: [
10523
+ alert2?.title && /* @__PURE__ */ jsxs44(Fragment17, { children: [
10613
10524
  /* @__PURE__ */ jsx51("strong", { children: alert2.title }),
10614
10525
  /* @__PURE__ */ jsx51("br", {})
10615
10526
  ] }),
@@ -10622,19 +10533,19 @@ function ManageWalletMenu() {
10622
10533
  }
10623
10534
 
10624
10535
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
10625
- import { useMutation as useMutation14, useQueryClient as useQueryClient14 } from "@tanstack/react-query";
10626
- import { Key as Key5, Loader as Loader11 } from "lucide-react";
10536
+ import { useMutation as useMutation13, useQueryClient as useQueryClient13 } from "@tanstack/react-query";
10537
+ import { Key as Key6, Loader as Loader13 } from "lucide-react";
10627
10538
  import { useState as useState11 } from "react";
10628
10539
  init_auth();
10629
10540
  import { jsx as jsx52, jsxs as jsxs45 } from "react/jsx-runtime";
10630
10541
  function UnlinkProviderMenu() {
10631
- const qc = useQueryClient14();
10542
+ const qc = useQueryClient13();
10632
10543
  const address = useLumiaPassportSession((st) => st.address);
10633
10544
  const { callbacks } = useLumiaPassportConfig();
10634
10545
  const setPage = useLayoutDataStore((st) => st.setPage);
10635
10546
  const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
10636
10547
  const [confirmInput, setConfirmInput] = useState11("");
10637
- const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = useMutation14({
10548
+ const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = useMutation13({
10638
10549
  mutationFn: async () => {
10639
10550
  if (!confirmUnlink) {
10640
10551
  throw new Error("No provider to unlink");
@@ -10666,7 +10577,7 @@ function UnlinkProviderMenu() {
10666
10577
  /* @__PURE__ */ jsx52(
10667
10578
  Input,
10668
10579
  {
10669
- Icon: Key5,
10580
+ Icon: Key6,
10670
10581
  value: confirmInput,
10671
10582
  onChange: (e) => setConfirmInput(e.target.value),
10672
10583
  placeholder: "Enter provider ID"
@@ -10697,7 +10608,7 @@ function UnlinkProviderMenu() {
10697
10608
  disabled: !!isProviderUnlinking || !confirmUnlink || confirmInput !== confirmUnlink.externalId,
10698
10609
  className: "w-full flex-1",
10699
10610
  children: [
10700
- isProviderUnlinking && /* @__PURE__ */ jsx52(Loader11, { className: "animate-spin h-4 w-4" }),
10611
+ isProviderUnlinking && /* @__PURE__ */ jsx52(Loader13, { className: "animate-spin h-4 w-4" }),
10701
10612
  isProviderUnlinking ? "Removing\u2026" : "Remove"
10702
10613
  ]
10703
10614
  }
@@ -10707,14 +10618,14 @@ function UnlinkProviderMenu() {
10707
10618
  }
10708
10619
 
10709
10620
  // src/internal/components/NicknameSettings/NicknameSettings.tsx
10710
- import { ArrowLeft as ArrowLeft11, AtSign, Loader as Loader14 } from "lucide-react";
10621
+ import { ArrowLeft as ArrowLeft9, Loader as Loader16 } from "lucide-react";
10711
10622
 
10712
10623
  // src/internal/hooks/useNicknameInfo.ts
10713
10624
  init_nickname();
10714
10625
  init_profile();
10715
- import { useQuery as useQuery12 } from "@tanstack/react-query";
10626
+ import { useQuery as useQuery11 } from "@tanstack/react-query";
10716
10627
  function useNicknameInfo(enabled = true) {
10717
- const query = useQuery12({
10628
+ const query = useQuery11({
10718
10629
  queryKey: [QUERY_KEYS.nicknameInfo],
10719
10630
  queryFn: getNicknameInfo,
10720
10631
  enabled,
@@ -10731,82 +10642,17 @@ function useNicknameInfo(enabled = true) {
10731
10642
  };
10732
10643
  }
10733
10644
 
10734
- // src/internal/lib/nickname-cooldown.ts
10735
- function getDaysRemaining(cooldownEndsAt) {
10736
- if (!cooldownEndsAt) return 0;
10737
- const endDate = new Date(cooldownEndsAt);
10738
- const now = /* @__PURE__ */ new Date();
10739
- if (isNaN(endDate.getTime())) return 0;
10740
- if (endDate <= now) return 0;
10741
- const diffMs = endDate.getTime() - now.getTime();
10742
- const diffDays = Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
10743
- return Math.max(0, diffDays);
10744
- }
10745
- function formatCooldownEndDate(cooldownEndsAt) {
10746
- if (!cooldownEndsAt) return "";
10747
- const endDate = new Date(cooldownEndsAt);
10748
- if (isNaN(endDate.getTime())) return "";
10749
- return endDate.toLocaleDateString(void 0, {
10750
- year: "numeric",
10751
- month: "short",
10752
- day: "numeric"
10753
- });
10754
- }
10755
-
10756
- // src/internal/components/NicknameSettings/NicknameInfoDisplay.tsx
10757
- import { jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
10758
- function NicknameInfoDisplay({ info }) {
10759
- const daysRemaining = getDaysRemaining(info.cooldownEndsAt);
10760
- const cooldownEndDate = formatCooldownEndDate(info.cooldownEndsAt);
10761
- return /* @__PURE__ */ jsxs46("div", { className: "w-full flex flex-col gap-3", children: [
10762
- /* @__PURE__ */ jsxs46("div", { className: "flex flex-col gap-1", children: [
10763
- /* @__PURE__ */ jsx53("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
10764
- /* @__PURE__ */ jsx53("span", { className: "text-lg font-bold text-[var(--l-pass-fg)]", children: info.displayHandle })
10765
- ] }),
10766
- /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-4 text-xs text-[var(--l-pass-fg-muted)]", children: [
10767
- /* @__PURE__ */ jsxs46("div", { className: "flex flex-col gap-0.5", children: [
10768
- /* @__PURE__ */ jsx53("span", { children: "Created" }),
10769
- /* @__PURE__ */ jsx53("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.createdAt).toLocaleDateString(void 0, {
10770
- year: "numeric",
10771
- month: "short",
10772
- day: "numeric"
10773
- }) })
10774
- ] }),
10775
- info.changedAt && /* @__PURE__ */ jsxs46("div", { className: "flex flex-col gap-0.5", children: [
10776
- /* @__PURE__ */ jsx53("span", { children: "Last changed" }),
10777
- /* @__PURE__ */ jsx53("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.changedAt).toLocaleDateString(void 0, {
10778
- year: "numeric",
10779
- month: "short",
10780
- day: "numeric"
10781
- }) })
10782
- ] }),
10783
- /* @__PURE__ */ jsxs46("div", { className: "flex flex-col gap-0.5", children: [
10784
- /* @__PURE__ */ jsx53("span", { children: "Times changed" }),
10785
- /* @__PURE__ */ jsx53("span", { className: "text-[var(--l-pass-fg)]", children: info.changeCount })
10786
- ] })
10787
- ] }),
10788
- !info.canChange && info.cooldownEndsAt && /* @__PURE__ */ jsx53("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-warning)]", children: /* @__PURE__ */ jsxs46("span", { className: "text-sm text-[var(--l-pass-warning)]", children: [
10789
- "You can change your nickname again on ",
10790
- cooldownEndDate,
10791
- " (",
10792
- daysRemaining,
10793
- " days remaining)"
10794
- ] }) }),
10795
- info.canChange && /* @__PURE__ */ jsx53("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-success)]", children: /* @__PURE__ */ jsx53("span", { className: "text-sm text-[var(--l-pass-success)]", children: "You can change your nickname" }) })
10796
- ] });
10797
- }
10798
-
10799
10645
  // src/internal/components/NicknameSettings/NicknameEditForm.tsx
10800
- import { useState as useState13, useCallback as useCallback13 } from "react";
10801
- import { Loader as Loader13, Check as Check2 } from "lucide-react";
10646
+ import { Check as Check2, Loader as Loader15 } from "lucide-react";
10647
+ import { useCallback as useCallback13, useState as useState13 } from "react";
10802
10648
 
10803
10649
  // src/internal/hooks/useChangeNickname.ts
10804
10650
  init_nickname();
10805
10651
  init_profile();
10806
- import { useMutation as useMutation15, useQueryClient as useQueryClient15 } from "@tanstack/react-query";
10652
+ import { useMutation as useMutation14, useQueryClient as useQueryClient14 } from "@tanstack/react-query";
10807
10653
  function useChangeNickname(options) {
10808
- const queryClient3 = useQueryClient15();
10809
- const mutation = useMutation15({
10654
+ const queryClient3 = useQueryClient14();
10655
+ const mutation = useMutation14({
10810
10656
  mutationFn: (handle) => changeNickname(handle),
10811
10657
  onSuccess: (result) => {
10812
10658
  queryClient3.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
@@ -10843,8 +10689,8 @@ function useChangeNickname(options) {
10843
10689
  // src/internal/hooks/useNicknameAvailability.ts
10844
10690
  init_nickname();
10845
10691
  init_profile();
10846
- import { useQuery as useQuery13 } from "@tanstack/react-query";
10847
- import { useState as useState12, useEffect as useEffect26 } from "react";
10692
+ import { useQuery as useQuery12 } from "@tanstack/react-query";
10693
+ import { useState as useState12, useEffect as useEffect23 } from "react";
10848
10694
 
10849
10695
  // src/internal/lib/nickname-validation.ts
10850
10696
  var NICKNAME_MIN_LENGTH = 3;
@@ -10878,7 +10724,7 @@ function useNicknameAvailability(handle, enabled = true) {
10878
10724
  const normalized = normalizeNickname(handle);
10879
10725
  const validation = validateNickname(handle);
10880
10726
  const isValidForCheck = validation.valid && normalized.length > 0;
10881
- useEffect26(() => {
10727
+ useEffect23(() => {
10882
10728
  if (!isValidForCheck || !enabled) {
10883
10729
  setDebouncedHandle("");
10884
10730
  setIsDebouncing(false);
@@ -10893,7 +10739,7 @@ function useNicknameAvailability(handle, enabled = true) {
10893
10739
  clearTimeout(timer);
10894
10740
  };
10895
10741
  }, [normalized, isValidForCheck, enabled]);
10896
- const query = useQuery13({
10742
+ const query = useQuery12({
10897
10743
  queryKey: QUERY_KEYS.nicknameAvailability(debouncedHandle),
10898
10744
  queryFn: () => checkNicknameAvailability(debouncedHandle),
10899
10745
  enabled: enabled && isValidForCheck && debouncedHandle.length > 0,
@@ -10935,8 +10781,8 @@ function getNicknameErrorMessage(code, params) {
10935
10781
  }
10936
10782
 
10937
10783
  // src/internal/components/NicknameSettings/NicknameAvailabilityIndicator.tsx
10938
- import { Loader as Loader12, Check, X as X2 } from "lucide-react";
10939
- import { jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
10784
+ import { Loader as Loader14, Check, X as X2 } from "lucide-react";
10785
+ import { jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
10940
10786
  function NicknameAvailabilityIndicator({
10941
10787
  isChecking,
10942
10788
  availability,
@@ -10946,29 +10792,29 @@ function NicknameAvailabilityIndicator({
10946
10792
  return null;
10947
10793
  }
10948
10794
  if (isChecking) {
10949
- return /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-fg-muted)]", children: [
10950
- /* @__PURE__ */ jsx54(Loader12, { className: "w-3 h-3 animate-spin" }),
10951
- /* @__PURE__ */ jsx54("span", { children: "Checking availability..." })
10795
+ return /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-fg-muted)]", children: [
10796
+ /* @__PURE__ */ jsx53(Loader14, { className: "w-3 h-3 animate-spin" }),
10797
+ /* @__PURE__ */ jsx53("span", { children: "Checking availability..." })
10952
10798
  ] });
10953
10799
  }
10954
10800
  if (!availability) {
10955
10801
  return null;
10956
10802
  }
10957
10803
  if (availability.available) {
10958
- return /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-success)]", children: [
10959
- /* @__PURE__ */ jsx54(Check, { className: "w-3 h-3" }),
10960
- /* @__PURE__ */ jsx54("span", { children: "Nickname is available" })
10804
+ return /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-success)]", children: [
10805
+ /* @__PURE__ */ jsx53(Check, { className: "w-3 h-3" }),
10806
+ /* @__PURE__ */ jsx53("span", { children: "Nickname is available" })
10961
10807
  ] });
10962
10808
  }
10963
10809
  const reason = availability.reason ? getNicknameErrorMessage(availability.reason) : "This nickname is not available";
10964
- return /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-error)]", children: [
10965
- /* @__PURE__ */ jsx54(X2, { className: "w-3 h-3" }),
10966
- /* @__PURE__ */ jsx54("span", { children: reason })
10810
+ return /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-error)]", children: [
10811
+ /* @__PURE__ */ jsx53(X2, { className: "w-3 h-3" }),
10812
+ /* @__PURE__ */ jsx53("span", { children: reason })
10967
10813
  ] });
10968
10814
  }
10969
10815
 
10970
10816
  // src/internal/components/NicknameSettings/NicknameEditForm.tsx
10971
- import { Fragment as Fragment17, jsx as jsx55, jsxs as jsxs48 } from "react/jsx-runtime";
10817
+ import { Fragment as Fragment18, jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
10972
10818
  function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
10973
10819
  const [inputValue, setInputValue] = useState13("");
10974
10820
  const [clientError, setClientError] = useState13(null);
@@ -11025,29 +10871,97 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11025
10871
  if (!canChange) {
11026
10872
  return null;
11027
10873
  }
11028
- return /* @__PURE__ */ jsxs48("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-3", children: [
10874
+ return /* @__PURE__ */ jsxs47("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-3", children: [
10875
+ /* @__PURE__ */ jsxs47("div", { className: "flex flex-col gap-1", children: [
10876
+ /* @__PURE__ */ jsx54("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "New nickname" }),
10877
+ /* @__PURE__ */ jsx54(
10878
+ Input,
10879
+ {
10880
+ value: inputValue,
10881
+ onChange: handleInputChange,
10882
+ placeholder: "Enter new nickname",
10883
+ disabled: isLoading,
10884
+ error: displayError || void 0
10885
+ }
10886
+ ),
10887
+ /* @__PURE__ */ jsx54("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx54("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "3-20 characters, letters, numbers, and underscores only" }) }),
10888
+ shouldCheckAvailability && !clientError && /* @__PURE__ */ jsx54(NicknameAvailabilityIndicator, { isChecking, availability })
10889
+ ] }),
10890
+ /* @__PURE__ */ jsx54(Button, { type: "submit", size: "large", disabled: isSubmitDisabled, className: "w-full", children: isLoading ? /* @__PURE__ */ jsxs47(Fragment18, { children: [
10891
+ /* @__PURE__ */ jsx54(Loader15, { className: "w-4 h-4 mr-2 animate-spin" }),
10892
+ "Changing..."
10893
+ ] }) : isSuccess ? /* @__PURE__ */ jsxs47(Fragment18, { children: [
10894
+ /* @__PURE__ */ jsx54(Check2, { className: "w-4 h-4 mr-2" }),
10895
+ "Nickname changed!"
10896
+ ] }) : "Change Nickname" })
10897
+ ] });
10898
+ }
10899
+
10900
+ // src/internal/components/NicknameSettings/NicknameInfoDisplay.tsx
10901
+ import { Fragment as Fragment19 } from "react";
10902
+
10903
+ // src/internal/lib/nickname-cooldown.ts
10904
+ function getDaysRemaining(cooldownEndsAt) {
10905
+ if (!cooldownEndsAt) return 0;
10906
+ const endDate = new Date(cooldownEndsAt);
10907
+ const now = /* @__PURE__ */ new Date();
10908
+ if (isNaN(endDate.getTime())) return 0;
10909
+ if (endDate <= now) return 0;
10910
+ const diffMs = endDate.getTime() - now.getTime();
10911
+ const diffDays = Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
10912
+ return Math.max(0, diffDays);
10913
+ }
10914
+ function formatCooldownEndDate(cooldownEndsAt) {
10915
+ if (!cooldownEndsAt) return "";
10916
+ const endDate = new Date(cooldownEndsAt);
10917
+ if (isNaN(endDate.getTime())) return "";
10918
+ return endDate.toLocaleDateString(void 0, {
10919
+ year: "numeric",
10920
+ month: "short",
10921
+ day: "numeric"
10922
+ });
10923
+ }
10924
+
10925
+ // src/internal/components/NicknameSettings/NicknameInfoDisplay.tsx
10926
+ import { jsx as jsx55, jsxs as jsxs48 } from "react/jsx-runtime";
10927
+ function NicknameInfoDisplay({ info }) {
10928
+ const daysRemaining = getDaysRemaining(info.cooldownEndsAt);
10929
+ const cooldownEndDate = formatCooldownEndDate(info.cooldownEndsAt);
10930
+ return /* @__PURE__ */ jsxs48(Fragment19, { children: [
11029
10931
  /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-1", children: [
11030
- /* @__PURE__ */ jsx55("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "New nickname" }),
11031
- /* @__PURE__ */ jsx55(
11032
- Input,
11033
- {
11034
- value: inputValue,
11035
- onChange: handleInputChange,
11036
- placeholder: "Enter new nickname",
11037
- disabled: isLoading,
11038
- error: displayError || void 0
11039
- }
11040
- ),
11041
- /* @__PURE__ */ jsx55("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx55("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "3-20 characters, letters, numbers, and underscores only" }) }),
11042
- shouldCheckAvailability && !clientError && /* @__PURE__ */ jsx55(NicknameAvailabilityIndicator, { isChecking, availability })
10932
+ /* @__PURE__ */ jsx55("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
10933
+ /* @__PURE__ */ jsx55("span", { className: "text-lg font-bold text-[var(--l-pass-fg)]", children: info.displayHandle })
11043
10934
  ] }),
11044
- /* @__PURE__ */ jsx55(Button, { type: "submit", disabled: isSubmitDisabled, className: "w-full", children: isLoading ? /* @__PURE__ */ jsxs48(Fragment17, { children: [
11045
- /* @__PURE__ */ jsx55(Loader13, { className: "w-4 h-4 mr-2 animate-spin" }),
11046
- "Changing..."
11047
- ] }) : isSuccess ? /* @__PURE__ */ jsxs48(Fragment17, { children: [
11048
- /* @__PURE__ */ jsx55(Check2, { className: "w-4 h-4 mr-2" }),
11049
- "Nickname changed!"
11050
- ] }) : "Change Nickname" })
10935
+ /* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-4 text-xs text-[var(--l-pass-fg-muted)]", children: [
10936
+ /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-0.5", children: [
10937
+ /* @__PURE__ */ jsx55("span", { children: "Created" }),
10938
+ /* @__PURE__ */ jsx55("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.createdAt).toLocaleDateString(void 0, {
10939
+ year: "numeric",
10940
+ month: "short",
10941
+ day: "numeric"
10942
+ }) })
10943
+ ] }),
10944
+ info.changedAt && /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-0.5", children: [
10945
+ /* @__PURE__ */ jsx55("span", { children: "Last changed" }),
10946
+ /* @__PURE__ */ jsx55("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.changedAt).toLocaleDateString(void 0, {
10947
+ year: "numeric",
10948
+ month: "short",
10949
+ day: "numeric"
10950
+ }) })
10951
+ ] }),
10952
+ /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-0.5", children: [
10953
+ /* @__PURE__ */ jsx55("span", { children: "Times changed" }),
10954
+ /* @__PURE__ */ jsx55("span", { className: "text-[var(--l-pass-fg)]", children: info.changeCount })
10955
+ ] })
10956
+ ] }),
10957
+ !info.canChange && info.cooldownEndsAt && /* @__PURE__ */ jsx55("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-warning)]", children: /* @__PURE__ */ jsxs48("span", { className: "text-sm text-[var(--l-pass-warning)]", children: [
10958
+ "You can change your nickname again on ",
10959
+ cooldownEndDate,
10960
+ " (",
10961
+ daysRemaining,
10962
+ " days remaining)"
10963
+ ] }) }),
10964
+ info.canChange && /* @__PURE__ */ jsx55("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-success)]", children: /* @__PURE__ */ jsx55("span", { className: "text-sm text-[var(--l-pass-success)]", children: "You can change your nickname" }) })
11051
10965
  ] });
11052
10966
  }
11053
10967
 
@@ -11055,54 +10969,44 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11055
10969
  import { jsx as jsx56, jsxs as jsxs49 } from "react/jsx-runtime";
11056
10970
  function NicknameSettings() {
11057
10971
  const setPage = useLayoutDataStore((st) => st.setPage);
10972
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11058
10973
  const { data: nicknameInfo, isLoading, isError, error, refetch } = useNicknameInfo();
11059
- return /* @__PURE__ */ jsxs49("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
11060
- /* @__PURE__ */ jsxs49("div", { className: "relative flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
11061
- /* @__PURE__ */ jsx56(AtSign, { className: "w-6 h-6" }),
11062
- /* @__PURE__ */ jsx56("span", { className: "font-bold text-xl leading-6", children: "Nickname" }),
11063
- /* @__PURE__ */ jsxs49(
11064
- Button,
11065
- {
11066
- style: { opacity: 0.5, transform: "translate(-4px, -4px)" },
11067
- title: "Back to Settings",
11068
- variant: "ghost",
11069
- size: "icon",
11070
- className: "absolute left-0 top-0 w-5 h-5",
11071
- onClick: () => setPage("settings" /* SETTINGS */),
11072
- children: [
11073
- /* @__PURE__ */ jsx56(ArrowLeft11, { className: "h-4 w-4" }),
11074
- /* @__PURE__ */ jsx56("span", { className: "sr-only", children: "Back to Settings" })
11075
- ]
11076
- }
11077
- )
11078
- ] }),
11079
- isLoading && /* @__PURE__ */ jsxs49("div", { className: "w-full p-8 flex flex-col items-center justify-center gap-2", children: [
11080
- /* @__PURE__ */ jsx56(Loader14, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }),
11081
- /* @__PURE__ */ jsx56("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Loading nickname info..." })
11082
- ] }),
11083
- isError && /* @__PURE__ */ jsx56("div", { className: "w-full p-4 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-error)]", children: /* @__PURE__ */ jsx56("span", { className: "text-sm text-[var(--l-pass-error)]", children: error?.message || "Failed to load nickname info" }) }),
11084
- nicknameInfo && /* @__PURE__ */ jsx56(NicknameInfoDisplay, { info: nicknameInfo }),
11085
- nicknameInfo && /* @__PURE__ */ jsx56(
11086
- NicknameEditForm,
11087
- {
11088
- currentHandle: nicknameInfo.handle,
11089
- canChange: nicknameInfo.canChange,
11090
- onSuccess: refetch
11091
- }
11092
- )
11093
- ] });
10974
+ return /* @__PURE__ */ jsx56(
10975
+ "div",
10976
+ {
10977
+ style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
10978
+ className: "list-scrollbar-y w-full",
10979
+ children: /* @__PURE__ */ jsxs49(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
10980
+ /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10981
+ /* @__PURE__ */ jsx56(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx56(ArrowLeft9, { className: "h-4 w-4" }) }),
10982
+ /* @__PURE__ */ jsx56("span", { className: "text-xl font-semibold", children: "Nickname" })
10983
+ ] }),
10984
+ isLoading && /* @__PURE__ */ jsx56("div", { className: "w-full p-8 flex items-center justify-center", children: /* @__PURE__ */ jsx56(Loader16, { className: "w-5 h-5 animate-spin" }) }),
10985
+ nicknameInfo && /* @__PURE__ */ jsx56(NicknameInfoDisplay, { info: nicknameInfo }),
10986
+ nicknameInfo && /* @__PURE__ */ jsx56(
10987
+ NicknameEditForm,
10988
+ {
10989
+ currentHandle: nicknameInfo.handle,
10990
+ canChange: nicknameInfo.canChange,
10991
+ onSuccess: refetch
10992
+ }
10993
+ ),
10994
+ isError && /* @__PURE__ */ jsx56(Highlight, { type: "error", children: error?.message || "Failed to load nickname info" })
10995
+ ] })
10996
+ }
10997
+ );
11094
10998
  }
11095
10999
 
11096
11000
  // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
11097
- import { useQueryClient as useQueryClient17 } from "@tanstack/react-query";
11098
- import { AlertCircle as AlertCircle4, ArrowLeft as ArrowLeft12, Gem, Loader as Loader16, RefreshCw } from "lucide-react";
11001
+ import { useQueryClient as useQueryClient16 } from "@tanstack/react-query";
11002
+ import { AlertCircle as AlertCircle4, ArrowLeft as ArrowLeft10, Gem, Loader as Loader18, RefreshCw } from "lucide-react";
11099
11003
  import { useCallback as useCallback15 } from "react";
11100
11004
 
11101
11005
  // src/internal/hooks/useBlockscoutAssets.ts
11102
11006
  init_lumiaPassport();
11103
11007
  init_base();
11104
- import { useCallback as useCallback14, useMemo as useMemo4, useRef as useRef13 } from "react";
11105
- import { useQuery as useQuery14 } from "@tanstack/react-query";
11008
+ import { useCallback as useCallback14, useMemo as useMemo4, useRef as useRef12 } from "react";
11009
+ import { useQuery as useQuery13 } from "@tanstack/react-query";
11106
11010
  import { useBalance as useBalance2, usePublicClient } from "wagmi";
11107
11011
  import { formatUnits as formatUnits2 } from "viem";
11108
11012
  import {
@@ -11249,7 +11153,7 @@ function useBlockscoutAssets(options) {
11249
11153
  [blockscoutApiUrl]
11250
11154
  );
11251
11155
  const publicClient2 = usePublicClient({ chainId: lumiaBeam.id });
11252
- const lastRefreshRef = useRef13(0);
11156
+ const lastRefreshRef = useRef12(0);
11253
11157
  const {
11254
11158
  data: nativeBalanceData,
11255
11159
  isLoading: nativeLoading,
@@ -11267,7 +11171,7 @@ function useBlockscoutAssets(options) {
11267
11171
  error: tokensError,
11268
11172
  refetch: refetchTokens,
11269
11173
  dataUpdatedAt
11270
- } = useQuery14({
11174
+ } = useQuery13({
11271
11175
  queryKey: [BLOCKSCOUT_QUERY_KEY, address, blockscoutApiUrl],
11272
11176
  queryFn: () => blockscoutClient.getTokenBalances(address),
11273
11177
  enabled: !!address && enabled,
@@ -11280,7 +11184,7 @@ function useBlockscoutAssets(options) {
11280
11184
  data: nftItems,
11281
11185
  isLoading: nftsLoading,
11282
11186
  refetch: refetchNfts
11283
- } = useQuery14({
11187
+ } = useQuery13({
11284
11188
  queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", address, blockscoutApiUrl],
11285
11189
  queryFn: () => blockscoutClient.getNfts(address),
11286
11190
  enabled: !!address && enabled,
@@ -11293,7 +11197,7 @@ function useBlockscoutAssets(options) {
11293
11197
  if (!tokenBalances) return [];
11294
11198
  return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address);
11295
11199
  }, [tokenBalances]);
11296
- const { data: erc3643Results } = useQuery14({
11200
+ const { data: erc3643Results } = useQuery13({
11297
11201
  queryKey: [ERC3643_DETECTION_QUERY_KEY, address, erc20TokenAddresses],
11298
11202
  queryFn: async () => {
11299
11203
  if (!publicClient2 || erc20TokenAddresses.length === 0) {
@@ -11410,11 +11314,11 @@ function useBlockscoutAssets(options) {
11410
11314
 
11411
11315
  // src/internal/components/PortfolioMenu/PortfolioItem.tsx
11412
11316
  init_base();
11413
- import { useQuery as useQuery15, useQueryClient as useQueryClient16 } from "@tanstack/react-query";
11414
- import { Image as ImageIcon, Loader as Loader15, Shield, Sparkles } from "lucide-react";
11317
+ import { useQuery as useQuery14, useQueryClient as useQueryClient15 } from "@tanstack/react-query";
11318
+ import { Image as ImageIcon, Loader as Loader17, Shield, Sparkles } from "lucide-react";
11415
11319
  import { useState as useState14 } from "react";
11416
11320
  import { formatUnits as formatUnits3 } from "viem";
11417
- import { Fragment as Fragment18, jsx as jsx57, jsxs as jsxs50 } from "react/jsx-runtime";
11321
+ import { Fragment as Fragment20, jsx as jsx57, jsxs as jsxs50 } from "react/jsx-runtime";
11418
11322
  function openInExplorer(address) {
11419
11323
  window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank");
11420
11324
  }
@@ -11452,13 +11356,13 @@ function PortfolioItem(props) {
11452
11356
  const [nftImageError, setNftImageError] = useState14(false);
11453
11357
  const [logoError, setLogoError] = useState14(false);
11454
11358
  const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
11455
- const qc = useQueryClient16();
11359
+ const qc = useQueryClient15();
11456
11360
  const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
11457
11361
  const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
11458
11362
  const isNft = isNftAsset(asset);
11459
11363
  const nftImage = getNftImage(asset);
11460
11364
  const isSecurity = isSecurityToken(asset);
11461
- const { data: assetRate, isLoading: isRateLoading } = useQuery15({
11365
+ const { data: assetRate, isLoading: isRateLoading } = useQuery14({
11462
11366
  retry: false,
11463
11367
  staleTime: 4 * 60 * 1e3,
11464
11368
  enabled: !!address && !!isAssetRateAvailable(asset.symbol) && !isProjectAsset && !isNft && !isSecurity,
@@ -11536,18 +11440,18 @@ function PortfolioItem(props) {
11536
11440
  !isSecurity && isNft && "type" in asset && /* @__PURE__ */ jsx57("span", { className: "uppercase text-[10px] px-1 bg-[var(--l-pass-bg-info)] rounded-full", children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" }),
11537
11441
  isSecurity && /* @__PURE__ */ jsx57("span", { className: "uppercase text-[10px] px-1 bg-[var(--l-pass-bg-warning)] rounded-full", children: "Security Token" })
11538
11442
  ] }),
11539
- /* @__PURE__ */ jsx57("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: isNft ? /* @__PURE__ */ jsxs50(Fragment18, { children: [
11443
+ /* @__PURE__ */ jsx57("div", { className: "w-full flex items-center justify-between font-bold text-lg leading-5", children: isNft ? /* @__PURE__ */ jsxs50(Fragment20, { children: [
11540
11444
  /* @__PURE__ */ jsx57("span", { className: "truncate max-w-[160px]", title: asset.nftMetadata?.name || asset.symbol, children: asset.nftMetadata?.name || asset.symbol }),
11541
11445
  "tokenId" in asset && asset.tokenId && /* @__PURE__ */ jsxs50("span", { className: "text-xs text-[var(--l-pass-fg-muted)] font-normal", children: [
11542
11446
  "#",
11543
11447
  asset.tokenId.length > 8 ? `${asset.tokenId.slice(0, 6)}...` : asset.tokenId
11544
11448
  ] })
11545
- ] }) : /* @__PURE__ */ jsxs50(Fragment18, { children: [
11449
+ ] }) : /* @__PURE__ */ jsxs50(Fragment20, { children: [
11546
11450
  /* @__PURE__ */ jsxs50("span", { children: [
11547
11451
  /* @__PURE__ */ jsx57("span", { children: formatPrice(Number(renderBalance)) }),
11548
11452
  /* @__PURE__ */ jsx57("span", { children: " " + asset.symbol })
11549
11453
  ] }),
11550
- isRateLoading && /* @__PURE__ */ jsx57(Loader15, { className: "h-4 w-4 animate-spin" }),
11454
+ isRateLoading && /* @__PURE__ */ jsx57(Loader17, { className: "h-4 w-4 animate-spin" }),
11551
11455
  !isRateLoading && !!usdRenderBalance && /* @__PURE__ */ jsxs50("span", { children: [
11552
11456
  /* @__PURE__ */ jsx57("span", { children: "$" }),
11553
11457
  /* @__PURE__ */ jsx57("span", { children: formatPrice(usdRenderBalance) })
@@ -11563,7 +11467,7 @@ function PortfolioItem(props) {
11563
11467
  import { jsx as jsx58, jsxs as jsxs51 } from "react/jsx-runtime";
11564
11468
  function PortfolioMenu() {
11565
11469
  const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
11566
- const qc = useQueryClient17();
11470
+ const qc = useQueryClient16();
11567
11471
  const address = useLumiaPassportSession((st) => st.address);
11568
11472
  const setPage = useLayoutDataStore((st) => st.setPage);
11569
11473
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
@@ -11590,7 +11494,7 @@ function PortfolioMenu() {
11590
11494
  className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
11591
11495
  children: /* @__PURE__ */ jsxs51(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
11592
11496
  /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
11593
- /* @__PURE__ */ jsx58(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx58(ArrowLeft12, { className: "h-4 w-4" }) }),
11497
+ /* @__PURE__ */ jsx58(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx58(ArrowLeft10, { className: "h-4 w-4" }) }),
11594
11498
  /* @__PURE__ */ jsx58("span", { className: "text-xl font-semibold", children: "Your Assets" }),
11595
11499
  /* @__PURE__ */ jsx58(
11596
11500
  Button,
@@ -11600,11 +11504,11 @@ function PortfolioMenu() {
11600
11504
  size: "icon",
11601
11505
  onClick: refreshAllAssetsBalances,
11602
11506
  disabled: isBlockscoutLoading,
11603
- children: isBlockscoutLoading ? /* @__PURE__ */ jsx58(Loader16, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx58(RefreshCw, { className: "h-4 w-4" })
11507
+ children: isBlockscoutLoading ? /* @__PURE__ */ jsx58(Loader18, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx58(RefreshCw, { className: "h-4 w-4" })
11604
11508
  }
11605
11509
  )
11606
11510
  ] }),
11607
- isBlockscoutLoading && /* @__PURE__ */ jsx58("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: /* @__PURE__ */ jsx58(Loader16, { className: "h-5 w-5 animate-spin" }) }),
11511
+ isBlockscoutLoading && /* @__PURE__ */ jsx58("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: /* @__PURE__ */ jsx58(Loader18, { className: "h-5 w-5 animate-spin" }) }),
11608
11512
  !isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ jsxs51(Highlight, { type: "info", className: "flex flex-col items-center justify-center gap-[var(--l-pass-gap)]", children: [
11609
11513
  /* @__PURE__ */ jsx58(Gem, { className: "w-8 h-8" }),
11610
11514
  /* @__PURE__ */ jsx58("span", { className: "block", children: "No assets found" })
@@ -11630,9 +11534,9 @@ function PortfolioMenu() {
11630
11534
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
11631
11535
  init_auth();
11632
11536
  init_keyshare();
11633
- import { useQuery as useQuery16, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
11537
+ import { useQuery as useQuery15, useQueryClient as useQueryClient17 } from "@tanstack/react-query";
11634
11538
  import dayjs3 from "dayjs";
11635
- import { ArrowLeft as ArrowLeft13, Loader as Loader19, Trash2 as Trash22 } from "lucide-react";
11539
+ import { ArrowLeft as ArrowLeft11, Loader as Loader21, Trash2 as Trash22 } from "lucide-react";
11636
11540
  import { useState as useState15 } from "react";
11637
11541
  init_iframe_manager();
11638
11542
  init_vaultClient();
@@ -11641,7 +11545,7 @@ init_vaultClient();
11641
11545
  var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
11642
11546
 
11643
11547
  // src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
11644
- import { Cloud as Cloud4, Laptop, Loader as Loader18, RefreshCw as RefreshCw2, Server as Server3 } from "lucide-react";
11548
+ import { Cloud as Cloud4, Laptop, Loader as Loader20, RefreshCw as RefreshCw2, Server as Server3 } from "lucide-react";
11645
11549
 
11646
11550
  // src/internal/assets/NegativeIcon.tsx
11647
11551
  import { jsx as jsx59, jsxs as jsxs52 } from "react/jsx-runtime";
@@ -11658,11 +11562,11 @@ function NegativeIcon(props) {
11658
11562
  init_vaultClient();
11659
11563
 
11660
11564
  // src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
11661
- import { Loader as Loader17 } from "lucide-react";
11565
+ import { Loader as Loader19 } from "lucide-react";
11662
11566
  import { jsx as jsx60, jsxs as jsxs53 } from "react/jsx-runtime";
11663
11567
  function KeyshareStatus(props) {
11664
11568
  const { isLoading, content, icon: Icon2, children } = props;
11665
- if (isLoading) return /* @__PURE__ */ jsx60(Loader17, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
11569
+ if (isLoading) return /* @__PURE__ */ jsx60(Loader19, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" });
11666
11570
  return /* @__PURE__ */ jsxs53("div", { className: "group relative w-full h-full", children: [
11667
11571
  children,
11668
11572
  /* @__PURE__ */ jsx60(
@@ -11696,7 +11600,7 @@ function KeyshareStatus(props) {
11696
11600
  // src/internal/components/SecurityMenu/Keyshare/LastBackup.tsx
11697
11601
  import dayjs2 from "dayjs";
11698
11602
  import { Cloud as Cloud3, HardDrive, Server as Server2 } from "lucide-react";
11699
- import { Fragment as Fragment19, jsx as jsx61, jsxs as jsxs54 } from "react/jsx-runtime";
11603
+ import { Fragment as Fragment21, jsx as jsx61, jsxs as jsxs54 } from "react/jsx-runtime";
11700
11604
  function parseOS(ua) {
11701
11605
  if (!ua) return null;
11702
11606
  if (ua.includes("Mac OS X")) return "macOS";
@@ -11723,7 +11627,7 @@ function LastBackup(props) {
11723
11627
  /* @__PURE__ */ jsx61(Server2, { className: "w-4 h-4 inline" }),
11724
11628
  /* @__PURE__ */ jsx61("span", { children: "Last Keyshare Vault Backup" })
11725
11629
  ] }),
11726
- recoveryCreatedAt && /* @__PURE__ */ jsxs54(Fragment19, { children: [
11630
+ recoveryCreatedAt && /* @__PURE__ */ jsxs54(Fragment21, { children: [
11727
11631
  /* @__PURE__ */ jsx61("span", { children: dayjs2(recoveryCreatedAt).format("MMMM DD, YYYY HH:mm") }),
11728
11632
  /* @__PURE__ */ jsx61("span", { children: `${recoveryBrowser || "UNKNOWN"} browser at ${recoveryDeviceName || "UNKNOWN"} device under ${parseOS(recoveryUa) || "UNKNOWN"} OS` })
11729
11633
  ] }),
@@ -11745,14 +11649,14 @@ function LastBackup(props) {
11745
11649
  }
11746
11650
 
11747
11651
  // src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
11748
- import { Fragment as Fragment20, jsx as jsx62, jsxs as jsxs55 } from "react/jsx-runtime";
11652
+ import { Fragment as Fragment22, jsx as jsx62, jsxs as jsxs55 } from "react/jsx-runtime";
11749
11653
  function Keyshare(props) {
11750
11654
  const { userId, serverHasKeyshare, localInfo, hasServerBackup, createdRecoveryStats, isLoading, refresh } = props;
11751
11655
  const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
11752
- return /* @__PURE__ */ jsxs55(Fragment20, { children: [
11656
+ return /* @__PURE__ */ jsxs55(Fragment22, { children: [
11753
11657
  /* @__PURE__ */ jsxs55("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
11754
11658
  /* @__PURE__ */ jsx62("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Keyshare Status" }),
11755
- /* @__PURE__ */ jsx62(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ jsx62(Loader18, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx62(RefreshCw2, { className: "h-4 w-4" }) })
11659
+ /* @__PURE__ */ jsx62(Button, { variant: "ghost", size: "icon", title: "Refresh", disabled: isLoading, onClick: refresh, children: isLoading ? /* @__PURE__ */ jsx62(Loader20, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx62(RefreshCw2, { className: "h-4 w-4" }) })
11756
11660
  ] }),
11757
11661
  /* @__PURE__ */ jsxs55("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)] px-[var(--l-pass-gap)]", children: [
11758
11662
  /* @__PURE__ */ jsx62(
@@ -11816,16 +11720,16 @@ function Keyshare(props) {
11816
11720
  }
11817
11721
 
11818
11722
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
11819
- import { Fragment as Fragment21, jsx as jsx63, jsxs as jsxs56 } from "react/jsx-runtime";
11723
+ import { Fragment as Fragment23, jsx as jsx63, jsxs as jsxs56 } from "react/jsx-runtime";
11820
11724
  function SecurityMenu() {
11821
- const qc = useQueryClient18();
11725
+ const qc = useQueryClient17();
11822
11726
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11823
11727
  const setPage = useLayoutDataStore((st) => st.setPage);
11824
11728
  const userId = jwtTokenManager2.getUserId();
11825
11729
  const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
11826
11730
  const [isRemoving, setIsRemoving] = useState15(false);
11827
11731
  const [appToRemove, setAppToRemove] = useState15(null);
11828
- const { data: recoveryData, isFetching: isRecoveryLoading } = useQuery16({
11732
+ const { data: recoveryData, isFetching: isRecoveryLoading } = useQuery15({
11829
11733
  enabled: !!userId,
11830
11734
  queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
11831
11735
  queryFn: async () => {
@@ -11884,12 +11788,12 @@ function SecurityMenu() {
11884
11788
  if (!!appToRemove) setAppToRemove(null);
11885
11789
  else setPage("settings" /* SETTINGS */);
11886
11790
  },
11887
- children: /* @__PURE__ */ jsx63(ArrowLeft13, { className: "h-4 w-4" })
11791
+ children: /* @__PURE__ */ jsx63(ArrowLeft11, { className: "h-4 w-4" })
11888
11792
  }
11889
11793
  ),
11890
11794
  /* @__PURE__ */ jsx63("span", { className: "text-xl font-semibold", children: "Security" })
11891
11795
  ] }),
11892
- !appToRemove && /* @__PURE__ */ jsxs56(Fragment21, { children: [
11796
+ !appToRemove && /* @__PURE__ */ jsxs56(Fragment23, { children: [
11893
11797
  /* @__PURE__ */ jsx63(
11894
11798
  Keyshare,
11895
11799
  {
@@ -11902,7 +11806,7 @@ function SecurityMenu() {
11902
11806
  refresh: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] })
11903
11807
  }
11904
11808
  ),
11905
- trustedApps.length > 0 && /* @__PURE__ */ jsxs56(Fragment21, { children: [
11809
+ trustedApps.length > 0 && /* @__PURE__ */ jsxs56(Fragment23, { children: [
11906
11810
  /* @__PURE__ */ jsxs56("div", { className: "w-full space-y-2", children: [
11907
11811
  /* @__PURE__ */ jsx63("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
11908
11812
  /* @__PURE__ */ jsx63("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs56(
@@ -11978,7 +11882,7 @@ function SecurityMenu() {
11978
11882
  className: "flex-1 bg-[var(--l-pass-error)] hover:bg-[var(--l-pass-error)]/60 active:bg-[var(--l-pass-error)]/40",
11979
11883
  onClick: handleRemoveTrustedApp,
11980
11884
  disabled: isRemoving,
11981
- children: isRemoving ? /* @__PURE__ */ jsx63(Loader19, { className: "h-4 w-4 animate-spin" }) : "Remove"
11885
+ children: isRemoving ? /* @__PURE__ */ jsx63(Loader21, { className: "h-4 w-4 animate-spin" }) : "Remove"
11982
11886
  }
11983
11887
  )
11984
11888
  ] })
@@ -11989,21 +11893,74 @@ function SecurityMenu() {
11989
11893
  }
11990
11894
 
11991
11895
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
11992
- import { AlertCircle as AlertCircle5, ArrowLeft as ArrowLeft14, CheckCircle2 as CheckCircle23, Loader as Loader20, Wallet as Wallet3, AtSign as AtSign2 } from "lucide-react";
11993
- import { useEffect as useEffect28, useState as useState18 } from "react";
11896
+ import { AlertCircle as AlertCircle5, ArrowLeft as ArrowLeft12, AtSign, CheckCircle2 as CheckCircle23, Loader as Loader22, Wallet as Wallet3 } from "lucide-react";
11897
+ import { useEffect as useEffect25, useState as useState18 } from "react";
11994
11898
  import { isAddress as isAddress2 } from "viem";
11995
11899
  import { useBalance as useBalance4 } from "wagmi";
11996
11900
 
11901
+ // src/hooks/useNicknameResolve.ts
11902
+ init_nickname();
11903
+ init_profile();
11904
+ import { useQuery as useQuery16 } from "@tanstack/react-query";
11905
+ import { useState as useState16, useEffect as useEffect24 } from "react";
11906
+ var DEBOUNCE_MS2 = 300;
11907
+ function looksLikeNickname(input) {
11908
+ if (!input) return false;
11909
+ if (input.startsWith("0x")) return false;
11910
+ if (input.startsWith("@")) return true;
11911
+ const normalized = input.toLowerCase().trim();
11912
+ return /^[a-z0-9_]+$/.test(normalized);
11913
+ }
11914
+ function useNicknameResolve(input, enabled = true) {
11915
+ const [debouncedInput, setDebouncedInput] = useState16("");
11916
+ const [isDebouncing, setIsDebouncing] = useState16(false);
11917
+ const normalized = normalizeNickname(input);
11918
+ const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
11919
+ useEffect24(() => {
11920
+ if (!isNicknameInput || !enabled) {
11921
+ setDebouncedInput("");
11922
+ setIsDebouncing(false);
11923
+ return;
11924
+ }
11925
+ setIsDebouncing(true);
11926
+ const timer = setTimeout(() => {
11927
+ setDebouncedInput(normalized);
11928
+ setIsDebouncing(false);
11929
+ }, DEBOUNCE_MS2);
11930
+ return () => {
11931
+ clearTimeout(timer);
11932
+ };
11933
+ }, [normalized, isNicknameInput, enabled]);
11934
+ const query = useQuery16({
11935
+ queryKey: QUERY_KEYS.nicknameResolve(debouncedInput),
11936
+ queryFn: () => resolveNickname(debouncedInput),
11937
+ enabled: enabled && isNicknameInput && debouncedInput.length > 0,
11938
+ staleTime: 1e3 * 60 * 5,
11939
+ // 5 minutes - addresses don't change often
11940
+ retry: 1
11941
+ });
11942
+ const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
11943
+ return {
11944
+ data: query.data,
11945
+ isLoading: query.isLoading,
11946
+ isResolving: isDebouncing || query.isFetching,
11947
+ isError: query.isError,
11948
+ isNotFound,
11949
+ error: query.error,
11950
+ resolvedAddress: query.data?.walletAddress || null
11951
+ };
11952
+ }
11953
+
11997
11954
  // src/hooks/useSendTransaction.ts
11998
- import { useCallback as useCallback16, useState as useState16 } from "react";
11955
+ import { useCallback as useCallback16, useState as useState17 } from "react";
11999
11956
  import { isAddress, parseEther as parseEther2 } from "viem";
12000
11957
  init_account();
12001
11958
  function useSendTransaction() {
12002
11959
  const session = useLumiaPassportSession((st) => st.session);
12003
11960
  const address = useLumiaPassportSession((st) => st.address);
12004
- const [isLoading, setIsLoading] = useState16(false);
12005
- const [error, setError] = useState16(null);
12006
- const [userOpHash, setUserOpHash] = useState16(null);
11961
+ const [isLoading, setIsLoading] = useState17(false);
11962
+ const [error, setError] = useState17(null);
11963
+ const [userOpHash, setUserOpHash] = useState17(null);
12007
11964
  const sendTransaction = useCallback16(
12008
11965
  async (params) => {
12009
11966
  if (!session || !address) {
@@ -12058,59 +12015,6 @@ function useSendTransaction() {
12058
12015
  };
12059
12016
  }
12060
12017
 
12061
- // src/hooks/useNicknameResolve.ts
12062
- init_nickname();
12063
- init_profile();
12064
- import { useQuery as useQuery17 } from "@tanstack/react-query";
12065
- import { useState as useState17, useEffect as useEffect27 } from "react";
12066
- var DEBOUNCE_MS2 = 300;
12067
- function looksLikeNickname(input) {
12068
- if (!input) return false;
12069
- if (input.startsWith("0x")) return false;
12070
- if (input.startsWith("@")) return true;
12071
- const normalized = input.toLowerCase().trim();
12072
- return /^[a-z0-9_]+$/.test(normalized);
12073
- }
12074
- function useNicknameResolve(input, enabled = true) {
12075
- const [debouncedInput, setDebouncedInput] = useState17("");
12076
- const [isDebouncing, setIsDebouncing] = useState17(false);
12077
- const normalized = normalizeNickname(input);
12078
- const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
12079
- useEffect27(() => {
12080
- if (!isNicknameInput || !enabled) {
12081
- setDebouncedInput("");
12082
- setIsDebouncing(false);
12083
- return;
12084
- }
12085
- setIsDebouncing(true);
12086
- const timer = setTimeout(() => {
12087
- setDebouncedInput(normalized);
12088
- setIsDebouncing(false);
12089
- }, DEBOUNCE_MS2);
12090
- return () => {
12091
- clearTimeout(timer);
12092
- };
12093
- }, [normalized, isNicknameInput, enabled]);
12094
- const query = useQuery17({
12095
- queryKey: QUERY_KEYS.nicknameResolve(debouncedInput),
12096
- queryFn: () => resolveNickname(debouncedInput),
12097
- enabled: enabled && isNicknameInput && debouncedInput.length > 0,
12098
- staleTime: 1e3 * 60 * 5,
12099
- // 5 minutes - addresses don't change often
12100
- retry: 1
12101
- });
12102
- const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
12103
- return {
12104
- data: query.data,
12105
- isLoading: query.isLoading,
12106
- isResolving: isDebouncing || query.isFetching,
12107
- isError: query.isError,
12108
- isNotFound,
12109
- error: query.error,
12110
- resolvedAddress: query.data?.walletAddress || null
12111
- };
12112
- }
12113
-
12114
12018
  // src/modules/assets.ts
12115
12019
  init_base();
12116
12020
  import React6 from "react";
@@ -12274,7 +12178,7 @@ function useTokenBalance(tokenAddress, userAddress) {
12274
12178
 
12275
12179
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
12276
12180
  init_base();
12277
- import { Fragment as Fragment22, jsx as jsx64, jsxs as jsxs57 } from "react/jsx-runtime";
12181
+ import { Fragment as Fragment24, jsx as jsx64, jsxs as jsxs57 } from "react/jsx-runtime";
12278
12182
  function SendLumiaMenu() {
12279
12183
  const page = useLayoutDataStore((st) => st.page);
12280
12184
  const setPage = useLayoutDataStore((st) => st.setPage);
@@ -12291,11 +12195,16 @@ function SendLumiaMenu() {
12291
12195
  const [txStep, setTxStep] = useState18("input");
12292
12196
  const [validationError, setValidationError] = useState18(null);
12293
12197
  const isNicknameInput = looksLikeNickname(recipient);
12294
- const { resolvedAddress, isResolving, isNotFound, data: nicknameData } = useNicknameResolve(recipient, isNicknameInput);
12198
+ const {
12199
+ resolvedAddress,
12200
+ isResolving,
12201
+ isNotFound,
12202
+ data: nicknameData
12203
+ } = useNicknameResolve(recipient, isNicknameInput);
12295
12204
  const effectiveAddress = isNicknameInput ? resolvedAddress : recipient;
12296
12205
  const nativeAsset = assets.find((a) => a.type === "native");
12297
12206
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
12298
- useEffect28(() => {
12207
+ useEffect25(() => {
12299
12208
  if (open) {
12300
12209
  setTxStep("input");
12301
12210
  setValidationError(null);
@@ -12366,21 +12275,21 @@ function SendLumiaMenu() {
12366
12275
  };
12367
12276
  return /* @__PURE__ */ jsxs57("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
12368
12277
  /* @__PURE__ */ jsxs57("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
12369
- txStep === "input" && /* @__PURE__ */ jsx64(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx64(ArrowLeft14, { className: "h-4 w-4" }) }),
12278
+ txStep === "input" && /* @__PURE__ */ jsx64(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx64(ArrowLeft12, { className: "h-4 w-4" }) }),
12370
12279
  /* @__PURE__ */ jsx64("span", { className: "text-xl font-semibold", children: "Send LUMIA" })
12371
12280
  ] }),
12372
- txStep === "input" && /* @__PURE__ */ jsxs57(Fragment22, { children: [
12281
+ txStep === "input" && /* @__PURE__ */ jsxs57(Fragment24, { children: [
12373
12282
  /* @__PURE__ */ jsxs57("div", { className: "w-full flex flex-col gap-2", children: [
12374
12283
  /* @__PURE__ */ jsx64("span", { className: "block text-sm font-medium mb-2 text-[var(--l-pass-fg-muted)]", children: "Recipient" }),
12375
12284
  /* @__PURE__ */ jsx64(
12376
12285
  Input,
12377
12286
  {
12378
- Icon: isNicknameInput ? AtSign2 : Wallet3,
12287
+ Icon: isNicknameInput ? AtSign : Wallet3,
12379
12288
  type: "text",
12380
12289
  value: recipient,
12381
12290
  onChange: (e) => setRecipient(e.target.value),
12382
12291
  placeholder: "0x... or @nickname",
12383
- element: isNicknameInput && isResolving ? /* @__PURE__ */ jsx64(Loader20, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" }) : null
12292
+ element: isNicknameInput && isResolving ? /* @__PURE__ */ jsx64(Loader22, { className: "w-4 h-4 animate-spin text-[var(--l-pass-fg-muted)]" }) : null
12384
12293
  }
12385
12294
  ),
12386
12295
  isNicknameInput && resolvedAddress && !isResolving && /* @__PURE__ */ jsxs57("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-success)]", children: [
@@ -12401,30 +12310,18 @@ function SendLumiaMenu() {
12401
12310
  " LUMIA"
12402
12311
  ] })
12403
12312
  ] }),
12404
- /* @__PURE__ */ jsxs57("div", { className: "w-full relative", children: [
12405
- /* @__PURE__ */ jsx64(
12406
- Input,
12407
- {
12408
- Icon: LumiaIcon,
12409
- type: "number",
12410
- value: amount,
12411
- onChange: (e) => setAmount(e.target.value),
12412
- placeholder: "0.0",
12413
- step: "0.000001"
12414
- }
12415
- ),
12416
- /* @__PURE__ */ jsx64(
12417
- Button,
12418
- {
12419
- onClick: handleMaxAmount,
12420
- variant: "ghost",
12421
- size: "medium",
12422
- style: { transform: "translateY(-50%)" },
12423
- className: "absolute right-2 top-1/2",
12424
- children: "MAX"
12425
- }
12426
- )
12427
- ] })
12313
+ /* @__PURE__ */ jsx64(
12314
+ Input,
12315
+ {
12316
+ Icon: LumiaIcon,
12317
+ type: "number",
12318
+ value: amount,
12319
+ onChange: (e) => setAmount(e.target.value),
12320
+ placeholder: "0.0",
12321
+ step: "0.000001",
12322
+ element: /* @__PURE__ */ jsx64(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", children: "MAX" })
12323
+ }
12324
+ )
12428
12325
  ] }),
12429
12326
  (validationError || error) && /* @__PURE__ */ jsxs57("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: [
12430
12327
  /* @__PURE__ */ jsx64(AlertCircle5, { className: "h-4 w-4" }),
@@ -12432,7 +12329,7 @@ function SendLumiaMenu() {
12432
12329
  ] }),
12433
12330
  /* @__PURE__ */ jsx64(Button, { onClick: handleSend, disabled: isLoading, className: "w-full", size: "large", children: "Continue" })
12434
12331
  ] }),
12435
- txStep === "confirm" && effectiveAddress && /* @__PURE__ */ jsxs57(Fragment22, { children: [
12332
+ txStep === "confirm" && effectiveAddress && /* @__PURE__ */ jsxs57(Fragment24, { children: [
12436
12333
  /* @__PURE__ */ jsxs57("div", { className: "bg-gray-50 rounded-lg p-4", children: [
12437
12334
  /* @__PURE__ */ jsx64("h3", { className: "font-medium mb-3", children: "Transaction Details" }),
12438
12335
  /* @__PURE__ */ jsxs57("div", { className: "space-y-2 text-sm", children: [
@@ -12459,19 +12356,19 @@ function SendLumiaMenu() {
12459
12356
  /* @__PURE__ */ jsxs57("div", { className: "flex gap-2", children: [
12460
12357
  /* @__PURE__ */ jsx64(Button, { onClick: () => setTxStep("input"), variant: "outline", className: "flex-1", size: "large", children: "Back" }),
12461
12358
  /* @__PURE__ */ jsxs57(Button, { onClick: handleConfirm, disabled: isLoading, className: "flex-1", size: "large", children: [
12462
- isLoading && /* @__PURE__ */ jsx64(Loader20, { className: "h-4 w-4 animate-spin" }),
12359
+ isLoading && /* @__PURE__ */ jsx64(Loader22, { className: "h-4 w-4 animate-spin" }),
12463
12360
  "Confirm"
12464
12361
  ] })
12465
12362
  ] })
12466
12363
  ] }),
12467
12364
  txStep === "pending" && /* @__PURE__ */ jsxs57("div", { className: "py-8 text-center space-y-4", children: [
12468
- /* @__PURE__ */ jsx64(Loader20, { className: "h-5 w-5 animate-spin mx-auto" }),
12365
+ /* @__PURE__ */ jsx64(Loader22, { className: "h-5 w-5 animate-spin mx-auto" }),
12469
12366
  /* @__PURE__ */ jsxs57("div", { children: [
12470
12367
  /* @__PURE__ */ jsx64("span", { className: "block font-medium", children: "Transaction Pending" }),
12471
12368
  /* @__PURE__ */ jsx64("span", { className: "block text-sm mt-1", children: "Please wait while we process your transaction" })
12472
12369
  ] })
12473
12370
  ] }),
12474
- txStep === "success" && userOpHash && /* @__PURE__ */ jsxs57(Fragment22, { children: [
12371
+ txStep === "success" && userOpHash && /* @__PURE__ */ jsxs57(Fragment24, { children: [
12475
12372
  /* @__PURE__ */ jsxs57("div", { className: "text-center py-4", children: [
12476
12373
  /* @__PURE__ */ jsx64(CheckCircle23, { className: "h-12 w-12 text-[var(--l-pass-success)] mx-auto mb-3" }),
12477
12374
  /* @__PURE__ */ jsx64("p", { className: "font-medium", children: "Transaction Sent!" }),
@@ -12484,10 +12381,10 @@ function SendLumiaMenu() {
12484
12381
 
12485
12382
  // src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
12486
12383
  init_clients();
12487
- import { ArrowLeft as ArrowLeft15, CheckCircle2 as CheckCircle24, Copy as Copy2, Loader as Loader21 } from "lucide-react";
12384
+ import { ArrowLeft as ArrowLeft13, CheckCircle2 as CheckCircle24, Copy as Copy2, Loader as Loader23 } from "lucide-react";
12488
12385
  import QRCode from "qrcode";
12489
- import { useCallback as useCallback17, useEffect as useEffect29, useState as useState19 } from "react";
12490
- import { Fragment as Fragment23, jsx as jsx65, jsxs as jsxs58 } from "react/jsx-runtime";
12386
+ import { useCallback as useCallback17, useEffect as useEffect26, useState as useState19 } from "react";
12387
+ import { Fragment as Fragment25, jsx as jsx65, jsxs as jsxs58 } from "react/jsx-runtime";
12491
12388
  function ReceiveLumiaMenu() {
12492
12389
  const address = useLumiaPassportSession((st) => st.address);
12493
12390
  const page = useLayoutDataStore((st) => st.page);
@@ -12496,7 +12393,7 @@ function ReceiveLumiaMenu() {
12496
12393
  const open = page === "receive";
12497
12394
  const [qrCodeUrl, setQrCodeUrl] = useState19("");
12498
12395
  const [copied, setCopied] = useState19(false);
12499
- useEffect29(() => {
12396
+ useEffect26(() => {
12500
12397
  if (open && address) {
12501
12398
  QRCode.toDataURL(address, {
12502
12399
  width: 200,
@@ -12529,20 +12426,20 @@ function ReceiveLumiaMenu() {
12529
12426
  className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
12530
12427
  children: [
12531
12428
  /* @__PURE__ */ jsxs58("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
12532
- /* @__PURE__ */ jsx65(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx65(ArrowLeft15, { className: "h-4 w-4" }) }),
12429
+ /* @__PURE__ */ jsx65(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx65(ArrowLeft13, { className: "h-4 w-4" }) }),
12533
12430
  /* @__PURE__ */ jsx65("span", { className: "text-xl font-semibold", children: "Receive LUMIA" })
12534
12431
  ] }),
12535
12432
  /* @__PURE__ */ jsxs58(Highlight, { className: "text-center", type: "warning", children: [
12536
12433
  /* @__PURE__ */ jsx65("strong", { className: "block w-full", children: `Network: ${lumiaBeam.name}` }),
12537
12434
  /* @__PURE__ */ jsx65("span", { className: "block w-full", children: "Ensure sender is on the same network" })
12538
12435
  ] }),
12539
- /* @__PURE__ */ jsx65("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ jsx65("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ jsx65(Loader21, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
12436
+ /* @__PURE__ */ jsx65("div", { className: "flex items-center justify-center p-[var(--l-pass-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl ? /* @__PURE__ */ jsx65("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) : /* @__PURE__ */ jsx65(Loader23, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }) }),
12540
12437
  /* @__PURE__ */ jsxs58(Highlight, { type: "info", children: [
12541
12438
  /* @__PURE__ */ jsx65("span", { className: "block w-full text-center font-mono text-[10px] break-all mb-2", children: address }),
12542
- /* @__PURE__ */ jsx65(Button, { onClick: handleCopy, className: "w-full", size: "large", children: copied ? /* @__PURE__ */ jsxs58(Fragment23, { children: [
12439
+ /* @__PURE__ */ jsx65(Button, { onClick: handleCopy, className: "w-full", size: "large", children: copied ? /* @__PURE__ */ jsxs58(Fragment25, { children: [
12543
12440
  /* @__PURE__ */ jsx65(CheckCircle24, { className: "h-4 w-4" }),
12544
12441
  /* @__PURE__ */ jsx65("span", { children: "Copied!" })
12545
- ] }) : /* @__PURE__ */ jsxs58(Fragment23, { children: [
12442
+ ] }) : /* @__PURE__ */ jsxs58(Fragment25, { children: [
12546
12443
  /* @__PURE__ */ jsx65(Copy2, { className: "h-4 w-4" }),
12547
12444
  /* @__PURE__ */ jsx65("span", { children: "Copy Address" })
12548
12445
  ] }) })
@@ -12554,11 +12451,11 @@ function ReceiveLumiaMenu() {
12554
12451
  }
12555
12452
 
12556
12453
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
12557
- import { ArrowLeft as ArrowLeft16 } from "lucide-react";
12558
- import { useEffect as useEffect30 } from "react";
12454
+ import { ArrowLeft as ArrowLeft14 } from "lucide-react";
12455
+ import { useEffect as useEffect27 } from "react";
12559
12456
 
12560
12457
  // src/internal/components/SettingsMenu/constants.ts
12561
- import { ArrowLeftRight, AtSign as AtSign3, DatabaseBackup, LockKeyhole, UsersRound } from "lucide-react";
12458
+ import { ArrowLeftRight, AtSign as AtSign2, DatabaseBackup, LockKeyhole, UsersRound } from "lucide-react";
12562
12459
 
12563
12460
  // src/internal/assets/KycIcon.tsx
12564
12461
  import { jsx as jsx66 } from "react/jsx-runtime";
@@ -12577,7 +12474,7 @@ function KycIcon(props) {
12577
12474
  var NAV_BUTTONS = [
12578
12475
  { id: "transactions" /* TRANSACTIONS */, name: "Transactions", Icon: ArrowLeftRight },
12579
12476
  { id: "kyc" /* KYC */, name: "KYC", Icon: KycIcon },
12580
- { id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon: AtSign3 },
12477
+ { id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "Nickname", Icon: AtSign2 },
12581
12478
  { id: "manage-wallet" /* MANAGE_WALLET */, name: "Profiles", Icon: UsersRound },
12582
12479
  { id: "security" /* SECURITY */, name: "Security", Icon: LockKeyhole },
12583
12480
  { id: "keysare-backup" /* KEYSARE_BACKUP */, name: "Backup", Icon: DatabaseBackup }
@@ -12590,39 +12487,50 @@ function SettingsMenu() {
12590
12487
  const setPage = useLayoutDataStore((st) => st.setPage);
12591
12488
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
12592
12489
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
12593
- useEffect30(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
12490
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
12491
+ useEffect27(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
12594
12492
  useProvidersList();
12595
12493
  const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
12596
12494
  const highlightedKeys = settingsNotifications.map((n) => n.target);
12597
- return /* @__PURE__ */ jsxs59("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
12598
- /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
12599
- /* @__PURE__ */ jsx67(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx67(ArrowLeft16, { className: "h-4 w-4" }) }),
12600
- /* @__PURE__ */ jsx67("span", { className: "text-xl font-semibold", children: "Settings" })
12601
- ] }),
12602
- /* @__PURE__ */ jsx67("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ jsxs59(
12603
- Button,
12604
- {
12605
- variant: "outline",
12606
- size: "large",
12607
- onClick,
12608
- disabled: !address,
12609
- className: cn(
12610
- //
12611
- "w-full items-center justify-start",
12612
- highlightedKeys.includes(id) && "animate-glow-warning"
12613
- ),
12614
- children: [
12615
- /* @__PURE__ */ jsx67(Icon2, { className: "w-4 h-4" }),
12616
- /* @__PURE__ */ jsx67("span", { children: name })
12617
- ]
12495
+ return /* @__PURE__ */ jsxs59(
12496
+ "div",
12497
+ {
12498
+ style: {
12499
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
12500
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
12618
12501
  },
12619
- id
12620
- )) })
12621
- ] });
12502
+ className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
12503
+ children: [
12504
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
12505
+ /* @__PURE__ */ jsx67(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx67(ArrowLeft14, { className: "h-4 w-4" }) }),
12506
+ /* @__PURE__ */ jsx67("span", { className: "text-xl font-semibold", children: "Settings" })
12507
+ ] }),
12508
+ /* @__PURE__ */ jsx67("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ jsxs59(
12509
+ Button,
12510
+ {
12511
+ variant: "outline",
12512
+ size: "large",
12513
+ onClick,
12514
+ disabled: !address,
12515
+ className: cn(
12516
+ //
12517
+ "w-full items-center justify-start",
12518
+ highlightedKeys.includes(id) && "animate-glow-warning"
12519
+ ),
12520
+ children: [
12521
+ /* @__PURE__ */ jsx67(Icon2, { className: "w-4 h-4" }),
12522
+ /* @__PURE__ */ jsx67("span", { children: name })
12523
+ ]
12524
+ },
12525
+ id
12526
+ )) })
12527
+ ]
12528
+ }
12529
+ );
12622
12530
  }
12623
12531
 
12624
12532
  // src/internal/components/TermsOfService.tsx
12625
- import { ArrowLeft as ArrowLeft17 } from "lucide-react";
12533
+ import { ArrowLeft as ArrowLeft15 } from "lucide-react";
12626
12534
  import { jsx as jsx68, jsxs as jsxs60 } from "react/jsx-runtime";
12627
12535
  function TermsOfService() {
12628
12536
  const address = useLumiaPassportSession((st) => st.address);
@@ -12636,7 +12544,7 @@ function TermsOfService() {
12636
12544
  size: "icon",
12637
12545
  title: "Back",
12638
12546
  onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
12639
- children: /* @__PURE__ */ jsx68(ArrowLeft17, { className: "h-4 w-4" })
12547
+ children: /* @__PURE__ */ jsx68(ArrowLeft15, { className: "h-4 w-4" })
12640
12548
  }
12641
12549
  ),
12642
12550
  /* @__PURE__ */ jsx68("span", { className: "text-xl font-semibold", children: "Terms of Service" })
@@ -12649,8 +12557,8 @@ function TermsOfService() {
12649
12557
  }
12650
12558
 
12651
12559
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
12652
- import { useQuery as useQuery18, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
12653
- import { ArrowLeft as ArrowLeft18, Loader as Loader22, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
12560
+ import { useQuery as useQuery17, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
12561
+ import { ArrowLeft as ArrowLeft16, Loader as Loader24, RefreshCw as RefreshCw3, XCircle as XCircle2 } from "lucide-react";
12654
12562
  import { useCallback as useCallback18, useState as useState20 } from "react";
12655
12563
 
12656
12564
  // src/internal/components/TransactionsMenu/api.ts
@@ -12989,7 +12897,7 @@ var formatTimestamp = (timestampMs) => {
12989
12897
  };
12990
12898
 
12991
12899
  // src/internal/components/TransactionsMenu/TransactionsGroup.tsx
12992
- import { Fragment as Fragment24, jsx as jsx69, jsxs as jsxs61 } from "react/jsx-runtime";
12900
+ import { Fragment as Fragment26, jsx as jsx69, jsxs as jsxs61 } from "react/jsx-runtime";
12993
12901
  function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
12994
12902
  const internalSymbol = internal.assetSymbol || assetSymbol;
12995
12903
  const internalDecimals = internal.decimals ?? assetDecimals;
@@ -13066,7 +12974,7 @@ function TransactionsGroup(props) {
13066
12974
  )
13067
12975
  ] })
13068
12976
  ] }),
13069
- internalsToRender.length > 0 && /* @__PURE__ */ jsxs61(Fragment24, { children: [
12977
+ internalsToRender.length > 0 && /* @__PURE__ */ jsxs61(Fragment26, { children: [
13070
12978
  /* @__PURE__ */ jsxs61("div", { className: "w-full flex items-center", children: [
13071
12979
  /* @__PURE__ */ jsx69("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
13072
12980
  /* @__PURE__ */ jsx69("div", { className: "flex-none font-bold px-2 text-xs leading-4 text-[var(--l-pass-fg-muted)]", children: "Internals" }),
@@ -13116,7 +13024,7 @@ function TransactionsGroup(props) {
13116
13024
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
13117
13025
  import { jsx as jsx70, jsxs as jsxs62 } from "react/jsx-runtime";
13118
13026
  function TransactionsMenu() {
13119
- const qc = useQueryClient19();
13027
+ const qc = useQueryClient18();
13120
13028
  const address = useLumiaPassportSession((st) => st.address);
13121
13029
  const page = useLayoutDataStore((st) => st.page);
13122
13030
  const setPage = useLayoutDataStore((st) => st.setPage);
@@ -13127,7 +13035,7 @@ function TransactionsMenu() {
13127
13035
  isLoading: isTxHistoryLoading,
13128
13036
  isFetching: isTxHistoryFetching,
13129
13037
  error: txHistoryError
13130
- } = useQuery18({
13038
+ } = useQuery17({
13131
13039
  retry: false,
13132
13040
  enabled: !!address && page === "transactions",
13133
13041
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
@@ -13143,12 +13051,12 @@ function TransactionsMenu() {
13143
13051
  {
13144
13052
  style: {
13145
13053
  "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
13146
- "--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
13054
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
13147
13055
  },
13148
13056
  className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
13149
13057
  children: /* @__PURE__ */ jsxs62(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
13150
13058
  /* @__PURE__ */ jsxs62("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
13151
- /* @__PURE__ */ jsx70(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx70(ArrowLeft18, { className: "h-4 w-4" }) }),
13059
+ /* @__PURE__ */ jsx70(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx70(ArrowLeft16, { className: "h-4 w-4" }) }),
13152
13060
  /* @__PURE__ */ jsx70("span", { className: "text-xl font-semibold", children: "Transaction History" }),
13153
13061
  /* @__PURE__ */ jsx70(
13154
13062
  Button,
@@ -13158,11 +13066,11 @@ function TransactionsMenu() {
13158
13066
  onClick: refreshTxHistory,
13159
13067
  disabled: isTxHistoryFetching,
13160
13068
  title: "Refresh transactions",
13161
- children: isTxHistoryFetching ? /* @__PURE__ */ jsx70(Loader22, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx70(RefreshCw3, { className: "h-4 w-4" })
13069
+ children: isTxHistoryFetching ? /* @__PURE__ */ jsx70(Loader24, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx70(RefreshCw3, { className: "h-4 w-4" })
13162
13070
  }
13163
13071
  )
13164
13072
  ] }),
13165
- isTxHistoryLoading && /* @__PURE__ */ jsx70("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx70(Loader22, { className: "h-5 w-5 animate-spin" }) }),
13073
+ isTxHistoryLoading && /* @__PURE__ */ jsx70("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx70(Loader24, { className: "h-5 w-5 animate-spin" }) }),
13166
13074
  !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs62(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
13167
13075
  /* @__PURE__ */ jsx70(XCircle2, { className: "w-4 h-4 flex-none" }),
13168
13076
  /* @__PURE__ */ jsx70("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
@@ -13287,8 +13195,6 @@ import { jsx as jsx71 } from "react/jsx-runtime";
13287
13195
  var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
13288
13196
  function usePageMapper() {
13289
13197
  const page = useLayoutDataStore((st) => st.page);
13290
- const session = useLumiaPassportSession((st) => st.session);
13291
- const protectedRoutes = !!session ? PAGE_MAP : PAGE_MAP;
13292
13198
  const {
13293
13199
  setDialogTitle,
13294
13200
  setDialogDescription,
@@ -13318,21 +13224,21 @@ function usePageMapper() {
13318
13224
  },
13319
13225
  [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
13320
13226
  );
13321
- useEffect31(() => {
13227
+ useEffect28(() => {
13322
13228
  if (page === null) return closeDialog();
13323
- const pageItem = protectedRoutes[page];
13229
+ const pageItem = PAGE_MAP[page];
13324
13230
  if (!pageItem) {
13325
13231
  alert(`[PASSPORT MAPPER]: Requested page "${page}" is not existing or not allowed. Closing dialog...`);
13326
13232
  closeDialog();
13327
13233
  return;
13328
13234
  }
13329
13235
  openDialog(pageItem);
13330
- }, [protectedRoutes, page, closeDialog, openDialog]);
13236
+ }, [page, closeDialog, openDialog]);
13331
13237
  }
13332
13238
 
13333
13239
  // src/internal/hooks/useSettingsNotifications.ts
13334
13240
  init_auth();
13335
- import { useEffect as useEffect32 } from "react";
13241
+ import { useEffect as useEffect29 } from "react";
13336
13242
  var EMAIL_NOT_CONNECTED_NOTIFICATION = {
13337
13243
  id: "email-not-connected",
13338
13244
  target: "manage-wallet" /* MANAGE_WALLET */,
@@ -13342,7 +13248,7 @@ function useSettingsNotifications() {
13342
13248
  const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
13343
13249
  const providers = jwtTokenManager2.getProviders();
13344
13250
  const hasEmail = providers.includes("email");
13345
- useEffect32(() => {
13251
+ useEffect29(() => {
13346
13252
  setSettingsNotifications({
13347
13253
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
13348
13254
  status: hasEmail ? "resolved" : "active"
@@ -13351,7 +13257,7 @@ function useSettingsNotifications() {
13351
13257
  }
13352
13258
 
13353
13259
  // src/internal/hooks/useWalletStatus.ts
13354
- import { useEffect as useEffect33 } from "react";
13260
+ import { useEffect as useEffect30 } from "react";
13355
13261
  init_auth();
13356
13262
  function useWalletStatus() {
13357
13263
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
@@ -13361,7 +13267,7 @@ function useWalletStatus() {
13361
13267
  config: { current: config },
13362
13268
  callbacks
13363
13269
  } = useLumiaPassportConfig();
13364
- useEffect33(() => {
13270
+ useEffect30(() => {
13365
13271
  if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
13366
13272
  const userId = jwtTokenManager2.getUserId();
13367
13273
  const hasKeyshare = jwtTokenManager2.getHasKeyshare();
@@ -13391,15 +13297,13 @@ function LumiaPassportDialog() {
13391
13297
  const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
13392
13298
  const setPage = useLayoutDataStore((st) => st.setPage);
13393
13299
  const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
13394
- useEffect34(() => setIsSettings(!!session), [session, setIsSettings]);
13300
+ useEffect31(() => setIsSettings(!!session), [session, setIsSettings]);
13395
13301
  usePageMapper();
13396
13302
  useAutoConnect();
13397
- useCheckVaultStatus();
13398
13303
  useBackupStatusChanges();
13399
13304
  useDetectMaxScrollHeight();
13400
13305
  useSettingsNotifications();
13401
13306
  useListenIframeAuthEvents();
13402
- useBackupWarning();
13403
13307
  useWalletStatus();
13404
13308
  const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
13405
13309
  return /* @__PURE__ */ jsx72(
@@ -13477,11 +13381,11 @@ var TssManagerWithRef = React8.forwardRef((props, ref) => {
13477
13381
  // src/internal/components/WalletConnectHandler.tsx
13478
13382
  init_wallet();
13479
13383
  import { useConnectModal } from "@rainbow-me/rainbowkit";
13480
- import { useMutation as useMutation16, useQueryClient as useQueryClient20 } from "@tanstack/react-query";
13481
- import React9, { useCallback as useCallback21, useEffect as useEffect35 } from "react";
13384
+ import { useMutation as useMutation15, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
13385
+ import React9, { useCallback as useCallback21, useEffect as useEffect32 } from "react";
13482
13386
  import { useAccount, useDisconnect, useSignMessage } from "wagmi";
13483
13387
  function WalletConnectHandler() {
13484
- const qc = useQueryClient20();
13388
+ const qc = useQueryClient19();
13485
13389
  const callbacks = useLumiaPassportConfig().callbacks;
13486
13390
  const passportWalletAddress = useLumiaPassportSession((st) => st.address);
13487
13391
  const { address: walletAddress, isConnected, chain, connector } = useAccount();
@@ -13523,7 +13427,7 @@ function WalletConnectHandler() {
13523
13427
  [qc, passportWalletAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
13524
13428
  );
13525
13429
  const [hasStartedLinking, setHasStartedLinking] = React9.useState(false);
13526
- useEffect35(() => {
13430
+ useEffect32(() => {
13527
13431
  if (isWalletLinking && !hasStartedLinking) {
13528
13432
  setHasStartedLinking(true);
13529
13433
  setProviderType(null);
@@ -13543,14 +13447,14 @@ function WalletConnectHandler() {
13543
13447
  if (isConnected) disconnect();
13544
13448
  }
13545
13449
  }, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
13546
- useEffect35(() => {
13450
+ useEffect32(() => {
13547
13451
  if (hasStartedLinking && !connectModalOpen && !isConnected && isWalletLinking) {
13548
13452
  console.log("[WalletConnectHandler] Modal closed without connecting");
13549
13453
  onLinkingComplete(false);
13550
13454
  setHasStartedLinking(false);
13551
13455
  }
13552
13456
  }, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
13553
- const { mutate: handleWalletSign, isPending: isWalletSigning } = useMutation16({
13457
+ const { mutate: handleWalletSign, isPending: isWalletSigning } = useMutation15({
13554
13458
  mutationFn: async (payload) => {
13555
13459
  const { chainId, signingWalletAddress } = payload;
13556
13460
  if (!signingWalletAddress || !chainId) {
@@ -13619,7 +13523,7 @@ function WalletConnectHandler() {
13619
13523
  setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
13620
13524
  }
13621
13525
  });
13622
- useEffect35(() => {
13526
+ useEffect32(() => {
13623
13527
  if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
13624
13528
  console.log("[WalletConnectHandler] handleWalletSign triggered");
13625
13529
  handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
@@ -13655,7 +13559,7 @@ var useLumiaPassportSession = create6((set) => ({
13655
13559
  }));
13656
13560
  function LumiaPassportSessionProvider({ children }) {
13657
13561
  const config = useLumiaPassportConfig().config;
13658
- return /* @__PURE__ */ jsxs64(Fragment25, { children: [
13562
+ return /* @__PURE__ */ jsxs64(Fragment27, { children: [
13659
13563
  children,
13660
13564
  config.current?.wallet?.enabled && /* @__PURE__ */ jsx73(WalletConnectHandler, {}),
13661
13565
  /* @__PURE__ */ jsx73(BalanceFeedProvider, {}),
@@ -13712,8 +13616,8 @@ function LumiaPassportProvider(props) {
13712
13616
  const { children, projectId, initialConfig = {}, callbacks } = props;
13713
13617
  const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
13714
13618
  const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
13715
- useEffect36(() => notifyNoProjetctId(projectId), [projectId]);
13716
- const config = useRef14({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
13619
+ useEffect33(() => notifyNoProjetctId(projectId), [projectId]);
13620
+ const config = useRef13({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
13717
13621
  const updateConfig = useCallback22((updates) => {
13718
13622
  const prev = config.current;
13719
13623
  const next = { ...prev };
@@ -13749,7 +13653,7 @@ function LumiaPassportProvider(props) {
13749
13653
  }
13750
13654
  config.current = next;
13751
13655
  }, []);
13752
- useEffect36(() => {
13656
+ useEffect33(() => {
13753
13657
  if (typeof window === "undefined" || !projectId) return;
13754
13658
  const mergedConfig = merge2(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
13755
13659
  updateConfig(mergedConfig);
@@ -13804,10 +13708,12 @@ var useLumiaPassportConfig = () => {
13804
13708
  };
13805
13709
 
13806
13710
  // src/components/ConnectWalletButton.tsx
13807
- import { Cloud as Cloud5, Laptop as Laptop2, Loader as Loader23, Shield as Shield2 } from "lucide-react";
13808
- import { useEffect as useEffect37, useMemo as useMemo6 } from "react";
13711
+ import { useQuery as useQuery18 } from "@tanstack/react-query";
13712
+ import { Cloud as Cloud5, Laptop as Laptop2, Loader as Loader25, Shield as Shield2 } from "lucide-react";
13713
+ import { useEffect as useEffect34, useMemo as useMemo6 } from "react";
13809
13714
  init_auth();
13810
- import { Fragment as Fragment26, jsx as jsx76, jsxs as jsxs65 } from "react/jsx-runtime";
13715
+ init_profile();
13716
+ import { Fragment as Fragment28, jsx as jsx76, jsxs as jsxs65 } from "react/jsx-runtime";
13811
13717
  function getFormattedStatus(label, status, showStatus) {
13812
13718
  const isStatus = showStatus && status && status !== "idle" && status !== "ready";
13813
13719
  if (!isStatus) return label;
@@ -13826,9 +13732,15 @@ function ConnectWalletButton(props) {
13826
13732
  const colorMode = useLayoutStore((st) => st.colorMode);
13827
13733
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
13828
13734
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
13829
- useEffect37(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
13735
+ useEffect34(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
13736
+ const { data: profile, isLoading: isProfileLoading } = useQuery18({
13737
+ retry: false,
13738
+ enabled: !!address,
13739
+ queryKey: [QUERY_KEYS.userProfile, address],
13740
+ queryFn: getUserProfile
13741
+ });
13830
13742
  const avatar = jwtTokenManager2.getAvatar();
13831
- const displayName = jwtTokenManager2.getDisplayName();
13743
+ const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
13832
13744
  const indicators = useMemo6(() => {
13833
13745
  const userId = jwtTokenManager2.getUserId();
13834
13746
  if (!userId) return { server: false, local: false, backup: false };
@@ -13839,14 +13751,14 @@ function ConnectWalletButton(props) {
13839
13751
  const isConnecting = connectButtonLabel !== label || isLoading;
13840
13752
  return /* @__PURE__ */ jsx76("div", { "data-lumia-passport-mode": colorMode, className: cn("lumia-scope w-fit h-fit", className), children: !address ? (
13841
13753
  /** external Buttons can be provided */
13842
- /* @__PURE__ */ jsx76(Fragment26, { children: ConnectButton ? /* @__PURE__ */ jsxs65(
13754
+ /* @__PURE__ */ jsx76(Fragment28, { children: ConnectButton ? /* @__PURE__ */ jsxs65(
13843
13755
  ConnectButton,
13844
13756
  {
13845
13757
  type: "button",
13846
13758
  disabled: isConnecting,
13847
13759
  onClick: () => setPage("auth" /* AUTH */),
13848
13760
  children: [
13849
- isConnecting && /* @__PURE__ */ jsx76(Loader23, { className: "w-4 h-4 animate-spin" }),
13761
+ isConnecting && /* @__PURE__ */ jsx76(Loader25, { className: "w-4 h-4 animate-spin" }),
13850
13762
  connectButtonLabel
13851
13763
  ]
13852
13764
  }
@@ -13867,7 +13779,7 @@ function ConnectWalletButton(props) {
13867
13779
  "disabled:hover:bg-[var(--l-pass-bg)] disabled:active:bg-[var(--l-pass-bg)]"
13868
13780
  ),
13869
13781
  children: [
13870
- isConnecting && /* @__PURE__ */ jsx76(Loader23, { className: "w-4 h-4 animate-spin" }),
13782
+ isConnecting && /* @__PURE__ */ jsx76(Loader25, { className: "w-4 h-4 animate-spin" }),
13871
13783
  connectButtonLabel.toUpperCase()
13872
13784
  ]
13873
13785
  }
@@ -13888,7 +13800,7 @@ function ConnectWalletButton(props) {
13888
13800
  /* @__PURE__ */ jsx76("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ jsx76("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx76(LumiaIcon, { width: 48, height: 48 }) }),
13889
13801
  /* @__PURE__ */ jsxs65("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
13890
13802
  /* @__PURE__ */ jsxs65("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
13891
- /* @__PURE__ */ jsx76("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--l-pass-fg)]", children: displayName }),
13803
+ isProfileLoading ? /* @__PURE__ */ jsx76(Loader25, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx76("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--l-pass-fg)]", children: displayName }),
13892
13804
  /* @__PURE__ */ jsx76(KYCStatus, {})
13893
13805
  ] }),
13894
13806
  /* @__PURE__ */ jsx76(BalanceView, {})
@@ -14022,7 +13934,7 @@ function useLumiaPassportOpen() {
14022
13934
  }
14023
13935
 
14024
13936
  // src/hooks/useLumiaPassportColorMode.ts
14025
- import { useCallback as useCallback24, useEffect as useEffect38 } from "react";
13937
+ import { useCallback as useCallback24, useEffect as useEffect35 } from "react";
14026
13938
  function useLumiaPassportColorMode() {
14027
13939
  const {
14028
13940
  config: { current: config }
@@ -14037,7 +13949,7 @@ function useLumiaPassportColorMode() {
14037
13949
  },
14038
13950
  [handleStoreColorMode]
14039
13951
  );
14040
- useEffect38(() => {
13952
+ useEffect35(() => {
14041
13953
  let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
14042
13954
  if (!targetColorMode && !preferedColorMode) {
14043
13955
  const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -14308,7 +14220,7 @@ var rainbowTheme = {
14308
14220
 
14309
14221
  // src/context/RainbowKitContext.tsx
14310
14222
  import "@rainbow-me/rainbowkit/styles.css";
14311
- import { Fragment as Fragment27, jsx as jsx78 } from "react/jsx-runtime";
14223
+ import { Fragment as Fragment29, jsx as jsx78 } from "react/jsx-runtime";
14312
14224
  function LumiaRainbowKitProvider({ children }) {
14313
14225
  const config = useLumiaPassportConfig().config;
14314
14226
  const colorMode = useLayoutStore((st) => st.colorMode);
@@ -14327,7 +14239,7 @@ function LumiaRainbowKitProvider({ children }) {
14327
14239
  },
14328
14240
  [colorMode]
14329
14241
  );
14330
- if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx78(Fragment27, { children });
14242
+ if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx78(Fragment29, { children });
14331
14243
  return /* @__PURE__ */ jsx78(WagmiProvider2, { config: rainbowConfig2, children: /* @__PURE__ */ jsx78(RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
14332
14244
  }
14333
14245
 
@@ -14766,13 +14678,13 @@ var Hash = ({
14766
14678
 
14767
14679
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
14768
14680
  init_base();
14769
- import { useEffect as useEffect40, useState as useState24 } from "react";
14681
+ import { useEffect as useEffect37, useState as useState24 } from "react";
14770
14682
  import { jsx as jsx83, jsxs as jsxs69 } from "react/jsx-runtime";
14771
14683
  var TransactionsList = ({ address, itemsCount = 10 }) => {
14772
14684
  const [transactions, setTransactions] = useState24([]);
14773
14685
  const [loading, setLoading] = useState24(true);
14774
14686
  const [error, setError] = useState24(null);
14775
- useEffect40(() => {
14687
+ useEffect37(() => {
14776
14688
  const fetchTransactions = async () => {
14777
14689
  try {
14778
14690
  setLoading(true);