@deframe-sdk/components 0.1.15 → 0.1.16

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.mjs CHANGED
@@ -4,7 +4,7 @@ import { HiXMark, HiChevronUp, HiChevronDown, HiChevronLeft, HiArrowRight, HiArr
4
4
  import * as React6 from 'react';
5
5
  import React6__default, { useState, useEffect } from 'react';
6
6
  import { motion, AnimatePresence } from 'framer-motion';
7
- import { MdClose, MdOutlineSearch, MdOutlineSearchOff, MdOutlineSwapHoriz, MdHistory, MdArrowRight, MdArrowDropDown, MdCheckCircleOutline, MdErrorOutline, MdWarningAmber, MdInfoOutline, MdArrowUpward, MdArrowDownward } from 'react-icons/md';
7
+ import { MdClose, MdOutlineSearch, MdOutlineSearchOff, MdOutlineSwapHoriz, MdHistory, MdOutlineSwapVert, MdArrowRight, MdArrowDropDown, MdCheckCircleOutline, MdErrorOutline, MdWarningAmber, MdInfoOutline, MdArrowUpward, MdArrowDownward } from 'react-icons/md';
8
8
  import { IoAlertCircleOutline, IoTimeOutline, IoCheckmarkOutline } from 'react-icons/io5';
9
9
  import { PiClockCountdownBold } from 'react-icons/pi';
10
10
 
@@ -2611,45 +2611,6 @@ var HistoryWithdrawDetailsView = ({
2611
2611
  ] }) })
2612
2612
  ] });
2613
2613
  };
2614
- var SwapNetworkSelectorView = ({
2615
- chainLabel,
2616
- chainImage,
2617
- onClick,
2618
- directionLabel = "De",
2619
- testId = "swap-network-selector",
2620
- className
2621
- }) => {
2622
- const baseClasses = "flex flex-row items-center gap-[var(--deframe-widget-size-gap-xs)]";
2623
- return /* @__PURE__ */ jsxs("div", { "data-test-id": testId, className: twMerge(baseClasses, className), children: [
2624
- /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "tracking-wide text-[color:var(--deframe-widget-color-text-tertiary)]", children: directionLabel }),
2625
- /* @__PURE__ */ jsxs(
2626
- "button",
2627
- {
2628
- "data-testid": testId,
2629
- type: "button",
2630
- onClick,
2631
- className: "ml-[var(--deframe-widget-size-gap-lg)] bg-[var(--deframe-widget-color-bg-tertiary)] border border-[color:var(--deframe-widget-color-border-tertiary)] rounded-[var(--deframe-widget-size-radius-md)] flex items-center gap-[var(--deframe-widget-size-gap-xs)] px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)] hover:border-[color:var(--deframe-widget-color-border-secondary)] transition-colors [font-size:var(--deframe-widget-font-size-sm)] [line-height:var(--deframe-widget-font-leading-sm)] text-[color:var(--deframe-widget-color-text-secondary)] cursor-pointer",
2632
- "aria-label": `${directionLabel} ${chainLabel}`,
2633
- children: [
2634
- chainImage ? /* @__PURE__ */ jsx("img", { src: chainImage, alt: chainLabel, className: "w-3 h-3 rounded-[var(--deframe-widget-size-radius-full)]" }) : null,
2635
- /* @__PURE__ */ jsx("span", { children: chainLabel }),
2636
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-[18px] h-[18px]", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
2637
- ]
2638
- }
2639
- )
2640
- ] });
2641
- };
2642
- var SwapQuoteHeaderView = ({
2643
- label,
2644
- timerElement,
2645
- className
2646
- }) => {
2647
- const baseClasses = "border-b border-[color:var(--deframe-widget-color-border-secondary)] pb-[var(--deframe-widget-size-padding-y-sm)]";
2648
- return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-quote-header", className: twMerge(baseClasses, className), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
2649
- /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "[font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-secondary)] inline-flex items-center", children: label }),
2650
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-md)]", children: timerElement })
2651
- ] }) });
2652
- };
2653
2614
  var SwapAmountInputView = ({
2654
2615
  value,
2655
2616
  hasError,
@@ -2707,127 +2668,6 @@ var SwapAmountInputView = ({
2707
2668
  })
2708
2669
  );
2709
2670
  };
