@lumiapassport/ui-kit 1.13.11 → 1.14.1

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
@@ -163,15 +163,10 @@ var init_lumiaPassport = __esm({
163
163
  title: "Sign in",
164
164
  subtitle: void 0,
165
165
  authOrder: ["passkey", "email", "social"],
166
- // fonts: {
167
- // base: 'system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif',
168
- // heading: 'system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif'
169
- // },
170
166
  branding: {
171
167
  tagline: "Lumia Passport MPC",
172
168
  link: { text: "Lumia Passport MPC", url: "/mpc-security" }
173
169
  }
174
- // modal: { width: '400px', borderRadius: '24px' }
175
170
  },
176
171
  network: {
177
172
  name: "Lumia Beam",
@@ -2455,7 +2450,6 @@ var init_iframe_manager = __esm({
2455
2450
  this.iframe = null;
2456
2451
  this.sessionToken = null;
2457
2452
  this.isReady = false;
2458
- // private themeColors?: IframeManagerConfig['themeColors']
2459
2453
  // Message handling
2460
2454
  this.pendingRequests = /* @__PURE__ */ new Map();
2461
2455
  this.usedNonces = /* @__PURE__ */ new Set();
@@ -2481,7 +2475,6 @@ var init_iframe_manager = __esm({
2481
2475
  this.log("[IframeManager] Initialized with:", {
2482
2476
  iframeUrl: this.iframeUrl,
2483
2477
  projectId: this.projectId
2484
- // hasThemeColors: !!this.themeColors
2485
2478
  });
2486
2479
  }
2487
2480
  /**
@@ -4288,17 +4281,17 @@ __export(index_exports, {
4288
4281
  module.exports = __toCommonJS(index_exports);
4289
4282
 
4290
4283
  // src/styles/built.css
4291
- 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-2{top:-.5rem}.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-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-\\[60\\]{z-index:60}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.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-1\\.5{margin-right:.375rem}.lumia-scope .mr-2{margin-right:.5rem}.lumia-scope .mr-4{margin-right:1rem}.lumia-scope .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.lumia-scope .mt-1{margin-top:.25rem}.lumia-scope .mt-1\\.5{margin-top:.375rem}.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 .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[32px\\]{height:32px}.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-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.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-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .min-w-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[680px\\]{max-width:680px}.lumia-scope .max-w-\\[var\\(--l-pass-maw\\)\\]{max-width:var(--l-pass-maw)}.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-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-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-blue-900\\/40{border-color:rgba(30,58,138,.4)}.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-800\\/80{border-color:rgba(153,27,27,.8)}.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-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-\\[var\\(--l-pass-success\\)\\]{background-color:var(--l-pass-success)}.lumia-scope .bg-\\[var\\(--l-pass-warning\\)\\]{background-color:var(--l-pass-warning)}.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-900\\/20{background-color:rgba(30,58,138,.2)}.lumia-scope .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}.lumia-scope .bg-blue-900\\/40{background-color:rgba(30,58,138,.4)}.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-900\\/30{background-color:rgba(20,83,45,.3)}.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-700\\/80{background-color:rgba(185,28,28,.8)}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/90{background-color:rgba(69,10,10,.9)}.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-2\\.5{padding:.625rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-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-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-\\[11px\\]{font-size:11px}.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-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-primary\\)\\]{color:var(--l-pass-primary)}.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-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-400\\/80{color:rgba(96,165,250,.8)}.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-300\\/95{color:hsla(0,94%,82%,.95)}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-400\\/80{color:hsla(0,91%,71%,.8)}.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-600\\/90{color:rgba(220,38,38,.9)}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.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\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;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 .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-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.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-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/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-purple-100:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-600\\/90:hover{background-color:rgba(220,38,38,.9)}.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-red-900\\/20:hover{background-color:rgba(127,29,29,.2)}.lumia-scope .hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .hover\\:opacity-80:hover{opacity:.8}.lumia-scope .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .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 .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.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-100:disabled{opacity:1}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (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\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-5 svg){height:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!h-6 svg){height:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-5 svg){width:1.25rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:\\!w-6 svg){width:1.5rem!important}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
4284
+ 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-2{top:-.5rem}.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-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.lumia-scope .right-\\[var\\(--l-pass-pd\\)\\]{right:var(--l-pass-pd)}.lumia-scope .right-full{right:100%}.lumia-scope .top-0{top:0}.lumia-scope .top-1{top:.25rem}.lumia-scope .top-1\\/2{top:50%}.lumia-scope .top-3{top:.75rem}.lumia-scope .top-4{top:1rem}.lumia-scope .top-\\[var\\(--l-pass-pd\\)\\]{top:var(--l-pass-pd)}.lumia-scope .top-full{top:100%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[9998\\]{z-index:9998}.lumia-scope .z-\\[9999\\]{z-index:9999}.lumia-scope .-m-px{margin:-1px}.lumia-scope .m-0{margin:0}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lumia-scope .mx-1{margin-left:.25rem;margin-right:.25rem}.lumia-scope .mx-auto{margin-left:auto;margin-right:auto}.lumia-scope .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lumia-scope .my-auto{margin-top:auto;margin-bottom:auto}.lumia-scope .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .mb-\\[var\\(--l-pass-gap\\)\\]{margin-bottom:var(--l-pass-gap)}.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 .size-4{width:1rem;height:1rem}.lumia-scope .size-5{width:1.25rem;height:1.25rem}.lumia-scope .\\!h-5{height:1.25rem!important}.lumia-scope .\\!h-6{height:1.5rem!important}.lumia-scope .h-10{height:2.5rem}.lumia-scope .h-11{height:2.75rem}.lumia-scope .h-12{height:3rem}.lumia-scope .h-14{height:3.5rem}.lumia-scope .h-16{height:4rem}.lumia-scope .h-2{height:.5rem}.lumia-scope .h-2\\.5{height:.625rem}.lumia-scope .h-20{height:5rem}.lumia-scope .h-3{height:.75rem}.lumia-scope .h-3\\.5{height:.875rem}.lumia-scope .h-4{height:1rem}.lumia-scope .h-48{height:12rem}.lumia-scope .h-5{height:1.25rem}.lumia-scope .h-6{height:1.5rem}.lumia-scope .h-8{height:2rem}.lumia-scope .h-9{height:2.25rem}.lumia-scope .h-\\[100dvh\\]{height:100dvh}.lumia-scope .h-\\[32px\\]{height:32px}.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-5{width:1.25rem!important}.lumia-scope .\\!w-6{width:1.5rem!important}.lumia-scope .w-10{width:2.5rem}.lumia-scope .w-12{width:3rem}.lumia-scope .w-16{width:4rem}.lumia-scope .w-2{width:.5rem}.lumia-scope .w-2\\.5{width:.625rem}.lumia-scope .w-20{width:5rem}.lumia-scope .w-3{width:.75rem}.lumia-scope .w-3\\.5{width:.875rem}.lumia-scope .w-4{width:1rem}.lumia-scope .w-48{width:12rem}.lumia-scope .w-5{width:1.25rem}.lumia-scope .w-6{width:1.5rem}.lumia-scope .w-8{width:2rem}.lumia-scope .w-9{width:2.25rem}.lumia-scope .w-\\[100dvw\\]{width:100dvw}.lumia-scope .w-\\[var\\(--l-pass-maw\\)\\]{width:var(--l-pass-maw)}.lumia-scope .w-fit{width:-moz-fit-content;width:fit-content}.lumia-scope .w-full{width:100%}.lumia-scope .w-px{width:1px}.lumia-scope .min-w-0{min-width:0}.lumia-scope .min-w-16{min-width:4rem}.lumia-scope .min-w-24{min-width:6rem}.lumia-scope .min-w-32{min-width:8rem}.lumia-scope .min-w-\\[256px\\]{min-width:256px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[144px\\]{max-width:144px}.lumia-scope .max-w-\\[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-error)}50%{transform:scale(.97);box-shadow:0 0 4px var(--l-pass-bg-error)}}.lumia-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.lumia-scope .animate-pulse-warning{animation:pulse-warning 2s ease infinite}@keyframes spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-default{cursor:default}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.lumia-scope .cursor-text{cursor:text}.lumia-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.lumia-scope .resize{resize:both}.lumia-scope .list-inside{list-style-position:inside}.lumia-scope .list-disc{list-style-type:disc}.lumia-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.lumia-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lumia-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lumia-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lumia-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lumia-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lumia-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lumia-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lumia-scope .flex-row{flex-direction:row}.lumia-scope .flex-col{flex-direction:column}.lumia-scope .flex-col-reverse{flex-direction:column-reverse}.lumia-scope .flex-wrap{flex-wrap:wrap}.lumia-scope .place-content-center{place-content:center}.lumia-scope .items-start{align-items:flex-start}.lumia-scope .items-end{align-items:flex-end}.lumia-scope .items-center{align-items:center}.lumia-scope .justify-start{justify-content:flex-start}.lumia-scope .justify-end{justify-content:flex-end}.lumia-scope .justify-center{justify-content:center}.lumia-scope .justify-between{justify-content:space-between}.lumia-scope .justify-evenly{justify-content:space-evenly}.lumia-scope .gap-0{gap:0}.lumia-scope .gap-1{gap:.25rem}.lumia-scope .gap-2{gap:.5rem}.lumia-scope .gap-3{gap:.75rem}.lumia-scope .gap-4{gap:1rem}.lumia-scope .gap-\\[10px\\]{gap:10px}.lumia-scope .gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .gap-\\[var\\(--l-pass-pd\\)\\]{gap:var(--l-pass-pd)}.lumia-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.lumia-scope :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.lumia-scope .overflow-auto{overflow:auto}.lumia-scope .overflow-hidden{overflow:hidden}.lumia-scope .overflow-visible{overflow:visible}.lumia-scope .overflow-y-auto{overflow-y:auto}.lumia-scope .overflow-y-hidden{overflow-y:hidden}.lumia-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lumia-scope .text-ellipsis{text-overflow:ellipsis}.lumia-scope .whitespace-nowrap{white-space:nowrap}.lumia-scope .whitespace-pre-line{white-space:pre-line}.lumia-scope .whitespace-pre-wrap{white-space:pre-wrap}.lumia-scope .break-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-bg\\)\\]{background-color:var(--l-pass-bg)}.lumia-scope .bg-\\[var\\(--l-pass-bg-error\\)\\]{background-color:var(--l-pass-bg-error)}.lumia-scope .bg-\\[var\\(--l-pass-bg-info\\)\\]{background-color:var(--l-pass-bg-info)}.lumia-scope .bg-\\[var\\(--l-pass-bg-success\\)\\]{background-color:var(--l-pass-bg-success)}.lumia-scope .bg-\\[var\\(--l-pass-bg-warning\\)\\]{background-color:var(--l-pass-bg-warning)}.lumia-scope .bg-\\[var\\(--l-pass-fg\\)\\]{background-color:var(--l-pass-fg)}.lumia-scope .bg-\\[var\\(--l-pass-overlay\\)\\]{background-color:var(--l-pass-overlay)}.lumia-scope .bg-\\[var\\(--l-pass-primary\\)\\]{background-color:var(--l-pass-primary)}.lumia-scope .bg-\\[var\\(--l-pass-secondary\\)\\]{background-color:var(--l-pass-secondary)}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.lumia-scope .bg-pink-600{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.lumia-scope .bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.lumia-scope .bg-transparent{background-color:transparent}.lumia-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.lumia-scope .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.lumia-scope .bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.lumia-scope .from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.lumia-scope .to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.lumia-scope .to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.lumia-scope .object-contain{-o-object-fit:contain;object-fit:contain}.lumia-scope .object-cover{-o-object-fit:cover;object-fit:cover}.lumia-scope .p-0{padding:0}.lumia-scope .p-1{padding:.25rem}.lumia-scope .p-2{padding:.5rem}.lumia-scope .p-3{padding:.75rem}.lumia-scope .p-4{padding:1rem}.lumia-scope .p-5{padding:1.25rem}.lumia-scope .p-6{padding:1.5rem}.lumia-scope .p-8{padding:2rem}.lumia-scope .p-\\[var\\(--l-pass-pd\\)\\]{padding:var(--l-pass-pd)}.lumia-scope .px-0{padding-left:0;padding-right:0}.lumia-scope .px-12{padding-left:3rem;padding-right:3rem}.lumia-scope .px-2{padding-left:.5rem;padding-right:.5rem}.lumia-scope .px-2\\.5{padding-left:.625rem;padding-right:.625rem}.lumia-scope .px-3{padding-left:.75rem;padding-right:.75rem}.lumia-scope .px-4{padding-left:1rem;padding-right:1rem}.lumia-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.lumia-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.lumia-scope .px-\\[var\\(--l-pass-pd\\)\\]{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .py-0{padding-top:0;padding-bottom:0}.lumia-scope .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.lumia-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.lumia-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.lumia-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.lumia-scope .py-4{padding-top:1rem;padding-bottom:1rem}.lumia-scope .py-8{padding-top:2rem;padding-bottom:2rem}.lumia-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.lumia-scope .py-\\[var\\(--l-pass-pd\\)\\]{padding-top:var(--l-pass-pd);padding-bottom:var(--l-pass-pd)}.lumia-scope .pb-2{padding-bottom:.5rem}.lumia-scope .pb-3{padding-bottom:.75rem}.lumia-scope .pb-4{padding-bottom:1rem}.lumia-scope .pb-5{padding-bottom:1.25rem}.lumia-scope .pb-6{padding-bottom:1.5rem}.lumia-scope .pl-11{padding-left:2.75rem}.lumia-scope .pr-10{padding-right:2.5rem}.lumia-scope .pr-16{padding-right:4rem}.lumia-scope .pt-0{padding-top:0}.lumia-scope .pt-2{padding-top:.5rem}.lumia-scope .pt-3{padding-top:.75rem}.lumia-scope .pt-4{padding-top:1rem}.lumia-scope .pt-5{padding-top:1.25rem}.lumia-scope .text-left{text-align:left}.lumia-scope .text-center{text-align:center}.lumia-scope .text-right{text-align:right}.lumia-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lumia-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lumia-scope .text-2xl{font-size:1.5rem;line-height:2rem}.lumia-scope .text-3xl{font-size:1.875rem;line-height:2.25rem}.lumia-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.lumia-scope .text-\\[10px\\]{font-size:10px}.lumia-scope .text-base{font-size:1rem;line-height:1.5rem}.lumia-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.lumia-scope .text-sm{font-size:.875rem;line-height:1.25rem}.lumia-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.lumia-scope .text-xs{font-size:.75rem;line-height:1rem}.lumia-scope .font-bold{font-weight:700}.lumia-scope .font-medium{font-weight:500}.lumia-scope .font-semibold{font-weight:600}.lumia-scope .uppercase{text-transform:uppercase}.lumia-scope .italic{font-style:italic}.lumia-scope .leading-4{line-height:1rem}.lumia-scope .leading-5{line-height:1.25rem}.lumia-scope .leading-6{line-height:1.5rem}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-relaxed{line-height:1.625}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.lumia-scope .tracking-wide{letter-spacing:.025em}.lumia-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .text-\\[var\\(--l-pass-bg-error\\)\\]{color:var(--l-pass-bg-error)}.lumia-scope .text-\\[var\\(--l-pass-bg-success\\)\\]{color:var(--l-pass-bg-success)}.lumia-scope .text-\\[var\\(--l-pass-bg-warning\\)\\]{color:var(--l-pass-bg-warning)}.lumia-scope .text-\\[var\\(--l-pass-error\\)\\]{color:var(--l-pass-error)}.lumia-scope .text-\\[var\\(--l-pass-fg\\)\\]{color:var(--l-pass-fg)}.lumia-scope .text-\\[var\\(--l-pass-fg-inverted\\)\\]{color:var(--l-pass-fg-inverted)}.lumia-scope .text-\\[var\\(--l-pass-fg-muted\\)\\]{color:var(--l-pass-fg-muted)}.lumia-scope .text-\\[var\\(--l-pass-info\\)\\]{color:var(--l-pass-info)}.lumia-scope .text-\\[var\\(--l-pass-muted\\)\\]{color:var(--l-pass-muted)}.lumia-scope .text-\\[var\\(--l-pass-success\\)\\]{color:var(--l-pass-success)}.lumia-scope .text-\\[var\\(--l-pass-text-secondary\\)\\]{color:var(--l-pass-text-secondary)}.lumia-scope .text-\\[var\\(--l-pass-warning\\)\\]{color:var(--l-pass-warning)}.lumia-scope .text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}.lumia-scope .text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.lumia-scope .text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.lumia-scope .text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.lumia-scope .text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.lumia-scope .text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.lumia-scope .text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.lumia-scope .text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.lumia-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.lumia-scope .text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.lumia-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.lumia-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.lumia-scope .text-green-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.lumia-scope .text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.lumia-scope .text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.lumia-scope .text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.lumia-scope .text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.lumia-scope .text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.lumia-scope .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.lumia-scope .text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.lumia-scope .text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.lumia-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.lumia-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.lumia-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.lumia-scope .text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.lumia-scope .text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.lumia-scope .text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.lumia-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.lumia-scope .text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.lumia-scope .underline{text-decoration-line:underline}.lumia-scope .underline-offset-4{text-underline-offset:4px}.lumia-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope .opacity-0{opacity:0}.lumia-scope .opacity-100{opacity:1}.lumia-scope .opacity-40{opacity:.4}.lumia-scope .opacity-50{opacity:.5}.lumia-scope .opacity-60{opacity:.6}.lumia-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.lumia-scope .shadow,.lumia-scope .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.lumia-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.lumia-scope .shadow-lg,.lumia-scope .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lumia-scope .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lumia-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.lumia-scope .outline{outline-style:solid}.lumia-scope .blur{--tw-blur:blur(8px)}.lumia-scope .blur,.lumia-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .grayscale{--tw-grayscale:grayscale(100%)}.lumia-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.lumia-scope .backdrop-blur{--tw-backdrop-blur:blur(8px)}.lumia-scope .backdrop-blur,.lumia-scope .backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.lumia-scope .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lumia-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .transition-none{transition-property:none}.lumia-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.lumia-scope .duration-200{transition-duration:.2s}.lumia-scope .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lumia-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lumia-scope{--l-pass-ff:var(--lumia-passport-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--l-pass-maw:var(--lumia-passport-maw,320px);--l-pass-pd:var(--lumia-passport-pd,12px);--l-pass-gap:var(--lumia-passport-gap,10px);--l-pass-bdrs:var(--lumia-passport-bdrs,20px);--l-pass-el-bdrs:var(--lumia-passport-element-bdrs,10px);--l-pass-backdrop-blur:var(--lumia-passport-backdrop-blur,10px)}.lumia-scope[data-lumia-passport-mode=light]{--l-pass-overlay:var(--lumia-passport-overlay,hsla(0,0%,100%,.8));--l-pass-bg:var(--lumia-passport-bg,#fff);--l-pass-fg:var(--lumia-passport-fg,#000);--l-pass-fg-h:var(--lumia-passport-fg-h,rgba(0,0,0,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,rgba(0,0,0,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#fff);--l-pass-fg-muted:var(--lumia-passport-fg-muted,rgba(0,0,0,.6));--l-pass-primary:var(--lumia-passport-primary,#000);--l-pass-primary-h:var(--lumia-passport-primary-h,rgba(0,0,0,.8));--l-pass-primary-a:var(--lumia-passport-primary-a,rgba(0,0,0,.6));--l-pass-secondary:var(--lumia-passport-secondary,#e4e4e4);--l-pass-secondary-h:var(--lumia-passport-secondary-h,hsla(0,0%,89%,.8));--l-pass-secondary-a:var(--lumia-passport-secondary-a,hsla(0,0%,89%,.6));--l-pass-bd:var(--lumia-passport-bd,#c9c9c9);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#a9a9a9);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.1));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#e4e4e4);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope[data-lumia-passport-mode=dark]{--l-pass-overlay:var(--lumia-passport-overlay,rgba(0,0,0,.8));--l-pass-bg:var(--lumia-passport-bg,#1a1a1a);--l-pass-fg:var(--lumia-passport-fg,#fff);--l-pass-fg-h:var(--lumia-passport-fg-h,hsla(0,0%,100%,.6));--l-pass-fg-a:var(--lumia-passport-fg-a,hsla(0,0%,100%,.4));--l-pass-fg-inverted:var(--lumia-passport-fg-inverted,#000);--l-pass-fg-muted:var(--lumia-passport-fg-muted,hsla(0,0%,100%,.6));--l-pass-primary:var(--lumia-passport-primary,#fff);--l-pass-primary-h:var(--lumia-passport-primary-h,hsla(0,0%,100%,.9));--l-pass-primary-a:var(--lumia-passport-primary-a,hsla(0,0%,100%,.7));--l-pass-secondary:var(--lumia-passport-secondary,#2a2a2a);--l-pass-secondary-h:var(--lumia-passport-secondary-h,rgba(42,42,42,.9));--l-pass-secondary-a:var(--lumia-passport-secondary-a,rgba(42,42,42,.7));--l-pass-bd:var(--lumia-passport-bd,#3a3a3a);--l-pass-bd-intense:var(--lumia-passport-bd-intense,#4a4a4a);--l-pass-shadow-c:var(--lumia-passport-shadow-c,rgba(0,0,0,.5));--l-pass-info:var(--lumia-passport-info,var(--l-pass-fg));--l-pass-bg-info:var(--lumia-passport-bg-info,#2a2a2a);--l-pass-success:var(--lumia-passport-success,var(--l-pass-fg-inverted));--l-pass-bg-success:var(--lumia-passport-bg-success,#21ff51);--l-pass-warning:var(--lumia-passport-warning,var(--l-pass-fg-inverted));--l-pass-bg-warning:var(--lumia-passport-bg-warning,#e9fa00);--l-pass-error:var(--lumia-passport-error,#fff);--l-pass-bg-error:var(--lumia-passport-bg-error,#d6204e)}.lumia-scope,.lumia-scope *{margin:0;box-sizing:border-box;font-family:var(--l-pass-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lumia-scope button,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6,.lumia-scope input,.lumia-scope p,.lumia-scope select,.lumia-scope textarea{font-family:var(--l-pass-ff)!important;margin:0}.lumia-scope button,.lumia-scope input,.lumia-scope select,.lumia-scope textarea{border-style:solid;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lumia-scope .lumia-passport-button{box-shadow:0 4px 10px var(--l-pass-shadow-c),inset 0 0 0 1px var(--l-pass-bd);transition:transform .25s ease}.lumia-scope .lumia-passport-button:hover{transform:scale(1.02)}.lumia-scope .lumia-passport-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.lumia-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.lumia-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.lumia-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.lumia-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.lumia-scope .list-scrollbar-y{width:100%;padding-right:var(--l-pass-list-scrollbar-pd-r,0);overflow-y:auto;max-height:var(--l-pass-scrollbar-mah,300px)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--l-pass-bd)}.lumia-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.lumia-scope .noScrollbars::-webkit-scrollbar{display:none}.lumia-scope .file\\:mr-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{margin-right:var(--l-pass-pd)}.lumia-scope .file\\:h-8::file-selector-button{height:2rem}.lumia-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.lumia-scope .file\\:rounded-\\[var\\(--l-pass-el-bdrs\\)\\]::file-selector-button{border-radius:var(--l-pass-el-bdrs)}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-\\[var\\(--l-pass-primary\\)\\]::file-selector-button{background-color:var(--l-pass-primary)}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-\\[var\\(--l-pass-pd\\)\\]::file-selector-button{padding-left:var(--l-pass-pd);padding-right:var(--l-pass-pd)}.lumia-scope .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.lumia-scope .file\\:font-medium::file-selector-button{font-weight:500}.lumia-scope .file\\:text-\\[var\\(--l-pass-fg-inverted\\)\\]::file-selector-button{color:var(--l-pass-fg-inverted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::-moz-placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .placeholder\\:text-\\[var\\(--l-pass-fg-muted\\)\\]::placeholder{color:var(--l-pass-fg-muted)}.lumia-scope .focus-within\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus-within{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover{background-color:var(--l-pass-bg)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-primary-h\\)\\]:hover{background-color:var(--l-pass-primary-h)}.lumia-scope .hover\\:bg-\\[var\\(--l-pass-secondary-h\\)\\]:hover{background-color:var(--l-pass-secondary-h)}.lumia-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover{color:var(--l-pass-fg)}.lumia-scope .hover\\:text-\\[var\\(--l-pass-fg-h\\)\\]:hover{color:var(--l-pass-fg-h)}.lumia-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.lumia-scope .hover\\:underline:hover{text-decoration-line:underline}.lumia-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.lumia-scope .focus\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:focus{background-color:var(--l-pass-secondary-a)}.lumia-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.lumia-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.lumia-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lumia-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.lumia-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.lumia-scope .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.lumia-scope .active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active{background-color:var(--l-pass-bg)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-primary-a\\)\\]:active{background-color:var(--l-pass-primary-a)}.lumia-scope .active\\:bg-\\[var\\(--l-pass-secondary-a\\)\\]:active{background-color:var(--l-pass-secondary-a)}.lumia-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.lumia-scope .active\\:text-\\[var\\(--l-pass-fg-a\\)\\]:active{color:var(--l-pass-fg-a)}.lumia-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.lumia-scope .disabled\\:cursor-default:disabled{cursor:default}.lumia-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.lumia-scope .disabled\\:opacity-50:disabled{opacity:.5}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-bg\\)\\]:hover:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:hover\\:bg-\\[var\\(--l-pass-primary\\)\\]:hover:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:hover\\:text-\\[var\\(--l-pass-fg\\)\\]:hover:disabled{color:var(--l-pass-fg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-bg\\)\\]:active:disabled{background-color:var(--l-pass-bg)}.lumia-scope .disabled\\:active\\:bg-\\[var\\(--l-pass-primary\\)\\]:active:disabled{background-color:var(--l-pass-primary)}.lumia-scope .disabled\\:active\\:text-\\[var\\(--l-pass-fg\\)\\]:active:disabled{color:var(--l-pass-fg)}.lumia-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.lumia-scope :is(.group:hover .group-hover\\:opacity-60){opacity:.6}.lumia-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--l-pass-bd-intense\\)\\][data-state=checked]{border-color:var(--l-pass-bd-intense)}.lumia-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--l-pass-secondary\\)\\][data-state=checked]{background-color:var(--l-pass-secondary)}.lumia-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--l-pass-fg\\)\\][data-state=checked]{color:var(--l-pass-fg)}@media (min-width:640px){.lumia-scope .sm\\:flex-row{flex-direction:row}.lumia-scope .sm\\:justify-end{justify-content:flex-end}.lumia-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.lumia-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.lumia-scope .md\\:h-8{height:2rem}.lumia-scope .md\\:w-8{width:2rem}.lumia-scope .md\\:gap-\\[var\\(--l-pass-gap\\)\\]{gap:var(--l-pass-gap)}.lumia-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}';
4292
4285
 
4293
4286
  // src/context/LumiaPassportContext.tsx
4294
4287
  var import_error_tracking4 = require("@lumiapassport/core/internal/error-tracking");
4295
4288
  var import_lodash_es4 = require("lodash-es");
4296
- var import_react49 = require("react");
4289
+ var import_react50 = require("react");
4297
4290
  init_lumiaPassport();
4298
4291
  init_iframe_manager();
4299
4292
 
4300
4293
  // src/context/LumiaPassportSessionContext.tsx
4301
- var import_react48 = require("react");
4294
+ var import_react49 = require("react");
4302
4295
  var import_zustand5 = require("zustand");
4303
4296
 
4304
4297
  // src/internal/components/BalanceFeedProvider/BalanceFeedProvider.tsx
@@ -4467,12 +4460,12 @@ function BalanceFeedProvider() {
4467
4460
 
4468
4461
  // src/internal/components/Dialog/LumiaPassportDialog.tsx
4469
4462
  var import_framer_motion4 = require("framer-motion");
4470
- var import_react45 = require("react");
4463
+ var import_react46 = require("react");
4471
4464
 
4472
4465
  // package.json
4473
4466
  var package_default = {
4474
4467
  name: "@lumiapassport/ui-kit",
4475
- version: "1.13.11",
4468
+ version: "1.14.1",
4476
4469
  description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
4477
4470
  type: "module",
4478
4471
  main: "./dist/index.cjs",
@@ -4624,6 +4617,21 @@ var import_tailwind_merge = require("tailwind-merge");
4624
4617
  function cn(...inputs) {
4625
4618
  return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
4626
4619
  }
4620
+ var LP_JWT_TOKENS_LS_KEY = "lumia-passport-jwt-tokens";
4621
+ function getAccessToken() {
4622
+ try {
4623
+ const sessionString = localStorage.getItem(LP_JWT_TOKENS_LS_KEY);
4624
+ if (!sessionString) return null;
4625
+ const session = JSON.parse(sessionString);
4626
+ if (session && typeof session.accessToken === "string" && typeof session.userId === "string") {
4627
+ return session.accessToken;
4628
+ }
4629
+ return null;
4630
+ } catch (error) {
4631
+ console.error("Failed to parse Lumia Passport session:", error);
4632
+ return null;
4633
+ }
4634
+ }
4627
4635
 
4628
4636
  // src/internal/components/ui/button.tsx
4629
4637
  var import_react_slot = require("@radix-ui/react-slot");
@@ -5043,6 +5051,7 @@ var DialogOverlay = (0, import_react4.forwardRef)(
5043
5051
  ref,
5044
5052
  style: { backdropFilter: "blur(var(--l-pass-backdrop-blur))" },
5045
5053
  className: cn(
5054
+ "w-[100dvw] h-[100dvh]",
5046
5055
  "fixed inset-0 z-[9998] bg-[var(--l-pass-overlay)]",
5047
5056
  closing ? "animate-dialog-out" : "animate-dialog-in",
5048
5057
  className
@@ -5055,7 +5064,7 @@ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
5055
5064
  function useDecideContentStyles() {
5056
5065
  const isMobileView = useLayoutStore((st) => st.isMobileView);
5057
5066
  const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
5058
- const mobileStyles = isMobileView ? { "--l-pass-maw": "100%", "--l-pass-bdrs": "20px 20px 0px 0px" } : {};
5067
+ const mobileStyles = isMobileView ? { "--l-pass-bdrs": "20px 20px 0px 0px" } : {};
5059
5068
  return {
5060
5069
  isClosing,
5061
5070
  isMobileView,
@@ -5073,15 +5082,17 @@ var DialogContent = (0, import_react4.forwardRef)(
5073
5082
  const setPage = useLayoutDataStore((st) => st.setPage);
5074
5083
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
5075
5084
  const { isMobileView, isClosing, style } = useDecideContentStyles();
5076
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "lumia-scope", "data-lumia-passport-mode": colorMode, style, children: [
5085
+ const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
5086
+ const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
5087
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "lumia-scope", "data-lumia-passport-mode": colorMode, style: { ...style, outline: "none" }, children: [
5077
5088
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogOverlay, { closing: isClosing }),
5078
5089
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
5079
5090
  "div",
5080
5091
  {
5081
5092
  className: cn(
5082
- "fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none",
5083
- isClosing ? "animate-dialog-out" : "animate-dialog-in",
5084
- isMobileView ? "items-end" : "items-center"
5093
+ "fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none outline-none",
5094
+ dialogAnimationCn,
5095
+ isMobileView ? "items-end w-[100dvw] h-[100dvh]" : "items-center w-[var(--l-pass-maw)] mx-auto"
5085
5096
  ),
5086
5097
  children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
5087
5098
  DialogPrimitive.Content,
@@ -5089,10 +5100,10 @@ var DialogContent = (0, import_react4.forwardRef)(
5089
5100
  ref,
5090
5101
  style: !!className ? void 0 : CONTENT_BG_SETUP,
5091
5102
  className: cn(
5092
- "relative pointer-events-auto w-full",
5093
- "max-w-[var(--l-pass-maw)] max-h-[95dvh] p-0 gap-0",
5094
- "text-[var(--l-pass-fg)]",
5103
+ "relative pointer-events-auto max-h-[95dvh] outline-none",
5104
+ "p-0 gap-0 text-[var(--l-pass-fg)]",
5095
5105
  "rounded-[var(--l-pass-bdrs)] overflow-hidden",
5106
+ isMobileView ? "w-[100dvw]" : "w-[var(--l-pass-maw)]",
5096
5107
  className
5097
5108
  ),
5098
5109
  ...props,
@@ -5212,7 +5223,7 @@ function useAutoConnect() {
5212
5223
  }
5213
5224
  return { session: sess, address: addr };
5214
5225
  } catch (error) {
5215
- if (error?.code !== "KEYSHARE_RECOVERY_NEEDED") {
5226
+ if (error?.code === "KEYSHARE_RECOVERY_NEEDED") {
5216
5227
  setStatus("idle");
5217
5228
  setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
5218
5229
  }
@@ -5327,7 +5338,9 @@ function useAutoConnect() {
5327
5338
  setError(null);
5328
5339
  setStatus("recovery_needed");
5329
5340
  setIsLoading(false);
5330
- setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
5341
+ setTimeout(() => {
5342
+ setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
5343
+ }, 500);
5331
5344
  } else {
5332
5345
  console.warn("[UI-KIT][AutoConnect] Unexpected error during auto-connect:", e);
5333
5346
  setIsLoading(false);
@@ -5341,43 +5354,56 @@ function useAutoConnect() {
5341
5354
  }
5342
5355
 
5343
5356
  // src/internal/hooks/useBackupStatusChanges.ts
5357
+ var import_react_query4 = require("@tanstack/react-query");
5344
5358
  var import_react6 = require("react");
5345
5359
  init_vaultClient();
5360
+ var NO_BACKUP_WARN_DELAY_MS = 5e3;
5346
5361
  function useBackupStatusChanges() {
5347
5362
  const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
5348
- (0, import_react6.useEffect)(() => {
5349
- const handleBackupStatusChanged = async (event) => {
5363
+ const noBackupWarnTimeout = (0, import_react6.useRef)(null);
5364
+ const { mutate: handleBackupStatusChanged } = (0, import_react_query4.useMutation)({
5365
+ mutationFn: async (event) => {
5350
5366
  const customEvent = event;
5351
- const { method, success } = customEvent.detail || {};
5352
- console.log("[ConnectWalletButton] Backup status changed:", {
5353
- method,
5354
- success
5355
- });
5356
- if (method === "server" && success) {
5357
- try {
5358
- const stats = await getShareRecoveryStats();
5359
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
5360
- setHasServerVault(!!hasRecoveryData);
5361
- } catch (e) {
5362
- console.warn("[UI-KIT] Failed to refresh vault status after backup:", e);
5363
- }
5367
+ console.log("[BACKUP STATUS] changed:", customEvent.detail);
5368
+ const stats = await getShareRecoveryStats();
5369
+ return stats && (!!stats.created || !!stats?.devices?.length);
5370
+ },
5371
+ onSuccess: (hasRecoveryData) => {
5372
+ if (!!noBackupWarnTimeout.current) {
5373
+ clearTimeout(noBackupWarnTimeout.current);
5374
+ noBackupWarnTimeout.current = null;
5364
5375
  }
5365
- };
5376
+ if (!!hasRecoveryData) {
5377
+ setHasServerVault(true);
5378
+ } else {
5379
+ noBackupWarnTimeout.current = setTimeout(() => {
5380
+ setHasServerVault(false);
5381
+ console.warn("[BACKUP STATUS] No recovery data found in vault, marking as no-server-vault");
5382
+ noBackupWarnTimeout.current = null;
5383
+ }, NO_BACKUP_WARN_DELAY_MS);
5384
+ }
5385
+ },
5386
+ onError: (error) => {
5387
+ setHasServerVault(false);
5388
+ console.warn("[BACKUP STATUS] Failed to fetch initial vault status:", error);
5389
+ }
5390
+ });
5391
+ (0, import_react6.useEffect)(() => {
5366
5392
  window.addEventListener("lumia-passport-backup-status-changed", handleBackupStatusChanged);
5367
5393
  return () => {
5368
5394
  window.removeEventListener("lumia-passport-backup-status-changed", handleBackupStatusChanged);
5369
5395
  };
5370
- }, [setHasServerVault]);
5396
+ }, []);
5371
5397
  }
5372
5398
 
5373
5399
  // src/internal/hooks/useCheckVaultStatus.ts
5374
- var import_react_query4 = require("@tanstack/react-query");
5400
+ var import_react_query5 = require("@tanstack/react-query");
5375
5401
  var import_react7 = require("react");
5376
5402
  init_vaultClient();
5377
5403
  function useCheckVaultStatus() {
5378
5404
  const address = useLumiaPassportSession((st) => st.address);
5379
5405
  const setHasServerVault = useLumiaPassportSession((st) => st.setHasServerVault);
5380
- const { mutate: checkVaultStatus } = (0, import_react_query4.useMutation)({
5406
+ const { mutate: checkVaultStatus } = (0, import_react_query5.useMutation)({
5381
5407
  mutationFn: async () => {
5382
5408
  const stats = await getShareRecoveryStats();
5383
5409
  const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
@@ -5421,12 +5447,12 @@ function useDetectMaxScrollHeight() {
5421
5447
  }
5422
5448
 
5423
5449
  // src/internal/hooks/usePageMapper.tsx
5424
- var import_react42 = require("react");
5450
+ var import_react43 = require("react");
5425
5451
 
5426
5452
  // src/internal/components/AuthMenu/AuthMenu.tsx
5427
5453
  var import_framer_motion = require("framer-motion");
5428
5454
  var import_lucide_react14 = require("lucide-react");
5429
- var import_react18 = require("react");
5455
+ var import_react19 = require("react");
5430
5456
 
5431
5457
  // src/internal/components/AuthMenu/AuthFailedStep.tsx
5432
5458
  var import_lucide_react6 = require("lucide-react");
@@ -5986,12 +6012,13 @@ function PassKeyStep(props) {
5986
6012
 
5987
6013
  // src/internal/components/AuthMenu/SignInStep/SignInStep.tsx
5988
6014
  var import_lucide_react12 = require("lucide-react");
5989
- var import_react14 = require("react");
6015
+ var import_react15 = require("react");
5990
6016
 
5991
6017
  // src/internal/components/AuthMenu/SignInStep/Email.tsx
5992
6018
  init_lumiaPassport();
5993
- var import_react_query5 = require("@tanstack/react-query");
6019
+ var import_react_query6 = require("@tanstack/react-query");
5994
6020
  var import_lucide_react9 = require("lucide-react");
6021
+ var import_react13 = require("react");
5995
6022
  init_projectId();
5996
6023
 
5997
6024
  // src/internal/components/ui/highlight.tsx
@@ -6008,7 +6035,7 @@ function Highlight(props) {
6008
6035
  "div",
6009
6036
  {
6010
6037
  className: cn(
6011
- "w-full text-xs rounded-[var(--l-pass-el-bdrs)] p-[var(--l-pass-pd)]",
6038
+ "w-full text-xs rounded-[var(--l-pass-el-bdrs)] p-[var(--l-pass-pd)] whitespace-pre-wrap break-all",
6012
6039
  CARD_STYLES[type],
6013
6040
  className
6014
6041
  ),
@@ -6020,14 +6047,12 @@ function Highlight(props) {
6020
6047
  // src/internal/components/AuthMenu/SignInStep/Email.tsx
6021
6048
  var import_jsx_runtime19 = require("react/jsx-runtime");
6022
6049
  function Email() {
6023
- const {
6024
- config: { current: config },
6025
- callbacks
6026
- } = useLumiaPassportConfig();
6050
+ const { config, callbacks } = useLumiaPassportConfig();
6051
+ const buttonRef = (0, import_react13.useRef)(null);
6027
6052
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
6028
6053
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
6029
6054
  const { email, codeSendError, alert: alert2, setEmail, setCodeSendError, setExpiresIn, setStep, setAlert } = useAuthStore();
6030
- const { mutate: onSendVerificationCode } = (0, import_react_query5.useMutation)({
6055
+ const { mutate: onSendVerificationCode } = (0, import_react_query6.useMutation)({
6031
6056
  mutationFn: async (mail) => {
6032
6057
  const isEmailValid = mail.length !== 0 && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(mail);
6033
6058
  if (!isEmailValid) {
@@ -6067,35 +6092,48 @@ function Email() {
6067
6092
  }
6068
6093
  });
6069
6094
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
6070
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "w-full flex gap-[10px] items-center", children: [
6071
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
6072
- Input,
6073
- {
6074
- name: "signin-email",
6075
- Icon: import_lucide_react9.Mail,
6076
- type: "email",
6077
- autoComplete: "off",
6078
- placeholder: config.email.placeholder,
6079
- value: email,
6080
- className: "flex-1 w-full",
6081
- onChange: (e) => {
6082
- if (alert2) setAlert(null);
6083
- setEmail(e.target.value);
6095
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
6096
+ "div",
6097
+ {
6098
+ className: "w-full flex gap-[10px] items-center",
6099
+ onKeyDown: (e) => {
6100
+ if (e.key === "Enter" && !isLoading && email) {
6101
+ buttonRef.current?.click();
6084
6102
  }
6085
- }
6086
- ),
6087
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
6088
- Button,
6089
- {
6090
- className: "w-12 h-12 flex-none",
6091
- variant: "default",
6092
- size: "large",
6093
- disabled: !email || isLoading,
6094
- onClick: () => onSendVerificationCode(email),
6095
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react9.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react9.ChevronRight, { className: "w-4 h-4" })
6096
- }
6097
- )
6098
- ] }),
6103
+ },
6104
+ children: [
6105
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
6106
+ Input,
6107
+ {
6108
+ name: "signin-email",
6109
+ Icon: import_lucide_react9.Mail,
6110
+ type: "email",
6111
+ autoComplete: "off",
6112
+ placeholder: config.current?.email?.placeholder || "Enter your email",
6113
+ value: email,
6114
+ disabled: isLoading,
6115
+ className: "flex-1 w-full",
6116
+ onChange: (e) => {
6117
+ if (alert2) setAlert(null);
6118
+ setEmail(e.target.value);
6119
+ }
6120
+ }
6121
+ ),
6122
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
6123
+ Button,
6124
+ {
6125
+ ref: buttonRef,
6126
+ className: "w-12 h-12 flex-none",
6127
+ variant: "default",
6128
+ size: "large",
6129
+ disabled: !email || isLoading,
6130
+ onClick: () => onSendVerificationCode(email),
6131
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react9.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react9.ChevronRight, { className: "w-4 h-4" })
6132
+ }
6133
+ )
6134
+ ]
6135
+ }
6136
+ ),
6099
6137
  !!codeSendError && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Highlight, { type: "warning", className: "flex gap-[var(--l-pass-gap)]", children: [
6100
6138
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react9.Mail, { className: "w-4 h-4" }),
6101
6139
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: codeSendError })
@@ -6119,7 +6157,7 @@ function ErrorAlert(props) {
6119
6157
 
6120
6158
  // src/internal/components/AuthMenu/SignInStep/Social.tsx
6121
6159
  var import_lucide_react11 = require("lucide-react");
6122
- var import_react13 = require("react");
6160
+ var import_react14 = require("react");
6123
6161
  init_assets();
6124
6162
  init_lumiaPassport();
6125
6163
  init_auth();
@@ -6210,7 +6248,7 @@ function Social(props) {
6210
6248
  setPasskeyError,
6211
6249
  setPasskeyStatus
6212
6250
  } = useAuthStore();
6213
- const onSocialAuth = (0, import_react13.useCallback)(
6251
+ const onSocialAuth = (0, import_react14.useCallback)(
6214
6252
  async (providerId) => {
6215
6253
  const normalizedProviderId = providerId.toLowerCase();
6216
6254
  const provider = config.current?.social?.providers?.find(
@@ -6621,7 +6659,7 @@ function SignInStep(props) {
6621
6659
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "font-bold text-xl leading-6", children: "Sign In" })
6622
6660
  ] }),
6623
6661
  /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
6624
- enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react14.Fragment, { children: [
6662
+ enabledWoPasskey.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react15.Fragment, { children: [
6625
6663
  idx > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center", children: [
6626
6664
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { style: { borderTop: "1px solid var(--l-pass-bd)" }, className: "flex-1" }),
6627
6665
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex-none px-2 text-xs leading-4", children: "Or sign in using" }),
@@ -6648,19 +6686,19 @@ function SignInStep(props) {
6648
6686
  }
6649
6687
 
6650
6688
  // src/internal/components/AuthMenu/useAuthMenuHanders.ts
6651
- var import_react15 = require("react");
6689
+ var import_react16 = require("react");
6652
6690
  init_auth();
6653
6691
  function useAuthMenuHandlers() {
6654
6692
  const {
6655
6693
  config: { current: config },
6656
6694
  callbacks
6657
6695
  } = useLumiaPassportConfig();
6658
- const pendingLoginResponseRef = (0, import_react15.useRef)(null);
6696
+ const pendingLoginResponseRef = (0, import_react16.useRef)(null);
6659
6697
  const setPage = useLayoutDataStore((st) => st.setPage);
6660
- const [telegramCleanup, setTelegramCleanup] = (0, import_react15.useState)(null);
6698
+ const [telegramCleanup, setTelegramCleanup] = (0, import_react16.useState)(null);
6661
6699
  const { usePaymaster, setError, setStatus, setSession, setAddress, setRecoveryUserId, setHasServerVault } = useLumiaPassportSession();
6662
6700
  const { setStep, setVerificationError, setCodeSendError, setFailedMessage } = useAuthStore();
6663
- const createSessionWithKeyshare = (0, import_react15.useCallback)(
6701
+ const createSessionWithKeyshare = (0, import_react16.useCallback)(
6664
6702
  async (userId, hasServerKeyshare, isNewUser) => {
6665
6703
  try {
6666
6704
  try {
@@ -6694,7 +6732,7 @@ function useAuthMenuHandlers() {
6694
6732
  },
6695
6733
  [setStatus, callbacks, usePaymaster]
6696
6734
  );
6697
- const onAuthSuccess = (0, import_react15.useCallback)(async () => {
6735
+ const onAuthSuccess = (0, import_react16.useCallback)(async () => {
6698
6736
  console.log("[ConnectWalletButton] handleAuthModalSuccess called");
6699
6737
  const loginResponse = pendingLoginResponseRef.current;
6700
6738
  console.log("[ConnectWalletButton] loginResponse:", loginResponse);
@@ -6767,7 +6805,9 @@ function useAuthMenuHandlers() {
6767
6805
  setError(null);
6768
6806
  setRecoveryUserId(userId);
6769
6807
  setStatus("recovery_needed");
6770
- setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
6808
+ setTimeout(() => {
6809
+ setPage("keyshare-restore" /* KEYSHARE_RESTORE */);
6810
+ }, 500);
6771
6811
  } else {
6772
6812
  pendingLoginResponseRef.current = null;
6773
6813
  await import_auth3.jwtTokenManager.clearTokens();
@@ -6789,7 +6829,7 @@ function useAuthMenuHandlers() {
6789
6829
  setHasServerVault,
6790
6830
  createSessionWithKeyshare
6791
6831
  ]);
6792
- const checkDisplayNameRequired = (0, import_react15.useCallback)(
6832
+ const checkDisplayNameRequired = (0, import_react16.useCallback)(
6793
6833
  async (loginResponse) => {
6794
6834
  if (!config.features.displayNameNeeded) {
6795
6835
  return false;
@@ -6816,7 +6856,7 @@ function useAuthMenuHandlers() {
6816
6856
  },
6817
6857
  [config.features.displayNameNeeded]
6818
6858
  );
6819
- const goBackToSignIn = (0, import_react15.useCallback)(() => {
6859
+ const goBackToSignIn = (0, import_react16.useCallback)(() => {
6820
6860
  setStep("signin");
6821
6861
  setVerificationError("");
6822
6862
  setCodeSendError("");
@@ -6834,11 +6874,11 @@ function useAuthMenuHandlers() {
6834
6874
  }
6835
6875
 
6836
6876
  // src/internal/components/AuthMenu/useListenIframeAuthEvents.ts
6837
- var import_react16 = require("react");
6877
+ var import_react17 = require("react");
6838
6878
  function useListenIframeAuthEvents() {
6839
6879
  const setPage = useLayoutDataStore((state) => state.setPage);
6840
6880
  const setIsIframeReady = useLumiaPassportSession((state) => state.setIsIframeReady);
6841
- const handleIframeMessage = (0, import_react16.useCallback)(
6881
+ const handleIframeMessage = (0, import_react17.useCallback)(
6842
6882
  (event) => {
6843
6883
  console.log("[AuthMenu] Received iframe message:", event.data);
6844
6884
  if (event.data?.type === "LUMIA_PASSPORT_IFRAME_READY") {
@@ -6856,7 +6896,7 @@ function useListenIframeAuthEvents() {
6856
6896
  },
6857
6897
  [setPage, setIsIframeReady]
6858
6898
  );
6859
- (0, import_react16.useEffect)(() => {
6899
+ (0, import_react17.useEffect)(() => {
6860
6900
  window.addEventListener("message", handleIframeMessage);
6861
6901
  return () => window.removeEventListener("message", handleIframeMessage);
6862
6902
  }, [handleIframeMessage]);
@@ -6864,7 +6904,7 @@ function useListenIframeAuthEvents() {
6864
6904
 
6865
6905
  // src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx
6866
6906
  init_lumiaPassport();
6867
- var import_react_query6 = require("@tanstack/react-query");
6907
+ var import_react_query7 = require("@tanstack/react-query");
6868
6908
  var import_lucide_react13 = require("lucide-react");
6869
6909
 
6870
6910
  // src/internal/assets/OtpIcon.tsx
@@ -6885,21 +6925,21 @@ init_auth();
6885
6925
  init_projectId();
6886
6926
 
6887
6927
  // src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
6888
- var import_react17 = require("react");
6928
+ var import_react18 = require("react");
6889
6929
  var import_jsx_runtime24 = require("react/jsx-runtime");
6890
6930
  var VerificationCodeInput = (props) => {
6891
6931
  const { onVerifyCode, onResendCode, isLoading, expiresIn, error } = props;
6892
6932
  const setVerificationError = useAuthStore((st) => st.setVerificationError);
6893
- const [timeLeft, setTimeLeft] = (0, import_react17.useState)(expiresIn);
6894
- (0, import_react17.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
6895
- (0, import_react17.useEffect)(() => {
6933
+ const [timeLeft, setTimeLeft] = (0, import_react18.useState)(expiresIn);
6934
+ (0, import_react18.useEffect)(() => setTimeLeft(expiresIn), [expiresIn]);
6935
+ (0, import_react18.useEffect)(() => {
6896
6936
  const t = setInterval(() => setTimeLeft((secs) => secs > 0 ? secs - 1 : 0), 1e3);
6897
6937
  return () => clearInterval(t);
6898
6938
  }, []);
6899
- const lastSubmittedRef = (0, import_react17.useRef)(null);
6900
- const inputsRef = (0, import_react17.useRef)([]);
6901
- const [digits, setDigits] = (0, import_react17.useState)(["", "", "", "", "", ""]);
6902
- (0, import_react17.useEffect)(() => {
6939
+ const lastSubmittedRef = (0, import_react18.useRef)(null);
6940
+ const inputsRef = (0, import_react18.useRef)([]);
6941
+ const [digits, setDigits] = (0, import_react18.useState)(["", "", "", "", "", ""]);
6942
+ (0, import_react18.useEffect)(() => {
6903
6943
  const code = digits.join("");
6904
6944
  if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
6905
6945
  if (lastSubmittedRef.current !== code) {
@@ -6908,7 +6948,7 @@ var VerificationCodeInput = (props) => {
6908
6948
  }
6909
6949
  }
6910
6950
  }, [digits, isLoading, onVerifyCode]);
6911
- (0, import_react17.useEffect)(() => {
6951
+ (0, import_react18.useEffect)(() => {
6912
6952
  const t = setTimeout(() => {
6913
6953
  inputsRef.current[0]?.focus();
6914
6954
  }, 0);
@@ -7033,7 +7073,7 @@ function VerifyStep(props) {
7033
7073
  setEmail,
7034
7074
  setExpiresIn
7035
7075
  } = useAuthStore();
7036
- const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query6.useMutation)({
7076
+ const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query7.useMutation)({
7037
7077
  mutationFn: async (code) => {
7038
7078
  setIsLoading(true);
7039
7079
  setVerificationError("");
@@ -7106,7 +7146,7 @@ function VerifyStep(props) {
7106
7146
  setIsLoading(false);
7107
7147
  }
7108
7148
  });
7109
- const { mutate: onResendCode, isPending: isCodeResending } = (0, import_react_query6.useMutation)({
7149
+ const { mutate: onResendCode, isPending: isCodeResending } = (0, import_react_query7.useMutation)({
7110
7150
  mutationFn: async () => {
7111
7151
  setVerificationError("");
7112
7152
  setIsLoading(true);
@@ -7184,7 +7224,7 @@ var AuthMenu = () => {
7184
7224
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
7185
7225
  const page = useLayoutDataStore((st) => st.page);
7186
7226
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
7187
- (0, import_react18.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
7227
+ (0, import_react19.useEffect)(() => setMainPageHeight(DEFAULT_AUTH_MENU_HEIGHT), [setMainPageHeight]);
7188
7228
  const {
7189
7229
  step,
7190
7230
  setStep,
@@ -7195,7 +7235,7 @@ var AuthMenu = () => {
7195
7235
  setFailedMessage,
7196
7236
  setCodeSendError
7197
7237
  } = useAuthStore();
7198
- (0, import_react18.useEffect)(() => {
7238
+ (0, import_react19.useEffect)(() => {
7199
7239
  if (page !== "auth" /* AUTH */) {
7200
7240
  setStep("signin");
7201
7241
  setEmail("");
@@ -7214,7 +7254,7 @@ var AuthMenu = () => {
7214
7254
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--l-pass-fg-muted)]", children: "Initializing wallet..." })
7215
7255
  ] });
7216
7256
  }
7217
- const stepContent = (0, import_react18.useMemo)(
7257
+ const stepContent = (0, import_react19.useMemo)(
7218
7258
  () => ({
7219
7259
  "failed": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AuthFailedStep, {}),
7220
7260
  "display-name": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DisplayNameStep, { onAuthSuccess }),
@@ -7360,9 +7400,9 @@ function RampnowIcon() {
7360
7400
  }
7361
7401
 
7362
7402
  // src/internal/components/BuyMenu/binance/Binance.tsx
7363
- var import_react_query7 = require("@tanstack/react-query");
7403
+ var import_react_query8 = require("@tanstack/react-query");
7364
7404
  var import_lucide_react15 = require("lucide-react");
7365
- var import_react20 = require("react");
7405
+ var import_react21 = require("react");
7366
7406
 
7367
7407
  // src/internal/components/BuyMenu/components/PaymentSelector.tsx
7368
7408
  var import_jsx_runtime29 = require("react/jsx-runtime");
@@ -7405,36 +7445,61 @@ var QUERY_KEYS2 = {
7405
7445
  // src/internal/components/BuyMenu/binance/api.ts
7406
7446
  init_iframe_manager();
7407
7447
  async function getLumiaNetworkQuery() {
7448
+ const accessToken = getAccessToken();
7449
+ if (!accessToken) {
7450
+ throw new Error("Access token is not available");
7451
+ }
7408
7452
  const iframeManager = getIframeManager();
7409
7453
  if (!iframeManager) {
7410
7454
  throw new Error("Iframe manager is not initialized");
7411
7455
  }
7412
- return await iframeManager.sendMessage("BINANCE_GET_LUMIA_NETWORK_QUERY", {});
7456
+ return await iframeManager.sendMessage("BINANCE_GET_LUMIA_NETWORK_QUERY", { accessToken });
7413
7457
  }
7414
7458
  async function getPaymentMethodsQuery(payload) {
7459
+ const accessToken = getAccessToken();
7460
+ if (!accessToken) {
7461
+ throw new Error("Access token is not available");
7462
+ }
7415
7463
  const iframeManager = getIframeManager();
7416
7464
  if (!iframeManager) {
7417
7465
  throw new Error("Iframe manager is not initialized");
7418
7466
  }
7419
- return await iframeManager.sendMessage("BINANCE_GET_PAYMENT_METHODS_QUERY", payload);
7467
+ return await iframeManager.sendMessage("BINANCE_GET_PAYMENT_METHODS_QUERY", {
7468
+ ...payload,
7469
+ accessToken
7470
+ });
7420
7471
  }
7421
7472
  async function getQuoteQuery(payload) {
7473
+ const accessToken = getAccessToken();
7474
+ if (!accessToken) {
7475
+ throw new Error("Access token is not available");
7476
+ }
7422
7477
  const iframeManager = getIframeManager();
7423
7478
  if (!iframeManager) {
7424
7479
  throw new Error("Iframe manager is not initialized");
7425
7480
  }
7426
- return await iframeManager.sendMessage("BINANCE_GET_QUOTE_QUERY", payload);
7481
+ return await iframeManager.sendMessage("BINANCE_GET_QUOTE_QUERY", {
7482
+ ...payload,
7483
+ accessToken
7484
+ });
7427
7485
  }
7428
7486
  async function createPreorderMutation(payload) {
7487
+ const accessToken = getAccessToken();
7488
+ if (!accessToken) {
7489
+ throw new Error("Access token is not available");
7490
+ }
7429
7491
  const iframeManager = getIframeManager();
7430
7492
  if (!iframeManager) {
7431
7493
  throw new Error("Iframe manager is not initialized");
7432
7494
  }
7433
- return await iframeManager.sendMessage("BINANCE_CREATE_PREORDER_MUTATION", payload);
7495
+ return await iframeManager.sendMessage("BINANCE_CREATE_PREORDER_MUTATION", {
7496
+ ...payload,
7497
+ accessToken
7498
+ });
7434
7499
  }
7435
7500
 
7436
7501
  // src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
7437
- var import_react19 = require("react");
7502
+ var import_react20 = require("react");
7438
7503
 
7439
7504
  // src/internal/components/BuyMenu/binance/utils.ts
7440
7505
  function getPayMethodID(pm) {
@@ -7454,7 +7519,7 @@ function handleErrors(errors) {
7454
7519
  // src/internal/components/BuyMenu/binance/useQueriesErrorHandler.ts
7455
7520
  var useQueriesErrorHandler = (errors, stateUpdater) => {
7456
7521
  const { error: errorTitle, message: errorMessage } = handleErrors(errors);
7457
- (0, import_react19.useEffect)(() => {
7522
+ (0, import_react20.useEffect)(() => {
7458
7523
  if (!errorTitle && !errorMessage) return;
7459
7524
  console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
7460
7525
  stateUpdater(1);
@@ -7479,12 +7544,12 @@ function Binance(props) {
7479
7544
  setMinAmount,
7480
7545
  setSrcInputAmount
7481
7546
  } = control;
7482
- const qc = (0, import_react_query7.useQueryClient)();
7547
+ const qc = (0, import_react_query8.useQueryClient)();
7483
7548
  const {
7484
7549
  data: lumiaNetwork,
7485
7550
  isLoading: isLumiaNetworkLoading,
7486
7551
  error: lumiaNetworkError
7487
- } = (0, import_react_query7.useQuery)({
7552
+ } = (0, import_react_query8.useQuery)({
7488
7553
  retry: false,
7489
7554
  enabled: !!walletAddress,
7490
7555
  queryKey: [QUERY_KEYS2.binanceNetworksQuery, walletAddress],
@@ -7495,27 +7560,27 @@ function Binance(props) {
7495
7560
  data: paymentModes = null,
7496
7561
  isLoading: isPaymentModesLoading,
7497
7562
  error: paymentMethodsError
7498
- } = (0, import_react_query7.useQuery)({
7563
+ } = (0, import_react_query8.useQuery)({
7499
7564
  retry: false,
7500
7565
  enabled: !!isLumiaAvailable && !!walletAddress,
7501
7566
  // && srcQueryAmount > 0,
7502
7567
  queryKey: [QUERY_KEYS2.binancePaymentModes, walletAddress, isLumiaAvailable, srcQueryAmount],
7503
7568
  queryFn: async () => getPaymentMethodsQuery({ totalAmount: String(srcQueryAmount || 1) })
7504
7569
  });
7505
- const lastLoadedPaymentModes = (0, import_react20.useRef)([]);
7506
- (0, import_react20.useEffect)(() => {
7570
+ const lastLoadedPaymentModes = (0, import_react21.useRef)([]);
7571
+ (0, import_react21.useEffect)(() => {
7507
7572
  if (!paymentModes?.length) return;
7508
7573
  setPaymentMode(getPayMethodID(paymentModes[0]));
7509
7574
  lastLoadedPaymentModes.current = paymentModes;
7510
7575
  }, [paymentModes]);
7511
7576
  const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
7512
7577
  const minimum = Number(selectedPaymentMode?.fiatMinLimit || "0");
7513
- (0, import_react20.useEffect)(() => setMinAmount(minimum), [minimum]);
7578
+ (0, import_react21.useEffect)(() => setMinAmount(minimum), [minimum]);
7514
7579
  const {
7515
7580
  data: quoteData = null,
7516
7581
  isLoading: isQuoteDataLoading,
7517
7582
  error: quoteError
7518
- } = (0, import_react_query7.useQuery)({
7583
+ } = (0, import_react_query8.useQuery)({
7519
7584
  retry: false,
7520
7585
  enabled: !!walletAddress && srcQueryAmount > 0 && minimum > 0 && srcQueryAmount >= minimum,
7521
7586
  queryKey: [QUERY_KEYS2.binanceQuote, walletAddress, selectedPaymentMode, srcQueryAmount],
@@ -7531,7 +7596,7 @@ function Binance(props) {
7531
7596
  [lumiaNetworkError, paymentMethodsError, quoteError],
7532
7597
  setSrcInputAmount
7533
7598
  );
7534
- const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query7.useMutation)({
7599
+ const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query8.useMutation)({
7535
7600
  mutationFn: async () => {
7536
7601
  setRedirecting(true);
7537
7602
  const returnUrl = window.location.href.split("?")[0];
@@ -7555,7 +7620,7 @@ function Binance(props) {
7555
7620
  setRedirecting(false);
7556
7621
  }
7557
7622
  });
7558
- (0, import_react20.useEffect)(() => {
7623
+ (0, import_react21.useEffect)(() => {
7559
7624
  return () => {
7560
7625
  qc.resetQueries({ queryKey: [QUERY_KEYS2.binanceNetworksQuery] });
7561
7626
  qc.resetQueries({ queryKey: [QUERY_KEYS2.binancePaymentModes] });
@@ -7604,7 +7669,7 @@ function Binance(props) {
7604
7669
  {
7605
7670
  size: "large",
7606
7671
  disabled: isContinueDisabled,
7607
- className: cn("w-full h-12", { "cursor-pointer": !isContinueDisabled }),
7672
+ className: cn("w-full h-12 flex-none", { "cursor-pointer": !isContinueDisabled }),
7608
7673
  variant: "default",
7609
7674
  onClick: () => checkoutFundWalletOrder(),
7610
7675
  children: [
@@ -7617,25 +7682,36 @@ function Binance(props) {
7617
7682
  }
7618
7683
 
7619
7684
  // src/internal/components/BuyMenu/rampnow/Rampnow.tsx
7620
- var import_react_query8 = require("@tanstack/react-query");
7685
+ var import_react_query9 = require("@tanstack/react-query");
7621
7686
  var import_lucide_react16 = require("lucide-react");
7622
- var import_react21 = require("react");
7687
+ var import_react22 = require("react");
7623
7688
 
7624
7689
  // src/internal/components/BuyMenu/rampnow/api.ts
7625
7690
  init_iframe_manager();
7626
7691
  async function getRampnowConfigQuery() {
7692
+ const accessToken = getAccessToken();
7693
+ if (!accessToken) {
7694
+ throw new Error("Access token is not available");
7695
+ }
7627
7696
  const iframeManager = getIframeManager();
7628
7697
  if (!iframeManager) {
7629
7698
  throw new Error("Iframe manager is not initialized");
7630
7699
  }
7631
- return await iframeManager.sendMessage("RAMPNOW_GET_CONFIG", {});
7700
+ return await iframeManager.sendMessage("RAMPNOW_GET_CONFIG", { accessToken });
7632
7701
  }
7633
7702
  async function getRampOrderQuoteQuery(payload) {
7703
+ const accessToken = getAccessToken();
7704
+ if (!accessToken) {
7705
+ throw new Error("Access token is not available");
7706
+ }
7634
7707
  const iframeManager = getIframeManager();
7635
7708
  if (!iframeManager) {
7636
7709
  throw new Error("Iframe manager is not initialized");
7637
7710
  }
7638
- return await iframeManager.sendMessage("RAMPNOW_GET_ORDER_QUOTE", payload);
7711
+ return await iframeManager.sendMessage("RAMPNOW_GET_ORDER_QUOTE", {
7712
+ ...payload,
7713
+ accessToken
7714
+ });
7639
7715
  }
7640
7716
 
7641
7717
  // src/internal/components/BuyMenu/rampnow/constants.ts
@@ -7672,8 +7748,8 @@ function Rampnow(props) {
7672
7748
  setSrcInputAmount,
7673
7749
  setMinAmount
7674
7750
  } = control;
7675
- const qc = (0, import_react_query8.useQueryClient)();
7676
- (0, import_react21.useEffect)(() => {
7751
+ const qc = (0, import_react_query9.useQueryClient)();
7752
+ (0, import_react22.useEffect)(() => {
7677
7753
  setMinAmount(MINIMUM_RAMP_AMOUNT);
7678
7754
  setPaymentMode(PAYMENT_MODES[0].id);
7679
7755
  }, []);
@@ -7681,7 +7757,7 @@ function Rampnow(props) {
7681
7757
  data: configData,
7682
7758
  isLoading: isConfigLoading,
7683
7759
  error: configError
7684
- } = (0, import_react_query8.useQuery)({
7760
+ } = (0, import_react_query9.useQuery)({
7685
7761
  retry: false,
7686
7762
  enabled: !!walletAddress,
7687
7763
  queryKey: [QUERY_KEYS2.getRampNowConfig, walletAddress],
@@ -7691,7 +7767,7 @@ function Rampnow(props) {
7691
7767
  data: quoteData,
7692
7768
  isLoading: isQuoteDataLoading,
7693
7769
  error: quoteError
7694
- } = (0, import_react_query8.useQuery)({
7770
+ } = (0, import_react_query9.useQuery)({
7695
7771
  retry: false,
7696
7772
  enabled: !!configData && !!walletAddress && !!paymentMode && srcQueryAmount >= MINIMUM_RAMP_AMOUNT,
7697
7773
  queryKey: [QUERY_KEYS2.getRampNowQuote, walletAddress, srcQueryAmount, paymentMode],
@@ -7701,7 +7777,7 @@ function Rampnow(props) {
7701
7777
  paymentMode
7702
7778
  })
7703
7779
  });
7704
- const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query8.useMutation)({
7780
+ const { mutate: checkoutFundWalletOrder, isPending: isFundWalletOrderCheckouting } = (0, import_react_query9.useMutation)({
7705
7781
  mutationFn: async () => {
7706
7782
  if (!configData?.apiKey?.length || !configData?.orderUrl?.length) {
7707
7783
  throw new Error("RampNow order service is not available");
@@ -7730,7 +7806,7 @@ function Rampnow(props) {
7730
7806
  console.error("Create CheckoutOrder failed:", err);
7731
7807
  }
7732
7808
  });
7733
- (0, import_react21.useEffect)(() => {
7809
+ (0, import_react22.useEffect)(() => {
7734
7810
  return () => {
7735
7811
  qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowConfig] });
7736
7812
  qc.resetQueries({ queryKey: [QUERY_KEYS2.getRampNowQuote] });
@@ -7776,7 +7852,7 @@ function Rampnow(props) {
7776
7852
  {
7777
7853
  size: "large",
7778
7854
  disabled: isContinueDisabled,
7779
- className: cn("w-full h-12", { "cursor-pointer": !isContinueDisabled }),
7855
+ className: cn("w-full h-12 flex-none", { "cursor-pointer": !isContinueDisabled }),
7780
7856
  variant: "default",
7781
7857
  onClick: () => checkoutFundWalletOrder(),
7782
7858
  children: [
@@ -7812,7 +7888,7 @@ var RAMP_PROVIDERS = {
7812
7888
  var REDIRECT_TIMEOUT_MS = 1500;
7813
7889
 
7814
7890
  // src/internal/components/BuyMenu/useSelectables.ts
7815
- var import_react22 = require("react");
7891
+ var import_react23 = require("react");
7816
7892
 
7817
7893
  // src/internal/utils/debounce.ts
7818
7894
  function debounce2(func, waitFor) {
@@ -7826,14 +7902,14 @@ function debounce2(func, waitFor) {
7826
7902
  // src/internal/components/BuyMenu/useSelectables.ts
7827
7903
  var ON_INPUT_QUERY_DELAY = 2e3;
7828
7904
  var useSelectables = () => {
7829
- const [redirecting, setRedirecting] = (0, import_react22.useState)(false);
7830
- const [rampProvider, setrRampProvider] = (0, import_react22.useState)("binance");
7831
- const [minAmount, setMinAmount] = (0, import_react22.useState)(0);
7832
- const inputRef = (0, import_react22.useRef)(null);
7833
- const [srcQueryAmount, setSrcQueryAmount] = (0, import_react22.useState)(0);
7834
- const [srcInputAmount, setSrcInputAmount] = (0, import_react22.useState)(0);
7835
- const [paymentMode, setPaymentMode] = (0, import_react22.useState)(null);
7836
- const setQueryAmountDebounced = (0, import_react22.useCallback)(
7905
+ const [redirecting, setRedirecting] = (0, import_react23.useState)(false);
7906
+ const [rampProvider, setrRampProvider] = (0, import_react23.useState)("binance");
7907
+ const [minAmount, setMinAmount] = (0, import_react23.useState)(0);
7908
+ const inputRef = (0, import_react23.useRef)(null);
7909
+ const [srcQueryAmount, setSrcQueryAmount] = (0, import_react23.useState)(0);
7910
+ const [srcInputAmount, setSrcInputAmount] = (0, import_react23.useState)(0);
7911
+ const [paymentMode, setPaymentMode] = (0, import_react23.useState)(null);
7912
+ const setQueryAmountDebounced = (0, import_react23.useCallback)(
7837
7913
  debounce2((inputAmount) => {
7838
7914
  const checkedValue = Math.max(inputAmount, minAmount);
7839
7915
  setSrcInputAmount(checkedValue);
@@ -7841,7 +7917,7 @@ var useSelectables = () => {
7841
7917
  }, ON_INPUT_QUERY_DELAY),
7842
7918
  [minAmount]
7843
7919
  );
7844
- (0, import_react22.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
7920
+ (0, import_react23.useEffect)(() => setQueryAmountDebounced(srcInputAmount), [srcInputAmount, setQueryAmountDebounced]);
7845
7921
  return {
7846
7922
  inputRef,
7847
7923
  redirecting,
@@ -7862,6 +7938,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
7862
7938
  function BuyMenu() {
7863
7939
  const walletAddress = useLumiaPassportSession((st) => st.address);
7864
7940
  const setPage = useLayoutDataStore((st) => st.setPage);
7941
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
7865
7942
  const control = useSelectables();
7866
7943
  const { rampProvider, setrRampProvider } = control;
7867
7944
  const ProviderComponent = RAMP_PROVIDERS[rampProvider];
@@ -7870,30 +7947,40 @@ function BuyMenu() {
7870
7947
  simplex: "bg-[#081f2c]",
7871
7948
  binance: "bg-[#f3ba2f]"
7872
7949
  };
7873
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex flex-col gap-4 p-4 w-full", children: [
7874
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-2", children: [
7875
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react17.ArrowLeft, { className: "h-4 w-4" }) }),
7876
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
7877
- ] }) }),
7878
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-full flex items-center gap-2", children: AVAILABLE_RAMP_PROVIDERS.map(({ id, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
7879
- Button,
7880
- {
7881
- type: "button",
7882
- variant: "ghost",
7883
- size: "large",
7884
- onClick: () => setrRampProvider(id),
7885
- className: cn("w-full flex-1", { [activeServiceButtonsStyles[id]]: rampProvider === id }),
7886
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, {})
7950
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
7951
+ "div",
7952
+ {
7953
+ style: {
7954
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
7955
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
7887
7956
  },
7888
- id
7889
- )) }),
7890
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ProviderComponent, { control, walletAddress }) })
7891
- ] });
7957
+ className: "list-scrollbar-y w-full flex flex-col gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]",
7958
+ children: [
7959
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
7960
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react17.ArrowLeft, { className: "h-4 w-4" }) }),
7961
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "text-xl font-semibold", children: "Buy LUMIA" })
7962
+ ] }),
7963
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-full flex items-center gap-[var(--l-pass-gap)]", children: AVAILABLE_RAMP_PROVIDERS.map(({ id, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
7964
+ Button,
7965
+ {
7966
+ type: "button",
7967
+ variant: "ghost",
7968
+ size: "large",
7969
+ onClick: () => setrRampProvider(id),
7970
+ className: cn("w-full flex-1", { [activeServiceButtonsStyles[id]]: rampProvider === id }),
7971
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, {})
7972
+ },
7973
+ id
7974
+ )) }),
7975
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ProviderComponent, { control, walletAddress })
7976
+ ]
7977
+ }
7978
+ );
7892
7979
  }
7893
7980
 
7894
7981
  // src/internal/components/KeyshareBackupMenu/KeyshareBackupMenu.tsx
7895
7982
  var import_lucide_react19 = require("lucide-react");
7896
- var import_react23 = __toESM(require("react"), 1);
7983
+ var import_react24 = __toESM(require("react"), 1);
7897
7984
  init_iframe_manager();
7898
7985
 
7899
7986
  // src/internal/components/ui/checkbox.tsx
@@ -7929,30 +8016,30 @@ function KeyshareBackupMenu() {
7929
8016
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
7930
8017
  const userId = session?.mpcUserId || "";
7931
8018
  const onBackupSuccess = () => console.log("[ConnectWalletButton] Backup created successfully");
7932
- (0, import_react23.useEffect)(() => {
8019
+ (0, import_react24.useEffect)(() => {
7933
8020
  if (!userId) setPage("main-menu" /* MAIN_MENU */);
7934
8021
  }, [userId, setPage]);
7935
- const [backupStatus, setBackupStatus] = import_react23.default.useState({
8022
+ const [backupStatus, setBackupStatus] = import_react24.default.useState({
7936
8023
  server: {},
7937
8024
  cloud: {},
7938
8025
  local: {}
7939
8026
  });
7940
- const [loading, setLoading] = import_react23.default.useState({
8027
+ const [loading, setLoading] = import_react24.default.useState({
7941
8028
  server: false,
7942
8029
  cloud: false,
7943
8030
  local: false
7944
8031
  });
7945
- const [error, setError] = import_react23.default.useState(null);
7946
- const [success, setSuccess] = import_react23.default.useState(null);
7947
- const [showPassword, setShowPassword] = import_react23.default.useState(false);
7948
- const [useCustomPassword, setUseCustomPassword] = import_react23.default.useState(false);
7949
- const [customPassword, setCustomPassword] = import_react23.default.useState("");
7950
- const [cloudProviders, setCloudProviders] = import_react23.default.useState(
8032
+ const [error, setError] = import_react24.default.useState(null);
8033
+ const [success, setSuccess] = import_react24.default.useState(null);
8034
+ const [showPassword, setShowPassword] = import_react24.default.useState(false);
8035
+ const [useCustomPassword, setUseCustomPassword] = import_react24.default.useState(false);
8036
+ const [customPassword, setCustomPassword] = import_react24.default.useState("");
8037
+ const [cloudProviders, setCloudProviders] = import_react24.default.useState(
7951
8038
  []
7952
8039
  );
7953
- const [selectedCloudProvider, setSelectedCloudProvider] = import_react23.default.useState(null);
7954
- const [hasKeyshareData, setHasKeyshareData] = import_react23.default.useState(true);
7955
- const iframeManager = import_react23.default.useMemo(() => {
8040
+ const [selectedCloudProvider, setSelectedCloudProvider] = import_react24.default.useState(null);
8041
+ const [hasKeyshareData, setHasKeyshareData] = import_react24.default.useState(true);
8042
+ const iframeManager = import_react24.default.useMemo(() => {
7956
8043
  try {
7957
8044
  return getIframeManager();
7958
8045
  } catch (e) {
@@ -7960,7 +8047,7 @@ function KeyshareBackupMenu() {
7960
8047
  return null;
7961
8048
  }
7962
8049
  }, []);
7963
- (0, import_react23.useEffect)(() => {
8050
+ (0, import_react24.useEffect)(() => {
7964
8051
  const loadCloudProviders = async () => {
7965
8052
  try {
7966
8053
  const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
@@ -7980,7 +8067,7 @@ function KeyshareBackupMenu() {
7980
8067
  };
7981
8068
  loadCloudProviders();
7982
8069
  }, [selectedCloudProvider]);
7983
- const refreshStatus = import_react23.default.useCallback(async () => {
8070
+ const refreshStatus = import_react24.default.useCallback(async () => {
7984
8071
  if (!iframeManager) return;
7985
8072
  try {
7986
8073
  const status = await iframeManager.getBackupStatus(userId);
@@ -7989,7 +8076,7 @@ function KeyshareBackupMenu() {
7989
8076
  console.error("[KeyshareBackup] Failed to get backup status:", error2);
7990
8077
  }
7991
8078
  }, [iframeManager, userId]);
7992
- (0, import_react23.useEffect)(() => {
8079
+ (0, import_react24.useEffect)(() => {
7993
8080
  refreshStatus();
7994
8081
  }, [refreshStatus]);
7995
8082
  const handleBackup = async (method) => {
@@ -8218,21 +8305,21 @@ function KeyshareBackupMenu() {
8218
8305
  }
8219
8306
 
8220
8307
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
8221
- var import_react_query9 = require("@tanstack/react-query");
8308
+ var import_react_query10 = require("@tanstack/react-query");
8222
8309
  var import_lucide_react22 = require("lucide-react");
8223
- var import_react26 = __toESM(require("react"), 1);
8310
+ var import_react27 = __toESM(require("react"), 1);
8224
8311
  init_vaultClient();
8225
8312
 
8226
8313
  // src/internal/components/KeyshareRestoreMenu/NoBackupFound.tsx
8227
8314
  var import_lucide_react20 = require("lucide-react");
8228
- var import_react24 = require("react");
8315
+ var import_react25 = require("react");
8229
8316
  var import_jsx_runtime36 = require("react/jsx-runtime");
8230
8317
  var ACCOUNT_RECOVERY_TEXT = `This device doesn't have access to your wallet keyshare, and no backup was found in the Vault. To access your wallet: use the original device where you created the account, create a backup from that device first, then try restoring on this device.`;
8231
8318
  var ACCOUNT_FILE_RECOVERY_TEXT = `Try uploading a backup file if you have one saved locally, or create a different new account`;
8232
8319
  function NoBackupFound(props) {
8233
8320
  const { isLoading, restoreFromFile } = props;
8234
- const [restoreFile, setRestoreFile] = (0, import_react24.useState)(null);
8235
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react24.Fragment, { children: [
8321
+ const [restoreFile, setRestoreFile] = (0, import_react25.useState)(null);
8322
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react25.Fragment, { children: [
8236
8323
  /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Highlight, { type: "error", className: "animate-glow-warning flex gap-[var(--l-pass-gap)]", children: [
8237
8324
  /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react20.AlertCircle, { className: "h-4 w-4 flex-0" }),
8238
8325
  /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full flex-1 flex flex-col gap-2", children: [
@@ -8273,7 +8360,7 @@ function NoBackupFound(props) {
8273
8360
 
8274
8361
  // src/internal/components/KeyshareRestoreMenu/ServerBackupFound.tsx
8275
8362
  var import_lucide_react21 = require("lucide-react");
8276
- var import_react25 = require("react");
8363
+ var import_react26 = require("react");
8277
8364
  var import_jsx_runtime37 = require("react/jsx-runtime");
8278
8365
  function ServerBackupFound(props) {
8279
8366
  const {
@@ -8289,7 +8376,7 @@ function ServerBackupFound(props) {
8289
8376
  setRestorePassword,
8290
8377
  setUseCustomPassword
8291
8378
  } = props;
8292
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react25.Fragment, { children: [
8379
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react26.Fragment, { children: [
8293
8380
  /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Highlight, { type: "success", className: "w-full flex gap-[var(--l-pass-gap)]", children: [
8294
8381
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react21.AlertCircle, { className: "h-4 w-4 flex-0" }),
8295
8382
  /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full flex-1", children: [
@@ -8405,17 +8492,17 @@ var KeyshareRestoreMenu = () => {
8405
8492
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
8406
8493
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
8407
8494
  const setPage = useLayoutDataStore((st) => st.setPage);
8408
- (0, import_react26.useEffect)(() => setIsDialogForced(true), []);
8495
+ (0, import_react27.useEffect)(() => setIsDialogForced(true), []);
8409
8496
  const { usePaymaster, recoveryUserId, setRecoveryUserId, setSession, setAddress, setStatus, setIsLoading } = useLumiaPassportSession();
8410
- const [error, setError] = import_react26.default.useState(null);
8411
- const [success, setSuccess] = import_react26.default.useState(null);
8412
- const [showPassword, setShowPassword] = import_react26.default.useState(false);
8413
- const [useCustomPassword, setUseCustomPassword] = import_react26.default.useState(false);
8414
- const [restoreFile, setRestoreFile] = import_react26.default.useState(null);
8415
- const [restorePassword, setRestorePassword] = import_react26.default.useState("");
8416
- const [hasServerBackup, setHasServerBackup] = import_react26.default.useState(null);
8417
- const [checkingBackup, setCheckingBackup] = import_react26.default.useState(true);
8418
- const createSessionWithKeyshare = (0, import_react26.useCallback)(
8497
+ const [error, setError] = import_react27.default.useState(null);
8498
+ const [success, setSuccess] = import_react27.default.useState(null);
8499
+ const [showPassword, setShowPassword] = import_react27.default.useState(false);
8500
+ const [useCustomPassword, setUseCustomPassword] = import_react27.default.useState(false);
8501
+ const [restoreFile, setRestoreFile] = import_react27.default.useState(null);
8502
+ const [restorePassword, setRestorePassword] = import_react27.default.useState("");
8503
+ const [hasServerBackup, setHasServerBackup] = import_react27.default.useState(null);
8504
+ const [checkingBackup, setCheckingBackup] = import_react27.default.useState(true);
8505
+ const createSessionWithKeyshare = (0, import_react27.useCallback)(
8419
8506
  async (userId, hasServerKeyshare, isNewUser) => {
8420
8507
  try {
8421
8508
  try {
@@ -8449,7 +8536,7 @@ var KeyshareRestoreMenu = () => {
8449
8536
  },
8450
8537
  [setStatus, callbacks, usePaymaster]
8451
8538
  );
8452
- const onRestoreSuccess = (0, import_react26.useCallback)(async () => {
8539
+ const onRestoreSuccess = (0, import_react27.useCallback)(async () => {
8453
8540
  const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
8454
8541
  const verify = await verifyToken2();
8455
8542
  const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
@@ -8514,7 +8601,7 @@ var KeyshareRestoreMenu = () => {
8514
8601
  callbacks,
8515
8602
  config.projectId
8516
8603
  ]);
8517
- (0, import_react26.useEffect)(() => {
8604
+ (0, import_react27.useEffect)(() => {
8518
8605
  const checkBackupAvailability = async () => {
8519
8606
  try {
8520
8607
  setCheckingBackup(true);
@@ -8532,7 +8619,7 @@ var KeyshareRestoreMenu = () => {
8532
8619
  };
8533
8620
  checkBackupAvailability();
8534
8621
  }, [recoveryUserId]);
8535
- const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0, import_react_query9.useMutation)({
8622
+ const { mutate: restoreFromServer2, isPending: isRestoringFromServer } = (0, import_react_query10.useMutation)({
8536
8623
  mutationFn: async () => {
8537
8624
  setError(null);
8538
8625
  setSuccess(null);
@@ -8567,7 +8654,7 @@ var KeyshareRestoreMenu = () => {
8567
8654
  setError(errorMsg);
8568
8655
  }
8569
8656
  });
8570
- const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0, import_react_query9.useMutation)({
8657
+ const { mutate: restoreFromFile, isPending: isRestoringFromFile } = (0, import_react_query10.useMutation)({
8571
8658
  mutationFn: async () => {
8572
8659
  if (!restoreFile) {
8573
8660
  throw new Error("Please select a backup file");
@@ -8601,7 +8688,7 @@ var KeyshareRestoreMenu = () => {
8601
8688
  setError(errorMsg);
8602
8689
  }
8603
8690
  });
8604
- const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query9.useMutation)({
8691
+ const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query10.useMutation)({
8605
8692
  mutationFn: async () => {
8606
8693
  setError(null);
8607
8694
  setStatus("disconnecting");
@@ -8693,14 +8780,14 @@ var import_lucide_react24 = require("lucide-react");
8693
8780
  var import_lucide_react23 = require("lucide-react");
8694
8781
 
8695
8782
  // src/internal/components/KYC/useSumsubIframe.ts
8696
- var import_react27 = require("react");
8783
+ var import_react28 = require("react");
8697
8784
 
8698
8785
  // src/internal/components/KYC/api/sumsub.ts
8699
8786
  init_httpClient();
8700
8787
 
8701
8788
  // src/config/queryClient.ts
8702
- var import_react_query10 = require("@tanstack/react-query");
8703
- var queryClient = new import_react_query10.QueryClient({
8789
+ var import_react_query11 = require("@tanstack/react-query");
8790
+ var queryClient = new import_react_query11.QueryClient({
8704
8791
  defaultOptions: {
8705
8792
  queries: {
8706
8793
  staleTime: 1e3 * 60 * 6,
@@ -8816,13 +8903,13 @@ function useSumsubIframe({ iframeUrl }) {
8816
8903
  config: { current: config }
8817
8904
  } = useLumiaPassportConfig();
8818
8905
  const { colorMode } = useLumiaPassportColorMode();
8819
- const iframeRef = (0, import_react27.useRef)(null);
8820
- const [isLoading, setIsLoading] = (0, import_react27.useState)(true);
8821
- const [error, setError] = (0, import_react27.useState)(null);
8822
- const [height, setHeight] = (0, import_react27.useState)(0);
8823
- const [status, setStatus] = (0, import_react27.useState)("");
8906
+ const iframeRef = (0, import_react28.useRef)(null);
8907
+ const [isLoading, setIsLoading] = (0, import_react28.useState)(true);
8908
+ const [error, setError] = (0, import_react28.useState)(null);
8909
+ const [height, setHeight] = (0, import_react28.useState)(0);
8910
+ const [status, setStatus] = (0, import_react28.useState)("");
8824
8911
  const levelName = config.kyc?.options?.levelName;
8825
- (0, import_react27.useEffect)(() => {
8912
+ (0, import_react28.useEffect)(() => {
8826
8913
  setError(null);
8827
8914
  setIsLoading(true);
8828
8915
  setStatus("Preparing verification...");
@@ -8930,7 +9017,22 @@ function KycMenu() {
8930
9017
 
8931
9018
  // src/internal/components/MainMenu/MainMenu.tsx
8932
9019
  var import_lucide_react26 = require("lucide-react");
8933
- var import_react28 = require("react");
9020
+ var import_react29 = require("react");
9021
+
9022
+ // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9023
+ var import_react_query12 = require("@tanstack/react-query");
9024
+ init_common();
9025
+ var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9026
+ function useProvidersList() {
9027
+ const address = useLumiaPassportSession((st) => st.address);
9028
+ const page = useLayoutDataStore((st) => st.page);
9029
+ return (0, import_react_query12.useQuery)({
9030
+ retry: false,
9031
+ enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
9032
+ queryKey: [PROVIDERS_QUERY_KEY, address],
9033
+ queryFn: async () => getLinkedProviders()
9034
+ });
9035
+ }
8934
9036
 
8935
9037
  // src/internal/components/MainMenu/BackupWarning.tsx
8936
9038
  var import_framer_motion2 = require("framer-motion");
@@ -8986,18 +9088,19 @@ function MainMenu() {
8986
9088
  const address = useLumiaPassportSession((st) => st.address);
8987
9089
  const setPage = useLayoutDataStore((st) => st.setPage);
8988
9090
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
8989
- (0, import_react28.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
9091
+ useProvidersList();
9092
+ (0, import_react29.useEffect)(() => setMainPageHeight(DEFAULT_MAIN_MENU_HEIGHT), [setMainPageHeight]);
8990
9093
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
8991
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "grid grid-cols-4 gap-[var(--l-pass-gap)]", children: MAIN_MENU_BUTTONS.map(({ id, label, icon: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
9094
+ /* @__PURE__ */ (0, import_jsx_runtime42.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: Icon }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
8992
9095
  Button,
8993
9096
  {
8994
9097
  size: "large",
8995
9098
  variant: "ghost",
8996
9099
  disabled: !address,
8997
- className: "flex-col h-fit py-1",
9100
+ className: "flex-col w-full h-fit p-0",
8998
9101
  onClick: () => setPage(id),
8999
9102
  children: [
9000
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { className: "w-8 h-8" }),
9103
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { className: "w-5 h-5 md:w-8 md:h-8" }),
9001
9104
  /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-xs font-semibold", children: label })
9002
9105
  ]
9003
9106
  },
@@ -9010,11 +9113,11 @@ function MainMenu() {
9010
9113
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
9011
9114
  var import_lodash_es3 = require("lodash-es");
9012
9115
  var import_lucide_react30 = require("lucide-react");
9013
- var import_react32 = require("react");
9116
+ var import_react33 = require("react");
9014
9117
 
9015
9118
  // src/modules/linkedProfiles.ts
9016
- var import_react_query11 = require("@tanstack/react-query");
9017
- var import_react29 = require("react");
9119
+ var import_react_query13 = require("@tanstack/react-query");
9120
+ var import_react30 = require("react");
9018
9121
  init_auth();
9019
9122
  init_common();
9020
9123
  init_types();
@@ -9034,32 +9137,32 @@ async function getLinkProfilesData() {
9034
9137
  return { profiles: loadedProfiles, avatar };
9035
9138
  }
9036
9139
  function useLumiaPassportLinkedProfiles() {
9037
- const qc = (0, import_react_query11.useQueryClient)();
9140
+ const qc = (0, import_react_query13.useQueryClient)();
9038
9141
  const address = useLumiaPassportSession((st) => st.address);
9039
9142
  const {
9040
9143
  data,
9041
9144
  isFetching: isLoading,
9042
9145
  error
9043
- } = (0, import_react_query11.useQuery)({
9146
+ } = (0, import_react_query13.useQuery)({
9044
9147
  retry: false,
9045
9148
  enabled: !!address,
9046
9149
  queryKey: [LINKED_PROFILES_QUERY_KEY, address],
9047
9150
  queryFn: getLinkProfilesData
9048
9151
  });
9049
9152
  const { profiles = [], avatar = null } = data || {};
9050
- const refresh = (0, import_react29.useCallback)(async () => {
9153
+ const refresh = (0, import_react30.useCallback)(async () => {
9051
9154
  await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
9052
9155
  }, [qc, address]);
9053
9156
  return { profiles, avatar, isLoading, error, refresh };
9054
9157
  }
9055
9158
 
9056
9159
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
9057
- var import_react_query16 = require("@tanstack/react-query");
9160
+ var import_react_query17 = require("@tanstack/react-query");
9058
9161
  init_passkey2();
9059
9162
 
9060
9163
  // src/internal/components/ManageWalletMenu/EmailForm.tsx
9061
9164
  init_lumiaPassport();
9062
- var import_react_query12 = require("@tanstack/react-query");
9165
+ var import_react_query14 = require("@tanstack/react-query");
9063
9166
  var import_lucide_react27 = require("lucide-react");
9064
9167
  init_projectId();
9065
9168
 
@@ -9102,7 +9205,7 @@ function EmailForm() {
9102
9205
  const isLoading = useLumiaPassportSession((st) => st.isLoading);
9103
9206
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9104
9207
  const { email, setEmail, setEmailCodeSentError, setEmailCodeExpiresIn, setEmailStep } = useManageWalletStore();
9105
- const { mutate: onSendVerificationCode } = (0, import_react_query12.useMutation)({
9208
+ const { mutate: onSendVerificationCode } = (0, import_react_query14.useMutation)({
9106
9209
  mutationFn: async () => {
9107
9210
  if (!email) return;
9108
9211
  setIsLoading(true);
@@ -9178,27 +9281,12 @@ function EmailForm() {
9178
9281
  ] });
9179
9282
  }
9180
9283
 
9181
- // src/internal/components/ManageWalletMenu/hooks/useProvidersList.ts
9182
- var import_react_query13 = require("@tanstack/react-query");
9183
- init_common();
9184
- var PROVIDERS_QUERY_KEY = "lumia-passport-providers-query";
9185
- function useProvidersList() {
9186
- const address = useLumiaPassportSession((st) => st.address);
9187
- const page = useLayoutDataStore((st) => st.page);
9188
- return (0, import_react_query13.useQuery)({
9189
- retry: false,
9190
- enabled: !!address && page === "manage-wallet" /* MANAGE_WALLET */,
9191
- queryKey: [PROVIDERS_QUERY_KEY, address],
9192
- queryFn: async () => getLinkedProviders()
9193
- });
9194
- }
9195
-
9196
9284
  // src/internal/components/ManageWalletMenu/hooks/useSendVerificationCode.ts
9197
- var import_react_query14 = require("@tanstack/react-query");
9285
+ var import_react_query15 = require("@tanstack/react-query");
9198
9286
  init_email();
9199
9287
  function useSendVerificationCode() {
9200
9288
  const { setVerificationError, setLinkIsLoading, setEmailCodeSentError, setEmailCodeExpiresIn } = useManageWalletStore();
9201
- return (0, import_react_query14.useMutation)({
9289
+ return (0, import_react_query15.useMutation)({
9202
9290
  mutationFn: async (email) => {
9203
9291
  if (!email) {
9204
9292
  throw new Error("Email is required");
@@ -9221,11 +9309,11 @@ function useSendVerificationCode() {
9221
9309
  }
9222
9310
 
9223
9311
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
9224
- var import_react_query15 = require("@tanstack/react-query");
9312
+ var import_react_query16 = require("@tanstack/react-query");
9225
9313
  init_email();
9226
9314
  function useVerifyCode() {
9227
9315
  const { callbacks } = useLumiaPassportConfig();
9228
- const qc = (0, import_react_query15.useQueryClient)();
9316
+ const qc = (0, import_react_query16.useQueryClient)();
9229
9317
  const address = useLumiaPassportSession((st) => st.address);
9230
9318
  const setIsLoading = useLumiaPassportSession((st) => st.setIsLoading);
9231
9319
  const {
@@ -9239,7 +9327,7 @@ function useVerifyCode() {
9239
9327
  setVerificationError,
9240
9328
  setEmailCodeSentError
9241
9329
  } = useManageWalletStore();
9242
- return (0, import_react_query15.useMutation)({
9330
+ return (0, import_react_query16.useMutation)({
9243
9331
  mutationFn: async (codeToVerify) => {
9244
9332
  const code = codeToVerify ?? emailCode;
9245
9333
  if (!code) {
@@ -9289,7 +9377,7 @@ function normalizePasskeyLinkError(msg) {
9289
9377
  return msg;
9290
9378
  }
9291
9379
  function AddProvider() {
9292
- const qc = (0, import_react_query16.useQueryClient)();
9380
+ const qc = (0, import_react_query17.useQueryClient)();
9293
9381
  const { callbacks } = useLumiaPassportConfig();
9294
9382
  const address = useLumiaPassportSession((st) => st.address);
9295
9383
  const {
@@ -9449,11 +9537,11 @@ function EmailNotConnectedWarning() {
9449
9537
  }
9450
9538
 
9451
9539
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
9452
- var import_react_query17 = require("@tanstack/react-query");
9453
- var import_react30 = __toESM(require("react"), 1);
9540
+ var import_react_query18 = require("@tanstack/react-query");
9541
+ var import_react31 = __toESM(require("react"), 1);
9454
9542
  init_auth();
9455
9543
  function useLinkSocial() {
9456
- const qc = (0, import_react_query17.useQueryClient)();
9544
+ const qc = (0, import_react_query18.useQueryClient)();
9457
9545
  const address = useLumiaPassportSession((st) => st.address);
9458
9546
  const {
9459
9547
  config: { current: config },
@@ -9461,7 +9549,7 @@ function useLinkSocial() {
9461
9549
  } = useLumiaPassportConfig();
9462
9550
  const setPage = useLayoutDataStore((st) => st.setPage);
9463
9551
  const { providerType, linkIsLoading, isWalletLinking, setProviderType, setLinkIsLoading, setLinkError } = useManageWalletStore();
9464
- const handleLinkSocialProvider = import_react30.default.useCallback(
9552
+ const handleLinkSocialProvider = import_react31.default.useCallback(
9465
9553
  async (providerIdRaw) => {
9466
9554
  const providerKey = providerIdRaw.toLowerCase();
9467
9555
  const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
@@ -9513,8 +9601,8 @@ function useLinkSocial() {
9513
9601
  },
9514
9602
  [config.social?.providers, callbacks]
9515
9603
  );
9516
- const [socialLinkStarted, setSocialLinkStarted] = import_react30.default.useState(false);
9517
- (0, import_react30.useEffect)(() => {
9604
+ const [socialLinkStarted, setSocialLinkStarted] = import_react31.default.useState(false);
9605
+ (0, import_react31.useEffect)(() => {
9518
9606
  const key = providerType?.toLowerCase();
9519
9607
  console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted, isWalletLinking });
9520
9608
  if (isWalletLinking) {
@@ -9534,19 +9622,19 @@ function useLinkSocial() {
9534
9622
  }
9535
9623
 
9536
9624
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
9537
- var import_react_query18 = require("@tanstack/react-query");
9538
- var import_react31 = require("react");
9625
+ var import_react_query19 = require("@tanstack/react-query");
9626
+ var import_react32 = require("react");
9539
9627
  init_telegram2();
9540
9628
  function useLinkTelegram() {
9541
9629
  const {
9542
9630
  config: { current: config },
9543
9631
  callbacks
9544
9632
  } = useLumiaPassportConfig();
9545
- const qc = (0, import_react_query18.useQueryClient)();
9633
+ const qc = (0, import_react_query19.useQueryClient)();
9546
9634
  const address = useLumiaPassportSession((st) => st.address);
9547
9635
  const { providerType, linkIsLoading, isWalletLinking, setLinkIsLoading, setProviderType, setLinkError } = useManageWalletStore();
9548
9636
  const setPage = useLayoutDataStore((st) => st.setPage);
9549
- const handleLinkTelegram = (0, import_react31.useCallback)(async () => {
9637
+ const handleLinkTelegram = (0, import_react32.useCallback)(async () => {
9550
9638
  try {
9551
9639
  setLinkIsLoading(true);
9552
9640
  setLinkError("");
@@ -9588,8 +9676,8 @@ function useLinkTelegram() {
9588
9676
  setLinkIsLoading(false);
9589
9677
  }
9590
9678
  }, [config.social?.providers, callbacks]);
9591
- const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react31.useState)(false);
9592
- (0, import_react31.useEffect)(() => {
9679
+ const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react32.useState)(false);
9680
+ (0, import_react32.useEffect)(() => {
9593
9681
  console.log("[useLinkTelegram] Effect triggered:", { providerType, linkIsLoading, telegramLinkStarted, isWalletLinking });
9594
9682
  if (isWalletLinking) {
9595
9683
  console.log("[useLinkTelegram] Skipping - wallet linking in progress");
@@ -9601,7 +9689,7 @@ function useLinkTelegram() {
9601
9689
  handleLinkTelegram();
9602
9690
  }
9603
9691
  }, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted, isWalletLinking]);
9604
- (0, import_react31.useEffect)(() => {
9692
+ (0, import_react32.useEffect)(() => {
9605
9693
  if (providerType !== "telegram") {
9606
9694
  setTelegramLinkStarted(false);
9607
9695
  }
@@ -9691,6 +9779,7 @@ function ManageWalletMenu() {
9691
9779
  config: { current: config }
9692
9780
  } = useLumiaPassportConfig();
9693
9781
  const setPage = useLayoutDataStore((st) => st.setPage);
9782
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
9694
9783
  const {
9695
9784
  providerType,
9696
9785
  isWalletLinking,
@@ -9709,7 +9798,7 @@ function ManageWalletMenu() {
9709
9798
  } = useManageWalletStore();
9710
9799
  const configuredProviders = getConfiguredProviders(config);
9711
9800
  const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
9712
- const renderProviders = (0, import_react32.useMemo)(() => {
9801
+ const renderProviders = (0, import_react33.useMemo)(() => {
9713
9802
  const usedProviders = (0, import_lodash_es3.fromPairs)(providers.map((p) => [p.provider, true]));
9714
9803
  const used = [];
9715
9804
  const unused = [];
@@ -9770,60 +9859,70 @@ function ManageWalletMenu() {
9770
9859
  const showCurrentProviders = !isProvidersLoading && !providersError && (providerType !== "email" && providerType !== "passkey" || providerType === null);
9771
9860
  const showExtraProvidersUi = !isProvidersLoading && !providersError && (providerType === "email" || providerType === "passkey");
9772
9861
  const combinedError = emailCodeSentError || linkError || verificationError || null;
9773
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
9774
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9775
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9776
- Button,
9777
- {
9778
- variant: "ghost",
9779
- size: "icon",
9780
- title: "Back",
9781
- onClick: () => {
9782
- if (providerType === "email") {
9783
- setEmail("");
9784
- setEmailCode("");
9785
- setEmailStep("input");
9786
- setEmailCodeSentError("");
9787
- setEmailCodeExpiresIn(0);
9788
- setVerificationError("");
9789
- }
9790
- setLinkError("");
9791
- if (!providerType) setPage("settings" /* SETTINGS */);
9792
- setProviderType(null);
9793
- },
9794
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react30.ArrowLeft, { className: "h-4 w-4" })
9795
- }
9796
- ),
9797
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xl font-semibold", children: "Profiles" })
9798
- ] }),
9799
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
9800
- providersError && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Highlight, { type: "error", className: "flex items-start gap-[var(--l-pass-gap)] break-words whitespace-pre-wrap", children: [
9801
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react30.AlertTriangle, { className: "w-4 h-4 shrink-0" }),
9802
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "block", children: providersError.message })
9803
- ] }),
9804
- isProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react30.Loader, { className: "w-5 h-5 animate-spin" }) }),
9805
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(EmailNotConnectedWarning, {}),
9806
- showCurrentProviders && renderProviders.map((node) => node),
9807
- showExtraProvidersUi && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(AddProvider, {}),
9808
- combinedError && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Highlight, { type: "error", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: combinedError }) })
9809
- ] })
9810
- ] });
9811
- }
9812
-
9813
- // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
9814
- var import_react_query19 = require("@tanstack/react-query");
9862
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
9863
+ "div",
9864
+ {
9865
+ style: {
9866
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
9867
+ "--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
9868
+ },
9869
+ className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
9870
+ children: [
9871
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
9872
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9873
+ Button,
9874
+ {
9875
+ variant: "ghost",
9876
+ size: "icon",
9877
+ title: "Back",
9878
+ onClick: () => {
9879
+ if (providerType === "email") {
9880
+ setEmail("");
9881
+ setEmailCode("");
9882
+ setEmailStep("input");
9883
+ setEmailCodeSentError("");
9884
+ setEmailCodeExpiresIn(0);
9885
+ setVerificationError("");
9886
+ }
9887
+ setLinkError("");
9888
+ if (!providerType) setPage("settings" /* SETTINGS */);
9889
+ setProviderType(null);
9890
+ },
9891
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react30.ArrowLeft, { className: "h-4 w-4" })
9892
+ }
9893
+ ),
9894
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xl font-semibold", children: "Profiles" })
9895
+ ] }),
9896
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
9897
+ providersError && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Highlight, { type: "error", className: "flex items-start gap-[var(--l-pass-gap)] break-words whitespace-pre-wrap", children: [
9898
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react30.AlertTriangle, { className: "w-4 h-4 shrink-0" }),
9899
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "block", children: providersError.message })
9900
+ ] }),
9901
+ isProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex items-center justify-center p-4 text-[var(--l-pass-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react30.Loader, { className: "w-5 h-5 animate-spin" }) }),
9902
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(EmailNotConnectedWarning, {}),
9903
+ showCurrentProviders && renderProviders.map((node) => node),
9904
+ showExtraProvidersUi && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(AddProvider, {}),
9905
+ combinedError && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Highlight, { type: "error", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: combinedError }) })
9906
+ ] })
9907
+ ]
9908
+ }
9909
+ );
9910
+ }
9911
+
9912
+ // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
9913
+ var import_react_query20 = require("@tanstack/react-query");
9815
9914
  var import_lucide_react31 = require("lucide-react");
9816
- var import_react33 = require("react");
9915
+ var import_react34 = require("react");
9817
9916
  init_auth();
9818
9917
  var import_jsx_runtime48 = require("react/jsx-runtime");
9819
9918
  function UnlinkProviderMenu() {
9820
- const qc = (0, import_react_query19.useQueryClient)();
9919
+ const qc = (0, import_react_query20.useQueryClient)();
9821
9920
  const address = useLumiaPassportSession((st) => st.address);
9822
9921
  const { callbacks } = useLumiaPassportConfig();
9823
9922
  const setPage = useLayoutDataStore((st) => st.setPage);
9824
9923
  const { confirmUnlink, setConfirmUnlink, setLinkError } = useManageWalletStore();
9825
- const [confirmInput, setConfirmInput] = (0, import_react33.useState)("");
9826
- const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query19.useMutation)({
9924
+ const [confirmInput, setConfirmInput] = (0, import_react34.useState)("");
9925
+ const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query20.useMutation)({
9827
9926
  mutationFn: async () => {
9828
9927
  if (!confirmUnlink) {
9829
9928
  throw new Error("No provider to unlink");
@@ -9896,12 +9995,12 @@ function UnlinkProviderMenu() {
9896
9995
  }
9897
9996
 
9898
9997
  // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
9899
- var import_react_query21 = require("@tanstack/react-query");
9998
+ var import_react_query22 = require("@tanstack/react-query");
9900
9999
  var import_lucide_react33 = require("lucide-react");
9901
- var import_react35 = require("react");
10000
+ var import_react36 = require("react");
9902
10001
 
9903
10002
  // src/modules/assets.ts
9904
- var import_react34 = __toESM(require("react"), 1);
10003
+ var import_react35 = __toESM(require("react"), 1);
9905
10004
  var import_wagmi2 = require("wagmi");
9906
10005
  var import_viem4 = require("viem");
9907
10006
  init_base();
@@ -10048,7 +10147,7 @@ function useTokenBalance(tokenAddress, userAddress) {
10048
10147
  }
10049
10148
  });
10050
10149
  const { tokenInfo } = useTokenInfo(tokenAddress);
10051
- const formattedBalance = import_react34.default.useMemo(() => {
10150
+ const formattedBalance = import_react35.default.useMemo(() => {
10052
10151
  if (!balance || !tokenInfo) return "0";
10053
10152
  return (0, import_viem4.formatUnits)(balance, tokenInfo.decimals);
10054
10153
  }, [balance, tokenInfo]);
@@ -10062,7 +10161,7 @@ function useTokenBalance(tokenAddress, userAddress) {
10062
10161
  }
10063
10162
 
10064
10163
  // src/internal/components/PortfolioMenu/PortfolioItem.tsx
10065
- var import_react_query20 = require("@tanstack/react-query");
10164
+ var import_react_query21 = require("@tanstack/react-query");
10066
10165
  var import_lucide_react32 = require("lucide-react");
10067
10166
  init_base();
10068
10167
  var import_jsx_runtime49 = require("react/jsx-runtime");
@@ -10093,10 +10192,10 @@ var ASSETS_RATES_QUERY_KEY = "lumia-passport-assets-rates-query-key";
10093
10192
  function PortfolioItem(props) {
10094
10193
  const { address, asset, isProjectAsset } = props;
10095
10194
  const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = useLumiaPassportConfig().config.current.projectAssets || {};
10096
- const qc = (0, import_react_query20.useQueryClient)();
10195
+ const qc = (0, import_react_query21.useQueryClient)();
10097
10196
  const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
10098
10197
  const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
10099
- const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query20.useQuery)({
10198
+ const { data: assetRate, isLoading: isRateLoading } = (0, import_react_query21.useQuery)({
10100
10199
  retry: false,
10101
10200
  staleTime: 4 * 60 * 1e3,
10102
10201
  enabled: !!address && !!asset.symbol && !isProjectAsset,
@@ -10155,73 +10254,50 @@ function PortfolioItem(props) {
10155
10254
  var import_jsx_runtime50 = require("react/jsx-runtime");
10156
10255
  function PortfolioMenu() {
10157
10256
  const { assets: projectAssets = [] } = useLumiaPassportConfig().config.current?.projectAssets || {};
10158
- const qc = (0, import_react_query21.useQueryClient)();
10257
+ const qc = (0, import_react_query22.useQueryClient)();
10159
10258
  const setPage = useLayoutDataStore((st) => st.setPage);
10160
10259
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
10161
- const assetsContainerListRef = (0, import_react35.useRef)(null);
10162
- const assetsListRef = (0, import_react35.useRef)(null);
10163
10260
  const address = useLumiaPassportSession((st) => st.address);
10164
10261
  const { assets, refreshBalances, isLoading } = useAssets(address);
10165
- const refreshAllAssetsBalances = (0, import_react35.useCallback)(() => {
10262
+ const refreshAllAssetsBalances = (0, import_react36.useCallback)(() => {
10166
10263
  Promise.all(projectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
10167
10264
  refreshBalances();
10168
10265
  }, [qc, projectAssets, refreshBalances]);
10169
- (0, import_react35.useEffect)(() => {
10170
- if (!assetsContainerListRef.current || !assetsListRef.current) return;
10171
- const listTargetHeight = maxScrollHeight - 128;
10172
- assetsContainerListRef.current.style.setProperty("--l-pass-scrollbar-mah", `${listTargetHeight}px`);
10173
- assetsContainerListRef.current.style.setProperty(
10174
- "--l-pass-list-bd",
10175
- assetsListRef.current.clientHeight >= listTargetHeight ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
10176
- // hide border if no scrollbar
10177
- );
10178
- assetsContainerListRef.current.style.setProperty(
10179
- "--l-pass-list-scrollbar-pd-r",
10180
- assetsListRef.current.clientHeight >= listTargetHeight ? "4px" : "0px"
10181
- // remove padding if no scrollbar
10182
- );
10183
- }, [maxScrollHeight]);
10184
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10185
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10186
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.ArrowLeft, { className: "h-4 w-4" }) }),
10187
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
10188
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10189
- Button,
10190
- {
10191
- title: "Refresh balances",
10192
- variant: "ghost",
10193
- size: "icon",
10194
- onClick: refreshAllAssetsBalances,
10195
- disabled: isLoading,
10196
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.RefreshCw, { className: "h-4 w-4" })
10197
- }
10198
- )
10199
- ] }),
10200
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
10201
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
10202
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.Loader, { className: "h-5 w-5 animate-spin" }),
10203
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
10204
- ] }),
10205
- !isLoading && assets.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
10206
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.Gem, { className: "w-12 h-12 mb-2" }),
10207
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { children: "No assets found" })
10208
- ] }),
10209
- !isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10210
- "div",
10211
- {
10212
- ref: assetsContainerListRef,
10213
- style: { borderTop: "1px solid var(--l-pass-list-bd)", borderBottom: "1px solid var(--l-pass-list-bd)" },
10214
- className: "list-scrollbar-y relative",
10215
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { ref: assetsListRef, className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
10216
- projectAssets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10217
- PortfolioItem,
10218
- {
10219
- isProjectAsset: true,
10220
- address,
10221
- asset
10222
- },
10223
- `project-${asset.symbol}-${index}`
10224
- )),
10266
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
10267
+ "div",
10268
+ {
10269
+ style: {
10270
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
10271
+ "--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
10272
+ },
10273
+ className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
10274
+ children: [
10275
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10276
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.ArrowLeft, { className: "h-4 w-4" }) }),
10277
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xl font-semibold", children: "Your Assets" }),
10278
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10279
+ Button,
10280
+ {
10281
+ title: "Refresh balances",
10282
+ variant: "ghost",
10283
+ size: "icon",
10284
+ onClick: refreshAllAssetsBalances,
10285
+ disabled: isLoading,
10286
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.RefreshCw, { className: "h-4 w-4" })
10287
+ }
10288
+ )
10289
+ ] }),
10290
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
10291
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex items-center justify-center gap-[var(--l-pass-gap)] p-[var(--l-pass-pd)]", children: [
10292
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.Loader, { className: "h-5 w-5 animate-spin" }),
10293
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-[var(--l-pass-muted)]", children: "Loading assets..." })
10294
+ ] }),
10295
+ !isLoading && assets.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col items-center justify-center py-8 text-[var(--l-pass-muted)]", children: [
10296
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react33.Gem, { className: "w-12 h-12 mb-2" }),
10297
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { children: "No assets found" })
10298
+ ] }),
10299
+ !isLoading && assets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: [
10300
+ projectAssets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
10225
10301
  assets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10226
10302
  PortfolioItem,
10227
10303
  {
@@ -10231,277 +10307,298 @@ function PortfolioMenu() {
10231
10307
  `${asset.type}-${asset.address || "native"}-${index}`
10232
10308
  ))
10233
10309
  ] })
10234
- }
10235
- )
10236
- ] })
10237
- ] });
10310
+ ] })
10311
+ ]
10312
+ }
10313
+ );
10238
10314
  }
10239
10315
 
10240
10316
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
10317
+ var import_react_query23 = require("@tanstack/react-query");
10241
10318
  var import_lucide_react34 = require("lucide-react");
10242
- var import_react36 = require("react");
10319
+ var import_react37 = require("react");
10243
10320
  init_auth();
10244
10321
  init_keyshare();
10322
+ init_iframe_manager();
10245
10323
  init_vaultClient();
10246
10324
  var import_jsx_runtime51 = require("react/jsx-runtime");
10325
+ var KEYSHARE_RECOVERY_STATS_QUERY = "keyshare-recovery-stats-query";
10326
+ function parseOS(ua) {
10327
+ if (!ua) return null;
10328
+ if (ua.includes("Mac OS X")) return "macOS";
10329
+ if (ua.includes("Windows")) return "Windows";
10330
+ if (ua.includes("Android")) return "Android";
10331
+ if (ua.includes("Linux")) return "Linux";
10332
+ if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
10333
+ return null;
10334
+ }
10247
10335
  function SecurityMenu() {
10248
- const page = useLayoutDataStore((st) => st.page);
10336
+ const qc = (0, import_react_query23.useQueryClient)();
10337
+ const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
10249
10338
  const setPage = useLayoutDataStore((st) => st.setPage);
10250
- const open = page === "security";
10251
10339
  const userId = import_auth3.jwtTokenManager.getUserId();
10340
+ (0, import_react37.useEffect)(() => {
10341
+ if (!userId) setPage("main-menu" /* MAIN_MENU */);
10342
+ }, [userId, setPage]);
10343
+ const [localInfo, setLocalInfo] = (0, import_react37.useState)(null);
10344
+ const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react37.useState)(null);
10345
+ const [recoveryBrowser, setRecoveryBrowser] = (0, import_react37.useState)(null);
10346
+ const [recoveryUa, setRecoveryUa] = (0, import_react37.useState)(null);
10347
+ const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react37.useState)(null);
10348
+ const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react37.useState)(null);
10349
+ const [recoveryCountry, setRecoveryCountry] = (0, import_react37.useState)(null);
10350
+ const [hasServerBackup, setHasServerBackup] = (0, import_react37.useState)(false);
10351
+ const [trustedApps, setTrustedApps] = (0, import_react37.useState)([]);
10352
+ const [appToRemove, setAppToRemove] = (0, import_react37.useState)(null);
10353
+ const {
10354
+ data: recoveryData,
10355
+ isFetching: isRecoveryRefreshing
10356
+ // error: recoveryError
10357
+ } = (0, import_react_query23.useQuery)({
10358
+ enabled: !!userId,
10359
+ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId],
10360
+ queryFn: async () => {
10361
+ const iframeManager = getIframeManager();
10362
+ if (!iframeManager) {
10363
+ throw new Error("Iframe manager not available");
10364
+ }
10365
+ const trustedApps2 = await iframeManager.getTrustedApps(userId);
10366
+ const keyshareInfo = await getKeyshareInfo(userId);
10367
+ const shareRecoveryStats = await getShareRecoveryStats();
10368
+ return { trustedApps: trustedApps2, keyshareInfo, shareRecoveryStats };
10369
+ }
10370
+ });
10371
+ (0, import_react37.useEffect)(() => {
10372
+ if (!recoveryData) return;
10373
+ const { trustedApps: trustedApps2, keyshareInfo, shareRecoveryStats } = recoveryData;
10374
+ setLocalInfo(keyshareInfo);
10375
+ setTrustedApps(trustedApps2);
10376
+ const hasRecoveryData = shareRecoveryStats && (shareRecoveryStats.created || shareRecoveryStats.devices && shareRecoveryStats.devices.length > 0);
10377
+ const created = shareRecoveryStats?.created;
10378
+ setHasServerBackup(!!hasRecoveryData);
10379
+ setRecoveryCreatedAt(created?.at || null);
10380
+ setRecoveryBrowser(created?.browser || null);
10381
+ setRecoveryUa(created?.ua || null);
10382
+ setRecoveryDeviceId(created?.deviceId || null);
10383
+ setRecoveryDeviceName(created?.deviceName || null);
10384
+ setRecoveryCountry(created?.country || null);
10385
+ }, [recoveryData]);
10252
10386
  const serverHasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
10253
10387
  const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
10254
- const [isRefreshing, setIsRefreshing] = (0, import_react36.useState)(false);
10255
- const [localInfo, setLocalInfo] = (0, import_react36.useState)(null);
10256
- const [recoveryCreatedAt, setRecoveryCreatedAt] = (0, import_react36.useState)(null);
10257
- const [recoveryBrowser, setRecoveryBrowser] = (0, import_react36.useState)(null);
10258
- const [recoveryUa, setRecoveryUa] = (0, import_react36.useState)(null);
10259
- const [recoveryDeviceId, setRecoveryDeviceId] = (0, import_react36.useState)(null);
10260
- const [recoveryDeviceName, setRecoveryDeviceName] = (0, import_react36.useState)(null);
10261
- const [recoveryCountry, setRecoveryCountry] = (0, import_react36.useState)(null);
10262
- const [hasServerBackup, setHasServerBackup] = (0, import_react36.useState)(false);
10263
- const [trustedApps, setTrustedApps] = (0, import_react36.useState)([]);
10264
- const [appToRemove, setAppToRemove] = (0, import_react36.useState)(null);
10265
- const fetchRecovery = (0, import_react36.useCallback)(async () => {
10266
- if (!userId) return;
10267
- try {
10268
- setIsRefreshing(true);
10269
- const keyshareInfo = await getKeyshareInfo(userId);
10270
- setLocalInfo(keyshareInfo);
10271
- const { getIframeManager: getIframeManager2 } = await Promise.resolve().then(() => (init_iframe_manager(), iframe_manager_exports));
10272
- try {
10273
- console.log("[SecurityModal] Loading trusted apps for user:", userId);
10274
- const iframeManager = getIframeManager2();
10275
- const apps = await iframeManager.getTrustedApps(userId);
10276
- console.log("[SecurityModal] Received trusted apps:", apps);
10277
- console.log("[SecurityModal] Trusted apps count:", apps?.length);
10278
- console.log("[SecurityModal] Setting trusted apps state with:", apps);
10279
- setTrustedApps(apps);
10280
- } catch (error) {
10281
- console.error("[SecurityModal] Failed to load trusted apps:", error);
10282
- setTrustedApps([]);
10283
- }
10284
- const stats = await getShareRecoveryStats();
10285
- const hasRecoveryData = stats && (stats.created || stats.devices && stats.devices.length > 0);
10286
- setHasServerBackup(!!hasRecoveryData);
10287
- const created = stats?.created;
10288
- setRecoveryCreatedAt(created?.at || null);
10289
- setRecoveryBrowser(created?.browser || null);
10290
- setRecoveryUa(created?.ua || null);
10291
- setRecoveryDeviceId(created?.deviceId || null);
10292
- setRecoveryDeviceName(created?.deviceName || null);
10293
- setRecoveryCountry(created?.country || null);
10294
- } finally {
10295
- setIsRefreshing(false);
10296
- }
10297
- }, [userId]);
10298
- (0, import_react36.useEffect)(() => {
10299
- if (open) fetchRecovery();
10300
- }, [open, fetchRecovery]);
10301
- const parseOS = (ua) => {
10302
- if (!ua) return null;
10303
- if (ua.includes("Mac OS X")) return "macOS";
10304
- if (ua.includes("Windows")) return "Windows";
10305
- if (ua.includes("Android")) return "Android";
10306
- if (ua.includes("Linux")) return "Linux";
10307
- if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
10308
- return null;
10309
- };
10310
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full p-4 flex flex-col gap-4", children: [
10311
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-2", children: [
10312
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.ArrowLeft, { className: "h-4 w-4" }) }),
10313
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-2 font-semibold", children: [
10314
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
10315
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "ghost", size: "icon", title: "Refresh", onClick: fetchRecovery, children: isRefreshing ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.RefreshCw, { className: "h-4 w-4" }) })
10316
- ] })
10317
- ] }) }),
10318
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "grid grid-cols-3 gap-4", children: [
10319
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10320
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10321
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Cloud, { className: "h-4 w-4" }),
10322
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Server" })
10323
- ] }),
10324
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10325
- "span",
10326
- {
10327
- className: cn(
10328
- "inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
10329
- serverHasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
10330
- ),
10331
- children: [
10332
- serverHasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.AlertTriangle, { className: "h-4 w-4 mr-1" }),
10333
- serverHasKeyshare ? "Ready" : "Missing"
10334
- ]
10335
- }
10336
- )
10337
- ] }),
10338
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10339
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10340
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Laptop, { className: "h-4 w-4" }),
10341
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Local" })
10342
- ] }),
10343
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10344
- "span",
10345
- {
10346
- className: cn(
10347
- "inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
10348
- localInfo?.hasKeyshare ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
10349
- ),
10350
- children: [
10351
- localInfo?.hasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.AlertTriangle, { className: "h-4 w-4 mr-1" }),
10352
- localInfo?.hasKeyshare ? "Ready" : "Missing"
10353
- ]
10354
- }
10355
- )
10356
- ] }),
10357
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10358
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-2", children: [
10359
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Shield, { className: "h-4 w-4" }),
10360
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-medium", children: "Vault" })
10361
- ] }),
10362
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10363
- "span",
10364
- {
10365
- className: cn(
10366
- "inline-flex items-center text-sm px-3 py-2 rounded-full text-white",
10367
- hasServerBackup ? "bg-[var(--l-pass-success)]" : "bg-[var(--l-pass-warning)]"
10368
- ),
10369
- children: [
10370
- hasServerBackup ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.AlertTriangle, { className: "h-4 w-4 mr-1" }),
10371
- hasServerBackup ? "Ready" : "None"
10372
- ]
10373
- }
10374
- )
10375
- ] })
10376
- ] }),
10377
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
10378
- localInfo?.hasKeyshare && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10379
- localInfo.ownerAddress && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10380
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Owner: " }),
10381
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
10382
- ] }),
10383
- typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10384
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Size: " }),
10385
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
10386
- ] }),
10387
- localInfo.sessionId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10388
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Session: " }),
10389
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.sessionId })
10390
- ] })
10391
- ] }),
10392
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10393
- backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10394
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Server, { className: "h-2.5 w-2.5" }),
10395
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10396
- "Server: ",
10397
- new Date(backup.server.lastBackup).toLocaleString()
10398
- ] })
10399
- ] }),
10400
- !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10401
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Server, { className: "h-2.5 w-2.5" }),
10402
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10403
- "Server: ",
10404
- new Date(recoveryCreatedAt).toLocaleString()
10388
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10389
+ "div",
10390
+ {
10391
+ style: {
10392
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
10393
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
10394
+ },
10395
+ className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
10396
+ children: [
10397
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10398
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.ArrowLeft, { className: "h-4 w-4" }) }),
10399
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)] font-semibold", children: [
10400
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xl font-semibold", children: "Keyshare Status" }),
10401
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
10402
+ Button,
10403
+ {
10404
+ variant: "ghost",
10405
+ size: "icon",
10406
+ title: "Refresh",
10407
+ onClick: () => qc.invalidateQueries({ queryKey: [KEYSHARE_RECOVERY_STATS_QUERY, userId] }),
10408
+ children: isRecoveryRefreshing ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.RefreshCw, { className: "h-4 w-4" })
10409
+ }
10410
+ )
10405
10411
  ] })
10406
10412
  ] }),
10407
- backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10408
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Cloud, { className: "h-2.5 w-2.5" }),
10409
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10410
- "Cloud: ",
10411
- new Date(backup.cloud.lastBackup).toLocaleString()
10413
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "grid grid-cols-3 gap-[var(--l-pass-gap)]", children: [
10414
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10415
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
10416
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Cloud, { className: "h-4 w-4" }),
10417
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xs font-medium", children: "Server" })
10418
+ ] }),
10419
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10420
+ "span",
10421
+ {
10422
+ className: cn(
10423
+ "inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
10424
+ serverHasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
10425
+ ),
10426
+ children: [
10427
+ serverHasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.AlertTriangle, { className: "h-4 w-4" }),
10428
+ serverHasKeyshare ? "Ready" : "Missing"
10429
+ ]
10430
+ }
10431
+ )
10432
+ ] }),
10433
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10434
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
10435
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Laptop, { className: "h-4 w-4" }),
10436
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xs font-medium", children: "Local" })
10437
+ ] }),
10438
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10439
+ "span",
10440
+ {
10441
+ className: cn(
10442
+ "inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
10443
+ localInfo?.hasKeyshare ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
10444
+ ),
10445
+ children: [
10446
+ localInfo?.hasKeyshare ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.AlertTriangle, { className: "h-4 w-4" }),
10447
+ localInfo?.hasKeyshare ? "Ready" : "Missing"
10448
+ ]
10449
+ }
10450
+ )
10451
+ ] }),
10452
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-2 text-center", children: [
10453
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-center gap-[var(--l-pass-gap)]", children: [
10454
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Shield, { className: "h-4 w-4" }),
10455
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-xs font-medium", children: "Vault" })
10456
+ ] }),
10457
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10458
+ "span",
10459
+ {
10460
+ className: cn(
10461
+ "inline-flex gap-[var(--l-pass-gap)] items-center text-xs px-2 py-1 rounded-full text-black leading-4",
10462
+ hasServerBackup ? "bg-[var(--l-pass-bg-success)]" : "bg-[var(--l-pass-bg-warning)]"
10463
+ ),
10464
+ children: [
10465
+ hasServerBackup ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.CheckCircle2, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.AlertTriangle, { className: "h-4 w-4" }),
10466
+ hasServerBackup ? "Ready" : "None"
10467
+ ]
10468
+ }
10469
+ )
10412
10470
  ] })
