@swype-org/react-sdk 0.1.172 → 0.1.181

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.js CHANGED
@@ -27,9 +27,9 @@ var darkTheme = {
27
27
  textInverse: "#052027",
28
28
  border: "#2b4551",
29
29
  borderFocus: "#28b67a",
30
- accent: "#28b67a",
31
- accentHover: "#219866",
32
- accentText: "#ffffff",
30
+ accent: "#B2FF93",
31
+ accentHover: "#8FD974",
32
+ accentText: "#1B4332",
33
33
  success: "#0f9d73",
34
34
  successBg: "#0f2f2a",
35
35
  error: "#d46a72",
@@ -54,9 +54,9 @@ var lightTheme = {
54
54
  textInverse: "#ffffff",
55
55
  border: "#d2e4ea",
56
56
  borderFocus: "#28b67a",
57
- accent: "#28b67a",
58
- accentHover: "#219866",
59
- accentText: "#ffffff",
57
+ accent: "#B2FF93",
58
+ accentHover: "#8FD974",
59
+ accentText: "#1B4332",
60
60
  success: "#0f9d73",
61
61
  successBg: "#e6f7f1",
62
62
  error: "#ce6670",
@@ -2214,6 +2214,16 @@ var SWYPE_SVG = `<svg width="100" height="100" viewBox="0 0 100 100" fill="none"
2214
2214
  </defs>
2215
2215
  </svg>`;
2216
2216
  var SWYPE_LOGO = svgToDataUri(SWYPE_SVG);
2217
+ var SWYPE_MASCOT_SVG = `<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2218
+ <path d="M64.0138 36.6191C68.3952 36.7025 70.2512 42.3038 65.1932 44.0399C61.4251 44.2617 60.8419 41.8557 61.3059 38.6113C62.3258 37.4916 62.6562 37.2326 64.0138 36.6191Z" fill="#1a5c2a"/>
2219
+ <path d="M34.7441 36.6714C36.6646 36.3309 38.4839 37.6898 38.813 39.71C39.1407 41.7302 37.8542 43.6499 35.9352 43.9994C34.7427 44.2169 33.5274 43.7774 32.7154 42.8325C31.8492 41.8262 31.5728 40.4029 31.9959 39.1191C32.419 37.8367 33.4719 36.8979 34.7441 36.6714Z" fill="#1a5c2a"/>
2220
+ <path d="M37.719 72.0299C39.0372 70.605 40.611 68.9843 41.7888 67.4312L50.1528 61.6651L57.6601 61.4468C57.4965 63.5289 61.7342 75.3729 61.6981 77.5158C62.154 77.0628 63.0658 76.3318 63.567 75.9876C65.9954 74.3365 68.8384 73.8223 71.4833 74.5554C72.8167 74.9328 73.9331 75.9251 74.58 77.3075C75.2967 78.8451 75.3771 80.3207 74.9127 82.0281C73.8912 85.7844 71.5792 88.6365 68.624 90.5357C66.125 92.1415 61.7077 93.9276 58.9822 93.0828C58.078 92.7956 56.4567 92.015 55.9204 91.1399C55.1385 89.8648 54.5613 88.8907 54.1469 87.3736C53.3686 84.4709 53.3459 86.0793 52.7439 77.9085C52.8102 75.0919 52.9961 69.1199 52.9088 66.782C52.1044 67.8121 48.6686 72.1053 47.7896 73.7937L43.7186 79.5555C45.2316 79.4947 47.0626 79.5314 48.354 80.4535C49.2813 81.1277 49.9192 82.2144 50.1273 83.4755C50.2332 83.8294 50.3132 84.6855 50.3258 85.0634C50.4307 88.2051 49.4337 91.7462 46.8974 93.4764C45.8189 94.2126 44.2654 94.598 43.01 94.7341C37.9909 95.3115 33.0817 93.5835 29.3502 89.9257C28.3222 88.8994 27.4875 87.705 27.4333 86.0333C27.4046 85.1165 27.6099 84.1963 28.0241 83.3859C28.6301 82.2147 30.2471 80.3005 31.0794 79.3156C33.2057 76.7997 35.4975 74.4306 37.719 72.0299Z" fill="#4ABA5A"/>
2221
+ <path d="M25.2815 30.5666C25.6441 30.6182 25.869 30.0928 25.5864 29.8598C23.1701 27.868 21.5484 25.4469 21.0444 22.6545C20.3641 19.1251 21.516 15.5212 24.2422 12.6488C26.8514 9.91783 30.7518 8.12575 35.0552 7.68041C40.5681 7.11357 44.9544 9.44386 49.0355 11.908C49.1016 11.9479 49.1793 11.964 49.2559 11.9535L49.6641 11.8975C49.7772 11.882 49.8729 11.8099 49.9313 11.7118C50.7042 10.4132 53.3609 9.13558 54.9428 8.55183C63.274 5.47733 72.1015 8.67608 75.6217 15.0543C77.4169 18.3043 77.4637 21.9922 75.7515 25.2845C74.8719 26.99 73.8277 28.1868 72.3742 29.4156C72.1074 29.6412 72.3057 30.099 72.652 30.0534C78.3434 29.3036 83.6958 29.6535 88.1602 33.0995C88.1743 33.1104 88.1896 33.1204 88.2051 33.1289C94.9326 36.8336 95.4063 45.4019 90.8735 50.5016C88.6438 53.0434 85.3883 54.9193 81.641 55.8268C81.4786 55.8662 81.3675 56.017 81.3778 56.1837C81.627 60.2197 80.6407 63.7049 77.0957 66.8558C74.3594 69.31 72.2572 70.905 68.1242 71.1594C66.1317 71.2671 64.5824 71.0823 61.0405 69.4728C57.7759 67.9894 53.6996 61.9918 52.509 57.7058C52.4204 57.3871 51.9326 57.3204 51.7644 57.6052C49.4075 61.5961 43.2088 67.6787 38.7227 69.4728C35.1404 70.8919 32.2895 71.8779 28.5005 70.8789C24.3706 69.7951 20.9698 67.4623 19.0499 64.3964C18.0021 62.7282 16.7577 59.3144 17.4723 57.5087C17.4921 57.4587 17.5023 57.4056 17.4951 57.3522C17.4647 57.1259 17.359 56.7067 17.1377 56.6504C8.17592 54.367 2.58735 48.0815 5.03045 40.4013C6.14562 36.9784 8.95444 34.0395 12.8321 32.2381C16.7957 30.3763 20.9323 29.9475 25.2815 30.5666Z" fill="#4ABA5A"/>
2222
+ <rect x="44.3433" y="56.4863" width="10.1195" height="9.10751" fill="#4ABA5A"/>
2223
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M45.6929 25.6221C49.2323 25.6223 52.1021 31.512 52.1021 38.7773C52.102 46.0426 49.2323 51.9323 45.6929 51.9326C42.2373 51.9326 39.4213 46.3188 39.2896 39.292C41.4308 38.8166 43.9097 38.7264 46.1079 39.1299C47.0121 39.2956 47.8949 38.5389 47.4956 37.7109C46.0273 34.6668 42.4111 34.0327 39.686 34.1816C40.5942 29.1824 42.9408 25.6221 45.6929 25.6221Z" fill="#1a5c2a"/>
2224
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M63.2471 25.6216C66.7865 25.6219 69.6562 31.5116 69.6562 38.7769C69.6562 46.0422 66.7865 51.9319 63.2471 51.9321C59.7916 51.9321 56.9756 46.319 56.8438 39.2925C58.985 38.8171 61.4639 38.7259 63.6621 39.1294C64.5663 39.2952 65.4491 38.5394 65.0498 37.7114C63.5816 34.6669 59.9654 34.0322 57.2402 34.1812C58.1484 29.1821 60.4951 25.6216 63.2471 25.6216Z" fill="#1a5c2a"/>
2225
+ </svg>`;
2226
+ var SWYPE_MASCOT = svgToDataUri(SWYPE_MASCOT_SVG);
2217
2227
  var BASE_LOGO = svgToDataUri(BASE_SVG);
2218
2228
  var METAMASK_LOGO = svgToDataUri(METAMASK_SVG);
2219
2229
  var TRUST_WALLET_LOGO = svgToDataUri(TRUST_WALLET_SVG);
@@ -2241,7 +2251,7 @@ var containerStyle2 = (bg) => ({
2241
2251
  maxWidth: 420,
2242
2252
  width: "100%",
2243
2253
  margin: "0 auto",
2244
- background: bg,
2254
+ background: `linear-gradient(to top, rgba(178, 255, 147, 0.15), transparent 40%), ${bg}`,
2245
2255
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
2246
2256
  boxSizing: "border-box"
2247
2257
  });
@@ -2259,14 +2269,69 @@ var footerStyle = {
2259
2269
  paddingRight: 24,
2260
2270
  marginTop: "auto"
2261
2271
  };
2272
+ var FlowPhaseContext = createContext(null);
2273
+ function FlowPhaseProvider({
2274
+ phase,
2275
+ children
2276
+ }) {
2277
+ return /* @__PURE__ */ jsx(FlowPhaseContext.Provider, { value: phase, children });
2278
+ }
2279
+ function useFlowPhase() {
2280
+ return useContext(FlowPhaseContext);
2281
+ }
2282
+ function StepProgress({ phase }) {
2283
+ const { tokens } = useSwypeConfig();
2284
+ if (phase === "deposit") {
2285
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle3, children: [
2286
+ /* @__PURE__ */ jsx("span", { style: dotStyle(tokens.textMuted) }),
2287
+ /* @__PURE__ */ jsx("span", { style: labelStyle(tokens.textMuted), children: "Link" }),
2288
+ /* @__PURE__ */ jsx("span", { style: lineStyle(tokens.textMuted) }),
2289
+ /* @__PURE__ */ jsx("span", { style: dotStyle(tokens.accent) }),
2290
+ /* @__PURE__ */ jsx("span", { style: labelStyle(tokens.text), children: "Deposit" })
2291
+ ] });
2292
+ }
2293
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle3, children: [
2294
+ /* @__PURE__ */ jsx("span", { style: dotStyle(tokens.accent) }),
2295
+ /* @__PURE__ */ jsx("span", { style: labelStyle(tokens.text), children: "Link" }),
2296
+ /* @__PURE__ */ jsx("span", { style: lineStyle(tokens.textMuted) }),
2297
+ /* @__PURE__ */ jsx("span", { style: dotStyle(tokens.textMuted) }),
2298
+ /* @__PURE__ */ jsx("span", { style: labelStyle(tokens.textMuted), children: "Deposit" })
2299
+ ] });
2300
+ }
2301
+ var containerStyle3 = {
2302
+ display: "flex",
2303
+ alignItems: "center",
2304
+ gap: 6
2305
+ };
2306
+ var dotStyle = (color) => ({
2307
+ width: 8,
2308
+ height: 8,
2309
+ borderRadius: "50%",
2310
+ backgroundColor: color,
2311
+ flexShrink: 0
2312
+ });
2313
+ var lineStyle = (color) => ({
2314
+ width: 32,
2315
+ height: 0,
2316
+ borderTop: `2px dashed ${color}`,
2317
+ opacity: 0.4,
2318
+ flexShrink: 0
2319
+ });
2320
+ var labelStyle = (color) => ({
2321
+ fontSize: "0.82rem",
2322
+ fontWeight: 600,
2323
+ color,
2324
+ whiteSpace: "nowrap"
2325
+ });
2262
2326
  function ScreenHeader({ title, right, onBack, badge }) {
2263
2327
  const { tokens } = useSwypeConfig();
2328
+ const flowPhase = useFlowPhase();
2264
2329
  return /* @__PURE__ */ jsxs("div", { style: headerStyle, children: [
2265
2330
  /* @__PURE__ */ jsx("div", { style: leftSlotStyle, children: onBack && /* @__PURE__ */ jsx("button", { type: "button", onClick: onBack, style: backButtonStyle(tokens.text), "aria-label": "Go back", children: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M15 18l-6-6 6-6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }) }),
2266
- /* @__PURE__ */ jsxs("div", { style: centerSlotStyle, children: [
2331
+ /* @__PURE__ */ jsx("div", { style: centerSlotStyle, children: flowPhase ? /* @__PURE__ */ jsx(StepProgress, { phase: flowPhase }) : /* @__PURE__ */ jsxs(Fragment, { children: [
2267
2332
  title && /* @__PURE__ */ jsx("span", { style: titleStyle(tokens.text), children: title }),
2268
2333
  badge && /* @__PURE__ */ jsx("span", { style: badgeStyle(tokens.textMuted), children: badge })
2269
- ] }),
2334
+ ] }) }),
2270
2335
  /* @__PURE__ */ jsx("div", { style: rightSlotStyle, children: right })
2271
2336
  ] });
2272
2337
  }
