@lumiapassport/ui-kit 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2396,6 +2396,7 @@ var init_iframe_manager = __esm({
2396
2396
  this.iframe.style.zIndex = "999999";
2397
2397
  this.iframe.style.background = "rgba(0, 0, 0, 0.5)";
2398
2398
  this.iframe.setAttribute("sandbox", "allow-scripts allow-same-origin");
2399
+ this.iframe.setAttribute("allow", "publickey-credentials-get *; publickey-credentials-create *");
2399
2400
  this.messageListener = this.handleMessage.bind(this);
2400
2401
  window.addEventListener("message", this.messageListener);
2401
2402
  document.body.appendChild(this.iframe);
@@ -2752,6 +2753,92 @@ var init_iframe_manager = __esm({
2752
2753
  }
2753
2754
  return false;
2754
2755
  }
2756
+ /**
2757
+ * Create backup of keyshare
2758
+ */
2759
+ async createBackup(userId, backupRequest, accessToken) {
2760
+ this.log("[IframeManager] Creating backup...");
2761
+ const response = await this.sendMessage("CREATE_BACKUP", {
2762
+ userId,
2763
+ backupRequest,
2764
+ accessToken
2765
+ // Pass access token for TSS API authentication
2766
+ });
2767
+ if (response.type === "LUMIA_PASSPORT_BACKUP_CREATED") {
2768
+ return response.result;
2769
+ }
2770
+ throw new Error("Unexpected response type");
2771
+ }
2772
+ /**
2773
+ * Restore keyshare from server backup
2774
+ */
2775
+ async restoreFromServer(userId, password, accessToken) {
2776
+ this.log("[IframeManager] Restoring backup from server...");
2777
+ const response = await this.sendMessage("RESTORE_BACKUP", {
2778
+ userId,
2779
+ password,
2780
+ accessToken
2781
+ // Pass access token for TSS API authentication
2782
+ });
2783
+ if (response.type === "LUMIA_PASSPORT_BACKUP_RESTORED") {
2784
+ return response.result;
2785
+ }
2786
+ throw new Error("Unexpected response type");
2787
+ }
2788
+ /**
2789
+ * Encrypt backup data without uploading (for cloud/local backups)
2790
+ * Returns encrypted data that parent can upload/download
2791
+ */
2792
+ async encryptBackupData(userId, password) {
2793
+ this.log("[IframeManager] Encrypting backup data...");
2794
+ const response = await this.sendMessage("ENCRYPT_BACKUP_DATA", {
2795
+ userId,
2796
+ password
2797
+ });
2798
+ if (response.type === "LUMIA_PASSPORT_BACKUP_ENCRYPTED") {
2799
+ return response.encryptedData;
2800
+ }
2801
+ throw new Error("Unexpected response type");
2802
+ }
2803
+ /**
2804
+ * Restore keyshare from local file backup
2805
+ */
2806
+ async restoreFromLocalFile(userId, fileContent, password) {
2807
+ this.log("[IframeManager] Restoring backup from local file...");
2808
+ const response = await this.sendMessage("RESTORE_FROM_FILE", {
2809
+ userId,
2810
+ fileContent,
2811
+ password
2812
+ });
2813
+ if (response.type === "LUMIA_PASSPORT_FILE_RESTORED") {
2814
+ return response.result;
2815
+ }
2816
+ throw new Error("Unexpected response type");
2817
+ }
2818
+ /**
2819
+ * Get backup status for user
2820
+ */
2821
+ async getBackupStatus(userId) {
2822
+ this.log("[IframeManager] Getting backup status...");
2823
+ const response = await this.sendMessage("GET_BACKUP_STATUS", {
2824
+ userId
2825
+ });
2826
+ if (response.type === "LUMIA_PASSPORT_BACKUP_STATUS") {
2827
+ return response.status;
2828
+ }
2829
+ throw new Error("Unexpected response type");
2830
+ }
2831
+ /**
2832
+ * Get available cloud providers
2833
+ */
2834
+ async getCloudProviders() {
2835
+ this.log("[IframeManager] Getting cloud providers...");
2836
+ const response = await this.sendMessage("GET_CLOUD_PROVIDERS", {});
2837
+ if (response.type === "LUMIA_PASSPORT_CLOUD_PROVIDERS") {
2838
+ return response.providers;
2839
+ }
2840
+ throw new Error("Unexpected response type");
2841
+ }
2755
2842
  /**
2756
2843
  * Cleanup and destroy iframe
2757
2844
  */
@@ -2791,7 +2878,7 @@ var init_iframe_manager = __esm({
2791
2878
  });
2792
2879
 
2793
2880
  // src/styles/built.css
2794
- 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{background-color:hsl(var(--background));color:hsl(var(--foreground))}.lumia-scope,.lumia-scope *,.lumia-scope :after,.lumia-scope :before{box-sizing:border-box;border-width:0;border-style:solid}.lumia-scope input,.lumia-scope select,.lumia-scope textarea{font:inherit;color:inherit;margin:0;background-color:transparent}.lumia-scope button{font:inherit;margin:0}.lumia-scope input[type=search]::-webkit-search-cancel-button,.lumia-scope input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.lumia-scope,.lumia-scope *,.lumia-scope .lumia-heading,.lumia-scope [data-radix-dialog-content],.lumia-scope [data-radix-dialog-content] *,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6{font-family:system-ui,-apple-system,sans-serif!important}.lumia-scope .lumia-heading{font-weight:700}.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 .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 .bottom-full{bottom:100%}.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 .left-\\[50\\%\\]{left:50%}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.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-\\[50\\%\\]{top:50%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[2147483646\\]{z-index:2147483646}.lumia-scope .z-\\[2147483647\\]{z-index:2147483647}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .-m-px{margin:-1px}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.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 .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-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 .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.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 .\\!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-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-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-\\[60vh\\]{max-height:60vh}.lumia-scope .max-h-\\[80vh\\]{max-height:80vh}.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-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-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-\\[280px\\]{min-width:280px}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[500px\\]{max-width:500px}.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-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-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1,.lumia-scope .-translate-y-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-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.lumia-scope .translate-x-\\[-50\\%\\],.lumia-scope .translate-y-\\[-50\\%\\]{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-\\[-50\\%\\]{--tw-translate-y:-50%}.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 spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.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 .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 .items-start{align-items:flex-start}.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 .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 :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 .truncate{overflow:hidden;text-overflow:ellipsis}.lumia-scope .truncate,.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-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:var(--radius)}.lumia-scope .rounded-md{border-radius:calc(var(--radius) - 2px)}.lumia-scope .rounded-sm{border-radius:calc(var(--radius) - 4px)}.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-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/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-600{--tw-border-opacity:1;border-color:rgb(37 99 235/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-border{border-color:hsl(var(--border))}.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-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-input{border-color:hsl(var(--input))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/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-orange-900\\/40{border-color:rgba(124,45,18,.4)}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/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-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-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-transparent{background-color:transparent!important}.lumia-scope .bg-\\[\\#0088cc\\]{--tw-bg-opacity:1;background-color:rgb(0 136 204/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#2456f0\\]{--tw-bg-opacity:1;background-color:rgb(36 86 240/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#db2777\\]{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#fde2f3\\]{--tw-bg-opacity:1;background-color:rgb(253 226 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/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-900\\/30{background-color:rgba(120,53,15,.3)}.lumia-scope .bg-background{background-color:hsl(var(--background))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-black\\/50{background-color:rgba(0,0,0,.5)}.lumia-scope .bg-black\\/80{background-color:rgba(0,0,0,.8)}.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-50\\/50{background-color:rgba(239,246,255,.5)}.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-card{background-color:hsl(var(--card))}.lumia-scope .bg-destructive{background-color:hsl(var(--destructive))}.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-800\\/50{background-color:rgba(31,41,55,.5)}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900\\/40{background-color:rgba(17,24,39,.4)}.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-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-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900\\/20{background-color:rgba(124,45,18,.2)}.lumia-scope .bg-orange-900\\/30{background-color:rgba(124,45,18,.3)}.lumia-scope .bg-orange-900\\/40{background-color:rgba(124,45,18,.4)}.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-primary{background-color:hsl(var(--primary))}.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-50\\/50{background-color:rgba(250,245,255,.5)}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/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-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/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-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-secondary{background-color:hsl(var(--secondary))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50\\/50{background-color:rgba(240,249,255,.5)}.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 .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-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.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 .pb-4{padding-bottom:1rem}.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 .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-\\[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 .italic{font-style:italic}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.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-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-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-card-foreground{color:hsl(var(--card-foreground))}.lumia-scope .text-destructive{color:hsl(var(--destructive))}.lumia-scope .text-destructive-foreground{color:hsl(var(--destructive-foreground))}.lumia-scope .text-foreground{color:hsl(var(--foreground))}.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-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-muted-foreground{color:hsl(var(--muted-foreground))}.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-400\\/80{color:rgba(251,146,60,.8)}.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-primary{color:hsl(var(--primary))}.lumia-scope .text-primary-foreground{color:hsl(var(--primary-foreground))}.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-600{--tw-text-opacity:1;color:rgb(147 51 234/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-secondary-foreground{color:hsl(var(--secondary-foreground))}.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 .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{outline-style:solid}.lumia-scope .ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.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-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 .file\\:mr-4::file-selector-button{margin-right:1rem}.lumia-scope .file\\:rounded::file-selector-button{border-radius:.25rem}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-gray-700::file-selector-button{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .file\\:bg-purple-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.lumia-scope .file\\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.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\\:font-semibold::file-selector-button{font-weight:600}.lumia-scope .file\\:text-gray-200::file-selector-button{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .file\\:text-purple-700::file-selector-button{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.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 .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-\\[\\#0077bb\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 119 187/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[\\#1e49d8\\]:hover{--tw-bg-opacity:1;background-color:rgb(30 73 216/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[\\#be185d\\]:hover{--tw-bg-opacity:1;background-color:rgb(190 24 93/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[\\#f7c1df\\]:hover{--tw-bg-opacity:1;background-color:rgb(247 193 223/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-accent:hover{background-color:hsl(var(--accent))}.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-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-destructive\\/90:hover{background-color:hsl(var(--destructive)/.9)}.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-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/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-500:hover{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/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-green-900\\/30:hover{background-color:rgba(20,83,45,.3)}.lumia-scope .hover\\:bg-orange-200:hover{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-orange-900\\/60:hover{background-color:rgba(124,45,18,.6)}.lumia-scope .hover\\:bg-pink-300:hover{--tw-bg-opacity:1;background-color:rgb(249 168 212/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-pink-700:hover{--tw-bg-opacity:1;background-color:rgb(190 24 93/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-primary\\/80:hover{background-color:hsl(var(--primary)/.8)}.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-purple-600:hover{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/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-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-secondary\\/80:hover{background-color:hsl(var(--secondary)/.8)}.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\\:from-purple-600:hover{--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 .hover\\:from-purple-700:hover{--tw-gradient-from:#7e22ce var(--tw-gradient-from-position);--tw-gradient-to:rgba(126,34,206,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .hover\\:to-blue-700:hover{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.lumia-scope .hover\\:text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-400:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.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-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/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-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/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\\:no-underline:hover{text-decoration-line:none}.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 .hover\\:file\\:bg-gray-600::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:file\\:bg-purple-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.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-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.lumia-scope .focus\\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.lumia-scope .focus\\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.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-2: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-blue-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.lumia-scope .focus-visible\\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.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 .disabled\\:pointer-events-none:disabled{pointer-events:none}.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 :is(.group:hover .group-hover\\:opacity-100){opacity:1}@media (min-width:640px){.lumia-scope .sm\\:mt-0{margin-top:0}.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\\:rounded-lg{border-radius:var(--radius)}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .dark\\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.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\\:text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .dark\\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .dark\\:text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .dark\\:placeholder\\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .dark\\:placeholder\\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .dark\\:hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/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 .dark\\:hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .dark\\:focus\\:ring-gray-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:size-4 svg){width:1rem;height:1rem}.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}';
2881
+ 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{background-color:hsl(var(--background));color:hsl(var(--foreground))}.lumia-scope,.lumia-scope *,.lumia-scope :after,.lumia-scope :before{box-sizing:border-box;border-width:0;border-style:solid}.lumia-scope input,.lumia-scope select,.lumia-scope textarea{font:inherit;color:inherit;margin:0;background-color:transparent}.lumia-scope button{font:inherit;margin:0}.lumia-scope input[type=search]::-webkit-search-cancel-button,.lumia-scope input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.lumia-scope,.lumia-scope *,.lumia-scope .lumia-heading,.lumia-scope [data-radix-dialog-content],.lumia-scope [data-radix-dialog-content] *,.lumia-scope h1,.lumia-scope h2,.lumia-scope h3,.lumia-scope h4,.lumia-scope h5,.lumia-scope h6{font-family:system-ui,-apple-system,sans-serif!important}.lumia-scope .lumia-heading{font-weight:700}.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 .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 .bottom-full{bottom:100%}.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 .left-\\[50\\%\\]{left:50%}.lumia-scope .right-2{right:.5rem}.lumia-scope .right-3{right:.75rem}.lumia-scope .right-4{right:1rem}.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-\\[50\\%\\]{top:50%}.lumia-scope .z-10{z-index:10}.lumia-scope .z-50{z-index:50}.lumia-scope .z-\\[2147483646\\]{z-index:2147483646}.lumia-scope .z-\\[2147483647\\]{z-index:2147483647}.lumia-scope .z-\\[60\\]{z-index:60}.lumia-scope .-m-px{margin:-1px}.lumia-scope .-mx-5{margin-left:-1.25rem;margin-right:-1.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 .-mt-5{margin-top:-1.25rem}.lumia-scope .mb-1{margin-bottom:.25rem}.lumia-scope .mb-2{margin-bottom:.5rem}.lumia-scope .mb-3{margin-bottom:.75rem}.lumia-scope .mb-4{margin-bottom:1rem}.lumia-scope .mb-6{margin-bottom:1.5rem}.lumia-scope .mb-8{margin-bottom:2rem}.lumia-scope .ml-1{margin-left:.25rem}.lumia-scope .ml-2{margin-left:.5rem}.lumia-scope .ml-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 .mt-0{margin-top:0}.lumia-scope .mt-0\\.5{margin-top:.125rem}.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 .\\!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-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-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-\\[60vh\\]{max-height:60vh}.lumia-scope .max-h-\\[80vh\\]{max-height:80vh}.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-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-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-\\[280px\\]{min-width:280px}.lumia-scope .max-w-2xl{max-width:42rem}.lumia-scope .max-w-\\[380px\\]{max-width:380px}.lumia-scope .max-w-\\[400px\\]{max-width:400px}.lumia-scope .max-w-\\[500px\\]{max-width:500px}.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-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-y-1{--tw-translate-y:-0.25rem}.lumia-scope .-translate-y-1,.lumia-scope .-translate-y-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-y-1\\/2{--tw-translate-y:-50%}.lumia-scope .translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.lumia-scope .translate-x-\\[-50\\%\\],.lumia-scope .translate-y-\\[-50\\%\\]{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-\\[-50\\%\\]{--tw-translate-y:-50%}.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 spin{to{transform:rotate(1turn)}}.lumia-scope .animate-spin{animation:spin 1s linear infinite}.lumia-scope .cursor-not-allowed{cursor:not-allowed}.lumia-scope .cursor-pointer{cursor:pointer}.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 .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 .items-start{align-items:flex-start}.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 .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 :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 .truncate{overflow:hidden;text-overflow:ellipsis}.lumia-scope .truncate,.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-full{border-radius:9999px}.lumia-scope .rounded-lg{border-radius:var(--radius)}.lumia-scope .rounded-md{border-radius:calc(var(--radius) - 2px)}.lumia-scope .rounded-sm{border-radius:calc(var(--radius) - 4px)}.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-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/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-600{--tw-border-opacity:1;border-color:rgb(37 99 235/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-border{border-color:hsl(var(--border))}.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-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-input{border-color:hsl(var(--input))}.lumia-scope .border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/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-orange-900\\/40{border-color:rgba(124,45,18,.4)}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/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-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-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-transparent{background-color:transparent!important}.lumia-scope .bg-\\[\\#0088cc\\]{--tw-bg-opacity:1;background-color:rgb(0 136 204/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#2456f0\\]{--tw-bg-opacity:1;background-color:rgb(36 86 240/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#db2777\\]{--tw-bg-opacity:1;background-color:rgb(219 39 119/var(--tw-bg-opacity,1))}.lumia-scope .bg-\\[\\#fde2f3\\]{--tw-bg-opacity:1;background-color:rgb(253 226 243/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/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-900\\/30{background-color:rgba(120,53,15,.3)}.lumia-scope .bg-background{background-color:hsl(var(--background))}.lumia-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.lumia-scope .bg-black\\/50{background-color:rgba(0,0,0,.5)}.lumia-scope .bg-black\\/80{background-color:rgba(0,0,0,.8)}.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-50\\/50{background-color:rgba(239,246,255,.5)}.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-card{background-color:hsl(var(--card))}.lumia-scope .bg-destructive{background-color:hsl(var(--destructive))}.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-800\\/50{background-color:rgba(31,41,55,.5)}.lumia-scope .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.lumia-scope .bg-gray-900\\/40{background-color:rgba(17,24,39,.4)}.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-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-900{--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-900\\/20{background-color:rgba(124,45,18,.2)}.lumia-scope .bg-orange-900\\/30{background-color:rgba(124,45,18,.3)}.lumia-scope .bg-orange-900\\/40{background-color:rgba(124,45,18,.4)}.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-primary{background-color:hsl(var(--primary))}.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-50\\/50{background-color:rgba(250,245,255,.5)}.lumia-scope .bg-purple-700{--tw-bg-opacity:1;background-color:rgb(126 34 206/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-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/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-900\\/30{background-color:rgba(127,29,29,.3)}.lumia-scope .bg-secondary{background-color:hsl(var(--secondary))}.lumia-scope .bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-50\\/50{background-color:rgba(240,249,255,.5)}.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 .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-6{padding-left:1.5rem;padding-right:1.5rem}.lumia-scope .px-8{padding-left:2rem;padding-right:2rem}.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 .pb-4{padding-bottom:1rem}.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 .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-\\[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 .italic{font-style:italic}.lumia-scope .leading-none{line-height:1}.lumia-scope .leading-tight{line-height:1.25}.lumia-scope .tracking-tight{letter-spacing:-.025em}.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-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-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-card-foreground{color:hsl(var(--card-foreground))}.lumia-scope .text-destructive{color:hsl(var(--destructive))}.lumia-scope .text-destructive-foreground{color:hsl(var(--destructive-foreground))}.lumia-scope .text-foreground{color:hsl(var(--foreground))}.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-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-muted-foreground{color:hsl(var(--muted-foreground))}.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-400\\/80{color:rgba(251,146,60,.8)}.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-primary{color:hsl(var(--primary))}.lumia-scope .text-primary-foreground{color:hsl(var(--primary-foreground))}.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-600{--tw-text-opacity:1;color:rgb(147 51 234/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-secondary-foreground{color:hsl(var(--secondary-foreground))}.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 .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{outline-style:solid}.lumia-scope .ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.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-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 .file\\:mr-4::file-selector-button{margin-right:1rem}.lumia-scope .file\\:rounded::file-selector-button{border-radius:.25rem}.lumia-scope .file\\:border-0::file-selector-button{border-width:0}.lumia-scope .file\\:bg-gray-700::file-selector-button{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .file\\:bg-purple-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.lumia-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.lumia-scope .file\\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.lumia-scope .file\\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.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\\:font-semibold::file-selector-button{font-weight:600}.lumia-scope .file\\:text-gray-200::file-selector-button{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .file\\:text-purple-700::file-selector-button{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .placeholder\\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.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 .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-\\[\\#0077bb\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 119 187/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[\\#1e49d8\\]:hover{--tw-bg-opacity:1;background-color:rgb(30 73 216/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[\\#be185d\\]:hover{--tw-bg-opacity:1;background-color:rgb(190 24 93/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-\\[\\#f7c1df\\]:hover{--tw-bg-opacity:1;background-color:rgb(247 193 223/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-accent:hover{background-color:hsl(var(--accent))}.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-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-blue-900\\/60:hover{background-color:rgba(30,58,138,.6)}.lumia-scope .hover\\:bg-destructive\\/90:hover{background-color:hsl(var(--destructive)/.9)}.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-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/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-500:hover{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/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-green-900\\/30:hover{background-color:rgba(20,83,45,.3)}.lumia-scope .hover\\:bg-orange-200:hover{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-orange-900\\/60:hover{background-color:rgba(124,45,18,.6)}.lumia-scope .hover\\:bg-pink-300:hover{--tw-bg-opacity:1;background-color:rgb(249 168 212/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-pink-700:hover{--tw-bg-opacity:1;background-color:rgb(190 24 93/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-primary\\/80:hover{background-color:hsl(var(--primary)/.8)}.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-purple-600:hover{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/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-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-secondary\\/80:hover{background-color:hsl(var(--secondary)/.8)}.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\\:from-purple-600:hover{--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 .hover\\:from-purple-700:hover{--tw-gradient-from:#7e22ce var(--tw-gradient-from-position);--tw-gradient-to:rgba(126,34,206,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.lumia-scope .hover\\:to-blue-700:hover{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.lumia-scope .hover\\:text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-400:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.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-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/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-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.lumia-scope .hover\\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/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\\:no-underline:hover{text-decoration-line:none}.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 .hover\\:file\\:bg-gray-600::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .hover\\:file\\:bg-purple-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.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-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.lumia-scope .focus\\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.lumia-scope .focus\\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.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-2: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-blue-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.lumia-scope .focus-visible\\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.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 .disabled\\:pointer-events-none:disabled{pointer-events:none}.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 :is(.group:hover .group-hover\\:opacity-100){opacity:1}@media (min-width:640px){.lumia-scope .sm\\:mt-0{margin-top:0}.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\\:rounded-lg{border-radius:var(--radius)}.lumia-scope .sm\\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.lumia-scope .dark\\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.lumia-scope .dark\\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.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\\:text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.lumia-scope .dark\\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.lumia-scope .dark\\:text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.lumia-scope .dark\\:placeholder\\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .dark\\:placeholder\\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.lumia-scope .dark\\:hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.lumia-scope .dark\\:hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/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 .dark\\:hover\\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.lumia-scope .dark\\:focus\\:ring-gray-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity,1))}}.lumia-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.lumia-scope :is(.\\[\\&_svg\\]\\:size-4 svg){width:1rem;height:1rem}.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}';
2795
2882
 
2796
2883
  // src/context/LumiaPassportContext.tsx
2797
2884
  init_lumiaPassport();
@@ -3260,7 +3347,7 @@ var LumiaRainbowKitProvider = ({ children }) => {
3260
3347
  };
3261
3348
 
3262
3349
  // src/components/ConnectWalletButton.tsx
3263
- import React27 from "react";
3350
+ import React28 from "react";
3264
3351
  import { useBalance as useBalance3 } from "wagmi";
3265
3352
 
3266
3353
  // src/internal/components/ui/dialog.tsx
@@ -3596,6 +3683,7 @@ Input.displayName = "Input";
3596
3683
 
3597
3684
  // src/internal/components/KeyshareRestore.tsx
3598
3685
  init_vaultClient();
3686
+ init_iframe_manager();
3599
3687
  import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
3600
3688
  function KeyshareRestore({ userId, onClose, onRestoreSuccess }) {
3601
3689
  const { config } = useLumiaPassportConfig();
@@ -3609,6 +3697,14 @@ function KeyshareRestore({ userId, onClose, onRestoreSuccess }) {
3609
3697
  const [restorePassword, setRestorePassword] = React10.useState("");
3610
3698
  const [hasServerBackup, setHasServerBackup] = React10.useState(null);
3611
3699
  const [checkingBackup, setCheckingBackup] = React10.useState(true);
3700
+ const iframeManager = React10.useMemo(() => {
3701
+ try {
3702
+ return getIframeManager();
3703
+ } catch (e) {
3704
+ console.error("[KeyshareRestore] Failed to get iframe manager:", e);
3705
+ return null;
3706
+ }
3707
+ }, []);
3612
3708
  React10.useEffect(() => {
3613
3709
  const checkBackupAvailability = async () => {
3614
3710
  try {
@@ -3631,20 +3727,31 @@ function KeyshareRestore({ userId, onClose, onRestoreSuccess }) {
3631
3727
  }, [userId]);
3632
3728
  const handleRestoreFromServer = async () => {
3633
3729
  console.log("[KeyshareRestore] Starting server restore for userId:", userId);
3730
+ if (!iframeManager) {
3731
+ setError("Iframe manager not initialized");
3732
+ return;
3733
+ }
3634
3734
  setLoading((prev) => ({ ...prev, server: true }));
3635
3735
  setError(null);
3636
3736
  setSuccess(null);
3637
3737
  try {
3638
- const passwordToUse = useCustomPassword ? restorePassword : null;
3639
- console.log("[KeyshareRestore] Calling restoreFromServer with method:", useCustomPassword ? "password" : "passkey");
3640
- await restoreFromServer(userId, passwordToUse);
3641
- console.log("[KeyshareRestore] Server restore successful");
3642
- setSuccess("Successfully restored keyshare from server backup");
3643
- setTimeout(() => {
3644
- onRestoreSuccess?.();
3645
- }, 100);
3738
+ const passwordToUse = useCustomPassword ? restorePassword : void 0;
3739
+ console.log("[KeyshareRestore] Calling iframeManager.restoreFromServer with method:", useCustomPassword ? "password" : "passkey");
3740
+ const jwt = await Promise.resolve().then(() => (init_auth(), auth_exports)).then((m) => m.jwtTokenManager.getTokens());
3741
+ const accessToken = jwt?.accessToken;
3742
+ const result = await iframeManager.restoreFromServer(userId, passwordToUse, accessToken);
3743
+ if (result.success) {
3744
+ console.log("[KeyshareRestore] Server restore successful");
3745
+ setSuccess("Successfully restored keyshare from server backup");
3746
+ setTimeout(() => {
3747
+ onRestoreSuccess?.();
3748
+ }, 100);
3749
+ } else {
3750
+ console.error("[KeyshareRestore] Server restore failed:", result.error);
3751
+ setError(result.error || "Server restore failed");
3752
+ }
3646
3753
  } catch (err) {
3647
- console.error("[KeyshareRestore] Server restore failed:", err);
3754
+ console.error("[KeyshareRestore] Server restore exception:", err);
3648
3755
  const errorMsg = err instanceof Error ? err.message : "Server restore failed";
3649
3756
  setError(errorMsg);
3650
3757
  } finally {
@@ -3661,18 +3768,27 @@ function KeyshareRestore({ userId, onClose, onRestoreSuccess }) {
3661
3768
  setError("Please enter the backup password");
3662
3769
  return;
3663
3770
  }
3771
+ if (!iframeManager) {
3772
+ setError("Iframe manager not initialized");
3773
+ return;
3774
+ }
3664
3775
  setLoading((prev) => ({ ...prev, file: true }));
3665
3776
  setError(null);
3666
3777
  setSuccess(null);
3667
3778
  try {
3668
- const passwordToUse = useCustomPassword ? restorePassword : null;
3669
- await restoreFromBackup(restoreFile, passwordToUse, userId);
3670
- setSuccess("Successfully restored keyshare from backup file");
3671
- setRestoreFile(null);
3672
- setRestorePassword("");
3673
- setTimeout(() => {
3674
- onRestoreSuccess?.();
3675
- }, 100);
3779
+ const fileContent = await restoreFile.text();
3780
+ const passwordToUse = useCustomPassword ? restorePassword : void 0;
3781
+ const result = await iframeManager.restoreFromLocalFile(userId, fileContent, passwordToUse);
3782
+ if (result.success) {
3783
+ setSuccess("Successfully restored keyshare from backup file");
3784
+ setRestoreFile(null);
3785
+ setRestorePassword("");
3786
+ setTimeout(() => {
3787
+ onRestoreSuccess?.();
3788
+ }, 100);
3789
+ } else {
3790
+ setError(result.error || "File restore failed");
3791
+ }
3676
3792
  } catch (err) {
3677
3793
  const errorMsg = err instanceof Error ? err.message : "Restore failed";
3678
3794
  setError(errorMsg);
@@ -3910,7 +4026,7 @@ function KeyshareRestore({ userId, onClose, onRestoreSuccess }) {
3910
4026
  }
3911
4027
 
3912
4028
  // src/internal/components/VerificationCodeInput.tsx
3913
- import { useEffect as useEffect4, useMemo as useMemo2, useRef, useState as useState4 } from "react";
4029
+ import { useEffect as useEffect4, useMemo as useMemo3, useRef, useState as useState4 } from "react";
3914
4030
  import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
3915
4031
  var VerificationCodeInput = ({ onVerifyCode, onResendCode, isLoading, expiresIn, error }) => {
3916
4032
  const { config } = useLumiaPassportConfig();
@@ -3926,7 +4042,7 @@ var VerificationCodeInput = ({ onVerifyCode, onResendCode, isLoading, expiresIn,
3926
4042
  const [digits, setDigits] = useState4(["", "", "", "", "", ""]);
3927
4043
  const inputsRef = useRef([]);
3928
4044
  const lastSubmittedRef = useRef(null);
3929
- const code = useMemo2(() => digits.join(""), [digits]);
4045
+ const code = useMemo3(() => digits.join(""), [digits]);
3930
4046
  useEffect4(() => {
3931
4047
  if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
3932
4048
  if (lastSubmittedRef.current !== code) {
@@ -6693,19 +6809,320 @@ var SecurityModal = ({ open, onOpenChange, onBack }) => {
6693
6809
  ] });
6694
6810
  };
6695
6811
 
6812
+ // src/internal/components/KeyshareBackup.tsx
6813
+ import * as React19 from "react";
6814
+ import { Shield as Shield4, Server as Server4, CheckCircle2 as CheckCircle24, AlertCircle as AlertCircle3, Key as Key5, X as X3, Eye as Eye3, EyeOff as EyeOff3, Download as Download2, Cloud as Cloud3, Lock as Lock2 } from "lucide-react";
6815
+ init_iframe_manager();
6816
+ import { Fragment as Fragment6, jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
6817
+ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
6818
+ const [backupStatus, setBackupStatus] = React19.useState({
6819
+ server: {},
6820
+ cloud: {},
6821
+ local: {}
6822
+ });
6823
+ const [loading, setLoading] = React19.useState({
6824
+ server: false,
6825
+ cloud: false,
6826
+ local: false
6827
+ });
6828
+ const [error, setError] = React19.useState(null);
6829
+ const [success, setSuccess] = React19.useState(null);
6830
+ const [showPassword, setShowPassword] = React19.useState(false);
6831
+ const [useCustomPassword, setUseCustomPassword] = React19.useState(false);
6832
+ const [customPassword, setCustomPassword] = React19.useState("");
6833
+ const [cloudProviders, setCloudProviders] = React19.useState([]);
6834
+ const [selectedCloudProvider, setSelectedCloudProvider] = React19.useState(null);
6835
+ const [hasKeyshareData, setHasKeyshareData] = React19.useState(true);
6836
+ const iframeManager = React19.useMemo(() => {
6837
+ try {
6838
+ return getIframeManager();
6839
+ } catch (e) {
6840
+ console.error("[KeyshareBackup] Failed to get iframe manager:", e);
6841
+ return null;
6842
+ }
6843
+ }, []);
6844
+ React19.useEffect(() => {
6845
+ const loadCloudProviders = async () => {
6846
+ try {
6847
+ const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
6848
+ const availableProviders = getAvailableCloudProviders3();
6849
+ const providers = availableProviders.map((p) => ({
6850
+ id: p.id,
6851
+ name: p.name,
6852
+ available: p.isAvailable()
6853
+ }));
6854
+ setCloudProviders(providers);
6855
+ if (providers.length > 0 && !selectedCloudProvider) {
6856
+ setSelectedCloudProvider(providers[0].id);
6857
+ }
6858
+ } catch (error2) {
6859
+ console.error("[KeyshareBackup] Failed to load cloud providers:", error2);
6860
+ }
6861
+ };
6862
+ loadCloudProviders();
6863
+ }, [selectedCloudProvider]);
6864
+ const refreshStatus = React19.useCallback(async () => {
6865
+ if (!iframeManager) return;
6866
+ try {
6867
+ const status = await iframeManager.getBackupStatus(userId);
6868
+ setBackupStatus(status);
6869
+ } catch (error2) {
6870
+ console.error("[KeyshareBackup] Failed to get backup status:", error2);
6871
+ }
6872
+ }, [iframeManager, userId]);
6873
+ React19.useEffect(() => {
6874
+ refreshStatus();
6875
+ }, [refreshStatus]);
6876
+ const handleBackup = async (method) => {
6877
+ if (!iframeManager) {
6878
+ setError("Iframe manager not initialized");
6879
+ return;
6880
+ }
6881
+ setLoading((prev) => ({ ...prev, [method]: true }));
6882
+ setError(null);
6883
+ setSuccess(null);
6884
+ try {
6885
+ const password = useCustomPassword ? customPassword : void 0;
6886
+ if (method === "server") {
6887
+ const jwt = await Promise.resolve().then(() => (init_auth(), auth_exports)).then((m) => m.jwtTokenManager.getTokens());
6888
+ const accessToken = jwt?.accessToken;
6889
+ const result = await iframeManager.createBackup(userId, {
6890
+ method,
6891
+ password
6892
+ }, accessToken);
6893
+ if (result.success) {
6894
+ setSuccess("Successfully created server backup");
6895
+ await refreshStatus();
6896
+ onBackupSuccess?.();
6897
+ } else {
6898
+ throw new Error(result.error || "Server backup failed");
6899
+ }
6900
+ } else if (method === "cloud") {
6901
+ const encryptedData = await iframeManager.encryptBackupData(userId, password);
6902
+ const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
6903
+ const providers = getAvailableCloudProviders3();
6904
+ const provider = selectedCloudProvider ? providers.find((p) => p.id === selectedCloudProvider) : providers[0];
6905
+ if (!provider) {
6906
+ throw new Error("No cloud provider available");
6907
+ }
6908
+ if (!provider.isAuthenticated()) {
6909
+ const authenticated = await provider.authenticate();
6910
+ if (!authenticated) {
6911
+ throw new Error(`Failed to authenticate with ${provider.name}`);
6912
+ }
6913
+ }
6914
+ const timestamp = Date.now();
6915
+ const fileName = `lumia-keyshare-backup-${userId}-${timestamp}.json`;
6916
+ const fileContent = JSON.stringify(encryptedData, null, 2);
6917
+ await provider.upload(fileName, fileContent, true);
6918
+ setSuccess(`Successfully created cloud backup on ${provider.name}`);
6919
+ await refreshStatus();
6920
+ onBackupSuccess?.();
6921
+ } else if (method === "local") {
6922
+ const encryptedData = await iframeManager.encryptBackupData(userId, password);
6923
+ const blob = new Blob([JSON.stringify(encryptedData, null, 2)], {
6924
+ type: "application/json"
6925
+ });
6926
+ const url = URL.createObjectURL(blob);
6927
+ const a = document.createElement("a");
6928
+ a.href = url;
6929
+ a.download = `lumia-passport-backup-${userId}-${Date.now()}.json`;
6930
+ document.body.appendChild(a);
6931
+ a.click();
6932
+ document.body.removeChild(a);
6933
+ URL.revokeObjectURL(url);
6934
+ setSuccess("Backup file downloaded successfully");
6935
+ await refreshStatus();
6936
+ onBackupSuccess?.();
6937
+ }
6938
+ if (typeof window !== "undefined") {
6939
+ window.dispatchEvent(
6940
+ new CustomEvent("lumia-passport-backup-status-changed", {
6941
+ detail: { method, success: true }
6942
+ })
6943
+ );
6944
+ }
6945
+ } catch (err) {
6946
+ const errorMsg = err instanceof Error ? err.message : "Backup creation failed";
6947
+ setError(errorMsg);
6948
+ await refreshStatus();
6949
+ } finally {
6950
+ setLoading((prev) => ({ ...prev, [method]: false }));
6951
+ }
6952
+ };
6953
+ const formatLastBackup = (timestamp) => {
6954
+ if (!timestamp) return "Never";
6955
+ const date = new Date(timestamp);
6956
+ return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
6957
+ };
6958
+ return /* @__PURE__ */ jsxs15(Card, { className: "border-green-200 bg-green-50", children: [
6959
+ /* @__PURE__ */ jsx23(CardHeader, { className: "pb-4", children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between", children: [
6960
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
6961
+ /* @__PURE__ */ jsx23(Shield4, { className: "h-6 w-6 text-green-600" }),
6962
+ /* @__PURE__ */ jsxs15("div", { children: [
6963
+ /* @__PURE__ */ jsx23(CardTitle, { className: "text-lg", children: "Create Backup" }),
6964
+ /* @__PURE__ */ jsx23(CardDescription, { className: "text-sm", children: "Secure your keyshare with encrypted backups" })
6965
+ ] })
6966
+ ] }),
6967
+ onClose && /* @__PURE__ */ jsx23("button", { onClick: onClose, className: "p-1 rounded bg-red-100 text-red-600 hover:bg-red-200 transition-colors", title: "Close", children: /* @__PURE__ */ jsx23(X3, { className: "h-4 w-4" }) })
6968
+ ] }) }),
6969
+ /* @__PURE__ */ jsxs15(CardContent, { className: "space-y-6", children: [
6970
+ error && /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2 p-3 rounded bg-red-50 border border-red-200 text-red-700 text-sm", children: [
6971
+ /* @__PURE__ */ jsx23(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
6972
+ /* @__PURE__ */ jsx23("span", { children: error })
6973
+ ] }),
6974
+ success && /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2 p-3 rounded bg-green-50 border border-green-200 text-green-700 text-sm", children: [
6975
+ /* @__PURE__ */ jsx23(CheckCircle24, { className: "h-4 w-4 flex-shrink-0" }),
6976
+ /* @__PURE__ */ jsx23("span", { children: success })
6977
+ ] }),
6978
+ /* @__PURE__ */ jsxs15("div", { className: "space-y-3", children: [
6979
+ /* @__PURE__ */ jsx23("div", { className: "text-sm font-medium text-gray-700", children: "Encryption Method:" }),
6980
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
6981
+ /* @__PURE__ */ jsx23(
6982
+ "input",
6983
+ {
6984
+ type: "checkbox",
6985
+ id: "use-backup-password",
6986
+ checked: useCustomPassword,
6987
+ onChange: (e) => setUseCustomPassword(e.target.checked),
6988
+ className: "rounded"
6989
+ }
6990
+ ),
6991
+ /* @__PURE__ */ jsx23("label", { htmlFor: "use-backup-password", className: "text-sm font-medium", children: "Use custom password instead of passkey" })
6992
+ ] }),
6993
+ !useCustomPassword && /* @__PURE__ */ jsx23("div", { className: "p-3 bg-blue-50 border border-blue-200 rounded text-sm text-blue-700", children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
6994
+ /* @__PURE__ */ jsx23(Key5, { className: "h-4 w-4" }),
6995
+ /* @__PURE__ */ jsx23("span", { children: "Your passkey will be used to encrypt the backup securely" })
6996
+ ] }) }),
6997
+ useCustomPassword && /* @__PURE__ */ jsxs15("div", { className: "relative", children: [
6998
+ /* @__PURE__ */ jsx23(
6999
+ Input,
7000
+ {
7001
+ type: showPassword ? "text" : "password",
7002
+ placeholder: "Enter backup encryption password",
7003
+ value: customPassword,
7004
+ onChange: (e) => setCustomPassword(e.target.value),
7005
+ className: "pr-10"
7006
+ }
7007
+ ),
7008
+ /* @__PURE__ */ jsx23(
7009
+ "button",
7010
+ {
7011
+ type: "button",
7012
+ onClick: () => setShowPassword(!showPassword),
7013
+ className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-500 hover:text-gray-700",
7014
+ children: showPassword ? /* @__PURE__ */ jsx23(EyeOff3, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx23(Eye3, { className: "h-4 w-4" })
7015
+ }
7016
+ )
7017
+ ] })
7018
+ ] }),
7019
+ /* @__PURE__ */ jsxs15("div", { className: "space-y-4", children: [
7020
+ /* @__PURE__ */ jsx23("div", { className: "text-sm font-medium text-gray-700", children: "Choose Backup Method:" }),
7021
+ /* @__PURE__ */ jsxs15("div", { className: "p-4 rounded-lg border border-blue-200 bg-blue-50/50", children: [
7022
+ /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-between mb-3", children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
7023
+ /* @__PURE__ */ jsx23(Server4, { className: "h-5 w-5 text-blue-600" }),
7024
+ /* @__PURE__ */ jsxs15("div", { children: [
7025
+ /* @__PURE__ */ jsx23("div", { className: "font-medium text-sm", children: "Server Backup" }),
7026
+ /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600", children: "Store encrypted backup on secure server" })
7027
+ ] })
7028
+ ] }) }),
7029
+ /* @__PURE__ */ jsx23(
7030
+ Button,
7031
+ {
7032
+ onClick: () => handleBackup("server"),
7033
+ disabled: loading.server || useCustomPassword && !customPassword || !hasKeyshareData,
7034
+ className: "px-4 py-2",
7035
+ children: loading.server ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
7036
+ }
7037
+ ),
7038
+ /* @__PURE__ */ jsxs15("div", { className: "text-xs text-gray-600 mt-2", children: [
7039
+ "Encrypted backup stored on secure server \u2022 Last: ",
7040
+ formatLastBackup(backupStatus.server.lastBackup)
7041
+ ] })
7042
+ ] }),
7043
+ /* @__PURE__ */ jsxs15("div", { className: "p-4 rounded-lg border border-sky-200 bg-sky-50/50", children: [
7044
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3 mb-3", children: [
7045
+ /* @__PURE__ */ jsx23(Cloud3, { className: "h-5 w-5 text-sky-600" }),
7046
+ /* @__PURE__ */ jsxs15("div", { children: [
7047
+ /* @__PURE__ */ jsx23("div", { className: "font-medium text-sm", children: "Cloud Backup" }),
7048
+ /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600", children: "Store encrypted backup in cloud storage" })
7049
+ ] })
7050
+ ] }),
7051
+ cloudProviders.length > 1 && /* @__PURE__ */ jsx23("div", { className: "mb-3", children: /* @__PURE__ */ jsx23(
7052
+ "select",
7053
+ {
7054
+ value: selectedCloudProvider || "",
7055
+ onChange: (e) => setSelectedCloudProvider(e.target.value),
7056
+ className: "text-sm border rounded px-2 py-1 w-full",
7057
+ children: cloudProviders.map((provider) => /* @__PURE__ */ jsxs15("option", { value: provider.id, disabled: !provider.available, children: [
7058
+ provider.name,
7059
+ " ",
7060
+ provider.available ? "" : "(Not Available)"
7061
+ ] }, provider.id))
7062
+ }
7063
+ ) }),
7064
+ /* @__PURE__ */ jsx23(
7065
+ Button,
7066
+ {
7067
+ onClick: () => handleBackup("cloud"),
7068
+ disabled: loading.cloud || useCustomPassword && !customPassword || !hasKeyshareData || cloudProviders.length === 0,
7069
+ className: "px-4 py-2",
7070
+ children: loading.cloud ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
7071
+ }
7072
+ ),
7073
+ /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600 mt-2", children: cloudProviders.length > 0 ? `Direct backup to ${cloudProviders.find((p) => p.id === selectedCloudProvider)?.name || "cloud storage"} \u2022 Last: ${formatLastBackup(backupStatus.cloud.lastBackup)}` : `No cloud providers configured \u2022 Last: ${formatLastBackup(backupStatus.cloud.lastBackup)}` })
7074
+ ] }),
7075
+ /* @__PURE__ */ jsxs15("div", { className: "p-4 rounded-lg border border-purple-200 bg-purple-50/50", children: [
7076
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3 mb-3", children: [
7077
+ /* @__PURE__ */ jsx23(Download2, { className: "h-5 w-5 text-purple-600" }),
7078
+ /* @__PURE__ */ jsxs15("div", { children: [
7079
+ /* @__PURE__ */ jsx23("div", { className: "font-medium text-sm", children: "File Backup" }),
7080
+ /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600", children: "Download encrypted backup file to your device" })
7081
+ ] })
7082
+ ] }),
7083
+ /* @__PURE__ */ jsx23(
7084
+ Button,
7085
+ {
7086
+ onClick: () => handleBackup("local"),
7087
+ disabled: loading.local || useCustomPassword && !customPassword || !hasKeyshareData,
7088
+ className: "w-full",
7089
+ children: loading.local ? "Creating..." : useCustomPassword ? "Create & Download" : "Create & Download with Passkey"
7090
+ }
7091
+ ),
7092
+ /* @__PURE__ */ jsxs15("div", { className: "text-xs text-gray-600 mt-2", children: [
7093
+ "Download encrypted backup file to your device \u2022 Last: ",
7094
+ formatLastBackup(backupStatus.local.lastBackup)
7095
+ ] })
7096
+ ] })
7097
+ ] }),
7098
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-start gap-2 p-3 bg-amber-50 border border-amber-200 rounded text-amber-800 text-xs", children: [
7099
+ /* @__PURE__ */ jsx23(Lock2, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
7100
+ /* @__PURE__ */ jsxs15("div", { children: [
7101
+ /* @__PURE__ */ jsx23("div", { className: "font-medium", children: "Security Notice" }),
7102
+ /* @__PURE__ */ jsxs15("div", { className: "mt-1", children: [
7103
+ useCustomPassword ? /* @__PURE__ */ jsx23(Fragment6, { children: "All backups are encrypted with AES-256 using your custom password. Store your password securely - without it, backups cannot be restored." }) : /* @__PURE__ */ jsx23(Fragment6, { children: "All backups are encrypted with AES-256 using your passkey. Your passkey authenticator (device/biometrics) is required to restore backups." }),
7104
+ " ",
7105
+ "Without backup access, you cannot recover your smart account if you lose this device."
7106
+ ] })
7107
+ ] })
7108
+ ] })
7109
+ ] })
7110
+ ] });
7111
+ }
7112
+
6696
7113
  // src/internal/components/TransactionsModal.tsx
