@swype-org/react-sdk 0.2.311 → 0.2.315
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 +852 -202
- 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 +852 -204
- 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,6 +10559,69 @@ 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
|
+
});
|
|
10606
|
+
|
|
10607
|
+
// src/deviceBiometricUnlockText.ts
|
|
10608
|
+
var FALLBACK = "Biometric verification";
|
|
10609
|
+
function getDeviceBiometricUnlockText() {
|
|
10610
|
+
const ua = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
|
|
10611
|
+
if (/iPhone|iPad|iPod/i.test(ua)) {
|
|
10612
|
+
return "Face ID";
|
|
10613
|
+
}
|
|
10614
|
+
if (/Android/i.test(ua)) {
|
|
10615
|
+
return "Fingerprint or face unlock";
|
|
10616
|
+
}
|
|
10617
|
+
if (/Windows NT/i.test(ua)) {
|
|
10618
|
+
return "Windows Hello";
|
|
10619
|
+
}
|
|
10620
|
+
if (/Macintosh|Mac OS X/i.test(ua)) {
|
|
10621
|
+
return "Touch ID";
|
|
10622
|
+
}
|
|
10623
|
+
return FALLBACK;
|
|
10624
|
+
}
|
|
10530
10625
|
function LoginScreen({
|
|
10531
10626
|
onLoginWithPasskey,
|
|
10532
10627
|
onSignupWithPasskey,
|
|
@@ -10616,8 +10711,11 @@ function PasskeyInfoCard({ tokens }) {
|
|
|
10616
10711
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoRowStyle, children: [
|
|
10617
10712
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: tokens.text, flexShrink: 0, paddingTop: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(FaceIdIcon, { size: 24 }) }),
|
|
10618
10713
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoRowTextStyle, children: [
|
|
10619
|
-
/* @__PURE__ */ jsxRuntime.
|
|
10620
|
-
|
|
10714
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: infoRowTitleStyle(tokens.text), children: [
|
|
10715
|
+
"Deposit with ",
|
|
10716
|
+
getDeviceBiometricUnlockText()
|
|
10717
|
+
] }),
|
|
10718
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: infoRowSubtitleStyle(tokens.text), children: "Everywhere Blink is enabled" })
|
|
10621
10719
|
] })
|
|
10622
10720
|
] })
|
|
10623
10721
|
] });
|
|
@@ -10755,25 +10853,6 @@ var avatarStyle = (tokens) => ({
|
|
|
10755
10853
|
color: tokens.textMuted,
|
|
10756
10854
|
background: "transparent"
|
|
10757
10855
|
});
|
|
10758
|
-
|
|
10759
|
-
// src/deviceBiometricUnlockText.ts
|
|
10760
|
-
var FALLBACK = "Biometric verification";
|
|
10761
|
-
function getDeviceBiometricUnlockText() {
|
|
10762
|
-
const ua = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
|
|
10763
|
-
if (/iPhone|iPad|iPod/i.test(ua)) {
|
|
10764
|
-
return "Face ID";
|
|
10765
|
-
}
|
|
10766
|
-
if (/Android/i.test(ua)) {
|
|
10767
|
-
return "Fingerprint or face unlock";
|
|
10768
|
-
}
|
|
10769
|
-
if (/Windows NT/i.test(ua)) {
|
|
10770
|
-
return "Windows Hello";
|
|
10771
|
-
}
|
|
10772
|
-
if (/Macintosh|Mac OS X/i.test(ua)) {
|
|
10773
|
-
return "Touch ID";
|
|
10774
|
-
}
|
|
10775
|
-
return FALLBACK;
|
|
10776
|
-
}
|
|
10777
10856
|
var CLUSTER_LOGOS = [
|
|
10778
10857
|
METAMASK_LOGO,
|
|
10779
10858
|
PHANTOM_LOGO,
|
|
@@ -10822,7 +10901,7 @@ function DepositOptionsScreen({
|
|
|
10822
10901
|
onClick: onSignInWithBlink,
|
|
10823
10902
|
style: depositPillStyle(tokens.accent),
|
|
10824
10903
|
children: [
|
|
10825
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10904
|
+
/* @__PURE__ */ jsxRuntime.jsx(FitText, { maxFontSize: 16, minFontSize: 11, color: tokens.accentText, children: depositLabel }),
|
|
10826
10905
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: clusterStyle, children: CLUSTER_LOGOS.map((logo, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
10827
10906
|
"span",
|
|
10828
10907
|
{
|
|
@@ -10929,6 +11008,7 @@ var depositPillStyle = (bg) => ({
|
|
|
10929
11008
|
display: "flex",
|
|
10930
11009
|
alignItems: "center",
|
|
10931
11010
|
justifyContent: "space-between",
|
|
11011
|
+
gap: 8,
|
|
10932
11012
|
width: "100%",
|
|
10933
11013
|
height: 56,
|
|
10934
11014
|
padding: "12px 12px 12px 24px",
|
|
@@ -10939,16 +11019,11 @@ var depositPillStyle = (bg) => ({
|
|
|
10939
11019
|
boxSizing: "border-box",
|
|
10940
11020
|
fontFamily: "inherit"
|
|
10941
11021
|
});
|
|
10942
|
-
var depositPillLabelStyle = (color) => ({
|
|
10943
|
-
color,
|
|
10944
|
-
fontSize: 16,
|
|
10945
|
-
fontWeight: 500,
|
|
10946
|
-
whiteSpace: "nowrap"
|
|
10947
|
-
});
|
|
10948
11022
|
var clusterStyle = {
|
|
10949
11023
|
display: "inline-flex",
|
|
10950
11024
|
alignItems: "center",
|
|
10951
|
-
isolation: "isolate"
|
|
11025
|
+
isolation: "isolate",
|
|
11026
|
+
flexShrink: 0
|
|
10952
11027
|
};
|
|
10953
11028
|
var clusterChipStyle = (bg, last) => ({
|
|
10954
11029
|
width: 32,
|
|
@@ -11043,102 +11118,391 @@ var closeButtonStyle2 = (bg, color) => ({
|
|
|
11043
11118
|
cursor: "pointer",
|
|
11044
11119
|
padding: 0
|
|
11045
11120
|
});
|
|
11046
|
-
|
|
11047
|
-
|
|
11048
|
-
|
|
11049
|
-
|
|
11050
|
-
|
|
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,
|
|
11051
11132
|
onClose
|
|
11052
11133
|
}) {
|
|
11053
11134
|
const { tokens } = useBlinkConfig();
|
|
11054
|
-
const
|
|
11055
|
-
|
|
11056
|
-
{
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
style: closeButtonStyle3(tokens),
|
|
11061
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11062
|
-
"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",
|
|
11063
11141
|
{
|
|
11064
|
-
|
|
11065
|
-
|
|
11066
|
-
|
|
11067
|
-
|
|
11068
|
-
|
|
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
|
+
) })
|
|
11069
11156
|
}
|
|
11070
|
-
)
|
|
11071
|
-
}
|
|
11072
|
-
|
|
11073
|
-
|
|
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 }) {
|
|
11074
11207
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
11075
|
-
|
|
11208
|
+
"svg",
|
|
11076
11209
|
{
|
|
11077
|
-
|
|
11210
|
+
width: "24",
|
|
11211
|
+
height: "24",
|
|
11212
|
+
viewBox: "0 0 24 24",
|
|
11213
|
+
fill: "none",
|
|
11214
|
+
"aria-hidden": "true",
|
|
11215
|
+
style: { flexShrink: 0 },
|
|
11078
11216
|
children: [
|
|
11079
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11080
|
-
/* @__PURE__ */ jsxRuntime.
|
|
11081
|
-
|
|
11082
|
-
|
|
11083
|
-
|
|
11084
|
-
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
|
|
11088
|
-
|
|
11089
|
-
),
|
|
11090
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle2(tokens.text), children: title }),
|
|
11091
|
-
message && /* @__PURE__ */ jsxRuntime.jsx("p", { style: messageStyle(tokens.text), children: message })
|
|
11092
|
-
] })
|
|
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 })
|
|
11093
11227
|
]
|
|
11094
11228
|
}
|
|
11095
11229
|
);
|
|
11096
11230
|
}
|
|
11231
|
+
var sheetStyle2 = {
|
|
11232
|
+
position: "relative",
|
|
11233
|
+
minHeight: "100%",
|
|
11234
|
+
display: "flex",
|
|
11235
|
+
flexDirection: "column",
|
|
11236
|
+
boxSizing: "border-box"
|
|
11237
|
+
};
|
|
11097
11238
|
var contentStyle3 = {
|
|
11098
|
-
textAlign: "center",
|
|
11099
|
-
flex: 1,
|
|
11100
11239
|
display: "flex",
|
|
11101
11240
|
flexDirection: "column",
|
|
11102
11241
|
alignItems: "center",
|
|
11103
|
-
|
|
11104
|
-
|
|
11242
|
+
gap: 32,
|
|
11243
|
+
padding: "32px 8px"
|
|
11105
11244
|
};
|
|
11106
|
-
var
|
|
11107
|
-
|
|
11108
|
-
|
|
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%",
|
|
11109
11261
|
objectFit: "contain",
|
|
11110
11262
|
display: "block"
|
|
11111
11263
|
};
|
|
11112
|
-
var
|
|
11113
|
-
|
|
11114
|
-
|
|
11115
|
-
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
|
|
11119
|
-
|
|
11120
|
-
|
|
11121
|
-
|
|
11122
|
-
|
|
11123
|
-
|
|
11124
|
-
|
|
11125
|
-
|
|
11126
|
-
|
|
11127
|
-
|
|
11128
|
-
|
|
11129
|
-
|
|
11130
|
-
height: 40,
|
|
11131
|
-
borderRadius: "50%",
|
|
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,
|
|
11132
11282
|
border: "none",
|
|
11133
|
-
|
|
11134
|
-
|
|
11283
|
+
borderRadius: 32,
|
|
11284
|
+
cursor: "pointer",
|
|
11285
|
+
boxSizing: "border-box",
|
|
11286
|
+
fontFamily: "inherit"
|
|
11287
|
+
});
|
|
11288
|
+
var completeSetupBandStyle = (color) => ({
|
|
11135
11289
|
display: "flex",
|
|
11136
11290
|
alignItems: "center",
|
|
11137
11291
|
justifyContent: "center",
|
|
11138
|
-
|
|
11139
|
-
|
|
11292
|
+
height: 26,
|
|
11293
|
+
color,
|
|
11294
|
+
fontSize: 13,
|
|
11295
|
+
fontWeight: 600,
|
|
11296
|
+
letterSpacing: "0.01em"
|
|
11140
11297
|
});
|
|
11141
|
-
|
|
11298
|
+
var depositPillStyle2 = (bg) => ({
|
|
11299
|
+
display: "flex",
|
|
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",
|
|
11324
|
+
justifyContent: "center",
|
|
11325
|
+
marginRight: last ? 0 : -12,
|
|
11326
|
+
filter: "drop-shadow(0 0 2px rgba(0, 0, 0, 0.24))",
|
|
11327
|
+
flexShrink: 0
|
|
11328
|
+
});
|
|
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({
|
|
11142
11506
|
minAmountUsd,
|
|
11143
11507
|
onRetry,
|
|
11144
11508
|
onClose
|
|
@@ -11207,7 +11571,7 @@ function OtpVerifyScreen({
|
|
|
11207
11571
|
] }),
|
|
11208
11572
|
children: [
|
|
11209
11573
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
11210
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11574
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle5, children: [
|
|
11211
11575
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle3(tokens.text), children: "Confirm it is you" }),
|
|
11212
11576
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { style: subtitleStyle2(tokens.textSecondary), children: [
|
|
11213
11577
|
"We sent a 6-digit code to",
|
|
@@ -11231,7 +11595,7 @@ function OtpVerifyScreen({
|
|
|
11231
11595
|
}
|
|
11232
11596
|
);
|
|
11233
11597
|
}
|
|
11234
|
-
var
|
|
11598
|
+
var contentStyle5 = {
|
|
11235
11599
|
textAlign: "center",
|
|
11236
11600
|
display: "flex",
|
|
11237
11601
|
flexDirection: "column",
|
|
@@ -11313,7 +11677,7 @@ function PasskeyScreen({
|
|
|
11313
11677
|
] }),
|
|
11314
11678
|
children: [
|
|
11315
11679
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack, onLogout }),
|
|
11316
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11680
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle6, children: [
|
|
11317
11681
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle4(tokens.text), children: "Secure your account with a passkey" }),
|
|
11318
11682
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle3(tokens.textSecondary), children: "This enables secure one-tap deposits on this device" }),
|
|
11319
11683
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle2(tokens), children: error })
|
|
@@ -11322,7 +11686,7 @@ function PasskeyScreen({
|
|
|
11322
11686
|
}
|
|
11323
11687
|
);
|
|
11324
11688
|
}
|
|
11325
|
-
var
|
|
11689
|
+
var contentStyle6 = {
|
|
11326
11690
|
textAlign: "center",
|
|
11327
11691
|
flex: 1,
|
|
11328
11692
|
display: "flex",
|
|
@@ -11389,7 +11753,7 @@ function PasskeyPopupWelcomeScreen({
|
|
|
11389
11753
|
) }),
|
|
11390
11754
|
children: [
|
|
11391
11755
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack, onLogout }),
|
|
11392
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11756
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle7, children: [
|
|
11393
11757
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockupStyle, children: [
|
|
11394
11758
|
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_LOGO, alt: "", "aria-hidden": true, style: lockupMarkStyle }),
|
|
11395
11759
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: wordmarkStyle(tokens.text), children: "Blink" })
|
|
@@ -11429,7 +11793,7 @@ function PasskeyIcon() {
|
|
|
11429
11793
|
)
|
|
11430
11794
|
] });
|
|
11431
11795
|
}
|
|
11432
|
-
var
|
|
11796
|
+
var contentStyle7 = {
|
|
11433
11797
|
flex: 1,
|
|
11434
11798
|
minHeight: 0,
|
|
11435
11799
|
display: "flex",
|
|
@@ -11505,7 +11869,7 @@ function VerifyPasskeyScreen({
|
|
|
11505
11869
|
] }),
|
|
11506
11870
|
children: [
|
|
11507
11871
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
11508
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
11872
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle8, children: [
|
|
11509
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: [
|
|
11510
11874
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "3", stroke: tokens.accent, strokeWidth: "1.5", strokeDasharray: "3 2" }),
|
|
11511
11875
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "10", r: "1", fill: tokens.accent }),
|
|
@@ -11521,7 +11885,7 @@ function VerifyPasskeyScreen({
|
|
|
11521
11885
|
}
|
|
11522
11886
|
);
|
|
11523
11887
|
}
|
|
11524
|
-
var
|
|
11888
|
+
var contentStyle8 = {
|
|
11525
11889
|
textAlign: "center",
|
|
11526
11890
|
flex: 1,
|
|
11527
11891
|
display: "flex",
|
|
@@ -12218,6 +12582,260 @@ var errorBannerStyle5 = (tokens) => ({
|
|
|
12218
12582
|
marginBottom: 14,
|
|
12219
12583
|
lineHeight: 1.5
|
|
12220
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
|
+
});
|
|
12221
12839
|
var SHIMMER_ROWS = 3;
|
|
12222
12840
|
function LinkTokensScreen({
|
|
12223
12841
|
entries: entries2,
|
|
@@ -12240,7 +12858,7 @@ function LinkTokensScreen({
|
|
|
12240
12858
|
ScreenLayout,
|
|
12241
12859
|
{
|
|
12242
12860
|
scrollableBody: false,
|
|
12243
|
-
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
12861
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle3, children: [
|
|
12244
12862
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockBannerStyle, children: [
|
|
12245
12863
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: lockIconWrapStyle(t.text), children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon2, {}) }),
|
|
12246
12864
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: lockBannerTextStyle(t.text), children: "Your passkey is required each time you deposit. Funds cannot move without your approval." })
|
|
@@ -12274,11 +12892,11 @@ function LinkTokensScreen({
|
|
|
12274
12892
|
{
|
|
12275
12893
|
onBack,
|
|
12276
12894
|
onLogout,
|
|
12277
|
-
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style:
|
|
12895
|
+
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle3 })
|
|
12278
12896
|
}
|
|
12279
12897
|
),
|
|
12280
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
12281
|
-
/* @__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" }),
|
|
12282
12900
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "blink-link-tokens-list", style: listCardStyle(t.bgRecessed), children: [
|
|
12283
12901
|
showShimmer ? Array.from({ length: SHIMMER_ROWS }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12284
12902
|
"div",
|
|
@@ -12330,7 +12948,7 @@ function LockIcon2() {
|
|
|
12330
12948
|
}
|
|
12331
12949
|
) });
|
|
12332
12950
|
}
|
|
12333
|
-
var
|
|
12951
|
+
var contentStyle10 = {
|
|
12334
12952
|
display: "flex",
|
|
12335
12953
|
flexDirection: "column",
|
|
12336
12954
|
alignItems: "center",
|
|
@@ -12340,14 +12958,14 @@ var contentStyle9 = {
|
|
|
12340
12958
|
minHeight: 0,
|
|
12341
12959
|
width: "100%"
|
|
12342
12960
|
};
|
|
12343
|
-
var
|
|
12961
|
+
var wordmarkImgStyle3 = {
|
|
12344
12962
|
height: 22,
|
|
12345
12963
|
width: "auto",
|
|
12346
12964
|
display: "block",
|
|
12347
12965
|
pointerEvents: "none",
|
|
12348
12966
|
userSelect: "none"
|
|
12349
12967
|
};
|
|
12350
|
-
var
|
|
12968
|
+
var headingStyle6 = (color) => ({
|
|
12351
12969
|
fontSize: 24,
|
|
12352
12970
|
fontWeight: 700,
|
|
12353
12971
|
lineHeight: "normal",
|
|
@@ -12415,7 +13033,7 @@ var bannerSlotStyle = {
|
|
|
12415
13033
|
justifyContent: "center",
|
|
12416
13034
|
width: "100%"
|
|
12417
13035
|
};
|
|
12418
|
-
var
|
|
13036
|
+
var footerStackStyle3 = {
|
|
12419
13037
|
display: "flex",
|
|
12420
13038
|
flexDirection: "column",
|
|
12421
13039
|
gap: 16,
|
|
@@ -12451,7 +13069,7 @@ function DepositCompleteScreen({ amount }) {
|
|
|
12451
13069
|
const { tokens } = useBlinkConfig();
|
|
12452
13070
|
return /* @__PURE__ */ jsxRuntime.jsxs(ScreenLayout, { children: [
|
|
12453
13071
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, {}),
|
|
12454
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
13072
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle11, children: [
|
|
12455
13073
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12456
13074
|
"img",
|
|
12457
13075
|
{
|
|
@@ -12461,12 +13079,12 @@ function DepositCompleteScreen({ amount }) {
|
|
|
12461
13079
|
style: illustrationStyle4
|
|
12462
13080
|
}
|
|
12463
13081
|
),
|
|
12464
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
12465
|
-
/* @__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." })
|
|
12466
13084
|
] })
|
|
12467
13085
|
] });
|
|
12468
13086
|
}
|
|
12469
|
-
var
|
|
13087
|
+
var contentStyle11 = {
|
|
12470
13088
|
flex: 1,
|
|
12471
13089
|
display: "flex",
|
|
12472
13090
|
flexDirection: "column",
|
|
@@ -12482,7 +13100,7 @@ var illustrationStyle4 = {
|
|
|
12482
13100
|
objectFit: "contain",
|
|
12483
13101
|
display: "block"
|
|
12484
13102
|
};
|
|
12485
|
-
var
|
|
13103
|
+
var headingStyle7 = (color) => ({
|
|
12486
13104
|
fontSize: "2rem",
|
|
12487
13105
|
fontWeight: 700,
|
|
12488
13106
|
lineHeight: 1.05,
|
|
@@ -12490,7 +13108,7 @@ var headingStyle8 = (color) => ({
|
|
|
12490
13108
|
color,
|
|
12491
13109
|
margin: 0
|
|
12492
13110
|
});
|
|
12493
|
-
var
|
|
13111
|
+
var subtitleStyle5 = (color) => ({
|
|
12494
13112
|
fontSize: "1rem",
|
|
12495
13113
|
color,
|
|
12496
13114
|
margin: 0,
|
|
@@ -12623,7 +13241,7 @@ function SelectDepositSourceScreen({
|
|
|
12623
13241
|
footer,
|
|
12624
13242
|
children: [
|
|
12625
13243
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { title: "Select source", onBack: onBack ?? onDone, onLogout }),
|
|
12626
|
-
/* @__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: [
|
|
12627
13245
|
orderedAccounts.map((account) => {
|
|
12628
13246
|
const authRows = authorized.filter((opt) => rowAccountId(opt) === account.id);
|
|
12629
13247
|
const reqRows = requiresAuth.filter((opt) => rowAccountId(opt) === account.id);
|
|
@@ -12666,7 +13284,7 @@ function SelectDepositSourceScreen({
|
|
|
12666
13284
|
label: "Send manually",
|
|
12667
13285
|
color: tokens.text,
|
|
12668
13286
|
onClick: onSendManually,
|
|
12669
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13287
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(QrIcon3, { color: tokens.text })
|
|
12670
13288
|
}
|
|
12671
13289
|
),
|
|
12672
13290
|
onAddProvider && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -12684,7 +13302,7 @@ function SelectDepositSourceScreen({
|
|
|
12684
13302
|
}
|
|
12685
13303
|
);
|
|
12686
13304
|
}
|
|
12687
|
-
var
|
|
13305
|
+
var contentStyle12 = {
|
|
12688
13306
|
display: "flex",
|
|
12689
13307
|
flexDirection: "column",
|
|
12690
13308
|
gap: 8,
|
|
@@ -12776,7 +13394,7 @@ function ActionRow({
|
|
|
12776
13394
|
}
|
|
12777
13395
|
);
|
|
12778
13396
|
}
|
|
12779
|
-
function
|
|
13397
|
+
function QrIcon3({ color }) {
|
|
12780
13398
|
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
12781
13399
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
12782
13400
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "6", width: "2", height: "2", fill: color }),
|
|
@@ -13474,7 +14092,7 @@ function SuccessScreen({
|
|
|
13474
14092
|
type: "button",
|
|
13475
14093
|
onClick: onDone,
|
|
13476
14094
|
"aria-label": "Close",
|
|
13477
|
-
style:
|
|
14095
|
+
style: closeButtonStyle5(tokens),
|
|
13478
14096
|
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13479
14097
|
"path",
|
|
13480
14098
|
{
|
|
@@ -13509,7 +14127,7 @@ function SuccessScreen({
|
|
|
13509
14127
|
style: illustrationStyle5
|
|
13510
14128
|
}
|
|
13511
14129
|
),
|
|
13512
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
14130
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle8(tokens.text), children: "You\u2019re all set" })
|
|
13513
14131
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { style: screenContentStyle, children: [
|
|
13514
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 }) }) }),
|
|
13515
14133
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: failureHeadingStyle(tokens.text), children: "Transfer failed" }),
|
|
@@ -13518,7 +14136,7 @@ function SuccessScreen({
|
|
|
13518
14136
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: summaryLabelStyle(tokens.textMuted), children: "From" }),
|
|
13519
14137
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: summaryValueStyle(tokens.text), children: sourceName })
|
|
13520
14138
|
] }) }),
|
|
13521
|
-
!sourceName && merchantName && /* @__PURE__ */ jsxRuntime.jsxs("p", { style:
|
|
14139
|
+
!sourceName && merchantName && /* @__PURE__ */ jsxRuntime.jsxs("p", { style: subtitleStyle6(tokens.textSecondary), children: [
|
|
13522
14140
|
"to ",
|
|
13523
14141
|
merchantName,
|
|
13524
14142
|
" \u2014 $",
|
|
@@ -13544,7 +14162,7 @@ var illustrationStyle5 = {
|
|
|
13544
14162
|
objectFit: "contain",
|
|
13545
14163
|
display: "block"
|
|
13546
14164
|
};
|
|
13547
|
-
var
|
|
14165
|
+
var headingStyle8 = (color) => ({
|
|
13548
14166
|
fontSize: "2rem",
|
|
13549
14167
|
fontWeight: 700,
|
|
13550
14168
|
lineHeight: 1.05,
|
|
@@ -13559,7 +14177,7 @@ var screenContentStyle = {
|
|
|
13559
14177
|
alignItems: "center",
|
|
13560
14178
|
paddingTop: 16
|
|
13561
14179
|
};
|
|
13562
|
-
var
|
|
14180
|
+
var subtitleStyle6 = (color) => ({
|
|
13563
14181
|
fontSize: "0.9rem",
|
|
13564
14182
|
color,
|
|
13565
14183
|
margin: "0 0 28px",
|
|
@@ -13609,7 +14227,7 @@ var returnMessageStyle = (color) => ({
|
|
|
13609
14227
|
margin: "0 0 4px",
|
|
13610
14228
|
lineHeight: 1.5
|
|
13611
14229
|
});
|
|
13612
|
-
var
|
|
14230
|
+
var closeButtonStyle5 = (tokens) => ({
|
|
13613
14231
|
width: 40,
|
|
13614
14232
|
height: 40,
|
|
13615
14233
|
borderRadius: "50%",
|
|
@@ -13654,7 +14272,7 @@ function SelectSourceScreen({
|
|
|
13654
14272
|
onLogout
|
|
13655
14273
|
}
|
|
13656
14274
|
),
|
|
13657
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { style:
|
|
14275
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle7(tokens.textMuted), children: "Choose which chain and token to pay from." }),
|
|
13658
14276
|
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle5(tokens.textSecondary), children: "Chain" }),
|
|
13659
14277
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: optionListStyle, children: choices.map((chain) => {
|
|
13660
14278
|
const isSelected = chain.chainName === selectedChainName;
|
|
@@ -13716,7 +14334,7 @@ function SelectSourceScreen({
|
|
|
13716
14334
|
}
|
|
13717
14335
|
);
|
|
13718
14336
|
}
|
|
13719
|
-
var
|
|
14337
|
+
var subtitleStyle7 = (color) => ({
|
|
13720
14338
|
fontSize: "0.85rem",
|
|
13721
14339
|
color,
|
|
13722
14340
|
margin: "0 0 20px",
|
|
@@ -13858,8 +14476,8 @@ function AdvancedSourceScreen({
|
|
|
13858
14476
|
right: /* @__PURE__ */ jsxRuntime.jsx("span", { style: advancedBadgeStyle(tokens.accent), children: "Advanced" })
|
|
13859
14477
|
}
|
|
13860
14478
|
),
|
|
13861
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
13862
|
-
/* @__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." }),
|
|
13863
14481
|
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle6(tokens.textSecondary), children: "Select tokens to approve" }),
|
|
13864
14482
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: chainListStyle, children: choices.map((chain) => {
|
|
13865
14483
|
const isExpanded = expandedChain === chain.chainName;
|
|
@@ -13922,14 +14540,14 @@ var advancedBadgeStyle = (color) => ({
|
|
|
13922
14540
|
padding: "3px 10px",
|
|
13923
14541
|
letterSpacing: "0.02em"
|
|
13924
14542
|
});
|
|
13925
|
-
var
|
|
14543
|
+
var headingStyle9 = (color) => ({
|
|
13926
14544
|
fontSize: "1.3rem",
|
|
13927
14545
|
fontWeight: 700,
|
|
13928
14546
|
letterSpacing: "-0.02em",
|
|
13929
14547
|
color,
|
|
13930
14548
|
margin: "8px 0 4px"
|
|
13931
14549
|
});
|
|
13932
|
-
var
|
|
14550
|
+
var subtitleStyle8 = (color) => ({
|
|
13933
14551
|
fontSize: "0.86rem",
|
|
13934
14552
|
color,
|
|
13935
14553
|
margin: "0 0 20px",
|
|
@@ -14063,8 +14681,8 @@ function TransferStatusLayout({
|
|
|
14063
14681
|
footer: showRetry && onRetry ? /* @__PURE__ */ jsxRuntime.jsx(OutlineButton, { onClick: onRetry, children: retryLabel }) : void 0,
|
|
14064
14682
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: wrapperStyle, children: [
|
|
14065
14683
|
onLogout && /* @__PURE__ */ jsxRuntime.jsx("div", { style: menuOverlayStyle, children: /* @__PURE__ */ jsxRuntime.jsx(SettingsMenu, { onLogout }) }),
|
|
14066
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
14067
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
14684
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle13, children: [
|
|
14685
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle10(tokens.text), children: heading }),
|
|
14068
14686
|
visibleError && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle7(tokens), children: visibleError }),
|
|
14069
14687
|
children
|
|
14070
14688
|
] })
|
|
@@ -14141,7 +14759,7 @@ var menuOverlayStyle = {
|
|
|
14141
14759
|
right: 0,
|
|
14142
14760
|
zIndex: 1
|
|
14143
14761
|
};
|
|
14144
|
-
var
|
|
14762
|
+
var contentStyle13 = {
|
|
14145
14763
|
flex: 1,
|
|
14146
14764
|
display: "flex",
|
|
14147
14765
|
flexDirection: "column",
|
|
@@ -14151,7 +14769,7 @@ var contentStyle12 = {
|
|
|
14151
14769
|
padding: "32px 0",
|
|
14152
14770
|
width: "100%"
|
|
14153
14771
|
};
|
|
14154
|
-
var
|
|
14772
|
+
var headingStyle10 = (color) => ({
|
|
14155
14773
|
fontSize: "1.5rem",
|
|
14156
14774
|
fontWeight: 700,
|
|
14157
14775
|
lineHeight: "normal",
|
|
@@ -14258,7 +14876,7 @@ function DepositAddressScreen({
|
|
|
14258
14876
|
) : void 0
|
|
14259
14877
|
}
|
|
14260
14878
|
),
|
|
14261
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
14879
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle14, children: [
|
|
14262
14880
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: depositTitleStyle(tokens.text), children: "Deposit Address" }),
|
|
14263
14881
|
qrReady && session && selectedOption ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14264
14882
|
DepositQrCode,
|
|
@@ -14353,7 +14971,7 @@ var FeeRow = react.memo(function FeeRow2({
|
|
|
14353
14971
|
}) {
|
|
14354
14972
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { style: bodyStyle3(color), children: feeCopy2 });
|
|
14355
14973
|
});
|
|
14356
|
-
var
|
|
14974
|
+
var contentStyle14 = {
|
|
14357
14975
|
alignItems: "center",
|
|
14358
14976
|
display: "flex",
|
|
14359
14977
|
flex: 1,
|
|
@@ -14585,7 +15203,7 @@ function OpenWalletScreen({
|
|
|
14585
15203
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14586
15204
|
ScreenLayout,
|
|
14587
15205
|
{
|
|
14588
|
-
footer: error ? /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15206
|
+
footer: error ? /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle4, children: [
|
|
14589
15207
|
/* @__PURE__ */ jsxRuntime.jsx(InfoBanner, { children: error }),
|
|
14590
15208
|
onRetryAuthorization && /* @__PURE__ */ jsxRuntime.jsx(OutlineButton, { onClick: onRetryAuthorization, children: "Retry" })
|
|
14591
15209
|
] }) : void 0,
|
|
@@ -14603,7 +15221,7 @@ function OpenWalletScreen({
|
|
|
14603
15221
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: desktopContentStyle, children: [
|
|
14604
15222
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: primaryClusterStyle, children: [
|
|
14605
15223
|
logoBlock,
|
|
14606
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { style:
|
|
15224
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { style: headingStyle11(tokens.text), children: [
|
|
14607
15225
|
"Setting up ",
|
|
14608
15226
|
displayName,
|
|
14609
15227
|
"\u2026"
|
|
@@ -14635,7 +15253,7 @@ function OpenWalletScreen({
|
|
|
14635
15253
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14636
15254
|
ScreenLayout,
|
|
14637
15255
|
{
|
|
14638
|
-
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15256
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle4, children: [
|
|
14639
15257
|
error && /* @__PURE__ */ jsxRuntime.jsx(InfoBanner, { children: error }),
|
|
14640
15258
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14641
15259
|
SecondaryButton,
|
|
@@ -14666,7 +15284,7 @@ function OpenWalletScreen({
|
|
|
14666
15284
|
{
|
|
14667
15285
|
type: "button",
|
|
14668
15286
|
onClick: onLogout,
|
|
14669
|
-
style:
|
|
15287
|
+
style: closeButtonStyle6(tokens.bgRecessed, tokens.text),
|
|
14670
15288
|
"aria-label": "Close",
|
|
14671
15289
|
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14672
15290
|
"path",
|
|
@@ -14708,7 +15326,7 @@ function useDelayedStatusRetry(enabled, deeplinkUri) {
|
|
|
14708
15326
|
}, [deeplinkUri, enabled]);
|
|
14709
15327
|
return visible;
|
|
14710
15328
|
}
|
|
14711
|
-
var
|
|
15329
|
+
var contentStyle15 = {
|
|
14712
15330
|
flex: 1,
|
|
14713
15331
|
display: "flex",
|
|
14714
15332
|
flexDirection: "column",
|
|
@@ -14718,7 +15336,7 @@ var contentStyle14 = {
|
|
|
14718
15336
|
gap: 12
|
|
14719
15337
|
};
|
|
14720
15338
|
var desktopContentStyle = {
|
|
14721
|
-
...
|
|
15339
|
+
...contentStyle15,
|
|
14722
15340
|
gap: 32
|
|
14723
15341
|
};
|
|
14724
15342
|
var primaryClusterStyle = {
|
|
@@ -14728,7 +15346,7 @@ var primaryClusterStyle = {
|
|
|
14728
15346
|
textAlign: "center",
|
|
14729
15347
|
gap: 12
|
|
14730
15348
|
};
|
|
14731
|
-
var
|
|
15349
|
+
var footerStackStyle4 = {
|
|
14732
15350
|
display: "flex",
|
|
14733
15351
|
flexDirection: "column",
|
|
14734
15352
|
gap: 8
|
|
@@ -14777,7 +15395,7 @@ var reownLogoStyle = {
|
|
|
14777
15395
|
borderRadius: "50%",
|
|
14778
15396
|
objectFit: "cover"
|
|
14779
15397
|
};
|
|
14780
|
-
var
|
|
15398
|
+
var headingStyle11 = (color) => ({
|
|
14781
15399
|
fontSize: "1.5rem",
|
|
14782
15400
|
fontWeight: 700,
|
|
14783
15401
|
lineHeight: 1.1,
|
|
@@ -14893,7 +15511,7 @@ var mobileBodyStyle = (color) => ({
|
|
|
14893
15511
|
margin: 0,
|
|
14894
15512
|
maxWidth: 350
|
|
14895
15513
|
});
|
|
14896
|
-
var
|
|
15514
|
+
var closeButtonStyle6 = (bg, color) => ({
|
|
14897
15515
|
width: 44,
|
|
14898
15516
|
height: 44,
|
|
14899
15517
|
borderRadius: "50%",
|
|
@@ -14929,7 +15547,7 @@ function ApprovingInWalletScreen({
|
|
|
14929
15547
|
ScreenLayout,
|
|
14930
15548
|
{
|
|
14931
15549
|
scrollableBody: false,
|
|
14932
|
-
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15550
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle5, children: [
|
|
14933
15551
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockBannerStyle2, children: [
|
|
14934
15552
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: lockIconWrapStyle2(t.text), children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon3, {}) }),
|
|
14935
15553
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: lockBannerTextStyle2(t.text), children: "Your passkey is required each time you deposit. Funds cannot move without your approval." })
|
|
@@ -14945,11 +15563,11 @@ function ApprovingInWalletScreen({
|
|
|
14945
15563
|
{
|
|
14946
15564
|
onBack,
|
|
14947
15565
|
onLogout,
|
|
14948
|
-
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style:
|
|
15566
|
+
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle4 })
|
|
14949
15567
|
}
|
|
14950
15568
|
),
|
|
14951
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
14952
|
-
/* @__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` }),
|
|
14953
15571
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: cardStyle2(t.bgRecessed, t.radiusLg), children: [
|
|
14954
15572
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: SPIN_KEYFRAMES_CSS2 }),
|
|
14955
15573
|
steps.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx(ChecklistRow, { step: s }, i))
|
|
@@ -15043,14 +15661,14 @@ function LockIcon3() {
|
|
|
15043
15661
|
}
|
|
15044
15662
|
) });
|
|
15045
15663
|
}
|
|
15046
|
-
var
|
|
15664
|
+
var wordmarkImgStyle4 = {
|
|
15047
15665
|
height: 22,
|
|
15048
15666
|
width: "auto",
|
|
15049
15667
|
display: "block",
|
|
15050
15668
|
pointerEvents: "none",
|
|
15051
15669
|
userSelect: "none"
|
|
15052
15670
|
};
|
|
15053
|
-
var
|
|
15671
|
+
var contentStyle16 = {
|
|
15054
15672
|
display: "flex",
|
|
15055
15673
|
flexDirection: "column",
|
|
15056
15674
|
alignItems: "center",
|
|
@@ -15060,7 +15678,7 @@ var contentStyle15 = {
|
|
|
15060
15678
|
minHeight: 0,
|
|
15061
15679
|
width: "100%"
|
|
15062
15680
|
};
|
|
15063
|
-
var
|
|
15681
|
+
var headingStyle12 = (color) => ({
|
|
15064
15682
|
fontSize: 24,
|
|
15065
15683
|
fontWeight: 700,
|
|
15066
15684
|
lineHeight: "normal",
|
|
@@ -15111,7 +15729,7 @@ var labelStyle7 = (color) => ({
|
|
|
15111
15729
|
lineHeight: 1.25,
|
|
15112
15730
|
color
|
|
15113
15731
|
});
|
|
15114
|
-
var
|
|
15732
|
+
var footerStackStyle5 = {
|
|
15115
15733
|
display: "flex",
|
|
15116
15734
|
flexDirection: "column",
|
|
15117
15735
|
gap: 16,
|
|
@@ -15175,10 +15793,10 @@ function ConfirmSignScreen({
|
|
|
15175
15793
|
] }),
|
|
15176
15794
|
children: [
|
|
15177
15795
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onLogout }),
|
|
15178
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15796
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle17, children: [
|
|
15179
15797
|
logoSrc ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logoSrc, alt: displayName, style: logoStyle3 }) : /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: 48 }),
|
|
15180
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
15181
|
-
/* @__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 }),
|
|
15182
15800
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: successBadgeStyle(tokens), children: [
|
|
15183
15801
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: checkmarkStyle, children: "\u2713" }),
|
|
15184
15802
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: badge })
|
|
@@ -15188,7 +15806,7 @@ function ConfirmSignScreen({
|
|
|
15188
15806
|
}
|
|
15189
15807
|
);
|
|
15190
15808
|
}
|
|
15191
|
-
var
|
|
15809
|
+
var contentStyle17 = {
|
|
15192
15810
|
flex: 1,
|
|
15193
15811
|
display: "flex",
|
|
15194
15812
|
flexDirection: "column",
|
|
@@ -15203,14 +15821,14 @@ var logoStyle3 = {
|
|
|
15203
15821
|
borderRadius: 14,
|
|
15204
15822
|
objectFit: "contain"
|
|
15205
15823
|
};
|
|
15206
|
-
var
|
|
15824
|
+
var headingStyle13 = (color) => ({
|
|
15207
15825
|
fontSize: "1.45rem",
|
|
15208
15826
|
fontWeight: 700,
|
|
15209
15827
|
letterSpacing: "-0.02em",
|
|
15210
15828
|
color,
|
|
15211
15829
|
margin: "20px 0 8px"
|
|
15212
15830
|
});
|
|
15213
|
-
var
|
|
15831
|
+
var subtitleStyle9 = (color) => ({
|
|
15214
15832
|
fontSize: "0.9rem",
|
|
15215
15833
|
color,
|
|
15216
15834
|
margin: "0 0 24px",
|
|
@@ -15567,10 +16185,10 @@ function GuestTokenPickerScreen({
|
|
|
15567
16185
|
] }),
|
|
15568
16186
|
children: [
|
|
15569
16187
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
15570
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15571
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
16188
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle18, children: [
|
|
16189
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle14(tokens.text), children: title }),
|
|
15572
16190
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle8(tokens), children: error }),
|
|
15573
|
-
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: [
|
|
15574
16192
|
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle8(tokens.textSecondary), children: "Token" }),
|
|
15575
16193
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15576
16194
|
"button",
|
|
@@ -15644,21 +16262,21 @@ function TokenRow({
|
|
|
15644
16262
|
] })
|
|
15645
16263
|
] });
|
|
15646
16264
|
}
|
|
15647
|
-
var
|
|
16265
|
+
var contentStyle18 = {
|
|
15648
16266
|
flex: 1,
|
|
15649
16267
|
display: "flex",
|
|
15650
16268
|
flexDirection: "column",
|
|
15651
16269
|
padding: "0 20px 16px",
|
|
15652
16270
|
gap: 12
|
|
15653
16271
|
};
|
|
15654
|
-
var
|
|
16272
|
+
var headingStyle14 = (color) => ({
|
|
15655
16273
|
fontSize: "1.25rem",
|
|
15656
16274
|
fontWeight: 700,
|
|
15657
16275
|
color,
|
|
15658
16276
|
margin: "0 0 8px",
|
|
15659
16277
|
textAlign: "center"
|
|
15660
16278
|
});
|
|
15661
|
-
var
|
|
16279
|
+
var subtitleStyle10 = (color) => ({
|
|
15662
16280
|
fontSize: "0.9rem",
|
|
15663
16281
|
color,
|
|
15664
16282
|
textAlign: "center"
|
|
@@ -15752,6 +16370,7 @@ var errorBannerStyle8 = (themeTokens) => ({
|
|
|
15752
16370
|
});
|
|
15753
16371
|
function ManualTransferFlow({
|
|
15754
16372
|
hasMerchantAuthorization,
|
|
16373
|
+
authenticated = false,
|
|
15755
16374
|
onCreatePasskey,
|
|
15756
16375
|
createPasskeyLoading = false,
|
|
15757
16376
|
createPasskeyError = null,
|
|
@@ -15795,8 +16414,8 @@ function ManualTransferFlow({
|
|
|
15795
16414
|
if (!hasMerchantAuthorization) {
|
|
15796
16415
|
screenContent = /* @__PURE__ */ jsxRuntime.jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsxRuntime.jsx(PrimaryButton, { onClick: onBack, children: "Back" }), children: [
|
|
15797
16416
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
15798
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style:
|
|
15799
|
-
/* @__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" }),
|
|
15800
16419
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: bodyStyle5(tokens.textMuted), children: "merchantAuthorization is required." })
|
|
15801
16420
|
] })
|
|
15802
16421
|
] });
|
|
@@ -15830,7 +16449,19 @@ function ManualTransferFlow({
|
|
|
15830
16449
|
);
|
|
15831
16450
|
} else if (screen === "deposit-complete") {
|
|
15832
16451
|
const transferAmount = Number(session?.deliveredAmountUsd ?? session?.minAmountUsd ?? 0);
|
|
15833
|
-
|
|
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(
|
|
15834
16465
|
SuccessScreen,
|
|
15835
16466
|
{
|
|
15836
16467
|
amount: transferAmount,
|
|
@@ -15839,7 +16470,7 @@ function ManualTransferFlow({
|
|
|
15839
16470
|
onDone: onDismiss,
|
|
15840
16471
|
onLogout
|
|
15841
16472
|
}
|
|
15842
|
-
)
|
|
16473
|
+
);
|
|
15843
16474
|
} else if (screen === "deposit-failed") {
|
|
15844
16475
|
screenContent = /* @__PURE__ */ jsxRuntime.jsx(
|
|
15845
16476
|
BlinkErrorScreen,
|
|
@@ -15864,7 +16495,7 @@ function ManualTransferFlow({
|
|
|
15864
16495
|
}
|
|
15865
16496
|
return screenContent;
|
|
15866
16497
|
}
|
|
15867
|
-
var
|
|
16498
|
+
var contentStyle19 = {
|
|
15868
16499
|
alignItems: "center",
|
|
15869
16500
|
display: "flex",
|
|
15870
16501
|
flex: 1,
|
|
@@ -15875,7 +16506,7 @@ var contentStyle18 = {
|
|
|
15875
16506
|
paddingBottom: 24,
|
|
15876
16507
|
width: "100%"
|
|
15877
16508
|
};
|
|
15878
|
-
var
|
|
16509
|
+
var headingStyle15 = (color) => ({
|
|
15879
16510
|
color,
|
|
15880
16511
|
fontSize: "2rem",
|
|
15881
16512
|
lineHeight: 1.05,
|
|
@@ -15900,7 +16531,7 @@ function GenericLoadingShimmer() {
|
|
|
15900
16531
|
role: "status",
|
|
15901
16532
|
"aria-label": "Loading payment flow",
|
|
15902
16533
|
"aria-busy": "true",
|
|
15903
|
-
style:
|
|
16534
|
+
style: sheetStyle3(tokens),
|
|
15904
16535
|
children: [
|
|
15905
16536
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
15906
16537
|
@keyframes blink-loading-shimmer {
|
|
@@ -15946,7 +16577,7 @@ function ShimmerBlock2({
|
|
|
15946
16577
|
}
|
|
15947
16578
|
);
|
|
15948
16579
|
}
|
|
15949
|
-
var
|
|
16580
|
+
var sheetStyle3 = (tokens) => ({
|
|
15950
16581
|
display: "flex",
|
|
15951
16582
|
flexDirection: "column",
|
|
15952
16583
|
height: "100%",
|
|
@@ -16007,6 +16638,19 @@ function buildDepositOptionsScreenProps({ flow, handlers }) {
|
|
|
16007
16638
|
onClose: flow.isMobileApp ? void 0 : flow.onBack
|
|
16008
16639
|
};
|
|
16009
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
|
+
}
|
|
16010
16654
|
function buildWalletPickerScreenProps({
|
|
16011
16655
|
flow,
|
|
16012
16656
|
handlers
|
|
@@ -16427,6 +17071,7 @@ function StepRendererContent({
|
|
|
16427
17071
|
ManualTransferFlow,
|
|
16428
17072
|
{
|
|
16429
17073
|
hasMerchantAuthorization: flow.merchantAuthorization != null,
|
|
17074
|
+
authenticated: flow.authenticated,
|
|
16430
17075
|
onCreatePasskey: handlers.onSignupWithPasskey,
|
|
16431
17076
|
createPasskeyLoading: flow.passkeyLoading,
|
|
16432
17077
|
createPasskeyError: flow.state.error,
|
|
@@ -16441,6 +17086,8 @@ function StepRendererContent({
|
|
|
16441
17086
|
return /* @__PURE__ */ jsxRuntime.jsx(LoginScreen, { ...buildLoginScreenProps(input) });
|
|
16442
17087
|
case "deposit-options":
|
|
16443
17088
|
return /* @__PURE__ */ jsxRuntime.jsx(DepositOptionsScreen, { ...buildDepositOptionsScreenProps(input) });
|
|
17089
|
+
case "welcome-back":
|
|
17090
|
+
return /* @__PURE__ */ jsxRuntime.jsx(WelcomeBackScreen, { ...buildWelcomeBackScreenProps(input) });
|
|
16444
17091
|
case "wallet-picker":
|
|
16445
17092
|
return /* @__PURE__ */ jsxRuntime.jsx(WalletPickerScreen, { ...buildWalletPickerScreenProps(input) });
|
|
16446
17093
|
case "open-wallet":
|
|
@@ -19767,6 +20414,7 @@ function BlinkPaymentInner({
|
|
|
19767
20414
|
onCommitTokenAuthorization: provider.handleCommitTokenAuthorization,
|
|
19768
20415
|
onLogin: () => dispatch({ type: "REQUEST_LOGIN" }),
|
|
19769
20416
|
onCancelLogin: () => dispatch({ type: "CANCEL_LOGIN_REQUEST" }),
|
|
20417
|
+
onAcknowledgeWelcomeBack: () => dispatch({ type: "ACKNOWLEDGE_WELCOME_BACK" }),
|
|
19770
20418
|
onSetDepositToken: handleSetDepositToken,
|
|
19771
20419
|
onConfirmSetupDeposit: handleConfirmSetupDeposit,
|
|
19772
20420
|
onAmountInput: (value) => dispatch({ type: "SET_AMOUNT_INPUT", value }),
|
|
@@ -19884,6 +20532,7 @@ exports.InfoBanner = InfoBanner;
|
|
|
19884
20532
|
exports.LOGIN_KEY_ILLUSTRATION = LOGIN_KEY_ILLUSTRATION;
|
|
19885
20533
|
exports.LinkTokensScreen = LinkTokensScreen;
|
|
19886
20534
|
exports.LoginScreen = LoginScreen;
|
|
20535
|
+
exports.ManualTransferPasskeyScreen = ManualTransferPasskeyScreen;
|
|
19887
20536
|
exports.OpenWalletScreen = OpenWalletScreen;
|
|
19888
20537
|
exports.OtpVerifyScreen = OtpVerifyScreen;
|
|
19889
20538
|
exports.OutlineButton = OutlineButton;
|
|
@@ -19905,6 +20554,7 @@ exports.SuccessScreen = SuccessScreen;
|
|
|
19905
20554
|
exports.TokenPickerScreen = TokenPickerScreen;
|
|
19906
20555
|
exports.VerifyPasskeyScreen = VerifyPasskeyScreen;
|
|
19907
20556
|
exports.WalletPickerScreen = WalletPickerScreen;
|
|
20557
|
+
exports.WelcomeBackScreen = WelcomeBackScreen;
|
|
19908
20558
|
exports.appendDebug = appendDebug;
|
|
19909
20559
|
exports.blinkApi = api_exports;
|
|
19910
20560
|
exports.clearDebugEntries = clearDebugEntries;
|