2710
- var SwapOutputAmountView = ({
2711
- displayOutput,
2712
- isLoading,
2713
- loadingElement,
2714
- searchingQuoteLabel = "Searching quote...",
2715
- className
2716
- }) => {
2717
- const baseClasses = "[font-size:var(--deframe-widget-font-size-xxl)] [line-height:var(--deframe-widget-font-leading-xxl)] [font-weight:var(--deframe-widget-font-weight-extrabold)] text-right w-full min-w-[120px] text-[color:var(--deframe-widget-color-text-primary)]";
2718
- return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-flow-output-amount", className: twMerge(baseClasses, className), children: isLoading ? /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-primary-disabled)] inline-flex items-center", children: loadingElement != null ? loadingElement : searchingQuoteLabel }) : displayOutput });
2719
- };
2720
- var SwapQuoteErrorsView = ({
2721
- hasQuoteError,
2722
- hasBytecodeError,
2723
- quoteErrorMessage = "Unable to get quote for this transaction",
2724
- bytecodeErrorMessage = "Error building transaction"
2725
- }) => {
2726
- return /* @__PURE__ */ jsxs("div", { "data-test-id": "swap-quote-errors", children: [
2727
- hasQuoteError && /* @__PURE__ */ jsx("div", { className: "mt-sm", children: /* @__PURE__ */ jsx(
2728
- BannerNotification,
2729
- {
2730
- type: "inline",
2731
- variant: "error",
2732
- message: quoteErrorMessage
2733
- }
2734
- ) }),
2735
- hasBytecodeError && /* @__PURE__ */ jsx("div", { className: "mt-sm", children: /* @__PURE__ */ jsx(
2736
- BannerNotification,
2737
- {
2738
- type: "inline",
2739
- variant: "error",
2740
- message: bytecodeErrorMessage
2741
- }
2742
- ) })
2743
- ] });
2744
- };
2745
- var SLIPPAGE_OPTIONS = [10, 50, 100];
2746
- var SwapSlippageToleranceButtonsView = ({
2747
- slippageBps,
2748
- onSelect,
2749
- formatPercentage,
2750
- className
2751
- }) => {
2752
- const baseClasses = "flex gap-[var(--deframe-widget-size-gap-xs)]";
2753
- return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-slippage-tolerance-buttons", className: twMerge(baseClasses, className), children: SLIPPAGE_OPTIONS.map((option) => {
2754
- const isActive = slippageBps === option;
2755
- const activeClasses = "border-[color:var(--deframe-widget-color-brand-primary)] text-[color:var(--deframe-widget-color-brand-primary)] bg-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_18%,transparent)]";
2756
- const inactiveClasses = "border-[color:var(--deframe-widget-color-border-tertiary)] text-[color:var(--deframe-widget-color-text-secondary)] bg-[var(--deframe-widget-color-bg-primary)]";
2757
- const buttonBase = "px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)] rounded-[var(--deframe-widget-size-radius-xs)] border [font-size:var(--deframe-widget-font-size-sm)] [line-height:var(--deframe-widget-font-leading-sm)] cursor-pointer";
2758
- return /* @__PURE__ */ jsx(
2759
- "button",
2760
- {
2761
- "data-test-id": `slippage-option-${option}`,
2762
- type: "button",
2763
- onClick: () => onSelect(option),
2764
- className: twMerge(buttonBase, isActive ? activeClasses : inactiveClasses),
2765
- "aria-label": `${formatPercentage(option)}% slippage`,
2766
- "aria-pressed": isActive,
2767
- children: formatPercentage(option)
2768
- },
2769
- option
2770
- );
2771
- }) });
2772
- };
2773
- var SwapTokenSelectorView = ({
2774
- token,
2775
- onClick,
2776
- testId = "swap-token-selector",
2777
- selectTokenLabel = "Select token",
2778
- className
2779
- }) => {
2780
- const baseClasses = "h-[56px] border border-[color:var(--deframe-widget-color-border-secondary)] rounded-[var(--deframe-widget-size-radius-xs)] overflow-hidden hover:border-[color:var(--deframe-widget-color-border-primary)] transition-colors flex items-center px-[var(--deframe-widget-size-padding-x-sm)] py-[6px] w-full cursor-pointer";
2781
- return /* @__PURE__ */ jsxs(
2782
- "button",
2783
- {
2784
- "data-test-id": testId,
2785
- type: "button",
2786
- onClick,
2787
- className: twMerge(baseClasses, className),
2788
- "aria-label": token ? token.symbol : selectTokenLabel,
2789
- children: [
2790
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] flex-1", children: token ? /* @__PURE__ */ jsxs(Fragment, { children: [
2791
- token.logoURI ? /* @__PURE__ */ jsx("img", { src: token.logoURI, alt: token.symbol, className: "w-6 h-6 rounded-[var(--deframe-widget-size-radius-full)]" }) : /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-[var(--deframe-widget-size-radius-full)] bg-[var(--deframe-widget-color-bg-secondary)] text-[color:var(--deframe-widget-color-text-secondary)] flex items-center justify-center text-[10px] [font-weight:var(--deframe-widget-font-weight-semibold)]", children: (token.symbol || "").slice(0, 3).toUpperCase() }),
2792
- /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-primary)]", children: token.symbol })
2793
- ] }) : /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: selectTokenLabel }) }),
2794
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-[18px] h-[18px]", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
2795
- ]
2796
- }
2797
- );
2798
- };
2799
- var SwapQuoteBlockchainCostsView = ({
2800
- totalCostFormatted,
2801
- feePercentage,
2802
- gasCostFormatted,
2803
- protocolFee,
2804
- blockchainCostsLabel = "Blockchain Costs",
2805
- networkGasLabel = "Network Gas",
2806
- protocolFeeLabel = "Protocol Fee",
2807
- collapseLabel = "Collapse",
2808
- expandLabel = "Expand"
2809
- }) => {
2810
- return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-quote-blockchain-costs", children: /* @__PURE__ */ jsx(
2811
- CollapsibleInfoRow,
2812
- {
2813
- label: blockchainCostsLabel,
2814
- value: `${totalCostFormatted} ~ ${feePercentage}%`,
2815
- defaultOpen: true,
2816
- collapseLabel,
2817
- expandLabel,
2818
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-sm)]", children: [
2819
- /* @__PURE__ */ jsxs(InfoRowWithIcon, { children: [
2820
- /* @__PURE__ */ jsx(InfoRowIconLabel, { children: networkGasLabel }),
2821
- /* @__PURE__ */ jsx(InfoRowIconValue, { children: gasCostFormatted })
2822
- ] }),
2823
- /* @__PURE__ */ jsxs(InfoRowWithIcon, { borderBottom: true, children: [
2824
- /* @__PURE__ */ jsx(InfoRowIconLabel, { children: protocolFeeLabel }),
2825
- /* @__PURE__ */ jsx(InfoRowIconValue, { children: protocolFee })
2826
- ] })
2827
- ] })
2828
- }
2829
- ) });
2830
- };
2831
2671
  var ChooseAStrategyActionsheetView = ({
2832
2672
  isOpen,
2833
2673
  currentActionSheetId,
@@ -2896,8 +2736,16 @@ var StrategyDetailsView = ({
2896
2736
  headerTitle = "Details",
2897
2737
  strategyInfoTitle = "Strategy Info",
2898
2738
  depositButtonLabel = "Deposit",
2899
- backAriaLabel = "Back"
2739
+ backAriaLabel = "Back",
2740
+ error,
2741
+ notFoundMessage
2900
2742
  }) => {
2743
+ if (error) {
2744
+ return /* @__PURE__ */ jsx(BackgroundContainer, { children: /* @__PURE__ */ jsx("div", { className: "text-text-secondary dark:text-text-secondary-dark p-md", children: error }) });
2745
+ }
2746
+ if (notFoundMessage) {
2747
+ return /* @__PURE__ */ jsx(BackgroundContainer, { children: /* @__PURE__ */ jsx("div", { className: "text-text-secondary dark:text-text-secondary-dark p-md", children: notFoundMessage }) });
2748
+ }
2901
2749
  return /* @__PURE__ */ jsxs(BackgroundContainer, { children: [
2902
2750
  /* @__PURE__ */ jsx(DetailsHeader, { title: headerTitle, onBack, backAriaLabel }),
2903
2751
  /* @__PURE__ */ jsx("div", { "data-test-id": "strategy-details-content", className: "flex-1 min-h-0 overflow-y-auto px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-md)] py-[var(--deframe-widget-size-padding-y-lg)] pb-[var(--deframe-widget-size-padding-y-xxl)]", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-lg)] min-h-full", children: [
@@ -4106,56 +3954,56 @@ var ChooseAnAssetSwapView = ({
4106
3954
  }
4107
3955
  ) });
4108
3956
  };
4109
- var SwapFormView = ({
4110
- labels,
4111
- onHistoryClick,
4112
- fromCard,
4113
- switchButton,
4114
- toCard,
4115
- advancedSettings,
4116
- transactionDetails,
4117
- confirmButton
3957
+ var SwapTokenSelectorView = ({
3958
+ token,
3959
+ onClick,
3960
+ testId = "swap-token-selector",
3961
+ selectTokenLabel = "Select token",
3962
+ className
4118
3963
  }) => {
4119
- return /* @__PURE__ */ jsxs(Fragment, { children: [
4120
- /* @__PURE__ */ jsx(
4121
- "div",
4122
- {
4123
- "data-testid": "swap-form-view",
4124
- className: "flex-1 min-h-0 overflow-y-auto swap-flow-content pr-sm",
4125
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-md text-text-secondary dark:text-text-secondary-dark", children: [
4126
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-md", children: [
4127
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-sm", children: [
4128
- /* @__PURE__ */ jsx(TextHeading, { variant: "h5", className: "!text-[21px]", children: /* @__PURE__ */ jsx("span", { "data-testid": "swap-flow-title", children: labels.title }) }),
4129
- labels.subtitle && /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "!text-[14px]", children: labels.subtitle })
4130
- ] }),
4131
- /* @__PURE__ */ jsx(
4132
- "button",
4133
- {
4134
- "data-testid": "swap-history-button",
4135
- type: "button",
4136
- onClick: onHistoryClick,
4137
- className: "flex items-center justify-center w-12 h-12 transition-colors rounded-full cursor-pointer text-text-secondary dark:text-text-secondary-dark hover:text-brand-primary",
4138
- "aria-label": labels.historyAriaLabel,
4139
- children: /* @__PURE__ */ jsx(MdHistory, { className: "w-6 h-6" })
4140
- }
4141
- )
4142
- ] }),
4143
- /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col items-stretch gap-sm", children: [
4144
- fromCard,
4145
- switchButton,
4146
- toCard
4147
- ] }),
4148
- advancedSettings,
4149
- /* @__PURE__ */ jsx("div", { className: "pb-xl", children: transactionDetails })
4150
- ] })
4151
- }
4152
- ),
4153
- /* @__PURE__ */ jsx(
4154
- "div",
3964
+ const baseClasses = "h-[56px] border border-[color:var(--deframe-widget-color-border-secondary)] rounded-[var(--deframe-widget-size-radius-xs)] overflow-hidden hover:border-[color:var(--deframe-widget-color-border-primary)] transition-colors flex items-center px-[var(--deframe-widget-size-padding-x-sm)] py-[6px] w-full cursor-pointer";
3965
+ return /* @__PURE__ */ jsxs(
3966
+ "button",
3967
+ {
3968
+ "data-test-id": testId,
3969
+ type: "button",
3970
+ onClick,
3971
+ className: twMerge(baseClasses, className),
3972
+ "aria-label": token ? token.symbol : selectTokenLabel,
3973
+ children: [
3974
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] flex-1", children: token ? /* @__PURE__ */ jsxs(Fragment, { children: [
3975
+ token.logoURI ? /* @__PURE__ */ jsx("img", { src: token.logoURI, alt: token.symbol, className: "w-6 h-6 rounded-[var(--deframe-widget-size-radius-full)]" }) : /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-[var(--deframe-widget-size-radius-full)] bg-[var(--deframe-widget-color-bg-secondary)] text-[color:var(--deframe-widget-color-text-secondary)] flex items-center justify-center text-[10px] [font-weight:var(--deframe-widget-font-weight-semibold)]", children: (token.symbol || "").slice(0, 3).toUpperCase() }),
3976
+ /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-primary)]", children: token.symbol })
3977
+ ] }) : /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: selectTokenLabel }) }),
3978
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-[18px] h-[18px]", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
3979
+ ]
3980
+ }
3981
+ );
3982
+ };
3983
+ var SwapNetworkSelectorView = ({
3984
+ chainLabel,
3985
+ chainImage,
3986
+ onClick,
3987
+ directionLabel = "De",
3988
+ testId = "swap-network-selector",
3989
+ className
3990
+ }) => {
3991
+ const baseClasses = "flex flex-row items-center gap-[var(--deframe-widget-size-gap-xs)]";
3992
+ return /* @__PURE__ */ jsxs("div", { "data-test-id": testId, className: twMerge(baseClasses, className), children: [
3993
+ /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "tracking-wide text-[color:var(--deframe-widget-color-text-tertiary)]", children: directionLabel }),
3994
+ /* @__PURE__ */ jsxs(
3995
+ "button",
4155
3996
  {
4156
- "data-testid": "swap-flow-footer",
4157
- className: "border-t p-md border-border-default dark:border-border-default-dark bg-bg-primary dark:bg-bg-primary-dark",
4158
- children: confirmButton
3997
+ "data-testid": testId,
3998
+ type: "button",
3999
+ onClick,
4000
+ className: "ml-[var(--deframe-widget-size-gap-lg)] bg-[var(--deframe-widget-color-bg-tertiary)] border border-[color:var(--deframe-widget-color-border-tertiary)] rounded-[var(--deframe-widget-size-radius-md)] flex items-center gap-[var(--deframe-widget-size-gap-xs)] px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)] hover:border-[color:var(--deframe-widget-color-border-secondary)] transition-colors [font-size:var(--deframe-widget-font-size-sm)] [line-height:var(--deframe-widget-font-leading-sm)] text-[color:var(--deframe-widget-color-text-secondary)] cursor-pointer",
4001
+ "aria-label": `${directionLabel} ${chainLabel}`,
4002
+ children: [
4003
+ chainImage ? /* @__PURE__ */ jsx("img", { src: chainImage, alt: chainLabel, className: "w-3 h-3 rounded-[var(--deframe-widget-size-radius-full)]" }) : null,
4004
+ /* @__PURE__ */ jsx("span", { children: chainLabel }),
4005
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-[18px] h-[18px]", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
4006
+ ]
4159
4007
  }
4160
4008
  )
4161
4009
  ] });