@@ -2308,7 +2373,7 @@ var badgeStyle = (color) => ({
2308
2373
  });
2309
2374
  function PoweredByFooter() {
2310
2375
  const { tokens } = useSwypeConfig();
2311
- return /* @__PURE__ */ jsxs("div", { style: containerStyle3(tokens.textMuted), children: [
2376
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle4(tokens.textMuted), children: [
2312
2377
  /* @__PURE__ */ jsxs("div", { style: rowStyle, children: [
2313
2378
  /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx(
2314
2379
  "path",
@@ -2322,7 +2387,7 @@ function PoweredByFooter() {
2322
2387
  /* @__PURE__ */ jsx("span", { style: pillStyle(tokens.textMuted, tokens.border), children: "Beta Version" })
2323
2388
  ] });
2324
2389
  }
2325
- var containerStyle3 = (color) => ({
2390
+ var containerStyle4 = (color) => ({
2326
2391
  display: "flex",
2327
2392
  flexDirection: "column",
2328
2393
  alignItems: "center",
@@ -2375,7 +2440,7 @@ var buttonStyle = (tokens, disabled) => ({
2375
2440
  opacity: disabled ? 0.5 : 1,
2376
2441
  transition: "filter 0.15s ease, transform 0.15s ease",
2377
2442
  fontFamily: "inherit",
2378
- boxShadow: "0 8px 18px rgba(40, 182, 122, 0.22)",
2443
+ boxShadow: "0 8px 18px rgba(178, 255, 147, 0.35)",
2379
2444
  display: "flex",
2380
2445
  alignItems: "center",
2381
2446
  justifyContent: "center",
@@ -2421,12 +2486,12 @@ var defaultIcon = /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBo
2421
2486
  ) });
2422
2487
  function InfoBanner({ children, icon }) {
2423
2488
  const { tokens } = useSwypeConfig();
2424
- return /* @__PURE__ */ jsxs("div", { style: containerStyle4(tokens.accent), children: [
2489
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle5(tokens.accent), children: [
2425
2490
  /* @__PURE__ */ jsx("span", { style: iconStyle, children: icon ?? defaultIcon }),
2426
2491
  /* @__PURE__ */ jsx("span", { style: textStyle, children })
2427
2492
  ] });
2428
2493
  }
2429
- var containerStyle4 = (accent) => ({
2494
+ var containerStyle5 = (accent) => ({
2430
2495
  display: "flex",
2431
2496
  alignItems: "flex-start",
2432
2497
  gap: 10,
@@ -2444,7 +2509,7 @@ var iconStyle = {
2444
2509
  };
2445
2510
  var textStyle = { flex: 1 };
2446
2511
  function WarningBanner({ title, children }) {
2447
- return /* @__PURE__ */ jsxs("div", { style: containerStyle5, children: [
2512
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle6, children: [
2448
2513
  /* @__PURE__ */ jsxs("div", { style: headerStyle2, children: [
2449
2514
  /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", style: iconStyle2, children: /* @__PURE__ */ jsx("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z", fill: "#F57C00" }) }),
2450
2515
  /* @__PURE__ */ jsx("strong", { children: title })
@@ -2452,7 +2517,7 @@ function WarningBanner({ title, children }) {
2452
2517
  /* @__PURE__ */ jsx("div", { style: bodyStyle2, children })
2453
2518
  ] });
2454
2519
  }
2455
- var containerStyle5 = {
2520
+ var containerStyle6 = {
2456
2521
  padding: "14px 16px",
2457
2522
  background: "#FFF8E1",
2458
2523
  border: "1px solid #FFE082",
@@ -2531,7 +2596,7 @@ function OtpInput({ value, onChange, length = 6, disabled }) {
2531
2596
  onChange(pasted);
2532
2597
  focusInput(Math.min(pasted.length, length - 1));
2533
2598
  }, [onChange, length, focusInput]);
2534
- return /* @__PURE__ */ jsx("div", { style: containerStyle6, children: digits.map((digit, i) => /* @__PURE__ */ jsx(
2599
+ return /* @__PURE__ */ jsx("div", { style: containerStyle7, children: digits.map((digit, i) => /* @__PURE__ */ jsx(
2535
2600
  "input",
2536
2601
  {
2537
2602
  ref: (el) => {
@@ -2552,7 +2617,7 @@ function OtpInput({ value, onChange, length = 6, disabled }) {
2552
2617
  i
2553
2618
  )) });
2554
2619
  }
2555
- var containerStyle6 = {
2620
+ var containerStyle7 = {
2556
2621
  display: "flex",
2557
2622
  gap: 8,
2558
2623
  justifyContent: "center",
@@ -2943,7 +3008,7 @@ function StepList({ steps }) {
2943
3008
  }
2944
3009
  ),
2945
3010
  /* @__PURE__ */ jsxs("div", { style: labelContainerStyle, children: [
2946
- /* @__PURE__ */ jsx("span", { style: labelStyle(isComplete || isActive ? tokens.text : tokens.textMuted), children: step.label }),
3011
+ /* @__PURE__ */ jsx("span", { style: labelStyle2(isComplete || isActive ? tokens.text : tokens.textMuted), children: step.label }),
2947
3012
  step.detail && /* @__PURE__ */ jsx("span", { style: detailStyle(tokens.textMuted), children: step.detail })
2948
3013
  ] })
2949
3014
  ] }, i);
@@ -2979,7 +3044,7 @@ var labelContainerStyle = {
2979
3044
  display: "flex",
2980
3045
  flexDirection: "column"
2981
3046
  };
2982
- var labelStyle = (color) => ({
3047
+ var labelStyle2 = (color) => ({
2983
3048
  fontSize: "0.9rem",
2984
3049
  fontWeight: 500,
2985
3050
  color
@@ -3003,7 +3068,7 @@ function SettingsMenu({ onLogout }) {
3003
3068
  document.addEventListener("mousedown", handleClickOutside);
3004
3069
  return () => document.removeEventListener("mousedown", handleClickOutside);
3005
3070
  }, [open]);
3006
- return /* @__PURE__ */ jsxs("div", { ref: menuRef, style: containerStyle7, children: [
3071
+ return /* @__PURE__ */ jsxs("div", { ref: menuRef, style: containerStyle8, children: [
3007
3072
  /* @__PURE__ */ jsx("button", { type: "button", onClick: toggle, style: triggerStyle(tokens.text), "aria-label": "Settings", children: /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", children: [
3008
3073
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "5", r: "2", fill: "currentColor" }),
3009
3074
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "2", fill: "currentColor" }),
@@ -3030,7 +3095,7 @@ function SettingsMenu({ onLogout }) {
3030
3095
  ) })
3031
3096
  ] });
3032
3097
  }
3033
- var containerStyle7 = {
3098
+ var containerStyle8 = {
3034
3099
  position: "relative"
3035
3100
  };
3036
3101
  var triggerStyle = (color) => ({
@@ -3115,7 +3180,7 @@ function LoginScreen({
3115
3180
  ),
3116
3181
  /* @__PURE__ */ jsxs("div", { style: contentStyle2, children: [
3117
3182
  /* @__PURE__ */ jsx("img", { src: SWYPE_LOGO, alt: "Swype", style: logoStyle }),
3118
- /* @__PURE__ */ jsx("h2", { style: headingStyle(tokens.text), children: "Your Money.\nAny App.\nOne Tap." }),
3183
+ /* @__PURE__ */ jsx("h2", { style: headingStyle(tokens.text), children: "Your Money. Any App.\nOne Tap." }),
3119
3184
  error && /* @__PURE__ */ jsx("div", { style: errorStyle(tokens), children: error }),
3120
3185
  /* @__PURE__ */ jsx(
3121
3186
  "input",
@@ -3157,8 +3222,8 @@ var contentStyle2 = {
3157
3222
  justifyContent: "center"
3158
3223
  };
3159
3224
  var logoStyle = {
3160
- width: 56,
3161
- height: 56
3225
+ width: 50,
3226
+ height: 50
3162
3227
  };
3163
3228
  var headingStyle = (color) => ({
3164
3229
  fontSize: "1.45rem",
@@ -3796,15 +3861,12 @@ var dividerTextStyle = (color) => ({
3796
3861
  });
3797
3862
  var DEFAULT_MAX = 1e7;
3798
3863
  var ABSOLUTE_MIN = 0.01;
3864
+ var PRESETS = [100, 250, 1e3];
3799
3865
  function SetupScreen({
3800
3866
  availableBalance,
3801
- tokenCount,
3802
- sourceName,
3803
3867
  onSetupOneTap,
3804
3868
  onBack,
3805
- onLogout,
3806
3869
  onAdvanced,
3807
- selectedSourceLabel,
3808
3870
  loading,
3809
3871
  error
3810
3872
  }) {
@@ -3827,6 +3889,14 @@ function SetupScreen({
3827
3889
  }
3828
3890
  setEditing(false);
3829
3891
  }, [inputValue, effectiveMax, effectiveMin]);
3892
+ const selectPreset = (value) => {
3893
+ setLimit(Math.min(value, effectiveMax));
3894
+ };
3895
+ const selectMax = () => {
3896
+ setLimit(Math.min(availableBalance, effectiveMax));
3897
+ };
3898
+ const isPresetActive = (value) => Math.abs(limit - value) < 5e-3;
3899
+ const isMaxActive = Math.abs(limit - Math.min(availableBalance, effectiveMax)) < 5e-3 && !PRESETS.some((p) => isPresetActive(p));
3830
3900
  return /* @__PURE__ */ jsxs(
3831
3901
  ScreenLayout,
3832
3902
  {
@@ -3843,45 +3913,11 @@ function SetupScreen({
3843
3913
  /* @__PURE__ */ jsx(PoweredByFooter, {})
3844
3914
  ] }),
3845
3915
  children: [
3846
- /* @__PURE__ */ jsx(ScreenHeader, { title: "Swype Setup", onBack, right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) }),
3916
+ /* @__PURE__ */ jsx(ScreenHeader, { onBack }),
3847
3917
  /* @__PURE__ */ jsx("h2", { style: headingStyle5(tokens.text), children: "Set Spending Limit" }),
3848
3918
  error && /* @__PURE__ */ jsx("div", { style: errorBannerStyle3(tokens), children: error }),
3849
- /* @__PURE__ */ jsxs("div", { style: balanceRowStyle, children: [
3850
- /* @__PURE__ */ jsxs("div", { style: balanceLeftStyle, children: [
3851
- /* @__PURE__ */ jsx("div", { style: coinIconStyle(tokens.accent), children: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", children: [
3852
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor" }),
3853
- /* @__PURE__ */ jsx("text", { x: "12", y: "16", textAnchor: "middle", fontSize: "12", fill: "#fff", fontWeight: "700", children: "$" })
3854
- ] }) }),
3855
- /* @__PURE__ */ jsxs("div", { children: [
3856
- /* @__PURE__ */ jsx("div", { style: balanceLabelStyle(tokens.textMuted), children: "Available" }),
3857
- /* @__PURE__ */ jsxs("div", { style: balanceValueStyle(tokens.text), children: [
3858
- "$",
3859
- availableBalance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
3860
- ] })
3861
- ] })
3862
- ] }),
3863
- tokenCount > 0 && /* @__PURE__ */ jsxs(
3864
- "button",
3865
- {
3866
- type: "button",
3867
- onClick: onAdvanced,
3868
- style: tokenBadgeButtonStyle(tokens, !!onAdvanced),
3869
- children: [
3870
- /* @__PURE__ */ jsx("span", { style: tokenDotStyle(tokens.accent) }),
3871
- tokenCount,
3872
- " ",
3873
- /* @__PURE__ */ jsx("span", { style: chevronStyle, children: ">" })
3874
- ]
3875
- }
3876
- )
3877
- ] }),
3878
- selectedSourceLabel && /* @__PURE__ */ jsxs("div", { style: selectedSourceStyle(tokens.textSecondary), children: [
3879
- "Source: ",
3880
- /* @__PURE__ */ jsx("strong", { children: selectedSourceLabel })
3881
- ] }),
3882
- /* @__PURE__ */ jsxs("div", { style: limitSectionStyle, children: [
3883
- /* @__PURE__ */ jsx("div", { style: limitLabelStyle(tokens.textMuted), children: "Your One-Tap limit" }),
3884
- editing ? /* @__PURE__ */ jsxs("div", { style: limitValueStyle(tokens.text), children: [
3919
+ /* @__PURE__ */ jsxs("div", { style: amountRowStyle, children: [
3920
+ /* @__PURE__ */ jsx("div", { style: { flex: 1 }, children: editing ? /* @__PURE__ */ jsxs("div", { style: limitValueStyle(tokens.text), children: [
3885
3921
  "$",
3886
3922
  /* @__PURE__ */ jsx(
3887
3923
  "input",
@@ -3906,12 +3942,53 @@ function SetupScreen({
3906
3942
  onClick: startEditing,
3907
3943
  children: [
3908
3944
  "$",
3909
- limit.toFixed(2),
3910
- /* @__PURE__ */ jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", style: pencilIconStyle(tokens.textMuted), children: [
3911
- /* @__PURE__ */ jsx("path", { d: "M16.474 5.408l2.118 2.117m-.756-3.982L12.109 9.27a2.118 2.118 0 00-.58 1.082L11 13l2.648-.53c.41-.082.786-.283 1.082-.579l5.727-5.727a1.853 1.853 0 10-2.621-2.621z", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }),
3912
- /* @__PURE__ */ jsx("path", { d: "M19 15v3a2 2 0 01-2 2H5a2 2 0 01-2-2V6a2 2 0 012-2h3", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" })
3913
- ] })
3945
+ limit.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
3946
+ ]
3947
+ }
3948
+ ) }),
3949
+ /* @__PURE__ */ jsxs(
3950
+ "button",
3951
+ {
3952
+ type: "button",
3953
+ onClick: onAdvanced,
3954
+ style: tokenIconButtonStyle(!!onAdvanced),
3955
+ children: [
3956
+ /* @__PURE__ */ jsxs("div", { style: tokenIconWrapStyle, children: [
3957
+ /* @__PURE__ */ jsxs("svg", { width: "36", height: "36", viewBox: "0 0 36 36", fill: "none", children: [
3958
+ /* @__PURE__ */ jsx("circle", { cx: "18", cy: "18", r: "18", fill: "#2DB84B" }),
3959
+ /* @__PURE__ */ jsx("text", { x: "18", y: "23", textAnchor: "middle", fontSize: "18", fill: "#fff", fontWeight: "700", children: "$" })
3960
+ ] }),
3961
+ /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", style: checkBadgeStyle, children: [
3962
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "8", fill: "#2775CA" }),
3963
+ /* @__PURE__ */ jsx("path", { d: "M5 8l2 2 4-4", stroke: "#fff", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round" })
3964
+ ] })
3965
+ ] }),
3966
+ /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", style: { opacity: 0.5 }, children: /* @__PURE__ */ jsx("path", { d: "M6 9l6 6 6-6", stroke: tokens.textMuted, strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
3967
+ ]
3968
+ }
3969
+ )
3970
+ ] }),
3971
+ /* @__PURE__ */ jsxs("div", { style: presetsRowStyle, children: [
3972
+ PRESETS.map((value) => /* @__PURE__ */ jsxs(
3973
+ "button",
3974
+ {
3975
+ type: "button",
3976
+ onClick: () => selectPreset(value),
3977
+ style: presetButtonStyle(tokens, isPresetActive(value)),
3978
+ children: [
3979
+ "$",
3980
+ value.toLocaleString()
3914
3981
  ]
3982
+ },
3983
+ value
3984
+ )),
3985
+ /* @__PURE__ */ jsx(
3986
+ "button",
3987
+ {
3988
+ type: "button",
3989
+ onClick: selectMax,
3990
+ style: presetButtonStyle(tokens, isMaxActive),
3991
+ children: "Max"
3915
3992
  }
3916
3993
  )
3917
3994
  ] })
@@ -3920,11 +3997,11 @@ function SetupScreen({
3920
3997
  );
3921
3998
  }
3922
3999
  var headingStyle5 = (color) => ({
3923
- fontSize: "1.3rem",
4000
+ fontSize: "1.1rem",
3924
4001
  fontWeight: 700,
3925
4002
  letterSpacing: "-0.02em",
3926
4003
  color,
3927
- margin: "24px 0 20px",
4004
+ margin: "8px 0 24px",
3928
4005
  textAlign: "center"
3929
4006
  });
3930
4007
  var errorBannerStyle3 = (tokens) => ({
@@ -3937,148 +4014,113 @@ var errorBannerStyle3 = (tokens) => ({
3937
4014
  marginBottom: 14,
3938
4015
  lineHeight: 1.5
3939
4016
  });
3940
- var balanceRowStyle = {
4017
+ var amountRowStyle = {
3941
4018
  display: "flex",
3942
4019
  alignItems: "center",
3943
4020
  justifyContent: "space-between",
3944
- marginBottom: 24
3945
- };
3946
- var balanceLeftStyle = {
3947
- display: "flex",
3948
- alignItems: "center",
3949
- gap: 10
3950
- };
3951
- var coinIconStyle = (color) => ({
3952
- color,
3953
- display: "flex",
3954
- alignItems: "center"
3955
- });
3956
- var balanceLabelStyle = (color) => ({
3957
- fontSize: "0.72rem",
3958
- color,
3959
- fontWeight: 500
3960
- });
3961
- var balanceValueStyle = (color) => ({
3962
- fontSize: "1.1rem",
3963
- fontWeight: 700,
3964
- color
3965
- });
3966
- var tokenBadgeButtonStyle = (tokens, clickable) => ({
3967
- display: "flex",
3968
- alignItems: "center",
3969
- gap: 4,
3970
- fontSize: "0.78rem",
3971
- color: tokens.textMuted,
3972
- border: `1px solid ${tokens.border}`,
3973
- borderRadius: 999,
3974
- padding: "4px 10px",
3975
- background: "transparent",
3976
- fontFamily: "inherit",
3977
- cursor: clickable ? "pointer" : "default"
3978
- });
3979
- var selectedSourceStyle = (color) => ({
3980
- fontSize: "0.8rem",
3981
- color,
3982
- marginBottom: 16,
3983
- textAlign: "center"
3984
- });
3985
- var tokenDotStyle = (color) => ({
3986
- width: 8,
3987
- height: 8,
3988
- borderRadius: "50%",
3989
- background: color,
3990
- display: "inline-block"
3991
- });
3992
- var chevronStyle = { fontSize: "0.68rem", marginLeft: 2 };
3993
- var limitSectionStyle = {
3994
- textAlign: "center",
3995
- marginBottom: 24
4021
+ marginBottom: 24,
4022
+ gap: 12
3996
4023
  };
3997
- var limitLabelStyle = (color) => ({
3998
- fontSize: "0.8rem",
3999
- color,
4000
- marginBottom: 4
4001
- });
4002
4024
  var limitValueStyle = (color) => ({
4003
- fontSize: "2.2rem",
4025
+ fontSize: "2.4rem",
4004
4026
  fontWeight: 700,
4005
4027
  color,
4006
- marginBottom: 12
4028
+ letterSpacing: "-0.02em",
4029
+ display: "flex",
4030
+ alignItems: "baseline"
4007
4031
  });
4008
4032
  var editableLimitStyle = (color) => ({
4009
4033
  ...limitValueStyle(color),
4010
- cursor: "pointer",
4011
- display: "inline-flex",
4012
- alignItems: "center",
4013
- gap: 6
4014
- });
4015
- var pencilIconStyle = (color) => ({
4016
- color,
4017
- opacity: 0.6,
4018
- flexShrink: 0
4034
+ cursor: "pointer"
4019
4035
  });
4020
4036
  var limitInputStyle = (color) => ({
4021
- fontSize: "2.2rem",
4037
+ fontSize: "2.4rem",
4022
4038
  fontWeight: 700,
4023
4039
  color,
4024
4040
  background: "transparent",
4025
4041
  border: "none",
4026
4042
  borderBottom: "2px solid currentColor",
4027
4043
  outline: "none",
4028
- textAlign: "center",
4029
- width: "5ch",
4044
+ width: "6ch",
4030
4045
  fontFamily: "inherit",
4031
- padding: 0
4046
+ padding: 0,
4047
+ letterSpacing: "-0.02em"
4048
+ });
4049
+ var tokenIconButtonStyle = (clickable) => ({
4050
+ display: "flex",
4051
+ alignItems: "center",
4052
+ gap: 4,
4053
+ background: "transparent",
4054
+ border: "none",
4055
+ cursor: clickable ? "pointer" : "default",
4056
+ padding: 0,
4057
+ flexShrink: 0
4058
+ });
4059
+ var tokenIconWrapStyle = {
4060
+ position: "relative",
4061
+ width: 36,
4062
+ height: 36
4063
+ };
4064
+ var checkBadgeStyle = {
4065
+ position: "absolute",
4066
+ bottom: -1,
4067
+ right: -3
4068
+ };
4069
+ var presetsRowStyle = {
4070
+ display: "flex",
4071
+ gap: 10,
4072
+ marginBottom: 24
4073
+ };
4074
+ var presetButtonStyle = (tokens, active) => ({
4075
+ flex: 1,
4076
+ padding: "10px 0",
4077
+ borderRadius: 999,
4078
+ fontSize: "0.88rem",
4079
+ fontWeight: 600,
4080
+ fontFamily: "inherit",
4081
+ cursor: "pointer",
4082
+ transition: "background 0.15s ease, border-color 0.15s ease",
4083
+ ...active ? {
4084
+ background: `${tokens.accent}30`,
4085
+ border: `1.5px solid ${tokens.accent}`,
4086
+ color: tokens.text
4087
+ } : {
4088
+ background: "transparent",
4089
+ border: `1.5px solid ${tokens.border}`,
4090
+ color: tokens.text
4091
+ }
4032
4092
  });
4033
4093
  function SetupStatusScreen({
4034
4094
  complete,
4035
- limit,
4036
- tokensApproved,
4037
- merchantName,
4038
4095
  onContinue,
4039
4096
  onLogout,
4040
4097
  error
4041
4098
  }) {
4042
4099
  const { tokens } = useSwypeConfig();
4043
- const steps = complete ? [
4044
- {
4045
- label: "One-Tap ready",
4046
- detail: `$${limit} limit \xB7 ${tokensApproved} token${tokensApproved !== 1 ? "s" : ""} approved`,
4047
- status: "complete"
4048
- },
4049
- { label: "Done", status: "complete" }
4050
- ] : [
4051
- {
4052
- label: "Setting up Wallet",
4053
- status: "active"
4054
- },
4100
+ if (complete) {
4101
+ return /* @__PURE__ */ jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsx(PoweredByFooter, {}), children: [
4102
+ /* @__PURE__ */ jsx(ScreenHeader, { onBack: onContinue }),
4103
+ /* @__PURE__ */ jsxs("div", { style: contentStyle5, children: [
4104
+ /* @__PURE__ */ jsx("img", { src: SWYPE_MASCOT, alt: "Swype", style: mascotStyle }),
4105
+ /* @__PURE__ */ jsx("h2", { style: headingStyle6(tokens.text), children: "Done!" }),
4106
+ /* @__PURE__ */ jsx("p", { style: subtitleStyle3(tokens.textSecondary), children: "Return to the app to try one-tap deposits." })
4107
+ ] })
4108
+ ] });
4109
+ }
4110
+ const steps = [
4111
+ { label: "Setting up Wallet", status: "active" },
4055
4112
  { label: "Done", status: "pending" }
4056
4113
  ];
4057
- return /* @__PURE__ */ jsxs(
4058
- ScreenLayout,
4059
- {
4060
- footer: complete ? /* @__PURE__ */ jsxs(Fragment, { children: [
4061
- /* @__PURE__ */ jsx(PrimaryButton, { onClick: onContinue, children: merchantName ? `Return to ${merchantName}` : "Continue" }),
4062
- /* @__PURE__ */ jsx("p", { style: swipeHintStyle(tokens.textMuted), children: "Swipe to deposit \u2014 no approvals needed." })
4063
- ] }) : void 0,
4064
- children: [
4065
- /* @__PURE__ */ jsx(ScreenHeader, { right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) }),
4066
- /* @__PURE__ */ jsxs("div", { style: contentStyle5, children: [
4067
- complete ? /* @__PURE__ */ jsxs(Fragment, { children: [
4068
- /* @__PURE__ */ jsx(IconCircle, { variant: "success", size: 64, children: /* @__PURE__ */ jsx("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z", fill: tokens.success }) }) }),
4069
- /* @__PURE__ */ jsx("h2", { style: headingStyle6(tokens.text), children: "You're all set!" })
4070
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4071
- /* @__PURE__ */ jsx(Spinner, { size: 48 }),
4072
- /* @__PURE__ */ jsx("h2", { style: headingStyle6(tokens.text), children: "Setting up One-Tap..." })
4073
- ] }),
4074
- error && /* @__PURE__ */ jsx("div", { style: errorBannerStyle4(tokens), children: error }),
4075
- /* @__PURE__ */ jsx("div", { style: stepsWrapStyle, children: /* @__PURE__ */ jsx(StepList, { steps }) }),
4076
- !complete && /* @__PURE__ */ jsx("p", { style: waitHintStyle(tokens.textMuted), children: "Usually takes a few seconds" }),
4077
- complete && /* @__PURE__ */ jsx("p", { style: readyHintStyle(tokens.textSecondary), children: "You can now deposit instantly from any partner app." })
4078
- ] })
4079
- ]
4080
- }
4081
- );
4114
+ return /* @__PURE__ */ jsxs(ScreenLayout, { children: [
4115
+ /* @__PURE__ */ jsx(ScreenHeader, { right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) }),
4116
+ /* @__PURE__ */ jsxs("div", { style: contentStyle5, children: [
4117
+ /* @__PURE__ */ jsx(Spinner, { size: 48 }),
4118
+ /* @__PURE__ */ jsx("h2", { style: headingStyle6(tokens.text), children: "Setting up One-Tap..." }),
4119
+ error && /* @__PURE__ */ jsx("div", { style: errorBannerStyle4(tokens), children: error }),
4120
+ /* @__PURE__ */ jsx("div", { style: stepsWrapStyle, children: /* @__PURE__ */ jsx(StepList, { steps }) }),
4121
+ /* @__PURE__ */ jsx("p", { style: waitHintStyle(tokens.textMuted), children: "Usually takes a few seconds" })
4122
+ ] })
4123
+ ] });
4082
4124
  }
4083
4125
  var contentStyle5 = {
4084
4126
  flex: 1,
@@ -4089,12 +4131,23 @@ var contentStyle5 = {
4089
4131
  textAlign: "center",
4090
4132
  padding: "0 24px 32px"
4091
4133
  };
4134
+ var mascotStyle = {
4135
+ width: 56,
4136
+ height: 56
4137
+ };
4092
4138
  var headingStyle6 = (color) => ({
4093
4139
  fontSize: "1.45rem",
4094
4140
  fontWeight: 700,
4095
4141
  letterSpacing: "-0.02em",
4096
4142
  color,
4097
- margin: "20px 0 16px"
4143
+ margin: "20px 0 8px"
4144
+ });
4145
+ var subtitleStyle3 = (color) => ({
4146
+ fontSize: "0.9rem",
4147
+ color,
4148
+ margin: "0 0 28px",
4149
+ lineHeight: 1.5,
4150
+ maxWidth: 260
4098
4151
  });
4099
4152
  var errorBannerStyle4 = (tokens) => ({
4100
4153
  background: tokens.errorBg,
@@ -4119,19 +4172,6 @@ var waitHintStyle = (color) => ({
4119
4172
  color,
4120
4173
  margin: 0
4121
4174
  });
4122
- var readyHintStyle = (color) => ({
4123
- fontSize: "0.88rem",
4124
- color,
4125
- margin: "8px 0 0",
4126
- lineHeight: 1.5,
4127
- maxWidth: 280
4128
- });
4129
- var swipeHintStyle = (color) => ({
4130
- textAlign: "center",
4131
- fontSize: "0.8rem",
4132
- color,
4133
- margin: "12px 0 0"
4134
- });
4135
4175
  var MIN_DEPOSIT = 0.25;
4136
4176
  function DepositScreen({
4137
4177
  merchantName,
@@ -4142,8 +4182,6 @@ function DepositScreen({
4142
4182
  remainingLimit,
4143
4183
  tokenCount,
4144
4184
  initialAmount,
4145
- estimatedFeePct,
4146
- estimatedFeeUsd,
4147
4185
  processing,
4148
4186
  error,
4149
4187
  onDeposit,
@@ -4192,19 +4230,19 @@ function DepositScreen({
4192
4230
  onAddProvider
4193
4231
  }
4194
4232
  ),
4195
- /* @__PURE__ */ jsx("div", { style: amountDisplayStyle, children: /* @__PURE__ */ jsxs("span", { style: amountStyle({ ...tokens, dimmed: true }), children: [
4233
+ /* @__PURE__ */ jsx("div", { style: lowBalanceAmountDisplayStyle, children: /* @__PURE__ */ jsxs("span", { style: lowBalanceAmountStyle, children: [
4196
4234
  "$",
4197
4235
  amount.toFixed(2)
4198
4236
  ] }) }),
4199
- /* @__PURE__ */ jsxs("div", { style: balanceRowStyle2, children: [
4200
- /* @__PURE__ */ jsxs("div", { style: balanceLeftStyle2, children: [
4201
- /* @__PURE__ */ jsx("div", { style: coinIconStyle2(tokens.warning), children: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", children: [
4237
+ /* @__PURE__ */ jsxs("div", { style: lowBalanceRowStyle, children: [
4238
+ /* @__PURE__ */ jsxs("div", { style: lowBalanceLeftStyle, children: [
4239
+ /* @__PURE__ */ jsx("div", { style: lowBalanceCoinStyle(tokens.warning), children: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", children: [
4202
4240
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor" }),
4203
4241
  /* @__PURE__ */ jsx("text", { x: "12", y: "16", textAnchor: "middle", fontSize: "12", fill: "#fff", fontWeight: "700", children: "$" })
4204
4242
  ] }) }),
4205
4243
  /* @__PURE__ */ jsxs("div", { children: [
4206
- /* @__PURE__ */ jsx("div", { style: balanceLabelStyle2(tokens.textMuted), children: selectedSourceLabel ?? "Available" }),
4207
- /* @__PURE__ */ jsxs("div", { style: { ...balanceAmountStyle, color: tokens.warning }, children: [
4244
+ /* @__PURE__ */ jsx("div", { style: lowBalanceLabelStyle(tokens.textMuted), children: selectedSourceLabel ?? "Available" }),
4245
+ /* @__PURE__ */ jsxs("div", { style: { fontSize: "1rem", fontWeight: 700, color: tokens.warning }, children: [
4208
4246
  "$",
4209
4247
  availableBalance.toFixed(2)
4210
4248
  ] })
@@ -4223,6 +4261,7 @@ function DepositScreen({
4223
4261
  }
4224
4262
  );
4225
4263
  }
4264
+ const providerLogo = KNOWN_LOGOS[sourceName.toLowerCase()];
4226
4265
  return /* @__PURE__ */ jsxs(
4227
4266
  ScreenLayout,
4228
4267
  {
@@ -4236,138 +4275,150 @@ function DepositScreen({
4236
4275
  remainingLimit.toFixed(2),
4237
4276
  ". Increase your limit to continue."
4238
4277
  ] })
4239
- ] }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(PrimaryButton, { onClick: () => onDeposit(amount), disabled: !canDeposit, loading: processing, children: [
4240
- "Deposit $",
4241
- amount.toFixed(2)
4242
- ] }) }),
4278
+ ] }) : /* @__PURE__ */ jsx(PrimaryButton, { onClick: () => onDeposit(amount), disabled: !canDeposit, loading: processing, children: "Confirm" }),
4243
4279
  /* @__PURE__ */ jsx(PoweredByFooter, {})
4244
4280
  ] }),
4245
4281
  children: [
4246
- /* @__PURE__ */ jsx(ScreenHeader, { title: headerTitle, onBack, right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) }),
4247
- /* @__PURE__ */ jsx(
4248
- SourceCard,
4249
- {
4250
- name: sourceName,
4251
- address: sourceAddress,
4252
- verified: sourceVerified,
4253
- accounts,
4254
- selectedAccountId,
4255
- depositAmount: amount,
4256
- onSelectAccount,
4257
- onAuthorizeAccount,
4258
- onAddProvider
4259
- }
4260
- ),
4261
- /* @__PURE__ */ jsx("div", { style: amountDisplayStyle, children: /* @__PURE__ */ jsxs("span", { style: amountStyle(tokens), children: [
4262
- "$",
4263
- amount.toFixed(2)
4264
- ] }) }),
4265
- /* @__PURE__ */ jsxs("div", { style: balanceRowStyle2, children: [
4266
- /* @__PURE__ */ jsxs("div", { style: balanceLeftStyle2, children: [
4267
- /* @__PURE__ */ jsx("div", { style: coinIconStyle2(tokens.accent), children: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", children: [
4268
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor" }),
4269
- /* @__PURE__ */ jsx("text", { x: "12", y: "16", textAnchor: "middle", fontSize: "12", fill: "#fff", fontWeight: "700", children: "$" })
4270
- ] }) }),
4271
- /* @__PURE__ */ jsxs("div", { children: [
4272
- /* @__PURE__ */ jsx("div", { style: balanceLabelStyle2(tokens.textMuted), children: selectedSourceLabel ?? `Paying from ${sourceName}` }),
4273
- /* @__PURE__ */ jsxs("div", { style: balanceAmountStyle, children: [
4274
- "$",
4275
- availableBalance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
4276
- ] })
4277
- ] })
4282
+ /* @__PURE__ */ jsx(ScreenHeader, { onBack }),
4283
+ /* @__PURE__ */ jsx("div", { style: mascotWrapStyle, children: /* @__PURE__ */ jsx("img", { src: SWYPE_MASCOT, alt: "Swype", style: mascotStyle2 }) }),
4284
+ /* @__PURE__ */ jsxs("div", { style: depositCardStyle(tokens), children: [
4285
+ /* @__PURE__ */ jsx("div", { style: depositLabelStyle(tokens.textMuted), children: "Depositing" }),
4286
+ /* @__PURE__ */ jsxs("div", { style: amountRowStyle2, children: [
4287
+ /* @__PURE__ */ jsxs("div", { style: amountValueStyle(tokens.text), children: [
4288
+ "$",
4289
+ amount.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits: 2 })
4290
+ ] }),
4291
+ /* @__PURE__ */ jsxs(
4292
+ "button",
4293
+ {
4294
+ type: "button",
4295
+ onClick: onSelectToken,
4296
+ style: tokenIconButtonStyle2(!!onSelectToken),
4297
+ children: [
4298
+ /* @__PURE__ */ jsxs("div", { style: tokenIconWrapStyle2, children: [
4299
+ /* @__PURE__ */ jsxs("svg", { width: "36", height: "36", viewBox: "0 0 36 36", fill: "none", children: [
4300
+ /* @__PURE__ */ jsx("circle", { cx: "18", cy: "18", r: "18", fill: "#2DB84B" }),
4301
+ /* @__PURE__ */ jsx("text", { x: "18", y: "23", textAnchor: "middle", fontSize: "18", fill: "#fff", fontWeight: "700", children: "$" })
4302
+ ] }),
4303
+ /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", style: checkBadgeStyle2, children: [
4304
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "8", fill: "#2775CA" }),
4305
+ /* @__PURE__ */ jsx("path", { d: "M5 8l2 2 4-4", stroke: "#fff", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round" })
4306
+ ] })
4307
+ ] }),
4308
+ /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", style: { opacity: 0.5 }, children: /* @__PURE__ */ jsx("path", { d: "M6 9l6 6 6-6", stroke: tokens.textMuted, strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
4309
+ ]
4310
+ }
4311
+ )
4278
4312
  ] }),
4279
- tokenCount > 0 && /* @__PURE__ */ jsxs(
4280
- "button",
4281
- {
4282
- type: "button",
4283
- onClick: onSelectToken,
4284
- style: tokenBadgeButtonStyle2(tokens, !!onSelectToken),
4285
- children: [
4286
- /* @__PURE__ */ jsx("span", { style: tokenDotStyle2(tokens.accent) }),
4287
- tokenCount,
4288
- " ",
4289
- /* @__PURE__ */ jsx("span", { style: chevronInlineStyle, children: ">" })
4290
- ]
4291
- }
4292
- )
4313
+ /* @__PURE__ */ jsxs("div", { style: walletBalanceRowStyle, children: [
4314
+ providerLogo ? /* @__PURE__ */ jsx("img", { src: providerLogo, alt: sourceName, style: providerLogoStyle }) : /* @__PURE__ */ jsx("div", { style: providerFallbackStyle(tokens.textMuted), children: sourceName.charAt(0) }),
4315
+ /* @__PURE__ */ jsxs("span", { style: walletBalanceStyle(tokens.text), children: [
4316
+ "$",
4317
+ availableBalance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
4318
+ ] }),
4319
+ /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", style: { opacity: 0.4 }, children: /* @__PURE__ */ jsx("path", { d: "M7 10l5-5 5 5M7 14l5 5 5-5", stroke: tokens.textMuted, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) })
4320
+ ] })
4293
4321
  ] }),
4294
- /* @__PURE__ */ jsx("div", { style: detailsStyle, children: /* @__PURE__ */ jsxs("div", { style: detailRowStyle(tokens.textMuted), children: [
4295
- "Remaining limit: ",
4322
+ /* @__PURE__ */ jsxs("div", { style: spendingLimitStyle(tokens.textMuted), children: [
4323
+ "Spending Limit",
4324
+ " ",
4296
4325
  /* @__PURE__ */ jsxs("strong", { style: { color: tokens.text }, children: [
4297
4326
  "$",
4298
- remainingLimit.toFixed(2)
4327
+ remainingLimit.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits: 0 })
4299
4328
  ] })
4300
- ] }) }),
4329
+ ] }),
4301
4330
  error && /* @__PURE__ */ jsx("div", { style: errorBannerStyle5(tokens), children: error })
4302
4331
  ]
4303
4332
  }
4304
4333
  );
4305
4334
  }
4306
- var amountDisplayStyle = {
4307
- textAlign: "center",
4308
- padding: "20px 0 8px"
4335
+ var mascotWrapStyle = {
4336
+ display: "flex",
4337
+ justifyContent: "center",
4338
+ marginBottom: 16
4309
4339
  };
4310
- var amountStyle = (opts) => ({
4311
- fontSize: "2.5rem",
4312
- fontWeight: 700,
4313
- color: opts.dimmed ? "#ccc" : opts.text ?? "#12222b",
4314
- letterSpacing: "-0.02em"
4340
+ var mascotStyle2 = {
4341
+ width: 36,
4342
+ height: 36
4343
+ };
4344
+ var depositCardStyle = (tokens) => ({
4345
+ background: tokens.bgInput,
4346
+ border: `1px solid ${tokens.border}`,
4347
+ borderRadius: tokens.radiusLg,
4348
+ padding: "16px 20px",
4349
+ marginBottom: 20
4350
+ });
4351
+ var depositLabelStyle = (color) => ({
4352
+ fontSize: "0.75rem",
4353
+ fontWeight: 500,
4354
+ color,
4355
+ marginBottom: 4
4315
4356
  });
4316
- var balanceRowStyle2 = {
4357
+ var amountRowStyle2 = {
4317
4358
  display: "flex",
4318
4359
  alignItems: "center",
4319
4360
  justifyContent: "space-between",
4320
- marginBottom: 16
4361
+ marginBottom: 12
4321
4362
  };
4322
- var balanceLeftStyle2 = {
4363
+ var amountValueStyle = (color) => ({
4364
+ fontSize: "2.4rem",
4365
+ fontWeight: 700,
4366
+ letterSpacing: "-0.02em",
4367
+ color
4368
+ });
4369
+ var tokenIconButtonStyle2 = (clickable) => ({
4323
4370
  display: "flex",
4324
4371
  alignItems: "center",
4325
- gap: 10
4372
+ gap: 4,
4373
+ background: "transparent",
4374
+ border: "none",
4375
+ cursor: clickable ? "pointer" : "default",
4376
+ padding: 0,
4377
+ flexShrink: 0
4378
+ });
4379
+ var tokenIconWrapStyle2 = {
4380
+ position: "relative",
4381
+ width: 36,
4382
+ height: 36
4326
4383
  };
4327
- var coinIconStyle2 = (color) => ({
4328
- color,
4384
+ var checkBadgeStyle2 = {
4385
+ position: "absolute",
4386
+ bottom: -1,
4387
+ right: -3
4388
+ };
4389
+ var walletBalanceRowStyle = {
4329
4390
  display: "flex",
4330
- alignItems: "center"
4331
- });
4332
- var balanceLabelStyle2 = (color) => ({
4333
- fontSize: "0.72rem",
4334
- color,
4335
- fontWeight: 500
4336
- });
4337
- var balanceAmountStyle = {
4338
- fontSize: "1rem",
4339
- fontWeight: 700
4391
+ alignItems: "center",
4392
+ gap: 8
4393
+ };
4394
+ var providerLogoStyle = {
4395
+ width: 18,
4396
+ height: 18,
4397
+ borderRadius: "50%",
4398
+ objectFit: "contain"
4340
4399
  };
4341
- var tokenBadgeButtonStyle2 = (tokens, clickable) => ({
4400
+ var providerFallbackStyle = (color) => ({
4401
+ width: 18,
4402
+ height: 18,
4403
+ borderRadius: "50%",
4342
4404
  display: "flex",
4343
4405
  alignItems: "center",
4344
- gap: 4,
4345
- fontSize: "0.78rem",
4346
- color: tokens.textMuted,
4347
- border: `1px solid ${tokens.border}`,
4348
- borderRadius: 999,
4349
- padding: "4px 10px",
4350
- background: "transparent",
4351
- fontFamily: "inherit",
4352
- cursor: clickable ? "pointer" : "default"
4406
+ justifyContent: "center",
4407
+ fontSize: "0.65rem",
4408
+ fontWeight: 700,
4409
+ color,
4410
+ flexShrink: 0
4353
4411
  });
4354
- var tokenDotStyle2 = (color) => ({
4355
- width: 8,
4356
- height: 8,
4357
- borderRadius: "50%",
4358
- background: color,
4359
- display: "inline-block"
4412
+ var walletBalanceStyle = (color) => ({
4413
+ fontSize: "0.9rem",
4414
+ fontWeight: 600,
4415
+ color
4360
4416
  });
4361
- var chevronInlineStyle = { fontSize: "0.68rem", marginLeft: 2 };
4362
- var detailsStyle = {
4417
+ var spendingLimitStyle = (color) => ({
4363
4418
  textAlign: "center",
4364
- marginTop: 12,
4365
- marginBottom: 8
4366
- };
4367
- var detailRowStyle = (color) => ({
4368
- fontSize: "0.8rem",
4419
+ fontSize: "0.84rem",
4369
4420
  color,
4370
- marginBottom: 4
4421
+ marginBottom: 8
4371
4422
  });
4372
4423
  var errorBannerStyle5 = (tokens) => ({
4373
4424
  background: tokens.errorBg,
@@ -4395,6 +4446,37 @@ var switchHintStyle = (color) => ({
4395
4446
  var outlineBtnWrapStyle = {
4396
4447
  marginBottom: 8
4397
4448
  };
4449
+ var lowBalanceAmountDisplayStyle = {
4450
+ textAlign: "center",
4451
+ padding: "20px 0 8px"
4452
+ };
4453
+ var lowBalanceAmountStyle = {
4454
+ fontSize: "2.5rem",
4455
+ fontWeight: 700,
4456
+ color: "#ccc",
4457
+ letterSpacing: "-0.02em"
4458
+ };
4459
+ var lowBalanceRowStyle = {
4460
+ display: "flex",
4461
+ alignItems: "center",
4462
+ justifyContent: "space-between",
4463
+ marginBottom: 16
4464
+ };
4465
+ var lowBalanceLeftStyle = {
4466
+ display: "flex",
4467
+ alignItems: "center",
4468
+ gap: 10
4469
+ };
4470
+ var lowBalanceCoinStyle = (color) => ({
4471
+ color,
4472
+ display: "flex",
4473
+ alignItems: "center"
4474
+ });
4475
+ var lowBalanceLabelStyle = (color) => ({
4476
+ fontSize: "0.72rem",
4477
+ color,
4478
+ fontWeight: 500
4479
+ });
4398
4480
  function SuccessScreen({
4399
4481
  amount,
4400
4482
  currency,
@@ -4464,14 +4546,14 @@ function SuccessScreen({
4464
4546
  amount.toFixed(2),
4465
4547
  " deposited"
4466
4548
  ] }),
4467
- merchantName && /* @__PURE__ */ jsxs("p", { style: subtitleStyle3(tokens.textSecondary), children: [
4549
+ merchantName && /* @__PURE__ */ jsxs("p", { style: subtitleStyle4(tokens.textSecondary), children: [
4468
4550
  "to ",
4469
4551
  merchantName
4470
4552
  ] })
4471
4553
  ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4472
4554
  /* @__PURE__ */ jsx(IconCircle, { variant: "error", size: 64, children: /* @__PURE__ */ jsx("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ 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 }) }) }),
4473
4555
  /* @__PURE__ */ jsx("h2", { style: headingStyle7(tokens.text), children: "Transfer failed" }),
4474
- error && /* @__PURE__ */ jsx("p", { style: subtitleStyle3(tokens.error), children: error })
4556
+ error && /* @__PURE__ */ jsx("p", { style: subtitleStyle4(tokens.error), children: error })
4475
4557
  ] }),
4476
4558
  /* @__PURE__ */ jsxs("div", { style: summaryCardStyle(tokens), children: [
4477
4559
  sourceName && /* @__PURE__ */ jsxs("div", { style: summaryRowStyle, children: [
@@ -4517,7 +4599,7 @@ var headingStyle7 = (color) => ({
4517
4599
  color,
4518
4600
  margin: "20px 0 4px"
4519
4601
  });
4520
- var subtitleStyle3 = (color) => ({
4602
+ var subtitleStyle4 = (color) => ({
4521
4603
  fontSize: "0.9rem",
4522
4604
  color,
4523
4605
  margin: "0 0 20px"
@@ -4625,8 +4707,8 @@ function SelectSourceScreen({
4625
4707
  right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout })
4626
4708
  }
4627
4709
  ),
4628
- /* @__PURE__ */ jsx("p", { style: subtitleStyle4(tokens.textMuted), children: "Choose which chain and token to pay from." }),
4629
- /* @__PURE__ */ jsx("label", { style: labelStyle2(tokens.textSecondary), children: "Chain" }),
4710
+ /* @__PURE__ */ jsx("p", { style: subtitleStyle5(tokens.textMuted), children: "Choose which chain and token to pay from." }),
4711
+ /* @__PURE__ */ jsx("label", { style: labelStyle3(tokens.textSecondary), children: "Chain" }),
4630
4712
  /* @__PURE__ */ jsx("div", { style: optionListStyle, children: choices.map((chain) => {
4631
4713
  const isSelected = chain.chainName === selectedChainName;
4632
4714
  const isRecommended = chain.chainName === recommended?.chainName;
@@ -4654,7 +4736,7 @@ function SelectSourceScreen({
4654
4736
  );
4655
4737
  }) }),
4656
4738
  tokenChoices.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
4657
- /* @__PURE__ */ jsx("label", { style: labelStyle2(tokens.textSecondary), children: "Token" }),
4739
+ /* @__PURE__ */ jsx("label", { style: labelStyle3(tokens.textSecondary), children: "Token" }),
4658
4740
  /* @__PURE__ */ jsx("div", { style: optionListStyle, children: tokenChoices.map((token) => {
4659
4741
  const isSelected = token.tokenSymbol === selectedTokenSymbol;
4660
4742
  return /* @__PURE__ */ jsxs(
@@ -4682,13 +4764,13 @@ function SelectSourceScreen({
4682
4764
  }
4683
4765
  );
4684
4766
  }
4685
- var subtitleStyle4 = (color) => ({
4767
+ var subtitleStyle5 = (color) => ({
4686
4768
  fontSize: "0.85rem",
4687
4769
  color,
4688
4770
  margin: "0 0 20px",
4689
4771
  lineHeight: 1.5
4690
4772
  });
4691
- var labelStyle2 = (color) => ({
4773
+ var labelStyle3 = (color) => ({
4692
4774
  display: "block",
4693
4775
  fontSize: "0.75rem",
4694
4776
  fontWeight: 600,
@@ -4798,8 +4880,8 @@ function AdvancedSourceScreen({
4798
4880
  }
4799
4881
  ),
4800
4882
  /* @__PURE__ */ jsx("h2", { style: headingStyle8(tokens.text), children: "Set up One-Tap deposits" }),
4801
- /* @__PURE__ */ jsx("p", { style: subtitleStyle5(tokens.textSecondary), children: "Select a token source for your One-Tap deposits." }),
4802
- /* @__PURE__ */ jsx("label", { style: labelStyle3(tokens.textSecondary), children: "Select tokens to approve" }),
4883
+ /* @__PURE__ */ jsx("p", { style: subtitleStyle6(tokens.textSecondary), children: "Select a token source for your One-Tap deposits." }),
4884
+ /* @__PURE__ */ jsx("label", { style: labelStyle4(tokens.textSecondary), children: "Select tokens to approve" }),
4803
4885
  /* @__PURE__ */ jsx("div", { style: chainListStyle, children: choices.map((chain) => {
4804
4886
  const isExpanded = expandedChain === chain.chainName;
4805
4887
  const chainHasSelection = localChain === chain.chainName;
@@ -4868,13 +4950,13 @@ var headingStyle8 = (color) => ({
4868
4950
  color,
4869
4951
  margin: "8px 0 4px"
4870
4952
  });
4871
- var subtitleStyle5 = (color) => ({
4953
+ var subtitleStyle6 = (color) => ({
4872
4954
  fontSize: "0.86rem",
4873
4955
  color,
4874
4956
  margin: "0 0 20px",
4875
4957
  lineHeight: 1.5
4876
4958
  });
4877
- var labelStyle3 = (color) => ({
4959
+ var labelStyle4 = (color) => ({
4878
4960
  display: "block",
4879
4961
  fontSize: "0.75rem",
4880
4962
  fontWeight: 600,
@@ -4989,19 +5071,17 @@ function buildSteps(phase) {
4989
5071
  }
4990
5072
  function TransferStatusScreen({
4991
5073
  phase,
4992
- error,
4993
- onLogout
5074
+ error
4994
5075
  }) {
4995
5076
  const { tokens } = useSwypeConfig();
4996
5077
  const steps = buildSteps(phase);
4997
- return /* @__PURE__ */ jsxs(ScreenLayout, { children: [
4998
- /* @__PURE__ */ jsx(ScreenHeader, { right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) }),
5078
+ return /* @__PURE__ */ jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsx(PoweredByFooter, {}), children: [
5079
+ /* @__PURE__ */ jsx(ScreenHeader, {}),
4999
5080
  /* @__PURE__ */ jsxs("div", { style: contentStyle7, children: [
5000
- /* @__PURE__ */ jsx(Spinner, { size: 48 }),
5001
- /* @__PURE__ */ jsx("h2", { style: headingStyle9(tokens.text), children: "Processing Transfer..." }),
5081
+ /* @__PURE__ */ jsx(Spinner, { size: 64 }),
5082
+ /* @__PURE__ */ jsx("h2", { style: headingStyle9(tokens.text), children: "Depositing your money..." }),
5002
5083
  error && /* @__PURE__ */ jsx("div", { style: errorBannerStyle6(tokens), children: error }),
5003
- /* @__PURE__ */ jsx("div", { style: stepsWrapStyle2, children: /* @__PURE__ */ jsx(StepList, { steps }) }),
5004
- /* @__PURE__ */ jsx("p", { style: waitHintStyle2(tokens.textMuted), children: "Usually takes a few seconds" })
5084
+ /* @__PURE__ */ jsx("div", { style: stepsWrapStyle2, children: /* @__PURE__ */ jsx(StepList, { steps }) })
5005
5085
  ] })
5006
5086
  ] });
5007
5087
  }
@@ -5039,11 +5119,6 @@ var stepsWrapStyle2 = {
5039
5119
  textAlign: "left",
5040
5120
  marginBottom: 16
5041
5121
  };
5042
- var waitHintStyle2 = (color) => ({
5043
- fontSize: "0.82rem",
5044
- color,
5045
- margin: 0
5046
- });
5047
5122
 
5048
5123
  // src/deeplink.ts
5049
5124
  var IFRAME_CLEANUP_DELAY_MS = 3e3;
@@ -5100,14 +5175,15 @@ function OpenWalletScreen({
5100
5175
  displayName
5101
5176
  ] }),
5102
5177
  error && onRetryStatus && /* @__PURE__ */ jsx(OutlineButton, { onClick: onRetryStatus, children: "Retry status check" }),
5103
- /* @__PURE__ */ jsx("p", { style: hintStyle(tokens.textMuted), children: loading ? "Preparing authorization..." : error ? "Retry the status check after returning to the browser, or reopen your wallet if needed." : "If your wallet didn't open automatically, tap the button above" })
5178
+ /* @__PURE__ */ jsx("p", { style: hintStyle(tokens.textMuted), children: loading ? "Preparing authorization..." : error ? "Retry the status check after returning to the browser, or reopen your wallet if needed." : "If your wallet didn't open automatically, tap the button above" }),
5179
+ /* @__PURE__ */ jsx(PoweredByFooter, {})
5104
5180
  ] }),
5105
5181
  children: [
5106
5182
  /* @__PURE__ */ jsx(ScreenHeader, { onBack, right: /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) }),
5107
5183
  /* @__PURE__ */ jsxs("div", { style: contentStyle8, children: [
5108
- logoSrc ? /* @__PURE__ */ jsx("img", { src: logoSrc, alt: displayName, style: logoStyle2 }) : /* @__PURE__ */ jsx(Spinner, { size: 48 }),
5184
+ /* @__PURE__ */ jsx("div", { style: logoCircleStyle(tokens.bgInput), children: logoSrc ? /* @__PURE__ */ jsx("img", { src: logoSrc, alt: displayName, style: logoStyle2 }) : /* @__PURE__ */ jsx(Spinner, { size: 32 }) }),
5109
5185
  /* @__PURE__ */ jsx("h2", { style: headingStyle10(tokens.text), children: loading ? "Connecting..." : `Open ${displayName}` }),
5110
- /* @__PURE__ */ jsx("p", { style: subtitleStyle6(tokens.textSecondary), children: loading ? "Creating transfer and preparing your wallet link..." : `Continue in ${displayName} to authorize this connection.` }),
5186
+ /* @__PURE__ */ jsx("p", { style: subtitleStyle7(tokens.textSecondary), children: loading ? "Creating transfer and preparing your wallet link..." : `Continue in ${displayName} to authorize this connection.` }),
5111
5187
  !loading && /* @__PURE__ */ jsxs("div", { style: waitingBadgeStyle(tokens), children: [
5112
5188
  /* @__PURE__ */ jsx(Spinner, { size: 14 }),
5113
5189
  /* @__PURE__ */ jsx("span", { children: "Waiting for authorization..." })
@@ -5131,10 +5207,20 @@ var footerContentStyle = {
5131
5207
  flexDirection: "column",
5132
5208
  gap: 12
5133
5209
  };
5210
+ var logoCircleStyle = (bg) => ({
5211
+ width: 80,
5212
+ height: 80,
5213
+ borderRadius: "50%",
5214
+ background: bg,
5215
+ display: "flex",
5216
+ alignItems: "center",
5217
+ justifyContent: "center",
5218
+ flexShrink: 0
5219
+ });
5134
5220
  var logoStyle2 = {
5135
- width: 56,
5136
- height: 56,
5137
- borderRadius: 14,
5221
+ width: 48,
5222
+ height: 48,
5223
+ borderRadius: 12,
5138
5224
  objectFit: "contain"
5139
5225
  };
5140
5226
  var headingStyle10 = (color) => ({
@@ -5144,7 +5230,7 @@ var headingStyle10 = (color) => ({
5144
5230
  color,
5145
5231
  margin: "20px 0 8px"
5146
5232
  });
5147
- var subtitleStyle6 = (color) => ({
5233
+ var subtitleStyle7 = (color) => ({
5148
5234
  fontSize: "0.9rem",
5149
5235
  color,
5150
5236
  margin: "0 0 24px",
@@ -5191,7 +5277,7 @@ function ConfirmSignScreen({
5191
5277
  /* @__PURE__ */ jsxs("div", { style: contentStyle9, children: [
5192
5278
  logoSrc ? /* @__PURE__ */ jsx("img", { src: logoSrc, alt: displayName, style: logoStyle3 }) : /* @__PURE__ */ jsx(Spinner, { size: 48 }),
5193
5279
  /* @__PURE__ */ jsx("h2", { style: headingStyle11(tokens.text), children: "Wallet authorized" }),
5194
- /* @__PURE__ */ jsxs("p", { style: subtitleStyle7(tokens.textSecondary), children: [
5280
+ /* @__PURE__ */ jsxs("p", { style: subtitleStyle8(tokens.textSecondary), children: [
5195
5281
  displayName,
5196
5282
  " approved the connection. Tap below to confirm your payment."
5197
5283
  ] }),
@@ -5226,7 +5312,7 @@ var headingStyle11 = (color) => ({
5226
5312
  color,
5227
5313
  margin: "20px 0 8px"
5228
5314
  });
5229
- var subtitleStyle7 = (color) => ({
5315
+ var subtitleStyle8 = (color) => ({
5230
5316
  fontSize: "0.9rem",
5231
5317
  color,
5232
5318
  margin: "0 0 24px",
@@ -5265,10 +5351,10 @@ function TokenPickerScreen({
5265
5351
  chains,
5266
5352
  onSelectAuthorized,
5267
5353
  onAuthorizeToken,
5268
- onBack
5354
+ onBack,
5355
+ depositAmount
5269
5356
  }) {
5270
- const { tokens: themeTokens } = useSwypeConfig();
5271
- const [selectedIndex, setSelectedIndex] = useState(null);
5357
+ const { tokens: t } = useSwypeConfig();
5272
5358
  const entries = [];
5273
5359
  for (const wallet of account.wallets) {
5274
5360
  for (const source of wallet.sources) {
@@ -5283,215 +5369,243 @@ function TokenPickerScreen({
5283
5369
  });
5284
5370
  }
5285
5371
  }
5286
- const selected = selectedIndex != null ? entries[selectedIndex] : null;
5287
- const isAuthorized = selected?.status === "AUTHORIZED";
5288
- const handleConfirm = () => {
5289
- if (!selected) return;
5290
- if (isAuthorized) {
5291
- onSelectAuthorized(selected.walletId, selected.tokenSymbol);
5372
+ const handleSelect = (entry) => {
5373
+ if (entry.status === "AUTHORIZED") {
5374
+ onSelectAuthorized(entry.walletId, entry.tokenSymbol);
5292
5375
  } else {
5293
- const chain = chains.find((c) => c.name === selected.chainName);
5376
+ const chain = chains.find((c) => c.name === entry.chainName);
5294
5377
  const evmChainId = chain?.commonId;
5295
5378
  if (evmChainId == null) return;
5296
- onAuthorizeToken(selected.walletId, selected.tokenAddress, evmChainId, selected.tokenSymbol);
5379
+ onAuthorizeToken(entry.walletId, entry.tokenAddress, evmChainId, entry.tokenSymbol);
5297
5380
  }
5298
5381
  };
5299
- const chainGroups = /* @__PURE__ */ new Map();
5300
- for (const entry of entries) {
5301
- const group = chainGroups.get(entry.chainName);
5302
- if (group) {
5303
- group.push(entry);
5304
- } else {
5305
- chainGroups.set(entry.chainName, [entry]);
5306
- }
5307
- }
5308
- const [expandedChain, setExpandedChain] = useState(
5309
- entries.length > 0 ? entries[0].chainName : null
5310
- );
5311
- return /* @__PURE__ */ jsxs(
5312
- ScreenLayout,
5313
- {
5314
- footer: /* @__PURE__ */ jsxs(Fragment, { children: [
5315
- /* @__PURE__ */ jsx(
5316
- PrimaryButton,
5317
- {
5318
- onClick: handleConfirm,
5319
- disabled: selected == null,
5320
- children: selected == null ? "Select a token" : isAuthorized ? "Select Source" : "Authorize Token"
5321
- }
5322
- ),
5323
- /* @__PURE__ */ jsx(PoweredByFooter, {})
5324
- ] }),
5325
- children: [
5326
- /* @__PURE__ */ jsx(ScreenHeader, { title: "Select Token", onBack }),
5327
- /* @__PURE__ */ jsx("p", { style: subtitleStyle8(themeTokens.textSecondary), children: "Choose a token to deposit with. Tokens that haven't been authorized yet will require a one-time wallet approval." }),
5328
- /* @__PURE__ */ jsx("div", { style: chainListStyle2, children: [...chainGroups.entries()].map(([chainName, chainEntries]) => {
5329
- const isExpanded = expandedChain === chainName;
5330
- const chainTotal = chainEntries.reduce((sum, e) => sum + e.balance, 0);
5331
- return /* @__PURE__ */ jsxs("div", { style: chainCardStyle2(themeTokens), children: [
5332
- /* @__PURE__ */ jsxs(
5333
- "button",
5334
- {
5335
- type: "button",
5336
- onClick: () => setExpandedChain((prev) => prev === chainName ? null : chainName),
5337
- style: chainHeaderStyle2(themeTokens),
5338
- children: [
5339
- /* @__PURE__ */ jsxs("div", { style: chainHeaderLeftStyle2, children: [
5340
- /* @__PURE__ */ jsx("span", { style: chainNameStyle2(themeTokens.text), children: chainName }),
5341
- /* @__PURE__ */ jsxs("span", { style: chainBalanceStyle2(themeTokens.textMuted), children: [
5342
- "$",
5343
- chainTotal.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
5344
- ] })
5345
- ] }),
5346
- /* @__PURE__ */ jsx("span", { style: chevronStyle2(themeTokens.textMuted), children: isExpanded ? "\u25BE" : "\u25B8" })
5347
- ]
5348
- }
5349
- ),
5350
- isExpanded && /* @__PURE__ */ jsx("div", { style: tokenListStyle2, children: chainEntries.map((entry) => {
5351
- const globalIdx = entries.indexOf(entry);
5352
- const isSelected = selectedIndex === globalIdx;
5353
- const authorized = entry.status === "AUTHORIZED";
5354
- return /* @__PURE__ */ jsxs(
5355
- "button",
5356
- {
5357
- type: "button",
5358
- onClick: () => setSelectedIndex(globalIdx),
5359
- style: tokenRowStyle2(themeTokens, isSelected),
5360
- children: [
5361
- /* @__PURE__ */ jsxs("div", { style: tokenInfoStyle2, children: [
5362
- /* @__PURE__ */ jsxs("div", { style: tokenHeaderRowStyle, children: [
5363
- /* @__PURE__ */ jsx("span", { style: tokenSymbolStyle2(themeTokens.text), children: entry.tokenSymbol }),
5364
- authorized ? /* @__PURE__ */ jsx("span", { style: statusBadgeStyle(themeTokens.success), children: "Authorized" }) : /* @__PURE__ */ jsx("span", { style: statusBadgeStyle(themeTokens.textMuted), children: "Not authorized" })
5365
- ] }),
5366
- /* @__PURE__ */ jsxs("span", { style: tokenBalStyle2(themeTokens.textMuted), children: [
5367
- "$",
5368
- entry.balance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
5369
- ] })
5370
- ] }),
5371
- /* @__PURE__ */ jsx("div", { style: radioStyle3(themeTokens, isSelected), children: isSelected && /* @__PURE__ */ jsx("div", { style: radioDotStyle3(themeTokens.accent) }) })
5372
- ]
5373
- },
5374
- `${entry.walletId}-${entry.tokenSymbol}`
5375
- );
5376
- }) })
5377
- ] }, chainName);
5378
- }) })
5379
- ]
5380
- }
5381
- );
5382
+ return /* @__PURE__ */ jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsx(PoweredByFooter, {}), children: [
5383
+ /* @__PURE__ */ jsx(ScreenHeader, { onBack }),
5384
+ /* @__PURE__ */ jsx("div", { style: mascotWrapStyle2, children: /* @__PURE__ */ jsx("img", { src: SWYPE_MASCOT, alt: "Swype", style: mascotImgStyle }) }),
5385
+ depositAmount != null && /* @__PURE__ */ jsxs("div", { style: depositCardStyle2(t), children: [
5386
+ /* @__PURE__ */ jsx("div", { style: depositLabelStyle2(t.textMuted), children: "Depositing" }),
5387
+ /* @__PURE__ */ jsxs("div", { style: depositAmountRowStyle, children: [
5388
+ /* @__PURE__ */ jsxs("div", { style: depositAmountStyle(t.text), children: [
5389
+ "$",
5390
+ depositAmount.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits: 2 })
5391
+ ] }),
5392
+ /* @__PURE__ */ jsxs("div", { style: tokenIconWrapStyle3, children: [
5393
+ /* @__PURE__ */ jsxs("svg", { width: "32", height: "32", viewBox: "0 0 36 36", fill: "none", children: [
5394
+ /* @__PURE__ */ jsx("circle", { cx: "18", cy: "18", r: "18", fill: "#2DB84B" }),
5395
+ /* @__PURE__ */ jsx("text", { x: "18", y: "23", textAnchor: "middle", fontSize: "18", fill: "#fff", fontWeight: "700", children: "$" })
5396
+ ] }),
5397
+ /* @__PURE__ */ jsxs("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", style: checkBadgeStyle3, children: [
5398
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "8", fill: "#2775CA" }),
5399
+ /* @__PURE__ */ jsx("path", { d: "M5 8l2 2 4-4", stroke: "#fff", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round" })
5400
+ ] })
5401
+ ] })
5402
+ ] })
5403
+ ] }),
5404
+ /* @__PURE__ */ jsx("div", { style: sectionLabelStyle(t.textMuted), children: "Choose token" }),
5405
+ /* @__PURE__ */ jsx("div", { style: tokenListStyle2, children: entries.map((entry) => {
5406
+ const authorized = entry.status === "AUTHORIZED";
5407
+ return /* @__PURE__ */ jsxs(
5408
+ "button",
5409
+ {
5410
+ type: "button",
5411
+ onClick: () => handleSelect(entry),
5412
+ style: tokenRowStyle2(t),
5413
+ children: [
5414
+ /* @__PURE__ */ jsx("div", { style: tokenIconCircleStyle(t), children: /* @__PURE__ */ jsx("span", { style: tokenIconTextStyle(t.textMuted), children: "$" }) }),
5415
+ /* @__PURE__ */ jsxs("div", { style: tokenInfoStyle2, children: [
5416
+ /* @__PURE__ */ jsxs("div", { style: tokenNameRowStyle, children: [
5417
+ /* @__PURE__ */ jsx("span", { style: tokenSymbolTextStyle(t.text), children: entry.tokenSymbol }),
5418
+ /* @__PURE__ */ jsx("span", { style: tokenChainDotStyle(t.textMuted), children: "\xB7" }),
5419
+ /* @__PURE__ */ jsx("span", { style: tokenChainTextStyle(t.textMuted), children: entry.chainName })
5420
+ ] }),
5421
+ /* @__PURE__ */ jsxs("div", { style: tokenBalanceRowStyle, children: [
5422
+ /* @__PURE__ */ jsxs("span", { style: tokenBalanceStyle(t.textMuted), children: [
5423
+ "$",
5424
+ entry.balance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
5425
+ ] }),
5426
+ !authorized && /* @__PURE__ */ jsx("span", { style: notAuthorizedStyle(t.textMuted), children: "Not authorized" })
5427
+ ] })
5428
+ ] }),
5429
+ /* @__PURE__ */ jsx("div", { style: authorized ? selectCircleSelectedStyle(t.accent) : selectCircleStyle(t.border), children: authorized && /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z", fill: "#fff" }) }) })
5430
+ ]
5431
+ },
5432
+ `${entry.walletId}-${entry.tokenSymbol}-${entry.chainName}`
5433
+ );
5434
+ }) })
5435
+ ] });
5382
5436
  }
5383
- var subtitleStyle8 = (color) => ({
5384
- fontSize: "0.86rem",
5385
- color,
5386
- margin: "0 0 20px",
5387
- lineHeight: 1.5
5388
- });
5389
- var chainListStyle2 = {
5437
+ var mascotWrapStyle2 = {
5390
5438
  display: "flex",
5391
- flexDirection: "column",
5392
- gap: 10
5439
+ justifyContent: "center",
5440
+ marginBottom: 16
5441
+ };
5442
+ var mascotImgStyle = {
5443
+ width: 36,
5444
+ height: 36
5393
5445
  };
5394
- var chainCardStyle2 = (tokens) => ({
5446
+ var depositCardStyle2 = (tokens) => ({
5447
+ background: tokens.bgInput,
5395
5448
  border: `1px solid ${tokens.border}`,
5396
- borderRadius: 14,
5397
- overflow: "hidden",
5398
- background: tokens.bgInput
5449
+ borderRadius: tokens.radiusLg,
5450
+ padding: "16px 20px",
5451
+ marginBottom: 24
5399
5452
  });
5400
- var chainHeaderStyle2 = (tokens) => ({
5401
- display: "flex",
5402
- alignItems: "center",
5403
- justifyContent: "space-between",
5404
- width: "100%",
5405
- padding: "14px 16px",
5406
- background: tokens.bgInput,
5407
- border: "none",
5408
- cursor: "pointer",
5409
- fontFamily: "inherit",
5410
- textAlign: "left"
5453
+ var depositLabelStyle2 = (color) => ({
5454
+ fontSize: "0.75rem",
5455
+ fontWeight: 500,
5456
+ color,
5457
+ marginBottom: 4
5411
5458
  });
5412
- var chainHeaderLeftStyle2 = {
5459
+ var depositAmountRowStyle = {
5413
5460
  display: "flex",
5414
- flexDirection: "column",
5415
- gap: 2
5461
+ alignItems: "center",
5462
+ justifyContent: "space-between"
5416
5463
  };
5417
- var chainNameStyle2 = (color) => ({
5418
- fontSize: "0.92rem",
5419
- fontWeight: 600,
5420
- color
5421
- });
5422
- var chainBalanceStyle2 = (color) => ({
5423
- fontSize: "0.76rem",
5464
+ var depositAmountStyle = (color) => ({
5465
+ fontSize: "2.2rem",
5466
+ fontWeight: 700,
5467
+ letterSpacing: "-0.02em",
5424
5468
  color
5425
5469
  });
5426
- var chevronStyle2 = (color) => ({
5427
- fontSize: "0.9rem",
5428
- color
5470
+ var tokenIconWrapStyle3 = {
5471
+ position: "relative",
5472
+ width: 32,
5473
+ height: 32,
5474
+ flexShrink: 0
5475
+ };
5476
+ var checkBadgeStyle3 = {
5477
+ position: "absolute",
5478
+ bottom: -1,
5479
+ right: -3
5480
+ };
5481
+ var sectionLabelStyle = (color) => ({
5482
+ fontSize: "0.84rem",
5483
+ fontWeight: 500,
5484
+ color,
5485
+ marginBottom: 12
5429
5486
  });
5430
5487
  var tokenListStyle2 = {
5431
- padding: "0 12px 12px",
5432
5488
  display: "flex",
5433
5489
  flexDirection: "column",
5434
- gap: 6
5490
+ gap: 10
5435
5491
  };
5436
- var tokenRowStyle2 = (tokens, selected) => ({
5492
+ var tokenRowStyle2 = (tokens) => ({
5437
5493
  display: "flex",
5438
5494
  alignItems: "center",
5439
- justifyContent: "space-between",
5440
- padding: "12px 14px",
5441
- background: tokens.bgCard,
5442
- border: `1.5px solid ${selected ? tokens.accent : tokens.border}`,
5443
- borderRadius: 10,
5495
+ gap: 14,
5496
+ padding: "14px 16px",
5497
+ background: tokens.bgInput,
5498
+ border: `1px solid ${tokens.border}`,
5499
+ borderRadius: 16,
5444
5500
  cursor: "pointer",
5445
5501
  fontFamily: "inherit",
5446
5502
  textAlign: "left",
5447
- transition: "border-color 0.15s ease"
5503
+ width: "100%"
5504
+ });
5505
+ var tokenIconCircleStyle = (tokens) => ({
5506
+ width: 36,
5507
+ height: 36,
5508
+ borderRadius: "50%",
5509
+ border: `1.5px solid ${tokens.border}`,
5510
+ display: "flex",
5511
+ alignItems: "center",
5512
+ justifyContent: "center",
5513
+ flexShrink: 0
5514
+ });
5515
+ var tokenIconTextStyle = (color) => ({
5516
+ fontSize: "1rem",
5517
+ fontWeight: 700,
5518
+ color
5448
5519
  });
5449
5520
  var tokenInfoStyle2 = {
5450
5521
  display: "flex",
5451
5522
  flexDirection: "column",
5452
- gap: 4,
5453
- flex: 1
5523
+ gap: 2,
5524
+ flex: 1,
5525
+ minWidth: 0
5454
5526
  };
5455
- var tokenHeaderRowStyle = {
5527
+ var tokenNameRowStyle = {
5456
5528
  display: "flex",
5457
5529
  alignItems: "center",
5458
- gap: 8
5530
+ gap: 4
5459
5531
  };
5460
- var tokenSymbolStyle2 = (color) => ({
5461
- fontSize: "0.88rem",
5532
+ var tokenSymbolTextStyle = (color) => ({
5533
+ fontSize: "0.92rem",
5462
5534
  fontWeight: 600,
5463
5535
  color
5464
5536
  });
5465
- var statusBadgeStyle = (color) => ({
5466
- fontSize: "0.65rem",
5467
- fontWeight: 600,
5468
- color,
5469
- border: `1px solid ${color}44`,
5470
- borderRadius: 999,
5471
- padding: "1px 7px",
5472
- letterSpacing: "0.02em"
5537
+ var tokenChainDotStyle = (color) => ({
5538
+ fontSize: "0.8rem",
5539
+ color
5473
5540
  });
5474
- var tokenBalStyle2 = (color) => ({
5475
- fontSize: "0.74rem",
5541
+ var tokenChainTextStyle = (color) => ({
5542
+ fontSize: "0.84rem",
5543
+ fontWeight: 400,
5476
5544
  color
5477
5545
  });
5478
- var radioStyle3 = (tokens, selected) => ({
5479
- width: 20,
5480
- height: 20,
5546
+ var tokenBalanceRowStyle = {
5547
+ display: "flex",
5548
+ alignItems: "center",
5549
+ gap: 8
5550
+ };
5551
+ var tokenBalanceStyle = (color) => ({
5552
+ fontSize: "0.78rem",
5553
+ color
5554
+ });
5555
+ var notAuthorizedStyle = (color) => ({
5556
+ fontSize: "0.7rem",
5557
+ fontWeight: 500,
5558
+ color
5559
+ });
5560
+ var selectCircleStyle = (borderColor) => ({
5561
+ width: 28,
5562
+ height: 28,
5481
5563
  borderRadius: "50%",
5482
- border: `2px solid ${selected ? tokens.accent : tokens.border}`,
5564
+ border: `2px solid ${borderColor}`,
5483
5565
  display: "flex",
5484
5566
  alignItems: "center",
5485
5567
  justifyContent: "center",
5486
5568
  flexShrink: 0
5487
5569
  });
5488
- var radioDotStyle3 = (color) => ({
5489
- width: 10,
5490
- height: 10,
5570
+ var selectCircleSelectedStyle = (color) => ({
5571
+ width: 28,
5572
+ height: 28,
5491
5573
  borderRadius: "50%",
5492
- background: color
5574
+ background: color,
5575
+ border: "none",
5576
+ display: "flex",
5577
+ alignItems: "center",
5578
+ justifyContent: "center",
5579
+ flexShrink: 0
5493
5580
  });
5494
- function StepRenderer({
5581
+ var LINK_STEPS = /* @__PURE__ */ new Set([
5582
+ "create-passkey",
5583
+ "verify-passkey",
5584
+ "wallet-picker",
5585
+ "open-wallet",
5586
+ "setup-status",
5587
+ "setup",
5588
+ "confirm-sign"
5589
+ ]);
5590
+ var DEPOSIT_STEPS = /* @__PURE__ */ new Set([
5591
+ "deposit",
5592
+ "low-balance",
5593
+ "processing",
5594
+ "success"
5595
+ ]);
5596
+ function getFlowPhase(step, previousStep) {
5597
+ if (LINK_STEPS.has(step)) return "link";
5598
+ if (DEPOSIT_STEPS.has(step)) return "deposit";
5599
+ if (step === "token-picker" || step === "select-source") {
5600
+ return previousStep === "setup" ? "link" : "deposit";
5601
+ }
5602
+ return null;
5603
+ }
5604
+ function StepRenderer(props) {
5605
+ const phase = getFlowPhase(props.state.step, props.state.previousStep);
5606
+ return /* @__PURE__ */ jsx(FlowPhaseProvider, { phase, children: /* @__PURE__ */ jsx(StepRendererContent, { ...props }) });
5607
+ }
5608
+ function StepRendererContent({
5495
5609
  state,
5496
5610
  ready,
5497
5611
  authenticated,
@@ -5718,7 +5832,8 @@ function StepRenderer({
5718
5832
  chains: state.chains,
5719
5833
  onSelectAuthorized: handlers.onSelectAuthorizedToken,
5720
5834
  onAuthorizeToken: handlers.onAuthorizeToken,
5721
- onBack: () => handlers.onNavigate(state.previousStep === "setup" ? "setup" : "deposit")
5835
+ onBack: () => handlers.onNavigate(state.previousStep === "setup" ? "setup" : "deposit"),
5836
+ depositAmount: depositAmount ?? void 0
5722
5837
  }
5723
5838
  );
5724
5839
  }
@@ -5838,7 +5953,7 @@ var PaymentErrorBoundary = class extends Component {
5838
5953
  if (!this.state.hasError) {
5839
5954
  return this.props.children;
5840
5955
  }
5841
- return /* @__PURE__ */ jsxs("div", { style: containerStyle8, children: [
5956
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle9, children: [
5842
5957
  /* @__PURE__ */ jsx("div", { style: iconStyle4, children: /* @__PURE__ */ jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", children: [
5843
5958
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10", stroke: "#ef4444", strokeWidth: "1.5" }),
5844
5959
  /* @__PURE__ */ jsx("path", { d: "M12 8v5", stroke: "#ef4444", strokeWidth: "1.5", strokeLinecap: "round" }),
@@ -5850,7 +5965,7 @@ var PaymentErrorBoundary = class extends Component {
5850
5965
  ] });
5851
5966
  }
5852
5967
  };
5853
- var containerStyle8 = {
5968
+ var containerStyle9 = {
5854
5969
  display: "flex",
5855
5970
  flexDirection: "column",
5856
5971
  alignItems: "center",
@@ -7827,6 +7942,6 @@ function SwypePaymentInner({
7827
7942
  );
7828
7943
  }
7829
7944
 
7830
- export { AdvancedSourceScreen, IconCircle, InfoBanner, OutlineButton, PasskeyIframeBlockedError, PasskeyScreen, PoweredByFooter, PrimaryButton, ScreenHeader, ScreenLayout, SelectSourceScreen, SettingsMenu, SetupScreen, Spinner, StepList, SwypeLoadingScreen, SwypePayment, SwypeProvider, TokenPickerScreen, buildPasskeyPopupOptions, createPasskeyCredential, createPasskeyViaPopup, darkTheme, deviceHasPasskey, findDevicePasskey, findDevicePasskeyViaPopup, getTheme, lightTheme, resolvePasskeyRpId, api_exports as swypeApi, useAuthorizationExecutor, useSwypeConfig, useSwypeDepositAmount, useTransferPolling, useTransferSigning };
7945
+ export { AdvancedSourceScreen, FlowPhaseProvider, IconCircle, InfoBanner, OutlineButton, PasskeyIframeBlockedError, PasskeyScreen, PoweredByFooter, PrimaryButton, SWYPE_LOGO, SWYPE_MASCOT, ScreenHeader, ScreenLayout, SelectSourceScreen, SettingsMenu, SetupScreen, Spinner, StepList, SwypeLoadingScreen, SwypePayment, SwypeProvider, TokenPickerScreen, buildPasskeyPopupOptions, createPasskeyCredential, createPasskeyViaPopup, darkTheme, deviceHasPasskey, findDevicePasskey, findDevicePasskeyViaPopup, getTheme, lightTheme, resolvePasskeyRpId, api_exports as swypeApi, useAuthorizationExecutor, useSwypeConfig, useSwypeDepositAmount, useTransferPolling, useTransferSigning };
7831
7946
  //# sourceMappingURL=index.js.map
7832
7947
  //# sourceMappingURL=index.js.map