@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.cjs CHANGED
@@ -4335,8 +4335,9 @@ async function changeNickname(handle) {
4335
4335
  }
4336
4336
  async function checkNicknameAvailability(handle) {
4337
4337
  const normalizedHandle = handle.toLowerCase().replace(/^@/, "");
4338
- const response = await tssClient.get(
4339
- `/api/auth/nicknames/${encodeURIComponent(normalizedHandle)}/check`,
4338
+ const response = await tssClient.post(
4339
+ "/api/auth/nicknames/check",
4340
+ { handle: normalizedHandle },
4340
4341
  false
4341
4342
  // Public endpoint, no auth required
4342
4343
  );
@@ -4348,14 +4349,15 @@ async function checkNicknameAvailability(handle) {
4348
4349
  }
4349
4350
  async function resolveNickname(handle) {
4350
4351
  const normalizedHandle = handle.toLowerCase().replace(/^@/, "");
4351
- const response = await tssClient.get(
4352
- `/api/auth/nicknames/${encodeURIComponent(normalizedHandle)}/resolve`,
4352
+ const response = await tssClient.post(
4353
+ "/api/auth/nicknames/resolve",
4354
+ { handle: normalizedHandle },
4353
4355
  false
4354
4356
  // Public endpoint, no auth required
4355
4357
  );
4356
4358
  if (!response.success || !response.data) {
4357
- const errorData = response.data;
4358
- if (errorData?.code === "NICKNAME_NOT_FOUND") {
4359
+ const errorData = response.data || {};
4360
+ if (errorData.code === "NICKNAME_NOT_FOUND") {
4359
4361
  const error = new Error("Nickname not found");
4360
4362
  error.code = "NICKNAME_NOT_FOUND";
4361
4363
  throw error;
@@ -4529,17 +4531,17 @@ __export(index_exports, {
4529
4531
  module.exports = __toCommonJS(index_exports);
4530
4532
 
4531
4533
  // src/styles/built.css
4532
- 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}';
4534
+ 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}';
4533
4535
 
4534
4536
  // src/context/LumiaPassportContext.tsx
4535
4537
  var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
4536
4538
  var import_lodash_es4 = require("lodash-es");
4537
- var import_react63 = require("react");
4539
+ var import_react61 = require("react");
4538
4540
  init_lumiaPassport();
4539
4541
  init_iframe_manager();
4540
4542
 
4541
4543
  // src/context/LumiaPassportSessionContext.tsx
4542
- var import_react62 = require("react");
4544
+ var import_react60 = require("react");
4543
4545
  var import_zustand6 = require("zustand");
4544
4546
 
4545
4547
  // src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
@@ -4558,7 +4560,7 @@ init_assets();
4558
4560
  var LOCAL_COLOR_MODE_KEY = "lumia-passport-theme";
4559
4561
  var DEFAULT_AUTH_MENU_HEIGHT = 253;
4560
4562
  var DEFAULT_MAIN_MENU_HEIGHT = 90;
4561
- var DEFAULT_SETTINGS_MENU_HEIGHT = 346;
4563
+ var DEFAULT_SETTINGS_MENU_HEIGHT = 404;
4562
4564
  var MAX_CONTENT_HEIGHT = 640;
4563
4565
  var MAIN_DIALOG_ANIMATION_SPEED = 375;
4564
4566
  var Y_ANIMATION_SETUP = { duration: 0.15, ease: "easeInOut", height: { duration: 0.375 } };
@@ -4718,7 +4720,7 @@ function BalanceFeedProvider() {
4718
4720
 
4719
4721
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
4720
4722
  var import_framer_motion3 = require("framer-motion");
4721
- var import_react59 = require("react");
4723
+ var import_react57 = require("react");
4722
4724
 
4723
4725
  // src/internal/components/Footer/Footer.tsx
4724
4726
  var import_react_query2 = require("@tanstack/react-query");
@@ -5398,17 +5400,14 @@ function formatAddress(addr) {
5398
5400
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
5399
5401
  }
5400
5402
  function Header() {
5401
- const {
5402
- config: { current: config }
5403
- } = useLumiaPassportConfig();
5403
+ const config = useLumiaPassportConfig().config;
5404
5404
  const address = useLumiaPassportSession((st) => st.address);
5405
5405
  const [copied, setCopied] = (0, import_react5.useState)(false);
5406
- const { data: profile } = (0, import_react_query5.useQuery)({
5407
- queryKey: [QUERY_KEYS.userProfile],
5408
- queryFn: getUserProfile,
5406
+ const { data: profile, isLoading: isProfileLoading } = (0, import_react_query5.useQuery)({
5407
+ retry: false,
5409
5408
  enabled: !!address,
5410
- staleTime: 1e3 * 60 * 5
5411
- // 5 minutes
5409
+ queryKey: [QUERY_KEYS.userProfile, address],
5410
+ queryFn: getUserProfile
5412
5411
  });
5413
5412
  const avatar = profile?.avatar || import_auth3.jwtTokenManager.getAvatar();
5414
5413
  const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth3.jwtTokenManager.getDisplayName();
@@ -5428,20 +5427,23 @@ function Header() {
5428
5427
  style: { width: "calc(100% - 48px - var(--l-pass-gap))" },
5429
5428
  className: "flex-1 flex flex-col justify-center gap-1",
5430
5429
  children: [
5431
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
5432
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
5433
- "span",
5434
- {
5435
- className: cn(
5436
- "text-[14px] leading-4 truncate max-w-[144px] font-medium",
5437
- "text-ellipsis overflow-hidden whitespace-nowrap"
5438
- ),
5439
- children: displayName || config.ui.title || "LumiaPassport"
5440
- }
5441
- ),
5442
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(KYCStatus, {})
5443
- ] }),
5444
- !!address && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BalanceView, {})
5430
+ isProfileLoading && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react7.Loader, { className: "w-4 h-4 animate-spin" }),
5431
+ !!address && !isProfileLoading && !!profile && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
5432
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: [
5433
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
5434
+ "span",
5435
+ {
5436
+ className: cn(
5437
+ "text-[14px] leading-4 truncate max-w-[144px] font-medium",
5438
+ "text-ellipsis overflow-hidden whitespace-nowrap"
5439
+ ),
5440
+ children: displayName || config.current?.ui?.title || "LumiaPassport"
5441
+ }
5442
+ ),
5443
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(KYCStatus, {})
5444
+ ] }),
5445
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BalanceView, {})
5446
+ ] })
5445
5447
  ]
5446
5448
  }
5447
5449
  )
@@ -5501,13 +5503,11 @@ function Header() {
5501
5503
  }
5502
5504
  );
5503
5505
  }
5504
- {
5505
- }
5506
5506
 
5507
5507
  // package.json