10413
10471
  ] }),
10414
- backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10415
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.HardDrive, { className: "h-2.5 w-2.5" }),
10416
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10417
- "Local: ",
10418
- new Date(backup.local.lastBackup).toLocaleString()
10472
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-4", children: [
10473
+ localInfo?.hasKeyshare && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10474
+ localInfo.ownerAddress && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "text-[var(--l-pass-fg)] py-1", children: [
10475
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Owner: " }),
10476
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.ownerAddress })
10477
+ ] }),
10478
+ typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10479
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Size: " }),
10480
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono", children: `${Math.round((localInfo.keyshareSize || 0) / 1024)}KB` })
10481
+ ] }),
10482
+ localInfo.sessionId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10483
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: "Session: " }),
10484
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: localInfo.sessionId })
10485
+ ] })
10486
+ ] }),
10487
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10488
+ backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10489
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Server, { className: "h-2.5 w-2.5" }),
10490
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10491
+ "Server: ",
10492
+ new Date(backup.server.lastBackup).toLocaleString()
10493
+ ] })
10494
+ ] }),
10495
+ !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10496
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Server, { className: "h-2.5 w-2.5" }),
10497
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10498
+ "Server: ",
10499
+ new Date(recoveryCreatedAt).toLocaleString()
10500
+ ] })
10501
+ ] }),
10502
+ backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10503
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Cloud, { className: "h-2.5 w-2.5" }),
10504
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10505
+ "Cloud: ",
10506
+ new Date(backup.cloud.lastBackup).toLocaleString()
10507
+ ] })
10508
+ ] }),
10509
+ backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-1", children: [
10510
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.HardDrive, { className: "h-2.5 w-2.5" }),
10511
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { children: [
10512
+ "Local: ",
10513
+ new Date(backup.local.lastBackup).toLocaleString()
10514
+ ] })
10515
+ ] })
10516
+ ] }),
10517
+ (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Highlight, { type: "info", className: "space-y-0.5 text-[10px] leading-tight", children: [
10518
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-bold text-sm", children: "Device Information:" }),
10519
+ recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10520
+ "Created: ",
10521
+ new Date(recoveryCreatedAt).toLocaleString(),
10522
+ " "
10523
+ ] }),
10524
+ recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10525
+ "Country: ",
10526
+ recoveryCountry
10527
+ ] }),
10528
+ recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10529
+ "Browser: ",
10530
+ recoveryBrowser
10531
+ ] }),
10532
+ parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10533
+ "OS: ",
10534
+ parseOS(recoveryUa)
10535
+ ] }),
10536
+ recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10537
+ "Device: ",
10538
+ recoveryDeviceName
10539
+ ] }),
10540
+ recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10541
+ "Device ID: ",
10542
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "break-all", children: recoveryDeviceId })
10543
+ ] })
10544
+ ] }),
10545
+ trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full space-y-2", children: [
10546
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-xs text-[var(--l-pass-fg)]", children: `Trusted Applications (${trustedApps.length}):` }),
10547
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10548
+ "div",
10549
+ {
10550
+ className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
10551
+ children: [
10552
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex-1 min-w-0", children: [
10553
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium", children: new URL(app.origin).hostname }),
10554
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
10555
+ "Trusted: ",
10556
+ new Date(app.trustedAt).toLocaleDateString()
10557
+ ] })
10558
+ ] }),
10559
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
10560
+ Button,
10561
+ {
10562
+ variant: "ghost",
10563
+ size: "icon",
10564
+ title: "Remove from trusted",
10565
+ className: "text-[var(--l-pass-error)]",
10566
+ onClick: () => setAppToRemove({
10567
+ projectId: app.projectId,
10568
+ origin: app.origin,
10569
+ hostname: new URL(app.origin).hostname
10570
+ }),
10571
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Trash2, { className: "h-3 w-3" })
10572
+ }
10573
+ )
10574
+ ]
10575
+ },
10576
+ index
10577
+ )) })
10419
10578
  ] })
