@yieldfabric/wallet 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +155 -202
- package/dist/index.d.cts +18 -14
- package/dist/index.d.ts +18 -14
- package/dist/index.js +156 -203
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -5353,7 +5353,7 @@ var init_SignupFlow = __esm({
|
|
|
5353
5353
|
};
|
|
5354
5354
|
AvererSidebar = ({ onError }) => {
|
|
5355
5355
|
const navigate = useWalletNavigate();
|
|
5356
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "w-full md:w-[360px] md:h-screen bg-background flex md:flex-col items-start justify-between md:justify-between gap-4 px-6
|
|
5356
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "w-full md:w-[360px] md:h-screen bg-background flex md:flex-col items-start justify-between md:justify-between gap-4 px-6 pt-[calc(1.25rem+env(safe-area-inset-top))] pb-5 md:p-10 border-b md:border-b-0 md:border-r border-border-light", children: [
|
|
5357
5357
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 md:gap-10", children: [
|
|
5358
5358
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(YieldFabricLockup, { size: 32 }) }),
|
|
5359
5359
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden md:block space-y-3 max-w-[260px]", children: [
|
|
@@ -5370,7 +5370,7 @@ var init_SignupFlow = __esm({
|
|
|
5370
5370
|
navigate("/onboarding/choose");
|
|
5371
5371
|
},
|
|
5372
5372
|
className: "text-[12px] text-text-muted hover:text-text-primary transition-colors text-left",
|
|
5373
|
-
children: "\
|
|
5373
|
+
children: "\u2039 Try a different method"
|
|
5374
5374
|
}
|
|
5375
5375
|
) })
|
|
5376
5376
|
] });
|
|
@@ -5786,6 +5786,7 @@ async function fetchSnapshot() {
|
|
|
5786
5786
|
return {
|
|
5787
5787
|
profileCompleted: !!profile && !!profile.profile_completed,
|
|
5788
5788
|
keyCount: keys.length,
|
|
5789
|
+
keyDeferred: me?.id ? keyStepDeferred(me.id) : false,
|
|
5789
5790
|
emailVerified: email.verified,
|
|
5790
5791
|
emailSynthetic: email.is_synthetic,
|
|
5791
5792
|
identityStatus: identity && identity.status !== "unverified" ? identity : null,
|
|
@@ -5818,6 +5819,24 @@ async function getSnapshot() {
|
|
|
5818
5819
|
cache = { kind: "inflight", promise };
|
|
5819
5820
|
return promise;
|
|
5820
5821
|
}
|
|
5822
|
+
var keyDeferredKey = (userId) => `yf.onboarding.keyDeferred.${userId}`;
|
|
5823
|
+
var keyDeferredHere = /* @__PURE__ */ new Set();
|
|
5824
|
+
function keyStepDeferred(userId) {
|
|
5825
|
+
if (keyDeferredHere.has(userId)) return true;
|
|
5826
|
+
try {
|
|
5827
|
+
return window.localStorage.getItem(keyDeferredKey(userId)) === "1";
|
|
5828
|
+
} catch {
|
|
5829
|
+
return false;
|
|
5830
|
+
}
|
|
5831
|
+
}
|
|
5832
|
+
function deferKeyStep(userId) {
|
|
5833
|
+
keyDeferredHere.add(userId);
|
|
5834
|
+
try {
|
|
5835
|
+
window.localStorage.setItem(keyDeferredKey(userId), "1");
|
|
5836
|
+
} catch {
|
|
5837
|
+
}
|
|
5838
|
+
invalidateOnboardingState();
|
|
5839
|
+
}
|
|
5821
5840
|
function invalidateOnboardingState() {
|
|
5822
5841
|
cache = { kind: "empty" };
|
|
5823
5842
|
scopedIdentity = null;
|
|
@@ -5844,10 +5863,10 @@ function decide(snapshot, ctx) {
|
|
|
5844
5863
|
if (ctx.kycVerifiesEmail) {
|
|
5845
5864
|
if (identityStep) return identityStep;
|
|
5846
5865
|
if (!emailOk) return "email-required";
|
|
5847
|
-
if (snapshot.keyCount < MIN_USER_KEYS) return "wallets-required";
|
|
5866
|
+
if (snapshot.keyCount < MIN_USER_KEYS && !snapshot.keyDeferred) return "wallets-required";
|
|
5848
5867
|
} else {
|
|
5849
5868
|
if (!emailOk) return "email-required";
|
|
5850
|
-
if (snapshot.keyCount < MIN_USER_KEYS) return "wallets-required";
|
|
5869
|
+
if (snapshot.keyCount < MIN_USER_KEYS && !snapshot.keyDeferred) return "wallets-required";
|
|
5851
5870
|
if (identityStep) return identityStep;
|
|
5852
5871
|
}
|
|
5853
5872
|
if (!snapshot.profileCompleted) return "profile-required";
|
|
@@ -5962,7 +5981,7 @@ function clearDynamicSession() {
|
|
|
5962
5981
|
init_WalletConfigContext();
|
|
5963
5982
|
var WalletAuthContext = React54.createContext(void 0);
|
|
5964
5983
|
function WalletAuthProvider({ children }) {
|
|
5965
|
-
const { onSessionBootstrapped } = useWalletConfig();
|
|
5984
|
+
const { onSessionBootstrapped, onBeforeLogout } = useWalletConfig();
|
|
5966
5985
|
const [user, setUser] = React54.useState(null);
|
|
5967
5986
|
const [isLoading, setIsLoading] = React54.useState(true);
|
|
5968
5987
|
const [error, setError] = React54.useState(null);
|
|
@@ -6055,6 +6074,7 @@ function WalletAuthProvider({ children }) {
|
|
|
6055
6074
|
setIsLoading(true);
|
|
6056
6075
|
setError(null);
|
|
6057
6076
|
tokenRenewalService.stopRenewal();
|
|
6077
|
+
await Promise.resolve().then(() => onBeforeLogout?.()).catch(() => void 0);
|
|
6058
6078
|
await exports.authService.logout();
|
|
6059
6079
|
clearDynamicSession();
|
|
6060
6080
|
setUser(null);
|
|
@@ -6070,6 +6090,7 @@ function WalletAuthProvider({ children }) {
|
|
|
6070
6090
|
setIsLoading(true);
|
|
6071
6091
|
setError(null);
|
|
6072
6092
|
tokenRenewalService.stopRenewal();
|
|
6093
|
+
await Promise.resolve().then(() => onBeforeLogout?.()).catch(() => void 0);
|
|
6073
6094
|
await exports.authService.logoutAll();
|
|
6074
6095
|
clearDynamicSession();
|
|
6075
6096
|
setUser(null);
|
|
@@ -9317,11 +9338,11 @@ function humanizeMessageType(messageType) {
|
|
|
9317
9338
|
return spaced.charAt(0).toUpperCase() + spaced.slice(1);
|
|
9318
9339
|
}
|
|
9319
9340
|
var TONE_COLORS = {
|
|
9320
|
-
success: { dotClass: "bg-emerald-300", textClass: "text-emerald-300", bgClass: "bg-emerald-950/[0.16]" },
|
|
9321
|
-
danger: { dotClass: "bg-red-300", textClass: "text-red-200", bgClass: "bg-red-950/[0.16]" },
|
|
9322
|
-
warn: { dotClass: "bg-amber-300", textClass: "text-amber-200", bgClass: "bg-amber-950/[0.14]" },
|
|
9323
|
-
info: { dotClass: "bg-blue-300", textClass: "text-blue-200", bgClass: "bg-blue-950/[0.14]" },
|
|
9324
|
-
neutral: { dotClass: "bg-white/[0.34]", textClass: "text-white/[0.56]", bgClass: "bg-white/[0.045]" }
|
|
9341
|
+
success: { dotClass: "bg-emerald-300", textClass: "text-status-success-text dark:text-emerald-300", bgClass: "bg-status-success-bg dark:bg-emerald-950/[0.16]" },
|
|
9342
|
+
danger: { dotClass: "bg-red-300", textClass: "text-status-error-text dark:text-red-200", bgClass: "bg-status-error-bg dark:bg-red-950/[0.16]" },
|
|
9343
|
+
warn: { dotClass: "bg-amber-300", textClass: "text-status-warning-text dark:text-amber-200", bgClass: "bg-status-warning-bg dark:bg-amber-950/[0.14]" },
|
|
9344
|
+
info: { dotClass: "bg-blue-300", textClass: "text-azure dark:text-blue-200", bgClass: "bg-azure-tint dark:bg-blue-950/[0.14]" },
|
|
9345
|
+
neutral: { dotClass: "bg-text-muted dark:bg-white/[0.34]", textClass: "text-text-muted dark:text-white/[0.56]", bgClass: "bg-chip dark:bg-white/[0.045]" }
|
|
9325
9346
|
};
|
|
9326
9347
|
var STATUS_TO_TONE = {
|
|
9327
9348
|
completed: "success",
|
|
@@ -10265,7 +10286,7 @@ var DEFAULT_MESSAGES = {
|
|
|
10265
10286
|
},
|
|
10266
10287
|
email: {
|
|
10267
10288
|
title: "Continue with email",
|
|
10268
|
-
description: "
|
|
10289
|
+
description: "An email and a password. You can add a passkey later."
|
|
10269
10290
|
},
|
|
10270
10291
|
haveAccountPrompt: "Already have an account?",
|
|
10271
10292
|
signInLinkText: "Sign in"
|
|
@@ -10276,7 +10297,7 @@ var DEFAULT_MESSAGES = {
|
|
|
10276
10297
|
},
|
|
10277
10298
|
emailSignup: {
|
|
10278
10299
|
header: "Create your account",
|
|
10279
|
-
subheader: "
|
|
10300
|
+
subheader: "An email and a password is all it takes.",
|
|
10280
10301
|
submitButtonText: "Continue",
|
|
10281
10302
|
submittingButtonText: "Creating account\u2026",
|
|
10282
10303
|
backButtonText: "\u2039 Back",
|
|
@@ -10385,7 +10406,7 @@ function LoginPage({
|
|
|
10385
10406
|
align = "center",
|
|
10386
10407
|
logo
|
|
10387
10408
|
}) {
|
|
10388
|
-
const alignClass = align === "top" ? "items-start pt-
|
|
10409
|
+
const alignClass = align === "top" ? "items-start pt-[calc(3rem+env(safe-area-inset-top))] pb-12" : "items-center pt-[env(safe-area-inset-top)]";
|
|
10389
10410
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10390
10411
|
"div",
|
|
10391
10412
|
{
|
|
@@ -10524,7 +10545,7 @@ function OnboardingChoosePath({ chrome } = {}) {
|
|
|
10524
10545
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-[520px] text-center space-y-1.5", children: [
|
|
10525
10546
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-[18px] text-text-primary font-medium", children: messages.choosePath.header }),
|
|
10526
10547
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-text-secondary", children: messages.choosePath.subheader }),
|
|
10527
|
-
configError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-orange-400 mt-2", children: "Provider config unavailable \u2014 falling back to email only." })
|
|
10548
|
+
configError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-status-warning-text dark:text-orange-400 mt-2", children: "Provider config unavailable \u2014 falling back to email only." })
|
|
10528
10549
|
] }),
|
|
10529
10550
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto w-full max-w-[480px] space-y-2.5", children: [
|
|
10530
10551
|
avererEnabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -10624,7 +10645,7 @@ function PlanOfferCard({
|
|
|
10624
10645
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-[8px] font-medium uppercase tracking-[0.1em] text-text-muted", children: "Pay monthly" }),
|
|
10625
10646
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 block text-[16px] font-semibold leading-none tracking-tight text-text-primary tabular-nums", children: price })
|
|
10626
10647
|
] }),
|
|
10627
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.
|
|
10648
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3.5 w-3.5 shrink-0 text-text-muted", strokeWidth: 1.7 }),
|
|
10628
10649
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
10629
10650
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-[8px] font-medium uppercase tracking-[0.1em] text-text-muted", children: "Cycle credit" }),
|
|
10630
10651
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 block text-[16px] font-semibold leading-none tracking-tight text-text-primary tabular-nums", children: allowance })
|
|
@@ -10794,7 +10815,7 @@ function OnboardingMethodCard({
|
|
|
10794
10815
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-text-primary", children: label }),
|
|
10795
10816
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[11px] text-text-secondary", children: sublabel })
|
|
10796
10817
|
] }),
|
|
10797
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
10818
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { "aria-hidden": "true", className: "h-4 w-4 text-text-secondary" })
|
|
10798
10819
|
]
|
|
10799
10820
|
}
|
|
10800
10821
|
);
|
|
@@ -12273,7 +12294,7 @@ function OnboardingChooseMethod({ chrome } = {}) {
|
|
|
12273
12294
|
return /* @__PURE__ */ jsxRuntime.jsx(StepShell, { chrome, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
12274
12295
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
12275
12296
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-[16px] text-text-primary", children: messages.chooseMethod.header }),
|
|
12276
|
-
configError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-orange-400 mt-2", children: "Provider config unavailable \u2014 falling back to email only." })
|
|
12297
|
+
configError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-status-warning-text dark:text-orange-400 mt-2", children: "Provider config unavailable \u2014 falling back to email only." })
|
|
12277
12298
|
] }),
|
|
12278
12299
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
12279
12300
|
enabled.map(({ id, impl }) => {
|
|
@@ -13066,7 +13087,7 @@ function SkeletonAvatar({
|
|
|
13066
13087
|
{
|
|
13067
13088
|
role: "img",
|
|
13068
13089
|
"aria-label": choice ? `${name} - ${choice.label} avatar` : `${name}'s avatar`,
|
|
13069
|
-
className: `rounded-full overflow-hidden flex items-center justify-center select-none bg-[#252525] ${className}`,
|
|
13090
|
+
className: `rounded-full overflow-hidden flex items-center justify-center select-none bg-surface-alt dark:bg-[#252525] ${className}`,
|
|
13070
13091
|
style: {
|
|
13071
13092
|
width: size,
|
|
13072
13093
|
height: size
|
|
@@ -13119,7 +13140,7 @@ function AvatarPicker({
|
|
|
13119
13140
|
onClick: () => onChange(c.id),
|
|
13120
13141
|
className: [
|
|
13121
13142
|
"rounded-full flex items-center justify-center select-none overflow-hidden",
|
|
13122
|
-
"transition-all border-2 bg-[#252525]",
|
|
13143
|
+
"transition-all border-2 bg-surface-alt dark:bg-[#252525]",
|
|
13123
13144
|
selected ? "border-primary scale-105" : "border-transparent hover:border-border-light"
|
|
13124
13145
|
].join(" "),
|
|
13125
13146
|
style: { width: tileSize, height: tileSize },
|
|
@@ -14931,35 +14952,6 @@ function providerLabel(p) {
|
|
|
14931
14952
|
function ProviderIcon({ provider }) {
|
|
14932
14953
|
return /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4 text-text-secondary", strokeWidth: 1.5 });
|
|
14933
14954
|
}
|
|
14934
|
-
function setupCopy(args) {
|
|
14935
|
-
const { keyCount, busy } = args;
|
|
14936
|
-
if (keyCount >= MIN_KEYS) {
|
|
14937
|
-
return {
|
|
14938
|
-
title: "Ready to sign",
|
|
14939
|
-
body: keyCount >= RECOMMENDED_KEYS ? "Your signing keys are ready, including a backup recovery path." : "Your signing key is ready. Adding a second key gives you a recovery path, but you can continue now.",
|
|
14940
|
-
tone: "done"
|
|
14941
|
-
};
|
|
14942
|
-
}
|
|
14943
|
-
if (busy === "passkey" || busy === "metamask") {
|
|
14944
|
-
return {
|
|
14945
|
-
title: "Saving your signing key",
|
|
14946
|
-
body: "Complete the passkey or wallet prompt. Your smart account will be activated later, only when an on-chain action requires it.",
|
|
14947
|
-
tone: "active"
|
|
14948
|
-
};
|
|
14949
|
-
}
|
|
14950
|
-
return {
|
|
14951
|
-
title: "Choose a signing key",
|
|
14952
|
-
body: "Use a passkey for quick device-native signing, or connect MetaMask if you prefer an external wallet.",
|
|
14953
|
-
tone: "waiting"
|
|
14954
|
-
};
|
|
14955
|
-
}
|
|
14956
|
-
function StepDot({
|
|
14957
|
-
state,
|
|
14958
|
-
icon
|
|
14959
|
-
}) {
|
|
14960
|
-
const className = state === "done" ? "bg-status-success-bg text-status-success-text border-status-success-text/30" : state === "active" ? "bg-status-warning-bg text-status-warning-text border-status-warning-text/30" : "bg-chip text-text-secondary border-border-default";
|
|
14961
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-8 w-8 rounded-full border flex items-center justify-center ${className}`, children: state === "done" ? /* @__PURE__ */ jsxRuntime.jsx(outline.CheckCircleIcon, { className: "h-4 w-4", strokeWidth: 1.8 }) : state === "active" ? /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "h-4 w-4 animate-spin", strokeWidth: 1.8 }) : icon });
|
|
14962
|
-
}
|
|
14963
14955
|
function SuccessMoment({ visible }) {
|
|
14964
14956
|
if (!visible) return null;
|
|
14965
14957
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -15030,65 +15022,6 @@ function RecoveryPanel({
|
|
|
15030
15022
|
}
|
|
15031
15023
|
);
|
|
15032
15024
|
}
|
|
15033
|
-
function SetupStep({
|
|
15034
|
-
label,
|
|
15035
|
-
detail,
|
|
15036
|
-
state,
|
|
15037
|
-
icon
|
|
15038
|
-
}) {
|
|
15039
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
|
|
15040
|
-
/* @__PURE__ */ jsxRuntime.jsx(StepDot, { state, icon }),
|
|
15041
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
15042
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px] text-text-primary truncate", children: label }),
|
|
15043
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[10px] text-text-secondary truncate", children: detail })
|
|
15044
|
-
] })
|
|
15045
|
-
] });
|
|
15046
|
-
}
|
|
15047
|
-
function SetupStatusPanel({
|
|
15048
|
-
keyCount,
|
|
15049
|
-
busy
|
|
15050
|
-
}) {
|
|
15051
|
-
const copy = setupCopy({ keyCount, busy });
|
|
15052
|
-
const keyState = keyCount >= MIN_KEYS ? "done" : busy === "passkey" || busy === "metamask" ? "active" : "waiting";
|
|
15053
|
-
const readyState = keyCount >= MIN_KEYS ? "done" : "waiting";
|
|
15054
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15055
|
-
"section",
|
|
15056
|
-
{
|
|
15057
|
-
className: "rounded-lg border border-border-default bg-input-bg px-4 py-4 space-y-4",
|
|
15058
|
-
role: "status",
|
|
15059
|
-
"aria-live": "polite",
|
|
15060
|
-
children: [
|
|
15061
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
15062
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 min-w-0", children: [
|
|
15063
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-[18px] text-text-primary font-medium tracking-normal", children: copy.title }),
|
|
15064
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-text-secondary leading-relaxed", children: copy.body })
|
|
15065
|
-
] }),
|
|
15066
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `shrink-0 h-9 w-9 rounded-full flex items-center justify-center ${copy.tone === "done" ? "bg-status-success-bg text-status-success-text" : copy.tone === "active" ? "bg-status-warning-bg text-status-warning-text" : "bg-chip text-text-secondary"}`, children: copy.tone === "done" ? /* @__PURE__ */ jsxRuntime.jsx(outline.CheckCircleIcon, { className: "h-5 w-5", strokeWidth: 1.8 }) : copy.tone === "active" ? /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "h-5 w-5 animate-spin", strokeWidth: 1.8 }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ShieldCheckIcon, { className: "h-5 w-5", strokeWidth: 1.8 }) })
|
|
15067
|
-
] }),
|
|
15068
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-2.5", children: [
|
|
15069
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15070
|
-
SetupStep,
|
|
15071
|
-
{
|
|
15072
|
-
label: "Signing key",
|
|
15073
|
-
detail: keyCount >= MIN_KEYS ? "Ready to authorize" : "Choose one below",
|
|
15074
|
-
state: keyState,
|
|
15075
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4", strokeWidth: 1.7 })
|
|
15076
|
-
}
|
|
15077
|
-
),
|
|
15078
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15079
|
-
SetupStep,
|
|
15080
|
-
{
|
|
15081
|
-
label: "Continue",
|
|
15082
|
-
detail: readyState === "done" ? "Unlocked" : "Unlocks automatically",
|
|
15083
|
-
state: readyState,
|
|
15084
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-4 w-4", strokeWidth: 1.7 })
|
|
15085
|
-
}
|
|
15086
|
-
)
|
|
15087
|
-
] })
|
|
15088
|
-
]
|
|
15089
|
-
}
|
|
15090
|
-
);
|
|
15091
|
-
}
|
|
15092
15025
|
function AddWalletsStep({ chrome } = {}) {
|
|
15093
15026
|
const navigate = useWizardNavigate();
|
|
15094
15027
|
const { bootstrapSession, user } = useAuth();
|
|
@@ -15102,6 +15035,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15102
15035
|
const [autoAdvanceArmed, setAutoAdvanceArmed] = React54.useState(false);
|
|
15103
15036
|
const [emailDraft, setEmailDraft] = React54.useState("");
|
|
15104
15037
|
const [showDynamic, setShowDynamic] = React54.useState(false);
|
|
15038
|
+
const [walletsOpen, setWalletsOpen] = React54.useState(false);
|
|
15105
15039
|
const hasSyntheticEmail = !!user?.email && user.email.toLowerCase().endsWith("@external.yieldfabric.local");
|
|
15106
15040
|
const { snapshot: gateSnapshot } = useOnboardingState();
|
|
15107
15041
|
const emailOk = !!gateSnapshot && snapshotEmailOk(gateSnapshot);
|
|
@@ -15128,7 +15062,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15128
15062
|
}, [refresh]);
|
|
15129
15063
|
const keyCount = keys.length;
|
|
15130
15064
|
const canContinue = keyCount >= MIN_KEYS;
|
|
15131
|
-
const continueLabel = canContinue ? autoAdvanceArmed ? "Ready - continuing..." : "Continue" : "Add a
|
|
15065
|
+
const continueLabel = canContinue ? autoAdvanceArmed ? "Ready - continuing..." : "Continue" : "Add a passkey to continue";
|
|
15132
15066
|
async function addMetaMask() {
|
|
15133
15067
|
setError(null);
|
|
15134
15068
|
setLastFailedAction(null);
|
|
@@ -15147,7 +15081,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15147
15081
|
await impl.directLink({
|
|
15148
15082
|
onComplete: async () => {
|
|
15149
15083
|
setBusy(null);
|
|
15150
|
-
setStatus("
|
|
15084
|
+
setStatus("Saved. One moment\u2026");
|
|
15151
15085
|
await refresh({ invalidate: true });
|
|
15152
15086
|
},
|
|
15153
15087
|
onError: (msg) => {
|
|
@@ -15203,7 +15137,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15203
15137
|
credential_id: created.credentialId
|
|
15204
15138
|
}
|
|
15205
15139
|
}, { purpose: "user" });
|
|
15206
|
-
setStatus("
|
|
15140
|
+
setStatus("Saved. One moment\u2026");
|
|
15207
15141
|
await refresh({ invalidate: true });
|
|
15208
15142
|
const after = await listMyLoginKeys();
|
|
15209
15143
|
const found = after.some(
|
|
@@ -15258,8 +15192,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15258
15192
|
setBusy(null);
|
|
15259
15193
|
}
|
|
15260
15194
|
}
|
|
15261
|
-
const
|
|
15262
|
-
if (!canContinue) return;
|
|
15195
|
+
const goOn = React54.useCallback(async () => {
|
|
15263
15196
|
setBusy("continue");
|
|
15264
15197
|
setLastFailedAction(null);
|
|
15265
15198
|
try {
|
|
@@ -15286,7 +15219,16 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15286
15219
|
setError(friendlyActionError(e, "refresh"));
|
|
15287
15220
|
setBusy(null);
|
|
15288
15221
|
}
|
|
15289
|
-
}, [bootstrapSession,
|
|
15222
|
+
}, [bootstrapSession, config, navigate, user?.role]);
|
|
15223
|
+
const onContinue = React54.useCallback(async () => {
|
|
15224
|
+
if (!canContinue) return;
|
|
15225
|
+
await goOn();
|
|
15226
|
+
}, [canContinue, goOn]);
|
|
15227
|
+
const onSkip = React54.useCallback(async () => {
|
|
15228
|
+
if (!user?.id) return;
|
|
15229
|
+
deferKeyStep(user.id);
|
|
15230
|
+
await goOn();
|
|
15231
|
+
}, [goOn, user?.id]);
|
|
15290
15232
|
React54.useEffect(() => {
|
|
15291
15233
|
if (!autoAdvanceArmed || !canContinue || busy) return;
|
|
15292
15234
|
const timeout = window.setTimeout(() => {
|
|
@@ -15312,9 +15254,8 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15312
15254
|
}
|
|
15313
15255
|
return /* @__PURE__ */ jsxRuntime.jsx(StepShell, { chrome, wide: true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 sm:space-y-5 max-w-[420px] mx-auto", children: [
|
|
15314
15256
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center space-y-2", children: [
|
|
15315
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
15316
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
15317
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] leading-relaxed text-text-secondary max-w-[330px] mx-auto", children: "Add a signing key now. Your smart account is activated later, only when an on-chain action needs it." })
|
|
15257
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-[21px] text-text-primary font-medium leading-tight", children: "Secure your account" }),
|
|
15258
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[13px] leading-relaxed text-text-secondary max-w-[340px] mx-auto", children: "A passkey means only you can approve what is done in your name \u2014 one tap with Face ID, a fingerprint or your PIN. You can also do this later." })
|
|
15318
15259
|
] }),
|
|
15319
15260
|
hasSyntheticEmail && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-status-warning-bg border border-status-warning-text/20 p-3 space-y-2", children: [
|
|
15320
15261
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[11px] text-status-warning-text", children: "Your account email is a temporary placeholder. Set a real one so you can recover access and (if you ever want it) link Averer KYC." }),
|
|
@@ -15341,20 +15282,10 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15341
15282
|
)
|
|
15342
15283
|
] })
|
|
15343
15284
|
] }),
|
|
15344
|
-
!loading && /* @__PURE__ */ jsxRuntime.jsx(
|
|
15345
|
-
SetupStatusPanel,
|
|
15346
|
-
{
|
|
15347
|
-
keyCount,
|
|
15348
|
-
busy
|
|
15349
|
-
}
|
|
15350
|
-
),
|
|
15351
15285
|
/* @__PURE__ */ jsxRuntime.jsx(SuccessMoment, { visible: canContinue && autoAdvanceArmed && !error }),
|
|
15352
|
-
loading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-dashed border-border-default bg-input-bg px-4 py-8 text-center text-[11px] text-text-secondary", children: "Loading\u2026" }) : keys.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
15353
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-11 h-11 rounded-full bg-chip flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-5 w-5 text-text-secondary", strokeWidth: 1.5 }) }),
|
|
15354
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[11px] text-text-secondary", children: "No signing keys yet" })
|
|
15355
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-input-bg rounded-lg px-4 py-3.5 space-y-3", children: [
|
|
15286
|
+
loading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-dashed border-border-default bg-input-bg px-4 py-8 text-center text-[11px] text-text-secondary", children: "Loading\u2026" }) : keys.length === 0 ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-input-bg rounded-lg px-4 py-3.5 space-y-3", children: [
|
|
15356
15287
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
15357
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-secondary", children: "
|
|
15288
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-secondary", children: "Your keys" }),
|
|
15358
15289
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: keyCount < RECOMMENDED_KEYS ? "text-status-warning-text" : "text-status-success-text", children: [
|
|
15359
15290
|
keyCount === 1 && "1 key \xB7 add a backup",
|
|
15360
15291
|
keyCount >= RECOMMENDED_KEYS && `${keyCount} keys`
|
|
@@ -15381,7 +15312,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15381
15312
|
}) })
|
|
15382
15313
|
] }),
|
|
15383
15314
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
15384
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-text-secondary text-center", children:
|
|
15315
|
+
!emailOk ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-text-secondary text-center", children: "Confirm your email first" }) : null,
|
|
15385
15316
|
!emailOk && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15386
15317
|
"button",
|
|
15387
15318
|
{
|
|
@@ -15401,37 +15332,48 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15401
15332
|
type: "button",
|
|
15402
15333
|
onClick: addPasskey,
|
|
15403
15334
|
disabled: busy !== null || !emailOk,
|
|
15404
|
-
className:
|
|
15405
|
-
children: [
|
|
15406
|
-
busy === "passkey" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-secondary", children: "\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4 text-text-secondary", strokeWidth: 1.5 }),
|
|
15407
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Add Passkey" })
|
|
15408
|
-
]
|
|
15409
|
-
}
|
|
15410
|
-
),
|
|
15411
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15412
|
-
"button",
|
|
15413
|
-
{
|
|
15414
|
-
type: "button",
|
|
15415
|
-
onClick: addMetaMask,
|
|
15416
|
-
disabled: busy !== null || !emailOk,
|
|
15417
|
-
className: "\n w-full min-h-[44px] flex items-center justify-center gap-2 py-2.5 rounded-lg\n bg-chip hover:bg-chip-hover\n text-[12px] text-text-primary\n transition-all duration-200\n active:scale-[0.98]\n disabled:opacity-40 disabled:cursor-not-allowed\n ",
|
|
15335
|
+
className: `w-full min-h-[46px] flex items-center justify-center gap-2 py-2.5 rounded-lg text-[13px] font-medium transition-colors active:scale-[0.99] disabled:opacity-40 disabled:cursor-not-allowed ${canContinue ? "bg-chip hover:bg-chip-hover text-text-primary" : "bg-cta hover:bg-cta-hover text-on-cta"}`,
|
|
15418
15336
|
children: [
|
|
15419
|
-
busy === "
|
|
15420
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Add
|
|
15337
|
+
busy === "passkey" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4", strokeWidth: 1.5 }),
|
|
15338
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: canContinue ? "Add another passkey" : "Add a passkey" })
|
|
15421
15339
|
]
|
|
15422
15340
|
}
|
|
15423
15341
|
),
|
|
15424
|
-
|
|
15342
|
+
walletsOpen ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15343
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15344
|
+
"button",
|
|
15345
|
+
{
|
|
15346
|
+
type: "button",
|
|
15347
|
+
onClick: addMetaMask,
|
|
15348
|
+
disabled: busy !== null || !emailOk,
|
|
15349
|
+
className: "\n w-full min-h-[44px] flex items-center justify-center gap-2 py-2.5 rounded-lg\n bg-chip hover:bg-chip-hover\n text-[12px] text-text-primary\n transition-all duration-200\n active:scale-[0.98]\n disabled:opacity-40 disabled:cursor-not-allowed\n ",
|
|
15350
|
+
children: [
|
|
15351
|
+
busy === "metamask" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-secondary", children: "\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4 text-text-secondary", strokeWidth: 1.5 }),
|
|
15352
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Add MetaMask" })
|
|
15353
|
+
]
|
|
15354
|
+
}
|
|
15355
|
+
),
|
|
15356
|
+
!!config?.auth.enabled.includes("dynamic") && !!config?.auth.settings.dynamic?.environment_id && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15357
|
+
"button",
|
|
15358
|
+
{
|
|
15359
|
+
type: "button",
|
|
15360
|
+
onClick: () => setShowDynamic(true),
|
|
15361
|
+
disabled: busy !== null || !emailOk,
|
|
15362
|
+
className: "\n w-full min-h-[44px] flex items-center justify-center gap-2 py-2.5 rounded-lg\n bg-chip hover:bg-chip-hover\n text-[12px] text-text-primary\n transition-all duration-200\n active:scale-[0.98]\n disabled:opacity-40 disabled:cursor-not-allowed\n ",
|
|
15363
|
+
children: [
|
|
15364
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4 text-text-secondary", strokeWidth: 1.5 }),
|
|
15365
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Add Dynamic" })
|
|
15366
|
+
]
|
|
15367
|
+
}
|
|
15368
|
+
)
|
|
15369
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
15425
15370
|
"button",
|
|
15426
15371
|
{
|
|
15427
15372
|
type: "button",
|
|
15428
|
-
onClick: () =>
|
|
15429
|
-
disabled: busy !== null
|
|
15430
|
-
className: "
|
|
15431
|
-
children:
|
|
15432
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4 text-text-secondary", strokeWidth: 1.5 }),
|
|
15433
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Add Dynamic" })
|
|
15434
|
-
]
|
|
15373
|
+
onClick: () => setWalletsOpen(true),
|
|
15374
|
+
disabled: busy !== null,
|
|
15375
|
+
className: "w-full py-1.5 text-[11px] text-text-secondary hover:text-text-primary transition-colors disabled:opacity-40",
|
|
15376
|
+
children: "Use a crypto wallet instead"
|
|
15435
15377
|
}
|
|
15436
15378
|
)
|
|
15437
15379
|
] }),
|
|
@@ -15448,7 +15390,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15448
15390
|
registerOnChain: false,
|
|
15449
15391
|
onComplete: async () => {
|
|
15450
15392
|
setShowDynamic(false);
|
|
15451
|
-
setStatus("
|
|
15393
|
+
setStatus("Saved. One moment\u2026");
|
|
15452
15394
|
await refresh({ invalidate: true });
|
|
15453
15395
|
},
|
|
15454
15396
|
onError: (m) => {
|
|
@@ -15480,15 +15422,24 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15480
15422
|
onRetry: retryLastFailure
|
|
15481
15423
|
}
|
|
15482
15424
|
),
|
|
15483
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15425
|
+
canContinue ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
15484
15426
|
"button",
|
|
15485
15427
|
{
|
|
15486
15428
|
type: "button",
|
|
15487
15429
|
onClick: onContinue,
|
|
15488
|
-
disabled:
|
|
15489
|
-
className: "
|
|
15430
|
+
disabled: busy === "continue",
|
|
15431
|
+
className: "w-full min-h-[46px] py-3 rounded-lg bg-cta hover:bg-cta-hover text-on-cta text-[13px] font-medium transition-colors active:scale-[0.99] disabled:opacity-40 disabled:cursor-not-allowed",
|
|
15490
15432
|
children: continueLabel
|
|
15491
15433
|
}
|
|
15434
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
15435
|
+
"button",
|
|
15436
|
+
{
|
|
15437
|
+
type: "button",
|
|
15438
|
+
onClick: () => void onSkip(),
|
|
15439
|
+
disabled: busy !== null || !user?.id,
|
|
15440
|
+
className: "w-full py-2 text-[13px] text-text-secondary hover:text-text-primary transition-colors disabled:opacity-40",
|
|
15441
|
+
children: "Not now"
|
|
15442
|
+
}
|
|
15492
15443
|
),
|
|
15493
15444
|
keyCount === 1 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-text-secondary text-center pt-1", children: "Tip: a second key is your recovery path. If you lose your only key, the account is locked out." })
|
|
15494
15445
|
] }) });
|
|
@@ -15575,7 +15526,7 @@ var Drawer = ({
|
|
|
15575
15526
|
role: "dialog",
|
|
15576
15527
|
"aria-modal": "true",
|
|
15577
15528
|
"aria-labelledby": titleId,
|
|
15578
|
-
className: `pointer-events-auto ${panelBg} shadow-2xl h-full flex flex-col ${widthClass} ${panelClassName}`,
|
|
15529
|
+
className: `pointer-events-auto ${panelBg} shadow-2xl h-full flex flex-col pt-[env(safe-area-inset-top)] ${widthClass} ${panelClassName}`,
|
|
15579
15530
|
style: { ...widthStyle, ...panelStyle },
|
|
15580
15531
|
onClick: (e) => e.stopPropagation(),
|
|
15581
15532
|
children: [
|
|
@@ -17986,7 +17937,7 @@ var OnboardingPolicySection = ({
|
|
|
17986
17937
|
]);
|
|
17987
17938
|
if (hidden || loading || deployLoading || platformActive === null) return null;
|
|
17988
17939
|
if (platformActive === "error") {
|
|
17989
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4", children: [
|
|
17940
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4", children: [
|
|
17990
17941
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Platform onboarding" }) }),
|
|
17991
17942
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 rounded-lg border border-border-light bg-surface-alt px-3 py-2.5 text-[13px] leading-5 text-text-muted", children: [
|
|
17992
17943
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Couldn't confirm whether this group is used as a platform." }),
|
|
@@ -18003,12 +17954,12 @@ var OnboardingPolicySection = ({
|
|
|
18003
17954
|
] });
|
|
18004
17955
|
}
|
|
18005
17956
|
if (!platformActive) {
|
|
18006
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4", children: [
|
|
17957
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4", children: [
|
|
18007
17958
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Platform onboarding" }) }),
|
|
18008
17959
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-border-light bg-surface-alt px-3 py-2.5 text-[13px] leading-5 text-text-muted", children: "This group isn't used as a platform, so there are no signups to configure. Enable platform sponsorship first \u2014 then choose the sign-in methods and identity checks its users go through." })
|
|
18009
17960
|
] });
|
|
18010
17961
|
}
|
|
18011
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4", children: [
|
|
17962
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4", children: [
|
|
18012
17963
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
18013
17964
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Platform onboarding" }),
|
|
18014
17965
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-text-muted", children: "The path people take from first visit to transacting on this platform." })
|
|
@@ -18793,7 +18744,7 @@ function DecodedCalldata({
|
|
|
18793
18744
|
}
|
|
18794
18745
|
const kindColor = {
|
|
18795
18746
|
zero: "text-text-muted",
|
|
18796
|
-
address: "text-blue-300/[0.90]",
|
|
18747
|
+
address: "text-azure dark:text-blue-300/[0.90]",
|
|
18797
18748
|
uint: "text-text-primary",
|
|
18798
18749
|
bytes32: "text-text-secondary"
|
|
18799
18750
|
};
|
|
@@ -19784,14 +19735,14 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19784
19735
|
type: "button",
|
|
19785
19736
|
onClick: handleCancelMessage,
|
|
19786
19737
|
disabled: cancelling,
|
|
19787
|
-
className: "px-3 py-2 text-[13px] text-red-200 hover:text-text-primary disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
|
|
19738
|
+
className: "px-3 py-2 text-[13px] text-status-error-text dark:text-red-200 hover:text-text-primary disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
|
|
19788
19739
|
children: cancelling ? "Cancelling\u2026" : "Cancel message"
|
|
19789
19740
|
}
|
|
19790
19741
|
) : void 0,
|
|
19791
19742
|
children: [
|
|
19792
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[13px] font-medium text-red-100 mb-1", children: "Couldn't load transaction" }),
|
|
19743
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[13px] font-medium text-status-error-text dark:text-red-100 mb-1", children: "Couldn't load transaction" }),
|
|
19793
19744
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-text-secondary max-w-sm", children: error }),
|
|
19794
|
-
cancelError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-red-200 mt-3", children: cancelError })
|
|
19745
|
+
cancelError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-status-error-text dark:text-red-200 mt-3", children: cancelError })
|
|
19795
19746
|
]
|
|
19796
19747
|
}
|
|
19797
19748
|
);
|
|
@@ -19806,7 +19757,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19806
19757
|
})();
|
|
19807
19758
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col h-full text-text-primary", children: [
|
|
19808
19759
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto overflow-x-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 px-4 py-4", children: [
|
|
19809
|
-
reviewWarning && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg border border-amber-300/[0.22] bg-amber-400/[0.08] px-3 py-2 text-[12px] leading-5 text-amber-100", children: reviewWarning }),
|
|
19760
|
+
reviewWarning && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg border border-status-warning-line dark:border-amber-300/[0.22] bg-status-warning-bg dark:bg-amber-400/[0.08] px-3 py-2 text-[12px] leading-5 text-status-warning-text dark:text-amber-100", children: reviewWarning }),
|
|
19810
19761
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-text-secondary leading-5", children: mode === "inspect" ? "Review action details and execution outcome." : "Review the action, choose a signing key, and confirm." }),
|
|
19811
19762
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full rounded-[22px] border border-border-light bg-raised p-1 text-[12px] shadow-[inset_0_1px_0_rgba(255,255,255,0.035)]", children: ["simple", "advanced"].map((mode2) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
19812
19763
|
"button",
|
|
@@ -19995,7 +19946,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19995
19946
|
] })
|
|
19996
19947
|
}
|
|
19997
19948
|
),
|
|
19998
|
-
selector && !methodName && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg border border-red-300/[0.18] bg-red-400/[0.08] px-2.5 py-2 text-[10px] leading-4 text-red-200", children: "High risk: this selector is unknown. Review the raw target, value, and every calldata word before signing." }),
|
|
19949
|
+
selector && !methodName && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg border border-status-error-line dark:border-red-300/[0.18] bg-status-error-bg dark:bg-red-400/[0.08] px-2.5 py-2 text-[10px] leading-4 text-status-error-text dark:text-red-200", children: "High risk: this selector is unknown. Review the raw target, value, and every calldata word before signing." }),
|
|
19999
19950
|
!dataEmpty && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px]", children: isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
20000
19951
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
20001
19952
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-muted", children: "Calldata" }),
|
|
@@ -20054,7 +20005,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
20054
20005
|
] })
|
|
20055
20006
|
] }) }),
|
|
20056
20007
|
mode === "sign" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-shrink-0 border-t border-border-light bg-surface-alt", children: [
|
|
20057
|
-
keysLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-5", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-2 border-border-strong border-t-transparent" }) }) : keysError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-red-200 px-4 py-3", children: keysError }) : availableKeys.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-text-muted text-center py-5", children: ownedSignerState.error ?? (ownedSignerBinding ? "The personal key bound to this owned-group session is unavailable. Return to the parent group and mint a new session with an active key." : `No active keys for this ${entityType}.`) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 pt-3 pb-1 space-y-2", children: [
|
|
20008
|
+
keysLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-5", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-2 border-border-strong border-t-transparent" }) }) : keysError ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-status-error-text dark:text-red-200 px-4 py-3", children: keysError }) : availableKeys.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-text-muted text-center py-5", children: ownedSignerState.error ?? (ownedSignerBinding ? "The personal key bound to this owned-group session is unavailable. Return to the parent group and mint a new session with an active key." : `No active keys for this ${entityType}.`) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 pt-3 pb-1 space-y-2", children: [
|
|
20058
20009
|
/* @__PURE__ */ jsxRuntime.jsx(SectionLabel, { children: "Sign with" }),
|
|
20059
20010
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "max-h-40 overflow-y-auto divide-y divide-border-light", children: availableKeys.map((key) => {
|
|
20060
20011
|
const isSelected = selectedKey?.id === key.id;
|
|
@@ -20099,7 +20050,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
20099
20050
|
walletLabel(walletKindFromKey(selectedKey)),
|
|
20100
20051
|
" will open to sign."
|
|
20101
20052
|
] }),
|
|
20102
|
-
ownedSignerBinding && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-[11px] text-cyan-200", children: [
|
|
20053
|
+
ownedSignerBinding && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-[11px] text-azure dark:text-cyan-200", children: [
|
|
20103
20054
|
"This owned-group request is cryptographically bound to this personal key (",
|
|
20104
20055
|
ownedSignerBinding.signerCustody,
|
|
20105
20056
|
"). Choose a different key by returning to the parent group and minting a new child session."
|
|
@@ -20175,8 +20126,8 @@ function InspectFooter({
|
|
|
20175
20126
|
}
|
|
20176
20127
|
};
|
|
20177
20128
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-shrink-0 border-t border-border-light bg-raised px-3 py-3 space-y-2.5", children: [
|
|
20178
|
-
awaitingSignature && onSwitchToSign && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-[18px] border border-amber-300/[0.20] bg-amber-950/[0.12] px-3 py-2 flex items-center justify-between gap-3", children: [
|
|
20179
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-amber-100/[0.82]", children: "This message is now awaiting your signature." }),
|
|
20129
|
+
awaitingSignature && onSwitchToSign && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-[18px] border border-status-warning-line dark:border-amber-300/[0.20] bg-status-warning-bg dark:bg-amber-950/[0.12] px-3 py-2 flex items-center justify-between gap-3", children: [
|
|
20130
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-status-warning-text dark:text-amber-100/[0.82]", children: "This message is now awaiting your signature." }),
|
|
20180
20131
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20181
20132
|
"button",
|
|
20182
20133
|
{
|
|
@@ -20205,7 +20156,7 @@ function InspectFooter({
|
|
|
20205
20156
|
href: txExplorerUrl,
|
|
20206
20157
|
target: "_blank",
|
|
20207
20158
|
rel: "noopener noreferrer",
|
|
20208
|
-
className: "text-blue-300/[0.90] hover:text-blue-200 hover:underline underline-offset-2 transition-colors",
|
|
20159
|
+
className: "text-azure dark:text-blue-300/[0.90] hover:text-azure-deep dark:hover:text-blue-200 hover:underline underline-offset-2 transition-colors",
|
|
20209
20160
|
children: [
|
|
20210
20161
|
formatTxHashShort(txHash),
|
|
20211
20162
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "ml-0.5 text-[9px] align-middle opacity-70", children: "\u2197" })
|
|
@@ -20231,7 +20182,7 @@ Opens in block explorer` : txHash
|
|
|
20231
20182
|
] }),
|
|
20232
20183
|
message.response?.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
20233
20184
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-medium uppercase tracking-[0.13em] text-text-muted mb-0.5", children: "Error" }),
|
|
20234
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-red-200 break-words", children: message.response.error })
|
|
20185
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-status-error-text dark:text-red-200 break-words", children: message.response.error })
|
|
20235
20186
|
] }),
|
|
20236
20187
|
reexecutions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("details", { children: [
|
|
20237
20188
|
/* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "text-[11px] uppercase tracking-[0.12em] text-text-muted cursor-pointer hover:text-text-primary transition-colors", children: [
|
|
@@ -20245,7 +20196,7 @@ Opens in block explorer` : txHash
|
|
|
20245
20196
|
className: "text-[11px] rounded-[10px] border border-border-light px-2 py-1 bg-surface-alt",
|
|
20246
20197
|
children: [
|
|
20247
20198
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
20248
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: r.success ? "text-emerald-300/[0.90]" : "text-red-200", children: r.success ? "Succeeded" : "Failed" }),
|
|
20199
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: r.success ? "text-status-success-text dark:text-emerald-300/[0.90]" : "text-status-error-text dark:text-red-200", children: r.success ? "Succeeded" : "Failed" }),
|
|
20249
20200
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-muted", children: formatRelativeTime(r.attempted_at) })
|
|
20250
20201
|
] }),
|
|
20251
20202
|
r.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-text-secondary break-words", children: r.error })
|
|
@@ -20255,7 +20206,7 @@ Opens in block explorer` : txHash
|
|
|
20255
20206
|
)) })
|
|
20256
20207
|
] })
|
|
20257
20208
|
] }),
|
|
20258
|
-
actionError && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-[16px] border border-red-300/[0.24] bg-red-950/[0.18] px-3 py-2 text-[11px] text-red-100", children: actionError }),
|
|
20209
|
+
actionError && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-[16px] border border-status-error-line dark:border-red-300/[0.24] bg-status-error-bg dark:bg-red-950/[0.18] px-3 py-2 text-[11px] text-status-error-text dark:text-red-100", children: actionError }),
|
|
20259
20210
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-2", children: [
|
|
20260
20211
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20261
20212
|
"button",
|
|
@@ -20638,8 +20589,10 @@ function SignatureWorkflow({
|
|
|
20638
20589
|
] });
|
|
20639
20590
|
}
|
|
20640
20591
|
var PLACEMENT_CLASSES = {
|
|
20641
|
-
|
|
20642
|
-
|
|
20592
|
+
// The top corners clear the status bar of a home-screen install (zero
|
|
20593
|
+
// in a browser tab).
|
|
20594
|
+
"top-left": "top-[calc(1rem+env(safe-area-inset-top))] left-4",
|
|
20595
|
+
"top-right": "top-[calc(1rem+env(safe-area-inset-top))] right-4",
|
|
20643
20596
|
"bottom-left": "bottom-4 left-4",
|
|
20644
20597
|
"bottom-right": "bottom-4 right-4"
|
|
20645
20598
|
};
|
|
@@ -23070,7 +23023,7 @@ function SecurityPage() {
|
|
|
23070
23023
|
rotateStep === "added" || rotateStep === "removing" || rotateStep === "remove-pending" || rotateStep === "done" ? "\u2713 " : "1. ",
|
|
23071
23024
|
"Add new key"
|
|
23072
23025
|
] }),
|
|
23073
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23026
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { "aria-hidden": "true", className: "h-3 w-3" }),
|
|
23074
23027
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: rotateStep === "added" || rotateStep === "removing" || rotateStep === "remove-pending" ? "text-text-primary font-medium" : "", children: [
|
|
23075
23028
|
rotateStep === "done" ? "\u2713 " : "2. ",
|
|
23076
23029
|
"Remove old key"
|
|
@@ -23992,18 +23945,18 @@ var GroupsView = ({
|
|
|
23992
23945
|
] }),
|
|
23993
23946
|
error && /* @__PURE__ */ jsxRuntime.jsx(ErrorBanner, { children: error }),
|
|
23994
23947
|
delegationSession?.kind === "owned" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-[22px] border border-cyan-300/[0.18] bg-cyan-400/[0.07] px-3.5 py-3 shadow-[inset_0_1px_0_rgba(255,255,255,0.035)]", children: [
|
|
23995
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-[0.12em] text-cyan-300/80", children: "Account ownership path" }),
|
|
23948
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-[0.12em] text-azure dark:text-cyan-300/80", children: "Account ownership path" }),
|
|
23996
23949
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
23997
23950
|
"div",
|
|
23998
23951
|
{
|
|
23999
23952
|
className: "mt-2 flex min-w-0 items-center gap-2",
|
|
24000
23953
|
"aria-label": `${sourceGroup?.name ?? "Owning group"} is operating ${activeOwnedGroup?.name ?? "owned group"}`,
|
|
24001
23954
|
children: [
|
|
24002
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate rounded-lg border border-white/[0.08] bg-white/[0.035] px-2.5 py-1.5 text-[11px] font-semibold text-text-secondary", children: "You" }),
|
|
24003
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24004
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate rounded-lg border border-white/[0.08] bg-white/[0.035] px-2.5 py-1.5 text-[11px] font-semibold text-text-secondary", children: sourceGroup?.name ?? compactGroupId(delegationSession.parentGroupId) }),
|
|
24005
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24006
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate rounded-lg border border-cyan-300/[0.18] bg-cyan-300/[0.08] px-2.5 py-1.5 text-[11px] font-semibold text-cyan-200", children: activeOwnedGroup?.name ?? compactGroupId(delegationSession.currentGroupId) })
|
|
23955
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate rounded-lg border border-border-default dark:border-white/[0.08] bg-chip dark:bg-white/[0.035] px-2.5 py-1.5 text-[11px] font-semibold text-text-secondary", children: "You" }),
|
|
23956
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { "aria-hidden": "true", className: "h-3.5 w-3.5 shrink-0 text-azure dark:text-cyan-300/70" }),
|
|
23957
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate rounded-lg border border-border-default dark:border-white/[0.08] bg-chip dark:bg-white/[0.035] px-2.5 py-1.5 text-[11px] font-semibold text-text-secondary", children: sourceGroup?.name ?? compactGroupId(delegationSession.parentGroupId) }),
|
|
23958
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { "aria-hidden": "true", className: "h-3.5 w-3.5 shrink-0 text-azure dark:text-cyan-300/70" }),
|
|
23959
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate rounded-lg border border-azure-line dark:border-cyan-300/[0.18] bg-azure-tint dark:bg-cyan-300/[0.08] px-2.5 py-1.5 text-[11px] font-semibold text-azure dark:text-cyan-200", children: activeOwnedGroup?.name ?? compactGroupId(delegationSession.currentGroupId) })
|
|
24007
23960
|
]
|
|
24008
23961
|
}
|
|
24009
23962
|
),
|
|
@@ -24015,7 +23968,7 @@ var GroupsView = ({
|
|
|
24015
23968
|
type: "button",
|
|
24016
23969
|
onClick: () => void handleReturnToParent(),
|
|
24017
23970
|
disabled: busyId === `parent:${delegationSession.parentGroupId}`,
|
|
24018
|
-
className: "rounded-full border border-cyan-300/[0.16] bg-cyan-300/[0.08] px-3 py-1.5 text-[11px] font-semibold text-cyan-200 transition-colors hover:bg-cyan-300/[0.13] disabled:opacity-45",
|
|
23971
|
+
className: "rounded-full border border-azure-line dark:border-cyan-300/[0.16] bg-azure-tint dark:bg-cyan-300/[0.08] px-3 py-1.5 text-[11px] font-semibold text-azure dark:text-cyan-200 transition-colors hover:bg-azure-muted dark:hover:bg-cyan-300/[0.13] disabled:opacity-45",
|
|
24019
23972
|
children: busyId === `parent:${delegationSession.parentGroupId}` ? "Returning..." : `Return to ${sourceGroup?.name ?? "owning group"}`
|
|
24020
23973
|
}
|
|
24021
23974
|
),
|
|
@@ -24031,7 +23984,7 @@ var GroupsView = ({
|
|
|
24031
23984
|
)
|
|
24032
23985
|
] })
|
|
24033
23986
|
] }) : actingAsAnyGroup ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 rounded-[22px] border border-amber-300/[0.18] bg-amber-400/[0.08] px-3.5 py-3 shadow-[inset_0_1px_0_rgba(255,255,255,0.035)]", children: [
|
|
24034
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "min-w-0 flex-1 text-[12px] font-semibold leading-5 text-amber-300", children: [
|
|
23987
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "min-w-0 flex-1 text-[12px] font-semibold leading-5 text-status-warning-text dark:text-amber-300", children: [
|
|
24035
23988
|
"Acting as ",
|
|
24036
23989
|
sourceGroup?.name ?? "a group",
|
|
24037
23990
|
". Operations use its direct delegation token."
|
|
@@ -24366,7 +24319,7 @@ function OwnedGroupRow({
|
|
|
24366
24319
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "px-3.5 py-3", children: [
|
|
24367
24320
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
24368
24321
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-[11px] font-semibold text-text-secondary", children: sourceName }),
|
|
24369
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24322
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { "aria-hidden": "true", className: "h-3.5 w-3.5 shrink-0 text-azure dark:text-cyan-300/70" }),
|
|
24370
24323
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-[12px] font-semibold text-text-primary", children: projection.group.name })
|
|
24371
24324
|
] }),
|
|
24372
24325
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between gap-3", children: [
|
|
@@ -24377,7 +24330,7 @@ function OwnedGroupRow({
|
|
|
24377
24330
|
type: "button",
|
|
24378
24331
|
onClick: onSwitch,
|
|
24379
24332
|
disabled: busy,
|
|
24380
|
-
className: "shrink-0 rounded-full border border-cyan-300/[0.16] bg-cyan-300/[0.08] px-3 py-1.5 text-[11px] font-semibold text-cyan-200 transition-colors hover:bg-cyan-300/[0.13] disabled:cursor-not-allowed disabled:opacity-45",
|
|
24333
|
+
className: "shrink-0 rounded-full border border-azure-line dark:border-cyan-300/[0.16] bg-azure-tint dark:bg-cyan-300/[0.08] px-3 py-1.5 text-[11px] font-semibold text-azure dark:text-cyan-200 transition-colors hover:bg-azure-muted dark:hover:bg-cyan-300/[0.13] disabled:cursor-not-allowed disabled:opacity-45",
|
|
24381
24334
|
children: busy ? "Checking ownership..." : `Operate as ${projection.group.name}`
|
|
24382
24335
|
}
|
|
24383
24336
|
)
|
|
@@ -24864,7 +24817,7 @@ function PlusIcon() {
|
|
|
24864
24817
|
}
|
|
24865
24818
|
function RoleBadge({ role }) {
|
|
24866
24819
|
const label = normalizeRole(role);
|
|
24867
|
-
const tone = label === "owner" ? "bg-orange-500/[0.16] text-orange-300" : label === "admin" ? "bg-blue-500/[0.16] text-blue-300" : "bg-chip text-text-secondary";
|
|
24820
|
+
const tone = label === "owner" ? "bg-orange-500/[0.16] text-primary dark:text-orange-300" : label === "admin" ? "bg-blue-500/[0.16] text-azure dark:text-blue-300" : "bg-chip text-text-secondary";
|
|
24868
24821
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24869
24822
|
"span",
|
|
24870
24823
|
{
|
|
@@ -25006,7 +24959,7 @@ function ActiveEnvironmentBadge({
|
|
|
25006
24959
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center justify-between gap-3 px-1", children: [
|
|
25007
24960
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-medium text-text-muted", children: "Mode" }),
|
|
25008
24961
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 truncate text-right text-[9px] text-text-muted", children: [
|
|
25009
|
-
environment.mode === "unknown" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1.5 font-semibold text-amber-400", children: "Unconfigured" }),
|
|
24962
|
+
environment.mode === "unknown" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1.5 font-semibold text-status-warning-text dark:text-amber-400", children: "Unconfigured" }),
|
|
25010
24963
|
environment.network,
|
|
25011
24964
|
environment.chainId && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1.5 font-mono text-text-secondary", children: environment.chainId })
|
|
25012
24965
|
] })
|
|
@@ -25020,7 +24973,7 @@ function ActiveEnvironmentBadge({
|
|
|
25020
24973
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
25021
24974
|
"span",
|
|
25022
24975
|
{
|
|
25023
|
-
className: `inline-flex items-center gap-1.5 text-[11px] font-semibold ${environment.mode === "test" ? "text-amber-400" : environment.mode === "live" ? "text-emerald-400" : "text-text-secondary"}`,
|
|
24976
|
+
className: `inline-flex items-center gap-1.5 text-[11px] font-semibold ${environment.mode === "test" ? "text-status-warning-text dark:text-amber-400" : environment.mode === "live" ? "text-status-success-text dark:text-emerald-400" : "text-text-secondary"}`,
|
|
25024
24977
|
children: [
|
|
25025
24978
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25026
24979
|
"span",
|
|
@@ -25064,7 +25017,7 @@ function ActiveEnvironmentBadge({
|
|
|
25064
25017
|
void switchTo(option);
|
|
25065
25018
|
}
|
|
25066
25019
|
},
|
|
25067
|
-
className: `flex min-h-[34px] min-w-0 items-center justify-center gap-1.5 rounded-lg border px-2 text-[11px] font-medium transition-colors focus:outline-none focus-visible:ring-2 disabled:cursor-default ${option.active ? test ? "border-amber-500/40 bg-raised text-amber-400 focus-visible:ring-amber-500/40" : "border-emerald-500/40 bg-raised text-emerald-400 focus-visible:ring-emerald-500/40" : unavailable ? "border-transparent text-text-muted opacity-50" : "border-transparent text-text-secondary hover:bg-raised-hover hover:text-text-primary focus-visible:ring-border-strong"}`,
|
|
25020
|
+
className: `flex min-h-[34px] min-w-0 items-center justify-center gap-1.5 rounded-lg border px-2 text-[11px] font-medium transition-colors focus:outline-none focus-visible:ring-2 disabled:cursor-default ${option.active ? test ? "border-amber-500/40 bg-raised text-status-warning-text dark:text-amber-400 focus-visible:ring-amber-500/40" : "border-emerald-500/40 bg-raised text-status-success-text dark:text-emerald-400 focus-visible:ring-emerald-500/40" : unavailable ? "border-transparent text-text-muted opacity-50" : "border-transparent text-text-secondary hover:bg-raised-hover hover:text-text-primary focus-visible:ring-border-strong"}`,
|
|
25068
25021
|
children: busy ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
25069
25022
|
option.active && /* @__PURE__ */ jsxRuntime.jsx(
|
|
25070
25023
|
"span",
|
|
@@ -25135,7 +25088,7 @@ function ActiveEnvironmentBadge({
|
|
|
25135
25088
|
"div",
|
|
25136
25089
|
{
|
|
25137
25090
|
role: "alert",
|
|
25138
|
-
className: "mt-2 rounded-xl border border-red-500/25 bg-red-500/[0.07] px-3 py-2 text-[10px] leading-4 text-red-400",
|
|
25091
|
+
className: "mt-2 rounded-xl border border-status-error-line dark:border-red-500/25 bg-status-error-bg dark:bg-red-500/[0.07] px-3 py-2 text-[10px] leading-4 text-status-error-text dark:text-red-400",
|
|
25139
25092
|
children: error
|
|
25140
25093
|
}
|
|
25141
25094
|
)
|
|
@@ -25830,7 +25783,7 @@ function WalletMenu({
|
|
|
25830
25783
|
onClick: onOpenActors,
|
|
25831
25784
|
className: "flex min-h-[52px] w-full items-center gap-3 px-4 py-2 text-left text-[14px] font-semibold text-text-primary transition-colors hover:bg-raised-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-orange-400/70",
|
|
25832
25785
|
children: [
|
|
25833
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex h-7 w-7 items-center justify-center rounded-lg bg-
|
|
25786
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex h-7 w-7 items-center justify-center rounded-lg bg-primary/10 text-primary dark:text-orange-400", children: activeActor?.kind === "self" ? /* @__PURE__ */ jsxRuntime.jsx(IconUser, {}) : /* @__PURE__ */ jsxRuntime.jsx(IconBuilding, {}) }),
|
|
25834
25787
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
25835
25788
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate", children: activeActor?.label ?? userName }),
|
|
25836
25789
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-0.5 block text-[10px] font-medium capitalize text-text-muted", children: activeActor?.kind ?? "self" })
|
|
@@ -25845,7 +25798,7 @@ function WalletMenu({
|
|
|
25845
25798
|
{
|
|
25846
25799
|
type: "button",
|
|
25847
25800
|
onClick: onSignOut,
|
|
25848
|
-
className: "mt-3 flex min-h-[48px] w-full items-center justify-center gap-2 rounded-[24px] bg-red-500/10 px-4 py-3 text-[14px] font-semibold text-red-400 transition-colors hover:bg-red-500/15 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-400/70",
|
|
25801
|
+
className: "mt-3 flex min-h-[48px] w-full items-center justify-center gap-2 rounded-[24px] bg-status-error-bg dark:bg-red-500/10 px-4 py-3 text-[14px] font-semibold text-status-error-text dark:text-red-400 transition-colors hover:bg-red-500/15 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-400/70",
|
|
25849
25802
|
children: [
|
|
25850
25803
|
/* @__PURE__ */ jsxRuntime.jsx(IconSignOut, {}),
|
|
25851
25804
|
"Sign out"
|
|
@@ -25877,7 +25830,7 @@ function WalletMenuRow({
|
|
|
25877
25830
|
{
|
|
25878
25831
|
className: cx4(
|
|
25879
25832
|
"mr-3 inline-flex h-8 w-8 items-center justify-center rounded-lg",
|
|
25880
|
-
urgent ? "bg-violet-500/20 text-orange-400" : active ? "bg-surface-alt text-text-secondary" : "bg-surface-alt text-text-muted"
|
|
25833
|
+
urgent ? "bg-violet-500/20 text-primary dark:text-orange-400" : active ? "bg-surface-alt text-text-secondary" : "bg-surface-alt text-text-muted"
|
|
25881
25834
|
),
|
|
25882
25835
|
children: item.icon
|
|
25883
25836
|
}
|
|
@@ -26117,7 +26070,7 @@ function DirectoryPane({
|
|
|
26117
26070
|
{
|
|
26118
26071
|
type: "button",
|
|
26119
26072
|
onClick: () => setQuery(""),
|
|
26120
|
-
className: "mt-2 min-h-[44px] rounded-xl px-3 text-[12px] font-semibold text-orange-400 hover:bg-orange-400/10",
|
|
26073
|
+
className: "mt-2 min-h-[44px] rounded-xl px-3 text-[12px] font-semibold text-primary dark:text-orange-400 hover:bg-primary/10 dark:hover:bg-orange-400/10",
|
|
26121
26074
|
children: "Clear search"
|
|
26122
26075
|
}
|
|
26123
26076
|
)
|
|
@@ -28047,7 +28000,7 @@ var BillingCenter = ({ dense = false }) => {
|
|
|
28047
28000
|
if (notConfigured) {
|
|
28048
28001
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: outerClass, children: [
|
|
28049
28002
|
!dense && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
28050
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h1", { className: "text-lg font-semibold text-text-primary", children: [
|
|
28003
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h1", { className: "text-lg font-semibold text-text-primary max-sm:sr-only", children: [
|
|
28051
28004
|
"Usage & billing",
|
|
28052
28005
|
!isLiveMode() && paymentsUrlMap() && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 align-middle inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-semibold uppercase tracking-wider bg-amber-500/15 text-amber-600 ring-1 ring-amber-500/40", children: "Test mode" })
|
|
28053
28006
|
] }),
|
|
@@ -28133,7 +28086,7 @@ var BillingCenter = ({ dense = false }) => {
|
|
|
28133
28086
|
const recoveryAction = summary ? billingRecoveryAction(summary) : null;
|
|
28134
28087
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: outerClass, children: [
|
|
28135
28088
|
!dense && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
28136
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h1", { className: "text-lg font-semibold text-text-primary", children: [
|
|
28089
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h1", { className: "text-lg font-semibold text-text-primary max-sm:sr-only", children: [
|
|
28137
28090
|
"Usage & billing",
|
|
28138
28091
|
!isLiveMode() && paymentsUrlMap() && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 align-middle inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-semibold uppercase tracking-wider bg-amber-500/15 text-amber-600 ring-1 ring-amber-500/40", children: "Test mode" })
|
|
28139
28092
|
] }),
|
|
@@ -29710,7 +29663,7 @@ var VerificationDialog = ({
|
|
|
29710
29663
|
type: "button",
|
|
29711
29664
|
onClick: () => setActiveProvider(null),
|
|
29712
29665
|
className: "mb-3 text-[12px] text-text-secondary hover:text-text-primary",
|
|
29713
|
-
children: "\
|
|
29666
|
+
children: "\u2039 Choose a different provider"
|
|
29714
29667
|
}
|
|
29715
29668
|
),
|
|
29716
29669
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -29855,7 +29808,7 @@ function BusinessVerificationSection({
|
|
|
29855
29808
|
};
|
|
29856
29809
|
const copy = STATUS_COPY[status] ?? STATUS_COPY.unverified;
|
|
29857
29810
|
const impl = flowInstance ? resolveKycInstance(config, flowInstance) : null;
|
|
29858
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4 space-y-3", children: [
|
|
29811
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4 space-y-3", children: [
|
|
29859
29812
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
29860
29813
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Business verification" }),
|
|
29861
29814
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -29873,7 +29826,7 @@ function BusinessVerificationSection({
|
|
|
29873
29826
|
type: "button",
|
|
29874
29827
|
onClick: () => setFlowInstance(null),
|
|
29875
29828
|
className: "mb-3 text-[12px] text-text-secondary hover:text-text-primary",
|
|
29876
|
-
children: "\
|
|
29829
|
+
children: "\u2039 Back"
|
|
29877
29830
|
}
|
|
29878
29831
|
),
|
|
29879
29832
|
/* @__PURE__ */ jsxRuntime.jsx(
|