5508
5508
  var package_default = {
5509
5509
  name: "@lumiapassport/ui-kit",
5510
- version: "1.14.24",
5510
+ version: "1.14.25",
5511
5511
  description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
5512
5512
  type: "module",
5513
5513
  main: "./dist/index.cjs",
@@ -5946,17 +5946,28 @@ var import_react9 = require("react");
5946
5946
  init_vaultClient();
5947
5947
  function useBackupStatusChanges() {
5948
5948
  const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
5949
+ const setPage = useLayoutDataStore((st) => st.setPage);
5949
5950
  const { mutate: handleBackupStatusChanged } = (0, import_react_query6.useMutation)({
5950
5951
  mutationFn: async (event) => {
5951
5952
  const customEvent = event;
5952
- return await getShareRecoveryStats();
5953
+ console.log("[BACKUP STATUS] changed:", customEvent?.detail);
5954
+ return { stats: await getShareRecoveryStats(), detail: customEvent?.detail };
5953
5955
  },
5954
- onSuccess: (stats) => {
5956
+ onSuccess: ({ stats, detail }) => {
5955
5957
  const hasRecoveryData = stats && (!!stats.created || !!stats?.devices?.length);
5956
5958
  if (!!hasRecoveryData) {
5959
+ console.log(
5960
+ "[BACKUP STATUS] Recovery data found after backup status change.\n Redirect to main menu:",
5961
+ detail?.navigateToMainMenu
5962
+ );
5957
5963
  setHasServerVault(true);
5964
+ if (!!detail?.navigateToMainMenu) {
5965
+ setTimeout(() => setPage("main-menu" /* MAIN_MENU */), 1e3);
5966
+ }
5967
+ console.info("[BACKUP STATUS] Recovery data found in vault, marking as has-server-vault");
5958
5968
  } else {
5959
5969
  setHasServerVault(false);
5970
+ setPage("keysare-backup" /* KEYSARE_BACKUP */);
5960
5971
  console.warn("[BACKUP STATUS] No recovery data found in vault, marking as no-server-vault");
5961
5972
  }
5962
5973
  },
@@ -5973,74 +5984,15 @@ function useBackupStatusChanges() {
5973
5984
  }, []);
5974
5985
  }
5975
5986
 
5976
- // src/internal/hooks/useBackupWarning.ts
5977
- var import_react10 = require("react");
5978
- var WARNING_TIMEOUT_MS = 4500;
5979
- function useBackupWarning() {
5980
- const address = useLumiaPassportSession((st) => st.address);
5981
- const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
5982
- const page = useLayoutDataStore((st) => st.page);
5983
- const setPage = useLayoutDataStore((st) => st.setPage);
5984
- const timeoutRef = (0, import_react10.useRef)(null);
5985
- const touchedRef = (0, import_react10.useRef)(false);
5986
- (0, import_react10.useEffect)(() => {
5987
- if (touchedRef.current) return;
5988
- if (timeoutRef.current) {
5989
- clearTimeout(timeoutRef.current);
5990
- timeoutRef.current = null;
5991
- }
5992
- if (!address || !!hasServerVault || page === "keysare-backup" /* KEYSARE_BACKUP */) return;
5993
- timeoutRef.current = setTimeout(() => {
5994
- setPage("keysare-backup" /* KEYSARE_BACKUP */);
5995
- touchedRef.current = true;
5996
- timeoutRef.current = null;
5997
- }, WARNING_TIMEOUT_MS);
5998
- return () => {
5999
- if (timeoutRef.current) {
6000
- clearTimeout(timeoutRef.current);
6001
- timeoutRef.current = null;
6002
- }
6003
- };
6004
- }, [address, page, hasServerVault, setPage]);
6005
- return null;
6006
- }
6007
-
6008
- // src/internal/hooks/useCheckVaultStatus.ts
6009
- var import_react_query7 = require("@tanstack/react-query");
6010
- var import_react11 = require("react");
6011
- init_vaultClient();
6012
- function useCheckVaultStatus() {
6013
- const address = useLumiaPassportSession((st) => st.address);
6014
- const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
6015
- const { mutate: checkVaultStatus } = (0, import_react_query7.useMutation)({
6016
- mutationFn: async () => {
6017
- const stats = await getShareRecoveryStats();
6018
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
6019
- return !!hasRecoveryData;
6020
- },
6021
- onSuccess: (hasRecoveryData) => {
6022
- setHasServerVault(hasRecoveryData);
6023
- },
6024
- onError: (error) => {
6025
- console.warn("[UI-KIT] Failed to check vault status:", error);
6026
- setHasServerVault(false);
6027
- }
6028
- });
6029
- (0, import_react11.useEffect)(() => {
6030
- if (!address) return setHasServerVault(false);
6031
- checkVaultStatus();
6032
- }, [address, checkVaultStatus]);
6033
- }
6034
-
6035
5987
  // src/internal/hooks/useDetectMaxScrollHeight.ts
6036
5988
  var import_lodash_es2 = require("lodash-es");
6037
- var import_react12 = require("react");
5989
+ var import_react10 = require("react");
6038
5990
  var DEBOUNCE_DELAY = 50;
6039
5991
  function useDetectMaxScrollHeight() {
6040
5992
  const page = useLayoutDataStore((state) => state.page);
6041
5993
  const setIsMobileView = useLayoutStore((state) => state.setIsMobileView);
6042
5994
  const setMaxScrollHeight = useLayoutStore((state) => state.setMaxScrollHeight);
6043
- const onResize = (0, import_react12.useCallback)(
5995
+ const onResize = (0, import_react10.useCallback)(
6044
5996
  (0, import_lodash_es2.debounce)(({ width, height }) => {
6045
5997
  const headerHeight = page === "auth" /* AUTH */ || page === "keyshare-restore" /* KEYSHARE_RESTORE */ ? 0 : 116;
6046
5998
  const limContentHeight = height * 0.92 - headerHeight - 57;
@@ -6049,7 +6001,7 @@ function useDetectMaxScrollHeight() {
6049
6001
  }, DEBOUNCE_DELAY),
6050
6002
  [page, setMaxScrollHeight, setIsMobileView]
6051
6003
  );
6052
- (0, import_react12.useEffect)(() => {
6004
+ (0, import_react10.useEffect)(() => {
6053
6005
  const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect));
6054
6006
  const doc = window.document.getElementsByTagName("html")[0];
6055
6007
  if (doc) obs.observe(doc);
@@ -6058,24 +6010,24 @@ function useDetectMaxScrollHeight() {
6058
6010
  }
6059
6011
 
6060
6012
  // src/internal/hooks/usePageMapper.tsx
6061
- var import_react56 = require("react");
6013
+ var import_react54 = require("react");
6062
6014
 
6063
6015
  // src/internal/components/AuthMenu/AuthMenu.tsx
6064
6016
  var import_framer_motion = require("framer-motion");
6065
6017
  var import_lucide_react14 = require("lucide-react");
6066
- var import_react21 = require("react");
6018
+ var import_react19 = require("react");
6067
6019
 
6068
6020
  // src/internal/components/Expandable/hooks/useExpandable.ts
6069
- var import_react13 = require("react");
6021
+ var import_react11 = require("react");
6070
6022
  var useExpandable = (props) => {
6071
6023
  const { isExpanded = false, children, initHeight = 0, minHeight = 0 } = props;
6072
- const expandableRef = (0, import_react13.useRef)(null);
6073
- const contentRef = (0, import_react13.useRef)(null);
6074
- (0, import_react13.useEffect)(() => {
6024
+ const expandableRef = (0, import_react11.useRef)(null);
6025
+ const contentRef = (0, import_react11.useRef)(null);
6026
+ (0, import_react11.useEffect)(() => {
6075
6027
  if (!expandableRef.current) return;
6076
6028
  expandableRef.current.style.setProperty("--ifo-basic-expandable-h", `${initHeight}px )`);
6077
6029
  }, []);
6078
- const setExpandableHeight = (0, import_react13.useCallback)(
6030
+ const setExpandableHeight = (0, import_react11.useCallback)(
6079
6031
  (isExpnd) => {
6080
6032
  if (!contentRef.current || !expandableRef.current) return;
6081
6033
  expandableRef.current.style.setProperty(
@@ -6086,7 +6038,7 @@ var useExpandable = (props) => {
6086
6038
  // ON_RESIZE_DELEAY),
6087
6039
  [minHeight]
6088
6040
  );
6089
- (0, import_react13.useEffect)(() => {
6041
+ (0, import_react11.useEffect)(() => {
6090
6042
  if (!contentRef.current || !expandableRef.current) return;
6091
6043
  const obs = new ResizeObserver(() => setExpandableHeight(isExpanded));
6092
6044
  obs.observe(expandableRef.current);
@@ -6216,7 +6168,7 @@ function AuthFailedStep() {
6216
6168
 
6217
6169
  // src/internal/components/AuthMenu/PassKeyStep.tsx
6218
6170
  var import_lucide_react10 = require("lucide-react");
6219
- var import_react14 = require("react");
6171
+ var import_react12 = require("react");
6220
6172
 
6221
6173
  // src/internal/assets/PasskeyAddIcon.tsx
6222
6174
  var import_jsx_runtime18 = require("react/jsx-runtime");
@@ -6270,7 +6222,7 @@ function PassKeyStep(props) {
6270
6222
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6271
6223
  const autoCloseOnSuccess = !recoveryUserId;
6272
6224
  const { passkeyStatus, setStep, setPasskeyStatus, setAlert, setEmail, setFailedType } = useAuthStore();
6273
- const onPasskeyRegister = (0, import_react14.useCallback)(async () => {
6225
+ const onPasskeyRegister = (0, import_react12.useCallback)(async () => {
6274
6226
  setAlert(null);
6275
6227
  setPasskeyStatus("registering passkey...");
6276
6228
  setIsLoading(true);
@@ -6329,7 +6281,7 @@ function PassKeyStep(props) {
6329
6281
  setIsLoading(false);
6330
6282
  }
6331
6283
  }, [onAuthSuccess, setPage, callbacks]);
6332
- const onPasskeyAuth = (0, import_react14.useCallback)(async () => {
6284
+ const onPasskeyAuth = (0, import_react12.useCallback)(async () => {
6333
6285
  setAlert(null);
6334
6286
  setPasskeyStatus("checking available passkeys...");
6335
6287
  setIsLoading(true);
@@ -6454,22 +6406,22 @@ function PassKeyStep(props) {
6454
6406
 
6455
6407
  // src/internal/components/AuthMenu/SignInStep/SignInStep.tsx
6456
6408
  var import_lucide_react12 = require("lucide-react");
6457
- var import_react18 = require("react");
6409
+ var import_react16 = require("react");
6458
6410
 
6459
6411
  // src/internal/components/AuthMenu/SignInStep/Email.tsx
6460
6412
  init_lumiaPassport();
6461
- var import_react_query8 = require("@tanstack/react-query");
6413
+ var import_react_query7 = require("@tanstack/react-query");
6462
6414
  var import_lucide_react11 = require("lucide-react");
6463
- var import_react16 = require("react");
6415
+ var import_react14 = require("react");
6464
6416
  init_projectId();
6465
6417
 
6466
6418
  // src/internal/components/ui/input.tsx
6467
- var import_react15 = __toESM(require("react"), 1);
6419
+ var import_react13 = __toESM(require("react"), 1);
6468
6420
  var import_jsx_runtime20 = require("react/jsx-runtime");
6469
- var Input = import_react15.default.forwardRef((props, ref) => {
6421
+ var Input = import_react13.default.forwardRef((props, ref) => {
6470
6422
  const { className, disabled, error, Icon: Icon2, element, ...inputProps } = props;
6471
- const internalRef = (0, import_react15.useRef)(null);
6472
- (0, import_react15.useImperativeHandle)(ref, () => internalRef.current);
6423
+ const internalRef = (0, import_react13.useRef)(null);
6424
+ (0, import_react13.useImperativeHandle)(ref, () => internalRef.current);
6473
6425
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: cn("w-full flex flex-col gap-1", className), children: [
6474
6426
  /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
6475
6427
  "div",
@@ -6516,11 +6468,11 @@ Input.displayName = "Input";
6516
6468
  var import_jsx_runtime21 = require("react/jsx-runtime");
6517
6469
  function Email() {
6518
6470
  const { config, callbacks } = useLumiaPassportConfig();
6519
- const buttonRef = (0, import_react16.useRef)(null);
6471
+ const buttonRef = (0, import_react14.useRef)(null);
6520
6472
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
6521
6473
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6522
6474
  const { email, alert: alert2, setEmail, setExpiresIn, setStep, setAlert } = useAuthStore();
6523
- const { mutate: onSendVerificationCode } = (0, import_react_query8.useMutation)({
6475
+ const { mutate: onSendVerificationCode } = (0, import_react_query7.useMutation)({
6524
6476
  mutationFn: async (mail) => {
6525
6477
  const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
6526
6478
  if (!isEmailValid) {
@@ -6618,7 +6570,7 @@ function Email() {
6618
6570
  // src/internal/components/AuthMenu/SignInStep/Social.tsx
6619
6571
  init_assets();
6620
6572
  init_lumiaPassport();
6621
- var import_react17 = require("react");
6573
+ var import_react15 = require("react");
6622
6574
  init_auth();
6623
6575
  init_projectId();
6624
6576
 
@@ -6790,7 +6742,7 @@ function Social(props) {
6790
6742
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6791
6743
  const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
6792
6744
  const { alert: alert2, setStep, setEmail, setFailedType, setAlert, setPasskeyStatus } = useAuthStore();
6793
- const onSocialAuth = (0, import_react17.useCallback)(
6745
+ const onSocialAuth = (0, import_react15.useCallback)(
6794
6746
  async (providerId) => {
6795
6747
  const normalizedProviderId = providerId.toLowerCase();
6796
6748
  const provider = config.current?.social?.providers?.find(
@@ -7091,7 +7043,7 @@ function SignInStep(props) {
7091
7043
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react12.UserCircle, { className: "w-6 h-6" }),
7092
7044
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "font-bold text-xl leading-6", children: "Sign In" })
7093
7045
  ] }),
7094
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: enabledSigninMethods.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react18.Fragment, { children: [
7046
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: enabledSigninMethods.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react16.Fragment, { children: [
7095
7047
  idx > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex items-center h-4", children: [
7096
7048
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
7097
7049
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "text-[10px] px-2 flex-none leading-4", children: "Or sign in using" }),
@@ -7116,16 +7068,16 @@ function SignInStep(props) {
7116
7068
  }
7117
7069
 
7118
7070
  // src/internal/components/AuthMenu/useAuthMenuHanders.ts
7119
- var import_react_query9 = require("@tanstack/react-query");
7120
- var import_react19 = require("react");
7071
+ var import_react_query8 = require("@tanstack/react-query");
7072
+ var import_react17 = require("react");
7121
7073
  init_auth();
7122
7074
  function useAuthMenuHandlers() {
7123
7075
  const { config, callbacks } = useLumiaPassportConfig();
7124
- const qc = (0, import_react_query9.useQueryClient)();
7125
- const pendingLoginResponseRef = (0, import_react19.useRef)(null);
7076
+ const qc = (0, import_react_query8.useQueryClient)();
7077
+ const pendingLoginResponseRef = (0, import_react17.useRef)(null);
7126
7078
  const setPage = useLayoutDataStore((st) => st.setPage);
7127
7079
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
7128
- const [telegramCleanup, setTelegramCleanup] = (0, import_react19.useState)(null);
7080
+ const [telegramCleanup, setTelegramCleanup] = (0, import_react17.useState)(null);
7129
7081
  const {
7130
7082
  usePaymaster,
7131
7083
  setError,
@@ -7138,7 +7090,7 @@ function useAuthMenuHandlers() {
7138
7090
  } = useLumiaPassportSession();
7139
7091
  const setStep = useAuthStore((st) => st.setStep);
7140
7092
  const setAlert = useAuthStore((st) => st.setAlert);
7141
- const createSessionWithKeyshare = (0, import_react19.useCallback)(
7093
+ const createSessionWithKeyshare = (0, import_react17.useCallback)(
7142
7094
  async (userId, hasServerKeyshare, isNewUser) => {
7143
7095
  try {
7144
7096
  try {
@@ -7172,7 +7124,7 @@ function useAuthMenuHandlers() {
7172
7124
  },
7173
7125
  [setStatus, callbacks, usePaymaster]
7174
7126
  );
7175
- const onAuthSuccess = (0, import_react19.useCallback)(async () => {
7127
+ const onAuthSuccess = (0, import_react17.useCallback)(async () => {
7176
7128
  setIsLoading(true);
7177
7129
  const loginResponse = pendingLoginResponseRef.current;
7178
7130
  if (!loginResponse || !loginResponse.userId) {
@@ -7207,6 +7159,7 @@ function useAuthMenuHandlers() {
7207
7159
  callbacks?.onLumiaPassportAccount?.({ userId, address: addr, session: sess, hasKeyshare: hasServerKeyshare });
7208
7160
  } catch {
7209
7161
  }
7162
+ let hasKeyshareVaultBackup = false;
7210
7163
  try {
7211
7164
  const { checkServerBackupAvailability: checkServerBackupAvailability2, updateBackupStatus: updateBackupStatus2, getShareRecoveryStats: getShareRecoveryStats2 } = await Promise.resolve().then(() => (init_vaultClient(), vaultClient_exports));
7212
7165
  const result = await checkServerBackupAvailability2();
@@ -7216,8 +7169,8 @@ function useAuthMenuHandlers() {
7216
7169
  updateBackupStatus2(userId, "server", { enabled: false, error: "No server vault found" });
7217
7170
  }
7218
7171
  const stats = await getShareRecoveryStats2();
7219
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
7220
- setHasServerVault(!!hasRecoveryData);
7172
+ hasKeyshareVaultBackup = !!stats && (!!stats.created || !!stats.devices && stats.devices.length > 0);
7173
+ setHasServerVault(!!hasKeyshareVaultBackup);
7221
7174
  qc.refetchQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, addr] });
7222
7175
  } catch (e) {
7223
7176
  console.warn("[UI-KIT] Vault status check failed:", e);
@@ -7225,13 +7178,17 @@ function useAuthMenuHandlers() {
7225
7178
  setSession(sess);
7226
7179
  setAddress(addr);
7227
7180
  setStatus("ready");
7228
- if (jwt?.isNewUser) {
7229
- console.log("[AuthMenu] New user detected - forcing backup flow");
7230
- setIsDialogForced(true);
7231
- setPage("keysare-backup" /* KEYSARE_BACKUP */);
7232
- } else {
7233
- setPage(null);
7234
- }
7181
+ setTimeout(() => {
7182
+ if (!!jwt?.isNewUser || !hasKeyshareVaultBackup) {
7183
+ if (!!jwt?.isNewUser) console.log("[AuthMenu] New user detected - forcing backup flow");
7184
+ if (!hasKeyshareVaultBackup) console.log("[AuthMenu] No recovery data found - forcing backup flow");
7185
+ setIsDialogForced(true);
7186
+ setPage("keysare-backup" /* KEYSARE_BACKUP */);
7187
+ } else {
7188
+ setIsDialogForced(false);
7189
+ setPage(null);
7190
+ }
7191
+ }, 100);
7235
7192
  } catch (error) {
7236
7193
  if (error?.code === "KEYSHARE_RECOVERY_NEEDED") {
7237
7194
  console.warn("[AuthMenu] Keyshare recovery needed for user:", userId);
@@ -7239,7 +7196,9 @@ function useAuthMenuHandlers() {
7239
7196
  setError(null);
7240
7197
  setRecoveryUserId(userId);
7241
7198
  setStatus("recovery_needed");
7242
- setTimeout(() => setPage("keyshare-restore" /* KEYSHARE_RESTORE */), 300);
7199
+ setTimeout(() => {
7200
+ setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
7201
+ }, 100);
7243
7202
  } else {
7244
7203
  pendingLoginResponseRef.current = null;
7245
7204
  await import_auth3.jwtTokenManager.clearTokens();
@@ -7255,7 +7214,6 @@ function useAuthMenuHandlers() {
7255
7214
  setIsLoading(false);
7256
7215
  }
7257
7216
  }, [
7258
- // config.projectId,
7259
7217
  qc,
7260
7218
  callbacks,
7261
7219
  setPage,
@@ -7269,7 +7227,7 @@ function useAuthMenuHandlers() {
7269
7227
  setIsDialogForced,
7270
7228
  createSessionWithKeyshare
7271
7229
  ]);
7272
- const goBackToSignIn = (0, import_react19.useCallback)(() => {
7230
+ const goBackToSignIn = (0, import_react17.useCallback)(() => {
7273
7231
  setStep("signin");
7274
7232
  setAlert(null);
7275
7233
  if (telegramCleanup) {
@@ -7286,7 +7244,7 @@ function useAuthMenuHandlers() {
7286
7244
 
7287
7245
  // src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
7288
7246
  init_lumiaPassport();
7289
- var import_react_query10 = require("@tanstack/react-query");
7247
+ var import_react_query9 = require("@tanstack/react-query");
7290
7248
  var import_lucide_react13 = require("lucide-react");
7291
7249
 
7292
7250
  // src/internal/assets/OtpIcon.tsx
@@ -7306,21 +7264,21 @@ function OtpIcon(props) {
7306
7264
  init_projectId();
7307
7265
 
7308
7266
  // src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
7309
- var import_react20 = require("react");
7267
+ var import_react18 = require("react");
7310
7268
  var import_jsx_runtime26 = require("react/jsx-runtime");
7311
7269
  var VerificationCodeInput = (props) => {
7312
7270
  const { onVerifyCode, onResendCode, isLoading, expiresIn } = props;
7313
7271
  const setAlert = useAuthStore((st) => st.setAlert);
7314
- const [timeLeft, setTimeLeft] = (0, import_react20.useState)(expiresIn);
7315
- (0, import_react20.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
7316
- (0, import_react20.useEffect)(() => {
7272
+ const [timeLeft, setTimeLeft] = (0, import_react18.useState)(expiresIn);
7273
+ (0, import_react18.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
7274
+ (0, import_react18.useEffect)(() => {
7317
7275
  const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
7318
7276
  return () => clearInterval(t);
7319
7277
  }, []);
7320
- const lastSubmittedRef = (0, import_react20.useRef)(null);
7321
- const inputsRef = (0, import_react20.useRef)([]);
7322
- const [digits, setDigits] = (0, import_react20.useState)(["", "", "", "", "", ""]);
7323
- (0, import_react20.useEffect)(() => {
7278
+ const lastSubmittedRef = (0, import_react18.useRef)(null);
7279
+ const inputsRef = (0, import_react18.useRef)([]);
7280
+ const [digits, setDigits] = (0, import_react18.useState)(["", "", "", "", "", ""]);
7281
+ (0, import_react18.useEffect)(() => {
7324
7282
  const code = digits.join("");
7325
7283
  if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
7326
7284
  if (lastSubmittedRef.current !== code) {
@@ -7329,7 +7287,7 @@ var VerificationCodeInput = (props) => {
7329
7287
  }
7330
7288
  }
7331
7289
  }, [digits, isLoading, onVerifyCode]);
7332
- (0, import_react20.useEffect)(() => {
7290
+ (0, import_react18.useEffect)(() => {
7333
7291
  const t = setTimeout(() => {
7334
7292
  inputsRef.current[0]?.focus();
7335
7293
  }, 0);
@@ -7441,10 +7399,9 @@ var import_jsx_runtime27 = require("react/jsx-runtime");
7441
7399
  function VerifyStep(props) {
7442
7400
  const { pendingLoginResponseRef, goBackToSignIn, onAuthSuccess } = props;
7443
7401
  const { callbacks } = useLumiaPassportConfig();
7444
- const setPage = useLayoutDataStore((st) => st.setPage);
7402
+ const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
7445
7403
  const isSessionLoading = useLumiaPassportSession((st) => st.isLoading);
7446
7404
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
7447
- const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
7448
7405
  const {
7449
7406
  email,
7450
7407
  expiresIn,
@@ -7454,7 +7411,7 @@ function VerifyStep(props) {
7454
7411
  setExpiresIn,
7455
7412
  setAlert
7456
7413
  } = useAuthStore();
7457
- const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query10.useMutation)({
7414
+ const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query9.useMutation)({
7458
7415
  mutationFn: async (code) => {
7459
7416
  setIsLoading(true);
7460
7417
  setAlert(null);
@@ -7489,14 +7446,13 @@ function VerifyStep(props) {
7489
7446
  const storage = typeof window !== "undefined" ? window.localStorage : void 0;
7490
7447
  const localKeyshare = storage?.getItem(`tss.${loginResponse.userId}.keyshare`);
7491
7448
  const needsRecovery = loginResponse.hasKeyshare && !loginResponse.isNewUser && !localKeyshare;
7492
- await onAuthSuccess?.();
7493
- console.log("[AuthModal] Authentication successful, closing modal");
7494
7449
  if (!recoveryUserId && !needsRecovery) {
7495
7450
  setStep("signin");
7496
7451
  setEmail("");
7497
7452
  setAlert(null);
7498
- setPage(null);
7499
7453
  }
7454
+ await onAuthSuccess?.();
7455
+ console.log("[AuthModal] Authentication successful");
7500
7456
  setIsLoading(false);
7501
7457
  },
7502
7458
  onError: (error) => {
@@ -7521,7 +7477,7 @@ function VerifyStep(props) {
7521
7477
  setIsLoading(false);
7522
7478
  }
7523
7479
  });
7524
- const { mutate: onResendCode, isPending: isCodeResending } = (0, import_react_query10.useMutation)({
7480
+ const { mutate: onResendCode, isPending: isCodeResending } = (0, import_react_query9.useMutation)({
7525
7481
  mutationFn: async () => {
7526
7482
  setAlert(null);
7527
7483
  setIsLoading(true);
@@ -7607,9 +7563,9 @@ var AuthMenu = () => {
7607
7563
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
7608
7564
  const { step, alert: alert2, setStep, setPasskeyStatus, setEmail, setAlert } = useAuthStore();
7609
7565
  const { pendingLoginResponseRef, onAuthSuccess, goBackToSignIn } = useAuthMenuHandlers();
7610
- const [isAlertShowReady, setIsAlertShowReady] = (0, import_react21.useState)(false);
7611
- const readyTimeout = (0, import_react21.useRef)(null);
7612
- (0, import_react21.useEffect)(() => {
7566
+ const [isAlertShowReady, setIsAlertShowReady] = (0, import_react19.useState)(false);
7567
+ const readyTimeout = (0, import_react19.useRef)(null);
7568
+ (0, import_react19.useEffect)(() => {
7613
7569
  if (readyTimeout.current) {
7614
7570
  clearTimeout(readyTimeout.current);
7615
7571
  readyTimeout.current = null;
@@ -7617,7 +7573,7 @@ var AuthMenu = () => {
7617
7573
  setIsAlertShowReady(false);
7618
7574
  readyTimeout.current = setTimeout(() => setIsAlertShowReady(true), 750);
7619
7575
  }, [step]);
7620
- (0, import_react21.useEffect)(() => {
7576
+ (0, import_react19.useEffect)(() => {
7621
7577
  setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT);
7622
7578
  return () => {
7623
7579
  setStep("signin");
@@ -7633,7 +7589,7 @@ var AuthMenu = () => {
7633
7589
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
7634
7590
  ] });
7635
7591
  }
7636
- const stepContent = (0, import_react21.useMemo)(
7592
+ const stepContent = (0, import_react19.useMemo)(
7637
7593
  () => ({
7638
7594
  "failed": /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(AuthFailedStep, {}),
7639
7595
  "verify": /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
@@ -7644,20 +7600,8 @@ var AuthMenu = () => {
7644
7600
  onAuthSuccess
7645
7601
  }
7646
7602
  ),
7647
- "signin": /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
7648
- SignInStep,
7649
- {
7650
- pendingLoginResponseRef,
7651
- onAuthSuccess
7652
- }
7653
- ),
7654
- "signin-passkey": /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
7655
- PassKeyStep,
7656
- {
7657
- pendingLoginResponseRef,
7658
- onAuthSuccess
7659
- }
7660
- )
7603
+ "signin": /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SignInStep, { pendingLoginResponseRef, onAuthSuccess }),
7604
+ "signin-passkey": /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(PassKeyStep, { pendingLoginResponseRef, onAuthSuccess })
7661
7605
  }),
7662
7606
  [onAuthSuccess, goBackToSignIn]
7663
7607
  );
@@ -7786,9 +7730,9 @@ function RampnowIcon() {
7786
7730
  }
7787
7731
 
7788
7732
  // src/internal/components/BuyMenu/binance/Binance.tsx
7789
- var import_react_query11 = require("@tanstack/react-query");
7733
+ var import_react_query10 = require("@tanstack/react-query");
7790
7734
  var import_lucide_react15 = require("lucide-react");
7791
- var import_react23 = require("react");
7735
+ var import_react21 = require("react");
7792
7736
 
7793
7737
  // src/internal/components/BuyMenu/components/PaymentSelector.tsx
7794
7738
  var import_jsx_runtime31 = require("react/jsx-runtime");
@@ -7885,7 +7829,7 @@ async function createPreorderMutation(payload) {
7885
7829
  }
7886
7830
 
7887
7831
  // src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
7888
- var import_react22 = require("react");
7832
+ var import_react20 = require("react");
7889
7833
 
7890
7834
  // src/internal/components/BuyMenu/binance/utils.ts
7891
7835
  function getPayMethodID(pm) {
@@ -7905,7 +7849,7 @@ function handleErrors(errors) {
7905
7849
  // src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
7906
7850
  var useQueriesErrorHandler = (errors, stateUpdater) => {
7907
7851
  const { error: errorTitle, message: errorMessage } = handleErrors(errors);
7908
- (0, import_react22.useEffect)(() => {
7852
+ (0, import_react20.useEffect)(() => {
7909
7853
  if (!errorTitle && !errorMessage) return;
7910
7854
  console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
7911
7855
  stateUpdater(1);
@@ -7930,12 +7874,12 @@ function Binance(props) {
7930
7874
  setMinAmount,
7931
7875
  setSrcInputAmount
7932
7876
  } = control;
7933
- const qc = (0, import_react_query11.useQueryClient)();
7877
+ const qc = (0, import_react_query10.useQueryClient)();
7934
7878
  const {
7935
7879
  data: lumiaNetwork,
7936
7880
  isLoading: isLumiaNetworkLoading,
7937
7881
  error: lumiaNetworkError
7938
- } = (0, import_react_query11.useQuery)({
7882
+ } = (0, import_react_query10.useQuery)({
7939
7883
  retry: false,
7940
7884
  enabled: !!walletAddress,
7941
7885
  queryKey: [QUERY_KEYS3.binanceNetworksQuery, walletAddress],
@@ -7946,27 +7890,27 @@ function Binance(props) {
7946
7890
  data: paymentModes = null,
7947
7891
  isLoading: isPaymentModesLoading,
7948
7892
  error: paymentMethodsError
7949
- } = (0, import_react_query11.useQuery)({
7893
+ } = (0, import_react_query10.useQuery)({
7950
7894
  retry: false,
7951
7895
  enabled: !!isLumiaAvailable && !!walletAddress,
7952
7896
  // && srcQueryAmount > 0,
7953
7897
  queryKey: [QUERY_KEYS3.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
7954
7898
  queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
7955
7899
  });
7956
- const lastLoadedPaymentModes = (0, import_react23.useRef)([]);
7957
- (0, import_react23.useEffect)(() => {
7900
+ const lastLoadedPaymentModes = (0, import_react21.useRef)([]);
7901
+ (0, import_react21.useEffect)(() => {
7958
7902
  if (!paymentModes?.length) return;
7959
7903
  setPaymentMode(getPayMethodID(paymentModes[0]));
7960
7904
  lastLoadedPaymentModes.current = paymentModes;
7961
7905
  }, [paymentModes]);
7962
7906
  const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
7963
7907
  const minimum = Number(selectedPaymentMode?.fiatMinLimit || "0");
7964
- (0, import_react23.useEffect)(() => setMinAmount(minimum), [minimum]);
7908
+ (0, import_react21.useEffect)(() => setMinAmount(minimum), [minimum]);
7965
7909
  const {
7966
7910
  data: quoteData = null,
7967
7911
  isLoading: isQuoteDataLoading,
7968
7912
  error: quoteError
7969
- } = (0, import_react_query11.useQuery)({
7913
+ } = (0, import_react_query10.useQuery)({
7970
7914
  retry: false,
7971
7915
  enabled: !!walletAddress && srcQueryAmount > 0 && minimum > 0 && srcQueryAmount >= minimum,
7972
7916
  queryKey: [QUERY_KEYS3.binanceQuote, walletAddress, selectedPaymentMode, srcQueryAmount],
@@ -7982,7 +7926,7 @@ function Binance(props) {
7982
7926
  [lumiaNetworkError, paymentMethodsError, quoteError],
7983
7927
  setSrcInputAmount
7984
7928
  );
7985
- const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query11.useMutation)({
7929
+ const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query10.useMutation)({
7986
7930
  mutationFn: async () => {
7987
7931
  setRedirecting(true);
7988
7932
  const returnUrl = window.location.href.split("?")[0];
@@ -8006,7 +7950,7 @@ function Binance(props) {
8006
7950
  setRedirecting(false);
8007
7951
  }
8008
7952
  });
8009
- (0, import_react23.useEffect)(() => {
7953
+ (0, import_react21.useEffect)(() => {
8010
7954
  return () => {
8011
7955
  qc.resetQueries({ queryKey: [QUERY_KEYS3.binanceNetworksQuery] });
8012
7956
  qc.resetQueries({ queryKey: [QUERY_KEYS3.binancePaymentModes] });
@@ -8068,9 +8012,9 @@ function Binance(props) {
8068
8012
  }
8069
8013
 
8070
8014
  // src/internal/components/BuyMenu/rampnow/Rampnow.tsx
8071
- var import_react_query12 = require("@tanstack/react-query");
8015
+ var import_react_query11 = require("@tanstack/react-query");
8072
8016
  var import_lucide_react16 = require("lucide-react");
8073
- var import_react24 = require("react");
8017
+ var import_react22 = require("react");
8074
8018
 
8075
8019
  // src/internal/components/BuyMenu/rampnow/api.ts
8076
8020
  init_iframe_manager();
@@ -8134,8 +8078,8 @@ function Rampnow(props) {
8134
8078
  setSrcInputAmount,
8135
8079
  setMinAmount
8136
8080
  } = control;
8137
- const qc = (0, import_react_query12.useQueryClient)();
8138
- (0, import_react24.useEffect)(() => {
8081
+ const qc = (0, import_react_query11.useQueryClient)();
8082
+ (0, import_react22.useEffect)(() => {
8139
8083
  setMinAmount(MINIMUM_RAMP_AMOUNT);
8140
8084
  setPaymentMode(PAYMENT_MODES[0].id);
8141
8085
  }, []);
@@ -8143,7 +8087,7 @@ function Rampnow(props) {
8143
8087
  data: configData,
8144
8088
  isLoading: isConfigLoading,
8145
8089
  error: configError
8146
- } = (0, import_react_query12.useQuery)({
8090
+ } = (0, import_react_query11.useQuery)({
8147
8091
  retry: false,
8148
8092
  enabled: !!walletAddress,
8149
8093
  queryKey: [QUERY_KEYS3.getRampNowConfig, walletAddress],
@@ -8153,7 +8097,7 @@ function Rampnow(props) {
8153
8097
  data: quoteData,
8154
8098
  isLoading: isQuoteDataLoading,
8155
8099
  error: quoteError
8156
- } = (0, import_react_query12.useQuery)({
8100
+ } = (0, import_react_query11.useQuery)({
8157
8101
  retry: false,
8158
8102
  enabled: !!configData && !!walletAddress && !!paymentMode && srcQueryAmount >= MINIMUM_RAMP_AMOUNT,
8159
8103
  queryKey: [QUERY_KEYS3.getRampNowQuote, walletAddress, srcQueryAmount, paymentMode],
@@ -8163,7 +8107,7 @@ function Rampnow(props) {
8163
8107
  paymentMode
8164
8108
  })
8165
8109
  });
8166
- const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query12.useMutation)({
8110
+ const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query11.useMutation)({
8167
8111
  mutationFn: async () => {
8168
8112
  if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
8169
8113
  throw new Error("RampNow order service is not available");
@@ -8192,7 +8136,7 @@ function Rampnow(props) {
8192
8136
  console.error("Create CheckoutOrder failed:", err);
8193
8137
  }
8194
8138
  });
8195
- (0, import_react24.useEffect)(() => {
8139
+ (0, import_react22.useEffect)(() => {
8196
8140
  return () => {
8197
8141
  qc.resetQueries({ queryKey: [QUERY_KEYS3.getRampNowConfig] });
8198
8142
  qc.resetQueries({ queryKey: [QUERY_KEYS3.getRampNowQuote] });
@@ -8274,7 +8218,7 @@ var RAMP_PROVIDERS = {
8274
8218
  var REDIRECT_TIMEOUT_MS = 1500;
8275
8219
 
8276
8220
  // src/internal/components/BuyMenu/useSelectables.ts
8277
- var import_react25 = require("react");
8221
+ var import_react23 = require("react");
8278
8222
 
8279
8223
  // src/internal/utils/debounce.ts
8280
8224
  function debounce2(func, waitFor) {
@@ -8288,14 +8232,14 @@ function debounce2(func, waitFor) {
8288
8232
  // src/internal/components/BuyMenu/useSelectables.ts
8289
8233
  var ON_INPUT_QUERY_DELAY = 2e3;
8290
8234
  var useSelectables = () => {
8291
- const [redirecting, setRedirecting] = (0, import_react25.useState)(false);
8292
- const [rampProvider, setrRampProvider] = (0, import_react25.useState)("binance");
8293
- const [minAmount, setMinAmount] = (0, import_react25.useState)(0);
8294
- const inputRef = (0, import_react25.useRef)(null);
8295
- const [srcQueryAmount, setSrcQueryAmount] = (0, import_react25.useState)(0);
8296
- const [srcInputAmount, setSrcInputAmount] = (0, import_react25.useState)(0);
8297
- const [paymentMode, setPaymentMode] = (0, import_react25.useState)(null);
8298
- const setQueryAmountDebounced = (0, import_react25.useCallback)(
8235
+ const [redirecting, setRedirecting] = (0, import_react23.useState)(false);
8236
+ const [rampProvider, setrRampProvider] = (0, import_react23.useState)("binance");
8237
+ const [minAmount, setMinAmount] = (0, import_react23.useState)(0);
8238
+ const inputRef = (0, import_react23.useRef)(null);
8239
+ const [srcQueryAmount, setSrcQueryAmount] = (0, import_react23.useState)(0);
8240
+ const [srcInputAmount, setSrcInputAmount] = (0, import_react23.useState)(0);
8241
+ const [paymentMode, setPaymentMode] = (0, import_react23.useState)(null);
8242
+ const setQueryAmountDebounced = (0, import_react23.useCallback)(
8299
8243
  debounce2((inputAmount) => {
8300
8244
  const checkedValue = Math.max(inputAmount, minAmount);
8301
8245
  setSrcInputAmount(checkedValue);
@@ -8303,7 +8247,7 @@ var useSelectables = () => {
8303
8247
  }, ON_INPUT_QUERY_DELAY),
8304
8248
  [minAmount]
8305
8249
  );
8306
- (0, import_react25.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
8250
+ (0, import_react23.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
8307
8251
  return {
8308
8252
  inputRef,
8309
8253
  redirecting,
@@ -8365,19 +8309,78 @@ function BuyMenu() {
8365
8309
  }
8366
8310
 
8367
8311
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
8368
- var import_react_query18 = require("@tanstack/react-query");
8312
+ var import_react_query16 = require("@tanstack/react-query");
8369
8313
  var import_lucide_react25 = require("lucide-react");
8370
- var import_react35 = require("react");
8314
+ var import_react32 = require("react");
8371
8315
  init_vaultClient();
8372
8316
 
8317
+ // src/internal/components/ui/switch.tsx
8318
+ var import_react24 = require("react");
8319
+ var import_jsx_runtime36 = require("react/jsx-runtime");
8320
+ var Switch = (0, import_react24.forwardRef)((props, ref) => {
8321
+ const { className, labels, ...inputProps } = props;
8322
+ const colorMode = useLayoutStore((st) => st.colorMode);
8323
+ const [labelW, setLabelW] = (0, import_react24.useState)(0);
8324
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
8325
+ "div",
8326
+ {
8327
+ role: "switch",
8328
+ "aria-checked": inputProps.checked,
8329
+ className: cn(
8330
+ "block rounded-full w-fit h-5 px-[2px] outline-none flex-none",
8331
+ inputProps.checked ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-info)]",
8332
+ className
8333
+ ),
8334
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
8335
+ "label",
8336
+ {
8337
+ className: "relative inline-block h-4 outline-none",
8338
+ style: {
8339
+ width: `calc(16px + ${labelW}px)`,
8340
+ transition: "width 200ms ease",
8341
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
8342
+ },
8343
+ children: [
8344
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("input", { type: "checkbox", className: "hidden sr-only peer outline-none", ref, ...inputProps }),
8345
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
8346
+ "span",
8347
+ {
8348
+ ref: (inst) => {
8349
+ if (inst) setLabelW(inst.clientWidth);
8350
+ },
8351
+ style: {
8352
+ left: inputProps.checked ? "0px" : "16px",
8353
+ color: inputProps.checked ? colorMode === "dark" ? "var(--l-pass-fg-inverted)" : "var(--l-pass-fg)" : "var(--l-pass-fg)",
8354
+ transition: "left 200ms ease"
8355
+ },
8356
+ className: "absolute top-0 px-2 text-[10px] leading-4 font-semibold min-w-4 select-none",
8357
+ children: inputProps.checked ? labels?.checked : labels?.unchecked
8358
+ }
8359
+ ),
8360
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
8361
+ "span",
8362
+ {
8363
+ style: {
8364
+ left: inputProps.checked ? `${labelW}px` : "0px",
8365
+ transition: "left 200ms ease"
8366
+ },
8367
+ className: "absolute top-0 w-4 h-4 rounded-full bg-[var(--l-pass-fg)]"
8368
+ }
8369
+ )
8370
+ ]
8371
+ }
8372
+ )
8373
+ }
8374
+ );
8375
+ });
8376
+ Switch.displayName = "Switch";
8377
+
8373
8378
  // src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
8374
8379
  var import_lucide_react18 = require("lucide-react");
8375
- var import_react30 = require("react");
8380
+ var import_react28 = require("react");
8376
8381
 
8377
- // src/internal/components/KeyshareRestoreMenu/hooks/useCheckBackupAvailability.ts
8378
- var import_react_query13 = require("@tanstack/react-query");
8379
- var import_react26 = require("react");
8380
- init_vaultClient();
8382
+ // src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts
8383
+ var import_react25 = require("react");
8381
8384
 
8382
8385
  // src/internal/components/KeyshareRestoreMenu/hooks/useRestoreStore.ts
8383
8386
  var import_zustand4 = require("zustand");
@@ -8406,54 +8409,14 @@ var useRestoreStore = (0, import_zustand4.create)((set) => ({
8406
8409
  setSuccess: (success) => set({ success })
8407
8410
  }));
8408
8411
 
8409
- // src/internal/components/KeyshareRestoreMenu/hooks/useCheckBackupAvailability.ts
8410
- function useCheckBackupAvailability() {
8411
- const qc = (0, import_react_query13.useQueryClient)();
8412
- const address = useLumiaPassportSession((st) => st.address);
8413
- const { setError, setHasServerBackup, setCheckingBackup } = useRestoreStore();
8414
- const {
8415
- data: serverRecoveryData,
8416
- isLoading: isRecoveryLoading,
8417
- error: recoveryError
8418
- } = (0, import_react_query13.useQuery)({
8419
- retry: false,
8420
- queryKey: [CHECK_BACKUP_QUERY_KEY, address],
8421
- queryFn: async () => await getShareRecoveryStats()
8422
- });
8423
- (0, import_react26.useEffect)(() => {
8424
- qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY] });
8425
- }, [qc]);
8426
- (0, import_react26.useEffect)(() => {
8427
- setCheckingBackup(isRecoveryLoading);
8428
- if (!!isRecoveryLoading) return;
8429
- if (!!recoveryError) {
8430
- console.warn("[KeyshareRestoreMenu] Failed to check backup availability:", recoveryError);
8431
- setError("Failed to check backup availability");
8432
- setHasServerBackup(false);
8433
- setCheckingBackup(false);
8434
- return;
8435
- }
8436
- const hasRecoveryData = serverRecoveryData?.created || serverRecoveryData?.devices?.length > 0;
8437
- setHasServerBackup(!!hasRecoveryData);
8438
- setCheckingBackup(false);
8439
- }, [serverRecoveryData, recoveryError, isRecoveryLoading]);
8440
- return {
8441
- serverRecoveryData,
8442
- isRecoveryLoading,
8443
- recoveryError,
8444
- hasRecoveryData: serverRecoveryData?.created || serverRecoveryData?.devices?.length > 0
8445
- };
8446
- }
8447
-
8448
8412
  // src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts
8449
- var import_react27 = require("react");
8450
8413
  function useOnRestoreSuccess() {
8451
8414
  const { config, callbacks } = useLumiaPassportConfig();
8452
8415
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8453
8416
  const setPage = useLayoutDataStore((st) => st.setPage);
8454
8417
  const { usePaymaster, recoveryUserId, setRecoveryUserId, setSession, setAddress, setStatus } = useLumiaPassportSession();
8455
8418
  const { setError, setSuccess } = useRestoreStore();
8456
- const createSessionWithKeyshare = (0, import_react27.useCallback)(
8419
+ const createSessionWithKeyshare = (0, import_react25.useCallback)(
8457
8420
  async (userId, hasServerKeyshare, isNewUser) => {
8458
8421
  try {
8459
8422
  try {
@@ -8487,21 +8450,16 @@ function useOnRestoreSuccess() {
8487
8450
  },
8488
8451
  [setStatus, callbacks, usePaymaster]
8489
8452
  );
8490
- const onRestoreSuccess = (0, import_react27.useCallback)(async () => {
8453
+ const onRestoreSuccess = (0, import_react25.useCallback)(async () => {
8491
8454
  const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
8492
8455
  const verify = await verifyToken2();
8493
8456
  const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
8494
8457
  if (recoveryUserId) {
8495
8458
  try {
8496
8459
  const { session: sess, address: addr } = await createSessionWithKeyshare(recoveryUserId, hasServerKeyshare);
8497
- setSession(sess);
8498
- setAddress(addr);
8499
- setStatus("ready");
8500
8460
  setRecoveryUserId(null);
8501
8461
  setSuccess(null);
8502
8462
  setError(null);
8503
- setIsDialogForced(false);
8504
- setPage("main-menu" /* MAIN_MENU */);
8505
8463
  try {
8506
8464
  callbacks?.onLumiaPassportConnect?.({
8507
8465
  address: addr,
@@ -8533,11 +8491,17 @@ function useOnRestoreSuccess() {
8533
8491
  } catch (e) {
8534
8492
  console.warn("[UI-KIT] Failed to update backup status:", e);
8535
8493
  }
8494
+ setSession(sess);
8495
+ setAddress(addr);
8496
+ setStatus("ready");
8497
+ setPage("main-menu" /* MAIN_MENU */);
8498
+ setTimeout(() => {
8499
+ setIsDialogForced(false);
8500
+ }, 375);
8536
8501
  } catch (err) {
8537
8502
  setSuccess(null);
8538
8503
  setError(err?.message || String(err));
8539
8504
  setStatus("error");
8540
- setIsDialogForced(false);
8541
8505
  }
8542
8506
  }
8543
8507
  }, [
@@ -8555,17 +8519,17 @@ function useOnRestoreSuccess() {
8555
8519
  }
8556
8520
 
8557
8521
  // src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts
8558
- var import_react_query14 = require("@tanstack/react-query");
8559
- var import_react28 = require("react");
8522
+ var import_react_query12 = require("@tanstack/react-query");
8523
+ var import_react26 = require("react");
8560
8524
  init_iframe_manager();
8561
8525
  function useCreateBackup() {
8562
- const qc = (0, import_react_query14.useQueryClient)();
8526
+ const qc = (0, import_react_query12.useQueryClient)();
8563
8527
  const session = useLumiaPassportSession((st) => st.session);
8564
8528
  const address = useLumiaPassportSession((st) => st.address);
8565
8529
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8566
8530
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8567
8531
  const { usePasskey, restorePassword, selectedCloudProvider, setSuccess, setError, setMethod } = useRestoreStore();
8568
- (0, import_react28.useEffect)(() => {
8532
+ (0, import_react26.useEffect)(() => {
8569
8533
  if (!hasServerVault) {
8570
8534
  setMethod("server");
8571
8535
  setIsDialogForced(true);
@@ -8573,7 +8537,7 @@ function useCreateBackup() {
8573
8537
  }, [hasServerVault, setIsDialogForced, setMethod]);
8574
8538
  const passportUserId = session?.mpcUserId || "";
8575
8539
  const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
8576
- const { mutate: createPasswordBackup, isPending: isPasswordBackupCreating } = (0, import_react_query14.useMutation)({
8540
+ const { mutate: createPasswordBackup, isPending: isPasswordBackupCreating } = (0, import_react_query12.useMutation)({
8577
8541
  mutationFn: async () => {
8578
8542
  const iframeManager = getIframeManager();
8579
8543
  if (!iframeManager) {
@@ -8583,20 +8547,25 @@ function useCreateBackup() {
8583
8547
  if (!usePasskey && !restorePassword) {
8584
8548
  throw new Error("Please provide a password for the backup");
8585
8549
  }
8586
- return await iframeManager.createBackup(
8587
- passportUserId,
8588
- { method: "server", password: restorePassword },
8589
- jwt.accessToken
8590
- );
8550
+ const navigateToMainMenu = jwt.isNewUser || !hasServerVault;
8551
+ console.log("[BACKUP STATUS] is new user:", jwt.isNewUser, !hasServerVault);
8552
+ return {
8553
+ response: await iframeManager.createBackup(
8554
+ passportUserId,
8555
+ { method: "server", password: restorePassword },
8556
+ jwt.accessToken
8557
+ ),
8558
+ navigateToMainMenu
8559
+ };
8591
8560
  },
8592
- onSuccess: async (response) => {
8561
+ onSuccess: async ({ response, navigateToMainMenu }) => {
8593
8562
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8594
8563
  if (response.success) {
8595
8564
  setSuccess("Successfully created server backup");
8596
8565
  if (typeof window !== "undefined") {
8597
8566
  window.dispatchEvent(
8598
8567
  new CustomEvent("lumia-passport-backup-status-changed", {
8599
- detail: { method: "server", success: true }
8568
+ detail: { method: "server", success: true, navigateToMainMenu }
8600
8569
  })
8601
8570
  );
8602
8571
  }
@@ -8604,13 +8573,14 @@ function useCreateBackup() {
8604
8573
  } else {
8605
8574
  setError(response.error || "Server backup failed");
8606
8575
  }
8576
+ setIsDialogForced(false);
8607
8577
  },
8608
8578
  onError: async (error) => {
8609
8579
  setError(error?.message || "Backup creation failed");
8610
8580
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8611
8581
  }
8612
8582
  });
8613
- const { mutate: createLocalBackup, isPending: isLocalBackupCreating } = (0, import_react_query14.useMutation)({
8583
+ const { mutate: createLocalBackup, isPending: isLocalBackupCreating } = (0, import_react_query12.useMutation)({
8614
8584
  mutationFn: async () => {
8615
8585
  const iframeManager = getIframeManager();
8616
8586
  if (!usePasskey && !restorePassword) {
@@ -8644,7 +8614,7 @@ function useCreateBackup() {
8644
8614
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8645
8615
  }
8646
8616
  });
8647
- const { mutate: createCloudBackup, isPending: isCloudBackupCreating } = (0, import_react_query14.useMutation)({
8617
+ const { mutate: createCloudBackup, isPending: isCloudBackupCreating } = (0, import_react_query12.useMutation)({
8648
8618
  mutationFn: async () => {
8649
8619
  const iframeManager = getIframeManager();
8650
8620
  const encryptedData = await iframeManager.encryptBackupData(passportUserId);
@@ -8695,7 +8665,7 @@ function useCreateBackup() {
8695
8665
  }
8696
8666
 
8697
8667
  // src/internal/components/KeyshareRestoreMenu/hooks/useRestoreAccount.ts
8698
- var import_react_query15 = require("@tanstack/react-query");
8668
+ var import_react_query13 = require("@tanstack/react-query");
8699
8669
  function useRestoreAccount() {
8700
8670
  const recoveryUserId = useLumiaPassportSession((st) => st.recoveryUserId);
8701
8671
  const {
@@ -8709,7 +8679,7 @@ function useRestoreAccount() {
8709
8679
  setRestoreFile
8710
8680
  } = useRestoreStore();
8711
8681
  const { onRestoreSuccess } = useOnRestoreSuccess();
8712
- const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0, import_react_query15.useMutation)({
8682
+ const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0, import_react_query13.useMutation)({
8713
8683
  mutationFn: async () => {
8714
8684
  setError(null);
8715
8685
  setSuccess(null);
@@ -8739,18 +8709,16 @@ function useRestoreAccount() {
8739
8709
  onRestoreSuccess();
8740
8710
  } else {
8741
8711
  console.error("[KeyshareRestoreMenu] Server restore failed:", response.error);
8742
- setMethod(null);
8743
8712
  setError(response.error || "Server restore failed");
8744
8713
  }
8745
8714
  },
8746
8715
  onError: async (err) => {
8747
8716
  console.error("[KeyshareRestoreMenu] Server restore exception:", err);
8748
8717
  const errorMsg = err instanceof Error ? err.message : "Server restore failed";
8749
- setMethod(null);
8750
8718
  setError(errorMsg);
8751
8719
  }
8752
8720
  });
8753
- const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0, import_react_query15.useMutation)({
8721
+ const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0, import_react_query13.useMutation)({
8754
8722
  mutationFn: async () => {
8755
8723
  if (!restoreFile) {
8756
8724
  throw new Error("Please select a backup file");
@@ -8776,17 +8744,15 @@ function useRestoreAccount() {
8776
8744
  setMethod(null);
8777
8745
  onRestoreSuccess();
8778
8746
  } else {
8779
- setMethod(null);
8780
8747
  setError(response.error || "File restore failed");
8781
8748
  }
8782
8749
  },
8783
8750
  onError: async (err) => {
8784
8751
  const errorMsg = err instanceof Error ? err.message : "Restore failed";
8785
- setMethod(null);
8786
8752
  setError(errorMsg);
8787
8753
  }
8788
8754
  });
8789
- const { mutate: restoreFromCloud, isPending: isRestoringFromCloud } = (0, import_react_query15.useMutation)({
8755
+ const { mutate: restoreFromCloud, isPending: isRestoringFromCloud } = (0, import_react_query13.useMutation)({
8790
8756
  mutationFn: async () => {
8791
8757
  alert("Cloud restore not implemented yet");
8792
8758
  return null;
@@ -8807,7 +8773,7 @@ function useRestoreAccount() {
8807
8773
  }
8808
8774
 
8809
8775
  // src/internal/components/KeyshareRestoreMenu/hooks/useValidateFileBackup.ts
8810
- var import_react29 = require("react");
8776
+ var import_react27 = require("react");
8811
8777
  function validateRestoreFileFormat(parsedData) {
8812
8778
  if (typeof parsedData !== "object" || parsedData === null) return false;
8813
8779
  const data = parsedData;
@@ -8817,7 +8783,7 @@ function useValidateFileBackup() {
8817
8783
  const restoreFile = useRestoreStore((st) => st.restoreFile);
8818
8784
  const setError = useRestoreStore((st) => st.setError);
8819
8785
  const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
8820
- (0, import_react29.useEffect)(() => {
8786
+ (0, import_react27.useEffect)(() => {
8821
8787
  if (!restoreFile) {
8822
8788
  return;
8823
8789
  }
@@ -8840,9 +8806,9 @@ function useValidateFileBackup() {
8840
8806
  }
8841
8807
 
8842
8808
  // src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
8843
- var import_jsx_runtime36 = require("react/jsx-runtime");
8809
+ var import_jsx_runtime37 = require("react/jsx-runtime");
8844
8810
  var getRecoveryRenderMethods = (mode) => [
8845
- { method: "server", label: "Password", Icon: OtpIcon },
8811
+ // { method: 'server', label: 'Password', Icon: OtpIcon },
8846
8812
  { method: "file", label: "Local File", Icon: mode === "restore" ? import_lucide_react18.FileUp : import_lucide_react18.FileDown },
8847
8813
  { method: "cloud", label: "Cloud", Icon: import_lucide_react18.Cloud, disabled: true }
8848
8814
  ];
@@ -8857,7 +8823,7 @@ function MethodSelector(props) {
8857
8823
  setError,
8858
8824
  setSuccess
8859
8825
  } = useRestoreStore();
8860
- const recoveryRenderMethods = (0, import_react30.useMemo)(() => {
8826
+ const recoveryRenderMethods = (0, import_react28.useMemo)(() => {
8861
8827
  const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
8862
8828
  let data = null;
8863
8829
  switch (true) {
@@ -8872,42 +8838,39 @@ function MethodSelector(props) {
8872
8838
  return methodsWithBackupData;
8873
8839
  }, [mode, serverRecoveryStatus]);
8874
8840
  if (!!selectedRecoveryMethod) return null;
8875
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react30.Fragment, { children: [
8876
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "block w-full text-xs font-semibold text-center leading-8 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "leading-8", children: mode === "restore" ? "Choose restore method" : "Create or Update Backup via" }) }),
8877
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
8878
- "div",
8879
- {
8880
- style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
8881
- className: "w-full grid gap-[var(--l-pass-gap)]",
8882
- children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon: Icon2, data, disabled }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full h-full flex flex-col items-center gap-[var(--l-pass-gap)]", children: [
8883
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
8884
- Button,
8885
- {
8886
- size: "icon",
8887
- variant: "outline",
8888
- type: "button",
8889
- disabled,
8890
- style: { height: "unset", maxWidth: "96px" },
8891
- className: "relative w-full aspect-square h-unset rounded-[var(--l-pass-el-bdrs)]",
8892
- onClick: () => {
8893
- setRestorePassword("");
8894
- setRestoreFile(null);
8895
- setShowPassword(false);
8896
- setError(null);
8897
- setSuccess(null);
8898
- setMethod(recoveryMethod);
8899
- },
8900
- children: [
8901
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon2, { className: "w-5 h-5 md:w-8 md:h-8" }),
8902
- !!data?.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "w-6 h-6 absolute -top-2 -right-2 flex items-center justify-center bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(PositiveIcon, { className: "w-4 h-4" }) })
8903
- ]
8904
- }
8905
- ),
8906
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-xs font-bold leading-4", children: label })
8907
- ] }, recoveryMethod))
8908
- }
8909
- )
8910
- ] });
8841
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react28.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8842
+ "div",
8843
+ {
8844
+ style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
8845
+ className: "w-full max-w-[256px] grid gap-[var(--l-pass-gap)] mx-auto py-[var(--l-pass-pd)]",
8846
+ children: recoveryRenderMethods.map(({ method: recoveryMethod, label, Icon: Icon2, data, disabled }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full h-full flex flex-col items-center gap-[var(--l-pass-gap)]", children: [
8847
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8848
+ Button,
8849
+ {
8850
+ size: "icon",
8851
+ variant: "outline",
8852
+ type: "button",
8853
+ disabled,
8854
+ style: { height: "unset", maxWidth: "96px" },
8855
+ className: "relative w-full aspect-square h-unset rounded-[var(--l-pass-el-bdrs)]",
8856
+ onClick: () => {
8857
+ setRestorePassword("");
8858
+ setRestoreFile(null);
8859
+ setShowPassword(false);
8860
+ setError(null);
8861
+ setSuccess(null);
8862
+ setMethod(recoveryMethod);
8863
+ },
8864
+ children: [
8865
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon2, { className: "w-5 h-5 md:w-8 md:h-8" }),
8866
+ !!data?.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-6 h-6 absolute -top-2 -right-2 flex items-center justify-center bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(PositiveIcon, { className: "w-4 h-4" }) })
8867
+ ]
8868
+ }
8869
+ ),
8870
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-xs font-bold leading-4", children: label })
8871
+ ] }, recoveryMethod))
8872
+ }
8873
+ ) });
8911
8874
  }
8912
8875
 
8913
8876
  // src/internal/components/KeyshareRestoreMenu/components/NoBackupFound.tsx
@@ -8915,8 +8878,8 @@ var import_lucide_react20 = require("lucide-react");
8915
8878
 
8916
8879
  // src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx
8917
8880
  var import_lucide_react19 = require("lucide-react");
8918
- var import_react31 = require("react");
8919
- var import_jsx_runtime37 = require("react/jsx-runtime");
8881
+ var import_react29 = require("react");
8882
+ var import_jsx_runtime38 = require("react/jsx-runtime");
8920
8883
  function PasswordPasskey(props) {
8921
8884
  const {
8922
8885
  mode = "restore",
@@ -8928,16 +8891,63 @@ function PasswordPasskey(props) {
8928
8891
  actionHandler
8929
8892
  } = props;
8930
8893
  const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
8931
- const actionRef = (0, import_react31.useRef)(null);
8932
- const { showPassword, restorePassword, usePasskey, error, setRestorePassword, setShowPassword } = useRestoreStore();
8933
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8934
- !hasServerVault && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "block w-full text-[10px] leading-4 px-[var(--l-pass-pd)] truncate", children: [
8894
+ const actionRef = (0, import_react29.useRef)(null);
8895
+ const {
8896
+ showPassword,
8897
+ restorePassword,
8898
+ usePasskey,
8899
+ error,
8900
+ setRestorePassword,
8901
+ setShowPassword,
8902
+ setUsePasskey,
8903
+ setRestoreFile
8904
+ } = useRestoreStore();
8905
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8906
+ mode === "backup" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center justify-center px-[var(--l-pass-pd)]", children: [
8907
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8908
+ Button,
8909
+ {
8910
+ size: "medium",
8911
+ variant: "ghost",
8912
+ onClick: () => {
8913
+ setUsePasskey(false);
8914
+ setRestoreFile(null);
8915
+ setRestorePassword("");
8916
+ },
8917
+ className: cn(usePasskey ? "opacity-50" : "opacity-100"),
8918
+ children: [
8919
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(OtpIcon, { className: "w-4 h-4 inline-block mr-1" }),
8920
+ "Password"
8921
+ ]
8922
+ }
8923
+ ),
8924
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8925
+ Button,
8926
+ {
8927
+ size: "medium",
8928
+ variant: "ghost",
8929
+ onClick: () => {
8930
+ setUsePasskey(true);
8931
+ setRestoreFile(null);
8932
+ setRestorePassword("");
8933
+ },
8934
+ className: cn(usePasskey ? "opacity-100" : "opacity-50"),
8935
+ children: [
8936
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.Key, { className: "w-4 h-4 inline-block mr-1" }),
8937
+ "Passkey"
8938
+ ]
8939
+ }
8940
+ )
8941
+ ] }),
8942
+ !hasServerVault && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "block w-full text-[10px] leading-8 px-[var(--l-pass-pd)] truncate", children: [
8935
8943
  "Use your ",
8936
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("strong", { children: usePasskey ? "Passkey" : "Password" }),
8937
- " to complete account security setup."
8944
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("strong", { children: usePasskey ? "Passkey" : "Password" }),
8945
+ " to",
8946
+ " ",
8947
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: mode === "backup" ? "complete account security setup." : "get access to your account." })
8938
8948
  ] }),
8939
- !usePasskey ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
8940
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8949
+ !usePasskey ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full flex gap-[var(--l-pass-gap)]", children: [
8950
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8941
8951
  Input,
8942
8952
  {
8943
8953
  autoComplete: "off",
@@ -8953,7 +8963,7 @@ function PasswordPasskey(props) {
8953
8963
  onKeyDown: (e) => {
8954
8964
  if (e.key === "Enter" && !isLoading && restorePassword) actionRef.current?.click();
8955
8965
  },
8956
- element: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8966
+ element: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8957
8967
  Button,
8958
8968
  {
8959
8969
  variant: "ghost",
@@ -8962,12 +8972,12 @@ function PasswordPasskey(props) {
8962
8972
  title: "Toggle Password Visibility",
8963
8973
  disabled: isLoading || disabled,
8964
8974
  onClick: () => setShowPassword(!showPassword),
8965
- children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react19.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react19.Eye, { className: "h-4 w-4" })
8975
+ children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.Eye, { className: "h-4 w-4" })
8966
8976
  }
8967
8977
  )
8968
8978
  }
8969
8979
  ),
8970
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8980
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8971
8981
  Button,
8972
8982
  {
8973
8983
  ref: actionRef,
@@ -8977,10 +8987,10 @@ function PasswordPasskey(props) {
8977
8987
  title: actionCaption,
8978
8988
  disabled: isLoading || disabled || error?.includes("Invalid backup file") || !usePasskey && !restorePassword,
8979
8989
  className: "w-full w-12 h-12 flex-shrink-0 rounded-[var(--l-pass-el-bdrs)]",
8980
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react19.ChevronRight, { className: "h-4 w-4" })
8990
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.ChevronRight, { className: "h-4 w-4" })
8981
8991
  }
8982
8992
  )
8983
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8993
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8984
8994
  Button,
8985
8995
  {
8986
8996
  ref: actionRef,
@@ -8991,18 +9001,18 @@ function PasswordPasskey(props) {
8991
9001
  disabled: isLoading || disabled || !!error || !usePasskey && !restorePassword,
8992
9002
  className: "w-full",
8993
9003
  children: [
8994
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ActionIcon, { className: "h-4 w-4" }),
8995
- !isLoading && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: actionCaption })
9004
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.Loader, { className: "animate-spin h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ActionIcon, { className: "h-4 w-4" }),
9005
+ !isLoading && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: actionCaption })
8996
9006
  ]
8997
9007
  }
8998
9008
  ),
8999
- !isEncryptionMethod && !!usePasskey && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-[10px]", children: mode === "backup" && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex gap-[var(--l-pass-gap)]", children: [
9000
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react19.Info, { className: "h-4 w-4 flex-shrink-0" }),
9001
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "text-[var(--l-pass-fg-muted)] block flex-1", children: [
9002
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("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." }),
9003
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "block", children: [
9009
+ !isEncryptionMethod && !!usePasskey && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Highlight, { type: "info", className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-[10px]", children: mode === "backup" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex gap-[var(--l-pass-gap)]", children: [
9010
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react19.Info, { className: "h-4 w-4 flex-shrink-0" }),
9011
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "text-[var(--l-pass-fg-muted)] block flex-1", children: [
9012
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("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." }),
9013
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "block", children: [
9004
9014
  " Passkeys are a password-free alternative. ",
9005
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9015
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9006
9016
  "a",
9007
9017
  {
9008
9018
  target: "_blank",
@@ -9019,7 +9029,7 @@ function PasswordPasskey(props) {
9019
9029
  }
9020
9030
 
9021
9031
  // src/internal/components/KeyshareRestoreMenu/components/NoBackupFound.tsx
9022
- var import_jsx_runtime38 = require("react/jsx-runtime");
9032
+ var import_jsx_runtime39 = require("react/jsx-runtime");
9023
9033
  function NoBackupFound(props) {
9024
9034
  const { isLoading, restoreFromFile } = props;
9025
9035
  const restoreFile = useRestoreStore((st) => st.restoreFile);
@@ -9028,33 +9038,33 @@ function NoBackupFound(props) {
9028
9038
  const setRestoreFile = useRestoreStore((st) => st.setRestoreFile);
9029
9039
  const setError = useRestoreStore((st) => st.setError);
9030
9040
  useValidateFileBackup();
9031
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
9032
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
9033
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react20.User, { className: "w-6 h-6" }),
9034
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "font-bold text-xl leading-6", children: "Account Recovery" })
9041
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
9042
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
9043
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.User, { className: "w-6 h-6" }),
9044
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "font-bold text-xl leading-6", children: "Account Recovery" })
9035
9045
  ] }),
9036
- !restoreFile && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
9037
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react20.AlertCircle, { className: "h-4 w-4 flex-0" }),
9038
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
9039
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "block w-full text-sm leading-4 font-bold", children: "No Backup Found" }),
9040
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "block w-full text-xs", children: [
9041
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "block mb-1", children: "This device doesn't have access to your wallet keyshare, and no backup was found." }),
9042
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("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." })
9046
+ !restoreFile && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Highlight, { type: "warning", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
9047
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.AlertCircle, { className: "h-4 w-4 flex-0" }),
9048
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
9049
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "block w-full text-sm leading-4 font-bold", children: "No Backup Found" }),
9050
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "block w-full text-xs", children: [
9051
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "block mb-1", children: "This device doesn't have access to your wallet keyshare, and no backup was found." }),
9052
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("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." })
9043
9053
  ] })
9044
9054
  ] })
9045
9055
  ] }),
9046
- !restoreFile && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Highlight, { type: "info", className: "flex gap-[var(--l-pass-gap)]", children: [
9047
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react20.Upload, { className: "h-4 w-4 flex-0" }),
9048
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "block w-full text-xs", children: "Upload a backup file if you have one" })
9056
+ !restoreFile && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Highlight, { type: "info", className: "flex gap-[var(--l-pass-gap)]", children: [
9057
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.Upload, { className: "h-4 w-4 flex-0" }),
9058
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "block w-full text-xs", children: "Upload a backup file if you have one" })
9049
9059
  ] }),
9050
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9060
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9051
9061
  "label",
9052
9062
  {
9053
9063
  className: cn(
9054
9064
  "block w-full flex items-center justify-center cursor-pointer",
9055
9065
  "p-[var(--l-pass-gap)] bg-[var(--l-pass-secondary)] rounded-[var(--l-pass-el-bdrs)]"
9056
9066
  ),
9057
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9067
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9058
9068
  "input",
9059
9069
  {
9060
9070
  type: "file",
@@ -9075,7 +9085,7 @@ function NoBackupFound(props) {
9075
9085
  )
9076
9086
  }
9077
9087
  ),
9078
- restoreFile && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9088
+ restoreFile && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9079
9089
  PasswordPasskey,
9080
9090
  {
9081
9091
  mode: "restore",
@@ -9091,124 +9101,15 @@ function NoBackupFound(props) {
9091
9101
 
9092
9102
  // src/internal/components/KeyshareRestoreMenu/methods/File.tsx
9093
9103
  var import_lucide_react21 = require("lucide-react");
9094
-
9095
- // src/internal/components/ui/switch.tsx
9096
- var import_react32 = require("react");
9097
- var import_jsx_runtime39 = require("react/jsx-runtime");
9098
- var Switch = (0, import_react32.forwardRef)((props, ref) => {
9099
- const { className, labels, ...inputProps } = props;
9100
- const colorMode = useLayoutStore((st) => st.colorMode);
9101
- const [labelW, setLabelW] = (0, import_react32.useState)(0);
9102
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9103
- "div",
9104
- {
9105
- role: "switch",
9106
- "aria-checked": inputProps.checked,
9107
- className: cn(
9108
- "block rounded-full w-fit h-7 p-1 outline-none flex-none",
9109
- inputProps.checked ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-info)]",
9110
- className
9111
- ),
9112
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
9113
- "label",
9114
- {
9115
- className: "relative inline-block h-5 outline-none",
9116
- style: {
9117
- width: `calc(20px + ${labelW}px)`,
9118
- transition: "width 200ms ease",
9119
- cursor: inputProps.disabled ? "not-allowed" : "pointer"
9120
- },
9121
- children: [
9122
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("input", { type: "checkbox", className: "hidden sr-only peer outline-none", ref, ...inputProps }),
9123
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9124
- "span",
9125
- {
9126
- ref: (inst) => {
9127
- if (inst) setLabelW(inst.clientWidth);
9128
- },
9129
- style: {
9130
- left: inputProps.checked ? "0px" : "20px",
9131
- color: inputProps.checked ? colorMode === "dark" ? "var(--l-pass-fg-inverted)" : "var(--l-pass-fg)" : "var(--l-pass-fg)",
9132
- transition: "left 200ms ease"
9133
- },
9134
- className: "absolute top-0 px-2 text-xs leading-5 font-semibold min-w-5 select-none",
9135
- children: inputProps.checked ? labels?.checked : labels?.unchecked
9136
- }
9137
- ),
9138
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9139
- "span",
9140
- {
9141
- style: {
9142
- left: inputProps.checked ? `${labelW}px` : "0px",
9143
- transition: "left 200ms ease"
9144
- },
9145
- className: cn("absolute top-0 w-5 h-5 rounded-full bg-[var(--l-pass-fg)]", {
9146
- // 'bg-[var(--l-pass-fg-inverted)]': inputProps.checked,
9147
- // 'bg-[var(--l-pass-fg)]': !inputProps.checked
9148
- })
9149
- }
9150
- )
9151
- ]
9152
- }
9153
- )
9154
- }
9155
- );
9156
- });
9157
- Switch.displayName = "Switch";
9158
-
9159
- // src/internal/components/KeyshareRestoreMenu/methods/File.tsx
9160
9104
  var import_jsx_runtime40 = require("react/jsx-runtime");
9161
9105
  function File2(props) {
9162
9106
  const { isLoading, mode = "restore", fileHandler } = props;
9163
- const {
9164
- restoreFile,
9165
- error,
9166
- usePasskey,
9167
- setRestorePassword,
9168
- setMethod,
9169
- setRestoreFile,
9170
- setUsePasskey,
9171
- setError,
9172
- setSuccess
9173
- } = useRestoreStore();
9107
+ const { restoreFile, error, setRestoreFile, setError } = useRestoreStore();
9174
9108
  useValidateFileBackup();
9175
9109
  const actionText = mode === "backup" ? "Download" : "Restore with";
9176
9110
  const isPasswordPasskey = mode === "restore" && !!restoreFile || mode === "backup";
9177
9111
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
9178
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center justify-between", children: [
9179
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9180
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
9181
- Button,
9182
- {
9183
- variant: "ghost",
9184
- size: "icon",
9185
- title: "Back",
9186
- onClick: () => {
9187
- setRestoreFile(null);
9188
- setError(null);
9189
- setSuccess(null);
9190
- setUsePasskey(false);
9191
- setMethod(null);
9192
- },
9193
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react21.ArrowLeft, { className: "h-4 w-4" })
9194
- }
9195
- ),
9196
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-xl font-semibold", children: `${mode === "restore" ? "Restore with" : ""} File ${mode === "restore" ? "by" : "Backup by"}`.trim() })
9197
- ] }),
9198
- mode !== "restore" && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
9199
- Switch,
9200
- {
9201
- name: "password-passkey-toggle",
9202
- labels: { checked: "Password", unchecked: "Passkey" },
9203
- disabled: isLoading || !!error,
9204
- checked: !usePasskey,
9205
- onChange: (e) => {
9206
- if (!!e.target.checked) setRestorePassword("");
9207
- setUsePasskey(!e.target.checked);
9208
- }
9209
- }
9210
- )
9211
- ] }),
9112
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("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() }),
9212
9113
  mode === "restore" && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
9213
9114
  "label",
9214
9115
  {
@@ -9252,61 +9153,23 @@ function File2(props) {
9252
9153
  }
9253
9154
 
9254
9155
  // src/internal/components/KeyshareRestoreMenu/methods/Server.tsx
9255
- var import_react_query16 = require("@tanstack/react-query");
9156
+ var import_react_query14 = require("@tanstack/react-query");
9256
9157
  var import_dayjs = __toESM(require("dayjs"), 1);
9257
9158
  var import_lucide_react22 = require("lucide-react");
9258
- var import_react33 = require("react");
9159
+ var import_react30 = require("react");
9259
9160
  var import_jsx_runtime41 = require("react/jsx-runtime");
9260
9161
  function Server(props) {
9261
9162
  const { isLoading, mode = "restore", serverHandler } = props;
9262
- const qc = (0, import_react_query16.useQueryClient)();
9163
+ const qc = (0, import_react_query14.useQueryClient)();
9263
9164
  const address = useLumiaPassportSession((st) => st.address);
9264
- const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
9265
- const { usePasskey, error, setUsePasskey, setRestorePassword, setShowPassword, setMethod, setError, setSuccess } = useRestoreStore();
9165
+ const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
9266
9166
  const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
9267
- (0, import_react33.useEffect)(() => {
9167
+ (0, import_react30.useEffect)(() => {
9268
9168
  if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
9269
9169
  setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
9270
9170
  }, [mode, serverRecoveryStatus, setUsePasskey]);
9271
9171
  const isEncryptionMethod = mode === "restore" && !!serverRecoveryStatus?.created?.encryptionMethod;
9272
9172
  return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
9273
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: cn("flex items-center justify-between", { "px-[var(--l-pass-pd)]": !hasServerVault }), children: [
9274
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9275
- !!hasServerVault && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
9276
- Button,
9277
- {
9278
- variant: "ghost",
9279
- size: "icon",
9280
- title: "Back",
9281
- onClick: () => {
9282
- setShowPassword(false);
9283
- setUsePasskey(false);
9284
- setRestorePassword("");
9285
- setUsePasskey(false);
9286
- setError(null);
9287
- setSuccess(null);
9288
- setMethod(null);
9289
- },
9290
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react22.ArrowLeft, { className: "h-4 w-4" })
9291
- }
9292
- ),
9293
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-xl font-semibold", children: mode === "restore" ? "Restore with" : usePasskey ? "Passkey" : "Password" })
9294
- ] }),
9295
- !isEncryptionMethod && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
9296
- Switch,
9297
- {
9298
- name: "password-passkey-toggle",
9299
- labels: { checked: "Password", unchecked: "Passkey" },
9300
- disabled: isLoading,
9301
- checked: !usePasskey,
9302
- onChange: (e) => {
9303
- if (!!error) setError(null);
9304
- if (!!e.target.checked) setRestorePassword("");
9305
- setUsePasskey(!e.target.checked);
9306
- }
9307
- }
9308
- )
9309
- ] }),
9310
9173
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
9311
9174
  PasswordPasskey,
9312
9175
  {
@@ -9333,9 +9196,9 @@ function Server(props) {
9333
9196
  }
9334
9197
 
9335
9198
  // src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx
9336
- var import_react_query17 = require("@tanstack/react-query");
9199
+ var import_react_query15 = require("@tanstack/react-query");
9337
9200
  var import_lucide_react24 = require("lucide-react");
9338
- var import_react34 = require("react");
9201
+ var import_react31 = require("react");
9339
9202
 
9340
9203
  // src/internal/components/ui/select.tsx
9341
9204
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
@@ -9473,7 +9336,7 @@ function Cloud2(props) {
9473
9336
  data: cloudProviders = [],
9474
9337
  isLoading: isCloudProvidersLoading,
9475
9338
  error: cloudProvidersError
9476
- } = (0, import_react_query17.useQuery)({
9339
+ } = (0, import_react_query15.useQuery)({
9477
9340
  retry: false,
9478
9341
  enabled: !!passportUserId,
9479
9342
  queryKey: [AVAILABLE_CLOUD_PROVIDERS_QUERY_KEY, passportUserId],
@@ -9483,7 +9346,7 @@ function Cloud2(props) {
9483
9346
  return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
9484
9347
  }
9485
9348
  });
9486
- (0, import_react34.useEffect)(() => {
9349
+ (0, import_react31.useEffect)(() => {
9487
9350
  if (isCloudProvidersLoading) return;
9488
9351
  if (!!cloudProvidersError) {
9489
9352
  console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
@@ -9556,23 +9419,14 @@ var RESTORE_COMPONENTS = {
9556
9419
  file: File2
9557
9420
  };
9558
9421
  var KeyshareRestoreMenu = () => {
9559
- const qc = (0, import_react_query18.useQueryClient)();
9422
+ const qc = (0, import_react_query16.useQueryClient)();
9560
9423
  const callbacks = useLumiaPassportConfig().callbacks;
9561
9424
  const { address, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
9562
- const { data: serverRecoveryStatus, isLoading: isBackupStatusLoading } = (0, import_react_query18.useQuery)({
9563
- retry: false,
9564
- queryKey: [CHECK_BACKUP_QUERY_KEY, address],
9565
- queryFn: async () => await getShareRecoveryStats()
9566
- });
9567
9425
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
9568
9426
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
9569
9427
  const setPage = useLayoutDataStore((st) => st.setPage);
9570
- (0, import_react35.useEffect)(() => setIsDialogForced(true), []);
9571
- useCheckBackupAvailability();
9572
9428
  const {
9573
9429
  method: currentRestoreMethod,
9574
- checkingBackup,
9575
- hasServerBackup,
9576
9430
  error,
9577
9431
  success,
9578
9432
  setError,
@@ -9583,6 +9437,16 @@ var KeyshareRestoreMenu = () => {
9583
9437
  setSuccess,
9584
9438
  setMethod
9585
9439
  } = useRestoreStore();
9440
+ (0, import_react32.useEffect)(() => {
9441
+ setIsDialogForced(true);
9442
+ return () => {
9443
+ setRestoreFile(null);
9444
+ setShowPassword(false);
9445
+ setUsePasskey(false);
9446
+ setMethod(null);
9447
+ setIsDialogForced(false);
9448
+ };
9449
+ }, []);
9586
9450
  const {
9587
9451
  restoreFromServer: restoreFromServer2,
9588
9452
  isRestoringFromServer,
@@ -9591,7 +9455,16 @@ var KeyshareRestoreMenu = () => {
9591
9455
  restoreFromCloud,
9592
9456
  isRestoringFromCloud
9593
9457
  } = useRestoreAccount();
9594
- const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query18.useMutation)({
9458
+ const { data: serverRecoveryStatus, isLoading: isBackupStatusLoading } = (0, import_react_query16.useQuery)({
9459
+ retry: false,
9460
+ queryKey: [CHECK_BACKUP_QUERY_KEY, address],
9461
+ queryFn: async () => await getShareRecoveryStats()
9462
+ });
9463
+ const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
9464
+ (0, import_react32.useEffect)(() => {
9465
+ if (!!hasServerBackup) setMethod("server");
9466
+ }, [hasServerBackup]);
9467
+ const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query16.useMutation)({
9595
9468
  mutationFn: async () => {
9596
9469
  setError(null);
9597
9470
  setMethod(null);
@@ -9622,29 +9495,47 @@ var KeyshareRestoreMenu = () => {
9622
9495
  }
9623
9496
  });
9624
9497
  const RestoreComponent = currentRestoreMethod ? RESTORE_COMPONENTS[currentRestoreMethod] : null;
9625
- const isBackupChecking = checkingBackup || isBackupStatusLoading;
9626
9498
  return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9627
9499
  "div",
9628
9500
  {
9629
9501
  style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
9630
9502
  className: "list-scrollbar-y w-full",
9631
9503
  children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
9632
- isBackupChecking && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
9504
+ isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] text-center justify-center items-center", children: [
9633
9505
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.Loader, { className: "w-5 h-5 animate-spin" }),
9634
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." }),
9635
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "block w-full text-xs leading-4", children: "Please wait while we check for available backups..." })
9506
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "block w-full text-xs leading-4", children: "Checking for backups..." })
9636
9507
  ] }),
9637
- !success && !isBackupChecking && !isDisconnecting && !hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9508
+ !success && !isBackupStatusLoading && !isDisconnecting && !hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9638
9509
  NoBackupFound,
9639
9510
  {
9640
9511
  isLoading: isRestoringFromServer || isRestoringFromCloud || isRestoringFromFile || isDisconnecting,
9641
9512
  restoreFromFile
9642
9513
  }
9643
9514
  ),
9644
- !success && !isBackupChecking && !isDisconnecting && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
9645
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)] px-[var(--l-pass-pd)] py-[var(--l-pass-gap)]", children: [
9646
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.CloudDownload, { className: "w-6 h-6" }),
9647
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
9515
+ !success && !isBackupStatusLoading && !isDisconnecting && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
9516
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
9517
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9518
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.CloudDownload, { className: "w-6 h-6" }),
9519
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "font-bold text-xl leading-6", children: "Restore Account" })
9520
+ ] }),
9521
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9522
+ Switch,
9523
+ {
9524
+ name: "advanced-restore-flow-toggle",
9525
+ labels: { checked: "Standard", unchecked: "Advanced" },
9526
+ checked: currentRestoreMethod !== "server",
9527
+ onChange: () => {
9528
+ if (!!error) setError(null);
9529
+ if (currentRestoreMethod === "server") {
9530
+ setRestorePassword("");
9531
+ setMethod(null);
9532
+ } else {
9533
+ setRestoreFile(null);
9534
+ setMethod("server");
9535
+ }
9536
+ }
9537
+ }
9538
+ )
9648
9539
  ] }),
9649
9540
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MethodSelector, { mode: "restore", serverRecoveryStatus }),
9650
9541
  !!currentRestoreMethod && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
@@ -9657,32 +9548,29 @@ var KeyshareRestoreMenu = () => {
9657
9548
  }
9658
9549
  )
9659
9550
  ] }),
9660
- !success && !currentRestoreMethod && !isBackupChecking && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
9661
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-full mt-[var(--l-pass-gap)]", style: { borderTop: "1px solid var(--l-pass-bd)" } }),
9662
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
9663
- Button,
9664
- {
9665
- size: "large",
9666
- variant: "ghost",
9667
- onClick: () => {
9668
- setError(null);
9669
- setShowPassword(false);
9670
- setUsePasskey(false);
9671
- setRestoreFile(null);
9672
- setRestorePassword("");
9673
- setSuccess(null);
9674
- setMethod(null);
9675
- disconnect();
9676
- },
9677
- disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
9678
- className: "w-fit mx-auto",
9679
- children: [
9680
- isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.UserCircle, { className: "w-4 h-4" }),
9681
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: "Try Another Account" })
9682
- ]
9683
- }
9684
- )
9685
- ] }),
9551
+ !success && !isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
9552
+ Button,
9553
+ {
9554
+ size: "large",
9555
+ variant: "ghost",
9556
+ onClick: () => {
9557
+ setError(null);
9558
+ setShowPassword(false);
9559
+ setUsePasskey(false);
9560
+ setRestoreFile(null);
9561
+ setRestorePassword("");
9562
+ setSuccess(null);
9563
+ setMethod(null);
9564
+ disconnect();
9565
+ },
9566
+ disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
9567
+ className: "w-fit mx-auto",
9568
+ children: [
9569
+ isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.UserCircle, { className: "w-4 h-4" }),
9570
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: "Try Another Account" })
9571
+ ]
9572
+ }
9573
+ ),
9686
9574
  error && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
9687
9575
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react25.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
9688
9576
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "w-full flex-1 block", children: error })
@@ -9697,9 +9585,9 @@ var KeyshareRestoreMenu = () => {
9697
9585
  };
9698
9586
 
9699
9587
  // src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx
9700
- var import_react_query19 = require("@tanstack/react-query");
9588
+ var import_react_query17 = require("@tanstack/react-query");
9701
9589
  var import_lucide_react26 = require("lucide-react");
9702
- var import_react36 = require("react");
9590
+ var import_react33 = require("react");
9703
9591
  init_vaultClient();
9704
9592
  var import_jsx_runtime45 = require("react/jsx-runtime");
9705
9593
  var COMPONENTS = {
@@ -9709,7 +9597,6 @@ var COMPONENTS = {
9709
9597
  };
9710
9598
  function KeyshareBackupMenu() {
9711
9599
  const address = useLumiaPassportSession((st) => st.address);
9712
- const hasServerVault = useLumiaPassportSession((st) => st.hasServerVault);
9713
9600
  const setPage = useLayoutDataStore((st) => st.setPage);
9714
9601
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
9715
9602
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
@@ -9726,18 +9613,27 @@ function KeyshareBackupMenu() {
9726
9613
  setUsePasskey,
9727
9614
  setMethod
9728
9615
  } = useRestoreStore();
9729
- (0, import_react36.useEffect)(() => {
9616
+ (0, import_react33.useEffect)(() => {
9730
9617
  setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT);
9731
9618
  return () => {
9619
+ setSuccess(null);
9620
+ setError(null);
9621
+ setRestoreFile(null);
9622
+ setRestorePassword("");
9623
+ setShowPassword(false);
9624
+ setUsePasskey(false);
9732
9625
  setMethod(null);
9733
9626
  };
9734
9627
  }, []);
9735
- const { data: serverRecoveryStatus } = (0, import_react_query19.useQuery)({
9628
+ const { data: serverRecoveryStatus, isLoading: isRecoveryLoading } = (0, import_react_query17.useQuery)({
9736
9629
  retry: false,
9737
9630
  queryKey: [CHECK_BACKUP_QUERY_KEY, address],
9738
9631
  queryFn: async () => await getShareRecoveryStats()
9739
9632
  });
9740
- const { hasRecoveryData, isRecoveryLoading } = useCheckBackupAvailability();
9633
+ const hasRecoveryData = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
9634
+ (0, import_react33.useEffect)(() => {
9635
+ if (!!hasRecoveryData) setMethod("server");
9636
+ }, [hasRecoveryData]);
9741
9637
  const {
9742
9638
  isPasswordBackupCreating,
9743
9639
  createPasswordBackup,
@@ -9753,35 +9649,56 @@ function KeyshareBackupMenu() {
9753
9649
  style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
9754
9650
  className: "list-scrollbar-y w-full",
9755
9651
  children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
9756
- !hasServerVault && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
9652
+ !!isRecoveryLoading && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "w-full flex items-center justify-center p-[var(--l-pass-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.Loader, { className: "h-5 w-5 animate-spin" }) }),
9653
+ !isRecoveryLoading && !hasRecoveryData && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 py-[var(--l-pass-pd)]", children: [
9757
9654
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.LockIcon, { className: "w-6 h-6" }),
9758
9655
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "font-bold text-xl leading-6", children: "Secure Account" })
9759
9656
  ] }),
9760
- !!hasServerVault && !currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9657
+ !isRecoveryLoading && !!hasRecoveryData && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center justify-between gap-[var(--l-pass-gap)]", children: [
9658
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9659
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9660
+ Button,
9661
+ {
9662
+ variant: "ghost",
9663
+ size: "icon",
9664
+ title: "Back",
9665
+ onClick: () => {
9666
+ setRestorePassword("");
9667
+ setRestoreFile(null);
9668
+ setShowPassword(false);
9669
+ setSelectedCloudProvider(null);
9670
+ setUsePasskey(false);
9671
+ setError(null);
9672
+ setSuccess(null);
9673
+ setMethod(null);
9674
+ setPage("settings" /* SETTINGS */);
9675
+ },
9676
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.ArrowLeft, { className: "h-4 w-4" })
9677
+ }
9678
+ ),
9679
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-xl font-semibold leading-8", children: "Create Backup" })
9680
+ ] }),
9761
9681
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9762
- Button,
9682
+ Switch,
9763
9683
  {
9764
- variant: "ghost",
9765
- size: "icon",
9766
- title: "Back",
9767
- onClick: () => {
9768
- setRestorePassword("");
9769
- setRestoreFile(null);
9770
- setShowPassword(false);
9771
- setSelectedCloudProvider(null);
9772
- setUsePasskey(false);
9773
- setError(null);
9774
- setSuccess(null);
9775
- setMethod(null);
9776
- setPage("settings" /* SETTINGS */);
9777
- },
9778
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.ArrowLeft, { className: "h-4 w-4" })
9684
+ name: "advanced-restore-flow-toggle",
9685
+ labels: { checked: "Standard", unchecked: "Advanced" },
9686
+ checked: currentBackupMethod !== "server",
9687
+ onChange: () => {
9688
+ if (!!error) setError(null);
9689
+ if (currentBackupMethod === "server") {
9690
+ setRestorePassword("");
9691
+ setMethod(null);
9692
+ } else {
9693
+ setRestoreFile(null);
9694
+ setMethod("server");
9695
+ }
9696
+ }
9779
9697
  }
9780
- ),
9781
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-xl font-semibold leading-8", children: "Create Backup" })
9698
+ )
9782
9699
  ] }),
9783
- !!hasServerVault && !currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(MethodSelector, { mode: "backup", serverRecoveryStatus }),
9784
- !!currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9700
+ !isRecoveryLoading && !!hasRecoveryData && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(MethodSelector, { mode: "backup", serverRecoveryStatus }),
9701
+ !isRecoveryLoading && !!currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9785
9702
  BackupComponent,
9786
9703
  {
9787
9704
  mode: "backup",
@@ -9793,13 +9710,7 @@ function KeyshareBackupMenu() {
9793
9710
  ) }),
9794
9711
  !isRecoveryLoading && !currentBackupMethod && !hasRecoveryData && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
9795
9712
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
9796
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "block flex-1", children: [
9797
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "font-semibold", children: "No Backup Found" }),
9798
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("br", {}),
9799
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-[10px]", children: "Create a backup to restore access if you switch devices or clear your browser." }),
9800
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("br", {}),
9801
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-[10px]", children: "You can ignore this if you already have a backup or don't want to use Keyshare Vault." })
9802
- ] })
9713
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "block flex-1 font-semibold", children: "No Backup Found" })
9803
9714
  ] }),
9804
9715
  error && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
9805
9716
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react26.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
@@ -9816,16 +9727,16 @@ function KeyshareBackupMenu() {
9816
9727
 
9817
9728
  // src/internal/components/MainMenu/MainMenu.tsx
9818
9729
  var import_lucide_react27 = require("lucide-react");
9819
- var import_react37 = require("react");
9730
+ var import_react34 = require("react");
9820
9731
 
9821
9732
  // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9822
- var import_react_query20 = require("@tanstack/react-query");
9733
+ var import_react_query18 = require("@tanstack/react-query");
9823
9734
  init_common();
9824
9735
  var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9825
9736
  function useProvidersList() {
9826
9737
  const address = useLumiaPassportSession((st) => st.address);
9827
9738
  const page = useLayoutDataStore((st) => st.page);
9828
- return (0, import_react_query20.useQuery)({
9739
+ return (0, import_react_query18.useQuery)({
9829
9740
  retry: false,
9830
9741
  // hook is invoked on multiple pages to preload cache
9831
9742
  enabled: !!address && (page === "manage-wallet" /* MANAGE_WALLET */ || page === "settings" /* SETTINGS */ || page === "main-menu" /* MAIN_MENU */),
@@ -9846,7 +9757,7 @@ function MainMenu() {
9846
9757
  const address = useLumiaPassportSession((st) => st.address);
9847
9758
  const setPage = useLayoutDataStore((st) => st.setPage);
9848
9759
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
9849
- (0, import_react37.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
9760
+ (0, import_react34.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
9850
9761
  useProvidersList();
9851
9762
  return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("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__ */ (0, import_jsx_runtime46.jsxs)(
9852
9763
  Button,
@@ -9868,11 +9779,11 @@ function MainMenu() {
9868
9779
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
9869
9780
  var import_lodash_es3 = require("lodash-es");
9870
9781
  var import_lucide_react31 = require("lucide-react");
9871
- var import_react41 = require("react");
9782
+ var import_react38 = require("react");
9872
9783
 
9873
9784
  // src/modules/linkedProfiles.ts
9874
- var import_react_query21 = require("@tanstack/react-query");
9875
- var import_react38 = require("react");
9785
+ var import_react_query19 = require("@tanstack/react-query");
9786
+ var import_react35 = require("react");
9876
9787
  init_auth();
9877
9788
  init_common();
9878
9789
  init_types();
@@ -9892,32 +9803,32 @@ async function getLinkProfilesData() {
9892
9803
  return { profiles: loadedProfiles, avatar };
9893
9804
  }
9894
9805
  function useLumiaPassportLinkedProfiles() {
9895
- const qc = (0, import_react_query21.useQueryClient)();
9806
+ const qc = (0, import_react_query19.useQueryClient)();
9896
9807
  const address = useLumiaPassportSession((st) => st.address);
9897
9808
  const {
9898
9809
  data,
9899
9810
  isFetching: isLoading,
9900
9811
  error
9901
- } = (0, import_react_query21.useQuery)({
9812
+ } = (0, import_react_query19.useQuery)({
9902
9813
  retry: false,
9903
9814
  enabled: !!address,
9904
9815
  queryKey: [LINKED_PROFILES_QUERY_KEY, address],
9905
9816
  queryFn: getLinkProfilesData
9906
9817
  });
9907
9818
  const { profiles = [], avatar = null } = data || {};
9908
- const refresh = (0, import_react38.useCallback)(async () => {
9819
+ const refresh = (0, import_react35.useCallback)(async () => {
9909
9820
  await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9910
9821
  }, [qc, address]);
9911
9822
  return { profiles, avatar, isLoading, error, refresh };
9912
9823
  }
9913
9824
 
9914
9825
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
9915
- var import_react_query25 = require("@tanstack/react-query");
9826
+ var import_react_query23 = require("@tanstack/react-query");
9916
9827
  init_passkey2();
9917
9828
 
9918
9829
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
9919
9830
  init_lumiaPassport();
9920
- var import_react_query22 = require("@tanstack/react-query");
9831
+ var import_react_query20 = require("@tanstack/react-query");
9921
9832
  var import_lucide_react28 = require("lucide-react");
9922
9833
  init_projectId();
9923
9834
 
@@ -9952,7 +9863,7 @@ function EmailForm() {
9952
9863
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
9953
9864
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9954
9865
  const { email, setEmail, setAlert, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
9955
- const { mutate: onSendVerificationCode } = (0, import_react_query22.useMutation)({
9866
+ const { mutate: onSendVerificationCode } = (0, import_react_query20.useMutation)({
9956
9867
  mutationFn: async () => {
9957
9868
  if (!email) return;
9958
9869
  setIsLoading(true);
@@ -10039,13 +9950,13 @@ function EmailForm() {
10039
9950
  }
10040
9951
 
10041
9952
  // src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
10042
- var import_react_query23 = require("@tanstack/react-query");
9953
+ var import_react_query21 = require("@tanstack/react-query");
10043
9954
  init_email();
10044
9955
  function useSendVerificationCode() {
10045
9956
  const setAlert = useManageWalletStore((st) => st.setAlert);
10046
9957
  const setLinkIsLoading = useManageWalletStore((st) => st.setLinkIsLoading);
10047
9958
  const setEmailCodeExpiresIn = useManageWalletStore((st) => st.setEmailCodeExpiresIn);
10048
- return (0, import_react_query23.useMutation)({
9959
+ return (0, import_react_query21.useMutation)({
10049
9960
  mutationFn: async (email) => {
10050
9961
  if (!email) {
10051
9962
  throw new Error("Email is required");
@@ -10068,15 +9979,15 @@ function useSendVerificationCode() {
10068
9979
  }
10069
9980
 
10070
9981
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
10071
- var import_react_query24 = require("@tanstack/react-query");
9982
+ var import_react_query22 = require("@tanstack/react-query");
10072
9983
  init_email();
10073
9984
  function useVerifyCode() {
10074
9985
  const { callbacks } = useLumiaPassportConfig();
10075
- const qc = (0, import_react_query24.useQueryClient)();
9986
+ const qc = (0, import_react_query22.useQueryClient)();
10076
9987
  const address = useLumiaPassportSession((st) => st.address);
10077
9988
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
10078
9989
  const { email, emailCode, setEmail, setEmailStep, setEmailCode, setProviderType, setLinkIsLoading, setAlert } = useManageWalletStore();
10079
- return (0, import_react_query24.useMutation)({
9990
+ return (0, import_react_query22.useMutation)({
10080
9991
  mutationFn: async (codeToVerify) => {
10081
9992
  const code = codeToVerify ?? emailCode;
10082
9993
  if (!code) {
@@ -10124,7 +10035,7 @@ function normalizePasskeyLinkError(msg) {
10124
10035
  return msg;
10125
10036
  }
10126
10037
  function AddProvider() {
10127
- const qc = (0, import_react_query25.useQueryClient)();
10038
+ const qc = (0, import_react_query23.useQueryClient)();
10128
10039
  const callbacks = useLumiaPassportConfig().callbacks;
10129
10040
  const address = useLumiaPassportSession((st) => st.address);
10130
10041
  const {
@@ -10284,11 +10195,11 @@ function EmailNotConnectedWarning() {
10284
10195
  }
10285
10196
 
10286
10197
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
10287
- var import_react_query26 = require("@tanstack/react-query");
10288
- var import_react39 = __toESM(require("react"), 1);
10198
+ var import_react_query24 = require("@tanstack/react-query");
10199
+ var import_react36 = __toESM(require("react"), 1);
10289
10200
  init_auth();
10290
10201
  function useLinkSocial() {
10291
- const qc = (0, import_react_query26.useQueryClient)();
10202
+ const qc = (0, import_react_query24.useQueryClient)();
10292
10203
  const address = useLumiaPassportSession((st) => st.address);
10293
10204
  const {
10294
10205
  config: { current: config },
@@ -10297,7 +10208,7 @@ function useLinkSocial() {
10297
10208
  const setPage = useLayoutDataStore((st) => st.setPage);
10298
10209
  const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
10299
10210
  const { providerType, linkIsLoading, setProviderType, setAlert, setLinkIsLoading } = useManageWalletStore();
10300
- const handleLinkSocialProvider = import_react39.default.useCallback(
10211
+ const handleLinkSocialProvider = import_react36.default.useCallback(
10301
10212
  async (providerIdRaw) => {
10302
10213
  const providerKey = providerIdRaw.toLowerCase();
10303
10214
  const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
@@ -10349,8 +10260,8 @@ function useLinkSocial() {
10349
10260
  },
10350
10261
  [config.social?.providers, callbacks]
10351
10262
  );
10352
- const [socialLinkStarted, setSocialLinkStarted] = import_react39.default.useState(false);
10353
- (0, import_react39.useEffect)(() => {
10263
+ const [socialLinkStarted, setSocialLinkStarted] = import_react36.default.useState(false);
10264
+ (0, import_react36.useEffect)(() => {
10354
10265
  const key = providerType?.toLowerCase();
10355
10266
  console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
10356
10267
  if (isWalletLinking) {
@@ -10370,20 +10281,20 @@ function useLinkSocial() {
10370
10281
  }
10371
10282
 
10372
10283
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
10373
- var import_react_query27 = require("@tanstack/react-query");
10374
- var import_react40 = require("react");
10284
+ var import_react_query25 = require("@tanstack/react-query");
10285
+ var import_react37 = require("react");
10375
10286
  init_telegram2();
10376
10287
  function useLinkTelegram() {
10377
10288
  const {
10378
10289
  config: { current: config },
10379
10290
  callbacks
10380
10291
  } = useLumiaPassportConfig();
10381
- const qc = (0, import_react_query27.useQueryClient)();
10292
+ const qc = (0, import_react_query25.useQueryClient)();
10382
10293
  const address = useLumiaPassportSession((st) => st.address);
10383
10294
  const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
10384
10295
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
10385
10296
  const setPage = useLayoutDataStore((st) => st.setPage);
10386
- const handleLinkTelegram = (0, import_react40.useCallback)(async () => {
10297
+ const handleLinkTelegram = (0, import_react37.useCallback)(async () => {
10387
10298
  try {
10388
10299
  setLinkIsLoading(true);
10389
10300
  setAlert(null);
@@ -10425,8 +10336,8 @@ function useLinkTelegram() {
10425
10336
  setLinkIsLoading(false);
10426
10337
  }
10427
10338
  }, [config.social?.providers, callbacks]);
10428
- const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react40.useState)(false);
10429
- (0, import_react40.useEffect)(() => {
10339
+ const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react37.useState)(false);
10340
+ (0, import_react37.useEffect)(() => {
10430
10341
  console.log("[useLinkTelegram] Effect triggered:", {
10431
10342
  providerType,
10432
10343
  linkIsLoading,
@@ -10443,7 +10354,7 @@ function useLinkTelegram() {
10443
10354
  handleLinkTelegram();
10444
10355
  }
10445
10356
  }, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
10446
- (0, import_react40.useEffect)(() => {
10357
+ (0, import_react37.useEffect)(() => {
10447
10358
  if (providerType !== "telegram") {
10448
10359
  setTelegramLinkStarted(false);
10449
10360
  }
@@ -10552,7 +10463,7 @@ function ManageWalletMenu() {
10552
10463
  } = useManageWalletStore();
10553
10464
  const configuredProviders = getConfiguredProviders(config);
10554
10465
  const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
10555
- const renderProviders = (0, import_react41.useMemo)(() => {
10466
+ const renderProviders = (0, import_react38.useMemo)(() => {
10556
10467
  const normalizeProviderName = (name) => {
10557
10468
  if (name === "x") return "twitter";
10558
10469
  return name;
@@ -10670,19 +10581,19 @@ function ManageWalletMenu() {
10670
10581
  }
10671
10582
 
10672
10583
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
10673
- var import_react_query28 = require("@tanstack/react-query");
10584
+ var import_react_query26 = require("@tanstack/react-query");
10674
10585
  var import_lucide_react32 = require("lucide-react");
10675
- var import_react42 = require("react");
10586
+ var import_react39 = require("react");
10676
10587
  init_auth();
10677
10588
  var import_jsx_runtime52 = require("react/jsx-runtime");
10678
10589
  function UnlinkProviderMenu() {
10679
- const qc = (0, import_react_query28.useQueryClient)();
10590
+ const qc = (0, import_react_query26.useQueryClient)();
10680
10591
  const address = useLumiaPassportSession((st) => st.address);
10681
10592
  const { callbacks } = useLumiaPassportConfig();
10682
10593
  const setPage = useLayoutDataStore((st) => st.setPage);
10683
10594
  const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
10684
- const [confirmInput, setConfirmInput] = (0, import_react42.useState)("");
10685
- const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query28.useMutation)({
10595
+ const [confirmInput, setConfirmInput] = (0, import_react39.useState)("");
10596
+ const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query26.useMutation)({
10686
10597
  mutationFn: async () => {
10687
10598
  if (!confirmUnlink) {
10688
10599
  throw new Error("No provider to unlink");
@@ -10758,11 +10669,11 @@ function UnlinkProviderMenu() {
10758
10669
  var import_lucide_react35 = require("lucide-react");
10759
10670
 
10760
10671
  // src/internal/hooks/useNicknameInfo.ts
10761
- var import_react_query29 = require("@tanstack/react-query");
10672
+ var import_react_query27 = require("@tanstack/react-query");
10762
10673
  init_nickname();
10763
10674
  init_profile();
10764
10675
  function useNicknameInfo(enabled = true) {
10765
- const query = (0, import_react_query29.useQuery)({
10676
+ const query = (0, import_react_query27.useQuery)({
10766
10677
  queryKey: [QUERY_KEYS.nicknameInfo],
10767
10678
  queryFn: getNicknameInfo,
10768
10679
  enabled,
@@ -10779,82 +10690,17 @@ function useNicknameInfo(enabled = true) {
10779
10690
  };
10780
10691
  }
10781
10692
 
10782
- // src/internal/lib/nickname-cooldown.ts
10783
- function getDaysRemaining(cooldownEndsAt) {
10784
- if (!cooldownEndsAt) return 0;
10785
- const endDate = new Date(cooldownEndsAt);
10786
- const now = /* @__PURE__ */ new Date();
10787
- if (isNaN(endDate.getTime())) return 0;
10788
- if (endDate <= now) return 0;
10789
- const diffMs = endDate.getTime() - now.getTime();
10790
- const diffDays = Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
10791
- return Math.max(0, diffDays);
10792
- }
10793
- function formatCooldownEndDate(cooldownEndsAt) {
10794
- if (!cooldownEndsAt) return "";
10795
- const endDate = new Date(cooldownEndsAt);
10796
- if (isNaN(endDate.getTime())) return "";
10797
- return endDate.toLocaleDateString(void 0, {
10798
- year: "numeric",
10799
- month: "short",
10800
- day: "numeric"
10801
- });
10802
- }
10803
-
10804
- // src/internal/components/NicknameSettings/NicknameInfoDisplay.tsx
10805
- var import_jsx_runtime53 = require("react/jsx-runtime");
10806
- function NicknameInfoDisplay({ info }) {
10807
- const daysRemaining = getDaysRemaining(info.cooldownEndsAt);
10808
- const cooldownEndDate = formatCooldownEndDate(info.cooldownEndsAt);
10809
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex flex-col gap-3", children: [
10810
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-1", children: [
10811
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
10812
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-lg font-bold text-[var(--l-pass-fg)]", children: info.displayHandle })
10813
- ] }),
10814
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-4 text-xs text-[var(--l-pass-fg-muted)]", children: [
10815
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
10816
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Created" }),
10817
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.createdAt).toLocaleDateString(void 0, {
10818
- year: "numeric",
10819
- month: "short",
10820
- day: "numeric"
10821
- }) })
10822
- ] }),
10823
- info.changedAt && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
10824
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Last changed" }),
10825
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.changedAt).toLocaleDateString(void 0, {
10826
- year: "numeric",
10827
- month: "short",
10828
- day: "numeric"
10829
- }) })
10830
- ] }),
10831
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
10832
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Times changed" }),
10833
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: info.changeCount })
10834
- ] })
10835
- ] }),
10836
- !info.canChange && info.cooldownEndsAt && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-warning)]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "text-sm text-[var(--l-pass-warning)]", children: [
10837
- "You can change your nickname again on ",
10838
- cooldownEndDate,
10839
- " (",
10840
- daysRemaining,
10841
- " days remaining)"
10842
- ] }) }),
10843
- info.canChange && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-success)]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-sm text-[var(--l-pass-success)]", children: "You can change your nickname" }) })
10844
- ] });
10845
- }
10846
-
10847
10693
  // src/internal/components/NicknameSettings/NicknameEditForm.tsx
10848
- var import_react44 = require("react");
10849
10694
  var import_lucide_react34 = require("lucide-react");
10695
+ var import_react41 = require("react");
10850
10696
 
10851
10697
  // src/internal/hooks/useChangeNickname.ts
10852
- var import_react_query30 = require("@tanstack/react-query");
10698
+ var import_react_query28 = require("@tanstack/react-query");
10853
10699
  init_nickname();
10854
10700
  init_profile();
10855
10701
  function useChangeNickname(options) {
10856
- const queryClient3 = (0, import_react_query30.useQueryClient)();
10857
- const mutation = (0, import_react_query30.useMutation)({
10702
+ const queryClient3 = (0, import_react_query28.useQueryClient)();
10703
+ const mutation = (0, import_react_query28.useMutation)({
10858
10704
  mutationFn: (handle) => changeNickname(handle),
10859
10705
  onSuccess: (result) => {
10860
10706
  queryClient3.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
@@ -10889,8 +10735,8 @@ function useChangeNickname(options) {
10889
10735
  }
10890
10736
 
10891
10737
  // src/internal/hooks/useNicknameAvailability.ts
10892
- var import_react_query31 = require("@tanstack/react-query");
10893
- var import_react43 = require("react");
10738
+ var import_react_query29 = require("@tanstack/react-query");
10739
+ var import_react40 = require("react");
10894
10740
  init_nickname();
10895
10741
  init_profile();
10896
10742
 
@@ -10921,12 +10767,12 @@ function normalizeNickname(handle) {
10921
10767
  // src/internal/hooks/useNicknameAvailability.ts
10922
10768
  var DEBOUNCE_MS = 300;
10923
10769
  function useNicknameAvailability(handle, enabled = true) {
10924
- const [debouncedHandle, setDebouncedHandle] = (0, import_react43.useState)("");
10925
- const [isDebouncing, setIsDebouncing] = (0, import_react43.useState)(false);
10770
+ const [debouncedHandle, setDebouncedHandle] = (0, import_react40.useState)("");
10771
+ const [isDebouncing, setIsDebouncing] = (0, import_react40.useState)(false);
10926
10772
  const normalized = normalizeNickname(handle);
10927
10773
  const validation = validateNickname(handle);
10928
10774
  const isValidForCheck = validation.valid && normalized.length > 0;
10929
- (0, import_react43.useEffect)(() => {
10775
+ (0, import_react40.useEffect)(() => {
10930
10776
  if (!isValidForCheck || !enabled) {
10931
10777
  setDebouncedHandle("");
10932
10778
  setIsDebouncing(false);
@@ -10941,7 +10787,7 @@ function useNicknameAvailability(handle, enabled = true) {
10941
10787
  clearTimeout(timer);
10942
10788
  };
10943
10789
  }, [normalized, isValidForCheck, enabled]);
10944
- const query = (0, import_react_query31.useQuery)({
10790
+ const query = (0, import_react_query29.useQuery)({
10945
10791
  queryKey: QUERY_KEYS.nicknameAvailability(debouncedHandle),
10946
10792
  queryFn: () => checkNicknameAvailability(debouncedHandle),
10947
10793
  enabled: enabled && isValidForCheck && debouncedHandle.length > 0,
@@ -10984,7 +10830,7 @@ function getNicknameErrorMessage(code, params) {
10984
10830
 
10985
10831
  // src/internal/components/NicknameSettings/NicknameAvailabilityIndicator.tsx
10986
10832
  var import_lucide_react33 = require("lucide-react");
10987
- var import_jsx_runtime54 = require("react/jsx-runtime");
10833
+ var import_jsx_runtime53 = require("react/jsx-runtime");
10988
10834
  function NicknameAvailabilityIndicator({
10989
10835
  isChecking,
10990
10836
  availability,
@@ -10994,32 +10840,32 @@ function NicknameAvailabilityIndicator({
10994
10840
  return null;
10995
10841
  }
10996
10842
  if (isChecking) {
10997
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-fg-muted)]", children: [
10998
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react33.Loader, { className: "w-3 h-3 animate-spin" }),
10999
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Checking availability..." })
10843
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-fg-muted)]", children: [
10844
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react33.Loader, { className: "w-3 h-3 animate-spin" }),
10845
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Checking availability..." })
11000
10846
  ] });
11001
10847
  }
11002
10848
  if (!availability) {
11003
10849
  return null;
11004
10850
  }
11005
10851
  if (availability.available) {
11006
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-success)]", children: [
11007
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react33.Check, { className: "w-3 h-3" }),
11008
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: "Nickname is available" })
10852
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-success)]", children: [
10853
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react33.Check, { className: "w-3 h-3" }),
10854
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: "Nickname is available" })
11009
10855
  ] });
11010
10856
  }
11011
10857
  const reason = availability.reason ? getNicknameErrorMessage(availability.reason) : "This nickname is not available";
11012
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-error)]", children: [
11013
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react33.X, { className: "w-3 h-3" }),
11014
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: reason })
10858
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-1.5 text-xs text-[var(--l-pass-error)]", children: [
10859
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react33.X, { className: "w-3 h-3" }),
10860
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: reason })
11015
10861
  ] });
11016
10862
  }
11017
10863
 
11018
10864
  // src/internal/components/NicknameSettings/NicknameEditForm.tsx
11019
- var import_jsx_runtime55 = require("react/jsx-runtime");
10865
+ var import_jsx_runtime54 = require("react/jsx-runtime");
11020
10866
  function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11021
- const [inputValue, setInputValue] = (0, import_react44.useState)("");
11022
- const [clientError, setClientError] = (0, import_react44.useState)(null);
10867
+ const [inputValue, setInputValue] = (0, import_react41.useState)("");
10868
+ const [clientError, setClientError] = (0, import_react41.useState)(null);
11023
10869
  const normalized = normalizeNickname(inputValue);
11024
10870
  const isSameAsCurrentHandle = normalized === currentHandle.toLowerCase();
11025
10871
  const validation = validateNickname(inputValue);
@@ -11032,7 +10878,7 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11032
10878
  onSuccess?.();
11033
10879
  }
11034
10880
  });
11035
- const handleInputChange = (0, import_react44.useCallback)(
10881
+ const handleInputChange = (0, import_react41.useCallback)(
11036
10882
  (e) => {
11037
10883
  const value = e.target.value;
11038
10884
  setInputValue(value);
@@ -11047,7 +10893,7 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11047
10893
  },
11048
10894
  [clientError, isError, isSuccess, reset]
11049
10895
  );
11050
- const handleSubmit = (0, import_react44.useCallback)(
10896
+ const handleSubmit = (0, import_react41.useCallback)(
11051
10897
  (e) => {
11052
10898
  e.preventDefault();
11053
10899
  const normalized2 = normalizeNickname(inputValue);
@@ -11073,10 +10919,10 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11073
10919
  if (!canChange) {
11074
10920
  return null;
11075
10921
  }
11076
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-3", children: [
11077
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-1", children: [
11078
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "New nickname" }),
11079
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
10922
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("form", { onSubmit: handleSubmit, className: "w-full flex flex-col gap-3", children: [
10923
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col gap-1", children: [
10924
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "New nickname" }),
10925
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
11080
10926
  Input,
11081
10927
  {
11082
10928
  value: inputValue,
@@ -11086,16 +10932,84 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11086
10932
  error: displayError || void 0
11087
10933
  }
11088
10934
  ),
11089
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "3-20 characters, letters, numbers, and underscores only" }) }),
11090
- shouldCheckAvailability && !clientError && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(NicknameAvailabilityIndicator, { isChecking, availability })
10935
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "3-20 characters, letters, numbers, and underscores only" }) }),
10936
+ shouldCheckAvailability && !clientError && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(NicknameAvailabilityIndicator, { isChecking, availability })
10937
+ ] }),
10938
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button, { type: "submit", size: "large", disabled: isSubmitDisabled, className: "w-full", children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
10939
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.Loader, { className: "w-4 h-4 mr-2 animate-spin" }),
10940
+ "Changing..."
10941
+ ] }) : isSuccess ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
10942
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react34.Check, { className: "w-4 h-4 mr-2" }),
10943
+ "Nickname changed!"
10944
+ ] }) : "Change Nickname" })
10945
+ ] });
10946
+ }
10947
+
10948
+ // src/internal/components/NicknameSettings/NicknameInfoDisplay.tsx
10949
+ var import_react42 = require("react");
10950
+
10951
+ // src/internal/lib/nickname-cooldown.ts
10952
+ function getDaysRemaining(cooldownEndsAt) {
10953
+ if (!cooldownEndsAt) return 0;
10954
+ const endDate = new Date(cooldownEndsAt);
10955
+ const now = /* @__PURE__ */ new Date();
10956
+ if (isNaN(endDate.getTime())) return 0;
10957
+ if (endDate <= now) return 0;
10958
+ const diffMs = endDate.getTime() - now.getTime();
10959
+ const diffDays = Math.ceil(diffMs / (1e3 * 60 * 60 * 24));
10960
+ return Math.max(0, diffDays);
10961
+ }
10962
+ function formatCooldownEndDate(cooldownEndsAt) {
10963
+ if (!cooldownEndsAt) return "";
10964
+ const endDate = new Date(cooldownEndsAt);
10965
+ if (isNaN(endDate.getTime())) return "";
10966
+ return endDate.toLocaleDateString(void 0, {
10967
+ year: "numeric",
10968
+ month: "short",
10969
+ day: "numeric"
10970
+ });
10971
+ }
10972
+
10973
+ // src/internal/components/NicknameSettings/NicknameInfoDisplay.tsx
10974
+ var import_jsx_runtime55 = require("react/jsx-runtime");
10975
+ function NicknameInfoDisplay({ info }) {
10976
+ const daysRemaining = getDaysRemaining(info.cooldownEndsAt);
10977
+ const cooldownEndDate = formatCooldownEndDate(info.cooldownEndsAt);
10978
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_react42.Fragment, { children: [
10979
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-1", children: [
10980
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xs text-[var(--l-pass-fg-muted)]", children: "Your nickname" }),
10981
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-lg font-bold text-[var(--l-pass-fg)]", children: info.displayHandle })
10982
+ ] }),
10983
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-4 text-xs text-[var(--l-pass-fg-muted)]", children: [
10984
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
10985
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "Created" }),
10986
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.createdAt).toLocaleDateString(void 0, {
10987
+ year: "numeric",
10988
+ month: "short",
10989
+ day: "numeric"
10990
+ }) })
10991
+ ] }),
10992
+ info.changedAt && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
10993
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "Last changed" }),
10994
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: new Date(info.changedAt).toLocaleDateString(void 0, {
10995
+ year: "numeric",
10996
+ month: "short",
10997
+ day: "numeric"
10998
+ }) })
10999
+ ] }),
11000
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
11001
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "Times changed" }),
11002
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-[var(--l-pass-fg)]", children: info.changeCount })
11003
+ ] })
11091
11004
  ] }),
11092
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { type: "submit", disabled: isSubmitDisabled, className: "w-full", children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
11093
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react34.Loader, { className: "w-4 h-4 mr-2 animate-spin" }),
11094
- "Changing..."
11095
- ] }) : isSuccess ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
11096
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react34.Check, { className: "w-4 h-4 mr-2" }),
11097
- "Nickname changed!"
11098
- ] }) : "Change Nickname" })
11005
+ !info.canChange && info.cooldownEndsAt && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-warning)]", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "text-sm text-[var(--l-pass-warning)]", children: [
11006
+ "You can change your nickname again on ",
11007
+ cooldownEndDate,
11008
+ " (",
11009
+ daysRemaining,
11010
+ " days remaining)"
11011
+ ] }) }),
11012
+ info.canChange && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "p-3 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-success)]", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-sm text-[var(--l-pass-success)]", children: "You can change your nickname" }) })
11099
11013
  ] });
11100
11014
  }
11101
11015
 
@@ -11103,52 +11017,42 @@ function NicknameEditForm({ currentHandle, canChange, onSuccess }) {
11103
11017
  var import_jsx_runtime56 = require("react/jsx-runtime");
11104
11018
  function NicknameSettings() {
11105
11019
  const setPage = useLayoutDataStore((st) => st.setPage);
11020
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11106
11021
  const { data: nicknameInfo, isLoading, isError, error, refetch } = useNicknameInfo();
11107
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
11108
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "relative flex items-center justify-center gap-2 px-5 pt-3 pb-6", children: [
11109
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.AtSign, { className: "w-6 h-6" }),
11110
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "font-bold text-xl leading-6", children: "Nickname" }),
11111
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
11112
- Button,
11113
- {
11114
- style: { opacity: 0.5, transform: "translate(-4px, -4px)" },
11115
- title: "Back to Settings",
11116
- variant: "ghost",
11117
- size: "icon",
11118
- className: "absolute left-0 top-0 w-5 h-5",
11119
- onClick: () => setPage("settings" /* SETTINGS */),
11120
- children: [
11121
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.ArrowLeft, { className: "h-4 w-4" }),
11122
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "sr-only", children: "Back to Settings" })
11123
- ]
11124
- }
11125
- )
11126
- ] }),
11127
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "w-full p-8 flex flex-col items-center justify-center gap-2", children: [
11128
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.Loader, { className: "w-5 h-5 animate-spin text-[var(--l-pass-fg-muted)]" }),
11129
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Loading nickname info..." })
11130
- ] }),
11131
- isError && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full p-4 rounded-[var(--l-pass-el-bdrs)] bg-[var(--l-pass-bg-error)]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm text-[var(--l-pass-error)]", children: error?.message || "Failed to load nickname info" }) }),
11132
- nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(NicknameInfoDisplay, { info: nicknameInfo }),
11133
- nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11134
- NicknameEditForm,
11135
- {
11136
- currentHandle: nicknameInfo.handle,
11137
- canChange: nicknameInfo.canChange,
11138
- onSuccess: refetch
11139
- }
11140
- )
11141
- ] });
11022
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11023
+ "div",
11024
+ {
11025
+ style: { "--l-pass-scrollbar-mah": `${maxScrollHeight}px` },
11026
+ className: "list-scrollbar-y w-full",
11027
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
11028
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
11029
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.ArrowLeft, { className: "h-4 w-4" }) }),
11030
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xl font-semibold", children: "Nickname" })
11031
+ ] }),
11032
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-full p-8 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react35.Loader, { className: "w-5 h-5 animate-spin" }) }),
11033
+ nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(NicknameInfoDisplay, { info: nicknameInfo }),
11034
+ nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11035
+ NicknameEditForm,
11036
+ {
11037
+ currentHandle: nicknameInfo.handle,
11038
+ canChange: nicknameInfo.canChange,
11039
+ onSuccess: refetch
11040
+ }
11041
+ ),
11042
+ isError && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Highlight, { type: "error", children: error?.message || "Failed to load nickname info" })
11043
+ ] })
11044
+ }
11045
+ );
11142
11046
  }
