@deframe-sdk/components 0.1.77 → 0.1.79

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
@@ -7127,6 +7127,7 @@ var SwapFromCardViewSimple = ({
7127
7127
  onAmountChange,
7128
7128
  amountUsdFormatted,
7129
7129
  isAmountUsdLoading,
7130
+ isBalanceLoading,
7130
7131
  field,
7131
7132
  percentageOptions,
7132
7133
  onPercentageClick,
@@ -7265,7 +7266,7 @@ var SwapFromCardViewSimple = ({
7265
7266
  {
7266
7267
  "data-test-id": "swap-from-card-simple-balance-value",
7267
7268
  className: amountHasError ? "text-[color:var(--deframe-widget-color-state-error)]" : "text-[color:var(--deframe-widget-color-text-secondary)]",
7268
- children: balanceFormatted
7269
+ children: isBalanceLoading ? /* @__PURE__ */ jsxRuntime.jsx(LoadingDots, {}) : balanceFormatted
7269
7270
  }
7270
7271
  )
7271
7272
  ]
@@ -7284,7 +7285,7 @@ var SwapFromCardViewSimple = ({
7284
7285
  {
7285
7286
  "data-test-id": "swap-from-card-simple-balance-value",
7286
7287
  className: amountHasError ? "text-[color:var(--deframe-widget-color-state-error)]" : "text-[color:var(--deframe-widget-color-text-secondary)]",
7287
- children: balanceFormatted
7288
+ children: isBalanceLoading ? /* @__PURE__ */ jsxRuntime.jsx(LoadingDots, {}) : balanceFormatted
7288
7289
  }
7289
7290
  )
7290
7291
  ]
@@ -7697,7 +7698,8 @@ var SwapToCardViewSimple = ({
7697
7698
  outputAmount,
7698
7699
  isOutputLoading,
7699
7700
  outputUsdFormatted,
7700
- isOutputUsdLoading
7701
+ isOutputUsdLoading,
7702
+ isBalanceLoading
7701
7703
  }) => {
7702
7704
  const handleTokenClick = onNetworkAndAssetClick != null ? onNetworkAndAssetClick : onTokenClick;
7703
7705
  const isEmpty = !outputAmount || Number(outputAmount) === 0;
@@ -7909,7 +7911,7 @@ var SwapToCardViewSimple = ({
7909
7911
  {
7910
7912
  "data-test-id": "swap-to-simple-balance-value",
7911
7913
  className: "text-[color:var(--deframe-widget-color-text-secondary)]",
7912
- children: balanceFormatted
7914
+ children: isBalanceLoading ? /* @__PURE__ */ jsxRuntime.jsx(LoadingDots, {}) : balanceFormatted
7913
7915
  }
7914
7916
  )
7915
7917
  ]
@@ -12338,6 +12340,7 @@ var EarnAmountInputView = ({
12338
12340
  onChange,
12339
12341
  ariaLabel,
12340
12342
  dollarAmountFormatted,
12343
+ disabled,
12341
12344
  availableBalanceFormatted
12342
12345
  }) => {
12343
12346
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 flex flex-col items-end justify-between min-h-[86px] text-right", children: [
@@ -12351,6 +12354,7 @@ var EarnAmountInputView = ({
12351
12354
  autoComplete: "off",
12352
12355
  "aria-label": ariaLabel,
12353
12356
  value,
12357
+ disabled,
12354
12358
  min: "0",
12355
12359
  step: "any",
12356
12360
  className: "[font-size:var(--deframe-widget-font-size-xxl)] [font-weight:var(--deframe-widget-font-weight-extrabold)] bg-transparent outline-none text-right w-full min-w-[105px] placeholder:text-[color:var(--deframe-widget-color-text-primary-disabled)] [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
@@ -13007,7 +13011,8 @@ var EarnAmountInputSimpleView = ({
13007
13011
  value,
13008
13012
  onChange,
13009
13013
  ariaLabel,
13010
- dollarAmountFormatted
13014
+ dollarAmountFormatted,
13015
+ disabled
13011
13016
  }) => {
13012
13017
  const isEmpty = !value || value === "0";
13013
13018
  const fontSizeClass = useResponsiveFontSize(value || "");
@@ -13048,9 +13053,10 @@ var EarnAmountInputSimpleView = ({
13048
13053
  placeholder: "0",
13049
13054
  "aria-label": ariaLabel,
13050
13055
  value,
13056
+ disabled,
13051
13057
  onChange,
13052
13058
  onWheel: (e) => e.currentTarget.blur(),
13053
- className: inputClasses
13059
+ className: tailwindMerge.twMerge(inputClasses, "disabled:cursor-not-allowed disabled:opacity-50")
13054
13060
  }
13055
13061
  ),
13056
13062
  dollarAmountFormatted && /* @__PURE__ */ jsxRuntime.jsx(
@@ -18935,6 +18941,388 @@ var OfframpFailedSimpleView = () => {
18935
18941
  }
18936
18942
  ) });
18937
18943
  };
18944
+
18945
+ // src/stories/wallet-transfer-flow-view/layoutClasses.ts
18946
+ var walletTransferFrameClasses = [
18947
+ "relative mx-auto mt-[40px] flex w-[620px] max-w-[calc(100vw-32px)] flex-col overflow-hidden",
18948
+ "rounded-[var(--deframe-widget-size-radius-xs)]",
18949
+ "bg-[var(--deframe-widget-color-bg-subtle)]",
18950
+ "px-[var(--deframe-widget-size-padding-x-lg)] py-[var(--deframe-widget-size-padding-y-lg)]",
18951
+ "font-[var(--deframe-widget-font-family)]",
18952
+ "text-[color:var(--deframe-widget-color-text-primary)]"
18953
+ ].join(" ");
18954
+ var walletTransferHeaderClasses = [
18955
+ "flex items-start gap-[var(--deframe-widget-size-gap-sm)]",
18956
+ "px-[var(--deframe-widget-size-padding-x-sm)]"
18957
+ ].join(" ");
18958
+ var walletTransferTitleClasses = [
18959
+ "text-[21px]",
18960
+ "[font-weight:var(--deframe-widget-font-weight-bold)]",
18961
+ "leading-[1.2]",
18962
+ "text-[color:var(--deframe-widget-color-text-primary)]"
18963
+ ].join(" ");
18964
+ var walletTransferSubtitleClasses = [
18965
+ "mt-[var(--deframe-widget-size-gap-xs)]",
18966
+ "text-[14px]",
18967
+ "leading-[1.35]",
18968
+ "text-[color:var(--deframe-widget-color-text-primary)]"
18969
+ ].join(" ");
18970
+ var walletTransferBodyClasses = [
18971
+ "flex flex-col gap-[var(--deframe-widget-size-gap-md)]",
18972
+ "px-[var(--deframe-widget-size-padding-x-sm)]",
18973
+ "py-[var(--deframe-widget-size-padding-y-md)]"
18974
+ ].join(" ");
18975
+ var walletTransferInputCardClasses = [
18976
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
18977
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
18978
+ "bg-[var(--deframe-widget-color-bg-subtle)]",
18979
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-md)]"
18980
+ ].join(" ");
18981
+ var walletTransferTokenSelectorClasses = [
18982
+ "bg-[var(--deframe-widget-color-bg-raised)]",
18983
+ "hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-raised)_92%,transparent)]"
18984
+ ].join(" ");
18985
+ var walletTransferFooterClasses = [
18986
+ "px-[var(--deframe-widget-size-padding-x-sm)]",
18987
+ "pt-[var(--deframe-widget-size-padding-y-md)]"
18988
+ ].join(" ");
18989
+ function WalletOnchainDepositView({
18990
+ token,
18991
+ network,
18992
+ depositAddress,
18993
+ warningMessage,
18994
+ isPreparing,
18995
+ isReady,
18996
+ qrCode,
18997
+ onTokenClick,
18998
+ onAddressCopy,
18999
+ onSubmit,
19000
+ labels,
19001
+ className
19002
+ }) {
19003
+ var _a;
19004
+ const selectedToken = token ? { symbol: token.symbol, logoURI: token.logoURI } : null;
19005
+ const hasSelection = Boolean(token && network);
19006
+ const canSubmit = hasSelection && isReady;
19007
+ const submitLabel = canSubmit ? labels.submitReady : labels.submitIdle;
19008
+ const showAddress = canSubmit && depositAddress;
19009
+ const showIdle = !isPreparing && !showAddress;
19010
+ const addressCopyHandler = React6__namespace.useCallback(() => {
19011
+ if (!depositAddress) return;
19012
+ onAddressCopy == null ? void 0 : onAddressCopy(depositAddress);
19013
+ }, [depositAddress, onAddressCopy]);
19014
+ return /* @__PURE__ */ jsxRuntime.jsxs(
19015
+ "div",
19016
+ {
19017
+ "data-test-id": "wallet-onchain-deposit-view",
19018
+ className: tailwindMerge.twMerge(
19019
+ walletTransferFrameClasses,
19020
+ className
19021
+ ),
19022
+ children: [
19023
+ /* @__PURE__ */ jsxRuntime.jsx("header", { className: walletTransferHeaderClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
19024
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: walletTransferTitleClasses, children: labels.title }),
19025
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: walletTransferSubtitleClasses, children: labels.subtitle })
19026
+ ] }) }),
19027
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: walletTransferBodyClasses, children: [
19028
+ /* @__PURE__ */ jsxRuntime.jsx(
19029
+ "section",
19030
+ {
19031
+ "data-test-id": "wallet-onchain-deposit-view-asset-card",
19032
+ className: walletTransferInputCardClasses,
19033
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19034
+ EarnTokenSelectorSimpleView,
19035
+ {
19036
+ selectedToken,
19037
+ onTokenClick,
19038
+ onNetworkAndAssetClick: onTokenClick,
19039
+ isLoading: false,
19040
+ selectTokenLabel: labels.tokenPlaceholder,
19041
+ chainLabel: (_a = network == null ? void 0 : network.name) != null ? _a : labels.networkPlaceholder,
19042
+ chainImage: network == null ? void 0 : network.iconUrl,
19043
+ className: tailwindMerge.twMerge(walletTransferTokenSelectorClasses, "w-full")
19044
+ }
19045
+ )
19046
+ }
19047
+ ),
19048
+ /* @__PURE__ */ jsxRuntime.jsx(
19049
+ EarnInlineNotificationSimpleView,
19050
+ {
19051
+ variant: "warning",
19052
+ message: warningMessage
19053
+ }
19054
+ ),
19055
+ /* @__PURE__ */ jsxRuntime.jsxs(
19056
+ "section",
19057
+ {
19058
+ "data-test-id": "wallet-onchain-deposit-view-address-card",
19059
+ className: walletTransferInputCardClasses,
19060
+ children: [
19061
+ isPreparing && /* @__PURE__ */ jsxRuntime.jsx(DepositSkeleton, {}),
19062
+ showAddress && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-md)]", children: [
19063
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
19064
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[13px] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)]", children: labels.addressTitle }),
19065
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[12px] leading-[1.35] text-[color:var(--deframe-widget-color-text-tertiary)]", children: labels.addressSubtitle })
19066
+ ] }),
19067
+ /* @__PURE__ */ jsxRuntime.jsx(AddressDisplay, { address: depositAddress, onCopy: addressCopyHandler }),
19068
+ qrCode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-[var(--deframe-widget-size-radius-sm)] bg-white p-3", children: qrCode }) })
19069
+ ] }),
19070
+ showIdle && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-[180px] flex-col items-center justify-center gap-[var(--deframe-widget-size-gap-xs)] text-center", children: [
19071
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[14px] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)]", children: labels.idleTitle }),
19072
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-[280px] text-[13px] leading-[1.4] text-[color:var(--deframe-widget-color-text-secondary)]", children: labels.idleSubtitle })
19073
+ ] })
19074
+ ]
19075
+ }
19076
+ )
19077
+ ] }),
19078
+ /* @__PURE__ */ jsxRuntime.jsx("footer", { className: walletTransferFooterClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
19079
+ PrimaryButton,
19080
+ {
19081
+ type: "button",
19082
+ disabled: !canSubmit,
19083
+ onClick: onSubmit,
19084
+ className: "h-12 rounded-[var(--deframe-widget-size-radius-sm)] text-[15px]",
19085
+ children: submitLabel
19086
+ }
19087
+ ) })
19088
+ ]
19089
+ }
19090
+ );
19091
+ }
19092
+ function DepositSkeleton() {
19093
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-[180px] flex-col items-center justify-center gap-[var(--deframe-widget-size-gap-md)]", children: [
19094
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { width: "70%", height: "1rem", variant: "text", shimmer: true }),
19095
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { width: "100%", height: "2rem", variant: "text", shimmer: true }),
19096
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { width: "8rem", height: "8rem", variant: "rect", className: "rounded-[var(--deframe-widget-size-radius-sm)]", shimmer: true })
19097
+ ] });
19098
+ }
19099
+ function WalletOnchainWithdrawView({
19100
+ token,
19101
+ network,
19102
+ formattedBalance,
19103
+ amount,
19104
+ formattedAmountValue,
19105
+ destinationAddress,
19106
+ destinationNetwork,
19107
+ details,
19108
+ isProcessing,
19109
+ isAmountDisabled,
19110
+ showMaxButton,
19111
+ minAmountWarning,
19112
+ walletError,
19113
+ transferError,
19114
+ finalWarning,
19115
+ submitDisabled,
19116
+ submitLabel,
19117
+ onTokenClick,
19118
+ onAmountChange,
19119
+ onMaxClick,
19120
+ onDestinationAddressChange,
19121
+ onSubmit,
19122
+ labels,
19123
+ className
19124
+ }) {
19125
+ var _a;
19126
+ const [isDetailsOpen, setIsDetailsOpen] = React6__namespace.useState(false);
19127
+ const selectedToken = token ? { symbol: token.symbol, logoURI: token.logoURI } : null;
19128
+ const hasToken = Boolean(token && network);
19129
+ const hasAmountAlert = Boolean(minAmountWarning || walletError);
19130
+ const hasAddressAlert = Boolean(transferError);
19131
+ const tokenSelectorClick = isProcessing ? void 0 : onTokenClick;
19132
+ const destinationNetworkText = destinationNetwork ? `${labels.destinationNetworkHint}: ${destinationNetwork.name}` : labels.destinationNetworkEmpty;
19133
+ React6__namespace.useEffect(() => {
19134
+ setIsDetailsOpen(Boolean(details));
19135
+ }, [details]);
19136
+ const amountCardClasses = tailwindMerge.twMerge(
19137
+ walletTransferInputCardClasses,
19138
+ "transition-[border-color,background] duration-200",
19139
+ hasAmountAlert ? "border-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_32%,transparent)] bg-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_16%,transparent)]" : ""
19140
+ );
19141
+ const addressCardClasses = tailwindMerge.twMerge(
19142
+ walletTransferInputCardClasses,
19143
+ "transition-[border-color,background] duration-200",
19144
+ hasAddressAlert ? "border-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_32%,transparent)] bg-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_16%,transparent)]" : ""
19145
+ );
19146
+ const addressInputWrapperClasses = tailwindMerge.twMerge(
19147
+ "flex min-h-[34px] items-center border-0 bg-transparent transition-[color] duration-150",
19148
+ hasAddressAlert ? "text-[color:var(--deframe-widget-color-state-error)]" : "focus-within:text-[color:var(--deframe-widget-color-text-primary)]"
19149
+ );
19150
+ return /* @__PURE__ */ jsxRuntime.jsxs(
19151
+ "div",
19152
+ {
19153
+ "data-test-id": "wallet-onchain-withdraw-view",
19154
+ className: tailwindMerge.twMerge(
19155
+ walletTransferFrameClasses,
19156
+ className
19157
+ ),
19158
+ children: [
19159
+ /* @__PURE__ */ jsxRuntime.jsx("header", { className: walletTransferHeaderClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
19160
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: walletTransferTitleClasses, children: labels.title }),
19161
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: walletTransferSubtitleClasses, children: labels.subtitle })
19162
+ ] }) }),
19163
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: walletTransferBodyClasses, children: [
19164
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { "data-test-id": "wallet-onchain-withdraw-view-amount-card", className: amountCardClasses, children: [
19165
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)]", children: [
19166
+ /* @__PURE__ */ jsxRuntime.jsx(
19167
+ EarnTokenSelectorSimpleView,
19168
+ {
19169
+ selectedToken,
19170
+ onTokenClick,
19171
+ onNetworkAndAssetClick: tokenSelectorClick,
19172
+ isLoading: false,
19173
+ selectTokenLabel: labels.tokenPlaceholder,
19174
+ chainLabel: (_a = network == null ? void 0 : network.name) != null ? _a : labels.sourceNetworkPlaceholder,
19175
+ chainImage: network == null ? void 0 : network.iconUrl,
19176
+ className: walletTransferTokenSelectorClasses
19177
+ }
19178
+ ),
19179
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-10 w-px shrink-0 bg-[var(--deframe-widget-color-border-secondary)]" }),
19180
+ /* @__PURE__ */ jsxRuntime.jsx(
19181
+ EarnAmountInputSimpleView,
19182
+ {
19183
+ value: amount,
19184
+ onChange: (event) => onAmountChange(event.target.value),
19185
+ ariaLabel: "Amount to withdraw",
19186
+ dollarAmountFormatted: formattedAmountValue,
19187
+ disabled: isAmountDisabled || isProcessing
19188
+ }
19189
+ )
19190
+ ] }),
19191
+ hasToken && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-[var(--deframe-widget-size-gap-sm)] flex items-center justify-between gap-[var(--deframe-widget-size-gap-sm)]", children: [
19192
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 truncate text-[13px] text-[color:var(--deframe-widget-color-text-secondary)]", children: [
19193
+ labels.balanceLabel,
19194
+ ": ",
19195
+ formattedBalance
19196
+ ] }),
19197
+ showMaxButton && /* @__PURE__ */ jsxRuntime.jsx(
19198
+ "button",
19199
+ {
19200
+ type: "button",
19201
+ onClick: onMaxClick,
19202
+ disabled: isAmountDisabled || isProcessing,
19203
+ className: "shrink-0 cursor-pointer text-[13px] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-brand-primary)] transition-opacity hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50",
19204
+ children: labels.maxLabel
19205
+ }
19206
+ )
19207
+ ] }),
19208
+ minAmountWarning && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-[var(--deframe-widget-size-gap-sm)]", children: /* @__PURE__ */ jsxRuntime.jsx(EarnInlineNotificationSimpleView, { variant: "warning", message: minAmountWarning }) }),
19209
+ walletError && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-[var(--deframe-widget-size-gap-sm)]", children: /* @__PURE__ */ jsxRuntime.jsx(EarnInlineNotificationSimpleView, { variant: "error", message: walletError }) })
19210
+ ] }),
19211
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { "data-test-id": "wallet-onchain-withdraw-view-address-card", className: addressCardClasses, children: [
19212
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-sm)]", children: [
19213
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[13px] [font-weight:var(--deframe-widget-font-weight-medium)] text-[color:var(--deframe-widget-color-text-secondary)]", children: labels.destinationAddressLabel }),
19214
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: addressInputWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
19215
+ "input",
19216
+ {
19217
+ type: "text",
19218
+ value: destinationAddress,
19219
+ onChange: (event) => onDestinationAddressChange(event.target.value),
19220
+ placeholder: labels.destinationAddressPlaceholder,
19221
+ disabled: isProcessing,
19222
+ "aria-label": labels.destinationAddressLabel,
19223
+ spellCheck: false,
19224
+ autoComplete: "off",
19225
+ className: "w-full bg-transparent text-[14px] leading-[1.35] text-[color:var(--deframe-widget-color-text-primary)] outline-none placeholder:text-[color:var(--deframe-widget-color-text-secondary)] disabled:cursor-not-allowed disabled:opacity-50"
19226
+ }
19227
+ ) })
19228
+ ] }),
19229
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-[var(--deframe-widget-size-gap-sm)] flex items-center justify-between gap-[var(--deframe-widget-size-gap-sm)] border-t border-[color:var(--deframe-widget-color-border-secondary)] pt-[var(--deframe-widget-size-gap-sm)]", children: [
19230
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[12px] text-[color:var(--deframe-widget-color-text-tertiary)]", children: labels.destinationNetworkLabel }),
19231
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-right text-[12px] [font-weight:var(--deframe-widget-font-weight-medium)] text-[color:var(--deframe-widget-color-text-secondary)]", children: destinationNetworkText })
19232
+ ] }),
19233
+ transferError && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-[var(--deframe-widget-size-gap-sm)]", children: /* @__PURE__ */ jsxRuntime.jsx(EarnInlineNotificationSimpleView, { variant: "error", message: transferError }) })
19234
+ ] }),
19235
+ /* @__PURE__ */ jsxRuntime.jsx(EarnInlineNotificationSimpleView, { variant: "info", message: labels.infoMessage }),
19236
+ finalWarning && /* @__PURE__ */ jsxRuntime.jsx(EarnInlineNotificationSimpleView, { variant: "warning", message: finalWarning }),
19237
+ details && /* @__PURE__ */ jsxRuntime.jsxs("section", { className: walletTransferInputCardClasses, children: [
19238
+ /* @__PURE__ */ jsxRuntime.jsxs(
19239
+ "button",
19240
+ {
19241
+ type: "button",
19242
+ onClick: () => setIsDetailsOpen((value) => !value),
19243
+ className: "flex w-full items-center justify-between gap-[var(--deframe-widget-size-gap-md)] text-left",
19244
+ children: [
19245
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[13px] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)]", children: labels.detailsTitle }),
19246
+ /* @__PURE__ */ jsxRuntime.jsx(
19247
+ md.MdOutlineExpandMore,
19248
+ {
19249
+ className: tailwindMerge.twMerge("h-5 w-5 shrink-0 text-[color:var(--deframe-widget-color-text-secondary)] transition-transform", isDetailsOpen && "rotate-180"),
19250
+ "aria-hidden": "true"
19251
+ }
19252
+ )
19253
+ ]
19254
+ }
19255
+ ),
19256
+ isDetailsOpen && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-[var(--deframe-widget-size-gap-md)] flex flex-col gap-[var(--deframe-widget-size-gap-sm)]", children: [
19257
+ /* @__PURE__ */ jsxRuntime.jsx(DetailRow2, { label: labels.detailsAmountLabel, value: details.amount }),
19258
+ /* @__PURE__ */ jsxRuntime.jsx(DetailRow2, { label: labels.detailsFeeLabel, value: details.fee }),
19259
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-[color:var(--deframe-widget-color-border-secondary)] pt-[var(--deframe-widget-size-gap-sm)]", children: /* @__PURE__ */ jsxRuntime.jsx(DetailRow2, { label: labels.detailsReceiveLabel, value: details.receive, strong: true }) })
19260
+ ] })
19261
+ ] })
19262
+ ] }),
19263
+ /* @__PURE__ */ jsxRuntime.jsx("footer", { className: walletTransferFooterClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
19264
+ PrimaryButton,
19265
+ {
19266
+ type: "button",
19267
+ disabled: submitDisabled,
19268
+ onClick: onSubmit,
19269
+ className: "h-12 rounded-[var(--deframe-widget-size-radius-sm)] text-[15px]",
19270
+ children: submitLabel
19271
+ }
19272
+ ) })
19273
+ ]
19274
+ }
19275
+ );
19276
+ }
19277
+ function DetailRow2({ label, value, strong = false }) {
19278
+ const valueClasses = strong ? "text-[14px] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)]" : "text-[13px] [font-weight:var(--deframe-widget-font-weight-medium)] text-[color:var(--deframe-widget-color-text-primary)]";
19279
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-[var(--deframe-widget-size-gap-md)]", children: [
19280
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[13px] text-[color:var(--deframe-widget-color-text-secondary)]", children: label }),
19281
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: valueClasses, children: value })
19282
+ ] });
19283
+ }
19284
+ function WalletTransferAssetNetworkPicker({
19285
+ isOpen,
19286
+ onClose,
19287
+ networks,
19288
+ selectedNetwork,
19289
+ onNetworkSelect,
19290
+ displayedTokens,
19291
+ findBalance,
19292
+ formatTokenAmount,
19293
+ formatCurrencyValue,
19294
+ onAssetClick,
19295
+ onSearch,
19296
+ autoFocus,
19297
+ hasMore = false,
19298
+ onLoadMore,
19299
+ isFetching = false,
19300
+ labels
19301
+ }) {
19302
+ const handleLoadMore = onLoadMore != null ? onLoadMore : (() => void 0);
19303
+ return /* @__PURE__ */ jsxRuntime.jsx(
19304
+ ChooseNetworkAndAssetViewSimple,
19305
+ {
19306
+ isOpen,
19307
+ onClose,
19308
+ networks,
19309
+ selectedNetwork,
19310
+ onNetworkSelect,
19311
+ displayedTokens,
19312
+ findBalance,
19313
+ formatTokenAmount,
19314
+ formatCurrencyValue,
19315
+ onAssetClick,
19316
+ onSearch,
19317
+ autoFocus,
19318
+ closeOnBackdropClick: true,
19319
+ hasMore,
19320
+ onLoadMore: handleLoadMore,
19321
+ isFetching,
19322
+ labels
19323
+ }
19324
+ );
19325
+ }
18938
19326
  var DashboardCard = ({ children, className }) => {
18939
19327
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-test-id": "dashboard-card", className: tailwindMerge.twMerge("bg-[var(--deframe-widget-color-bg-subtle)] rounded", className), children });
18940
19328
  };
@@ -20355,6 +20743,9 @@ exports.WalletConnectPanel = WalletConnectPanel;
20355
20743
  exports.WalletItem = WalletItem;
20356
20744
  exports.WalletList = ConnectWalletList;
20357
20745
  exports.WalletListContainer = WalletListContainer;
20746
+ exports.WalletOnchainDepositView = WalletOnchainDepositView;
20747
+ exports.WalletOnchainWithdrawView = WalletOnchainWithdrawView;
20748
+ exports.WalletTransferAssetNetworkPicker = WalletTransferAssetNetworkPicker;
20358
20749
  exports.WithdrawFailedIcon = WithdrawFailedIcon;
20359
20750
  exports.WithdrawSuccessIcon = WithdrawSuccessIcon;
20360
20751
  exports.isBrlPeggedToken = isBrlPeggedToken;