@swype-org/react-sdk 0.2.312 → 0.2.316
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 +843 -196
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +53 -2
- package/dist/index.d.ts +53 -2
- package/dist/index.js +843 -198
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -7,6 +7,7 @@ var wagmi = require('wagmi');
|
|
|
7
7
|
var chains = require('wagmi/chains');
|
|
8
8
|
var connectors = require('wagmi/connectors');
|
|
9
9
|
var reactQuery = require('@tanstack/react-query');
|
|
10
|
+
var react$1 = require('@fingerprint/react');
|
|
10
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
12
|
var core = require('@wagmi/core');
|
|
12
13
|
var viem = require('viem');
|
|
@@ -994,6 +995,12 @@ function bridgedWalletsToConnectors(wallets, staticRdns = /* @__PURE__ */ new Se
|
|
|
994
995
|
}
|
|
995
996
|
var BLINK_PRIVY_APP_ID = "cmlil87uv004n0ck0blwumwek";
|
|
996
997
|
var BLINK_WC_PROJECT_ID = "f6c60234412f94ef9108dc8f67f4362c";
|
|
998
|
+
var BLINK_FINGERPRINT_API_KEY = "nr4FvTsZ6M5z2141FqrM";
|
|
999
|
+
var BLINK_FINGERPRINT_REGION = "us";
|
|
1000
|
+
function FingerprintVisitorPing() {
|
|
1001
|
+
react$1.useVisitorData({ immediate: true });
|
|
1002
|
+
return null;
|
|
1003
|
+
}
|
|
997
1004
|
function buildStaticConnectors() {
|
|
998
1005
|
return [
|
|
999
1006
|
// `unstable_shimAsyncInject` covers wallets whose content scripts wire
|
|
@@ -1088,25 +1095,33 @@ function BlinkProvider({
|
|
|
1088
1095
|
}),
|
|
1089
1096
|
[apiBaseUrl, theme, resolvedMinTransferAmountUsd, depositAmount, setDepositAmount, enableFullWidget, isMobileApp]
|
|
1090
1097
|
);
|
|
1091
|
-
return
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1098
|
+
return (
|
|
1099
|
+
// Outermost wrapper: loads the Fingerprint browser agent once per
|
|
1100
|
+
// provider mount, independent of wagmi/privy/query state. Visitor data
|
|
1101
|
+
// collection starts here; no hook is exposed yet (see SDK barrel).
|
|
1102
|
+
/* @__PURE__ */ jsxRuntime.jsxs(react$1.FingerprintProvider, { apiKey: BLINK_FINGERPRINT_API_KEY, region: BLINK_FINGERPRINT_REGION, children: [
|
|
1103
|
+
/* @__PURE__ */ jsxRuntime.jsx(FingerprintVisitorPing, {}),
|
|
1104
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClientRef.current, children: /* @__PURE__ */ jsxRuntime.jsx(wagmi.WagmiProvider, { config: wagmiConfig, reconnectOnMount: false, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1105
|
+
reactAuth.PrivyProvider,
|
|
1106
|
+
{
|
|
1107
|
+
appId: privyAppId ?? BLINK_PRIVY_APP_ID,
|
|
1108
|
+
config: {
|
|
1109
|
+
appearance: {
|
|
1110
|
+
theme: getThemeBase(theme),
|
|
1111
|
+
accentColor: getTheme(theme).accent
|
|
1112
|
+
},
|
|
1113
|
+
intl: {
|
|
1114
|
+
defaultCountry: "US"
|
|
1115
|
+
},
|
|
1116
|
+
embeddedWallets: {
|
|
1117
|
+
showWalletUIs: false
|
|
1118
|
+
}
|
|
1119
|
+
},
|
|
1120
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(BlinkContext.Provider, { value, children })
|
|
1105
1121
|
}
|
|
1106
|
-
}
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
) }) });
|
|
1122
|
+
) }) })
|
|
1123
|
+
] })
|
|
1124
|
+
);
|
|
1110
1125
|
}
|
|
1111
1126
|
function useBlinkConfig() {
|
|
1112
1127
|
const ctx = react.useContext(BlinkContext);
|
|
@@ -1763,6 +1778,8 @@ function screenForPhase(phase) {
|
|
|
1763
1778
|
return "manual-transfer";
|
|
1764
1779
|
case "login":
|
|
1765
1780
|
return "login";
|
|
1781
|
+
case "welcome-back":
|
|
1782
|
+
return "welcome-back";
|
|
1766
1783
|
case "deposit-options":
|
|
1767
1784
|
return "deposit-options";
|
|
1768
1785
|
case "wallet-picker":
|
|
@@ -7545,6 +7562,9 @@ function deriveFreshPhase(state) {
|
|
|
7545
7562
|
if (state.loadingData && state.activeCredentialId != null) {
|
|
7546
7563
|
return { step: "data-loading" };
|
|
7547
7564
|
}
|
|
7565
|
+
if (state.enableFullWidget && state.authenticatedOnOpen && !state.welcomeBackAcknowledged && state.activeCredentialId != null && !hasActiveWallet(state.accounts) && !state.mobileFlow) {
|
|
7566
|
+
return { step: "welcome-back" };
|
|
7567
|
+
}
|
|
7548
7568
|
if (state.activeCredentialId != null && !hasActiveWallet(state.accounts) && !state.mobileFlow) {
|
|
7549
7569
|
return { step: "wallet-picker", reason: "link" };
|
|
7550
7570
|
}
|
|
@@ -7624,7 +7644,9 @@ function createInitialState(config) {
|
|
|
7624
7644
|
guestWalletDeeplinksPreparing: false,
|
|
7625
7645
|
amountTooLow: null,
|
|
7626
7646
|
enableFullWidget: config.enableFullWidget ?? false,
|
|
7627
|
-
requireAmountEntry: config.depositAmount == null
|
|
7647
|
+
requireAmountEntry: config.depositAmount == null,
|
|
7648
|
+
authenticatedOnOpen: false,
|
|
7649
|
+
welcomeBackAcknowledged: false
|
|
7628
7650
|
};
|
|
7629
7651
|
}
|
|
7630
7652
|
function clearAuthenticatedSessionState(state) {
|
|
@@ -7662,7 +7684,9 @@ function clearAuthenticatedSessionState(state) {
|
|
|
7662
7684
|
setupDepositToken: null,
|
|
7663
7685
|
guestWalletPrepared: null,
|
|
7664
7686
|
guestWalletDeeplinksPreparing: false,
|
|
7665
|
-
amountTooLow: null
|
|
7687
|
+
amountTooLow: null,
|
|
7688
|
+
authenticatedOnOpen: false,
|
|
7689
|
+
welcomeBackAcknowledged: false
|
|
7666
7690
|
};
|
|
7667
7691
|
}
|
|
7668
7692
|
function paymentReducer(state, action) {
|
|
@@ -7991,6 +8015,8 @@ function applyAction(state, action) {
|
|
|
7991
8015
|
};
|
|
7992
8016
|
case "CANCEL_LOGIN_REQUEST":
|
|
7993
8017
|
return { ...state, loginRequested: false, error: null };
|
|
8018
|
+
case "ACKNOWLEDGE_WELCOME_BACK":
|
|
8019
|
+
return { ...state, welcomeBackAcknowledged: true };
|
|
7994
8020
|
case "SET_ERROR":
|
|
7995
8021
|
return { ...state, error: action.error };
|
|
7996
8022
|
case "AMOUNT_TOO_LOW":
|
|
@@ -8088,7 +8114,13 @@ function applyAction(state, action) {
|
|
|
8088
8114
|
...state,
|
|
8089
8115
|
privyReady: action.ready,
|
|
8090
8116
|
privyAuthenticated: action.authenticated,
|
|
8091
|
-
...action.authenticated ? { loginRequested: false } : {}
|
|
8117
|
+
...action.authenticated ? { loginRequested: false } : {},
|
|
8118
|
+
// Latch "already authenticated when the flow opened" exactly once, on
|
|
8119
|
+
// the ready: false → true transition that carries an existing session.
|
|
8120
|
+
// A user who opens logged-out and signs in mid-session never hits this
|
|
8121
|
+
// branch (ready was already true), so the flag stays false and they
|
|
8122
|
+
// skip WelcomeBackScreen.
|
|
8123
|
+
...!state.privyReady && action.ready && action.authenticated ? { authenticatedOnOpen: true } : {}
|
|
8092
8124
|
};
|
|
8093
8125
|
case "SYNC_AMOUNT":
|
|
8094
8126
|
return {
|
|
@@ -10527,16 +10559,60 @@ var copyIconCircleStyle = (bgRecessed) => ({
|
|
|
10527
10559
|
justifyContent: "center",
|
|
10528
10560
|
width: 48
|
|
10529
10561
|
});
|
|
10562
|
+
function FitText({
|
|
10563
|
+
children,
|
|
10564
|
+
maxFontSize,
|
|
10565
|
+
minFontSize,
|
|
10566
|
+
color,
|
|
10567
|
+
fontWeight = 500
|
|
10568
|
+
}) {
|
|
10569
|
+
const containerRef = react.useRef(null);
|
|
10570
|
+
const textRef = react.useRef(null);
|
|
10571
|
+
const [fontSize, setFontSize] = react.useState(maxFontSize);
|
|
10572
|
+
react.useLayoutEffect(() => {
|
|
10573
|
+
const container = containerRef.current;
|
|
10574
|
+
const text = textRef.current;
|
|
10575
|
+
if (!container || !text) return void 0;
|
|
10576
|
+
const fit = () => {
|
|
10577
|
+
let size = maxFontSize;
|
|
10578
|
+
text.style.fontSize = `${size}px`;
|
|
10579
|
+
while (size > minFontSize && text.scrollWidth > container.clientWidth) {
|
|
10580
|
+
size -= 1;
|
|
10581
|
+
text.style.fontSize = `${size}px`;
|
|
10582
|
+
}
|
|
10583
|
+
setFontSize(size);
|
|
10584
|
+
};
|
|
10585
|
+
fit();
|
|
10586
|
+
const observer = new ResizeObserver(fit);
|
|
10587
|
+
observer.observe(container);
|
|
10588
|
+
return () => observer.disconnect();
|
|
10589
|
+
}, [children, maxFontSize, minFontSize]);
|
|
10590
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { ref: containerRef, style: containerStyle8, children: /* @__PURE__ */ jsxRuntime.jsx("span", { ref: textRef, style: { ...textStyle2(color, fontWeight), fontSize }, children }) });
|
|
10591
|
+
}
|
|
10592
|
+
var containerStyle8 = {
|
|
10593
|
+
flex: 1,
|
|
10594
|
+
minWidth: 0,
|
|
10595
|
+
overflow: "hidden",
|
|
10596
|
+
display: "flex",
|
|
10597
|
+
alignItems: "center"
|
|
10598
|
+
};
|
|
10599
|
+
var textStyle2 = (color, fontWeight) => ({
|
|
10600
|
+
whiteSpace: "nowrap",
|
|
10601
|
+
overflow: "hidden",
|
|
10602
|
+
textOverflow: "ellipsis",
|
|
10603
|
+
color,
|
|
10604
|
+
fontWeight
|
|
10605
|
+
});
|
|
10530
10606
|
|
|
10531
10607
|
// src/deviceBiometricUnlockText.ts
|
|
10532
|
-
var FALLBACK = "
|
|
10608
|
+
var FALLBACK = "Passkey";
|
|
10533
10609
|
function getDeviceBiometricUnlockText() {
|
|
10534
10610
|
const ua = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
|
|
10535
10611
|
if (/iPhone|iPad|iPod/i.test(ua)) {
|
|
10536
10612
|
return "Face ID";
|
|
10537
10613
|
}
|
|
10538
10614
|
if (/Android/i.test(ua)) {
|
|
10539
|
-
return "Fingerprint or
|
|
10615
|
+
return "Fingerprint or Face";
|
|
10540
10616
|
}
|
|
10541
10617
|
if (/Windows NT/i.test(ua)) {
|
|
10542
10618
|
return "Windows Hello";
|
|
@@ -10825,7 +10901,7 @@ function DepositOptionsScreen({
|
|
|
10825
10901
|
onClick: onSignInWithBlink,
|
|
10826
10902
|
style: depositPillStyle(tokens.accent),
|
|
10827
10903
|
children: [
|
|
10828
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10904
|
+
/* @__PURE__ */ jsxRuntime.jsx(FitText, { maxFontSize: 16, minFontSize: 11, color: tokens.accentText, children: depositLabel }),
|
|
10829
10905
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: clusterStyle, children: CLUSTER_LOGOS.map((logo, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
10830
10906
|
"span",
|
|
10831
10907
|
{
|
|
@@ -10932,6 +11008,7 @@ var depositPillStyle = (bg) => ({
|
|
|
10932
11008
|
display: "flex",
|
|
10933
11009
|
alignItems: "center",
|
|
10934
11010
|
justifyContent: "space-between",
|
|
11011
|
+
gap: 8,
|
|
10935
11012
|
width: "100%",
|
|
10936
11013
|
height: 56,
|
|
10937
11014
|
padding: "12px 12px 12px 24px",
|
|
@@ -10942,16 +11019,11 @@ var depositPillStyle = (bg) => ({
|
|
|
10942
11019
|
boxSizing: "border-box",
|
|
10943
11020
|
fontFamily: "inherit"
|
|
10944
11021
|
});
|
|
10945
|
-
var depositPillLabelStyle = (color) => ({
|
|
10946
|
-
color,
|
|
10947
|
-
fontSize: 16,
|
|
10948
|
-
fontWeight: 500,
|
|
10949
|
-
whiteSpace: "nowrap"
|
|
10950
|
-
});
|
|
10951
11022
|
var clusterStyle = {
|
|
10952
11023
|
display: "inline-flex",
|
|
10953
11024
|
alignItems: "center",
|
|
10954
|
-
isolation: "isolate"
|
|
11025
|
+
isolation: "isolate",
|
|
11026
|
+
flexShrink: 0
|
|
10955
11027
|
};
|
|
10956
11028
|
var clusterChipStyle = (bg, last) => ({
|
|
10957
11029
|
width: 32,
|
|
@@ -11046,117 +11118,406 @@ var closeButtonStyle2 = (bg, color) => ({
|
|
|
11046
11118
|
cursor: "pointer",
|
|
11047
11119
|
padding: 0
|
|
11048
11120
|
});
|
|
11049
|
-
|
|
11050
|
-
|
|
11051
|
-
|
|
11052
|
-
|
|
11053
|
-
|
|
11121
|
+
var CLUSTER_LOGOS2 = [
|
|
11122
|
+
METAMASK_LOGO,
|
|
11123
|
+
PHANTOM_LOGO,
|
|
11124
|
+
RABBY_LOGO,
|
|
11125
|
+
OKX_WALLET_LOGO,
|
|
11126
|
+
TRUST_WALLET_LOGO,
|
|
11127
|
+
BASE_LOGO
|
|
11128
|
+
];
|
|
11129
|
+
function WelcomeBackScreen({
|
|
11130
|
+
onToAddress,
|
|
11131
|
+
onComplete,
|
|
11054
11132
|
onClose
|
|
11055
11133
|
}) {
|
|
11056
11134
|
const { tokens } = useBlinkConfig();
|
|
11057
|
-
const
|
|
11058
|
-
|
|
11059
|
-
{
|
|
11060
|
-
|
|
11061
|
-
|
|
11062
|
-
|
|
11063
|
-
style: closeButtonStyle3(tokens),
|
|
11064
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11065
|
-
"path",
|
|
11135
|
+
const depositLabel = `Deposit with ${getDeviceBiometricUnlockText()}`;
|
|
11136
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ScreenLayout, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: sheetStyle2, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle3, children: [
|
|
11137
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: headerRowStyle2, children: [
|
|
11138
|
+
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle2 }),
|
|
11139
|
+
onClose ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
11140
|
+
"button",
|
|
11066
11141
|
{
|
|
11067
|
-
|
|
11068
|
-
|
|
11069
|
-
|
|
11070
|
-
|
|
11071
|
-
|
|
11142
|
+
type: "button",
|
|
11143
|
+
onClick: onClose,
|
|
11144
|
+
"aria-label": "Close",
|
|
11145
|
+
style: closeButtonStyle3(tokens.bgRecessed, tokens.text),
|
|
11146
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11147
|
+
"path",
|
|
11148
|
+
{
|
|
11149
|
+
d: "M6 6l12 12M18 6L6 18",
|
|
11150
|
+
stroke: "currentColor",
|
|
11151
|
+
strokeWidth: "2",
|
|
11152
|
+
strokeLinecap: "round",
|
|
11153
|
+
strokeLinejoin: "round"
|
|
11154
|
+
}
|
|
11155
|
+
) })
|
|
11072
11156
|
}
|
|
11073
|
-
)
|
|
11074
|
-
}
|
|
11075
|
-
|
|
11076
|
-
|
|
11157
|
+
) : null
|
|
11158
|
+
] }),
|
|
11159
|
+
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_PASSKEY_ILLUSTRATION, alt: "", "aria-hidden": "true", style: heroStyle2 }),
|
|
11160
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: stackStyle2, children: [
|
|
11161
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: depositPillWrapperStyle2, children: [
|
|
11162
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
11163
|
+
"button",
|
|
11164
|
+
{
|
|
11165
|
+
type: "button",
|
|
11166
|
+
onClick: onComplete,
|
|
11167
|
+
style: depositFrameStyle(tokens.highlight),
|
|
11168
|
+
children: [
|
|
11169
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: completeSetupBandStyle(tokens.text), children: "Complete setup" }),
|
|
11170
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { style: depositPillStyle2(tokens.accent), children: [
|
|
11171
|
+
/* @__PURE__ */ jsxRuntime.jsx(FitText, { maxFontSize: 16, minFontSize: 11, color: tokens.accentText, children: depositLabel }),
|
|
11172
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: clusterStyle2, children: CLUSTER_LOGOS2.map((logo, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
11173
|
+
"span",
|
|
11174
|
+
{
|
|
11175
|
+
style: clusterChipStyle2(tokens.bgInput, i === CLUSTER_LOGOS2.length - 1),
|
|
11176
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: "", "aria-hidden": "true", style: clusterIconStyle2 })
|
|
11177
|
+
},
|
|
11178
|
+
logo
|
|
11179
|
+
)) })
|
|
11180
|
+
] })
|
|
11181
|
+
]
|
|
11182
|
+
}
|
|
11183
|
+
),
|
|
11184
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: feesBadgeStyle2(tokens.highlight, tokens.text), children: "0% FEES" })
|
|
11185
|
+
] }),
|
|
11186
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: dividerRowStyle2, children: [
|
|
11187
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: dividerRuleStyle2(tokens.textTertiary) }),
|
|
11188
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: dividerLabelStyle2(tokens.textTertiary), children: "OR" }),
|
|
11189
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: dividerRuleStyle2(tokens.textTertiary) })
|
|
11190
|
+
] }),
|
|
11191
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
11192
|
+
"button",
|
|
11193
|
+
{
|
|
11194
|
+
type: "button",
|
|
11195
|
+
onClick: onToAddress,
|
|
11196
|
+
style: manualRowStyle2(tokens.bgCardTranslucent),
|
|
11197
|
+
children: [
|
|
11198
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: manualLabelStyle2(tokens.text), children: "Send Crypto Manually" }),
|
|
11199
|
+
/* @__PURE__ */ jsxRuntime.jsx(QrIcon2, { color: tokens.text })
|
|
11200
|
+
]
|
|
11201
|
+
}
|
|
11202
|
+
)
|
|
11203
|
+
] })
|
|
11204
|
+
] }) }) });
|
|
11205
|
+
}
|
|
11206
|
+
function QrIcon2({ color }) {
|
|
11077
11207
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
11078
|
-
|
|
11208
|
+
"svg",
|
|
11079
11209
|
{
|
|
11080
|
-
|
|
11210
|
+
width: "24",
|
|
11211
|
+
height: "24",
|
|
11212
|
+
viewBox: "0 0 24 24",
|
|
11213
|
+
fill: "none",
|
|
11214
|
+
"aria-hidden": "true",
|
|
11215
|
+
style: { flexShrink: 0 },
|
|
11081
11216
|
children: [
|
|
11082
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11083
|
-
/* @__PURE__ */ jsxRuntime.
|
|
11084
|
-
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
|
|
11088
|
-
|
|
11089
|
-
|
|
11090
|
-
|
|
11091
|
-
|
|
11092
|
-
),
|
|
11093
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle2(tokens.text), children: title }),
|
|
11094
|
-
message && /* @__PURE__ */ jsxRuntime.jsx("p", { style: messageStyle(tokens.text), children: message })
|
|
11095
|
-
] })
|
|
11217
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
11218
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "6", width: "2", height: "2", fill: color }),
|
|
11219
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
11220
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "16", y: "6", width: "2", height: "2", fill: color }),
|
|
11221
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "13.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
11222
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "16", width: "2", height: "2", fill: color }),
|
|
11223
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "13.5", width: "2.5", height: "2.5", fill: color }),
|
|
11224
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "13.5", width: "2.5", height: "2.5", fill: color }),
|
|
11225
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "18", width: "2.5", height: "2.5", fill: color }),
|
|
11226
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "18", width: "2.5", height: "2.5", fill: color })
|
|
11096
11227
|
]
|
|
11097
11228
|
}
|
|
11098
11229
|
);
|
|
11099
11230
|
}
|
|
11231
|
+
var sheetStyle2 = {
|
|
11232
|
+
position: "relative",
|
|
11233
|
+
minHeight: "100%",
|
|
11234
|
+
display: "flex",
|
|
11235
|
+
flexDirection: "column",
|
|
11236
|
+
boxSizing: "border-box"
|
|
11237
|
+
};
|
|
11100
11238
|
var contentStyle3 = {
|
|
11101
|
-
textAlign: "center",
|
|
11102
|
-
flex: 1,
|
|
11103
11239
|
display: "flex",
|
|
11104
11240
|
flexDirection: "column",
|
|
11105
11241
|
alignItems: "center",
|
|
11106
|
-
|
|
11107
|
-
|
|
11242
|
+
gap: 32,
|
|
11243
|
+
padding: "32px 8px"
|
|
11108
11244
|
};
|
|
11109
|
-
var
|
|
11110
|
-
|
|
11111
|
-
|
|
11245
|
+
var headerRowStyle2 = {
|
|
11246
|
+
display: "flex",
|
|
11247
|
+
alignItems: "center",
|
|
11248
|
+
justifyContent: "space-between",
|
|
11249
|
+
width: "100%",
|
|
11250
|
+
minHeight: 44
|
|
11251
|
+
};
|
|
11252
|
+
var wordmarkImgStyle2 = {
|
|
11253
|
+
height: 31,
|
|
11254
|
+
width: "auto",
|
|
11255
|
+
display: "block"
|
|
11256
|
+
};
|
|
11257
|
+
var heroStyle2 = {
|
|
11258
|
+
width: 220,
|
|
11259
|
+
height: 220,
|
|
11260
|
+
maxWidth: "100%",
|
|
11112
11261
|
objectFit: "contain",
|
|
11113
11262
|
display: "block"
|
|
11114
11263
|
};
|
|
11115
|
-
var
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
|
|
11119
|
-
|
|
11120
|
-
|
|
11121
|
-
|
|
11264
|
+
var stackStyle2 = {
|
|
11265
|
+
display: "flex",
|
|
11266
|
+
flexDirection: "column",
|
|
11267
|
+
gap: 16,
|
|
11268
|
+
width: "100%"
|
|
11269
|
+
};
|
|
11270
|
+
var depositPillWrapperStyle2 = {
|
|
11271
|
+
position: "relative",
|
|
11272
|
+
width: "100%",
|
|
11273
|
+
paddingBottom: 12
|
|
11274
|
+
};
|
|
11275
|
+
var depositFrameStyle = (bg) => ({
|
|
11276
|
+
display: "flex",
|
|
11277
|
+
flexDirection: "column",
|
|
11278
|
+
alignItems: "stretch",
|
|
11279
|
+
width: "100%",
|
|
11280
|
+
padding: "2px 4px 4px",
|
|
11281
|
+
background: bg,
|
|
11282
|
+
border: "none",
|
|
11283
|
+
borderRadius: 32,
|
|
11284
|
+
cursor: "pointer",
|
|
11285
|
+
boxSizing: "border-box",
|
|
11286
|
+
fontFamily: "inherit"
|
|
11122
11287
|
});
|
|
11123
|
-
var
|
|
11124
|
-
|
|
11125
|
-
|
|
11126
|
-
|
|
11288
|
+
var completeSetupBandStyle = (color) => ({
|
|
11289
|
+
display: "flex",
|
|
11290
|
+
alignItems: "center",
|
|
11291
|
+
justifyContent: "center",
|
|
11292
|
+
height: 26,
|
|
11127
11293
|
color,
|
|
11128
|
-
|
|
11129
|
-
|
|
11294
|
+
fontSize: 13,
|
|
11295
|
+
fontWeight: 600,
|
|
11296
|
+
letterSpacing: "0.01em"
|
|
11130
11297
|
});
|
|
11131
|
-
var
|
|
11132
|
-
width: 40,
|
|
11133
|
-
height: 40,
|
|
11134
|
-
borderRadius: "50%",
|
|
11135
|
-
border: "none",
|
|
11136
|
-
background: tokens.bgRecessed,
|
|
11137
|
-
color: tokens.text,
|
|
11298
|
+
var depositPillStyle2 = (bg) => ({
|
|
11138
11299
|
display: "flex",
|
|
11139
11300
|
alignItems: "center",
|
|
11301
|
+
justifyContent: "space-between",
|
|
11302
|
+
gap: 8,
|
|
11303
|
+
width: "100%",
|
|
11304
|
+
height: 56,
|
|
11305
|
+
padding: "12px 12px 12px 24px",
|
|
11306
|
+
background: bg,
|
|
11307
|
+
border: "none",
|
|
11308
|
+
borderRadius: 28,
|
|
11309
|
+
boxSizing: "border-box"
|
|
11310
|
+
});
|
|
11311
|
+
var clusterStyle2 = {
|
|
11312
|
+
display: "inline-flex",
|
|
11313
|
+
alignItems: "center",
|
|
11314
|
+
isolation: "isolate",
|
|
11315
|
+
flexShrink: 0
|
|
11316
|
+
};
|
|
11317
|
+
var clusterChipStyle2 = (bg, last) => ({
|
|
11318
|
+
width: 32,
|
|
11319
|
+
height: 32,
|
|
11320
|
+
borderRadius: "50%",
|
|
11321
|
+
background: bg,
|
|
11322
|
+
display: "inline-flex",
|
|
11323
|
+
alignItems: "center",
|
|
11140
11324
|
justifyContent: "center",
|
|
11141
|
-
|
|
11142
|
-
|
|
11325
|
+
marginRight: last ? 0 : -12,
|
|
11326
|
+
filter: "drop-shadow(0 0 2px rgba(0, 0, 0, 0.24))",
|
|
11327
|
+
flexShrink: 0
|
|
11143
11328
|
});
|
|
11144
|
-
|
|
11145
|
-
|
|
11146
|
-
|
|
11147
|
-
|
|
11148
|
-
|
|
11149
|
-
|
|
11150
|
-
|
|
11151
|
-
|
|
11152
|
-
|
|
11153
|
-
|
|
11154
|
-
|
|
11155
|
-
|
|
11156
|
-
|
|
11157
|
-
|
|
11158
|
-
|
|
11159
|
-
|
|
11329
|
+
var clusterIconStyle2 = {
|
|
11330
|
+
width: 24,
|
|
11331
|
+
height: 24,
|
|
11332
|
+
borderRadius: "50%",
|
|
11333
|
+
objectFit: "cover",
|
|
11334
|
+
display: "block"
|
|
11335
|
+
};
|
|
11336
|
+
var feesBadgeStyle2 = (bg, color) => ({
|
|
11337
|
+
position: "absolute",
|
|
11338
|
+
left: 131,
|
|
11339
|
+
top: 72,
|
|
11340
|
+
display: "inline-flex",
|
|
11341
|
+
alignItems: "center",
|
|
11342
|
+
justifyContent: "center",
|
|
11343
|
+
background: bg,
|
|
11344
|
+
color,
|
|
11345
|
+
fontSize: 12,
|
|
11346
|
+
fontWeight: 500,
|
|
11347
|
+
lineHeight: 1,
|
|
11348
|
+
padding: "4px 8px",
|
|
11349
|
+
borderRadius: 6,
|
|
11350
|
+
whiteSpace: "nowrap",
|
|
11351
|
+
transform: "rotate(-6.75deg)",
|
|
11352
|
+
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.16)",
|
|
11353
|
+
pointerEvents: "none"
|
|
11354
|
+
});
|
|
11355
|
+
var dividerRowStyle2 = {
|
|
11356
|
+
display: "flex",
|
|
11357
|
+
alignItems: "center",
|
|
11358
|
+
justifyContent: "center",
|
|
11359
|
+
gap: 10,
|
|
11360
|
+
padding: "0 16px",
|
|
11361
|
+
width: "100%",
|
|
11362
|
+
boxSizing: "border-box"
|
|
11363
|
+
};
|
|
11364
|
+
var dividerRuleStyle2 = (color) => ({
|
|
11365
|
+
flex: 1,
|
|
11366
|
+
height: 1,
|
|
11367
|
+
background: color
|
|
11368
|
+
});
|
|
11369
|
+
var dividerLabelStyle2 = (color) => ({
|
|
11370
|
+
color,
|
|
11371
|
+
fontSize: 12,
|
|
11372
|
+
fontWeight: 500,
|
|
11373
|
+
whiteSpace: "nowrap"
|
|
11374
|
+
});
|
|
11375
|
+
var manualRowStyle2 = (bg) => ({
|
|
11376
|
+
display: "flex",
|
|
11377
|
+
alignItems: "center",
|
|
11378
|
+
gap: 8,
|
|
11379
|
+
width: "100%",
|
|
11380
|
+
height: 56,
|
|
11381
|
+
padding: "12px 24px",
|
|
11382
|
+
background: bg,
|
|
11383
|
+
border: "none",
|
|
11384
|
+
borderRadius: 28,
|
|
11385
|
+
cursor: "pointer",
|
|
11386
|
+
boxSizing: "border-box",
|
|
11387
|
+
fontFamily: "inherit"
|
|
11388
|
+
});
|
|
11389
|
+
var manualLabelStyle2 = (color) => ({
|
|
11390
|
+
flex: 1,
|
|
11391
|
+
minWidth: 0,
|
|
11392
|
+
color,
|
|
11393
|
+
fontSize: 16,
|
|
11394
|
+
fontWeight: 400
|
|
11395
|
+
});
|
|
11396
|
+
var closeButtonStyle3 = (bg, color) => ({
|
|
11397
|
+
flexShrink: 0,
|
|
11398
|
+
width: 44,
|
|
11399
|
+
height: 44,
|
|
11400
|
+
borderRadius: "50%",
|
|
11401
|
+
border: "none",
|
|
11402
|
+
background: bg,
|
|
11403
|
+
color,
|
|
11404
|
+
display: "flex",
|
|
11405
|
+
alignItems: "center",
|
|
11406
|
+
justifyContent: "center",
|
|
11407
|
+
cursor: "pointer",
|
|
11408
|
+
padding: 0
|
|
11409
|
+
});
|
|
11410
|
+
function BlinkErrorScreen({
|
|
11411
|
+
title,
|
|
11412
|
+
message,
|
|
11413
|
+
retryLabel,
|
|
11414
|
+
onRetry,
|
|
11415
|
+
onClose
|
|
11416
|
+
}) {
|
|
11417
|
+
const { tokens } = useBlinkConfig();
|
|
11418
|
+
const headerRight = onClose ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
11419
|
+
"button",
|
|
11420
|
+
{
|
|
11421
|
+
type: "button",
|
|
11422
|
+
onClick: onClose,
|
|
11423
|
+
"aria-label": "Close",
|
|
11424
|
+
style: closeButtonStyle4(tokens),
|
|
11425
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11426
|
+
"path",
|
|
11427
|
+
{
|
|
11428
|
+
d: "M6 6l12 12M18 6L6 18",
|
|
11429
|
+
stroke: "currentColor",
|
|
11430
|
+
strokeWidth: "2",
|
|
11431
|
+
strokeLinecap: "round",
|
|
11432
|
+
strokeLinejoin: "round"
|
|
11433
|
+
}
|
|
11434
|
+
) })
|
|
11435
|
+
}
|
|
11436
|
+
) : void 0;
|
|
11437
|
+
const showRetry = retryLabel != null && onRetry != null;
|
|
11438
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
11439
|
+
ScreenLayout,
|
|
11440
|
+
{
|
|
11441
|
+
footer: showRetry ? /* @__PURE__ */ jsxRuntime.jsx(PrimaryButton, { onClick: onRetry, children: retryLabel }) : void 0,
|
|
11442
|
+
children: [
|
|
11443
|
+
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { right: headerRight }),
|
|
11444
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle4, children: [
|
|
11445
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11446
|
+
"img",
|
|
11447
|
+
{
|
|
11448
|
+
src: BLINK_ERROR_ILLUSTRATION,
|
|
11449
|
+
alt: "",
|
|
11450
|
+
"aria-hidden": "true",
|
|
11451
|
+
style: illustrationStyle2
|
|
11452
|
+
}
|
|
11453
|
+
),
|
|
11454
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle2(tokens.text), children: title }),
|
|
11455
|
+
message && /* @__PURE__ */ jsxRuntime.jsx("p", { style: messageStyle(tokens.text), children: message })
|
|
11456
|
+
] })
|
|
11457
|
+
]
|
|
11458
|
+
}
|
|
11459
|
+
);
|
|
11460
|
+
}
|
|
11461
|
+
var contentStyle4 = {
|
|
11462
|
+
textAlign: "center",
|
|
11463
|
+
flex: 1,
|
|
11464
|
+
display: "flex",
|
|
11465
|
+
flexDirection: "column",
|
|
11466
|
+
alignItems: "center",
|
|
11467
|
+
justifyContent: "center",
|
|
11468
|
+
gap: 16
|
|
11469
|
+
};
|
|
11470
|
+
var illustrationStyle2 = {
|
|
11471
|
+
width: 200,
|
|
11472
|
+
height: 200,
|
|
11473
|
+
objectFit: "contain",
|
|
11474
|
+
display: "block"
|
|
11475
|
+
};
|
|
11476
|
+
var headingStyle2 = (color) => ({
|
|
11477
|
+
fontSize: "1.5rem",
|
|
11478
|
+
fontWeight: 700,
|
|
11479
|
+
lineHeight: 1.1,
|
|
11480
|
+
letterSpacing: "-0.01em",
|
|
11481
|
+
color,
|
|
11482
|
+
margin: 0
|
|
11483
|
+
});
|
|
11484
|
+
var messageStyle = (color) => ({
|
|
11485
|
+
fontSize: "1rem",
|
|
11486
|
+
fontWeight: 400,
|
|
11487
|
+
lineHeight: 1.4,
|
|
11488
|
+
color,
|
|
11489
|
+
margin: 0,
|
|
11490
|
+
maxWidth: 320
|
|
11491
|
+
});
|
|
11492
|
+
var closeButtonStyle4 = (tokens) => ({
|
|
11493
|
+
width: 40,
|
|
11494
|
+
height: 40,
|
|
11495
|
+
borderRadius: "50%",
|
|
11496
|
+
border: "none",
|
|
11497
|
+
background: tokens.bgRecessed,
|
|
11498
|
+
color: tokens.text,
|
|
11499
|
+
display: "flex",
|
|
11500
|
+
alignItems: "center",
|
|
11501
|
+
justifyContent: "center",
|
|
11502
|
+
cursor: "pointer",
|
|
11503
|
+
padding: 0
|
|
11504
|
+
});
|
|
11505
|
+
function AmountTooLowScreen({
|
|
11506
|
+
minAmountUsd,
|
|
11507
|
+
onRetry,
|
|
11508
|
+
onClose
|
|
11509
|
+
}) {
|
|
11510
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11511
|
+
BlinkErrorScreen,
|
|
11512
|
+
{
|
|
11513
|
+
title: "Amount too low",
|
|
11514
|
+
message: `The minimum payment amount is $${minAmountUsd.toFixed(2)}.`,
|
|
11515
|
+
retryLabel: onRetry ? "Try Again" : void 0,
|
|
11516
|
+
onRetry,
|
|
11517
|
+
onClose
|
|
11518
|
+
}
|
|
11519
|
+
);
|
|
11520
|
+
}
|
|
11160
11521
|
var RESEND_COOLDOWN_SECONDS = 30;
|
|
11161
11522
|
function OtpVerifyScreen({
|
|
11162
11523
|
maskedIdentifier,
|
|
@@ -11210,7 +11571,7 @@ function OtpVerifyScreen({
|
|
|
11210
11571
|
] }),
|
|
11211
11572
|
children: [
|
|
11212
11573
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
11213
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11574
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle5, children: [
|
|
11214
11575
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle3(tokens.text), children: "Confirm it is you" }),
|
|
11215
11576
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { style: subtitleStyle2(tokens.textSecondary), children: [
|
|
11216
11577
|
"We sent a 6-digit code to",
|
|
@@ -11234,7 +11595,7 @@ function OtpVerifyScreen({
|
|
|
11234
11595
|
}
|
|
11235
11596
|
);
|
|
11236
11597
|
}
|
|
11237
|
-
var
|
|
11598
|
+
var contentStyle5 = {
|
|
11238
11599
|
textAlign: "center",
|
|
11239
11600
|
display: "flex",
|
|
11240
11601
|
flexDirection: "column",
|
|
@@ -11316,7 +11677,7 @@ function PasskeyScreen({
|
|
|
11316
11677
|
] }),
|
|
11317
11678
|
children: [
|
|
11318
11679
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack, onLogout }),
|
|
11319
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11680
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle6, children: [
|
|
11320
11681
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle4(tokens.text), children: "Secure your account with a passkey" }),
|
|
11321
11682
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle3(tokens.textSecondary), children: "This enables secure one-tap deposits on this device" }),
|
|
11322
11683
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle2(tokens), children: error })
|
|
@@ -11325,7 +11686,7 @@ function PasskeyScreen({
|
|
|
11325
11686
|
}
|
|
11326
11687
|
);
|
|
11327
11688
|
}
|
|
11328
|
-
var
|
|
11689
|
+
var contentStyle6 = {
|
|
11329
11690
|
textAlign: "center",
|
|
11330
11691
|
flex: 1,
|
|
11331
11692
|
display: "flex",
|
|
@@ -11392,7 +11753,7 @@ function PasskeyPopupWelcomeScreen({
|
|
|
11392
11753
|
) }),
|
|
11393
11754
|
children: [
|
|
11394
11755
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack, onLogout }),
|
|
11395
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11756
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle7, children: [
|
|
11396
11757
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockupStyle, children: [
|
|
11397
11758
|
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_LOGO, alt: "", "aria-hidden": true, style: lockupMarkStyle }),
|
|
11398
11759
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: wordmarkStyle(tokens.text), children: "Blink" })
|
|
@@ -11432,7 +11793,7 @@ function PasskeyIcon() {
|
|
|
11432
11793
|
)
|
|
11433
11794
|
] });
|
|
11434
11795
|
}
|
|
11435
|
-
var
|
|
11796
|
+
var contentStyle7 = {
|
|
11436
11797
|
flex: 1,
|
|
11437
11798
|
minHeight: 0,
|
|
11438
11799
|
display: "flex",
|
|
@@ -11508,7 +11869,7 @@ function VerifyPasskeyScreen({
|
|
|
11508
11869
|
] }),
|
|
11509
11870
|
children: [
|
|
11510
11871
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
11511
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11872
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle8, children: [
|
|
11512
11873
|
/* @__PURE__ */ jsxRuntime.jsx(IconCircle, { variant: "accent", size: 64, children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "36", height: "36", viewBox: "0 0 24 24", fill: "none", children: [
|
|
11513
11874
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "3", stroke: tokens.accent, strokeWidth: "1.5", strokeDasharray: "3 2" }),
|
|
11514
11875
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "10", r: "1", fill: tokens.accent }),
|
|
@@ -11524,7 +11885,7 @@ function VerifyPasskeyScreen({
|
|
|
11524
11885
|
}
|
|
11525
11886
|
);
|
|
11526
11887
|
}
|
|
11527
|
-
var
|
|
11888
|
+
var contentStyle8 = {
|
|
11528
11889
|
textAlign: "center",
|
|
11529
11890
|
flex: 1,
|
|
11530
11891
|
display: "flex",
|
|
@@ -12221,6 +12582,260 @@ var errorBannerStyle5 = (tokens) => ({
|
|
|
12221
12582
|
marginBottom: 14,
|
|
12222
12583
|
lineHeight: 1.5
|
|
12223
12584
|
});
|
|
12585
|
+
function ManualTransferPasskeyScreen({
|
|
12586
|
+
onCreatePasskey,
|
|
12587
|
+
onNoThanks,
|
|
12588
|
+
amountUsd,
|
|
12589
|
+
loading = false,
|
|
12590
|
+
error,
|
|
12591
|
+
onBack,
|
|
12592
|
+
onClose
|
|
12593
|
+
}) {
|
|
12594
|
+
const { tokens } = useBlinkConfig();
|
|
12595
|
+
const title = "Deposit complete";
|
|
12596
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: containerStyle9(tokens), children: [
|
|
12597
|
+
onBack && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12598
|
+
"button",
|
|
12599
|
+
{
|
|
12600
|
+
type: "button",
|
|
12601
|
+
onClick: onBack,
|
|
12602
|
+
"aria-label": "Go back",
|
|
12603
|
+
style: { ...navButtonStyle(tokens.bgRecessed, tokens.text), left: 16 },
|
|
12604
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12605
|
+
"path",
|
|
12606
|
+
{
|
|
12607
|
+
d: "M15 18l-6-6 6-6",
|
|
12608
|
+
stroke: "currentColor",
|
|
12609
|
+
strokeWidth: "2",
|
|
12610
|
+
strokeLinecap: "round",
|
|
12611
|
+
strokeLinejoin: "round"
|
|
12612
|
+
}
|
|
12613
|
+
) })
|
|
12614
|
+
}
|
|
12615
|
+
),
|
|
12616
|
+
onClose && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12617
|
+
"button",
|
|
12618
|
+
{
|
|
12619
|
+
type: "button",
|
|
12620
|
+
onClick: onClose,
|
|
12621
|
+
"aria-label": "Close",
|
|
12622
|
+
style: { ...navButtonStyle(tokens.bgRecessed, tokens.text), right: 16 },
|
|
12623
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12624
|
+
"path",
|
|
12625
|
+
{
|
|
12626
|
+
d: "M6 6l12 12M18 6L6 18",
|
|
12627
|
+
stroke: "currentColor",
|
|
12628
|
+
strokeWidth: "2",
|
|
12629
|
+
strokeLinecap: "round",
|
|
12630
|
+
strokeLinejoin: "round"
|
|
12631
|
+
}
|
|
12632
|
+
) })
|
|
12633
|
+
}
|
|
12634
|
+
),
|
|
12635
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle9, children: [
|
|
12636
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: heroStyle3, children: [
|
|
12637
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: titleStyle4(tokens.text), children: title }),
|
|
12638
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12639
|
+
"img",
|
|
12640
|
+
{
|
|
12641
|
+
src: BLINK_PASSKEY_ILLUSTRATION,
|
|
12642
|
+
alt: "",
|
|
12643
|
+
"aria-hidden": "true",
|
|
12644
|
+
style: illustrationStyle3
|
|
12645
|
+
}
|
|
12646
|
+
),
|
|
12647
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoCardStyle2(tokens.bgCardTranslucent), children: [
|
|
12648
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: tokens.text, flexShrink: 0, paddingTop: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(FaceIdIcon, { size: 24 }) }),
|
|
12649
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoTextStyle, children: [
|
|
12650
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoTitleStyle(tokens.text), children: [
|
|
12651
|
+
"Deposit with ",
|
|
12652
|
+
getDeviceBiometricUnlockText(),
|
|
12653
|
+
" next time"
|
|
12654
|
+
] }),
|
|
12655
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoSubtitleStyle(tokens.text), children: [
|
|
12656
|
+
"Deposit with ",
|
|
12657
|
+
getDeviceBiometricUnlockText(),
|
|
12658
|
+
" \u2014 your wallet stays sealed"
|
|
12659
|
+
] })
|
|
12660
|
+
] })
|
|
12661
|
+
] }),
|
|
12662
|
+
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle6(tokens), children: error })
|
|
12663
|
+
] }),
|
|
12664
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle2, children: [
|
|
12665
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12666
|
+
"button",
|
|
12667
|
+
{
|
|
12668
|
+
type: "button",
|
|
12669
|
+
onClick: onCreatePasskey,
|
|
12670
|
+
disabled: loading,
|
|
12671
|
+
style: ctaStyle(tokens, loading),
|
|
12672
|
+
children: "Create passkey"
|
|
12673
|
+
}
|
|
12674
|
+
),
|
|
12675
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12676
|
+
"button",
|
|
12677
|
+
{
|
|
12678
|
+
type: "button",
|
|
12679
|
+
onClick: onNoThanks,
|
|
12680
|
+
disabled: loading,
|
|
12681
|
+
style: noThanksStyle(tokens.text, loading),
|
|
12682
|
+
children: "No thanks"
|
|
12683
|
+
}
|
|
12684
|
+
)
|
|
12685
|
+
] })
|
|
12686
|
+
] })
|
|
12687
|
+
] });
|
|
12688
|
+
}
|
|
12689
|
+
var containerStyle9 = (tokens) => ({
|
|
12690
|
+
position: "relative",
|
|
12691
|
+
display: "flex",
|
|
12692
|
+
flexDirection: "column",
|
|
12693
|
+
width: "100%",
|
|
12694
|
+
maxWidth: 420,
|
|
12695
|
+
height: "100%",
|
|
12696
|
+
margin: "0 auto",
|
|
12697
|
+
overflow: "hidden",
|
|
12698
|
+
borderRadius: tokens.radiusLg,
|
|
12699
|
+
background: tokens.bgCard,
|
|
12700
|
+
backdropFilter: "blur(16px)",
|
|
12701
|
+
WebkitBackdropFilter: "blur(16px)",
|
|
12702
|
+
fontFamily: tokens.fontFamily,
|
|
12703
|
+
boxSizing: "border-box"
|
|
12704
|
+
});
|
|
12705
|
+
var contentStyle9 = {
|
|
12706
|
+
flex: 1,
|
|
12707
|
+
minHeight: 0,
|
|
12708
|
+
display: "flex",
|
|
12709
|
+
flexDirection: "column",
|
|
12710
|
+
justifyContent: "space-between",
|
|
12711
|
+
alignItems: "center",
|
|
12712
|
+
padding: "72px 32px 32px",
|
|
12713
|
+
gap: 24,
|
|
12714
|
+
boxSizing: "border-box"
|
|
12715
|
+
};
|
|
12716
|
+
var heroStyle3 = {
|
|
12717
|
+
flex: 1,
|
|
12718
|
+
minHeight: 0,
|
|
12719
|
+
display: "flex",
|
|
12720
|
+
flexDirection: "column",
|
|
12721
|
+
justifyContent: "center",
|
|
12722
|
+
alignItems: "center",
|
|
12723
|
+
gap: 16,
|
|
12724
|
+
width: "100%"
|
|
12725
|
+
};
|
|
12726
|
+
var titleStyle4 = (color) => ({
|
|
12727
|
+
margin: 0,
|
|
12728
|
+
color,
|
|
12729
|
+
fontSize: 24,
|
|
12730
|
+
fontWeight: 700,
|
|
12731
|
+
lineHeight: 1.05,
|
|
12732
|
+
letterSpacing: 0,
|
|
12733
|
+
textAlign: "center"
|
|
12734
|
+
});
|
|
12735
|
+
var illustrationStyle3 = {
|
|
12736
|
+
width: 160,
|
|
12737
|
+
height: 160,
|
|
12738
|
+
objectFit: "contain",
|
|
12739
|
+
display: "block"
|
|
12740
|
+
};
|
|
12741
|
+
var infoCardStyle2 = (bg) => ({
|
|
12742
|
+
display: "flex",
|
|
12743
|
+
gap: 12,
|
|
12744
|
+
alignItems: "flex-start",
|
|
12745
|
+
width: "100%",
|
|
12746
|
+
padding: 20,
|
|
12747
|
+
borderRadius: 24,
|
|
12748
|
+
background: bg,
|
|
12749
|
+
boxSizing: "border-box"
|
|
12750
|
+
});
|
|
12751
|
+
var infoTextStyle = {
|
|
12752
|
+
display: "flex",
|
|
12753
|
+
flexDirection: "column",
|
|
12754
|
+
gap: 4,
|
|
12755
|
+
flex: 1,
|
|
12756
|
+
minWidth: 0,
|
|
12757
|
+
paddingTop: 2
|
|
12758
|
+
};
|
|
12759
|
+
var infoTitleStyle = (color) => ({
|
|
12760
|
+
color,
|
|
12761
|
+
fontSize: 16,
|
|
12762
|
+
fontWeight: 700,
|
|
12763
|
+
lineHeight: 1.2
|
|
12764
|
+
});
|
|
12765
|
+
var infoSubtitleStyle = (color) => ({
|
|
12766
|
+
color,
|
|
12767
|
+
fontSize: 16,
|
|
12768
|
+
fontWeight: 400,
|
|
12769
|
+
lineHeight: 1.2
|
|
12770
|
+
});
|
|
12771
|
+
var footerStackStyle2 = {
|
|
12772
|
+
display: "flex",
|
|
12773
|
+
flexDirection: "column",
|
|
12774
|
+
gap: 8,
|
|
12775
|
+
width: "100%"
|
|
12776
|
+
};
|
|
12777
|
+
var ctaStyle = (tokens, disabled) => ({
|
|
12778
|
+
display: "flex",
|
|
12779
|
+
alignItems: "center",
|
|
12780
|
+
justifyContent: "center",
|
|
12781
|
+
width: "100%",
|
|
12782
|
+
height: 56,
|
|
12783
|
+
padding: "4px 24px",
|
|
12784
|
+
border: "none",
|
|
12785
|
+
borderRadius: 48,
|
|
12786
|
+
background: `linear-gradient(180deg, ${tokens.accent}, ${tokens.accentHover})`,
|
|
12787
|
+
color: tokens.accentText,
|
|
12788
|
+
fontSize: 16,
|
|
12789
|
+
fontWeight: 700,
|
|
12790
|
+
fontFamily: "inherit",
|
|
12791
|
+
cursor: disabled ? "default" : "pointer",
|
|
12792
|
+
opacity: disabled ? 0.5 : 1,
|
|
12793
|
+
transition: "opacity 0.15s ease",
|
|
12794
|
+
boxSizing: "border-box"
|
|
12795
|
+
});
|
|
12796
|
+
var noThanksStyle = (color, disabled) => ({
|
|
12797
|
+
width: "100%",
|
|
12798
|
+
height: 56,
|
|
12799
|
+
padding: "0 16px",
|
|
12800
|
+
background: "transparent",
|
|
12801
|
+
color,
|
|
12802
|
+
border: "none",
|
|
12803
|
+
borderRadius: 48,
|
|
12804
|
+
fontSize: 16,
|
|
12805
|
+
fontWeight: 400,
|
|
12806
|
+
fontFamily: "inherit",
|
|
12807
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
12808
|
+
opacity: disabled ? 0.5 : 1,
|
|
12809
|
+
transition: "opacity 0.15s ease"
|
|
12810
|
+
});
|
|
12811
|
+
var navButtonStyle = (bg, color) => ({
|
|
12812
|
+
position: "absolute",
|
|
12813
|
+
top: 16,
|
|
12814
|
+
zIndex: 1,
|
|
12815
|
+
width: 44,
|
|
12816
|
+
height: 44,
|
|
12817
|
+
border: "none",
|
|
12818
|
+
borderRadius: 40,
|
|
12819
|
+
background: bg,
|
|
12820
|
+
color,
|
|
12821
|
+
display: "flex",
|
|
12822
|
+
alignItems: "center",
|
|
12823
|
+
justifyContent: "center",
|
|
12824
|
+
cursor: "pointer",
|
|
12825
|
+
padding: 0
|
|
12826
|
+
});
|
|
12827
|
+
var errorBannerStyle6 = (tokens) => ({
|
|
12828
|
+
width: "100%",
|
|
12829
|
+
borderRadius: 16,
|
|
12830
|
+
padding: "11px 14px",
|
|
12831
|
+
background: tokens.errorBg,
|
|
12832
|
+
border: `1px solid ${tokens.error}66`,
|
|
12833
|
+
color: tokens.error,
|
|
12834
|
+
fontSize: "0.84rem",
|
|
12835
|
+
lineHeight: 1.5,
|
|
12836
|
+
textAlign: "left",
|
|
12837
|
+
boxSizing: "border-box"
|
|
12838
|
+
});
|
|
12224
12839
|
var SHIMMER_ROWS = 3;
|
|
12225
12840
|
function LinkTokensScreen({
|
|
12226
12841
|
entries: entries2,
|
|
@@ -12243,7 +12858,7 @@ function LinkTokensScreen({
|
|
|
12243
12858
|
ScreenLayout,
|
|
12244
12859
|
{
|
|
12245
12860
|
scrollableBody: false,
|
|
12246
|
-
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
12861
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle3, children: [
|
|
12247
12862
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockBannerStyle, children: [
|
|
12248
12863
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: lockIconWrapStyle(t.text), children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon2, {}) }),
|
|
12249
12864
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: lockBannerTextStyle(t.text), children: "Your passkey is required each time you deposit. Funds cannot move without your approval." })
|
|
@@ -12277,11 +12892,11 @@ function LinkTokensScreen({
|
|
|
12277
12892
|
{
|
|
12278
12893
|
onBack,
|
|
12279
12894
|
onLogout,
|
|
12280
|
-
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style:
|
|
12895
|
+
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle3 })
|
|
12281
12896
|
}
|
|
12282
12897
|
),
|
|
12283
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
12284
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
12898
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle10, children: [
|
|
12899
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle6(t.text), children: "Pick your asset for passkey deposits" }),
|
|
12285
12900
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "blink-link-tokens-list", style: listCardStyle(t.bgRecessed), children: [
|
|
12286
12901
|
showShimmer ? Array.from({ length: SHIMMER_ROWS }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12287
12902
|
"div",
|
|
@@ -12333,7 +12948,7 @@ function LockIcon2() {
|
|
|
12333
12948
|
}
|
|
12334
12949
|
) });
|
|
12335
12950
|
}
|
|
12336
|
-
var
|
|
12951
|
+
var contentStyle10 = {
|
|
12337
12952
|
display: "flex",
|
|
12338
12953
|
flexDirection: "column",
|
|
12339
12954
|
alignItems: "center",
|
|
@@ -12343,14 +12958,14 @@ var contentStyle9 = {
|
|
|
12343
12958
|
minHeight: 0,
|
|
12344
12959
|
width: "100%"
|
|
12345
12960
|
};
|
|
12346
|
-
var
|
|
12961
|
+
var wordmarkImgStyle3 = {
|
|
12347
12962
|
height: 22,
|
|
12348
12963
|
width: "auto",
|
|
12349
12964
|
display: "block",
|
|
12350
12965
|
pointerEvents: "none",
|
|
12351
12966
|
userSelect: "none"
|
|
12352
12967
|
};
|
|
12353
|
-
var
|
|
12968
|
+
var headingStyle6 = (color) => ({
|
|
12354
12969
|
fontSize: 24,
|
|
12355
12970
|
fontWeight: 700,
|
|
12356
12971
|
lineHeight: "normal",
|
|
@@ -12418,7 +13033,7 @@ var bannerSlotStyle = {
|
|
|
12418
13033
|
justifyContent: "center",
|
|
12419
13034
|
width: "100%"
|
|
12420
13035
|
};
|
|
12421
|
-
var
|
|
13036
|
+
var footerStackStyle3 = {
|
|
12422
13037
|
display: "flex",
|
|
12423
13038
|
flexDirection: "column",
|
|
12424
13039
|
gap: 16,
|
|
@@ -12454,7 +13069,7 @@ function DepositCompleteScreen({ amount }) {
|
|
|
12454
13069
|
const { tokens } = useBlinkConfig();
|
|
12455
13070
|
return /* @__PURE__ */ jsxRuntime.jsxs(ScreenLayout, { children: [
|
|
12456
13071
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, {}),
|
|
12457
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
13072
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle11, children: [
|
|
12458
13073
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12459
13074
|
"img",
|
|
12460
13075
|
{
|
|
@@ -12464,12 +13079,12 @@ function DepositCompleteScreen({ amount }) {
|
|
|
12464
13079
|
style: illustrationStyle4
|
|
12465
13080
|
}
|
|
12466
13081
|
),
|
|
12467
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
12468
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { style:
|
|
13082
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle7(tokens.text), children: `$${amount.toFixed(2)} Deposited` }),
|
|
13083
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle5(tokens.textSecondary), children: "You\u2019re all set for one-tap deposits now. Next time, just use your passkey." })
|
|
12469
13084
|
] })
|
|
12470
13085
|
] });
|
|
12471
13086
|
}
|
|
12472
|
-
var
|
|
13087
|
+
var contentStyle11 = {
|
|
12473
13088
|
flex: 1,
|
|
12474
13089
|
display: "flex",
|
|
12475
13090
|
flexDirection: "column",
|
|
@@ -12485,7 +13100,7 @@ var illustrationStyle4 = {
|
|
|
12485
13100
|
objectFit: "contain",
|
|
12486
13101
|
display: "block"
|
|
12487
13102
|
};
|
|
12488
|
-
var
|
|
13103
|
+
var headingStyle7 = (color) => ({
|
|
12489
13104
|
fontSize: "2rem",
|
|
12490
13105
|
fontWeight: 700,
|
|
12491
13106
|
lineHeight: 1.05,
|
|
@@ -12493,7 +13108,7 @@ var headingStyle8 = (color) => ({
|
|
|
12493
13108
|
color,
|
|
12494
13109
|
margin: 0
|
|
12495
13110
|
});
|
|
12496
|
-
var
|
|
13111
|
+
var subtitleStyle5 = (color) => ({
|
|
12497
13112
|
fontSize: "1rem",
|
|
12498
13113
|
color,
|
|
12499
13114
|
margin: 0,
|
|
@@ -12626,7 +13241,7 @@ function SelectDepositSourceScreen({
|
|
|
12626
13241
|
footer,
|
|
12627
13242
|
children: [
|
|
12628
13243
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { title: "Select source", onBack: onBack ?? onDone, onLogout }),
|
|
12629
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "select-deposit-source-scroll-content", style:
|
|
13244
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "select-deposit-source-scroll-content", style: contentStyle12, children: [
|
|
12630
13245
|
orderedAccounts.map((account) => {
|
|
12631
13246
|
const authRows = authorized.filter((opt) => rowAccountId(opt) === account.id);
|
|
12632
13247
|
const reqRows = requiresAuth.filter((opt) => rowAccountId(opt) === account.id);
|
|
@@ -12669,7 +13284,7 @@ function SelectDepositSourceScreen({
|
|
|
12669
13284
|
label: "Send manually",
|
|
12670
13285
|
color: tokens.text,
|
|
12671
13286
|
onClick: onSendManually,
|
|
12672
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13287
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(QrIcon3, { color: tokens.text })
|
|
12673
13288
|
}
|
|
12674
13289
|
),
|
|
12675
13290
|
onAddProvider && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -12687,7 +13302,7 @@ function SelectDepositSourceScreen({
|
|
|
12687
13302
|
}
|
|
12688
13303
|
);
|
|
12689
13304
|
}
|
|
12690
|
-
var
|
|
13305
|
+
var contentStyle12 = {
|
|
12691
13306
|
display: "flex",
|
|
12692
13307
|
flexDirection: "column",
|
|
12693
13308
|
gap: 8,
|
|
@@ -12779,7 +13394,7 @@ function ActionRow({
|
|
|
12779
13394
|
}
|
|
12780
13395
|
);
|
|
12781
13396
|
}
|
|
12782
|
-
function
|
|
13397
|
+
function QrIcon3({ color }) {
|
|
12783
13398
|
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
12784
13399
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
12785
13400
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "6", width: "2", height: "2", fill: color }),
|
|
@@ -13477,7 +14092,7 @@ function SuccessScreen({
|
|
|
13477
14092
|
type: "button",
|
|
13478
14093
|
onClick: onDone,
|
|
13479
14094
|
"aria-label": "Close",
|
|
13480
|
-
style:
|
|
14095
|
+
style: closeButtonStyle5(tokens),
|
|
13481
14096
|
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13482
14097
|
"path",
|
|
13483
14098
|
{
|
|
@@ -13512,7 +14127,7 @@ function SuccessScreen({
|
|
|
13512
14127
|
style: illustrationStyle5
|
|
13513
14128
|
}
|
|
13514
14129
|
),
|
|
13515
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
14130
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle8(tokens.text), children: "You\u2019re all set" })
|
|
13516
14131
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { style: screenContentStyle, children: [
|
|
13517
14132
|
/* @__PURE__ */ jsxRuntime.jsx(IconCircle, { variant: "error", size: 64, children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z", fill: tokens.error }) }) }),
|
|
13518
14133
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: failureHeadingStyle(tokens.text), children: "Transfer failed" }),
|
|
@@ -13521,7 +14136,7 @@ function SuccessScreen({
|
|
|
13521
14136
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: summaryLabelStyle(tokens.textMuted), children: "From" }),
|
|
13522
14137
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: summaryValueStyle(tokens.text), children: sourceName })
|
|
13523
14138
|
] }) }),
|
|
13524
|
-
!sourceName && merchantName && /* @__PURE__ */ jsxRuntime.jsxs("p", { style:
|
|
14139
|
+
!sourceName && merchantName && /* @__PURE__ */ jsxRuntime.jsxs("p", { style: subtitleStyle6(tokens.textSecondary), children: [
|
|
13525
14140
|
"to ",
|
|
13526
14141
|
merchantName,
|
|
13527
14142
|
" \u2014 $",
|
|
@@ -13547,7 +14162,7 @@ var illustrationStyle5 = {
|
|
|
13547
14162
|
objectFit: "contain",
|
|
13548
14163
|
display: "block"
|
|
13549
14164
|
};
|
|
13550
|
-
var
|
|
14165
|
+
var headingStyle8 = (color) => ({
|
|
13551
14166
|
fontSize: "2rem",
|
|
13552
14167
|
fontWeight: 700,
|
|
13553
14168
|
lineHeight: 1.05,
|
|
@@ -13562,7 +14177,7 @@ var screenContentStyle = {
|
|
|
13562
14177
|
alignItems: "center",
|
|
13563
14178
|
paddingTop: 16
|
|
13564
14179
|
};
|
|
13565
|
-
var
|
|
14180
|
+
var subtitleStyle6 = (color) => ({
|
|
13566
14181
|
fontSize: "0.9rem",
|
|
13567
14182
|
color,
|
|
13568
14183
|
margin: "0 0 28px",
|
|
@@ -13612,7 +14227,7 @@ var returnMessageStyle = (color) => ({
|
|
|
13612
14227
|
margin: "0 0 4px",
|
|
13613
14228
|
lineHeight: 1.5
|
|
13614
14229
|
});
|
|
13615
|
-
var
|
|
14230
|
+
var closeButtonStyle5 = (tokens) => ({
|
|
13616
14231
|
width: 40,
|
|
13617
14232
|
height: 40,
|
|
13618
14233
|
borderRadius: "50%",
|
|
@@ -13657,7 +14272,7 @@ function SelectSourceScreen({
|
|
|
13657
14272
|
onLogout
|
|
13658
14273
|
}
|
|
13659
14274
|
),
|
|
13660
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { style:
|
|
14275
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle7(tokens.textMuted), children: "Choose which chain and token to pay from." }),
|
|
13661
14276
|
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle5(tokens.textSecondary), children: "Chain" }),
|
|
13662
14277
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: optionListStyle, children: choices.map((chain) => {
|
|
13663
14278
|
const isSelected = chain.chainName === selectedChainName;
|
|
@@ -13719,7 +14334,7 @@ function SelectSourceScreen({
|
|
|
13719
14334
|
}
|
|
13720
14335
|
);
|
|
13721
14336
|
}
|
|
13722
|
-
var
|
|
14337
|
+
var subtitleStyle7 = (color) => ({
|
|
13723
14338
|
fontSize: "0.85rem",
|
|
13724
14339
|
color,
|
|
13725
14340
|
margin: "0 0 20px",
|
|
@@ -13861,8 +14476,8 @@ function AdvancedSourceScreen({
|
|
|
13861
14476
|
right: /* @__PURE__ */ jsxRuntime.jsx("span", { style: advancedBadgeStyle(tokens.accent), children: "Advanced" })
|
|
13862
14477
|
}
|
|
13863
14478
|
),
|
|
13864
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
13865
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { style:
|
|
14479
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle9(tokens.text), children: "Set up One-Tap deposits" }),
|
|
14480
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle8(tokens.textSecondary), children: "Select a token source for your One-Tap deposits." }),
|
|
13866
14481
|
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle6(tokens.textSecondary), children: "Select tokens to approve" }),
|
|
13867
14482
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: chainListStyle, children: choices.map((chain) => {
|
|
13868
14483
|
const isExpanded = expandedChain === chain.chainName;
|
|
@@ -13925,14 +14540,14 @@ var advancedBadgeStyle = (color) => ({
|
|
|
13925
14540
|
padding: "3px 10px",
|
|
13926
14541
|
letterSpacing: "0.02em"
|
|
13927
14542
|
});
|
|
13928
|
-
var
|
|
14543
|
+
var headingStyle9 = (color) => ({
|
|
13929
14544
|
fontSize: "1.3rem",
|
|
13930
14545
|
fontWeight: 700,
|
|
13931
14546
|
letterSpacing: "-0.02em",
|
|
13932
14547
|
color,
|
|
13933
14548
|
margin: "8px 0 4px"
|
|
13934
14549
|
});
|
|
13935
|
-
var
|
|
14550
|
+
var subtitleStyle8 = (color) => ({
|
|
13936
14551
|
fontSize: "0.86rem",
|
|
13937
14552
|
color,
|
|
13938
14553
|
margin: "0 0 20px",
|
|
@@ -14066,8 +14681,8 @@ function TransferStatusLayout({
|
|
|
14066
14681
|
footer: showRetry && onRetry ? /* @__PURE__ */ jsxRuntime.jsx(OutlineButton, { onClick: onRetry, children: retryLabel }) : void 0,
|
|
14067
14682
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: wrapperStyle, children: [
|
|
14068
14683
|
onLogout && /* @__PURE__ */ jsxRuntime.jsx("div", { style: menuOverlayStyle, children: /* @__PURE__ */ jsxRuntime.jsx(SettingsMenu, { onLogout }) }),
|
|
14069
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
14070
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
14684
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle13, children: [
|
|
14685
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle10(tokens.text), children: heading }),
|
|
14071
14686
|
visibleError && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle7(tokens), children: visibleError }),
|
|
14072
14687
|
children
|
|
14073
14688
|
] })
|
|
@@ -14144,7 +14759,7 @@ var menuOverlayStyle = {
|
|
|
14144
14759
|
right: 0,
|
|
14145
14760
|
zIndex: 1
|
|
14146
14761
|
};
|
|
14147
|
-
var
|
|
14762
|
+
var contentStyle13 = {
|
|
14148
14763
|
flex: 1,
|
|
14149
14764
|
display: "flex",
|
|
14150
14765
|
flexDirection: "column",
|
|
@@ -14154,7 +14769,7 @@ var contentStyle12 = {
|
|
|
14154
14769
|
padding: "32px 0",
|
|
14155
14770
|
width: "100%"
|
|
14156
14771
|
};
|
|
14157
|
-
var
|
|
14772
|
+
var headingStyle10 = (color) => ({
|
|
14158
14773
|
fontSize: "1.5rem",
|
|
14159
14774
|
fontWeight: 700,
|
|
14160
14775
|
lineHeight: "normal",
|
|
@@ -14261,7 +14876,7 @@ function DepositAddressScreen({
|
|
|
14261
14876
|
) : void 0
|
|
14262
14877
|
}
|
|
14263
14878
|
),
|
|
14264
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
14879
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle14, children: [
|
|
14265
14880
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: depositTitleStyle(tokens.text), children: "Deposit Address" }),
|
|
14266
14881
|
qrReady && session && selectedOption ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14267
14882
|
DepositQrCode,
|
|
@@ -14356,7 +14971,7 @@ var FeeRow = react.memo(function FeeRow2({
|
|
|
14356
14971
|
}) {
|
|
14357
14972
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { style: bodyStyle3(color), children: feeCopy2 });
|
|
14358
14973
|
});
|
|
14359
|
-
var
|
|
14974
|
+
var contentStyle14 = {
|
|
14360
14975
|
alignItems: "center",
|
|
14361
14976
|
display: "flex",
|
|
14362
14977
|
flex: 1,
|
|
@@ -14588,7 +15203,7 @@ function OpenWalletScreen({
|
|
|
14588
15203
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14589
15204
|
ScreenLayout,
|
|
14590
15205
|
{
|
|
14591
|
-
footer: error ? /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15206
|
+
footer: error ? /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle4, children: [
|
|
14592
15207
|
/* @__PURE__ */ jsxRuntime.jsx(InfoBanner, { children: error }),
|
|
14593
15208
|
onRetryAuthorization && /* @__PURE__ */ jsxRuntime.jsx(OutlineButton, { onClick: onRetryAuthorization, children: "Retry" })
|
|
14594
15209
|
] }) : void 0,
|
|
@@ -14606,7 +15221,7 @@ function OpenWalletScreen({
|
|
|
14606
15221
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: desktopContentStyle, children: [
|
|
14607
15222
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: primaryClusterStyle, children: [
|
|
14608
15223
|
logoBlock,
|
|
14609
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { style:
|
|
15224
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { style: headingStyle11(tokens.text), children: [
|
|
14610
15225
|
"Setting up ",
|
|
14611
15226
|
displayName,
|
|
14612
15227
|
"\u2026"
|
|
@@ -14638,7 +15253,7 @@ function OpenWalletScreen({
|
|
|
14638
15253
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14639
15254
|
ScreenLayout,
|
|
14640
15255
|
{
|
|
14641
|
-
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15256
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle4, children: [
|
|
14642
15257
|
error && /* @__PURE__ */ jsxRuntime.jsx(InfoBanner, { children: error }),
|
|
14643
15258
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14644
15259
|
SecondaryButton,
|
|
@@ -14669,7 +15284,7 @@ function OpenWalletScreen({
|
|
|
14669
15284
|
{
|
|
14670
15285
|
type: "button",
|
|
14671
15286
|
onClick: onLogout,
|
|
14672
|
-
style:
|
|
15287
|
+
style: closeButtonStyle6(tokens.bgRecessed, tokens.text),
|
|
14673
15288
|
"aria-label": "Close",
|
|
14674
15289
|
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14675
15290
|
"path",
|
|
@@ -14711,7 +15326,7 @@ function useDelayedStatusRetry(enabled, deeplinkUri) {
|
|
|
14711
15326
|
}, [deeplinkUri, enabled]);
|
|
14712
15327
|
return visible;
|
|
14713
15328
|
}
|
|
14714
|
-
var
|
|
15329
|
+
var contentStyle15 = {
|
|
14715
15330
|
flex: 1,
|
|
14716
15331
|
display: "flex",
|
|
14717
15332
|
flexDirection: "column",
|
|
@@ -14721,7 +15336,7 @@ var contentStyle14 = {
|
|
|
14721
15336
|
gap: 12
|
|
14722
15337
|
};
|
|
14723
15338
|
var desktopContentStyle = {
|
|
14724
|
-
...
|
|
15339
|
+
...contentStyle15,
|
|
14725
15340
|
gap: 32
|
|
14726
15341
|
};
|
|
14727
15342
|
var primaryClusterStyle = {
|
|
@@ -14731,7 +15346,7 @@ var primaryClusterStyle = {
|
|
|
14731
15346
|
textAlign: "center",
|
|
14732
15347
|
gap: 12
|
|
14733
15348
|
};
|
|
14734
|
-
var
|
|
15349
|
+
var footerStackStyle4 = {
|
|
14735
15350
|
display: "flex",
|
|
14736
15351
|
flexDirection: "column",
|
|
14737
15352
|
gap: 8
|
|
@@ -14780,7 +15395,7 @@ var reownLogoStyle = {
|
|
|
14780
15395
|
borderRadius: "50%",
|
|
14781
15396
|
objectFit: "cover"
|
|
14782
15397
|
};
|
|
14783
|
-
var
|
|
15398
|
+
var headingStyle11 = (color) => ({
|
|
14784
15399
|
fontSize: "1.5rem",
|
|
14785
15400
|
fontWeight: 700,
|
|
14786
15401
|
lineHeight: 1.1,
|
|
@@ -14896,7 +15511,7 @@ var mobileBodyStyle = (color) => ({
|
|
|
14896
15511
|
margin: 0,
|
|
14897
15512
|
maxWidth: 350
|
|
14898
15513
|
});
|
|
14899
|
-
var
|
|
15514
|
+
var closeButtonStyle6 = (bg, color) => ({
|
|
14900
15515
|
width: 44,
|
|
14901
15516
|
height: 44,
|
|
14902
15517
|
borderRadius: "50%",
|
|
@@ -14932,7 +15547,7 @@ function ApprovingInWalletScreen({
|
|
|
14932
15547
|
ScreenLayout,
|
|
14933
15548
|
{
|
|
14934
15549
|
scrollableBody: false,
|
|
14935
|
-
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15550
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle5, children: [
|
|
14936
15551
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockBannerStyle2, children: [
|
|
14937
15552
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: lockIconWrapStyle2(t.text), children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon3, {}) }),
|
|
14938
15553
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: lockBannerTextStyle2(t.text), children: "Your passkey is required each time you deposit. Funds cannot move without your approval." })
|
|
@@ -14948,11 +15563,11 @@ function ApprovingInWalletScreen({
|
|
|
14948
15563
|
{
|
|
14949
15564
|
onBack,
|
|
14950
15565
|
onLogout,
|
|
14951
|
-
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style:
|
|
15566
|
+
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle4 })
|
|
14952
15567
|
}
|
|
14953
15568
|
),
|
|
14954
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
14955
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
15569
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle16, children: [
|
|
15570
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle12(t.text), children: `Authorizing ${token} for passkey deposits` }),
|
|
14956
15571
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: cardStyle2(t.bgRecessed, t.radiusLg), children: [
|
|
14957
15572
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: SPIN_KEYFRAMES_CSS2 }),
|
|
14958
15573
|
steps.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx(ChecklistRow, { step: s }, i))
|
|
@@ -15046,14 +15661,14 @@ function LockIcon3() {
|
|
|
15046
15661
|
}
|
|
15047
15662
|
) });
|
|
15048
15663
|
}
|
|
15049
|
-
var
|
|
15664
|
+
var wordmarkImgStyle4 = {
|
|
15050
15665
|
height: 22,
|
|
15051
15666
|
width: "auto",
|
|
15052
15667
|
display: "block",
|
|
15053
15668
|
pointerEvents: "none",
|
|
15054
15669
|
userSelect: "none"
|
|
15055
15670
|
};
|
|
15056
|
-
var
|
|
15671
|
+
var contentStyle16 = {
|
|
15057
15672
|
display: "flex",
|
|
15058
15673
|
flexDirection: "column",
|
|
15059
15674
|
alignItems: "center",
|
|
@@ -15063,7 +15678,7 @@ var contentStyle15 = {
|
|
|
15063
15678
|
minHeight: 0,
|
|
15064
15679
|
width: "100%"
|
|
15065
15680
|
};
|
|
15066
|
-
var
|
|
15681
|
+
var headingStyle12 = (color) => ({
|
|
15067
15682
|
fontSize: 24,
|
|
15068
15683
|
fontWeight: 700,
|
|
15069
15684
|
lineHeight: "normal",
|
|
@@ -15114,7 +15729,7 @@ var labelStyle7 = (color) => ({
|
|
|
15114
15729
|
lineHeight: 1.25,
|
|
15115
15730
|
color
|
|
15116
15731
|
});
|
|
15117
|
-
var
|
|
15732
|
+
var footerStackStyle5 = {
|
|
15118
15733
|
display: "flex",
|
|
15119
15734
|
flexDirection: "column",
|
|
15120
15735
|
gap: 16,
|
|
@@ -15178,10 +15793,10 @@ function ConfirmSignScreen({
|
|
|
15178
15793
|
] }),
|
|
15179
15794
|
children: [
|
|
15180
15795
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onLogout }),
|
|
15181
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15796
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle17, children: [
|
|
15182
15797
|
logoSrc ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logoSrc, alt: displayName, style: logoStyle3 }) : /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: 48 }),
|
|
15183
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
15184
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { style:
|
|
15798
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle13(tokens.text), children: heading }),
|
|
15799
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle9(tokens.textSecondary), children: subtitle }),
|
|
15185
15800
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: successBadgeStyle(tokens), children: [
|
|
15186
15801
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: checkmarkStyle, children: "\u2713" }),
|
|
15187
15802
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: badge })
|
|
@@ -15191,7 +15806,7 @@ function ConfirmSignScreen({
|
|
|
15191
15806
|
}
|
|
15192
15807
|
);
|
|
15193
15808
|
}
|
|
15194
|
-
var
|
|
15809
|
+
var contentStyle17 = {
|
|
15195
15810
|
flex: 1,
|
|
15196
15811
|
display: "flex",
|
|
15197
15812
|
flexDirection: "column",
|
|
@@ -15206,14 +15821,14 @@ var logoStyle3 = {
|
|
|
15206
15821
|
borderRadius: 14,
|
|
15207
15822
|
objectFit: "contain"
|
|
15208
15823
|
};
|
|
15209
|
-
var
|
|
15824
|
+
var headingStyle13 = (color) => ({
|
|
15210
15825
|
fontSize: "1.45rem",
|
|
15211
15826
|
fontWeight: 700,
|
|
15212
15827
|
letterSpacing: "-0.02em",
|
|
15213
15828
|
color,
|
|
15214
15829
|
margin: "20px 0 8px"
|
|
15215
15830
|
});
|
|
15216
|
-
var
|
|
15831
|
+
var subtitleStyle9 = (color) => ({
|
|
15217
15832
|
fontSize: "0.9rem",
|
|
15218
15833
|
color,
|
|
15219
15834
|
margin: "0 0 24px",
|
|
@@ -15570,10 +16185,10 @@ function GuestTokenPickerScreen({
|
|
|
15570
16185
|
] }),
|
|
15571
16186
|
children: [
|
|
15572
16187
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
15573
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15574
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
16188
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle18, children: [
|
|
16189
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle14(tokens.text), children: title }),
|
|
15575
16190
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle8(tokens), children: error }),
|
|
15576
|
-
entries2.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { style:
|
|
16191
|
+
entries2.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle10(tokens.textMuted), children: emptyMessage ?? "No tokens available." }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15577
16192
|
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle8(tokens.textSecondary), children: "Token" }),
|
|
15578
16193
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15579
16194
|
"button",
|
|
@@ -15647,21 +16262,21 @@ function TokenRow({
|
|
|
15647
16262
|
] })
|
|
15648
16263
|
] });
|
|
15649
16264
|
}
|
|
15650
|
-
var
|
|
16265
|
+
var contentStyle18 = {
|
|
15651
16266
|
flex: 1,
|
|
15652
16267
|
display: "flex",
|
|
15653
16268
|
flexDirection: "column",
|
|
15654
16269
|
padding: "0 20px 16px",
|
|
15655
16270
|
gap: 12
|
|
15656
16271
|
};
|
|
15657
|
-
var
|
|
16272
|
+
var headingStyle14 = (color) => ({
|
|
15658
16273
|
fontSize: "1.25rem",
|
|
15659
16274
|
fontWeight: 700,
|
|
15660
16275
|
color,
|
|
15661
16276
|
margin: "0 0 8px",
|
|
15662
16277
|
textAlign: "center"
|
|
15663
16278
|
});
|
|
15664
|
-
var
|
|
16279
|
+
var subtitleStyle10 = (color) => ({
|
|
15665
16280
|
fontSize: "0.9rem",
|
|
15666
16281
|
color,
|
|
15667
16282
|
textAlign: "center"
|
|
@@ -15755,6 +16370,7 @@ var errorBannerStyle8 = (themeTokens) => ({
|
|
|
15755
16370
|
});
|
|
15756
16371
|
function ManualTransferFlow({
|
|
15757
16372
|
hasMerchantAuthorization,
|
|
16373
|
+
authenticated = false,
|
|
15758
16374
|
onCreatePasskey,
|
|
15759
16375
|
createPasskeyLoading = false,
|
|
15760
16376
|
createPasskeyError = null,
|
|
@@ -15798,8 +16414,8 @@ function ManualTransferFlow({
|
|
|
15798
16414
|
if (!hasMerchantAuthorization) {
|
|
15799
16415
|
screenContent = /* @__PURE__ */ jsxRuntime.jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsxRuntime.jsx(PrimaryButton, { onClick: onBack, children: "Back" }), children: [
|
|
15800
16416
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
15801
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15802
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
16417
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle19, children: [
|
|
16418
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle15(tokens.text), children: "Manual transfer unavailable" }),
|
|
15803
16419
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: bodyStyle5(tokens.textMuted), children: "merchantAuthorization is required." })
|
|
15804
16420
|
] })
|
|
15805
16421
|
] });
|
|
@@ -15833,7 +16449,19 @@ function ManualTransferFlow({
|
|
|
15833
16449
|
);
|
|
15834
16450
|
} else if (screen === "deposit-complete") {
|
|
15835
16451
|
const transferAmount = Number(session?.deliveredAmountUsd ?? session?.minAmountUsd ?? 0);
|
|
15836
|
-
|
|
16452
|
+
const showPasskeyUpsell = !authenticated && !passkeyCreated;
|
|
16453
|
+
screenContent = showPasskeyUpsell ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16454
|
+
ManualTransferPasskeyScreen,
|
|
16455
|
+
{
|
|
16456
|
+
onCreatePasskey: onCreatePasskey ?? (() => void 0),
|
|
16457
|
+
onNoThanks: onDismiss ?? onLogout ?? (() => void 0),
|
|
16458
|
+
amountUsd: transferAmount,
|
|
16459
|
+
loading: createPasskeyLoading,
|
|
16460
|
+
error: createPasskeyError,
|
|
16461
|
+
onBack,
|
|
16462
|
+
onClose: onDismiss ?? onLogout
|
|
16463
|
+
}
|
|
16464
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
15837
16465
|
SuccessScreen,
|
|
15838
16466
|
{
|
|
15839
16467
|
amount: transferAmount,
|
|
@@ -15842,7 +16470,7 @@ function ManualTransferFlow({
|
|
|
15842
16470
|
onDone: onDismiss,
|
|
15843
16471
|
onLogout
|
|
15844
16472
|
}
|
|
15845
|
-
)
|
|
16473
|
+
);
|
|
15846
16474
|
} else if (screen === "deposit-failed") {
|
|
15847
16475
|
screenContent = /* @__PURE__ */ jsxRuntime.jsx(
|
|
15848
16476
|
BlinkErrorScreen,
|
|
@@ -15867,7 +16495,7 @@ function ManualTransferFlow({
|
|
|
15867
16495
|
}
|
|
15868
16496
|
return screenContent;
|
|
15869
16497
|
}
|
|
15870
|
-
var
|
|
16498
|
+
var contentStyle19 = {
|
|
15871
16499
|
alignItems: "center",
|
|
15872
16500
|
display: "flex",
|
|
15873
16501
|
flex: 1,
|
|
@@ -15878,7 +16506,7 @@ var contentStyle18 = {
|
|
|
15878
16506
|
paddingBottom: 24,
|
|
15879
16507
|
width: "100%"
|
|
15880
16508
|
};
|
|
15881
|
-
var
|
|
16509
|
+
var headingStyle15 = (color) => ({
|
|
15882
16510
|
color,
|
|
15883
16511
|
fontSize: "2rem",
|
|
15884
16512
|
lineHeight: 1.05,
|
|
@@ -15903,7 +16531,7 @@ function GenericLoadingShimmer() {
|
|
|
15903
16531
|
role: "status",
|
|
15904
16532
|
"aria-label": "Loading payment flow",
|
|
15905
16533
|
"aria-busy": "true",
|
|
15906
|
-
style:
|
|
16534
|
+
style: sheetStyle3(tokens),
|
|
15907
16535
|
children: [
|
|
15908
16536
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
15909
16537
|
@keyframes blink-loading-shimmer {
|
|
@@ -15949,7 +16577,7 @@ function ShimmerBlock2({
|
|
|
15949
16577
|
}
|
|
15950
16578
|
);
|
|
15951
16579
|
}
|
|
15952
|
-
var
|
|
16580
|
+
var sheetStyle3 = (tokens) => ({
|
|
15953
16581
|
display: "flex",
|
|
15954
16582
|
flexDirection: "column",
|
|
15955
16583
|
height: "100%",
|
|
@@ -16010,6 +16638,19 @@ function buildDepositOptionsScreenProps({ flow, handlers }) {
|
|
|
16010
16638
|
onClose: flow.isMobileApp ? void 0 : flow.onBack
|
|
16011
16639
|
};
|
|
16012
16640
|
}
|
|
16641
|
+
function buildWelcomeBackScreenProps({ flow, handlers }) {
|
|
16642
|
+
return {
|
|
16643
|
+
// "Complete setup & Deposit" advances the returning user to the wallet
|
|
16644
|
+
// picker (ACKNOWLEDGE_WELCOME_BACK releases the welcome-back derivation).
|
|
16645
|
+
onComplete: handlers.onAcknowledgeWelcomeBack,
|
|
16646
|
+
// "Send Crypto Manually" enters the manual-transfer flow, same target as
|
|
16647
|
+
// the logged-in source sheet's "Send manually" row.
|
|
16648
|
+
onToAddress: () => handlers.onSetPhase({ step: "manual-transfer" }),
|
|
16649
|
+
// Inside a native mobile in-app browser the host chrome handles dismissal,
|
|
16650
|
+
// so suppress the in-screen (X) close button.
|
|
16651
|
+
onClose: flow.isMobileApp ? void 0 : flow.onBack
|
|
16652
|
+
};
|
|
16653
|
+
}
|
|
16013
16654
|
function buildWalletPickerScreenProps({
|
|
16014
16655
|
flow,
|
|
16015
16656
|
handlers
|
|
@@ -16430,6 +17071,7 @@ function StepRendererContent({
|
|
|
16430
17071
|
ManualTransferFlow,
|
|
16431
17072
|
{
|
|
16432
17073
|
hasMerchantAuthorization: flow.merchantAuthorization != null,
|
|
17074
|
+
authenticated: flow.authenticated,
|
|
16433
17075
|
onCreatePasskey: handlers.onSignupWithPasskey,
|
|
16434
17076
|
createPasskeyLoading: flow.passkeyLoading,
|
|
16435
17077
|
createPasskeyError: flow.state.error,
|
|
@@ -16444,6 +17086,8 @@ function StepRendererContent({
|
|
|
16444
17086
|
return /* @__PURE__ */ jsxRuntime.jsx(LoginScreen, { ...buildLoginScreenProps(input) });
|
|
16445
17087
|
case "deposit-options":
|
|
16446
17088
|
return /* @__PURE__ */ jsxRuntime.jsx(DepositOptionsScreen, { ...buildDepositOptionsScreenProps(input) });
|
|
17089
|
+
case "welcome-back":
|
|
17090
|
+
return /* @__PURE__ */ jsxRuntime.jsx(WelcomeBackScreen, { ...buildWelcomeBackScreenProps(input) });
|
|
16447
17091
|
case "wallet-picker":
|
|
16448
17092
|
return /* @__PURE__ */ jsxRuntime.jsx(WalletPickerScreen, { ...buildWalletPickerScreenProps(input) });
|
|
16449
17093
|
case "open-wallet":
|
|
@@ -19770,6 +20414,7 @@ function BlinkPaymentInner({
|
|
|
19770
20414
|
onCommitTokenAuthorization: provider.handleCommitTokenAuthorization,
|
|
19771
20415
|
onLogin: () => dispatch({ type: "REQUEST_LOGIN" }),
|
|
19772
20416
|
onCancelLogin: () => dispatch({ type: "CANCEL_LOGIN_REQUEST" }),
|
|
20417
|
+
onAcknowledgeWelcomeBack: () => dispatch({ type: "ACKNOWLEDGE_WELCOME_BACK" }),
|
|
19773
20418
|
onSetDepositToken: handleSetDepositToken,
|
|
19774
20419
|
onConfirmSetupDeposit: handleConfirmSetupDeposit,
|
|
19775
20420
|
onAmountInput: (value) => dispatch({ type: "SET_AMOUNT_INPUT", value }),
|
|
@@ -19887,6 +20532,7 @@ exports.InfoBanner = InfoBanner;
|
|
|
19887
20532
|
exports.LOGIN_KEY_ILLUSTRATION = LOGIN_KEY_ILLUSTRATION;
|
|
19888
20533
|
exports.LinkTokensScreen = LinkTokensScreen;
|
|
19889
20534
|
exports.LoginScreen = LoginScreen;
|
|
20535
|
+
exports.ManualTransferPasskeyScreen = ManualTransferPasskeyScreen;
|
|
19890
20536
|
exports.OpenWalletScreen = OpenWalletScreen;
|
|
19891
20537
|
exports.OtpVerifyScreen = OtpVerifyScreen;
|
|
19892
20538
|
exports.OutlineButton = OutlineButton;
|
|
@@ -19908,6 +20554,7 @@ exports.SuccessScreen = SuccessScreen;
|
|
|
19908
20554
|
exports.TokenPickerScreen = TokenPickerScreen;
|
|
19909
20555
|
exports.VerifyPasskeyScreen = VerifyPasskeyScreen;
|
|
19910
20556
|
exports.WalletPickerScreen = WalletPickerScreen;
|
|
20557
|
+
exports.WelcomeBackScreen = WelcomeBackScreen;
|
|
19911
20558
|
exports.appendDebug = appendDebug;
|
|
19912
20559
|
exports.blinkApi = api_exports;
|
|
19913
20560
|
exports.clearDebugEntries = clearDebugEntries;
|