@yieldfabric/wallet 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -1
- package/dist/index.cjs +327 -215
- package/dist/index.d.cts +42 -10
- package/dist/index.d.ts +42 -10
- package/dist/index.js +327 -216
- package/package.json +5 -4
package/dist/index.js
CHANGED
|
@@ -5345,7 +5345,7 @@ var init_SignupFlow = __esm({
|
|
|
5345
5345
|
};
|
|
5346
5346
|
AvererSidebar = ({ onError }) => {
|
|
5347
5347
|
const navigate = useWalletNavigate();
|
|
5348
|
-
return /* @__PURE__ */ 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
|
|
5348
|
+
return /* @__PURE__ */ 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: [
|
|
5349
5349
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 md:gap-10", children: [
|
|
5350
5350
|
/* @__PURE__ */ jsx("div", { className: "text-text-primary", children: /* @__PURE__ */ jsx(YieldFabricLockup, { size: 32 }) }),
|
|
5351
5351
|
/* @__PURE__ */ jsxs("div", { className: "hidden md:block space-y-3 max-w-[260px]", children: [
|
|
@@ -5954,7 +5954,7 @@ function clearDynamicSession() {
|
|
|
5954
5954
|
init_WalletConfigContext();
|
|
5955
5955
|
var WalletAuthContext = createContext(void 0);
|
|
5956
5956
|
function WalletAuthProvider({ children }) {
|
|
5957
|
-
const { onSessionBootstrapped } = useWalletConfig();
|
|
5957
|
+
const { onSessionBootstrapped, onBeforeLogout } = useWalletConfig();
|
|
5958
5958
|
const [user, setUser] = useState(null);
|
|
5959
5959
|
const [isLoading, setIsLoading] = useState(true);
|
|
5960
5960
|
const [error, setError] = useState(null);
|
|
@@ -6047,6 +6047,7 @@ function WalletAuthProvider({ children }) {
|
|
|
6047
6047
|
setIsLoading(true);
|
|
6048
6048
|
setError(null);
|
|
6049
6049
|
tokenRenewalService.stopRenewal();
|
|
6050
|
+
await Promise.resolve().then(() => onBeforeLogout?.()).catch(() => void 0);
|
|
6050
6051
|
await authService.logout();
|
|
6051
6052
|
clearDynamicSession();
|
|
6052
6053
|
setUser(null);
|
|
@@ -6062,6 +6063,7 @@ function WalletAuthProvider({ children }) {
|
|
|
6062
6063
|
setIsLoading(true);
|
|
6063
6064
|
setError(null);
|
|
6064
6065
|
tokenRenewalService.stopRenewal();
|
|
6066
|
+
await Promise.resolve().then(() => onBeforeLogout?.()).catch(() => void 0);
|
|
6065
6067
|
await authService.logoutAll();
|
|
6066
6068
|
clearDynamicSession();
|
|
6067
6069
|
setUser(null);
|
|
@@ -8786,6 +8788,16 @@ var WalletCenterContext = createContext(null);
|
|
|
8786
8788
|
function WalletCenterProvider({ children }) {
|
|
8787
8789
|
const [isOpen, setIsOpen] = useState(false);
|
|
8788
8790
|
const [requestedView, setRequestedView] = useState("menu");
|
|
8791
|
+
const [host, setHostElement] = useState(null);
|
|
8792
|
+
const [hostOptions, setHostOptions] = useState({});
|
|
8793
|
+
const [hostTitle, setHostTitle] = useState(null);
|
|
8794
|
+
const setHost = useCallback((next) => {
|
|
8795
|
+
setHostElement((current) => {
|
|
8796
|
+
if (current === next) return current;
|
|
8797
|
+
if (!next) setHostTitle(null);
|
|
8798
|
+
return next;
|
|
8799
|
+
});
|
|
8800
|
+
}, []);
|
|
8789
8801
|
const openWalletCenter = useCallback((view = "menu") => {
|
|
8790
8802
|
setRequestedView(view);
|
|
8791
8803
|
setIsOpen(true);
|
|
@@ -8795,8 +8807,8 @@ function WalletCenterProvider({ children }) {
|
|
|
8795
8807
|
setRequestedView("menu");
|
|
8796
8808
|
}, []);
|
|
8797
8809
|
const value = useMemo(
|
|
8798
|
-
() => ({ isOpen, requestedView, openWalletCenter, closeWalletCenter }),
|
|
8799
|
-
[isOpen, requestedView, openWalletCenter, closeWalletCenter]
|
|
8810
|
+
() => ({ isOpen, requestedView, openWalletCenter, closeWalletCenter, host, setHost, hostOptions, setHostOptions, hostTitle, setHostTitle }),
|
|
8811
|
+
[isOpen, requestedView, openWalletCenter, closeWalletCenter, host, setHost, hostOptions, hostTitle]
|
|
8800
8812
|
);
|
|
8801
8813
|
return /* @__PURE__ */ jsx(WalletCenterContext.Provider, { value, children });
|
|
8802
8814
|
}
|
|
@@ -8824,53 +8836,105 @@ function RedirectTo({ href, replace = true }) {
|
|
|
8824
8836
|
return null;
|
|
8825
8837
|
}
|
|
8826
8838
|
|
|
8827
|
-
// src/core/
|
|
8828
|
-
|
|
8829
|
-
init_config();
|
|
8830
|
-
function subscribeEntityEvents(entityId, onEvent, onError) {
|
|
8831
|
-
let eventSource = null;
|
|
8832
|
-
let reconnectTimeout = null;
|
|
8833
|
-
let attempts = 0;
|
|
8839
|
+
// src/core/jsonEventStream.ts
|
|
8840
|
+
function subscribeJsonEvents(options) {
|
|
8834
8841
|
let closed = false;
|
|
8835
|
-
|
|
8842
|
+
let retry = 0;
|
|
8843
|
+
let timer;
|
|
8844
|
+
let controller;
|
|
8845
|
+
const connect = async () => {
|
|
8836
8846
|
if (closed) return;
|
|
8837
|
-
const
|
|
8838
|
-
|
|
8839
|
-
|
|
8840
|
-
|
|
8841
|
-
|
|
8842
|
-
|
|
8843
|
-
|
|
8844
|
-
const url = `${baseUrl}/api/events/stream?entity_id=${encodeURIComponent(entityId)}&access_token=${encodeURIComponent(token)}`;
|
|
8845
|
-
eventSource = new EventSource(url);
|
|
8846
|
-
eventSource.onmessage = (e) => {
|
|
8847
|
-
try {
|
|
8848
|
-
onEvent(JSON.parse(e.data));
|
|
8849
|
-
} catch {
|
|
8850
|
-
}
|
|
8851
|
-
};
|
|
8852
|
-
eventSource.onopen = () => {
|
|
8853
|
-
attempts = 0;
|
|
8847
|
+
const attempt = new AbortController();
|
|
8848
|
+
controller = attempt;
|
|
8849
|
+
let reader;
|
|
8850
|
+
let stall;
|
|
8851
|
+
const renewDeadline = () => {
|
|
8852
|
+
if (stall) clearTimeout(stall);
|
|
8853
|
+
stall = setTimeout(() => attempt.abort(), 75e3);
|
|
8854
8854
|
};
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
if (
|
|
8859
|
-
|
|
8860
|
-
|
|
8861
|
-
|
|
8862
|
-
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
8855
|
+
try {
|
|
8856
|
+
renewDeadline();
|
|
8857
|
+
const token = options.token();
|
|
8858
|
+
if (!token) throw new Error("Sign in to receive live updates.");
|
|
8859
|
+
const response = await fetch(options.url(), {
|
|
8860
|
+
headers: { Authorization: `Bearer ${token}`, Accept: "text/event-stream" },
|
|
8861
|
+
signal: attempt.signal,
|
|
8862
|
+
credentials: "omit",
|
|
8863
|
+
cache: "no-store",
|
|
8864
|
+
redirect: "error"
|
|
8865
|
+
});
|
|
8866
|
+
if (!response.ok || !response.headers.get("content-type")?.includes("text/event-stream") || !response.body) {
|
|
8867
|
+
throw new Error(`Live updates unavailable (HTTP ${response.status}).`);
|
|
8868
|
+
}
|
|
8869
|
+
reader = response.body.getReader();
|
|
8870
|
+
const decoder = new TextDecoder();
|
|
8871
|
+
let buffer = "", data = [], size = 0;
|
|
8872
|
+
while (!closed) {
|
|
8873
|
+
const part = await reader.read();
|
|
8874
|
+
if (part.done) break;
|
|
8875
|
+
renewDeadline();
|
|
8876
|
+
buffer += decoder.decode(part.value, { stream: true });
|
|
8877
|
+
for (; ; ) {
|
|
8878
|
+
const end = buffer.search(/[\r\n]/);
|
|
8879
|
+
if (end < 0 || buffer[end] === "\r" && end === buffer.length - 1) break;
|
|
8880
|
+
const line = buffer.slice(0, end);
|
|
8881
|
+
const delimiter = buffer[end] === "\r" && buffer[end + 1] === "\n" ? 2 : 1;
|
|
8882
|
+
buffer = buffer.slice(end + delimiter);
|
|
8883
|
+
size += line.length;
|
|
8884
|
+
if (size > 262144) throw new Error("Live update exceeded its size limit.");
|
|
8885
|
+
if (!line) {
|
|
8886
|
+
if (data.length) {
|
|
8887
|
+
let value;
|
|
8888
|
+
try {
|
|
8889
|
+
value = JSON.parse(data.join("\n"));
|
|
8890
|
+
} catch {
|
|
8891
|
+
}
|
|
8892
|
+
if (value !== void 0 && !closed) {
|
|
8893
|
+
retry = 0;
|
|
8894
|
+
options.onEvent(value);
|
|
8895
|
+
}
|
|
8896
|
+
}
|
|
8897
|
+
data = [];
|
|
8898
|
+
size = 0;
|
|
8899
|
+
} else if (line.startsWith("data:")) {
|
|
8900
|
+
data.push(line.slice(5).replace(/^ /, ""));
|
|
8901
|
+
}
|
|
8902
|
+
}
|
|
8903
|
+
if (buffer.length + size > 262144) throw new Error("Live update exceeded its size limit.");
|
|
8904
|
+
}
|
|
8905
|
+
if (!closed) throw new Error("Live updates disconnected.");
|
|
8906
|
+
} catch (error) {
|
|
8907
|
+
if (!closed) options.onError?.(error instanceof Error ? error : new Error("Live updates unavailable."));
|
|
8908
|
+
} finally {
|
|
8909
|
+
if (stall) clearTimeout(stall);
|
|
8910
|
+
attempt.abort();
|
|
8911
|
+
if (reader) {
|
|
8912
|
+
void reader.cancel().catch(() => void 0);
|
|
8913
|
+
reader.releaseLock();
|
|
8914
|
+
}
|
|
8915
|
+
if (!closed) timer = setTimeout(() => void connect(), Math.min(1e3 * 2 ** Math.min(retry++, 5), 3e4));
|
|
8916
|
+
}
|
|
8917
|
+
};
|
|
8918
|
+
void connect();
|
|
8866
8919
|
return () => {
|
|
8867
8920
|
closed = true;
|
|
8868
|
-
|
|
8869
|
-
|
|
8870
|
-
if (reconnectTimeout) clearTimeout(reconnectTimeout);
|
|
8921
|
+
if (timer) clearTimeout(timer);
|
|
8922
|
+
controller?.abort();
|
|
8871
8923
|
};
|
|
8872
8924
|
}
|
|
8873
8925
|
|
|
8926
|
+
// src/core/entityEvents.ts
|
|
8927
|
+
init_tokenManager();
|
|
8928
|
+
init_config();
|
|
8929
|
+
function subscribeEntityEvents(entityId, onEvent, onError) {
|
|
8930
|
+
return subscribeJsonEvents({
|
|
8931
|
+
url: () => `${getPaymentsServiceUrl()}/api/events/stream?entity_id=${encodeURIComponent(entityId)}`,
|
|
8932
|
+
token: () => tokenManager.getCurrentToken(),
|
|
8933
|
+
onEvent,
|
|
8934
|
+
onError
|
|
8935
|
+
});
|
|
8936
|
+
}
|
|
8937
|
+
|
|
8874
8938
|
// src/core/globalNotificationService.ts
|
|
8875
8939
|
var _GlobalNotificationService = class _GlobalNotificationService {
|
|
8876
8940
|
constructor(callbacks) {
|
|
@@ -9247,11 +9311,11 @@ function humanizeMessageType(messageType) {
|
|
|
9247
9311
|
return spaced.charAt(0).toUpperCase() + spaced.slice(1);
|
|
9248
9312
|
}
|
|
9249
9313
|
var TONE_COLORS = {
|
|
9250
|
-
success: { dotClass: "bg-emerald-300", textClass: "text-emerald-300", bgClass: "bg-emerald-950/[0.16]" },
|
|
9251
|
-
danger: { dotClass: "bg-red-300", textClass: "text-red-200", bgClass: "bg-red-950/[0.16]" },
|
|
9252
|
-
warn: { dotClass: "bg-amber-300", textClass: "text-amber-200", bgClass: "bg-amber-950/[0.14]" },
|
|
9253
|
-
info: { dotClass: "bg-blue-300", textClass: "text-blue-200", bgClass: "bg-blue-950/[0.14]" },
|
|
9254
|
-
neutral: { dotClass: "bg-white/[0.34]", textClass: "text-white/[0.56]", bgClass: "bg-white/[0.045]" }
|
|
9314
|
+
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]" },
|
|
9315
|
+
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]" },
|
|
9316
|
+
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]" },
|
|
9317
|
+
info: { dotClass: "bg-blue-300", textClass: "text-azure dark:text-blue-200", bgClass: "bg-azure-tint dark:bg-blue-950/[0.14]" },
|
|
9318
|
+
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]" }
|
|
9255
9319
|
};
|
|
9256
9320
|
var STATUS_TO_TONE = {
|
|
9257
9321
|
completed: "success",
|
|
@@ -9382,7 +9446,7 @@ function CenterPrimaryButton({
|
|
|
9382
9446
|
size = "sm",
|
|
9383
9447
|
className = ""
|
|
9384
9448
|
}) {
|
|
9385
|
-
const sizeClasses2 = size === "md" ? "text-[12px] px-3 py-1.5" : "text-[11px] px-2.5 py-1";
|
|
9449
|
+
const sizeClasses2 = size === "md" ? "text-[12px] px-3 py-1.5 max-lg:min-h-[44px] max-lg:px-4 max-lg:text-[13px]" : "text-[11px] px-2.5 py-1 max-lg:min-h-[44px] max-lg:px-4 max-lg:text-[13px]";
|
|
9386
9450
|
return /* @__PURE__ */ jsx(
|
|
9387
9451
|
"button",
|
|
9388
9452
|
{
|
|
@@ -9391,7 +9455,7 @@ function CenterPrimaryButton({
|
|
|
9391
9455
|
onClick,
|
|
9392
9456
|
className: [
|
|
9393
9457
|
"font-medium rounded-md transition-colors",
|
|
9394
|
-
"bg-cta text-on-cta hover:bg-cta-hover",
|
|
9458
|
+
"bg-cta text-on-cta hover:bg-cta-hover active:opacity-90",
|
|
9395
9459
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
9396
9460
|
sizeClasses2,
|
|
9397
9461
|
className
|
|
@@ -10315,7 +10379,7 @@ function LoginPage({
|
|
|
10315
10379
|
align = "center",
|
|
10316
10380
|
logo
|
|
10317
10381
|
}) {
|
|
10318
|
-
const alignClass = align === "top" ? "items-start pt-
|
|
10382
|
+
const alignClass = align === "top" ? "items-start pt-[calc(3rem+env(safe-area-inset-top))] pb-12" : "items-center pt-[env(safe-area-inset-top)]";
|
|
10319
10383
|
return /* @__PURE__ */ jsx(
|
|
10320
10384
|
"div",
|
|
10321
10385
|
{
|
|
@@ -10454,7 +10518,7 @@ function OnboardingChoosePath({ chrome } = {}) {
|
|
|
10454
10518
|
/* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-[520px] text-center space-y-1.5", children: [
|
|
10455
10519
|
/* @__PURE__ */ jsx("h2", { className: "text-[18px] text-text-primary font-medium", children: messages.choosePath.header }),
|
|
10456
10520
|
/* @__PURE__ */ jsx("p", { className: "text-[12px] text-text-secondary", children: messages.choosePath.subheader }),
|
|
10457
|
-
configError && /* @__PURE__ */ jsx("p", { className: "text-[10px] text-orange-400 mt-2", children: "Provider config unavailable \u2014 falling back to email only." })
|
|
10521
|
+
configError && /* @__PURE__ */ 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." })
|
|
10458
10522
|
] }),
|
|
10459
10523
|
/* @__PURE__ */ jsxs("div", { className: "mx-auto w-full max-w-[480px] space-y-2.5", children: [
|
|
10460
10524
|
avererEnabled && /* @__PURE__ */ jsx(
|
|
@@ -11452,7 +11516,7 @@ function StripeProgressPanel({
|
|
|
11452
11516
|
detail ? /* @__PURE__ */ jsx("p", { className: "mt-2 text-[10px] leading-relaxed text-text-secondary/75", children: detail }) : null
|
|
11453
11517
|
] })
|
|
11454
11518
|
] }),
|
|
11455
|
-
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-border-default
|
|
11519
|
+
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-border-default", children: /* @__PURE__ */ jsx("div", { className: `h-full w-2/3 rounded-full ${delayed ? "bg-status-warning-text" : "bg-cta"} motion-safe:animate-pulse` }) })
|
|
11456
11520
|
] });
|
|
11457
11521
|
}
|
|
11458
11522
|
function StripeResultPanel({
|
|
@@ -11858,7 +11922,7 @@ function ProgressPanel({
|
|
|
11858
11922
|
/* @__PURE__ */ jsx("h1", { className: "text-[16px] font-medium text-text-primary leading-snug", children: title }),
|
|
11859
11923
|
/* @__PURE__ */ jsx("p", { className: "mt-1 text-[12px] leading-relaxed text-text-secondary", children: body })
|
|
11860
11924
|
] }),
|
|
11861
|
-
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-border-default
|
|
11925
|
+
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-border-default", children: /* @__PURE__ */ jsx(
|
|
11862
11926
|
"div",
|
|
11863
11927
|
{
|
|
11864
11928
|
className: `h-full w-2/3 rounded-full motion-safe:animate-pulse ${delayed ? "bg-status-warning-text" : "bg-cta"}`
|
|
@@ -12203,7 +12267,7 @@ function OnboardingChooseMethod({ chrome } = {}) {
|
|
|
12203
12267
|
return /* @__PURE__ */ jsx(StepShell, { chrome, children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
12204
12268
|
/* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
12205
12269
|
/* @__PURE__ */ jsx("h2", { className: "text-[16px] text-text-primary", children: messages.chooseMethod.header }),
|
|
12206
|
-
configError && /* @__PURE__ */ jsx("p", { className: "text-[10px] text-orange-400 mt-2", children: "Provider config unavailable \u2014 falling back to email only." })
|
|
12270
|
+
configError && /* @__PURE__ */ 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." })
|
|
12207
12271
|
] }),
|
|
12208
12272
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
12209
12273
|
enabled.map(({ id, impl }) => {
|
|
@@ -12996,7 +13060,7 @@ function SkeletonAvatar({
|
|
|
12996
13060
|
{
|
|
12997
13061
|
role: "img",
|
|
12998
13062
|
"aria-label": choice ? `${name} - ${choice.label} avatar` : `${name}'s avatar`,
|
|
12999
|
-
className: `rounded-full overflow-hidden flex items-center justify-center select-none bg-[#252525] ${className}`,
|
|
13063
|
+
className: `rounded-full overflow-hidden flex items-center justify-center select-none bg-surface-alt dark:bg-[#252525] ${className}`,
|
|
13000
13064
|
style: {
|
|
13001
13065
|
width: size,
|
|
13002
13066
|
height: size
|
|
@@ -13049,7 +13113,7 @@ function AvatarPicker({
|
|
|
13049
13113
|
onClick: () => onChange(c.id),
|
|
13050
13114
|
className: [
|
|
13051
13115
|
"rounded-full flex items-center justify-center select-none overflow-hidden",
|
|
13052
|
-
"transition-all border-2 bg-[#252525]",
|
|
13116
|
+
"transition-all border-2 bg-surface-alt dark:bg-[#252525]",
|
|
13053
13117
|
selected ? "border-primary scale-105" : "border-transparent hover:border-border-light"
|
|
13054
13118
|
].join(" "),
|
|
13055
13119
|
style: { width: tileSize, height: tileSize },
|
|
@@ -14927,7 +14991,7 @@ function RecoveryPanel({
|
|
|
14927
14991
|
return /* @__PURE__ */ jsx(
|
|
14928
14992
|
"div",
|
|
14929
14993
|
{
|
|
14930
|
-
className: "rounded-lg border border-status-warning-text/25 bg-status-warning-bg
|
|
14994
|
+
className: "rounded-lg border border-status-warning-text/25 bg-status-warning-bg px-3.5 py-3 text-status-warning-text",
|
|
14931
14995
|
role: "alert",
|
|
14932
14996
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
14933
14997
|
/* @__PURE__ */ jsx("div", { className: `mt-0.5 h-8 w-8 shrink-0 rounded-full flex items-center justify-center ${iconClass}`, children: /* @__PURE__ */ jsx(ExclamationTriangleIcon, { className: "h-4 w-4", strokeWidth: 1.8 }) }),
|
|
@@ -15368,7 +15432,7 @@ function AddWalletsStep({ chrome } = {}) {
|
|
|
15368
15432
|
showDynamic && /* @__PURE__ */ jsx(
|
|
15369
15433
|
"div",
|
|
15370
15434
|
{
|
|
15371
|
-
className: "fixed inset-0 z-
|
|
15435
|
+
className: "fixed inset-0 z-[10000] flex items-center justify-center bg-black/70 p-4",
|
|
15372
15436
|
role: "dialog",
|
|
15373
15437
|
"aria-modal": "true",
|
|
15374
15438
|
children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-md rounded-lg border border-border-default bg-surface p-4", children: [
|
|
@@ -15448,6 +15512,8 @@ var Drawer = ({
|
|
|
15448
15512
|
useEffect(() => {
|
|
15449
15513
|
if (!isOpen || typeof document === "undefined") return;
|
|
15450
15514
|
const previouslyFocused = document.activeElement;
|
|
15515
|
+
const bodyOverflow = document.body.style.overflow;
|
|
15516
|
+
document.body.style.overflow = "hidden";
|
|
15451
15517
|
const initialFocus = panelRef.current?.querySelector("[data-drawer-initial-focus]") ?? closeButtonRef.current;
|
|
15452
15518
|
initialFocus?.focus();
|
|
15453
15519
|
const handleKeyDown = (event) => {
|
|
@@ -15478,11 +15544,16 @@ var Drawer = ({
|
|
|
15478
15544
|
document.addEventListener("keydown", handleKeyDown);
|
|
15479
15545
|
return () => {
|
|
15480
15546
|
document.removeEventListener("keydown", handleKeyDown);
|
|
15547
|
+
document.body.style.overflow = bodyOverflow;
|
|
15481
15548
|
previouslyFocused?.focus?.();
|
|
15482
15549
|
};
|
|
15483
15550
|
}, [isOpen, onClose]);
|
|
15484
|
-
const widthClass = maxWidth === "sm" ? "w-full max-w-sm" : maxWidth === "md" ? "w-full max-w-md" : maxWidth === "lg" ? "w-full max-w-2xl" : maxWidth === "half" ? "w-1/2" : maxWidth === "full-mobile" ? "w-full xl:w-1/2" : maxWidth === "full" ? "w-full" : "w-full max-w-md";
|
|
15485
|
-
const widthStyle = maxWidth === "lg" ? { width: "672px", maxWidth: "672px" } :
|
|
15551
|
+
const widthClass = maxWidth === "sm" ? "w-full max-w-sm" : maxWidth === "md" ? "w-full max-w-md" : maxWidth === "lg" ? "w-full max-w-2xl" : maxWidth === "half" ? "w-full lg:w-1/2" : maxWidth === "full-mobile" ? "w-full xl:w-1/2" : maxWidth === "full" ? "w-full" : "w-full max-w-md";
|
|
15552
|
+
const widthStyle = maxWidth === "lg" ? { width: "672px", maxWidth: "672px" } : (
|
|
15553
|
+
// 'half' is a desk shape; a hard 50vw made it 187px on a phone. The
|
|
15554
|
+
// class carries the split now, so there is no inline width to fight.
|
|
15555
|
+
maxWidth === "half" ? {} : maxWidth === "full-mobile" ? {} : {}
|
|
15556
|
+
);
|
|
15486
15557
|
return /* @__PURE__ */ jsx(Fragment, { children: isOpen && /* @__PURE__ */ jsx("div", { className: "fixed inset-0 overflow-hidden z-[10000]", children: /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 overflow-hidden", children: [
|
|
15487
15558
|
/* @__PURE__ */ jsx(
|
|
15488
15559
|
"div",
|
|
@@ -15498,7 +15569,7 @@ var Drawer = ({
|
|
|
15498
15569
|
role: "dialog",
|
|
15499
15570
|
"aria-modal": "true",
|
|
15500
15571
|
"aria-labelledby": titleId,
|
|
15501
|
-
className: `pointer-events-auto ${panelBg} shadow-2xl h-full flex flex-col ${widthClass} ${panelClassName}`,
|
|
15572
|
+
className: `pointer-events-auto ${panelBg} shadow-2xl h-full flex flex-col pt-[env(safe-area-inset-top)] ${widthClass} ${panelClassName}`,
|
|
15502
15573
|
style: { ...widthStyle, ...panelStyle },
|
|
15503
15574
|
onClick: (e) => e.stopPropagation(),
|
|
15504
15575
|
children: [
|
|
@@ -15519,12 +15590,12 @@ var Drawer = ({
|
|
|
15519
15590
|
/* @__PURE__ */ jsx(
|
|
15520
15591
|
"div",
|
|
15521
15592
|
{
|
|
15522
|
-
className: `flex-1 px-3 pt-2 ${panelBg} ${fillHeight ? "flex flex-col overflow-hidden pb-0" : "overflow-y-auto pb-
|
|
15593
|
+
className: `flex-1 px-3 pt-2 ${panelBg} ${fillHeight ? "flex flex-col overflow-hidden pb-0" : "overflow-y-auto pb-[max(1.5rem,env(safe-area-inset-bottom))]"} ${contentClassName}`,
|
|
15523
15594
|
style: contentStyle,
|
|
15524
15595
|
children
|
|
15525
15596
|
}
|
|
15526
15597
|
),
|
|
15527
|
-
footer && /* @__PURE__ */ jsx("div", { className: `
|
|
15598
|
+
footer && /* @__PURE__ */ jsx("div", { className: `flex-shrink-0 border-t border-border-default px-6 py-4 pb-[max(1rem,env(safe-area-inset-bottom))] ${panelBg} ${footerClassName}`, children: footer })
|
|
15528
15599
|
]
|
|
15529
15600
|
}
|
|
15530
15601
|
) })
|
|
@@ -16131,7 +16202,7 @@ var AccountOpeningPanel = ({ onContinue, continueLabel = "Continue" }) => {
|
|
|
16131
16202
|
/* @__PURE__ */ jsx("h1", { className: "text-[16px] font-medium text-text-primary leading-snug", children: copy.title }),
|
|
16132
16203
|
/* @__PURE__ */ jsx("p", { className: "mt-1 text-[12px] leading-relaxed text-text-secondary", children: showExit && !terminalFailure ? "This is taking longer than usual. We'll let you know as soon as it's ready \u2014 you can carry on in the meantime." : copy.body })
|
|
16133
16204
|
] }),
|
|
16134
|
-
terminalFailure ? null : /* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-border-default
|
|
16205
|
+
terminalFailure ? null : /* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-border-default", children: /* @__PURE__ */ jsx(
|
|
16135
16206
|
"div",
|
|
16136
16207
|
{
|
|
16137
16208
|
className: `h-full w-2/3 rounded-full motion-safe:animate-pulse ${impatient ? "bg-status-warning-text" : "bg-cta"}`
|
|
@@ -17909,7 +17980,7 @@ var OnboardingPolicySection = ({
|
|
|
17909
17980
|
]);
|
|
17910
17981
|
if (hidden || loading || deployLoading || platformActive === null) return null;
|
|
17911
17982
|
if (platformActive === "error") {
|
|
17912
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4", children: [
|
|
17983
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4", children: [
|
|
17913
17984
|
/* @__PURE__ */ jsx("div", { className: "mb-3", children: /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Platform onboarding" }) }),
|
|
17914
17985
|
/* @__PURE__ */ 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: [
|
|
17915
17986
|
/* @__PURE__ */ jsx("span", { children: "Couldn't confirm whether this group is used as a platform." }),
|
|
@@ -17926,12 +17997,12 @@ var OnboardingPolicySection = ({
|
|
|
17926
17997
|
] });
|
|
17927
17998
|
}
|
|
17928
17999
|
if (!platformActive) {
|
|
17929
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4", children: [
|
|
18000
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4", children: [
|
|
17930
18001
|
/* @__PURE__ */ jsx("div", { className: "mb-3", children: /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Platform onboarding" }) }),
|
|
17931
18002
|
/* @__PURE__ */ 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." })
|
|
17932
18003
|
] });
|
|
17933
18004
|
}
|
|
17934
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4", children: [
|
|
18005
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border-default dark:border-white/[0.07] bg-raised dark:bg-white/[0.02] p-4", children: [
|
|
17935
18006
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
17936
18007
|
/* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Platform onboarding" }),
|
|
17937
18008
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-text-muted", children: "The path people take from first visit to transacting on this platform." })
|
|
@@ -18716,7 +18787,7 @@ function DecodedCalldata({
|
|
|
18716
18787
|
}
|
|
18717
18788
|
const kindColor = {
|
|
18718
18789
|
zero: "text-text-muted",
|
|
18719
|
-
address: "text-blue-300/[0.90]",
|
|
18790
|
+
address: "text-azure dark:text-blue-300/[0.90]",
|
|
18720
18791
|
uint: "text-text-primary",
|
|
18721
18792
|
bytes32: "text-text-secondary"
|
|
18722
18793
|
};
|
|
@@ -19707,14 +19778,14 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19707
19778
|
type: "button",
|
|
19708
19779
|
onClick: handleCancelMessage,
|
|
19709
19780
|
disabled: cancelling,
|
|
19710
|
-
className: "px-3 py-2 text-[13px] text-red-200 hover:text-text-primary disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
|
|
19781
|
+
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",
|
|
19711
19782
|
children: cancelling ? "Cancelling\u2026" : "Cancel message"
|
|
19712
19783
|
}
|
|
19713
19784
|
) : void 0,
|
|
19714
19785
|
children: [
|
|
19715
|
-
/* @__PURE__ */ jsx("p", { className: "text-[13px] font-medium text-red-100 mb-1", children: "Couldn't load transaction" }),
|
|
19786
|
+
/* @__PURE__ */ jsx("p", { className: "text-[13px] font-medium text-status-error-text dark:text-red-100 mb-1", children: "Couldn't load transaction" }),
|
|
19716
19787
|
/* @__PURE__ */ jsx("p", { className: "text-[12px] text-text-secondary max-w-sm", children: error }),
|
|
19717
|
-
cancelError && /* @__PURE__ */ jsx("p", { className: "text-[12px] text-red-200 mt-3", children: cancelError })
|
|
19788
|
+
cancelError && /* @__PURE__ */ jsx("p", { className: "text-[12px] text-status-error-text dark:text-red-200 mt-3", children: cancelError })
|
|
19718
19789
|
]
|
|
19719
19790
|
}
|
|
19720
19791
|
);
|
|
@@ -19729,7 +19800,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19729
19800
|
})();
|
|
19730
19801
|
return /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col h-full text-text-primary", children: [
|
|
19731
19802
|
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto overflow-x-hidden", children: /* @__PURE__ */ jsxs("div", { className: "space-y-3 px-4 py-4", children: [
|
|
19732
|
-
reviewWarning && /* @__PURE__ */ 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 }),
|
|
19803
|
+
reviewWarning && /* @__PURE__ */ 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 }),
|
|
19733
19804
|
/* @__PURE__ */ 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." }),
|
|
19734
19805
|
/* @__PURE__ */ 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__ */ jsx(
|
|
19735
19806
|
"button",
|
|
@@ -19918,7 +19989,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19918
19989
|
] })
|
|
19919
19990
|
}
|
|
19920
19991
|
),
|
|
19921
|
-
selector && !methodName && /* @__PURE__ */ 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." }),
|
|
19992
|
+
selector && !methodName && /* @__PURE__ */ 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." }),
|
|
19922
19993
|
!dataEmpty && /* @__PURE__ */ jsx("div", { className: "text-[12px]", children: isExpanded ? /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
19923
19994
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
19924
19995
|
/* @__PURE__ */ jsx("span", { className: "text-text-muted", children: "Calldata" }),
|
|
@@ -19977,7 +20048,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
19977
20048
|
] })
|
|
19978
20049
|
] }) }),
|
|
19979
20050
|
mode === "sign" && /* @__PURE__ */ jsxs("div", { className: "flex-shrink-0 border-t border-border-light bg-surface-alt", children: [
|
|
19980
|
-
keysLoading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-5", children: /* @__PURE__ */ jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-2 border-border-strong border-t-transparent" }) }) : keysError ? /* @__PURE__ */ jsx("p", { className: "text-[12px] text-red-200 px-4 py-3", children: keysError }) : availableKeys.length === 0 ? /* @__PURE__ */ 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__ */ jsxs("div", { className: "px-4 pt-3 pb-1 space-y-2", children: [
|
|
20051
|
+
keysLoading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-5", children: /* @__PURE__ */ jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-2 border-border-strong border-t-transparent" }) }) : keysError ? /* @__PURE__ */ jsx("p", { className: "text-[12px] text-status-error-text dark:text-red-200 px-4 py-3", children: keysError }) : availableKeys.length === 0 ? /* @__PURE__ */ 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__ */ jsxs("div", { className: "px-4 pt-3 pb-1 space-y-2", children: [
|
|
19981
20052
|
/* @__PURE__ */ jsx(SectionLabel, { children: "Sign with" }),
|
|
19982
20053
|
/* @__PURE__ */ jsx("ul", { className: "max-h-40 overflow-y-auto divide-y divide-border-light", children: availableKeys.map((key) => {
|
|
19983
20054
|
const isSelected = selectedKey?.id === key.id;
|
|
@@ -20022,7 +20093,7 @@ function SignaturePreviewDrawer({ message, onClose, onSignatureConfirmed, userId
|
|
|
20022
20093
|
walletLabel(walletKindFromKey(selectedKey)),
|
|
20023
20094
|
" will open to sign."
|
|
20024
20095
|
] }),
|
|
20025
|
-
ownedSignerBinding && /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-cyan-200", children: [
|
|
20096
|
+
ownedSignerBinding && /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-azure dark:text-cyan-200", children: [
|
|
20026
20097
|
"This owned-group request is cryptographically bound to this personal key (",
|
|
20027
20098
|
ownedSignerBinding.signerCustody,
|
|
20028
20099
|
"). Choose a different key by returning to the parent group and minting a new child session."
|
|
@@ -20098,8 +20169,8 @@ function InspectFooter({
|
|
|
20098
20169
|
}
|
|
20099
20170
|
};
|
|
20100
20171
|
return /* @__PURE__ */ jsxs("div", { className: "flex-shrink-0 border-t border-border-light bg-raised px-3 py-3 space-y-2.5", children: [
|
|
20101
|
-
awaitingSignature && onSwitchToSign && /* @__PURE__ */ 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: [
|
|
20102
|
-
/* @__PURE__ */ jsx("p", { className: "text-[12px] text-amber-100/[0.82]", children: "This message is now awaiting your signature." }),
|
|
20172
|
+
awaitingSignature && onSwitchToSign && /* @__PURE__ */ 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: [
|
|
20173
|
+
/* @__PURE__ */ jsx("p", { className: "text-[12px] text-status-warning-text dark:text-amber-100/[0.82]", children: "This message is now awaiting your signature." }),
|
|
20103
20174
|
/* @__PURE__ */ jsx(
|
|
20104
20175
|
"button",
|
|
20105
20176
|
{
|
|
@@ -20128,7 +20199,7 @@ function InspectFooter({
|
|
|
20128
20199
|
href: txExplorerUrl,
|
|
20129
20200
|
target: "_blank",
|
|
20130
20201
|
rel: "noopener noreferrer",
|
|
20131
|
-
className: "text-blue-300/[0.90] hover:text-blue-200 hover:underline underline-offset-2 transition-colors",
|
|
20202
|
+
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",
|
|
20132
20203
|
children: [
|
|
20133
20204
|
formatTxHashShort(txHash),
|
|
20134
20205
|
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "ml-0.5 text-[9px] align-middle opacity-70", children: "\u2197" })
|
|
@@ -20154,7 +20225,7 @@ Opens in block explorer` : txHash
|
|
|
20154
20225
|
] }),
|
|
20155
20226
|
message.response?.error && /* @__PURE__ */ jsxs("div", { children: [
|
|
20156
20227
|
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-medium uppercase tracking-[0.13em] text-text-muted mb-0.5", children: "Error" }),
|
|
20157
|
-
/* @__PURE__ */ jsx("p", { className: "text-[12px] text-red-200 break-words", children: message.response.error })
|
|
20228
|
+
/* @__PURE__ */ jsx("p", { className: "text-[12px] text-status-error-text dark:text-red-200 break-words", children: message.response.error })
|
|
20158
20229
|
] }),
|
|
20159
20230
|
reexecutions.length > 0 && /* @__PURE__ */ jsxs("details", { children: [
|
|
20160
20231
|
/* @__PURE__ */ jsxs("summary", { className: "text-[11px] uppercase tracking-[0.12em] text-text-muted cursor-pointer hover:text-text-primary transition-colors", children: [
|
|
@@ -20168,7 +20239,7 @@ Opens in block explorer` : txHash
|
|
|
20168
20239
|
className: "text-[11px] rounded-[10px] border border-border-light px-2 py-1 bg-surface-alt",
|
|
20169
20240
|
children: [
|
|
20170
20241
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
20171
|
-
/* @__PURE__ */ jsx("span", { className: r.success ? "text-emerald-300/[0.90]" : "text-red-200", children: r.success ? "Succeeded" : "Failed" }),
|
|
20242
|
+
/* @__PURE__ */ 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" }),
|
|
20172
20243
|
/* @__PURE__ */ jsx("span", { className: "text-text-muted", children: formatRelativeTime(r.attempted_at) })
|
|
20173
20244
|
] }),
|
|
20174
20245
|
r.error && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-text-secondary break-words", children: r.error })
|
|
@@ -20178,7 +20249,7 @@ Opens in block explorer` : txHash
|
|
|
20178
20249
|
)) })
|
|
20179
20250
|
] })
|
|
20180
20251
|
] }),
|
|
20181
|
-
actionError && /* @__PURE__ */ 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 }),
|
|
20252
|
+
actionError && /* @__PURE__ */ 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 }),
|
|
20182
20253
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
|
|
20183
20254
|
/* @__PURE__ */ jsx(
|
|
20184
20255
|
"button",
|
|
@@ -20514,14 +20585,14 @@ function SignatureWorkflow({
|
|
|
20514
20585
|
{
|
|
20515
20586
|
id: `signature-${pending.id}`,
|
|
20516
20587
|
type: "action",
|
|
20517
|
-
title: "Signature
|
|
20518
|
-
message: "
|
|
20588
|
+
title: "Signature needed",
|
|
20589
|
+
message: "Something is waiting for your signature.",
|
|
20519
20590
|
duration: 0,
|
|
20520
20591
|
showProgress: false,
|
|
20521
20592
|
onClose: dismissPending,
|
|
20522
20593
|
onClick: () => openSigner(pending),
|
|
20523
20594
|
action: {
|
|
20524
|
-
label: "Review
|
|
20595
|
+
label: "Review and sign",
|
|
20525
20596
|
onClick: () => openSigner(pending)
|
|
20526
20597
|
}
|
|
20527
20598
|
}
|
|
@@ -20531,7 +20602,7 @@ function SignatureWorkflow({
|
|
|
20531
20602
|
{
|
|
20532
20603
|
isOpen: true,
|
|
20533
20604
|
onClose: closeSigner,
|
|
20534
|
-
title: currentMessage.data?.message_type ? `${currentMessage.data.message_type} \u2014 Sign` : "Sign
|
|
20605
|
+
title: currentMessage.data?.message_type ? `${humanizeMessageType(currentMessage.data.message_type)} \u2014 Sign` : "Sign this request",
|
|
20535
20606
|
maxWidth: "lg",
|
|
20536
20607
|
fillHeight: true,
|
|
20537
20608
|
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full", children: [
|
|
@@ -20561,8 +20632,10 @@ function SignatureWorkflow({
|
|
|
20561
20632
|
] });
|
|
20562
20633
|
}
|
|
20563
20634
|
var PLACEMENT_CLASSES = {
|
|
20564
|
-
|
|
20565
|
-
|
|
20635
|
+
// The top corners clear the status bar of a home-screen install (zero
|
|
20636
|
+
// in a browser tab).
|
|
20637
|
+
"top-left": "top-[calc(1rem+env(safe-area-inset-top))] left-4",
|
|
20638
|
+
"top-right": "top-[calc(1rem+env(safe-area-inset-top))] right-4",
|
|
20566
20639
|
"bottom-left": "bottom-4 left-4",
|
|
20567
20640
|
"bottom-right": "bottom-4 right-4"
|
|
20568
20641
|
};
|
|
@@ -22160,10 +22233,10 @@ function SecurityPage() {
|
|
|
22160
22233
|
const [generateDescription, setGenerateDescription] = useState("");
|
|
22161
22234
|
const [freshApiKey, setFreshApiKey] = useState(null);
|
|
22162
22235
|
const [freshApiKeyCopied, setFreshApiKeyCopied] = useState(false);
|
|
22163
|
-
const refresh = useCallback(async () => {
|
|
22236
|
+
const refresh = useCallback(async (opts) => {
|
|
22164
22237
|
setError(null);
|
|
22165
22238
|
try {
|
|
22166
|
-
invalidateWalletCount();
|
|
22239
|
+
if (opts?.invalidate !== false) invalidateWalletCount();
|
|
22167
22240
|
const [k, l] = await Promise.all([
|
|
22168
22241
|
listMyLoginKeys(),
|
|
22169
22242
|
keysService.getLockdownStatus().catch(() => null)
|
|
@@ -22177,7 +22250,7 @@ function SecurityPage() {
|
|
|
22177
22250
|
}
|
|
22178
22251
|
}, []);
|
|
22179
22252
|
useEffect(() => {
|
|
22180
|
-
refresh();
|
|
22253
|
+
void refresh({ invalidate: false });
|
|
22181
22254
|
}, [refresh]);
|
|
22182
22255
|
const refreshApiKeys = useCallback(async () => {
|
|
22183
22256
|
try {
|
|
@@ -23015,7 +23088,7 @@ function SecurityPage() {
|
|
|
23015
23088
|
(account) => !(account.chain_id === activeChainId && account.wallet_address.toLowerCase() === target)
|
|
23016
23089
|
);
|
|
23017
23090
|
if (otherAccounts.length === 0) return null;
|
|
23018
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-status-warning-bg
|
|
23091
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-status-warning-bg border border-status-warning-text/30 px-3 py-2 space-y-1", children: [
|
|
23019
23092
|
/* @__PURE__ */ jsxs("p", { className: "text-[11px] text-status-warning-text font-medium", children: [
|
|
23020
23093
|
"This key also owns ",
|
|
23021
23094
|
otherAccounts.length,
|
|
@@ -23330,7 +23403,7 @@ function RowGhostButton({
|
|
|
23330
23403
|
type: "button",
|
|
23331
23404
|
disabled,
|
|
23332
23405
|
onClick,
|
|
23333
|
-
className: "
|
|
23406
|
+
className: "rounded-md px-2.5 py-1 text-[11px] font-medium text-text-secondary transition-colors hover:bg-chip hover:text-text-primary active:bg-chip-active disabled:cursor-not-allowed disabled:opacity-50 max-lg:min-h-[44px] max-lg:px-4 max-lg:text-[13px]",
|
|
23334
23407
|
children
|
|
23335
23408
|
}
|
|
23336
23409
|
);
|
|
@@ -23346,7 +23419,7 @@ function RowNeutralButton({
|
|
|
23346
23419
|
type: "button",
|
|
23347
23420
|
disabled,
|
|
23348
23421
|
onClick,
|
|
23349
|
-
className: "
|
|
23422
|
+
className: "rounded-md bg-chip px-2.5 py-1 text-[11px] font-medium text-text-primary transition-colors hover:bg-chip-hover active:bg-chip-active disabled:cursor-not-allowed disabled:opacity-50 max-lg:min-h-[44px] max-lg:px-4 max-lg:text-[13px]",
|
|
23350
23423
|
children
|
|
23351
23424
|
}
|
|
23352
23425
|
);
|
|
@@ -23915,18 +23988,18 @@ var GroupsView = ({
|
|
|
23915
23988
|
] }),
|
|
23916
23989
|
error && /* @__PURE__ */ jsx(ErrorBanner, { children: error }),
|
|
23917
23990
|
delegationSession?.kind === "owned" ? /* @__PURE__ */ 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: [
|
|
23918
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-semibold uppercase tracking-[0.12em] text-cyan-300/80", children: "Account ownership path" }),
|
|
23991
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-semibold uppercase tracking-[0.12em] text-azure dark:text-cyan-300/80", children: "Account ownership path" }),
|
|
23919
23992
|
/* @__PURE__ */ jsxs(
|
|
23920
23993
|
"div",
|
|
23921
23994
|
{
|
|
23922
23995
|
className: "mt-2 flex min-w-0 items-center gap-2",
|
|
23923
23996
|
"aria-label": `${sourceGroup?.name ?? "Owning group"} is operating ${activeOwnedGroup?.name ?? "owned group"}`,
|
|
23924
23997
|
children: [
|
|
23925
|
-
/* @__PURE__ */ 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" }),
|
|
23926
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "shrink-0 text-[12px] text-cyan-300/70", children: "\u2192" }),
|
|
23927
|
-
/* @__PURE__ */ 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) }),
|
|
23928
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "shrink-0 text-[12px] text-cyan-300/70", children: "\u2192" }),
|
|
23929
|
-
/* @__PURE__ */ 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) })
|
|
23998
|
+
/* @__PURE__ */ 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" }),
|
|
23999
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "shrink-0 text-[12px] text-azure dark:text-cyan-300/70", children: "\u2192" }),
|
|
24000
|
+
/* @__PURE__ */ 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) }),
|
|
24001
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "shrink-0 text-[12px] text-azure dark:text-cyan-300/70", children: "\u2192" }),
|
|
24002
|
+
/* @__PURE__ */ 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) })
|
|
23930
24003
|
]
|
|
23931
24004
|
}
|
|
23932
24005
|
),
|
|
@@ -23938,7 +24011,7 @@ var GroupsView = ({
|
|
|
23938
24011
|
type: "button",
|
|
23939
24012
|
onClick: () => void handleReturnToParent(),
|
|
23940
24013
|
disabled: busyId === `parent:${delegationSession.parentGroupId}`,
|
|
23941
|
-
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",
|
|
24014
|
+
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",
|
|
23942
24015
|
children: busyId === `parent:${delegationSession.parentGroupId}` ? "Returning..." : `Return to ${sourceGroup?.name ?? "owning group"}`
|
|
23943
24016
|
}
|
|
23944
24017
|
),
|
|
@@ -23954,7 +24027,7 @@ var GroupsView = ({
|
|
|
23954
24027
|
)
|
|
23955
24028
|
] })
|
|
23956
24029
|
] }) : actingAsAnyGroup ? /* @__PURE__ */ 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: [
|
|
23957
|
-
/* @__PURE__ */ jsxs("p", { className: "min-w-0 flex-1 text-[12px] font-semibold leading-5 text-amber-300", children: [
|
|
24030
|
+
/* @__PURE__ */ jsxs("p", { className: "min-w-0 flex-1 text-[12px] font-semibold leading-5 text-status-warning-text dark:text-amber-300", children: [
|
|
23958
24031
|
"Acting as ",
|
|
23959
24032
|
sourceGroup?.name ?? "a group",
|
|
23960
24033
|
". Operations use its direct delegation token."
|
|
@@ -24289,7 +24362,7 @@ function OwnedGroupRow({
|
|
|
24289
24362
|
return /* @__PURE__ */ jsxs("li", { className: "px-3.5 py-3", children: [
|
|
24290
24363
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
24291
24364
|
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-[11px] font-semibold text-text-secondary", children: sourceName }),
|
|
24292
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "shrink-0 text-[12px] text-cyan-300/70", children: "\u2192" }),
|
|
24365
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "shrink-0 text-[12px] text-azure dark:text-cyan-300/70", children: "\u2192" }),
|
|
24293
24366
|
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-[12px] font-semibold text-text-primary", children: projection.group.name })
|
|
24294
24367
|
] }),
|
|
24295
24368
|
/* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center justify-between gap-3", children: [
|
|
@@ -24300,7 +24373,7 @@ function OwnedGroupRow({
|
|
|
24300
24373
|
type: "button",
|
|
24301
24374
|
onClick: onSwitch,
|
|
24302
24375
|
disabled: busy,
|
|
24303
|
-
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",
|
|
24376
|
+
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",
|
|
24304
24377
|
children: busy ? "Checking ownership..." : `Operate as ${projection.group.name}`
|
|
24305
24378
|
}
|
|
24306
24379
|
)
|
|
@@ -24787,7 +24860,7 @@ function PlusIcon() {
|
|
|
24787
24860
|
}
|
|
24788
24861
|
function RoleBadge({ role }) {
|
|
24789
24862
|
const label = normalizeRole(role);
|
|
24790
|
-
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";
|
|
24863
|
+
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";
|
|
24791
24864
|
return /* @__PURE__ */ jsx(
|
|
24792
24865
|
"span",
|
|
24793
24866
|
{
|
|
@@ -24929,7 +25002,7 @@ function ActiveEnvironmentBadge({
|
|
|
24929
25002
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center justify-between gap-3 px-1", children: [
|
|
24930
25003
|
/* @__PURE__ */ jsx("span", { className: "text-[10px] font-medium text-text-muted", children: "Mode" }),
|
|
24931
25004
|
/* @__PURE__ */ jsxs("span", { className: "min-w-0 truncate text-right text-[9px] text-text-muted", children: [
|
|
24932
|
-
environment.mode === "unknown" && /* @__PURE__ */ jsx("span", { className: "mr-1.5 font-semibold text-amber-400", children: "Unconfigured" }),
|
|
25005
|
+
environment.mode === "unknown" && /* @__PURE__ */ jsx("span", { className: "mr-1.5 font-semibold text-status-warning-text dark:text-amber-400", children: "Unconfigured" }),
|
|
24933
25006
|
environment.network,
|
|
24934
25007
|
environment.chainId && /* @__PURE__ */ jsx("span", { className: "ml-1.5 font-mono text-text-secondary", children: environment.chainId })
|
|
24935
25008
|
] })
|
|
@@ -24943,7 +25016,7 @@ function ActiveEnvironmentBadge({
|
|
|
24943
25016
|
/* @__PURE__ */ jsxs(
|
|
24944
25017
|
"span",
|
|
24945
25018
|
{
|
|
24946
|
-
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"}`,
|
|
25019
|
+
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"}`,
|
|
24947
25020
|
children: [
|
|
24948
25021
|
/* @__PURE__ */ jsx(
|
|
24949
25022
|
"span",
|
|
@@ -24987,7 +25060,7 @@ function ActiveEnvironmentBadge({
|
|
|
24987
25060
|
void switchTo(option);
|
|
24988
25061
|
}
|
|
24989
25062
|
},
|
|
24990
|
-
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"}`,
|
|
25063
|
+
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"}`,
|
|
24991
25064
|
children: busy ? /* @__PURE__ */ jsx(Spinner, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
24992
25065
|
option.active && /* @__PURE__ */ jsx(
|
|
24993
25066
|
"span",
|
|
@@ -25058,7 +25131,7 @@ function ActiveEnvironmentBadge({
|
|
|
25058
25131
|
"div",
|
|
25059
25132
|
{
|
|
25060
25133
|
role: "alert",
|
|
25061
|
-
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",
|
|
25134
|
+
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",
|
|
25062
25135
|
children: error
|
|
25063
25136
|
}
|
|
25064
25137
|
)
|
|
@@ -25157,7 +25230,10 @@ var WalletCenterSurface = ({
|
|
|
25157
25230
|
modules,
|
|
25158
25231
|
actors,
|
|
25159
25232
|
identity,
|
|
25160
|
-
initialView = "menu"
|
|
25233
|
+
initialView = "menu",
|
|
25234
|
+
embedded = false,
|
|
25235
|
+
backLabel = "Back",
|
|
25236
|
+
onTitle
|
|
25161
25237
|
}) => {
|
|
25162
25238
|
const { pendingList, refreshPending } = useSignatureQueue();
|
|
25163
25239
|
const {
|
|
@@ -25185,6 +25261,10 @@ var WalletCenterSurface = ({
|
|
|
25185
25261
|
const cancelGuardRef = useRef(/* @__PURE__ */ new Map());
|
|
25186
25262
|
const wasOpenRef = useRef(false);
|
|
25187
25263
|
const walletRootRef = useRef(null);
|
|
25264
|
+
const leaveSection = useCallback(() => {
|
|
25265
|
+
if (embedded && initialView !== "menu") onClose();
|
|
25266
|
+
else setSection("menu");
|
|
25267
|
+
}, [embedded, initialView, onClose]);
|
|
25188
25268
|
useEffect(() => {
|
|
25189
25269
|
const justOpened = isOpen && !wasOpenRef.current;
|
|
25190
25270
|
wasOpenRef.current = isOpen;
|
|
@@ -25202,9 +25282,9 @@ var WalletCenterSurface = ({
|
|
|
25202
25282
|
useEffect(() => {
|
|
25203
25283
|
if (!isOpen) return;
|
|
25204
25284
|
if (activeBuiltinFor(section, modules) === "transactions" && pendingList.length === 0) {
|
|
25205
|
-
|
|
25285
|
+
leaveSection();
|
|
25206
25286
|
}
|
|
25207
|
-
}, [isOpen, modules, pendingList.length, section]);
|
|
25287
|
+
}, [isOpen, leaveSection, modules, pendingList.length, section]);
|
|
25208
25288
|
const delegatedGroupId = useMemo(() => {
|
|
25209
25289
|
if (!delegationToken || typeof window === "undefined") return null;
|
|
25210
25290
|
return window.localStorage.getItem("delegation_group_id");
|
|
@@ -25457,11 +25537,11 @@ var WalletCenterSurface = ({
|
|
|
25457
25537
|
setActionError(null);
|
|
25458
25538
|
try {
|
|
25459
25539
|
await actor.onSelect();
|
|
25460
|
-
|
|
25540
|
+
leaveSection();
|
|
25461
25541
|
} catch (error) {
|
|
25462
25542
|
setActionError(error?.message ?? "Failed to switch signing context.");
|
|
25463
25543
|
}
|
|
25464
|
-
}, []);
|
|
25544
|
+
}, [leaveSection]);
|
|
25465
25545
|
const drawerTitle = useMemo(() => {
|
|
25466
25546
|
if (selected) {
|
|
25467
25547
|
const label = humanizeMessageType(selected.data?.message_type);
|
|
@@ -25469,11 +25549,117 @@ var WalletCenterSurface = ({
|
|
|
25469
25549
|
}
|
|
25470
25550
|
return "Wallet";
|
|
25471
25551
|
}, [selected, selectedSource]);
|
|
25552
|
+
const hostedTitle = !embedded ? null : selected ? drawerTitle : section === "actors" ? "Signing context" : activeModule?.label ?? null;
|
|
25553
|
+
useEffect(() => {
|
|
25554
|
+
if (!embedded) return void 0;
|
|
25555
|
+
onTitle?.(hostedTitle);
|
|
25556
|
+
return () => onTitle?.(null);
|
|
25557
|
+
}, [embedded, hostedTitle, onTitle]);
|
|
25472
25558
|
const isCompactView = !selected;
|
|
25473
25559
|
const drawerPanelClass = isCompactView ? stripLayoutUtilities(walletCenterUi?.drawer?.panel, ["height"]) : walletCenterUi?.drawer?.panel;
|
|
25474
25560
|
const drawerContentClass = isCompactView ? stripLayoutUtilities(walletCenterUi?.drawer?.content, ["overflow"]) : walletCenterUi?.drawer?.content;
|
|
25475
|
-
const walletRootClass = isCompactView ? stripLayoutUtilities(walletCenterUi?.root, ["height", "overflow"]) : walletCenterUi?.root;
|
|
25476
|
-
const walletMainClass = isCompactView ? stripLayoutUtilities(walletCenterUi?.main, ["height", "overflow"]) : walletCenterUi?.main;
|
|
25561
|
+
const walletRootClass = embedded ? void 0 : isCompactView ? stripLayoutUtilities(walletCenterUi?.root, ["height", "overflow"]) : walletCenterUi?.root;
|
|
25562
|
+
const walletMainClass = embedded ? void 0 : isCompactView ? stripLayoutUtilities(walletCenterUi?.main, ["height", "overflow"]) : walletCenterUi?.main;
|
|
25563
|
+
const body = /* @__PURE__ */ jsx("div", { ref: walletRootRef, className: cx4(isCompactView ? "w-full" : "flex h-full overflow-hidden", walletRootClass), children: /* @__PURE__ */ jsx("div", { className: cx4(isCompactView ? "min-h-0 w-full" : "flex-1 min-h-0 overflow-hidden", walletMainClass), children: selected ? /* @__PURE__ */ jsx(
|
|
25564
|
+
DetailPane,
|
|
25565
|
+
{
|
|
25566
|
+
message: selected,
|
|
25567
|
+
source: selectedSource,
|
|
25568
|
+
userId,
|
|
25569
|
+
onBack: handleBackToList,
|
|
25570
|
+
hideBack: embedded,
|
|
25571
|
+
onSigned: async (m) => {
|
|
25572
|
+
onSigned?.(m);
|
|
25573
|
+
setSelected(null);
|
|
25574
|
+
await refreshPending();
|
|
25575
|
+
},
|
|
25576
|
+
onRetry: handleRetry,
|
|
25577
|
+
onSwitchToSign: () => setSelectedSource("pending"),
|
|
25578
|
+
selectorRegistry,
|
|
25579
|
+
addressLabels,
|
|
25580
|
+
renderSimpleSummary
|
|
25581
|
+
}
|
|
25582
|
+
) : section === "menu" ? /* @__PURE__ */ jsx(
|
|
25583
|
+
WalletMenu,
|
|
25584
|
+
{
|
|
25585
|
+
identity: resolvedIdentity,
|
|
25586
|
+
items: menuItems,
|
|
25587
|
+
actors: resolvedActors,
|
|
25588
|
+
actionError,
|
|
25589
|
+
onSelectModule: handleSelectModule,
|
|
25590
|
+
onOpenActors: () => setSection("actors"),
|
|
25591
|
+
onClose: embedded ? void 0 : onClose,
|
|
25592
|
+
onSignOut: handleSignOut
|
|
25593
|
+
}
|
|
25594
|
+
) : section === "actors" ? /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-col", children: [
|
|
25595
|
+
embedded ? null : /* @__PURE__ */ jsx(SectionHeader, { title: "Signing context", onBack: leaveSection }),
|
|
25596
|
+
/* @__PURE__ */ jsx(
|
|
25597
|
+
ActorsPane,
|
|
25598
|
+
{
|
|
25599
|
+
actors: resolvedActors,
|
|
25600
|
+
error: actionError,
|
|
25601
|
+
onSelect: handleSelectActor
|
|
25602
|
+
}
|
|
25603
|
+
)
|
|
25604
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-col", children: [
|
|
25605
|
+
embedded ? null : /* @__PURE__ */ jsx(SectionHeader, { title: activeModule?.label ?? "Wallet", onBack: leaveSection }),
|
|
25606
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0", children: activeModule ? /* @__PURE__ */ jsx(
|
|
25607
|
+
SectionPane,
|
|
25608
|
+
{
|
|
25609
|
+
module: activeModule,
|
|
25610
|
+
panelContext,
|
|
25611
|
+
pendingList,
|
|
25612
|
+
busyId,
|
|
25613
|
+
actionError,
|
|
25614
|
+
onSelectPending: (m) => handleSelect(m, "pending"),
|
|
25615
|
+
onSign: handleSign,
|
|
25616
|
+
onCancel: handleCancel,
|
|
25617
|
+
historyItems: filteredHistoryItems,
|
|
25618
|
+
historyFilter,
|
|
25619
|
+
historyLoading,
|
|
25620
|
+
historyError,
|
|
25621
|
+
historyHasMore: historyHasMore && historyItems.length < HISTORY_MAX_ITEMS,
|
|
25622
|
+
historyAtCap: historyItems.length >= HISTORY_MAX_ITEMS,
|
|
25623
|
+
historyLoadedOnce,
|
|
25624
|
+
showHistoryFilters: !embedded,
|
|
25625
|
+
onFilterChange: handleFilterChange,
|
|
25626
|
+
onLoadMore: handleLoadMore,
|
|
25627
|
+
onSelectHistory: (m) => handleSelect(m, "history"),
|
|
25628
|
+
onRetry: handleRetryFromRow,
|
|
25629
|
+
classNames: walletCenterUi
|
|
25630
|
+
}
|
|
25631
|
+
) : /* @__PURE__ */ jsx(
|
|
25632
|
+
EmptyState,
|
|
25633
|
+
{
|
|
25634
|
+
title: "This wallet view is unavailable",
|
|
25635
|
+
subtitle: "Return to the wallet menu and choose another destination.",
|
|
25636
|
+
classNames: walletCenterUi
|
|
25637
|
+
}
|
|
25638
|
+
) })
|
|
25639
|
+
] }) }) });
|
|
25640
|
+
if (embedded) {
|
|
25641
|
+
const back = selected ? { label: activeModule?.label ?? "Wallet", onPick: handleBackToList } : section === "menu" ? null : { label: backLabel, onPick: leaveSection };
|
|
25642
|
+
const sectionControls = !selected && activeBuiltin === "history" ? /* @__PURE__ */ jsx(FilterChips, { filter: historyFilter, onChange: handleFilterChange }) : null;
|
|
25643
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [
|
|
25644
|
+
/* @__PURE__ */ jsx("div", { className: cx4("min-h-0 flex-1", isCompactView ? "overflow-y-auto" : "overflow-hidden"), children: body }),
|
|
25645
|
+
back || sectionControls ? /* @__PURE__ */ jsxs("nav", { "aria-label": "Wallet controls", className: "flex h-12 shrink-0 items-center gap-2 border-t border-border-light px-4", children: [
|
|
25646
|
+
back ? /* @__PURE__ */ jsxs(
|
|
25647
|
+
"button",
|
|
25648
|
+
{
|
|
25649
|
+
type: "button",
|
|
25650
|
+
onClick: back.onPick,
|
|
25651
|
+
className: "flex h-8 shrink-0 items-center gap-1.5 rounded-full bg-chip-hover pl-2 pr-3 text-[12.5px] font-medium text-text-primary transition-colors hover:bg-raised-hover",
|
|
25652
|
+
children: [
|
|
25653
|
+
/* @__PURE__ */ jsx(IconChevronLeft, {}),
|
|
25654
|
+
back.label
|
|
25655
|
+
]
|
|
25656
|
+
}
|
|
25657
|
+
) : null,
|
|
25658
|
+
back && sectionControls ? /* @__PURE__ */ jsx("span", { className: "h-5 w-px shrink-0 bg-border-strong", "aria-hidden": "true" }) : null,
|
|
25659
|
+
sectionControls ? /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 items-center gap-2 overflow-x-auto", children: sectionControls }) : null
|
|
25660
|
+
] }) : null
|
|
25661
|
+
] });
|
|
25662
|
+
}
|
|
25477
25663
|
return /* @__PURE__ */ jsx(
|
|
25478
25664
|
Drawer,
|
|
25479
25665
|
{
|
|
@@ -25491,89 +25677,7 @@ var WalletCenterSurface = ({
|
|
|
25491
25677
|
closeButtonClassName: walletCenterUi?.drawer?.closeButton,
|
|
25492
25678
|
contentClassName: drawerContentClass,
|
|
25493
25679
|
contentStyle: isCompactView ? { flex: "0 1 auto", maxHeight: "calc(100vh - 24px)", overflowY: "auto", paddingBottom: 12 } : void 0,
|
|
25494
|
-
children:
|
|
25495
|
-
DetailPane,
|
|
25496
|
-
{
|
|
25497
|
-
message: selected,
|
|
25498
|
-
source: selectedSource,
|
|
25499
|
-
userId,
|
|
25500
|
-
onBack: handleBackToList,
|
|
25501
|
-
onSigned: async (m) => {
|
|
25502
|
-
onSigned?.(m);
|
|
25503
|
-
setSelected(null);
|
|
25504
|
-
await refreshPending();
|
|
25505
|
-
},
|
|
25506
|
-
onRetry: handleRetry,
|
|
25507
|
-
onSwitchToSign: () => setSelectedSource("pending"),
|
|
25508
|
-
selectorRegistry,
|
|
25509
|
-
addressLabels,
|
|
25510
|
-
renderSimpleSummary
|
|
25511
|
-
}
|
|
25512
|
-
) : section === "menu" ? /* @__PURE__ */ jsx(
|
|
25513
|
-
WalletMenu,
|
|
25514
|
-
{
|
|
25515
|
-
identity: resolvedIdentity,
|
|
25516
|
-
items: menuItems,
|
|
25517
|
-
actors: resolvedActors,
|
|
25518
|
-
actionError,
|
|
25519
|
-
onSelectModule: handleSelectModule,
|
|
25520
|
-
onOpenActors: () => setSection("actors"),
|
|
25521
|
-
onClose,
|
|
25522
|
-
onSignOut: handleSignOut
|
|
25523
|
-
}
|
|
25524
|
-
) : section === "actors" ? /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-col", children: [
|
|
25525
|
-
/* @__PURE__ */ jsx(SectionHeader, { title: "Signing context", onBack: () => setSection("menu") }),
|
|
25526
|
-
/* @__PURE__ */ jsx(
|
|
25527
|
-
ActorsPane,
|
|
25528
|
-
{
|
|
25529
|
-
actors: resolvedActors,
|
|
25530
|
-
error: actionError,
|
|
25531
|
-
onSelect: handleSelectActor
|
|
25532
|
-
}
|
|
25533
|
-
)
|
|
25534
|
-
] }) : /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-col", children: [
|
|
25535
|
-
/* @__PURE__ */ jsx(
|
|
25536
|
-
SectionHeader,
|
|
25537
|
-
{
|
|
25538
|
-
title: activeModule?.label ?? "Wallet",
|
|
25539
|
-
onBack: () => {
|
|
25540
|
-
setSection("menu");
|
|
25541
|
-
}
|
|
25542
|
-
}
|
|
25543
|
-
),
|
|
25544
|
-
/* @__PURE__ */ jsx("div", { className: "min-h-0", children: activeModule ? /* @__PURE__ */ jsx(
|
|
25545
|
-
SectionPane,
|
|
25546
|
-
{
|
|
25547
|
-
module: activeModule,
|
|
25548
|
-
panelContext,
|
|
25549
|
-
pendingList,
|
|
25550
|
-
busyId,
|
|
25551
|
-
actionError,
|
|
25552
|
-
onSelectPending: (m) => handleSelect(m, "pending"),
|
|
25553
|
-
onSign: handleSign,
|
|
25554
|
-
onCancel: handleCancel,
|
|
25555
|
-
historyItems: filteredHistoryItems,
|
|
25556
|
-
historyFilter,
|
|
25557
|
-
historyLoading,
|
|
25558
|
-
historyError,
|
|
25559
|
-
historyHasMore: historyHasMore && historyItems.length < HISTORY_MAX_ITEMS,
|
|
25560
|
-
historyAtCap: historyItems.length >= HISTORY_MAX_ITEMS,
|
|
25561
|
-
historyLoadedOnce,
|
|
25562
|
-
onFilterChange: handleFilterChange,
|
|
25563
|
-
onLoadMore: handleLoadMore,
|
|
25564
|
-
onSelectHistory: (m) => handleSelect(m, "history"),
|
|
25565
|
-
onRetry: handleRetryFromRow,
|
|
25566
|
-
classNames: walletCenterUi
|
|
25567
|
-
}
|
|
25568
|
-
) : /* @__PURE__ */ jsx(
|
|
25569
|
-
EmptyState,
|
|
25570
|
-
{
|
|
25571
|
-
title: "This wallet view is unavailable",
|
|
25572
|
-
subtitle: "Return to the wallet menu and choose another destination.",
|
|
25573
|
-
classNames: walletCenterUi
|
|
25574
|
-
}
|
|
25575
|
-
) })
|
|
25576
|
-
] }) }) })
|
|
25680
|
+
children: body
|
|
25577
25681
|
}
|
|
25578
25682
|
);
|
|
25579
25683
|
};
|
|
@@ -25695,7 +25799,7 @@ function WalletMenu({
|
|
|
25695
25799
|
action.id
|
|
25696
25800
|
);
|
|
25697
25801
|
}),
|
|
25698
|
-
/* @__PURE__ */ jsx(
|
|
25802
|
+
onClose ? /* @__PURE__ */ jsx(
|
|
25699
25803
|
"button",
|
|
25700
25804
|
{
|
|
25701
25805
|
type: "button",
|
|
@@ -25705,7 +25809,7 @@ function WalletMenu({
|
|
|
25705
25809
|
"aria-label": "Close wallet center",
|
|
25706
25810
|
children: /* @__PURE__ */ jsx(IconX, {})
|
|
25707
25811
|
}
|
|
25708
|
-
)
|
|
25812
|
+
) : null
|
|
25709
25813
|
] })
|
|
25710
25814
|
] }),
|
|
25711
25815
|
/* @__PURE__ */ jsx(ActiveEnvironmentBadge, {})
|
|
@@ -25722,7 +25826,7 @@ function WalletMenu({
|
|
|
25722
25826
|
onClick: onOpenActors,
|
|
25723
25827
|
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",
|
|
25724
25828
|
children: [
|
|
25725
|
-
/* @__PURE__ */ jsx("span", { className: "inline-flex h-7 w-7 items-center justify-center rounded-lg bg-
|
|
25829
|
+
/* @__PURE__ */ 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__ */ jsx(IconUser, {}) : /* @__PURE__ */ jsx(IconBuilding, {}) }),
|
|
25726
25830
|
/* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
25727
25831
|
/* @__PURE__ */ jsx("span", { className: "block truncate", children: activeActor?.label ?? userName }),
|
|
25728
25832
|
/* @__PURE__ */ jsx("span", { className: "mt-0.5 block text-[10px] font-medium capitalize text-text-muted", children: activeActor?.kind ?? "self" })
|
|
@@ -25737,7 +25841,7 @@ function WalletMenu({
|
|
|
25737
25841
|
{
|
|
25738
25842
|
type: "button",
|
|
25739
25843
|
onClick: onSignOut,
|
|
25740
|
-
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",
|
|
25844
|
+
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",
|
|
25741
25845
|
children: [
|
|
25742
25846
|
/* @__PURE__ */ jsx(IconSignOut, {}),
|
|
25743
25847
|
"Sign out"
|
|
@@ -25769,7 +25873,7 @@ function WalletMenuRow({
|
|
|
25769
25873
|
{
|
|
25770
25874
|
className: cx4(
|
|
25771
25875
|
"mr-3 inline-flex h-8 w-8 items-center justify-center rounded-lg",
|
|
25772
|
-
urgent ? "bg-violet-500/20 text-orange-400" : active ? "bg-surface-alt text-text-secondary" : "bg-surface-alt text-text-muted"
|
|
25876
|
+
urgent ? "bg-violet-500/20 text-primary dark:text-orange-400" : active ? "bg-surface-alt text-text-secondary" : "bg-surface-alt text-text-muted"
|
|
25773
25877
|
),
|
|
25774
25878
|
children: item.icon
|
|
25775
25879
|
}
|
|
@@ -25836,6 +25940,7 @@ function SectionPane(props) {
|
|
|
25836
25940
|
{
|
|
25837
25941
|
items: props.historyItems,
|
|
25838
25942
|
filter: props.historyFilter,
|
|
25943
|
+
showFilters: props.showHistoryFilters ?? true,
|
|
25839
25944
|
onFilterChange: props.onFilterChange,
|
|
25840
25945
|
loading: props.historyLoading,
|
|
25841
25946
|
error: props.historyError,
|
|
@@ -26008,7 +26113,7 @@ function DirectoryPane({
|
|
|
26008
26113
|
{
|
|
26009
26114
|
type: "button",
|
|
26010
26115
|
onClick: () => setQuery(""),
|
|
26011
|
-
className: "mt-2 min-h-[44px] rounded-xl px-3 text-[12px] font-semibold text-orange-400 hover:bg-orange-400/10",
|
|
26116
|
+
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",
|
|
26012
26117
|
children: "Clear search"
|
|
26013
26118
|
}
|
|
26014
26119
|
)
|
|
@@ -26067,6 +26172,7 @@ function PendingSection({
|
|
|
26067
26172
|
)) });
|
|
26068
26173
|
}
|
|
26069
26174
|
function HistorySection({
|
|
26175
|
+
showFilters = true,
|
|
26070
26176
|
items,
|
|
26071
26177
|
filter,
|
|
26072
26178
|
onFilterChange,
|
|
@@ -26082,7 +26188,7 @@ function HistorySection({
|
|
|
26082
26188
|
classNames
|
|
26083
26189
|
}) {
|
|
26084
26190
|
return /* @__PURE__ */ jsxs("div", { className: cx4("p-3 space-y-3", classNames?.listSection), children: [
|
|
26085
|
-
/* @__PURE__ */ jsx(FilterChips, { filter, onChange: onFilterChange }),
|
|
26191
|
+
showFilters ? /* @__PURE__ */ jsx(FilterChips, { filter, onChange: onFilterChange }) : null,
|
|
26086
26192
|
error && /* @__PURE__ */ jsx(ErrorBanner, { children: error }),
|
|
26087
26193
|
!loadedOnce && loading && /* @__PURE__ */ jsx("div", { className: "py-10 flex justify-center", children: /* @__PURE__ */ jsx(LoadingSpinner, { size: "md" }) }),
|
|
26088
26194
|
loadedOnce && items.length === 0 && !loading && /* @__PURE__ */ jsx(
|
|
@@ -26165,6 +26271,7 @@ function DetailPane({
|
|
|
26165
26271
|
source,
|
|
26166
26272
|
userId,
|
|
26167
26273
|
onBack,
|
|
26274
|
+
hideBack = false,
|
|
26168
26275
|
onSigned,
|
|
26169
26276
|
onRetry,
|
|
26170
26277
|
onSwitchToSign,
|
|
@@ -26174,7 +26281,7 @@ function DetailPane({
|
|
|
26174
26281
|
}) {
|
|
26175
26282
|
const drawerKey = `signature-${source}-${message.id}`;
|
|
26176
26283
|
return /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col h-full", children: [
|
|
26177
|
-
/* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 border-b border-border-light", children: /* @__PURE__ */ jsxs(
|
|
26284
|
+
hideBack ? null : /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 border-b border-border-light", children: /* @__PURE__ */ jsxs(
|
|
26178
26285
|
"button",
|
|
26179
26286
|
{
|
|
26180
26287
|
type: "button",
|
|
@@ -26259,9 +26366,9 @@ function WalletCenter({
|
|
|
26259
26366
|
onCanceled
|
|
26260
26367
|
}) {
|
|
26261
26368
|
const { user } = useAuth();
|
|
26262
|
-
const { isOpen, requestedView, closeWalletCenter } = useWalletCenter();
|
|
26369
|
+
const { isOpen, requestedView, closeWalletCenter, host, hostOptions, setHostTitle } = useWalletCenter();
|
|
26263
26370
|
if (!isOpen || !user?.id) return null;
|
|
26264
|
-
|
|
26371
|
+
const surface = /* @__PURE__ */ jsx(
|
|
26265
26372
|
WalletCenterSurface,
|
|
26266
26373
|
{
|
|
26267
26374
|
isOpen: true,
|
|
@@ -26276,9 +26383,13 @@ function WalletCenter({
|
|
|
26276
26383
|
renderSimpleSummary,
|
|
26277
26384
|
onSigned,
|
|
26278
26385
|
onRetried,
|
|
26279
|
-
onCanceled
|
|
26386
|
+
onCanceled,
|
|
26387
|
+
embedded: Boolean(host),
|
|
26388
|
+
backLabel: hostOptions.backLabel,
|
|
26389
|
+
onTitle: setHostTitle
|
|
26280
26390
|
}
|
|
26281
26391
|
);
|
|
26392
|
+
return host ? createPortal(surface, host) : surface;
|
|
26282
26393
|
}
|
|
26283
26394
|
function WalletCenterTrigger({
|
|
26284
26395
|
variant = "icon",
|
|
@@ -27932,7 +28043,7 @@ var BillingCenter = ({ dense = false }) => {
|
|
|
27932
28043
|
if (notConfigured) {
|
|
27933
28044
|
return /* @__PURE__ */ jsxs("div", { className: outerClass, children: [
|
|
27934
28045
|
!dense && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
27935
|
-
/* @__PURE__ */ jsxs("h1", { className: "text-lg font-semibold text-text-primary", children: [
|
|
28046
|
+
/* @__PURE__ */ jsxs("h1", { className: "text-lg font-semibold text-text-primary max-sm:sr-only", children: [
|
|
27936
28047
|
"Usage & billing",
|
|
27937
28048
|
!isLiveMode() && paymentsUrlMap() && /* @__PURE__ */ 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" })
|
|
27938
28049
|
] }),
|
|
@@ -28018,7 +28129,7 @@ var BillingCenter = ({ dense = false }) => {
|
|
|
28018
28129
|
const recoveryAction = summary ? billingRecoveryAction(summary) : null;
|
|
28019
28130
|
return /* @__PURE__ */ jsxs("div", { className: outerClass, children: [
|
|
28020
28131
|
!dense && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
28021
|
-
/* @__PURE__ */ jsxs("h1", { className: "text-lg font-semibold text-text-primary", children: [
|
|
28132
|
+
/* @__PURE__ */ jsxs("h1", { className: "text-lg font-semibold text-text-primary max-sm:sr-only", children: [
|
|
28022
28133
|
"Usage & billing",
|
|
28023
28134
|
!isLiveMode() && paymentsUrlMap() && /* @__PURE__ */ 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" })
|
|
28024
28135
|
] }),
|
|
@@ -29740,7 +29851,7 @@ function BusinessVerificationSection({
|
|
|
29740
29851
|
};
|
|
29741
29852
|
const copy = STATUS_COPY[status] ?? STATUS_COPY.unverified;
|
|
29742
29853
|
const impl = flowInstance ? resolveKycInstance(config, flowInstance) : null;
|
|
29743
|
-
return /* @__PURE__ */ jsxs("section", { className: "rounded-lg border border-white/[0.07] bg-white/[0.02] p-4 space-y-3", children: [
|
|
29854
|
+
return /* @__PURE__ */ 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: [
|
|
29744
29855
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
29745
29856
|
/* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold text-text-secondary", children: "Business verification" }),
|
|
29746
29857
|
/* @__PURE__ */ jsx(
|
|
@@ -30737,7 +30848,7 @@ var PendingPaymentCard = ({
|
|
|
30737
30848
|
{
|
|
30738
30849
|
className: [
|
|
30739
30850
|
"flex items-center gap-3 px-3 py-2 border-b transition-colors",
|
|
30740
|
-
isHighlighted ? "border-status-warning-text/40 bg-status-warning-bg
|
|
30851
|
+
isHighlighted ? "border-status-warning-text/40 bg-status-warning-bg" : "border-border-light hover:bg-chip",
|
|
30741
30852
|
className
|
|
30742
30853
|
].join(" "),
|
|
30743
30854
|
children: [
|
|
@@ -30805,7 +30916,7 @@ var PendingPaymentCard = ({
|
|
|
30805
30916
|
{
|
|
30806
30917
|
className: [
|
|
30807
30918
|
"rounded-lg border p-4 transition-shadow",
|
|
30808
|
-
isHighlighted ? "border-status-warning-text/40 bg-status-warning-bg
|
|
30919
|
+
isHighlighted ? "border-status-warning-text/40 bg-status-warning-bg" : "border-border-default bg-surface",
|
|
30809
30920
|
"hover:shadow-sm",
|
|
30810
30921
|
className
|
|
30811
30922
|
].join(" "),
|
|
@@ -31447,4 +31558,4 @@ init_YieldFabricLogo();
|
|
|
31447
31558
|
//! This service handles all key management operations including creation, retrieval,
|
|
31448
31559
|
//! rotation, deletion, and cryptographic operations.
|
|
31449
31560
|
|
|
31450
|
-
export { AccessFlow, AccountOpeningPanel, AddCardDialog, AvatarPicker, BankAccountCard, BillingCenter, BillingChip, BrandingProvider, BrowserLocalStorageTokenStore, BusinessVerificationSection, Button, BuyCreditsDialog, CHOOSER_META, CREDIT_CHECKOUT_RETRY_REQUESTED_EVENT, CREDIT_CHECKOUT_RETRY_REQUIRED_EVENT, CREDIT_CHECKOUT_SYNCED_EVENT, Card, CardRequiredError, CardRequiredHost, ChainAccountActivationError, ChainAccountActivationHttpError, ChainAccountRequiredError, ChainAccountRequiredHost, ChainMismatchError, ChainNotConfiguredError, ChangePasswordModal_default as ChangePasswordModal, CreditExhaustedHost, CreditRequiredError, DEFAULT_APP_DELEGATION_SCOPE, DEFAULT_AUTH_PROVIDERS, DEFAULT_KYC_PROVIDERS, DEFAULT_MESSAGES, DEFAULT_OWNED_GROUP_DELEGATION_SCOPE, DailySpendChart, Drawer, EarningsSection, EntitySSEProvider, GROUP_ACCOUNT_OPERATION_KEYS, GenericSignDialog, globalNotificationService_default as GlobalNotificationService, GroupBillingSection, GroupOwnershipPanel, IdentityCard, IncomingPaymentsCenter, IncomingPaymentsInbox, IncomingPaymentsLauncher, KeyBalances_default as KeyBalances, SecurityPage as KeysManager, LineItemDrawer, LineItemsTable, LoadingSpinner, LoginAltMethods, LoginComponent, LoginForm, LoginLayout, LoginPage, LoginShell, METER_LABELS, OnboardingMethodCard, OnboardingPlanHttpError, OnboardingPolicyHttpError, OnboardingPolicySection, OnboardingWizard, PaymentStatusEnum, PendingPaymentCard, PhoneVerification, Profile as ProfileEditor, ProviderConfigProvider, RedirectTo, SendFromKey_default as SendFromKey, SendPaymentDrawer, SendPaymentForm, SignatureCenterRow, SignaturePreviewDrawer as SignatureDrawer, SignatureQueueProvider, SignatureWorkflow, SkeletonAvatar, SponsorshipSessionError, StepShell, Toast, VerificationRequiredError, VerificationRequiredHost, VerifiedBadge, WalletAuthProvider, WalletCenter, WalletCenterProvider, WalletCenterTrigger, WalletConfigProvider, WalletIdentityError, WalletNotRegisteredError, WalletProvider, YieldFabricLockup, activateChainAccount, activateChainAccountAndRefresh, addChainParamsByChainId, agentMinutesFromMicros, apiKeysService, assertChain, authService, balanceService, billingGateInfoForActiveToken, billingGateInfoFromToken, billingRecoveryAction, billingService, breakdownKeyLabel, buildAuthRegistry, buildCreditCheckoutReturnUrls, buildInbox, buildKycRegistry, buildSendParams, canReexecuteMessage, canonicalEip155ChainId, canonicalEvmAddress, canonicalGroupOperationUuid, canonicalU256Decimal, cardRequiredGate, chainAccountMode, chainAccountRequiredGate, chainAddressesToLabels, chainIdToHex, chainNames, computeMetaTransactionDigest, confirmMyEmailVerification, contractNeedsObligationAccept, convertAmountToRaw, createPasskey, createStripeIdentitySession, createSumsubAccessToken, creditCheckoutTargetGroupId, creditGateInfoForActiveToken, creditPlanTotalAllowanceUsd, creditRequiredGate, decodeJwtPayload as decodeJwtClaims, defaultTokenStore, defaultWalletCenterModules, defineWalletDirectory, defineWalletPanel, defineWalletRoute, delegationService, effectiveStatus, enabledPaymentChainIds, encodeApprove, encodeBalanceOf, encodeTransfer, ensureCardOnFile, ensureCreditAvailable, ensureVerified, exchange, extractCurrency, extractTokenAssetId, featureLabel, fetchAccountOpeningStatus, fetchNonce, fetchVerificationStatus, fetchWithChainAccountActivationRetry, findWalletRegistration, formatAgentMinutes, formatAgentTime, formatPages, formatPayment, formatRelativeTime, formatTxHashShort, formatUnits, formatUsdMicros, freshTokenForSameChainActor, gasOpLabel, getActiveChainId, getActiveUserChainId, getAddChainParams, getAuthServiceUrl, getBlockExplorer, getBlockExplorerAddressUrl, getBlockExplorerTxUrl, getChainAccountActivationStatus, getChainConfig, getChainIdFromToken, getCurrentChainId, getDefaultChainAddressLabels, getDefaultChainId, getErc20Allowance, getErc20Balance, getErc20Decimals, getErc20Symbol, getIdentityStatus, getIdentityStatusForProviders, getMyEmailVerificationStatus, getMyProfile, getNativeBalance, getPaymentsServiceUrl, getReceipt, getWebSocketUrl, groupInbox, groupsService, hasActiveAuthToken, humanizeMessageType, invalidateOnboardingState, invalidateWalletCount, isEoaKey, isExactSponsoredUserToken, isLiveMode, isPaymentChainEnabled, isStaffRole, itemAgentTime, itemLabel, keyPairToEoaHandle, keysService, knownAuthProviderIds, knownKycProviderIds, kycKindOf, link, listMyLoginKeys, listMyVerifications, llmCategoryLabel, makeWalletId, manualChainAccountRequiredContext, messagesService, needsPaymentAcceptance, nftOwnedSignerBinding, onboardingPlanService, onboardingPolicyService, ownedGroupUserSignerCustody, parseChainAccountRequired, parseChainAccountRequiredRest, parseGroupAccountOperationWire, parseUnits, parseVerificationRequired, parseWalletId, passkeyLabel, patchMyEmail, patchMyProfile, paymentsService, paymentsUrlMap, personalJwtHasGroupPayer, personalSessionHasGroupPayer, promptCardCapture, promptCreditPurchase, promptVerification, readCreditCheckoutReturnMarker, recordCredentialIssued, refreshChainAccountSession, registerBlockExplorer, registeredWalletsFromMetadata, remintTokensAfterCardChange, requireActiveUserChainId, requireChainIdFromToken, requireWalletRegistrationChain, requireWalletRegistrationSessionChain, resetDecimalsWarningCache, resolveAuth, resolveKyc, resolveKycInstance, resolvePaymentDirection, resolveWalletIdentityForChain, retryOnceAfterChainAccountActivation, selectWalletRegistration, setAuthRegistry, setGroupVerificationProfiles, setKycRegistry, setModeConfig, signInChallengeViaPasskey, signInWithPasskey, signUpRegisterViaPasskey, signUpWithPasskey, signWithPasskey, signatureSignin, snapshotNeedsPrepaidPlan, startMyEmailVerification, statusToColor, subscribeEntityEvents, switchChain, syntheticPasskeyAddress, testChainIds, tokenManager, tryParseWalletId, unlink, useAuth, useAuthContext, useBranding, useEntitySSE, useEoaSend, useForm, useGenericSigner, useIncomingPaymentDecimals, useIncomingPayments, useKeyBalance, useLogin, useLoginWithForm, useOnboardingState2 as useOnboardingRouting, useOnboardingState, usePaymentDecimals, useProviderConfig, useSendPayment, useSignatureQueue, useTapToCancel, useThemeClasses, useTokenStore, useWalletCenter, useWalletConfig, useWalletNavigate, useWalletSigner, userIdentityStatusScopes, validateWalletCenterModules, verificationRequiredGate, verifyMetaTransactionDigest, verifyNftAuthorizationBinding, walletCenter, walletRegistrationAuthContext, walletRegistrationMatches, walletRegistrationsForChain, withoutCreditCheckoutReturnMarker };
|
|
31561
|
+
export { AccessFlow, AccountOpeningPanel, AddCardDialog, AvatarPicker, BankAccountCard, BillingCenter, BillingChip, BrandingProvider, BrowserLocalStorageTokenStore, BusinessVerificationSection, Button, BuyCreditsDialog, CHOOSER_META, CREDIT_CHECKOUT_RETRY_REQUESTED_EVENT, CREDIT_CHECKOUT_RETRY_REQUIRED_EVENT, CREDIT_CHECKOUT_SYNCED_EVENT, Card, CardRequiredError, CardRequiredHost, ChainAccountActivationError, ChainAccountActivationHttpError, ChainAccountRequiredError, ChainAccountRequiredHost, ChainMismatchError, ChainNotConfiguredError, ChangePasswordModal_default as ChangePasswordModal, CreditExhaustedHost, CreditRequiredError, DEFAULT_APP_DELEGATION_SCOPE, DEFAULT_AUTH_PROVIDERS, DEFAULT_KYC_PROVIDERS, DEFAULT_MESSAGES, DEFAULT_OWNED_GROUP_DELEGATION_SCOPE, DailySpendChart, Drawer, EarningsSection, EntitySSEProvider, GROUP_ACCOUNT_OPERATION_KEYS, GenericSignDialog, globalNotificationService_default as GlobalNotificationService, GroupBillingSection, GroupOwnershipPanel, IdentityCard, IncomingPaymentsCenter, IncomingPaymentsInbox, IncomingPaymentsLauncher, KeyBalances_default as KeyBalances, SecurityPage as KeysManager, LineItemDrawer, LineItemsTable, LoadingSpinner, LoginAltMethods, LoginComponent, LoginForm, LoginLayout, LoginPage, LoginShell, METER_LABELS, OnboardingMethodCard, OnboardingPlanHttpError, OnboardingPolicyHttpError, OnboardingPolicySection, OnboardingWizard, PaymentStatusEnum, PendingPaymentCard, PhoneVerification, Profile as ProfileEditor, ProviderConfigProvider, RedirectTo, SendFromKey_default as SendFromKey, SendPaymentDrawer, SendPaymentForm, SignatureCenterRow, SignaturePreviewDrawer as SignatureDrawer, SignatureQueueProvider, SignatureWorkflow, SkeletonAvatar, SponsorshipSessionError, StepShell, Toast, VerificationRequiredError, VerificationRequiredHost, VerifiedBadge, WalletAuthProvider, WalletCenter, WalletCenterProvider, WalletCenterTrigger, WalletConfigProvider, WalletIdentityError, WalletNotRegisteredError, WalletProvider, YieldFabricLockup, activateChainAccount, activateChainAccountAndRefresh, addChainParamsByChainId, agentMinutesFromMicros, apiKeysService, assertChain, authService, balanceService, billingGateInfoForActiveToken, billingGateInfoFromToken, billingRecoveryAction, billingService, breakdownKeyLabel, buildAuthRegistry, buildCreditCheckoutReturnUrls, buildInbox, buildKycRegistry, buildSendParams, canReexecuteMessage, canonicalEip155ChainId, canonicalEvmAddress, canonicalGroupOperationUuid, canonicalU256Decimal, cardRequiredGate, chainAccountMode, chainAccountRequiredGate, chainAddressesToLabels, chainIdToHex, chainNames, computeMetaTransactionDigest, confirmMyEmailVerification, contractNeedsObligationAccept, convertAmountToRaw, createPasskey, createStripeIdentitySession, createSumsubAccessToken, creditCheckoutTargetGroupId, creditGateInfoForActiveToken, creditPlanTotalAllowanceUsd, creditRequiredGate, decodeJwtPayload as decodeJwtClaims, defaultTokenStore, defaultWalletCenterModules, defineWalletDirectory, defineWalletPanel, defineWalletRoute, delegationService, effectiveStatus, enabledPaymentChainIds, encodeApprove, encodeBalanceOf, encodeTransfer, ensureCardOnFile, ensureCreditAvailable, ensureVerified, exchange, extractCurrency, extractTokenAssetId, featureLabel, fetchAccountOpeningStatus, fetchNonce, fetchVerificationStatus, fetchWithChainAccountActivationRetry, findWalletRegistration, formatAgentMinutes, formatAgentTime, formatPages, formatPayment, formatRelativeTime, formatTxHashShort, formatUnits, formatUsdMicros, freshTokenForSameChainActor, gasOpLabel, getActiveChainId, getActiveUserChainId, getAddChainParams, getAuthServiceUrl, getBlockExplorer, getBlockExplorerAddressUrl, getBlockExplorerTxUrl, getChainAccountActivationStatus, getChainConfig, getChainIdFromToken, getCurrentChainId, getDefaultChainAddressLabels, getDefaultChainId, getErc20Allowance, getErc20Balance, getErc20Decimals, getErc20Symbol, getIdentityStatus, getIdentityStatusForProviders, getMyEmailVerificationStatus, getMyProfile, getNativeBalance, getPaymentsServiceUrl, getReceipt, getWebSocketUrl, groupInbox, groupsService, hasActiveAuthToken, humanizeMessageType, invalidateOnboardingState, invalidateWalletCount, isEoaKey, isExactSponsoredUserToken, isLiveMode, isPaymentChainEnabled, isStaffRole, itemAgentTime, itemLabel, keyPairToEoaHandle, keysService, knownAuthProviderIds, knownKycProviderIds, kycKindOf, link, listMyLoginKeys, listMyVerifications, llmCategoryLabel, makeWalletId, manualChainAccountRequiredContext, messagesService, needsPaymentAcceptance, nftOwnedSignerBinding, onboardingPlanService, onboardingPolicyService, ownedGroupUserSignerCustody, parseChainAccountRequired, parseChainAccountRequiredRest, parseGroupAccountOperationWire, parseUnits, parseVerificationRequired, parseWalletId, passkeyLabel, patchMyEmail, patchMyProfile, paymentsService, paymentsUrlMap, personalJwtHasGroupPayer, personalSessionHasGroupPayer, promptCardCapture, promptCreditPurchase, promptVerification, readCreditCheckoutReturnMarker, recordCredentialIssued, refreshChainAccountSession, registerBlockExplorer, registeredWalletsFromMetadata, remintTokensAfterCardChange, requireActiveUserChainId, requireChainIdFromToken, requireWalletRegistrationChain, requireWalletRegistrationSessionChain, resetDecimalsWarningCache, resolveAuth, resolveKyc, resolveKycInstance, resolvePaymentDirection, resolveWalletIdentityForChain, retryOnceAfterChainAccountActivation, selectWalletRegistration, setAuthRegistry, setGroupVerificationProfiles, setKycRegistry, setModeConfig, signInChallengeViaPasskey, signInWithPasskey, signUpRegisterViaPasskey, signUpWithPasskey, signWithPasskey, signatureSignin, snapshotNeedsPrepaidPlan, startMyEmailVerification, statusToColor, subscribeEntityEvents, subscribeJsonEvents, switchChain, syntheticPasskeyAddress, testChainIds, tokenManager, tryParseWalletId, unlink, useAuth, useAuthContext, useBranding, useEntitySSE, useEoaSend, useForm, useGenericSigner, useIncomingPaymentDecimals, useIncomingPayments, useKeyBalance, useLogin, useLoginWithForm, useOnboardingState2 as useOnboardingRouting, useOnboardingState, usePaymentDecimals, useProviderConfig, useSendPayment, useSignatureQueue, useTapToCancel, useThemeClasses, useTokenStore, useWalletCenter, useWalletConfig, useWalletNavigate, useWalletSigner, userIdentityStatusScopes, validateWalletCenterModules, verificationRequiredGate, verifyMetaTransactionDigest, verifyNftAuthorizationBinding, walletCenter, walletRegistrationAuthContext, walletRegistrationMatches, walletRegistrationsForChain, withoutCreditCheckoutReturnMarker };
|