@swype-org/react-sdk 0.2.297 → 0.2.303
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 +505 -312
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -5
- package/dist/index.d.ts +41 -5
- package/dist/index.js +505 -313
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -65,6 +65,7 @@ var darkTheme = {
|
|
|
65
65
|
accent: "#B2FF93",
|
|
66
66
|
accentHover: "#8FD974",
|
|
67
67
|
accentText: "#1B4332",
|
|
68
|
+
highlight: "#B2FF93",
|
|
68
69
|
success: "#0f9d73",
|
|
69
70
|
successBg: "#0f2f2a",
|
|
70
71
|
error: "#d46a72",
|
|
@@ -96,6 +97,7 @@ var lightTheme = {
|
|
|
96
97
|
accent: "#B2FF93",
|
|
97
98
|
accentHover: "#8FD974",
|
|
98
99
|
accentText: "#1B4332",
|
|
100
|
+
highlight: "#B2FF93",
|
|
99
101
|
success: "#0f9d73",
|
|
100
102
|
successBg: "#e6f7f1",
|
|
101
103
|
error: "#ce6670",
|
|
@@ -137,6 +139,8 @@ var lightThemeNew = {
|
|
|
137
139
|
accent: "#000000",
|
|
138
140
|
accentHover: "#1a1a1a",
|
|
139
141
|
accentText: "#fafafa",
|
|
142
|
+
// Figma `accent` token (#eaff03) — the lime "0% FEES" chip.
|
|
143
|
+
highlight: "#eaff03",
|
|
140
144
|
success: "#0f9d73",
|
|
141
145
|
successBg: "#e6f7f1",
|
|
142
146
|
error: "#ce6670",
|
|
@@ -8417,12 +8421,32 @@ function PrimaryButton({
|
|
|
8417
8421
|
icon,
|
|
8418
8422
|
progress,
|
|
8419
8423
|
progressText,
|
|
8420
|
-
progressPaused
|
|
8424
|
+
progressPaused,
|
|
8425
|
+
spinnerOnly
|
|
8421
8426
|
}) {
|
|
8422
8427
|
const { tokens } = useBlinkConfig();
|
|
8423
8428
|
const inProgress = progress != null;
|
|
8424
8429
|
const isDisabled = disabled || loading || inProgress;
|
|
8425
8430
|
const done = inProgress && progress >= 1;
|
|
8431
|
+
if (spinnerOnly) {
|
|
8432
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8433
|
+
"button",
|
|
8434
|
+
{
|
|
8435
|
+
type: "button",
|
|
8436
|
+
disabled: true,
|
|
8437
|
+
"aria-label": "Please wait",
|
|
8438
|
+
style: buttonStyle2(tokens, { disabled: false, loading: true }),
|
|
8439
|
+
children: [
|
|
8440
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, style: inlineSpinnerStyle(tokens.accentText) }),
|
|
8441
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
8442
|
+
@keyframes blink-spin {
|
|
8443
|
+
to { transform: rotate(360deg); }
|
|
8444
|
+
}
|
|
8445
|
+
` })
|
|
8446
|
+
]
|
|
8447
|
+
}
|
|
8448
|
+
);
|
|
8449
|
+
}
|
|
8426
8450
|
if (inProgress) {
|
|
8427
8451
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8428
8452
|
"button",
|
|
@@ -8549,6 +8573,15 @@ var buttonStyle2 = (tokens, state) => {
|
|
|
8549
8573
|
gap: 8
|
|
8550
8574
|
};
|
|
8551
8575
|
};
|
|
8576
|
+
var inlineSpinnerStyle = (color) => ({
|
|
8577
|
+
width: 20,
|
|
8578
|
+
height: 20,
|
|
8579
|
+
border: `2px solid ${color}44`,
|
|
8580
|
+
borderTopColor: color,
|
|
8581
|
+
borderRadius: "50%",
|
|
8582
|
+
animation: "blink-spin 0.9s linear infinite",
|
|
8583
|
+
flexShrink: 0
|
|
8584
|
+
});
|
|
8552
8585
|
var iconWrapStyle = {
|
|
8553
8586
|
display: "flex",
|
|
8554
8587
|
alignItems: "center"
|
|
@@ -10665,269 +10698,288 @@ var avatarStyle = (tokens) => ({
|
|
|
10665
10698
|
color: tokens.textMuted,
|
|
10666
10699
|
background: "transparent"
|
|
10667
10700
|
});
|
|
10668
|
-
|
|
10701
|
+
|
|
10702
|
+
// src/deviceBiometricUnlockText.ts
|
|
10703
|
+
var FALLBACK = "Biometric verification";
|
|
10704
|
+
function getDeviceBiometricUnlockText() {
|
|
10705
|
+
const ua = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
|
|
10706
|
+
if (/iPhone|iPad|iPod/i.test(ua)) {
|
|
10707
|
+
return "Face ID";
|
|
10708
|
+
}
|
|
10709
|
+
if (/Android/i.test(ua)) {
|
|
10710
|
+
return "Fingerprint or face unlock";
|
|
10711
|
+
}
|
|
10712
|
+
if (/Windows NT/i.test(ua)) {
|
|
10713
|
+
return "Windows Hello";
|
|
10714
|
+
}
|
|
10715
|
+
if (/Macintosh|Mac OS X/i.test(ua)) {
|
|
10716
|
+
return "Touch ID";
|
|
10717
|
+
}
|
|
10718
|
+
return FALLBACK;
|
|
10719
|
+
}
|
|
10720
|
+
var CLUSTER_LOGOS = [
|
|
10721
|
+
METAMASK_LOGO,
|
|
10722
|
+
PHANTOM_LOGO,
|
|
10723
|
+
RABBY_LOGO,
|
|
10724
|
+
OKX_WALLET_LOGO,
|
|
10725
|
+
TRUST_WALLET_LOGO,
|
|
10726
|
+
BASE_LOGO
|
|
10727
|
+
];
|
|
10669
10728
|
function DepositOptionsScreen({
|
|
10670
|
-
onFromWallet,
|
|
10671
10729
|
onToAddress,
|
|
10672
10730
|
onSignInWithBlink,
|
|
10673
10731
|
onClose
|
|
10674
10732
|
}) {
|
|
10675
10733
|
const { tokens } = useBlinkConfig();
|
|
10676
|
-
const
|
|
10677
|
-
|
|
10678
|
-
{
|
|
10679
|
-
|
|
10680
|
-
|
|
10681
|
-
|
|
10682
|
-
style: closeButtonStyle2(tokens),
|
|
10683
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10684
|
-
"path",
|
|
10734
|
+
const depositLabel = `Deposit with ${getDeviceBiometricUnlockText()}`;
|
|
10735
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ScreenLayout, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: sheetStyle, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle2, children: [
|
|
10736
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: headerRowStyle, children: [
|
|
10737
|
+
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle }),
|
|
10738
|
+
onClose ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
10739
|
+
"button",
|
|
10685
10740
|
{
|
|
10686
|
-
|
|
10687
|
-
|
|
10688
|
-
|
|
10689
|
-
|
|
10690
|
-
|
|
10741
|
+
type: "button",
|
|
10742
|
+
onClick: onClose,
|
|
10743
|
+
"aria-label": "Close",
|
|
10744
|
+
style: closeButtonStyle2(tokens.bgRecessed, tokens.text),
|
|
10745
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10746
|
+
"path",
|
|
10747
|
+
{
|
|
10748
|
+
d: "M6 6l12 12M18 6L6 18",
|
|
10749
|
+
stroke: "currentColor",
|
|
10750
|
+
strokeWidth: "2",
|
|
10751
|
+
strokeLinecap: "round",
|
|
10752
|
+
strokeLinejoin: "round"
|
|
10753
|
+
}
|
|
10754
|
+
) })
|
|
10691
10755
|
}
|
|
10692
|
-
)
|
|
10693
|
-
}
|
|
10694
|
-
|
|
10695
|
-
|
|
10696
|
-
|
|
10697
|
-
|
|
10698
|
-
|
|
10699
|
-
children: [
|
|
10700
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10701
|
-
ScreenHeader,
|
|
10756
|
+
) : null
|
|
10757
|
+
] }),
|
|
10758
|
+
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_PASSKEY_ILLUSTRATION, alt: "", "aria-hidden": "true", style: heroStyle }),
|
|
10759
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: stackStyle, children: [
|
|
10760
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: depositPillWrapperStyle, children: [
|
|
10761
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
10762
|
+
"button",
|
|
10702
10763
|
{
|
|
10703
|
-
|
|
10704
|
-
|
|
10705
|
-
|
|
10706
|
-
|
|
10707
|
-
{
|
|
10708
|
-
|
|
10709
|
-
|
|
10710
|
-
|
|
10711
|
-
|
|
10712
|
-
|
|
10764
|
+
type: "button",
|
|
10765
|
+
onClick: onSignInWithBlink,
|
|
10766
|
+
style: depositPillStyle(tokens.accent),
|
|
10767
|
+
children: [
|
|
10768
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: depositPillLabelStyle(tokens.accentText), children: depositLabel }),
|
|
10769
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: clusterStyle, children: CLUSTER_LOGOS.map((logo, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
10770
|
+
"span",
|
|
10771
|
+
{
|
|
10772
|
+
style: clusterChipStyle(tokens.bgInput, i === CLUSTER_LOGOS.length - 1),
|
|
10773
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: "", "aria-hidden": "true", style: clusterIconStyle })
|
|
10774
|
+
},
|
|
10775
|
+
logo
|
|
10776
|
+
)) })
|
|
10777
|
+
]
|
|
10713
10778
|
}
|
|
10714
10779
|
),
|
|
10715
|
-
/* @__PURE__ */ jsxRuntime.
|
|
10716
|
-
|
|
10717
|
-
|
|
10718
|
-
|
|
10719
|
-
|
|
10720
|
-
|
|
10721
|
-
|
|
10722
|
-
|
|
10723
|
-
|
|
10724
|
-
|
|
10725
|
-
|
|
10726
|
-
|
|
10727
|
-
|
|
10728
|
-
|
|
10729
|
-
|
|
10730
|
-
|
|
10731
|
-
|
|
10732
|
-
|
|
10733
|
-
|
|
10734
|
-
|
|
10735
|
-
|
|
10736
|
-
SourceRow,
|
|
10737
|
-
{
|
|
10738
|
-
name: "Exchange",
|
|
10739
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(LinkIcon, { color: tokens.textTertiary }),
|
|
10740
|
-
disabled: true,
|
|
10741
|
-
disabledColor: tokens.textTertiary,
|
|
10742
|
-
right: /* @__PURE__ */ jsxRuntime.jsx(ComingSoonBadge, { tokens })
|
|
10743
|
-
}
|
|
10744
|
-
)
|
|
10745
|
-
] })
|
|
10746
|
-
] })
|
|
10747
|
-
]
|
|
10748
|
-
}
|
|
10749
|
-
);
|
|
10750
|
-
}
|
|
10751
|
-
function DepositTypeToggle({ tokens }) {
|
|
10752
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
10753
|
-
}
|
|
10754
|
-
function ComingSoonBadge({ tokens }) {
|
|
10755
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: comingSoonBadgeStyle(tokens.bgRecessed, tokens.textMuted), children: "Coming soon" });
|
|
10756
|
-
}
|
|
10757
|
-
function WalletIcon({ color }) {
|
|
10758
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
10759
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10760
|
-
"path",
|
|
10761
|
-
{
|
|
10762
|
-
d: "M3 9.5a3 3 0 013-3h12a3 3 0 013 3v8a3 3 0 01-3 3H6a3 3 0 01-3-3v-8z",
|
|
10763
|
-
stroke: color,
|
|
10764
|
-
strokeWidth: "1.6"
|
|
10765
|
-
}
|
|
10766
|
-
),
|
|
10767
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10768
|
-
"path",
|
|
10769
|
-
{
|
|
10770
|
-
d: "M16 4.5l-9 2",
|
|
10771
|
-
stroke: color,
|
|
10772
|
-
strokeWidth: "1.6",
|
|
10773
|
-
strokeLinecap: "round"
|
|
10774
|
-
}
|
|
10775
|
-
),
|
|
10776
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "17.25", cy: "13.5", r: "1.1", fill: color })
|
|
10777
|
-
] });
|
|
10778
|
-
}
|
|
10779
|
-
function AddressIcon({ color }) {
|
|
10780
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
10781
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
10782
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "6", width: "2", height: "2", fill: color }),
|
|
10783
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
10784
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "16", y: "6", width: "2", height: "2", fill: color }),
|
|
10785
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "13.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
10786
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "16", width: "2", height: "2", fill: color }),
|
|
10787
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "13.5", width: "2.5", height: "2.5", fill: color }),
|
|
10788
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "13.5", width: "2.5", height: "2.5", fill: color }),
|
|
10789
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "18", width: "2.5", height: "2.5", fill: color }),
|
|
10790
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "18", width: "2.5", height: "2.5", fill: color })
|
|
10791
|
-
] });
|
|
10780
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: feesBadgeStyle(tokens.highlight, tokens.text), children: "0% FEES" })
|
|
10781
|
+
] }),
|
|
10782
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: dividerRowStyle, children: [
|
|
10783
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: dividerRuleStyle(tokens.textTertiary) }),
|
|
10784
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: dividerLabelStyle(tokens.textTertiary), children: "OR" }),
|
|
10785
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: dividerRuleStyle(tokens.textTertiary) })
|
|
10786
|
+
] }),
|
|
10787
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
10788
|
+
"button",
|
|
10789
|
+
{
|
|
10790
|
+
type: "button",
|
|
10791
|
+
onClick: onToAddress,
|
|
10792
|
+
style: manualRowStyle(tokens.bgCardTranslucent),
|
|
10793
|
+
children: [
|
|
10794
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: manualLabelStyle(tokens.text), children: "Send Crypto Manually" }),
|
|
10795
|
+
/* @__PURE__ */ jsxRuntime.jsx(QrIcon, { color: tokens.text })
|
|
10796
|
+
]
|
|
10797
|
+
}
|
|
10798
|
+
)
|
|
10799
|
+
] })
|
|
10800
|
+
] }) }) });
|
|
10792
10801
|
}
|
|
10793
|
-
function
|
|
10794
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
10795
|
-
"
|
|
10802
|
+
function QrIcon({ color }) {
|
|
10803
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10804
|
+
"svg",
|
|
10796
10805
|
{
|
|
10797
|
-
|
|
10798
|
-
|
|
10806
|
+
width: "24",
|
|
10807
|
+
height: "24",
|
|
10808
|
+
viewBox: "0 0 24 24",
|
|
10809
|
+
fill: "none",
|
|
10799
10810
|
"aria-hidden": "true",
|
|
10800
|
-
style:
|
|
10811
|
+
style: { flexShrink: 0 },
|
|
10812
|
+
children: [
|
|
10813
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
10814
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "6", width: "2", height: "2", fill: color }),
|
|
10815
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
10816
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "16", y: "6", width: "2", height: "2", fill: color }),
|
|
10817
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "13.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
10818
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "16", width: "2", height: "2", fill: color }),
|
|
10819
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "13.5", width: "2.5", height: "2.5", fill: color }),
|
|
10820
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "13.5", width: "2.5", height: "2.5", fill: color }),
|
|
10821
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13.5", y: "18", width: "2.5", height: "2.5", fill: color }),
|
|
10822
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "18", width: "2.5", height: "2.5", fill: color })
|
|
10823
|
+
]
|
|
10801
10824
|
}
|
|
10802
10825
|
);
|
|
10803
10826
|
}
|
|
10804
|
-
|
|
10805
|
-
|
|
10806
|
-
|
|
10807
|
-
|
|
10808
|
-
|
|
10809
|
-
|
|
10810
|
-
|
|
10811
|
-
|
|
10812
|
-
|
|
10813
|
-
|
|
10814
|
-
|
|
10815
|
-
|
|
10816
|
-
|
|
10817
|
-
|
|
10818
|
-
|
|
10819
|
-
|
|
10820
|
-
|
|
10821
|
-
|
|
10822
|
-
|
|
10823
|
-
|
|
10824
|
-
|
|
10825
|
-
|
|
10826
|
-
|
|
10827
|
-
d: "M21 16v2a3 3 0 01-3 3h-2",
|
|
10828
|
-
stroke: "currentColor",
|
|
10829
|
-
strokeWidth: "1.6",
|
|
10830
|
-
strokeLinecap: "round"
|
|
10831
|
-
}
|
|
10832
|
-
),
|
|
10833
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10834
|
-
"path",
|
|
10835
|
-
{
|
|
10836
|
-
d: "M8 21H6a3 3 0 01-3-3v-2",
|
|
10837
|
-
stroke: "currentColor",
|
|
10838
|
-
strokeWidth: "1.6",
|
|
10839
|
-
strokeLinecap: "round"
|
|
10840
|
-
}
|
|
10841
|
-
),
|
|
10842
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10843
|
-
"path",
|
|
10844
|
-
{
|
|
10845
|
-
d: "M9 10v1.5",
|
|
10846
|
-
stroke: "currentColor",
|
|
10847
|
-
strokeWidth: "1.6",
|
|
10848
|
-
strokeLinecap: "round"
|
|
10849
|
-
}
|
|
10850
|
-
),
|
|
10851
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10852
|
-
"path",
|
|
10853
|
-
{
|
|
10854
|
-
d: "M15 10v1.5",
|
|
10855
|
-
stroke: "currentColor",
|
|
10856
|
-
strokeWidth: "1.6",
|
|
10857
|
-
strokeLinecap: "round"
|
|
10858
|
-
}
|
|
10859
|
-
),
|
|
10860
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10861
|
-
"path",
|
|
10862
|
-
{
|
|
10863
|
-
d: "M12 10v3.5",
|
|
10864
|
-
stroke: "currentColor",
|
|
10865
|
-
strokeWidth: "1.6",
|
|
10866
|
-
strokeLinecap: "round"
|
|
10867
|
-
}
|
|
10868
|
-
),
|
|
10869
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10870
|
-
"path",
|
|
10871
|
-
{
|
|
10872
|
-
d: "M9.5 16.25c.7.6 1.55.95 2.5.95s1.8-.35 2.5-.95",
|
|
10873
|
-
stroke: "currentColor",
|
|
10874
|
-
strokeWidth: "1.6",
|
|
10875
|
-
strokeLinecap: "round"
|
|
10876
|
-
}
|
|
10877
|
-
)
|
|
10878
|
-
] });
|
|
10879
|
-
}
|
|
10880
|
-
var wordmarkStyle = {
|
|
10881
|
-
height: 20,
|
|
10827
|
+
var sheetStyle = {
|
|
10828
|
+
position: "relative",
|
|
10829
|
+
minHeight: "100%",
|
|
10830
|
+
display: "flex",
|
|
10831
|
+
flexDirection: "column",
|
|
10832
|
+
boxSizing: "border-box"
|
|
10833
|
+
};
|
|
10834
|
+
var contentStyle2 = {
|
|
10835
|
+
display: "flex",
|
|
10836
|
+
flexDirection: "column",
|
|
10837
|
+
alignItems: "center",
|
|
10838
|
+
gap: 32,
|
|
10839
|
+
padding: "32px 8px"
|
|
10840
|
+
};
|
|
10841
|
+
var headerRowStyle = {
|
|
10842
|
+
display: "flex",
|
|
10843
|
+
alignItems: "center",
|
|
10844
|
+
justifyContent: "space-between",
|
|
10845
|
+
width: "100%",
|
|
10846
|
+
minHeight: 44
|
|
10847
|
+
};
|
|
10848
|
+
var wordmarkImgStyle = {
|
|
10849
|
+
height: 31,
|
|
10882
10850
|
width: "auto",
|
|
10851
|
+
display: "block"
|
|
10852
|
+
};
|
|
10853
|
+
var heroStyle = {
|
|
10854
|
+
width: 253,
|
|
10855
|
+
height: 253,
|
|
10856
|
+
maxWidth: "100%",
|
|
10883
10857
|
objectFit: "contain",
|
|
10884
10858
|
display: "block"
|
|
10885
10859
|
};
|
|
10886
|
-
var
|
|
10860
|
+
var stackStyle = {
|
|
10887
10861
|
display: "flex",
|
|
10888
10862
|
flexDirection: "column",
|
|
10889
|
-
gap:
|
|
10890
|
-
|
|
10863
|
+
gap: 16,
|
|
10864
|
+
width: "100%"
|
|
10891
10865
|
};
|
|
10892
|
-
var
|
|
10866
|
+
var depositPillWrapperStyle = {
|
|
10867
|
+
position: "relative",
|
|
10868
|
+
width: "100%",
|
|
10869
|
+
height: 71
|
|
10870
|
+
};
|
|
10871
|
+
var depositPillStyle = (bg) => ({
|
|
10893
10872
|
display: "flex",
|
|
10894
|
-
|
|
10873
|
+
alignItems: "center",
|
|
10874
|
+
justifyContent: "space-between",
|
|
10875
|
+
width: "100%",
|
|
10876
|
+
height: 56,
|
|
10877
|
+
padding: "12px 12px 12px 24px",
|
|
10895
10878
|
background: bg,
|
|
10879
|
+
border: "none",
|
|
10896
10880
|
borderRadius: 28,
|
|
10897
|
-
|
|
10881
|
+
cursor: "pointer",
|
|
10882
|
+
boxSizing: "border-box",
|
|
10883
|
+
fontFamily: "inherit"
|
|
10884
|
+
});
|
|
10885
|
+
var depositPillLabelStyle = (color) => ({
|
|
10886
|
+
color,
|
|
10887
|
+
fontSize: 16,
|
|
10888
|
+
fontWeight: 500,
|
|
10889
|
+
whiteSpace: "nowrap"
|
|
10898
10890
|
});
|
|
10899
|
-
var
|
|
10891
|
+
var clusterStyle = {
|
|
10892
|
+
display: "inline-flex",
|
|
10893
|
+
alignItems: "center",
|
|
10894
|
+
isolation: "isolate"
|
|
10895
|
+
};
|
|
10896
|
+
var clusterChipStyle = (bg, last) => ({
|
|
10897
|
+
width: 32,
|
|
10898
|
+
height: 32,
|
|
10899
|
+
borderRadius: "50%",
|
|
10900
|
+
background: bg,
|
|
10901
|
+
display: "inline-flex",
|
|
10902
|
+
alignItems: "center",
|
|
10903
|
+
justifyContent: "center",
|
|
10904
|
+
marginRight: last ? 0 : -12,
|
|
10905
|
+
filter: "drop-shadow(0 0 2px rgba(0, 0, 0, 0.24))",
|
|
10906
|
+
flexShrink: 0
|
|
10907
|
+
});
|
|
10908
|
+
var clusterIconStyle = {
|
|
10909
|
+
width: 24,
|
|
10910
|
+
height: 24,
|
|
10911
|
+
borderRadius: "50%",
|
|
10912
|
+
objectFit: "cover",
|
|
10913
|
+
display: "block"
|
|
10914
|
+
};
|
|
10915
|
+
var feesBadgeStyle = (bg, color) => ({
|
|
10916
|
+
position: "absolute",
|
|
10917
|
+
left: 131,
|
|
10918
|
+
top: 45,
|
|
10900
10919
|
display: "inline-flex",
|
|
10901
10920
|
alignItems: "center",
|
|
10902
10921
|
justifyContent: "center",
|
|
10903
10922
|
background: bg,
|
|
10904
10923
|
color,
|
|
10905
|
-
fontSize:
|
|
10924
|
+
fontSize: 12,
|
|
10906
10925
|
fontWeight: 500,
|
|
10907
10926
|
lineHeight: 1,
|
|
10908
10927
|
padding: "4px 8px",
|
|
10909
|
-
borderRadius:
|
|
10910
|
-
|
|
10911
|
-
|
|
10928
|
+
borderRadius: 6,
|
|
10929
|
+
whiteSpace: "nowrap",
|
|
10930
|
+
transform: "rotate(-6.75deg)",
|
|
10931
|
+
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.16)",
|
|
10932
|
+
pointerEvents: "none"
|
|
10912
10933
|
});
|
|
10913
|
-
var
|
|
10934
|
+
var dividerRowStyle = {
|
|
10914
10935
|
display: "flex",
|
|
10915
|
-
alignItems: "center"
|
|
10936
|
+
alignItems: "center",
|
|
10937
|
+
justifyContent: "center",
|
|
10938
|
+
gap: 10,
|
|
10939
|
+
padding: "0 16px",
|
|
10940
|
+
width: "100%",
|
|
10941
|
+
boxSizing: "border-box"
|
|
10916
10942
|
};
|
|
10917
|
-
var
|
|
10918
|
-
|
|
10919
|
-
height:
|
|
10920
|
-
|
|
10921
|
-
display: "block",
|
|
10922
|
-
opacity: color.includes("rgba") ? 0.3 : 1
|
|
10943
|
+
var dividerRuleStyle = (color) => ({
|
|
10944
|
+
flex: 1,
|
|
10945
|
+
height: 1,
|
|
10946
|
+
background: color
|
|
10923
10947
|
});
|
|
10924
|
-
var
|
|
10925
|
-
|
|
10926
|
-
|
|
10948
|
+
var dividerLabelStyle = (color) => ({
|
|
10949
|
+
color,
|
|
10950
|
+
fontSize: 12,
|
|
10951
|
+
fontWeight: 500,
|
|
10952
|
+
whiteSpace: "nowrap"
|
|
10953
|
+
});
|
|
10954
|
+
var manualRowStyle = (bg) => ({
|
|
10955
|
+
display: "flex",
|
|
10956
|
+
alignItems: "center",
|
|
10957
|
+
gap: 8,
|
|
10958
|
+
width: "100%",
|
|
10959
|
+
height: 56,
|
|
10960
|
+
padding: "12px 24px",
|
|
10961
|
+
background: bg,
|
|
10962
|
+
border: "none",
|
|
10963
|
+
borderRadius: 28,
|
|
10964
|
+
cursor: "pointer",
|
|
10965
|
+
boxSizing: "border-box",
|
|
10966
|
+
fontFamily: "inherit"
|
|
10967
|
+
});
|
|
10968
|
+
var manualLabelStyle = (color) => ({
|
|
10969
|
+
flex: 1,
|
|
10970
|
+
minWidth: 0,
|
|
10971
|
+
color,
|
|
10972
|
+
fontSize: 16,
|
|
10973
|
+
fontWeight: 400
|
|
10974
|
+
});
|
|
10975
|
+
var closeButtonStyle2 = (bg, color) => ({
|
|
10976
|
+
flexShrink: 0,
|
|
10977
|
+
width: 44,
|
|
10978
|
+
height: 44,
|
|
10927
10979
|
borderRadius: "50%",
|
|
10928
10980
|
border: "none",
|
|
10929
|
-
background:
|
|
10930
|
-
color
|
|
10981
|
+
background: bg,
|
|
10982
|
+
color,
|
|
10931
10983
|
display: "flex",
|
|
10932
10984
|
alignItems: "center",
|
|
10933
10985
|
justifyContent: "center",
|
|
@@ -11283,7 +11335,7 @@ function PasskeyPopupWelcomeScreen({
|
|
|
11283
11335
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle6, children: [
|
|
11284
11336
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockupStyle, children: [
|
|
11285
11337
|
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_LOGO, alt: "", "aria-hidden": true, style: lockupMarkStyle }),
|
|
11286
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { style:
|
|
11338
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: wordmarkStyle(tokens.text), children: "Blink" })
|
|
11287
11339
|
] }),
|
|
11288
11340
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: illustrationFrameStyle, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11289
11341
|
"img",
|
|
@@ -11340,7 +11392,7 @@ var lockupMarkStyle = {
|
|
|
11340
11392
|
height: 24,
|
|
11341
11393
|
display: "block"
|
|
11342
11394
|
};
|
|
11343
|
-
var
|
|
11395
|
+
var wordmarkStyle = (color) => ({
|
|
11344
11396
|
fontSize: "1.45rem",
|
|
11345
11397
|
fontWeight: 500,
|
|
11346
11398
|
letterSpacing: "-0.03em",
|
|
@@ -11789,7 +11841,7 @@ function WalletPickerScreen({
|
|
|
11789
11841
|
),
|
|
11790
11842
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { style: titleStyle3(tokens.text), children: "Link wallet" }),
|
|
11791
11843
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle5(tokens), children: error }),
|
|
11792
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: sheetStackStyle, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style:
|
|
11844
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: sheetStackStyle, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: cardStyle(tokens.bgCardTranslucent), children: showOtherWallets ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
11793
11845
|
OtherWalletsPanel,
|
|
11794
11846
|
{
|
|
11795
11847
|
wallets: filteredReownWallets,
|
|
@@ -12012,7 +12064,7 @@ var sheetStackStyle = {
|
|
|
12012
12064
|
flexDirection: "column",
|
|
12013
12065
|
gap: 16
|
|
12014
12066
|
};
|
|
12015
|
-
var
|
|
12067
|
+
var cardStyle = (bg) => ({
|
|
12016
12068
|
display: "flex",
|
|
12017
12069
|
flexDirection: "column",
|
|
12018
12070
|
background: bg,
|
|
@@ -12165,7 +12217,7 @@ function LinkTokensScreen({
|
|
|
12165
12217
|
{
|
|
12166
12218
|
onBack,
|
|
12167
12219
|
onLogout,
|
|
12168
|
-
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style:
|
|
12220
|
+
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle2 })
|
|
12169
12221
|
}
|
|
12170
12222
|
),
|
|
12171
12223
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle9, children: [
|
|
@@ -12231,7 +12283,7 @@ var contentStyle9 = {
|
|
|
12231
12283
|
minHeight: 0,
|
|
12232
12284
|
width: "100%"
|
|
12233
12285
|
};
|
|
12234
|
-
var
|
|
12286
|
+
var wordmarkImgStyle2 = {
|
|
12235
12287
|
height: 22,
|
|
12236
12288
|
width: "auto",
|
|
12237
12289
|
display: "block",
|
|
@@ -12555,7 +12607,7 @@ function SelectDepositSourceScreen({
|
|
|
12555
12607
|
label: "Send manually",
|
|
12556
12608
|
color: tokens.text,
|
|
12557
12609
|
onClick: onSendManually,
|
|
12558
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12610
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(QrIcon2, { color: tokens.text })
|
|
12559
12611
|
}
|
|
12560
12612
|
),
|
|
12561
12613
|
onAddProvider && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -12564,7 +12616,7 @@ function SelectDepositSourceScreen({
|
|
|
12564
12616
|
label: "Link Wallet",
|
|
12565
12617
|
color: tokens.text,
|
|
12566
12618
|
onClick: onAddProvider,
|
|
12567
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12619
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(WalletIcon, {})
|
|
12568
12620
|
}
|
|
12569
12621
|
)
|
|
12570
12622
|
] })
|
|
@@ -12649,12 +12701,23 @@ function ActionRow({
|
|
|
12649
12701
|
onClick,
|
|
12650
12702
|
icon
|
|
12651
12703
|
}) {
|
|
12652
|
-
|
|
12653
|
-
|
|
12654
|
-
|
|
12655
|
-
|
|
12704
|
+
const [hovered, setHovered] = react.useState(false);
|
|
12705
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12706
|
+
"button",
|
|
12707
|
+
{
|
|
12708
|
+
type: "button",
|
|
12709
|
+
onClick,
|
|
12710
|
+
onMouseEnter: () => setHovered(true),
|
|
12711
|
+
onMouseLeave: () => setHovered(false),
|
|
12712
|
+
style: actionRowStyle(color, hovered),
|
|
12713
|
+
children: [
|
|
12714
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: actionIconSlotStyle, children: icon }),
|
|
12715
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: actionLabelStyle, children: label })
|
|
12716
|
+
]
|
|
12717
|
+
}
|
|
12718
|
+
);
|
|
12656
12719
|
}
|
|
12657
|
-
function
|
|
12720
|
+
function QrIcon2({ color }) {
|
|
12658
12721
|
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
12659
12722
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3.5", y: "3.5", width: "7", height: "7", rx: "1", stroke: color, strokeWidth: "1.4" }),
|
|
12660
12723
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "6", width: "2", height: "2", fill: color }),
|
|
@@ -12668,7 +12731,7 @@ function QrIcon({ color }) {
|
|
|
12668
12731
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "18", y: "18", width: "2.5", height: "2.5", fill: color })
|
|
12669
12732
|
] });
|
|
12670
12733
|
}
|
|
12671
|
-
function
|
|
12734
|
+
function WalletIcon() {
|
|
12672
12735
|
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
12673
12736
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12674
12737
|
"path",
|
|
@@ -12686,13 +12749,13 @@ function WalletIcon2() {
|
|
|
12686
12749
|
)
|
|
12687
12750
|
] });
|
|
12688
12751
|
}
|
|
12689
|
-
var actionRowStyle = (color) => ({
|
|
12752
|
+
var actionRowStyle = (color, hovered) => ({
|
|
12690
12753
|
display: "flex",
|
|
12691
12754
|
alignItems: "center",
|
|
12692
12755
|
gap: 8,
|
|
12693
12756
|
width: "100%",
|
|
12694
12757
|
padding: 4,
|
|
12695
|
-
background: "transparent",
|
|
12758
|
+
background: hovered ? "rgba(255,255,255,0.24)" : "transparent",
|
|
12696
12759
|
border: "none",
|
|
12697
12760
|
borderRadius: 56,
|
|
12698
12761
|
color,
|
|
@@ -12700,6 +12763,7 @@ var actionRowStyle = (color) => ({
|
|
|
12700
12763
|
fontFamily: "inherit",
|
|
12701
12764
|
textAlign: "left",
|
|
12702
12765
|
outline: "none",
|
|
12766
|
+
transition: "background 0.15s ease",
|
|
12703
12767
|
boxSizing: "border-box"
|
|
12704
12768
|
});
|
|
12705
12769
|
var actionIconSlotStyle = {
|
|
@@ -12874,7 +12938,7 @@ function DepositScreen({
|
|
|
12874
12938
|
onClick: () => onDeposit(amount),
|
|
12875
12939
|
disabled: !canDeposit,
|
|
12876
12940
|
loading: processing,
|
|
12877
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12941
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(FaceIdIcon2, {}),
|
|
12878
12942
|
children: "Deposit"
|
|
12879
12943
|
}
|
|
12880
12944
|
);
|
|
@@ -13022,7 +13086,7 @@ function DepositScreen({
|
|
|
13022
13086
|
) : /* @__PURE__ */ jsxRuntime.jsx("span", { style: redesignNoFeesStyle(tokens.text), children: "No fees" }) }),
|
|
13023
13087
|
showHeroPresets && presetsRow
|
|
13024
13088
|
] }),
|
|
13025
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: bannerSlotStyle2, children: showLowFunds ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
13089
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: bannerSlotStyle2, children: mobileEntryWithKeypad ? null : showLowFunds ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
13026
13090
|
NotificationBanner,
|
|
13027
13091
|
{
|
|
13028
13092
|
variant: "negative",
|
|
@@ -13044,7 +13108,7 @@ function DepositScreen({
|
|
|
13044
13108
|
) : error ? /* @__PURE__ */ jsxRuntime.jsx(NotificationBanner, { title: "Something went wrong", description: error }) : null })
|
|
13045
13109
|
] });
|
|
13046
13110
|
}
|
|
13047
|
-
function
|
|
13111
|
+
function FaceIdIcon2() {
|
|
13048
13112
|
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
|
|
13049
13113
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 8V6a3 3 0 013-3h2", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round" }),
|
|
13050
13114
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 3h2a3 3 0 013 3v2", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round" }),
|
|
@@ -14784,30 +14848,102 @@ var closeButtonStyle5 = (bg, color) => ({
|
|
|
14784
14848
|
padding: 0
|
|
14785
14849
|
});
|
|
14786
14850
|
var DELAYED_RETRY_VISIBLE_MS = 2e4;
|
|
14851
|
+
var SPIN_KEYFRAMES_CSS2 = `
|
|
14852
|
+
@keyframes blink-approving-spin {
|
|
14853
|
+
to { transform: rotate(360deg); }
|
|
14854
|
+
}`;
|
|
14787
14855
|
function ApprovingInWalletScreen({
|
|
14788
14856
|
tokenSymbol,
|
|
14789
14857
|
chainName,
|
|
14790
14858
|
step,
|
|
14791
14859
|
error,
|
|
14792
|
-
onRetry
|
|
14860
|
+
onRetry,
|
|
14861
|
+
onBack,
|
|
14862
|
+
onLogout
|
|
14793
14863
|
}) {
|
|
14794
|
-
const { tokens } = useBlinkConfig();
|
|
14864
|
+
const { tokens: t } = useBlinkConfig();
|
|
14795
14865
|
const showDelayedRetry = useDelayedRetry(error == null && onRetry != null);
|
|
14796
14866
|
const retryVisible = onRetry != null && (error != null || showDelayedRetry);
|
|
14797
|
-
|
|
14867
|
+
const token = tokenSymbol ?? "token";
|
|
14868
|
+
const steps = buildSteps(step, tokenSymbol, chainName);
|
|
14869
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14798
14870
|
ScreenLayout,
|
|
14799
14871
|
{
|
|
14800
|
-
|
|
14801
|
-
|
|
14802
|
-
/* @__PURE__ */ jsxRuntime.
|
|
14803
|
-
|
|
14804
|
-
|
|
14805
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockupStyle2, children: [
|
|
14806
|
-
/* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_LOGO, alt: "", "aria-hidden": true, style: lockupMarkStyle2 }),
|
|
14807
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { style: wordmarkStyle3(tokens.text), children: "Blink" })
|
|
14872
|
+
scrollableBody: false,
|
|
14873
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: footerStackStyle4, children: [
|
|
14874
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: lockBannerStyle2, children: [
|
|
14875
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: lockIconWrapStyle2(t.text), children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon3, {}) }),
|
|
14876
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { style: lockBannerTextStyle2(t.text), children: "Your passkey is required each time you deposit. Funds cannot move without your approval." })
|
|
14808
14877
|
] }),
|
|
14809
|
-
/* @__PURE__ */ jsxRuntime.
|
|
14810
|
-
|
|
14878
|
+
retryVisible ? /* @__PURE__ */ jsxRuntime.jsxs("div", { style: retryStackStyle, children: [
|
|
14879
|
+
error && /* @__PURE__ */ jsxRuntime.jsx(InfoBanner, { children: error }),
|
|
14880
|
+
/* @__PURE__ */ jsxRuntime.jsx(OutlineButton, { onClick: onRetry, children: "Retry" })
|
|
14881
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(PrimaryButton, { spinnerOnly: true })
|
|
14882
|
+
] }),
|
|
14883
|
+
children: [
|
|
14884
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14885
|
+
ScreenHeader,
|
|
14886
|
+
{
|
|
14887
|
+
onBack,
|
|
14888
|
+
onLogout,
|
|
14889
|
+
center: /* @__PURE__ */ jsxRuntime.jsx("img", { src: BLINK_WORDMARK, alt: "Blink", style: wordmarkImgStyle3 })
|
|
14890
|
+
}
|
|
14891
|
+
),
|
|
14892
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle15, children: [
|
|
14893
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle13(t.text), children: `Authorizing ${token} for passkey deposits` }),
|
|
14894
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: cardStyle2(t.bgRecessed, t.radiusLg), children: [
|
|
14895
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: SPIN_KEYFRAMES_CSS2 }),
|
|
14896
|
+
steps.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx(ChecklistRow, { step: s }, i))
|
|
14897
|
+
] })
|
|
14898
|
+
] })
|
|
14899
|
+
]
|
|
14900
|
+
}
|
|
14901
|
+
);
|
|
14902
|
+
}
|
|
14903
|
+
function ChecklistRow({ step }) {
|
|
14904
|
+
const { tokens: t } = useBlinkConfig();
|
|
14905
|
+
const isComplete = step.status === "complete";
|
|
14906
|
+
const isActive = step.status === "active";
|
|
14907
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: rowStyle6, children: [
|
|
14908
|
+
isComplete ? /* @__PURE__ */ jsxRuntime.jsx("span", { style: completeBadgeStyle(t.accent), children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14909
|
+
"path",
|
|
14910
|
+
{
|
|
14911
|
+
d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z",
|
|
14912
|
+
fill: t.accentText
|
|
14913
|
+
}
|
|
14914
|
+
) }) }) : isActive ? /* @__PURE__ */ jsxRuntime.jsx(RowSpinner, { color: t.accent }) : /* @__PURE__ */ jsxRuntime.jsx("span", { style: pendingBadgeStyle(t.bgRecessed) }),
|
|
14915
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: labelStyle7(isComplete || isActive ? t.text : t.textMuted), children: step.label })
|
|
14916
|
+
] });
|
|
14917
|
+
}
|
|
14918
|
+
function RowSpinner({ color }) {
|
|
14919
|
+
const size = 24;
|
|
14920
|
+
const stroke = 2;
|
|
14921
|
+
const r = (size - stroke) / 2;
|
|
14922
|
+
const c = size / 2;
|
|
14923
|
+
const circumference = 2 * Math.PI * r;
|
|
14924
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14925
|
+
"div",
|
|
14926
|
+
{
|
|
14927
|
+
role: "status",
|
|
14928
|
+
"aria-label": "Loading",
|
|
14929
|
+
style: {
|
|
14930
|
+
width: size,
|
|
14931
|
+
height: size,
|
|
14932
|
+
flexShrink: 0,
|
|
14933
|
+
animation: "blink-approving-spin 0.9s linear infinite"
|
|
14934
|
+
},
|
|
14935
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14936
|
+
"circle",
|
|
14937
|
+
{
|
|
14938
|
+
cx: c,
|
|
14939
|
+
cy: c,
|
|
14940
|
+
r,
|
|
14941
|
+
stroke: color,
|
|
14942
|
+
strokeWidth: stroke,
|
|
14943
|
+
strokeLinecap: "round",
|
|
14944
|
+
strokeDasharray: `${circumference * 0.25} ${circumference}`
|
|
14945
|
+
}
|
|
14946
|
+
) })
|
|
14811
14947
|
}
|
|
14812
14948
|
);
|
|
14813
14949
|
}
|
|
@@ -14836,50 +14972,124 @@ function useDelayedRetry(enabled) {
|
|
|
14836
14972
|
}, [enabled]);
|
|
14837
14973
|
return visible;
|
|
14838
14974
|
}
|
|
14975
|
+
function LockIcon3() {
|
|
14976
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14977
|
+
"path",
|
|
14978
|
+
{
|
|
14979
|
+
d: "M7 10V8a5 5 0 0 1 10 0v2m-12 0h14a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1z",
|
|
14980
|
+
stroke: "currentColor",
|
|
14981
|
+
strokeWidth: "2",
|
|
14982
|
+
strokeLinecap: "round",
|
|
14983
|
+
strokeLinejoin: "round"
|
|
14984
|
+
}
|
|
14985
|
+
) });
|
|
14986
|
+
}
|
|
14987
|
+
var wordmarkImgStyle3 = {
|
|
14988
|
+
height: 22,
|
|
14989
|
+
width: "auto",
|
|
14990
|
+
display: "block",
|
|
14991
|
+
pointerEvents: "none",
|
|
14992
|
+
userSelect: "none"
|
|
14993
|
+
};
|
|
14839
14994
|
var contentStyle15 = {
|
|
14995
|
+
display: "flex",
|
|
14996
|
+
flexDirection: "column",
|
|
14997
|
+
alignItems: "center",
|
|
14998
|
+
gap: 16,
|
|
14999
|
+
paddingTop: 8,
|
|
14840
15000
|
flex: 1,
|
|
14841
15001
|
minHeight: 0,
|
|
15002
|
+
width: "100%"
|
|
15003
|
+
};
|
|
15004
|
+
var headingStyle13 = (color) => ({
|
|
15005
|
+
fontSize: 24,
|
|
15006
|
+
fontWeight: 700,
|
|
15007
|
+
lineHeight: "normal",
|
|
15008
|
+
letterSpacing: 0,
|
|
15009
|
+
color,
|
|
15010
|
+
margin: 0,
|
|
15011
|
+
textAlign: "center"
|
|
15012
|
+
});
|
|
15013
|
+
var cardStyle2 = (bg, radius) => ({
|
|
15014
|
+
background: bg,
|
|
15015
|
+
borderRadius: radius,
|
|
15016
|
+
padding: 8,
|
|
15017
|
+
width: "100%",
|
|
15018
|
+
boxSizing: "border-box",
|
|
14842
15019
|
display: "flex",
|
|
14843
15020
|
flexDirection: "column",
|
|
15021
|
+
gap: 4
|
|
15022
|
+
});
|
|
15023
|
+
var rowStyle6 = {
|
|
15024
|
+
display: "flex",
|
|
14844
15025
|
alignItems: "center",
|
|
15026
|
+
gap: 16,
|
|
15027
|
+
padding: "12px 16px 12px 12px",
|
|
15028
|
+
borderRadius: 16,
|
|
14845
15029
|
width: "100%",
|
|
14846
|
-
|
|
14847
|
-
// 32px Figma gutter, with 32px above the logo and a 32px gap to the checklist.
|
|
14848
|
-
padding: "32px 8px 0",
|
|
14849
|
-
gap: 32
|
|
15030
|
+
boxSizing: "border-box"
|
|
14850
15031
|
};
|
|
14851
|
-
var
|
|
14852
|
-
|
|
15032
|
+
var completeBadgeStyle = (color) => ({
|
|
15033
|
+
width: 24,
|
|
15034
|
+
height: 24,
|
|
15035
|
+
borderRadius: "50%",
|
|
15036
|
+
background: color,
|
|
15037
|
+
display: "inline-flex",
|
|
14853
15038
|
alignItems: "center",
|
|
14854
|
-
|
|
15039
|
+
justifyContent: "center",
|
|
14855
15040
|
flexShrink: 0
|
|
14856
|
-
};
|
|
14857
|
-
var
|
|
15041
|
+
});
|
|
15042
|
+
var pendingBadgeStyle = (color) => ({
|
|
14858
15043
|
width: 24,
|
|
14859
15044
|
height: 24,
|
|
14860
|
-
|
|
14861
|
-
|
|
14862
|
-
|
|
14863
|
-
|
|
14864
|
-
|
|
14865
|
-
|
|
14866
|
-
|
|
15045
|
+
borderRadius: "50%",
|
|
15046
|
+
background: color,
|
|
15047
|
+
flexShrink: 0
|
|
15048
|
+
});
|
|
15049
|
+
var labelStyle7 = (color) => ({
|
|
15050
|
+
fontSize: "1rem",
|
|
15051
|
+
fontWeight: 400,
|
|
15052
|
+
lineHeight: 1.25,
|
|
14867
15053
|
color
|
|
14868
15054
|
});
|
|
14869
|
-
var
|
|
14870
|
-
flex: 1,
|
|
14871
|
-
minHeight: 0,
|
|
15055
|
+
var footerStackStyle4 = {
|
|
14872
15056
|
display: "flex",
|
|
14873
15057
|
flexDirection: "column",
|
|
14874
|
-
|
|
14875
|
-
justifyContent: "center",
|
|
15058
|
+
gap: 16,
|
|
14876
15059
|
width: "100%"
|
|
14877
15060
|
};
|
|
14878
|
-
var
|
|
15061
|
+
var retryStackStyle = {
|
|
14879
15062
|
display: "flex",
|
|
14880
15063
|
flexDirection: "column",
|
|
14881
|
-
gap: 8
|
|
15064
|
+
gap: 8,
|
|
15065
|
+
width: "100%"
|
|
14882
15066
|
};
|
|
15067
|
+
var lockBannerStyle2 = {
|
|
15068
|
+
display: "flex",
|
|
15069
|
+
alignItems: "flex-start",
|
|
15070
|
+
gap: 16,
|
|
15071
|
+
padding: "12px 16px 12px 12px",
|
|
15072
|
+
borderRadius: 16,
|
|
15073
|
+
width: "100%",
|
|
15074
|
+
boxSizing: "border-box"
|
|
15075
|
+
};
|
|
15076
|
+
var lockIconWrapStyle2 = (color) => ({
|
|
15077
|
+
flexShrink: 0,
|
|
15078
|
+
width: 24,
|
|
15079
|
+
height: 24,
|
|
15080
|
+
display: "inline-flex",
|
|
15081
|
+
alignItems: "center",
|
|
15082
|
+
justifyContent: "center",
|
|
15083
|
+
color
|
|
15084
|
+
});
|
|
15085
|
+
var lockBannerTextStyle2 = (color) => ({
|
|
15086
|
+
margin: 0,
|
|
15087
|
+
flex: 1,
|
|
15088
|
+
fontSize: 12,
|
|
15089
|
+
fontWeight: 500,
|
|
15090
|
+
lineHeight: "normal",
|
|
15091
|
+
color
|
|
15092
|
+
});
|
|
14883
15093
|
function ConfirmSignScreen({
|
|
14884
15094
|
walletName,
|
|
14885
15095
|
chainFamily,
|
|
@@ -14908,7 +15118,7 @@ function ConfirmSignScreen({
|
|
|
14908
15118
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onLogout }),
|
|
14909
15119
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle16, children: [
|
|
14910
15120
|
logoSrc ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logoSrc, alt: displayName, style: logoStyle3 }) : /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: 48 }),
|
|
14911
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
15121
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle14(tokens.text), children: heading }),
|
|
14912
15122
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle10(tokens.textSecondary), children: subtitle }),
|
|
14913
15123
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: successBadgeStyle(tokens), children: [
|
|
14914
15124
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: checkmarkStyle, children: "\u2713" }),
|
|
@@ -14934,7 +15144,7 @@ var logoStyle3 = {
|
|
|
14934
15144
|
borderRadius: 14,
|
|
14935
15145
|
objectFit: "contain"
|
|
14936
15146
|
};
|
|
14937
|
-
var
|
|
15147
|
+
var headingStyle14 = (color) => ({
|
|
14938
15148
|
fontSize: "1.45rem",
|
|
14939
15149
|
fontWeight: 700,
|
|
14940
15150
|
letterSpacing: "-0.02em",
|
|
@@ -15296,10 +15506,10 @@ function GuestTokenPickerScreen({
|
|
|
15296
15506
|
children: [
|
|
15297
15507
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
15298
15508
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle17, children: [
|
|
15299
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
15509
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle15(tokens.text), children: title }),
|
|
15300
15510
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorBannerStyle8(tokens), children: error }),
|
|
15301
15511
|
entries2.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle11(tokens.textMuted), children: emptyMessage ?? "No tokens available." }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15302
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { style:
|
|
15512
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle8(tokens.textSecondary), children: "Token" }),
|
|
15303
15513
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15304
15514
|
"button",
|
|
15305
15515
|
{
|
|
@@ -15379,7 +15589,7 @@ var contentStyle17 = {
|
|
|
15379
15589
|
padding: "0 20px 16px",
|
|
15380
15590
|
gap: 12
|
|
15381
15591
|
};
|
|
15382
|
-
var
|
|
15592
|
+
var headingStyle15 = (color) => ({
|
|
15383
15593
|
fontSize: "1.25rem",
|
|
15384
15594
|
fontWeight: 700,
|
|
15385
15595
|
color,
|
|
@@ -15391,7 +15601,7 @@ var subtitleStyle11 = (color) => ({
|
|
|
15391
15601
|
color,
|
|
15392
15602
|
textAlign: "center"
|
|
15393
15603
|
});
|
|
15394
|
-
var
|
|
15604
|
+
var labelStyle8 = (color) => ({
|
|
15395
15605
|
fontSize: "0.75rem",
|
|
15396
15606
|
fontWeight: 600,
|
|
15397
15607
|
color,
|
|
@@ -15524,7 +15734,7 @@ function ManualTransferFlow({
|
|
|
15524
15734
|
screenContent = /* @__PURE__ */ jsxRuntime.jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsxRuntime.jsx(PrimaryButton, { onClick: onBack, children: "Back" }), children: [
|
|
15525
15735
|
/* @__PURE__ */ jsxRuntime.jsx(ScreenHeader, { onBack }),
|
|
15526
15736
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: contentStyle18, children: [
|
|
15527
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { style:
|
|
15737
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { style: headingStyle16(tokens.text), children: "Manual transfer unavailable" }),
|
|
15528
15738
|
/* @__PURE__ */ jsxRuntime.jsx("p", { style: bodyStyle5(tokens.textMuted), children: "merchantAuthorization is required." })
|
|
15529
15739
|
] })
|
|
15530
15740
|
] });
|
|
@@ -15603,7 +15813,7 @@ var contentStyle18 = {
|
|
|
15603
15813
|
paddingBottom: 24,
|
|
15604
15814
|
width: "100%"
|
|
15605
15815
|
};
|
|
15606
|
-
var
|
|
15816
|
+
var headingStyle16 = (color) => ({
|
|
15607
15817
|
color,
|
|
15608
15818
|
fontSize: "2rem",
|
|
15609
15819
|
lineHeight: 1.05,
|
|
@@ -15628,7 +15838,7 @@ function GenericLoadingShimmer() {
|
|
|
15628
15838
|
role: "status",
|
|
15629
15839
|
"aria-label": "Loading payment flow",
|
|
15630
15840
|
"aria-busy": "true",
|
|
15631
|
-
style:
|
|
15841
|
+
style: sheetStyle2(tokens),
|
|
15632
15842
|
children: [
|
|
15633
15843
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
15634
15844
|
@keyframes blink-loading-shimmer {
|
|
@@ -15674,7 +15884,7 @@ function ShimmerBlock2({
|
|
|
15674
15884
|
}
|
|
15675
15885
|
);
|
|
15676
15886
|
}
|
|
15677
|
-
var
|
|
15887
|
+
var sheetStyle2 = (tokens) => ({
|
|
15678
15888
|
display: "flex",
|
|
15679
15889
|
flexDirection: "column",
|
|
15680
15890
|
height: "100%",
|
|
@@ -15721,12 +15931,12 @@ function buildLoginScreenProps({ flow, handlers }) {
|
|
|
15721
15931
|
}
|
|
15722
15932
|
function buildDepositOptionsScreenProps({ flow, handlers }) {
|
|
15723
15933
|
return {
|
|
15724
|
-
// "
|
|
15725
|
-
// existing login path runs unchanged.
|
|
15726
|
-
onFromWallet: handlers.onLogin,
|
|
15727
|
-
// "To Address" navigates to the manual-transfer flow.
|
|
15934
|
+
// "Send Crypto Manually" navigates to the manual-transfer flow.
|
|
15728
15935
|
onToAddress: () => handlers.onSetPhase({ step: "manual-transfer" }),
|
|
15729
|
-
|
|
15936
|
+
// The primary CTA routes to the login screen (credential selection) rather
|
|
15937
|
+
// than prompting for a passkey directly, matching the connect-wallet entry
|
|
15938
|
+
// point. onLogin dispatches REQUEST_LOGIN → step 'login' → LoginScreen.
|
|
15939
|
+
onSignInWithBlink: handlers.onLogin,
|
|
15730
15940
|
// Deposit-options is the root screen for the full-widget flow, so the
|
|
15731
15941
|
// top-right (X) closes the widget through the same `onBack` the host
|
|
15732
15942
|
// provides. Falling back to `undefined` hides the close button when the
|
|
@@ -15818,7 +16028,8 @@ function buildApprovingInWalletScreenProps({
|
|
|
15818
16028
|
chainName: setupToken?.chainName ?? null,
|
|
15819
16029
|
step,
|
|
15820
16030
|
error: flow.state.error || remote.authExecutorError,
|
|
15821
|
-
onRetry: handlers.onRetryAuthorization
|
|
16031
|
+
onRetry: handlers.onRetryAuthorization,
|
|
16032
|
+
onLogout: flow.isDesktop ? handlers.onLogout : void 0
|
|
15822
16033
|
};
|
|
15823
16034
|
}
|
|
15824
16035
|
function buildLinkTokensScreenProps({
|
|
@@ -19580,25 +19791,6 @@ function BlinkPaymentInner({
|
|
|
19580
19791
|
) });
|
|
19581
19792
|
}
|
|
19582
19793
|
|
|
19583
|
-
// src/deviceBiometricUnlockText.ts
|
|
19584
|
-
var FALLBACK = "Biometric verification";
|
|
19585
|
-
function getDeviceBiometricUnlockText() {
|
|
19586
|
-
const ua = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
|
|
19587
|
-
if (/iPhone|iPad|iPod/i.test(ua)) {
|
|
19588
|
-
return "Face ID";
|
|
19589
|
-
}
|
|
19590
|
-
if (/Android/i.test(ua)) {
|
|
19591
|
-
return "Fingerprint or face unlock";
|
|
19592
|
-
}
|
|
19593
|
-
if (/Windows NT/i.test(ua)) {
|
|
19594
|
-
return "Windows Hello";
|
|
19595
|
-
}
|
|
19596
|
-
if (/Macintosh|Mac OS X/i.test(ua)) {
|
|
19597
|
-
return "Touch ID";
|
|
19598
|
-
}
|
|
19599
|
-
return FALLBACK;
|
|
19600
|
-
}
|
|
19601
|
-
|
|
19602
19794
|
exports.ACCOUNT_SWITCH_CONFLICT_MESSAGE = ACCOUNT_SWITCH_CONFLICT_MESSAGE;
|
|
19603
19795
|
exports.AdvancedSourceScreen = AdvancedSourceScreen;
|
|
19604
19796
|
exports.ApprovingInWalletScreen = ApprovingInWalletScreen;
|
|
@@ -19615,6 +19807,7 @@ exports.BlinkPayment = BlinkPayment;
|
|
|
19615
19807
|
exports.BlinkProvider = BlinkProvider;
|
|
19616
19808
|
exports.ConfirmSignScreen = ConfirmSignScreen;
|
|
19617
19809
|
exports.DepositCompleteScreen = DepositCompleteScreen;
|
|
19810
|
+
exports.DepositOptionsScreen = DepositOptionsScreen;
|
|
19618
19811
|
exports.DepositScreen = DepositScreen;
|
|
19619
19812
|
exports.DepositTransferStatusScreen = DepositTransferStatusScreen;
|
|
19620
19813
|
exports.GuestTokenPickerScreen = GuestTokenPickerScreen;
|