11143
11047
 
11144
11048
  // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
11145
- var import_react_query34 = require("@tanstack/react-query");
11049
+ var import_react_query32 = require("@tanstack/react-query");
11146
11050
  var import_lucide_react37 = require("lucide-react");
11147
- var import_react47 = require("react");
11051
+ var import_react45 = require("react");
11148
11052
 
11149
11053
  // src/internal/hooks/useBlockscoutAssets.ts
11150
- var import_react45 = require("react");
11151
- var import_react_query32 = require("@tanstack/react-query");
11054
+ var import_react43 = require("react");
11055
+ var import_react_query30 = require("@tanstack/react-query");
11152
11056
  var import_wagmi2 = require("wagmi");
11153
11057
  var import_viem5 = require("viem");
11154
11058
  var import_clients2 = require("@lumiapassport/core/clients");
@@ -11290,12 +11194,12 @@ function createError(error) {
11290
11194
  function useBlockscoutAssets(options) {
11291
11195
  const { address, enabled = true, detectSecurityTokens = true } = options;
11292
11196
  const blockscoutApiUrl = getBlockscoutApiUrl();
11293
- const blockscoutClient = (0, import_react45.useMemo)(
11197
+ const blockscoutClient = (0, import_react43.useMemo)(
11294
11198
  () => (0, import_clients2.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }),
11295
11199
  [blockscoutApiUrl]
11296
11200
  );
11297
11201
  const publicClient2 = (0, import_wagmi2.usePublicClient)({ chainId: lumiaBeam.id });
11298
- const lastRefreshRef = (0, import_react45.useRef)(0);
11202
+ const lastRefreshRef = (0, import_react43.useRef)(0);
11299
11203
  const {
11300
11204
  data: nativeBalanceData,
11301
11205
  isLoading: nativeLoading,
@@ -11313,7 +11217,7 @@ function useBlockscoutAssets(options) {
11313
11217
  error: tokensError,
11314
11218
  refetch: refetchTokens,
11315
11219
  dataUpdatedAt
11316
- } = (0, import_react_query32.useQuery)({
11220
+ } = (0, import_react_query30.useQuery)({
11317
11221
  queryKey: [BLOCKSCOUT_QUERY_KEY, address, blockscoutApiUrl],
11318
11222
  queryFn: () => blockscoutClient.getTokenBalances(address),
11319
11223
  enabled: !!address && enabled,
@@ -11326,7 +11230,7 @@ function useBlockscoutAssets(options) {
11326
11230
  data: nftItems,
11327
11231
  isLoading: nftsLoading,
11328
11232
  refetch: refetchNfts
11329
- } = (0, import_react_query32.useQuery)({
11233
+ } = (0, import_react_query30.useQuery)({
11330
11234
  queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", address, blockscoutApiUrl],
11331
11235
  queryFn: () => blockscoutClient.getNfts(address),
11332
11236
  enabled: !!address && enabled,
@@ -11335,11 +11239,11 @@ function useBlockscoutAssets(options) {
11335
11239
  retry: 2,
11336
11240
  retryDelay: 1e3
11337
11241
  });
11338
- const erc20TokenAddresses = (0, import_react45.useMemo)(() => {
11242
+ const erc20TokenAddresses = (0, import_react43.useMemo)(() => {
11339
11243
  if (!tokenBalances) return [];
11340
11244
  return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address);
11341
11245
  }, [tokenBalances]);
11342
- const { data: erc3643Results } = (0, import_react_query32.useQuery)({
11246
+ const { data: erc3643Results } = (0, import_react_query30.useQuery)({
11343
11247
  queryKey: [ERC3643_DETECTION_QUERY_KEY, address, erc20TokenAddresses],
11344
11248
  queryFn: async () => {
11345
11249
  if (!publicClient2 || erc20TokenAddresses.length === 0) {
@@ -11379,7 +11283,7 @@ function useBlockscoutAssets(options) {
11379
11283
  gcTime: BLOCKSCOUT_QUERY_GC_TIME,
11380
11284
  retry: 1
11381
11285
  });
11382
- const assets = (0, import_react45.useMemo)(() => {
11286
+ const assets = (0, import_react43.useMemo)(() => {
11383
11287
  const result = [];
11384
11288
  if (nativeBalanceData) {
11385
11289
  result.push({
@@ -11415,7 +11319,7 @@ function useBlockscoutAssets(options) {
11415
11319
  }
11416
11320
  return result;
11417
11321
  }, [nativeBalanceData, tokenBalances, nftItems, erc3643Results]);
11418
- const nativeBalance = (0, import_react45.useMemo)(() => {
11322
+ const nativeBalance = (0, import_react43.useMemo)(() => {
11419
11323
  if (!nativeBalanceData) return null;
11420
11324
  return {
11421
11325
  value: nativeBalanceData.value,
@@ -11423,11 +11327,11 @@ function useBlockscoutAssets(options) {
11423
11327
  symbol: "LUMIA"
11424
11328
  };
11425
11329
  }, [nativeBalanceData]);
11426
- const error = (0, import_react45.useMemo)(() => {
11330
+ const error = (0, import_react43.useMemo)(() => {
11427
11331
  if (!tokensError) return null;
11428
11332
  return createError(tokensError);
11429
11333
  }, [tokensError]);
11430
- const refreshBalances = (0, import_react45.useCallback)(async () => {
11334
+ const refreshBalances = (0, import_react43.useCallback)(async () => {
11431
11335
  const now = Date.now();
11432
11336
  if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
11433
11337
  return;
@@ -11435,7 +11339,7 @@ function useBlockscoutAssets(options) {
11435
11339
  lastRefreshRef.current = now;
11436
11340
  await Promise.all([refetchNative(), refetchTokens(), refetchNfts()]);
11437
11341
  }, [refetchNative, refetchTokens, refetchNfts]);
11438
- const getTokenBalance = (0, import_react45.useCallback)(
11342
+ const getTokenBalance = (0, import_react43.useCallback)(
11439
11343
  (tokenAddress) => {
11440
11344
  return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
11441
11345
  },
@@ -11455,9 +11359,9 @@ function useBlockscoutAssets(options) {
11455
11359
  }
11456
11360
 
11457
11361
  // src/internal/components/PortfolioMenu/PortfolioItem.tsx
11458
- var import_react_query33 = require("@tanstack/react-query");
11362
+ var import_react_query31 = require("@tanstack/react-query");
11459
11363
  var import_lucide_react36 = require("lucide-react");
11460
- var import_react46 = require("react");
11364
+ var import_react44 = require("react");
11461
11365
  var import_viem6 = require("viem");
11462
11366
  init_base();
11463
11367
  var import_jsx_runtime57 = require("react/jsx-runtime");
@@ -11495,16 +11399,16 @@ async function getAssetRate2(symbol) {
11495
11399
  var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
11496
11400
  function PortfolioItem(props) {
11497
11401
  const { address, asset, isProjectAsset } = props;
11498
- const [nftImageError, setNftImageError] = (0, import_react46.useState)(false);
11499
- const [logoError, setLogoError] = (0, import_react46.useState)(false);
11402
+ const [nftImageError, setNftImageError] = (0, import_react44.useState)(false);
11403
+ const [logoError, setLogoError] = (0, import_react44.useState)(false);
11500
11404
  const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
11501
- const qc = (0, import_react_query33.useQueryClient)();
11405
+ const qc = (0, import_react_query31.useQueryClient)();
11502
11406
  const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
11503
11407
  const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
11504
11408
  const isNft = isNftAsset(asset);
11505
11409
  const nftImage = getNftImage(asset);
11506
11410
  const isSecurity = isSecurityToken(asset);
11507
- const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query33.useQuery)({
11411
+ const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query31.useQuery)({
11508
11412
  retry: false,
11509
11413
  staleTime: 4 * 60 * 1e3,
11510
11414
  enabled: !!address && !!isAssetRateAvailable(asset.symbol) && !isProjectAsset && !isNft && !isSecurity,
@@ -11609,7 +11513,7 @@ function PortfolioItem(props) {
11609
11513
  var import_jsx_runtime58 = require("react/jsx-runtime");
11610
11514
  function PortfolioMenu() {
11611
11515
  const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
11612
- const qc = (0, import_react_query34.useQueryClient)();
11516
+ const qc = (0, import_react_query32.useQueryClient)();
11613
11517
  const address = useLumiaPassportSession((st) => st.address);
11614
11518
  const setPage = useLayoutDataStore((st) => st.setPage);
11615
11519
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
@@ -11622,7 +11526,7 @@ function PortfolioMenu() {
11622
11526
  } = useBlockscoutAssets({
11623
11527
  address
11624
11528
  });
11625
- const refreshAllAssetsBalances = (0, import_react47.useCallback)(() => {
11529
+ const refreshAllAssetsBalances = (0, import_react45.useCallback)(() => {
11626
11530
  Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
11627
11531
  refreshBlockscoutBalances();
11628
11532
  }, [qc, projectAssets, refreshBlockscoutBalances]);
@@ -11674,10 +11578,10 @@ function PortfolioMenu() {
11674
11578
  }
11675
11579
 
11676
11580
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
11677
- var import_react_query35 = require("@tanstack/react-query");
11581
+ var import_react_query33 = require("@tanstack/react-query");
11678
11582
  var import_dayjs3 = __toESM(require("dayjs"), 1);
11679
11583
  var import_lucide_react41 = require("lucide-react");
11680
- var import_react48 = require("react");
11584
+ var import_react46 = require("react");
11681
11585
  init_auth();
11682
11586
  init_keyshare();
11683
11587
  init_iframe_manager();
@@ -11864,14 +11768,14 @@ function Keyshare(props) {
11864
11768
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
11865
11769
  var import_jsx_runtime63 = require("react/jsx-runtime");
11866
11770
  function SecurityMenu() {
11867
- const qc = (0, import_react_query35.useQueryClient)();
11771
+ const qc = (0, import_react_query33.useQueryClient)();
11868
11772
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11869
11773
  const setPage = useLayoutDataStore((st) => st.setPage);
11870
11774
  const userId = import_auth3.jwtTokenManager.getUserId();
11871
11775
  const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
11872
- const [isRemoving, setIsRemoving] = (0, import_react48.useState)(false);
11873
- const [appToRemove, setAppToRemove] = (0, import_react48.useState)(null);
11874
- const { data: recoveryData, isFetching: isRecoveryLoading } = (0, import_react_query35.useQuery)({
11776
+ const [isRemoving, setIsRemoving] = (0, import_react46.useState)(false);
11777
+ const [appToRemove, setAppToRemove] = (0, import_react46.useState)(null);
11778
+ const { data: recoveryData, isFetching: isRecoveryLoading } = (0, import_react_query33.useQuery)({
11875
11779
  enabled: !!userId,
11876
11780
  queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
11877
11781
  queryFn: async () => {
@@ -12036,21 +11940,74 @@ function SecurityMenu() {
12036
11940
 
12037
11941
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
12038
11942
  var import_lucide_react42 = require("lucide-react");
12039
- var import_react52 = require("react");
11943
+ var import_react50 = require("react");
12040
11944
  var import_viem9 = require("viem");
12041
11945
  var import_wagmi4 = require("wagmi");
12042
11946
 
11947
+ // src/hooks/useNicknameResolve.ts
11948
+ var import_react_query34 = require("@tanstack/react-query");
11949
+ var import_react47 = require("react");
11950
+ init_nickname();
11951
+ init_profile();
11952
+ var DEBOUNCE_MS2 = 300;
11953
+ function looksLikeNickname(input) {
11954
+ if (!input) return false;
11955
+ if (input.startsWith("0x")) return false;
11956
+ if (input.startsWith("@")) return true;
11957
+ const normalized = input.toLowerCase().trim();
11958
+ return /^[a-z0-9_]+$/.test(normalized);
11959
+ }
11960
+ function useNicknameResolve(input, enabled = true) {
11961
+ const [debouncedInput, setDebouncedInput] = (0, import_react47.useState)("");
11962
+ const [isDebouncing, setIsDebouncing] = (0, import_react47.useState)(false);
11963
+ const normalized = normalizeNickname(input);
11964
+ const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
11965
+ (0, import_react47.useEffect)(() => {
11966
+ if (!isNicknameInput || !enabled) {
11967
+ setDebouncedInput("");
11968
+ setIsDebouncing(false);
11969
+ return;
11970
+ }
11971
+ setIsDebouncing(true);
11972
+ const timer = setTimeout(() => {
11973
+ setDebouncedInput(normalized);
11974
+ setIsDebouncing(false);
11975
+ }, DEBOUNCE_MS2);
11976
+ return () => {
11977
+ clearTimeout(timer);
11978
+ };
11979
+ }, [normalized, isNicknameInput, enabled]);
11980
+ const query = (0, import_react_query34.useQuery)({
11981
+ queryKey: QUERY_KEYS.nicknameResolve(debouncedInput),
11982
+ queryFn: () => resolveNickname(debouncedInput),
11983
+ enabled: enabled && isNicknameInput && debouncedInput.length > 0,
11984
+ staleTime: 1e3 * 60 * 5,
11985
+ // 5 minutes - addresses don't change often
11986
+ retry: 1
11987
+ });
11988
+ const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
11989
+ return {
11990
+ data: query.data,
11991
+ isLoading: query.isLoading,
11992
+ isResolving: isDebouncing || query.isFetching,
11993
+ isError: query.isError,
11994
+ isNotFound,
11995
+ error: query.error,
11996
+ resolvedAddress: query.data?.walletAddress || null
11997
+ };
11998
+ }
11999
+
12043
12000
  // src/hooks/useSendTransaction.ts
12044
- var import_react49 = require("react");
12001
+ var import_react48 = require("react");
12045
12002
  var import_viem7 = require("viem");
12046
12003
  init_account();
12047
12004
  function useSendTransaction() {
12048
12005
  const session = useLumiaPassportSession((st) => st.session);
12049
12006
  const address = useLumiaPassportSession((st) => st.address);
12050
- const [isLoading, setIsLoading] = (0, import_react49.useState)(false);
12051
- const [error, setError] = (0, import_react49.useState)(null);
12052
- const [userOpHash, setUserOpHash] = (0, import_react49.useState)(null);
12053
- const sendTransaction = (0, import_react49.useCallback)(
12007
+ const [isLoading, setIsLoading] = (0, import_react48.useState)(false);
12008
+ const [error, setError] = (0, import_react48.useState)(null);
12009
+ const [userOpHash, setUserOpHash] = (0, import_react48.useState)(null);
12010
+ const sendTransaction = (0, import_react48.useCallback)(
12054
12011
  async (params) => {
12055
12012
  if (!session || !address) {
12056
12013
  setError("No active session");
@@ -12090,7 +12047,7 @@ function useSendTransaction() {
12090
12047
  },
12091
12048
  [session, address]
12092
12049
  );
12093
- const reset = (0, import_react49.useCallback)(() => {
12050
+ const reset = (0, import_react48.useCallback)(() => {
12094
12051
  setError(null);
12095
12052
  setUserOpHash(null);
12096
12053
  setIsLoading(false);
@@ -12104,61 +12061,8 @@ function useSendTransaction() {
12104
12061
  };
12105
12062
  }
12106
12063
 
12107
- // src/hooks/useNicknameResolve.ts
12108
- var import_react_query36 = require("@tanstack/react-query");
12109
- var import_react50 = require("react");
12110
- init_nickname();
12111
- init_profile();
12112
- var DEBOUNCE_MS2 = 300;
12113
- function looksLikeNickname(input) {
12114
- if (!input) return false;
12115
- if (input.startsWith("0x")) return false;
12116
- if (input.startsWith("@")) return true;
12117
- const normalized = input.toLowerCase().trim();
12118
- return /^[a-z0-9_]+$/.test(normalized);
12119
- }
12120
- function useNicknameResolve(input, enabled = true) {
12121
- const [debouncedInput, setDebouncedInput] = (0, import_react50.useState)("");
12122
- const [isDebouncing, setIsDebouncing] = (0, import_react50.useState)(false);
12123
- const normalized = normalizeNickname(input);
12124
- const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
12125
- (0, import_react50.useEffect)(() => {
12126
- if (!isNicknameInput || !enabled) {
12127
- setDebouncedInput("");
12128
- setIsDebouncing(false);
12129
- return;
12130
- }
12131
- setIsDebouncing(true);
12132
- const timer = setTimeout(() => {
12133
- setDebouncedInput(normalized);
12134
- setIsDebouncing(false);
12135
- }, DEBOUNCE_MS2);
12136
- return () => {
12137
- clearTimeout(timer);
12138
- };
12139
- }, [normalized, isNicknameInput, enabled]);
12140
- const query = (0, import_react_query36.useQuery)({
12141
- queryKey: QUERY_KEYS.nicknameResolve(debouncedInput),
12142
- queryFn: () => resolveNickname(debouncedInput),
12143
- enabled: enabled && isNicknameInput && debouncedInput.length > 0,
12144
- staleTime: 1e3 * 60 * 5,
12145
- // 5 minutes - addresses don't change often
12146
- retry: 1
12147
- });
12148
- const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
12149
- return {
12150
- data: query.data,
12151
- isLoading: query.isLoading,
12152
- isResolving: isDebouncing || query.isFetching,
12153
- isError: query.isError,
12154
- isNotFound,
12155
- error: query.error,
12156
- resolvedAddress: query.data?.walletAddress || null
12157
- };
12158
- }
12159
-
12160
12064
  // src/modules/assets.ts
12161
- var import_react51 = __toESM(require("react"), 1);
12065
+ var import_react49 = __toESM(require("react"), 1);
12162
12066
  var import_wagmi3 = require("wagmi");
12163
12067
  var import_viem8 = require("viem");
12164
12068
  init_base();
@@ -12305,7 +12209,7 @@ function useTokenBalance(tokenAddress, userAddress) {
12305
12209
  }
12306
12210
  });
12307
12211
  const { tokenInfo } = useTokenInfo(tokenAddress);
12308
- const formattedBalance = import_react51.default.useMemo(() => {
12212
+ const formattedBalance = import_react49.default.useMemo(() => {
12309
12213
  if (!balance || !tokenInfo) return "0";
12310
12214
  return (0, import_viem8.formatUnits)(balance, tokenInfo.decimals);
12311
12215
  }, [balance, tokenInfo]);
@@ -12332,16 +12236,21 @@ function SendLumiaMenu() {
12332
12236
  address,
12333
12237
  chainId: lumiaBeam.id
12334
12238
  });
12335
- const [recipient, setRecipient] = (0, import_react52.useState)("");
12336
- const [amount, setAmount] = (0, import_react52.useState)("");
12337
- const [txStep, setTxStep] = (0, import_react52.useState)("input");
12338
- const [validationError, setValidationError] = (0, import_react52.useState)(null);
12239
+ const [recipient, setRecipient] = (0, import_react50.useState)("");
12240
+ const [amount, setAmount] = (0, import_react50.useState)("");
12241
+ const [txStep, setTxStep] = (0, import_react50.useState)("input");
12242
+ const [validationError, setValidationError] = (0, import_react50.useState)(null);
12339
12243
  const isNicknameInput = looksLikeNickname(recipient);
12340
- const { resolvedAddress, isResolving, isNotFound, data: nicknameData } = useNicknameResolve(recipient, isNicknameInput);
12244
+ const {
12245
+ resolvedAddress,
12246
+ isResolving,
12247
+ isNotFound,
12248
+ data: nicknameData
12249
+ } = useNicknameResolve(recipient, isNicknameInput);
12341
12250
  const effectiveAddress = isNicknameInput ? resolvedAddress : recipient;
12342
12251
  const nativeAsset = assets.find((a) => a.type === "native");
12343
12252
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
12344
- (0, import_react52.useEffect)(() => {
12253
+ (0, import_react50.useEffect)(() => {
12345
12254
  if (open) {
12346
12255
  setTxStep("input");
12347
12256
  setValidationError(null);
@@ -12447,30 +12356,18 @@ function SendLumiaMenu() {
12447
12356
  " LUMIA"
12448
12357
  ] })
12449
12358
  ] }),
12450
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "w-full relative", children: [
12451
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12452
- Input,
12453
- {
12454
- Icon: LumiaIcon,
12455
- type: "number",
12456
- value: amount,
12457
- onChange: (e) => setAmount(e.target.value),
12458
- placeholder: "0.0",
12459
- step: "0.000001"
12460
- }
12461
- ),
12462
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12463
- Button,
12464
- {
12465
- onClick: handleMaxAmount,
12466
- variant: "ghost",
12467
- size: "medium",
12468
- style: { transform: "translateY(-50%)" },
12469
- className: "absolute right-2 top-1/2",
12470
- children: "MAX"
12471
- }
12472
- )
12473
- ] })
12359
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12360
+ Input,
12361
+ {
12362
+ Icon: LumiaIcon,
12363
+ type: "number",
12364
+ value: amount,
12365
+ onChange: (e) => setAmount(e.target.value),
12366
+ placeholder: "0.0",
12367
+ step: "0.000001",
12368
+ element: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", children: "MAX" })
12369
+ }
12370
+ )
12474
12371
  ] }),
12475
12372
  (validationError || error) && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2 p-3 bg-[var(--l-pass-bg-error)] text-[var(--l-pass-error)] rounded-[var(--l-pass-el-bdrs)]", children: [
12476
12373
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react42.AlertCircle, { className: "h-4 w-4" }),
@@ -12531,7 +12428,7 @@ function SendLumiaMenu() {
12531
12428
  // src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
12532
12429
  var import_lucide_react43 = require("lucide-react");
12533
12430
  var import_qrcode = __toESM(require("qrcode"), 1);
12534
- var import_react53 = require("react");
12431
+ var import_react51 = require("react");
12535
12432
  init_clients();
12536
12433
  var import_jsx_runtime65 = require("react/jsx-runtime");
12537
12434
  function ReceiveLumiaMenu() {
@@ -12540,9 +12437,9 @@ function ReceiveLumiaMenu() {
12540
12437
  const setPage = useLayoutDataStore((st) => st.setPage);
12541
12438
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
12542
12439
  const open = page === "receive";
12543
- const [qrCodeUrl, setQrCodeUrl] = (0, import_react53.useState)("");
12544
- const [copied, setCopied] = (0, import_react53.useState)(false);
12545
- (0, import_react53.useEffect)(() => {
12440
+ const [qrCodeUrl, setQrCodeUrl] = (0, import_react51.useState)("");
12441
+ const [copied, setCopied] = (0, import_react51.useState)(false);
12442
+ (0, import_react51.useEffect)(() => {
12546
12443
  if (open && address) {
12547
12444
  import_qrcode.default.toDataURL(address, {
12548
12445
  width: 200,
@@ -12555,7 +12452,7 @@ function ReceiveLumiaMenu() {
12555
12452
  });
12556
12453
  }
12557
12454
  }, [open, address]);
12558
- const handleCopy = (0, import_react53.useCallback)(async () => {
12455
+ const handleCopy = (0, import_react51.useCallback)(async () => {
12559
12456
  if (!address) return;
12560
12457
  try {
12561
12458
  await navigator.clipboard.writeText(address);
@@ -12601,7 +12498,7 @@ function ReceiveLumiaMenu() {
12601
12498
 
12602
12499
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
12603
12500
  var import_lucide_react45 = require("lucide-react");
12604
- var import_react54 = require("react");
12501
+ var import_react52 = require("react");
12605
12502
 
12606
12503
  // src/internal/components/SettingsMenu/constants.ts
12607
12504
  var import_lucide_react44 = require("lucide-react");
@@ -12636,35 +12533,46 @@ function SettingsMenu() {
12636
12533
  const setPage = useLayoutDataStore((st) => st.setPage);
12637
12534
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
12638
12535
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
12639
- (0, import_react54.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
12536
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
12537
+ (0, import_react52.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
12640
12538
  useProvidersList();
12641
12539
  const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
12642
12540
  const highlightedKeys = settingsNotifications.map((n) => n.target);
12643
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
12644
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
12645
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react45.ArrowLeft, { className: "h-4 w-4" }) }),
12646
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
12647
- ] }),
12648
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
12649
- Button,
12650
- {
12651
- variant: "outline",
12652
- size: "large",
12653
- onClick,
12654
- disabled: !address,
12655
- className: cn(
12656
- //
12657
- "w-full items-center justify-start",
12658
- highlightedKeys.includes(id) && "animate-glow-warning"
12659
- ),
12660
- children: [
12661
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon2, { className: "w-4 h-4" }),
12662
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { children: name })
12663
- ]
12541
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
12542
+ "div",
12543
+ {
12544
+ style: {
12545
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
12546
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
12664
12547
  },
12665
- id
12666
- )) })
12667
- ] });
12548
+ className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
12549
+ children: [
12550
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
12551
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react45.ArrowLeft, { className: "h-4 w-4" }) }),
12552
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
12553
+ ] }),
12554
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
12555
+ Button,
12556
+ {
12557
+ variant: "outline",
12558
+ size: "large",
12559
+ onClick,
12560
+ disabled: !address,
12561
+ className: cn(
12562
+ //
12563
+ "w-full items-center justify-start",
12564
+ highlightedKeys.includes(id) && "animate-glow-warning"
12565
+ ),
12566
+ children: [
12567
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon2, { className: "w-4 h-4" }),
12568
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { children: name })
12569
+ ]
12570
+ },
12571
+ id
12572
+ )) })
12573
+ ]
12574
+ }
12575
+ );
12668
12576
  }
12669
12577
 
12670
12578
  // src/internal/components/TermsOfService.tsx
@@ -12695,9 +12603,9 @@ function TermsOfService() {
12695
12603
  }
12696
12604
 
12697
12605
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
12698
- var import_react_query37 = require("@tanstack/react-query");
12606
+ var import_react_query35 = require("@tanstack/react-query");
12699
12607
  var import_lucide_react48 = require("lucide-react");
12700
- var import_react55 = require("react");
12608
+ var import_react53 = require("react");
12701
12609
 
12702
12610
  // src/internal/components/TransactionsMenu/api.ts
12703
12611
  init_base();
@@ -13162,24 +13070,24 @@ function TransactionsGroup(props) {
13162
13070
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
13163
13071
  var import_jsx_runtime70 = require("react/jsx-runtime");
13164
13072
  function TransactionsMenu() {
13165
- const qc = (0, import_react_query37.useQueryClient)();
13073
+ const qc = (0, import_react_query35.useQueryClient)();
13166
13074
  const address = useLumiaPassportSession((st) => st.address);
13167
13075
  const page = useLayoutDataStore((st) => st.page);
13168
13076
  const setPage = useLayoutDataStore((st) => st.setPage);
13169
13077
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
13170
- const [expandedGroups, setExpandedGroups] = (0, import_react55.useState)({});
13078
+ const [expandedGroups, setExpandedGroups] = (0, import_react53.useState)({});
13171
13079
  const {
13172
13080
  data: txHistoryGroups = [],
13173
13081
  isLoading: isTxHistoryLoading,
13174
13082
  isFetching: isTxHistoryFetching,
13175
13083
  error: txHistoryError
13176
- } = (0, import_react_query37.useQuery)({
13084
+ } = (0, import_react_query35.useQuery)({
13177
13085
  retry: false,
13178
13086
  enabled: !!address && page === "transactions",
13179
13087
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
13180
13088
  queryFn: () => getTransactionsListQuery(address)
13181
13089
  });
13182
- const refreshTxHistory = (0, import_react55.useCallback)(
13090
+ const refreshTxHistory = (0, import_react53.useCallback)(
13183
13091
  () => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
13184
13092
  [qc, address]
13185
13093
  );
@@ -13189,7 +13097,7 @@ function TransactionsMenu() {
13189
13097
  {
13190
13098
  style: {
13191
13099
  "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
13192
- "--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
13100
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
13193
13101
  },
13194
13102
  className: "list-scrollbar-y w-full p-[var(--l-pass-pd)]",
13195
13103
  children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
@@ -13333,8 +13241,6 @@ var import_jsx_runtime71 = require("react/jsx-runtime");
13333
13241
  var CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
13334
13242
  function usePageMapper() {
13335
13243
  const page = useLayoutDataStore((st) => st.page);
13336
- const session = useLumiaPassportSession((st) => st.session);
13337
- const protectedRoutes = !!session ? PAGE_MAP : PAGE_MAP;
13338
13244
  const {
13339
13245
  setDialogTitle,
13340
13246
  setDialogDescription,
@@ -13343,7 +13249,7 @@ function usePageMapper() {
13343
13249
  setIsDialogOpen,
13344
13250
  setIsDialogClosing
13345
13251
  } = useLayoutStore();
13346
- const closeDialog = (0, import_react56.useCallback)(() => {
13252
+ const closeDialog = (0, import_react54.useCallback)(() => {
13347
13253
  setIsDialogClosing(true);
13348
13254
  setTimeout(() => {
13349
13255
  setDialogContent(null);
@@ -13354,7 +13260,7 @@ function usePageMapper() {
13354
13260
  setIsDialogOpen(false);
13355
13261
  }, CLEAR_DIALOG_TIMEOUT);
13356
13262
  }, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
13357
- const openDialog = (0, import_react56.useCallback)(
13263
+ const openDialog = (0, import_react54.useCallback)(
13358
13264
  (pageItem) => {
13359
13265
  const PageContentComponent = pageItem.component;
13360
13266
  setDialogTitle(pageItem.title);
@@ -13364,20 +13270,20 @@ function usePageMapper() {
13364
13270
  },
13365
13271
  [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
13366
13272
  );
13367
- (0, import_react56.useEffect)(() => {
13273
+ (0, import_react54.useEffect)(() => {
13368
13274
  if (page === null) return closeDialog();
13369
- const pageItem = protectedRoutes[page];
13275
+ const pageItem = PAGE_MAP[page];
13370
13276
  if (!pageItem) {
13371
13277
  alert(`[PASSPORT MAPPER]: Requested page "${page}" is not existing or not allowed. Closing dialog...`);
13372
13278
  closeDialog();
13373
13279
  return;
13374
13280
  }
13375
13281
  openDialog(pageItem);
13376
- }, [protectedRoutes, page, closeDialog, openDialog]);
13282
+ }, [page, closeDialog, openDialog]);
13377
13283
  }
13378
13284
 
13379
13285
  // src/internal/hooks/useSettingsNotifications.ts
13380
- var import_react57 = require("react");
13286
+ var import_react55 = require("react");
13381
13287
  init_auth();
13382
13288
  var EMAIL_NOT_CONNECTED_NOTIFICATION = {
13383
13289
  id: "email-not-connected",
@@ -13388,7 +13294,7 @@ function useSettingsNotifications() {
13388
13294
  const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
13389
13295
  const providers = import_auth3.jwtTokenManager.getProviders();
13390
13296
  const hasEmail = providers.includes("email");
13391
- (0, import_react57.useEffect)(() => {
13297
+ (0, import_react55.useEffect)(() => {
13392
13298
  setSettingsNotifications({
13393
13299
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
13394
13300
  status: hasEmail ? "resolved" : "active"
@@ -13397,7 +13303,7 @@ function useSettingsNotifications() {
13397
13303
  }
13398
13304
 
13399
13305
  // src/internal/hooks/useWalletStatus.ts
13400
- var import_react58 = require("react");
13306
+ var import_react56 = require("react");
13401
13307
  init_auth();
13402
13308
  function useWalletStatus() {
13403
13309
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
@@ -13407,7 +13313,7 @@ function useWalletStatus() {
13407
13313
  config: { current: config },
13408
13314
  callbacks
13409
13315
  } = useLumiaPassportConfig();
13410
- (0, import_react58.useEffect)(() => {
13316
+ (0, import_react56.useEffect)(() => {
13411
13317
  if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
13412
13318
  const userId = import_auth3.jwtTokenManager.getUserId();
13413
13319
  const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
@@ -13437,15 +13343,13 @@ function LumiaPassportDialog() {
13437
13343
  const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
13438
13344
  const setPage = useLayoutDataStore((st) => st.setPage);
13439
13345
  const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
13440
- (0, import_react59.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
13346
+ (0, import_react57.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
13441
13347
  usePageMapper();
13442
13348
  useAutoConnect();
13443
- useCheckVaultStatus();
13444
13349
  useBackupStatusChanges();
13445
13350
  useDetectMaxScrollHeight();
13446
13351
  useSettingsNotifications();
13447
13352
  useListenIframeAuthEvents();
13448
- useBackupWarning();
13449
13353
  useWalletStatus();
13450
13354
  const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
13451
13355
  return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
@@ -13479,23 +13383,23 @@ function LumiaPassportDialog() {
13479
13383
  }
13480
13384
 
13481
13385
  // src/internal/components/TssManager.tsx
13482
- var import_react60 = __toESM(require("react"), 1);
13386
+ var import_react58 = __toESM(require("react"), 1);
13483
13387
  init_auth();
13484
13388
  init_clients();
13485
- var TssManagerWithRef = import_react60.default.forwardRef((props, ref) => {
13389
+ var TssManagerWithRef = import_react58.default.forwardRef((props, ref) => {
13486
13390
  const { mpcPin } = props;
13487
13391
  const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
13488
13392
  const setStatus = useLumiaPassportSession((st) => st.setStatus);
13489
13393
  const setSession = useLumiaPassportSession((st) => st.setSession);
13490
13394
  const setAddress = useLumiaPassportSession((st) => st.setAddress);
13491
- const onSessionCreated = (0, import_react60.useCallback)(
13395
+ const onSessionCreated = (0, import_react58.useCallback)(
13492
13396
  (session, address) => {
13493
13397
  setSession(session);
13494
13398
  setAddress(address);
13495
13399
  },
13496
13400
  [setSession, setAddress]
13497
13401
  );
13498
- const createSessionWithKeyshare = import_react60.default.useCallback(
13402
+ const createSessionWithKeyshare = import_react58.default.useCallback(
13499
13403
  async (userId, hasServerKeyshare, isNewUser) => {
13500
13404
  setStatus("checking key management setup...");
13501
13405
  await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
@@ -13516,18 +13420,18 @@ var TssManagerWithRef = import_react60.default.forwardRef((props, ref) => {
13516
13420
  },
13517
13421
  [setStatus, usePaymaster, mpcPin]
13518
13422
  );
13519
- import_react60.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
13423
+ import_react58.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
13520
13424
  return null;
13521
13425
  });
13522
13426
 
13523
13427
  // src/internal/components/WalletConnectHandler.tsx
13524
13428
  var import_rainbowkit = require("@rainbow-me/rainbowkit");
13525
- var import_react_query38 = require("@tanstack/react-query");
13526
- var import_react61 = __toESM(require("react"), 1);
13429
+ var import_react_query36 = require("@tanstack/react-query");
13430
+ var import_react59 = __toESM(require("react"), 1);
13527
13431
  var import_wagmi5 = require("wagmi");
13528
13432
  init_wallet();
13529
13433
  function WalletConnectHandler() {
13530
- const qc = (0, import_react_query38.useQueryClient)();
13434
+ const qc = (0, import_react_query36.useQueryClient)();
13531
13435
  const callbacks = useLumiaPassportConfig().callbacks;
13532
13436
  const passportWalletAddress = useLumiaPassportSession((st) => st.address);
13533
13437
  const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi5.useAccount)();
@@ -13541,7 +13445,7 @@ function WalletConnectHandler() {
13541
13445
  const setManageWalletLinkError = useManageWalletStore((st) => st.setLinkError);
13542
13446
  const setLinkIsLoading = useManageWalletStore((st) => st.setLinkIsLoading);
13543
13447
  const setProviderType = useManageWalletStore((st) => st.setProviderType);
13544
- const onLinkingComplete = (0, import_react61.useCallback)(
13448
+ const onLinkingComplete = (0, import_react59.useCallback)(
13545
13449
  async (success) => {
13546
13450
  setIsWalletLinking(false);
13547
13451
  if (!success && !passportWalletAddress) {
@@ -13568,8 +13472,8 @@ function WalletConnectHandler() {
13568
13472
  },
13569
13473
  [qc, passportWalletAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
13570
13474
  );
13571
- const [hasStartedLinking, setHasStartedLinking] = import_react61.default.useState(false);
13572
- (0, import_react61.useEffect)(() => {
13475
+ const [hasStartedLinking, setHasStartedLinking] = import_react59.default.useState(false);
13476
+ (0, import_react59.useEffect)(() => {
13573
13477
  if (isWalletLinking && !hasStartedLinking) {
13574
13478
  setHasStartedLinking(true);
13575
13479
  setProviderType(null);
@@ -13589,14 +13493,14 @@ function WalletConnectHandler() {
13589
13493
  if (isConnected) disconnect();
13590
13494
  }
13591
13495
  }, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
13592
- (0, import_react61.useEffect)(() => {
13496
+ (0, import_react59.useEffect)(() => {
13593
13497
  if (hasStartedLinking && !connectModalOpen && !isConnected && isWalletLinking) {
13594
13498
  console.log("[WalletConnectHandler] Modal closed without connecting");
13595
13499
  onLinkingComplete(false);
13596
13500
  setHasStartedLinking(false);
13597
13501
  }
13598
13502
  }, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
13599
- const { mutate: handleWalletSign, isPending: isWalletSigning } = (0, import_react_query38.useMutation)({
13503
+ const { mutate: handleWalletSign, isPending: isWalletSigning } = (0, import_react_query36.useMutation)({
13600
13504
  mutationFn: async (payload) => {
13601
13505
  const { chainId, signingWalletAddress } = payload;
13602
13506
  if (!signingWalletAddress || !chainId) {
@@ -13665,7 +13569,7 @@ function WalletConnectHandler() {
13665
13569
  setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
13666
13570
  }
13667
13571
  });
13668
- (0, import_react61.useEffect)(() => {
13572
+ (0, import_react59.useEffect)(() => {
13669
13573
  if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
13670
13574
  console.log("[WalletConnectHandler] handleWalletSign triggered");
13671
13575
  handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
@@ -13701,7 +13605,7 @@ var useLumiaPassportSession = (0, import_zustand6.create)((set) => ({
13701
13605
  }));
13702
13606
  function LumiaPassportSessionProvider({ children }) {
13703
13607
  const config = useLumiaPassportConfig().config;
13704
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_react62.Fragment, { children: [
13608
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_react60.Fragment, { children: [
13705
13609
  children,
13706
13610
  config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(WalletConnectHandler, {}),
13707
13611
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(BalanceFeedProvider, {}),
@@ -13753,14 +13657,14 @@ var LumiaWagmiProvider = ({ children }) => {
13753
13657
 
13754
13658
  // src/context/LumiaPassportContext.tsx
13755
13659
  var import_jsx_runtime75 = require("react/jsx-runtime");
13756
- var LumiaPassportContext = (0, import_react63.createContext)(void 0);
13660
+ var LumiaPassportContext = (0, import_react61.createContext)(void 0);
13757
13661
  function LumiaPassportProvider(props) {
13758
13662
  const { children, projectId, initialConfig = {}, callbacks } = props;
13759
13663
  const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
13760
13664
  const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
13761
- (0, import_react63.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
13762
- const config = (0, import_react63.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
13763
- const updateConfig = (0, import_react63.useCallback)((updates) => {
13665
+ (0, import_react61.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
13666
+ const config = (0, import_react61.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
13667
+ const updateConfig = (0, import_react61.useCallback)((updates) => {
13764
13668
  const prev = config.current;
13765
13669
  const next = { ...prev };
13766
13670
  if (updates.projectId !== void 0) next.projectId = updates.projectId;
@@ -13795,7 +13699,7 @@ function LumiaPassportProvider(props) {
13795
13699
  }
13796
13700
  config.current = next;
13797
13701
  }, []);
13798
- (0, import_react63.useEffect)(() => {
13702
+ (0, import_react61.useEffect)(() => {
13799
13703
  if (typeof window === "undefined" || !projectId) return;
13800
13704
  const mergedConfig = (0, import_lodash_es4.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
13801
13705
  updateConfig(mergedConfig);
@@ -13840,19 +13744,21 @@ function LumiaPassportProvider(props) {
13840
13744
  console.error("[LumiaPassport] Error setting up iframe manager:", error);
13841
13745
  }
13842
13746
  }, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
13843
- const contextValue = (0, import_react63.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
13747
+ const contextValue = (0, import_react61.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
13844
13748
  return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
13845
13749
  }
13846
13750
  var useLumiaPassportConfig = () => {
13847
- const ctx = (0, import_react63.useContext)(LumiaPassportContext);
13751
+ const ctx = (0, import_react61.useContext)(LumiaPassportContext);
13848
13752
  if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
13849
13753
  return ctx;
13850
13754
  };
13851
13755
 
13852
13756
  // src/components/ConnectWalletButton.tsx
13757
+ var import_react_query37 = require("@tanstack/react-query");
13853
13758
  var import_lucide_react49 = require("lucide-react");
13854
- var import_react64 = require("react");
13759
+ var import_react62 = require("react");
13855
13760
  init_auth();
13761
+ init_profile();
13856
13762
  var import_jsx_runtime76 = (
13857
13763
  /** external Buttons can be provided */
13858
13764
  require("react/jsx-runtime")
@@ -13875,10 +13781,16 @@ function ConnectWalletButton(props) {
13875
13781
  const colorMode = useLayoutStore((st) => st.colorMode);
13876
13782
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
13877
13783
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
13878
- (0, import_react64.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
13784
+ (0, import_react62.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
13785
+ const { data: profile, isLoading: isProfileLoading } = (0, import_react_query37.useQuery)({
13786
+ retry: false,
13787
+ enabled: !!address,
13788
+ queryKey: [QUERY_KEYS.userProfile, address],
13789
+ queryFn: getUserProfile
13790
+ });
13879
13791
  const avatar = import_auth3.jwtTokenManager.getAvatar();
13880
- const displayName = import_auth3.jwtTokenManager.getDisplayName();
13881
- const indicators = (0, import_react64.useMemo)(() => {
13792
+ const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth3.jwtTokenManager.getDisplayName();
13793
+ const indicators = (0, import_react62.useMemo)(() => {
13882
13794
  const userId = import_auth3.jwtTokenManager.getUserId();
13883
13795
  if (!userId) return { server: false, local: false, backup: false };
13884
13796
  const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
@@ -13934,7 +13846,7 @@ function ConnectWalletButton(props) {
13934
13846
  /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "w-12 h-12 rounded-full bg-[var(--l-pass-fg)] flex items-center justify-center flex-shrink-0", children: avatar ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LumiaIcon, { width: 48, height: 48 }) }),
13935
13847
  /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--l-pass-fg)]", children: [
13936
13848
  /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
13937
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--l-pass-fg)]", children: displayName }),
13849
+ isProfileLoading ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react49.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--l-pass-fg)]", children: displayName }),
13938
13850
  /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(KYCStatus, {})
13939
13851
  ] }),
13940
13852
  /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(BalanceView, {})
@@ -14048,13 +13960,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
14048
13960
  var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
14049
13961
 
14050
13962
  // src/hooks/useLumiaPassportOpen.ts
14051
- var import_react65 = require("react");
13963
+ var import_react63 = require("react");
14052
13964
  function useLumiaPassportOpen() {
14053
13965
  const page = useLayoutDataStore((st) => st.page);
14054
13966
  const setPage = useLayoutDataStore((st) => st.setPage);
14055
13967
  const setPageParams = useLayoutDataStore((st) => st.setPageParams);
14056
13968
  const address = useLumiaPassportSession((st) => st.address);
14057
- const open = (0, import_react65.useCallback)(
13969
+ const open = (0, import_react63.useCallback)(
14058
13970
  (passportPage, params) => {
14059
13971
  if (!address) return setPage("auth" /* AUTH */);
14060
13972
  if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -14063,12 +13975,12 @@ function useLumiaPassportOpen() {
14063
13975
  },
14064
13976
  [setPage, setPageParams, address]
14065
13977
  );
14066
- const close = (0, import_react65.useCallback)(() => setPage(null), [setPage]);
13978
+ const close = (0, import_react63.useCallback)(() => setPage(null), [setPage]);
14067
13979
  return { open, close, isOpen: page !== null };
14068
13980
  }
14069
13981
 
14070
13982
  // src/hooks/useLumiaPassportColorMode.ts
14071
- var import_react66 = require("react");
13983
+ var import_react64 = require("react");
14072
13984
  function useLumiaPassportColorMode() {
14073
13985
  const {
14074
13986
  config: { current: config }
@@ -14076,14 +13988,14 @@ function useLumiaPassportColorMode() {
14076
13988
  const preferedColorMode = config?.preferedColorMode;
14077
13989
  const colorMode = useLayoutStore((st) => st.colorMode);
14078
13990
  const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
14079
- const setColorMode = (0, import_react66.useCallback)(
13991
+ const setColorMode = (0, import_react64.useCallback)(
14080
13992
  (mode) => {
14081
13993
  localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
14082
13994
  handleStoreColorMode(mode);
14083
13995
  },
14084
13996
  [handleStoreColorMode]
14085
13997
  );
14086
- (0, import_react66.useEffect)(() => {
13998
+ (0, import_react64.useEffect)(() => {
14087
13999
  let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
14088
14000
  if (!targetColorMode && !preferedColorMode) {
14089
14001
  const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -14126,7 +14038,7 @@ function ThemeToggle(props) {
14126
14038
 
14127
14039
  // src/context/RainbowKitContext.tsx
14128
14040
  var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
14129
- var import_react67 = require("react");
14041
+ var import_react65 = require("react");
14130
14042
  var import_wagmi9 = require("wagmi");
14131
14043
 
14132
14044
  // src/config/rainbowkit.ts
@@ -14358,8 +14270,8 @@ var import_jsx_runtime78 = require("react/jsx-runtime");
14358
14270
  function LumiaRainbowKitProvider({ children }) {
14359
14271
  const config = useLumiaPassportConfig().config;
14360
14272
  const colorMode = useLayoutStore((st) => st.colorMode);
14361
- const rainbowConfig2 = (0, import_react67.useMemo)(() => createRainbowConfig(config.current?.wallet?.walletConnectProjectId), [config]);
14362
- const customTheme = (0, import_react67.useMemo)(
14273
+ const rainbowConfig2 = (0, import_react65.useMemo)(() => createRainbowConfig(config.current?.wallet?.walletConnectProjectId), [config]);
14274
+ const customTheme = (0, import_react65.useMemo)(
14363
14275
  () => colorMode === "dark" ? {
14364
14276
  ...(0, import_rainbowkit3.darkTheme)(),
14365
14277
  colors: { ...(0, import_rainbowkit3.darkTheme)().colors, ...rainbowTheme.darkMode.colors },
@@ -14811,14 +14723,14 @@ var Hash = ({
14811
14723
  };
14812
14724
 
14813
14725
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
14814
- var import_react68 = require("react");
14726
+ var import_react66 = require("react");
14815
14727
  init_base();
14816
14728
  var import_jsx_runtime83 = require("react/jsx-runtime");
14817
14729
  var TransactionsList = ({ address, itemsCount = 10 }) => {
14818
- const [transactions, setTransactions] = (0, import_react68.useState)([]);
14819
- const [loading, setLoading] = (0, import_react68.useState)(true);
14820
- const [error, setError] = (0, import_react68.useState)(null);
14821
- (0, import_react68.useEffect)(() => {
14730
+ const [transactions, setTransactions] = (0, import_react66.useState)([]);
14731
+ const [loading, setLoading] = (0, import_react66.useState)(true);
14732
+ const [error, setError] = (0, import_react66.useState)(null);
14733
+ (0, import_react66.useEffect)(() => {
14822
14734
  const fetchTransactions = async () => {
14823
14735
  try {
14824
14736
  setLoading(true);
@@ -15120,11 +15032,11 @@ function useUserOpStatus(options = {}) {
15120
15032
 
15121
15033
  // src/hooks/useLogout.ts
15122
15034
  var import_auth18 = require("@lumiapassport/core/auth");
15123
- var import_react69 = require("react");
15035
+ var import_react67 = require("react");
15124
15036
  function useLogout() {
15125
15037
  const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
15126
15038
  const { callbacks } = useLumiaPassportConfig();
15127
- const logout2 = (0, import_react69.useCallback)(async () => {
15039
+ const logout2 = (0, import_react67.useCallback)(async () => {
15128
15040
  const prevAddress = address;
15129
15041
  let userId = null;
15130
15042
  setIsLoading(true);