@@ -4176,7 +4024,7 @@ var SwapFromCardView = ({
4176
4024
  maxFractionDigits,
4177
4025
  amountUsdFormatted,
4178
4026
  isAmountUsdLoading,
4179
- amountSlot
4027
+ field
4180
4028
  }) => {
4181
4029
  return /* @__PURE__ */ jsx(SectionCard, { className: "flex flex-col gap-sm", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row gap-md items-center", children: [
4182
4030
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-sm flex-1", children: [
@@ -4231,7 +4079,7 @@ var SwapFromCardView = ({
4231
4079
  }
4232
4080
  )
4233
4081
  ] }),
4234
- /* @__PURE__ */ jsx("div", { className: "flex flex-col flex-1 items-end justify-center gap-xs", children: amountSlot != null ? amountSlot : /* @__PURE__ */ jsxs(Fragment, { children: [
4082
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 items-end justify-center gap-xs", children: [
4235
4083
  /* @__PURE__ */ jsx(
4236
4084
  SwapAmountInputView,
4237
4085
  {
@@ -4239,7 +4087,8 @@ var SwapFromCardView = ({
4239
4087
  hasError: amountHasError,
4240
4088
  onChange: onAmountChange,
4241
4089
  maxFractionDigits,
4242
- ariaLabel: labels.amountPlaceholder
4090
+ ariaLabel: labels.amountPlaceholder,
4091
+ field
4243
4092
  }
4244
4093
  ),
4245
4094
  /* @__PURE__ */ jsx(
@@ -4251,10 +4100,20 @@ var SwapFromCardView = ({
4251
4100
  children: isAmountUsdLoading ? /* @__PURE__ */ jsx(LoadingDots, {}) : amountUsdFormatted
4252
4101
  }
4253
4102
  )
4254
- ] }) })
4103
+ ] })
4255
4104
  ] }) });