10420
10579
  ] })
10421
- ] }),
10422
- (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-0.5 text-[10px] leading-tight text-[var(--l-pass-fg-muted)]", children: [
10423
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: "Device Information:" }),
10424
- recoveryCreatedAt && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10425
- "Created: ",
10426
- new Date(recoveryCreatedAt).toLocaleString(),
10427
- " "
10428
- ] }),
10429
- recoveryCountry && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10430
- "Country: ",
10431
- recoveryCountry
10432
- ] }),
10433
- recoveryBrowser && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10434
- "Browser: ",
10435
- recoveryBrowser
10436
- ] }),
10437
- parseOS(recoveryUa) && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10438
- "OS: ",
10439
- parseOS(recoveryUa)
10440
- ] }),
10441
- recoveryDeviceName && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10442
- "Device: ",
10443
- recoveryDeviceName
10444
- ] }),
10445
- recoveryDeviceId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
10446
- "Device ID: ",
10447
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono break-all", children: recoveryDeviceId })
10448
- ] })
10449
- ] }),
10450
- trustedApps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full space-y-2", children: [
10451
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium text-sm text-[var(--l-pass-primary)]", children: `Trusted Applications (${trustedApps.length}):` }),
10452
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "w-full space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
10453
- "div",
10454
- {
10455
- className: "text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 bg-[var(--l-pass-secondary)]",
10456
- children: [
10457
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex-1 min-w-0", children: [
10458
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium", children: new URL(app.origin).hostname }),
10459
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "text-[var(--l-pass-fg-muted)]", children: [
10460
- "Trusted: ",
10461
- new Date(app.trustedAt).toLocaleDateString()
10462
- ] })
10463
- ] }),
10464
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
10465
- Button,
10466
- {
10467
- variant: "ghost",
10468
- size: "icon",
10469
- title: "Remove from trusted",
10470
- className: "text-[var(--l-pass-error)]",
10471
- onClick: () => setAppToRemove({
10472
- projectId: app.projectId,
10473
- origin: app.origin,
10474
- hostname: new URL(app.origin).hostname
10475
- }),
10476
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react34.Trash2, { className: "h-3 w-3" })
10477
- }
10478
- )
10479
- ]
10480
- },
10481
- index
10482
- )) })
10483
- ] })
10484
- ] })
10485
- ] });
10580
+ ]
10581
+ }
10582
+ );
10486
10583
  }
