@funkit/connect 10.1.0 → 10.1.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @funkit/connect
2
2
 
3
+ ## 10.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 045cd95: feat(connect): update source change wordings
8
+ - 2a5b19a: fix(connect): make swapped iframe scrollable
9
+ - 6ae84b0: Hide fiat withdrawal limits when the user's balance is below the payment method limit
10
+ - 36423cd: test(connect): test TransferToken
11
+ - a074ecf: feat(connect): order connect wallet chain icons via config
12
+ - Updated dependencies [6ae84b0]
13
+ - Updated dependencies [a074ecf]
14
+ - @funkit/connect-core@1.7.0
15
+
3
16
  ## 10.1.0
4
17
 
5
18
  ### Minor Changes
@@ -16491,6 +16491,24 @@
16491
16491
  animation-name: stgjxld;
16492
16492
  }
16493
16493
 
16494
+ /* vanilla-extract-css-ns:src/modals/CheckoutModal/SwappedIframe/SwappedIframe.css.ts.vanilla.css?source=Lm94dGxjcDAgewogIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtdGVydGlhcnlUZXh0KSB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQoub3h0bGNwMDo6LXdlYmtpdC1zY3JvbGxiYXIgewogIHdpZHRoOiA2cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLW1vZGFsQmFja2dyb3VuZCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yay1yYWRpaS1tb2RhbCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLXRlcnRpYXJ5VGV4dCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQ */
16495
+ [data-rk] .oxtlcp0 {
16496
+ scrollbar-gutter: stable;
16497
+ scrollbar-width: thin;
16498
+ scrollbar-color: var(--rk-colors-tertiaryText) var(--rk-colors-modalBackground);
16499
+ }
16500
+ [data-rk] .oxtlcp0::-webkit-scrollbar {
16501
+ width: 6px;
16502
+ background-color: var(--rk-colors-modalBackground);
16503
+ }
16504
+ [data-rk] .oxtlcp0::-webkit-scrollbar-thumb {
16505
+ border-radius: var(--rk-radii-modal);
16506
+ background-color: var(--rk-colors-tertiaryText);
16507
+ }
16508
+ [data-rk] .oxtlcp0::-webkit-scrollbar-track {
16509
+ background-color: var(--rk-colors-modalBackground);
16510
+ }
16511
+
16494
16512
  /* vanilla-extract-css-ns:src/components/FunDivider/FunDivider.css.ts.vanilla.css?source=Ll8zZGtkc2MwIHsKICBib3JkZXItd2lkdGg6IDA7CiAgYm9yZGVyLXRvcC13aWR0aDogMXB4OwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgZmxleDogMTsKfQ */
16495
16513
  [data-rk] ._3dkdsc0 {
16496
16514
  border-width: 0;
@@ -16491,6 +16491,24 @@
16491
16491
  animation-name: stgjxld;
16492
16492
  }
16493
16493
 
16494
+ /* vanilla-extract-css-ns:src/modals/CheckoutModal/SwappedIframe/SwappedIframe.css.ts.vanilla.css?source=Lm94dGxjcDAgewogIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtdGVydGlhcnlUZXh0KSB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQoub3h0bGNwMDo6LXdlYmtpdC1zY3JvbGxiYXIgewogIHdpZHRoOiA2cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLW1vZGFsQmFja2dyb3VuZCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yay1yYWRpaS1tb2RhbCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLXRlcnRpYXJ5VGV4dCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQ */
16495
+ [data-rk] .oxtlcp0 {
16496
+ scrollbar-gutter: stable;
16497
+ scrollbar-width: thin;
16498
+ scrollbar-color: var(--rk-colors-tertiaryText) var(--rk-colors-modalBackground);
16499
+ }
16500
+ [data-rk] .oxtlcp0::-webkit-scrollbar {
16501
+ width: 6px;
16502
+ background-color: var(--rk-colors-modalBackground);
16503
+ }
16504
+ [data-rk] .oxtlcp0::-webkit-scrollbar-thumb {
16505
+ border-radius: var(--rk-radii-modal);
16506
+ background-color: var(--rk-colors-tertiaryText);
16507
+ }
16508
+ [data-rk] .oxtlcp0::-webkit-scrollbar-track {
16509
+ background-color: var(--rk-colors-modalBackground);
16510
+ }
16511
+
16494
16512
  /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUzU7DMAy-7yl8QRpSU6X8TCgTF8aBB-CGOLipt0VrncpNgQ7x7qgdbGXTEGIIxDHJ5-_Hjhwva9JupOF5ABAEuXLBeTaAeQ7JuS4qsHXqrEpp6UiGOj6NQEegYz2KIDkeD14G8Yoj2eFgz9QDnBijHilduKB8HUhUVTpWaR2C5wh2QY75I6gTKFBmjg3o8QDgHYplSSjIlnZV70JT0iXXRUpy31Gowi8_KznrUCnaxUx8zZmyPvdiVtlKFOLQiqdeMpL3agBfh9wxbS4eXRbmBhKtj9rj1HNQUyxc3hhwPCdxHc9hbT8zpszR0tznGUnn_M3uA8pQKVms7FeqIus5Q2lu6Sn0KUa_mXejerjxi38wKABfonWhMaDj8775L-dH22pO2sO1qzDNKet3AX-3C3vi4E_Fsf9gqBuzh3_i7Ed2716yrd2mzdw_kKzx68WbbD3smcJ2rLqiiWcmGyi7WqNvWqq-wemfrJjp96fzCplzuQIZBwAA */
16495
16513
  [data-rk] .zue0i60 {
16496
16514
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  PolymarketDepositAccountDropdown
4
- } from "../chunk-ZAXSDMDU.js";
4
+ } from "../chunk-QR64CUND.js";
5
+ import "../chunk-YFHTV7DT.js";
5
6
  import "../chunk-E3USJY7A.js";
6
7
  import "../chunk-LUHEVXPD.js";
7
8
  import "../chunk-UPZNKPYU.js";
8
9
  import "../chunk-STLOQEN7.js";
9
- import "../chunk-YFHTV7DT.js";
10
10
  import "../chunk-6PIIYPQK.js";
11
11
  import "../chunk-AHYOV7AV.js";
12
12
  export {
@@ -16491,6 +16491,24 @@
16491
16491
  animation-name: stgjxld;
16492
16492
  }
16493
16493
 