4256
4105
  };
4257
- var SwapToCardView = ({
4106
+ var SwapOutputAmountView = ({
4107
+ displayOutput,
4108
+ isLoading,
4109
+ loadingElement,
4110
+ searchingQuoteLabel = "Searching quote...",
4111
+ className
4112
+ }) => {
4113
+ const baseClasses = "[font-size:var(--deframe-widget-font-size-xxl)] [line-height:var(--deframe-widget-font-leading-xxl)] [font-weight:var(--deframe-widget-font-weight-extrabold)] text-right w-full min-w-[120px] text-[color:var(--deframe-widget-color-text-primary)]";
4114
+ return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-flow-output-amount", className: twMerge(baseClasses, className), children: isLoading ? /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-primary-disabled)] inline-flex items-center", children: loadingElement != null ? loadingElement : searchingQuoteLabel }) : displayOutput });
4115
+ };
4116
+ var SwapToCardView = ({
4258
4117
  labels,
4259
4118
  selectedToken,
4260
4119
  onTokenClick,
@@ -4331,6 +4190,152 @@ var SwapToCardView = ({
4331
4190
  ] })
4332
4191
  ] }) });
4333
4192
  };
4193
+ var SLIPPAGE_OPTIONS = [10, 50, 100];
4194
+ var SwapSlippageToleranceButtonsView = ({
4195
+ slippageBps,
4196
+ onSelect,
4197
+ formatPercentage,
4198
+ className
4199
+ }) => {
4200
+ const baseClasses = "flex gap-[var(--deframe-widget-size-gap-xs)]";
4201
+ return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-slippage-tolerance-buttons", className: twMerge(baseClasses, className), children: SLIPPAGE_OPTIONS.map((option) => {
4202
+ const isActive = slippageBps === option;
4203
+ const activeClasses = "border-[color:var(--deframe-widget-color-brand-primary)] text-[color:var(--deframe-widget-color-brand-primary)] bg-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_18%,transparent)]";
4204
+ const inactiveClasses = "border-[color:var(--deframe-widget-color-border-tertiary)] text-[color:var(--deframe-widget-color-text-secondary)] bg-[var(--deframe-widget-color-bg-primary)]";
4205
+ const buttonBase = "px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)] rounded-[var(--deframe-widget-size-radius-xs)] border [font-size:var(--deframe-widget-font-size-sm)] [line-height:var(--deframe-widget-font-leading-sm)] cursor-pointer";
4206
+ return /* @__PURE__ */ jsx(
4207
+ "button",
4208
+ {
4209
+ "data-test-id": `slippage-option-${option}`,
4210
+ type: "button",
4211
+ onClick: () => onSelect(option),
4212
+ className: twMerge(buttonBase, isActive ? activeClasses : inactiveClasses),
4213
+ "aria-label": `${formatPercentage(option)}% slippage`,
4214
+ "aria-pressed": isActive,
4215
+ children: formatPercentage(option)
4216
+ },
4217
+ option
4218
+ );
4219
+ }) });
4220
+ };
4221
+ var SwapAdvancedSettingsView = ({
4222
+ title,
4223
+ isOpen,
4224
+ onOpenChange,
4225
+ slippageBps,
4226
+ onSlippageSelect,
4227
+ formatPercentage,
4228
+ percentageOptions,
4229
+ onPercentageClick,
4230
+ slippageFormatted,
4231
+ collapseText,
4232
+ expandText,
4233
+ maxLabel
4234
+ }) => {
4235
+ return /* @__PURE__ */ jsx("div", { className: "pb-2 mt-md", children: /* @__PURE__ */ jsx(SectionCard, { children: /* @__PURE__ */ jsxs(
4236
+ CollapsibleSection,
4237
+ {
4238
+ title,
4239
+ subtitle: slippageFormatted,
4240
+ open: isOpen,
4241
+ onOpenChange,
4242
+ collapseText,
4243
+ expandText,
4244
+ children: [
4245
+ /* @__PURE__ */ jsx(
4246
+ SwapSlippageToleranceButtonsView,
4247
+ {
4248
+ slippageBps,
4249
+ onSelect: onSlippageSelect,
4250
+ formatPercentage,
4251
+ className: "mt-md"
4252
+ }
4253
+ ),
4254
+ /* @__PURE__ */ jsx("div", { className: "w-full mt-md", children: /* @__PURE__ */ jsx("div", { className: "flex w-full gap-sm", children: percentageOptions.map((pct, index) => {
4255
+ const isMax = index === percentageOptions.length - 1;
4256
+ const label = isMax ? maxLabel : `${pct / 100}%`;
4257
+ return /* @__PURE__ */ jsx(
4258
+ PercentageButton,
4259
+ {
4260
+ type: "button",
4261
+ onClick: () => onPercentageClick(pct),
4262
+ children: label
4263
+ },
4264
+ pct
4265
+ );
4266
+ }) }) })
4267
+ ]
4268
+ }
4269
+ ) }) });
4270
+ };
4271
+ var SwapQuoteHeaderView = ({
4272
+ label,
4273
+ timerElement,
4274
+ className
4275
+ }) => {
4276
+ const baseClasses = "border-b border-[color:var(--deframe-widget-color-border-secondary)] pb-[var(--deframe-widget-size-padding-y-sm)]";
4277
+ return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-quote-header", className: twMerge(baseClasses, className), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
4278
+ /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "[font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-secondary)] inline-flex items-center", children: label }),
4279
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-md)]", children: timerElement })
4280
+ ] }) });
4281
+ };
4282
+ var SwapQuoteBlockchainCostsView = ({
4283
+ totalCostFormatted,
4284
+ feePercentage,
4285
+ gasCostFormatted,
4286
+ protocolFee,
4287
+ blockchainCostsLabel = "Blockchain Costs",
4288
+ networkGasLabel = "Network Gas",
4289
+ protocolFeeLabel = "Protocol Fee",
4290
+ collapseLabel = "Collapse",
4291
+ expandLabel = "Expand"
4292
+ }) => {
4293
+ return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-quote-blockchain-costs", children: /* @__PURE__ */ jsx(
4294
+ CollapsibleInfoRow,
4295
+ {
4296
+ label: blockchainCostsLabel,
4297
+ value: `${totalCostFormatted} ~ ${feePercentage}%`,
4298
+ defaultOpen: true,
4299
+ collapseLabel,
4300
+ expandLabel,
4301
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-sm)]", children: [
4302
+ /* @__PURE__ */ jsxs(InfoRowWithIcon, { children: [
4303
+ /* @__PURE__ */ jsx(InfoRowIconLabel, { children: networkGasLabel }),
4304
+ /* @__PURE__ */ jsx(InfoRowIconValue, { children: gasCostFormatted })
4305
+ ] }),
4306
+ /* @__PURE__ */ jsxs(InfoRowWithIcon, { borderBottom: true, children: [
4307
+ /* @__PURE__ */ jsx(InfoRowIconLabel, { children: protocolFeeLabel }),
4308
+ /* @__PURE__ */ jsx(InfoRowIconValue, { children: protocolFee })
4309
+ ] })
4310
+ ] })
4311
+ }
4312
+ ) });
4313
+ };
4314
+ var SwapQuoteErrorsView = ({
4315
+ hasQuoteError,
4316
+ hasBytecodeError,
4317
+ quoteErrorMessage = "Unable to get quote for this transaction",
4318
+ bytecodeErrorMessage = "Error building transaction"
4319
+ }) => {
4320
+ return /* @__PURE__ */ jsxs("div", { "data-test-id": "swap-quote-errors", children: [
4321
+ hasQuoteError && /* @__PURE__ */ jsx("div", { className: "mt-sm", children: /* @__PURE__ */ jsx(
4322
+ BannerNotification,
4323
+ {
4324
+ type: "inline",
4325
+ variant: "error",
4326
+ message: quoteErrorMessage
4327
+ }
4328
+ ) }),
4329
+ hasBytecodeError && /* @__PURE__ */ jsx("div", { className: "mt-sm", children: /* @__PURE__ */ jsx(
4330
+ BannerNotification,
4331
+ {
4332
+ type: "inline",
4333
+ variant: "error",
4334
+ message: bytecodeErrorMessage
4335
+ }
4336
+ ) })
4337
+ ] });
4338
+ };
4334
4339
  var SwapQuoteDetailsView = ({
4335
4340
  labels,
4336
4341
  isVisible,
@@ -4416,56 +4421,6 @@ var SwapQuoteDetailsView = ({
4416
4421
  )
4417
4422
  ] });