10487
10584
 
10488
10585
  // src/internal/components/SendRecieveMenu/SendLumiaMenu.tsx
10489
10586
  var import_lucide_react35 = require("lucide-react");
10490
- var import_react38 = require("react");
10587
+ var import_react39 = require("react");
10491
10588
  var import_viem6 = require("viem");
10492
10589
  var import_wagmi3 = require("wagmi");
10493
10590
 
10494
10591
  // src/hooks/useSendTransaction.ts
10495
- var import_react37 = require("react");
10592
+ var import_react38 = require("react");
10496
10593
  var import_viem5 = require("viem");
10497
10594
  init_account();
10498
10595
  function useSendTransaction() {
10499
10596
  const session = useLumiaPassportSession((st) => st.session);
10500
10597
  const address = useLumiaPassportSession((st) => st.address);
10501
- const [isLoading, setIsLoading] = (0, import_react37.useState)(false);
10502
- const [error, setError] = (0, import_react37.useState)(null);
10503
- const [userOpHash, setUserOpHash] = (0, import_react37.useState)(null);
10504
- const sendTransaction = (0, import_react37.useCallback)(
10598
+ const [isLoading, setIsLoading] = (0, import_react38.useState)(false);
10599
+ const [error, setError] = (0, import_react38.useState)(null);
10600
+ const [userOpHash, setUserOpHash] = (0, import_react38.useState)(null);
10601
+ const sendTransaction = (0, import_react38.useCallback)(
10505
10602
  async (params) => {
10506
10603
  if (!session || !address) {
10507
10604
  setError("No active session");
@@ -10541,7 +10638,7 @@ function useSendTransaction() {
10541
10638
  },
10542
10639
  [session, address]
10543
10640
  );
10544
- const reset = (0, import_react37.useCallback)(() => {
10641
+ const reset = (0, import_react38.useCallback)(() => {
10545
10642
  setError(null);
10546
10643
  setUserOpHash(null);
10547
10644
  setIsLoading(false);
@@ -10569,13 +10666,13 @@ function SendLumiaMenu() {
10569
10666
  address,
10570
10667
  chainId: lumiaBeam.id
10571
10668
  });
10572
- const [recipient, setRecipient] = (0, import_react38.useState)("");
10573
- const [amount, setAmount] = (0, import_react38.useState)("");
10574
- const [txStep, setTxStep] = (0, import_react38.useState)("input");
10575
- const [validationError, setValidationError] = (0, import_react38.useState)(null);
10669
+ const [recipient, setRecipient] = (0, import_react39.useState)("");
10670
+ const [amount, setAmount] = (0, import_react39.useState)("");
10671
+ const [txStep, setTxStep] = (0, import_react39.useState)("input");
10672
+ const [validationError, setValidationError] = (0, import_react39.useState)(null);
10576
10673
  const nativeAsset = assets.find((a) => a.type === "native");
10577
10674
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
10578
- (0, import_react38.useEffect)(() => {
10675
+ (0, import_react39.useEffect)(() => {
10579
10676
  if (open) {
10580
10677
  setTxStep("input");
10581
10678
  setValidationError(null);
@@ -10739,7 +10836,7 @@ function SendLumiaMenu() {
10739
10836
  // src/internal/components/SendRecieveMenu/ReceiveLumiaMenu.tsx
10740
10837
  var import_lucide_react36 = require("lucide-react");
10741
10838
  var import_qrcode = __toESM(require("qrcode"), 1);
10742
- var import_react39 = require("react");
10839
+ var import_react40 = require("react");
10743
10840
  init_clients();
10744
10841
  var import_jsx_runtime53 = require("react/jsx-runtime");
10745
10842
  function ReceiveLumiaMenu() {
@@ -10748,9 +10845,9 @@ function ReceiveLumiaMenu() {
10748
10845
  const setPage = useLayoutDataStore((st) => st.setPage);
10749
10846
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
10750
10847
  const open = page === "receive";
10751
- const [qrCodeUrl, setQrCodeUrl] = (0, import_react39.useState)("");
10752
- const [copied, setCopied] = (0, import_react39.useState)(false);
10753
- (0, import_react39.useEffect)(() => {
10848
+ const [qrCodeUrl, setQrCodeUrl] = (0, import_react40.useState)("");
10849
+ const [copied, setCopied] = (0, import_react40.useState)(false);
10850
+ (0, import_react40.useEffect)(() => {
10754
10851
  if (open && address) {
10755
10852
  import_qrcode.default.toDataURL(address, {
10756
10853
  width: 200,
@@ -10763,7 +10860,7 @@ function ReceiveLumiaMenu() {
10763
10860
  });
10764
10861
  }
10765
10862
  }, [open, address]);
10766
- const handleCopy = (0, import_react39.useCallback)(async () => {
10863
+ const handleCopy = (0, import_react40.useCallback)(async () => {
10767
10864
  if (!address) return;
10768
10865
  try {
10769
10866
  await navigator.clipboard.writeText(address);
@@ -10778,7 +10875,7 @@ function ReceiveLumiaMenu() {
10778
10875
  {
10779
10876
  style: {
10780
10877
  "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
10781
- "--l-pass-list-scrollbar-pd-r": "8px"
10878
+ "--l-pass-list-scrollbar-pd-r": "var(--l-pass-pd)"
10782
10879
  },
10783
10880
  className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
10784
10881
  children: [
@@ -10809,7 +10906,7 @@ function ReceiveLumiaMenu() {
10809
10906
 
10810
10907
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
10811
10908
  var import_lucide_react38 = require("lucide-react");
10812
- var import_react40 = require("react");
10909
+ var import_react41 = require("react");
10813
10910
 
10814
10911
  // src/internal/components/SettingsMenu/constants.ts
10815
10912
  var import_lucide_react37 = require("lucide-react");
@@ -10843,13 +10940,13 @@ function SettingsMenu() {
10843
10940
  const setPage = useLayoutDataStore((st) => st.setPage);
10844
10941
  const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
10845
10942
  const setMainPageHeight = useLayoutDataStore((st) => st.setMainPageHeight);
10846
- (0, import_react40.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
10943
+ (0, import_react41.useEffect)(() => setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT), [setMainPageHeight]);
10847
10944
  const navItems = NAV_BUTTONS.map((el) => ({ ...el, onClick: () => setPage(el.id) }));
10848
10945
  const highlightedKeys = settingsNotifications.map((n) => n.target);
10849
10946
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
10850
10947
  /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-[var(--l-pass-gap)]", children: [
10851
10948
  /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react38.ArrowLeft, { className: "h-4 w-4" }) }),
10852
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xl font-semibold", children: "Wallet Details" })
10949
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-xl font-semibold", children: "Settings" })
10853
10950
  ] }),
10854
10951
  /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: navItems.map(({ id, name, Icon, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
10855
10952
  Button,
@@ -10901,9 +10998,9 @@ function TermsOfService() {
10901
10998
  }
10902
10999
 
10903
11000
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
10904
- var import_react_query22 = require("@tanstack/react-query");
11001
+ var import_react_query24 = require("@tanstack/react-query");
10905
11002
  var import_lucide_react41 = require("lucide-react");
10906
- var import_react41 = require("react");
11003
+ var import_react42 = require("react");
10907
11004
 
10908
11005
  // src/internal/components/TransactionsMenu/api.ts
10909
11006
  init_base();
@@ -11379,78 +11476,60 @@ function TransactionsGroup(props) {
11379
11476
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
11380
11477
  var import_jsx_runtime59 = require("react/jsx-runtime");
11381
11478
  function TransactionsMenu() {
11382
- const qc = (0, import_react_query22.useQueryClient)();
11479
+ const qc = (0, import_react_query24.useQueryClient)();
11383
11480
  const address = useLumiaPassportSession((st) => st.address);
11384
11481
  const page = useLayoutDataStore((st) => st.page);
11385
11482
  const setPage = useLayoutDataStore((st) => st.setPage);
11386
11483
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11387
- const txContainerListRef = (0, import_react41.useRef)(null);
11388
- const txListRef = (0, import_react41.useRef)(null);
11389
- const [expandedGroups, setExpandedGroups] = (0, import_react41.useState)({});
11484
+ const [expandedGroups, setExpandedGroups] = (0, import_react42.useState)({});
11390
11485
  const {
11391
11486
  data: txHistoryGroups = [],
11392
11487
  isLoading: isTxHistoryLoading,
11393
11488
  isFetching: isTxHistoryFetching,
11394
11489
  error: txHistoryError
11395
- } = (0, import_react_query22.useQuery)({
11490
+ } = (0, import_react_query24.useQuery)({
11396
11491
  retry: false,
11397
11492
  enabled: !!address && page === "transactions",
11398
11493
  queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address],
11399
11494
  queryFn: () => getTransactionsListQuery(address)
11400
11495
  });
11401
- const refreshTxHistory = (0, import_react41.useCallback)(
11496
+ const refreshTxHistory = (0, import_react42.useCallback)(
11402
11497
  () => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, address] }),
11403
11498
  [qc, address]
11404
11499
  );
11405
11500
  const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
11406
- (0, import_react41.useEffect)(() => {
11407
- if (!txContainerListRef.current || !txListRef.current) return;
11408
- const listTargetHeight = maxScrollHeight - 128;
11409
- txContainerListRef.current.style.setProperty("--l-pass-scrollbar-mah", `${listTargetHeight}px`);
11410
- txContainerListRef.current.style.setProperty(
11411
- "--l-pass-list-bd",
11412
- txListRef.current.clientHeight >= listTargetHeight ? "var(--l-pass-bd)" : "var(--l-pass-bg)"
11413
- // hide border if no scrollbar
11414
- );
11415
- txContainerListRef.current.style.setProperty(
11416
- "--l-pass-list-scrollbar-pd-r",
11417
- txListRef.current.clientHeight >= listTargetHeight ? "4px" : "0px"
11418
- // remove padding if no scrollbar
11419
- );
11420
- }, [maxScrollHeight]);
11421
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]", children: [
11422
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-2", children: [
11423
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.ArrowLeft, { className: "h-4 w-4" }) }),
11424
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
11425
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
11426
- Button,
11427
- {
11428
- variant: "ghost",
11429
- size: "icon",
11430
- onClick: refreshTxHistory,
11431
- disabled: isTxHistoryFetching,
11432
- title: "Refresh transactions",
11433
- children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.RefreshCw, { className: "h-4 w-4" })
11434
- }
11435
- )
11436
- ] }),
11437
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
11438
- isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.Loader, { className: "h-5 w-5 animate-spin" }) }),
11439
- !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
11440
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.XCircle, { className: "w-4 h-4 flex-none" }),
11441
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
11442
- ] }),
11443
- !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
11444
- !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
11445
- "div",
11446
- {
11447
- ref: txContainerListRef,
11448
- style: {
11449
- borderTop: "1px solid var(--l-pass-list-bd)",
11450
- borderBottom: "1px solid var(--l-pass-list-bd)"
11451
- },
11452
- className: "list-scrollbar-y relative",
11453
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref: txListRef, className: "w-full flex flex-col gap-[var(--l-pass-gap)] py-[var(--l-pass-pd)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
11501
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
11502
+ "div",
11503
+ {
11504
+ style: {
11505
+ "--l-pass-scrollbar-mah": `${maxScrollHeight}px`,
11506
+ "--l-pass-list-scrollbar-pd-r": "calc(var(--l-pass-pd) - 4px)"
11507
+ },
11508
+ className: "list-scrollbar-y w-full p-[var(--l-pass-pd)] flex flex-col gap-[var(--l-pass-gap)]",
11509
+ children: [
11510
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-2", children: [
11511
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.ArrowLeft, { className: "h-4 w-4" }) }),
11512
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xl font-semibold", children: "Transaction History" }),
11513
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
11514
+ Button,
11515
+ {
11516
+ variant: "ghost",
11517
+ size: "icon",
11518
+ onClick: refreshTxHistory,
11519
+ disabled: isTxHistoryFetching,
11520
+ title: "Refresh transactions",
11521
+ children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.RefreshCw, { className: "h-4 w-4" })
11522
+ }
11523
+ )
11524
+ ] }),
11525
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: [
11526
+ isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.Loader, { className: "h-5 w-5 animate-spin" }) }),
11527
+ !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--l-pass-gap)]", children: [
11528
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react41.XCircle, { className: "w-4 h-4 flex-none" }),
11529
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
11530
+ ] }),
11531
+ !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children: "No transactions found. Smart account transactions will appear here" }) }),
11532
+ !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "w-full flex flex-col gap-[var(--l-pass-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
11454
11533
  TransactionsGroup,