16494
+ /* vanilla-extract-css-ns:src/modals/CheckoutModal/SwappedIframe/SwappedIframe.css.ts.vanilla.css?source=Lm94dGxjcDAgewogIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtdGVydGlhcnlUZXh0KSB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQoub3h0bGNwMDo6LXdlYmtpdC1zY3JvbGxiYXIgewogIHdpZHRoOiA2cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLW1vZGFsQmFja2dyb3VuZCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yay1yYWRpaS1tb2RhbCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLXRlcnRpYXJ5VGV4dCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQ */
16495
+ [data-rk] .oxtlcp0 {
16496
+ scrollbar-gutter: stable;
16497
+ scrollbar-width: thin;
16498
+ scrollbar-color: var(--rk-colors-tertiaryText) var(--rk-colors-modalBackground);
16499
+ }
16500
+ [data-rk] .oxtlcp0::-webkit-scrollbar {
16501
+ width: 6px;
16502
+ background-color: var(--rk-colors-modalBackground);
16503
+ }
16504
+ [data-rk] .oxtlcp0::-webkit-scrollbar-thumb {
16505
+ border-radius: var(--rk-radii-modal);
16506
+ background-color: var(--rk-colors-tertiaryText);
16507
+ }
16508
+ [data-rk] .oxtlcp0::-webkit-scrollbar-track {
16509
+ background-color: var(--rk-colors-modalBackground);
16510
+ }
16511
+
16494
16512
  /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUzU7DMAy-7yl8QRpSU6X8TCgTF8aBB-CGOLipt0VrncpNgQ7x7qgdbGXTEGIIxDHJ5-_Hjhwva9JupOF5ABAEuXLBeTaAeQ7JuS4qsHXqrEpp6UiGOj6NQEegYz2KIDkeD14G8Yoj2eFgz9QDnBijHilduKB8HUhUVTpWaR2C5wh2QY75I6gTKFBmjg3o8QDgHYplSSjIlnZV70JT0iXXRUpy31Gowi8_KznrUCnaxUx8zZmyPvdiVtlKFOLQiqdeMpL3agBfh9wxbS4eXRbmBhKtj9rj1HNQUyxc3hhwPCdxHc9hbT8zpszR0tznGUnn_M3uA8pQKVms7FeqIus5Q2lu6Sn0KUa_mXejerjxi38wKABfonWhMaDj8775L-dH22pO2sO1qzDNKet3AX-3C3vi4E_Fsf9gqBuzh3_i7Ed2716yrd2mzdw_kKzx68WbbD3smcJ2rLqiiWcmGyi7WqNvWqq-wemfrJjp96fzCplzuQIZBwAA */
16495
16513
  [data-rk] .zue0i60 {
16496
16514
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  PolymarketDepositAccountDropdown
4
- } from "../chunk-ZAXSDMDU.js";
5
- import "../chunk-E3USJY7A.js";
6
- import "../chunk-LUHEVXPD.js";
7
- import "../chunk-UPZNKPYU.js";
8
- import "../chunk-STLOQEN7.js";
4
+ } from "../chunk-QR64CUND.js";
9
5
  import {
10
6
  POLYMARKET_PERPS_ROUTING_ID,
11
7
  POLYMARKET_PREDICTIONS_ROUTING_ID,
12
8
  createPolymarketDepositConfig,
13
9
  createPredictionsGenerateActionParams
14
10
  } from "../chunk-YFHTV7DT.js";
