@lumiapassport/ui-kit 1.3.4 → 1.4.2

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
@@ -3524,7 +3524,7 @@ var init_clients = __esm({
3524
3524
  });
3525
3525
 
3526
3526
  // src/styles/built.css
3527
- 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}';
3527
+ 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-\\[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-amber-900\\/60{border-color:rgba(120,53,15,.6)}.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-800{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.lumia-scope .border-blue-800\\/60{border-color:rgba(30,64,175,.6)}.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-blue-900\\/60{border-color:rgba(30,58,138,.6)}.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-green-900\\/50{border-color:rgba(20,83,45,.5)}.lumia-scope .border-green-900\\/60{border-color:rgba(20,83,45,.6)}.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-800{--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.lumia-scope .border-orange-800\\/60{border-color:rgba(154,52,18,.6)}.lumia-scope .border-orange-900{--tw-border-opacity:1;border-color:rgb(124 45 18/var(--tw-border-opacity,1))}.lumia-scope .border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800{--tw-border-opacity:1;border-color:rgb(107 33 168/var(--tw-border-opacity,1))}.lumia-scope .border-purple-800\\/60{border-color:rgba(107,33,168,.6)}.lumia-scope .border-purple-900{--tw-border-opacity:1;border-color:rgb(88 28 135/var(--tw-border-opacity,1))}.lumia-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.lumia-scope .border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.lumia-scope .border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.lumia-scope .border-red-900\\/60{border-color:rgba(127,29,29,.6)}.lumia-scope .border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.lumia-scope .border-sky-800\\/60{border-color:rgba(7,89,133,.6)}.lumia-scope .border-sky-900{--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.lumia-scope .border-transparent{border-color:transparent}.lumia-scope .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.lumia-scope .border-t-transparent{border-top-color:transparent}.lumia-scope .\\!bg-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-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.lumia-scope .bg-amber-950\\/50{background-color:rgba(69,26,3,.5)}.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-blue-950{--tw-bg-opacity:1;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.lumia-scope .bg-blue-950\\/50{background-color:rgba(23,37,84,.5)}.lumia-scope .bg-blue-950\\/60{background-color:rgba(23,37,84,.6)}.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-green-950{--tw-bg-opacity:1;background-color:rgb(5 46 22/var(--tw-bg-opacity,1))}.lumia-scope .bg-green-950\\/50{background-color:rgba(5,46,22,.5)}.lumia-scope .bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-800\\/50{background-color:rgba(154,52,18,.5)}.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\\/30{background-color:rgba(124,45,18,.3)}.lumia-scope .bg-orange-950{--tw-bg-opacity:1;background-color:rgb(67 20 7/var(--tw-bg-opacity,1))}.lumia-scope .bg-orange-950\\/80{background-color:rgba(67,20,7,.8)}.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-purple-950{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.lumia-scope .bg-purple-950\\/60{background-color:rgba(59,7,100,.6)}.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-red-900\\/40{background-color:rgba(127,29,29,.4)}.lumia-scope .bg-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.lumia-scope .bg-red-950\\/50{background-color:rgba(69,10,10,.5)}.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-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.lumia-scope .bg-sky-950\\/60{background-color:rgba(8,47,73,.6)}.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-200{--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.lumia-scope .text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.lumia-scope .text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.lumia-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.lumia-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.lumia-scope .text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.lumia-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.lumia-scope .text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.lumia-scope .text-muted-foreground{color:hsl(var(--muted-foreground))}.lumia-scope .text-orange-100{--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.lumia-scope .text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.lumia-scope .text-orange-300\\/90{color:hsla(31,97%,72%,.9)}.lumia-scope .text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.lumia-scope .text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.lumia-scope .text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.lumia-scope .text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.lumia-scope .text-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 .\\[background\\:var\\(--lumia-bg\\)\\]{background:var(--lumia-bg)}.lumia-scope .\\[border-color\\:var\\(--lumia-border\\)\\]{border-color:var(--lumia-border)}.lumia-scope .\\[color\\:var\\(--lumia-text\\)\\]{color:var(--lumia-text)}.lumia-scope .\\[color\\:var\\(--lumia-text-muted\\)\\]{color:var(--lumia-text-muted)}.lumia-scope .\\[color\\:var\\(--lumia-text-secondary\\)\\]{color:var(--lumia-text-secondary)}.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-700\\/60:hover{background-color:rgba(194,65,12,.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-red-900\\/60:hover{background-color:rgba(127,29,29,.6)}.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}';
3528
3528
 
3529
3529
  // src/context/LumiaPassportContext.tsx
3530
3530
  init_lumiaPassport();
@@ -3906,7 +3906,7 @@ var rainbowTheme = {
3906
3906
 
3907
3907
  // src/internal/hooks/useTheme.ts
3908
3908
  import { useMemo, useState as useState2, useEffect as useEffect2 } from "react";
3909
- function useTheme(configTheme) {
3909
+ function useTheme(configTheme, customColors) {
3910
3910
  const [systemTheme, setSystemTheme] = useState2("light");
3911
3911
  useEffect2(() => {
3912
3912
  if (typeof window === "undefined" || !window.matchMedia) return;
@@ -3918,43 +3918,83 @@ function useTheme(configTheme) {
3918
3918
  }, []);
3919
3919
  const resolvedTheme = useMemo(() => configTheme === "auto" ? systemTheme : configTheme, [configTheme, systemTheme]);
3920
3920
  const isDark = resolvedTheme === "dark";
3921
+ const currentCustomColors = useMemo(() => {
3922
+ return isDark ? customColors?.dark : customColors?.light;
3923
+ }, [isDark, customColors]);
3924
+ useEffect2(() => {
3925
+ if (typeof document === "undefined") return;
3926
+ const root = document.documentElement;
3927
+ if (currentCustomColors?.background) {
3928
+ root.style.setProperty("--lumia-bg", currentCustomColors.background);
3929
+ } else {
3930
+ root.style.removeProperty("--lumia-bg");
3931
+ }
3932
+ if (currentCustomColors?.text) {
3933
+ root.style.setProperty("--lumia-text", currentCustomColors.text);
3934
+ } else {
3935
+ root.style.removeProperty("--lumia-text");
3936
+ }
3937
+ if (currentCustomColors?.textSecondary) {
3938
+ root.style.setProperty("--lumia-text-secondary", currentCustomColors.textSecondary);
3939
+ } else {
3940
+ root.style.removeProperty("--lumia-text-secondary");
3941
+ }
3942
+ if (currentCustomColors?.textMuted) {
3943
+ root.style.setProperty("--lumia-text-muted", currentCustomColors.textMuted);
3944
+ } else {
3945
+ root.style.removeProperty("--lumia-text-muted");
3946
+ }
3947
+ if (currentCustomColors?.border) {
3948
+ root.style.setProperty("--lumia-border", currentCustomColors.border);
3949
+ } else {
3950
+ root.style.removeProperty("--lumia-border");
3951
+ }
3952
+ }, [currentCustomColors]);
3921
3953
  const themeClasses = useMemo(
3922
- () => ({
3923
- bg: isDark ? "bg-gray-900" : "bg-white",
3924
- // Alias for modalBg for backwards compatibility
3925
- modalBg: isDark ? "bg-gray-900" : "bg-white",
3926
- titleText: isDark ? "text-white" : "text-gray-900",
3927
- text: isDark ? "text-white" : "text-gray-900",
3928
- // Alias for titleText
3929
- bodyText: isDark ? "text-gray-300" : "text-gray-600",
3930
- mutedText: isDark ? "text-gray-400" : "text-gray-500",
3931
- linkText: isDark ? "text-gray-200 hover:text-blue-400" : "text-gray-700 hover:text-blue-600",
3932
- inputBg: isDark ? "bg-gray-700 border-gray-600" : "bg-white border-gray-300",
3933
- inputText: isDark ? "text-white placeholder:text-gray-400" : "text-gray-900 placeholder:text-gray-400",
3934
- // Primary CTA (Passkey sign-in) — brighter blue + hover
3935
- primaryBtn: isDark ? "bg-[#2456f0] hover:bg-[#1e49d8] text-white" : "bg-[#2456f0] hover:bg-[#1e49d8] text-white",
3936
- // Neutral secondary to avoid unintended pink accents
3937
- secondaryBtn: isDark ? "bg-gray-700 hover:bg-gray-600 text-white" : "bg-gray-100 hover:bg-gray-200 text-gray-700",
3938
- // Pink CTA used for email Continue like in old design
3939
- ctaBtn: isDark ? "bg-[#db2777] hover:bg-[#be185d] text-white" : "bg-[#fde2f3] hover:bg-[#f7c1df] text-gray-600",
3940
- // Outline buttons (Create Passkey) subtle hover
3941
- outlineBtn: isDark ? "bg-gray-700 border-gray-600 hover:bg-gray-600 text-gray-200" : "bg-white border-gray-200 hover:bg-gray-100 text-gray-700",
3942
- actionBtn: isDark ? "bg-gray-700 hover:bg-gray-600 text-gray-200" : "bg-gray-100 hover:bg-gray-200 text-gray-900",
3943
- divider: isDark ? "border-gray-600" : "border-gray-200",
3944
- errorText: isDark ? "text-red-400" : "text-red-500",
3945
- successText: isDark ? "text-green-400" : "text-blue-600",
3946
- iconColor: isDark ? "text-gray-300" : "text-gray-600",
3947
- // CSS variable-based classes for better theming
3948
- cssVars: {
3949
- modalBg: "lumia-bg-primary",
3950
- text: "lumia-text-primary",
3951
- textSecondary: "lumia-text-secondary",
3952
- textMuted: "lumia-text-muted",
3953
- bgSecondary: "lumia-bg-secondary",
3954
- border: "lumia-border-primary"
3955
- }
3956
- }),
3957
- [isDark]
3954
+ () => {
3955
+ const hasCustom = !!currentCustomColors;
3956
+ const background = hasCustom && currentCustomColors?.background ? "[background:var(--lumia-bg)]" : isDark ? "bg-gray-900" : "bg-white";
3957
+ const text = hasCustom && currentCustomColors?.text ? "[color:var(--lumia-text)]" : isDark ? "text-white" : "text-gray-900";
3958
+ const textSecondary = hasCustom && currentCustomColors?.textSecondary ? "[color:var(--lumia-text-secondary)]" : isDark ? "text-gray-300" : "text-gray-600";
3959
+ const textMuted = hasCustom && currentCustomColors?.textMuted ? "[color:var(--lumia-text-muted)]" : isDark ? "text-gray-400" : "text-gray-500";
3960
+ const border = hasCustom && currentCustomColors?.border ? "[border-color:var(--lumia-border)]" : isDark ? "border-gray-600" : "border-gray-200";
3961
+ return {
3962
+ bg: background,
3963
+ // Alias for modalBg for backwards compatibility
3964
+ modalBg: background,
3965
+ titleText: text,
3966
+ text,
3967
+ // Alias for titleText
3968
+ bodyText: textSecondary,
3969
+ mutedText: textMuted,
3970
+ linkText: isDark ? "text-gray-200 hover:text-blue-400" : "text-gray-700 hover:text-blue-600",
3971
+ inputBg: isDark ? "bg-gray-700 border-gray-600" : "bg-white border-gray-300",
3972
+ inputText: isDark ? "text-white placeholder:text-gray-400" : "text-gray-900 placeholder:text-gray-400",
3973
+ // Primary CTA (Passkey sign-in) brighter blue + hover
3974
+ primaryBtn: isDark ? "bg-[#2456f0] hover:bg-[#1e49d8] text-white" : "bg-[#2456f0] hover:bg-[#1e49d8] text-white",
3975
+ // Neutral secondary to avoid unintended pink accents
3976
+ secondaryBtn: isDark ? "bg-gray-700 hover:bg-gray-600 text-white" : "bg-gray-100 hover:bg-gray-200 text-gray-700",
3977
+ // Pink CTA used for email Continue like in old design
3978
+ ctaBtn: isDark ? "bg-[#db2777] hover:bg-[#be185d] text-white" : "bg-[#fde2f3] hover:bg-[#f7c1df] text-gray-600",
3979
+ // Outline buttons (Create Passkey) subtle hover
3980
+ outlineBtn: isDark ? "bg-gray-700 border-gray-600 hover:bg-gray-600 text-gray-200" : "bg-white border-gray-200 hover:bg-gray-100 text-gray-700",
3981
+ actionBtn: isDark ? "bg-gray-700 hover:bg-gray-600 text-gray-200" : "bg-gray-100 hover:bg-gray-200 text-gray-900",
3982
+ divider: border,
3983
+ errorText: isDark ? "text-red-400" : "text-red-500",
3984
+ successText: isDark ? "text-green-400" : "text-blue-600",
3985
+ iconColor: textMuted,
3986
+ // CSS variable-based classes for better theming
3987
+ cssVars: {
3988
+ modalBg: "lumia-bg-primary",
3989
+ text: "lumia-text-primary",
3990
+ textSecondary: "lumia-text-secondary",
3991
+ textMuted: "lumia-text-muted",
3992
+ bgSecondary: "lumia-bg-secondary",
3993
+ border: "lumia-border-primary"
3994
+ }
3995
+ };
3996
+ },
3997
+ [isDark, currentCustomColors]
3958
3998
  );
3959
3999
  return { theme: resolvedTheme, isDark, classes: themeClasses };
3960
4000
  }
@@ -3963,7 +4003,7 @@ function useTheme(configTheme) {
3963
4003
  import { Fragment, jsx as jsx5 } from "react/jsx-runtime";
3964
4004
  var LumiaRainbowKitProvider = ({ children }) => {
3965
4005
  const { config } = useLumiaPassportConfig();
3966
- const { isDark } = useTheme(config.ui.theme);
4006
+ const { isDark } = useTheme(config.ui.theme, config.ui.colors);
3967
4007
  const rainbowConfig2 = React3.useMemo(() => {
3968
4008
  return createRainbowConfig(config.wallet?.walletConnectProjectId);
3969
4009
  }, [config.wallet?.walletConnectProjectId]);
@@ -4000,7 +4040,7 @@ var LumiaRainbowKitProvider = ({ children }) => {
4000
4040
  };
4001
4041
 
4002
4042
  // src/components/ConnectWalletButton.tsx
4003
- import React28 from "react";
4043
+ import React27 from "react";
4004
4044
  import { flushSync } from "react-dom";
4005
4045
  import { useBalance as useBalance3 } from "wagmi";
4006
4046
 
@@ -4197,7 +4237,7 @@ var ErrorAlert = ({
4197
4237
  actionText = "OK"
4198
4238
  }) => {
4199
4239
  const { config } = useLumiaPassportConfig();
4200
- const { isDark, classes: theme } = useTheme(config.ui.theme);
4240
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
4201
4241
  return /* @__PURE__ */ jsx10(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs4(AlertDialogContent, { className: `lumia-scope max-w-md ${theme.modalBg} ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
4202
4242
  /* @__PURE__ */ jsxs4(AlertDialogHeader, { children: [
4203
4243
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 mb-2", children: [
@@ -4257,7 +4297,7 @@ var LumiaLogo = ({ size = 25, className = "" }) => {
4257
4297
  import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
4258
4298
  var SuccessScreen = () => {
4259
4299
  const { config } = useLumiaPassportConfig();
4260
- const { classes: theme } = useTheme(config.ui.theme);
4300
+ const { classes: theme } = useTheme(config.ui.theme, config.ui.colors);
4261
4301
  return /* @__PURE__ */ jsxs6("div", { className: "text-center", children: [
4262
4302
  /* @__PURE__ */ jsx12("div", { className: "w-16 h-16 rounded-full bg-green-100 text-green-600 flex items-center justify-center mx-auto mb-4", children: "\u2713" }),
4263
4303
  /* @__PURE__ */ jsx12("div", { className: `text-lg font-medium ${theme.titleText}`, children: "Success" })
@@ -4268,7 +4308,7 @@ var SuccessScreen = () => {
4268
4308
  import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
4269
4309
  var TermsOfService = ({ open, onOpenChange }) => {
4270
4310
  const { config } = useLumiaPassportConfig();
4271
- const { isDark, classes: theme } = useTheme(config.ui.theme);
4311
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
4272
4312
  return /* @__PURE__ */ jsx13(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs7(
4273
4313
  DialogContent,
4274
4314
  {
@@ -4341,7 +4381,7 @@ init_iframe_manager();
4341
4381
  import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
4342
4382
  function KeyshareRestore({ userId, onClose, onRestoreSuccess }) {
4343
4383
  const { config } = useLumiaPassportConfig();
4344
- const { isDark } = useTheme(config.ui.theme);
4384
+ const { isDark } = useTheme(config.ui.theme, config.ui.colors);
4345
4385
  const [loading, setLoading] = React10.useState({ server: false, file: false });
4346
4386
  const [error, setError] = React10.useState(null);
4347
4387
  const [success, setSuccess] = React10.useState(null);
@@ -4684,7 +4724,7 @@ import { useEffect as useEffect4, useMemo as useMemo3, useRef, useState as useSt
4684
4724
  import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
4685
4725
  var VerificationCodeInput = ({ onVerifyCode, onResendCode, isLoading, expiresIn, error }) => {
4686
4726
  const { config } = useLumiaPassportConfig();
4687
- const { classes: theme } = useTheme(config.ui.theme);
4727
+ const { classes: theme } = useTheme(config.ui.theme, config.ui.colors);
4688
4728
  const [timeLeft, setTimeLeft] = useState4(expiresIn);
4689
4729
  useEffect4(() => {
4690
4730
  setTimeLeft(expiresIn);
@@ -4833,7 +4873,7 @@ var DisplayNameInput = ({ onComplete, onSkip }) => {
4833
4873
  const [isLoading, setIsLoading] = useState5(false);
4834
4874
  const [error, setError] = useState5("");
4835
4875
  const { config } = useLumiaPassportConfig();
4836
- const { classes: theme } = useTheme(config.ui.theme);
4876
+ const { classes: theme } = useTheme(config.ui.theme, config.ui.colors);
4837
4877
  const handleSubmit = async (e) => {
4838
4878
  e.preventDefault();
4839
4879
  if (!displayName.trim()) {
@@ -4937,7 +4977,7 @@ var AuthModal = ({ open, onOpenChange, onAuthSuccess, autoCloseOnSuccess = true,
4937
4977
  return createPasskeyHelpers("");
4938
4978
  }, []);
4939
4979
  const { config } = useLumiaPassportConfig();
4940
- const { classes: theme, isDark } = useTheme(config.ui.theme);
4980
+ const { classes: theme, isDark } = useTheme(config.ui.theme, config.ui.colors);
4941
4981
  const checkDisplayNameRequired = React13.useCallback(async () => {
4942
4982
  if (!config.features.displayNameNeeded) {
4943
4983
  return false;
@@ -5805,7 +5845,7 @@ var ManageWallet = ({ open, onOpenChange, onBack }) => {
5805
5845
  const [expiresIn, setExpiresIn] = useState7(300);
5806
5846
  const [verificationError, setVerificationError] = useState7("");
5807
5847
  const { config, callbacks } = useLumiaPassportConfig();
5808
- const { isDark, classes: theme } = useTheme(config.ui.theme);
5848
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
5809
5849
  const telegramContainerRef = React16.useRef(null);
5810
5850
  const [isWalletLinking, setIsWalletLinking] = useState7(false);
5811
5851
  const [providersJustUpdated, setProvidersJustUpdated] = useState7(false);
@@ -6262,303 +6302,30 @@ var ManageWallet = ({ open, onOpenChange, onBack }) => {
6262
6302
  };
6263
6303
 
6264
6304
  // src/internal/components/SecurityModal.tsx
6265
- import React18 from "react";
6305
+ import React17 from "react";
6266
6306
  init_auth();
6267
6307
  init_keyshare();
6268
6308
  init_vaultClient();
6269
- import { Cloud as Cloud2, Laptop, Shield as Shield3, AlertTriangle as AlertTriangle3, CheckCircle2 as CheckCircle23, Server as Server3, HardDrive, RefreshCw as RefreshCw2, Key as Key4, ArrowLeft as ArrowLeft4, Plus, Trash2 as Trash22 } from "lucide-react";
6270
-
6271
- // src/internal/components/BackupForm.tsx
6272
- import * as React17 from "react";
6273
- import { Shield as Shield2, Server as Server2, CheckCircle2 as CheckCircle22, AlertCircle as AlertCircle2, Key as Key3, Eye as Eye2, EyeOff as EyeOff2, Download, Cloud, Lock } from "lucide-react";
6274
- init_vaultClient();
6275
- import { Fragment as Fragment5, jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
6276
- function BackupForm({ userId, onBackupSuccess }) {
6277
- const { config } = useLumiaPassportConfig();
6278
- const { isDark, classes: theme } = useTheme(config.ui.theme);
6279
- const [backupStatus, setBackupStatus] = React17.useState(() => getBackupStatus(userId));
6280
- const [loading, setLoading] = React17.useState({
6281
- server: false,
6282
- cloud: false,
6283
- local: false
6284
- });
6285
- const [error, setError] = React17.useState(null);
6286
- const [success, setSuccess] = React17.useState(null);
6287
- const [showPassword, setShowPassword] = React17.useState(false);
6288
- const [useCustomPassword, setUseCustomPassword] = React17.useState(false);
6289
- const [customPassword, setCustomPassword] = React17.useState("");
6290
- const [cloudProviders, setCloudProviders] = React17.useState([]);
6291
- const [selectedCloudProvider, setSelectedCloudProvider] = React17.useState(null);
6292
- const [usePrivateStorage, setUsePrivateStorage] = React17.useState(true);
6293
- const hasKeyshareData = React17.useMemo(() => {
6294
- return !!getCurrentKeyshareBackupData(userId);
6295
- }, [userId]);
6296
- React17.useEffect(() => {
6297
- getAvailableCloudProviders2().then((providers) => {
6298
- setCloudProviders(providers);
6299
- if (providers.length > 0 && !selectedCloudProvider) {
6300
- setSelectedCloudProvider(providers[0].id);
6301
- }
6302
- });
6303
- }, [selectedCloudProvider]);
6304
- const refreshStatus = React17.useCallback(() => {
6305
- setBackupStatus(getBackupStatus(userId));
6306
- }, [userId]);
6307
- React17.useEffect(() => {
6308
- refreshStatus();
6309
- }, [refreshStatus]);
6310
- const handleBackup = async (method) => {
6311
- setLoading((prev) => ({ ...prev, [method]: true }));
6312
- setError(null);
6313
- setSuccess(null);
6314
- try {
6315
- const password = useCustomPassword ? customPassword : void 0;
6316
- switch (method) {
6317
- case "server":
6318
- await backupToServer(userId, password);
6319
- setSuccess("Successfully created server backup");
6320
- break;
6321
- case "cloud": {
6322
- await backupToCloud(userId, password, selectedCloudProvider || void 0, usePrivateStorage);
6323
- setSuccess(`Successfully created cloud backup`);
6324
- const updatedProviders = await getAvailableCloudProviders2();
6325
- setCloudProviders(updatedProviders);
6326
- break;
6327
- }
6328
- case "local":
6329
- await backupToLocalFile(userId, password);
6330
- setSuccess("Backup file downloaded successfully");
6331
- break;
6332
- }
6333
- refreshStatus();
6334
- setTimeout(() => {
6335
- if (typeof window !== "undefined") {
6336
- window.dispatchEvent(
6337
- new CustomEvent("lumia-passport-backup-status-changed", {
6338
- detail: { method, success: true }
6339
- })
6340
- );
6341
- }
6342
- onBackupSuccess?.();
6343
- }, 100);
6344
- } catch (err) {
6345
- const errorMsg = err instanceof Error ? err.message : "Backup creation failed";
6346
- setError(errorMsg);
6347
- updateBackupStatus(userId, method, { error: errorMsg });
6348
- refreshStatus();
6349
- } finally {
6350
- setLoading((prev) => ({ ...prev, [method]: false }));
6351
- }
6352
- };
6353
- const formatLastBackup = (timestamp) => {
6354
- if (!timestamp) return "Never";
6355
- const date = new Date(timestamp);
6356
- return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
6357
- };
6358
- return /* @__PURE__ */ jsxs13("div", { className: `p-5 space-y-6 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
6359
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
6360
- /* @__PURE__ */ jsx21(Shield2, { className: `h-6 w-6 ${isDark ? "text-green-400" : "text-green-600"}` }),
6361
- /* @__PURE__ */ jsxs13("div", { children: [
6362
- /* @__PURE__ */ jsx21("h2", { className: `text-lg font-semibold ${theme.titleText}`, children: "Create Backup" }),
6363
- /* @__PURE__ */ jsx21("p", { className: `text-sm ${theme.bodyText}`, children: "Secure your keyshare with encrypted backups" })
6364
- ] })
6365
- ] }),
6366
- error && /* @__PURE__ */ jsxs13("div", { className: `flex items-center gap-2 p-3 rounded-xl text-sm ${isDark ? "bg-red-900/30 border border-red-900 text-red-400" : "bg-red-50 border border-red-200 text-red-700"}`, children: [
6367
- /* @__PURE__ */ jsx21(AlertCircle2, { className: "h-4 w-4 flex-shrink-0" }),
6368
- /* @__PURE__ */ jsx21("span", { children: error })
6369
- ] }),
6370
- success && /* @__PURE__ */ jsxs13("div", { className: `flex items-center gap-2 p-3 rounded-xl text-sm ${isDark ? "bg-green-900/30 border border-green-900 text-green-400" : "bg-green-50 border border-green-200 text-green-700"}`, children: [
6371
- /* @__PURE__ */ jsx21(CheckCircle22, { className: "h-4 w-4 flex-shrink-0" }),
6372
- /* @__PURE__ */ jsx21("span", { children: success })
6373
- ] }),
6374
- /* @__PURE__ */ jsxs13("div", { className: "space-y-3", children: [
6375
- /* @__PURE__ */ jsx21("div", { className: `text-sm font-medium ${theme.bodyText}`, children: "Encryption Method:" }),
6376
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
6377
- /* @__PURE__ */ jsx21(
6378
- "input",
6379
- {
6380
- type: "checkbox",
6381
- id: "use-backup-password",
6382
- checked: useCustomPassword,
6383
- onChange: (e) => setUseCustomPassword(e.target.checked),
6384
- className: "rounded"
6385
- }
6386
- ),
6387
- /* @__PURE__ */ jsx21("label", { htmlFor: "use-backup-password", className: `text-sm font-medium ${theme.bodyText}`, children: "Use custom password instead of passkey" })
6388
- ] }),
6389
- !useCustomPassword && /* @__PURE__ */ jsx21("div", { className: `p-3 rounded-xl text-sm ${isDark ? "bg-blue-900/30 border border-blue-900 text-blue-400" : "bg-blue-50 border border-blue-200 text-blue-700"}`, children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
6390
- /* @__PURE__ */ jsx21(Key3, { className: "h-4 w-4" }),
6391
- /* @__PURE__ */ jsx21("span", { children: "Your passkey will be used to encrypt the backup securely" })
6392
- ] }) }),
6393
- useCustomPassword && /* @__PURE__ */ jsxs13("div", { className: "relative", children: [
6394
- /* @__PURE__ */ jsx21(
6395
- Input,
6396
- {
6397
- type: showPassword ? "text" : "password",
6398
- placeholder: "Enter backup encryption password",
6399
- value: customPassword,
6400
- onChange: (e) => setCustomPassword(e.target.value),
6401
- className: "pr-10"
6402
- }
6403
- ),
6404
- /* @__PURE__ */ jsx21(
6405
- "button",
6406
- {
6407
- type: "button",
6408
- onClick: () => setShowPassword(!showPassword),
6409
- className: `absolute right-3 top-1/2 transform -translate-y-1/2 ${isDark ? "text-gray-400 hover:text-gray-300" : "text-gray-500 hover:text-gray-700"}`,
6410
- children: showPassword ? /* @__PURE__ */ jsx21(EyeOff2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx21(Eye2, { className: "h-4 w-4" })
6411
- }
6412
- )
6413
- ] })
6414
- ] }),
6415
- /* @__PURE__ */ jsxs13("div", { className: "space-y-4", children: [
6416
- /* @__PURE__ */ jsx21("div", { className: `text-sm font-medium ${theme.bodyText}`, children: "Choose Backup Method:" }),
6417
- /* @__PURE__ */ jsxs13("div", { className: `p-4 rounded-xl border ${isDark ? "border-gray-700 bg-gray-800" : "border-blue-200 bg-blue-50/50"}`, children: [
6418
- /* @__PURE__ */ jsx21("div", { className: "flex items-center justify-between mb-3", children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
6419
- /* @__PURE__ */ jsx21(Server2, { className: `h-5 w-5 ${isDark ? "text-blue-400" : "text-blue-600"}` }),
6420
- /* @__PURE__ */ jsxs13("div", { children: [
6421
- /* @__PURE__ */ jsx21("div", { className: `font-medium text-sm ${theme.titleText}`, children: "Server Backup" }),
6422
- /* @__PURE__ */ jsx21("div", { className: `text-xs ${theme.mutedText}`, children: "Store encrypted backup on secure server" })
6423
- ] })
6424
- ] }) }),
6425
- /* @__PURE__ */ jsx21(
6426
- Button,
6427
- {
6428
- onClick: () => handleBackup("server"),
6429
- disabled: loading.server || useCustomPassword && !customPassword || !hasKeyshareData,
6430
- className: "px-4 py-2",
6431
- children: loading.server ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
6432
- }
6433
- ),
6434
- /* @__PURE__ */ jsxs13("div", { className: `text-xs mt-2 ${theme.mutedText}`, children: [
6435
- "Encrypted backup stored on secure server \u2022 Last: ",
6436
- formatLastBackup(backupStatus.server.lastBackup)
6437
- ] })
6438
- ] }),
6439
- /* @__PURE__ */ jsxs13("div", { className: `p-4 rounded-xl border ${isDark ? "border-gray-700 bg-gray-800" : "border-sky-200 bg-sky-50/50"}`, children: [
6440
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3 mb-3", children: [
6441
- /* @__PURE__ */ jsx21(Cloud, { className: `h-5 w-5 ${isDark ? "text-sky-400" : "text-sky-600"}` }),
6442
- /* @__PURE__ */ jsxs13("div", { children: [
6443
- /* @__PURE__ */ jsx21("div", { className: `font-medium text-sm ${theme.titleText}`, children: "Cloud Backup" }),
6444
- /* @__PURE__ */ jsx21("div", { className: `text-xs ${theme.mutedText}`, children: "Store encrypted backup in cloud storage" })
6445
- ] })
6446
- ] }),
6447
- cloudProviders.length > 1 && /* @__PURE__ */ jsx21("div", { className: "mb-3", children: /* @__PURE__ */ jsx21(
6448
- "select",
6449
- {
6450
- value: selectedCloudProvider || "",
6451
- onChange: (e) => setSelectedCloudProvider(e.target.value),
6452
- className: `text-sm border rounded-xl px-2 py-1 w-full ${isDark ? "bg-gray-700 border-gray-600 text-gray-200" : "bg-white border-gray-300"}`,
6453
- children: cloudProviders.map((provider) => /* @__PURE__ */ jsxs13("option", { value: provider.id, children: [
6454
- provider.icon,
6455
- " ",
6456
- provider.name,
6457
- " ",
6458
- provider.isAuthenticated ? "\u2713" : ""
6459
- ] }, provider.id))
6460
- }
6461
- ) }),
6462
- /* @__PURE__ */ jsxs13("div", { className: "mb-3", children: [
6463
- /* @__PURE__ */ jsx21("div", { className: `text-xs font-medium mb-2 ${theme.bodyText}`, children: "Storage Location:" }),
6464
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2 mb-2", children: [
6465
- /* @__PURE__ */ jsx21(
6466
- "input",
6467
- {
6468
- type: "radio",
6469
- id: "private-storage",
6470
- name: "storage-type",
6471
- checked: usePrivateStorage,
6472
- onChange: () => setUsePrivateStorage(true),
6473
- className: "rounded"
6474
- }
6475
- ),
6476
- /* @__PURE__ */ jsx21("label", { htmlFor: "private-storage", className: `text-xs ${theme.bodyText}`, children: "\u{1F512} Private (app-only, hidden from Drive UI)" })
6477
- ] }),
6478
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
6479
- /* @__PURE__ */ jsx21(
6480
- "input",
6481
- {
6482
- type: "radio",
6483
- id: "visible-storage",
6484
- name: "storage-type",
6485
- checked: !usePrivateStorage,
6486
- onChange: () => setUsePrivateStorage(false),
6487
- className: "rounded"
6488
- }
6489
- ),
6490
- /* @__PURE__ */ jsx21("label", { htmlFor: "visible-storage", className: `text-xs ${theme.bodyText}`, children: "\u{1F4C1} Visible (Lumia Backups folder in Drive)" })
6491
- ] })
6492
- ] }),
6493
- /* @__PURE__ */ jsx21(
6494
- Button,
6495
- {
6496
- onClick: () => handleBackup("cloud"),
6497
- disabled: loading.cloud || useCustomPassword && !customPassword || !hasKeyshareData || cloudProviders.length === 0,
6498
- className: "px-4 py-2",
6499
- children: loading.cloud ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
6500
- }
6501
- ),
6502
- /* @__PURE__ */ jsx21("div", { className: `text-xs mt-2 ${theme.mutedText}`, 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)}` })
6503
- ] }),
6504
- /* @__PURE__ */ jsxs13("div", { className: `p-4 rounded-xl border ${isDark ? "border-gray-700 bg-gray-800" : "border-purple-200 bg-purple-50/50"}`, children: [
6505
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3 mb-3", children: [
6506
- /* @__PURE__ */ jsx21(Download, { className: `h-5 w-5 ${isDark ? "text-purple-400" : "text-purple-600"}` }),
6507
- /* @__PURE__ */ jsxs13("div", { children: [
6508
- /* @__PURE__ */ jsx21("div", { className: `font-medium text-sm ${theme.titleText}`, children: "File Backup" }),
6509
- /* @__PURE__ */ jsx21("div", { className: `text-xs ${theme.mutedText}`, children: "Download encrypted backup file to your device" })
6510
- ] })
6511
- ] }),
6512
- /* @__PURE__ */ jsx21(
6513
- Button,
6514
- {
6515
- onClick: () => handleBackup("local"),
6516
- disabled: loading.local || useCustomPassword && !customPassword || !hasKeyshareData,
6517
- className: "w-full",
6518
- children: loading.local ? "Creating..." : useCustomPassword ? "Create & Download" : "Create & Download with Passkey"
6519
- }
6520
- ),
6521
- /* @__PURE__ */ jsxs13("div", { className: `text-xs mt-2 ${theme.mutedText}`, children: [
6522
- "Download encrypted backup file to your device \u2022 Last: ",
6523
- formatLastBackup(backupStatus.local.lastBackup)
6524
- ] })
6525
- ] })
6526
- ] }),
6527
- /* @__PURE__ */ jsxs13("div", { className: `flex items-start gap-2 p-3 rounded-xl text-xs ${isDark ? "bg-amber-900/30 border border-amber-900 text-amber-400" : "bg-amber-50 border border-amber-200 text-amber-800"}`, children: [
6528
- /* @__PURE__ */ jsx21(Lock, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
6529
- /* @__PURE__ */ jsxs13("div", { children: [
6530
- /* @__PURE__ */ jsx21("div", { className: "font-medium", children: "Security Notice" }),
6531
- /* @__PURE__ */ jsxs13("div", { className: "mt-1", children: [
6532
- useCustomPassword ? /* @__PURE__ */ jsx21(Fragment5, { children: "All backups are encrypted with AES-256 using your custom password. Store your password securely - without it, backups cannot be restored." }) : /* @__PURE__ */ jsx21(Fragment5, { children: "All backups are encrypted with AES-256 using your passkey. Your passkey authenticator (device/biometrics) is required to restore backups." }),
6533
- " ",
6534
- "Without backup access, you cannot recover your smart account if you lose this device."
6535
- ] })
6536
- ] })
6537
- ] })
6538
- ] });
6539
- }
6540
-
6541
- // src/internal/components/SecurityModal.tsx
6542
- import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
6309
+ import { Cloud, Laptop, Shield as Shield2, AlertTriangle as AlertTriangle3, CheckCircle2 as CheckCircle22, Server as Server2, HardDrive, RefreshCw as RefreshCw2, Key as Key3, ArrowLeft as ArrowLeft4, Trash2 as Trash22 } from "lucide-react";
6310
+ import { jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
6543
6311
  var SecurityModal = ({ open, onOpenChange, onBack }) => {
6544
6312
  const userId = jwtTokenManager2.getUserId();
6545
6313
  const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
6546
6314
  const backup = userId ? getBackupStatus(userId) : { server: { enabled: false }, cloud: { enabled: false }, local: { enabled: false } };
6547
6315
  const { config } = useLumiaPassportConfig();
6548
- const { isDark, classes: theme } = useTheme(config.ui.theme);
6549
- const [isRefreshing, setIsRefreshing] = React18.useState(false);
6550
- const [localInfo, setLocalInfo] = React18.useState(null);
6551
- const [recoveryCreatedAt, setRecoveryCreatedAt] = React18.useState(null);
6552
- const [recoveryBrowser, setRecoveryBrowser] = React18.useState(null);
6553
- const [recoveryUa, setRecoveryUa] = React18.useState(null);
6554
- const [recoveryDeviceId, setRecoveryDeviceId] = React18.useState(null);
6555
- const [recoveryDeviceName, setRecoveryDeviceName] = React18.useState(null);
6556
- const [recoveryCountry, setRecoveryCountry] = React18.useState(null);
6557
- const [hasServerBackup, setHasServerBackup] = React18.useState(false);
6558
- const [showBackupForm, setShowBackupForm] = React18.useState(false);
6559
- const [trustedApps, setTrustedApps] = React18.useState([]);
6560
- const [appToRemove, setAppToRemove] = React18.useState(null);
6561
- const fetchRecovery = React18.useCallback(async () => {
6316
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
6317
+ const [isRefreshing, setIsRefreshing] = React17.useState(false);
6318
+ const [localInfo, setLocalInfo] = React17.useState(null);
6319
+ const [recoveryCreatedAt, setRecoveryCreatedAt] = React17.useState(null);
6320
+ const [recoveryBrowser, setRecoveryBrowser] = React17.useState(null);
6321
+ const [recoveryUa, setRecoveryUa] = React17.useState(null);
6322
+ const [recoveryDeviceId, setRecoveryDeviceId] = React17.useState(null);
6323
+ const [recoveryDeviceName, setRecoveryDeviceName] = React17.useState(null);
6324
+ const [recoveryCountry, setRecoveryCountry] = React17.useState(null);
6325
+ const [hasServerBackup, setHasServerBackup] = React17.useState(false);
6326
+ const [trustedApps, setTrustedApps] = React17.useState([]);
6327
+ const [appToRemove, setAppToRemove] = React17.useState(null);
6328
+ const fetchRecovery = React17.useCallback(async () => {
6562
6329
  if (!userId) return;
6563
6330
  try {
6564
6331
  setIsRefreshing(true);
@@ -6589,7 +6356,7 @@ var SecurityModal = ({ open, onOpenChange, onBack }) => {
6589
6356
  setIsRefreshing(false);
6590
6357
  }
6591
6358
  }, [userId]);
6592
- React18.useEffect(() => {
6359
+ React17.useEffect(() => {
6593
6360
  if (open) fetchRecovery();
6594
6361
  }, [open, fetchRecovery]);
6595
6362
  const parseOS = (ua) => {
@@ -6619,219 +6386,179 @@ var SecurityModal = ({ open, onOpenChange, onBack }) => {
6619
6386
  console.error("[SecurityModal] Error removing trusted app:", error);
6620
6387
  }
6621
6388
  };
6622
- if (showBackupForm && userId) {
6623
- return /* @__PURE__ */ jsx22(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs14(DialogContent, { className: `lumia-scope max-w-[500px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
6624
- /* @__PURE__ */ jsx22(VisuallyHidden, { children: /* @__PURE__ */ jsx22(DialogTitle, { children: "Create Backup" }) }),
6625
- /* @__PURE__ */ jsx22(DialogDescription, { className: "sr-only", children: "Create encrypted backup of your keyshare" }),
6626
- /* @__PURE__ */ jsxs14("div", { className: "relative", children: [
6627
- /* @__PURE__ */ jsx22(
6628
- "button",
6629
- {
6630
- onClick: () => setShowBackupForm(false),
6631
- className: `absolute top-4 left-4 p-1 z-10 ${isDark ? "text-gray-400 hover:text-gray-300" : "text-gray-500 hover:text-gray-700"}`,
6632
- title: "Back to Security",
6633
- children: /* @__PURE__ */ jsx22(ArrowLeft4, { className: "h-4 w-4" })
6634
- }
6635
- ),
6636
- /* @__PURE__ */ jsx22(
6637
- BackupForm,
6638
- {
6639
- userId,
6640
- onBackupSuccess: () => {
6641
- setShowBackupForm(false);
6642
- fetchRecovery();
6643
- }
6644
- }
6645
- )
6646
- ] })
6647
- ] }) });
6648
- }
6649
- return /* @__PURE__ */ jsxs14(Dialog, { open, onOpenChange, children: [
6650
- /* @__PURE__ */ jsxs14(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: [
6651
- /* @__PURE__ */ jsx22(VisuallyHidden, { children: /* @__PURE__ */ jsx22(DialogTitle, { children: "Security" }) }),
6652
- /* @__PURE__ */ jsx22(DialogDescription, { className: "sr-only", children: "Keyshare and vault status" }),
6653
- /* @__PURE__ */ jsxs14("div", { className: "p-5 space-y-4", children: [
6654
- /* @__PURE__ */ jsx22("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2", children: [
6655
- onBack && /* @__PURE__ */ jsx22(
6389
+ return /* @__PURE__ */ jsxs13(Dialog, { open, onOpenChange, children: [
6390
+ /* @__PURE__ */ jsxs13(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: [
6391
+ /* @__PURE__ */ jsx21(VisuallyHidden, { children: /* @__PURE__ */ jsx21(DialogTitle, { children: "Security" }) }),
6392
+ /* @__PURE__ */ jsx21(DialogDescription, { className: "sr-only", children: "Keyshare and vault status" }),
6393
+ /* @__PURE__ */ jsxs13("div", { className: "p-5 space-y-4", children: [
6394
+ /* @__PURE__ */ jsx21("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
6395
+ onBack && /* @__PURE__ */ jsx21(
6656
6396
  "button",
6657
6397
  {
6658
6398
  onClick: onBack,
6659
6399
  className: `p-1 mr-1 ${isDark ? "text-gray-400 hover:text-gray-300" : "text-gray-500 hover:text-gray-700"}`,
6660
6400
  title: "Back",
6661
- children: /* @__PURE__ */ jsx22(ArrowLeft4, { className: "h-4 w-4" })
6401
+ children: /* @__PURE__ */ jsx21(ArrowLeft4, { className: "h-4 w-4" })
6662
6402
  }
6663
6403
  ),
6664
- /* @__PURE__ */ jsxs14("div", { className: `flex items-center gap-2 ${theme.text} font-semibold`, children: [
6665
- /* @__PURE__ */ jsx22(Key4, { className: "h-4 w-4" }),
6666
- /* @__PURE__ */ jsx22("span", { children: "Keyshare Status" }),
6667
- /* @__PURE__ */ jsx22("button", { onClick: fetchRecovery, className: `p-1 ${isDark ? "text-gray-400 hover:text-gray-300" : "text-gray-500 hover:text-gray-700"}`, title: "Refresh", children: /* @__PURE__ */ jsx22(RefreshCw2, { className: `h-4 w-4 ${isRefreshing ? "animate-spin" : ""}` }) })
6404
+ /* @__PURE__ */ jsxs13("div", { className: `flex items-center gap-2 ${theme.text} font-semibold`, children: [
6405
+ /* @__PURE__ */ jsx21(Key3, { className: "h-4 w-4" }),
6406
+ /* @__PURE__ */ jsx21("span", { children: "Keyshare Status" }),
6407
+ /* @__PURE__ */ jsx21("button", { onClick: fetchRecovery, className: `p-1 ${isDark ? "text-gray-400 hover:text-gray-300" : "text-gray-500 hover:text-gray-700"}`, title: "Refresh", children: /* @__PURE__ */ jsx21(RefreshCw2, { className: `h-4 w-4 ${isRefreshing ? "animate-spin" : ""}` }) })
6668
6408
  ] })
6669
6409
  ] }) }),
6670
- /* @__PURE__ */ jsxs14("div", { className: "grid grid-cols-3 gap-4", children: [
6671
- /* @__PURE__ */ jsxs14("div", { className: "space-y-2 text-center", children: [
6672
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-center gap-2", children: [
6673
- /* @__PURE__ */ jsx22(Cloud2, { className: `h-4 w-4 ${isDark ? "text-gray-400" : "text-gray-500"}` }),
6674
- /* @__PURE__ */ jsx22("span", { className: `text-sm font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: "Server" })
6410
+ /* @__PURE__ */ jsxs13("div", { className: "grid grid-cols-3 gap-4", children: [
6411
+ /* @__PURE__ */ jsxs13("div", { className: "space-y-2 text-center", children: [
6412
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-center gap-2", children: [
6413
+ /* @__PURE__ */ jsx21(Cloud, { className: `h-4 w-4 ${isDark ? "text-gray-400" : "text-gray-500"}` }),
6414
+ /* @__PURE__ */ jsx21("span", { className: `text-sm font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: "Server" })
6675
6415
  ] }),
6676
- /* @__PURE__ */ jsxs14("span", { className: `inline-flex items-center text-sm px-3 py-2 rounded-full ${serverHasKeyshare ? isDark ? "bg-green-900/30 text-green-400" : "bg-green-100 text-green-700" : isDark ? "bg-orange-900/30 text-orange-400" : "bg-orange-100 text-orange-700"}`, children: [
6677
- serverHasKeyshare ? /* @__PURE__ */ jsx22(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx22(AlertTriangle3, { className: "h-4 w-4 mr-1" }),
6416
+ /* @__PURE__ */ jsxs13("span", { className: `inline-flex items-center text-sm px-3 py-2 rounded-full ${serverHasKeyshare ? isDark ? "bg-green-900/30 text-green-400" : "bg-green-100 text-green-700" : isDark ? "bg-orange-900/30 text-orange-400" : "bg-orange-100 text-orange-700"}`, children: [
6417
+ serverHasKeyshare ? /* @__PURE__ */ jsx21(CheckCircle22, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx21(AlertTriangle3, { className: "h-4 w-4 mr-1" }),
6678
6418
  serverHasKeyshare ? "Ready" : "Missing"
6679
6419
  ] })
6680
6420
  ] }),
6681
- /* @__PURE__ */ jsxs14("div", { className: "space-y-2 text-center", children: [
6682
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-center gap-2", children: [
6683
- /* @__PURE__ */ jsx22(Laptop, { className: `h-4 w-4 ${isDark ? "text-gray-400" : "text-gray-500"}` }),
6684
- /* @__PURE__ */ jsx22("span", { className: `text-sm font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: "Local" })
6421
+ /* @__PURE__ */ jsxs13("div", { className: "space-y-2 text-center", children: [
6422
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-center gap-2", children: [
6423
+ /* @__PURE__ */ jsx21(Laptop, { className: `h-4 w-4 ${isDark ? "text-gray-400" : "text-gray-500"}` }),
6424
+ /* @__PURE__ */ jsx21("span", { className: `text-sm font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: "Local" })
6685
6425
  ] }),
6686
- /* @__PURE__ */ jsxs14("span", { className: `inline-flex items-center text-sm px-3 py-2 rounded-full ${localInfo?.hasKeyshare ? isDark ? "bg-green-900/30 text-green-400" : "bg-green-100 text-green-700" : isDark ? "bg-orange-900/30 text-orange-400" : "bg-orange-100 text-orange-700"}`, children: [
6687
- localInfo?.hasKeyshare ? /* @__PURE__ */ jsx22(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx22(AlertTriangle3, { className: "h-4 w-4 mr-1" }),
6426
+ /* @__PURE__ */ jsxs13("span", { className: `inline-flex items-center text-sm px-3 py-2 rounded-full ${localInfo?.hasKeyshare ? isDark ? "bg-green-900/30 text-green-400" : "bg-green-100 text-green-700" : isDark ? "bg-orange-900/30 text-orange-400" : "bg-orange-100 text-orange-700"}`, children: [
6427
+ localInfo?.hasKeyshare ? /* @__PURE__ */ jsx21(CheckCircle22, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx21(AlertTriangle3, { className: "h-4 w-4 mr-1" }),
6688
6428
  localInfo?.hasKeyshare ? "Ready" : "Missing"
6689
6429
  ] })
6690
6430
  ] }),
6691
- /* @__PURE__ */ jsxs14("div", { className: "space-y-2 text-center", children: [
6692
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-center gap-2", children: [
6693
- /* @__PURE__ */ jsx22(Shield3, { className: `h-4 w-4 ${isDark ? "text-gray-400" : "text-gray-500"}` }),
6694
- /* @__PURE__ */ jsx22("span", { className: `text-sm font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: "Vault" })
6431
+ /* @__PURE__ */ jsxs13("div", { className: "space-y-2 text-center", children: [
6432
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-center gap-2", children: [
6433
+ /* @__PURE__ */ jsx21(Shield2, { className: `h-4 w-4 ${isDark ? "text-gray-400" : "text-gray-500"}` }),
6434
+ /* @__PURE__ */ jsx21("span", { className: `text-sm font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: "Vault" })
6695
6435
  ] }),
6696
- /* @__PURE__ */ jsxs14("span", { className: `inline-flex items-center text-sm px-3 py-2 rounded-full ${hasServerBackup ? isDark ? "bg-green-900/30 text-green-400" : "bg-green-100 text-green-700" : isDark ? "bg-orange-900/30 text-orange-400" : "bg-orange-100 text-orange-700"}`, children: [
6697
- hasServerBackup ? /* @__PURE__ */ jsx22(CheckCircle23, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx22(AlertTriangle3, { className: "h-4 w-4 mr-1" }),
6436
+ /* @__PURE__ */ jsxs13("span", { className: `inline-flex items-center text-sm px-3 py-2 rounded-full ${hasServerBackup ? isDark ? "bg-green-900/30 text-green-400" : "bg-green-100 text-green-700" : isDark ? "bg-orange-900/30 text-orange-400" : "bg-orange-100 text-orange-700"}`, children: [
6437
+ hasServerBackup ? /* @__PURE__ */ jsx21(CheckCircle22, { className: "h-4 w-4 mr-1" }) : /* @__PURE__ */ jsx21(AlertTriangle3, { className: "h-4 w-4 mr-1" }),
6698
6438
  hasServerBackup ? "Ready" : "None"
6699
6439
  ] })
6700
6440
  ] })
6701
6441
  ] }),
6702
- localInfo?.hasKeyshare && /* @__PURE__ */ jsxs14("div", { className: `space-y-0.5 text-[10px] leading-tight ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
6703
- localInfo.ownerAddress && /* @__PURE__ */ jsxs14("div", { children: [
6442
+ localInfo?.hasKeyshare && /* @__PURE__ */ jsxs13("div", { className: `space-y-0.5 text-[10px] leading-tight ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
6443
+ localInfo.ownerAddress && /* @__PURE__ */ jsxs13("div", { children: [
6704
6444
  "Owner: ",
6705
- /* @__PURE__ */ jsx22("span", { className: `font-mono break-all ${isDark ? "text-gray-200" : "text-gray-800"}`, children: localInfo.ownerAddress })
6445
+ /* @__PURE__ */ jsx21("span", { className: `font-mono break-all ${isDark ? "text-gray-200" : "text-gray-800"}`, children: localInfo.ownerAddress })
6706
6446
  ] }),
6707
- typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs14("div", { children: [
6447
+ typeof localInfo.keyshareSize === "number" && /* @__PURE__ */ jsxs13("div", { children: [
6708
6448
  "Size: ",
6709
- /* @__PURE__ */ jsxs14("span", { className: `font-mono ${isDark ? "text-gray-200" : "text-gray-800"}`, children: [
6449
+ /* @__PURE__ */ jsxs13("span", { className: `font-mono ${isDark ? "text-gray-200" : "text-gray-800"}`, children: [
6710
6450
  Math.round((localInfo.keyshareSize || 0) / 1024),
6711
6451
  "KB"
6712
6452
  ] })
6713
6453
  ] }),
6714
- localInfo.sessionId && /* @__PURE__ */ jsxs14("div", { children: [
6454
+ localInfo.sessionId && /* @__PURE__ */ jsxs13("div", { children: [
6715
6455
  "Session: ",
6716
- /* @__PURE__ */ jsx22("span", { className: `font-mono break-all ${isDark ? "text-gray-200" : "text-gray-800"}`, children: localInfo.sessionId })
6456
+ /* @__PURE__ */ jsx21("span", { className: `font-mono break-all ${isDark ? "text-gray-200" : "text-gray-800"}`, children: localInfo.sessionId })
6717
6457
  ] })
6718
6458
  ] }),
6719
- /* @__PURE__ */ jsxs14("div", { className: `space-y-0.5 text-[10px] leading-tight ${isDark ? "text-gray-400" : "text-gray-500"}`, children: [
6720
- backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-1", children: [
6721
- /* @__PURE__ */ jsx22(Server3, { className: "h-2.5 w-2.5 text-gray-400" }),
6722
- /* @__PURE__ */ jsxs14("span", { children: [
6459
+ /* @__PURE__ */ jsxs13("div", { className: `space-y-0.5 text-[10px] leading-tight ${isDark ? "text-gray-400" : "text-gray-500"}`, children: [
6460
+ backup.server.enabled && backup.server.lastBackup && /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1", children: [
6461
+ /* @__PURE__ */ jsx21(Server2, { className: "h-2.5 w-2.5 text-gray-400" }),
6462
+ /* @__PURE__ */ jsxs13("span", { children: [
6723
6463
  "Server: ",
6724
6464
  new Date(backup.server.lastBackup).toLocaleString()
6725
6465
  ] })
6726
6466
  ] }),
6727
- !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-1", children: [
6728
- /* @__PURE__ */ jsx22(Server3, { className: "h-2.5 w-2.5 text-gray-400" }),
6729
- /* @__PURE__ */ jsxs14("span", { children: [
6467
+ !backup.server.lastBackup && recoveryCreatedAt && /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1", children: [
6468
+ /* @__PURE__ */ jsx21(Server2, { className: "h-2.5 w-2.5 text-gray-400" }),
6469
+ /* @__PURE__ */ jsxs13("span", { children: [
6730
6470
  "Server: ",
6731
6471
  new Date(recoveryCreatedAt).toLocaleString()
6732
6472
  ] })
6733
6473
  ] }),
6734
- backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-1", children: [
6735
- /* @__PURE__ */ jsx22(Cloud2, { className: "h-2.5 w-2.5 text-gray-400" }),
6736
- /* @__PURE__ */ jsxs14("span", { children: [
6474
+ backup.cloud.enabled && backup.cloud.lastBackup && /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1", children: [
6475
+ /* @__PURE__ */ jsx21(Cloud, { className: "h-2.5 w-2.5 text-gray-400" }),
6476
+ /* @__PURE__ */ jsxs13("span", { children: [
6737
6477
  "Cloud: ",
6738
6478
  new Date(backup.cloud.lastBackup).toLocaleString()
6739
6479
  ] })
6740
6480
  ] }),
6741
- backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-1", children: [
6742
- /* @__PURE__ */ jsx22(HardDrive, { className: "h-2.5 w-2.5 text-gray-400" }),
6743
- /* @__PURE__ */ jsxs14("span", { children: [
6481
+ backup.local.enabled && backup.local.lastBackup && /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1", children: [
6482
+ /* @__PURE__ */ jsx21(HardDrive, { className: "h-2.5 w-2.5 text-gray-400" }),
6483
+ /* @__PURE__ */ jsxs13("span", { children: [
6744
6484
  "Local: ",
6745
6485
  new Date(backup.local.lastBackup).toLocaleString()
6746
6486
  ] })
6747
6487
  ] })
6748
6488
  ] }),
6749
- (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ jsxs14("div", { className: `space-y-0.5 text-[10px] leading-tight ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
6750
- /* @__PURE__ */ jsx22("div", { className: `font-medium text-[11px] ${isDark ? "text-indigo-400" : "text-indigo-600"}`, children: "Device Information:" }),
6751
- recoveryCreatedAt && /* @__PURE__ */ jsxs14("div", { children: [
6489
+ (recoveryCreatedAt || recoveryBrowser || recoveryUa || recoveryDeviceId || recoveryDeviceName) && /* @__PURE__ */ jsxs13("div", { className: `space-y-0.5 text-[10px] leading-tight ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
6490
+ /* @__PURE__ */ jsx21("div", { className: `font-medium text-[11px] ${isDark ? "text-indigo-400" : "text-indigo-600"}`, children: "Device Information:" }),
6491
+ recoveryCreatedAt && /* @__PURE__ */ jsxs13("div", { children: [
6752
6492
  "Created: ",
6753
6493
  new Date(recoveryCreatedAt).toLocaleString(),
6754
6494
  " "
6755
6495
  ] }),
6756
- recoveryCountry && /* @__PURE__ */ jsxs14("div", { children: [
6496
+ recoveryCountry && /* @__PURE__ */ jsxs13("div", { children: [
6757
6497
  "Country: ",
6758
6498
  recoveryCountry
6759
6499
  ] }),
6760
- recoveryBrowser && /* @__PURE__ */ jsxs14("div", { children: [
6500
+ recoveryBrowser && /* @__PURE__ */ jsxs13("div", { children: [
6761
6501
  "Browser: ",
6762
6502
  recoveryBrowser
6763
6503
  ] }),
6764
- parseOS(recoveryUa) && /* @__PURE__ */ jsxs14("div", { children: [
6504
+ parseOS(recoveryUa) && /* @__PURE__ */ jsxs13("div", { children: [
6765
6505
  "OS: ",
6766
6506
  parseOS(recoveryUa)
6767
6507
  ] }),
6768
- recoveryDeviceName && /* @__PURE__ */ jsxs14("div", { children: [
6508
+ recoveryDeviceName && /* @__PURE__ */ jsxs13("div", { children: [
6769
6509
  "Device: ",
6770
6510
  recoveryDeviceName
6771
6511
  ] }),
6772
- recoveryDeviceId && /* @__PURE__ */ jsxs14("div", { children: [
6512
+ recoveryDeviceId && /* @__PURE__ */ jsxs13("div", { children: [
6773
6513
  "Device ID: ",
6774
- /* @__PURE__ */ jsx22("span", { className: "font-mono break-all", children: recoveryDeviceId })
6514
+ /* @__PURE__ */ jsx21("span", { className: "font-mono break-all", children: recoveryDeviceId })
6775
6515
  ] })
6776
6516
  ] }),
6777
- trustedApps.length > 0 && /* @__PURE__ */ jsxs14("div", { className: `space-y-2 ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
6778
- /* @__PURE__ */ jsxs14("div", { className: `font-medium text-[11px] ${isDark ? "text-green-400" : "text-green-600"}`, children: [
6517
+ trustedApps.length > 0 && /* @__PURE__ */ jsxs13("div", { className: `space-y-2 ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
6518
+ /* @__PURE__ */ jsxs13("div", { className: `font-medium text-[11px] ${isDark ? "text-green-400" : "text-green-600"}`, children: [
6779
6519
  "Trusted Applications (",
6780
6520
  trustedApps.length,
6781
6521
  "):"
6782
6522
  ] }),
6783
- /* @__PURE__ */ jsx22("div", { className: "space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs14("div", { className: `text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 ${isDark ? "bg-gray-800/50" : "bg-gray-50"}`, children: [
6784
- /* @__PURE__ */ jsxs14("div", { className: "flex-1 min-w-0", children: [
6785
- /* @__PURE__ */ jsx22("div", { className: `font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: new URL(app.origin).hostname }),
6786
- /* @__PURE__ */ jsxs14("div", { className: `${isDark ? "text-gray-400" : "text-gray-500"}`, children: [
6523
+ /* @__PURE__ */ jsx21("div", { className: "space-y-1", children: trustedApps.map((app, index) => /* @__PURE__ */ jsxs13("div", { className: `text-[10px] leading-tight p-2 rounded flex items-start justify-between gap-2 ${isDark ? "bg-gray-800/50" : "bg-gray-50"}`, children: [
6524
+ /* @__PURE__ */ jsxs13("div", { className: "flex-1 min-w-0", children: [
6525
+ /* @__PURE__ */ jsx21("div", { className: `font-medium ${isDark ? "text-gray-200" : "text-gray-800"}`, children: new URL(app.origin).hostname }),
6526
+ /* @__PURE__ */ jsxs13("div", { className: `${isDark ? "text-gray-400" : "text-gray-500"}`, children: [
6787
6527
  "Trusted: ",
6788
6528
  new Date(app.trustedAt).toLocaleDateString()
6789
6529
  ] })
6790
6530
  ] }),
6791
- /* @__PURE__ */ jsx22(
6531
+ /* @__PURE__ */ jsx21(
6792
6532
  "button",
6793
6533
  {
6794
6534
  onClick: () => setAppToRemove({ projectId: app.projectId, origin: app.origin, hostname: new URL(app.origin).hostname }),
6795
6535
  className: `p-1 rounded transition-colors ${isDark ? "text-gray-400 hover:text-red-400 hover:bg-red-900/20" : "text-gray-500 hover:text-red-600 hover:bg-red-50"}`,
6796
6536
  title: "Remove from trusted",
6797
- children: /* @__PURE__ */ jsx22(Trash22, { className: "h-3 w-3" })
6537
+ children: /* @__PURE__ */ jsx21(Trash22, { className: "h-3 w-3" })
6798
6538
  }
6799
6539
  )
6800
6540
  ] }, index)) })
6801
- ] }),
6802
- localInfo?.hasKeyshare && !showBackupForm && /* @__PURE__ */ jsx22("div", { className: "pt-2", children: /* @__PURE__ */ jsxs14(
6803
- Button,
6804
- {
6805
- onClick: () => setShowBackupForm(true),
6806
- variant: "success",
6807
- className: "w-full",
6808
- size: "lg",
6809
- children: [
6810
- /* @__PURE__ */ jsx22(Plus, { className: "h-4 w-4" }),
6811
- "Create Backup"
6812
- ]
6813
- }
6814
- ) })
6541
+ ] })
6815
6542
  ] })
6816
6543
  ] }),
6817
- appToRemove && /* @__PURE__ */ jsx22(Dialog, { open: !!appToRemove, onOpenChange: (open2) => !open2 && setAppToRemove(null), children: /* @__PURE__ */ jsxs14(DialogContent, { className: `lumia-scope max-w-[380px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
6818
- /* @__PURE__ */ jsx22(VisuallyHidden, { children: /* @__PURE__ */ jsx22(DialogTitle, { children: "Remove Trusted Application" }) }),
6819
- /* @__PURE__ */ jsx22(DialogDescription, { className: "sr-only", children: "Confirm removal of trusted application" }),
6820
- /* @__PURE__ */ jsxs14("div", { className: "p-5 space-y-4", children: [
6821
- /* @__PURE__ */ jsxs14("div", { className: `text-center ${theme.text}`, children: [
6822
- /* @__PURE__ */ jsx22("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
6823
- /* @__PURE__ */ jsx22("div", { className: `text-sm ${isDark ? "text-gray-300" : "text-gray-700"} mb-3`, children: /* @__PURE__ */ jsx22("span", { className: "font-medium", children: appToRemove.hostname }) }),
6824
- /* @__PURE__ */ jsxs14("div", { className: `text-xs ${isDark ? "text-gray-400" : "text-gray-600"} text-left space-y-2`, children: [
6825
- /* @__PURE__ */ jsx22("p", { children: "After removing this application from trusted list:" }),
6826
- /* @__PURE__ */ jsxs14("ul", { className: "list-disc list-inside space-y-1 ml-2", children: [
6827
- /* @__PURE__ */ jsx22("li", { children: "All transactions will require confirmation in a separate window" }),
6828
- /* @__PURE__ */ jsx22("li", { children: "You can add it back to trusted list at any time" }),
6829
- /* @__PURE__ */ jsx22("li", { children: 'Transaction confirmation window will show "Trust this app" checkbox' })
6544
+ appToRemove && /* @__PURE__ */ jsx21(Dialog, { open: !!appToRemove, onOpenChange: (open2) => !open2 && setAppToRemove(null), children: /* @__PURE__ */ jsxs13(DialogContent, { className: `lumia-scope max-w-[380px] p-0 border-0 ${theme.modalBg} rounded-2xl overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`, children: [
6545
+ /* @__PURE__ */ jsx21(VisuallyHidden, { children: /* @__PURE__ */ jsx21(DialogTitle, { children: "Remove Trusted Application" }) }),
6546
+ /* @__PURE__ */ jsx21(DialogDescription, { className: "sr-only", children: "Confirm removal of trusted application" }),
6547
+ /* @__PURE__ */ jsxs13("div", { className: "p-5 space-y-4", children: [
6548
+ /* @__PURE__ */ jsxs13("div", { className: `text-center ${theme.text}`, children: [
6549
+ /* @__PURE__ */ jsx21("div", { className: "text-lg font-semibold mb-2", children: "Remove Trusted App?" }),
6550
+ /* @__PURE__ */ jsx21("div", { className: `text-sm ${isDark ? "text-gray-300" : "text-gray-700"} mb-3`, children: /* @__PURE__ */ jsx21("span", { className: "font-medium", children: appToRemove.hostname }) }),
6551
+ /* @__PURE__ */ jsxs13("div", { className: `text-xs ${isDark ? "text-gray-400" : "text-gray-600"} text-left space-y-2`, children: [
6552
+ /* @__PURE__ */ jsx21("p", { children: "After removing this application from trusted list:" }),
6553
+ /* @__PURE__ */ jsxs13("ul", { className: "list-disc list-inside space-y-1 ml-2", children: [
6554
+ /* @__PURE__ */ jsx21("li", { children: "All transactions will require confirmation in a separate window" }),
6555
+ /* @__PURE__ */ jsx21("li", { children: "You can add it back to trusted list at any time" }),
6556
+ /* @__PURE__ */ jsx21("li", { children: 'Transaction confirmation window will show "Trust this app" checkbox' })
6830
6557
  ] })
6831
6558
  ] })
6832
6559
  ] }),
6833
- /* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
6834
- /* @__PURE__ */ jsx22(
6560
+ /* @__PURE__ */ jsxs13("div", { className: "flex gap-2", children: [
6561
+ /* @__PURE__ */ jsx21(
6835
6562
  Button,
6836
6563
  {
6837
6564
  onClick: () => setAppToRemove(null),
@@ -6841,7 +6568,7 @@ var SecurityModal = ({ open, onOpenChange, onBack }) => {
6841
6568
  children: "Cancel"
6842
6569
  }
6843
6570
  ),
6844
- /* @__PURE__ */ jsx22(
6571
+ /* @__PURE__ */ jsx21(
6845
6572
  Button,
6846
6573
  {
6847
6574
  onClick: confirmRemoveTrustedApp,
@@ -6858,30 +6585,32 @@ var SecurityModal = ({ open, onOpenChange, onBack }) => {
6858
6585
  };
6859
6586
 
6860
6587
  // src/internal/components/KeyshareBackup.tsx
6861
- import * as React19 from "react";
6862
- 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";
6588
+ import * as React18 from "react";
6589
+ import { Shield as Shield3, Server as Server3, CheckCircle2 as CheckCircle23, AlertCircle as AlertCircle2, Key as Key4, X as X3, Eye as Eye2, EyeOff as EyeOff2, Download, Cloud as Cloud2, Lock } from "lucide-react";
6863
6590
  init_iframe_manager();
6864
- import { Fragment as Fragment6, jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
6591
+ import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
6865
6592
  function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
6866
- const [backupStatus, setBackupStatus] = React19.useState({
6593
+ const { config } = useLumiaPassportConfig();
6594
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
6595
+ const [backupStatus, setBackupStatus] = React18.useState({
6867
6596
  server: {},
6868
6597
  cloud: {},
6869
6598
  local: {}
6870
6599
  });
6871
- const [loading, setLoading] = React19.useState({
6600
+ const [loading, setLoading] = React18.useState({
6872
6601
  server: false,
6873
6602
  cloud: false,
6874
6603
  local: false
6875
6604
  });
6876
- const [error, setError] = React19.useState(null);
6877
- const [success, setSuccess] = React19.useState(null);
6878
- const [showPassword, setShowPassword] = React19.useState(false);
6879
- const [useCustomPassword, setUseCustomPassword] = React19.useState(false);
6880
- const [customPassword, setCustomPassword] = React19.useState("");
6881
- const [cloudProviders, setCloudProviders] = React19.useState([]);
6882
- const [selectedCloudProvider, setSelectedCloudProvider] = React19.useState(null);
6883
- const [hasKeyshareData, setHasKeyshareData] = React19.useState(true);
6884
- const iframeManager = React19.useMemo(() => {
6605
+ const [error, setError] = React18.useState(null);
6606
+ const [success, setSuccess] = React18.useState(null);
6607
+ const [showPassword, setShowPassword] = React18.useState(false);
6608
+ const [useCustomPassword, setUseCustomPassword] = React18.useState(false);
6609
+ const [customPassword, setCustomPassword] = React18.useState("");
6610
+ const [cloudProviders, setCloudProviders] = React18.useState([]);
6611
+ const [selectedCloudProvider, setSelectedCloudProvider] = React18.useState(null);
6612
+ const [hasKeyshareData, setHasKeyshareData] = React18.useState(true);
6613
+ const iframeManager = React18.useMemo(() => {
6885
6614
  try {
6886
6615
  return getIframeManager();
6887
6616
  } catch (e) {
@@ -6889,7 +6618,7 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
6889
6618
  return null;
6890
6619
  }
6891
6620
  }, []);
6892
- React19.useEffect(() => {
6621
+ React18.useEffect(() => {
6893
6622
  const loadCloudProviders = async () => {
6894
6623
  try {
6895
6624
  const { getAvailableCloudProviders: getAvailableCloudProviders3 } = await Promise.resolve().then(() => (init_cloudStorage(), cloudStorage_exports));
@@ -6909,7 +6638,7 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
6909
6638
  };
6910
6639
  loadCloudProviders();
6911
6640
  }, [selectedCloudProvider]);
6912
- const refreshStatus = React19.useCallback(async () => {
6641
+ const refreshStatus = React18.useCallback(async () => {
6913
6642
  if (!iframeManager) return;
6914
6643
  try {
6915
6644
  const status = await iframeManager.getBackupStatus(userId);
@@ -6918,7 +6647,7 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
6918
6647
  console.error("[KeyshareBackup] Failed to get backup status:", error2);
6919
6648
  }
6920
6649
  }, [iframeManager, userId]);
6921
- React19.useEffect(() => {
6650
+ React18.useEffect(() => {
6922
6651
  refreshStatus();
6923
6652
  }, [refreshStatus]);
6924
6653
  const handleBackup = async (method) => {
@@ -7003,30 +6732,30 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7003
6732
  const date = new Date(timestamp);
7004
6733
  return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
7005
6734
  };
7006
- return /* @__PURE__ */ jsxs15(Card, { className: "border-green-200 bg-green-50", children: [
7007
- /* @__PURE__ */ jsx23(CardHeader, { className: "pb-4", children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between", children: [
7008
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
7009
- /* @__PURE__ */ jsx23(Shield4, { className: "h-6 w-6 text-green-600" }),
7010
- /* @__PURE__ */ jsxs15("div", { children: [
7011
- /* @__PURE__ */ jsx23(CardTitle, { className: "text-lg", children: "Create Backup" }),
7012
- /* @__PURE__ */ jsx23(CardDescription, { className: "text-sm", children: "Secure your keyshare with encrypted backups" })
6735
+ return /* @__PURE__ */ jsxs14(Card, { className: `${theme.modalBg} ${isDark ? "border-green-900/50" : "border-green-200"}`, children: [
6736
+ /* @__PURE__ */ jsx22(CardHeader, { className: "pb-4", children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-between", children: [
6737
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
6738
+ /* @__PURE__ */ jsx22(Shield3, { className: `h-6 w-6 ${isDark ? "text-green-400" : "text-green-600"}` }),
6739
+ /* @__PURE__ */ jsxs14("div", { children: [
6740
+ /* @__PURE__ */ jsx22(CardTitle, { className: `text-lg ${theme.titleText}`, children: "Create Backup" }),
6741
+ /* @__PURE__ */ jsx22(CardDescription, { className: `text-sm ${theme.mutedText}`, children: "Secure your keyshare with encrypted backups" })
7013
6742
  ] })
7014
6743
  ] }),
7015
- 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" }) })
6744
+ onClose && /* @__PURE__ */ jsx22("button", { onClick: onClose, className: `p-1 rounded transition-colors ${isDark ? "bg-red-900/40 text-red-400 hover:bg-red-900/60" : "bg-red-100 text-red-600 hover:bg-red-200"}`, title: "Close", children: /* @__PURE__ */ jsx22(X3, { className: "h-4 w-4" }) })
7016
6745
  ] }) }),
7017
- /* @__PURE__ */ jsxs15(CardContent, { className: "space-y-6", children: [
7018
- 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: [
7019
- /* @__PURE__ */ jsx23(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
7020
- /* @__PURE__ */ jsx23("span", { children: error })
6746
+ /* @__PURE__ */ jsxs14(CardContent, { className: "space-y-6", children: [
6747
+ error && /* @__PURE__ */ jsxs14("div", { className: `flex items-center gap-2 p-3 rounded text-sm ${isDark ? "bg-red-950/50 border border-red-900/60 text-red-300" : "bg-red-50 border border-red-200 text-red-700"}`, children: [
6748
+ /* @__PURE__ */ jsx22(AlertCircle2, { className: "h-4 w-4 flex-shrink-0" }),
6749
+ /* @__PURE__ */ jsx22("span", { children: error })
7021
6750
  ] }),
7022
- 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: [
7023
- /* @__PURE__ */ jsx23(CheckCircle24, { className: "h-4 w-4 flex-shrink-0" }),
7024
- /* @__PURE__ */ jsx23("span", { children: success })
6751
+ success && /* @__PURE__ */ jsxs14("div", { className: `flex items-center gap-2 p-3 rounded text-sm ${isDark ? "bg-green-950/50 border border-green-900/60 text-green-300" : "bg-green-50 border border-green-200 text-green-700"}`, children: [
6752
+ /* @__PURE__ */ jsx22(CheckCircle23, { className: "h-4 w-4 flex-shrink-0" }),
6753
+ /* @__PURE__ */ jsx22("span", { children: success })
7025
6754
  ] }),
7026
- /* @__PURE__ */ jsxs15("div", { className: "space-y-3", children: [
7027
- /* @__PURE__ */ jsx23("div", { className: "text-sm font-medium text-gray-700", children: "Encryption Method:" }),
7028
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
7029
- /* @__PURE__ */ jsx23(
6755
+ /* @__PURE__ */ jsxs14("div", { className: "space-y-3", children: [
6756
+ /* @__PURE__ */ jsx22("div", { className: `text-sm font-medium ${isDark ? "text-gray-300" : "text-gray-700"}`, children: "Encryption Method:" }),
6757
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2", children: [
6758
+ /* @__PURE__ */ jsx22(
7030
6759
  "input",
7031
6760
  {
7032
6761
  type: "checkbox",
@@ -7036,14 +6765,14 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7036
6765
  className: "rounded"
7037
6766
  }
7038
6767
  ),
7039
- /* @__PURE__ */ jsx23("label", { htmlFor: "use-backup-password", className: "text-sm font-medium", children: "Use custom password instead of passkey" })
6768
+ /* @__PURE__ */ jsx22("label", { htmlFor: "use-backup-password", className: `text-sm font-medium ${isDark ? "text-gray-300" : ""}`, children: "Use custom password instead of passkey" })
7040
6769
  ] }),
7041
- !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: [
7042
- /* @__PURE__ */ jsx23(Key5, { className: "h-4 w-4" }),
7043
- /* @__PURE__ */ jsx23("span", { children: "Your passkey will be used to encrypt the backup securely" })
6770
+ !useCustomPassword && /* @__PURE__ */ jsx22("div", { className: `p-3 rounded text-sm ${isDark ? "bg-blue-950/50 border border-blue-900/60 text-blue-300" : "bg-blue-50 border border-blue-200 text-blue-700"}`, children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2", children: [
6771
+ /* @__PURE__ */ jsx22(Key4, { className: "h-4 w-4" }),
6772
+ /* @__PURE__ */ jsx22("span", { children: "Your passkey will be used to encrypt the backup securely" })
7044
6773
  ] }) }),
7045
- useCustomPassword && /* @__PURE__ */ jsxs15("div", { className: "relative", children: [
7046
- /* @__PURE__ */ jsx23(
6774
+ useCustomPassword && /* @__PURE__ */ jsxs14("div", { className: "relative", children: [
6775
+ /* @__PURE__ */ jsx22(
7047
6776
  Input,
7048
6777
  {
7049
6778
  type: showPassword ? "text" : "password",
@@ -7053,28 +6782,28 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7053
6782
  className: "pr-10"
7054
6783
  }
7055
6784
  ),
7056
- /* @__PURE__ */ jsx23(
6785
+ /* @__PURE__ */ jsx22(
7057
6786
  "button",
7058
6787
  {
7059
6788
  type: "button",
7060
6789
  onClick: () => setShowPassword(!showPassword),
7061
6790
  className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-500 hover:text-gray-700",
7062
- children: showPassword ? /* @__PURE__ */ jsx23(EyeOff3, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx23(Eye3, { className: "h-4 w-4" })
6791
+ children: showPassword ? /* @__PURE__ */ jsx22(EyeOff2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx22(Eye2, { className: "h-4 w-4" })
7063
6792
  }
7064
6793
  )
7065
6794
  ] })
7066
6795
  ] }),
7067
- /* @__PURE__ */ jsxs15("div", { className: "space-y-4", children: [
7068
- /* @__PURE__ */ jsx23("div", { className: "text-sm font-medium text-gray-700", children: "Choose Backup Method:" }),
7069
- /* @__PURE__ */ jsxs15("div", { className: "p-4 rounded-lg border border-blue-200 bg-blue-50/50", children: [
7070
- /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-between mb-3", children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
7071
- /* @__PURE__ */ jsx23(Server4, { className: "h-5 w-5 text-blue-600" }),
7072
- /* @__PURE__ */ jsxs15("div", { children: [
7073
- /* @__PURE__ */ jsx23("div", { className: "font-medium text-sm", children: "Server Backup" }),
7074
- /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600", children: "Store encrypted backup on secure server" })
6796
+ /* @__PURE__ */ jsxs14("div", { className: "space-y-4", children: [
6797
+ /* @__PURE__ */ jsx22("div", { className: `text-sm font-medium ${isDark ? "text-gray-300" : "text-gray-700"}`, children: "Choose Backup Method:" }),
6798
+ /* @__PURE__ */ jsxs14("div", { className: `p-4 rounded-lg border ${isDark ? "border-blue-800/60 bg-blue-950/60" : "border-blue-200 bg-blue-50/50"}`, children: [
6799
+ /* @__PURE__ */ jsx22("div", { className: "flex items-center justify-between mb-3", children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
6800
+ /* @__PURE__ */ jsx22(Server3, { className: `h-5 w-5 ${isDark ? "text-blue-400" : "text-blue-600"}` }),
6801
+ /* @__PURE__ */ jsxs14("div", { children: [
6802
+ /* @__PURE__ */ jsx22("div", { className: `font-medium text-sm ${isDark ? "text-gray-200" : ""}`, children: "Server Backup" }),
6803
+ /* @__PURE__ */ jsx22("div", { className: `text-xs ${isDark ? "text-gray-400" : "text-gray-600"}`, children: "Store encrypted backup on secure server" })
7075
6804
  ] })
7076
6805
  ] }) }),
7077
- /* @__PURE__ */ jsx23(
6806
+ /* @__PURE__ */ jsx22(
7078
6807
  Button,
7079
6808
  {
7080
6809
  onClick: () => handleBackup("server"),
@@ -7083,33 +6812,33 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7083
6812
  children: loading.server ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
7084
6813
  }
7085
6814
  ),
7086
- /* @__PURE__ */ jsxs15("div", { className: "text-xs text-gray-600 mt-2", children: [
6815
+ /* @__PURE__ */ jsxs14("div", { className: `text-xs mt-2 ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
7087
6816
  "Encrypted backup stored on secure server \u2022 Last: ",
7088
6817
  formatLastBackup(backupStatus.server.lastBackup)
7089
6818
  ] })
7090
6819
  ] }),
7091
- /* @__PURE__ */ jsxs15("div", { className: "p-4 rounded-lg border border-sky-200 bg-sky-50/50", children: [
7092
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3 mb-3", children: [
7093
- /* @__PURE__ */ jsx23(Cloud3, { className: "h-5 w-5 text-sky-600" }),
7094
- /* @__PURE__ */ jsxs15("div", { children: [
7095
- /* @__PURE__ */ jsx23("div", { className: "font-medium text-sm", children: "Cloud Backup" }),
7096
- /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600", children: "Store encrypted backup in cloud storage" })
6820
+ /* @__PURE__ */ jsxs14("div", { className: `p-4 rounded-lg border ${isDark ? "border-sky-800/60 bg-sky-950/60" : "border-sky-200 bg-sky-50/50"}`, children: [
6821
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3 mb-3", children: [
6822
+ /* @__PURE__ */ jsx22(Cloud2, { className: `h-5 w-5 ${isDark ? "text-sky-400" : "text-sky-600"}` }),
6823
+ /* @__PURE__ */ jsxs14("div", { children: [
6824
+ /* @__PURE__ */ jsx22("div", { className: `font-medium text-sm ${isDark ? "text-gray-200" : ""}`, children: "Cloud Backup" }),
6825
+ /* @__PURE__ */ jsx22("div", { className: `text-xs ${isDark ? "text-gray-400" : "text-gray-600"}`, children: "Store encrypted backup in cloud storage" })
7097
6826
  ] })
7098
6827
  ] }),
7099
- cloudProviders.length > 1 && /* @__PURE__ */ jsx23("div", { className: "mb-3", children: /* @__PURE__ */ jsx23(
6828
+ cloudProviders.length > 1 && /* @__PURE__ */ jsx22("div", { className: "mb-3", children: /* @__PURE__ */ jsx22(
7100
6829
  "select",
7101
6830
  {
7102
6831
  value: selectedCloudProvider || "",
7103
6832
  onChange: (e) => setSelectedCloudProvider(e.target.value),
7104
- className: "text-sm border rounded px-2 py-1 w-full",
7105
- children: cloudProviders.map((provider) => /* @__PURE__ */ jsxs15("option", { value: provider.id, disabled: !provider.available, children: [
6833
+ className: `text-sm border rounded px-2 py-1 w-full ${isDark ? "bg-gray-800 border-gray-700 text-gray-200" : ""}`,
6834
+ children: cloudProviders.map((provider) => /* @__PURE__ */ jsxs14("option", { value: provider.id, disabled: !provider.available, children: [
7106
6835
  provider.name,
7107
6836
  " ",
7108
6837
  provider.available ? "" : "(Not Available)"
7109
6838
  ] }, provider.id))
7110
6839
  }
7111
6840
  ) }),
7112
- /* @__PURE__ */ jsx23(
6841
+ /* @__PURE__ */ jsx22(
7113
6842
  Button,
7114
6843
  {
7115
6844
  onClick: () => handleBackup("cloud"),
@@ -7118,17 +6847,17 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7118
6847
  children: loading.cloud ? "Creating..." : useCustomPassword ? "Create with Password" : "Create with Passkey"
7119
6848
  }
7120
6849
  ),
7121
- /* @__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)}` })
6850
+ /* @__PURE__ */ jsx22("div", { className: `text-xs mt-2 ${isDark ? "text-gray-400" : "text-gray-600"}`, 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)}` })
7122
6851
  ] }),
7123
- /* @__PURE__ */ jsxs15("div", { className: "p-4 rounded-lg border border-purple-200 bg-purple-50/50", children: [
7124
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3 mb-3", children: [
7125
- /* @__PURE__ */ jsx23(Download2, { className: "h-5 w-5 text-purple-600" }),
7126
- /* @__PURE__ */ jsxs15("div", { children: [
7127
- /* @__PURE__ */ jsx23("div", { className: "font-medium text-sm", children: "File Backup" }),
7128
- /* @__PURE__ */ jsx23("div", { className: "text-xs text-gray-600", children: "Download encrypted backup file to your device" })
6852
+ /* @__PURE__ */ jsxs14("div", { className: `p-4 rounded-lg border ${isDark ? "border-purple-800/60 bg-purple-950/60" : "border-purple-200 bg-purple-50/50"}`, children: [
6853
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3 mb-3", children: [
6854
+ /* @__PURE__ */ jsx22(Download, { className: `h-5 w-5 ${isDark ? "text-purple-400" : "text-purple-600"}` }),
6855
+ /* @__PURE__ */ jsxs14("div", { children: [
6856
+ /* @__PURE__ */ jsx22("div", { className: `font-medium text-sm ${isDark ? "text-gray-200" : ""}`, children: "File Backup" }),
6857
+ /* @__PURE__ */ jsx22("div", { className: `text-xs ${isDark ? "text-gray-400" : "text-gray-600"}`, children: "Download encrypted backup file to your device" })
7129
6858
  ] })
7130
6859
  ] }),
7131
- /* @__PURE__ */ jsx23(
6860
+ /* @__PURE__ */ jsx22(
7132
6861
  Button,
7133
6862
  {
7134
6863
  onClick: () => handleBackup("local"),
@@ -7137,18 +6866,18 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7137
6866
  children: loading.local ? "Creating..." : useCustomPassword ? "Create & Download" : "Create & Download with Passkey"
7138
6867
  }
7139
6868
  ),
7140
- /* @__PURE__ */ jsxs15("div", { className: "text-xs text-gray-600 mt-2", children: [
6869
+ /* @__PURE__ */ jsxs14("div", { className: `text-xs mt-2 ${isDark ? "text-gray-400" : "text-gray-600"}`, children: [
7141
6870
  "Download encrypted backup file to your device \u2022 Last: ",
7142
6871
  formatLastBackup(backupStatus.local.lastBackup)
7143
6872
  ] })
7144
6873
  ] })
7145
6874
  ] }),
7146
- /* @__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: [
7147
- /* @__PURE__ */ jsx23(Lock2, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
7148
- /* @__PURE__ */ jsxs15("div", { children: [
7149
- /* @__PURE__ */ jsx23("div", { className: "font-medium", children: "Security Notice" }),
7150
- /* @__PURE__ */ jsxs15("div", { className: "mt-1", children: [
7151
- 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." }),
6875
+ /* @__PURE__ */ jsxs14("div", { className: `flex items-start gap-2 p-3 rounded text-xs ${isDark ? "bg-amber-950/50 border border-amber-900/60 text-amber-300" : "bg-amber-50 border border-amber-200 text-amber-800"}`, children: [
6876
+ /* @__PURE__ */ jsx22(Lock, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
6877
+ /* @__PURE__ */ jsxs14("div", { children: [
6878
+ /* @__PURE__ */ jsx22("div", { className: "font-medium", children: "Security Notice" }),
6879
+ /* @__PURE__ */ jsxs14("div", { className: "mt-1", children: [
6880
+ useCustomPassword ? /* @__PURE__ */ jsx22(Fragment5, { children: "All backups are encrypted with AES-256 using your custom password. Store your password securely - without it, backups cannot be restored." }) : /* @__PURE__ */ jsx22(Fragment5, { children: "All backups are encrypted with AES-256 using your passkey. Your passkey authenticator (device/biometrics) is required to restore backups." }),
7152
6881
  " ",
7153
6882
  "Without backup access, you cannot recover your smart account if you lose this device."
7154
6883
  ] })
@@ -7159,18 +6888,18 @@ function KeyshareBackup({ userId, onClose, onBackupSuccess }) {
7159
6888
  }
7160
6889
 
7161
6890
  // src/internal/components/TransactionsModal.tsx
7162
- import React20 from "react";
6891
+ import React19 from "react";
7163
6892
  init_base();
7164
- import { Activity, ArrowUpRight, ArrowDownRight, CheckCircle2 as CheckCircle25, XCircle, ArrowLeft as ArrowLeft5, RefreshCw as RefreshCw3 } from "lucide-react";
7165
- import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
6893
+ import { Activity, ArrowUpRight, ArrowDownRight, CheckCircle2 as CheckCircle24, XCircle, ArrowLeft as ArrowLeft5, RefreshCw as RefreshCw3 } from "lucide-react";
6894
+ import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
7166
6895
  var TransactionsModal = ({ open, onOpenChange, onBack }) => {
7167
6896
  const { address } = useLumiaSession();
7168
- const [transactions, setTransactions] = React20.useState([]);
7169
- const [loading, setLoading] = React20.useState(false);
7170
- const [error, setError] = React20.useState(null);
6897
+ const [transactions, setTransactions] = React19.useState([]);
6898
+ const [loading, setLoading] = React19.useState(false);
6899
+ const [error, setError] = React19.useState(null);
7171
6900
  const { config } = useLumiaPassportConfig();
7172
- const { isDark, classes: theme } = useTheme(config.ui.theme);
7173
- const loadTransactions = React20.useCallback(async () => {
6901
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
6902
+ const loadTransactions = React19.useCallback(async () => {
7174
6903
  if (!address) return;
7175
6904
  setLoading(true);
7176
6905
  setError(null);
@@ -7191,7 +6920,7 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
7191
6920
  setLoading(false);
7192
6921
  }
7193
6922
  }, [address]);
7194
- React20.useEffect(() => {
6923
+ React19.useEffect(() => {
7195
6924
  if (open && address && !loading && transactions.length === 0) {
7196
6925
  loadTransactions();
7197
6926
  }
@@ -7212,98 +6941,98 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
7212
6941
  }
7213
6942
  };
7214
6943
  const getStatusIcon = (status) => {
7215
- 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" });
6944
+ 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" });
7216
6945
  };
7217
6946
  const getTransactionIcon = (from, to) => {
7218
6947
  const isIncoming = to.toLowerCase() === address?.toLowerCase();
7219
- return isIncoming ? /* @__PURE__ */ jsx24(ArrowDownRight, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ jsx24(ArrowUpRight, { className: "w-4 h-4 text-blue-500" });
6948
+ return isIncoming ? /* @__PURE__ */ jsx23(ArrowDownRight, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ jsx23(ArrowUpRight, { className: "w-4 h-4 text-blue-500" });
7220
6949
  };
7221
6950
  const openInExplorer = (txHash) => {
7222
6951
  const explorerUrl = getExplorerUrl();
7223
6952
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
7224
6953
  };
7225
- 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: [
7226
- /* @__PURE__ */ jsx24(VisuallyHidden, { children: /* @__PURE__ */ jsx24(DialogTitle, { children: "Transaction History" }) }),
7227
- /* @__PURE__ */ jsx24(DialogDescription, { className: "sr-only", children: "View your transaction history" }),
7228
- /* @__PURE__ */ jsx24("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7229
- onBack && /* @__PURE__ */ jsx24(
6954
+ 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: [
6955
+ /* @__PURE__ */ jsx23(VisuallyHidden, { children: /* @__PURE__ */ jsx23(DialogTitle, { children: "Transaction History" }) }),
6956
+ /* @__PURE__ */ jsx23(DialogDescription, { className: "sr-only", children: "View your transaction history" }),
6957
+ /* @__PURE__ */ jsx23("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
6958
+ onBack && /* @__PURE__ */ jsx23(
7230
6959
  "button",
7231
6960
  {
7232
6961
  onClick: onBack,
7233
6962
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
7234
6963
  title: "Back",
7235
- children: /* @__PURE__ */ jsx24(ArrowLeft5, { className: "h-4 w-4" })
6964
+ children: /* @__PURE__ */ jsx23(ArrowLeft5, { className: "h-4 w-4" })
7236
6965
  }
7237
6966
  ),
7238
- /* @__PURE__ */ jsxs16("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7239
- /* @__PURE__ */ jsx24(Activity, { className: "h-5 w-5" }),
7240
- /* @__PURE__ */ jsx24("span", { children: "Transaction History" }),
7241
- /* @__PURE__ */ jsx24(
6967
+ /* @__PURE__ */ jsxs15("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
6968
+ /* @__PURE__ */ jsx23(Activity, { className: "h-5 w-5" }),
6969
+ /* @__PURE__ */ jsx23("span", { children: "Transaction History" }),
6970
+ /* @__PURE__ */ jsx23(
7242
6971
  "button",
7243
6972
  {
7244
6973
  onClick: loadTransactions,
7245
6974
  disabled: loading,
7246
6975
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1`,
7247
6976
  title: "Refresh transactions",
7248
- children: /* @__PURE__ */ jsx24(RefreshCw3, { className: `h-4 w-4 ${loading ? "animate-spin" : ""}` })
6977
+ children: /* @__PURE__ */ jsx23(RefreshCw3, { className: `h-4 w-4 ${loading ? "animate-spin" : ""}` })
7249
6978
  }
7250
6979
  )
7251
6980
  ] })
7252
6981
  ] }) }),
7253
- /* @__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: [
7254
- /* @__PURE__ */ jsx24(XCircle, { className: "w-12 h-12 mb-2" }),
7255
- /* @__PURE__ */ jsx24("p", { className: "text-center text-sm", children: error })
7256
- ] }) : transactions.length === 0 ? /* @__PURE__ */ jsxs16("div", { className: `flex flex-col items-center justify-center py-8 ${theme.mutedText}`, children: [
7257
- /* @__PURE__ */ jsx24(Activity, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
7258
- /* @__PURE__ */ jsxs16("p", { className: "text-center", children: [
6982
+ /* @__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: [
6983
+ /* @__PURE__ */ jsx23(XCircle, { className: "w-12 h-12 mb-2" }),
6984
+ /* @__PURE__ */ jsx23("p", { className: "text-center text-sm", children: error })
6985
+ ] }) : transactions.length === 0 ? /* @__PURE__ */ jsxs15("div", { className: `flex flex-col items-center justify-center py-8 ${theme.mutedText}`, children: [
6986
+ /* @__PURE__ */ jsx23(Activity, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
6987
+ /* @__PURE__ */ jsxs15("p", { className: "text-center", children: [
7259
6988
  "No transactions found",
7260
- /* @__PURE__ */ jsx24("br", {}),
7261
- /* @__PURE__ */ jsx24("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
6989
+ /* @__PURE__ */ jsx23("br", {}),
6990
+ /* @__PURE__ */ jsx23("span", { className: "text-xs mt-2", children: "Smart account transactions will appear here" })
7262
6991
  ] })
7263
- ] }) : /* @__PURE__ */ jsx24("div", { className: "space-y-3", children: transactions.map((tx) => {
6992
+ ] }) : /* @__PURE__ */ jsx23("div", { className: "space-y-3", children: transactions.map((tx) => {
7264
6993
  const isIncoming = tx.to.hash.toLowerCase() === address?.toLowerCase();
7265
6994
  const displayAddress = isIncoming ? tx.from.hash : tx.to.hash;
7266
- return /* @__PURE__ */ jsxs16(
6995
+ return /* @__PURE__ */ jsxs15(
7267
6996
  "div",
7268
6997
  {
7269
6998
  className: `${isDark ? "bg-gray-800 hover:bg-gray-700" : "bg-gray-50 hover:bg-gray-100"} rounded-xl p-4 transition-colors cursor-pointer`,
7270
6999
  onClick: () => openInExplorer(tx.hash),
7271
7000
  children: [
7272
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between mb-2", children: [
7273
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7001
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between mb-2", children: [
7002
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
7274
7003
  getTransactionIcon(tx.from.hash, tx.to.hash),
7275
- /* @__PURE__ */ jsx24("span", { className: `font-medium ${theme.titleText}`, children: isIncoming ? "Received" : "Sent" }),
7004
+ /* @__PURE__ */ jsx23("span", { className: `font-medium ${theme.titleText}`, children: isIncoming ? "Received" : "Sent" }),
7276
7005
  getStatusIcon(tx.status)
7277
7006
  ] }),
7278
- /* @__PURE__ */ jsx24("div", { className: `text-xs ${theme.mutedText}`, children: formatTime(tx.timestamp) })
7007
+ /* @__PURE__ */ jsx23("div", { className: `text-xs ${theme.mutedText}`, children: formatTime(tx.timestamp) })
7279
7008
  ] }),
7280
- /* @__PURE__ */ jsxs16("div", { className: "space-y-1 text-sm", children: [
7281
- /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7282
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: isIncoming ? "From:" : "To:" }),
7283
- /* @__PURE__ */ jsxs16("span", { className: `font-mono ${theme.titleText}`, children: [
7009
+ /* @__PURE__ */ jsxs15("div", { className: "space-y-1 text-sm", children: [
7010
+ /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
7011
+ /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: isIncoming ? "From:" : "To:" }),
7012
+ /* @__PURE__ */ jsxs15("span", { className: `font-mono ${theme.titleText}`, children: [
7284
7013
  formatAddress(displayAddress),
7285
- (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)" })
7014
+ (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)" })
7286
7015
  ] })
7287
7016
  ] }),
7288
- /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7289
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Value:" }),
7290
- /* @__PURE__ */ jsxs16("span", { className: `font-semibold ${theme.titleText}`, children: [
7017
+ /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
7018
+ /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: "Value:" }),
7019
+ /* @__PURE__ */ jsxs15("span", { className: `font-semibold ${theme.titleText}`, children: [
7291
7020
  formatValue(tx.value),
7292
7021
  " LUMIA"
7293
7022
  ] })
7294
7023
  ] }),
7295
- /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7296
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Block:" }),
7297
- /* @__PURE__ */ jsxs16("span", { className: `font-mono ${theme.titleText}`, children: [
7024
+ /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
7025
+ /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: "Block:" }),
7026
+ /* @__PURE__ */ jsxs15("span", { className: `font-mono ${theme.titleText}`, children: [
7298
7027
  "#",
7299
7028
  tx.block_number
7300
7029
  ] })
7301
7030
  ] }),
7302
- tx.method && /* @__PURE__ */ jsxs16("div", { className: "flex justify-between", children: [
7303
- /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Method:" }),
7304
- /* @__PURE__ */ jsx24("span", { className: `${isDark ? "text-blue-400" : "text-blue-600"} text-xs`, children: tx.method })
7031
+ tx.method && /* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
7032
+ /* @__PURE__ */ jsx23("span", { className: `${theme.bodyText}`, children: "Method:" }),
7033
+ /* @__PURE__ */ jsx23("span", { className: `${isDark ? "text-blue-400" : "text-blue-600"} text-xs`, children: tx.method })
7305
7034
  ] }),
7306
- 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(
7035
+ 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(
7307
7036
  "span",
7308
7037
  {
7309
7038
  className: `text-xs ${isDark ? "bg-blue-900/30 text-blue-300" : "bg-blue-100 text-blue-800"} px-2 py-0.5 rounded-full`,
@@ -7317,7 +7046,7 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
7317
7046
  tx.hash
7318
7047
  );
7319
7048
  }) }) }),
7320
- 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: [
7049
+ 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: [
7321
7050
  "Total: ",
7322
7051
  transactions.length,
7323
7052
  " transaction",
@@ -7327,11 +7056,11 @@ var TransactionsModal = ({ open, onOpenChange, onBack }) => {
7327
7056
  };
7328
7057
 
7329
7058
  // src/internal/components/ViewAssetsModal.tsx
7330
- import React22 from "react";
7059
+ import React21 from "react";
7331
7060
 
7332
7061
  // src/modules/assets.ts
7333
7062
  init_base();
7334
- import React21 from "react";
7063
+ import React20 from "react";
7335
7064
  import { useBalance, useReadContract, useReadContracts } from "wagmi";
7336
7065
  import { formatUnits, erc20Abi } from "viem";
7337
7066
  var COMMON_TOKENS = [
@@ -7477,7 +7206,7 @@ function useTokenBalance(tokenAddress, userAddress) {
7477
7206
  }
7478
7207
  });
7479
7208
  const { tokenInfo } = useTokenInfo(tokenAddress);
7480
- const formattedBalance = React21.useMemo(() => {
7209
+ const formattedBalance = React20.useMemo(() => {
7481
7210
  if (!balance || !tokenInfo) return "0";
7482
7211
  return formatUnits(balance, tokenInfo.decimals);
7483
7212
  }, [balance, tokenInfo]);
@@ -7493,13 +7222,13 @@ function useTokenBalance(tokenAddress, userAddress) {
7493
7222
  // src/internal/components/ViewAssetsModal.tsx
7494
7223
  init_base();
7495
7224
  import { Gem, RefreshCw as RefreshCw4, Copy, ExternalLink as ExternalLink2, ArrowLeft as ArrowLeft6 } from "lucide-react";
7496
- import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
7225
+ import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
7497
7226
  var ViewAssetsModal = ({ open, onOpenChange, onBack }) => {
7498
7227
  const { address } = useLumiaSession();
7499
7228
  const { assets, refreshBalances, isLoading } = useAssets(address);
7500
- const [copied, setCopied] = React22.useState(null);
7229
+ const [copied, setCopied] = React21.useState(null);
7501
7230
  const { config } = useLumiaPassportConfig();
7502
- const { isDark, classes: theme } = useTheme(config.ui.theme);
7231
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
7503
7232
  const handleCopy = async (text, type) => {
7504
7233
  try {
7505
7234
  await navigator.clipboard.writeText(text);
@@ -7512,107 +7241,107 @@ var ViewAssetsModal = ({ open, onOpenChange, onBack }) => {
7512
7241
  const openInExplorer = (address2) => {
7513
7242
  window.open(`${LUMIA_EXPLORER_URL}/address/${address2}`, "_blank");
7514
7243
  };
7515
- 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: [
7516
- /* @__PURE__ */ jsx25(VisuallyHidden, { children: /* @__PURE__ */ jsx25(DialogTitle, { children: "View Assets" }) }),
7517
- /* @__PURE__ */ jsx25(DialogDescription, { className: "sr-only", children: "View your token balances and assets" }),
7518
- /* @__PURE__ */ jsx25("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
7519
- onBack && /* @__PURE__ */ jsx25(
7244
+ 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: [
7245
+ /* @__PURE__ */ jsx24(VisuallyHidden, { children: /* @__PURE__ */ jsx24(DialogTitle, { children: "View Assets" }) }),
7246
+ /* @__PURE__ */ jsx24(DialogDescription, { className: "sr-only", children: "View your token balances and assets" }),
7247
+ /* @__PURE__ */ jsx24("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7248
+ onBack && /* @__PURE__ */ jsx24(
7520
7249
  "button",
7521
7250
  {
7522
7251
  onClick: onBack,
7523
7252
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
7524
7253
  title: "Back",
7525
- children: /* @__PURE__ */ jsx25(ArrowLeft6, { className: "h-4 w-4" })
7254
+ children: /* @__PURE__ */ jsx24(ArrowLeft6, { className: "h-4 w-4" })
7526
7255
  }
7527
7256
  ),
7528
- /* @__PURE__ */ jsxs17("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7529
- /* @__PURE__ */ jsx25(Gem, { className: "h-5 w-5" }),
7530
- /* @__PURE__ */ jsx25("span", { children: "Your Assets" }),
7531
- /* @__PURE__ */ jsx25(
7257
+ /* @__PURE__ */ jsxs16("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7258
+ /* @__PURE__ */ jsx24(Gem, { className: "h-5 w-5" }),
7259
+ /* @__PURE__ */ jsx24("span", { children: "Your Assets" }),
7260
+ /* @__PURE__ */ jsx24(
7532
7261
  "button",
7533
7262
  {
7534
7263
  onClick: refreshBalances,
7535
7264
  disabled: isLoading,
7536
7265
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1`,
7537
7266
  title: "Refresh balances",
7538
- children: /* @__PURE__ */ jsx25(RefreshCw4, { className: `h-4 w-4 ${isLoading ? "animate-spin" : ""}` })
7267
+ children: /* @__PURE__ */ jsx24(RefreshCw4, { className: `h-4 w-4 ${isLoading ? "animate-spin" : ""}` })
7539
7268
  }
7540
7269
  )
7541
7270
  ] })
7542
7271
  ] }) }),
7543
- /* @__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: [
7544
- /* @__PURE__ */ jsx25(Gem, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
7545
- /* @__PURE__ */ jsx25("p", { children: "No assets found" })
7546
- ] }) : /* @__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: [
7547
- /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between mb-2", children: [
7548
- /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-3", children: [
7549
- /* @__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) }) }),
7550
- /* @__PURE__ */ jsxs17("div", { children: [
7551
- /* @__PURE__ */ jsx25("div", { className: `font-medium ${theme.titleText}`, children: asset.name }),
7552
- /* @__PURE__ */ jsx25("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7272
+ /* @__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: [
7273
+ /* @__PURE__ */ jsx24(Gem, { className: `w-12 h-12 mb-2 ${isDark ? "text-gray-600" : "text-gray-300"}` }),
7274
+ /* @__PURE__ */ jsx24("p", { children: "No assets found" })
7275
+ ] }) : /* @__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: [
7276
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between mb-2", children: [
7277
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-3", children: [
7278
+ /* @__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) }) }),
7279
+ /* @__PURE__ */ jsxs16("div", { children: [
7280
+ /* @__PURE__ */ jsx24("div", { className: `font-medium ${theme.titleText}`, children: asset.name }),
7281
+ /* @__PURE__ */ jsx24("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7553
7282
  ] })
7554
7283
  ] }),
7555
- /* @__PURE__ */ jsxs17("div", { className: "text-right", children: [
7556
- /* @__PURE__ */ jsx25("div", { className: `font-mono ${theme.titleText}`, children: asset.formattedBalance }),
7557
- /* @__PURE__ */ jsx25("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7284
+ /* @__PURE__ */ jsxs16("div", { className: "text-right", children: [
7285
+ /* @__PURE__ */ jsx24("div", { className: `font-mono ${theme.titleText}`, children: asset.formattedBalance }),
7286
+ /* @__PURE__ */ jsx24("div", { className: `text-sm ${theme.mutedText}`, children: asset.symbol })
7558
7287
  ] })
7559
7288
  ] }),
7560
- asset.address && /* @__PURE__ */ jsxs17("div", { className: `space-y-2 mt-3 pt-3 border-t ${theme.divider}`, children: [
7561
- /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-sm", children: [
7562
- /* @__PURE__ */ jsx25("span", { className: `${theme.bodyText}`, children: "Contract Address:" }),
7563
- /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
7564
- /* @__PURE__ */ jsx25("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` }),
7565
- /* @__PURE__ */ jsx25(
7289
+ asset.address && /* @__PURE__ */ jsxs16("div", { className: `space-y-2 mt-3 pt-3 border-t ${theme.divider}`, children: [
7290
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between text-sm", children: [
7291
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Contract Address:" }),
7292
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7293
+ /* @__PURE__ */ jsx24("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${asset.address.slice(0, 6)}...${asset.address.slice(-4)}` }),
7294
+ /* @__PURE__ */ jsx24(
7566
7295
  "button",
7567
7296
  {
7568
7297
  onClick: () => handleCopy(asset.address, "address"),
7569
7298
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7570
7299
  title: "Copy address",
7571
- 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" })
7300
+ 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" })
7572
7301
  }
7573
7302
  ),
7574
- /* @__PURE__ */ jsx25(
7303
+ /* @__PURE__ */ jsx24(
7575
7304
  "button",
7576
7305
  {
7577
7306
  onClick: () => openInExplorer(asset.address),
7578
7307
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7579
7308
  title: "View in explorer",
7580
- children: /* @__PURE__ */ jsx25(ExternalLink2, { className: "w-3 h-3" })
7309
+ children: /* @__PURE__ */ jsx24(ExternalLink2, { className: "w-3 h-3" })
7581
7310
  }
7582
7311
  )
7583
7312
  ] })
7584
7313
  ] }),
7585
- asset.decimals && /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-sm", children: [
7586
- /* @__PURE__ */ jsx25("span", { className: `${theme.bodyText}`, children: "Decimals:" }),
7587
- /* @__PURE__ */ jsx25("span", { className: `${theme.titleText}`, children: asset.decimals })
7314
+ asset.decimals && /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between text-sm", children: [
7315
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Decimals:" }),
7316
+ /* @__PURE__ */ jsx24("span", { className: `${theme.titleText}`, children: asset.decimals })
7588
7317
  ] })
7589
7318
  ] }),
7590
- 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: [
7591
- /* @__PURE__ */ jsx25("span", { className: `${theme.bodyText}`, children: "Your Address:" }),
7592
- /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
7593
- /* @__PURE__ */ jsx25("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${address.slice(0, 6)}...${address.slice(-4)}` }),
7594
- /* @__PURE__ */ jsx25(
7319
+ 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: [
7320
+ /* @__PURE__ */ jsx24("span", { className: `${theme.bodyText}`, children: "Your Address:" }),
7321
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
7322
+ /* @__PURE__ */ jsx24("span", { className: `font-mono ${theme.titleText} text-xs`, children: `${address.slice(0, 6)}...${address.slice(-4)}` }),
7323
+ /* @__PURE__ */ jsx24(
7595
7324
  "button",
7596
7325
  {
7597
7326
  onClick: () => handleCopy(address, "wallet"),
7598
7327
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7599
7328
  title: "Copy wallet address",
7600
- 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" })
7329
+ 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" })
7601
7330
  }
7602
7331
  ),
7603
- /* @__PURE__ */ jsx25(
7332
+ /* @__PURE__ */ jsx24(
7604
7333
  "button",
7605
7334
  {
7606
7335
  onClick: () => openInExplorer(address),
7607
7336
  className: `${isDark ? "text-gray-500 hover:text-gray-300" : "text-gray-400 hover:text-gray-600"}`,
7608
7337
  title: "View in explorer",
7609
- children: /* @__PURE__ */ jsx25(ExternalLink2, { className: "w-3 h-3" })
7338
+ children: /* @__PURE__ */ jsx24(ExternalLink2, { className: "w-3 h-3" })
7610
7339
  }
7611
7340
  )
7612
7341
  ] })
7613
7342
  ] }) })
7614
7343
  ] }, `${asset.type}-${asset.address || "native"}-${index}`)) }) }),
7615
- 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: [
7344
+ 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: [
7616
7345
  "Total: ",
7617
7346
  assets.length,
7618
7347
  " asset",
@@ -7622,19 +7351,19 @@ var ViewAssetsModal = ({ open, onOpenChange, onBack }) => {
7622
7351
  };
7623
7352
 
7624
7353
  // src/internal/components/SendModal.tsx
7625
- import { useState as useState13, useEffect as useEffect10 } from "react";
7626
- import { Send, ArrowLeft as ArrowLeft7, Loader2, CheckCircle2 as CheckCircle27, AlertCircle as AlertCircle5 } from "lucide-react";
7354
+ import { useState as useState12, useEffect as useEffect9 } from "react";
7355
+ import { Send, ArrowLeft as ArrowLeft7, Loader2, CheckCircle2 as CheckCircle26, AlertCircle as AlertCircle4 } from "lucide-react";
7627
7356
 
7628
7357
  // src/hooks/useSendTransaction.ts
7629
7358
  init_account();
7630
- import { useState as useState10, useCallback as useCallback4 } from "react";
7359
+ import { useState as useState9, useCallback as useCallback3 } from "react";
7631
7360
  import { parseEther as parseEther2, isAddress } from "viem";
7632
7361
  function useSendTransaction() {
7633
7362
  const { session, address } = useLumiaSession();
7634
- const [isLoading, setIsLoading] = useState10(false);
7635
- const [error, setError] = useState10(null);
7636
- const [userOpHash, setUserOpHash] = useState10(null);
7637
- const sendTransaction = useCallback4(async (params) => {
7363
+ const [isLoading, setIsLoading] = useState9(false);
7364
+ const [error, setError] = useState9(null);
7365
+ const [userOpHash, setUserOpHash] = useState9(null);
7366
+ const sendTransaction = useCallback3(async (params) => {
7638
7367
  if (!session || !address) {
7639
7368
  setError("No active session");
7640
7369
  return null;
@@ -7671,7 +7400,7 @@ function useSendTransaction() {
7671
7400
  setIsLoading(false);
7672
7401
  }
7673
7402
  }, [session, address]);
7674
- const reset = useCallback4(() => {
7403
+ const reset = useCallback3(() => {
7675
7404
  setError(null);
7676
7405
  setUserOpHash(null);
7677
7406
  setIsLoading(false);
@@ -7690,8 +7419,8 @@ import { isAddress as isAddress2 } from "viem";
7690
7419
  import { useBalance as useBalance2 } from "wagmi";
7691
7420
 
7692
7421
  // src/internal/components/UserOpStatus.tsx
7693
- import * as React24 from "react";
7694
- import { AlertCircle as AlertCircle4, CheckCircle2 as CheckCircle26, Clock as Clock3, Copy as Copy3, ExternalLink as ExternalLink4, RefreshCw as RefreshCw5 } from "lucide-react";
7422
+ import * as React23 from "react";
7423
+ import { AlertCircle as AlertCircle3, CheckCircle2 as CheckCircle25, Clock as Clock3, Copy as Copy3, ExternalLink as ExternalLink4, RefreshCw as RefreshCw5 } from "lucide-react";
7695
7424
 
7696
7425
  // src/internal/components/ui/badge.tsx
7697
7426
  import { cva as cva2 } from "class-variance-authority";
@@ -7704,7 +7433,7 @@ function cn2(...inputs) {
7704
7433
  }
7705
7434
 
7706
7435
  // src/internal/components/ui/badge.tsx
7707
- import { jsx as jsx26 } from "react/jsx-runtime";
7436
+ import { jsx as jsx25 } from "react/jsx-runtime";
7708
7437
  var badgeVariants = cva2(
7709
7438
  "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",
7710
7439
  {
@@ -7724,13 +7453,13 @@ var badgeVariants = cva2(
7724
7453
  }
7725
7454
  );
7726
7455
  function Badge({ className, variant, ...props }) {
7727
- return /* @__PURE__ */ jsx26("div", { className: cn2(badgeVariants({ variant }), className), ...props });
7456
+ return /* @__PURE__ */ jsx25("div", { className: cn2(badgeVariants({ variant }), className), ...props });
7728
7457
  }
7729
7458
 
7730
7459
  // src/internal/components/Address.tsx
7731
- import * as React23 from "react";
7460
+ import * as React22 from "react";
7732
7461
  import { Copy as Copy2, ExternalLink as ExternalLink3 } from "lucide-react";
7733
- import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
7462
+ import { jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
7734
7463
  function toExplorerAddressUrl(address, chain) {
7735
7464
  const base2 = chain?.blockExplorers?.default?.url;
7736
7465
  if (!base2) return null;
@@ -7751,12 +7480,12 @@ var Address = ({
7751
7480
  }) => {
7752
7481
  const addr = address || "";
7753
7482
  const explorer = toExplorerAddressUrl(addr, chain || void 0);
7754
- const [copied, setCopied] = React23.useState(false);
7755
- if (!addr) return /* @__PURE__ */ jsx27("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
7756
- return /* @__PURE__ */ jsxs18("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
7757
- label && /* @__PURE__ */ jsx27("span", { className: "text-sm font-medium", children: label }),
7758
- /* @__PURE__ */ jsx27("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
7759
- showCopy && /* @__PURE__ */ jsx27(
7483
+ const [copied, setCopied] = React22.useState(false);
7484
+ if (!addr) return /* @__PURE__ */ jsx26("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
7485
+ return /* @__PURE__ */ jsxs17("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
7486
+ label && /* @__PURE__ */ jsx26("span", { className: "text-sm font-medium", children: label }),
7487
+ /* @__PURE__ */ jsx26("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
7488
+ showCopy && /* @__PURE__ */ jsx26(
7760
7489
  Button,
7761
7490
  {
7762
7491
  variant: "ghost",
@@ -7770,10 +7499,10 @@ var Address = ({
7770
7499
  } catch {
7771
7500
  }
7772
7501
  },
7773
- children: /* @__PURE__ */ jsx27(Copy2, { className: "h-4 w-4" })
7502
+ children: /* @__PURE__ */ jsx26(Copy2, { className: "h-4 w-4" })
7774
7503
  }
7775
7504
  ),
7776
- showExplorer && explorer && /* @__PURE__ */ jsx27(
7505
+ showExplorer && explorer && /* @__PURE__ */ jsx26(
7777
7506
  "a",
7778
7507
  {
7779
7508
  href: explorer,
@@ -7781,7 +7510,7 @@ var Address = ({
7781
7510
  rel: "noreferrer noopener",
7782
7511
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
7783
7512
  title: "Open in explorer",
7784
- children: /* @__PURE__ */ jsx27(ExternalLink3, { className: "h-4 w-4" })
7513
+ children: /* @__PURE__ */ jsx26(ExternalLink3, { className: "h-4 w-4" })
7785
7514
  }
7786
7515
  )
7787
7516
  ] });
@@ -7789,7 +7518,7 @@ var Address = ({
7789
7518
 
7790
7519
  // src/internal/components/UserOpStatus.tsx
7791
7520
  init_base();
7792
- import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
7521
+ import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
7793
7522
  var UserOpStatus = ({
7794
7523
  userOpHash,
7795
7524
  chain,
@@ -7800,20 +7529,20 @@ var UserOpStatus = ({
7800
7529
  externalState
7801
7530
  }) => {
7802
7531
  const useExternalState = !!externalState;
7803
- const [internalReceipt, setInternalReceipt] = React24.useState(null);
7804
- const [internalMempool, setInternalMempool] = React24.useState(null);
7805
- const [internalError, setInternalError] = React24.useState(null);
7806
- const [attempt, setAttempt] = React24.useState(0);
7807
- const [internalRefreshing, setInternalRefreshing] = React24.useState(false);
7808
- const [timedOut, setTimedOut] = React24.useState(false);
7809
- const [rejected, setRejected] = React24.useState(false);
7810
- const intervalRef = React24.useRef(null);
7811
- const startTimeRef = React24.useRef(Date.now());
7532
+ const [internalReceipt, setInternalReceipt] = React23.useState(null);
7533
+ const [internalMempool, setInternalMempool] = React23.useState(null);
7534
+ const [internalError, setInternalError] = React23.useState(null);
7535
+ const [attempt, setAttempt] = React23.useState(0);
7536
+ const [internalRefreshing, setInternalRefreshing] = React23.useState(false);
7537
+ const [timedOut, setTimedOut] = React23.useState(false);
7538
+ const [rejected, setRejected] = React23.useState(false);
7539
+ const intervalRef = React23.useRef(null);
7540
+ const startTimeRef = React23.useRef(Date.now());
7812
7541
  const receipt = useExternalState ? externalState.receipt ?? null : internalReceipt;
7813
7542
  const mempool = useExternalState ? externalState.mempool ?? null : internalMempool;
7814
7543
  const error = useExternalState ? externalState.error ?? null : internalError;
7815
7544
  const refreshing = useExternalState ? externalState.isPolling ?? false : internalRefreshing;
7816
- const rpc = React24.useCallback(async (method, params) => {
7545
+ const rpc = React23.useCallback(async (method, params) => {
7817
7546
  const body = { jsonrpc: "2.0", id: 1, method, params };
7818
7547
  const res = await fetch(getBundlerUrl(), {
7819
7548
  method: "POST",
@@ -7824,14 +7553,14 @@ var UserOpStatus = ({
7824
7553
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
7825
7554
  return json.result;
7826
7555
  }, []);
7827
- const extractMempoolInfo = React24.useCallback((m) => {
7556
+ const extractMempoolInfo = React23.useCallback((m) => {
7828
7557
  if (!m) return null;
7829
7558
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
7830
7559
  const sender = m.sender || m?.userOperation?.sender || null;
7831
7560
  if (!entryPoint && !sender) return null;
7832
7561
  return { entryPoint, sender };
7833
7562
  }, []);
7834
- const tick = React24.useCallback(async () => {
7563
+ const tick = React23.useCallback(async () => {
7835
7564
  if (useExternalState) return;
7836
7565
  const elapsed = Date.now() - startTimeRef.current;
7837
7566
  if (elapsed > maxPollTimeMs) {
@@ -7875,7 +7604,7 @@ var UserOpStatus = ({
7875
7604
  setAttempt((x) => x + 1);
7876
7605
  }
7877
7606
  }, [rpc, userOpHash, maxPollTimeMs, extractMempoolInfo, useExternalState]);
7878
- React24.useEffect(() => {
7607
+ React23.useEffect(() => {
7879
7608
  if (useExternalState) return;
7880
7609
  console.log("[UserOpStatus] Initializing polling for UserOp hash:", userOpHash);
7881
7610
  startTimeRef.current = Date.now();
@@ -7887,7 +7616,7 @@ var UserOpStatus = ({
7887
7616
  setAttempt(0);
7888
7617
  setInternalRefreshing(false);
7889
7618
  }, [userOpHash, useExternalState]);
7890
- React24.useEffect(() => {
7619
+ React23.useEffect(() => {
7891
7620
  if (useExternalState) {
7892
7621
  console.log("[UserOpStatus] Using external state, skipping internal polling");
7893
7622
  return;
@@ -7922,54 +7651,54 @@ var UserOpStatus = ({
7922
7651
  const stateBadge = () => {
7923
7652
  if (receipt) {
7924
7653
  const ok = !!receipt.success;
7925
- return /* @__PURE__ */ jsxs19(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
7926
- ok ? /* @__PURE__ */ jsx28(CheckCircle26, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-3 w-3" }),
7654
+ return /* @__PURE__ */ jsxs18(Badge, { variant: ok ? "success" : "destructive", className: "gap-1", children: [
7655
+ ok ? /* @__PURE__ */ jsx27(CheckCircle25, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-3 w-3" }),
7927
7656
  ok ? "Included" : "Failed"
7928
7657
  ] });
7929
7658
  }
7930
7659
  if (rejected) {
7931
- return /* @__PURE__ */ jsxs19(Badge, { variant: "destructive", className: "gap-1", children: [
7932
- /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-3 w-3" }),
7660
+ return /* @__PURE__ */ jsxs18(Badge, { variant: "destructive", className: "gap-1", children: [
7661
+ /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-3 w-3" }),
7933
7662
  " Rejected by bundler"
7934
7663
  ] });
7935
7664
  }
7936
7665
  if (timedOut) {
7937
- return /* @__PURE__ */ jsxs19(Badge, { variant: "warning", className: "gap-1", children: [
7938
- /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-3 w-3" }),
7666
+ return /* @__PURE__ */ jsxs18(Badge, { variant: "warning", className: "gap-1", children: [
7667
+ /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-3 w-3" }),
7939
7668
  " Timeout - may be rejected"
7940
7669
  ] });
7941
7670
  }
7942
7671
  if (mempool) {
7943
- return /* @__PURE__ */ jsxs19(Badge, { variant: "outline", className: "gap-1", children: [
7944
- /* @__PURE__ */ jsx28(Clock3, { className: "h-3 w-3" }),
7672
+ return /* @__PURE__ */ jsxs18(Badge, { variant: "outline", className: "gap-1", children: [
7673
+ /* @__PURE__ */ jsx27(Clock3, { className: "h-3 w-3" }),
7945
7674
  " Pending in bundler"
7946
7675
  ] });
7947
7676
  }
7948
- return /* @__PURE__ */ jsxs19(Badge, { variant: "secondary", className: "gap-1", children: [
7949
- /* @__PURE__ */ jsx28(Clock3, { className: "h-3 w-3" }),
7677
+ return /* @__PURE__ */ jsxs18(Badge, { variant: "secondary", className: "gap-1", children: [
7678
+ /* @__PURE__ */ jsx27(Clock3, { className: "h-3 w-3" }),
7950
7679
  " Waiting"
7951
7680
  ] });
7952
7681
  };
7953
- return /* @__PURE__ */ jsxs19(
7682
+ return /* @__PURE__ */ jsxs18(
7954
7683
  "div",
7955
7684
  {
7956
7685
  className: cn2("lumia-scope bg-card text-card-foreground p-0 rounded-xl border border-border w-full max-w-[680px]", className),
7957
7686
  style: { textAlign: "left", listStyle: "none" },
7958
7687
  children: [
7959
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between mb-3", children: [
7960
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
7688
+ /* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between mb-3", children: [
7689
+ /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
7961
7690
  stateBadge(),
7962
- /* @__PURE__ */ jsx28("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
7691
+ /* @__PURE__ */ jsx27("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
7963
7692
  ] }),
7964
- /* @__PURE__ */ jsxs19(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
7965
- /* @__PURE__ */ jsx28(RefreshCw5, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
7966
- /* @__PURE__ */ jsx28("span", { className: "text-xs", children: "Refresh" })
7693
+ /* @__PURE__ */ jsxs18(Button, { variant: "ghost", size: "sm", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
7694
+ /* @__PURE__ */ jsx27(RefreshCw5, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
7695
+ /* @__PURE__ */ jsx27("span", { className: "text-xs", children: "Refresh" })
7967
7696
  ] })
7968
7697
  ] }),
7969
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2 mb-2", children: [
7970
- /* @__PURE__ */ jsx28("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
7971
- /* @__PURE__ */ jsx28("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
7972
- /* @__PURE__ */ jsx28(
7698
+ /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 mb-2", children: [
7699
+ /* @__PURE__ */ jsx27("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
7700
+ /* @__PURE__ */ jsx27("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
7701
+ /* @__PURE__ */ jsx27(
7973
7702
  Button,
7974
7703
  {
7975
7704
  variant: "ghost",
@@ -7981,14 +7710,14 @@ var UserOpStatus = ({
7981
7710
  } catch {
7982
7711
  }
7983
7712
  },
7984
- children: /* @__PURE__ */ jsx28(Copy3, { className: "h-3.5 w-3.5" })
7713
+ children: /* @__PURE__ */ jsx27(Copy3, { className: "h-3.5 w-3.5" })
7985
7714
  }
7986
7715
  )
7987
7716
  ] }),
7988
- receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2 mb-3", children: [
7989
- /* @__PURE__ */ jsx28("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
7990
- /* @__PURE__ */ jsx28("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
7991
- /* @__PURE__ */ jsx28(
7717
+ receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 mb-3", children: [
7718
+ /* @__PURE__ */ jsx27("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
7719
+ /* @__PURE__ */ jsx27("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
7720
+ /* @__PURE__ */ jsx27(
7992
7721
  Button,
7993
7722
  {
7994
7723
  variant: "ghost",
@@ -8000,10 +7729,10 @@ var UserOpStatus = ({
8000
7729
  } catch {
8001
7730
  }
8002
7731
  },
8003
- children: /* @__PURE__ */ jsx28(Copy3, { className: "h-3.5 w-3.5" })
7732
+ children: /* @__PURE__ */ jsx27(Copy3, { className: "h-3.5 w-3.5" })
8004
7733
  }
8005
7734
  ),
8006
- chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx28(
7735
+ chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx27(
8007
7736
  "a",
8008
7737
  {
8009
7738
  href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
@@ -8011,11 +7740,11 @@ var UserOpStatus = ({
8011
7740
  rel: "noreferrer noopener",
8012
7741
  className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
8013
7742
  title: "Open in explorer",
8014
- children: /* @__PURE__ */ jsx28(ExternalLink4, { className: "h-3.5 w-3.5" })
7743
+ children: /* @__PURE__ */ jsx27(ExternalLink4, { className: "h-3.5 w-3.5" })
8015
7744
  }
8016
7745
  )
8017
7746
  ] }),
8018
- receipt && /* @__PURE__ */ jsxs19("div", { className: "text-xs text-muted-foreground mb-3", children: [
7747
+ receipt && /* @__PURE__ */ jsxs18("div", { className: "text-xs text-muted-foreground mb-3", children: [
8019
7748
  "Block ",
8020
7749
  parseInt(receipt.receipt?.blockNumber || "0x0", 16),
8021
7750
  " \u2022 Gas Used",
@@ -8024,32 +7753,32 @@ var UserOpStatus = ({
8024
7753
  " \u2022 Success ",
8025
7754
  String(!!receipt.success)
8026
7755
  ] }),
8027
- /* @__PURE__ */ jsx28("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs19("span", { className: "ml-2", children: [
7756
+ /* @__PURE__ */ jsx27("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs18("span", { className: "ml-2", children: [
8028
7757
  "\u2022 Polling for ",
8029
7758
  Math.round((Date.now() - startTimeRef.current) / 1e3),
8030
7759
  "s"
8031
7760
  ] }) }),
8032
- mempool && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
8033
- /* @__PURE__ */ jsxs19("div", { children: [
7761
+ mempool && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
7762
+ /* @__PURE__ */ jsxs18("div", { children: [
8034
7763
  "Seen by bundler at ",
8035
- /* @__PURE__ */ jsx28(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
7764
+ /* @__PURE__ */ jsx27(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
8036
7765
  ] }),
8037
- /* @__PURE__ */ jsxs19("div", { children: [
7766
+ /* @__PURE__ */ jsxs18("div", { children: [
8038
7767
  "sender ",
8039
- /* @__PURE__ */ jsx28(Address, { address: mempool.sender, chain, truncate: false })
7768
+ /* @__PURE__ */ jsx27(Address, { address: mempool.sender, chain, truncate: false })
8040
7769
  ] })
8041
7770
  ] }),
8042
- error && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
8043
- /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7771
+ error && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7772
+ /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-4 w-4" }),
8044
7773
  " ",
8045
7774
  error
8046
7775
  ] }),
8047
- rejected && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
8048
- /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7776
+ rejected && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7777
+ /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-4 w-4" }),
8049
7778
  "UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
8050
7779
  ] }),
8051
- timedOut && /* @__PURE__ */ jsxs19("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
8052
- /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7780
+ timedOut && /* @__PURE__ */ jsxs18("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
7781
+ /* @__PURE__ */ jsx27(AlertCircle3, { className: "h-4 w-4" }),
8053
7782
  "Stopped polling after ",
8054
7783
  Math.round(maxPollTimeMs / 1e3),
8055
7784
  "s. UserOperation may have been rejected by the bundler."
@@ -8061,7 +7790,7 @@ var UserOpStatus = ({
8061
7790
 
8062
7791
  // src/internal/components/SendModal.tsx
8063
7792
  init_base();
8064
- import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
7793
+ import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
8065
7794
  var SendModal = ({
8066
7795
  open,
8067
7796
  onOpenChange,
@@ -8072,19 +7801,19 @@ var SendModal = ({
8072
7801
  const { address } = useLumiaSession();
8073
7802
  const { assets } = useAssets(address);
8074
7803
  const { config } = useLumiaPassportConfig();
8075
- const { isDark, classes: theme } = useTheme(config.ui.theme);
7804
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
8076
7805
  const { sendTransaction, isLoading, error, userOpHash, reset } = useSendTransaction();
8077
7806
  const { refetch: refetchBalance } = useBalance2({
8078
7807
  address,
8079
7808
  chainId: lumiaBeam.id
8080
7809
  });
8081
- const [recipient, setRecipient] = useState13(initialRecipient);
8082
- const [amount, setAmount] = useState13(initialAmount);
8083
- const [txStep, setTxStep] = useState13("input");
8084
- const [validationError, setValidationError] = useState13(null);
7810
+ const [recipient, setRecipient] = useState12(initialRecipient);
7811
+ const [amount, setAmount] = useState12(initialAmount);
7812
+ const [txStep, setTxStep] = useState12("input");
7813
+ const [validationError, setValidationError] = useState12(null);
8085
7814
  const nativeAsset = assets.find((a) => a.type === "native");
8086
7815
  const balance = nativeAsset ? parseFloat(nativeAsset.formattedBalance) : 0;
8087
- useEffect10(() => {
7816
+ useEffect9(() => {
8088
7817
  if (open) {
8089
7818
  setTxStep("input");
8090
7819
  setValidationError(null);
@@ -8144,7 +7873,7 @@ var SendModal = ({
8144
7873
  const maxAmount = Math.max(0, balance - 1e-3);
8145
7874
  setAmount(maxAmount.toFixed(6));
8146
7875
  };
8147
- return /* @__PURE__ */ jsx29(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs20(
7876
+ return /* @__PURE__ */ jsx28(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs19(
8148
7877
  DialogContent,
8149
7878
  {
8150
7879
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -8156,28 +7885,28 @@ var SendModal = ({
8156
7885
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
8157
7886
  },
8158
7887
  children: [
8159
- /* @__PURE__ */ jsx29(VisuallyHidden, { children: /* @__PURE__ */ jsx29(DialogTitle, { children: "Send Transaction" }) }),
8160
- /* @__PURE__ */ jsx29(DialogDescription, { className: "sr-only", children: "Send LUMIA tokens to another address" }),
8161
- /* @__PURE__ */ jsx29("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
8162
- onBack && txStep === "input" && /* @__PURE__ */ jsx29(
7888
+ /* @__PURE__ */ jsx28(VisuallyHidden, { children: /* @__PURE__ */ jsx28(DialogTitle, { children: "Send Transaction" }) }),
7889
+ /* @__PURE__ */ jsx28(DialogDescription, { className: "sr-only", children: "Send LUMIA tokens to another address" }),
7890
+ /* @__PURE__ */ jsx28("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
7891
+ onBack && txStep === "input" && /* @__PURE__ */ jsx28(
8163
7892
  "button",
8164
7893
  {
8165
7894
  onClick: onBack,
8166
7895
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
8167
7896
  title: "Back",
8168
- children: /* @__PURE__ */ jsx29(ArrowLeft7, { className: "h-4 w-4" })
7897
+ children: /* @__PURE__ */ jsx28(ArrowLeft7, { className: "h-4 w-4" })
8169
7898
  }
8170
7899
  ),
8171
- /* @__PURE__ */ jsxs20("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8172
- /* @__PURE__ */ jsx29(Send, { className: "h-5 w-5" }),
8173
- /* @__PURE__ */ jsx29("span", { children: "Send LUMIA" })
7900
+ /* @__PURE__ */ jsxs19("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
7901
+ /* @__PURE__ */ jsx28(Send, { className: "h-5 w-5" }),
7902
+ /* @__PURE__ */ jsx28("span", { children: "Send LUMIA" })
8174
7903
  ] })
8175
7904
  ] }) }),
8176
- /* @__PURE__ */ jsxs20("div", { className: "p-5", children: [
8177
- txStep === "input" && /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
8178
- /* @__PURE__ */ jsxs20("div", { children: [
8179
- /* @__PURE__ */ jsx29("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Recipient Address" }),
8180
- /* @__PURE__ */ jsx29(
7905
+ /* @__PURE__ */ jsxs19("div", { className: "p-5", children: [
7906
+ txStep === "input" && /* @__PURE__ */ jsxs19("div", { className: "space-y-4", children: [
7907
+ /* @__PURE__ */ jsxs19("div", { children: [
7908
+ /* @__PURE__ */ jsx28("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Recipient Address" }),
7909
+ /* @__PURE__ */ jsx28(
8181
7910
  "input",
8182
7911
  {
8183
7912
  type: "text",
@@ -8188,17 +7917,17 @@ var SendModal = ({
8188
7917
  }
8189
7918
  )
8190
7919
  ] }),
8191
- /* @__PURE__ */ jsxs20("div", { children: [
8192
- /* @__PURE__ */ jsxs20("div", { className: "flex justify-between items-center mb-2", children: [
8193
- /* @__PURE__ */ jsx29("label", { className: `text-sm font-medium ${theme.bodyText}`, children: "Amount" }),
8194
- /* @__PURE__ */ jsxs20("div", { className: `text-sm ${theme.mutedText}`, children: [
7920
+ /* @__PURE__ */ jsxs19("div", { children: [
7921
+ /* @__PURE__ */ jsxs19("div", { className: "flex justify-between items-center mb-2", children: [
7922
+ /* @__PURE__ */ jsx28("label", { className: `text-sm font-medium ${theme.bodyText}`, children: "Amount" }),
7923
+ /* @__PURE__ */ jsxs19("div", { className: `text-sm ${theme.mutedText}`, children: [
8195
7924
  "Balance: ",
8196
7925
  balance.toFixed(4),
8197
7926
  " LUMIA"
8198
7927
  ] })
8199
7928
  ] }),
8200
- /* @__PURE__ */ jsxs20("div", { className: "relative", children: [
8201
- /* @__PURE__ */ jsx29(
7929
+ /* @__PURE__ */ jsxs19("div", { className: "relative", children: [
7930
+ /* @__PURE__ */ jsx28(
8202
7931
  "input",
8203
7932
  {
8204
7933
  type: "number",
@@ -8209,7 +7938,7 @@ var SendModal = ({
8209
7938
  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`
8210
7939
  }
8211
7940
  ),
8212
- /* @__PURE__ */ jsx29(
7941
+ /* @__PURE__ */ jsx28(
8213
7942
  "button",
8214
7943
  {
8215
7944
  onClick: handleMaxAmount,
@@ -8219,11 +7948,11 @@ var SendModal = ({
8219
7948
  )
8220
7949
  ] })
8221
7950
  ] }),
8222
- (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: [
8223
- /* @__PURE__ */ jsx29(AlertCircle5, { className: "h-4 w-4" }),
8224
- /* @__PURE__ */ jsx29("span", { className: "text-sm", children: validationError || error })
7951
+ (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: [
7952
+ /* @__PURE__ */ jsx28(AlertCircle4, { className: "h-4 w-4" }),
7953
+ /* @__PURE__ */ jsx28("span", { className: "text-sm", children: validationError || error })
8225
7954
  ] }),
8226
- /* @__PURE__ */ jsx29(
7955
+ /* @__PURE__ */ jsx28(
8227
7956
  Button,
8228
7957
  {
8229
7958
  onClick: handleSend,
@@ -8234,29 +7963,29 @@ var SendModal = ({
8234
7963
  }
8235
7964
  )
8236
7965
  ] }),
8237
- txStep === "confirm" && /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
8238
- /* @__PURE__ */ jsxs20("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
8239
- /* @__PURE__ */ jsx29("h3", { className: `font-medium ${theme.titleText} mb-3`, children: "Transaction Details" }),
8240
- /* @__PURE__ */ jsxs20("div", { className: "space-y-2 text-sm", children: [
8241
- /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
8242
- /* @__PURE__ */ jsx29("span", { className: `${theme.bodyText}`, children: "To:" }),
8243
- /* @__PURE__ */ jsx29("span", { className: `font-mono ${theme.titleText}`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
7966
+ txStep === "confirm" && /* @__PURE__ */ jsxs19("div", { className: "space-y-4", children: [
7967
+ /* @__PURE__ */ jsxs19("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
7968
+ /* @__PURE__ */ jsx28("h3", { className: `font-medium ${theme.titleText} mb-3`, children: "Transaction Details" }),
7969
+ /* @__PURE__ */ jsxs19("div", { className: "space-y-2 text-sm", children: [
7970
+ /* @__PURE__ */ jsxs19("div", { className: "flex justify-between", children: [
7971
+ /* @__PURE__ */ jsx28("span", { className: `${theme.bodyText}`, children: "To:" }),
7972
+ /* @__PURE__ */ jsx28("span", { className: `font-mono ${theme.titleText}`, children: `${recipient.slice(0, 6)}...${recipient.slice(-4)}` })
8244
7973
  ] }),
8245
- /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
8246
- /* @__PURE__ */ jsx29("span", { className: `${theme.bodyText}`, children: "Amount:" }),
8247
- /* @__PURE__ */ jsxs20("span", { className: `font-semibold ${theme.titleText}`, children: [
7974
+ /* @__PURE__ */ jsxs19("div", { className: "flex justify-between", children: [
7975
+ /* @__PURE__ */ jsx28("span", { className: `${theme.bodyText}`, children: "Amount:" }),
7976
+ /* @__PURE__ */ jsxs19("span", { className: `font-semibold ${theme.titleText}`, children: [
8248
7977
  amount,
8249
7978
  " LUMIA"
8250
7979
  ] })
8251
7980
  ] }),
8252
- /* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
8253
- /* @__PURE__ */ jsx29("span", { className: `${theme.bodyText}`, children: "Network:" }),
8254
- /* @__PURE__ */ jsx29("span", { className: `${theme.titleText}`, children: "Lumia Beam" })
7981
+ /* @__PURE__ */ jsxs19("div", { className: "flex justify-between", children: [
7982
+ /* @__PURE__ */ jsx28("span", { className: `${theme.bodyText}`, children: "Network:" }),
7983
+ /* @__PURE__ */ jsx28("span", { className: `${theme.titleText}`, children: "Lumia Beam" })
8255
7984
  ] })
8256
7985
  ] })
8257
7986
  ] }),
8258
- /* @__PURE__ */ jsxs20("div", { className: "flex gap-2", children: [
8259
- /* @__PURE__ */ jsx29(
7987
+ /* @__PURE__ */ jsxs19("div", { className: "flex gap-2", children: [
7988
+ /* @__PURE__ */ jsx28(
8260
7989
  Button,
8261
7990
  {
8262
7991
  onClick: () => setTxStep("input"),
@@ -8266,7 +7995,7 @@ var SendModal = ({
8266
7995
  children: "Back"
8267
7996
  }
8268
7997
  ),
8269
- /* @__PURE__ */ jsxs20(
7998
+ /* @__PURE__ */ jsxs19(
8270
7999
  Button,
8271
8000
  {
8272
8001
  onClick: handleConfirm,
@@ -8274,28 +8003,28 @@ var SendModal = ({
8274
8003
  className: "flex-1",
8275
8004
  size: "lg",
8276
8005
  children: [
8277
- isLoading && /* @__PURE__ */ jsx29(Loader2, { className: "h-4 w-4 animate-spin" }),
8006
+ isLoading && /* @__PURE__ */ jsx28(Loader2, { className: "h-4 w-4 animate-spin" }),
8278
8007
  "Confirm"
8279
8008
  ]
8280
8009
  }
8281
8010
  )
8282
8011
  ] })
8283
8012
  ] }),
8284
- txStep === "pending" && /* @__PURE__ */ jsxs20("div", { className: "py-8 text-center space-y-4", children: [
8285
- /* @__PURE__ */ jsx29(Loader2, { className: `h-12 w-12 animate-spin ${isDark ? "text-blue-400" : "text-blue-600"} mx-auto` }),
8286
- /* @__PURE__ */ jsxs20("div", { children: [
8287
- /* @__PURE__ */ jsx29("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Pending" }),
8288
- /* @__PURE__ */ jsx29("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Please wait while we process your transaction" })
8013
+ txStep === "pending" && /* @__PURE__ */ jsxs19("div", { className: "py-8 text-center space-y-4", children: [
8014
+ /* @__PURE__ */ jsx28(Loader2, { className: `h-12 w-12 animate-spin ${isDark ? "text-blue-400" : "text-blue-600"} mx-auto` }),
8015
+ /* @__PURE__ */ jsxs19("div", { children: [
8016
+ /* @__PURE__ */ jsx28("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Pending" }),
8017
+ /* @__PURE__ */ jsx28("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Please wait while we process your transaction" })
8289
8018
  ] })
8290
8019
  ] }),
8291
- txStep === "success" && userOpHash && /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
8292
- /* @__PURE__ */ jsxs20("div", { className: "text-center py-4", children: [
8293
- /* @__PURE__ */ jsx29(CheckCircle27, { className: `h-12 w-12 ${isDark ? "text-green-400" : "text-green-500"} mx-auto mb-3` }),
8294
- /* @__PURE__ */ jsx29("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Sent!" }),
8295
- /* @__PURE__ */ jsx29("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Your transaction is being processed" })
8020
+ txStep === "success" && userOpHash && /* @__PURE__ */ jsxs19("div", { className: "space-y-4", children: [
8021
+ /* @__PURE__ */ jsxs19("div", { className: "text-center py-4", children: [
8022
+ /* @__PURE__ */ jsx28(CheckCircle26, { className: `h-12 w-12 ${isDark ? "text-green-400" : "text-green-500"} mx-auto mb-3` }),
8023
+ /* @__PURE__ */ jsx28("p", { className: `font-medium ${theme.titleText}`, children: "Transaction Sent!" }),
8024
+ /* @__PURE__ */ jsx28("p", { className: `text-sm ${theme.mutedText} mt-1`, children: "Your transaction is being processed" })
8296
8025
  ] }),
8297
- /* @__PURE__ */ jsx29("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: /* @__PURE__ */ jsx29(UserOpStatus, { userOpHash, chain: lumiaBeam }) }),
8298
- /* @__PURE__ */ jsx29(
8026
+ /* @__PURE__ */ jsx28("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: /* @__PURE__ */ jsx28(UserOpStatus, { userOpHash, chain: lumiaBeam }) }),
8027
+ /* @__PURE__ */ jsx28(
8299
8028
  Button,
8300
8029
  {
8301
8030
  onClick: handleClose,
@@ -8312,21 +8041,21 @@ var SendModal = ({
8312
8041
  };
8313
8042
 
8314
8043
  // src/internal/components/ReceiveModal.tsx
8315
- import { useState as useState14, useEffect as useEffect11 } from "react";
8316
- import { QrCode, Copy as Copy4, ArrowLeft as ArrowLeft8, CheckCircle2 as CheckCircle28 } from "lucide-react";
8044
+ import { useState as useState13, useEffect as useEffect10 } from "react";
8045
+ import { QrCode, Copy as Copy4, ArrowLeft as ArrowLeft8, CheckCircle2 as CheckCircle27 } from "lucide-react";
8317
8046
  import QRCode from "qrcode";
8318
- import { Fragment as Fragment7, jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
8047
+ import { Fragment as Fragment6, jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
8319
8048
  var ReceiveModal = ({
8320
8049
  open,
8321
8050
  onOpenChange,
8322
8051
  onBack
8323
8052
  }) => {
8324
8053
  const { address } = useLumiaSession();
8325
- const [qrCodeUrl, setQrCodeUrl] = useState14("");
8054
+ const [qrCodeUrl, setQrCodeUrl] = useState13("");
8326
8055
  const { config } = useLumiaPassportConfig();
8327
- const { isDark, classes: theme } = useTheme(config.ui.theme);
8328
- const [copied, setCopied] = useState14(false);
8329
- useEffect11(() => {
8056
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
8057
+ const [copied, setCopied] = useState13(false);
8058
+ useEffect10(() => {
8330
8059
  if (open && address) {
8331
8060
  QRCode.toDataURL(address, {
8332
8061
  width: 200,
@@ -8356,7 +8085,7 @@ var ReceiveModal = ({
8356
8085
  if (!addr) return "";
8357
8086
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
8358
8087
  };
8359
- return /* @__PURE__ */ jsx30(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs21(
8088
+ return /* @__PURE__ */ jsx29(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs20(
8360
8089
  DialogContent,
8361
8090
  {
8362
8091
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden max-h-[80vh] gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -8368,51 +8097,51 @@ var ReceiveModal = ({
8368
8097
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
8369
8098
  },
8370
8099
  children: [
8371
- /* @__PURE__ */ jsx30(VisuallyHidden, { children: /* @__PURE__ */ jsx30(DialogTitle, { children: "Receive LUMIA" }) }),
8372
- /* @__PURE__ */ jsx30(DialogDescription, { className: "sr-only", children: "Your wallet address and QR code for receiving LUMIA" }),
8373
- /* @__PURE__ */ jsx30("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2", children: [
8374
- onBack && /* @__PURE__ */ jsx30(
8100
+ /* @__PURE__ */ jsx29(VisuallyHidden, { children: /* @__PURE__ */ jsx29(DialogTitle, { children: "Receive LUMIA" }) }),
8101
+ /* @__PURE__ */ jsx29(DialogDescription, { className: "sr-only", children: "Your wallet address and QR code for receiving LUMIA" }),
8102
+ /* @__PURE__ */ jsx29("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
8103
+ onBack && /* @__PURE__ */ jsx29(
8375
8104
  "button",
8376
8105
  {
8377
8106
  onClick: onBack,
8378
8107
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
8379
8108
  title: "Back",
8380
- children: /* @__PURE__ */ jsx30(ArrowLeft8, { className: "h-4 w-4" })
8109
+ children: /* @__PURE__ */ jsx29(ArrowLeft8, { className: "h-4 w-4" })
8381
8110
  }
8382
8111
  ),
8383
- /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8384
- /* @__PURE__ */ jsx30(QrCode, { className: "h-5 w-5" }),
8385
- /* @__PURE__ */ jsx30("span", { children: "Receive LUMIA" })
8112
+ /* @__PURE__ */ jsxs20("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8113
+ /* @__PURE__ */ jsx29(QrCode, { className: "h-5 w-5" }),
8114
+ /* @__PURE__ */ jsx29("span", { children: "Receive LUMIA" })
8386
8115
  ] })
8387
8116
  ] }) }),
8388
- /* @__PURE__ */ jsxs21("div", { className: "p-5 space-y-4", children: [
8389
- 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" }) }) }),
8390
- /* @__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: [
8391
- /* @__PURE__ */ jsx30("p", { className: "font-medium", children: "Network: Lumia Beam" }),
8392
- /* @__PURE__ */ jsx30("p", { className: `text-xs ${isDark ? "text-blue-400" : "text-blue-600"} mt-0.5`, children: "Ensure sender is on the same network" })
8117
+ /* @__PURE__ */ jsxs20("div", { className: "p-5 space-y-4", children: [
8118
+ 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" }) }) }),
8119
+ /* @__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: [
8120
+ /* @__PURE__ */ jsx29("p", { className: "font-medium", children: "Network: Lumia Beam" }),
8121
+ /* @__PURE__ */ jsx29("p", { className: `text-xs ${isDark ? "text-blue-400" : "text-blue-600"} mt-0.5`, children: "Ensure sender is on the same network" })
8393
8122
  ] }) }) }),
8394
- /* @__PURE__ */ jsxs21("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
8395
- /* @__PURE__ */ jsx30("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Your Wallet Address" }),
8396
- /* @__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 }) }),
8397
- /* @__PURE__ */ jsx30(
8123
+ /* @__PURE__ */ jsxs20("div", { className: `${isDark ? "bg-gray-800" : "bg-gray-50"} rounded-lg p-4`, children: [
8124
+ /* @__PURE__ */ jsx29("label", { className: `block text-sm font-medium ${theme.bodyText} mb-2`, children: "Your Wallet Address" }),
8125
+ /* @__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 }) }),
8126
+ /* @__PURE__ */ jsx29(
8398
8127
  Button,
8399
8128
  {
8400
8129
  onClick: handleCopy,
8401
8130
  className: "w-full mt-3",
8402
8131
  size: "lg",
8403
- children: copied ? /* @__PURE__ */ jsxs21(Fragment7, { children: [
8404
- /* @__PURE__ */ jsx30(CheckCircle28, { className: "h-4 w-4" }),
8405
- /* @__PURE__ */ jsx30("span", { children: "Copied!" })
8406
- ] }) : /* @__PURE__ */ jsxs21(Fragment7, { children: [
8407
- /* @__PURE__ */ jsx30(Copy4, { className: "h-4 w-4" }),
8408
- /* @__PURE__ */ jsx30("span", { children: "Copy Address" })
8132
+ children: copied ? /* @__PURE__ */ jsxs20(Fragment6, { children: [
8133
+ /* @__PURE__ */ jsx29(CheckCircle27, { className: "h-4 w-4" }),
8134
+ /* @__PURE__ */ jsx29("span", { children: "Copied!" })
8135
+ ] }) : /* @__PURE__ */ jsxs20(Fragment6, { children: [
8136
+ /* @__PURE__ */ jsx29(Copy4, { className: "h-4 w-4" }),
8137
+ /* @__PURE__ */ jsx29("span", { children: "Copy Address" })
8409
8138
  ] })
8410
8139
  }
8411
8140
  )
8412
8141
  ] }),
8413
- /* @__PURE__ */ jsxs21("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
8414
- /* @__PURE__ */ jsx30("p", { children: "Share this address to receive LUMIA tokens." }),
8415
- /* @__PURE__ */ jsx30("p", { className: "mt-1", children: "Only send LUMIA tokens to this address on Lumia Beam network." })
8142
+ /* @__PURE__ */ jsxs20("div", { className: `text-center text-sm ${theme.mutedText}`, children: [
8143
+ /* @__PURE__ */ jsx29("p", { children: "Share this address to receive LUMIA tokens." }),
8144
+ /* @__PURE__ */ jsx29("p", { className: "mt-1", children: "Only send LUMIA tokens to this address on Lumia Beam network." })
8416
8145
  ] })
8417
8146
  ] })
8418
8147
  ]
@@ -8422,11 +8151,11 @@ var ReceiveModal = ({
8422
8151
 
8423
8152
  // src/internal/components/BuyModal.tsx
8424
8153
  import { CreditCard, ArrowLeft as ArrowLeft9 } from "lucide-react";
8425
- import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
8154
+ import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
8426
8155
  var BuyModal = ({ open, onOpenChange, onBack }) => {
8427
8156
  const { config } = useLumiaPassportConfig();
8428
- const { isDark, classes: theme } = useTheme(config.ui.theme);
8429
- return /* @__PURE__ */ jsx31(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs22(
8157
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
8158
+ return /* @__PURE__ */ jsx30(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs21(
8430
8159
  DialogContent,
8431
8160
  {
8432
8161
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -8438,26 +8167,26 @@ var BuyModal = ({ open, onOpenChange, onBack }) => {
8438
8167
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
8439
8168
  },
8440
8169
  children: [
8441
- /* @__PURE__ */ jsx31(VisuallyHidden, { children: /* @__PURE__ */ jsx31(DialogTitle, { children: "Buy Crypto" }) }),
8442
- /* @__PURE__ */ jsx31(DialogDescription, { className: "sr-only", children: "On-ramp placeholder" }),
8443
- /* @__PURE__ */ jsx31("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
8444
- onBack && /* @__PURE__ */ jsx31(
8170
+ /* @__PURE__ */ jsx30(VisuallyHidden, { children: /* @__PURE__ */ jsx30(DialogTitle, { children: "Buy Crypto" }) }),
8171
+ /* @__PURE__ */ jsx30(DialogDescription, { className: "sr-only", children: "On-ramp placeholder" }),
8172
+ /* @__PURE__ */ jsx30("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2", children: [
8173
+ onBack && /* @__PURE__ */ jsx30(
8445
8174
  "button",
8446
8175
  {
8447
8176
  onClick: onBack,
8448
8177
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
8449
8178
  title: "Back",
8450
- children: /* @__PURE__ */ jsx31(ArrowLeft9, { className: "h-4 w-4" })
8179
+ children: /* @__PURE__ */ jsx30(ArrowLeft9, { className: "h-4 w-4" })
8451
8180
  }
8452
8181
  ),
8453
- /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8454
- /* @__PURE__ */ jsx31(CreditCard, { className: "h-5 w-5" }),
8455
- /* @__PURE__ */ jsx31("span", { children: "Buy" })
8182
+ /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8183
+ /* @__PURE__ */ jsx30(CreditCard, { className: "h-5 w-5" }),
8184
+ /* @__PURE__ */ jsx30("span", { children: "Buy" })
8456
8185
  ] })
8457
8186
  ] }) }),
8458
- /* @__PURE__ */ jsxs22("div", { className: "p-5", children: [
8459
- /* @__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" }) }),
8460
- /* @__PURE__ */ jsx31("div", { className: "pt-4", children: /* @__PURE__ */ jsx31(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8187
+ /* @__PURE__ */ jsxs21("div", { className: "p-5", children: [
8188
+ /* @__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" }) }),
8189
+ /* @__PURE__ */ jsx30("div", { className: "pt-4", children: /* @__PURE__ */ jsx30(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8461
8190
  ] })
8462
8191
  ]
8463
8192
  }
@@ -8466,13 +8195,13 @@ var BuyModal = ({ open, onOpenChange, onBack }) => {
8466
8195
 
8467
8196
  // src/internal/components/KycModal.tsx
8468
8197
  import { ShieldCheck, ArrowLeft as ArrowLeft10 } from "lucide-react";
8469
- import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
8198
+ import { jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
8470
8199
  var KycModal = ({ open, onOpenChange, onBack }) => {
8471
8200
  const { config } = useLumiaPassportConfig();
8472
- const { isDark, classes: theme } = useTheme(config.ui.theme);
8201
+ const { isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
8473
8202
  const provider = config.kyc?.provider;
8474
8203
  const options = config.kyc?.options || {};
8475
- return /* @__PURE__ */ jsx32(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs23(
8204
+ return /* @__PURE__ */ jsx31(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs22(
8476
8205
  DialogContent,
8477
8206
  {
8478
8207
  className: `lumia-scope p-0 border-0 ${theme.modalBg} overflow-hidden gap-0 ${isDark ? "lumia-dark" : "lumia-light"}`,
@@ -8484,32 +8213,32 @@ var KycModal = ({ open, onOpenChange, onBack }) => {
8484
8213
  fontFamily: config.ui.fonts?.base || "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"
8485
8214
  },
8486
8215
  children: [
8487
- /* @__PURE__ */ jsx32(VisuallyHidden, { children: /* @__PURE__ */ jsx32(DialogTitle, { children: "KYC" }) }),
8488
- /* @__PURE__ */ jsx32(DialogDescription, { className: "sr-only", children: "KYC placeholder" }),
8489
- /* @__PURE__ */ jsx32("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
8490
- onBack && /* @__PURE__ */ jsx32(
8216
+ /* @__PURE__ */ jsx31(VisuallyHidden, { children: /* @__PURE__ */ jsx31(DialogTitle, { children: "KYC" }) }),
8217
+ /* @__PURE__ */ jsx31(DialogDescription, { className: "sr-only", children: "KYC placeholder" }),
8218
+ /* @__PURE__ */ jsx31("div", { className: `p-5 border-b ${theme.divider}`, children: /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
8219
+ onBack && /* @__PURE__ */ jsx31(
8491
8220
  "button",
8492
8221
  {
8493
8222
  onClick: onBack,
8494
8223
  className: `${theme.iconColor} hover:${isDark ? "text-gray-200" : "text-gray-700"} p-1 mr-1`,
8495
8224
  title: "Back",
8496
- children: /* @__PURE__ */ jsx32(ArrowLeft10, { className: "h-4 w-4" })
8225
+ children: /* @__PURE__ */ jsx31(ArrowLeft10, { className: "h-4 w-4" })
8497
8226
  }
8498
8227
  ),
8499
- /* @__PURE__ */ jsxs23("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8500
- /* @__PURE__ */ jsx32(ShieldCheck, { className: "h-5 w-5" }),
8501
- /* @__PURE__ */ jsx32("span", { children: "KYC" })
8228
+ /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${theme.titleText} font-semibold`, children: [
8229
+ /* @__PURE__ */ jsx31(ShieldCheck, { className: "h-5 w-5" }),
8230
+ /* @__PURE__ */ jsx31("span", { children: "KYC" })
8502
8231
  ] })
8503
8232
  ] }) }),
8504
- /* @__PURE__ */ jsxs23("div", { className: "p-5", children: [
8505
- provider ? /* @__PURE__ */ jsxs23("div", { className: `rounded-xl p-4 ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: [
8506
- /* @__PURE__ */ jsxs23("div", { className: `text-sm ${theme.titleText} mb-2`, children: [
8233
+ /* @__PURE__ */ jsxs22("div", { className: "p-5", children: [
8234
+ provider ? /* @__PURE__ */ jsxs22("div", { className: `rounded-xl p-4 ${isDark ? "bg-gray-800" : "bg-gray-50"}`, children: [
8235
+ /* @__PURE__ */ jsxs22("div", { className: `text-sm ${theme.titleText} mb-2`, children: [
8507
8236
  "KYC provider: ",
8508
- /* @__PURE__ */ jsx32("span", { className: "font-medium", children: provider })
8237
+ /* @__PURE__ */ jsx31("span", { className: "font-medium", children: provider })
8509
8238
  ] }),
8510
- 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." })
8511
- ] }) : /* @__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" }) }),
8512
- /* @__PURE__ */ jsx32("div", { className: "pt-4", children: /* @__PURE__ */ jsx32(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8239
+ 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." })
8240
+ ] }) : /* @__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" }) }),
8241
+ /* @__PURE__ */ jsx31("div", { className: "pt-4", children: /* @__PURE__ */ jsx31(Button, { className: "w-full", onClick: () => onOpenChange(false), size: "lg", children: "Close" }) })
8513
8242
  ] })
8514
8243
  ]
8515
8244
  }
@@ -8518,20 +8247,20 @@ var KycModal = ({ open, onOpenChange, onBack }) => {
8518
8247
 
8519
8248
  // src/components/ConnectWalletButton.tsx
8520
8249
  init_auth();
8521
- 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";
8250
+ import { Cloud as Cloud3, Laptop as Laptop2, Shield as Shield4, Copy as Copy5, ArrowUp, ArrowDown, Plus, Activity as Activity2, Gem as Gem2, CreditCard as CreditCard2, Lock as Lock2, ArrowUpRight as ArrowUpRight2, AlertTriangle as AlertTriangle4, ShieldCheck as ShieldCheck2 } from "lucide-react";
8522
8251
  init_base();
8523
8252
 
8524
8253
  // src/modules/linkedProfiles.ts
8525
8254
  init_common();
8526
8255
  init_types();
8527
8256
  init_auth();
8528
- import * as React27 from "react";
8257
+ import * as React26 from "react";
8529
8258
  function useLumiaPassportLinkedProfiles() {
8530
- const [profiles, setProfiles] = React27.useState([]);
8531
- const [avatar, setAvatar] = React27.useState(null);
8532
- const [isLoading, setIsLoading] = React27.useState(false);
8533
- const [error, setError] = React27.useState(null);
8534
- const load = React27.useCallback(async () => {
8259
+ const [profiles, setProfiles] = React26.useState([]);
8260
+ const [avatar, setAvatar] = React26.useState(null);
8261
+ const [isLoading, setIsLoading] = React26.useState(false);
8262
+ const [error, setError] = React26.useState(null);
8263
+ const load = React26.useCallback(async () => {
8535
8264
  setIsLoading(true);
8536
8265
  setError(null);
8537
8266
  try {
@@ -8557,14 +8286,105 @@ function useLumiaPassportLinkedProfiles() {
8557
8286
  setIsLoading(false);
8558
8287
  }
8559
8288
  }, []);
8560
- React27.useEffect(() => {
8289
+ React26.useEffect(() => {
8561
8290
  load();
8562
8291
  }, [load]);
8563
8292
  return { profiles, avatar, isLoading, error, refresh: load };
8564
8293
  }
8565
8294
 
8295
+ // package.json
8296
+ var package_default = {
8297
+ name: "@lumiapassport/ui-kit",
8298
+ version: "1.4.2",
8299
+ description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
8300
+ type: "module",
8301
+ main: "./dist/index.cjs",
8302
+ module: "./dist/index.js",
8303
+ types: "./dist/index.d.ts",
8304
+ sideEffects: false,
8305
+ files: [
8306
+ "dist",
8307
+ "README.md"
8308
+ ],
8309
+ scripts: {
8310
+ clean: "rm -rf dist",
8311
+ "build:css": "tailwindcss -c tailwind.config.cjs -i src/styles/index.css -o src/styles/built.css --minify",
8312
+ "build:iframe-html": "node scripts/copy-iframe-html.js",
8313
+ "build:copy-css": "cp src/styles/built.css dist/styles.css",
8314
+ build: "pnpm build:css && tsup && pnpm build:iframe-html && pnpm build:copy-css",
8315
+ dev: "pnpm build:css && tsup --watch",
8316
+ "dev:iframe": "vite --config iframe/vite.config.ts"
8317
+ },
8318
+ exports: {
8319
+ ".": {
8320
+ import: {
8321
+ types: "./dist/index.d.ts",
8322
+ default: "./dist/index.js"
8323
+ },
8324
+ require: {
8325
+ types: "./dist/index.d.cts",
8326
+ default: "./dist/index.cjs"
8327
+ }
8328
+ },
8329
+ "./styles.css": "./dist/styles.css",
8330
+ "./dist/styles.css": "./dist/styles.css"
8331
+ },
8332
+ peerDependencies: {
8333
+ "@radix-ui/react-alert-dialog": ">=1.0.0",
8334
+ "@radix-ui/react-dialog": ">=1.0.0",
8335
+ "@radix-ui/react-slot": ">=1.0.0",
8336
+ "@tanstack/react-query": ">=5.0.0",
8337
+ "class-variance-authority": ">=0.7.0",
8338
+ clsx: ">=2.1.1",
8339
+ "dkls23-wasm": ">=0.1.0",
8340
+ react: ">=18",
8341
+ "react-dom": ">=18",
8342
+ "tailwind-merge": ">=2.2.0",
8343
+ viem: ">=2.10.0",
8344
+ wagmi: ">=2.5.0"
8345
+ },
8346
+ dependencies: {
8347
+ "@lumiapassport/core": "workspace:*",
8348
+ "@rainbow-me/rainbowkit": "^2.2.8",
8349
+ "lucide-react": "^0.454.0",
8350
+ qrcode: "^1.5.0"
8351
+ },
8352
+ devDependencies: {
8353
+ "@radix-ui/react-alert-dialog": "^1.0.0",
8354
+ "@radix-ui/react-dialog": "^1.0.0",
8355
+ "@radix-ui/react-slot": "^1.0.0",
8356
+ "@tailwindcss/typography": "^0.5.16",
8357
+ "@tanstack/react-query": "^5.90.2",
8358
+ "@types/qrcode": "^1.5.0",
8359
+ "@types/react": "^18.3.3",
8360
+ "@types/react-dom": "^18.3.0",
8361
+ autoprefixer: "^10.4.20",
8362
+ "class-variance-authority": "^0.7.0",
8363
+ clsx: "^2.1.1",
8364
+ "dkls23-wasm": "^0.1.0",
8365
+ postcss: "^8.4.47",
8366
+ react: "^18.3.1",
8367
+ "react-dom": "^18.3.1",
8368
+ "tailwind-merge": "^2.2.0",
8369
+ tailwindcss: "^3.4.10",
8370
+ tsup: "^8.5.0",
8371
+ typescript: "^5.4.5",
8372
+ viem: "^2.37.9",
8373
+ vite: "^5.0.0",
8374
+ wagmi: "^2.17.5"
8375
+ },
8376
+ repository: {
8377
+ type: "git",
8378
+ url: "https://github.com/lumiachain/lumia-passport-sdk",
8379
+ directory: "packages/ui-kit"
8380
+ },
8381
+ publishConfig: {
8382
+ access: "public"
8383
+ }
8384
+ };
8385
+
8566
8386
  // src/components/ConnectWalletButton.tsx
8567
- import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
8387
+ import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
8568
8388
  var ConnectWalletButton = ({
8569
8389
  className,
8570
8390
  label = "Connect Wallet",
@@ -8576,7 +8396,7 @@ var ConnectWalletButton = ({
8576
8396
  }) => {
8577
8397
  console.log("[ConnectWalletButton] Component rendering");
8578
8398
  const { config, callbacks: contextCallbacks } = useLumiaPassportConfig();
8579
- const callbacks = React28.useMemo(() => ({
8399
+ const callbacks = React27.useMemo(() => ({
8580
8400
  onLumiaPassportConnecting: buttonCallbacks?.onLumiaPassportConnecting ?? contextCallbacks?.onLumiaPassportConnecting,
8581
8401
  onLumiaPassportConnect: buttonCallbacks?.onLumiaPassportConnect ?? contextCallbacks?.onLumiaPassportConnect,
8582
8402
  onLumiaPassportAccount: buttonCallbacks?.onLumiaPassportAccount ?? contextCallbacks?.onLumiaPassportAccount,
@@ -8585,7 +8405,7 @@ var ConnectWalletButton = ({
8585
8405
  onLumiaPassportError: buttonCallbacks?.onLumiaPassportError ?? contextCallbacks?.onLumiaPassportError,
8586
8406
  onWalletReady: buttonCallbacks?.onWalletReady ?? contextCallbacks?.onWalletReady
8587
8407
  }), [buttonCallbacks, contextCallbacks]);
8588
- const { theme: resolvedTheme, isDark, classes: theme } = useTheme(config.ui.theme);
8408
+ const { theme: resolvedTheme, isDark, classes: theme } = useTheme(config.ui.theme, config.ui.colors);
8589
8409
  const {
8590
8410
  session,
8591
8411
  address,
@@ -8601,20 +8421,20 @@ var ConnectWalletButton = ({
8601
8421
  setIsRecoveryModalOpen
8602
8422
  } = useLumiaSession();
8603
8423
  const { profiles, isLoading: profilesLoading } = useLumiaPassportLinkedProfiles();
8604
- const [isAuthModalOpen, setIsAuthModalOpen] = React28.useState(false);
8605
- const tssManagerRef = React28.useRef(null);
8606
- const [isWalletMenuOpen, setIsWalletMenuOpen] = React28.useState(false);
8607
- const [copied, setCopied] = React28.useState(false);
8608
- const [isManageWalletOpen, setIsManageWalletOpen] = React28.useState(false);
8609
- const [isSecurityOpen, setIsSecurityOpen] = React28.useState(false);
8610
- const [isBackupOpen, setIsBackupOpen] = React28.useState(false);
8611
- const [isTransactionsOpen, setIsTransactionsOpen] = React28.useState(false);
8612
- const [isViewAssetsOpen, setIsViewAssetsOpen] = React28.useState(false);
8613
- const [isSendOpen, setIsSendOpen] = React28.useState(false);
8614
- const [isReceiveOpen, setIsReceiveOpen] = React28.useState(false);
8615
- const [isBuyOpen, setIsBuyOpen] = React28.useState(false);
8616
- const [isKycOpen, setIsKycOpen] = React28.useState(false);
8617
- React28.useEffect(() => {
8424
+ const [isAuthModalOpen, setIsAuthModalOpen] = React27.useState(false);
8425
+ const tssManagerRef = React27.useRef(null);
8426
+ const [isWalletMenuOpen, setIsWalletMenuOpen] = React27.useState(false);
8427
+ const [copied, setCopied] = React27.useState(false);
8428
+ const [isManageWalletOpen, setIsManageWalletOpen] = React27.useState(false);
8429
+ const [isSecurityOpen, setIsSecurityOpen] = React27.useState(false);
8430
+ const [isBackupOpen, setIsBackupOpen] = React27.useState(false);
8431
+ const [isTransactionsOpen, setIsTransactionsOpen] = React27.useState(false);
8432
+ const [isViewAssetsOpen, setIsViewAssetsOpen] = React27.useState(false);
8433
+ const [isSendOpen, setIsSendOpen] = React27.useState(false);
8434
+ const [isReceiveOpen, setIsReceiveOpen] = React27.useState(false);
8435
+ const [isBuyOpen, setIsBuyOpen] = React27.useState(false);
8436
+ const [isKycOpen, setIsKycOpen] = React27.useState(false);
8437
+ React27.useEffect(() => {
8618
8438
  if (!callbacks?.onWalletReady) return;
8619
8439
  (async () => {
8620
8440
  try {
@@ -8626,7 +8446,7 @@ var ConnectWalletButton = ({
8626
8446
  }
8627
8447
  })();
8628
8448
  }, [callbacks?.onWalletReady]);
8629
- React28.useEffect(() => {
8449
+ React27.useEffect(() => {
8630
8450
  try {
8631
8451
  const shouldAutoOpen = authOpen ?? config?.ui?.authOpen;
8632
8452
  if (!address && !session && shouldAutoOpen) {
@@ -8653,25 +8473,25 @@ var ConnectWalletButton = ({
8653
8473
  refetchOnWindowFocus: true
8654
8474
  }
8655
8475
  });
8656
- const formatAddress = React28.useCallback((addr) => {
8476
+ const formatAddress = React27.useCallback((addr) => {
8657
8477
  if (!addr) return "";
8658
8478
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
8659
8479
  }, []);
8660
- const avatar = React28.useMemo(() => jwtTokenManager2.getAvatar(), [isAuthModalOpen, status]);
8661
- const displayName = React28.useMemo(() => jwtTokenManager2.getDisplayName(), [isAuthModalOpen, status]);
8662
- const formatBalance = React28.useCallback(() => {
8480
+ const avatar = React27.useMemo(() => jwtTokenManager2.getAvatar(), [isAuthModalOpen, status]);
8481
+ const displayName = React27.useMemo(() => jwtTokenManager2.getDisplayName(), [isAuthModalOpen, status]);
8482
+ const formatBalance = React27.useCallback(() => {
8663
8483
  if (!balance || balanceLoading) return "0.0000";
8664
8484
  return parseFloat(balance.formatted).toFixed(4);
8665
8485
  }, [balance, balanceLoading]);
8666
- const [hasServerVault, setHasServerVault] = React28.useState(false);
8667
- const indicators = React28.useMemo(() => {
8486
+ const [hasServerVault, setHasServerVault] = React27.useState(false);
8487
+ const indicators = React27.useMemo(() => {
8668
8488
  const userId = jwtTokenManager2.getUserId();
8669
8489
  if (!userId) return { server: false, local: false, backup: false };
8670
8490
  const server = jwtTokenManager2.getHasKeyshare() ?? false;
8671
8491
  const local = !!address;
8672
8492
  return { server, local, backup: hasServerVault };
8673
8493
  }, [session, address, hasServerVault]);
8674
- const handleAuthModalSuccess = React28.useCallback(async () => {
8494
+ const handleAuthModalSuccess = React27.useCallback(async () => {
8675
8495
  await new Promise((r) => setTimeout(r, 100));
8676
8496
  const userId = jwtTokenManager2.getUserId();
8677
8497
  const isAuthenticated = jwtTokenManager2.isAuthenticated();
@@ -8729,7 +8549,7 @@ var ConnectWalletButton = ({
8729
8549
  }
8730
8550
  }
8731
8551
  }, [onConnected, setAddress, setError, setSession, setStatus]);
8732
- const handleDisconnect = React28.useCallback(async () => {
8552
+ const handleDisconnect = React27.useCallback(async () => {
8733
8553
  const prevAddress = address;
8734
8554
  let userId = null;
8735
8555
  try {
@@ -8749,7 +8569,7 @@ var ConnectWalletButton = ({
8749
8569
  } catch {
8750
8570
  }
8751
8571
  }, [setAddress, setError, setSession, setStatus]);
8752
- const createSessionWithKeyshare = React28.useCallback(async (userId, hasServerKeyshare, isNewUser) => {
8572
+ const createSessionWithKeyshare = React27.useCallback(async (userId, hasServerKeyshare, isNewUser) => {
8753
8573
  try {
8754
8574
  try {
8755
8575
  callbacks?.onLumiaPassportConnecting?.({ method: "wallet" });
@@ -8775,7 +8595,7 @@ var ConnectWalletButton = ({
8775
8595
  throw error2;
8776
8596
  }
8777
8597
  }, [usePaymaster, setStatus, callbacks]);
8778
- React28.useEffect(() => {
8598
+ React27.useEffect(() => {
8779
8599
  if (address) {
8780
8600
  (async () => {
8781
8601
  try {
@@ -8792,8 +8612,8 @@ var ConnectWalletButton = ({
8792
8612
  setHasServerVault(false);
8793
8613
  }
8794
8614
  }, [address]);
8795
- const autoConnectAttemptedRef = React28.useRef(false);
8796
- React28.useEffect(() => {
8615
+ const autoConnectAttemptedRef = React27.useRef(false);
8616
+ React27.useEffect(() => {
8797
8617
  if (autoConnectAttemptedRef.current) return;
8798
8618
  const tryAutoConnect = async (attempt) => {
8799
8619
  if (address || session) return;
@@ -8874,13 +8694,13 @@ var ConnectWalletButton = ({
8874
8694
  autoConnectAttemptedRef.current = true;
8875
8695
  tryAutoConnect(0);
8876
8696
  }, []);
8877
- React28.useEffect(() => {
8697
+ React27.useEffect(() => {
8878
8698
  if (address && refetchBalance) {
8879
8699
  refetchBalance();
8880
8700
  }
8881
8701
  }, [address]);
8882
- return /* @__PURE__ */ jsxs24("div", { className: [className, "lumia-scope"].filter(Boolean).join(" "), children: [
8883
- /* @__PURE__ */ jsx33("div", { className: "inline-flex items-center gap-2", children: !address ? /* @__PURE__ */ jsx33("div", { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx33(
8702
+ return /* @__PURE__ */ jsxs23("div", { className: [className, "lumia-scope"].filter(Boolean).join(" "), children: [
8703
+ /* @__PURE__ */ jsx32("div", { className: "inline-flex items-center gap-2", children: !address ? /* @__PURE__ */ jsx32("div", { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx32(
8884
8704
  "button",
8885
8705
  {
8886
8706
  onClick: () => {
@@ -8913,56 +8733,56 @@ var ConnectWalletButton = ({
8913
8733
  },
8914
8734
  children: label || "Connect"
8915
8735
  }
8916
- ) }) : /* @__PURE__ */ jsx33(
8736
+ ) }) : /* @__PURE__ */ jsx32(
8917
8737
  "div",
8918
8738
  {
8919
8739
  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"}`,
8920
8740
  onClick: () => setIsWalletMenuOpen(true),
8921
- children: /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-3", children: [
8922
- /* @__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 ? (
8741
+ children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-3", children: [
8742
+ /* @__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 ? (
8923
8743
  // eslint-disable-next-line @next/next/no-img-element
8924
- /* @__PURE__ */ jsx33("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8925
- ) : /* @__PURE__ */ jsx33("span", { className: "text-white font-bold text-sm", children: "LP" }) }),
8926
- /* @__PURE__ */ jsxs24("div", { className: "text-left flex-1 min-w-0", children: [
8927
- /* @__PURE__ */ jsx33("div", { className: `font-semibold text-base truncate ${theme.titleText}`, children: mode === "compact" && displayName ? displayName : formatAddress(address) }),
8928
- /* @__PURE__ */ jsxs24("div", { className: `text-sm ${theme.mutedText}`, children: [
8744
+ /* @__PURE__ */ jsx32("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8745
+ ) : /* @__PURE__ */ jsx32("span", { className: "text-white font-bold text-sm", children: "LP" }) }),
8746
+ /* @__PURE__ */ jsxs23("div", { className: "text-left flex-1 min-w-0", children: [
8747
+ /* @__PURE__ */ jsx32("div", { className: `font-semibold text-base truncate ${theme.titleText}`, children: mode === "compact" && displayName ? displayName : formatAddress(address) }),
8748
+ /* @__PURE__ */ jsxs23("div", { className: `text-sm ${theme.mutedText}`, children: [
8929
8749
  formatBalance(),
8930
8750
  " LUMIA"
8931
8751
  ] })
8932
8752
  ] }),
8933
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-1", children: [
8934
- /* @__PURE__ */ jsxs24("div", { className: "group relative", children: [
8935
- /* @__PURE__ */ jsx33(
8936
- Cloud4,
8753
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-1", children: [
8754
+ /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
8755
+ /* @__PURE__ */ jsx32(
8756
+ Cloud3,
8937
8757
  {
8938
8758
  className: `w-3 h-3 ${indicators.server ? "text-green-500" : "text-orange-400"}`
8939
8759
  }
8940
8760
  ),
8941
- /* @__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: [
8761
+ /* @__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: [
8942
8762
  "Server Keyshare: ",
8943
8763
  indicators.server ? "Available" : "Missing"
8944
8764
  ] })
8945
8765
  ] }),
8946
- /* @__PURE__ */ jsxs24("div", { className: "group relative", children: [
8947
- /* @__PURE__ */ jsx33(
8766
+ /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
8767
+ /* @__PURE__ */ jsx32(
8948
8768
  Laptop2,
8949
8769
  {
8950
8770
  className: `w-3 h-3 ${indicators.local ? "text-green-500" : "text-orange-400"}`
8951
8771
  }
8952
8772
  ),
8953
- /* @__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: [
8773
+ /* @__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: [
8954
8774
  "Local Keyshare: ",
8955
8775
  indicators.local ? "Available" : "Missing"
8956
8776
  ] })
8957
8777
  ] }),
8958
- /* @__PURE__ */ jsxs24("div", { className: "group relative", children: [
8959
- /* @__PURE__ */ jsx33(
8960
- Shield5,
8778
+ /* @__PURE__ */ jsxs23("div", { className: "group relative", children: [
8779
+ /* @__PURE__ */ jsx32(
8780
+ Shield4,
8961
8781
  {
8962
8782
  className: `w-3 h-3 ${indicators.backup ? "text-green-500" : "text-orange-400"}`
8963
8783
  }
8964
8784
  ),
8965
- /* @__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: [
8785
+ /* @__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: [
8966
8786
  "Vault Backup: ",
8967
8787
  indicators.backup ? "Available" : "Not Found"
8968
8788
  ] })
@@ -8971,80 +8791,80 @@ var ConnectWalletButton = ({
8971
8791
  ] })
8972
8792
  }
8973
8793
  ) }),
8974
- 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: [
8975
- /* @__PURE__ */ jsx33(VisuallyHidden, { children: /* @__PURE__ */ jsx33(DialogTitle, { children: "Wallet Menu" }) }),
8976
- /* @__PURE__ */ jsx33(DialogDescription, { className: "sr-only", children: "Smart Account wallet actions and status" }),
8977
- /* @__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: [
8978
- /* @__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 ? (
8794
+ 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: [
8795
+ /* @__PURE__ */ jsx32(VisuallyHidden, { children: /* @__PURE__ */ jsx32(DialogTitle, { children: "Wallet Menu" }) }),
8796
+ /* @__PURE__ */ jsx32(DialogDescription, { className: "sr-only", children: "Smart Account wallet actions and status" }),
8797
+ /* @__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: [
8798
+ /* @__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 ? (
8979
8799
  // eslint-disable-next-line @next/next/no-img-element
8980
- /* @__PURE__ */ jsx33("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8981
- ) : /* @__PURE__ */ jsx33("span", { className: "text-white font-bold text-lg", children: "L" }) }),
8982
- /* @__PURE__ */ jsxs24("div", { className: "flex-1 min-w-0", children: [
8983
- /* @__PURE__ */ jsx33("div", { className: `font-medium text-lg ${theme.titleText}`, children: displayName || "Smart Account" }),
8984
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-2", children: [
8985
- /* @__PURE__ */ jsx33("div", { className: `text-sm ${theme.mutedText}`, children: formatAddress(address) }),
8986
- /* @__PURE__ */ jsx33("button", { onClick: async () => {
8800
+ /* @__PURE__ */ jsx32("img", { src: avatar, alt: "User avatar", className: "w-full h-full object-cover" })
8801
+ ) : /* @__PURE__ */ jsx32("span", { className: "text-white font-bold text-lg", children: "L" }) }),
8802
+ /* @__PURE__ */ jsxs23("div", { className: "flex-1 min-w-0", children: [
8803
+ /* @__PURE__ */ jsx32("div", { className: `font-medium text-lg ${theme.titleText}`, children: displayName || "Smart Account" }),
8804
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-2", children: [
8805
+ /* @__PURE__ */ jsx32("div", { className: `text-sm ${theme.mutedText}`, children: formatAddress(address) }),
8806
+ /* @__PURE__ */ jsx32("button", { onClick: async () => {
8987
8807
  try {
8988
8808
  await navigator.clipboard.writeText(address);
8989
8809
  setCopied(true);
8990
8810
  setTimeout(() => setCopied(false), 1500);
8991
8811
  } catch {
8992
8812
  }
8993
- }, 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" }) })
8813
+ }, 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" }) })
8994
8814
  ] })
8995
8815
  ] })
8996
8816
  ] }) }) }),
8997
- /* @__PURE__ */ jsxs24("div", { className: "p-4", children: [
8998
- /* @__PURE__ */ jsxs24("div", { className: "grid grid-cols-3 gap-2 mb-4", children: [
8999
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8817
+ /* @__PURE__ */ jsxs23("div", { className: "p-4", children: [
8818
+ /* @__PURE__ */ jsxs23("div", { className: "grid grid-cols-3 gap-2 mb-4", children: [
8819
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9000
8820
  setIsWalletMenuOpen(false);
9001
8821
  setIsSendOpen(true);
9002
8822
  }, 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: [
9003
- /* @__PURE__ */ jsx33(ArrowUp, { className: "w-5 h-5" }),
9004
- /* @__PURE__ */ jsx33("span", { className: "text-sm font-medium", children: "Send" })
8823
+ /* @__PURE__ */ jsx32(ArrowUp, { className: "w-5 h-5" }),
8824
+ /* @__PURE__ */ jsx32("span", { className: "text-sm font-medium", children: "Send" })
9005
8825
  ] }),
9006
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8826
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9007
8827
  setIsWalletMenuOpen(false);
9008
8828
  setIsReceiveOpen(true);
9009
8829
  }, 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: [
9010
- /* @__PURE__ */ jsx33(ArrowDown, { className: "w-5 h-5" }),
9011
- /* @__PURE__ */ jsx33("span", { className: "text-sm font-medium", children: "Receive" })
8830
+ /* @__PURE__ */ jsx32(ArrowDown, { className: "w-5 h-5" }),
8831
+ /* @__PURE__ */ jsx32("span", { className: "text-sm font-medium", children: "Receive" })
9012
8832
  ] }),
9013
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8833
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9014
8834
  setIsWalletMenuOpen(false);
9015
8835
  setIsBuyOpen(true);
9016
8836
  }, 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: [
9017
- /* @__PURE__ */ jsx33(Plus2, { className: "w-5 h-5" }),
9018
- /* @__PURE__ */ jsx33("span", { className: "text-sm font-medium", children: "Buy" })
8837
+ /* @__PURE__ */ jsx32(Plus, { className: "w-5 h-5" }),
8838
+ /* @__PURE__ */ jsx32("span", { className: "text-sm font-medium", children: "Buy" })
9019
8839
  ] })
9020
8840
  ] }),
9021
- 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: [
9022
- /* @__PURE__ */ jsx33(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-orange-400" : "text-orange-500"} mt-0.5 flex-shrink-0` }),
9023
- /* @__PURE__ */ jsxs24("div", { className: "flex-1 min-w-0", children: [
9024
- /* @__PURE__ */ jsx33("div", { className: `text-sm font-medium ${isDark ? "text-orange-300" : "text-orange-700"}`, children: "Backup Not Created" }),
9025
- /* @__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." }),
9026
- /* @__PURE__ */ jsxs24(
8841
+ config.warnings?.backupWarning && !hasServerVault && /* @__PURE__ */ jsx32("div", { className: `mb-4 p-3 rounded-xl ${isDark ? "bg-orange-950/80 border border-orange-800/60" : "bg-orange-50 border border-orange-200"}`, children: /* @__PURE__ */ jsxs23("div", { className: "flex items-start space-x-3", children: [
8842
+ /* @__PURE__ */ jsx32(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-orange-400" : "text-orange-500"} mt-0.5 flex-shrink-0` }),
8843
+ /* @__PURE__ */ jsxs23("div", { className: "flex-1 min-w-0", children: [
8844
+ /* @__PURE__ */ jsx32("div", { className: `text-sm font-medium ${isDark ? "text-orange-200" : "text-orange-700"}`, children: "Backup Not Created" }),
8845
+ /* @__PURE__ */ jsx32("div", { className: `text-xs mt-1 ${isDark ? "text-orange-300/90" : "text-orange-600"}`, children: "Secure your wallet with an encrypted vault backup to protect against device loss." }),
8846
+ /* @__PURE__ */ jsxs23(
9027
8847
  "button",
9028
8848
  {
9029
8849
  onClick: () => {
9030
8850
  setIsWalletMenuOpen(false);
9031
- setIsSecurityOpen(true);
8851
+ setIsBackupOpen(true);
9032
8852
  },
9033
- 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"}`,
8853
+ className: `mt-2 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors ${isDark ? "bg-orange-800/50 hover:bg-orange-700/60 text-orange-100" : "bg-orange-100 hover:bg-orange-200 text-orange-700"}`,
9034
8854
  children: [
9035
- /* @__PURE__ */ jsx33(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
8855
+ /* @__PURE__ */ jsx32(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
9036
8856
  "Create Backup"
9037
8857
  ]
9038
8858
  }
9039
8859
  )
9040
8860
  ] })
9041
8861
  ] }) }),
9042
- 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: [
9043
- /* @__PURE__ */ jsx33(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-blue-400" : "text-blue-500"} mt-0.5 flex-shrink-0` }),
9044
- /* @__PURE__ */ jsxs24("div", { className: "flex-1 min-w-0", children: [
9045
- /* @__PURE__ */ jsx33("div", { className: `text-sm font-medium ${isDark ? "text-blue-300" : "text-blue-700"}`, children: "Email Not Connected" }),
9046
- /* @__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." }),
9047
- /* @__PURE__ */ jsxs24(
8862
+ 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: [
8863
+ /* @__PURE__ */ jsx32(AlertTriangle4, { className: `w-5 h-5 ${isDark ? "text-blue-400" : "text-blue-500"} mt-0.5 flex-shrink-0` }),
8864
+ /* @__PURE__ */ jsxs23("div", { className: "flex-1 min-w-0", children: [
8865
+ /* @__PURE__ */ jsx32("div", { className: `text-sm font-medium ${isDark ? "text-blue-300" : "text-blue-700"}`, children: "Email Not Connected" }),
8866
+ /* @__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." }),
8867
+ /* @__PURE__ */ jsxs23(
9048
8868
  "button",
9049
8869
  {
9050
8870
  onClick: () => {
@@ -9053,87 +8873,91 @@ var ConnectWalletButton = ({
9053
8873
  },
9054
8874
  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"}`,
9055
8875
  children: [
9056
- /* @__PURE__ */ jsx33(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
8876
+ /* @__PURE__ */ jsx32(ShieldCheck2, { className: "w-3 h-3 inline mr-1" }),
9057
8877
  "Connect Email"
9058
8878
  ]
9059
8879
  }
9060
8880
  )
9061
8881
  ] })
9062
8882
  ] }) }),
9063
- /* @__PURE__ */ jsx33(
8883
+ /* @__PURE__ */ jsx32(
9064
8884
  "button",
9065
8885
  {
9066
8886
  onClick: () => address && window.open(`${LUMIA_EXPLORER_URL}/address/${address}`, "_blank"),
9067
8887
  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`,
9068
- children: /* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between", children: [
9069
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-3", children: [
9070
- /* @__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) }) }),
9071
- /* @__PURE__ */ jsxs24("div", { children: [
9072
- /* @__PURE__ */ jsx33("div", { className: `${theme.titleText} font-medium`, children: lumiaBeam.name }),
9073
- /* @__PURE__ */ jsxs24("div", { className: theme.mutedText + " text-sm", children: [
8888
+ children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
8889
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-3", children: [
8890
+ /* @__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) }) }),
8891
+ /* @__PURE__ */ jsxs23("div", { children: [
8892
+ /* @__PURE__ */ jsx32("div", { className: `${theme.titleText} font-medium`, children: lumiaBeam.name }),
8893
+ /* @__PURE__ */ jsxs23("div", { className: theme.mutedText + " text-sm", children: [
9074
8894
  formatBalance(),
9075
8895
  " LUMIA"
9076
8896
  ] })
9077
8897
  ] })
9078
8898
  ] }),
9079
- /* @__PURE__ */ jsx33("div", { className: theme.iconColor, children: /* @__PURE__ */ jsx33(ArrowUpRight2, { className: "w-4 h-4" }) })
8899
+ /* @__PURE__ */ jsx32("div", { className: theme.iconColor, children: /* @__PURE__ */ jsx32(ArrowUpRight2, { className: "w-4 h-4" }) })
9080
8900
  ] })
9081
8901
  }
9082
8902
  ),
9083
- /* @__PURE__ */ jsxs24("div", { className: "space-y-1", children: [
9084
- config.features?.kycNeeded && /* @__PURE__ */ jsxs24("button", { onClick: () => {
8903
+ /* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
8904
+ config.features?.kycNeeded && /* @__PURE__ */ jsxs23("button", { onClick: () => {
9085
8905
  setIsWalletMenuOpen(false);
9086
8906
  setIsKycOpen(true);
9087
- }, 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: [
9088
- /* @__PURE__ */ jsx33(ShieldCheck2, { className: `w-5 h-5 ${theme.iconColor}` }),
9089
- /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "KYC" })
8907
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-gray-800" : "bg-transparent hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8908
+ /* @__PURE__ */ jsx32(ShieldCheck2, { className: `w-5 h-5 ${theme.iconColor}` }),
8909
+ /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "KYC" })
9090
8910
  ] }),
9091
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8911
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9092
8912
  setIsWalletMenuOpen(false);
9093
8913
  setIsTransactionsOpen(true);
9094
- }, 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: [
9095
- /* @__PURE__ */ jsx33(Activity2, { className: `w-5 h-5 ${theme.iconColor}` }),
9096
- /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Transactions" })
8914
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-gray-800" : "bg-transparent hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8915
+ /* @__PURE__ */ jsx32(Activity2, { className: `w-5 h-5 ${theme.iconColor}` }),
8916
+ /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Transactions" })
9097
8917
  ] }),
9098
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8918
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9099
8919
  setIsWalletMenuOpen(false);
9100
8920
  setIsViewAssetsOpen(true);
9101
- }, 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: [
9102
- /* @__PURE__ */ jsx33(Gem2, { className: `w-5 h-5 ${theme.iconColor}` }),
9103
- /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "View Assets" })
8921
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-gray-800" : "bg-transparent hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8922
+ /* @__PURE__ */ jsx32(Gem2, { className: `w-5 h-5 ${theme.iconColor}` }),
8923
+ /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "View Assets" })
9104
8924
  ] }),
9105
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8925
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9106
8926
  setIsWalletMenuOpen(false);
9107
8927
  setIsManageWalletOpen(true);
9108
- }, 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: [
9109
- /* @__PURE__ */ jsx33(CreditCard2, { className: `w-5 h-5 ${theme.iconColor}` }),
9110
- /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Manage Wallet" })
8928
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-gray-800" : "bg-transparent hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8929
+ /* @__PURE__ */ jsx32(CreditCard2, { className: `w-5 h-5 ${theme.iconColor}` }),
8930
+ /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Manage Wallet" })
9111
8931
  ] }),
9112
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8932
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9113
8933
  setIsWalletMenuOpen(false);
9114
8934
  setIsSecurityOpen(true);
9115
- }, 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: [
9116
- /* @__PURE__ */ jsx33(Lock3, { className: `w-5 h-5 ${theme.iconColor}` }),
9117
- /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Security" })
8935
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-gray-800" : "bg-transparent hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8936
+ /* @__PURE__ */ jsx32(Lock2, { className: `w-5 h-5 ${theme.iconColor}` }),
8937
+ /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Security" })
9118
8938
  ] }),
9119
- /* @__PURE__ */ jsxs24("button", { onClick: () => {
8939
+ /* @__PURE__ */ jsxs23("button", { onClick: () => {
9120
8940
  setIsWalletMenuOpen(false);
9121
8941
  setIsBackupOpen(true);
9122
- }, 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: [
9123
- /* @__PURE__ */ jsx33(Shield5, { className: `w-5 h-5 ${theme.iconColor}` }),
9124
- /* @__PURE__ */ jsx33("span", { className: theme.titleText, children: "Keyshare Backup" })
8942
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-gray-800" : "bg-transparent hover:bg-gray-100"} transition-colors flex items-center space-x-3`, children: [
8943
+ /* @__PURE__ */ jsx32(Shield4, { className: `w-5 h-5 ${theme.iconColor}` }),
8944
+ /* @__PURE__ */ jsx32("span", { className: theme.titleText, children: "Keyshare Backup" })
9125
8945
  ] }),
9126
- /* @__PURE__ */ jsxs24("button", { onClick: async () => {
8946
+ /* @__PURE__ */ jsxs23("button", { onClick: async () => {
9127
8947
  await handleDisconnect();
9128
8948
  setIsWalletMenuOpen(false);
9129
- }, 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: [
9130
- /* @__PURE__ */ jsx33(ArrowUpRight2, { className: "w-5 h-5 text-red-600" }),
9131
- /* @__PURE__ */ jsx33("span", { className: "text-red-600", children: "Disconnect Wallet" })
8949
+ }, className: `w-full text-left p-2.5 rounded-xl ${isDark ? "bg-transparent hover:bg-red-900/20" : "bg-transparent hover:bg-red-50"} transition-colors flex items-center space-x-3`, children: [
8950
+ /* @__PURE__ */ jsx32(ArrowUpRight2, { className: "w-5 h-5 text-red-600" }),
8951
+ /* @__PURE__ */ jsx32("span", { className: "text-red-600", children: "Disconnect Wallet" })
9132
8952
  ] })
9133
- ] })
8953
+ ] }),
8954
+ /* @__PURE__ */ jsx32("div", { className: `mt-3 pt-3 border-t ${theme.divider} text-center`, children: /* @__PURE__ */ jsxs23("div", { className: `text-xs ${theme.mutedText}`, children: [
8955
+ "Lumia Passport v",
8956
+ package_default.version
8957
+ ] }) })
9134
8958
  ] })
9135
8959
  ] }) }) }),
9136
- /* @__PURE__ */ jsx33(
8960
+ /* @__PURE__ */ jsx32(
9137
8961
  ManageWallet,
9138
8962
  {
9139
8963
  open: isManageWalletOpen,
@@ -9144,7 +8968,7 @@ var ConnectWalletButton = ({
9144
8968
  }
9145
8969
  }
9146
8970
  ),
9147
- /* @__PURE__ */ jsx33(
8971
+ /* @__PURE__ */ jsx32(
9148
8972
  SecurityModal,
9149
8973
  {
9150
8974
  open: isSecurityOpen,
@@ -9155,12 +8979,12 @@ var ConnectWalletButton = ({
9155
8979
  }
9156
8980
  }
9157
8981
  ),
9158
- isBackupOpen && session?.mpcUserId && /* @__PURE__ */ jsx33(Dialog, { open: isBackupOpen, onOpenChange: setIsBackupOpen, children: /* @__PURE__ */ jsxs24(DialogContent, { className: "max-w-2xl", children: [
9159
- /* @__PURE__ */ jsxs24(VisuallyHidden, { children: [
9160
- /* @__PURE__ */ jsx33(DialogTitle, { children: "Keyshare Backup" }),
9161
- /* @__PURE__ */ jsx33(DialogDescription, { children: "Create and manage encrypted backups of your keyshare" })
8982
+ isBackupOpen && session?.mpcUserId && /* @__PURE__ */ jsx32(Dialog, { open: isBackupOpen, onOpenChange: setIsBackupOpen, children: /* @__PURE__ */ jsxs23(DialogContent, { className: "max-w-2xl", children: [
8983
+ /* @__PURE__ */ jsxs23(VisuallyHidden, { children: [
8984
+ /* @__PURE__ */ jsx32(DialogTitle, { children: "Keyshare Backup" }),
8985
+ /* @__PURE__ */ jsx32(DialogDescription, { children: "Create and manage encrypted backups of your keyshare" })
9162
8986
  ] }),
9163
- /* @__PURE__ */ jsx33(
8987
+ /* @__PURE__ */ jsx32(
9164
8988
  KeyshareBackup,
9165
8989
  {
9166
8990
  userId: session.mpcUserId,
@@ -9171,7 +8995,7 @@ var ConnectWalletButton = ({
9171
8995
  }
9172
8996
  )
9173
8997
  ] }) }),
9174
- /* @__PURE__ */ jsx33(
8998
+ /* @__PURE__ */ jsx32(
9175
8999
  TransactionsModal,
9176
9000
  {
9177
9001
  open: isTransactionsOpen,
@@ -9182,7 +9006,7 @@ var ConnectWalletButton = ({
9182
9006
  }
9183
9007
  }
9184
9008
  ),
9185
- /* @__PURE__ */ jsx33(
9009
+ /* @__PURE__ */ jsx32(
9186
9010
  ViewAssetsModal,
9187
9011
  {
9188
9012
  open: isViewAssetsOpen,
@@ -9193,7 +9017,7 @@ var ConnectWalletButton = ({
9193
9017
  }
9194
9018
  }
9195
9019
  ),
9196
- /* @__PURE__ */ jsx33(
9020
+ /* @__PURE__ */ jsx32(
9197
9021
  SendModal,
9198
9022
  {
9199
9023
  open: isSendOpen,
@@ -9204,7 +9028,7 @@ var ConnectWalletButton = ({
9204
9028
  }
9205
9029
  }
9206
9030
  ),
9207
- /* @__PURE__ */ jsx33(
9031
+ /* @__PURE__ */ jsx32(
9208
9032
  ReceiveModal,
9209
9033
  {
9210
9034
  open: isReceiveOpen,
@@ -9215,7 +9039,7 @@ var ConnectWalletButton = ({
9215
9039
  }
9216
9040
  }
9217
9041
  ),
9218
- /* @__PURE__ */ jsx33(
9042
+ /* @__PURE__ */ jsx32(
9219
9043
  BuyModal,
9220
9044
  {
9221
9045
  open: isBuyOpen,
@@ -9226,7 +9050,7 @@ var ConnectWalletButton = ({
9226
9050
  }
9227
9051
  }
9228
9052
  ),
9229
- /* @__PURE__ */ jsx33(
9053
+ /* @__PURE__ */ jsx32(
9230
9054
  KycModal,
9231
9055
  {
9232
9056
  open: isKycOpen,
@@ -9237,7 +9061,7 @@ var ConnectWalletButton = ({
9237
9061
  }
9238
9062
  }
9239
9063
  ),
9240
- /* @__PURE__ */ jsx33(
9064
+ /* @__PURE__ */ jsx32(
9241
9065
  AuthModal,
9242
9066
  {
9243
9067
  open: recoveryUserId ? isRecoveryModalOpen : isAuthModalOpen,
@@ -9297,7 +9121,7 @@ var ConnectWalletButton = ({
9297
9121
  }
9298
9122
  }
9299
9123
  ),
9300
- /* @__PURE__ */ jsx33(
9124
+ /* @__PURE__ */ jsx32(
9301
9125
  TssManagerWithRef,
9302
9126
  {
9303
9127
  ref: tssManagerRef,
@@ -9315,7 +9139,7 @@ var ConnectWalletButton = ({
9315
9139
  };
9316
9140
 
9317
9141
  // src/components/ThemeToggle.tsx
9318
- import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
9142
+ import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
9319
9143
  var ThemeToggle = () => {
9320
9144
  const { config, updateConfig } = useLumiaPassportConfig();
9321
9145
  const currentTheme = config.ui.theme;
@@ -9360,7 +9184,7 @@ var ThemeToggle = () => {
9360
9184
  return "auto";
9361
9185
  }
9362
9186
  };
9363
- return /* @__PURE__ */ jsx34("div", { className: "lumia-scope", children: /* @__PURE__ */ jsxs25(
9187
+ return /* @__PURE__ */ jsx33("div", { className: "lumia-scope", children: /* @__PURE__ */ jsxs24(
9364
9188
  "button",
9365
9189
  {
9366
9190
  onClick: cycleTheme,
@@ -9376,29 +9200,29 @@ var ThemeToggle = () => {
9376
9200
  };
9377
9201
 
9378
9202
  // src/components/LumiaLogo.tsx
9379
- import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
9203
+ import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
9380
9204
  var LumiaLogo2 = ({ size = 80, className = "" }) => {
9381
- return /* @__PURE__ */ jsx35(
9205
+ return /* @__PURE__ */ jsx34(
9382
9206
  "div",
9383
9207
  {
9384
9208
  className: `flex items-center justify-center ${className}`,
9385
9209
  style: { width: size, height: size },
9386
- children: /* @__PURE__ */ jsxs26("svg", { viewBox: "0 0 512 512", width: size, height: size, children: [
9387
- /* @__PURE__ */ jsx35("circle", { cx: "256", cy: "256", r: "256", fill: "#060117", strokeWidth: "0" }),
9388
- /* @__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" }),
9389
- /* @__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" }),
9390
- /* @__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" }),
9391
- /* @__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" })
9210
+ children: /* @__PURE__ */ jsxs25("svg", { viewBox: "0 0 512 512", width: size, height: size, children: [
9211
+ /* @__PURE__ */ jsx34("circle", { cx: "256", cy: "256", r: "256", fill: "#060117", strokeWidth: "0" }),
9212
+ /* @__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" }),
9213
+ /* @__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" }),
9214
+ /* @__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" }),
9215
+ /* @__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" })
9392
9216
  ] })
9393
9217
  }
9394
9218
  );
9395
9219
  };
9396
9220
 
9397
9221
  // src/hooks/useTheme.ts
9398
- import { useMemo as useMemo6, useState as useState16, useEffect as useEffect13 } from "react";
9222
+ import { useMemo as useMemo5, useState as useState15, useEffect as useEffect12 } from "react";
9399
9223
  function useTheme2(configTheme) {
9400
- const [systemTheme, setSystemTheme] = useState16("light");
9401
- useEffect13(() => {
9224
+ const [systemTheme, setSystemTheme] = useState15("light");
9225
+ useEffect12(() => {
9402
9226
  if (typeof window === "undefined" || !window.matchMedia) return;
9403
9227
  const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
9404
9228
  const updateSystemTheme = () => {
@@ -9408,14 +9232,14 @@ function useTheme2(configTheme) {
9408
9232
  mediaQuery.addEventListener("change", updateSystemTheme);
9409
9233
  return () => mediaQuery.removeEventListener("change", updateSystemTheme);
9410
9234
  }, []);
9411
- const resolvedTheme = useMemo6(() => {
9235
+ const resolvedTheme = useMemo5(() => {
9412
9236
  if (configTheme === "auto") {
9413
9237
  return systemTheme;
9414
9238
  }
9415
9239
  return configTheme;
9416
9240
  }, [configTheme, systemTheme]);
9417
9241
  const isDark = resolvedTheme === "dark";
9418
- const themeClasses = useMemo6(
9242
+ const themeClasses = useMemo5(
9419
9243
  () => ({
9420
9244
  // Modal background
9421
9245
  modalBg: isDark ? "bg-gray-900" : "bg-white",
@@ -9451,9 +9275,9 @@ function useTheme2(configTheme) {
9451
9275
  }
9452
9276
 
9453
9277
  // src/internal/components/Hash.tsx
9454
- import * as React29 from "react";
9278
+ import * as React28 from "react";
9455
9279
  import { Copy as Copy6, ExternalLink as ExternalLink5 } from "lucide-react";
9456
- import { jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
9280
+ import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
9457
9281
  function toExplorerUrl(kind, value, chain) {
9458
9282
  const base2 = chain?.blockExplorers?.default?.url;
9459
9283
  if (!base2) return null;
@@ -9476,12 +9300,12 @@ var Hash = ({
9476
9300
  }) => {
9477
9301
  const value = hash || "";
9478
9302
  const explorer = toExplorerUrl(kind, value, chain || void 0);
9479
- const [copied, setCopied] = React29.useState(false);
9480
- if (!value) return /* @__PURE__ */ jsx36("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
9481
- return /* @__PURE__ */ jsxs27("div", { className: cn2("flex items-center gap-2", className), children: [
9482
- label && /* @__PURE__ */ jsx36("span", { className: "text-sm font-medium", children: label }),
9483
- /* @__PURE__ */ jsx36("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
9484
- showCopy && /* @__PURE__ */ jsx36(
9303
+ const [copied, setCopied] = React28.useState(false);
9304
+ if (!value) return /* @__PURE__ */ jsx35("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
9305
+ return /* @__PURE__ */ jsxs26("div", { className: cn2("flex items-center gap-2", className), children: [
9306
+ label && /* @__PURE__ */ jsx35("span", { className: "text-sm font-medium", children: label }),
9307
+ /* @__PURE__ */ jsx35("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
9308
+ showCopy && /* @__PURE__ */ jsx35(
9485
9309
  Button,
9486
9310
  {
9487
9311
  variant: "ghost",
@@ -9495,10 +9319,10 @@ var Hash = ({
9495
9319
  } catch {
9496
9320
  }
9497
9321
  },
9498
- children: /* @__PURE__ */ jsx36(Copy6, { className: "h-4 w-4" })
9322
+ children: /* @__PURE__ */ jsx35(Copy6, { className: "h-4 w-4" })
9499
9323
  }
9500
9324
  ),
9501
- showExplorer && explorer && /* @__PURE__ */ jsx36(
9325
+ showExplorer && explorer && /* @__PURE__ */ jsx35(
9502
9326
  "a",
9503
9327
  {
9504
9328
  href: explorer,
@@ -9506,7 +9330,7 @@ var Hash = ({
9506
9330
  rel: "noreferrer noopener",
9507
9331
  className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
9508
9332
  title: "Open in explorer",
9509
- children: /* @__PURE__ */ jsx36(ExternalLink5, { className: "h-4 w-4" })
9333
+ children: /* @__PURE__ */ jsx35(ExternalLink5, { className: "h-4 w-4" })
9510
9334
  }
9511
9335
  )
9512
9336
  ] });
@@ -9514,16 +9338,16 @@ var Hash = ({
9514
9338
 
9515
9339
  // src/internal/components/TransactionsList.tsx
9516
9340
  init_base();
9517
- import { useState as useState18, useEffect as useEffect14 } from "react";
9518
- import { jsx as jsx37, jsxs as jsxs28 } from "react/jsx-runtime";
9341
+ import { useState as useState17, useEffect as useEffect13 } from "react";
9342
+ import { jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
9519
9343
  var TransactionsList = ({
9520
9344
  address,
9521
9345
  itemsCount = 10
9522
9346
  }) => {
9523
- const [transactions, setTransactions] = useState18([]);
9524
- const [loading, setLoading] = useState18(true);
9525
- const [error, setError] = useState18(null);
9526
- useEffect14(() => {
9347
+ const [transactions, setTransactions] = useState17([]);
9348
+ const [loading, setLoading] = useState17(true);
9349
+ const [error, setError] = useState17(null);
9350
+ useEffect13(() => {
9527
9351
  const fetchTransactions = async () => {
9528
9352
  try {
9529
9353
  setLoading(true);
@@ -9569,15 +9393,15 @@ var TransactionsList = ({
9569
9393
  window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
9570
9394
  };
9571
9395
  if (loading) {
9572
- return /* @__PURE__ */ jsxs28("div", { className: "p-4 text-center", children: [
9573
- /* @__PURE__ */ jsx37("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
9574
- /* @__PURE__ */ jsx37("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
9396
+ return /* @__PURE__ */ jsxs27("div", { className: "p-4 text-center", children: [
9397
+ /* @__PURE__ */ jsx36("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
9398
+ /* @__PURE__ */ jsx36("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
9575
9399
  ] });
9576
9400
  }
9577
9401
  if (error) {
9578
- return /* @__PURE__ */ jsxs28("div", { className: "p-4 text-center", children: [
9579
- /* @__PURE__ */ jsx37("p", { className: "text-red-600 text-sm", children: error }),
9580
- /* @__PURE__ */ jsx37(
9402
+ return /* @__PURE__ */ jsxs27("div", { className: "p-4 text-center", children: [
9403
+ /* @__PURE__ */ jsx36("p", { className: "text-red-600 text-sm", children: error }),
9404
+ /* @__PURE__ */ jsx36(
9581
9405
  "button",
9582
9406
  {
9583
9407
  onClick: () => window.location.reload(),
@@ -9588,54 +9412,54 @@ var TransactionsList = ({
9588
9412
  ] });
9589
9413
  }
9590
9414
  if (transactions.length === 0) {
9591
- return /* @__PURE__ */ jsx37("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx37("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
9415
+ return /* @__PURE__ */ jsx36("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx36("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
9592
9416
  }
9593
- 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(
9417
+ 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(
9594
9418
  "div",
9595
9419
  {
9596
9420
  className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
9597
9421
  onClick: () => openTransaction(tx.hash),
9598
9422
  children: [
9599
- /* @__PURE__ */ jsxs28("div", { className: "flex justify-between items-start mb-2", children: [
9600
- /* @__PURE__ */ jsxs28("div", { className: "flex-1", children: [
9601
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center space-x-2 mb-1", children: [
9602
- /* @__PURE__ */ jsx37("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress(tx.hash) }),
9603
- /* @__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" })
9423
+ /* @__PURE__ */ jsxs27("div", { className: "flex justify-between items-start mb-2", children: [
9424
+ /* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
9425
+ /* @__PURE__ */ jsxs27("div", { className: "flex items-center space-x-2 mb-1", children: [
9426
+ /* @__PURE__ */ jsx36("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress(tx.hash) }),
9427
+ /* @__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" })
9604
9428
  ] }),
9605
- /* @__PURE__ */ jsxs28("div", { className: "text-sm space-y-1", children: [
9606
- /* @__PURE__ */ jsxs28("div", { children: [
9607
- /* @__PURE__ */ jsx37("span", { className: "text-gray-600", children: "From:" }),
9608
- /* @__PURE__ */ jsxs28("span", { className: "font-mono ml-1", children: [
9429
+ /* @__PURE__ */ jsxs27("div", { className: "text-sm space-y-1", children: [
9430
+ /* @__PURE__ */ jsxs27("div", { children: [
9431
+ /* @__PURE__ */ jsx36("span", { className: "text-gray-600", children: "From:" }),
9432
+ /* @__PURE__ */ jsxs27("span", { className: "font-mono ml-1", children: [
9609
9433
  formatAddress(tx.from.hash),
9610
- tx.from.is_contract && /* @__PURE__ */ jsx37("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9434
+ tx.from.is_contract && /* @__PURE__ */ jsx36("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9611
9435
  ] })
9612
9436
  ] }),
9613
- /* @__PURE__ */ jsxs28("div", { children: [
9614
- /* @__PURE__ */ jsx37("span", { className: "text-gray-600", children: "To:" }),
9615
- /* @__PURE__ */ jsxs28("span", { className: "font-mono ml-1", children: [
9437
+ /* @__PURE__ */ jsxs27("div", { children: [
9438
+ /* @__PURE__ */ jsx36("span", { className: "text-gray-600", children: "To:" }),
9439
+ /* @__PURE__ */ jsxs27("span", { className: "font-mono ml-1", children: [
9616
9440
  formatAddress(tx.to.hash),
9617
- tx.to.is_contract && /* @__PURE__ */ jsx37("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9441
+ tx.to.is_contract && /* @__PURE__ */ jsx36("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
9618
9442
  ] })
9619
9443
  ] }),
9620
- /* @__PURE__ */ jsxs28("div", { children: [
9621
- /* @__PURE__ */ jsx37("span", { className: "text-gray-600", children: "Value:" }),
9622
- /* @__PURE__ */ jsxs28("span", { className: "font-semibold ml-1", children: [
9444
+ /* @__PURE__ */ jsxs27("div", { children: [
9445
+ /* @__PURE__ */ jsx36("span", { className: "text-gray-600", children: "Value:" }),
9446
+ /* @__PURE__ */ jsxs27("span", { className: "font-semibold ml-1", children: [
9623
9447
  formatValue(tx.value),
9624
9448
  " LUMIA"
9625
9449
  ] })
9626
9450
  ] })
9627
9451
  ] })
9628
9452
  ] }),
9629
- /* @__PURE__ */ jsxs28("div", { className: "text-right text-xs text-gray-500", children: [
9630
- /* @__PURE__ */ jsx37("div", { children: formatDate2(tx.timestamp) }),
9631
- /* @__PURE__ */ jsxs28("div", { className: "mt-1", children: [
9453
+ /* @__PURE__ */ jsxs27("div", { className: "text-right text-xs text-gray-500", children: [
9454
+ /* @__PURE__ */ jsx36("div", { children: formatDate2(tx.timestamp) }),
9455
+ /* @__PURE__ */ jsxs27("div", { className: "mt-1", children: [
9632
9456
  "Gas: ",
9633
9457
  parseInt(tx.gas_used).toLocaleString()
9634
9458
  ] }),
9635
- tx.method && /* @__PURE__ */ jsx37("div", { className: "mt-1 text-blue-600", children: tx.method })
9459
+ tx.method && /* @__PURE__ */ jsx36("div", { className: "mt-1 text-blue-600", children: tx.method })
9636
9460
  ] })
9637
9461
  ] }),
9638
- 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(
9462
+ 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(
9639
9463
  "span",
9640
9464
  {
9641
9465
  className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full",
@@ -9651,7 +9475,7 @@ var TransactionsList = ({
9651
9475
 
9652
9476
  // src/hooks/useUserOpStatus.ts
9653
9477
  init_base();
9654
- import * as React31 from "react";
9478
+ import * as React30 from "react";
9655
9479
  function useUserOpStatus(options = {}) {
9656
9480
  const {
9657
9481
  userOpHash,
@@ -9662,16 +9486,16 @@ function useUserOpStatus(options = {}) {
9662
9486
  onReceipt,
9663
9487
  onTxHash
9664
9488
  } = options;
9665
- const [state, setState] = React31.useState("waiting");
9666
- const [receipt, setReceipt] = React31.useState(null);
9667
- const [mempool, setMempool] = React31.useState(null);
9668
- const [txHash, setTxHash] = React31.useState(null);
9669
- const [error, setError] = React31.useState(null);
9670
- const [isPolling, setIsPolling] = React31.useState(false);
9671
- const intervalRef = React31.useRef(null);
9672
- const startTimeRef = React31.useRef(Date.now());
9673
- const prevStateRef = React31.useRef("waiting");
9674
- const rpc = React31.useCallback(async (method, params) => {
9489
+ const [state, setState] = React30.useState("waiting");
9490
+ const [receipt, setReceipt] = React30.useState(null);
9491
+ const [mempool, setMempool] = React30.useState(null);
9492
+ const [txHash, setTxHash] = React30.useState(null);
9493
+ const [error, setError] = React30.useState(null);
9494
+ const [isPolling, setIsPolling] = React30.useState(false);
9495
+ const intervalRef = React30.useRef(null);
9496
+ const startTimeRef = React30.useRef(Date.now());
9497
+ const prevStateRef = React30.useRef("waiting");
9498
+ const rpc = React30.useCallback(async (method, params) => {
9675
9499
  const body = { jsonrpc: "2.0", id: 1, method, params };
9676
9500
  const res = await fetch(getBundlerUrl(), {
9677
9501
  method: "POST",
@@ -9682,21 +9506,21 @@ function useUserOpStatus(options = {}) {
9682
9506
  if (json.error) throw new Error(json.error.message || JSON.stringify(json.error));
9683
9507
  return json.result;
9684
9508
  }, []);
9685
- const extractMempoolInfo = React31.useCallback((m) => {
9509
+ const extractMempoolInfo = React30.useCallback((m) => {
9686
9510
  if (!m) return null;
9687
9511
  const entryPoint = m.entryPoint || m?.userOperation?.entryPoint || null;
9688
9512
  const sender = m.sender || m?.userOperation?.sender || null;
9689
9513
  if (!entryPoint && !sender) return null;
9690
9514
  return { entryPoint, sender };
9691
9515
  }, []);
9692
- const updateState = React31.useCallback((newState) => {
9516
+ const updateState = React30.useCallback((newState) => {
9693
9517
  setState(newState);
9694
9518
  if (prevStateRef.current !== newState) {
9695
9519
  prevStateRef.current = newState;
9696
9520
  onStateChange?.(newState);
9697
9521
  }
9698
9522
  }, [onStateChange]);
9699
- const tick = React31.useCallback(async () => {
9523
+ const tick = React30.useCallback(async () => {
9700
9524
  if (!userOpHash || !enabled) return;
9701
9525
  if (receipt) {
9702
9526
  console.log("[useUserOpStatus] Already have receipt, skipping tick");
@@ -9769,7 +9593,7 @@ function useUserOpStatus(options = {}) {
9769
9593
  onTxHash,
9770
9594
  onReceipt
9771
9595
  ]);
9772
- React31.useEffect(() => {
9596
+ React30.useEffect(() => {
9773
9597
  if (!userOpHash || !enabled) return;
9774
9598
  console.log("[useUserOpStatus] Initializing for UserOp hash:", userOpHash);
9775
9599
  startTimeRef.current = Date.now();
@@ -9781,7 +9605,7 @@ function useUserOpStatus(options = {}) {
9781
9605
  setError(null);
9782
9606
  setIsPolling(false);
9783
9607
  }, [userOpHash, enabled]);
9784
- React31.useEffect(() => {
9608
+ React30.useEffect(() => {
9785
9609
  if (!userOpHash || !enabled) {
9786
9610
  console.log("[useUserOpStatus] Not starting polling - no hash or disabled");
9787
9611
  return;
@@ -9817,7 +9641,7 @@ function useUserOpStatus(options = {}) {
9817
9641
  }
9818
9642
  };
9819
9643
  }, [userOpHash, enabled, pollMs]);
9820
- const refresh = React31.useCallback(async () => {
9644
+ const refresh = React30.useCallback(async () => {
9821
9645
  await tick();
9822
9646
  }, [tick]);
9823
9647
  return {