11455
11534
  {
11456
11535
  group,
@@ -11459,10 +11538,10 @@ function TransactionsMenu() {
11459
11538
  },
11460
11539
  group.id
11461
11540
  )) })
11462
- }
11463
- )
11464
- ] })
11465
- ] });
11541
+ ] })
11542
+ ]
11543
+ }
11544
+ );
11466
11545
  }
11467
11546
 
11468
11547
  // src/internal/components/PageMap.tsx
@@ -11574,7 +11653,7 @@ function usePageMapper() {
11574
11653
  setIsDialogOpen,
11575
11654
  setIsDialogClosing
11576
11655
  } = useLayoutStore();
11577
- const closeDialog = (0, import_react42.useCallback)(() => {
11656
+ const closeDialog = (0, import_react43.useCallback)(() => {
11578
11657
  setIsDialogClosing(true);
11579
11658
  setTimeout(() => {
11580
11659
  setDialogContent(null);
@@ -11585,7 +11664,7 @@ function usePageMapper() {
11585
11664
  setIsDialogOpen(false);
11586
11665
  }, CLEAR_DIALOG_TIMEOUT);
11587
11666
  }, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
11588
- const openDialog = (0, import_react42.useCallback)(
11667
+ const openDialog = (0, import_react43.useCallback)(
11589
11668
  (pageItem) => {
11590
11669
  const PageContentComponent = pageItem.component;
11591
11670
  setDialogTitle(pageItem.title);
@@ -11595,7 +11674,7 @@ function usePageMapper() {
11595
11674
  },
11596
11675
  [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
11597
11676
  );
11598
- (0, import_react42.useEffect)(() => {
11677
+ (0, import_react43.useEffect)(() => {
11599
11678
  if (page === null) return closeDialog();
11600
11679
  const pageItem = protectedRoutes[page];
11601
11680
  if (!pageItem) {
@@ -11608,7 +11687,7 @@ function usePageMapper() {
11608
11687
  }
11609
11688
 
11610
11689
  // src/internal/hooks/useSettingsNotifications.ts
11611
- var import_react43 = require("react");
11690
+ var import_react44 = require("react");
11612
11691
  init_auth();
11613
11692
  var EMAIL_NOT_CONNECTED_NOTIFICATION = {
11614
11693
  id: "email-not-connected",
@@ -11625,13 +11704,13 @@ function useSettingsNotifications() {
11625
11704
  const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
11626
11705
  const providers = import_auth3.jwtTokenManager.getProviders();
11627
11706
  const hasEmail = providers.includes("email");
11628
- (0, import_react43.useEffect)(() => {
11707
+ (0, import_react44.useEffect)(() => {
11629
11708
  setSettingsNotifications({
11630
11709
  ...BACKUP_IS_NOT_CREATED_NOTIFICATION,
11631
11710
  status: hasServerVault ? "resolved" : "active"
11632
11711
  });
11633
11712
  }, [hasServerVault, setSettingsNotifications]);
11634
- (0, import_react43.useEffect)(() => {
11713
+ (0, import_react44.useEffect)(() => {
11635
11714
  setSettingsNotifications({
11636
11715
  ...EMAIL_NOT_CONNECTED_NOTIFICATION,
11637
11716
  status: hasEmail ? "resolved" : "active"
@@ -11640,7 +11719,7 @@ function useSettingsNotifications() {
11640
11719
  }
11641
11720
 
11642
11721
  // src/internal/hooks/useWalletStatus.ts
11643
- var import_react44 = require("react");
11722
+ var import_react45 = require("react");
11644
11723
  init_auth();
11645
11724
  function useWalletStatus() {
11646
11725
  const isIframeReady = useLumiaPassportSession((st) => st.isIframeReady);
@@ -11650,7 +11729,7 @@ function useWalletStatus() {
11650
11729
  config: { current: config },
11651
11730
  callbacks
11652
11731
  } = useLumiaPassportConfig();
11653
- (0, import_react44.useEffect)(() => {
11732
+ (0, import_react45.useEffect)(() => {
11654
11733
  if (!isIframeReady || !config.projectId || !callbacks?.onWalletReady) return;
11655
11734
  const userId = import_auth3.jwtTokenManager.getUserId();
11656
11735
  const hasKeyshare = import_auth3.jwtTokenManager.getHasKeyshare();
@@ -11679,7 +11758,7 @@ function LumiaPassportDialog() {
11679
11758
  const mainPageHeight = useLayoutDataStore((st) => st.mainPageHeight);
11680
11759
  const setPage = useLayoutDataStore((st) => st.setPage);
11681
11760
  const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
11682
- (0, import_react45.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
11761
+ (0, import_react46.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
11683
11762
  usePageMapper();
11684
11763
  useAutoConnect();
11685
11764
  useCheckVaultStatus();
@@ -11718,23 +11797,23 @@ function LumiaPassportDialog() {
11718
11797
  }
11719
11798
 
11720
11799
  // src/internal/components/TssManager.tsx
11721
- var import_react46 = __toESM(require("react"), 1);
11800
+ var import_react47 = __toESM(require("react"), 1);
11722
11801
  init_auth();
11723
11802
  init_clients();
11724
- var TssManagerWithRef = import_react46.default.forwardRef((props, ref) => {
11803
+ var TssManagerWithRef = import_react47.default.forwardRef((props, ref) => {
11725
11804
  const { mpcPin } = props;
11726
11805
  const usePaymaster = useLumiaPassportSession((st) => st.usePaymaster);
11727
11806
  const setStatus = useLumiaPassportSession((st) => st.setStatus);
11728
11807
  const setSession = useLumiaPassportSession((st) => st.setSession);
11729
11808
  const setAddress = useLumiaPassportSession((st) => st.setAddress);
11730
- const onSessionCreated = (0, import_react46.useCallback)(
11809
+ const onSessionCreated = (0, import_react47.useCallback)(
11731
11810
  (session, address) => {
11732
11811
  setSession(session);
11733
11812
  setAddress(address);
11734
11813
  },
11735
11814
  [setSession, setAddress]
11736
11815
  );
11737
- const createSessionWithKeyshare = import_react46.default.useCallback(
11816
+ const createSessionWithKeyshare = import_react47.default.useCallback(
11738
11817
  async (userId, hasServerKeyshare, isNewUser) => {
11739
11818
  setStatus("checking key management setup...");
11740
11819
  await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
@@ -11755,18 +11834,18 @@ var TssManagerWithRef = import_react46.default.forwardRef((props, ref) => {
11755
11834
  },
11756
11835
  [setStatus, usePaymaster, mpcPin]
11757
11836
  );
11758
- import_react46.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11837
+ import_react47.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
11759
11838
  return null;
11760
11839
  });
11761
11840
 
11762
11841
  // src/internal/components/WalletConnectHandler.tsx
11763
11842
  var import_rainbowkit = require("@rainbow-me/rainbowkit");
11764
- var import_react_query23 = require("@tanstack/react-query");
11765
- var import_react47 = __toESM(require("react"), 1);
11843
+ var import_react_query25 = require("@tanstack/react-query");
11844
+ var import_react48 = __toESM(require("react"), 1);
11766
11845
  var import_wagmi4 = require("wagmi");
11767
11846
  init_wallet();
11768
11847
  function WalletConnectHandler() {
11769
- const qc = (0, import_react_query23.useQueryClient)();
11848
+ const qc = (0, import_react_query25.useQueryClient)();
11770
11849
  const { callbacks } = useLumiaPassportConfig();
11771
11850
  const userAddress = useLumiaPassportSession((st) => st.address);
11772
11851
  const { address: walletAddress, isConnected, chain, connector } = (0, import_wagmi4.useAccount)();
@@ -11774,12 +11853,12 @@ function WalletConnectHandler() {
11774
11853
  const { signMessageAsync } = (0, import_wagmi4.useSignMessage)();
11775
11854
  const setPage = useLayoutDataStore((st) => st.setPage);
11776
11855
  const { isWalletLinking, setLinkError, setIsWalletLinking, setLinkIsLoading, setProviderType } = useManageWalletStore();
11777
- const onError = (0, import_react47.useCallback)((error) => {
11856
+ const onError = (0, import_react48.useCallback)((error) => {
11778
11857
  setLinkError(error);
11779
11858
  setIsWalletLinking(false);
11780
11859
  setPage("manage-wallet" /* MANAGE_WALLET */);
11781
11860
  }, []);
11782
- const onLinkingComplete = (0, import_react47.useCallback)(
11861
+ const onLinkingComplete = (0, import_react48.useCallback)(
11783
11862
  async (success) => {
11784
11863
  console.log("[WalletConnectHandler] onLinkingComplete called:", { success, userAddress });
11785
11864
  setIsWalletLinking(false);
@@ -11802,9 +11881,9 @@ function WalletConnectHandler() {
11802
11881
  [qc, userAddress, callbacks, setProviderType, setPage, setIsWalletLinking]
11803
11882
  );
11804
11883
  const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
11805
- const [hasStartedLinking, setHasStartedLinking] = import_react47.default.useState(false);
11806
- const timeoutRef = import_react47.default.useRef();
11807
- (0, import_react47.useEffect)(() => {
11884
+ const [hasStartedLinking, setHasStartedLinking] = import_react48.default.useState(false);
11885
+ const timeoutRef = import_react48.default.useRef();
11886
+ (0, import_react48.useEffect)(() => {
11808
11887
  if (isWalletLinking && !hasStartedLinking) {
11809
11888
  setHasStartedLinking(true);
11810
11889
  setProviderType(null);
@@ -11829,7 +11908,7 @@ function WalletConnectHandler() {
11829
11908
  if (isConnected) disconnect();
11830
11909
  }
11831
11910
  }, [isWalletLinking, hasStartedLinking, isConnected, openConnectModal, disconnect, setPage, setProviderType]);
11832
- (0, import_react47.useEffect)(() => {
11911
+ (0, import_react48.useEffect)(() => {
11833
11912
  console.log("[WalletConnectHandler] Modal state check:", {
11834
11913
  hasStartedLinking,
11835
11914
  connectModalOpen,
@@ -11842,7 +11921,7 @@ function WalletConnectHandler() {
11842
11921
  setHasStartedLinking(false);
11843
11922
  }
11844
11923
  }, [connectModalOpen, hasStartedLinking, isConnected, isWalletLinking]);
11845
- (0, import_react47.useEffect)(() => {
11924
+ (0, import_react48.useEffect)(() => {
11846
11925
  if (isConnected && walletAddress && isWalletLinking && hasStartedLinking) {
11847
11926
  handleWalletSign();
11848
11927
  }
@@ -11913,7 +11992,8 @@ var useLumiaPassportSession = (0, import_zustand5.create)((set) => ({
11913
11992
  error: null,
11914
11993
  recoveryUserId: null,
11915
11994
  isIframeReady: false,
11916
- hasServerVault: false,
11995
+ hasServerVault: true,
11996
+ // assume true until proven otherwise to not throw red warnings before checking
11917
11997
  walletReadyStatus: null,
11918
11998
  setIsLoading: (isLoading) => set({ isLoading }),
11919
11999
  setUsePaymaster: (usePaymaster) => set({ usePaymaster }),
@@ -11928,7 +12008,7 @@ var useLumiaPassportSession = (0, import_zustand5.create)((set) => ({
11928
12008
  }));
11929
12009
  function LumiaPassportSessionProvider({ children }) {
11930
12010
  const config = useLumiaPassportConfig().config;
11931
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react48.Fragment, { children: [
12011
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react49.Fragment, { children: [
11932
12012
  children,
11933
12013
  config.current?.wallet?.enabled && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WalletConnectHandler, {}),
11934
12014
  /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BalanceFeedProvider, {}),
@@ -11980,14 +12060,14 @@ var LumiaWagmiProvider = ({ children }) => {
11980
12060
 
11981
12061
  // src/context/LumiaPassportContext.tsx
11982
12062
  var import_jsx_runtime64 = require("react/jsx-runtime");
11983
- var LumiaPassportContext = (0, import_react49.createContext)(void 0);
12063
+ var LumiaPassportContext = (0, import_react50.createContext)(void 0);
11984
12064
  function LumiaPassportProvider(props) {
11985
12065
  const { children, projectId, initialConfig = {}, callbacks } = props;
11986
12066
  const setIsIframeReady = useLumiaPassportSession((st) => st.setIsIframeReady);
11987
12067
  const setWalletReadyStatus = useLumiaPassportSession((st) => st.setWalletReadyStatus);
11988
- (0, import_react49.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
11989
- const config = (0, import_react49.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
11990
- const updateConfig = (0, import_react49.useCallback)((updates) => {
12068
+ (0, import_react50.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
12069
+ const config = (0, import_react50.useRef)({ projectId, ...DEFAULT_LUMIA_PASSPORT_CONFIG });
12070
+ const updateConfig = (0, import_react50.useCallback)((updates) => {
11991
12071
  const prev = config.current;
11992
12072
  const next = { ...prev };
11993
12073
  if (updates.projectId !== void 0) next.projectId = updates.projectId;
@@ -12022,7 +12102,7 @@ function LumiaPassportProvider(props) {
12022
12102
  }
12023
12103
  config.current = next;
12024
12104
  }, []);
12025
- (0, import_react49.useEffect)(() => {
12105
+ (0, import_react50.useEffect)(() => {
12026
12106
  if (typeof window === "undefined" || !projectId) return;
12027
12107
  const mergedConfig = (0, import_lodash_es4.merge)(DEFAULT_LUMIA_PASSPORT_CONFIG, initialConfig);
12028
12108
  updateConfig(mergedConfig);
@@ -12067,18 +12147,18 @@ function LumiaPassportProvider(props) {
12067
12147
  console.error("[LumiaPassport] Error setting up iframe manager:", error);
12068
12148
  }
12069
12149
  }, [projectId, initialConfig, callbacks, updateConfig, setIsIframeReady, setWalletReadyStatus]);
12070
- const contextValue = (0, import_react49.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
12150
+ const contextValue = (0, import_react50.useMemo)(() => ({ config, updateConfig, callbacks }), [config, updateConfig, callbacks]);
12071
12151
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaWagmiProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LumiaPassportContext.Provider, { value: contextValue, children }) });
12072
12152
  }
12073
12153
  var useLumiaPassportConfig = () => {
12074
- const ctx = (0, import_react49.useContext)(LumiaPassportContext);
12154
+ const ctx = (0, import_react50.useContext)(LumiaPassportContext);
12075
12155
  if (!ctx) throw new Error("useLumiaPassportConfig must be used within a LumiaPassportProvider");
12076
12156
  return ctx;
12077
12157
  };
12078
12158
 
12079
12159
  // src/components/ConnectWalletButton.tsx
12080
12160
  var import_lucide_react42 = require("lucide-react");
12081
- var import_react50 = require("react");
12161
+ var import_react51 = require("react");
12082
12162
  init_auth();
12083
12163
  var import_jsx_runtime65 = (
12084
12164
  /** external Buttons can be provided */
@@ -12101,10 +12181,10 @@ function ConnectWalletButton(props) {
12101
12181
  const colorMode = useLayoutStore((st) => st.colorMode);
12102
12182
  const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useLumiaPassportSession();
12103
12183
  const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
12104
- (0, import_react50.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12184
+ (0, import_react51.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
12105
12185
  const avatar = import_auth3.jwtTokenManager.getAvatar();
12106
12186
  const displayName = import_auth3.jwtTokenManager.getDisplayName();
12107
- const indicators = (0, import_react50.useMemo)(() => {
12187
+ const indicators = (0, import_react51.useMemo)(() => {
12108
12188
  const userId = import_auth3.jwtTokenManager.getUserId();
12109
12189
  if (!userId) return { server: false, local: false, backup: false };
12110
12190
  const server = import_auth3.jwtTokenManager.getHasKeyshare() ?? false;
@@ -12259,13 +12339,13 @@ var useLumiaPassportRecoveryUserId = () => useLumiaPassportSession((st) => st.re
12259
12339
  var useLumiaPassportHasServerVault = () => useLumiaPassportSession((st) => st.hasServerVault);
12260
12340
 
12261
12341
  // src/hooks/useLumiaPassportOpen.ts
12262
- var import_react51 = require("react");
12342
+ var import_react52 = require("react");
12263
12343
  function useLumiaPassportOpen() {
12264
12344
  const page = useLayoutDataStore((st) => st.page);
12265
12345
  const setPage = useLayoutDataStore((st) => st.setPage);
12266
12346
  const setPageParams = useLayoutDataStore((st) => st.setPageParams);
12267
12347
  const address = useLumiaPassportSession((st) => st.address);
12268
- const open = (0, import_react51.useCallback)(
12348
+ const open = (0, import_react52.useCallback)(
12269
12349
  (passportPage, params) => {
12270
12350
  if (!address) return setPage("auth" /* AUTH */);
12271
12351
  if (!!address && passportPage === "auth" /* AUTH */) return setPage("manage-wallet" /* MANAGE_WALLET */);
@@ -12274,12 +12354,12 @@ function useLumiaPassportOpen() {
12274
12354
  },
12275
12355
  [setPage, setPageParams, address]
12276
12356
  );
12277
- const close = (0, import_react51.useCallback)(() => setPage(null), [setPage]);
12357
+ const close = (0, import_react52.useCallback)(() => setPage(null), [setPage]);
12278
12358
  return { open, close, isOpen: page !== null };
12279
12359
  }
12280
12360
 
12281
12361
  // src/hooks/useLumiaPassportColorMode.ts
12282
- var import_react52 = require("react");
12362
+ var import_react53 = require("react");
12283
12363
  function useLumiaPassportColorMode() {
12284
12364
  const {
12285
12365
  config: { current: config }
@@ -12287,14 +12367,14 @@ function useLumiaPassportColorMode() {
12287
12367
  const preferedColorMode = config?.preferedColorMode;
12288
12368
  const colorMode = useLayoutStore((st) => st.colorMode);
12289
12369
  const handleStoreColorMode = useLayoutStore((st) => st.setColorMode);
12290
- const setColorMode = (0, import_react52.useCallback)(
12370
+ const setColorMode = (0, import_react53.useCallback)(
12291
12371
  (mode) => {
12292
12372
  localStorage.setItem(LOCAL_COLOR_MODE_KEY, mode);
12293
12373
  handleStoreColorMode(mode);
12294
12374
  },
12295
12375
  [handleStoreColorMode]
12296
12376
  );
12297
- (0, import_react52.useEffect)(() => {
12377
+ (0, import_react53.useEffect)(() => {
12298
12378
  let targetColorMode = localStorage.getItem(LOCAL_COLOR_MODE_KEY);
12299
12379
  if (!targetColorMode && !preferedColorMode) {
12300
12380
  const systemMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -12336,9 +12416,8 @@ function ThemeToggle(props) {
12336
12416
  }
12337
12417
 
12338
12418
  // src/context/RainbowKitContext.tsx
12339
- var import_react53 = __toESM(require("react"), 1);
12340
- var import_styles = require("@rainbow-me/rainbowkit/styles.css");
12341
12419
  var import_rainbowkit3 = require("@rainbow-me/rainbowkit");
12420
+ var import_react54 = require("react");
12342
12421
  var import_wagmi8 = require("wagmi");
12343
12422
 
12344
12423
  // src/config/rainbowkit.ts
@@ -12378,144 +12457,220 @@ var rainbowConfig = createRainbowConfig();
12378
12457
  var rainbowTheme = {
12379
12458
  lightMode: {
12380
12459
  colors: {
12381
- accentColor: "#6366F1",
12382
- accentColorForeground: "white",
12383
- actionButtonBorder: "rgba(255, 255, 255, 0.04)",
12384
- actionButtonBorderMobile: "rgba(255, 255, 255, 0.08)",
12385
- actionButtonSecondaryBackground: "rgba(255, 255, 255, 0.08)",
12386
- closeButton: "rgba(60, 66, 82, 0.8)",
12387
- closeButtonBackground: "rgba(255, 255, 255, 0.08)",
12388
- connectButtonBackground: "white",
12389
- connectButtonBackgroundError: "#FF494A",
12390
- connectButtonInnerBackground: "linear-gradient(0deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.15))",
12391
- connectButtonText: "#1A1B1F",
12392
- connectButtonTextError: "white",
12393
- connectionIndicator: "#30E000",
12394
- downloadBottomCardBackground: "linear-gradient(126deg, rgba(0, 0, 0, 0) 9.49%, rgba(120, 120, 120, 0.2) 71.04%), #FFFFFF",
12395
- downloadTopCardBackground: "linear-gradient(126deg, rgba(120, 120, 120, 0.2) 9.49%, rgba(0, 0, 0, 0) 71.04%), white",
12396
- error: "#FF494A",
12397
- generalBorder: "rgba(0, 0, 0, 0.06)",
12398
- generalBorderDim: "rgba(0, 0, 0, 0.03)",
12399
- menuItemBackground: "rgba(60, 66, 82, 0.1)",
12400
- modalBackdrop: "rgba(0, 0, 0, 0.3)",
12401
- modalBackground: "white",
12402
- modalBorder: "rgba(0, 0, 0, 0.06)",
12403
- modalText: "#1A1B1F",
12404
- modalTextDim: "rgba(60, 66, 82, 0.3)",
12405
- modalTextSecondary: "rgba(60, 66, 82, 0.6)",
12406
- profileAction: "white",
12407
- profileActionHover: "rgba(255, 255, 255, 0.08)",
12408
- profileForeground: "rgba(60, 66, 82, 0.06)",
12409
- selectedOptionBorder: "rgba(60, 66, 82, 0.1)",
12410
- standby: "#FFD641"
12460
+ // Primary accent - using --l-pass-primary
12461
+ accentColor: "#000000",
12462
+ // --l-pass-primary
12463
+ accentColorForeground: "#ffffff",
12464
+ // --l-pass-fg-inverted
12465
+ // Borders
12466
+ actionButtonBorder: "rgb(201, 201, 201)",
12467
+ // --l-pass-bd
12468
+ actionButtonBorderMobile: "rgb(169, 169, 169)",
12469
+ // --l-pass-bd-intense
12470
+ // Secondary backgrounds
12471
+ actionButtonSecondaryBackground: "#e4e4e4",
12472
+ // --l-pass-secondary
12473
+ // Close button
12474
+ closeButton: "rgba(0, 0, 0, 0.6)",
12475
+ // --l-pass-fg-h
12476
+ closeButtonBackground: "#e4e4e4",
12477
+ // --l-pass-secondary
12478
+ // Connect button
12479
+ connectButtonBackground: "#ffffff",
12480
+ // --l-pass-bg
12481
+ connectButtonBackgroundError: "#d6204e",
12482
+ // --l-pass-bg-error
12483
+ connectButtonInnerBackground: "linear-gradient(0deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.02))",
12484
+ connectButtonText: "#000000",
12485
+ // --l-pass-fg
12486
+ connectButtonTextError: "#ffffff",
12487
+ // --l-pass-error
12488
+ // Status indicators
12489
+ connectionIndicator: "#21ff51",
12490
+ // --l-pass-bg-success
12491
+ standby: "#e9fa00",
12492
+ // --l-pass-bg-warning
12493
+ error: "#d6204e",
12494
+ // --l-pass-bg-error
12495
+ // Card backgrounds
12496
+ downloadBottomCardBackground: "linear-gradient(126deg, rgba(0, 0, 0, 0) 9.49%, rgba(0, 0, 0, 0.05) 71.04%), #ffffff",
12497
+ downloadTopCardBackground: "linear-gradient(126deg, rgba(0, 0, 0, 0.05) 9.49%, rgba(0, 0, 0, 0) 71.04%), #ffffff",
12498
+ // Borders
12499
+ generalBorder: "rgb(201, 201, 201)",
12500
+ // --l-pass-bd
12501
+ generalBorderDim: "rgba(201, 201, 201, 0.5)",
12502
+ // Menu items
12503
+ menuItemBackground: "#e4e4e4",
12504
+ // --l-pass-secondary
12505
+ // Modal
12506
+ modalBackdrop: "rgba(255, 255, 255, 0.8)",
12507
+ // --l-pass-overlay
12508
+ modalBackground: "#ffffff",
12509
+ // --l-pass-bg
12510
+ modalBorder: "rgb(201, 201, 201)",
12511
+ // --l-pass-bd
12512
+ modalText: "#000000",
12513
+ // --l-pass-fg
12514
+ modalTextDim: "rgba(0, 0, 0, 0.4)",
12515
+ // --l-pass-fg-a
12516
+ modalTextSecondary: "rgba(0, 0, 0, 0.6)",
12517
+ // --l-pass-fg-h
12518
+ // Profile
12519
+ profileAction: "#ffffff",
12520
+ // --l-pass-bg
12521
+ profileActionHover: "#e4e4e4",
12522
+ // --l-pass-secondary
12523
+ profileForeground: "#e4e4e4",
12524
+ // --l-pass-secondary
12525
+ // Selection
12526
+ selectedOptionBorder: "rgb(169, 169, 169)"
12527
+ // --l-pass-bd-intense
12411
12528
  },
12412
12529
  shadows: {
12413
- connectButton: "0px 4px 12px rgba(0, 0, 0, 0.1)",
12414
- dialog: "0px 8px 32px rgba(0, 0, 0, 0.32)",
12415
- profileDetailsAction: "0px 2px 6px rgba(37, 41, 46, 0.04)",
12416
- selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.24)",
12417
- selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.12)",
12418
- walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.16)"
12530
+ connectButton: "0px 4px 10px rgba(0, 0, 0, 0.1)",
12531
+ // matches --l-pass-shadow-c
12532
+ dialog: "0px 8px 32px rgba(0, 0, 0, 0.1)",
12533
+ profileDetailsAction: "0px 2px 6px rgba(0, 0, 0, 0.1)",
12534
+ selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.1)",
12535
+ selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.1)",
12536
+ walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.1)"
12419
12537
  },
12420
12538
  radii: {
12421
- actionButton: "24px",
12422
- connectButton: "24px",
12423
- menuButton: "12px",
12424
- modal: "24px",
12425
- modalMobile: "24px"
12539
+ actionButton: "10px",
12540
+ // --l-pass-el-bdrs
12541
+ connectButton: "20px",
12542
+ // --l-pass-bdrs
12543
+ menuButton: "10px",
12544
+ // --l-pass-el-bdrs
12545
+ modal: "20px",
12546
+ // --l-pass-bdrs
12547
+ modalMobile: "20px"
12548
+ // --l-pass-bdrs
12426
12549
  }
12427
12550
  },
12428
12551
  darkMode: {
12429
12552
  colors: {
12430
- accentColor: "#6366F1",
12431
- accentColorForeground: "white",
12432
- actionButtonBorder: "rgba(255, 255, 255, 0.04)",
12433
- actionButtonBorderMobile: "rgba(255, 255, 255, 0.08)",
12434
- actionButtonSecondaryBackground: "rgba(255, 255, 255, 0.08)",
12435
- closeButton: "rgba(224, 232, 255, 0.6)",
12436
- closeButtonBackground: "rgba(255, 255, 255, 0.08)",
12437
- connectButtonBackground: "#1A1B1F",
12438
- connectButtonBackgroundError: "#FF494A",
12439
- connectButtonInnerBackground: "linear-gradient(0deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.15))",
12440
- connectButtonText: "white",
12441
- connectButtonTextError: "white",
12442
- connectionIndicator: "#30E000",
12443
- downloadBottomCardBackground: "linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(120, 120, 120, 0.1) 71.04%), #1A1B1F",
12444
- downloadTopCardBackground: "linear-gradient(126deg, rgba(120, 120, 120, 0.1) 9.49%, rgba(255, 255, 255, 0) 71.04%), #1A1B1F",
12445
- error: "#FF494A",
12446
- generalBorder: "rgba(255, 255, 255, 0.08)",
12447
- generalBorderDim: "rgba(255, 255, 255, 0.04)",
12448
- menuItemBackground: "rgba(224, 232, 255, 0.1)",
12449
- modalBackdrop: "rgba(0, 0, 0, 0.5)",
12450
- modalBackground: "#1A1B1F",
12451
- modalBorder: "rgba(255, 255, 255, 0.08)",
12452
- modalText: "white",
12453
- modalTextDim: "rgba(224, 232, 255, 0.3)",
12454
- modalTextSecondary: "rgba(224, 232, 255, 0.6)",
12455
- profileAction: "#1A1B1F",
12456
- profileActionHover: "rgba(224, 232, 255, 0.1)",
12457
- profileForeground: "rgba(224, 232, 255, 0.06)",
12458
- selectedOptionBorder: "rgba(224, 232, 255, 0.1)",
12459
- standby: "#FFD641"
12553
+ // Primary accent - using --l-pass-primary
12554
+ accentColor: "#ffffff",
12555
+ // --l-pass-primary
12556
+ accentColorForeground: "#000000",
12557
+ // --l-pass-fg-inverted
12558
+ // Borders
12559
+ actionButtonBorder: "#3a3a3a",
12560
+ // --l-pass-bd
12561
+ actionButtonBorderMobile: "#4a4a4a",
12562
+ // --l-pass-bd-intense
12563
+ // Secondary backgrounds
12564
+ actionButtonSecondaryBackground: "#2a2a2a",
12565
+ // --l-pass-secondary
12566
+ // Close button
12567
+ closeButton: "rgba(255, 255, 255, 0.6)",
12568
+ // --l-pass-fg-h
12569
+ closeButtonBackground: "#2a2a2a",
12570
+ // --l-pass-secondary
12571
+ // Connect button
12572
+ connectButtonBackground: "#1a1a1a",
12573
+ // --l-pass-bg
12574
+ connectButtonBackgroundError: "#d6204e",
12575
+ // --l-pass-bg-error
12576
+ connectButtonInnerBackground: "linear-gradient(0deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02))",
12577
+ connectButtonText: "#ffffff",
12578
+ // --l-pass-fg
12579
+ connectButtonTextError: "#ffffff",
12580
+ // --l-pass-error
12581
+ // Status indicators
12582
+ connectionIndicator: "#21ff51",
12583
+ // --l-pass-bg-success
12584
+ standby: "#e9fa00",
12585
+ // --l-pass-bg-warning
12586
+ error: "#d6204e",
12587
+ // --l-pass-bg-error
12588
+ // Card backgrounds
12589
+ downloadBottomCardBackground: "linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(255, 255, 255, 0.05) 71.04%), #1a1a1a",
12590
+ downloadTopCardBackground: "linear-gradient(126deg, rgba(255, 255, 255, 0.05) 9.49%, rgba(255, 255, 255, 0) 71.04%), #1a1a1a",
12591
+ // Borders
12592
+ generalBorder: "#3a3a3a",
12593
+ // --l-pass-bd
12594
+ generalBorderDim: "rgba(58, 58, 58, 0.5)",
12595
+ // Menu items
12596
+ menuItemBackground: "#2a2a2a",
12597
+ // --l-pass-secondary
12598
+ // Modal
12599
+ modalBackdrop: "rgba(0, 0, 0, 0.8)",
12600
+ // --l-pass-overlay
12601
+ modalBackground: "#1a1a1a",
12602
+ // --l-pass-bg
12603
+ modalBorder: "#3a3a3a",
12604
+ // --l-pass-bd
12605
+ modalText: "#ffffff",
12606
+ // --l-pass-fg
12607
+ modalTextDim: "rgba(255, 255, 255, 0.4)",
12608
+ // --l-pass-fg-a
12609
+ modalTextSecondary: "rgba(255, 255, 255, 0.6)",
12610
+ // --l-pass-fg-h
12611
+ // Profile
12612
+ profileAction: "#1a1a1a",
12613
+ // --l-pass-bg
12614
+ profileActionHover: "#2a2a2a",
12615
+ // --l-pass-secondary
12616
+ profileForeground: "#2a2a2a",
12617
+ // --l-pass-secondary
12618
+ // Selection
12619
+ selectedOptionBorder: "#4a4a4a"
12620
+ // --l-pass-bd-intense
12460
12621
  },
12461
12622
  shadows: {
12462
- connectButton: "0px 4px 12px rgba(0, 0, 0, 0.1)",
12463
- dialog: "0px 8px 32px rgba(0, 0, 0, 0.32)",
12464
- profileDetailsAction: "0px 2px 6px rgba(37, 41, 46, 0.04)",
12465
- selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.24)",
12466
- selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.12)",
12467
- walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.16)"
12623
+ connectButton: "0px 4px 10px rgba(0, 0, 0, 0.5)",
12624
+ // matches --l-pass-shadow-c
12625
+ dialog: "0px 8px 32px rgba(0, 0, 0, 0.5)",
12626
+ profileDetailsAction: "0px 2px 6px rgba(0, 0, 0, 0.5)",
12627
+ selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.5)",
12628
+ selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.5)",
12629
+ walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.5)"
12468
12630
  },
12469
12631
  radii: {
12470
- actionButton: "24px",
12471
- connectButton: "24px",
12472
- menuButton: "12px",
12473
- modal: "24px",
12474
- modalMobile: "24px"
12632
+ actionButton: "10px",
12633
+ // --l-pass-el-bdrs
12634
+ connectButton: "20px",
12635
+ // --l-pass-bdrs
12636
+ menuButton: "10px",
12637
+ // --l-pass-el-bdrs
12638
+ modal: "20px",
12639
+ // --l-pass-bdrs
12640
+ modalMobile: "20px"
12641
+ // --l-pass-bdrs
12475
12642
  }
12476
12643
  }
12477
12644
  };
12478
12645
 
12479
12646
  // src/context/RainbowKitContext.tsx
12647
+ var import_styles = require("@rainbow-me/rainbowkit/styles.css");
12480
12648
  var import_jsx_runtime67 = require("react/jsx-runtime");
12481
- var LumiaRainbowKitProvider = ({ children }) => {
12482
- const {
12483
- config: { current: config }
12484
- } = useLumiaPassportConfig();
12485
- const isDark = useLayoutStore((st) => st.colorMode === "dark");
12486
- const rainbowConfig2 = import_react53.default.useMemo(() => {
12487
- return createRainbowConfig(config.wallet?.walletConnectProjectId);
12488
- }, [config.wallet?.walletConnectProjectId]);
12489
- const customTheme = import_react53.default.useMemo(
12490
- () => isDark ? {
12649
+ function LumiaRainbowKitProvider({ children }) {
12650
+ const config = useLumiaPassportConfig().config;
12651
+ const colorMode = useLayoutStore((st) => st.colorMode);
12652
+ const rainbowConfig2 = (0, import_react54.useMemo)(() => createRainbowConfig(config.current?.wallet?.walletConnectProjectId), [config]);
12653
+ const customTheme = (0, import_react54.useMemo)(
12654
+ () => colorMode === "dark" ? {
12491
12655
  ...(0, import_rainbowkit3.darkTheme)(),
12492
- colors: {
12493
- ...(0, import_rainbowkit3.darkTheme)().colors,
12494
- ...rainbowTheme.darkMode.colors
12495
- },
12656
+ colors: { ...(0, import_rainbowkit3.darkTheme)().colors, ...rainbowTheme.darkMode.colors },
12496
12657
  shadows: rainbowTheme.darkMode.shadows,
12497
12658
  radii: rainbowTheme.darkMode.radii
12498
12659
  } : {
12499
12660
  ...(0, import_rainbowkit3.lightTheme)(),
12500
- colors: {
12501
- ...(0, import_rainbowkit3.lightTheme)().colors,
12502
- ...rainbowTheme.lightMode.colors
12503
- },
12661
+ colors: { ...(0, import_rainbowkit3.lightTheme)().colors, ...rainbowTheme.lightMode.colors },
12504
12662
  shadows: rainbowTheme.lightMode.shadows,
12505
12663
  radii: rainbowTheme.lightMode.radii
12506
12664
  },
12507
- [isDark]
12665
+ [colorMode]
12508
12666
  );
12509
- const isWalletEnabled = config.wallet?.enabled ?? false;
12510
- if (!isWalletEnabled) {
12511
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_jsx_runtime67.Fragment, { children });
12512
- }
12667
+ if (!config.current?.wallet?.enabled) return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_jsx_runtime67.Fragment, { children });
12513
12668
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_wagmi8.WagmiProvider, { config: rainbowConfig2, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_rainbowkit3.RainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
12514
- };
12669
+ }
12515
12670
 
12516
12671
  // src/internal/components/UserOpStatus.tsx
12517
12672
  var import_lucide_react45 = require("lucide-react");
12518
- var React16 = __toESM(require("react"), 1);
12673
+ var React15 = __toESM(require("react"), 1);
12519
12674
  init_base();
12520
12675
 
12521
12676
  // src/internal/utils/cn.ts
@@ -12527,7 +12682,7 @@ function cn2(...inputs) {
12527
12682
 
12528
12683
  // src/internal/components/Address.tsx
12529
12684
  var import_lucide_react44 = require("lucide-react");
12530
- var React15 = __toESM(require("react"), 1);
12685
+ var React14 = __toESM(require("react"), 1);
12531
12686
  var import_jsx_runtime68 = require("react/jsx-runtime");
12532
12687
  function toExplorerAddressUrl(address, chain) {
12533
12688
  const base2 = chain?.blockExplorers?.default?.url;
@@ -12549,7 +12704,7 @@ var Address = ({
12549
12704
  }) => {
12550
12705
  const addr = address || "";
12551
12706
  const explorer = toExplorerAddressUrl(addr, chain || void 0);
12552
- const [copied, setCopied] = React15.useState(false);
12707
+ const [copied, setCopied] = React14.useState(false);
12553
12708
  if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12554
12709
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
12555
12710
  label && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-sm font-medium", children: label }),
@@ -12622,20 +12777,20 @@ var UserOpStatus = ({
12622
12777
  externalState
12623
12778
  }) => {
12624
12779
  const useExternalState = !!externalState;
12625
- const [internalReceipt, setInternalReceipt] = React16.useState(null);
12626
- const [internalMempool, setInternalMempool] = React16.useState(null);
12627
- const [internalError, setInternalError] = React16.useState(null);
12628
- const [attempt, setAttempt] = React16.useState(0);
12629
- const [internalRefreshing, setInternalRefreshing] = React16.useState(false);
12630
- const [timedOut, setTimedOut] = React16.useState(false);
12631
- const [rejected, setRejected] = React16.useState(false);
12632
- const intervalRef = React16.useRef(null);
12633
- const startTimeRef = React16.useRef(Date.now());
12780
+ const [internalReceipt, setInternalReceipt] = React15.useState(null);
12781
+ const [internalMempool, setInternalMempool] = React15.useState(null);
12782
+ const [internalError, setInternalError] = React15.useState(null);
12783
+ const [attempt, setAttempt] = React15.useState(0);
12784
+ const [internalRefreshing, setInternalRefreshing] = React15.useState(false);
12785
+ const [timedOut, setTimedOut] = React15.useState(false);
12786
+ const [rejected, setRejected] = React15.useState(false);
12787
+ const intervalRef = React15.useRef(null);
12788
+ const startTimeRef = React15.useRef(Date.now());
12634
12789
  const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
12635
12790
  const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
12636
12791
  const error = useExternalState ? externalState.error ?? null : internalError;
12637
12792
  const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
12638
- const rpc = React16.useCallback(async (method, params) => {
12793
+ const rpc = React15.useCallback(async (method, params) => {
12639
12794
  const body = { jsonrpc: "2.0", id: 1, method, params };
12640
12795
  const res = await fetch(getBundlerUrl(), {
12641
12796
  method: "POST",
@@ -12646,14 +12801,14 @@ var UserOpStatus = ({
12646
12801
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
12647
12802
  return json.result;
12648
12803
  }, []);
12649
- const extractMempoolInfo = React16.useCallback((m) => {
12804
+ const extractMempoolInfo = React15.useCallback((m) => {
12650
12805
  if (!m) return null;
12651
12806
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
12652
12807
  const sender = m.sender || m?.userOperation?.sender || null;
12653
12808
  if (!entryPoint && !sender) return null;
12654
12809
  return { entryPoint, sender };
12655
12810
  }, []);
12656
- const tick = React16.useCallback(async () => {
12811
+ const tick = React15.useCallback(async () => {
12657
12812
  if (useExternalState) return;
12658
12813
  const elapsed = Date.now() - startTimeRef.current;
12659
12814
  if (elapsed > maxPollTimeMs) {
@@ -12697,7 +12852,7 @@ var UserOpStatus = ({
12697
12852
  setAttempt((x) => x + 1);
12698
12853
  }
12699
12854
  }, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
12700
- React16.useEffect(() => {
12855
+ React15.useEffect(() => {
12701
12856
  if (useExternalState) return;
12702
12857
  console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
12703
12858
  startTimeRef.current = Date.now();
@@ -12709,7 +12864,7 @@ var UserOpStatus = ({
12709
12864
  setAttempt(0);
12710
12865
  setInternalRefreshing(false);
12711
12866
  }, [userOpHash, useExternalState]);
12712
- React16.useEffect(() => {
12867
+ React15.useEffect(() => {
12713
12868
  if (useExternalState) {
12714
12869
  console.log("[UserOpStatus] Using external state, skipping internal polling");
12715
12870
  return;
@@ -12886,7 +13041,7 @@ var UserOpStatus = ({
12886
13041
 
12887
13042
  // src/internal/components/Hash.tsx
12888
13043
  var import_lucide_react46 = require("lucide-react");
12889
- var React17 = __toESM(require("react"), 1);
13044
+ var React16 = __toESM(require("react"), 1);
12890
13045
  var import_jsx_runtime71 = require("react/jsx-runtime");
12891
13046
  function toExplorerUrl(kind, value, chain) {
12892
13047
  const base2 = chain?.blockExplorers?.default?.url;
@@ -12910,7 +13065,7 @@ var Hash = ({
12910
13065
  }) => {
12911
13066
  const value = hash || "";
12912
13067
  const explorer = toExplorerUrl(kind, value, chain || void 0);
12913
- const [copied, setCopied] = React17.useState(false);
13068
+ const [copied, setCopied] = React16.useState(false);
12914
13069
  if (!value) return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
12915
13070
  return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: cn2("flex items-center gap-2", className), children: [
12916
13071
  label && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-sm font-medium", children: label }),
@@ -12947,14 +13102,14 @@ var Hash = ({
12947
13102
  };
12948
13103
 
12949
13104
  // src/internal/components/TransactionsMenu/TransactionsList.tsx
12950
- var import_react54 = require("react");
13105
+ var import_react55 = require("react");
12951
13106
  init_base();
12952
13107
  var import_jsx_runtime72 = require("react/jsx-runtime");
12953
13108
  var TransactionsList = ({ address, itemsCount = 10 }) => {
12954
- const [transactions, setTransactions] = (0, import_react54.useState)([]);
12955
- const [loading, setLoading] = (0, import_react54.useState)(true);
12956
- const [error, setError] = (0, import_react54.useState)(null);
12957
- (0, import_react54.useEffect)(() => {
13109
+ const [transactions, setTransactions] = (0, import_react55.useState)([]);
13110
+ const [loading, setLoading] = (0, import_react55.useState)(true);
13111
+ const [error, setError] = (0, import_react55.useState)(null);
13112
+ (0, import_react55.useEffect)(() => {
12958
13113
  const fetchTransactions = async () => {
12959
13114
  try {
12960
13115
  setLoading(true);
@@ -13073,7 +13228,7 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
13073
13228
  };
13074
13229
 
13075
13230
  // src/hooks/useUserOpStatus.ts
13076
- var React19 = __toESM(require("react"), 1);
13231
+ var React18 = __toESM(require("react"), 1);
13077
13232
  init_base();
13078
13233
  function useUserOpStatus(options = {}) {
13079
13234
  const {
@@ -13085,16 +13240,16 @@ function useUserOpStatus(options = {}) {
13085
13240
  onReceipt,
13086
13241
  onTxHash
13087
13242
  } = options;
13088
- const [state, setState] = React19.useState("waiting");
13089
- const [receipt, setReceipt] = React19.useState(null);
13090
- const [mempool, setMempool] = React19.useState(null);
13091
- const [txHash, setTxHash] = React19.useState(null);
13092
- const [error, setError] = React19.useState(null);
13093
- const [isPolling, setIsPolling] = React19.useState(false);
13094
- const intervalRef = React19.useRef(null);
13095
- const startTimeRef = React19.useRef(Date.now());
13096
- const prevStateRef = React19.useRef("waiting");
13097
- const rpc = React19.useCallback(async (method, params) => {
13243
+ const [state, setState] = React18.useState("waiting");
13244
+ const [receipt, setReceipt] = React18.useState(null);
13245
+ const [mempool, setMempool] = React18.useState(null);
13246
+ const [txHash, setTxHash] = React18.useState(null);
13247
+ const [error, setError] = React18.useState(null);
13248
+ const [isPolling, setIsPolling] = React18.useState(false);
13249
+ const intervalRef = React18.useRef(null);
13250
+ const startTimeRef = React18.useRef(Date.now());
13251
+ const prevStateRef = React18.useRef("waiting");
13252
+ const rpc = React18.useCallback(async (method, params) => {
13098
13253
  const body = { jsonrpc: "2.0", id: 1, method, params };
13099
13254
  const res = await fetch(getBundlerUrl(), {
13100
13255
  method: "POST",
@@ -13105,21 +13260,21 @@ function useUserOpStatus(options = {}) {
13105
13260
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
13106
13261
  return json.result;
13107
13262
  }, []);
13108
- const extractMempoolInfo = React19.useCallback((m) => {
13263
+ const extractMempoolInfo = React18.useCallback((m) => {
13109
13264
  if (!m) return null;
13110
13265
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
13111
13266
  const sender = m.sender || m?.userOperation?.sender || null;
13112
13267
  if (!entryPoint && !sender) return null;
13113
13268
  return { entryPoint, sender };
13114
13269
  }, []);
13115
- const updateState = React19.useCallback((newState) => {
13270
+ const updateState = React18.useCallback((newState) => {
13116
13271
  setState(newState);
13117
13272
  if (prevStateRef.current !== newState) {
13118
13273
  prevStateRef.current = newState;
13119
13274
  onStateChange?.(newState);
13120
13275
  }
13121
13276
  }, [onStateChange]);
13122
- const tick = React19.useCallback(async () => {
13277
+ const tick = React18.useCallback(async () => {
13123
13278
  if (!userOpHash || !enabled) return;
13124
13279
  if (receipt) {
13125
13280
  console.log("[useUserOpStatus] Already have receipt, skipping tick");
@@ -13192,7 +13347,7 @@ function useUserOpStatus(options = {}) {
13192
13347
  onTxHash,
13193
13348
  onReceipt
13194
13349
  ]);
13195
- React19.useEffect(() => {
13350
+ React18.useEffect(() => {
13196
13351
  if (!userOpHash || !enabled) return;
13197
13352
  console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
13198
13353
  startTimeRef.current = Date.now();
@@ -13204,7 +13359,7 @@ function useUserOpStatus(options = {}) {
13204
13359
  setError(null);
13205
13360
  setIsPolling(false);
13206
13361
  }, [userOpHash, enabled]);
13207
- React19.useEffect(() => {
13362
+ React18.useEffect(() => {
13208
13363
  if (!userOpHash || !enabled) {
13209
13364
  console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
13210
13365
  return;
@@ -13240,7 +13395,7 @@ function useUserOpStatus(options = {}) {
13240
13395
  }
13241
13396
  };
13242
13397
  }, [userOpHash, enabled, pollMs]);
13243
- const refresh = React19.useCallback(async () => {
13398
+ const refresh = React18.useCallback(async () => {
13244
13399
  await tick();
13245
13400
  }, [tick]);
13246
13401
  return {
@@ -13256,11 +13411,11 @@ function useUserOpStatus(options = {}) {
13256
13411
 
13257
13412
  // src/hooks/useLogout.ts
13258
13413
  var import_auth20 = require("@lumiapassport/core/auth");
13259
- var import_react55 = require("react");
13414
+ var import_react56 = require("react");
13260
13415
  function useLogout() {
13261
13416
  const { setSession, setIsLoading, setAddress, setStatus, setError, address } = useLumiaPassportSession();
13262
13417
  const { callbacks } = useLumiaPassportConfig();
13263
- const logout2 = (0, import_react55.useCallback)(async () => {
13418
+ const logout2 = (0, import_react56.useCallback)(async () => {
13264
13419
  const prevAddress = address;
13265
13420
  let userId = null;
13266
13421
  setIsLoading(true);