11
+ import "../chunk-E3USJY7A.js";
12
+ import "../chunk-LUHEVXPD.js";
13
+ import "../chunk-UPZNKPYU.js";
14
+ import "../chunk-STLOQEN7.js";
15
15
  import {
16
16
  AMOUNT_PLACEHOLDER,
17
17
  COLLATERAL_ONRAMP_ABI,
@@ -10,6 +10,12 @@ import type { AssetHoldingsItem } from '../../domains/wallet';
10
10
  */
11
11
  export declare function getIconFromUiConfig(paymentMethod: PaymentMethod, iconConfig: FunkitPaymentMethodIconsConfig | undefined, defaultIconSize?: number): ReactNode | undefined;
12
12
  export declare const getDynamicValueIconComponent: () => React.JSX.Element;
13
+ /**
14
+ * Statsig's `connectwalletchainiconorder` only carries the chains we want to
15
+ * lead with (e.g. by TVL/usage) — anything else checkout-supports still needs
16
+ * to render after them rather than being silently dropped.
17
+ */
18
+ export declare function resolveConnectWalletChainOrder(configuredOrder: readonly (string | number)[]): string[];
13
19
  export declare function SupportedChainList({ chainIdList, iconSize, style, }: {
14
20
  chainIdList: string[];
15
21
  iconSize?: number;
@@ -90,7 +96,11 @@ export declare function PaymentMethodDisabledBadge(props: {
90
96
  */
91
97
  export declare function FopPaymentMethodItem({ fop, isActive, onClick, testId, disclaimerLimit, disabled, isBelowMinimum, }: BasePaymentMethodItemProps & {
92
98
  fop: SwappedFormOfPayment;
93
- disclaimerLimit: string;
99
+ /**
100
+ * Omit to show processing time only — withdrawal hides the limit when the
101
+ * user's balance is below the method's limit (no meaningful limit to show).
102
+ */
103
+ disclaimerLimit?: string;
94
104
  disabled?: boolean;
95
105
  /** Withdrawal off-ramp only: balance can't meet the cash sell minimum. */
96
106
  isBelowMinimum?: boolean;
package/dist/index.css CHANGED
@@ -16541,6 +16541,24 @@
16541
16541
  animation-name: stgjxld;
16542
16542
  }
16543
16543
 
16544
+ /* vanilla-extract-css-ns:src/modals/CheckoutModal/SwappedIframe/SwappedIframe.css.ts.vanilla.css?source=Lm94dGxjcDAgewogIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtdGVydGlhcnlUZXh0KSB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQoub3h0bGNwMDo6LXdlYmtpdC1zY3JvbGxiYXIgewogIHdpZHRoOiA2cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLW1vZGFsQmFja2dyb3VuZCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yay1yYWRpaS1tb2RhbCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmstY29sb3JzLXRlcnRpYXJ5VGV4dCk7Cn0KLm94dGxjcDA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yay1jb2xvcnMtbW9kYWxCYWNrZ3JvdW5kKTsKfQ */
16545
+ [data-rk] .oxtlcp0 {
16546
+ scrollbar-gutter: stable;
16547
+ scrollbar-width: thin;
16548
+ scrollbar-color: var(--rk-colors-tertiaryText) var(--rk-colors-modalBackground);
16549
+ }
16550
+ [data-rk] .oxtlcp0::-webkit-scrollbar {
16551
+ width: 6px;
16552
+ background-color: var(--rk-colors-modalBackground);
16553
+ }
16554
+ [data-rk] .oxtlcp0::-webkit-scrollbar-thumb {
16555
+ border-radius: var(--rk-radii-modal);
16556
+ background-color: var(--rk-colors-tertiaryText);
16557
+ }
16558
+ [data-rk] .oxtlcp0::-webkit-scrollbar-track {
16559
+ background-color: var(--rk-colors-modalBackground);
16560
+ }
16561
+
16544
16562
  /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUzU7DMAy-7yl8QRpSU6X8TCgTF8aBB-CGOLipt0VrncpNgQ7x7qgdbGXTEGIIxDHJ5-_Hjhwva9JupOF5ABAEuXLBeTaAeQ7JuS4qsHXqrEpp6UiGOj6NQEegYz2KIDkeD14G8Yoj2eFgz9QDnBijHilduKB8HUhUVTpWaR2C5wh2QY75I6gTKFBmjg3o8QDgHYplSSjIlnZV70JT0iXXRUpy31Gowi8_KznrUCnaxUx8zZmyPvdiVtlKFOLQiqdeMpL3agBfh9wxbS4eXRbmBhKtj9rj1HNQUyxc3hhwPCdxHc9hbT8zpszR0tznGUnn_M3uA8pQKVms7FeqIus5Q2lu6Sn0KUa_mXejerjxi38wKABfonWhMaDj8775L-dH22pO2sO1qzDNKet3AX-3C3vi4E_Fsf9gqBuzh3_i7Ed2716yrd2mzdw_kKzx68WbbD3smcJ2rLqiiWcmGyi7WqNvWqq-wemfrJjp96fzCplzuQIZBwAA */
16545
16563
  [data-rk] .zue0i60 {
16546
16564
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import {
3
- lightTheme
4
- } from "./chunk-67BKQQNG.js";
5
2
  import {
6
3
  darkTheme
7
4
  } from "./chunk-36KVHK22.js";
5
+ import {
6
+ lightTheme
7
+ } from "./chunk-67BKQQNG.js";
8
8
  import {
9
9
  systemFontStack
10
10
  } from "./chunk-4YEAUICE.js";
@@ -1687,7 +1687,7 @@ function setFunkitConnectVersion({ version }) {
1687
1687
  localStorage.setItem(storageKey, version);
1688
1688
  }
1689
1689
  function getCurrentSdkVersion() {
1690
- return "10.1.0";
1690
+ return "10.1.1";
1691
1691
  }
1692
1692
  function useFingerprint() {
1693
1693
  const fingerprint = useCallback3(() => {
@@ -8498,6 +8498,9 @@ function useSwappedContext() {
8498
8498
  return ctx;
8499
8499
  }
8500
8500
 
8501
+ // src/modals/CheckoutModal/SwappedIframe/SwappedIframe.css.ts
8502
+ var scrollableIframeWrapper = "oxtlcp0";
8503
+
8501
8504
  // src/modals/CheckoutModal/SwappedIframe/SwappedIframe.tsx
8502
8505
  var SwappedIframe = () => {
8503
8506
  const { iframeUrl, isSwappedReady, isActive, setIframeRef } = useSwappedContext();
@@ -8517,12 +8520,13 @@ var SwappedIframe = () => {
8517
8520
  Box,
8518
8521
  {
8519
8522
  background: "modalBackground",
8523
+ className: scrollableIframeWrapper,
8520
8524
  style: {
8521
8525
  position: "absolute",
8522
8526
  inset: 0,
8523
8527
  width: "100%",
8524
8528
  height: "100%",
8525
- overflow: "hidden",
8529
+ overflow: "auto",
8526
8530
  overscrollBehavior: "contain",
8527
8531
  zIndex: shouldShow ? 1 : -1,
8528
8532
  pointerEvents: shouldShow ? "auto" : "none",
@@ -9987,8 +9991,8 @@ var en_default = {
9987
9991
  selectPaymentMethod: "Select payment method",
9988
9992
  moreOptions: "More options",
9989
9993
  mostPopular: "Most popular",
9990
- savedPaymentMethods: "Saved payment methods",
9991
- otherOptions: "Other options",
9994
+ savedPaymentMethods: "Saved cards",
9995
+ otherOptions: "More options",
9992
9996
  connected: "Connected",
9993
9997
  more: "more",
9994
9998
  walletDisplayLabel: "{{walletLabel}}",
@@ -10590,8 +10594,8 @@ var es_default = {
10590
10594
  selectPaymentMethod: "Seleccionar m\xE9todo de pago",
10591
10595
  moreOptions: "M\xE1s opciones",
10592
10596
  mostPopular: "M\xE1s popular",
10593
- savedPaymentMethods: "M\xE9todos de pago guardados",
10594
- otherOptions: "Otras opciones",
10597
+ savedPaymentMethods: "Tarjetas guardadas",
10598
+ otherOptions: "M\xE1s opciones",
10595
10599
  more: "m\xE1s",
10596
10600
  walletDisplayLabel: "{{walletLabel}}",
10597
10601
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -11193,8 +11197,8 @@ var fr_default = {
11193
11197
  selectPaymentMethod: "S\xE9lectionnez le mode de paiement",
11194
11198
  moreOptions: "Plus d'options",
11195
11199
  mostPopular: "Les plus populaires",
11196
- savedPaymentMethods: "Moyens de paiement enregistr\xE9s",
11197
- otherOptions: "Autres options",
11200
+ savedPaymentMethods: "Cartes enregistr\xE9es",
11201
+ otherOptions: "Plus d'options",
11198
11202
  more: "plus",
11199
11203
  walletDisplayLabel: "{{walletLabel}}",
11200
11204
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -11796,8 +11800,8 @@ var ja_default = {
11796
11800
  selectPaymentMethod: "\u652F\u6255\u3044\u65B9\u6CD5\u3092\u9078\u629E",
11797
11801
  moreOptions: "\u305D\u306E\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3",
11798
11802
  mostPopular: "\u4EBA\u6C17",
11799
- savedPaymentMethods: "\u4FDD\u5B58\u6E08\u307F\u306E\u652F\u6255\u3044\u65B9\u6CD5",
11800
- otherOptions: "\u305D\u306E\u4ED6\u306E\u9078\u629E\u80A2",
11803
+ savedPaymentMethods: "\u4FDD\u5B58\u6E08\u307F\u30AB\u30FC\u30C9",
11804
+ otherOptions: "\u305D\u306E\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3",
11801
11805
  more: "\u3082\u3063\u3068\u898B\u308B",
11802
11806
  walletDisplayLabel: "{{walletLabel}}",
11803
11807
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -12399,8 +12403,8 @@ var ko_default = {
12399
12403
  selectPaymentMethod: "\uACB0\uC81C \uBC29\uBC95 \uC120\uD0DD",
12400
12404
  moreOptions: "\uB354 \uB9CE\uC740 \uC635\uC158",
12401
12405
  mostPopular: "\uC778\uAE30",
12402
- savedPaymentMethods: "\uC800\uC7A5\uB41C \uACB0\uC81C \uC218\uB2E8",
12403
- otherOptions: "\uB2E4\uB978 \uC635\uC158",
12406
+ savedPaymentMethods: "\uC800\uC7A5\uB41C \uCE74\uB4DC",
12407
+ otherOptions: "\uB354 \uB9CE\uC740 \uC635\uC158",
12404
12408
  more: "\uB354 \uBCF4\uAE30",
12405
12409
  walletDisplayLabel: "{{walletLabel}}",
12406
12410
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -13002,8 +13006,8 @@ var ru_default = {
13002
13006
  selectPaymentMethod: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043F\u043E\u0441\u043E\u0431 \u043E\u043F\u043B\u0430\u0442\u044B",
13003
13007
  moreOptions: "\u0411\u043E\u043B\u044C\u0448\u0435 \u043E\u043F\u0446\u0438\u0439",
13004
13008
  mostPopular: "\u0421\u0430\u043C\u044B\u0435 \u043F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u0435",
13005
- savedPaymentMethods: "\u0421\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u044B \u043E\u043F\u043B\u0430\u0442\u044B",
13006
- otherOptions: "\u0414\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B",
13009
+ savedPaymentMethods: "\u0421\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u043A\u0430\u0440\u0442\u044B",
13010
+ otherOptions: "\u0411\u043E\u043B\u044C\u0448\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432",
13007
13011
  more: "\u0431\u043E\u043B\u044C\u0448\u0435",
13008
13012
  walletDisplayLabel: "{{walletLabel}}",
13009
13013
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -13605,8 +13609,8 @@ var tr_default = {
13605
13609
  selectPaymentMethod: "\xD6deme y\xF6ntemi se\xE7in",
13606
13610
  moreOptions: "Daha fazla se\xE7enek",
13607
13611
  mostPopular: "En pop\xFCler",
13608
- savedPaymentMethods: "Kay\u0131tl\u0131 \xF6deme y\xF6ntemleri",
13609
- otherOptions: "Di\u011Fer se\xE7enekler",
13612
+ savedPaymentMethods: "Kay\u0131tl\u0131 kartlar",
13613
+ otherOptions: "Daha fazla se\xE7enek",
13610
13614
  more: "daha fazla",
13611
13615
  walletDisplayLabel: "{{walletLabel}}",
13612
13616
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -14208,8 +14212,8 @@ var zh_default = {
14208
14212
  selectPaymentMethod: "\u9009\u62E9\u652F\u4ED8\u65B9\u5F0F",
14209
14213
  moreOptions: "\u66F4\u591A\u9009\u9879",
14210
14214
  mostPopular: "\u6700\u53D7\u6B22\u8FCE",
14211
- savedPaymentMethods: "\u5DF2\u4FDD\u5B58\u7684\u652F\u4ED8\u65B9\u5F0F",
14212
- otherOptions: "\u5176\u4ED6\u9009\u9879",
14215
+ savedPaymentMethods: "\u5DF2\u4FDD\u5B58\u7684\u5361\u7247",
14216
+ otherOptions: "\u66F4\u591A\u9009\u9879",
14213
14217
  more: "\u66F4\u591A",
14214
14218
  walletDisplayLabel: "{{walletLabel}}",
14215
14219
  brokerageDisplayLabel: "{{brokerageLabel}}",
@@ -19625,9 +19629,7 @@ import {
19625
19629
  FormOfPaymentType as FormOfPaymentType3
19626
19630
  } from "@funkit/api-base";
19627
19631
  import { lightningChain } from "@funkit/chains";
19628
- import {
19629
- formatCurrencyAndStringify as formatCurrencyAndStringify4
19630
- } from "@funkit/utils";
19632
+ import { formatCurrencyAndStringify as formatCurrencyAndStringify4 } from "@funkit/utils";
19631
19633
  import React92, { useEffect as useEffect33 } from "react";
19632
19634
 
19633
19635
  // src/hooks/useCheckoutTimeEstimate.ts
@@ -20728,30 +20730,51 @@ function getIconFromUiConfig(paymentMethod, iconConfig, defaultIconSize = 12) {
20728
20730
  );
20729
20731
  }
20730
20732
  }
20731
- var getDynamicValueIconComponent = () => {
20732
- const defaultChains = getDefaultChains();
20733
- return /* @__PURE__ */ React92.createElement(Box, { display: "flex", alignItems: "center", justifyContent: "flex-end" }, defaultChains.map(({ id: chainId2 }, index) => {
20734
- const metadata = chainMetadataById[chainId2];
20735
- return /* @__PURE__ */ React92.createElement(
20736
- Box,
20733
+ function resolveConnectWalletChainOrder(configuredOrder) {
20734
+ const defaultChainIds = getDefaultChains().map(({ id }) => String(id));
20735
+ if (!configuredOrder.length) {
20736
+ return defaultChainIds;
20737
+ }
20738
+ const defaultChainIdSet = new Set(defaultChainIds);
20739
+ const prioritized = configuredOrder.map(String).filter((id) => defaultChainIdSet.has(id));
20740
+ const prioritizedSet = new Set(prioritized);
20741
+ const remaining = defaultChainIds.filter((id) => !prioritizedSet.has(id));
20742
+ return [...prioritized, ...remaining];
20743
+ }
20744
+ function MoreIconsIndicator() {
20745
+ return /* @__PURE__ */ React92.createElement(
20746
+ Box,
20747
+ {
20748
+ background: "secondaryBackground",
20749
+ color: "secondaryText",
20750
+ borderRadius: "full",
20751
+ style: { width: 16, height: 16, flexShrink: 0, position: "relative" }
20752
+ },
20753
+ /* @__PURE__ */ React92.createElement(
20754
+ "svg",
20737
20755
  {
20738
- key: chainId2,
20739
- position: "relative",
20740
- style: { right: `${(defaultChains.length - index - 1) * -2}px` }
20756
+ width: "10",
20757
+ height: "10",
20758
+ viewBox: "0 0 10 10",
20759
+ style: {
20760
+ position: "absolute",
20761
+ top: "50%",
20762
+ left: "50%",
20763
+ transform: "translate(-50%,-50%)"
20764
+ }
20741
20765
  },
20742
20766
  /* @__PURE__ */ React92.createElement(
20743
- AsyncImage,
20767
+ "path",
20744
20768
  {
20745
- alt: metadata?.name ?? "",
20746
- borderRadius: "full",
20747
- src: metadata?.iconUrl ?? "",
20748
- height: 12,
20749
- width: 12
20769
+ d: "M5 1v8M1 5h8",
20770
+ stroke: "currentColor",
20771
+ strokeWidth: "1.5",
20772
+ strokeLinecap: "round"
20750
20773
  }
20751
20774
  )
20752
- );
20753
- }));
20754
- };
20775
+ )
20776
+ );
20777
+ }
20755
20778
  function ConnectWalletItem({
20756
20779
  isClickable,
20757
20780
  isActive,
@@ -20762,12 +20785,16 @@ function ConnectWalletItem({
20762
20785
  const { textCustomizations } = useFunkitConfig();
20763
20786
  const { t } = useFunkitTranslation();
20764
20787
  const walletLabel = useWalletLabel();
20788
+ const connectWalletChainIconOrder = useDynamicConfig(
20789
+ "connectwalletchainiconorder"
20790
+ );
20791
+ const chainIds = resolveConnectWalletChainOrder(connectWalletChainIconOrder);
20765
20792
  return /* @__PURE__ */ React92.createElement(
20766
20793
  FunPaymentMethodItem,
20767
20794
  {
20768
20795
  keyIcon: paymentIcon,
20769
20796
  keyText: walletLabel,
20770
- valueIcon: customValueIcon ?? getDynamicValueIconComponent(),
20797
+ valueIcon: customValueIcon ?? /* @__PURE__ */ React92.createElement(SupportedChainList, { chainIdList: chainIds }),
20771
20798
  onClick,
20772
20799
  isDisabled: !isClickable,
20773
20800
  disclaimerText: textCustomizations.paymentMethodSubtitles.accountBalance || t("payment.disclaimerText", {
@@ -20781,39 +20808,26 @@ function ConnectWalletItem({
20781
20808
  }
20782
20809
  function SupportedChainList({
20783
20810
  chainIdList,
20784
- iconSize = 12,
20811
+ iconSize = 16,
20785
20812
  style
20786
20813
  }) {
20787
- return /* @__PURE__ */ React92.createElement(
20788
- Box,
20789
- {
20790
- display: "flex",
20791
- alignItems: "center",
20792
- justifyContent: "flex-end",
20793
- style
20794
- },
20795
- chainIdList.map((chainId2, index) => {
20796
- const metadata = chainMetadataById[chainId2];
20797
- return /* @__PURE__ */ React92.createElement(
20798
- Box,
20799
- {
20800
- key: chainId2,
20801
- position: "relative",
20802
- style: { right: `${(chainIdList.length - index - 1) * -2}px` }
20803
- },
20804
- /* @__PURE__ */ React92.createElement(
20805
- AsyncImage,
20806
- {
20807
- alt: metadata?.name ?? "",
20808
- borderRadius: "full",
20809
- src: metadata?.iconUrl ?? "",
20810
- height: iconSize,
20811
- width: iconSize
20812
- }
20813
- )
20814
- );
20815
- })
20816
- );
20814
+ const visibleChains = chainIdList.slice(0, 4);
20815
+ const hasMore = chainIdList.length > 4;
20816
+ return /* @__PURE__ */ React92.createElement(Box, { display: "flex", alignItems: "center", gap: "2", style }, visibleChains.map((chainId2) => {
20817
+ const metadata = chainMetadataById[chainId2];
20818
+ return /* @__PURE__ */ React92.createElement(
20819
+ AsyncImage,
20820
+ {
20821
+ key: chainId2,
20822
+ alt: metadata?.name ?? "",
20823
+ borderRadius: "full",
20824
+ borderColor: "generalBorderDim",
20825
+ src: metadata?.iconUrl ?? "",
20826
+ height: iconSize,
20827
+ width: iconSize
20828
+ }
20829
+ );
20830
+ }), hasMore && /* @__PURE__ */ React92.createElement(MoreIconsIndicator, null));
20817
20831
  }
20818
20832
  function PaymentMethodIcon({
20819
20833
  paymentIcon,
@@ -20864,7 +20878,7 @@ var ConnectedBluvoPaymentMethodItem = ({
20864
20878
  });
20865
20879
  const hasLowBalance = !isPending && sourceBalance < getUsdMinAmount();
20866
20880
  const isDisabled = disabled || isPending || !!isBalanceError || hasLowBalance || isUserGeoblocked;
20867
- const icon = isPending ? /* @__PURE__ */ React92.createElement(SpinnerIcon, { size: 20 }) : label.icon;
20881
+ const icon = isPending ? /* @__PURE__ */ React92.createElement(SpinnerIcon, { size: 20 }) : /* @__PURE__ */ React92.createElement("div", { style: { borderRadius: "50%", overflow: "hidden" } }, label.icon);
20868
20882
  useEffect33(() => {
20869
20883
  if (isPending) {
20870
20884
  return;
@@ -21062,13 +21076,15 @@ var BrokeragePaymentMethodItem = ({
21062
21076
  const { isUserGeoblocked } = useFunkitUserIp();
21063
21077
  const { t } = useFunkitTranslation();
21064
21078
  const { textCustomizations } = useFunkitConfig();
21065
- const { options: exchangeOptions } = useExchangeOptions({ iconSize: 12 });
21079
+ const { options: exchangeOptions } = useExchangeOptions({ iconSize: 16 });
21066
21080
  const { estimatedTimeText } = useCheckoutTimeEstimate(
21067
21081
  null,
21068
21082
  BROKERAGE_TIME_ESTIMATE,
21069
21083
  PaymentMethod.BROKERAGE,
21070
21084
  false
21071
21085
  );
21086
+ const visibleExchangeOptions = exchangeOptions.slice(0, 4);
21087
+ const hasMoreExchanges = exchangeOptions.length > 4;
21072
21088
  return /* @__PURE__ */ React92.createElement(
21073
21089
  FunPaymentMethodItem,
21074
21090
  {
@@ -21076,7 +21092,17 @@ var BrokeragePaymentMethodItem = ({
21076
21092
  keyIcon: paymentIcon,
21077
21093
  keyText: textCustomizations.brokerageOrExchange,
21078
21094
  onClick,
21079
- valueIcon: isUserGeoblocked ? null : customValueIcon ?? /* @__PURE__ */ React92.createElement(Box, { display: "flex", gap: "2", alignItems: "center" }, exchangeOptions.map((option) => /* @__PURE__ */ React92.createElement(React92.Fragment, { key: brokerageOptionKey(option) }, option.icon))),
21095
+ valueIcon: isUserGeoblocked ? null : customValueIcon ?? /* @__PURE__ */ React92.createElement(Box, { display: "flex", gap: "2", alignItems: "center" }, visibleExchangeOptions.map((option) => /* @__PURE__ */ React92.createElement(
21096
+ "div",
21097
+ {
21098
+ key: brokerageOptionKey(option),
21099
+ style: {
21100
+ borderRadius: "50%",
21101
+ overflow: "hidden"
21102
+ }
21103
+ },
21104
+ option.icon
21105
+ )), hasMoreExchanges && /* @__PURE__ */ React92.createElement(MoreIconsIndicator, null)),
21080
21106
  isDisabled: !isClickable,
21081
21107
  disclaimerText: textCustomizations.paymentMethodSubtitles.brokerageOrExchange || t("payment.disclaimerText", {
21082
21108
  time: estimatedTimeText,
@@ -21336,6 +21362,11 @@ function FopPaymentMethodItem({
21336
21362
  borderRadius: "4"
21337
21363
  }
21338
21364
  );
21365
+ const processingTimeText = isBankTransfer ? FIAT_PROCESSING_TIME : t("payment.instant");
21366
+ const disclaimerText = disclaimerLimit ? t("payment.disclaimerTextWithLimit", {
21367
+ limit: disclaimerLimit,
21368
+ time: processingTimeText
21369
+ }) : processingTimeText;
21339
21370
  return /* @__PURE__ */ React92.createElement(
21340
21371
  FunPaymentMethodItem,
21341
21372
  {
@@ -21344,10 +21375,7 @@ function FopPaymentMethodItem({
21344
21375
  keyIcon,
21345
21376
  keyText: labelText,
21346
21377
  onClick,
21347
- disclaimerText: t("payment.disclaimerTextWithLimit", {
21348
- limit: disclaimerLimit,
21349
- time: isBankTransfer ? FIAT_PROCESSING_TIME : t("payment.instant")
21350
- }),
21378
+ disclaimerText,
21351
21379
  testId: testId || `fop-${labelText.toLowerCase().replace(/\s+/g, "-")}`,
21352
21380
  valueIcon: disabledBadgeReason ? /* @__PURE__ */ React92.createElement(PaymentMethodDisabledBadge, { reason: disabledBadgeReason }) : void 0
21353
21381
  }
@@ -26512,7 +26540,10 @@ var WithdrawContent = ({
26512
26540
  };
26513
26541
 
26514
26542
  // src/modals/WithdrawalModal/WithdrawalMethodSelect.tsx
26515
- import { getWithdrawalFopsLimit, isSyntheticFop as isSyntheticFop2 } from "@funkit/connect-core";
26543
+ import {
26544
+ getWithdrawalFopsDisclaimerLimit,
26545
+ isSyntheticFop as isSyntheticFop2
26546
+ } from "@funkit/connect-core";
26516
26547
  import React139 from "react";
26517
26548
  import { Trans as Trans9 } from "react-i18next";
26518
26549
 
@@ -27147,7 +27178,7 @@ function WithdrawalMethodSelect({
27147
27178
  onCashFopSelect(fop);
27148
27179
  },
27149
27180
  exchangeRatesData: exchangeRates.data,
27150
- getDisclaimerLimit: getWithdrawalFopsLimit,
27181
+ getDisclaimerLimit: (fop, rates) => getWithdrawalFopsDisclaimerLimit(fop, rates, eurMax),
27151
27182
  enableSourceGroupLabels: false,
27152
27183
  isBelowMinimumBalance
27153
27184
  }
@@ -38236,31 +38267,40 @@ function CopyInputDisplayedAddressEN({
38236
38267
  }, 2e3);
38237
38268
  handleCopy();
38238
38269
  }, [isActive, handleCopy, onAddressCopied]);
38239
- return /* @__PURE__ */ React218.createElement(Box, { className: copyButtonWrapper }, /* @__PURE__ */ React218.createElement(Box, { paddingY: "8", paddingX: "12", width: "full" }, /* @__PURE__ */ React218.createElement(Text, { size: "depositAddressFontSize", className: displayedAddressText }, displayAddress)), /* @__PURE__ */ React218.createElement(FunDivider, { borderColor: "mediumStroke" }), /* @__PURE__ */ React218.createElement(Box, { as: "button", onClick: handleClick, className: copyButton }, /* @__PURE__ */ React218.createElement("div", { className: isActive ? copyInputTextBoxActive : copyInputTextBox }, /* @__PURE__ */ React218.createElement("div", { className: isActive ? copyButtonIconActive : copyButtonIcon }, /* @__PURE__ */ React218.createElement(CheckIcon, { className: copyButtonIconBase })), /* @__PURE__ */ React218.createElement(Text, { size: "inputLabel", weight: "inputLabel" }, /* @__PURE__ */ React218.createElement("div", { className: copyInputText }, /* @__PURE__ */ React218.createElement("span", null, "Cop"), /* @__PURE__ */ React218.createElement("span", { className: copyInputTextWrapper }, ["y", " ", ...label.split("")].map((char, i) => /* @__PURE__ */ React218.createElement(
38240
- "span",
38241
- {
38242
- className: copyInputTextDefault,
38243
- key: `${char}-${i}`,
38244
- style: {
38245
- "--animation-name": isActive === null ? "none" : isActive ? textOut : textIn,
38246
- "--animation-delay": `${i * 0.03 * (isActive ? 1 : i * 0.025) + (!isActive ? 0.05 : 0)}s`,
38247
- "--animation-opacity": isActive === false ? "0" : "1"
38248
- }
38249
- },
38250
- char === " " ? /* @__PURE__ */ React218.createElement(React218.Fragment, null, "\xA0") : char
38251
- )), ["ied"].map((char, i) => /* @__PURE__ */ React218.createElement(
38252
- "span",
38270
+ return /* @__PURE__ */ React218.createElement(Box, { className: copyButtonWrapper }, /* @__PURE__ */ React218.createElement(Box, { paddingY: "8", paddingX: "12", width: "full" }, /* @__PURE__ */ React218.createElement(Text, { size: "depositAddressFontSize", className: displayedAddressText }, displayAddress)), /* @__PURE__ */ React218.createElement(FunDivider, { borderColor: "mediumStroke" }), /* @__PURE__ */ React218.createElement(
38271
+ Box,
38253
38272
  {
38254
- className: copyInputTextActive,
38255
- key: `${char}-${i}`,
38256
- style: {
38257
- "--animation-name": isActive === null ? "none" : isActive ? textIn : textOut,
38258
- "--animation-delay": `${i * 0.03 * (!isActive ? 1 : i * 0.05) + (isActive ? 0.1 : 0)}s`,
38259
- "--animation-opacity": "0"
38260
- }
38273
+ as: "button",
38274
+ onClick: handleClick,
38275
+ className: copyButton,
38276
+ testId: "copy-address-button"
38261
38277
  },
38262
- char
38263
- ))))))));
38278
+ /* @__PURE__ */ React218.createElement("div", { className: isActive ? copyInputTextBoxActive : copyInputTextBox }, /* @__PURE__ */ React218.createElement("div", { className: isActive ? copyButtonIconActive : copyButtonIcon }, /* @__PURE__ */ React218.createElement(CheckIcon, { className: copyButtonIconBase })), /* @__PURE__ */ React218.createElement(Text, { size: "inputLabel", weight: "inputLabel" }, /* @__PURE__ */ React218.createElement("div", { className: copyInputText }, /* @__PURE__ */ React218.createElement("span", null, "Cop"), /* @__PURE__ */ React218.createElement("span", { className: copyInputTextWrapper }, ["y", " ", ...label.split("")].map((char, i) => /* @__PURE__ */ React218.createElement(
38279
+ "span",
38280
+ {
38281
+ className: copyInputTextDefault,
38282
+ key: `${char}-${i}`,
38283
+ style: {
38284
+ "--animation-name": isActive === null ? "none" : isActive ? textOut : textIn,
38285
+ "--animation-delay": `${i * 0.03 * (isActive ? 1 : i * 0.025) + (!isActive ? 0.05 : 0)}s`,
38286
+ "--animation-opacity": isActive === false ? "0" : "1"
38287
+ }
38288
+ },
38289
+ char === " " ? /* @__PURE__ */ React218.createElement(React218.Fragment, null, "\xA0") : char
38290
+ )), ["ied"].map((char, i) => /* @__PURE__ */ React218.createElement(
38291
+ "span",
38292
+ {
38293
+ className: copyInputTextActive,
38294
+ key: `${char}-${i}`,
38295
+ style: {
38296
+ "--animation-name": isActive === null ? "none" : isActive ? textIn : textOut,
38297
+ "--animation-delay": `${i * 0.03 * (!isActive ? 1 : i * 0.05) + (isActive ? 0.1 : 0)}s`,
38298
+ "--animation-opacity": "0"
38299
+ }
38300
+ },
38301
+ char
38302
+ ))))))
38303
+ ));
38264
38304
  }
38265
38305
  function CopyInputDisplayedAddressI18n({
38266
38306
  address,
@@ -38283,7 +38323,16 @@ function CopyInputDisplayedAddressI18n({
38283
38323
  }, 2e3);
38284
38324
  handleCopy();
38285
38325
  }, [isActive, handleCopy]);
38286
- return /* @__PURE__ */ React218.createElement(Box, { className: copyButtonWrapper }, /* @__PURE__ */ React218.createElement(Box, { paddingY: "8", paddingX: "12", width: "full" }, /* @__PURE__ */ React218.createElement(Text, { size: "depositAddressFontSize", className: displayedAddressText }, displayAddress)), /* @__PURE__ */ React218.createElement(FunDivider, { borderColor: "mediumStroke" }), /* @__PURE__ */ React218.createElement(Box, { as: "button", onClick: handleClick, className: copyButton }, /* @__PURE__ */ React218.createElement("div", { className: copyInputTextBox }, /* @__PURE__ */ React218.createElement("div", { className: copyButtonIcon }, /* @__PURE__ */ React218.createElement(CheckIcon, { className: copyButtonIconBase })), /* @__PURE__ */ React218.createElement(Text, { size: "inputLabel", weight: "inputLabel" }, /* @__PURE__ */ React218.createElement("div", { className: copyInputText }, buttonText)))));
38326
+ return /* @__PURE__ */ React218.createElement(Box, { className: copyButtonWrapper }, /* @__PURE__ */ React218.createElement(Box, { paddingY: "8", paddingX: "12", width: "full" }, /* @__PURE__ */ React218.createElement(Text, { size: "depositAddressFontSize", className: displayedAddressText }, displayAddress)), /* @__PURE__ */ React218.createElement(FunDivider, { borderColor: "mediumStroke" }), /* @__PURE__ */ React218.createElement(
38327
+ Box,
38328
+ {
38329
+ as: "button",
38330
+ onClick: handleClick,
38331
+ className: copyButton,
38332
+ testId: "copy-address-button"
38333
+ },
38334
+ /* @__PURE__ */ React218.createElement("div", { className: copyInputTextBox }, /* @__PURE__ */ React218.createElement("div", { className: copyButtonIcon }, /* @__PURE__ */ React218.createElement(CheckIcon, { className: copyButtonIconBase })), /* @__PURE__ */ React218.createElement(Text, { size: "inputLabel", weight: "inputLabel" }, /* @__PURE__ */ React218.createElement("div", { className: copyInputText }, buttonText)))
38335
+ ));
38287
38336
  }
38288
38337
  function CopyInputDisplayedAddress(props) {
38289
38338
  const { i18n: i18n2 } = useFunkitTranslation();
@@ -41990,7 +42039,7 @@ var BottomLinks = ({ links }) => {
41990
42039
  };
41991
42040
 
41992
42041
  // src/components/TransferTokenDetails/TransferTokenDetails.tsx
41993
- import { formatNumberAndStringify as formatNumberAndStringify2 } from "@funkit/utils";
42042
+ import { formatNumberAndStringify } from "@funkit/utils";
41994
42043
  import React256 from "react";
41995
42044
  import { Trans as Trans21 } from "react-i18next";
41996
42045
 
@@ -42295,7 +42344,7 @@ var TransferTokenDetails = ({
42295
42344
  {
42296
42345
  text: `${estPriceImpact.label}:`,
42297
42346
  prefix: estPriceImpact.value > 0 ? "< " : "",
42298
- value: `${formatNumberAndStringify2(estPriceImpact.value, void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}%`,
42347
+ value: `${formatNumberAndStringify(estPriceImpact.value, void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}%`,
42299
42348
  icon: /* @__PURE__ */ React256.createElement(DollarIcon, null),
42300
42349
  tooltip: /* @__PURE__ */ React256.createElement(
42301
42350
  FunTooltip,
@@ -42324,7 +42373,7 @@ var TransferTokenDetails = ({
42324
42373
  {
42325
42374
  text: `${maxSlippage.label}:`,
42326
42375
  prefix: maxSlippage.value > 0 ? `${t("common.auto")} \u2022 ` : "",
42327
- value: `${formatNumberAndStringify2(maxSlippage.value, void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}%`,
42376
+ value: `${formatNumberAndStringify(maxSlippage.value, void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}%`,
42328
42377
  icon: /* @__PURE__ */ React256.createElement(PercentageIcon, null),
42329
42378
  tooltip: /* @__PURE__ */ React256.createElement(
42330
42379
  FunTooltip,
@@ -21,10 +21,10 @@ interface FormOfPaymentsListProps {
21
21
  isDisabled?: boolean;
22
22
  /**
23
23
  * Maps a FOP to its disclaimer-limit string. Defaults to the rounded deposit
24
- * limit (getFopsLimit); the withdrawal off-ramp passes getWithdrawalFopsLimit
25
- * so the user's exact withdrawable balance isn't rounded down.
24
+ * limit (getFopsLimit). Return undefined to omit the limit and show only the
25
+ * processing time (the withdrawal off-ramp hides limits).
26
26
  */
27
- getDisclaimerLimit?: (fop: SwappedFormOfPayment, exchangeRates: ExchangeRates | undefined) => string;
27
+ getDisclaimerLimit?: (fop: SwappedFormOfPayment, exchangeRates: ExchangeRates | undefined) => string | undefined;
28
28
  /**
29
29
  * Withdrawal off-ramp only: balance is below the cash sell minimum, so every
30
30
  * cash method is disabled with a "Low Balance" badge. A single flag is enough
@@ -0,0 +1 @@
1
+ export declare const scrollableIframeWrapper: string;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
- xdefiWallet
4
- } from "./chunk-JN5I3DNC.js";
3
+ zealWallet
4
+ } from "./chunk-52QXXLDS.js";
5
5
  import {
6
6
  zerionWallet
7
7
  } from "./chunk-SWFF3TWJ.js";
@@ -27,14 +27,14 @@ import {
27
27
  walletConnectWallet
28
28
  } from "./chunk-3FCWJRI4.js";
29
29
  import {
30
- zealWallet
31
- } from "./chunk-52QXXLDS.js";
32
- import {
33
- rabbyWallet
34
- } from "./chunk-RB66PKPA.js";
30
+ xdefiWallet
31
+ } from "./chunk-JN5I3DNC.js";
35
32
  import {
36
33
  rainbowWallet
37
34
  } from "./chunk-W2LCLDPX.js";
35
+ import {
36
+ kresusWallet
37
+ } from "./chunk-RICTB3FA.js";
38
38
  import {
39
39
  ramperWallet
40
40
  } from "./chunk-OQB55QXP.js";
@@ -56,9 +56,6 @@ import {
56
56
  import {
57
57
  metaMaskWallet
58
58
  } from "./chunk-YO2K4MBH.js";
59
- import {
60
- mewWallet
61
- } from "./chunk-MQM45ADF.js";
62
59
  import {
63
60
  oktoWallet
64
61
  } from "./chunk-YWOVAU6O.js";
@@ -77,6 +74,9 @@ import {
77
74
  import {
78
75
  phantomWallet
79
76
  } from "./chunk-QY53O7WG.js";
77
+ import {
78
+ rabbyWallet
79
+ } from "./chunk-RB66PKPA.js";
80
80
  import {
81
81
  foxWallet
82
82
  } from "./chunk-GUQM4QSL.js";
@@ -92,30 +92,30 @@ import {
92
92
  import {
93
93
  gateWallet
94
94
  } from "./chunk-JPN6TWIT.js";
95
+ import {
96
+ ledgerWallet
97
+ } from "./chunk-RPV27V2Y.js";
95
98
  import {
96
99
  injectedWallet
97
100
  } from "./chunk-T6LGKC3F.js";
98
101
  import {
99
- kresusWallet
100
- } from "./chunk-RICTB3FA.js";
102
+ mewWallet
103
+ } from "./chunk-MQM45ADF.js";
101
104
  import {
102
- ledgerWallet
103
- } from "./chunk-RPV27V2Y.js";
105
+ clvWallet
106
+ } from "./chunk-OEEGYENV.js";
104
107
  import {
105
108
  bybitWallet
106
109
  } from "./chunk-OX37G4YT.js";
107
- import {
108
- clvWallet
109
- } from "./chunk-OEEGYENV.js";
110
110
  import {
111
111
  coin98Wallet
112
112
  } from "./chunk-WAHGI5L7.js";
113
- import {
114
- coinbaseWallet
115
- } from "./chunk-2DLDAZRH.js";
116
113
  import {
117
114
  coreWallet
118
115
  } from "./chunk-4NV5BYRP.js";
116
+ import {
117
+ coinbaseWallet
118
+ } from "./chunk-2DLDAZRH.js";
119
119
  import {
120
120
  dawnWallet
121
121
  } from "./chunk-G2PHTVL6.js";
@@ -125,24 +125,24 @@ import {
125
125
  import {
126
126
  enkryptWallet
127
127
  } from "./chunk-HBQK5RD5.js";
128
- import {
129
- argentWallet
130
- } from "./chunk-NTMBEOR2.js";
131
- import {
132
- bifrostWallet
133
- } from "./chunk-IULPZP2Q.js";
134
128
  import {
135
129
  bitgetWallet
136
130
  } from "./chunk-TKB2OY6G.js";
131
+ import {
132
+ argentWallet
133
+ } from "./chunk-NTMBEOR2.js";
137
134
  import {
138
135
  bitskiWallet
139
136
  } from "./chunk-7HRFUZFX.js";
140
137
  import {
141
- bloomWallet
142
- } from "./chunk-PJ7Y57EH.js";
138
+ bifrostWallet
139
+ } from "./chunk-IULPZP2Q.js";
143
140
  import {
144
141
  bitverseWallet
145
142
  } from "./chunk-NSK6A7TI.js";
143
+ import {
144
+ bloomWallet
145
+ } from "./chunk-PJ7Y57EH.js";
146
146
  import "./chunk-N4IJLYFY.js";
147
147
  import {
148
148
  braveWallet
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funkit/connect",
3
- "version": "10.1.0",
3
+ "version": "10.1.1",
4
4
  "description": "Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.",
5
5
  "files": [
6
6
  "dist",
@@ -111,9 +111,9 @@
111
111
  "uuid": "^11.1.1",
112
112
  "@funkit/api-base": "6.0.0",
113
113
  "@funkit/chains": "2.1.3",
114
- "@funkit/connect-core": "1.6.2",
115
- "@funkit/utils": "4.0.0",
116
- "@funkit/fun-relay": "2.9.0"
114
+ "@funkit/connect-core": "1.7.0",
115
+ "@funkit/fun-relay": "2.9.0",
116
+ "@funkit/utils": "4.0.0"
117
117
  },
118
118
  "repository": {
119
119
  "type": "git",
@@ -1,4 +1,8 @@
1
1
  "use client";
2
+ import {
3
+ POLYMARKET_PERPS_ROUTING_ID,
4
+ POLYMARKET_PREDICTIONS_ROUTING_ID
5
+ } from "./chunk-YFHTV7DT.js";
2
6
  import {
3
7
  FunInput,
4
8
  FunSkeletonBlock,
@@ -12,10 +16,6 @@ import {
12
16
  import {
13
17
  useFunkitTranslation
14
18
  } from "./chunk-STLOQEN7.js";
15
- import {
16
- POLYMARKET_PERPS_ROUTING_ID,
17
- POLYMARKET_PREDICTIONS_ROUTING_ID
18
- } from "./chunk-YFHTV7DT.js";
19
19
  import {
20
20
  POLYGON_USDCE,
21
21
  PUSD_TOKEN