4418
4423
  };
4419
- var SwapAdvancedSettingsView = ({
4420
- title,
4421
- isOpen,
4422
- onOpenChange,
4423
- slippageBps,
4424
- onSlippageSelect,
4425
- formatPercentage,
4426
- percentageOptions,
4427
- onPercentageClick,
4428
- slippageFormatted,
4429
- collapseText,
4430
- expandText,
4431
- maxLabel
4432
- }) => {
4433
- return /* @__PURE__ */ jsx("div", { className: "pb-2 mt-md", children: /* @__PURE__ */ jsx(SectionCard, { children: /* @__PURE__ */ jsxs(
4434
- CollapsibleSection,
4435
- {
4436
- title,
4437
- subtitle: slippageFormatted,
4438
- open: isOpen,
4439
- onOpenChange,
4440
- collapseText,
4441
- expandText,
4442
- children: [
4443
- /* @__PURE__ */ jsx(
4444
- SwapSlippageToleranceButtonsView,
4445
- {
4446
- slippageBps,
4447
- onSelect: onSlippageSelect,
4448
- formatPercentage,
4449
- className: "mt-md"
4450
- }
4451
- ),
4452
- /* @__PURE__ */ jsx("div", { className: "w-full mt-md", children: /* @__PURE__ */ jsx("div", { className: "flex w-full gap-sm", children: percentageOptions.map((pct, index) => {
4453
- const isMax = index === percentageOptions.length - 1;
4454
- const label = isMax ? maxLabel : `${pct / 100}%`;
4455
- return /* @__PURE__ */ jsx(
4456
- PercentageButton,
4457
- {
4458
- type: "button",
4459
- onClick: () => onPercentageClick(pct),
4460
- children: label
4461
- },
4462
- pct
4463
- );
4464
- }) }) })
4465
- ]
4466
- }
4467
- ) }) });
4468
- };
4469
4424
  var ConfirmSwapButtonView = ({
4470
4425
  buttonLabel,
4471
4426
  disabled,
@@ -4485,6 +4440,73 @@ var ConfirmSwapButtonView = ({
4485
4440
  }
4486
4441
  ) });