6697
- import React19 from "react";
7114
+ import React20 from "react";
6698
7115
  init_base();
6699
- import { Activity, ArrowUpRight, ArrowDownRight, CheckCircle2 as CheckCircle24, XCircle, ArrowLeft as ArrowLeft5, RefreshCw as RefreshCw3 } from "lucide-react";
6700
- import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
7116
+ import { Activity, ArrowUpRight, ArrowDownRight, CheckCircle2 as CheckCircle25, XCircle, ArrowLeft as ArrowLeft5, RefreshCw as RefreshCw3 } from "lucide-react";
7117
+ import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
6701
7118
  var TransactionsModal = ({ open, onOpenChange, onBack }) => {
6702
7119
  const { address } = useLumiaSession();
6703
- const [transactions, setTransactions] = React19.useState([]);
6704
- const [loading, setLoading] = React19.useState(false);
6705
- const [error, setError] = React19.useState(null);
7120
+ const [transactions, setTransactions] = React20.useState([]);
7121
+ const [loading, setLoading] = React20.useState(false);
7122
+ const [error, setError] = React20.useState(null);
6706
7123
  const { config } = useLumiaPassportConfig();
6707
7124
  const { isDark, classes: theme } = useTheme(config.ui.theme);
6708
- const loadTransactions = React19.useCallback(async () => {
7125
+ const loadTransactions = React20.useCallback(async () => {
6709
7126
  if (!address) return;
6710
7127
  setLoading(true);
6711
7128
  setError(null);
@@ -6726,7 +7143,7 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
6726
7143
  setLoading(false);
6727
7144
  }
6728
7145
  }, [address]);
6729
- React19.useEffect(() => {
7146
+ React20.useEffect(() => {
6730
7147
  if (open && address && !loading && transactions.length === 0) {
6731
7148
  loadTransactions();
6732
7149
  }
@@ -6747,98 +7164,98 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
6747
7164
  }
6748
7165
  };
6749
7166
  const getStatusIcon = (status) => {
6750
- return status === "ok" ? /* @__PURE__ */ jsx23(CheckCircle24, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ jsx23(XCircle, { className: "w-4 h-4 text-red-500" });
7167
+ return status === "ok" ? /* @__PURE__ */ jsx24(CheckCircle25, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ jsx24(XCircle, { className: "w-4 h-4 text-red-500" });
6751
7168
  };
6752
7169
  const getTransactionIcon = (from, to) => {
6753
7170
  const isIncoming = to.toLowerCase() === address?.toLowerCase();
6754
- return isIncoming ? /* @__PURE__ */ jsx23(ArrowDownRight, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ jsx23(ArrowUpRight, { className: "w-4 h-4 text-blue-500" });
7171
+ return isIncoming ? /* @__PURE__ */ jsx24(ArrowDownRight, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ jsx24(ArrowUpRight, { className: "w-4 h-4 text-blue-500" });
6755
7172
  };
6756
7173
  const openInExplorer = (txHash) => {
6757
7174
  const explorerUrl = getExplorerUrl();
6758
7175
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
6759
7176
  };
6760
- return /* @__PURE__ */ jsx23(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs15(DialogContent, { className: `lumia-scope max-w-[400px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
6761
- /* @__PURE__ */ jsx23(VisuallyHidden, { children: /* @__PURE__ */ jsx23(DialogTitle, { children: "Transaction History" }) }),
6762
- /* @__PURE__ */ jsx23(DialogDescription, { className: "sr-only", children: "View your transaction history" }),
6763
- /* @__PURE__ */ jsx23("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
6764
- onBack && /* @__PURE__ */ jsx23(
7177
+ return /* @__PURE__ */ jsx24(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs16(DialogContent, { className: `lumia-scope max-w-[400px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
7178
+ /* @__PURE__ */ jsx24(VisuallyHidden, { children: /* @__PURE__ */ jsx24(DialogTitle, { children: "Transaction History" }) }),
7179
+ /* @__PURE__ */ jsx24(DialogDescription, { className: "sr-only", children: "View your transaction history" }),
7180
+ /* @__PURE__ */ jsx24("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7181
+ onBack && /* @__PURE__ */ jsx24(
6765
7182
  "button",
6766
7183
  {
6767
7184
  onClick: onBack,
6768
7185
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
6769
7186
  title: "Back",
6770
- children: /* @__PURE__ */ jsx23(ArrowLeft5, { className: "h-4 w-4" })
7187
+ children: /* @__PURE__ */ jsx24(ArrowLeft5, { className: "h-4 w-4" })
6771
7188
  }
6772
7189
  ),
6773
- /* @__PURE__ */ jsxs15("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
6774
- /* @__PURE__ */ jsx23(Activity, { className: "h-5 w-5" }),
6775
- /* @__PURE__ */ jsx23("span", { children: "Transaction History" }),
6776
- /* @__PURE__ */ jsx23(
7190
+ /* @__PURE__ */ jsxs16("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7191
+ /* @__PURE__ */ jsx24(Activity, { className: "h-5 w-5" }),
7192
+ /* @__PURE__ */ jsx24("span", { children: "Transaction History" }),
7193
+ /* @__PURE__ */ jsx24(
6777
7194
  "button",
6778
7195
  {
6779
7196
  onClick: loadTransactions,
6780
7197
  disabled: loading,
6781
7198
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1`,
6782
7199
  title: "Refresh transactions",
6783
- children: /* @__PURE__ */ jsx23(RefreshCw3, { className: `h-4 w-4 ${loading ? "animate-spin" : ""}` })
7200
+ children: /* @__PURE__ */ jsx24(RefreshCw3, { className: `h-4 w-4 ${loading ? "animate-spin" : ""}` })
6784
7201
  }
6785
7202
  )
6786
7203
  ] })
6787
7204
  ] }) }),
6788
- /* @__PURE__ */ jsx23("div", { className: "p-5 max-h-[60vh] overflow-y-auto", children: loading ? /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsx23("div", { className: `${theme.mutedText}`, children: "Loading transactions..." }) }) : error ? /* @__PURE__ */ jsxs15("div", { className: `flex flex-col items-center justify-center py-8 ${isDark ? "text-red-400" : "text-red-500"}`, children: [
6789
- /* @__PURE__ */ jsx23(XCircle, { className: "w-12 h-12 mb-2" }),
6790
- /* @__PURE__ */ jsx23("p", { className: "text-center text-sm", children: error })
6791
- ] }) : transactions.length === 0 ? /* @__PURE__ */ jsxs15("div", { className: `flex flex-col items-center justify-center py-8 ${theme.mutedText}`, children: [
6792
- /* @__PURE__ */ jsx23(Activity, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
6793
- /* @__PURE__ */ jsxs15("p", { className: "text-center", children: [
7205
+ /* @__PURE__ */ jsx24("div", { className: "p-5 max-h-[60vh] overflow-y-auto", children: loading ? /* @__PURE__ */ jsx24("div", { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsx24("div", { className: `${theme.mutedText}`, children: "Loading transactions..." }) }) : error ? /* @__PURE__ */ jsxs16("div", { className: `flex flex-col items-center justify-center py-8 ${isDark ? "text-red-400" : "text-red-500"}`, children: [
7206
+ /* @__PURE__ */ jsx24(XCircle, { className: "w-12 h-12 mb-2" }),
7207
+ /* @__PURE__ */ jsx24("p", { className: "text-center text-sm", children: error })
7208
+ ] }) : transactions.length === 0 ? /* @__PURE__ */ jsxs16("div", { className: `flex flex-col items-center justify-center py-8 ${theme.mutedText}`, children: [
7209
+ /* @__PURE__ */ jsx24(Activity, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
7210
+ /* @__PURE__ */ jsxs16("p", { className: "text-center", children: [
6794
7211
  "No transactions found",
6795
- /* @__PURE__ */ jsx23("br", {}),
6796
- /* @__PURE__ */ jsx23("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
7212
+ /* @__PURE__ */ jsx24("br", {}),
7213
+ /* @__PURE__ */ jsx24("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
6797
7214
  ] })
6798
- ] }) : /* @__PURE__ */ jsx23("div", { className: "space-y-3", children: transactions.map((tx) => {
7215
+ ] }) : /* @__PURE__ */ jsx24("div", { className: "space-y-3", children: transactions.map((tx) => {
6799
7216
  const isIncoming = tx.to.hash.toLowerCase() === address?.toLowerCase();
6800
7217
  const displayAddress = isIncoming ? tx.from.hash : tx.to.hash;
6801
- return /* @__PURE__ */ jsxs15(
7218
+ return /* @__PURE__ */ jsxs16(
6802
7219
  "div",
6803
7220
  {
6804
7221
  className: `${isDark ? "bg-gray-800 hover:bg-gray-700" : "bg-gray-50 hover:bg-gray-100"} rounded-xl p-4 transition-colors cursor-pointer`,
6805
7222
  onClick: () => openInExplorer(tx.hash),
6806
7223
  children: [
6807
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between mb-2", children: [
6808
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
7224
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between mb-2", children: [
7225
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
6809
7226
  getTransactionIcon(tx.from.hash, tx.to.hash),
6810
- /* @__PURE__ */ jsx23("span", { className: `font-medium ${theme.titleText}`, children: isIncoming ? "Received" : "Sent" }),
7227
+ /* @__PURE__ */ jsx24("span", { className: `font-medium ${theme.titleText}`, children: isIncoming ? "Received" : "Sent" }),
6811
7228
  getStatusIcon(tx.status)
6812
7229
  ] }),
6813
- /* @__PURE__ */ jsx23("div", { className: `text-xs ${theme.mutedText}`, children: formatTime(tx.timestamp) })
7230
+ /* @__PURE__ */ jsx24("div", { className: `text-xs ${theme.mutedText}`, children: formatTime(tx.timestamp) })
6814
7231
  ] }),
6815
- /* @__PURE__ */ jsxs15("div", { className: "space-y-1 text-sm", children: [
6816
- /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
6817
- /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: isIncoming ? "From:" : "To:" }),
6818
- /* @__PURE__ */ jsxs15("span", { className: `font-mono ${theme.titleText}`, children: [
7232
+ /* @__PURE__ */ jsxs16("div", { className: "space-y-1 text-sm", children: [
7233
+ /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7234
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: isIncoming ? "From:" : "To:" }),
7235
+ /* @__PURE__ */ jsxs16("span", { className: `font-mono ${theme.titleText}`, children: [
6819
7236
  formatAddress(displayAddress),
6820
- (isIncoming ? tx.from.is_contract : tx.to.is_contract) && /* @__PURE__ */ jsx23("span", { className: `text-xs ${isDark ? "text-blue-400" : "text-blue-600"} ml-1`, children: "(Contract)" })
7237
+ (isIncoming ? tx.from.is_contract : tx.to.is_contract) && /* @__PURE__ */ jsx24("span", { className: `text-xs ${isDark ? "text-blue-400" : "text-blue-600"} ml-1`, children: "(Contract)" })
6821
7238
  ] })
6822
7239
  ] }),
6823
- /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
6824
- /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: "Value:" }),
6825
- /* @__PURE__ */ jsxs15("span", { className: `font-semibold ${theme.titleText}`, children: [
7240
+ /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7241
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Value:" }),
7242
+ /* @__PURE__ */ jsxs16("span", { className: `font-semibold ${theme.titleText}`, children: [
6826
7243
  formatValue(tx.value),
6827
7244
  " LUMIA"
6828
7245
  ] })
6829
7246
  ] }),
6830
- /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
6831
- /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: "Block:" }),
6832
- /* @__PURE__ */ jsxs15("span", { className: `font-mono ${theme.titleText}`, children: [
7247
+ /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7248
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Block:" }),
7249
+ /* @__PURE__ */ jsxs16("span", { className: `font-mono ${theme.titleText}`, children: [
6833
7250
  "#",
6834
7251
  tx.block_number
6835
7252
  ] })
6836
7253
  ] }),
6837
- tx.method && /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
6838
- /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: "Method:" }),
6839
- /* @__PURE__ */ jsx23("span", { className: `${isDark ? "text-blue-400" : "text-blue-600"} text-xs`, children: tx.method })
7254
+ tx.method && /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7255
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Method:" }),
7256
+ /* @__PURE__ */ jsx24("span", { className: `${isDark ? "text-blue-400" : "text-blue-600"} text-xs`, children: tx.method })
6840
7257
  ] }),
6841
- tx.transaction_types && tx.transaction_types.length > 0 && /* @__PURE__ */ jsx23("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx23(
7258
+ tx.transaction_types && tx.transaction_types.length > 0 && /* @__PURE__ */ jsx24("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx24(
6842
7259
  "span",
6843
7260
  {
6844
7261
  className: `text-xs ${isDark ? "bg-blue-900/30 text-blue-300" : "bg-blue-100 text-blue-800"} px-2 py-0.5 rounded-full`,
@@ -6852,7 +7269,7 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
6852
7269
  tx.hash
6853
7270
  );
6854
7271
  }) }) }),
6855
- transactions.length > 0 && /* @__PURE__ */ jsx23("div", { className: `p-5 border-t ${theme.divider}`, children: /* @__PURE__ */ jsxs15("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
7272
+ transactions.length > 0 && /* @__PURE__ */ jsx24("div", { className: `p-5 border-t ${theme.divider}`, children: /* @__PURE__ */ jsxs16("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
6856
7273
  "Total: ",
6857
7274
  transactions.length,
6858
7275
  " transaction",
@@ -6862,11 +7279,11 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
6862
7279
  };
6863
7280
 
6864
7281
  // src/internal/components/ViewAssetsModal.tsx
6865
- import React21 from "react";
7282
+ import React22 from "react";
6866
7283
 
6867
7284
  // src/modules/assets.ts
6868
7285
  init_base();
6869
- import React20 from "react";
7286
+ import React21 from "react";
6870
7287
  import { useBalance, useReadContract, useReadContracts } from "wagmi";
6871
7288
  import { formatUnits, erc20Abi } from "viem";
6872
7289
  var COMMON_TOKENS = [
@@ -7012,7 +7429,7 @@ function useTokenBalance(tokenAddress, userAddress) {
7012
7429
  }
7013
7430
  });
7014
7431
  const { tokenInfo } = useTokenInfo(tokenAddress);
7015
- const formattedBalance = React20.useMemo(() => {
7432
+ const formattedBalance = React21.useMemo(() => {
7016
7433
  if (!balance || !tokenInfo) return "0";
7017
7434
  return formatUnits(balance, tokenInfo.decimals);
7018
7435
  }, [balance, tokenInfo]);
@@ -7028,11 +7445,11 @@ function useTokenBalance(tokenAddress, userAddress) {
7028
7445
  // src/internal/components/ViewAssetsModal.tsx
7029
7446
  init_base();
7030
7447
  import { Gem, RefreshCw as RefreshCw4, Copy, ExternalLink as ExternalLink2, ArrowLeft as ArrowLeft6 } from "lucide-react";
7031
- import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
7448
+ import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
7032
7449
  var ViewAssetsModal = ({ open, onOpenChange, onBack }) => {
7033
7450
  const { address } = useLumiaSession();
7034
7451
  const { assets, refreshBalances, isLoading } = useAssets(address);
7035
- const [copied, setCopied] = React21.useState(null);
7452
+ const [copied, setCopied] = React22.useState(null);
7036
7453
  const { config } = useLumiaPassportConfig();
7037
7454
  const { isDark, classes: theme } = useTheme(config.ui.theme);
7038
7455
  const handleCopy = async (text, type) => {
@@ -7047,107 +7464,107 @@ var ViewAssetsModal = ({ open, onOpenChange, onBack }) => {
7047
7464
  const openInExplorer = (address2) => {
7048
7465
  window.open(`${LUMIA_EXPLORER_URL}/address/${address2}`, "_blank");
7049
7466
  };
7050
- return /* @__PURE__ */ jsx24(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs16(DialogContent, { className: `lumia-scope max-w-[400px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
7051
- /* @__PURE__ */ jsx24(VisuallyHidden, { children: /* @__PURE__ */ jsx24(DialogTitle, { children: "View Assets" }) }),
7052
- /* @__PURE__ */ jsx24(DialogDescription, { className: "sr-only", children: "View your token balances and assets" }),
7053
- /* @__PURE__ */ jsx24("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7054
- onBack && /* @__PURE__ */ jsx24(
7467
+ return /* @__PURE__ */ jsx25(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs17(DialogContent, { className: `lumia-scope max-w-[400px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
7468
+ /* @__PURE__ */ jsx25(VisuallyHidden, { children: /* @__PURE__ */ jsx25(DialogTitle, { children: "View Assets" }) }),
7469
+ /* @__PURE__ */ jsx25(DialogDescription, { className: "sr-only", children: "View your token balances and assets" }),
7470
+ /* @__PURE__ */ jsx25("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
7471
+ onBack && /* @__PURE__ */ jsx25(
7055
7472
  "button",
7056
7473
  {
7057
7474
  onClick: onBack,
7058
7475
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
7059
7476
  title: "Back",
7060
- children: /* @__PURE__ */ jsx24(ArrowLeft6, { className: "h-4 w-4" })
7477
+ children: /* @__PURE__ */ jsx25(ArrowLeft6, { className: "h-4 w-4" })
7061
7478
  }
7062
7479
  ),
7063
- /* @__PURE__ */ jsxs16("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7064
- /* @__PURE__ */ jsx24(Gem, { className: "h-5 w-5" }),
7065
- /* @__PURE__ */ jsx24("span", { children: "Your Assets" }),
7066
- /* @__PURE__ */ jsx24(
7480
+ /* @__PURE__ */ jsxs17("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7481
+ /* @__PURE__ */ jsx25(Gem, { className: "h-5 w-5" }),
7482
+ /* @__PURE__ */ jsx25("span", { children: "Your Assets" }),
7483
+ /* @__PURE__ */ jsx25(
7067
7484
  "button",
7068
7485
  {
7069
7486
  onClick: refreshBalances,
7070
7487
  disabled: isLoading,
7071
7488
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1`,
7072
7489
  title: "Refresh balances",
7073
- children: /* @__PURE__ */ jsx24(RefreshCw4, { className: `h-4 w-4 ${isLoading ? "animate-spin" : ""}` })
7490
+ children: /* @__PURE__ */ jsx25(RefreshCw4, { className: `h-4 w-4 ${isLoading ? "animate-spin" : ""}` })
7074
7491
  }
7075
7492
  )
7076
7493
  ] })
7077
7494
  ] }) }),
7078
- /* @__PURE__ */ jsx24("div", { className: "p-5 max-h-[60vh] overflow-y-auto", children: isLoading ? /* @__PURE__ */ jsx24("div", { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsx24("div", { className: `${theme.mutedText}`, children: "Loading assets..." }) }) : assets.length === 0 ? /* @__PURE__ */ jsxs16("div", { className: `flex flex-col items-center justify-center py-8 ${theme.mutedText}`, children: [
7079
- /* @__PURE__ */ jsx24(Gem, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
7080
- /* @__PURE__ */ jsx24("p", { children: "No assets found" })
7081
- ] }) : /* @__PURE__ */ jsx24("div", { className: "space-y-3", children: assets.map((asset, index) => /* @__PURE__ */ jsxs16("div", { className: `${isDark ? "bg-gray-800 hover:bg-gray-700" : "bg-gray-50 hover:bg-gray-100"} rounded-xl p-4 transition-colors`, children: [
7082
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between mb-2", children: [
7083
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-3", children: [
7084
- /* @__PURE__ */ jsx24("div", { className: "w-10 h-10 bg-gradient-to-br from-purple-500 to-blue-600 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx24("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) }) }),
7085
- /* @__PURE__ */ jsxs16("div", { children: [
7086
- /* @__PURE__ */ jsx24("div", { className: `font-medium ${theme.titleText}`, children: asset.name }),
7087
- /* @__PURE__ */ jsx24("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7495
+ /* @__PURE__ */ jsx25("div", { className: "p-5 max-h-[60vh] overflow-y-auto", children: isLoading ? /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsx25("div", { className: `${theme.mutedText}`, children: "Loading assets..." }) }) : assets.length === 0 ? /* @__PURE__ */ jsxs17("div", { className: `flex flex-col items-center justify-center py-8 ${theme.mutedText}`, children: [
7496
+ /* @__PURE__ */ jsx25(Gem, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
7497
+ /* @__PURE__ */ jsx25("p", { children: "No assets found" })
7498
+ ] }) : /* @__PURE__ */ jsx25("div", { className: "space-y-3", children: assets.map((asset, index) => /* @__PURE__ */ jsxs17("div", { className: `${isDark ? "bg-gray-800 hover:bg-gray-700" : "bg-gray-50 hover:bg-gray-100"} rounded-xl p-4 transition-colors`, children: [
7499
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between mb-2", children: [
7500
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-3", children: [
7501
+ /* @__PURE__ */ jsx25("div", { className: "w-10 h-10 bg-gradient-to-br from-purple-500 to-blue-600 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx25("span", { className: "text-white font-bold text-sm", children: asset.symbol.charAt(0) }) }),
7502
+ /* @__PURE__ */ jsxs17("div", { children: [
7503
+ /* @__PURE__ */ jsx25("div", { className: `font-medium ${theme.titleText}`, children: asset.name }),
7504
+ /* @__PURE__ */ jsx25("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7088
7505
  ] })
7089
7506
  ] }),
7090
- /* @__PURE__ */ jsxs16("div", { className: "text-right", children: [
7091
- /* @__PURE__ */ jsx24("div", { className: `font-mono ${theme.titleText}`, children: asset.formattedBalance }),
7092
- /* @__PURE__ */ jsx24("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7507
+ /* @__PURE__ */ jsxs17("div", { className: "text-right", children: [
7508
+ /* @__PURE__ */ jsx25("div", { className: `font-mono ${theme.titleText}`, children: asset.formattedBalance }),
7509
+ /* @__PURE__ */ jsx25("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7093
7510
  ] })
7094
7511
  ] }),
7095
- asset.address && /* @__PURE__ */ jsxs16("div", { className: `space-y-2 mt-3 pt-3 border-t ${theme.divider}`, children: [
7096
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between text-sm", children: [
7097
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Contract Address:" }),
7098
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7099
- /* @__PURE__ */ jsx24("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` }),
7100
- /* @__PURE__ */ jsx24(
7512
+ asset.address && /* @__PURE__ */ jsxs17("div", { className: `space-y-2 mt-3 pt-3 border-t ${theme.divider}`, children: [
7513
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-sm", children: [
7514
+ /* @__PURE__ */ jsx25("span", { className: `${theme.bodyText}`, children: "Contract Address:" }),
7515
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
7516
+ /* @__PURE__ */ jsx25("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` }),
7517
+ /* @__PURE__ */ jsx25(
7101
7518
  "button",
7102
7519
  {
7103
7520
  onClick: () => handleCopy(asset.address, "address"),
7104
7521
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7105
7522
  title: "Copy address",
7106
- children: copied === "address" ? /* @__PURE__ */ jsx24("span", { className: `${isDark ? "text-green-400" : "text-green-500"} text-xs`, children: "\u2713" }) : /* @__PURE__ */ jsx24(Copy, { className: "w-3 h-3" })
7523
+ children: copied === "address" ? /* @__PURE__ */ jsx25("span", { className: `${isDark ? "text-green-400" : "text-green-500"} text-xs`, children: "\u2713" }) : /* @__PURE__ */ jsx25(Copy, { className: "w-3 h-3" })
7107
7524
  }
7108
7525
  ),
7109
- /* @__PURE__ */ jsx24(
7526
+ /* @__PURE__ */ jsx25(
7110
7527
  "button",
7111
7528
  {
7112
7529
  onClick: () => openInExplorer(asset.address),
7113
7530
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7114
7531
  title: "View in explorer",
7115
- children: /* @__PURE__ */ jsx24(ExternalLink2, { className: "w-3 h-3" })
7532
+ children: /* @__PURE__ */ jsx25(ExternalLink2, { className: "w-3 h-3" })
7116
7533
  }
7117
7534
  )
7118
7535
  ] })
7119
7536
  ] }),
7120
- asset.decimals && /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between text-sm", children: [
7121
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Decimals:" }),
7122
- /* @__PURE__ */ jsx24("span", { className: `${theme.titleText}`, children: asset.decimals })
7537
+ asset.decimals && /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-sm", children: [
7538
+ /* @__PURE__ */ jsx25("span", { className: `${theme.bodyText}`, children: "Decimals:" }),
7539
+ /* @__PURE__ */ jsx25("span", { className: `${theme.titleText}`, children: asset.decimals })
7123
7540
  ] })
7124
7541
  ] }),
7125
- asset.type === "native" && address && /* @__PURE__ */ jsx24("div", { className: "mt-3 pt-3 border-t border-gray-200", children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between text-sm", children: [
7126
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Your Address:" }),
7127
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7128
- /* @__PURE__ */ jsx24("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${address.slice(0, 6)}...${address.slice(-4)}` }),
7129
- /* @__PURE__ */ jsx24(
7542
+ asset.type === "native" && address && /* @__PURE__ */ jsx25("div", { className: "mt-3 pt-3 border-t border-gray-200", children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-sm", children: [
7543
+ /* @__PURE__ */ jsx25("span", { className: `${theme.bodyText}`, children: "Your Address:" }),
7544
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
7545
+ /* @__PURE__ */ jsx25("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${address.slice(0, 6)}...${address.slice(-4)}` }),
7546
+ /* @__PURE__ */ jsx25(
7130
7547
  "button",
7131
7548
  {
7132
7549
  onClick: () => handleCopy(address, "wallet"),
7133
7550
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7134
7551
  title: "Copy wallet address",
7135
- children: copied === "wallet" ? /* @__PURE__ */ jsx24("span", { className: `${isDark ? "text-green-400" : "text-green-500"} text-xs`, children: "\u2713" }) : /* @__PURE__ */ jsx24(Copy, { className: "w-3 h-3" })
7552
+ children: copied === "wallet" ? /* @__PURE__ */ jsx25("span", { className: `${isDark ? "text-green-400" : "text-green-500"} text-xs`, children: "\u2713" }) : /* @__PURE__ */ jsx25(Copy, { className: "w-3 h-3" })
7136
7553
  }
7137
7554
  ),
7138
- /* @__PURE__ */ jsx24(
7555
+ /* @__PURE__ */ jsx25(
7139
7556
  "button",
7140
7557
  {
7141
7558
  onClick: () => openInExplorer(address),
7142
7559
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7143
7560
  title: "View in explorer",
7144
- children: /* @__PURE__ */ jsx24(ExternalLink2, { className: "w-3 h-3" })
7561
+ children: /* @__PURE__ */ jsx25(ExternalLink2, { className: "w-3 h-3" })
7145
7562
  }
7146
7563
  )
7147
7564
  ] })
7148
7565
  ] }) })
7149
7566
  ] }, `${asset.type}-${asset.address || "native"}-${index}`)) }) }),
7150
- assets.length > 0 && /* @__PURE__ */ jsx24("div", { className: `p-5 border-t ${theme.divider}`, children: /* @__PURE__ */ jsxs16("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
7567
+ assets.length > 0 && /* @__PURE__ */ jsx25("div", { className: `p-5 border-t ${theme.divider}`, children: /* @__PURE__ */ jsxs17("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
7151
7568
  "Total: ",
7152
7569
  assets.length,
7153
7570
  " asset",
@@ -7157,18 +7574,18 @@ var ViewAssetsModal = ({ open, onOpenChange, onBack }) => {
7157
7574
  };
7158
7575
 
7159
7576
  // src/internal/components/SendModal.tsx
7160
- import { useState as useState12, useEffect as useEffect9 } from "react";
7161
- import { Send, ArrowLeft as ArrowLeft7, Loader2, CheckCircle2 as CheckCircle26, AlertCircle as AlertCircle4 } from "lucide-react";
7577
+ import { useState as useState13, useEffect as useEffect10 } from "react";
7578
+ import { Send, ArrowLeft as ArrowLeft7, Loader2, CheckCircle2 as CheckCircle27, AlertCircle as AlertCircle5 } from "lucide-react";
7162
7579
 
7163
7580
  // src/hooks/useSendTransaction.ts
7164
- import { useState as useState9, useCallback as useCallback3 } from "react";
7581
+ import { useState as useState10, useCallback as useCallback4 } from "react";
7165
7582
  import { parseEther as parseEther2, isAddress } from "viem";
7166
7583
  function useSendTransaction() {
7167
7584
  const { session, address } = useLumiaSession();
7168
- const [isLoading, setIsLoading] = useState9(false);
7169
- const [error, setError] = useState9(null);
7170
- const [userOpHash, setUserOpHash] = useState9(null);
7171
- const sendTransaction = useCallback3(async (params) => {
7585
+ const [isLoading, setIsLoading] = useState10(false);
7586
+ const [error, setError] = useState10(null);
7587
+ const [userOpHash, setUserOpHash] = useState10(null);
7588
+ const sendTransaction = useCallback4(async (params) => {
7172
7589
  if (!session || !address) {
7173
7590
  setError("No active session");
7174
7591
  return null;
@@ -7205,7 +7622,7 @@ function useSendTransaction() {
7205
7622
  setIsLoading(false);
7206
7623
  }
7207
7624
  }, [session, address]);
7208
- const reset = useCallback3(() => {
7625
+ const reset = useCallback4(() => {
7209
7626
  setError(null);
7210
7627
  setUserOpHash(null);
7211
7628
  setIsLoading(false);
@@ -7224,8 +7641,8 @@ import { isAddress as isAddress2 } from "viem";
7224
7641
  import { useBalance as useBalance2 } from "wagmi";
7225
7642
 
7226
7643
  // src/internal/components/UserOpStatus.tsx
7227
- import * as React23 from "react";
7228
- import { AlertCircle as AlertCircle3, CheckCircle2 as CheckCircle25, Clock as Clock3, Copy as Copy3, ExternalLink as ExternalLink4, RefreshCw as RefreshCw5 } from "lucide-react";
7644
+ import * as React24 from "react";
7645
+ import { AlertCircle as AlertCircle4, CheckCircle2 as CheckCircle26, Clock as Clock3, Copy as Copy3, ExternalLink as ExternalLink4, RefreshCw as RefreshCw5 } from "lucide-react";
7229
7646
 
7230
7647
  // src/internal/components/ui/badge.tsx
7231
7648
  import { cva as cva2 } from "class-variance-authority";
@@ -7238,7 +7655,7 @@ function cn2(...inputs) {
7238
7655
  }
7239
7656
 
7240
7657
  // src/internal/components/ui/badge.tsx
7241
- import { jsx as jsx25 } from "react/jsx-runtime";
7658
+ import { jsx as jsx26 } from "react/jsx-runtime";
7242
7659
  var badgeVariants = cva2(
7243
7660
  "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
7244
7661
  {
@@ -7258,13 +7675,13 @@ var badgeVariants = cva2(
7258
7675
  }
7259
7676
  );
7260
7677
  function Badge({ className, variant, ...props }) {
7261
- return /* @__PURE__ */ jsx25("div", { className: cn2(badgeVariants({ variant }), className), ...props });
7678
+ return /* @__PURE__ */ jsx26("div", { className: cn2(badgeVariants({ variant }), className), ...props });
7262
7679
  }
7263
7680
 
7264
7681
  // src/internal/components/Address.tsx
7265
- import * as React22 from "react";
7682
+ import * as React23 from "react";
7266
7683
  import { Copy as Copy2, ExternalLink as ExternalLink3 } from "lucide-react";
7267
- import { jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
7684
+ import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
7268
7685
  function toExplorerAddressUrl(address, chain) {
7269
7686
  const base2 = chain?.blockExplorers?.default?.url;
7270
7687
  if (!base2) return null;
@@ -7285,12 +7702,12 @@ var Address = ({
7285
7702
  }) => {
7286
7703
  const addr = address || "";
7287
7704
  const explorer = toExplorerAddressUrl(addr, chain || void 0);
7288
- const [copied, setCopied] = React22.useState(false);
7289
- if (!addr) return /* @__PURE__ */ jsx26("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
7290
- return /* @__PURE__ */ jsxs17("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
7291
- label && /* @__PURE__ */ jsx26("span", { className: "text-sm font-medium", children: label }),
7292
- /* @__PURE__ */ jsx26("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
7293
- showCopy && /* @__PURE__ */ jsx26(
7705
+ const [copied, setCopied] = React23.useState(false);
7706
+ if (!addr) return /* @__PURE__ */ jsx27("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
7707
+ return /* @__PURE__ */ jsxs18("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
7708
+ label && /* @__PURE__ */ jsx27("span", { className: "text-sm font-medium", children: label }),
7709
+ /* @__PURE__ */ jsx27("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
7710
+ showCopy && /* @__PURE__ */ jsx27(
7294
7711
  Button,
7295
7712
  {
7296
7713
  variant: "ghost",
@@ -7304,10 +7721,10 @@ var Address = ({
7304
7721
  } catch {
7305
7722
  }
7306
7723
  },
7307
- children: /* @__PURE__ */ jsx26(Copy2, { className: "h-4 w-4" })
7724
+ children: /* @__PURE__ */ jsx27(Copy2, { className: "h-4 w-4" })
7308
7725
  }
7309
7726
  ),
7310
- showExplorer && explorer && /* @__PURE__ */ jsx26(
7727
+ showExplorer && explorer && /* @__PURE__ */ jsx27(
7311
7728
  "a",
7312
7729
  {
7313
7730
  href: explorer,
@@ -7315,7 +7732,7 @@ var Address = ({
7315
7732
  rel: "noreferrer noopener",
7316
7733
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
7317
7734
  title: "Open in explorer",
7318
- children: /* @__PURE__ */ jsx26(ExternalLink3, { className: "h-4 w-4" })
7735
+ children: /* @__PURE__ */ jsx27(ExternalLink3, { className: "h-4 w-4" })
7319
7736
  }
7320
7737
  )
7321
7738
  ] });
@@ -7323,7 +7740,7 @@ var Address = ({
7323
7740
 
7324
7741
  // src/internal/components/UserOpStatus.tsx
7325
7742
  init_base();
7326
- import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
7743
+ import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
7327
7744
  var UserOpStatus = ({
7328
7745
  userOpHash,
7329
7746
  chain,
@@ -7334,20 +7751,20 @@ var UserOpStatus = ({
7334
7751
  externalState
7335
7752
  }) => {
7336
7753
  const useExternalState = !!externalState;
7337
- const [internalReceipt, setInternalReceipt] = React23.useState(null);
7338
- const [internalMempool, setInternalMempool] = React23.useState(null);
7339
- const [internalError, setInternalError] = React23.useState(null);
7340
- const [attempt, setAttempt] = React23.useState(0);
7341
- const [internalRefreshing, setInternalRefreshing] = React23.useState(false);
7342
- const [timedOut, setTimedOut] = React23.useState(false);
7343
- const [rejected, setRejected] = React23.useState(false);
7344
- const intervalRef = React23.useRef(null);
7345
- const startTimeRef = React23.useRef(Date.now());
7754
+ const [internalReceipt, setInternalReceipt] = React24.useState(null);
7755
+ const [internalMempool, setInternalMempool] = React24.useState(null);
7756
+ const [internalError, setInternalError] = React24.useState(null);
7757
+ const [attempt, setAttempt] = React24.useState(0);
7758
+ const [internalRefreshing, setInternalRefreshing] = React24.useState(false);
7759
+ const [timedOut, setTimedOut] = React24.useState(false);
7760
+ const [rejected, setRejected] = React24.useState(false);
7761
+ const intervalRef = React24.useRef(null);
7762
+ const startTimeRef = React24.useRef(Date.now());
7346
7763
  const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
7347
7764
  const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
7348
7765
  const error = useExternalState ? externalState.error ?? null : internalError;
7349
7766
  const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
7350
- const rpc = React23.useCallback(async (method, params) => {
7767
+ const rpc = React24.useCallback(async (method, params) => {
7351
7768
  const body = { jsonrpc: "2.0", id: 1, method, params };
7352
7769
  const res = await fetch(getBundlerUrl(), {
7353
7770
  method: "POST",
@@ -7358,14 +7775,14 @@ var UserOpStatus = ({
7358
7775
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
7359
7776
  return json.result;
7360
7777
  }, []);
7361
- const extractMempoolInfo = React23.useCallback((m) => {
7778
+ const extractMempoolInfo = React24.useCallback((m) => {
7362
7779
  if (!m) return null;
7363
7780
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
7364
7781
  const sender = m.sender || m?.userOperation?.sender || null;
7365
7782
  if (!entryPoint && !sender) return null;
7366
7783
  return { entryPoint, sender };
7367
7784
  }, []);
7368
- const tick = React23.useCallback(async () => {
7785
+ const tick = React24.useCallback(async () => {
7369
7786
  if (useExternalState) return;
7370
7787
  const elapsed = Date.now() - startTimeRef.current;
7371
7788
  if (elapsed > maxPollTimeMs) {
@@ -7409,7 +7826,7 @@ var UserOpStatus = ({
7409
7826
  setAttempt((x) => x + 1);
7410
7827
  }
7411
7828
  }, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
7412
- React23.useEffect(() => {
7829
+ React24.useEffect(() => {
7413
7830
  if (useExternalState) return;
7414
7831
  console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
7415
7832
  startTimeRef.current = Date.now();
@@ -7421,7 +7838,7 @@ var UserOpStatus = ({
7421
7838
  setAttempt(0);
7422
7839
  setInternalRefreshing(false);
7423
7840
  }, [userOpHash, useExternalState]);
7424
- React23.useEffect(() => {
7841
+ React24.useEffect(() => {
7425
7842
  if (useExternalState) {
7426
7843
  console.log("[UserOpStatus] Using external state, skipping internal polling");
7427
7844
  return;
@@ -7456,54 +7873,54 @@ var UserOpStatus = ({
7456
7873
  const stateBadge = () => {
7457
7874
  if (receipt) {
7458
7875
  const ok = !!receipt.success;
7459
- return /* @__PURE__ */ jsxs18(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
7460
- ok ? /* @__PURE__ */ jsx27(CheckCircle25, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-3 w-3" }),
7876
+ return /* @__PURE__ */ jsxs19(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
7877
+ ok ? /* @__PURE__ */ jsx28(CheckCircle26, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-3 w-3" }),
7461
7878
  ok ? "Included" : "Failed"
7462
7879
  ] });
7463
7880
  }
7464
7881
  if (rejected) {
7465
- return /* @__PURE__ */ jsxs18(Badge, { variant: "destructive", className: "gap-1", children: [
7466
- /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-3 w-3" }),
7882
+ return /* @__PURE__ */ jsxs19(Badge, { variant: "destructive", className: "gap-1", children: [
7883
+ /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-3 w-3" }),
7467
7884
  " Rejected by bundler"
7468
7885
  ] });
7469
7886
  }
7470
7887
  if (timedOut) {
7471
- return /* @__PURE__ */ jsxs18(Badge, { variant: "warning", className: "gap-1", children: [
7472
- /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-3 w-3" }),
7888
+ return /* @__PURE__ */ jsxs19(Badge, { variant: "warning", className: "gap-1", children: [
7889
+ /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-3 w-3" }),
7473
7890
  " Timeout - may be rejected"
7474
7891
  ] });
7475
7892
  }
7476
7893
  if (mempool) {
7477
- return /* @__PURE__ */ jsxs18(Badge, { variant: "outline", className: "gap-1", children: [
7478
- /* @__PURE__ */ jsx27(Clock3, { className: "h-3 w-3" }),
7894
+ return /* @__PURE__ */ jsxs19(Badge, { variant: "outline", className: "gap-1", children: [
7895
+ /* @__PURE__ */ jsx28(Clock3, { className: "h-3 w-3" }),
7479
7896
  " Pending in bundler"
7480
7897
  ] });
7481
7898
  }
7482
- return /* @__PURE__ */ jsxs18(Badge, { variant: "secondary", className: "gap-1", children: [
7483
- /* @__PURE__ */ jsx27(Clock3, { className: "h-3 w-3" }),
7899
+ return /* @__PURE__ */ jsxs19(Badge, { variant: "secondary", className: "gap-1", children: [
7900
+ /* @__PURE__ */ jsx28(Clock3, { className: "h-3 w-3" }),
7484
7901
  " Waiting"
7485
7902
  ] });
7486
7903
  };
7487
- return /* @__PURE__ */ jsxs18(
7904
+ return /* @__PURE__ */ jsxs19(
7488
7905
  "div",
7489
7906
  {
7490
7907
  className: cn2("lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]", className),
7491
7908
  style: { textAlign: "left", listStyle: "none" },
7492
7909
  children: [
7493
- /* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between mb-3", children: [
7494
- /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
7910
+ /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between mb-3", children: [
7911
+ /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
7495
7912
  stateBadge(),
7496
- /* @__PURE__ */ jsx27("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
7913
+ /* @__PURE__ */ jsx28("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
7497
7914
  ] }),
7498
- /* @__PURE__ */ jsxs18(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
7499
- /* @__PURE__ */ jsx27(RefreshCw5, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
7500
- /* @__PURE__ */ jsx27("span", { className: "text-xs", children: "Refresh" })
7915
+ /* @__PURE__ */ jsxs19(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
7916
+ /* @__PURE__ */ jsx28(RefreshCw5, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
7917
+ /* @__PURE__ */ jsx28("span", { className: "text-xs", children: "Refresh" })
7501
7918
  ] })
7502
7919
  ] }),
7503
- /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 mb-2", children: [
7504
- /* @__PURE__ */ jsx27("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
7505
- /* @__PURE__ */ jsx27("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
7506
- /* @__PURE__ */ jsx27(
7920
+ /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2 mb-2", children: [
7921
+ /* @__PURE__ */ jsx28("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
7922
+ /* @__PURE__ */ jsx28("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
7923
+ /* @__PURE__ */ jsx28(
7507
7924
  Button,
7508
7925
  {
7509
7926
  variant: "ghost",
@@ -7515,14 +7932,14 @@ var UserOpStatus = ({
7515
7932
  } catch {
7516
7933
  }
7517
7934
  },
7518
- children: /* @__PURE__ */ jsx27(Copy3, { className: "h-3.5 w-3.5" })
7935
+ children: /* @__PURE__ */ jsx28(Copy3, { className: "h-3.5 w-3.5" })
7519
7936
  }
7520
7937
  )
7521
7938
  ] }),
7522
- receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 mb-3", children: [
7523
- /* @__PURE__ */ jsx27("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
7524
- /* @__PURE__ */ jsx27("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
7525
- /* @__PURE__ */ jsx27(
7939
+ receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2 mb-3", children: [
7940
+ /* @__PURE__ */ jsx28("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
7941
+ /* @__PURE__ */ jsx28("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
7942
+ /* @__PURE__ */ jsx28(
7526
7943
  Button,
7527
7944
  {
7528
7945
  variant: "ghost",
@@ -7534,10 +7951,10 @@ var UserOpStatus = ({
7534
7951
  } catch {
7535
7952
  }
7536
7953
  },
7537
- children: /* @__PURE__ */ jsx27(Copy3, { className: "h-3.5 w-3.5" })
7954
+ children: /* @__PURE__ */ jsx28(Copy3, { className: "h-3.5 w-3.5" })
7538
7955
  }
7539
7956
  ),
7540
- chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx27(
7957
+ chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx28(
7541
7958
  "a",
7542
7959
  {
7543
7960
  href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
@@ -7545,11 +7962,11 @@ var UserOpStatus = ({
7545
7962
  rel: "noreferrer noopener",
7546
7963
  className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
7547
7964
  title: "Open in explorer",
7548
- children: /* @__PURE__ */ jsx27(ExternalLink4, { className: "h-3.5 w-3.5" })
7965
+ children: /* @__PURE__ */ jsx28(ExternalLink4, { className: "h-3.5 w-3.5" })
7549
7966
  }
7550
7967
  )
7551
7968
  ] }),
7552
- receipt && /* @__PURE__ */ jsxs18("div", { className: "text-xs text-muted-foreground mb-3", children: [
7969
+ receipt && /* @__PURE__ */ jsxs19("div", { className: "text-xs text-muted-foreground mb-3", children: [
7553
7970
  "Block ",
7554
7971
  parseInt(receipt.receipt?.blockNumber || "0x0", 16),
7555
7972
  " \u2022 Gas Used",
@@ -7558,32 +7975,32 @@ var UserOpStatus = ({
7558
7975
  " \u2022 Success ",
7559
7976
  String(!!receipt.success)
7560
7977
  ] }),
7561
- /* @__PURE__ */ jsx27("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs18("span", { className: "ml-2", children: [
7978
+ /* @__PURE__ */ jsx28("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs19("span", { className: "ml-2", children: [
7562
7979
  "\u2022 Polling for ",
7563
7980
  Math.round((Date.now() - startTimeRef.current) / 1e3),
7564
7981
  "s"
7565
7982
  ] }) }),
7566
- mempool && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
7567
- /* @__PURE__ */ jsxs18("div", { children: [
7983
+ mempool && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
7984
+ /* @__PURE__ */ jsxs19("div", { children: [
7568
7985
  "Seen by bundler at ",
7569
- /* @__PURE__ */ jsx27(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
7986
+ /* @__PURE__ */ jsx28(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
7570
7987
  ] }),
7571
- /* @__PURE__ */ jsxs18("div", { children: [
7988
+ /* @__PURE__ */ jsxs19("div", { children: [
7572
7989
  "sender ",
7573
- /* @__PURE__ */ jsx27(Address, { address: mempool.sender, chain, truncate: false })
7990
+ /* @__PURE__ */ jsx28(Address, { address: mempool.sender, chain, truncate: false })
7574
7991
  ] })
7575
7992
  ] }),
7576
- error && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7577
- /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-4 w-4" }),
7993
+ error && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7994
+ /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7578
7995
  " ",
7579
7996
  error
7580
7997
  ] }),
7581
- rejected && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7582
- /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-4 w-4" }),
7998
+ rejected && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7999
+ /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7583
8000
  "UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
7584
8001
  ] }),
7585
- timedOut && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7586
- /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-4 w-4" }),
8002
+ timedOut && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
8003
+ /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7587
8004
  "Stopped polling after ",
7588
8005
  Math.round(maxPollTimeMs / 1e3),
7589
8006
  "s. UserOperation may have been rejected by the bundler."
@@ -7595,7 +8012,7 @@ var UserOpStatus = ({
7595
8012
 
7596
8013
  // src/internal/components/SendModal.tsx
7597
8014
  init_base();
7598
- import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
8015
+ import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
7599
8016
  var SendModal = ({
7600
8017
  open,
7601
8018
  onOpenChange,
@@ -7612,13 +8029,13 @@ var SendModal = ({
7612
8029
  address,
7613
8030
  chainId: lumiaBeam.id
7614
8031
  });
7615
- const [recipient, setRecipient] = useState12(initialRecipient);
7616
- const [amount, setAmount] = useState12(initialAmount);
7617
- const [txStep, setTxStep] = useState12("input");
7618
- const [validationError, setValidationError] = useState12(null);
8032
+ const [recipient, setRecipient] = useState13(initialRecipient);
8033
+ const [amount, setAmount] = useState13(initialAmount);
8034
+ const [txStep, setTxStep] = useState13("input");
8035
+ const [validationError, setValidationError] = useState13(null);
7619
8036
  const nativeAsset = assets.find((a) => a.type === "native");
7620
8037
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
7621
- useEffect9(() => {
8038
+ useEffect10(() => {
7622
8039
  if (open) {
7623
8040
  setTxStep("input");
7624
8041
  setValidationError(null);
@@ -7678,7 +8095,7 @@ var SendModal = ({
7678
8095
  const maxAmount = Math.max(0, balance - 1e-3);
7679
8096
  setAmount(maxAmount.toFixed(6));
7680
8097
  };
7681
- return /* @__PURE__ */ jsx28(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs19(
8098
+ return /* @__PURE__ */ jsx29(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs20(
7682
8099
  DialogContent,
7683
8100
  {
7684
8101
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -7690,28 +8107,28 @@ var SendModal = ({
7690
8107
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
7691
8108
  },
7692
8109
  children: [
7693
- /* @__PURE__ */ jsx28(VisuallyHidden, { children: /* @__PURE__ */ jsx28(DialogTitle, { children: "Send Transaction" }) }),
7694
- /* @__PURE__ */ jsx28(DialogDescription, { className: "sr-only", children: "Send LUMIA tokens to another address" }),
7695
- /* @__PURE__ */ jsx28("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
7696
- onBack && txStep === "input" && /* @__PURE__ */ jsx28(
8110
+ /* @__PURE__ */ jsx29(VisuallyHidden, { children: /* @__PURE__ */ jsx29(DialogTitle, { children: "Send Transaction" }) }),
8111
+ /* @__PURE__ */ jsx29(DialogDescription, { className: "sr-only", children: "Send LUMIA tokens to another address" }),
8112
+ /* @__PURE__ */ jsx29("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
8113
+ onBack && txStep === "input" && /* @__PURE__ */ jsx29(
7697
8114
  "button",
7698
8115
  {
7699
8116
  onClick: onBack,
7700
8117
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
7701
8118
  title: "Back",
7702
- children: /* @__PURE__ */ jsx28(ArrowLeft7, { className: "h-4 w-4" })
8119
+ children: /* @__PURE__ */ jsx29(ArrowLeft7, { className: "h-4 w-4" })
7703
8120
  }
7704
8121
  ),
7705
- /* @__PURE__ */ jsxs19("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7706
- /* @__PURE__ */ jsx28(Send, { className: "h-5 w-5" }),
7707
- /* @__PURE__ */ jsx28("span", { children: "Send LUMIA" })
8122
+ /* @__PURE__ */ jsxs20("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8123
+ /* @__PURE__ */ jsx29(Send, { className: "h-5 w-5" }),
8124
+ /* @__PURE__ */ jsx29("span", { children: "Send LUMIA" })
7708
8125
  ] })
7709
8126
  ] }) }),
7710
- /* @__PURE__ */ jsxs19("div", { className: "p-5", children: [
7711
- txStep === "input" && /* @__PURE__ */ jsxs19("div", { className: "space-y-4", children: [
7712
- /* @__PURE__ */ jsxs19("div", { children: [
7713
- /* @__PURE__ */ jsx28("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Recipient Address" }),
7714
- /* @__PURE__ */ jsx28(
8127
+ /* @__PURE__ */ jsxs20("div", { className: "p-5", children: [
8128
+ txStep === "input" && /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
8129
+ /* @__PURE__ */ jsxs20("div", { children: [
8130
+ /* @__PURE__ */ jsx29("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Recipient Address" }),
8131
+ /* @__PURE__ */ jsx29(
7715
8132
  "input",
7716
8133
  {
7717
8134
  type: "text",
@@ -7722,17 +8139,17 @@ var SendModal = ({
7722
8139
  }
7723
8140
  )
7724
8141
  ] }),
7725
- /* @__PURE__ */ jsxs19("div", { children: [
7726
- /* @__PURE__ */ jsxs19("div", { className: "flex justify-between items-center mb-2", children: [
7727
- /* @__PURE__ */ jsx28("label", { className: `text-sm font-medium ${theme.bodyText}`, children: "Amount" }),
7728
- /* @__PURE__ */ jsxs19("div", { className: `text-sm ${theme.mutedText}`, children: [
8142
+ /* @__PURE__ */ jsxs20("div", { children: [
8143
+ /* @__PURE__ */ jsxs20("div", { className: "flex justify-between items-center mb-2", children: [
8144
+ /* @__PURE__ */ jsx29("label", { className: `text-sm font-medium ${theme.bodyText}`, children: "Amount" }),
8145
+ /* @__PURE__ */ jsxs20("div", { className: `text-sm ${theme.mutedText}`, children: [
7729
8146
  "Balance: ",
7730
8147
  balance.toFixed(4),
7731
8148
  " LUMIA"
7732
8149
  ] })
7733
8150
  ] }),
7734
- /* @__PURE__ */ jsxs19("div", { className: "relative", children: [
7735
- /* @__PURE__ */ jsx28(
8151
+ /* @__PURE__ */ jsxs20("div", { className: "relative", children: [
8152
+ /* @__PURE__ */ jsx29(
7736
8153
  "input",
7737
8154
  {
7738
8155
  type: "number",
@@ -7743,7 +8160,7 @@ var SendModal = ({
7743
8160
  className: `w-full px-3 py-2 pr-16 border ${isDark ? "bg-gray-800 border-gray-600 text-white placeholder:text-gray-400" : "bg-white border-gray-300 text-gray-900 placeholder:text-gray-400"} rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500`
7744
8161
  }
7745
8162
  ),
7746
- /* @__PURE__ */ jsx28(
8163
+ /* @__PURE__ */ jsx29(
7747
8164
  "button",
7748
8165
  {
7749
8166
  onClick: handleMaxAmount,
@@ -7753,11 +8170,11 @@ var SendModal = ({
7753
8170
  )
7754
8171
  ] })
7755
8172
  ] }),
7756
- (validationError || error) && /* @__PURE__ */ jsxs19("div", { className: `flex items-center gap-2 p-3 ${isDark ? "bg-red-900/30 text-red-400" : "bg-red-50 text-red-700"} rounded-lg`, children: [
7757
- /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7758
- /* @__PURE__ */ jsx28("span", { className: "text-sm", children: validationError || error })
8173
+ (validationError || error) && /* @__PURE__ */ jsxs20("div", { className: `flex items-center gap-2 p-3 ${isDark ? "bg-red-900/30 text-red-400" : "bg-red-50 text-red-700"} rounded-lg`, children: [
8174
+ /* @__PURE__ */ jsx29(AlertCircle5, { className: "h-4 w-4" }),
8175
+ /* @__PURE__ */ jsx29("span", { className: "text-sm", children: validationError || error })
7759
8176
  ] }),
7760
- /* @__PURE__ */ jsx28(
8177
+ /* @__PURE__ */ jsx29(
7761
8178
  Button,
7762
8179
  {
7763
8180
  onClick: handleSend,
@@ -7768,29 +8185,29 @@ var SendModal = ({
7768
8185
  }
7769
8186
  )
7770
8187
  ] }),
7771
- txStep === "confirm" && /* @__PURE__ */ jsxs19("div", { className: "space-y-4", children: [
7772
- /* @__PURE__ */ jsxs19("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
7773
- /* @__PURE__ */ jsx28("h3", { className: `font-medium ${theme.titleText} mb-3`, children: "Transaction Details" }),
7774
- /* @__PURE__ */ jsxs19("div", { className: "space-y-2 text-sm", children: [
7775
- /* @__PURE__ */ jsxs19("div", { className: "flex justify-between", children: [
7776
- /* @__PURE__ */ jsx28("span", { className: `${theme.bodyText}`, children: "To:" }),
7777
- /* @__PURE__ */ jsx28("span", { className: `font-mono ${theme.titleText}`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
8188
+ txStep === "confirm" && /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
8189
+ /* @__PURE__ */ jsxs20("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
8190
+ /* @__PURE__ */ jsx29("h3", { className: `font-medium ${theme.titleText} mb-3`, children: "Transaction Details" }),
8191
+ /* @__PURE__ */ jsxs20("div", { className: "space-y-2 text-sm", children: [
8192
+ /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
8193
+ /* @__PURE__ */ jsx29("span", { className: `${theme.bodyText}`, children: "To:" }),
8194
+ /* @__PURE__ */ jsx29("span", { className: `font-mono ${theme.titleText}`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
7778
8195
  ] }),
7779
- /* @__PURE__ */ jsxs19("div", { className: "flex justify-between", children: [
7780
- /* @__PURE__ */ jsx28("span", { className: `${theme.bodyText}`, children: "Amount:" }),
7781
- /* @__PURE__ */ jsxs19("span", { className: `font-semibold ${theme.titleText}`, children: [
8196
+ /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
8197
+ /* @__PURE__ */ jsx29("span", { className: `${theme.bodyText}`, children: "Amount:" }),
8198
+ /* @__PURE__ */ jsxs20("span", { className: `font-semibold ${theme.titleText}`, children: [
7782
8199
  amount,
7783
8200
  " LUMIA"
7784
8201
  ] })
7785
8202
  ] }),
7786
- /* @__PURE__ */ jsxs19("div", { className: "flex justify-between", children: [
7787
- /* @__PURE__ */ jsx28("span", { className: `${theme.bodyText}`, children: "Network:" }),
7788
- /* @__PURE__ */ jsx28("span", { className: `${theme.titleText}`, children: "Lumia Beam" })
8203
+ /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
8204
+ /* @__PURE__ */ jsx29("span", { className: `${theme.bodyText}`, children: "Network:" }),
8205
+ /* @__PURE__ */ jsx29("span", { className: `${theme.titleText}`, children: "Lumia Beam" })
7789
8206
  ] })
7790
8207
  ] })
7791
8208
  ] }),
7792
- /* @__PURE__ */ jsxs19("div", { className: "flex gap-2", children: [
7793
- /* @__PURE__ */ jsx28(
8209
+ /* @__PURE__ */ jsxs20("div", { className: "flex gap-2", children: [
8210
+ /* @__PURE__ */ jsx29(
7794
8211
  Button,
7795
8212
  {
7796
8213
  onClick: () => setTxStep("input"),
@@ -7800,7 +8217,7 @@ var SendModal = ({
7800
8217
  children: "Back"
7801
8218
  }
7802
8219
  ),
7803
- /* @__PURE__ */ jsxs19(
8220
+ /* @__PURE__ */ jsxs20(
7804
8221
  Button,
7805
8222
  {
7806
8223
  onClick: handleConfirm,
@@ -7808,28 +8225,28 @@ var SendModal = ({
7808
8225
  className: "flex-1",
7809
8226
  size: "lg",
7810
8227
  children: [
7811
- isLoading && /* @__PURE__ */ jsx28(Loader2, { className: "h-4 w-4 animate-spin" }),
8228
+ isLoading && /* @__PURE__ */ jsx29(Loader2, { className: "h-4 w-4 animate-spin" }),
7812
8229
  "Confirm"
7813
8230
  ]
7814
8231
  }
7815
8232
  )
7816
8233
  ] })
7817
8234
  ] }),
7818
- txStep === "pending" && /* @__PURE__ */ jsxs19("div", { className: "py-8 text-center space-y-4", children: [
7819
- /* @__PURE__ */ jsx28(Loader2, { className: `h-12 w-12 animate-spin ${isDark ? "text-blue-400" : "text-blue-600"} mx-auto` }),
7820
- /* @__PURE__ */ jsxs19("div", { children: [
7821
- /* @__PURE__ */ jsx28("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Pending" }),
7822
- /* @__PURE__ */ jsx28("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Please wait while we process your transaction" })
8235
+ txStep === "pending" && /* @__PURE__ */ jsxs20("div", { className: "py-8 text-center space-y-4", children: [
8236
+ /* @__PURE__ */ jsx29(Loader2, { className: `h-12 w-12 animate-spin ${isDark ? "text-blue-400" : "text-blue-600"} mx-auto` }),
8237
+ /* @__PURE__ */ jsxs20("div", { children: [
8238
+ /* @__PURE__ */ jsx29("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Pending" }),
8239
+ /* @__PURE__ */ jsx29("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Please wait while we process your transaction" })
7823
8240
  ] })
7824
8241
  ] }),
7825
- txStep === "success" && userOpHash && /* @__PURE__ */ jsxs19("div", { className: "space-y-4", children: [
7826
- /* @__PURE__ */ jsxs19("div", { className: "text-center py-4", children: [
7827
- /* @__PURE__ */ jsx28(CheckCircle26, { className: `h-12 w-12 ${isDark ? "text-green-400" : "text-green-500"} mx-auto mb-3` }),
7828
- /* @__PURE__ */ jsx28("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Sent!" }),
7829
- /* @__PURE__ */ jsx28("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Your transaction is being processed" })
8242
+ txStep === "success" && userOpHash && /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
8243
+ /* @__PURE__ */ jsxs20("div", { className: "text-center py-4", children: [
8244
+ /* @__PURE__ */ jsx29(CheckCircle27, { className: `h-12 w-12 ${isDark ? "text-green-400" : "text-green-500"} mx-auto mb-3` }),
8245
+ /* @__PURE__ */ jsx29("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Sent!" }),
8246
+ /* @__PURE__ */ jsx29("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Your transaction is being processed" })
7830
8247
  ] }),
7831
- /* @__PURE__ */ jsx28("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: /* @__PURE__ */ jsx28(UserOpStatus, { userOpHash, chain: lumiaBeam }) }),
7832
- /* @__PURE__ */ jsx28(
8248
+ /* @__PURE__ */ jsx29("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: /* @__PURE__ */ jsx29(UserOpStatus, { userOpHash, chain: lumiaBeam }) }),
8249
+ /* @__PURE__ */ jsx29(
7833
8250
  Button,
7834
8251
  {
7835
8252
  onClick: handleClose,
@@ -7846,21 +8263,21 @@ var SendModal = ({
7846
8263
  };
7847
8264
 
7848
8265
  // src/internal/components/ReceiveModal.tsx
7849
- import { useState as useState13, useEffect as useEffect10 } from "react";
7850
- import { QrCode, Copy as Copy4, ArrowLeft as ArrowLeft8, CheckCircle2 as CheckCircle27 } from "lucide-react";
8266
+ import { useState as useState14, useEffect as useEffect11 } from "react";
8267
+ import { QrCode, Copy as Copy4, ArrowLeft as ArrowLeft8, CheckCircle2 as CheckCircle28 } from "lucide-react";
7851
8268
  import QRCode from "qrcode";
7852
- import { Fragment as Fragment6, jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
8269
+ import { Fragment as Fragment7, jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
7853
8270
  var ReceiveModal = ({
7854
8271
  open,
7855
8272
  onOpenChange,
7856
8273
  onBack
7857
8274
  }) => {
7858
8275
  const { address } = useLumiaSession();
7859
- const [qrCodeUrl, setQrCodeUrl] = useState13("");
8276
+ const [qrCodeUrl, setQrCodeUrl] = useState14("");
7860
8277
  const { config } = useLumiaPassportConfig();
7861
8278
  const { isDark, classes: theme } = useTheme(config.ui.theme);
7862
- const [copied, setCopied] = useState13(false);
7863
- useEffect10(() => {
8279
+ const [copied, setCopied] = useState14(false);
8280
+ useEffect11(() => {
7864
8281
  if (open && address) {
7865
8282
  QRCode.toDataURL(address, {
7866
8283
  width: 200,
@@ -7890,7 +8307,7 @@ var ReceiveModal = ({
7890
8307
  if (!addr) return "";
7891
8308
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
7892
8309
  };
7893
- return /* @__PURE__ */ jsx29(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs20(
8310
+ return /* @__PURE__ */ jsx30(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs21(
7894
8311
  DialogContent,
7895
8312
  {
7896
8313
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -7902,51 +8319,51 @@ var ReceiveModal = ({
7902
8319
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
7903
8320
  },
7904
8321
  children: [
7905
- /* @__PURE__ */ jsx29(VisuallyHidden, { children: /* @__PURE__ */ jsx29(DialogTitle, { children: "Receive LUMIA" }) }),
7906
- /* @__PURE__ */ jsx29(DialogDescription, { className: "sr-only", children: "Your wallet address and QR code for receiving LUMIA" }),
7907
- /* @__PURE__ */ jsx29("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
7908
- onBack && /* @__PURE__ */ jsx29(
8322
+ /* @__PURE__ */ jsx30(VisuallyHidden, { children: /* @__PURE__ */ jsx30(DialogTitle, { children: "Receive LUMIA" }) }),
8323
+ /* @__PURE__ */ jsx30(DialogDescription, { className: "sr-only", children: "Your wallet address and QR code for receiving LUMIA" }),
8324
+ /* @__PURE__ */ jsx30("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2", children: [
8325
+ onBack && /* @__PURE__ */ jsx30(
7909
8326
  "button",
7910
8327
  {
7911
8328
  onClick: onBack,
7912
8329
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
7913
8330
  title: "Back",
7914
- children: /* @__PURE__ */ jsx29(ArrowLeft8, { className: "h-4 w-4" })
8331
+ children: /* @__PURE__ */ jsx30(ArrowLeft8, { className: "h-4 w-4" })
7915
8332
  }
7916
8333
  ),
7917
- /* @__PURE__ */ jsxs20("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7918
- /* @__PURE__ */ jsx29(QrCode, { className: "h-5 w-5" }),
7919
- /* @__PURE__ */ jsx29("span", { children: "Receive LUMIA" })
8334
+ /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8335
+ /* @__PURE__ */ jsx30(QrCode, { className: "h-5 w-5" }),
8336
+ /* @__PURE__ */ jsx30("span", { children: "Receive LUMIA" })
7920
8337
  ] })
7921
8338
  ] }) }),
7922
- /* @__PURE__ */ jsxs20("div", { className: "p-5 space-y-4", children: [
7923
- qrCodeUrl && /* @__PURE__ */ jsx29("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx29("div", { className: `${isDark ? "bg-white" : "bg-white"} p-4 rounded-xl border ${theme.divider}`, children: /* @__PURE__ */ jsx29("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) }) }),
7924
- /* @__PURE__ */ jsx29("div", { className: `${isDark ? "bg-blue-900/30 border-blue-600" : "bg-blue-50 border-blue-200"} rounded-lg p-3`, children: /* @__PURE__ */ jsx29("div", { className: `flex items-center gap-2 ${isDark ? "text-blue-300" : "text-blue-700"} text-sm`, children: /* @__PURE__ */ jsxs20("div", { className: "flex-1", children: [
7925
- /* @__PURE__ */ jsx29("p", { className: "font-medium", children: "Network: Lumia Beam" }),
7926
- /* @__PURE__ */ jsx29("p", { className: `text-xs ${isDark ? "text-blue-400" : "text-blue-600"} mt-0.5`, children: "Ensure sender is on the same network" })
8339
+ /* @__PURE__ */ jsxs21("div", { className: "p-5 space-y-4", children: [
8340
+ qrCodeUrl && /* @__PURE__ */ jsx30("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx30("div", { className: `${isDark ? "bg-white" : "bg-white"} p-4 rounded-xl border ${theme.divider}`, children: /* @__PURE__ */ jsx30("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) }) }),
8341
+ /* @__PURE__ */ jsx30("div", { className: `${isDark ? "bg-blue-900/30 border-blue-600" : "bg-blue-50 border-blue-200"} rounded-lg p-3`, children: /* @__PURE__ */ jsx30("div", { className: `flex items-center gap-2 ${isDark ? "text-blue-300" : "text-blue-700"} text-sm`, children: /* @__PURE__ */ jsxs21("div", { className: "flex-1", children: [
8342
+ /* @__PURE__ */ jsx30("p", { className: "font-medium", children: "Network: Lumia Beam" }),
8343
+ /* @__PURE__ */ jsx30("p", { className: `text-xs ${isDark ? "text-blue-400" : "text-blue-600"} mt-0.5`, children: "Ensure sender is on the same network" })
7927
8344
  ] }) }) }),
7928
- /* @__PURE__ */ jsxs20("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
7929
- /* @__PURE__ */ jsx29("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Your Wallet Address" }),
7930
- /* @__PURE__ */ jsx29("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx29("div", { className: `flex-1 font-mono text-sm ${isDark ? "text-white bg-gray-700 border-gray-600" : "text-gray-900 bg-white border-gray-300"} rounded-lg px-3 py-2 break-all`, children: address }) }),
7931
- /* @__PURE__ */ jsx29(
8345
+ /* @__PURE__ */ jsxs21("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
8346
+ /* @__PURE__ */ jsx30("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Your Wallet Address" }),
8347
+ /* @__PURE__ */ jsx30("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx30("div", { className: `flex-1 font-mono text-sm ${isDark ? "text-white bg-gray-700 border-gray-600" : "text-gray-900 bg-white border-gray-300"} rounded-lg px-3 py-2 break-all`, children: address }) }),
8348
+ /* @__PURE__ */ jsx30(
7932
8349
  Button,
7933
8350
  {
7934
8351
  onClick: handleCopy,
7935
8352
  className: "w-full mt-3",
7936
8353
  size: "lg",
7937
- children: copied ? /* @__PURE__ */ jsxs20(Fragment6, { children: [
7938
- /* @__PURE__ */ jsx29(CheckCircle27, { className: "h-4 w-4" }),
7939
- /* @__PURE__ */ jsx29("span", { children: "Copied!" })
7940
- ] }) : /* @__PURE__ */ jsxs20(Fragment6, { children: [
7941
- /* @__PURE__ */ jsx29(Copy4, { className: "h-4 w-4" }),
7942
- /* @__PURE__ */ jsx29("span", { children: "Copy Address" })
8354
+ children: copied ? /* @__PURE__ */ jsxs21(Fragment7, { children: [
8355
+ /* @__PURE__ */ jsx30(CheckCircle28, { className: "h-4 w-4" }),
8356
+ /* @__PURE__ */ jsx30("span", { children: "Copied!" })
8357
+ ] }) : /* @__PURE__ */ jsxs21(Fragment7, { children: [
8358
+ /* @__PURE__ */ jsx30(Copy4, { className: "h-4 w-4" }),
8359
+ /* @__PURE__ */ jsx30("span", { children: "Copy Address" })
7943
8360
  ] })
7944
8361
  }
7945
8362
  )
7946
8363
  ] }),
7947
- /* @__PURE__ */ jsxs20("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
7948
- /* @__PURE__ */ jsx29("p", { children: "Share this address to receive LUMIA tokens." }),
7949
- /* @__PURE__ */ jsx29("p", { className: "mt-1", children: "Only send LUMIA tokens to this address on Lumia Beam network." })
8364
+ /* @__PURE__ */ jsxs21("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
8365
+ /* @__PURE__ */ jsx30("p", { children: "Share this address to receive LUMIA tokens." }),
8366
+ /* @__PURE__ */ jsx30("p", { className: "mt-1", children: "Only send LUMIA tokens to this address on Lumia Beam network." })
7950
8367
  ] })
7951
8368
  ] })
7952
8369
  ]
@@ -7956,11 +8373,11 @@ var ReceiveModal = ({
7956
8373
 
7957
8374
  // src/internal/components/BuyModal.tsx
7958
8375
  import { CreditCard, ArrowLeft as ArrowLeft9 } from "lucide-react";
7959
- import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
8376
+ import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
7960
8377
  var BuyModal = ({ open, onOpenChange, onBack }) => {
7961
8378
  const { config } = useLumiaPassportConfig();
7962
8379
  const { isDark, classes: theme } = useTheme(config.ui.theme);
7963
- return /* @__PURE__ */ jsx30(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs21(
8380
+ return /* @__PURE__ */ jsx31(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs22(
7964
8381
  DialogContent,
7965
8382
  {
7966
8383
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -7972,26 +8389,26 @@ var BuyModal = ({ open, onOpenChange, onBack }) => {
7972
8389
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
7973
8390
  },
7974
8391
  children: [
7975
- /* @__PURE__ */ jsx30(VisuallyHidden, { children: /* @__PURE__ */ jsx30(DialogTitle, { children: "Buy Crypto" }) }),
7976
- /* @__PURE__ */ jsx30(DialogDescription, { className: "sr-only", children: "On-ramp placeholder" }),
7977
- /* @__PURE__ */ jsx30("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2", children: [
7978
- onBack && /* @__PURE__ */ jsx30(
8392
+ /* @__PURE__ */ jsx31(VisuallyHidden, { children: /* @__PURE__ */ jsx31(DialogTitle, { children: "Buy Crypto" }) }),
8393
+ /* @__PURE__ */ jsx31(DialogDescription, { className: "sr-only", children: "On-ramp placeholder" }),
8394
+ /* @__PURE__ */ jsx31("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
8395
+ onBack && /* @__PURE__ */ jsx31(
7979
8396
  "button",
7980
8397
  {
7981
8398
  onClick: onBack,
7982
8399
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
7983
8400
  title: "Back",
7984
- children: /* @__PURE__ */ jsx30(ArrowLeft9, { className: "h-4 w-4" })
8401
+ children: /* @__PURE__ */ jsx31(ArrowLeft9, { className: "h-4 w-4" })
7985
8402
  }
7986
8403
  ),
7987
- /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7988
- /* @__PURE__ */ jsx30(CreditCard, { className: "h-5 w-5" }),
7989
- /* @__PURE__ */ jsx30("span", { children: "Buy" })
8404
+ /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8405
+ /* @__PURE__ */ jsx31(CreditCard, { className: "h-5 w-5" }),
8406
+ /* @__PURE__ */ jsx31("span", { children: "Buy" })
7990
8407
  ] })
7991
8408
  ] }) }),
7992
- /* @__PURE__ */ jsxs21("div", { className: "p-5", children: [
7993
- /* @__PURE__ */ jsx30("div", { className: `rounded-xl p-4 text-center ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: /* @__PURE__ */ jsx30("div", { className: `text-sm ${theme.mutedText}`, children: "On-ramp coming soon\u2026" }) }),
7994
- /* @__PURE__ */ jsx30("div", { className: "pt-4", children: /* @__PURE__ */ jsx30(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8409
+ /* @__PURE__ */ jsxs22("div", { className: "p-5", children: [
8410
+ /* @__PURE__ */ jsx31("div", { className: `rounded-xl p-4 text-center ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: /* @__PURE__ */ jsx31("div", { className: `text-sm ${theme.mutedText}`, children: "On-ramp coming soon\u2026" }) }),
8411
+ /* @__PURE__ */ jsx31("div", { className: "pt-4", children: /* @__PURE__ */ jsx31(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
7995
8412
  ] })
7996
8413
  ]
7997
8414
  }
@@ -8000,13 +8417,13 @@ var BuyModal = ({ open, onOpenChange, onBack }) => {
8000
8417
 
8001
8418
  // src/internal/components/KycModal.tsx
8002
8419
  import { ShieldCheck, ArrowLeft as ArrowLeft10 } from "lucide-react";
8003
- import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
8420
+ import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
8004
8421
  var KycModal = ({ open, onOpenChange, onBack }) => {
8005
8422
  const { config } = useLumiaPassportConfig();
8006
8423
  const { isDark, classes: theme } = useTheme(config.ui.theme);
8007
8424
  const provider = config.kyc?.provider;
8008
8425
  const options = config.kyc?.options || {};
8009
- return /* @__PURE__ */ jsx31(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs22(
8426
+ return /* @__PURE__ */ jsx32(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs23(
8010
8427
  DialogContent,
8011
8428
  {
8012
8429
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -8018,32 +8435,32 @@ var KycModal = ({ open, onOpenChange, onBack }) => {
8018
8435
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
8019
8436
  },
8020
8437
  children: [
8021
- /* @__PURE__ */ jsx31(VisuallyHidden, { children: /* @__PURE__ */ jsx31(DialogTitle, { children: "KYC" }) }),
8022
- /* @__PURE__ */ jsx31(DialogDescription, { className: "sr-only", children: "KYC placeholder" }),
8023
- /* @__PURE__ */ jsx31("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
8024
- onBack && /* @__PURE__ */ jsx31(
8438
+ /* @__PURE__ */ jsx32(VisuallyHidden, { children: /* @__PURE__ */ jsx32(DialogTitle, { children: "KYC" }) }),
8439
+ /* @__PURE__ */ jsx32(DialogDescription, { className: "sr-only", children: "KYC placeholder" }),
8440
+ /* @__PURE__ */ jsx32("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
8441
+ onBack && /* @__PURE__ */ jsx32(
8025
8442
  "button",
8026
8443
  {
8027
8444
  onClick: onBack,
8028
8445
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
8029
8446
  title: "Back",
8030
- children: /* @__PURE__ */ jsx31(ArrowLeft10, { className: "h-4 w-4" })
8447
+ children: /* @__PURE__ */ jsx32(ArrowLeft10, { className: "h-4 w-4" })
8031
8448
  }
8032
8449
  ),
8033
- /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8034
- /* @__PURE__ */ jsx31(ShieldCheck, { className: "h-5 w-5" }),
8035
- /* @__PURE__ */ jsx31("span", { children: "KYC" })
8450
+ /* @__PURE__ */ jsxs23("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8451
+ /* @__PURE__ */ jsx32(ShieldCheck, { className: "h-5 w-5" }),
8452
+ /* @__PURE__ */ jsx32("span", { children: "KYC" })
8036
8453
  ] })
8037
8454
  ] }) }),
8038
- /* @__PURE__ */ jsxs22("div", { className: "p-5", children: [
8039
- provider ? /* @__PURE__ */ jsxs22("div", { className: `rounded-xl p-4 ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: [
8040
- /* @__PURE__ */ jsxs22("div", { className: `text-sm ${theme.titleText} mb-2`, children: [
8455
+ /* @__PURE__ */ jsxs23("div", { className: "p-5", children: [
8456
+ provider ? /* @__PURE__ */ jsxs23("div", { className: `rounded-xl p-4 ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: [
8457
+ /* @__PURE__ */ jsxs23("div", { className: `text-sm ${theme.titleText} mb-2`, children: [
8041
8458
  "KYC provider: ",
8042
- /* @__PURE__ */ jsx31("span", { className: "font-medium", children: provider })
8459
+ /* @__PURE__ */ jsx32("span", { className: "font-medium", children: provider })
8043
8460
  ] }),
8044
- Object.keys(options).length > 0 ? /* @__PURE__ */ jsx31("div", { className: `text-xs ${theme.mutedText} break-words whitespace-pre-wrap`, children: JSON.stringify(options, null, 2) }) : /* @__PURE__ */ jsx31("div", { className: `text-sm ${theme.mutedText}`, children: "No provider options configured." })
8045
- ] }) : /* @__PURE__ */ jsx31("div", { className: `rounded-xl p-4 text-center ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: /* @__PURE__ */ jsx31("div", { className: `text-sm ${theme.mutedText}`, children: "KYC verification coming soon\u2026" }) }),
8046
- /* @__PURE__ */ jsx31("div", { className: "pt-4", children: /* @__PURE__ */ jsx31(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8461
+ Object.keys(options).length > 0 ? /* @__PURE__ */ jsx32("div", { className: `text-xs ${theme.mutedText} break-words whitespace-pre-wrap`, children: JSON.stringify(options, null, 2) }) : /* @__PURE__ */ jsx32("div", { className: `text-sm ${theme.mutedText}`, children: "No provider options configured." })
8462
+ ] }) : /* @__PURE__ */ jsx32("div", { className: `rounded-xl p-4 text-center ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: /* @__PURE__ */ jsx32("div", { className: `text-sm ${theme.mutedText}`, children: "KYC verification coming soon\u2026" }) }),
8463
+ /* @__PURE__ */ jsx32("div", { className: "pt-4", children: /* @__PURE__ */ jsx32(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8047
8464
  ] })
8048
8465
  ]
8049
8466
  }
@@ -8052,20 +8469,20 @@ var KycModal = ({ open, onOpenChange, onBack }) => {
8052
8469
 
8053
8470
  // src/components/ConnectWalletButton.tsx
8054
8471
  init_auth();
8055
- import { Cloud as Cloud3, Laptop as Laptop2, Shield as Shield4, Copy as Copy5, ArrowUp, ArrowDown, Plus as Plus2, Activity as Activity2, Gem as Gem2, CreditCard as CreditCard2, Lock as Lock2, ArrowUpRight as ArrowUpRight2, AlertTriangle as AlertTriangle4, ShieldCheck as ShieldCheck2 } from "lucide-react";
8472
+ import { Cloud as Cloud4, Laptop as Laptop2, Shield as Shield5, Copy as Copy5, ArrowUp, ArrowDown, Plus as Plus2, Activity as Activity2, Gem as Gem2, CreditCard as CreditCard2, Lock as Lock3, ArrowUpRight as ArrowUpRight2, AlertTriangle as AlertTriangle4, ShieldCheck as ShieldCheck2 } from "lucide-react";
8056
8473
  init_base();
8057
8474
 
8058
8475
  // src/modules/linkedProfiles.ts
8059
8476
  init_common();
8060
8477
  init_types();
8061
8478
  init_auth();
8062
- import * as React26 from "react";
8479
+ import * as React27 from "react";
8063
8480
  function useLumiaPassportLinkedProfiles() {
8064
- const [profiles, setProfiles] = React26.useState([]);
8065
- const [avatar, setAvatar] = React26.useState(null);
8066
- const [isLoading, setIsLoading] = React26.useState(false);
8067
- const [error, setError] = React26.useState(null);
8068
- const load = React26.useCallback(async () => {
8481
+ const [profiles, setProfiles] = React27.useState([]);
8482
+ const [avatar, setAvatar] = React27.useState(null);
8483
+ const [isLoading, setIsLoading] = React27.useState(false);
8484
+ const [error, setError] = React27.useState(null);
8485
+ const load = React27.useCallback(async () => {
8069
8486
  setIsLoading(true);
8070
8487
  setError(null);
8071
8488
  try {
@@ -8091,14 +8508,14 @@ function useLumiaPassportLinkedProfiles() {
8091
8508
  setIsLoading(false);
8092
8509
  }
8093
8510
  }, []);
8094
- React26.useEffect(() => {
8511
+ React27.useEffect(() => {
8095
8512
  load();
8096
8513
  }, [load]);
8097
8514
  return { profiles, avatar, isLoading, error, refresh: load };
8098
8515
  }
8099
8516
 
8100
8517
  // src/components/ConnectWalletButton.tsx
8101
- import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
8518
+ import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
8102
8519
  var ConnectWalletButton = ({
8103
8520
  className,
8104
8521
  label = "Connect Wallet",
@@ -8110,7 +8527,7 @@ var ConnectWalletButton = ({
8110
8527
  }) => {
8111
8528
  console.log("[ConnectWalletButton] Component rendering");
8112
8529
  const { config, callbacks: contextCallbacks } = useLumiaPassportConfig();
8113
- const callbacks = React27.useMemo(() => ({
8530
+ const callbacks = React28.useMemo(() => ({
8114
8531
  onLumiaPassportConnecting: buttonCallbacks?.onLumiaPassportConnecting ?? contextCallbacks?.onLumiaPassportConnecting,
8115
8532
  onLumiaPassportConnect: buttonCallbacks?.onLumiaPassportConnect ?? contextCallbacks?.onLumiaPassportConnect,
8116
8533
  onLumiaPassportAccount: buttonCallbacks?.onLumiaPassportAccount ?? contextCallbacks?.onLumiaPassportAccount,
@@ -8128,14 +8545,14 @@ var ConnectWalletButton = ({
8128
8545
  isAuthenticated: jwtTokenManager2.isAuthenticated?.(),
8129
8546
  hasTokens: !!jwtTokenManager2.getTokens()
8130
8547
  });
8131
- React27.useEffect(() => {
8548
+ React28.useEffect(() => {
8132
8549
  if (!profilesLoading && profiles.length > 0) {
8133
8550
  console.log("[ConnectWalletButton] Profiles loaded:", profiles.map((p) => ({ provider: p.provider, externalId: p.externalId })));
8134
8551
  const hasEmail = profiles.some((p) => p.provider?.toLowerCase() === "email");
8135
8552
  console.log("[ConnectWalletButton] Has email provider:", hasEmail);
8136
8553
  }
8137
8554
  }, [profiles, profilesLoading]);
8138
- React27.useEffect(() => {
8555
+ React28.useEffect(() => {
8139
8556
  console.log("[ConnectWalletButton] Theme state:", {
8140
8557
  configTheme: config.ui.theme,
8141
8558
  resolvedTheme,
@@ -8143,20 +8560,21 @@ var ConnectWalletButton = ({
8143
8560
  bodyClasses: document.body.className
8144
8561
  });
8145
8562
  }, [config.ui.theme, resolvedTheme, isDark]);
8146
- const [isAuthModalOpen, setIsAuthModalOpen] = React27.useState(false);
8147
- const [recoveryUserId, setRecoveryUserId] = React27.useState(null);
8148
- const tssManagerRef = React27.useRef(null);
8149
- const [isWalletMenuOpen, setIsWalletMenuOpen] = React27.useState(false);
8150
- const [copied, setCopied] = React27.useState(false);
8151
- const [isManageWalletOpen, setIsManageWalletOpen] = React27.useState(false);
8152
- const [isSecurityOpen, setIsSecurityOpen] = React27.useState(false);
8153
- const [isTransactionsOpen, setIsTransactionsOpen] = React27.useState(false);
8154
- const [isViewAssetsOpen, setIsViewAssetsOpen] = React27.useState(false);
8155
- const [isSendOpen, setIsSendOpen] = React27.useState(false);
8156
- const [isReceiveOpen, setIsReceiveOpen] = React27.useState(false);
8157
- const [isBuyOpen, setIsBuyOpen] = React27.useState(false);
8158
- const [isKycOpen, setIsKycOpen] = React27.useState(false);
8159
- React27.useEffect(() => {
8563
+ const [isAuthModalOpen, setIsAuthModalOpen] = React28.useState(false);
8564
+ const [recoveryUserId, setRecoveryUserId] = React28.useState(null);
8565
+ const tssManagerRef = React28.useRef(null);
8566
+ const [isWalletMenuOpen, setIsWalletMenuOpen] = React28.useState(false);
8567
+ const [copied, setCopied] = React28.useState(false);
8568
+ const [isManageWalletOpen, setIsManageWalletOpen] = React28.useState(false);
8569
+ const [isSecurityOpen, setIsSecurityOpen] = React28.useState(false);
8570
+ const [isBackupOpen, setIsBackupOpen] = React28.useState(false);
8571
+ const [isTransactionsOpen, setIsTransactionsOpen] = React28.useState(false);
8572
+ const [isViewAssetsOpen, setIsViewAssetsOpen] = React28.useState(false);
8573
+ const [isSendOpen, setIsSendOpen] = React28.useState(false);
8574
+ const [isReceiveOpen, setIsReceiveOpen] = React28.useState(false);
8575
+ const [isBuyOpen, setIsBuyOpen] = React28.useState(false);
8576
+ const [isKycOpen, setIsKycOpen] = React28.useState(false);
8577
+ React28.useEffect(() => {
8160
8578
  try {
8161
8579
  const shouldAutoOpen = authOpen ?? config?.ui?.authOpen;
8162
8580
  if (!address && !session && shouldAutoOpen) {
@@ -8183,25 +8601,25 @@ var ConnectWalletButton = ({
8183
8601
  refetchOnWindowFocus: true
8184
8602
  }
8185
8603
  });
8186
- const formatAddress = React27.useCallback((addr) => {
8604
+ const formatAddress = React28.useCallback((addr) => {
8187
8605
  if (!addr) return "";
8188
8606
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
8189
8607
  }, []);
8190
- const avatar = React27.useMemo(() => jwtTokenManager2.getAvatar(), [isAuthModalOpen, status]);
8191
- const displayName = React27.useMemo(() => jwtTokenManager2.getDisplayName(), [isAuthModalOpen, status]);
8192
- const formatBalance = React27.useCallback(() => {
8608
+ const avatar = React28.useMemo(() => jwtTokenManager2.getAvatar(), [isAuthModalOpen, status]);
8609
+ const displayName = React28.useMemo(() => jwtTokenManager2.getDisplayName(), [isAuthModalOpen, status]);
8610
+ const formatBalance = React28.useCallback(() => {
8193
8611
  if (!balance || balanceLoading) return "0.0000";
8194
8612
  return parseFloat(balance.formatted).toFixed(4);
8195
8613
  }, [balance, balanceLoading]);
8196
- const [hasServerVault, setHasServerVault] = React27.useState(false);
8197
- const indicators = React27.useMemo(() => {
8614
+ const [hasServerVault, setHasServerVault] = React28.useState(false);
8615
+ const indicators = React28.useMemo(() => {
8198
8616
  const userId = jwtTokenManager2.getUserId();
8199
8617
  if (!userId) return { server: false, local: false, backup: false };
8200
8618
  const server = jwtTokenManager2.getHasKeyshare() ?? false;
8201
8619
  const local = !!address;
8202
8620
  return { server, local, backup: hasServerVault };
8203
8621
  }, [session, address, hasServerVault]);
8204
- const handleAuthModalSuccess = React27.useCallback(async () => {
8622
+ const handleAuthModalSuccess = React28.useCallback(async () => {
8205
8623
  await new Promise((r) => setTimeout(r, 100));
8206
8624
  const userId = jwtTokenManager2.getUserId();
8207
8625
  const isAuthenticated = jwtTokenManager2.isAuthenticated();
@@ -8253,7 +8671,7 @@ var ConnectWalletButton = ({
8253
8671
  }
8254
8672
  }
8255
8673
  }, [onConnected, setAddress, setError, setSession, setStatus]);
8256
- const handleDisconnect = React27.useCallback(async () => {
8674
+ const handleDisconnect = React28.useCallback(async () => {
8257
8675
  const prevAddress = address;
8258
8676
  let userId = null;
8259
8677
  try {
@@ -8273,7 +8691,7 @@ var ConnectWalletButton = ({
8273
8691
  } catch {
8274
8692
  }
8275
8693
  }, [setAddress, setError, setSession, setStatus]);
8276
- React27.useEffect(() => {
8694
+ React28.useEffect(() => {
8277
8695
  if (address) {
8278
8696
  (async () => {
8279
8697
  try {
@@ -8290,7 +8708,7 @@ var ConnectWalletButton = ({
8290
8708
  setHasServerVault(false);
8291
8709
  }
8292
8710
  }, [address]);
8293
- React27.useEffect(() => {
8711
+ React28.useEffect(() => {
8294
8712
  console.log("[UI-KIT][AutoConnect] useEffect mounted");
8295
8713
  let cancelled = false;
8296
8714
  const tryAutoConnect = async (attempt) => {
@@ -8395,13 +8813,13 @@ var ConnectWalletButton = ({
8395
8813
  cancelled = true;
8396
8814
  };
8397
8815
  }, []);
8398
- React27.useEffect(() => {
8816
+ React28.useEffect(() => {
8399
8817
  if (address && refetchBalance) {
8400
8818
  refetchBalance();
8401
8819
  }
8402
8820
  }, [address]);
8403
- return /* @__PURE__ */ jsxs23("div", { className: [className, "lumia-scope"].filter(Boolean).join(" "), children: [
8404
- /* @__PURE__ */ jsx32("div", { className: "inline-flex items-center gap-2", children: !address ? /* @__PURE__ */ jsx32("div", { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx32(
8821
+ return /* @__PURE__ */ jsxs24("div", { className: [className, "lumia-scope"].filter(Boolean).join(" "), children: [
8822
+ /* @__PURE__ */ jsx33("div", { className: "inline-flex items-center gap-2", children: !address ? /* @__PURE__ */ jsx33("div", { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx33(
8405
8823
  "button",
8406
8824
  {
8407
8825
  onClick: () => {
@@ -8438,56 +8856,56 @@ var ConnectWalletButton = ({
8438
8856
  },
8439
8857
  children: label || "Connect"
8440
8858
  }
8441
- ) }) : /* @__PURE__ */ jsx32(
8859
+ ) }) : /* @__PURE__ */ jsx33(
8442
8860
  "div",
8443
8861
  {
8444
8862
  className: `relative rounded-2xl p-4 shadow-lg cursor-pointer transition-all duration-200 hover:scale-105 hover:shadow-xl max-w-sm min-w-[280px] ${isDark ? "bg-gray-900/40 backdrop-blur border border-gray-700" : "bg-white backdrop-blur border border-gray-200"}`,
8445
8863
  onClick: () => setIsWalletMenuOpen(true),
8446
- children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-3", children: [
8447
- /* @__PURE__ */ jsx32("div", { className: "w-10 h-10 rounded-full flex items-center justify-center flex-shrink-0 overflow-hidden bg-gradient-to-br from-purple-500 to-blue-600", children: avatar ? (
8864
+ children: /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-3", children: [
8865
+ /* @__PURE__ */ jsx33("div", { className: "w-10 h-10 rounded-full flex items-center justify-center flex-shrink-0 overflow-hidden bg-gradient-to-br from-purple-500 to-blue-600", children: avatar ? (
8448
8866
  // eslint-disable-next-line @next/next/no-img-element
8449
- /* @__PURE__ */ jsx32("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8450
- ) : /* @__PURE__ */ jsx32("span", { className: "text-white font-bold text-sm", children: "LP" }) }),
8451
- /* @__PURE__ */ jsxs23("div", { className: "text-left flex-1 min-w-0", children: [
8452
- /* @__PURE__ */ jsx32("div", { className: `font-semibold text-base truncate ${theme.titleText}`, children: mode === "compact" && displayName ? displayName : formatAddress(address) }),
8453
- /* @__PURE__ */ jsxs23("div", { className: `text-sm ${theme.mutedText}`, children: [
8867
+ /* @__PURE__ */ jsx33("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8868
+ ) : /* @__PURE__ */ jsx33("span", { className: "text-white font-bold text-sm", children: "LP" }) }),
8869
+ /* @__PURE__ */ jsxs24("div", { className: "text-left flex-1 min-w-0", children: [
8870
+ /* @__PURE__ */ jsx33("div", { className: `font-semibold text-base truncate ${theme.titleText}`, children: mode === "compact" && displayName ? displayName : formatAddress(address) }),
8871
+ /* @__PURE__ */ jsxs24("div", { className: `text-sm ${theme.mutedText}`, children: [
8454
8872
  formatBalance(),
8455
8873
  " LUMIA"
8456
8874
  ] })
8457
8875
  ] }),
8458
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-1", children: [
8459
- /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
8460
- /* @__PURE__ */ jsx32(
8461
- Cloud3,
8876
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-1", children: [
8877
+ /* @__PURE__ */ jsxs24("div", { className: "group relative", children: [
8878
+ /* @__PURE__ */ jsx33(
8879
+ Cloud4,
8462
8880
  {
8463
8881
  className: `w-3 h-3 ${indicators.server ? "text-green-500" : "text-orange-400"}`
8464
8882
  }
8465
8883
  ),
8466
- /* @__PURE__ */ jsxs23("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-gray-800 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap z-50", children: [
8884
+ /* @__PURE__ */ jsxs24("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-gray-800 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap z-50", children: [
8467
8885
  "Server Keyshare: ",
8468
8886
  indicators.server ? "Available" : "Missing"
8469
8887
  ] })
8470
8888
  ] }),
8471
- /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
8472
- /* @__PURE__ */ jsx32(
8889
+ /* @__PURE__ */ jsxs24("div", { className: "group relative", children: [
8890
+ /* @__PURE__ */ jsx33(
8473
8891
  Laptop2,
8474
8892
  {
8475
8893
  className: `w-3 h-3 ${indicators.local ? "text-green-500" : "text-orange-400"}`
8476
8894
  }
8477
8895
  ),
8478
- /* @__PURE__ */ jsxs23("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-gray-800 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap z-50", children: [
8896
+ /* @__PURE__ */ jsxs24("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-gray-800 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap z-50", children: [
8479
8897
  "Local Keyshare: ",
8480
8898
  indicators.local ? "Available" : "Missing"
8481
8899
  ] })
8482
8900
  ] }),
8483
- /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
8484
- /* @__PURE__ */ jsx32(
8485
- Shield4,
8901
+ /* @__PURE__ */ jsxs24("div", { className: "group relative", children: [
8902
+ /* @__PURE__ */ jsx33(
8903
+ Shield5,
8486
8904
  {
8487
8905
  className: `w-3 h-3 ${indicators.backup ? "text-green-500" : "text-orange-400"}`
8488
8906
  }
8489
8907
  ),
8490
- /* @__PURE__ */ jsxs23("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-gray-800 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap z-50", children: [
8908
+ /* @__PURE__ */ jsxs24("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-gray-800 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap z-50", children: [
8491
8909
  "Vault Backup: ",
8492
8910
  indicators.backup ? "Available" : "Not Found"
8493
8911
  ] })
@@ -8496,59 +8914,59 @@ var ConnectWalletButton = ({
8496
8914
  ] })
8497
8915
  }
8498
8916
  ) }),
8499
- isWalletMenuOpen && address && /* @__PURE__ */ jsx32("div", { className: "fixed inset-0 z-[60]", children: /* @__PURE__ */ jsx32(Dialog, { open: isWalletMenuOpen, onOpenChange: setIsWalletMenuOpen, children: /* @__PURE__ */ jsxs23(DialogContent, { className: `lumia-scope max-w-[400px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
8500
- /* @__PURE__ */ jsx32(VisuallyHidden, { children: /* @__PURE__ */ jsx32(DialogTitle, { children: "Wallet Menu" }) }),
8501
- /* @__PURE__ */ jsx32(DialogDescription, { className: "sr-only", children: "Smart Account wallet actions and status" }),
8502
- /* @__PURE__ */ jsx32("div", { className: `p-4 border-b ${theme.divider}`, children: /* @__PURE__ */ jsx32("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-4", children: [
8503
- /* @__PURE__ */ jsx32("div", { className: "w-12 h-12 bg-gradient-to-br from-purple-500 to-blue-600 rounded-full flex items-center justify-center relative overflow-hidden", children: avatar ? (
8917
+ isWalletMenuOpen && address && /* @__PURE__ */ jsx33("div", { className: "fixed inset-0 z-[60]", children: /* @__PURE__ */ jsx33(Dialog, { open: isWalletMenuOpen, onOpenChange: setIsWalletMenuOpen, children: /* @__PURE__ */ jsxs24(DialogContent, { className: `lumia-scope max-w-[400px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
8918
+ /* @__PURE__ */ jsx33(VisuallyHidden, { children: /* @__PURE__ */ jsx33(DialogTitle, { children: "Wallet Menu" }) }),
8919
+ /* @__PURE__ */ jsx33(DialogDescription, { className: "sr-only", children: "Smart Account wallet actions and status" }),
8920
+ /* @__PURE__ */ jsx33("div", { className: `p-4 border-b ${theme.divider}`, children: /* @__PURE__ */ jsx33("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
8921
+ /* @__PURE__ */ jsx33("div", { className: "w-12 h-12 bg-gradient-to-br from-purple-500 to-blue-600 rounded-full flex items-center justify-center relative overflow-hidden", children: avatar ? (
8504
8922
  // eslint-disable-next-line @next/next/no-img-element
8505
- /* @__PURE__ */ jsx32("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8506
- ) : /* @__PURE__ */ jsx32("span", { className: "text-white font-bold text-lg", children: "L" }) }),
8507
- /* @__PURE__ */ jsxs23("div", { className: "flex-1 min-w-0", children: [
8508
- /* @__PURE__ */ jsx32("div", { className: `font-medium text-lg ${theme.titleText}`, children: displayName || "Smart Account" }),
8509
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-2", children: [
8510
- /* @__PURE__ */ jsx32("div", { className: `text-sm ${theme.mutedText}`, children: formatAddress(address) }),
8511
- /* @__PURE__ */ jsx32("button", { onClick: async () => {
8923
+ /* @__PURE__ */ jsx33("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8924
+ ) : /* @__PURE__ */ jsx33("span", { className: "text-white font-bold text-lg", children: "L" }) }),
8925
+ /* @__PURE__ */ jsxs24("div", { className: "flex-1 min-w-0", children: [
8926
+ /* @__PURE__ */ jsx33("div", { className: `font-medium text-lg ${theme.titleText}`, children: displayName || "Smart Account" }),
8927
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-2", children: [
8928
+ /* @__PURE__ */ jsx33("div", { className: `text-sm ${theme.mutedText}`, children: formatAddress(address) }),
8929
+ /* @__PURE__ */ jsx33("button", { onClick: async () => {
8512
8930
  try {
8513
8931
  await navigator.clipboard.writeText(address);
8514
8932
  setCopied(true);
8515
8933
  setTimeout(() => setCopied(false), 1500);
8516
8934
  } catch {
8517
8935
  }
8518
- }, title: "Copy address", className: `${theme.iconColor} hover:${theme.titleText} p-1`, children: copied ? /* @__PURE__ */ jsx32("span", { className: "text-green-500 text-sm", children: "\u2713" }) : /* @__PURE__ */ jsx32(Copy5, { className: "w-4 h-4" }) })
8936
+ }, title: "Copy address", className: `${theme.iconColor} hover:${theme.titleText} p-1`, children: copied ? /* @__PURE__ */ jsx33("span", { className: "text-green-500 text-sm", children: "\u2713" }) : /* @__PURE__ */ jsx33(Copy5, { className: "w-4 h-4" }) })
8519
8937
  ] })
8520
8938
  ] })
8521
8939
  ] }) }) }),
8522
- /* @__PURE__ */ jsxs23("div", { className: "p-4", children: [
8523
- /* @__PURE__ */ jsxs23("div", { className: "grid grid-cols-3 gap-2 mb-4", children: [
8524
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
8940
+ /* @__PURE__ */ jsxs24("div", { className: "p-4", children: [
8941
+ /* @__PURE__ */ jsxs24("div", { className: "grid grid-cols-3 gap-2 mb-4", children: [
8942
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8525
8943
  setIsWalletMenuOpen(false);
8526
8944
  setIsSendOpen(true);
8527
8945
  }, className: `${isDark ? "bg-slate-900 hover:bg-slate-800 text-blue-400" : "bg-blue-50 hover:bg-blue-100 text-blue-600"} rounded-xl p-3 transition-colors flex items-center justify-center gap-2`, children: [
8528
- /* @__PURE__ */ jsx32(ArrowUp, { className: "w-5 h-5" }),
8529
- /* @__PURE__ */ jsx32("span", { className: "text-sm font-medium", children: "Send" })
8946
+ /* @__PURE__ */ jsx33(ArrowUp, { className: "w-5 h-5" }),
8947
+ /* @__PURE__ */ jsx33("span", { className: "text-sm font-medium", children: "Send" })
8530
8948
  ] }),
8531
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
8949
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8532
8950
  setIsWalletMenuOpen(false);
8533
8951
  setIsReceiveOpen(true);
8534
8952
  }, className: `${isDark ? "bg-slate-900 hover:bg-slate-800 text-green-400" : "bg-green-50 hover:bg-green-100 text-green-600"} rounded-xl p-3 transition-colors flex items-center justify-center gap-2`, children: [
8535
- /* @__PURE__ */ jsx32(ArrowDown, { className: "w-5 h-5" }),
8536
- /* @__PURE__ */ jsx32("span", { className: "text-sm font-medium", children: "Receive" })
8953
+ /* @__PURE__ */ jsx33(ArrowDown, { className: "w-5 h-5" }),
8954
+ /* @__PURE__ */ jsx33("span", { className: "text-sm font-medium", children: "Receive" })
8537
8955
  ] }),
8538
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
8956
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8539
8957
  setIsWalletMenuOpen(false);
8540
8958
  setIsBuyOpen(true);
8541
8959
  }, className: `${isDark ? "bg-slate-900 hover:bg-slate-800 text-purple-400" : "bg-purple-50 hover:bg-purple-100 text-purple-600"} rounded-xl p-3 transition-colors flex items-center justify-center gap-2`, children: [
8542
- /* @__PURE__ */ jsx32(Plus2, { className: "w-5 h-5" }),
8543
- /* @__PURE__ */ jsx32("span", { className: "text-sm font-medium", children: "Buy" })
8960
+ /* @__PURE__ */ jsx33(Plus2, { className: "w-5 h-5" }),
8961
+ /* @__PURE__ */ jsx33("span", { className: "text-sm font-medium", children: "Buy" })
8544
8962
  ] })
8545
8963
  ] }),
8546
- config.warnings?.backupWarning && !hasServerVault && /* @__PURE__ */ jsx32("div", { className: `mb-4 p-3 rounded-xl ${isDark ? "bg-orange-900/20 border border-orange-900/40" : "bg-orange-50 border border-orange-200"}`, children: /* @__PURE__ */ jsxs23("div", { className: "flex items-start space-x-3", children: [
8547
- /* @__PURE__ */ jsx32(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-orange-400" : "text-orange-500"} mt-0.5 flex-shrink-0` }),
8548
- /* @__PURE__ */ jsxs23("div", { className: "flex-1 min-w-0", children: [
8549
- /* @__PURE__ */ jsx32("div", { className: `text-sm font-medium ${isDark ? "text-orange-300" : "text-orange-700"}`, children: "Backup Not Created" }),
8550
- /* @__PURE__ */ jsx32("div", { className: `text-xs mt-1 ${isDark ? "text-orange-400/80" : "text-orange-600"}`, children: "Secure your wallet with an encrypted vault backup to protect against device loss." }),
8551
- /* @__PURE__ */ jsxs23(
8964
+ config.warnings?.backupWarning && !hasServerVault && /* @__PURE__ */ jsx33("div", { className: `mb-4 p-3 rounded-xl ${isDark ? "bg-orange-900/20 border border-orange-900/40" : "bg-orange-50 border border-orange-200"}`, children: /* @__PURE__ */ jsxs24("div", { className: "flex items-start space-x-3", children: [
8965
+ /* @__PURE__ */ jsx33(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-orange-400" : "text-orange-500"} mt-0.5 flex-shrink-0` }),
8966
+ /* @__PURE__ */ jsxs24("div", { className: "flex-1 min-w-0", children: [
8967
+ /* @__PURE__ */ jsx33("div", { className: `text-sm font-medium ${isDark ? "text-orange-300" : "text-orange-700"}`, children: "Backup Not Created" }),
8968
+ /* @__PURE__ */ jsx33("div", { className: `text-xs mt-1 ${isDark ? "text-orange-400/80" : "text-orange-600"}`, children: "Secure your wallet with an encrypted vault backup to protect against device loss." }),
8969
+ /* @__PURE__ */ jsxs24(
8552
8970
  "button",
8553
8971
  {
8554
8972
  onClick: () => {
@@ -8557,19 +8975,19 @@ var ConnectWalletButton = ({
8557
8975
  },
8558
8976
  className: `mt-2 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors ${isDark ? "bg-orange-900/40 hover:bg-orange-900/60 text-orange-300" : "bg-orange-100 hover:bg-orange-200 text-orange-700"}`,
8559
8977
  children: [
8560
- /* @__PURE__ */ jsx32(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
8978
+ /* @__PURE__ */ jsx33(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
8561
8979
  "Create Backup"
8562
8980
  ]
8563
8981
  }
8564
8982
  )
8565
8983
  ] })
8566
8984
  ] }) }),
8567
- config.warnings?.emailNotConnectedWarning && !profilesLoading && !profiles.some((p) => p.provider?.toLowerCase() === "email") && /* @__PURE__ */ jsx32("div", { className: `mb-4 p-3 rounded-xl ${isDark ? "bg-blue-900/20 border border-blue-900/40" : "bg-blue-50 border border-blue-200"}`, children: /* @__PURE__ */ jsxs23("div", { className: "flex items-start space-x-3", children: [
8568
- /* @__PURE__ */ jsx32(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-blue-400" : "text-blue-500"} mt-0.5 flex-shrink-0` }),
8569
- /* @__PURE__ */ jsxs23("div", { className: "flex-1 min-w-0", children: [
8570
- /* @__PURE__ */ jsx32("div", { className: `text-sm font-medium ${isDark ? "text-blue-300" : "text-blue-700"}`, children: "Email Not Connected" }),
8571
- /* @__PURE__ */ jsx32("div", { className: `text-xs mt-1 ${isDark ? "text-blue-400/80" : "text-blue-600"}`, children: "Connect your email for easier account recovery and additional security." }),
8572
- /* @__PURE__ */ jsxs23(
8985
+ config.warnings?.emailNotConnectedWarning && !profilesLoading && !profiles.some((p) => p.provider?.toLowerCase() === "email") && /* @__PURE__ */ jsx33("div", { className: `mb-4 p-3 rounded-xl ${isDark ? "bg-blue-900/20 border border-blue-900/40" : "bg-blue-50 border border-blue-200"}`, children: /* @__PURE__ */ jsxs24("div", { className: "flex items-start space-x-3", children: [
8986
+ /* @__PURE__ */ jsx33(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-blue-400" : "text-blue-500"} mt-0.5 flex-shrink-0` }),
8987
+ /* @__PURE__ */ jsxs24("div", { className: "flex-1 min-w-0", children: [
8988
+ /* @__PURE__ */ jsx33("div", { className: `text-sm font-medium ${isDark ? "text-blue-300" : "text-blue-700"}`, children: "Email Not Connected" }),
8989
+ /* @__PURE__ */ jsx33("div", { className: `text-xs mt-1 ${isDark ? "text-blue-400/80" : "text-blue-600"}`, children: "Connect your email for easier account recovery and additional security." }),
8990
+ /* @__PURE__ */ jsxs24(
8573
8991
  "button",
8574
8992
  {
8575
8993
  onClick: () => {
@@ -8578,80 +8996,87 @@ var ConnectWalletButton = ({
8578
8996
  },
8579
8997
  className: `mt-2 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors ${isDark ? "bg-blue-900/40 hover:bg-blue-900/60 text-blue-300" : "bg-blue-100 hover:bg-blue-200 text-blue-700"}`,
8580
8998
  children: [
8581
- /* @__PURE__ */ jsx32(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
8999
+ /* @__PURE__ */ jsx33(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
8582
9000
  "Connect Email"
8583
9001
  ]
8584
9002
  }
8585
9003
  )
8586
9004
  ] })
8587
9005
  ] }) }),
8588
- /* @__PURE__ */ jsx32(
9006
+ /* @__PURE__ */ jsx33(
8589
9007
  "button",
8590
9008
  {
8591
9009
  onClick: () => address && window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank"),
8592
9010
  className: `w-full ${isDark ? "bg-gray-800 hover:bg-gray-700" : "bg-gray-50 hover:bg-gray-100"} rounded-xl p-3 mb-3 transition-colors cursor-pointer text-left`,
8593
- children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
8594
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-3", children: [
8595
- /* @__PURE__ */ jsx32("div", { className: "w-8 h-8 rounded-full flex items-center justify-center bg-transparent overflow-hidden", children: lumiaBeam.logoDataUri ? /* @__PURE__ */ jsx32("img", { src: lumiaBeam.logoDataUri, alt: "Chain logo", className: "w-full h-full object-cover" }) : lumiaBeam.logo === "lumia" ? /* @__PURE__ */ jsx32(LumiaLogo, { size: 32 }) : /* @__PURE__ */ jsx32("span", { className: "text-white text-xs font-bold", children: (lumiaBeam.name || "L").charAt(0) }) }),
8596
- /* @__PURE__ */ jsxs23("div", { children: [
8597
- /* @__PURE__ */ jsx32("div", { className: `${theme.titleText} font-medium`, children: lumiaBeam.name }),
8598
- /* @__PURE__ */ jsxs23("div", { className: theme.mutedText + " text-sm", children: [
9011
+ children: /* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between", children: [
9012
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-3", children: [
9013
+ /* @__PURE__ */ jsx33("div", { className: "w-8 h-8 rounded-full flex items-center justify-center bg-transparent overflow-hidden", children: lumiaBeam.logoDataUri ? /* @__PURE__ */ jsx33("img", { src: lumiaBeam.logoDataUri, alt: "Chain logo", className: "w-full h-full object-cover" }) : lumiaBeam.logo === "lumia" ? /* @__PURE__ */ jsx33(LumiaLogo, { size: 32 }) : /* @__PURE__ */ jsx33("span", { className: "text-white text-xs font-bold", children: (lumiaBeam.name || "L").charAt(0) }) }),
9014
+ /* @__PURE__ */ jsxs24("div", { children: [
9015
+ /* @__PURE__ */ jsx33("div", { className: `${theme.titleText} font-medium`, children: lumiaBeam.name }),
9016
+ /* @__PURE__ */ jsxs24("div", { className: theme.mutedText + " text-sm", children: [
8599
9017
  formatBalance(),
8600
9018
  " LUMIA"
8601
9019
  ] })
8602
9020
  ] })
8603
9021
  ] }),
8604
- /* @__PURE__ */ jsx32("div", { className: theme.iconColor, children: /* @__PURE__ */ jsx32(ArrowUpRight2, { className: "w-4 h-4" }) })
9022
+ /* @__PURE__ */ jsx33("div", { className: theme.iconColor, children: /* @__PURE__ */ jsx33(ArrowUpRight2, { className: "w-4 h-4" }) })
8605
9023
  ] })
8606
9024
  }
8607
9025
  ),
8608
- /* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
8609
- config.features?.kycNeeded && /* @__PURE__ */ jsxs23("button", { onClick: () => {
9026
+ /* @__PURE__ */ jsxs24("div", { className: "space-y-1", children: [
9027
+ config.features?.kycNeeded && /* @__PURE__ */ jsxs24("button", { onClick: () => {
8610
9028
  setIsWalletMenuOpen(false);
8611
9029
  setIsKycOpen(true);
8612
9030
  }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-gray-800" : "hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8613
- /* @__PURE__ */ jsx32(ShieldCheck2, { className: `w-5 h-5 ${theme.iconColor}` }),
8614
- /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "KYC" })
9031
+ /* @__PURE__ */ jsx33(ShieldCheck2, { className: `w-5 h-5 ${theme.iconColor}` }),
9032
+ /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "KYC" })
8615
9033
  ] }),
8616
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
9034
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8617
9035
  setIsWalletMenuOpen(false);
8618
9036
  setIsTransactionsOpen(true);
8619
9037
  }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-gray-800" : "hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8620
- /* @__PURE__ */ jsx32(Activity2, { className: `w-5 h-5 ${theme.iconColor}` }),
8621
- /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Transactions" })
9038
+ /* @__PURE__ */ jsx33(Activity2, { className: `w-5 h-5 ${theme.iconColor}` }),
9039
+ /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Transactions" })
8622
9040
  ] }),
8623
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
9041
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8624
9042
  setIsWalletMenuOpen(false);
8625
9043
  setIsViewAssetsOpen(true);
8626
9044
  }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-gray-800" : "hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8627
- /* @__PURE__ */ jsx32(Gem2, { className: `w-5 h-5 ${theme.iconColor}` }),
8628
- /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "View Assets" })
9045
+ /* @__PURE__ */ jsx33(Gem2, { className: `w-5 h-5 ${theme.iconColor}` }),
9046
+ /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "View Assets" })
8629
9047
  ] }),
8630
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
9048
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8631
9049
  setIsWalletMenuOpen(false);
8632
9050
  setIsManageWalletOpen(true);
8633
9051
  }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-gray-800" : "hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8634
- /* @__PURE__ */ jsx32(CreditCard2, { className: `w-5 h-5 ${theme.iconColor}` }),
8635
- /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Manage Wallet" })
9052
+ /* @__PURE__ */ jsx33(CreditCard2, { className: `w-5 h-5 ${theme.iconColor}` }),
9053
+ /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Manage Wallet" })
8636
9054
  ] }),
8637
- /* @__PURE__ */ jsxs23("button", { onClick: () => {
9055
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
8638
9056
  setIsWalletMenuOpen(false);
8639
9057
  setIsSecurityOpen(true);
8640
9058
  }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-gray-800" : "hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8641
- /* @__PURE__ */ jsx32(Lock2, { className: `w-5 h-5 ${theme.iconColor}` }),
8642
- /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Security" })
9059
+ /* @__PURE__ */ jsx33(Lock3, { className: `w-5 h-5 ${theme.iconColor}` }),
9060
+ /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Security" })
9061
+ ] }),
9062
+ /* @__PURE__ */ jsxs24("button", { onClick: () => {
9063
+ setIsWalletMenuOpen(false);
9064
+ setIsBackupOpen(true);
9065
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-gray-800" : "hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
9066
+ /* @__PURE__ */ jsx33(Shield5, { className: `w-5 h-5 ${theme.iconColor}` }),
9067
+ /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Keyshare Backup" })
8643
9068
  ] }),
8644
- /* @__PURE__ */ jsxs23("button", { onClick: async () => {
9069
+ /* @__PURE__ */ jsxs24("button", { onClick: async () => {
8645
9070
  await handleDisconnect();
8646
9071
  setIsWalletMenuOpen(false);
8647
9072
  }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "hover:bg-red-900/20" : "hover:bg-red-50"} transition-colors flex items-center space-x-3`, children: [
8648
- /* @__PURE__ */ jsx32(ArrowUpRight2, { className: "w-5 h-5 text-red-600" }),
8649
- /* @__PURE__ */ jsx32("span", { className: "text-red-600", children: "Disconnect Wallet" })
9073
+ /* @__PURE__ */ jsx33(ArrowUpRight2, { className: "w-5 h-5 text-red-600" }),
9074
+ /* @__PURE__ */ jsx33("span", { className: "text-red-600", children: "Disconnect Wallet" })
8650
9075
  ] })
8651
9076
  ] })
8652
9077
  ] })
8653
9078
  ] }) }) }),
8654
- /* @__PURE__ */ jsx32(
9079
+ /* @__PURE__ */ jsx33(
8655
9080
  ManageWallet,
8656
9081
  {
8657
9082
  open: isManageWalletOpen,
@@ -8662,7 +9087,7 @@ var ConnectWalletButton = ({
8662
9087
  }
8663
9088
  }
8664
9089
  ),
8665
- /* @__PURE__ */ jsx32(
9090
+ /* @__PURE__ */ jsx33(
8666
9091
  SecurityModal,
8667
9092
  {
8668
9093
  open: isSecurityOpen,
@@ -8673,7 +9098,23 @@ var ConnectWalletButton = ({
8673
9098
  }
8674
9099
  }
8675
9100
  ),
8676
- /* @__PURE__ */ jsx32(
9101
+ isBackupOpen && session?.mpcUserId && /* @__PURE__ */ jsx33(Dialog, { open: isBackupOpen, onOpenChange: setIsBackupOpen, children: /* @__PURE__ */ jsxs24(DialogContent, { className: "max-w-2xl", children: [
9102
+ /* @__PURE__ */ jsxs24(VisuallyHidden, { children: [
9103
+ /* @__PURE__ */ jsx33(DialogTitle, { children: "Keyshare Backup" }),
9104
+ /* @__PURE__ */ jsx33(DialogDescription, { children: "Create and manage encrypted backups of your keyshare" })
9105
+ ] }),
9106
+ /* @__PURE__ */ jsx33(
9107
+ KeyshareBackup,
9108
+ {
9109
+ userId: session.mpcUserId,
9110
+ onClose: () => setIsBackupOpen(false),
9111
+ onBackupSuccess: () => {
9112
+ console.log("[ConnectWalletButton] Backup created successfully");
9113
+ }
9114
+ }
9115
+ )
9116
+ ] }) }),
9117
+ /* @__PURE__ */ jsx33(
8677
9118
  TransactionsModal,
8678
9119
  {
8679
9120
  open: isTransactionsOpen,
@@ -8684,7 +9125,7 @@ var ConnectWalletButton = ({
8684
9125
  }
8685
9126
  }
8686
9127
  ),
8687
- /* @__PURE__ */ jsx32(
9128
+ /* @__PURE__ */ jsx33(
8688
9129
  ViewAssetsModal,
8689
9130
  {
8690
9131
  open: isViewAssetsOpen,
@@ -8695,7 +9136,7 @@ var ConnectWalletButton = ({
8695
9136
  }
8696
9137
  }
8697
9138
  ),
8698
- /* @__PURE__ */ jsx32(
9139
+ /* @__PURE__ */ jsx33(
8699
9140
  SendModal,
8700
9141
  {
8701
9142
  open: isSendOpen,
@@ -8706,7 +9147,7 @@ var ConnectWalletButton = ({
8706
9147
  }
8707
9148
  }
8708
9149
  ),
8709
- /* @__PURE__ */ jsx32(
9150
+ /* @__PURE__ */ jsx33(
8710
9151
  ReceiveModal,
8711
9152
  {
8712
9153
  open: isReceiveOpen,
@@ -8717,7 +9158,7 @@ var ConnectWalletButton = ({
8717
9158
  }
8718
9159
  }
8719
9160
  ),
8720
- /* @__PURE__ */ jsx32(
9161
+ /* @__PURE__ */ jsx33(
8721
9162
  BuyModal,
8722
9163
  {
8723
9164
  open: isBuyOpen,
@@ -8728,7 +9169,7 @@ var ConnectWalletButton = ({
8728
9169
  }
8729
9170
  }
8730
9171
  ),
8731
- /* @__PURE__ */ jsx32(
9172
+ /* @__PURE__ */ jsx33(
8732
9173
  KycModal,
8733
9174
  {
8734
9175
  open: isKycOpen,
@@ -8739,7 +9180,7 @@ var ConnectWalletButton = ({
8739
9180
  }
8740
9181
  }
8741
9182
  ),
8742
- /* @__PURE__ */ jsx32(
9183
+ /* @__PURE__ */ jsx33(
8743
9184
  AuthModal,
8744
9185
  {
8745
9186
  open: isAuthModalOpen,
@@ -8784,7 +9225,7 @@ var ConnectWalletButton = ({
8784
9225
  }
8785
9226
  }
8786
9227
  ),
8787
- /* @__PURE__ */ jsx32(
9228
+ /* @__PURE__ */ jsx33(
8788
9229
  TssManagerWithRef,
8789
9230
  {
8790
9231
  ref: tssManagerRef,
@@ -8802,7 +9243,7 @@ var ConnectWalletButton = ({
8802
9243
  };
8803
9244
 
8804
9245
  // src/components/ThemeToggle.tsx
8805
- import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
9246
+ import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
8806
9247
  var ThemeToggle = () => {
8807
9248
  const { config, updateConfig } = useLumiaPassportConfig();
8808
9249
  const currentTheme = config.ui.theme;
@@ -8847,7 +9288,7 @@ var ThemeToggle = () => {
8847
9288
  return "auto";
8848
9289
  }
8849
9290
  };
8850
- return /* @__PURE__ */ jsx33("div", { className: "lumia-scope", children: /* @__PURE__ */ jsxs24(
9291
+ return /* @__PURE__ */ jsx34("div", { className: "lumia-scope", children: /* @__PURE__ */ jsxs25(
8851
9292
  "button",
8852
9293
  {
8853
9294
  onClick: cycleTheme,
@@ -8863,29 +9304,29 @@ var ThemeToggle = () => {
8863
9304
  };
8864
9305
 
8865
9306
  // src/components/LumiaLogo.tsx
8866
- import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
9307
+ import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
8867
9308
  var LumiaLogo2 = ({ size = 80, className = "" }) => {
8868
- return /* @__PURE__ */ jsx34(
9309
+ return /* @__PURE__ */ jsx35(
8869
9310
  "div",
8870
9311
  {
8871
9312
  className: `flex items-center justify-center ${className}`,
8872
9313
  style: { width: size, height: size },
8873
- children: /* @__PURE__ */ jsxs25("svg", { viewBox: "0 0 512 512", width: size, height: size, children: [
8874
- /* @__PURE__ */ jsx34("circle", { cx: "256", cy: "256", r: "256", fill: "#060117", strokeWidth: "0" }),
8875
- /* @__PURE__ */ jsx34("path", { d: "M264.13948,48.01032l63.62778,132.2788,133.95322,68.65102h-147.34854s-48.55804-10.04649-50.23246-56.93012,0-143.99971,0-143.99971Z", fill: "#fefdff", strokeWidth: "0" }),
8876
- /* @__PURE__ */ jsx34("path", { d: "M50.27932,245.59045l132.27894-63.62734L251.20943,48.01032l-.00012,147.34824s-10.04654,48.55792-56.93019,50.23222c-46.88366,1.6743-143.9998-.00033-143.9998-.00033Z", fill: "#fefdff", strokeWidth: "0" }),
8877
- /* @__PURE__ */ jsx34("path", { d: "M247.86056,463.98968l-63.62772-132.27875-133.95315-68.65092,147.34848-.00011s48.55802,10.04646,50.23242,56.93008c1.6744,46.88362-.00004,143.9997-.00004,143.9997Z", fill: "#fefdff", strokeWidth: "0" }),
8878
- /* @__PURE__ */ jsx34("path", { d: "M461.72068,266.40941l-132.2789,63.62744-68.65118,133.95283.00016-147.34823s10.04655-48.55792,56.93018-50.23226c46.88364-1.67434,143.99974.00023,143.99974.00023Z", fill: "#fefdff", strokeWidth: "0" })
9314
+ children: /* @__PURE__ */ jsxs26("svg", { viewBox: "0 0 512 512", width: size, height: size, children: [
9315
+ /* @__PURE__ */ jsx35("circle", { cx: "256", cy: "256", r: "256", fill: "#060117", strokeWidth: "0" }),
9316
+ /* @__PURE__ */ jsx35("path", { d: "M264.13948,48.01032l63.62778,132.2788,133.95322,68.65102h-147.34854s-48.55804-10.04649-50.23246-56.93012,0-143.99971,0-143.99971Z", fill: "#fefdff", strokeWidth: "0" }),
9317
+ /* @__PURE__ */ jsx35("path", { d: "M50.27932,245.59045l132.27894-63.62734L251.20943,48.01032l-.00012,147.34824s-10.04654,48.55792-56.93019,50.23222c-46.88366,1.6743-143.9998-.00033-143.9998-.00033Z", fill: "#fefdff", strokeWidth: "0" }),
9318
+ /* @__PURE__ */ jsx35("path", { d: "M247.86056,463.98968l-63.62772-132.27875-133.95315-68.65092,147.34848-.00011s48.55802,10.04646,50.23242,56.93008c1.6744,46.88362-.00004,143.9997-.00004,143.9997Z", fill: "#fefdff", strokeWidth: "0" }),
9319
+ /* @__PURE__ */ jsx35("path", { d: "M461.72068,266.40941l-132.2789,63.62744-68.65118,133.95283.00016-147.34823s10.04655-48.55792,56.93018-50.23226c46.88364-1.67434,143.99974.00023,143.99974.00023Z", fill: "#fefdff", strokeWidth: "0" })
8879
9320
  ] })
8880
9321
  }
8881
9322
  );
8882
9323
  };
8883
9324
 
8884
9325
  // src/hooks/useTheme.ts
8885
- import { useMemo as useMemo4, useState as useState15, useEffect as useEffect12 } from "react";
9326
+ import { useMemo as useMemo6, useState as useState16, useEffect as useEffect13 } from "react";
8886
9327
  function useTheme2(configTheme) {
8887
- const [systemTheme, setSystemTheme] = useState15("light");
8888
- useEffect12(() => {
9328
+ const [systemTheme, setSystemTheme] = useState16("light");
9329
+ useEffect13(() => {
8889
9330
  if (typeof window === "undefined" || !window.matchMedia) return;
8890
9331
  const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
8891
9332
  const updateSystemTheme = () => {
@@ -8895,14 +9336,14 @@ function useTheme2(configTheme) {
8895
9336
  mediaQuery.addEventListener("change", updateSystemTheme);
8896
9337
  return () => mediaQuery.removeEventListener("change", updateSystemTheme);
8897
9338
  }, []);
8898
- const resolvedTheme = useMemo4(() => {
9339
+ const resolvedTheme = useMemo6(() => {
8899
9340
  if (configTheme === "auto") {
8900
9341
  return systemTheme;
8901
9342
  }
8902
9343
  return configTheme;
8903
9344
  }, [configTheme, systemTheme]);
8904
9345
  const isDark = resolvedTheme === "dark";
8905
- const themeClasses = useMemo4(
9346
+ const themeClasses = useMemo6(
8906
9347
  () => ({
8907
9348
  // Modal background
8908
9349
  modalBg: isDark ? "bg-gray-900" : "bg-white",
@@ -8938,9 +9379,9 @@ function useTheme2(configTheme) {
8938
9379
  }
8939
9380
 
8940
9381
  // src/internal/components/Hash.tsx
8941
- import * as React28 from "react";
9382
+ import * as React29 from "react";
8942
9383
  import { Copy as Copy6, ExternalLink as ExternalLink5 } from "lucide-react";
8943
- import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
9384
+ import { jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
8944
9385
  function toExplorerUrl(kind, value, chain) {
8945
9386
  const base2 = chain?.blockExplorers?.default?.url;
8946
9387
  if (!base2) return null;
@@ -8963,12 +9404,12 @@ var Hash = ({
8963
9404
  }) => {
8964
9405
  const value = hash || "";
8965
9406
  const explorer = toExplorerUrl(kind, value, chain || void 0);
8966
- const [copied, setCopied] = React28.useState(false);
8967
- if (!value) return /* @__PURE__ */ jsx35("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
8968
- return /* @__PURE__ */ jsxs26("div", { className: cn2("flex items-center gap-2", className), children: [
8969
- label && /* @__PURE__ */ jsx35("span", { className: "text-sm font-medium", children: label }),
8970
- /* @__PURE__ */ jsx35("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
8971
- showCopy && /* @__PURE__ */ jsx35(
9407
+ const [copied, setCopied] = React29.useState(false);
9408
+ if (!value) return /* @__PURE__ */ jsx36("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
9409
+ return /* @__PURE__ */ jsxs27("div", { className: cn2("flex items-center gap-2", className), children: [
9410
+ label && /* @__PURE__ */ jsx36("span", { className: "text-sm font-medium", children: label }),
9411
+ /* @__PURE__ */ jsx36("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
9412
+ showCopy && /* @__PURE__ */ jsx36(
8972
9413
  Button,
8973
9414
  {
8974
9415
  variant: "ghost",
@@ -8982,10 +9423,10 @@ var Hash = ({
8982
9423
  } catch {
8983
9424
  }
8984
9425
  },
8985
- children: /* @__PURE__ */ jsx35(Copy6, { className: "h-4 w-4" })
9426
+ children: /* @__PURE__ */ jsx36(Copy6, { className: "h-4 w-4" })
8986
9427
  }
8987
9428
  ),
8988
- showExplorer && explorer && /* @__PURE__ */ jsx35(
9429
+ showExplorer && explorer && /* @__PURE__ */ jsx36(
8989
9430
  "a",
8990
9431
  {
8991
9432
  href: explorer,
@@ -8993,7 +9434,7 @@ var Hash = ({
8993
9434
  rel: "noreferrer noopener",
8994
9435
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
8995
9436
  title: "Open in explorer",
8996
- children: /* @__PURE__ */ jsx35(ExternalLink5, { className: "h-4 w-4" })
9437
+ children: /* @__PURE__ */ jsx36(ExternalLink5, { className: "h-4 w-4" })
8997
9438
  }
8998
9439
  )
8999
9440
  ] });
@@ -9001,16 +9442,16 @@ var Hash = ({
9001
9442
 
9002
9443
  // src/internal/components/TransactionsList.tsx
9003
9444
  init_base();
9004
- import { useState as useState17, useEffect as useEffect13 } from "react";
9005
- import { jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
9445
+ import { useState as useState18, useEffect as useEffect14 } from "react";
9446
+ import { jsx as jsx37, jsxs as jsxs28 } from "react/jsx-runtime";
9006
9447
  var TransactionsList = ({
9007
9448
  address,
9008
9449
  itemsCount = 10
9009
9450
  }) => {
9010
- const [transactions, setTransactions] = useState17([]);
9011
- const [loading, setLoading] = useState17(true);
9012
- const [error, setError] = useState17(null);
9013
- useEffect13(() => {
9451
+ const [transactions, setTransactions] = useState18([]);
9452
+ const [loading, setLoading] = useState18(true);
9453
+ const [error, setError] = useState18(null);
9454
+ useEffect14(() => {
9014
9455
  const fetchTransactions = async () => {
9015
9456
  try {
9016
9457
  setLoading(true);
@@ -9056,15 +9497,15 @@ var TransactionsList = ({
9056
9497
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
9057
9498
  };
9058
9499
  if (loading) {
9059
- return /* @__PURE__ */ jsxs27("div", { className: "p-4 text-center", children: [
9060
- /* @__PURE__ */ jsx36("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
9061
- /* @__PURE__ */ jsx36("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
9500
+ return /* @__PURE__ */ jsxs28("div", { className: "p-4 text-center", children: [
9501
+ /* @__PURE__ */ jsx37("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
9502
+ /* @__PURE__ */ jsx37("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
9062
9503
  ] });
9063
9504
  }
9064
9505
  if (error) {
9065
- return /* @__PURE__ */ jsxs27("div", { className: "p-4 text-center", children: [
9066
- /* @__PURE__ */ jsx36("p", { className: "text-red-600 text-sm", children: error }),
9067
- /* @__PURE__ */ jsx36(
9506
+ return /* @__PURE__ */ jsxs28("div", { className: "p-4 text-center", children: [
9507
+ /* @__PURE__ */ jsx37("p", { className: "text-red-600 text-sm", children: error }),
9508
+ /* @__PURE__ */ jsx37(
9068
9509
  "button",
9069
9510
  {
9070
9511
  onClick: () => window.location.reload(),
@@ -9075,54 +9516,54 @@ var TransactionsList = ({
9075
9516
  ] });
9076
9517
  }
9077
9518
  if (transactions.length === 0) {
9078
- return /* @__PURE__ */ jsx36("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx36("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
9519
+ return /* @__PURE__ */ jsx37("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx37("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
9079
9520
  }
9080
- return /* @__PURE__ */ jsx36("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx36("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs27(
9521
+ return /* @__PURE__ */ jsx37("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx37("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs28(
9081
9522
  "div",
9082
9523
  {
9083
9524
  className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
9084
9525
  onClick: () => openTransaction(tx.hash),
9085
9526
  children: [
9086
- /* @__PURE__ */ jsxs27("div", { className: "flex justify-between items-start mb-2", children: [
9087
- /* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
9088
- /* @__PURE__ */ jsxs27("div", { className: "flex items-center space-x-2 mb-1", children: [
9089
- /* @__PURE__ */ jsx36("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress(tx.hash) }),
9090
- /* @__PURE__ */ jsx36("span", { className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`, children: tx.status === "ok" ? "Success" : "Failed" })
9527
+ /* @__PURE__ */ jsxs28("div", { className: "flex justify-between items-start mb-2", children: [
9528
+ /* @__PURE__ */ jsxs28("div", { className: "flex-1", children: [
9529
+ /* @__PURE__ */ jsxs28("div", { className: "flex items-center space-x-2 mb-1", children: [
9530
+ /* @__PURE__ */ jsx37("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress(tx.hash) }),
9531
+ /* @__PURE__ */ jsx37("span", { className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`, children: tx.status === "ok" ? "Success" : "Failed" })
9091
9532
  ] }),
9092
- /* @__PURE__ */ jsxs27("div", { className: "text-sm space-y-1", children: [
9093
- /* @__PURE__ */ jsxs27("div", { children: [
9094
- /* @__PURE__ */ jsx36("span", { className: "text-gray-600", children: "From:" }),
9095
- /* @__PURE__ */ jsxs27("span", { className: "font-mono ml-1", children: [
9533
+ /* @__PURE__ */ jsxs28("div", { className: "text-sm space-y-1", children: [
9534
+ /* @__PURE__ */ jsxs28("div", { children: [
9535
+ /* @__PURE__ */ jsx37("span", { className: "text-gray-600", children: "From:" }),
9536
+ /* @__PURE__ */ jsxs28("span", { className: "font-mono ml-1", children: [
9096
9537
  formatAddress(tx.from.hash),
9097
- tx.from.is_contract && /* @__PURE__ */ jsx36("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9538
+ tx.from.is_contract && /* @__PURE__ */ jsx37("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9098
9539
  ] })
9099
9540
  ] }),
9100
- /* @__PURE__ */ jsxs27("div", { children: [
9101
- /* @__PURE__ */ jsx36("span", { className: "text-gray-600", children: "To:" }),
9102
- /* @__PURE__ */ jsxs27("span", { className: "font-mono ml-1", children: [
9541
+ /* @__PURE__ */ jsxs28("div", { children: [
9542
+ /* @__PURE__ */ jsx37("span", { className: "text-gray-600", children: "To:" }),
9543
+ /* @__PURE__ */ jsxs28("span", { className: "font-mono ml-1", children: [
9103
9544
  formatAddress(tx.to.hash),
9104
- tx.to.is_contract && /* @__PURE__ */ jsx36("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9545
+ tx.to.is_contract && /* @__PURE__ */ jsx37("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9105
9546
  ] })
9106
9547
  ] }),
9107
- /* @__PURE__ */ jsxs27("div", { children: [
9108
- /* @__PURE__ */ jsx36("span", { className: "text-gray-600", children: "Value:" }),
9109
- /* @__PURE__ */ jsxs27("span", { className: "font-semibold ml-1", children: [
9548
+ /* @__PURE__ */ jsxs28("div", { children: [
9549
+ /* @__PURE__ */ jsx37("span", { className: "text-gray-600", children: "Value:" }),
9550
+ /* @__PURE__ */ jsxs28("span", { className: "font-semibold ml-1", children: [
9110
9551
  formatValue(tx.value),
9111
9552
  " LUMIA"
9112
9553
  ] })
9113
9554
  ] })
9114
9555
  ] })
9115
9556
  ] }),
9116
- /* @__PURE__ */ jsxs27("div", { className: "text-right text-xs text-gray-500", children: [
9117
- /* @__PURE__ */ jsx36("div", { children: formatDate2(tx.timestamp) }),
9118
- /* @__PURE__ */ jsxs27("div", { className: "mt-1", children: [
9557
+ /* @__PURE__ */ jsxs28("div", { className: "text-right text-xs text-gray-500", children: [
9558
+ /* @__PURE__ */ jsx37("div", { children: formatDate2(tx.timestamp) }),
9559
+ /* @__PURE__ */ jsxs28("div", { className: "mt-1", children: [
9119
9560
  "Gas: ",
9120
9561
  parseInt(tx.gas_used).toLocaleString()
9121
9562
  ] }),
9122
- tx.method && /* @__PURE__ */ jsx36("div", { className: "mt-1 text-blue-600", children: tx.method })
9563
+ tx.method && /* @__PURE__ */ jsx37("div", { className: "mt-1 text-blue-600", children: tx.method })
9123
9564
  ] })
9124
9565
  ] }),
9125
- tx.transaction_types.length > 0 && /* @__PURE__ */ jsx36("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx36(
9566
+ tx.transaction_types.length > 0 && /* @__PURE__ */ jsx37("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx37(
9126
9567
  "span",
9127
9568
  {
9128
9569
  className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full",
@@ -9136,247 +9577,6 @@ var TransactionsList = ({
9136
9577
  )) }) });
9137
9578
  };
9138
9579
 
9139
- // src/internal/components/KeyshareBackup.tsx
9140
- import * as React30 from "react";
9141
- import { Shield as Shield5, Server as Server4, CheckCircle2 as CheckCircle28, AlertCircle as AlertCircle5, Key as Key5, X as X3, Eye as Eye3, EyeOff as EyeOff3, Download as Download2, Cloud as Cloud4, Lock as Lock3 } from "lucide-react";
9142
- init_vaultClient();
9143
- import { Fragment as Fragment7, jsx as jsx37, jsxs as jsxs28 } from "react/jsx-runtime";
9144
- function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
9145
- const [backupStatus, setBackupStatus] = React30.useState(() => getBackupStatus(userId));
9146
- const [loading, setLoading] = React30.useState({
9147
- server: false,
9148
- cloud: false,
9149
- local: false
9150
- });
9151
- const [error, setError] = React30.useState(null);
9152
- const [success, setSuccess] = React30.useState(null);
9153
- const [showPassword, setShowPassword] = React30.useState(false);
9154
- const [useCustomPassword, setUseCustomPassword] = React30.useState(false);
9155
- const [customPassword, setCustomPassword] = React30.useState("");
9156
- const [cloudProviders, setCloudProviders] = React30.useState([]);
9157
- const [selectedCloudProvider, setSelectedCloudProvider] = React30.useState(null);
9158
- const hasKeyshareData = React30.useMemo(() => {
9159
- return !!getCurrentKeyshareBackupData(userId);
9160
- }, [userId]);
9161
- React30.useEffect(() => {
9162
- getAvailableCloudProviders2().then((providers) => {
9163
- setCloudProviders(providers);
9164
- if (providers.length > 0 && !selectedCloudProvider) {
9165
- setSelectedCloudProvider(providers[0].id);
9166
- }
9167
- });
9168
- }, [selectedCloudProvider]);
9169
- const refreshStatus = React30.useCallback(() => {
9170
- setBackupStatus(getBackupStatus(userId));
9171
- }, [userId]);
9172
- React30.useEffect(() => {
9173
- refreshStatus();
9174
- }, [refreshStatus]);
9175
- const handleBackup = async (method) => {
9176
- setLoading((prev) => ({ ...prev, [method]: true }));
9177
- setError(null);
9178
- setSuccess(null);
9179
- try {
9180
- const password = useCustomPassword ? customPassword : void 0;
9181
- switch (method) {
9182
- case "server":
9183
- await backupToServer(userId, password);
9184
- setSuccess("Successfully created server backup");
9185
- break;
9186
- case "cloud": {
9187
- await backupToCloud(userId, password, selectedCloudProvider || void 0);
9188
- setSuccess(`Successfully created cloud backup`);
9189
- const updatedProviders = await getAvailableCloudProviders2();
9190
- setCloudProviders(updatedProviders);
9191
- break;
9192
- }
9193
- case "local":
9194
- await backupToLocalFile(userId, password);
9195
- setSuccess("Backup file downloaded successfully");
9196
- break;
9197
- }
9198
- refreshStatus();
9199
- setTimeout(() => {
9200
- if (typeof window !== "undefined") {
9201
- window.dispatchEvent(
9202
- new CustomEvent("lumia-passport-backup-status-changed", {
9203
- detail: { method, success: true }
9204
- })
9205
- );
9206
- }
9207
- onBackupSuccess?.();
9208
- }, 100);
9209
- } catch (err) {
9210
- const errorMsg = err instanceof Error ? err.message : "Backup creation failed";
9211
- setError(errorMsg);
9212
- updateBackupStatus(userId, method, { error: errorMsg });
9213
- refreshStatus();
9214
- } finally {
9215
- setLoading((prev) => ({ ...prev, [method]: false }));
9216
- }
9217
- };
9218
- const formatLastBackup = (timestamp) => {
9219
- if (!timestamp) return "Never";
9220
- const date = new Date(timestamp);
9221
- return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
9222
- };
9223
- return /* @__PURE__ */ jsxs28(Card, { className: "border-green-200 bg-green-50", children: [
9224
- /* @__PURE__ */ jsx37(CardHeader, { className: "pb-4", children: /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between", children: [
9225
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3", children: [
9226
- /* @__PURE__ */ jsx37(Shield5, { className: "h-6 w-6 text-green-600" }),
9227
- /* @__PURE__ */ jsxs28("div", { children: [
9228
- /* @__PURE__ */ jsx37(CardTitle, { className: "text-lg", children: "Create Backup" }),
9229
- /* @__PURE__ */ jsx37(CardDescription, { className: "text-sm", children: "Secure your keyshare with encrypted backups" })
9230
- ] })
9231
- ] }),
9232
- onClose && /* @__PURE__ */ jsx37("button", { onClick: onClose, className: "p-1 rounded bg-red-100 text-red-600 hover:bg-red-200 transition-colors", title: "Close", children: /* @__PURE__ */ jsx37(X3, { className: "h-4 w-4" }) })
9233
- ] }) }),
9234
- /* @__PURE__ */ jsxs28(CardContent, { className: "space-y-6", children: [
9235
- error && /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2 p-3 rounded bg-red-50 border border-red-200 text-red-700 text-sm", children: [
9236
- /* @__PURE__ */ jsx37(AlertCircle5, { className: "h-4 w-4 flex-shrink-0" }),
9237
- /* @__PURE__ */ jsx37("span", { children: error })
9238
- ] }),
9239
- success && /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2 p-3 rounded bg-green-50 border border-green-200 text-green-700 text-sm", children: [
9240
- /* @__PURE__ */ jsx37(CheckCircle28, { className: "h-4 w-4 flex-shrink-0" }),
9241
- /* @__PURE__ */ jsx37("span", { children: success })
9242
- ] }),
9243
- /* @__PURE__ */ jsxs28("div", { className: "space-y-3", children: [
9244
- /* @__PURE__ */ jsx37("div", { className: "text-sm font-medium text-gray-700", children: "Encryption Method:" }),
9245
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
9246
- /* @__PURE__ */ jsx37(
9247
- "input",
9248
- {
9249
- type: "checkbox",
9250
- id: "use-backup-password",
9251
- checked: useCustomPassword,
9252
- onChange: (e) => setUseCustomPassword(e.target.checked),
9253
- className: "rounded"
9254
- }
9255
- ),
9256
- /* @__PURE__ */ jsx37("label", { htmlFor: "use-backup-password", className: "text-sm font-medium", children: "Use custom password instead of passkey" })
9257
- ] }),
9258
- !useCustomPassword && /* @__PURE__ */ jsx37("div", { className: "p-3 bg-blue-50 border border-blue-200 rounded text-sm text-blue-700", children: /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
9259
- /* @__PURE__ */ jsx37(Key5, { className: "h-4 w-4" }),
9260
- /* @__PURE__ */ jsx37("span", { children: "Your passkey will be used to encrypt the backup securely" })
9261
- ] }) }),
9262
- useCustomPassword && /* @__PURE__ */ jsxs28("div", { className: "relative", children: [
9263
- /* @__PURE__ */ jsx37(
9264
- Input,
9265
- {
9266
- type: showPassword ? "text" : "password",
9267
- placeholder: "Enter backup encryption password",
9268
- value: customPassword,
9269
- onChange: (e) => setCustomPassword(e.target.value),
9270
- className: "pr-10"
9271
- }
9272
- ),
9273
- /* @__PURE__ */ jsx37(
9274
- "button",
9275
- {
9276
- type: "button",
9277
- onClick: () => setShowPassword(!showPassword),
9278
- className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-500 hover:text-gray-700",
9279
- children: showPassword ? /* @__PURE__ */ jsx37(EyeOff3, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx37(Eye3, { className: "h-4 w-4" })
9280
- }
9281
- )
9282
- ] })
9283
- ] }),
9284
- /* @__PURE__ */ jsxs28("div", { className: "space-y-4", children: [
9285
- /* @__PURE__ */ jsx37("div", { className: "text-sm font-medium text-gray-700", children: "Choose Backup Method:" }),
9286
- /* @__PURE__ */ jsxs28("div", { className: "p-4 rounded-lg border border-blue-200 bg-blue-50/50", children: [
9287
- /* @__PURE__ */ jsx37("div", { className: "flex items-center justify-between mb-3", children: /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3", children: [
9288
- /* @__PURE__ */ jsx37(Server4, { className: "h-5 w-5 text-blue-600" }),
9289
- /* @__PURE__ */ jsxs28("div", { children: [
9290
- /* @__PURE__ */ jsx37("div", { className: "font-medium text-sm", children: "Server Backup" }),
9291
- /* @__PURE__ */ jsx37("div", { className: "text-xs text-gray-600", children: "Store encrypted backup on secure server" })
9292
- ] })
9293
- ] }) }),
9294
- /* @__PURE__ */ jsx37(
9295
- Button,
9296
- {
9297
- onClick: () => handleBackup("server"),
9298
- disabled: loading.server || useCustomPassword && !customPassword || !hasKeyshareData,
9299
- className: "px-4 py-2",
9300
- children: loading.server ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
9301
- }
9302
- ),
9303
- /* @__PURE__ */ jsxs28("div", { className: "text-xs text-gray-600 mt-2", children: [
9304
- "Encrypted backup stored on secure server \u2022 Last: ",
9305
- formatLastBackup(backupStatus.server.lastBackup)
9306
- ] })
9307
- ] }),
9308
- /* @__PURE__ */ jsxs28("div", { className: "p-4 rounded-lg border border-sky-200 bg-sky-50/50", children: [
9309
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3 mb-3", children: [
9310
- /* @__PURE__ */ jsx37(Cloud4, { className: "h-5 w-5 text-sky-600" }),
9311
- /* @__PURE__ */ jsxs28("div", { children: [
9312
- /* @__PURE__ */ jsx37("div", { className: "font-medium text-sm", children: "Cloud Backup" }),
9313
- /* @__PURE__ */ jsx37("div", { className: "text-xs text-gray-600", children: "Store encrypted backup in cloud storage" })
9314
- ] })
9315
- ] }),
9316
- cloudProviders.length > 1 && /* @__PURE__ */ jsx37("div", { className: "mb-3", children: /* @__PURE__ */ jsx37(
9317
- "select",
9318
- {
9319
- value: selectedCloudProvider || "",
9320
- onChange: (e) => setSelectedCloudProvider(e.target.value),
9321
- className: "text-sm border rounded px-2 py-1 w-full",
9322
- children: cloudProviders.map((provider) => /* @__PURE__ */ jsxs28("option", { value: provider.id, children: [
9323
- provider.icon,
9324
- " ",
9325
- provider.name,
9326
- " ",
9327
- provider.isAuthenticated ? "\u2713" : ""
9328
- ] }, provider.id))
9329
- }
9330
- ) }),
9331
- /* @__PURE__ */ jsx37(
9332
- Button,
9333
- {
9334
- onClick: () => handleBackup("cloud"),
9335
- disabled: loading.cloud || useCustomPassword && !customPassword || !hasKeyshareData || cloudProviders.length === 0,
9336
- className: "px-4 py-2",
9337
- children: loading.cloud ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
9338
- }
9339
- ),
9340
- /* @__PURE__ */ jsx37("div", { className: "text-xs text-gray-600 mt-2", children: cloudProviders.length > 0 ? `Direct backup to ${cloudProviders.find((p) => p.id === selectedCloudProvider)?.name || "cloud storage"} \u2022 Last: ${formatLastBackup(backupStatus.cloud.lastBackup)}` : `No cloud providers configured \u2022 Last: ${formatLastBackup(backupStatus.cloud.lastBackup)}` })
9341
- ] }),
9342
- /* @__PURE__ */ jsxs28("div", { className: "p-4 rounded-lg border border-purple-200 bg-purple-50/50", children: [
9343
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3 mb-3", children: [
9344
- /* @__PURE__ */ jsx37(Download2, { className: "h-5 w-5 text-purple-600" }),
9345
- /* @__PURE__ */ jsxs28("div", { children: [
9346
- /* @__PURE__ */ jsx37("div", { className: "font-medium text-sm", children: "File Backup" }),
9347
- /* @__PURE__ */ jsx37("div", { className: "text-xs text-gray-600", children: "Download encrypted backup file to your device" })
9348
- ] })
9349
- ] }),
9350
- /* @__PURE__ */ jsx37(
9351
- Button,
9352
- {
9353
- onClick: () => handleBackup("local"),
9354
- disabled: loading.local || useCustomPassword && !customPassword || !hasKeyshareData,
9355
- className: "w-full",
9356
- children: loading.local ? "Creating..." : useCustomPassword ? "Create & Download" : "Create & Download with Passkey"
9357
- }
9358
- ),
9359
- /* @__PURE__ */ jsxs28("div", { className: "text-xs text-gray-600 mt-2", children: [
9360
- "Download encrypted backup file to your device \u2022 Last: ",
9361
- formatLastBackup(backupStatus.local.lastBackup)
9362
- ] })
9363
- ] })
9364
- ] }),
9365
- /* @__PURE__ */ jsxs28("div", { className: "flex items-start gap-2 p-3 bg-amber-50 border border-amber-200 rounded text-amber-800 text-xs", children: [
9366
- /* @__PURE__ */ jsx37(Lock3, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
9367
- /* @__PURE__ */ jsxs28("div", { children: [
9368
- /* @__PURE__ */ jsx37("div", { className: "font-medium", children: "Security Notice" }),
9369
- /* @__PURE__ */ jsxs28("div", { className: "mt-1", children: [
9370
- useCustomPassword ? /* @__PURE__ */ jsx37(Fragment7, { children: "All backups are encrypted with AES-256 using your custom password. Store your password securely - without it, backups cannot be restored." }) : /* @__PURE__ */ jsx37(Fragment7, { children: "All backups are encrypted with AES-256 using your passkey. Your passkey authenticator (device/biometrics) is required to restore backups." }),
9371
- " ",
9372
- "Without backup access, you cannot recover your smart account if you lose this device."
9373
- ] })
9374
- ] })
9375
- ] })
9376
- ] })
9377
- ] });
9378
- }
9379
-
9380
9580
  // src/hooks/useUserOpStatus.ts
9381
9581
  init_base();
9382
9582
  import * as React31 from "react";