@retinalabsllc/zairusjs 15.0.10 → 15.0.20
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.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +110 -77
- package/dist/index.mjs +112 -78
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -54,7 +54,7 @@ var Faq = ({
|
|
|
54
54
|
"div",
|
|
55
55
|
{
|
|
56
56
|
key: index,
|
|
57
|
-
className: `relative transition-all duration-500 rounded-4xl overflow-hidden ${isOpen ? "bg-black border-transparent" : "border border-neutral-
|
|
57
|
+
className: `relative transition-all duration-500 rounded-4xl overflow-hidden ${isOpen ? "bg-black border-transparent" : "border border-neutral-100 hover:border-neutral-300"}`,
|
|
58
58
|
style: { boxShadow: getShadowStyle() }
|
|
59
59
|
},
|
|
60
60
|
isOpen && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
@@ -477,10 +477,10 @@ function AuthFormInner({
|
|
|
477
477
|
onChange: (e) => setInvitationCode(e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, "")),
|
|
478
478
|
required: true,
|
|
479
479
|
autoFocus: true,
|
|
480
|
-
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-
|
|
480
|
+
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-100 text-black outline-none focus:border-black transition-all duration-300 tracking-widest",
|
|
481
481
|
placeholder: "Invitation Code"
|
|
482
482
|
}
|
|
483
|
-
))), mode === "SIGNUP" && signupStep === "NAME" && requireNames && /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React5.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React5.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, "First Name"), /* @__PURE__ */ React5.createElement("input", { type: "text", value: firstName, onChange: (e) => setFirstName(cleanAlpha(e.target.value)), required: true, autoFocus: true, className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-
|
|
483
|
+
))), mode === "SIGNUP" && signupStep === "NAME" && requireNames && /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React5.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React5.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, "First Name"), /* @__PURE__ */ React5.createElement("input", { type: "text", value: firstName, onChange: (e) => setFirstName(cleanAlpha(e.target.value)), required: true, autoFocus: true, className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-100 text-black outline-none focus:border-black transition-all duration-300", placeholder: "First name" })), /* @__PURE__ */ React5.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React5.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, "Last Name"), /* @__PURE__ */ React5.createElement("input", { type: "text", value: lastName, onChange: (e) => setLastName(cleanAlpha(e.target.value)), required: true, className: "w-full px-2 py-3 bg-transparent text-sm border-b border-neutral-100 text-black outline-none focus:border-black transition-all duration-300", placeholder: "Last name" }))), mode === "SIGNUP" && signupStep === "ORGANIZATION" && requireOrganization && /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React5.createElement("div", { className: "space-y-1.5 relative" }, /* @__PURE__ */ React5.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, "Organization Name"), /* @__PURE__ */ React5.createElement("input", { type: "text", value: orgName, onChange: (e) => setOrgName(cleanOrgName(e.target.value)), required: true, autoFocus: true, className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-100 text-black outline-none focus:border-black transition-all duration-300", placeholder: "Acme Corporation" }))), (mode === "LOGIN" || mode === "SIGNUP" && signupStep === "EMAIL_ID") && /* @__PURE__ */ React5.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React5.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React5.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, "Email ID"), /* @__PURE__ */ React5.createElement("input", { type: "email", value: emailId, onChange: (e) => setEmailId(cleanEmailId(e.target.value)), required: true, autoFocus: true, className: "w-full px-2 py-3 bg-transparent text-sm border-b border-neutral-100 text-black outline-none focus:border-black transition-all duration-300", placeholder: "name@company.com" })), mode === "SIGNUP" && /* @__PURE__ */ React5.createElement("div", { className: "flex items-start gap-3 mt-4" }, /* @__PURE__ */ React5.createElement("input", { type: "checkbox", id: "zairus-terms", checked: agreedToTerms, onChange: (e) => setAgreedToTerms(e.target.checked), className: "mt-0.5 w-4 h-4 bg-white border-neutral-300 rounded text-black focus:ring-black cursor-pointer", required: true }), /* @__PURE__ */ React5.createElement("label", { htmlFor: "zairus-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to ", companyName, "'s ", /* @__PURE__ */ React5.createElement("a", { href: termsUrl, target: "_blank", rel: "noreferrer", className: "text-black underline " }, "Terms of Service"), " and ", /* @__PURE__ */ React5.createElement("a", { href: privacyUrl, target: "_blank", rel: "noreferrer", className: "text-black underline " }, "Privacy Policy"), "."))), /* @__PURE__ */ React5.createElement(ThreeDActionButton, { type: "submit", disabled: isContinueDisabled(), isLoading: isSubmitting, className: "w-full mt-10" }, "Continue"))), step === "OTP" && /* @__PURE__ */ React5.createElement("div", { className: "animate-in fade-in duration-300" }, /* @__PURE__ */ React5.createElement("div", { className: "text-center mb-10 mt-2" }, /* @__PURE__ */ React5.createElement("h2", { className: "text-xl text-black mb-2 tracking-tight" }, "Security Check"), /* @__PURE__ */ React5.createElement("p", { className: "text-[13px] text-neutral-500" }, userHas2FA ? "Enter the code from your authenticator app." : `Enter the code sent to ${emailId}`)), /* @__PURE__ */ React5.createElement("form", { className: "space-y-8", autoComplete: "off", onSubmit: (e) => {
|
|
484
484
|
e.preventDefault();
|
|
485
485
|
verifyOtpCode(otp.join(""));
|
|
486
486
|
} }, /* @__PURE__ */ React5.createElement("div", { className: "flex justify-between gap-2", onPaste: handlePaste }, otp.map((digit, index) => /* @__PURE__ */ React5.createElement(
|
|
@@ -498,14 +498,14 @@ function AuthFormInner({
|
|
|
498
498
|
onKeyDown: (e) => {
|
|
499
499
|
if (e.key === "Backspace" && !otp[index] && index > 0) inputRefs.current[index - 1]?.focus();
|
|
500
500
|
},
|
|
501
|
-
className: "w-10 h-12 text-center text-lg bg-transparent border-b-2 border-neutral-
|
|
501
|
+
className: "w-10 h-12 text-center text-lg bg-transparent border-b-2 border-neutral-100 text-black outline-none focus:border-black transition-all duration-300"
|
|
502
502
|
}
|
|
503
503
|
))), /* @__PURE__ */ React5.createElement(ThreeDActionButton, { type: "submit", disabled: otp.join("").length < 6, isLoading: isSubmitting, className: "w-full" }, "Verify Code")), userHasPasskey && /* @__PURE__ */ React5.createElement("div", { className: "pt-6 " }, /* @__PURE__ */ React5.createElement(
|
|
504
504
|
"button",
|
|
505
505
|
{
|
|
506
506
|
onClick: triggerPasskeyLogin,
|
|
507
507
|
disabled: isSubmitting,
|
|
508
|
-
className: "w-full py-2.5 rounded-full text-black border border-neutral-
|
|
508
|
+
className: "w-full py-2.5 rounded-full text-black border border-neutral-100 hover:bg-neutral-50 text-xs tracking-wide transition-colors outline-none disabled:opacity-50"
|
|
509
509
|
},
|
|
510
510
|
"Use Passkey / Biometrics"
|
|
511
511
|
))))));
|
|
@@ -532,9 +532,9 @@ var Footer = ({
|
|
|
532
532
|
const toggleColumn = (idx) => {
|
|
533
533
|
setOpenCol(openCol === idx ? null : idx);
|
|
534
534
|
};
|
|
535
|
-
return /* @__PURE__ */ React6.createElement("div", { className: "" }, topSection && topSection, /* @__PURE__ */ React6.createElement("footer", { className: "relative px-6 overflow-hidden flex flex-col" }, /* @__PURE__ */ React6.createElement("div", { className: "relative w-full max-w-7xl mx-auto z-20 flex flex-col" }, /* @__PURE__ */ React6.createElement("div", { className: "relative py-12 md:py-16" }, /* @__PURE__ */ React6.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start gap-12 lg:gap-16 mb-12 text-left" }, /* @__PURE__ */ React6.createElement("div", { className: "w-full lg:max-w-sm flex flex-col items-start justify-between shrink-0" }, /* @__PURE__ */ React6.createElement("div", { className: "flex items-center gap-4 mb-4" }, /* @__PURE__ */ React6.createElement("img", { src: "https://retinalabs.company/assets/images/ndpr.avif", alt: "NDPR", className: "w-28 h-auto object-contain filter grayscale opacity-80" }), /* @__PURE__ */ React6.createElement("img", { src: "https://retinalabs.company/assets/images/gdpr.avif", alt: "GDPR", className: "w-12 h-12 object-contain filter grayscale opacity-80" })), /* @__PURE__ */ React6.createElement("div", null, /* @__PURE__ */ React6.createElement("p", { className: "text-[11px] text-neutral-600 leading-relaxed pr-4" }, description))), /* @__PURE__ */ React6.createElement("div", { className: "w-full lg:flex-1 lg:max-w-2xl" }, /* @__PURE__ */ React6.createElement("div", { className: "hidden md:grid grid-cols-2 gap-x-16 lg:gap-x-24 gap-y-12" }, columns.map((col, idx) => /* @__PURE__ */ React6.createElement("div", { key: idx, className: "flex flex-col" }, /* @__PURE__ */ React6.createElement("h4", { className: "text-[11px] tracking-[0.2em] text-black mb-6 " }, col.title), /* @__PURE__ */ React6.createElement("ul", { className: "space-y-4 text-[13px] text-neutral-500" }, col.links.map((link, lIdx) => /* @__PURE__ */ React6.createElement("li", { key: lIdx }, link.isExternal ? /* @__PURE__ */ React6.createElement("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black transition-colors block truncate" }, link.label) : /* @__PURE__ */ React6.createElement(Link3, { href: link.href, className: "hover:text-black transition-colors block truncate" }, link.label))))))), /* @__PURE__ */ React6.createElement("div", { className: "flex flex-col md:hidden w-full border-t border-neutral-
|
|
535
|
+
return /* @__PURE__ */ React6.createElement("div", { className: "" }, topSection && topSection, /* @__PURE__ */ React6.createElement("footer", { className: "relative px-6 overflow-hidden flex flex-col" }, /* @__PURE__ */ React6.createElement("div", { className: "relative w-full max-w-7xl mx-auto z-20 flex flex-col" }, /* @__PURE__ */ React6.createElement("div", { className: "relative py-12 md:py-16" }, /* @__PURE__ */ React6.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start gap-12 lg:gap-16 mb-12 text-left" }, /* @__PURE__ */ React6.createElement("div", { className: "w-full lg:max-w-sm flex flex-col items-start justify-between shrink-0" }, /* @__PURE__ */ React6.createElement("div", { className: "flex items-center gap-4 mb-4" }, /* @__PURE__ */ React6.createElement("img", { src: "https://retinalabs.company/assets/images/ndpr.avif", alt: "NDPR", className: "w-28 h-auto object-contain filter grayscale opacity-80" }), /* @__PURE__ */ React6.createElement("img", { src: "https://retinalabs.company/assets/images/gdpr.avif", alt: "GDPR", className: "w-12 h-12 object-contain filter grayscale opacity-80" })), /* @__PURE__ */ React6.createElement("div", null, /* @__PURE__ */ React6.createElement("p", { className: "text-[11px] text-neutral-600 leading-relaxed pr-4" }, description))), /* @__PURE__ */ React6.createElement("div", { className: "w-full lg:flex-1 lg:max-w-2xl" }, /* @__PURE__ */ React6.createElement("div", { className: "hidden md:grid grid-cols-2 gap-x-16 lg:gap-x-24 gap-y-12" }, columns.map((col, idx) => /* @__PURE__ */ React6.createElement("div", { key: idx, className: "flex flex-col" }, /* @__PURE__ */ React6.createElement("h4", { className: "text-[11px] tracking-[0.2em] text-black mb-6 " }, col.title), /* @__PURE__ */ React6.createElement("ul", { className: "space-y-4 text-[13px] text-neutral-500" }, col.links.map((link, lIdx) => /* @__PURE__ */ React6.createElement("li", { key: lIdx }, link.isExternal ? /* @__PURE__ */ React6.createElement("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black transition-colors block truncate" }, link.label) : /* @__PURE__ */ React6.createElement(Link3, { href: link.href, className: "hover:text-black transition-colors block truncate" }, link.label))))))), /* @__PURE__ */ React6.createElement("div", { className: "flex flex-col md:hidden w-full border-t border-neutral-100 mt-4" }, columns.map((col, idx) => {
|
|
536
536
|
const isOpen = openCol === idx;
|
|
537
|
-
return /* @__PURE__ */ React6.createElement("div", { key: idx, className: "border-b border-neutral-
|
|
537
|
+
return /* @__PURE__ */ React6.createElement("div", { key: idx, className: "border-b border-neutral-100" }, /* @__PURE__ */ React6.createElement(
|
|
538
538
|
"button",
|
|
539
539
|
{
|
|
540
540
|
onClick: () => toggleColumn(idx),
|
|
@@ -665,7 +665,7 @@ var TextInput = ({
|
|
|
665
665
|
readOnly,
|
|
666
666
|
autoComplete: "off",
|
|
667
667
|
spellCheck: "false",
|
|
668
|
-
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-
|
|
668
|
+
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-100 text-black transition-all outline-none focus:border-black disabled:opacity-50 ${readOnly ? "cursor-pointer" : ""}`
|
|
669
669
|
}
|
|
670
670
|
));
|
|
671
671
|
var NumberInput = ({
|
|
@@ -688,7 +688,7 @@ var NumberInput = ({
|
|
|
688
688
|
disabled,
|
|
689
689
|
autoComplete: "off",
|
|
690
690
|
spellCheck: "false",
|
|
691
|
-
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-
|
|
691
|
+
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-100 text-black transition-all outline-none focus:border-black disabled:opacity-50"
|
|
692
692
|
}
|
|
693
693
|
));
|
|
694
694
|
|
|
@@ -743,7 +743,7 @@ var Banner = ({
|
|
|
743
743
|
}
|
|
744
744
|
};
|
|
745
745
|
const currentConfig = config[type];
|
|
746
|
-
return /* @__PURE__ */ React10.createElement("div", { className: `relative w-full rounded-2xl p-4 flex items-start gap-4 transition-all duration-300 animate-in fade-in slide-in-from-top-2 ${currentConfig.bg}` }, /* @__PURE__ */ React10.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, /* @__PURE__ */ React10.createElement("h4", { className: `text-[10px]
|
|
746
|
+
return /* @__PURE__ */ React10.createElement("div", { className: `relative w-full rounded-2xl p-4 flex items-start gap-4 transition-all duration-300 animate-in fade-in slide-in-from-top-2 ${currentConfig.bg}` }, /* @__PURE__ */ React10.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, /* @__PURE__ */ React10.createElement("h4", { className: `text-[10px] tracking-tight mb-1 ${currentConfig.titleColor}` }, title), /* @__PURE__ */ React10.createElement("p", { className: `text-xs leading-relaxed ${currentConfig.msgColor}` }, message), action && /* @__PURE__ */ React10.createElement("div", { className: "mt-3" }, action)), isDismissible && /* @__PURE__ */ React10.createElement(
|
|
747
747
|
"button",
|
|
748
748
|
{
|
|
749
749
|
onClick: handleDismiss,
|
|
@@ -879,7 +879,7 @@ var UniversalOrganizationPage = ({
|
|
|
879
879
|
placeholder: "sovereignuser",
|
|
880
880
|
maxLength: 30
|
|
881
881
|
}
|
|
882
|
-
), /* @__PURE__ */ React11.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ React11.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Wallet Username"), /* @__PURE__ */ React11.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-
|
|
882
|
+
), /* @__PURE__ */ React11.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ React11.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Wallet Username"), /* @__PURE__ */ React11.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-100 focus-within:border-black transition-all duration-300" }, /* @__PURE__ */ React11.createElement(
|
|
883
883
|
"input",
|
|
884
884
|
{
|
|
885
885
|
type: "text",
|
|
@@ -1057,7 +1057,7 @@ var UniversalProfileSettings = ({
|
|
|
1057
1057
|
{
|
|
1058
1058
|
type: "button",
|
|
1059
1059
|
onClick: () => setIsPinModalOpen(true),
|
|
1060
|
-
className: "w-9 h-9 flex items-center justify-center border border-neutral-
|
|
1060
|
+
className: "w-9 h-9 flex items-center justify-center border border-neutral-100 rounded-full text-black hover:bg-neutral-50 transition-colors outline-none"
|
|
1061
1061
|
},
|
|
1062
1062
|
/* @__PURE__ */ React12.createElement(HugeiconsIcon6, { icon: LockKeyIcon, size: 17, className: "text-black" })
|
|
1063
1063
|
))), /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col-reverse sm:flex-row items-center gap-3 sm:gap-4 w-full sm:w-auto shrink-0" }, hasChanges && !isSubmitting && !isReadOnly && /* @__PURE__ */ React12.createElement(
|
|
@@ -1187,7 +1187,7 @@ var UniversalErrorView = ({
|
|
|
1187
1187
|
"button",
|
|
1188
1188
|
{
|
|
1189
1189
|
onClick: () => window.location.href = returnUrl,
|
|
1190
|
-
className: "px-6 py-2 text-black border border-neutral-
|
|
1190
|
+
className: "px-6 py-2 text-black border border-neutral-100 hover:bg-neutral-50 rounded-full text-[11px] tracking-widest transition-colors w-full sm:w-auto outline-none "
|
|
1191
1191
|
},
|
|
1192
1192
|
returnLabel
|
|
1193
1193
|
) : (
|
|
@@ -1196,7 +1196,7 @@ var UniversalErrorView = ({
|
|
|
1196
1196
|
"button",
|
|
1197
1197
|
{
|
|
1198
1198
|
onClick: () => window.location.href = returnUrl,
|
|
1199
|
-
className: "px-6 py-2 bg-transparent border border-neutral-
|
|
1199
|
+
className: "px-6 py-2 bg-transparent border border-neutral-100 text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full text-[11px] tracking-widest transition-colors w-full sm:w-auto outline-none "
|
|
1200
1200
|
},
|
|
1201
1201
|
"Back Home"
|
|
1202
1202
|
), /* @__PURE__ */ React14.createElement(
|
|
@@ -1366,7 +1366,7 @@ var UniversalTransactionPage = ({
|
|
|
1366
1366
|
{
|
|
1367
1367
|
onClick: () => onPageChange(currentPage - 1),
|
|
1368
1368
|
disabled: currentPage <= 1 || isListLoading,
|
|
1369
|
-
className: "p-2 bg-white border border-neutral-
|
|
1369
|
+
className: "p-2 bg-white border border-neutral-100 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
1370
1370
|
},
|
|
1371
1371
|
/* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: ArrowLeft01Icon3, size: 14 })
|
|
1372
1372
|
), /* @__PURE__ */ React15.createElement(
|
|
@@ -1374,7 +1374,7 @@ var UniversalTransactionPage = ({
|
|
|
1374
1374
|
{
|
|
1375
1375
|
onClick: () => onPageChange(currentPage + 1),
|
|
1376
1376
|
disabled: currentPage >= totalPages || isListLoading || totalPages === 0,
|
|
1377
|
-
className: "p-2 bg-white border border-neutral-
|
|
1377
|
+
className: "p-2 bg-white border border-neutral-100 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
1378
1378
|
},
|
|
1379
1379
|
/* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: ArrowRight01Icon, size: 14 })
|
|
1380
1380
|
)))))), selectedTransaction && /* @__PURE__ */ React15.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React15.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React15.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React15.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ React15.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: CancelCircleIcon2, size: 18 }))), /* @__PURE__ */ React15.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React15.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 bg-neutral-100 text-black` }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: selectedTransaction.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ React15.createElement("p", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.amount), /* @__PURE__ */ React15.createElement("span", { className: `text-[9px] tracking-widest px-4 py-1.5 rounded-full ${getStatusClasses(selectedTransaction.status)}` }, selectedTransaction.status)), /* @__PURE__ */ React15.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-2 min-w-0" }, /* @__PURE__ */ React15.createElement("span", { className: "text-[13px] text-black truncate min-w-0 block" }, truncateReference(selectedTransaction.reference)), /* @__PURE__ */ React15.createElement(
|
|
@@ -1394,14 +1394,14 @@ var UniversalTransactionPage = ({
|
|
|
1394
1394
|
{
|
|
1395
1395
|
onClick: handleGenerateReceipt,
|
|
1396
1396
|
isLoading: isGeneratingReceipt,
|
|
1397
|
-
className: "w-full"
|
|
1397
|
+
className: "w-full hidden"
|
|
1398
1398
|
},
|
|
1399
1399
|
"Generate Receipt"
|
|
1400
1400
|
), /* @__PURE__ */ React15.createElement(
|
|
1401
1401
|
"button",
|
|
1402
1402
|
{
|
|
1403
1403
|
onClick: () => onReportTransaction && onReportTransaction(selectedTransaction),
|
|
1404
|
-
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-
|
|
1404
|
+
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-100 text-black hover:bg-neutral-50 transition-colors outline-none text-xs tracking-wide mt-2"
|
|
1405
1405
|
},
|
|
1406
1406
|
"Report Transaction"
|
|
1407
1407
|
))))), isDirectionModalOpen && /* @__PURE__ */ React15.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setIsDirectionModalOpen(false) }), /* @__PURE__ */ React15.createElement("div", { ref: directionDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React15.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ React15.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Payment Type")), /* @__PURE__ */ React15.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "CREDIT", "DEBIT"].map((option) => /* @__PURE__ */ React15.createElement(
|
|
@@ -1611,7 +1611,7 @@ var UniversalHomeView = ({
|
|
|
1611
1611
|
hideBalanceAmounts: isBalanceHidden,
|
|
1612
1612
|
hidePagination: true
|
|
1613
1613
|
}
|
|
1614
|
-
)), showNotifDialog && /* @__PURE__ */ React16.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React16.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 h-[80vh]" }, /* @__PURE__ */ React16.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, selectedNotif ? /* @__PURE__ */ React16.createElement("button", { onClick: () => setSelectedNotif(null), className: "text-neutral-400 hover:text-black transition-colors outline-none flex items-center gap-2 text-[11px] tracking-widest
|
|
1614
|
+
)), showNotifDialog && /* @__PURE__ */ React16.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React16.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 h-[80vh]" }, /* @__PURE__ */ React16.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, selectedNotif ? /* @__PURE__ */ React16.createElement("button", { onClick: () => setSelectedNotif(null), className: "text-neutral-400 hover:text-black transition-colors outline-none flex items-center gap-2 text-[11px] tracking-widest " }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: ArrowLeft01Icon4, size: 14 }), " Back") : /* @__PURE__ */ React16.createElement("h3", { className: "text-[15px] text-black tracking-tight flex items-center gap-2" }, "Notifications", isNotifsLoading && /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: Loading03Icon5, size: 14, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React16.createElement("button", { onClick: () => setShowNotifDialog(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React16.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, selectedNotif ? /* @__PURE__ */ React16.createElement("div", { className: "p-4 text-left" }, /* @__PURE__ */ React16.createElement("h4", { className: "text-[14px] text-black mb-1 " }, selectedNotif.title), /* @__PURE__ */ React16.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest mb-4 block " }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React16.createElement("p", { className: "text-[12px] text-neutral-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message)) : /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col divide-y divide-neutral-50/50" }, notifications?.length === 0 && !isNotifsLoading ? /* @__PURE__ */ React16.createElement("div", { className: "p-8 text-center text-xs text-neutral-400" }, "You have no notifications.") : notifications?.map((notif) => /* @__PURE__ */ React16.createElement(
|
|
1615
1615
|
"div",
|
|
1616
1616
|
{
|
|
1617
1617
|
key: notif.id,
|
|
@@ -1622,13 +1622,13 @@ var UniversalHomeView = ({
|
|
|
1622
1622
|
className: `p-3 flex items-start gap-3 rounded-xl cursor-pointer transition-colors ${isNotifsLoading ? "opacity-50 pointer-events-none" : "hover:bg-neutral-50"}`
|
|
1623
1623
|
},
|
|
1624
1624
|
/* @__PURE__ */ React16.createElement("div", { className: "mt-1.5 shrink-0" }, !notif.isRead ? /* @__PURE__ */ React16.createElement("div", { className: "w-1.5 h-1.5 bg-red-500 rounded-full" }) : /* @__PURE__ */ React16.createElement("div", { className: "w-1.5 h-1.5 bg-transparent" })),
|
|
1625
|
-
/* @__PURE__ */ React16.createElement("div", { className: "flex-1 min-w-0 text-left" }, /* @__PURE__ */ React16.createElement("h5", { className: `text-[12px] truncate ${notif.isRead ? "text-neutral-500" : "text-black "}` }, notif.title), /* @__PURE__ */ React16.createElement("p", { className: "text-[11px] text-neutral-400 truncate mt-0.5" }, notif.message), /* @__PURE__ */ React16.createElement("span", { className: "text-[9px] text-neutral-400 tracking-widest mt-2 block
|
|
1626
|
-
)))), !selectedNotif && /* @__PURE__ */ React16.createElement("div", { className: "p-4 flex items-center justify-between shrink-0 " }, /* @__PURE__ */ React16.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest
|
|
1625
|
+
/* @__PURE__ */ React16.createElement("div", { className: "flex-1 min-w-0 text-left" }, /* @__PURE__ */ React16.createElement("h5", { className: `text-[12px] truncate ${notif.isRead ? "text-neutral-500" : "text-black "}` }, notif.title), /* @__PURE__ */ React16.createElement("p", { className: "text-[11px] text-neutral-400 truncate mt-0.5" }, notif.message), /* @__PURE__ */ React16.createElement("span", { className: "text-[9px] text-neutral-400 tracking-widest mt-2 block " }, formatNotifDate(notif.createdAt)))
|
|
1626
|
+
)))), !selectedNotif && /* @__PURE__ */ React16.createElement("div", { className: "p-4 flex items-center justify-between shrink-0 " }, /* @__PURE__ */ React16.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest " }, "Page ", notificationPage, " of ", notificationTotalPages === 0 ? 1 : notificationTotalPages), /* @__PURE__ */ React16.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React16.createElement(
|
|
1627
1627
|
"button",
|
|
1628
1628
|
{
|
|
1629
1629
|
disabled: notificationPage <= 1 || isNotifsLoading,
|
|
1630
1630
|
onClick: () => onNotificationPageChange?.(notificationPage - 1),
|
|
1631
|
-
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-neutral-
|
|
1631
|
+
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-neutral-100 text-neutral-600 disabled:opacity-30 outline-none hover:bg-neutral-50 transition-colors"
|
|
1632
1632
|
},
|
|
1633
1633
|
/* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: ArrowLeft01Icon4, size: 12 })
|
|
1634
1634
|
), /* @__PURE__ */ React16.createElement(
|
|
@@ -1636,7 +1636,7 @@ var UniversalHomeView = ({
|
|
|
1636
1636
|
{
|
|
1637
1637
|
disabled: notificationPage >= notificationTotalPages || notificationTotalPages === 0 || isNotifsLoading,
|
|
1638
1638
|
onClick: () => onNotificationPageChange?.(notificationPage + 1),
|
|
1639
|
-
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-neutral-
|
|
1639
|
+
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-neutral-100 text-neutral-600 disabled:opacity-30 outline-none hover:bg-neutral-50 transition-colors"
|
|
1640
1640
|
},
|
|
1641
1641
|
/* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: ArrowRight01Icon2, size: 12 })
|
|
1642
1642
|
))))));
|
|
@@ -1854,7 +1854,7 @@ var UniversalWalletPage = ({
|
|
|
1854
1854
|
onChange: (e) => setLocalSearchQuery(e.target.value),
|
|
1855
1855
|
className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black placeholder-neutral-400 outline-none transition-colors focus:border-black"
|
|
1856
1856
|
}
|
|
1857
|
-
)), !external && /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ React18.createElement("button", { onClick: startWalletGeneration, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-neutral-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: PlusSignIcon, size: 16 })), /* @__PURE__ */ React18.createElement("button", { onClick: startWalletImport, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-neutral-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Upload01Icon, size: 16 })))), /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React18.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React18.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React18.createElement(PageSpinner3, null) : /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React18.createElement("div", null, filteredWallets.length === 0 ? /* @__PURE__ */ React18.createElement("p", { className: "text-xs text-neutral-400 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React18.createElement("div", { key: wallet.id, onClick: () => setSelectedWallet(wallet), className: "flex items-center justify-between py-4 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React18.createElement("div", { className: "relative shrink-0" }, /* @__PURE__ */ React18.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), wallet.networkLogoSrc && /* @__PURE__ */ React18.createElement("div", { className: "absolute -bottom-1 -right-1 w-4 h-4 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React18.createElement("img", { src: wallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React18.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18.createElement("p", { className: "text-[13px] text-black truncate" }, wallet.name), !external && wallet.isActive !== void 0 && /* @__PURE__ */ React18.createElement("span", { className: `text-[9px] px-1.5 py-0.5 rounded-sm tracking-widest
|
|
1857
|
+
)), !external && /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ React18.createElement("button", { onClick: startWalletGeneration, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-neutral-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: PlusSignIcon, size: 16 })), /* @__PURE__ */ React18.createElement("button", { onClick: startWalletImport, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-neutral-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Upload01Icon, size: 16 })))), /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React18.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React18.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React18.createElement(PageSpinner3, null) : /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React18.createElement("div", null, filteredWallets.length === 0 ? /* @__PURE__ */ React18.createElement("p", { className: "text-xs text-neutral-400 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React18.createElement("div", { key: wallet.id, onClick: () => setSelectedWallet(wallet), className: "flex items-center justify-between py-4 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React18.createElement("div", { className: "relative shrink-0" }, /* @__PURE__ */ React18.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), wallet.networkLogoSrc && /* @__PURE__ */ React18.createElement("div", { className: "absolute -bottom-1 -right-1 w-4 h-4 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React18.createElement("img", { src: wallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React18.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18.createElement("p", { className: "text-[13px] text-black truncate" }, wallet.name), !external && wallet.isActive !== void 0 && /* @__PURE__ */ React18.createElement("span", { className: `text-[9px] px-1.5 py-0.5 rounded-sm tracking-widest ${wallet.isActive ? "bg-emerald-50 text-emerald-600" : "bg-red-50 text-red-600"}` }, wallet.isActive ? "Active" : "Inactive")), /* @__PURE__ */ React18.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-sm opacity-40 select-none" : ""}` }, external ? wallet.currency : `${wallet.balance} ${wallet.currency}`))), /* @__PURE__ */ React18.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[10px] tracking-wide text-neutral-600 bg-neutral-100 px-2.5 py-1 rounded-full " }, wallet.network)))))))), addModalOpen && /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setAddModalOpen(false) }), /* @__PURE__ */ React18.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, flowStep === 1 ? "Important Notice" : flowStep === 2 ? "Secret Recovery Phrase" : flowStep === 3 ? "Verify Phrase" : "Secure Wallet"), /* @__PURE__ */ React18.createElement("button", { onClick: () => !isProcessing && setAddModalOpen(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React18.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React18.createElement(Banner, { type: "alert", title: "Critical Warning", message: "You are about to generate a Self-Custodial Recovery Phrase. This phrase is the absolute master key to your wallet and all assets within it. Aeona DOES NOT store this phrase. If you lose it, your funds are permanently lost. Do not share this phrase with anyone.", isDismissible: false }), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "I Understand, Generate Phrase")), flowStep === 2 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React18.createElement("p", { className: "text-sm text-neutral-600" }, "Please write down these words in the exact order shown. Store them in a secure, offline location."), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-48 overflow-y-auto custom-scrollbar pr-1" }, generatedPhrase.split(" ").map((word, idx) => /* @__PURE__ */ React18.createElement("div", { key: idx, className: "flex items-center gap-1.5 bg-neutral-50 rounded-lg p-2 selection:bg-neutral-100" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[10px] text-neutral-400 select-none w-4 text-right shrink-0" }, idx + 1, "."), /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] text-black " }, word)))), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between gap-2 0 pt-4" }, /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => handleCopy(generatedPhrase, false), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Copy01Icon2, size: 14 }), " Copy Phrase"), /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: handleDownloadTxt, className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Download01Icon, size: 14 }), " Download .txt")), /* @__PURE__ */ React18.createElement("div", { className: "flex items-start gap-3 p-3 rounded-xl border border-neutral-100 mt-2" }, /* @__PURE__ */ React18.createElement("input", { type: "checkbox", id: "backup-confirm", checked: hasBackedUp, onChange: (e) => setHasBackedUp(e.target.checked), className: "mt-0.5 w-4 h-4 bg-white border-neutral-300 rounded text-black focus:ring-black cursor-pointer shrink-0" }), /* @__PURE__ */ React18.createElement("label", { htmlFor: "backup-confirm", className: "text-xs text-neutral-600 cursor-pointer leading-relaxed" }, "I have securely copied and stored my recovery phrase. I understand that if I lose it, my funds are gone forever.")), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Continue")), flowStep === 3 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React18.createElement("p", { className: "text-sm text-neutral-600" }, "Please enter or paste your recovery phrase below to verify your backup."), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, verifyWords.map((word, idx) => /* @__PURE__ */ React18.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-neutral-100 focus-within:border-black rounded-lg p-1.5 transition-colors" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[10px] text-neutral-400 w-4 shrink-0 text-right select-none" }, idx + 1, "."), /* @__PURE__ */ React18.createElement(
|
|
1858
1858
|
"input",
|
|
1859
1859
|
{
|
|
1860
1860
|
type: "text",
|
|
@@ -1879,7 +1879,7 @@ var UniversalWalletPage = ({
|
|
|
1879
1879
|
},
|
|
1880
1880
|
className: "w-full bg-transparent text-[13px] text-black outline-none min-w-0"
|
|
1881
1881
|
}
|
|
1882
|
-
)))), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => handleGridPaste(setVerifyWords, verifyWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Verify Backup")), flowStep === 4 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React18.createElement(Banner, { type: "success", title: "Phrase Verified", message: "Your phrase is correct. Now set a local password to encrypt your wallet on this browser.", isDismissible: false }), /* @__PURE__ */ React18.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("generated"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Save Wallet"))))), importModalOpen && /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setImportModalOpen(false) }), /* @__PURE__ */ React18.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Import Wallet"), /* @__PURE__ */ React18.createElement("button", { onClick: () => !isProcessing && setImportModalOpen(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React18.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React18.createElement("p", { className: "text-sm text-neutral-600" }, "Enter your 12 or 24-word recovery phrase to restore your wallet on this device."), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, importWords.map((word, idx) => /* @__PURE__ */ React18.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-neutral-
|
|
1882
|
+
)))), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => handleGridPaste(setVerifyWords, verifyWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Verify Backup")), flowStep === 4 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React18.createElement(Banner, { type: "success", title: "Phrase Verified", message: "Your phrase is correct. Now set a local password to encrypt your wallet on this browser.", isDismissible: false }), /* @__PURE__ */ React18.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("generated"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Save Wallet"))))), importModalOpen && /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setImportModalOpen(false) }), /* @__PURE__ */ React18.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Import Wallet"), /* @__PURE__ */ React18.createElement("button", { onClick: () => !isProcessing && setImportModalOpen(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React18.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React18.createElement("p", { className: "text-sm text-neutral-600" }, "Enter your 12 or 24-word recovery phrase to restore your wallet on this device."), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, importWords.map((word, idx) => /* @__PURE__ */ React18.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-neutral-100 focus-within:border-black rounded-lg p-1.5 transition-colors" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[10px] text-neutral-400 w-4 shrink-0 text-right select-none" }, idx + 1, "."), /* @__PURE__ */ React18.createElement(
|
|
1883
1883
|
"input",
|
|
1884
1884
|
{
|
|
1885
1885
|
type: "text",
|
|
@@ -1905,7 +1905,7 @@ var UniversalWalletPage = ({
|
|
|
1905
1905
|
},
|
|
1906
1906
|
className: "w-full bg-transparent text-[13px] text-black outline-none min-w-0"
|
|
1907
1907
|
}
|
|
1908
|
-
)))), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => handleGridPaste(setImportWords, importWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: handleImportNext, className: "w-full mt-2" }, "Continue")), flowStep === 2 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React18.createElement("p", { className: "text-sm text-neutral-600" }, "Set a local password to encrypt this wallet on this specific browser."), /* @__PURE__ */ React18.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("imported"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Import Wallet"))))), selectedWallet && /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedWallet(null) }), /* @__PURE__ */ React18.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React18.createElement("button", { onClick: () => setSelectedWallet(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React18.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-6" }, /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React18.createElement("div", { className: "relative mb-4" }, /* @__PURE__ */ React18.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14" }), selectedWallet.networkLogoSrc && /* @__PURE__ */ React18.createElement("div", { className: "absolute -bottom-1 -right-1 w-5 h-5 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React18.createElement("img", { src: selectedWallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React18.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-[6px] opacity-40 select-none" : ""}` }, external ? selectedWallet.currency : `${selectedWallet.balance} ${selectedWallet.currency}`), /* @__PURE__ */ React18.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full border border-neutral-
|
|
1908
|
+
)))), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => handleGridPaste(setImportWords, importWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: handleImportNext, className: "w-full mt-2" }, "Continue")), flowStep === 2 && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React18.createElement("p", { className: "text-sm text-neutral-600" }, "Set a local password to encrypt this wallet on this specific browser."), /* @__PURE__ */ React18.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("imported"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Import Wallet"))))), selectedWallet && /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedWallet(null) }), /* @__PURE__ */ React18.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React18.createElement("button", { onClick: () => setSelectedWallet(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React18.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-6" }, /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React18.createElement("div", { className: "relative mb-4" }, /* @__PURE__ */ React18.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14" }), selectedWallet.networkLogoSrc && /* @__PURE__ */ React18.createElement("div", { className: "absolute -bottom-1 -right-1 w-5 h-5 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React18.createElement("img", { src: selectedWallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React18.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-[6px] opacity-40 select-none" : ""}` }, external ? selectedWallet.currency : `${selectedWallet.balance} ${selectedWallet.currency}`), /* @__PURE__ */ React18.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full border border-neutral-100 mt-1 " }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React18.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, renderQrCode(selectedWallet)), external && /* @__PURE__ */ React18.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React18.createElement(
|
|
1909
1909
|
Banner,
|
|
1910
1910
|
{
|
|
1911
1911
|
type: "warning",
|
|
@@ -1913,7 +1913,7 @@ var UniversalWalletPage = ({
|
|
|
1913
1913
|
message: `Ensure you only send assets using the exact network specified. Minimum deposit is 15 ${selectedWallet.currency}. Sending funds through an unsupported network or under the minimum will result in permanent loss of funds.`,
|
|
1914
1914
|
isDismissible: false
|
|
1915
1915
|
}
|
|
1916
|
-
)), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-2 min-w-0" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] text-black truncate min-w-0 block" }, truncateAddress2(selectedWallet.address)), /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => setShowCopyWarning(true), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Copy01Icon2, size: 14 })))), !external && /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Status"), selectedWallet.isActive ? /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] px-1.5 py-0.5 bg-emerald-50 text-emerald-600 " }, "Active on this device") : /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] px-1.5 py-0.5 bg-red-50 text-red-600 " }, "Inactive - Requires Import"))), /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: () => onDownloadPayId && onDownloadPayId(selectedWallet), isLoading: isGeneratingStatement, className: "w-full" }, "Generate Statement"), /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => setShowCopyWarning(true), className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-
|
|
1916
|
+
)), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-2 min-w-0" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] text-black truncate min-w-0 block" }, truncateAddress2(selectedWallet.address)), /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => setShowCopyWarning(true), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Copy01Icon2, size: 14 })))), !external && /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Status"), selectedWallet.isActive ? /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] px-1.5 py-0.5 bg-emerald-50 text-emerald-600 " }, "Active on this device") : /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] px-1.5 py-0.5 bg-red-50 text-red-600 " }, "Inactive - Requires Import"))), /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React18.createElement(ThreeDActionButton, { onClick: () => onDownloadPayId && onDownloadPayId(selectedWallet), isLoading: isGeneratingStatement, className: "w-full hidden" }, "Generate Statement"), /* @__PURE__ */ React18.createElement("button", { type: "button", onClick: () => setShowCopyWarning(true), className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-100 text-black hover:bg-neutral-50 outline-none text-xs tracking-wide transition-colors" }, "Copy Wallet Address"))))), selectedWallet && /* @__PURE__ */ React18.createElement(
|
|
1917
1917
|
ConfirmationDialog,
|
|
1918
1918
|
{
|
|
1919
1919
|
isOpen: showCopyWarning,
|
|
@@ -2185,9 +2185,9 @@ var MenuRow = ({
|
|
|
2185
2185
|
onClick: disabled ? void 0 : onClick,
|
|
2186
2186
|
className: `flex items-center p-3 transition-colors ${!isLast ? "" : ""} ${disabled ? "opacity-40 cursor-not-allowed" : "cursor-pointer hover:bg-neutral-50"}`
|
|
2187
2187
|
},
|
|
2188
|
-
/* @__PURE__ */ React19.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-
|
|
2188
|
+
/* @__PURE__ */ React19.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-100 flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ React19.createElement(HugeiconsIcon13, { icon, size: 16, className: iconColor })),
|
|
2189
2189
|
/* @__PURE__ */ React19.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19.createElement("p", { className: `text-[13px] truncate ${titleColor}` }, title), /* @__PURE__ */ React19.createElement("p", { className: "text-[11px] text-neutral-500 truncate" }, subtitle)),
|
|
2190
|
-
isToggle ? /* @__PURE__ */ React19.createElement("div", { className: `relative w-11 h-6 rounded-full transition-colors duration-300 ml-2 shrink-0 ${toggleState ? "bg-black" : "bg-neutral-
|
|
2190
|
+
isToggle ? /* @__PURE__ */ React19.createElement("div", { className: `relative w-11 h-6 rounded-full transition-colors duration-300 ml-2 shrink-0 ${toggleState ? "bg-black" : "bg-neutral-100"} ${disabled ? "opacity-50" : ""}` }, /* @__PURE__ */ React19.createElement("div", { className: `absolute top-1 left-1 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300 flex items-center justify-center ${toggleState ? "translate-x-5" : "translate-x-0"}` }, toggleLoading && /* @__PURE__ */ React19.createElement(HugeiconsIcon13, { icon: Loading03Icon8, size: 10, className: "animate-spin text-black" }))) : /* @__PURE__ */ React19.createElement(HugeiconsIcon13, { icon: ArrowRight01Icon3, size: 18, className: "text-neutral-400 shrink-0 ml-2" })
|
|
2191
2191
|
);
|
|
2192
2192
|
|
|
2193
2193
|
// src/components/UniversalProfilePage.tsx
|
|
@@ -2203,12 +2203,14 @@ import {
|
|
|
2203
2203
|
LogoutCircle02Icon,
|
|
2204
2204
|
UserRemove01Icon,
|
|
2205
2205
|
ArrowRight01Icon as ArrowRight01Icon4,
|
|
2206
|
-
Loading03Icon as Loading03Icon9
|
|
2206
|
+
Loading03Icon as Loading03Icon9,
|
|
2207
|
+
Camera01Icon
|
|
2207
2208
|
} from "@hugeicons/core-free-icons";
|
|
2208
2209
|
var UniversalProfilePage = ({
|
|
2209
2210
|
avatarSrc,
|
|
2210
2211
|
roleName,
|
|
2211
2212
|
memberSince,
|
|
2213
|
+
onAvatarTap,
|
|
2212
2214
|
onAccountTap,
|
|
2213
2215
|
onSecurityTap,
|
|
2214
2216
|
onDefiTap,
|
|
@@ -2221,6 +2223,8 @@ var UniversalProfilePage = ({
|
|
|
2221
2223
|
const [isAvatarLoaded, setIsAvatarLoaded] = useState12(false);
|
|
2222
2224
|
const [showLogoutDialog, setShowLogoutDialog] = useState12(false);
|
|
2223
2225
|
const [isLoggingOut, setIsLoggingOut] = useState12(false);
|
|
2226
|
+
const [showDeleteDialog, setShowDeleteDialog] = useState12(false);
|
|
2227
|
+
const [isDeleting, setIsDeleting] = useState12(false);
|
|
2224
2228
|
const handleConfirmLogout = async () => {
|
|
2225
2229
|
setIsLoggingOut(true);
|
|
2226
2230
|
try {
|
|
@@ -2232,6 +2236,17 @@ var UniversalProfilePage = ({
|
|
|
2232
2236
|
setShowLogoutDialog(false);
|
|
2233
2237
|
}
|
|
2234
2238
|
};
|
|
2239
|
+
const handleConfirmDelete = async () => {
|
|
2240
|
+
setIsDeleting(true);
|
|
2241
|
+
try {
|
|
2242
|
+
if (onDeleteTap) {
|
|
2243
|
+
await onDeleteTap();
|
|
2244
|
+
}
|
|
2245
|
+
} finally {
|
|
2246
|
+
setIsDeleting(false);
|
|
2247
|
+
setShowDeleteDialog(false);
|
|
2248
|
+
}
|
|
2249
|
+
};
|
|
2235
2250
|
const getBadgeColorClass = (role) => {
|
|
2236
2251
|
if (!role) return "text-neutral-400";
|
|
2237
2252
|
const r = role.toLowerCase();
|
|
@@ -2240,15 +2255,22 @@ var UniversalProfilePage = ({
|
|
|
2240
2255
|
if (r.includes("platinum")) return "text-yellow-400";
|
|
2241
2256
|
return "text-neutral-400";
|
|
2242
2257
|
};
|
|
2243
|
-
return /* @__PURE__ */ React20.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React20.createElement("div", { className: "pt-8 pb-4 flex flex-col items-center" }, /* @__PURE__ */ React20.createElement(
|
|
2244
|
-
"
|
|
2258
|
+
return /* @__PURE__ */ React20.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React20.createElement("div", { className: "pt-8 pb-4 flex flex-col items-center" }, /* @__PURE__ */ React20.createElement(
|
|
2259
|
+
"div",
|
|
2245
2260
|
{
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2261
|
+
onClick: onAvatarTap,
|
|
2262
|
+
className: `w-22 h-22 rounded-full bg-white p-1 mb-4 flex items-center justify-center ${onAvatarTap ? "cursor-pointer group" : ""}`
|
|
2263
|
+
},
|
|
2264
|
+
/* @__PURE__ */ React20.createElement("div", { className: "relative w-full h-full rounded-full overflow-hidden bg-neutral-100 flex items-center justify-center" }, avatarSrc ? /* @__PURE__ */ React20.createElement(React20.Fragment, null, !isAvatarLoaded && /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-100" }, /* @__PURE__ */ React20.createElement(HugeiconsIcon14, { icon: Loading03Icon9, size: 24, className: "animate-spin text-black" })), /* @__PURE__ */ React20.createElement(
|
|
2265
|
+
"img",
|
|
2266
|
+
{
|
|
2267
|
+
src: avatarSrc,
|
|
2268
|
+
alt: "User Avatar",
|
|
2269
|
+
onLoad: () => setIsAvatarLoaded(true),
|
|
2270
|
+
className: `w-full h-full object-cover transition-opacity duration-300 ${isAvatarLoaded ? "opacity-100" : "opacity-0"}`
|
|
2271
|
+
}
|
|
2272
|
+
)) : /* @__PURE__ */ React20.createElement(HugeiconsIcon14, { icon: UserIcon, size: 40, className: "text-neutral-300" }), onAvatarTap && /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-black/30 backdrop-blur-[1px] flex items-center justify-center opacity-80 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity duration-200 z-20" }, /* @__PURE__ */ React20.createElement(HugeiconsIcon14, { icon: Camera01Icon, size: 24, className: "text-white" })))
|
|
2273
|
+
), /* @__PURE__ */ React20.createElement("div", { className: "bg-white rounded-full px-4 py-2 flex items-center justify-center gap-2 mb-3" }, /* @__PURE__ */ React20.createElement("span", { className: "text-[12px] text-black" }, roleName), /* @__PURE__ */ React20.createElement("span", { className: getBadgeColorClass(roleName), "aria-hidden": true }, /* @__PURE__ */ React20.createElement("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React20.createElement("g", { id: "SVGRepo_bgCarrier", strokeWidth: "0" }), /* @__PURE__ */ React20.createElement("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ React20.createElement("g", { id: "SVGRepo_iconCarrier" }, " ", /* @__PURE__ */ React20.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.5924 3.20027C9.34888 3.4078 9.22711 3.51158 9.09706 3.59874C8.79896 3.79854 8.46417 3.93721 8.1121 4.00672C7.95851 4.03705 7.79903 4.04977 7.48008 4.07522C6.6787 4.13918 6.278 4.17115 5.94371 4.28923C5.17051 4.56233 4.56233 5.17051 4.28923 5.94371C4.17115 6.278 4.13918 6.6787 4.07522 7.48008C4.04977 7.79903 4.03705 7.95851 4.00672 8.1121C3.93721 8.46417 3.79854 8.79896 3.59874 9.09706C3.51158 9.22711 3.40781 9.34887 3.20027 9.5924C2.67883 10.2043 2.4181 10.5102 2.26522 10.8301C1.91159 11.57 1.91159 12.43 2.26522 13.1699C2.41811 13.4898 2.67883 13.7957 3.20027 14.4076C3.40778 14.6511 3.51158 14.7729 3.59874 14.9029C3.79854 15.201 3.93721 15.5358 4.00672 15.8879C4.03705 16.0415 4.04977 16.201 4.07522 16.5199C4.13918 17.3213 4.17115 17.722 4.28923 18.0563C4.56233 18.8295 5.17051 19.4377 5.94371 19.7108C6.278 19.8288 6.6787 19.8608 7.48008 19.9248C7.79903 19.9502 7.95851 19.963 8.1121 19.9933C8.46417 20.0628 8.79896 20.2015 9.09706 20.4013C9.22711 20.4884 9.34887 20.5922 9.5924 20.7997C10.2043 21.3212 10.5102 21.5819 10.8301 21.7348C11.57 22.0884 12.43 22.0884 13.1699 21.7348C13.4898 21.5819 13.7957 21.3212 14.4076 20.7997C14.6511 20.5922 14.7729 20.4884 14.9029 20.4013C15.201 20.2015 15.5358 20.0628 15.8879 19.9933C16.0415 19.963 16.201 19.9502 16.5199 19.9248C17.3213 19.8608 17.722 19.8288 18.0563 19.7108C18.8295 19.4377 19.4377 18.8295 19.7108 18.0563C19.8288 17.722 19.8608 17.3213 19.9248 16.5199C19.9502 16.201 19.963 16.0415 19.9933 15.8879C20.0628 15.5358 20.2015 15.201 20.4013 14.9029C20.4884 14.7729 20.5922 14.6511 20.7997 14.4076C21.3212 13.7957 21.5819 13.4898 21.7348 13.1699C22.0884 12.43 22.0884 11.57 21.7348 10.8301C21.5819 10.5102 21.3212 10.2043 20.7997 9.5924C20.5922 9.34887 20.4884 9.22711 20.4013 9.09706C20.2015 8.79896 20.0628 8.46417 19.9933 8.1121C19.963 7.95851 19.9502 7.79903 19.9248 7.48008C19.8608 6.6787 19.8288 6.278 19.7108 5.94371C19.4377 5.17051 18.8295 4.56233 18.0563 4.28923C17.722 4.17115 17.3213 4.13918 16.5199 4.07522C16.201 4.04977 16.0415 4.03705 15.8879 4.00672C15.5358 3.93721 15.201 3.79854 14.9029 3.59874C14.7729 3.51158 14.6511 3.40781 14.4076 3.20027C13.7957 2.67883 13.4898 2.41811 13.1699 2.26522C12.43 1.91159 11.57 1.91159 10.8301 2.26522C10.5102 2.4181 10.2043 2.67883 9.5924 3.20027ZM16.3735 9.86314C16.6913 9.5453 16.6913 9.03 16.3735 8.71216C16.0557 8.39433 15.5403 8.39433 15.2225 8.71216L10.3723 13.5624L8.77746 11.9676C8.45963 11.6498 7.94432 11.6498 7.62649 11.9676C7.30866 12.2854 7.30866 12.8007 7.62649 13.1186L9.79678 15.2889C10.1146 15.6067 10.6299 15.6067 10.9478 15.2889L16.3735 9.86314Z", fill: "currentColor" }), " ")))), /* @__PURE__ */ React20.createElement("span", { className: "text-[12px] text-neutral-500" }, memberSince)), /* @__PURE__ */ React20.createElement("div", { className: "w-full flex flex-col gap-4 mt-2" }, /* @__PURE__ */ React20.createElement("div", { className: "w-full bg-white rounded-2xl overflow-hidden" }, /* @__PURE__ */ React20.createElement(
|
|
2252
2274
|
MenuRow2,
|
|
2253
2275
|
{
|
|
2254
2276
|
icon: UserIcon,
|
|
@@ -2312,7 +2334,7 @@ var UniversalProfilePage = ({
|
|
|
2312
2334
|
icon: UserRemove01Icon,
|
|
2313
2335
|
title: "Delete Account",
|
|
2314
2336
|
subtitle: "Remove account",
|
|
2315
|
-
onClick:
|
|
2337
|
+
onClick: () => setShowDeleteDialog(true),
|
|
2316
2338
|
isLast: true
|
|
2317
2339
|
}
|
|
2318
2340
|
))), /* @__PURE__ */ React20.createElement(
|
|
@@ -2327,6 +2349,18 @@ var UniversalProfilePage = ({
|
|
|
2327
2349
|
onClose: () => setShowLogoutDialog(false),
|
|
2328
2350
|
onConfirm: handleConfirmLogout
|
|
2329
2351
|
}
|
|
2352
|
+
), /* @__PURE__ */ React20.createElement(
|
|
2353
|
+
ConfirmationDialog,
|
|
2354
|
+
{
|
|
2355
|
+
isOpen: showDeleteDialog,
|
|
2356
|
+
title: "Delete Account",
|
|
2357
|
+
message: "Are you sure you want to delete your account? This action is permanent and cannot be undone.",
|
|
2358
|
+
confirmText: "Delete Account",
|
|
2359
|
+
isDestructive: true,
|
|
2360
|
+
isProcessing: isDeleting,
|
|
2361
|
+
onClose: () => setShowDeleteDialog(false),
|
|
2362
|
+
onConfirm: handleConfirmDelete
|
|
2363
|
+
}
|
|
2330
2364
|
));
|
|
2331
2365
|
};
|
|
2332
2366
|
var MenuRow2 = ({ icon, title, subtitle, onClick, iconColor = "text-black", titleColor = "text-black", isLast = false }) => /* @__PURE__ */ React20.createElement(
|
|
@@ -2335,8 +2369,8 @@ var MenuRow2 = ({ icon, title, subtitle, onClick, iconColor = "text-black", titl
|
|
|
2335
2369
|
onClick,
|
|
2336
2370
|
className: `flex items-center p-4 cursor-pointer hover:bg-neutral-50 transition-colors ${!isLast ? "" : ""}`
|
|
2337
2371
|
},
|
|
2338
|
-
/* @__PURE__ */ React20.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-
|
|
2339
|
-
/* @__PURE__ */ React20.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20.createElement("p", { className: `text-[13px]
|
|
2372
|
+
/* @__PURE__ */ React20.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-100 flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ React20.createElement(HugeiconsIcon14, { icon, size: 16, className: iconColor })),
|
|
2373
|
+
/* @__PURE__ */ React20.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20.createElement("p", { className: `text-[13px] truncate ${titleColor}` }, title), /* @__PURE__ */ React20.createElement("p", { className: "text-[11px] text-neutral-500 truncate" }, subtitle)),
|
|
2340
2374
|
/* @__PURE__ */ React20.createElement(HugeiconsIcon14, { icon: ArrowRight01Icon4, size: 18, className: "text-neutral-400 shrink-0 ml-2" })
|
|
2341
2375
|
);
|
|
2342
2376
|
|
|
@@ -2659,8 +2693,8 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2659
2693
|
const getBgStyle = () => {
|
|
2660
2694
|
if (isWhite) return "bg-white";
|
|
2661
2695
|
if (isBlack) return "bg-black";
|
|
2662
|
-
if (isNeutral) return "bg-neutral-
|
|
2663
|
-
return "bg-neutral-
|
|
2696
|
+
if (isNeutral) return "bg-neutral-100";
|
|
2697
|
+
return "bg-neutral-100";
|
|
2664
2698
|
};
|
|
2665
2699
|
const getShadowStyle = () => {
|
|
2666
2700
|
if (isBlack) return `
|
|
@@ -2904,7 +2938,7 @@ var UniversalSecurityPage = ({
|
|
|
2904
2938
|
toggleLoading: isPasskeyLoading,
|
|
2905
2939
|
isLast: true
|
|
2906
2940
|
}
|
|
2907
|
-
))), show2FASetupModal && /* @__PURE__ */ React25.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React25.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isSubmitting && setShow2FASetupModal(false) }), /* @__PURE__ */ React25.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React25.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React25.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Enable 2FA"), /* @__PURE__ */ React25.createElement("button", { onClick: () => !isSubmitting && setShow2FASetupModal(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React25.createElement(HugeiconsIcon17, { icon: CancelCircleIcon5, size: 18 }))), /* @__PURE__ */ React25.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ React25.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, twoFaQr ? /* @__PURE__ */ React25.createElement("img", { src: twoFaQr, alt: "2FA QR Code", className: "w-40 h-40 object-contain rounded-xl border border-neutral-
|
|
2941
|
+
))), show2FASetupModal && /* @__PURE__ */ React25.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React25.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isSubmitting && setShow2FASetupModal(false) }), /* @__PURE__ */ React25.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React25.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React25.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Enable 2FA"), /* @__PURE__ */ React25.createElement("button", { onClick: () => !isSubmitting && setShow2FASetupModal(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React25.createElement(HugeiconsIcon17, { icon: CancelCircleIcon5, size: 18 }))), /* @__PURE__ */ React25.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ React25.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, twoFaQr ? /* @__PURE__ */ React25.createElement("img", { src: twoFaQr, alt: "2FA QR Code", className: "w-40 h-40 object-contain rounded-xl border border-neutral-100 p-2" }) : /* @__PURE__ */ React25.createElement("div", { className: "w-40 h-40 bg-neutral-100 rounded-xl flex items-center justify-center animate-pulse" })), /* @__PURE__ */ React25.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-8" }, /* @__PURE__ */ React25.createElement("div", null, /* @__PURE__ */ React25.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2 " }, "Setup Key"), /* @__PURE__ */ React25.createElement("div", { className: "flex items-center gap-2 min-w-0 bg-neutral-50 px-3 py-2.5 rounded-xl " }, /* @__PURE__ */ React25.createElement("span", { className: "text-[13px] font-mono tracking-widest text-black truncate min-w-0 block flex-1" }, twoFaSecret), /* @__PURE__ */ React25.createElement(
|
|
2908
2942
|
"button",
|
|
2909
2943
|
{
|
|
2910
2944
|
type: "button",
|
|
@@ -2932,7 +2966,7 @@ var UniversalSecurityPage = ({
|
|
|
2932
2966
|
inputRefs.current[index - 1]?.focus();
|
|
2933
2967
|
}
|
|
2934
2968
|
},
|
|
2935
|
-
className: "w-8 h-12 text-center text-lg bg-transparent border-b-2 border-neutral-
|
|
2969
|
+
className: "w-8 h-12 text-center text-lg bg-transparent border-b-2 border-neutral-100 text-black outline-none focus:border-black transition-all duration-300"
|
|
2936
2970
|
}
|
|
2937
2971
|
))), /* @__PURE__ */ React25.createElement(
|
|
2938
2972
|
ThreeDActionButton,
|
|
@@ -2948,7 +2982,7 @@ var UniversalSecurityPage = ({
|
|
|
2948
2982
|
{
|
|
2949
2983
|
type: "button",
|
|
2950
2984
|
onClick: () => handleCopySecret(twoFaSecret),
|
|
2951
|
-
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-
|
|
2985
|
+
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-100 text-black hover:bg-neutral-50 outline-none text-xs tracking-wide transition-colors mt-2"
|
|
2952
2986
|
},
|
|
2953
2987
|
/* @__PURE__ */ React25.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16, className: "mr-2" }),
|
|
2954
2988
|
"Copy Secret Key"
|
|
@@ -2972,7 +3006,7 @@ var UniversalSecurityPage = ({
|
|
|
2972
3006
|
inputRefs.current[index - 1]?.focus();
|
|
2973
3007
|
}
|
|
2974
3008
|
},
|
|
2975
|
-
className: "w-10 h-12 text-center text-lg bg-transparent border-b-2 border-neutral-
|
|
3009
|
+
className: "w-10 h-12 text-center text-lg bg-transparent border-b-2 border-neutral-100 text-black outline-none focus:border-black transition-all duration-300"
|
|
2976
3010
|
}
|
|
2977
3011
|
))), /* @__PURE__ */ React25.createElement(
|
|
2978
3012
|
ThreeDActionButton,
|
|
@@ -3011,9 +3045,9 @@ var MenuRow3 = ({
|
|
|
3011
3045
|
onClick: disabled ? void 0 : onClick,
|
|
3012
3046
|
className: `flex items-center p-4 transition-colors ${!isLast ? "" : ""} ${disabled ? "opacity-40 cursor-not-allowed" : "cursor-pointer hover:bg-neutral-50"}`
|
|
3013
3047
|
},
|
|
3014
|
-
/* @__PURE__ */ React25.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-
|
|
3048
|
+
/* @__PURE__ */ React25.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-100 flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ React25.createElement(HugeiconsIcon17, { icon, size: 16, className: iconColor })),
|
|
3015
3049
|
/* @__PURE__ */ React25.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React25.createElement("p", { className: `text-[14px] truncate ${titleColor}` }, title), /* @__PURE__ */ React25.createElement("p", { className: "text-[12px] text-neutral-500 truncate" }, subtitle)),
|
|
3016
|
-
isToggle ? /* @__PURE__ */ React25.createElement("div", { className: `relative w-11 h-6 rounded-full transition-colors duration-300 ml-2 shrink-0 ${toggleState ? "bg-black" : "bg-neutral-
|
|
3050
|
+
isToggle ? /* @__PURE__ */ React25.createElement("div", { className: `relative w-11 h-6 rounded-full transition-colors duration-300 ml-2 shrink-0 ${toggleState ? "bg-black" : "bg-neutral-100"} ${disabled ? "opacity-50" : ""}` }, /* @__PURE__ */ React25.createElement("div", { className: `absolute top-1 left-1 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300 flex items-center justify-center ${toggleState ? "translate-x-5" : "translate-x-0"}` }, toggleLoading && /* @__PURE__ */ React25.createElement(HugeiconsIcon17, { icon: Loading03Icon10, size: 10, className: "animate-spin text-black" }))) : /* @__PURE__ */ React25.createElement(HugeiconsIcon17, { icon: ArrowRight01Icon5, size: 18, className: "text-neutral-400 shrink-0 ml-2" })
|
|
3017
3051
|
);
|
|
3018
3052
|
|
|
3019
3053
|
// src/components/FeatureScroll.tsx
|
|
@@ -3092,7 +3126,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
3092
3126
|
{
|
|
3093
3127
|
onClick: () => scroll("left"),
|
|
3094
3128
|
disabled: !canScrollLeft,
|
|
3095
|
-
className: "p-4 border border-neutral-
|
|
3129
|
+
className: "p-4 border border-neutral-100 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-100 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none"
|
|
3096
3130
|
},
|
|
3097
3131
|
/* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowLeft01Icon7, size: 20 })
|
|
3098
3132
|
), /* @__PURE__ */ React26.createElement(
|
|
@@ -3100,7 +3134,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
3100
3134
|
{
|
|
3101
3135
|
onClick: () => scroll("right"),
|
|
3102
3136
|
disabled: !canScrollRight,
|
|
3103
|
-
className: "p-4 border border-neutral-
|
|
3137
|
+
className: "p-4 border border-neutral-100 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-100 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none"
|
|
3104
3138
|
},
|
|
3105
3139
|
/* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowRight01Icon6, size: 20 })
|
|
3106
3140
|
))), /* @__PURE__ */ React26.createElement(
|
|
@@ -3116,7 +3150,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
3116
3150
|
{
|
|
3117
3151
|
onClick: () => scroll("left"),
|
|
3118
3152
|
disabled: !canScrollLeft,
|
|
3119
|
-
className: "p-4 border border-neutral-
|
|
3153
|
+
className: "p-4 border border-neutral-100 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
|
|
3120
3154
|
},
|
|
3121
3155
|
/* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowLeft01Icon7, size: 20 })
|
|
3122
3156
|
), /* @__PURE__ */ React26.createElement(
|
|
@@ -3124,7 +3158,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
3124
3158
|
{
|
|
3125
3159
|
onClick: () => scroll("right"),
|
|
3126
3160
|
disabled: !canScrollRight,
|
|
3127
|
-
className: "p-4 border border-neutral-
|
|
3161
|
+
className: "p-4 border border-neutral-100 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
|
|
3128
3162
|
},
|
|
3129
3163
|
/* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowRight01Icon6, size: 20 })
|
|
3130
3164
|
))));
|
|
@@ -3146,7 +3180,7 @@ var PlatformFeatures = ({
|
|
|
3146
3180
|
className: "flex flex-col group animate-in fade-in slide-in-from-bottom-4 duration-700 fill-mode-both",
|
|
3147
3181
|
style: { animationDelay: feature.delay || "0ms" }
|
|
3148
3182
|
},
|
|
3149
|
-
/* @__PURE__ */ React27.createElement("div", { className: "flex flex-row items-center gap-4 mb-4" }, /* @__PURE__ */ React27.createElement("div", { className: "w-14 h-14 shrink-0 rounded-xl border border-neutral-
|
|
3183
|
+
/* @__PURE__ */ React27.createElement("div", { className: "flex flex-row items-center gap-4 mb-4" }, /* @__PURE__ */ React27.createElement("div", { className: "w-14 h-14 shrink-0 rounded-xl border border-neutral-100 flex items-center justify-center text-neutral-600 transition-colors duration-300" }, /* @__PURE__ */ React27.createElement(HugeiconsIcon19, { icon: feature.icon, size: 24 })), /* @__PURE__ */ React27.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ React27.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400 mb-0.5" }, feature.label || "CAPABILITY"), /* @__PURE__ */ React27.createElement("h3", { className: "text-xl tracking-tight text-black" }, feature.title))),
|
|
3150
3184
|
/* @__PURE__ */ React27.createElement("div", null, /* @__PURE__ */ React27.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 pr-4" }, feature.desc))
|
|
3151
3185
|
)))));
|
|
3152
3186
|
};
|
|
@@ -3190,7 +3224,7 @@ var ManagedDocument = ({
|
|
|
3190
3224
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
3191
3225
|
},
|
|
3192
3226
|
title
|
|
3193
|
-
)), sections.map((section, index) => /* @__PURE__ */ React28.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ React28.createElement("p", { className: " text-[11px] tracking-[0.2em] text-black mb-4 text-left " }, section.heading), section.paragraphs && section.paragraphs.length > 0 && /* @__PURE__ */ React28.createElement("div", { className: "text-[14px] leading-[1.8] text-neutral-700 space-y-4 text-left " }, section.paragraphs.map((text, pIndex) => /* @__PURE__ */ React28.createElement("p", { key: pIndex }, text))), section.quote && /* @__PURE__ */ React28.createElement("div", { className: `border-neutral-
|
|
3227
|
+
)), sections.map((section, index) => /* @__PURE__ */ React28.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ React28.createElement("p", { className: " text-[11px] tracking-[0.2em] text-black mb-4 text-left " }, section.heading), section.paragraphs && section.paragraphs.length > 0 && /* @__PURE__ */ React28.createElement("div", { className: "text-[14px] leading-[1.8] text-neutral-700 space-y-4 text-left " }, section.paragraphs.map((text, pIndex) => /* @__PURE__ */ React28.createElement("p", { key: pIndex }, text))), section.quote && /* @__PURE__ */ React28.createElement("div", { className: `border-neutral-100 border rounded-xl p-6 ${section.paragraphs && section.paragraphs.length > 0 ? "mt-6" : ""}` }, /* @__PURE__ */ React28.createElement("p", { className: "text-neutral-900 text-[14px] md:text-[14px] leading-relaxed" }, '"', section.quote, '"')))), (contactText || contactEmail) && /* @__PURE__ */ React28.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ React28.createElement("p", { className: "text-[11px] text-neutral-600 text-left" }, contactText, contactEmail && /* @__PURE__ */ React28.createElement(
|
|
3194
3228
|
"a",
|
|
3195
3229
|
{
|
|
3196
3230
|
href: `mailto:${contactEmail}`,
|
|
@@ -3340,7 +3374,7 @@ var ManagedPricingBlock = ({
|
|
|
3340
3374
|
Link7,
|
|
3341
3375
|
{
|
|
3342
3376
|
href: plan.ctaHref,
|
|
3343
|
-
className: "w-full py-2.5 px-5 rounded-full border border-neutral-
|
|
3377
|
+
className: "w-full py-2.5 px-5 rounded-full border border-neutral-100 text-center text-black text-xs hover:bg-neutral-50 transition-colors mb-6 outline-none block"
|
|
3344
3378
|
},
|
|
3345
3379
|
plan.ctaText
|
|
3346
3380
|
),
|
|
@@ -3478,7 +3512,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
3478
3512
|
backgroundRepeat: "repeat"
|
|
3479
3513
|
}
|
|
3480
3514
|
}
|
|
3481
|
-
), /* @__PURE__ */ React33.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React33.createElement("div", { className: "mb-10 border-b border-neutral-
|
|
3515
|
+
), /* @__PURE__ */ React33.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React33.createElement("div", { className: "mb-10 border-b border-neutral-100 pb-8 text-center md:text-left" }, tagline && /* @__PURE__ */ React33.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 " }, tagline), /* @__PURE__ */ React33.createElement("h1", { className: " text-3xl mt-4 text-black tracking-tight mb-4" }, title), subtitle && /* @__PURE__ */ React33.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500 " }, subtitle)), /* @__PURE__ */ React33.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 mb-10 text-center md:text-left" }, description), children && /* @__PURE__ */ React33.createElement("div", { className: "mb-8 text-left" }, children), /* @__PURE__ */ React33.createElement("div", { className: "text-center md:text-left mt-10 space-y-6" }, dividerText && /* @__PURE__ */ React33.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React33.createElement("div", { className: "grow h-px bg-neutral-100" }), /* @__PURE__ */ React33.createElement("span", { className: "shrink mx-4 text-[11px] tracking-[0.2em] text-neutral-400 " }, dividerText), /* @__PURE__ */ React33.createElement("div", { className: "grow h-px bg-neutral-100" })), ctaText && ctaHref && /* @__PURE__ */ React33.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ React33.createElement(
|
|
3482
3516
|
ThreeDButton,
|
|
3483
3517
|
{
|
|
3484
3518
|
href: ctaHref,
|
|
@@ -3538,7 +3572,7 @@ var PortfolioHero = ({
|
|
|
3538
3572
|
ref: heroContentRef,
|
|
3539
3573
|
className: "w-full opacity-0 translate-y-5 transition-all duration-1000 ease-out relative z-10"
|
|
3540
3574
|
},
|
|
3541
|
-
/* @__PURE__ */ React34.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ React34.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden border border-neutral-
|
|
3575
|
+
/* @__PURE__ */ React34.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ React34.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden border border-neutral-100 shrink-0 shadow-sm" }, /* @__PURE__ */ React34.createElement(
|
|
3542
3576
|
Image8,
|
|
3543
3577
|
{
|
|
3544
3578
|
src: imageSrc,
|
|
@@ -3571,7 +3605,7 @@ var PortfolioHero = ({
|
|
|
3571
3605
|
Link8,
|
|
3572
3606
|
{
|
|
3573
3607
|
href: secondaryCtaHref,
|
|
3574
|
-
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-[11px] tracking-[0.2em] rounded-full px-8 py-3.5 bg-neutral-
|
|
3608
|
+
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-[11px] tracking-[0.2em] rounded-full px-8 py-3.5 bg-neutral-100 transition-colors text-black hover:bg-neutral-100 outline-none"
|
|
3575
3609
|
},
|
|
3576
3610
|
secondaryCtaText,
|
|
3577
3611
|
/* @__PURE__ */ React34.createElement(HugeiconsIcon22, { icon: ArrowRight01Icon7, size: 16 })
|
|
@@ -3780,7 +3814,7 @@ var ContentGridBlock = ({
|
|
|
3780
3814
|
middleBottomCard,
|
|
3781
3815
|
rightCards
|
|
3782
3816
|
}) => {
|
|
3783
|
-
return /* @__PURE__ */ React38.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React38.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React38.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React38.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React38.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React38.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React38.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React38.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React38.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React38.createElement("span", { className: "mb-auto text-[11px] text-neutral-
|
|
3817
|
+
return /* @__PURE__ */ React38.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React38.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React38.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React38.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React38.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React38.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React38.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React38.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React38.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React38.createElement("span", { className: "mb-auto text-[11px] text-neutral-100 tracking-widest" }, leftCard.tag), /* @__PURE__ */ React38.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ React38.createElement("div", null, /* @__PURE__ */ React38.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ React38.createElement("p", { className: "text-[13px] text-neutral-300" }, leftCard.subtitle)), /* @__PURE__ */ React38.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React38.createElement(Image12, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ React38.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React38.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ React38.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ React38.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ React38.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React38.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ React38.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ React38.createElement(Image12, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ React38.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ React38.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ React38.createElement("div", { className: "px-5 py-2 rounded-full bg-neutral-50/50 border border-neutral-100 text-[13px] text-neutral-600" }, middleTopCard.badgePrefix, " ", /* @__PURE__ */ React38.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ React38.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React38.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ React38.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ React38.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React38.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ React38.createElement("div", null, /* @__PURE__ */ React38.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ React38.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ React38.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React38.createElement(Image12, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ React38.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React38.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ React38.createElement("span", { className: "text-[11px] text-neutral-400 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ React38.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => {
|
|
3784
3818
|
const isSecondCard = idx === 1;
|
|
3785
3819
|
return /* @__PURE__ */ React38.createElement(
|
|
3786
3820
|
"div",
|
|
@@ -3887,7 +3921,7 @@ var VerificationRow = ({
|
|
|
3887
3921
|
onClick: isDisabled ? void 0 : onClick,
|
|
3888
3922
|
className: `flex items-center p-4 transition-colors ${!isLast ? "" : ""} ${isDisabled ? "opacity-70 cursor-default" : "cursor-pointer hover:bg-neutral-50"}`
|
|
3889
3923
|
},
|
|
3890
|
-
/* @__PURE__ */ React40.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-
|
|
3924
|
+
/* @__PURE__ */ React40.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-100 bg-white flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon, size: 16, className: "text-black" })),
|
|
3891
3925
|
/* @__PURE__ */ React40.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React40.createElement("p", { className: "text-[14px] truncate text-black" }, title), /* @__PURE__ */ React40.createElement("p", { className: `text-[10px] inline-flex items-center ${bg} rounded-full px-2 py-1 ${statusColor} mt-0.5` }, statusText)),
|
|
3892
3926
|
/* @__PURE__ */ React40.createElement("div", { className: "shrink-0 ml-2" }, isLoading ? /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: Loading03Icon15, size: 20, className: "animate-spin text-black" }) : /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: StatusIcon, size: 20, className: iconColor }))
|
|
3893
3927
|
);
|
|
@@ -4012,7 +4046,7 @@ var UniversalRewardPage = ({
|
|
|
4012
4046
|
setIsClaiming(false);
|
|
4013
4047
|
}
|
|
4014
4048
|
};
|
|
4015
|
-
return /* @__PURE__ */ React41.createElement("div", null, /* @__PURE__ */ React41.createElement("div", { className: "mb-6 flex max-w-3xl w-full mx-auto items-center px-1" }, /* @__PURE__ */ React41.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-neutral-500 hover:text-black transition-colors text-[13px] outline-none" }, /* @__PURE__ */ React41.createElement(HugeiconsIcon27, { icon: ArrowLeft01Icon9, size: 16 }), " Back")), /* @__PURE__ */ React41.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React41.createElement(ManagedToaster, null), showConfetti && /* @__PURE__ */ React41.createElement("div", { className: "fixed inset-0 z-200 pointer-events-none" }, /* @__PURE__ */ React41.createElement(Confetti, { width, height, recycle: false, numberOfPieces: 500, gravity: 0.15 })), isLoading ? /* @__PURE__ */ React41.createElement(PageSpinner4, null) : /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("div", { className: "w-full p-4 pt-10 mb-6 flex items-end justify-center gap-2 sm:gap-6 h-64 relative overflow-hidden" }, /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, secondPlace ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("span", { className: "text-black text-[10px] mb-2 truncate max-w-full px-1" }, formatWeb3Name(secondPlace.profile.web3Name)), /* @__PURE__ */ React41.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React41.createElement(AvatarLogo, { src: secondPlace.profile.avatarUrl, alt: secondPlace.profile.username, name: formatWeb3Name(secondPlace.profile.web3Name), sizeClass: "w-14 h-14" }), /* @__PURE__ */ React41.createElement("div", { className: "absolute -bottom-2 right-0 w-5 h-5 rounded-full bg-[#ceff8a] text-black flex items-center justify-center text-[10px] border border-white " }, "2")), /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-[#ceff8a] rounded-t-xl h-24 flex items-center justify-center" }, /* @__PURE__ */ React41.createElement("span", { className: "text-neutral-800/30 text-2xl " }, "2nd"))) : /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-neutral-
|
|
4049
|
+
return /* @__PURE__ */ React41.createElement("div", null, /* @__PURE__ */ React41.createElement("div", { className: "mb-6 flex max-w-3xl w-full mx-auto items-center px-1" }, /* @__PURE__ */ React41.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-neutral-500 hover:text-black transition-colors text-[13px] outline-none" }, /* @__PURE__ */ React41.createElement(HugeiconsIcon27, { icon: ArrowLeft01Icon9, size: 16 }), " Back")), /* @__PURE__ */ React41.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React41.createElement(ManagedToaster, null), showConfetti && /* @__PURE__ */ React41.createElement("div", { className: "fixed inset-0 z-200 pointer-events-none" }, /* @__PURE__ */ React41.createElement(Confetti, { width, height, recycle: false, numberOfPieces: 500, gravity: 0.15 })), isLoading ? /* @__PURE__ */ React41.createElement(PageSpinner4, null) : /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("div", { className: "w-full p-4 pt-10 mb-6 flex items-end justify-center gap-2 sm:gap-6 h-64 relative overflow-hidden" }, /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, secondPlace ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("span", { className: "text-black text-[10px] mb-2 truncate max-w-full px-1" }, formatWeb3Name(secondPlace.profile.web3Name)), /* @__PURE__ */ React41.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React41.createElement(AvatarLogo, { src: secondPlace.profile.avatarUrl, alt: secondPlace.profile.username, name: formatWeb3Name(secondPlace.profile.web3Name), sizeClass: "w-14 h-14" }), /* @__PURE__ */ React41.createElement("div", { className: "absolute -bottom-2 right-0 w-5 h-5 rounded-full bg-[#ceff8a] text-black flex items-center justify-center text-[10px] border border-white " }, "2")), /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-[#ceff8a] rounded-t-xl h-24 flex items-center justify-center" }, /* @__PURE__ */ React41.createElement("span", { className: "text-neutral-800/30 text-2xl " }, "2nd"))) : /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-neutral-100 rounded-t-xl h-24 mt-auto" })), /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col items-center w-1/3 z-20 -mt-8" }, firstPlace ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("span", { className: "text-black text-[10px] mb-2 truncate max-w-full px-1" }, formatWeb3Name(firstPlace.profile.web3Name)), /* @__PURE__ */ React41.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React41.createElement(AvatarLogo, { src: firstPlace.profile.avatarUrl, alt: firstPlace.profile.username, name: formatWeb3Name(firstPlace.profile.web3Name), sizeClass: "w-17 h-17" }), /* @__PURE__ */ React41.createElement("div", { className: "absolute -bottom-2 right-2 w-5 h-5 rounded-full bg-[#143731] text-white flex items-center justify-center text-[10px] border border-white " }, "1")), /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-[#143731] rounded-t-xl h-32 flex items-center justify-center " }, /* @__PURE__ */ React41.createElement("span", { className: "text-white/40 text-3xl tracking-widest" }, "1st"))) : /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-neutral-100 rounded-t-xl h-32 mt-auto" })), /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, thirdPlace ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("span", { className: "text-black text-[10px] mb-2 truncate max-w-full px-1" }, formatWeb3Name(thirdPlace.profile.web3Name)), /* @__PURE__ */ React41.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React41.createElement(AvatarLogo, { src: thirdPlace.profile.avatarUrl, alt: thirdPlace.profile.username, name: formatWeb3Name(thirdPlace.profile.web3Name), sizeClass: "w-12 h-12" }), /* @__PURE__ */ React41.createElement("div", { className: "absolute -bottom-2 right-0 w-5 h-5 rounded-full bg-[#ceff8a] text-black flex items-center justify-center text-[10px] border border-white " }, "3")), /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-[#ceff8a] rounded-t-xl h-20 flex items-center justify-center" }, /* @__PURE__ */ React41.createElement("span", { className: "text-neutral-800/30 text-xl " }, "3rd"))) : /* @__PURE__ */ React41.createElement("div", { className: "w-full bg-linear-to-t from-neutral-100 to-neutral-100 rounded-t-xl h-20 mt-auto" }))), /* @__PURE__ */ React41.createElement("div", { className: "flex items-center justify-center mb-6 sm:mb-8 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ React41.createElement("div", { className: "flex items-center bg-white rounded-full p-1 sm:p-1.5 max-w-full overflow-x-auto custom-scrollbar " }, tabs.map((tab, idx) => {
|
|
4016
4050
|
const isActive = activeTabIndex === idx;
|
|
4017
4051
|
return /* @__PURE__ */ React41.createElement(
|
|
4018
4052
|
"button",
|
|
@@ -4032,10 +4066,10 @@ var UniversalRewardPage = ({
|
|
|
4032
4066
|
onClick: () => setSelectedReward(reward),
|
|
4033
4067
|
className: "flex items-center justify-between py-4 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
4034
4068
|
},
|
|
4035
|
-
/* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React41.createElement("div", { className: "w-10 h-10 shrink-0 rounded-full flex items-center justify-center border border-neutral-
|
|
4069
|
+
/* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React41.createElement("div", { className: "w-10 h-10 shrink-0 rounded-full flex items-center justify-center border border-neutral-100 text-black" }, /* @__PURE__ */ React41.createElement(HugeiconsIcon27, { icon: GiftIcon, size: 16 })), /* @__PURE__ */ React41.createElement("div", { className: "min-w-0 flex-1 flex flex-col items-start gap-0.5 pr-4" }, /* @__PURE__ */ React41.createElement("p", { className: "text-[13px] text-black truncate w-full" }, reward.title), /* @__PURE__ */ React41.createElement("p", { className: `text-[10px] inline-flex items-center bg-neutral-50 rounded-full px-2 py-1 text-neutral-500 mt-0.5` }, statusText))),
|
|
4036
4070
|
/* @__PURE__ */ React41.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1" }, /* @__PURE__ */ React41.createElement("span", { className: "text-[13px] text-black" }, reward.amount))
|
|
4037
4071
|
);
|
|
4038
|
-
}))), remainingLeaderboard.length > 0 && /* @__PURE__ */ React41.createElement("div", { className: "bg-white rounded-2xl p-6 " }, /* @__PURE__ */ React41.createElement("h2", { className: "text-black text-lg mb-4 tracking-tight" }, "Leaderboard"), /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col" }, remainingLeaderboard.map((lb) => /* @__PURE__ */ React41.createElement("div", { key: lb.profile.username, className: "flex items-center justify-between py-3 min-w-0" }, /* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React41.createElement("div", { className: "text-[12px] text-neutral-400 w-4" }, lb.position), /* @__PURE__ */ React41.createElement(AvatarLogo, { src: lb.profile.avatarUrl, alt: lb.profile.username, name: formatWeb3Name(lb.profile.web3Name), sizeClass: "w-9 h-9" }), /* @__PURE__ */ React41.createElement("div", { className: "min-w-0 flex-1 flex flex-col" }, /* @__PURE__ */ React41.createElement("p", { className: "text-[13px] text-black truncate" }, formatWeb3Name(lb.profile.web3Name)), /* @__PURE__ */ React41.createElement("p", { className: "text-[11px] text-neutral-400 truncate" }, "@", lb.profile.username))), /* @__PURE__ */ React41.createElement("div", { className: "shrink-0 text-[13px] text-black" }, lb.amount))))))), selectedReward && /* @__PURE__ */ React41.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React41.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isClaiming && setSelectedReward(null) }), /* @__PURE__ */ React41.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-3xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React41.createElement("div", { className: "flex-1 p-6 flex flex-col items-center text-center mt-2" }, /* @__PURE__ */ React41.createElement("h2", { className: "text-xl text-black mb-2" }, selectedReward.title), /* @__PURE__ */ React41.createElement("p", { className: "text-[13px] text-neutral-500 mb-6 leading-relaxed" }, selectedReward.description), selectedReward.progressText && /* @__PURE__ */ React41.createElement("div", { className: "w-full mb-6" }, /* @__PURE__ */ React41.createElement("div", { className: `px-4 py-2 rounded-full text-[11px] tracking-wide ${selectedReward.status === "CLAIMED" ? "bg-green-50 text-green-600" : selectedReward.isEligible ? "bg-blue-50 text-blue-600" : "bg-neutral-100 text-neutral-600"}` }, selectedReward.progressText)), /* @__PURE__ */ React41.createElement("div", { className: " w-full rounded-xl p-4 mb-8 flex flex-col items-center" }, /* @__PURE__ */ React41.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400
|
|
4072
|
+
}))), remainingLeaderboard.length > 0 && /* @__PURE__ */ React41.createElement("div", { className: "bg-white rounded-2xl p-6 " }, /* @__PURE__ */ React41.createElement("h2", { className: "text-black text-lg mb-4 tracking-tight" }, "Leaderboard"), /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col" }, remainingLeaderboard.map((lb) => /* @__PURE__ */ React41.createElement("div", { key: lb.profile.username, className: "flex items-center justify-between py-3 min-w-0" }, /* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React41.createElement("div", { className: "text-[12px] text-neutral-400 w-4" }, lb.position), /* @__PURE__ */ React41.createElement(AvatarLogo, { src: lb.profile.avatarUrl, alt: lb.profile.username, name: formatWeb3Name(lb.profile.web3Name), sizeClass: "w-9 h-9" }), /* @__PURE__ */ React41.createElement("div", { className: "min-w-0 flex-1 flex flex-col" }, /* @__PURE__ */ React41.createElement("p", { className: "text-[13px] text-black truncate" }, formatWeb3Name(lb.profile.web3Name)), /* @__PURE__ */ React41.createElement("p", { className: "text-[11px] text-neutral-400 truncate" }, "@", lb.profile.username))), /* @__PURE__ */ React41.createElement("div", { className: "shrink-0 text-[13px] text-black" }, lb.amount))))))), selectedReward && /* @__PURE__ */ React41.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React41.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isClaiming && setSelectedReward(null) }), /* @__PURE__ */ React41.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-3xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React41.createElement("div", { className: "flex-1 p-6 flex flex-col items-center text-center mt-2" }, /* @__PURE__ */ React41.createElement("h2", { className: "text-xl text-black mb-2" }, selectedReward.title), /* @__PURE__ */ React41.createElement("p", { className: "text-[13px] text-neutral-500 mb-6 leading-relaxed" }, selectedReward.description), selectedReward.progressText && /* @__PURE__ */ React41.createElement("div", { className: "w-full mb-6" }, /* @__PURE__ */ React41.createElement("div", { className: `px-4 py-2 rounded-full text-[11px] tracking-wide ${selectedReward.status === "CLAIMED" ? "bg-green-50 text-green-600" : selectedReward.isEligible ? "bg-blue-50 text-blue-600" : "bg-neutral-100 text-neutral-600"}` }, selectedReward.progressText)), /* @__PURE__ */ React41.createElement("div", { className: " w-full rounded-xl p-4 mb-8 flex flex-col items-center" }, /* @__PURE__ */ React41.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400 mb-1" }, "Reward Value"), /* @__PURE__ */ React41.createElement("span", { className: "text-3xl text-black " }, selectedReward.amount)), /* @__PURE__ */ React41.createElement("div", { className: "flex flex-col gap-3 w-full" }, /* @__PURE__ */ React41.createElement(
|
|
4039
4073
|
ThreeDActionButton,
|
|
4040
4074
|
{
|
|
4041
4075
|
onClick: handleClaimReward,
|
|
@@ -4049,7 +4083,7 @@ var UniversalRewardPage = ({
|
|
|
4049
4083
|
{
|
|
4050
4084
|
onClick: () => setSelectedReward(null),
|
|
4051
4085
|
disabled: isClaiming,
|
|
4052
|
-
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-
|
|
4086
|
+
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-100 text-black hover:bg-neutral-50 transition-colors outline-none text-xs tracking-wide mt-2"
|
|
4053
4087
|
},
|
|
4054
4088
|
"Cancel"
|
|
4055
4089
|
)))))));
|
|
@@ -4097,11 +4131,11 @@ var UniversalReferralPage = ({
|
|
|
4097
4131
|
};
|
|
4098
4132
|
const AvatarLogo2 = ({ src, alt, name, sizeClass = "w-10 h-10" }) => {
|
|
4099
4133
|
const [isLoaded, setIsLoaded] = useState27(false);
|
|
4100
|
-
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=
|
|
4134
|
+
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=e0e0e0&color=000000&size=200&font-size=0.33`;
|
|
4101
4135
|
const finalSrc = src || fallbackUrl;
|
|
4102
4136
|
return /* @__PURE__ */ React42.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-2 border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon17, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ React42.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
|
|
4103
4137
|
};
|
|
4104
|
-
return /* @__PURE__ */ React42.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React42.createElement(ManagedToaster, null), /* @__PURE__ */ React42.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React42.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-neutral-500 hover:text-black transition-colors text-[13px] outline-none" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowLeft01Icon10, size: 16 }), " Back")), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-3xl bg-white w-full" }, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 mb-2" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Your Referrals"), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-500" }, "Invite friends and earn rewards when they verify and activate cards.")), /* @__PURE__ */ React42.createElement("div", { className: "border border-neutral-
|
|
4138
|
+
return /* @__PURE__ */ React42.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React42.createElement(ManagedToaster, null), /* @__PURE__ */ React42.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React42.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-neutral-500 hover:text-black transition-colors text-[13px] outline-none" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowLeft01Icon10, size: 16 }), " Back")), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-3xl bg-white w-full" }, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 mb-2" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Your Referrals"), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-500" }, "Invite friends and earn rewards when they verify and activate cards.")), /* @__PURE__ */ React42.createElement("div", { className: "border border-neutral-100 rounded-xl p-4 flex items-center justify-between mt-2" }, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400 " }, "Invitation Code"), isLoading && !referralCode ? /* @__PURE__ */ React42.createElement("div", { className: "h-6 w-24 bg-neutral-50 animate-pulse rounded mt-1" }) : /* @__PURE__ */ React42.createElement("span", { className: "text-lg text-black tracking-widest" }, referralCode)), /* @__PURE__ */ React42.createElement(
|
|
4105
4139
|
"button",
|
|
4106
4140
|
{
|
|
4107
4141
|
onClick: handleCopyCode,
|
|
@@ -4129,7 +4163,7 @@ var UniversalReferralPage = ({
|
|
|
4129
4163
|
{
|
|
4130
4164
|
onClick: () => onPageChange(currentPage - 1),
|
|
4131
4165
|
disabled: currentPage <= 1 || isLoading,
|
|
4132
|
-
className: "p-2 bg-white border border-neutral-
|
|
4166
|
+
className: "p-2 bg-white border border-neutral-100 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4133
4167
|
},
|
|
4134
4168
|
/* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowLeft01Icon10, size: 14 })
|
|
4135
4169
|
), /* @__PURE__ */ React42.createElement(
|
|
@@ -4137,7 +4171,7 @@ var UniversalReferralPage = ({
|
|
|
4137
4171
|
{
|
|
4138
4172
|
onClick: () => onPageChange(currentPage + 1),
|
|
4139
4173
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4140
|
-
className: "p-2 bg-white border border-neutral-
|
|
4174
|
+
className: "p-2 bg-white border border-neutral-100 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4141
4175
|
},
|
|
4142
4176
|
/* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowRight01Icon8, size: 14 })
|
|
4143
4177
|
)))))));
|
|
@@ -4178,7 +4212,7 @@ var getTierGlow = (tier) => {
|
|
|
4178
4212
|
case "ZERO":
|
|
4179
4213
|
return "from-rose-200";
|
|
4180
4214
|
default:
|
|
4181
|
-
return "from-neutral-
|
|
4215
|
+
return "from-neutral-100";
|
|
4182
4216
|
}
|
|
4183
4217
|
};
|
|
4184
4218
|
var UniversalCardActionPage = ({
|
|
@@ -4243,7 +4277,7 @@ var UniversalCardActionPage = ({
|
|
|
4243
4277
|
},
|
|
4244
4278
|
/* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: ArrowLeft01Icon11, size: 16 }),
|
|
4245
4279
|
" Back"
|
|
4246
|
-
)), /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col animate-in max-w-5xl w-full mx-auto fade-in duration-300" }, /* @__PURE__ */ React43.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 px-4" }, /* @__PURE__ */ React43.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-400 block
|
|
4280
|
+
)), /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col animate-in max-w-5xl w-full mx-auto fade-in duration-300" }, /* @__PURE__ */ React43.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 px-4" }, /* @__PURE__ */ React43.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-400 block mb-3" }, cardType, " CARD ACTIVATION"), /* @__PURE__ */ React43.createElement("h1", { className: "text-2xl sm:text-3xl text-black tracking-tight mb-2" }, "Select Your Tier"), /* @__PURE__ */ React43.createElement("p", { className: "text-xs text-neutral-500 max-w-lg" }, hasPreordered ? "You have already secured your card. Upgrades are disabled while your order is pending processing." : "Upgrade your tier or secure your card now. Pre-orders guarantee priority processing when the batch goes live.")), isLoadingData ? /* @__PURE__ */ React43.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: Loading03Icon18, size: 32, className: "animate-spin text-neutral-300" })) : /* @__PURE__ */ React43.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-5 w-full max-w-4xl mx-auto px-4" }, availableTiers.map((tier) => {
|
|
4247
4281
|
const isCurrent = tier.tierName === currentTier;
|
|
4248
4282
|
const isCardDisabled = hasPreordered && !isCurrent;
|
|
4249
4283
|
const isHighlighted = hasPreordered && isCurrent;
|
|
@@ -4266,7 +4300,7 @@ var UniversalCardActionPage = ({
|
|
|
4266
4300
|
}
|
|
4267
4301
|
),
|
|
4268
4302
|
isThisCardLoading && /* @__PURE__ */ React43.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-white/40 backdrop-blur-[1px]" }, /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: Loading03Icon18, size: 32, className: "animate-spin text-black" })),
|
|
4269
|
-
/* @__PURE__ */ React43.createElement("div", { className: "mb-6 relative z-10" }, /* @__PURE__ */ React43.createElement("div", { className: "flex justify-between items-start mb-1" }, /* @__PURE__ */ React43.createElement("span", { className: "text-black text-sm tracking-widest " }, formatTierName(tier.tierName)), isCurrent && !hasPreordered && /* @__PURE__ */ React43.createElement("span", { className: "text-[9px] bg-neutral-100 text-neutral-600 px-2 py-1 rounded-full
|
|
4303
|
+
/* @__PURE__ */ React43.createElement("div", { className: "mb-6 relative z-10" }, /* @__PURE__ */ React43.createElement("div", { className: "flex justify-between items-start mb-1" }, /* @__PURE__ */ React43.createElement("span", { className: "text-black text-sm tracking-widest " }, formatTierName(tier.tierName)), isCurrent && !hasPreordered && /* @__PURE__ */ React43.createElement("span", { className: "text-[9px] bg-neutral-100 text-neutral-600 px-2 py-1 rounded-full tracking-wider" }, "Current")), /* @__PURE__ */ React43.createElement("div", { className: "flex items-baseline gap-1 mt-2" }, /* @__PURE__ */ React43.createElement("h3", { className: "text-3xl font-light text-black" }, tier.priceUSD === 0 ? "Free" : `$${tier.priceUSD.toFixed(2)}`), tier.priceUSD > 0 && /* @__PURE__ */ React43.createElement("span", { className: "text-xs text-neutral-500" }, tier.isYearly ? "/ year" : "one-time")), /* @__PURE__ */ React43.createElement("p", { className: "text-[13px] text-neutral-500 mt-3 min-h-12 leading-relaxed" }, tier.description)),
|
|
4270
4304
|
/* @__PURE__ */ React43.createElement("div", { className: "flex flex-col gap-2.5 mb-6 relative z-10" }, /* @__PURE__ */ React43.createElement("div", { className: isPrimaryDisabled ? "opacity-50 pointer-events-none" : "" }, /* @__PURE__ */ React43.createElement(
|
|
4271
4305
|
ThreeDActionButton,
|
|
4272
4306
|
{
|
|
@@ -4281,7 +4315,7 @@ var UniversalCardActionPage = ({
|
|
|
4281
4315
|
disabled: isWaitlistDisabled,
|
|
4282
4316
|
onClick: () => handleTierClick(tier, "join_waitlist"),
|
|
4283
4317
|
className: `w-full py-2.5 rounded-full text-xs tracking-wide transition-all outline-none border
|
|
4284
|
-
${isCurrent && (onWaitlist || hasPreordered) ? "bg-neutral-50 border-neutral-100 text-neutral-400 cursor-not-allowed" : "bg-white border-neutral-
|
|
4318
|
+
${isCurrent && (onWaitlist || hasPreordered) ? "bg-neutral-50 border-neutral-100 text-neutral-400 cursor-not-allowed" : "bg-white border-neutral-100 text-black hover:bg-neutral-50"}
|
|
4285
4319
|
disabled:opacity-40 disabled:cursor-not-allowed
|
|
4286
4320
|
`
|
|
4287
4321
|
},
|
|
@@ -4319,7 +4353,7 @@ var UniversalCardActionPage = ({
|
|
|
4319
4353
|
{
|
|
4320
4354
|
disabled: isProcessing,
|
|
4321
4355
|
onClick: () => setSelectedTier(null),
|
|
4322
|
-
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-
|
|
4356
|
+
className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-100 text-black hover:bg-neutral-50 transition-colors outline-none text-[13px] mt-1 disabled:opacity-50"
|
|
4323
4357
|
},
|
|
4324
4358
|
"Cancel"
|
|
4325
4359
|
))))), selectedTier && intendedAction === "join_waitlist" && /* @__PURE__ */ React43.createElement(
|
|
@@ -4428,15 +4462,15 @@ var CardCreationDialog = ({ isOpen, onClose, onSuccess }) => {
|
|
|
4428
4462
|
className: "w-full mt-2"
|
|
4429
4463
|
},
|
|
4430
4464
|
"Verify Code"
|
|
4431
|
-
))), step === "CONFIG" && cardConfig && /* @__PURE__ */ React44.createElement("div", { className: "animate-in fade-in slide-in-from-right-4 duration-300 flex flex-col gap-5" }, /* @__PURE__ */ React44.createElement("div", { className: "relative bg-white rounded-xl p-5 overflow-hidden flex flex-col" }, /* @__PURE__ */ React44.createElement("div", { className: `absolute -top-10 -right-10 w-40 h-40 bg-linear-to-bl from-[#ceff8a] to-transparent opacity-40 blur-2xl rounded-full pointer-events-none` }), /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-start mb-2 relative z-10" }, /* @__PURE__ */ React44.createElement("span", { className: "text-black text-sm tracking-widest " }, cardConfig.name || `${formatTierName2(cardConfig.cardTier)} Card`), /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-widest px-2.5 py-1 rounded-full bg-white text-black
|
|
4465
|
+
))), step === "CONFIG" && cardConfig && /* @__PURE__ */ React44.createElement("div", { className: "animate-in fade-in slide-in-from-right-4 duration-300 flex flex-col gap-5" }, /* @__PURE__ */ React44.createElement("div", { className: "relative bg-white rounded-xl p-5 overflow-hidden flex flex-col" }, /* @__PURE__ */ React44.createElement("div", { className: `absolute -top-10 -right-10 w-40 h-40 bg-linear-to-bl from-[#ceff8a] to-transparent opacity-40 blur-2xl rounded-full pointer-events-none` }), /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-start mb-2 relative z-10" }, /* @__PURE__ */ React44.createElement("span", { className: "text-black text-sm tracking-widest " }, cardConfig.name || `${formatTierName2(cardConfig.cardTier)} Card`), /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-widest px-2.5 py-1 rounded-full bg-white text-black " }, cardConfig.cardBrand || "VISA")), /* @__PURE__ */ React44.createElement("div", { className: "flex items-baseline justify-between mt-2 relative z-10 flex-wrap gap-2" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-baseline gap-1" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-3xl font-light text-black" }, currentPrice === 0 ? "Free" : `$${currentPrice.toFixed(2)}`), currentPrice > 0 && /* @__PURE__ */ React44.createElement("span", { className: "text-xs text-neutral-500" }, "issuance")), instantCashback > 0 && /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] text-white bg-[#143731] px-2.5 py-1 rounded-full" }, "+$", instantCashback.toFixed(2), " Instant Cashback")), /* @__PURE__ */ React44.createElement("p", { className: "text-[12px] text-neutral-500 mt-2 leading-relaxed relative z-10" }, currentDescription || "Premium global spending card.")), canSkipKyc && /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-3.5 border border-neutral-100 rounded-xl bg-white" }, /* @__PURE__ */ React44.createElement("div", { className: "pr-4" }, /* @__PURE__ */ React44.createElement("p", { className: "text-[13px] text-black mb-0.5" }, "Use Verified Identity (KYC)"), /* @__PURE__ */ React44.createElement("p", { className: "text-[11px] text-neutral-500 leading-snug" }, "Turn off to issue card anonymously via synthetic proxy.")), /* @__PURE__ */ React44.createElement(
|
|
4432
4466
|
"button",
|
|
4433
4467
|
{
|
|
4434
4468
|
type: "button",
|
|
4435
4469
|
onClick: () => setUseKyc(!useKyc),
|
|
4436
|
-
className: `relative w-11 h-6 rounded-full transition-colors duration-300 shrink-0 ${useKyc ? "bg-black" : "bg-neutral-
|
|
4470
|
+
className: `relative w-11 h-6 rounded-full transition-colors duration-300 shrink-0 ${useKyc ? "bg-black" : "bg-neutral-100"}`
|
|
4437
4471
|
},
|
|
4438
4472
|
/* @__PURE__ */ React44.createElement("div", { className: `absolute top-1 left-1 w-4 h-4 rounded-full bg-white shadow-xs transition-transform duration-300 flex items-center justify-center ${useKyc ? "translate-x-5" : "translate-x-0"}` })
|
|
4439
|
-
)), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3 bg-neutral-50 p-4 rounded-xl" }, /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-wider text-neutral-500
|
|
4473
|
+
)), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3 bg-neutral-50 p-4 rounded-xl" }, /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-wider text-neutral-500 " }, "Balance Limit"), /* @__PURE__ */ React44.createElement("span", { className: "text-[12px] text-black" }, currentLimit)), /* @__PURE__ */ React44.createElement("div", { className: "w-full h-px bg-neutral-100/60" }), /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-wider text-neutral-500 " }, "Cashback Rate"), /* @__PURE__ */ React44.createElement("span", { className: "text-[12px] text-black" }, currentCashbackRate)), /* @__PURE__ */ React44.createElement("div", { className: "w-full h-px bg-neutral-100/60" }), /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-wider text-neutral-500 " }, "FX Fee"), /* @__PURE__ */ React44.createElement("span", { className: "text-[12px] text-black" }, fxFeeDisplay))), cardConfig.features && cardConfig.features.length > 0 && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-2.5 my-1" }, cardConfig.features.map((feature, idx) => {
|
|
4440
4474
|
const isAvailable = feature.value !== false;
|
|
4441
4475
|
const valueText = typeof feature.value === "string" ? feature.value : "";
|
|
4442
4476
|
return /* @__PURE__ */ React44.createElement("div", { key: idx, className: "flex items-center gap-3" }, isAvailable ? /* @__PURE__ */ React44.createElement(CheckIcon3, null) : /* @__PURE__ */ React44.createElement(CrossIcon3, null), /* @__PURE__ */ React44.createElement("span", { className: `text-[12px] truncate ${isAvailable ? "text-neutral-800" : "text-neutral-400"}` }, feature.name, valueText && /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 ml-1" }, valueText)));
|
|
@@ -4449,7 +4483,7 @@ var CardCreationDialog = ({ isOpen, onClose, onSuccess }) => {
|
|
|
4449
4483
|
onChange: (e) => setAgreedToTerms(e.target.checked),
|
|
4450
4484
|
className: "mt-0.5 w-4 h-4 bg-white border-neutral-300 rounded text-black focus:ring-black cursor-pointer shrink-0"
|
|
4451
4485
|
}
|
|
4452
|
-
), /* @__PURE__ */ React44.createElement("label", { htmlFor: "card-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to the ", /* @__PURE__ */ React44.createElement("a", { href: "https://aeona.finance/terms", target: "_blank", className: "text-black underline" }, "Terms of Service"), " and ", /* @__PURE__ */ React44.createElement("a", { href: "https://aeona.finance/privacy", target: "_blank", className: "text-black underline" }, "Privacy Policy"), " governing card issuance.")), /* @__PURE__ */ React44.createElement("div", { className: "bg-neutral-50 rounded-lg p-3" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-[0.2em] text-neutral-400 block mb-1
|
|
4486
|
+
), /* @__PURE__ */ React44.createElement("label", { htmlFor: "card-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to the ", /* @__PURE__ */ React44.createElement("a", { href: "https://aeona.finance/terms", target: "_blank", className: "text-black underline" }, "Terms of Service"), " and ", /* @__PURE__ */ React44.createElement("a", { href: "https://aeona.finance/privacy", target: "_blank", className: "text-black underline" }, "Privacy Policy"), " governing card issuance.")), /* @__PURE__ */ React44.createElement("div", { className: "bg-neutral-50 rounded-lg p-3" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[10px] tracking-[0.2em] text-neutral-400 block mb-1 " }, "Payment Notice"), /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] text-neutral-600 leading-relaxed block" }, "By confirming, $", currentPrice.toFixed(2), " will be securely deducted from your USD asset balance to guarantee your order.")), /* @__PURE__ */ React44.createElement("div", { className: "mt-1" }, /* @__PURE__ */ React44.createElement(
|
|
4453
4487
|
ThreeDActionButton,
|
|
4454
4488
|
{
|
|
4455
4489
|
onClick: handleCreateCard,
|