4487
4442
  };
4443
+ var SwapFormView = ({
4444
+ onSubmit,
4445
+ formRef,
4446
+ labels,
4447
+ onHistoryClick,
4448
+ onSwitchTokens,
4449
+ switchTokensAriaLabel,
4450
+ fromCard,
4451
+ toCard,
4452
+ advancedSettings,
4453
+ transactionDetails,
4454
+ confirmButton
4455
+ }) => {
4456
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
4457
+ /* @__PURE__ */ jsx(
4458
+ "div",
4459
+ {
4460
+ "data-testid": "swap-form-view",
4461
+ className: "flex-1 min-h-0 overflow-y-auto swap-flow-content pr-sm",
4462
+ children: /* @__PURE__ */ jsx("form", { ref: formRef, onSubmit, "data-testid": "swap-flow-form", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-md text-text-secondary dark:text-text-secondary-dark", children: [
4463
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-md", children: [
4464
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-sm", children: [
4465
+ /* @__PURE__ */ jsx(TextHeading, { variant: "h5", className: "!text-[21px]", children: /* @__PURE__ */ jsx("span", { "data-testid": "swap-flow-title", children: labels.title }) }),
4466
+ labels.subtitle && /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "!text-[14px]", children: labels.subtitle })
4467
+ ] }),
4468
+ /* @__PURE__ */ jsx(
4469
+ "button",
4470
+ {
4471
+ "data-testid": "swap-history-button",
4472
+ type: "button",
4473
+ onClick: onHistoryClick,
4474
+ className: "flex items-center justify-center w-12 h-12 transition-colors rounded-full cursor-pointer text-text-secondary dark:text-text-secondary-dark hover:text-brand-primary",
4475
+ "aria-label": labels.historyAriaLabel,
4476
+ children: /* @__PURE__ */ jsx(MdHistory, { className: "w-6 h-6" })
4477
+ }
4478
+ )
4479
+ ] }),
4480
+ /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col items-stretch gap-sm", children: [
4481
+ /* @__PURE__ */ jsx(SwapFromCardView, __spreadValues({}, fromCard)),
4482
+ /* @__PURE__ */ jsx("div", { className: "flex justify-center -my-5 relative z-10", children: /* @__PURE__ */ jsx(
4483
+ "button",
4484
+ {
4485
+ "data-testid": "swap-switch-tokens-button",
4486
+ type: "button",
4487
+ onClick: onSwitchTokens,
4488
+ className: "w-10 h-10 rounded-full bg-brand-secondary shadow-md flex items-center justify-center text-text-primary hover:shadow-lg transition-shadow focus:outline-none focus:ring-2 focus:ring-brand-secondary cursor-pointer",
4489
+ "aria-label": switchTokensAriaLabel,
4490
+ children: /* @__PURE__ */ jsx(MdOutlineSwapVert, { className: "w-5 h-5" })
4491
+ }
4492
+ ) }),
4493
+ /* @__PURE__ */ jsx(SwapToCardView, __spreadValues({}, toCard))
4494
+ ] }),
4495
+ /* @__PURE__ */ jsx(SwapAdvancedSettingsView, __spreadValues({}, advancedSettings)),
4496
+ /* @__PURE__ */ jsx("div", { className: "pb-xl", children: /* @__PURE__ */ jsx(SwapQuoteDetailsView, __spreadValues({}, transactionDetails)) })
4497
+ ] }) })
4498
+ }
4499
+ ),
4500
+ /* @__PURE__ */ jsx(
4501
+ "div",
4502
+ {
4503
+ "data-testid": "swap-flow-footer",
4504
+ className: "border-t p-md border-border-default dark:border-border-default-dark bg-bg-primary dark:bg-bg-primary-dark",
4505
+ children: /* @__PURE__ */ jsx(ConfirmSwapButtonView, __spreadValues({}, confirmButton))
4506
+ }
4507
+ )
4508
+ ] });
4509
+ };
4488
4510
  var ChooseANetworkView = ({
4489
4511
  labels,
4490
4512
  autoFocus = true,
@@ -5097,7 +5119,14 @@ var EarnDesktopView = ({
5097
5119
  transactions
5098
5120
  }) => {
5099
5121
  if (isLoading) {
5100
- return /* @__PURE__ */ jsx(Fragment, { children: loadingSkeleton });
5122
+ if (loadingSkeleton) {
5123
+ return /* @__PURE__ */ jsx(Fragment, { children: loadingSkeleton });
5124
+ }
5125
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-md)] w-full flex-1 min-h-0 animate-pulse px-[var(--deframe-widget-size-padding-x-lg)] py-[var(--deframe-widget-size-padding-y-lg)]", children: [
5126
+ /* @__PURE__ */ jsx("div", { className: "h-24 rounded bg-[var(--deframe-widget-color-bg-secondary)]" }),
5127
+ /* @__PURE__ */ jsx("div", { className: "h-40 rounded bg-[var(--deframe-widget-color-bg-secondary)]" }),
5128
+ /* @__PURE__ */ jsx("div", { className: "h-60 rounded bg-[var(--deframe-widget-color-bg-secondary)]" })
5129
+ ] });
5101
5130
  }
5102
5131
  return /* @__PURE__ */ jsxs("div", { className: "text-[color:var(--deframe-widget-color-text-primary)] flex flex-col relative overflow-y-auto w-full flex-1 min-h-0 pb-[var(--deframe-widget-size-padding-y-lg)] gap-[var(--deframe-widget-size-gap-md)]", children: [
5103
5132
  /* @__PURE__ */ jsx(EarnInvestmentSummaryView, __spreadValues({}, summary)),
@@ -5106,28 +5135,32 @@ var EarnDesktopView = ({
5106
5135
  /* @__PURE__ */ jsx(EarnRecentTransactionsView, __spreadValues({}, transactions))
5107
5136
  ] });
5108
5137
  };
5109
- var EarnInvestmentDetailsView = ({
5110
- title,
5111
- onBack,
5112
- tokenIcon,
5113
- fiatBalance,
5114
- profitAmount,
5115
- tokenAmount,
5116
- investedLabel,
5117
- earningsLabel,
5118
- summaryTitle,
5119
- summaryItems,
5120
- pastActivitiesTitle,
5121
- transactions,
5122
- onTransactionClick,
5123
- showMoreButton,
5124
- onLoadMore,
5125
- loadMoreLabel,
5126
- depositLabel,
5127
- onDeposit,
5128
- withdrawLabel,
5129
- onWithdraw
5130
- }) => {
5138
+ var EarnInvestmentDetailsView = (props) => {
5139
+ if (props.isLoading) {
5140
+ return /* @__PURE__ */ jsx(BackgroundContainer, { children: props.loadingSkeleton });
5141
+ }
5142
+ const {
5143
+ title,
5144
+ onBack,
5145
+ tokenIcon,
5146
+ fiatBalance,
5147
+ profitAmount,
5148
+ tokenAmount,
5149
+ investedLabel,
5150
+ earningsLabel,
5151
+ summaryTitle,
5152
+ summaryItems,
5153
+ pastActivitiesTitle,
5154
+ transactions,
5155
+ onTransactionClick,
5156
+ showMoreButton,
5157
+ onLoadMore,
5158
+ loadMoreLabel,
5159
+ depositLabel,
5160
+ onDeposit,
5161
+ withdrawLabel,
5162
+ onWithdraw
5163
+ } = props;
5131
5164
  return /* @__PURE__ */ jsxs(BackgroundContainer, { children: [
5132
5165
  /* @__PURE__ */ jsxs(Navbar, { children: [
5133
5166
  /* @__PURE__ */ jsx(BackButton, { onClick: onBack }),
@@ -6379,6 +6412,6 @@ var EarnWithdrawFailedView = ({
6379
6412
  );
6380
6413
  };
6381
6414
 
6382
- export { ActionButton, ActionSheet, AddressDisplay, ApyRange, BackButton, BackgroundContainer, BannerNotification, ChooseANetworkView, ChooseAStrategyActionsheetView, ChooseAnAssetSwapView, CloseButton_default as CloseButton, CollapsibleInfoRow, CollapsibleSection, ConfirmSwapButtonView, ConnectWalletList, Currency, DeframeComponentsProvider, DetailsHeader, EarnAmountInputView, EarnBalanceCard, EarnBytecodeErrorView, EarnDepositFailedView, EarnDepositFormView, EarnDepositProcessingView, EarnDepositSuccessView, EarnDepositWarningView, EarnDesktopView, EarnExploreGridView, EarnInvestedSectionView, EarnInvestmentDetailsView, EarnInvestmentSummaryView, EarnNoBalanceNotificationView, EarnPercentageButtonsView, EarnPositionCardView, EarnRecentTransactionsView, EarnTokenSelectorView, EarnTxStatusCardView, EarnWithdrawFailedView, EarnWithdrawFormView, EarnWithdrawProcessingView, EarnWithdrawSuccessView, EarnWithdrawTokenSelectorView, EarnWithdrawWarningView, Currency as Fiat, FlexCol, FlexRow, GroupedStrategyListView, HighRiskBadge, HistoryDepositDetailsView, HistoryListSkeleton, HistoryListView, HistorySwapDetailsView, HistoryTabEmpty, HistoryWithdrawDetailsView, InfoLabel, InfoRow, InfoRowIconLabel, InfoRowIconValue, InfoRowWithIcon, InfoValue, Input2 as Input, Label, Link, ListItem, ListItemContent, ListItemLeftSide, ListItemRightSide, LoadingDots, LowRiskBadge, MediumRiskBadge, Navbar, PercentageButton, PrimaryButton, ProgressIndicator, ScrollableContent, SearchEmptyState, SearchInput, SecondaryButton, SectionCard, Select, SelectContent, SelectItem, SelectTrigger, Skeleton, StepDisplay, StepStatusIcon, StepStatusText, StrategyDetailsView, StrategyGridCard, SummaryDetails, SummaryDetailsCryptoControlV2, SwapAdvancedSettingsView, SwapAmountInputView, SwapCrossChainProcessingView, SwapFormView, SwapFromCardView, SwapHistoryView, SwapNetworkSelectorView, SwapOutputAmountView, SwapProcessingView, SwapProcessingViewSimple, SwapQuoteBlockchainCostsView, SwapQuoteDetailsView, SwapQuoteErrorsView, SwapQuoteHeaderView, SwapSignatureWarningView, SwapSlippageToleranceButtonsView, SwapSuccessView, SwapSuccessViewSimple, SwapToCardView, SwapTokenSelectorView, SwapTransactionFailedView, SwapTransactionFailedViewSimple, SwapWidgetFallbackView, Tabs, TabsContent, TabsList, TabsTrigger, TertiaryButton, Text_default as Text, TextAccent, TextBody, TextHeading, Title, TokenWithChainBadge, TransactionProcessingDetails, TransactionScreen, TransactionScreenIcon, TransactionScreenInvestmentCard, WalletBalances, WalletConnectPanel, WalletItem, ConnectWalletList as WalletList, WalletListContainer };
6415
+ export { ActionButton, ActionSheet, AddressDisplay, ApyRange, BackButton, BackgroundContainer, BannerNotification, ChooseANetworkView, ChooseAStrategyActionsheetView, ChooseAnAssetSwapView, CloseButton_default as CloseButton, CollapsibleInfoRow, CollapsibleSection, ConfirmSwapButtonView, ConnectWalletList, Currency, DeframeComponentsProvider, DetailsHeader, EarnAmountInputView, EarnBalanceCard, EarnBytecodeErrorView, EarnDepositFailedView, EarnDepositFormView, EarnDepositProcessingView, EarnDepositSuccessView, EarnDepositWarningView, EarnDesktopView, EarnExploreGridView, EarnInvestedSectionView, EarnInvestmentDetailsView, EarnInvestmentSummaryView, EarnNoBalanceNotificationView, EarnPercentageButtonsView, EarnPositionCardView, EarnRecentTransactionsView, EarnTokenSelectorView, EarnTxStatusCardView, EarnWithdrawFailedView, EarnWithdrawFormView, EarnWithdrawProcessingView, EarnWithdrawSuccessView, EarnWithdrawTokenSelectorView, EarnWithdrawWarningView, Currency as Fiat, FlexCol, FlexRow, GroupedStrategyListView, HighRiskBadge, HistoryDepositDetailsView, HistoryListSkeleton, HistoryListView, HistorySwapDetailsView, HistoryTabEmpty, HistoryWithdrawDetailsView, InfoLabel, InfoRow, InfoRowIconLabel, InfoRowIconValue, InfoRowWithIcon, InfoValue, Input2 as Input, Label, Link, ListItem, ListItemContent, ListItemLeftSide, ListItemRightSide, LoadingDots, LowRiskBadge, MediumRiskBadge, Navbar, PercentageButton, PrimaryButton, ProgressIndicator, ScrollableContent, SearchEmptyState, SearchInput, SecondaryButton, SectionCard, Select, SelectContent, SelectItem, SelectTrigger, Skeleton, StepDisplay, StepStatusIcon, StepStatusText, StrategyDetailsView, StrategyGridCard, SummaryDetails, SummaryDetailsCryptoControlV2, SwapAdvancedSettingsView, SwapAmountInputView, SwapCrossChainProcessingView, SwapFormView, SwapFromCardView, SwapHistoryView, SwapProcessingView, SwapProcessingViewSimple, SwapQuoteDetailsView, SwapSignatureWarningView, SwapSuccessView, SwapSuccessViewSimple, SwapToCardView, SwapTransactionFailedView, SwapTransactionFailedViewSimple, SwapWidgetFallbackView, Tabs, TabsContent, TabsList, TabsTrigger, TertiaryButton, Text_default as Text, TextAccent, TextBody, TextHeading, Title, TokenWithChainBadge, TransactionProcessingDetails, TransactionScreen, TransactionScreenIcon, TransactionScreenInvestmentCard, WalletBalances, WalletConnectPanel, WalletItem, ConnectWalletList as WalletList, WalletListContainer };
6383
6416
  //# sourceMappingURL=index.mjs.map
6384
6417
  //# sourceMappingURL=index.mjs.map