@relayprotocol/relay-kit-ui 5.1.2 → 6.0.0

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.
Files changed (220) hide show
  1. package/_cjs/src/components/common/BalanceDisplay.js +4 -3
  2. package/_cjs/src/components/common/BalanceDisplay.js.map +1 -1
  3. package/_cjs/src/components/common/MultiWalletDropdown.js +5 -4
  4. package/_cjs/src/components/common/MultiWalletDropdown.js.map +1 -1
  5. package/_cjs/src/components/common/PercentageButtons.js +9 -9
  6. package/_cjs/src/components/common/PercentageButtons.js.map +1 -1
  7. package/_cjs/src/components/common/SlippageToleranceConfig.js +30 -17
  8. package/_cjs/src/components/common/SlippageToleranceConfig.js.map +1 -1
  9. package/_cjs/src/components/common/TokenSelector/ChainFilter.js +21 -19
  10. package/_cjs/src/components/common/TokenSelector/ChainFilter.js.map +1 -1
  11. package/_cjs/src/components/common/TokenSelector/ChainFilterRow.js +117 -0
  12. package/_cjs/src/components/common/TokenSelector/ChainFilterRow.js.map +1 -0
  13. package/_cjs/src/components/common/TokenSelector/ChainFilterSidebar.js +2 -13
  14. package/_cjs/src/components/common/TokenSelector/ChainFilterSidebar.js.map +1 -1
  15. package/_cjs/src/components/common/TokenSelector/CompactChainFilter.js +180 -0
  16. package/_cjs/src/components/common/TokenSelector/CompactChainFilter.js.map +1 -0
  17. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js +456 -0
  18. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js.map +1 -0
  19. package/_cjs/src/components/common/TokenSelector/PaymentTokenList.js +83 -0
  20. package/_cjs/src/components/common/TokenSelector/PaymentTokenList.js.map +1 -0
  21. package/_cjs/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js +77 -0
  22. package/_cjs/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js.map +1 -0
  23. package/_cjs/src/components/primitives/ChainTokenIcon.js +3 -2
  24. package/_cjs/src/components/primitives/ChainTokenIcon.js.map +1 -1
  25. package/_cjs/src/components/primitives/SlippageButton.js +40 -0
  26. package/_cjs/src/components/primitives/SlippageButton.js.map +1 -0
  27. package/_cjs/src/components/primitives/Tabs.js +4 -2
  28. package/_cjs/src/components/primitives/Tabs.js.map +1 -1
  29. package/_cjs/src/components/widgets/SwapButton.js +35 -7
  30. package/_cjs/src/components/widgets/SwapButton.js.map +1 -1
  31. package/_cjs/src/components/widgets/TokenWidget/AmountModeToggle.js +31 -0
  32. package/_cjs/src/components/widgets/TokenWidget/AmountModeToggle.js.map +1 -0
  33. package/_cjs/src/components/widgets/TokenWidget/AmountSectionHeader.js +8 -0
  34. package/_cjs/src/components/widgets/TokenWidget/AmountSectionHeader.js.map +1 -0
  35. package/_cjs/src/components/widgets/TokenWidget/BuyTabContent.js +218 -0
  36. package/_cjs/src/components/widgets/TokenWidget/BuyTabContent.js.map +1 -0
  37. package/_cjs/src/components/widgets/TokenWidget/DestinationWalletSelector.js +20 -0
  38. package/_cjs/src/components/widgets/TokenWidget/DestinationWalletSelector.js.map +1 -0
  39. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownInfo.js +26 -0
  40. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownInfo.js.map +1 -0
  41. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js +40 -0
  42. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js.map +1 -0
  43. package/_cjs/src/components/widgets/TokenWidget/SectionContainer.js +22 -0
  44. package/_cjs/src/components/widgets/TokenWidget/SectionContainer.js.map +1 -0
  45. package/_cjs/src/components/widgets/TokenWidget/SellTabContent.js +280 -0
  46. package/_cjs/src/components/widgets/TokenWidget/SellTabContent.js.map +1 -0
  47. package/_cjs/src/components/widgets/TokenWidget/TransactionDetailsFooter.js +28 -0
  48. package/_cjs/src/components/widgets/TokenWidget/TransactionDetailsFooter.js.map +1 -0
  49. package/_cjs/src/components/widgets/TokenWidget/hooks/useWalletGuards.js +108 -0
  50. package/_cjs/src/components/widgets/TokenWidget/hooks/useWalletGuards.js.map +1 -0
  51. package/_cjs/src/components/widgets/TokenWidget/index.js +9 -0
  52. package/_cjs/src/components/widgets/TokenWidget/index.js.map +1 -0
  53. package/_cjs/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js +770 -0
  54. package/_cjs/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js.map +1 -0
  55. package/_cjs/src/components/widgets/TokenWidget/widget/index.js +1005 -0
  56. package/_cjs/src/components/widgets/TokenWidget/widget/index.js.map +1 -0
  57. package/_cjs/src/hooks/index.js +3 -1
  58. package/_cjs/src/hooks/index.js.map +1 -1
  59. package/_cjs/src/hooks/useDuneBalances.js +2 -1
  60. package/_cjs/src/hooks/useDuneBalances.js.map +1 -1
  61. package/_cjs/src/hooks/useEOADetection.js +3 -0
  62. package/_cjs/src/hooks/useEOADetection.js.map +1 -1
  63. package/_cjs/src/hooks/useMultiWalletBalances.js +119 -0
  64. package/_cjs/src/hooks/useMultiWalletBalances.js.map +1 -0
  65. package/_cjs/src/index.js.map +1 -1
  66. package/_cjs/src/styles.css +251 -88
  67. package/_cjs/src/utils/numbers.js +39 -1
  68. package/_cjs/src/utils/numbers.js.map +1 -1
  69. package/_cjs/src/utils/tokenSelector.js +4 -1
  70. package/_cjs/src/utils/tokenSelector.js.map +1 -1
  71. package/_cjs/src/utils/tokens.js +20 -1
  72. package/_cjs/src/utils/tokens.js.map +1 -1
  73. package/_cjs/src/version.js +1 -1
  74. package/_cjs/tsconfig.build.tsbuildinfo +1 -1
  75. package/_esm/src/components/common/BalanceDisplay.js +4 -3
  76. package/_esm/src/components/common/BalanceDisplay.js.map +1 -1
  77. package/_esm/src/components/common/MultiWalletDropdown.js +5 -4
  78. package/_esm/src/components/common/MultiWalletDropdown.js.map +1 -1
  79. package/_esm/src/components/common/PercentageButtons.js +10 -10
  80. package/_esm/src/components/common/PercentageButtons.js.map +1 -1
  81. package/_esm/src/components/common/SlippageToleranceConfig.js +31 -23
  82. package/_esm/src/components/common/SlippageToleranceConfig.js.map +1 -1
  83. package/_esm/src/components/common/TokenSelector/ChainFilter.js +25 -23
  84. package/_esm/src/components/common/TokenSelector/ChainFilter.js.map +1 -1
  85. package/_esm/src/components/common/TokenSelector/ChainFilterRow.js +112 -0
  86. package/_esm/src/components/common/TokenSelector/ChainFilterRow.js.map +1 -0
  87. package/_esm/src/components/common/TokenSelector/ChainFilterSidebar.js +4 -15
  88. package/_esm/src/components/common/TokenSelector/ChainFilterSidebar.js.map +1 -1
  89. package/_esm/src/components/common/TokenSelector/CompactChainFilter.js +176 -0
  90. package/_esm/src/components/common/TokenSelector/CompactChainFilter.js.map +1 -0
  91. package/_esm/src/components/common/TokenSelector/PaymentMethod.js +461 -0
  92. package/_esm/src/components/common/TokenSelector/PaymentMethod.js.map +1 -0
  93. package/_esm/src/components/common/TokenSelector/PaymentTokenList.js +79 -0
  94. package/_esm/src/components/common/TokenSelector/PaymentTokenList.js.map +1 -0
  95. package/_esm/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js +72 -0
  96. package/_esm/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js.map +1 -0
  97. package/_esm/src/components/primitives/ChainTokenIcon.js +3 -2
  98. package/_esm/src/components/primitives/ChainTokenIcon.js.map +1 -1
  99. package/_esm/src/components/primitives/SlippageButton.js +36 -0
  100. package/_esm/src/components/primitives/SlippageButton.js.map +1 -0
  101. package/_esm/src/components/primitives/Tabs.js +4 -2
  102. package/_esm/src/components/primitives/Tabs.js.map +1 -1
  103. package/_esm/src/components/widgets/SwapButton.js +35 -7
  104. package/_esm/src/components/widgets/SwapButton.js.map +1 -1
  105. package/_esm/src/components/widgets/TokenWidget/AmountModeToggle.js +30 -0
  106. package/_esm/src/components/widgets/TokenWidget/AmountModeToggle.js.map +1 -0
  107. package/_esm/src/components/widgets/TokenWidget/AmountSectionHeader.js +7 -0
  108. package/_esm/src/components/widgets/TokenWidget/AmountSectionHeader.js.map +1 -0
  109. package/_esm/src/components/widgets/TokenWidget/BuyTabContent.js +215 -0
  110. package/_esm/src/components/widgets/TokenWidget/BuyTabContent.js.map +1 -0
  111. package/_esm/src/components/widgets/TokenWidget/DestinationWalletSelector.js +16 -0
  112. package/_esm/src/components/widgets/TokenWidget/DestinationWalletSelector.js.map +1 -0
  113. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownInfo.js +21 -0
  114. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownInfo.js.map +1 -0
  115. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js +39 -0
  116. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js.map +1 -0
  117. package/_esm/src/components/widgets/TokenWidget/SectionContainer.js +22 -0
  118. package/_esm/src/components/widgets/TokenWidget/SectionContainer.js.map +1 -0
  119. package/_esm/src/components/widgets/TokenWidget/SellTabContent.js +283 -0
  120. package/_esm/src/components/widgets/TokenWidget/SellTabContent.js.map +1 -0
  121. package/_esm/src/components/widgets/TokenWidget/TransactionDetailsFooter.js +27 -0
  122. package/_esm/src/components/widgets/TokenWidget/TransactionDetailsFooter.js.map +1 -0
  123. package/_esm/src/components/widgets/TokenWidget/hooks/useWalletGuards.js +104 -0
  124. package/_esm/src/components/widgets/TokenWidget/hooks/useWalletGuards.js.map +1 -0
  125. package/_esm/src/components/widgets/TokenWidget/index.js +2 -0
  126. package/_esm/src/components/widgets/TokenWidget/index.js.map +1 -0
  127. package/_esm/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js +795 -0
  128. package/_esm/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js.map +1 -0
  129. package/_esm/src/components/widgets/TokenWidget/widget/index.js +1073 -0
  130. package/_esm/src/components/widgets/TokenWidget/widget/index.js.map +1 -0
  131. package/_esm/src/hooks/index.js +2 -1
  132. package/_esm/src/hooks/index.js.map +1 -1
  133. package/_esm/src/hooks/useDuneBalances.js +2 -1
  134. package/_esm/src/hooks/useDuneBalances.js.map +1 -1
  135. package/_esm/src/hooks/useEOADetection.js +3 -0
  136. package/_esm/src/hooks/useEOADetection.js.map +1 -1
  137. package/_esm/src/hooks/useMultiWalletBalances.js +122 -0
  138. package/_esm/src/hooks/useMultiWalletBalances.js.map +1 -0
  139. package/_esm/src/index.js.map +1 -1
  140. package/_esm/src/styles.css +251 -88
  141. package/_esm/src/utils/numbers.js +44 -1
  142. package/_esm/src/utils/numbers.js.map +1 -1
  143. package/_esm/src/utils/tokenSelector.js +4 -1
  144. package/_esm/src/utils/tokenSelector.js.map +1 -1
  145. package/_esm/src/utils/tokens.js +25 -0
  146. package/_esm/src/utils/tokens.js.map +1 -1
  147. package/_esm/src/version.js +1 -1
  148. package/_esm/tsconfig.build.tsbuildinfo +1 -1
  149. package/_types/src/components/common/BalanceDisplay.d.ts +2 -0
  150. package/_types/src/components/common/BalanceDisplay.d.ts.map +1 -1
  151. package/_types/src/components/common/MultiWalletDropdown.d.ts +2 -1
  152. package/_types/src/components/common/MultiWalletDropdown.d.ts.map +1 -1
  153. package/_types/src/components/common/PercentageButtons.d.ts +3 -1
  154. package/_types/src/components/common/PercentageButtons.d.ts.map +1 -1
  155. package/_types/src/components/common/SlippageToleranceConfig.d.ts +7 -0
  156. package/_types/src/components/common/SlippageToleranceConfig.d.ts.map +1 -1
  157. package/_types/src/components/common/TokenSelector/ChainFilter.d.ts.map +1 -1
  158. package/_types/src/components/common/TokenSelector/ChainFilterRow.d.ts +19 -0
  159. package/_types/src/components/common/TokenSelector/ChainFilterRow.d.ts.map +1 -0
  160. package/_types/src/components/common/TokenSelector/ChainFilterSidebar.d.ts.map +1 -1
  161. package/_types/src/components/common/TokenSelector/CompactChainFilter.d.ts +14 -0
  162. package/_types/src/components/common/TokenSelector/CompactChainFilter.d.ts.map +1 -0
  163. package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts +24 -0
  164. package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts.map +1 -0
  165. package/_types/src/components/common/TokenSelector/PaymentTokenList.d.ts +15 -0
  166. package/_types/src/components/common/TokenSelector/PaymentTokenList.d.ts.map +1 -0
  167. package/_types/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.d.ts +13 -0
  168. package/_types/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.d.ts.map +1 -0
  169. package/_types/src/components/primitives/ChainTokenIcon.d.ts +1 -0
  170. package/_types/src/components/primitives/ChainTokenIcon.d.ts.map +1 -1
  171. package/_types/src/components/primitives/SlippageButton.d.ts +8 -0
  172. package/_types/src/components/primitives/SlippageButton.d.ts.map +1 -0
  173. package/_types/src/components/primitives/Tabs.d.ts.map +1 -1
  174. package/_types/src/components/widgets/SwapButton.d.ts +5 -2
  175. package/_types/src/components/widgets/SwapButton.d.ts.map +1 -1
  176. package/_types/src/components/widgets/TokenWidget/AmountModeToggle.d.ts +12 -0
  177. package/_types/src/components/widgets/TokenWidget/AmountModeToggle.d.ts.map +1 -0
  178. package/_types/src/components/widgets/TokenWidget/AmountSectionHeader.d.ts +11 -0
  179. package/_types/src/components/widgets/TokenWidget/AmountSectionHeader.d.ts.map +1 -0
  180. package/_types/src/components/widgets/TokenWidget/BuyTabContent.d.ts +52 -0
  181. package/_types/src/components/widgets/TokenWidget/BuyTabContent.d.ts.map +1 -0
  182. package/_types/src/components/widgets/TokenWidget/DestinationWalletSelector.d.ts +17 -0
  183. package/_types/src/components/widgets/TokenWidget/DestinationWalletSelector.d.ts.map +1 -0
  184. package/_types/src/components/widgets/TokenWidget/FeeBreakdownInfo.d.ts +16 -0
  185. package/_types/src/components/widgets/TokenWidget/FeeBreakdownInfo.d.ts.map +1 -0
  186. package/_types/src/components/widgets/TokenWidget/FeeBreakdownTooltip.d.ts +15 -0
  187. package/_types/src/components/widgets/TokenWidget/FeeBreakdownTooltip.d.ts.map +1 -0
  188. package/_types/src/components/widgets/TokenWidget/SectionContainer.d.ts +8 -0
  189. package/_types/src/components/widgets/TokenWidget/SectionContainer.d.ts.map +1 -0
  190. package/_types/src/components/widgets/TokenWidget/SellTabContent.d.ts +61 -0
  191. package/_types/src/components/widgets/TokenWidget/SellTabContent.d.ts.map +1 -0
  192. package/_types/src/components/widgets/TokenWidget/TransactionDetailsFooter.d.ts +14 -0
  193. package/_types/src/components/widgets/TokenWidget/TransactionDetailsFooter.d.ts.map +1 -0
  194. package/_types/src/components/widgets/TokenWidget/hooks/useWalletGuards.d.ts +28 -0
  195. package/_types/src/components/widgets/TokenWidget/hooks/useWalletGuards.d.ts.map +1 -0
  196. package/_types/src/components/widgets/TokenWidget/index.d.ts +3 -0
  197. package/_types/src/components/widgets/TokenWidget/index.d.ts.map +1 -0
  198. package/_types/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.d.ts +125 -0
  199. package/_types/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.d.ts.map +1 -0
  200. package/_types/src/components/widgets/TokenWidget/widget/index.d.ts +57 -0
  201. package/_types/src/components/widgets/TokenWidget/widget/index.d.ts.map +1 -0
  202. package/_types/src/hooks/index.d.ts +2 -1
  203. package/_types/src/hooks/index.d.ts.map +1 -1
  204. package/_types/src/hooks/useDuneBalances.d.ts.map +1 -1
  205. package/_types/src/hooks/useEOADetection.d.ts.map +1 -1
  206. package/_types/src/hooks/useMultiWalletBalances.d.ts +26 -0
  207. package/_types/src/hooks/useMultiWalletBalances.d.ts.map +1 -0
  208. package/_types/src/index.d.ts +1 -0
  209. package/_types/src/index.d.ts.map +1 -1
  210. package/_types/src/utils/numbers.d.ts +8 -1
  211. package/_types/src/utils/numbers.d.ts.map +1 -1
  212. package/_types/src/utils/tokenSelector.d.ts +1 -1
  213. package/_types/src/utils/tokenSelector.d.ts.map +1 -1
  214. package/_types/src/utils/tokens.d.ts +17 -0
  215. package/_types/src/utils/tokens.d.ts.map +1 -1
  216. package/_types/src/version.d.ts +1 -1
  217. package/_types/tsconfig.build.tsbuildinfo +1 -1
  218. package/dist/panda.buildinfo.json +74 -33
  219. package/dist/styles.css +251 -88
  220. package/package.json +8 -3
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Flex, Text } from '../../primitives/index.js';
3
+ import Skeleton from '../../primitives/Skeleton.js';
4
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
+ import { faInfoCircle } from '@fortawesome/free-solid-svg-icons';
6
+ import { formatDollarCompact, formatNumber } from '../../../utils/numbers.js';
7
+ import { FeeBreakdownTooltip } from './FeeBreakdownTooltip.js';
8
+ export const FeeBreakdownInfo = ({ isLoading, amountUsd, tokenAmountFormatted, fallbackTokenAmount, quote, feeBreakdown, token }) => {
9
+ return (_jsxs(Flex, { direction: "column", align: "end", css: {
10
+ gap: '1',
11
+ minHeight: 42
12
+ }, children: [_jsx(Flex, { align: "center", css: { gap: '1' }, children: isLoading ? (_jsx(Skeleton, { css: { width: 90, height: 20 } })) : amountUsd && Number(amountUsd) > 0 ? (_jsxs(_Fragment, { children: [_jsxs(Text, { style: "h6", children: [formatDollarCompact(Number(amountUsd)), " total"] }), _jsx(FeeBreakdownTooltip, { quote: quote, feeBreakdown: feeBreakdown, fromToken: token, tooltipProps: { side: 'top', align: 'end' }, children: _jsx(Box, { css: {
13
+ color: 'gray8',
14
+ width: 16,
15
+ display: 'flex',
16
+ alignItems: 'center',
17
+ justifyContent: 'center',
18
+ cursor: 'pointer'
19
+ }, children: _jsx(FontAwesomeIcon, { icon: faInfoCircle }) }) })] })) : (_jsx(Text, { style: "h6", children: "$0 total" })) }), isLoading ? (_jsx(Skeleton, { css: { width: 70, height: 14 } })) : amountUsd && Number(amountUsd) > 0 ? (token && tokenAmountFormatted && Number(tokenAmountFormatted) > 0 ? (_jsxs(Text, { style: "subtitle3", color: "subtleSecondary", children: [formatNumber(tokenAmountFormatted, 4, true), " ", token.symbol] })) : token && fallbackTokenAmount && Number(fallbackTokenAmount) > 0 ? (_jsxs(Text, { style: "subtitle3", color: "subtleSecondary", children: [formatNumber(fallbackTokenAmount, 4, true), " ", token.symbol] })) : null) : token ? (_jsxs(Text, { style: "subtitle3", color: "subtleSecondary", children: ["0.00 ", token.symbol] })) : null] }));
20
+ };
21
+ //# sourceMappingURL=FeeBreakdownInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeeBreakdownInfo.js","sourceRoot":"","sources":["../../../../../src/components/widgets/TokenWidget/FeeBreakdownInfo.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex, Text } from '../../primitives/index.js';
3
+ import Tooltip from '../../primitives/Tooltip.js';
4
+ import { formatDollar } from '../../../utils/numbers.js';
5
+ export const FeeBreakdownTooltip = ({ quote, feeBreakdown, fromToken, children, tooltipProps }) => {
6
+ const currencyInAmount = quote?.details?.currencyIn?.amountUsd;
7
+ // Relay fee
8
+ const relayFee = feeBreakdown?.breakdown?.find((fee) => fee.id === 'relayer-fee');
9
+ const relayFeeUsd = relayFee?.usd.value ??
10
+ (quote?.fees?.relayerService?.amountUsd !== undefined
11
+ ? -Number(quote.fees.relayerService.amountUsd)
12
+ : undefined);
13
+ // Swap impact
14
+ const swapImpactUsd = feeBreakdown?.totalFees?.swapImpact?.value ??
15
+ (quote?.details?.swapImpact?.usd !== undefined
16
+ ? Number(quote.details.swapImpact.usd)
17
+ : undefined);
18
+ // Destination gas (fill gas)
19
+ const destinationGas = feeBreakdown?.breakdown?.find((fee) => fee.id === 'destination-gas');
20
+ const fillGasUsd = destinationGas?.usd.value ??
21
+ (quote?.fees?.relayerGas?.amountUsd !== undefined
22
+ ? -Number(quote.fees.relayerGas.amountUsd)
23
+ : undefined);
24
+ const fillGasLabel = destinationGas?.name ?? 'Fill Gas';
25
+ // App fee
26
+ const appFee = feeBreakdown?.breakdown?.find((fee) => fee.id === 'app-fee');
27
+ const appFeeUsd = appFee?.usd.value ??
28
+ (quote?.fees?.app?.amountUsd !== undefined
29
+ ? Number(quote.fees.app.amountUsd)
30
+ : undefined);
31
+ const tokenAmountFormatted = formatDollar(currencyInAmount !== undefined ? Number(currencyInAmount) : undefined);
32
+ const relayFeeFormatted = formatDollar(relayFeeUsd !== undefined ? Math.abs(relayFeeUsd) : undefined);
33
+ const swapImpactFormatted = formatDollar(swapImpactUsd !== undefined ? Math.abs(swapImpactUsd) : undefined);
34
+ const fillGasFormatted = formatDollar(fillGasUsd !== undefined ? Math.abs(fillGasUsd) : undefined);
35
+ const appFeeFormatted = appFee?.usd.formatted ??
36
+ formatDollar(appFeeUsd !== undefined ? Math.abs(appFeeUsd) : undefined);
37
+ return (_jsx(Tooltip, { content: _jsxs(Flex, { css: { minWidth: 240 }, direction: "column", children: [fromToken && currencyInAmount && tokenAmountFormatted !== '-' && (_jsxs(Flex, { align: "center", css: { width: '100%', mb: '2' }, children: [_jsx(Text, { style: "subtitle2", color: "subtle", css: { mr: 'auto' }, children: fromToken.symbol }), _jsx(Text, { style: "subtitle2", children: tokenAmountFormatted })] })), relayFeeUsd !== undefined && relayFeeFormatted !== '-' && (_jsxs(Flex, { align: "center", css: { width: '100%', mb: '2' }, children: [_jsx(Text, { style: "subtitle2", color: "subtle", css: { mr: 'auto' }, children: relayFee?.name ?? 'Relay Fee' }), feeBreakdown?.isGasSponsored && relayFeeUsd === 0 ? (_jsx(Text, { style: "subtitle2", color: "success", children: "Free" })) : (_jsx(Text, { style: "subtitle2", children: relayFeeFormatted }))] })), swapImpactUsd !== undefined && swapImpactFormatted !== '-' && (_jsxs(Flex, { align: "center", css: { width: '100%', mb: '2' }, children: [_jsx(Text, { style: "subtitle2", color: "subtle", css: { mr: 'auto' }, children: "Swap Impact" }), _jsx(Text, { style: "subtitle2", children: swapImpactFormatted })] })), fillGasUsd !== undefined && fillGasFormatted !== '-' && (_jsxs(Flex, { align: "center", css: { width: '100%', mb: '2' }, children: [_jsx(Text, { style: "subtitle2", color: "subtle", css: { mr: 'auto' }, children: fillGasLabel }), feeBreakdown?.isGasSponsored && fillGasUsd === 0 ? (_jsx(Text, { style: "subtitle2", color: "success", children: "Free" })) : (_jsx(Text, { style: "subtitle2", children: fillGasFormatted }))] })), appFee && appFeeUsd !== undefined && appFeeFormatted !== '-' && (_jsxs(Flex, { align: "center", css: { width: '100%' }, children: [_jsx(Text, { style: "subtitle2", color: "subtle", css: { mr: 'auto' }, children: appFee.name }), feeBreakdown?.isGasSponsored && appFeeUsd === 0 ? (_jsx(Text, { style: "subtitle2", color: "success", children: "Free" })) : (_jsx(Text, { style: "subtitle2", children: appFeeFormatted }))] }))] }), ...tooltipProps, children: children }));
38
+ };
39
+ //# sourceMappingURL=FeeBreakdownTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeeBreakdownTooltip.js","sourceRoot":"","sources":["../../../../../src/components/widgets/TokenWidget/FeeBreakdownTooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import {} from 'react';
3
+ import { Flex } from '../../primitives/index.js';
4
+ import {} from '@relayprotocol/relay-design-system/css';
5
+ const SectionContainer = ({ children, css, id }) => {
6
+ return (_jsx(Flex, { align: "center", justify: "between", id: id, css: {
7
+ width: '100%',
8
+ minWidth: '400px',
9
+ maxWidth: '400px',
10
+ display: 'flex',
11
+ flexDirection: 'column',
12
+ alignItems: 'start',
13
+ backgroundColor: 'widget-card-background',
14
+ border: 'widget-card-border',
15
+ gap: '4',
16
+ p: '16px',
17
+ borderRadius: 'widget-card-border-radius',
18
+ ...css
19
+ }, children: children }));
20
+ };
21
+ export default SectionContainer;
22
+ //# sourceMappingURL=SectionContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionContainer.js","sourceRoot":"","sources":["../../../../../src/components/widgets/TokenWidget/SectionContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAmC,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAe,MAAM,wCAAwC,CAAA;AAEpE,MAAM,gBAAgB,GAElB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5B,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,SAAS,EACjB,EAAE,EAAE,EAAE,EACN,GAAG,EAAE;YACH,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,wBAAwB;YACzC,MAAM,EAAE,oBAAoB;YAC5B,GAAG,EAAE,GAAG;YACR,CAAC,EAAE,MAAM;YACT,YAAY,EAAE,2BAA2B;YACzC,GAAG,GAAG;SACP,YAEA,QAAQ,GACJ,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,283 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { TabsContent } from '../../primitives/Tabs.js';
3
+ import { Flex, Box } from '../../primitives/index.js';
4
+ import AmountInput from '../../common/AmountInput.js';
5
+ import { formatFixedLength, formatNumber, formatDollar } from '../../../utils/numbers.js';
6
+ import { EventNames } from '../../../constants/events.js';
7
+ import { Divider } from '@relayprotocol/relay-design-system/jsx';
8
+ import { MultiWalletDropdown } from '../../common/MultiWalletDropdown.js';
9
+ import PaymentMethod from '../../common/TokenSelector/PaymentMethod.js';
10
+ import { PaymentMethodTrigger } from '../../common/TokenSelector/triggers/PaymentMethodTrigger.js';
11
+ import { useMemo, useRef, useEffect } from 'react';
12
+ import { isDeadAddress, tronDeadAddress } from '@relayprotocol/relay-sdk';
13
+ import SwapButton from '../SwapButton.js';
14
+ import { BalanceDisplay } from '../../common/BalanceDisplay.js';
15
+ import AmountSectionHeader from './AmountSectionHeader.js';
16
+ import AmountModeToggle from './AmountModeToggle.js';
17
+ import TransactionDetailsFooter from './TransactionDetailsFooter.js';
18
+ import SectionContainer from './SectionContainer.js';
19
+ import { isChainLocked } from '../../../utils/tokenSelector.js';
20
+ import { WidgetErrorWell } from '../WidgetErrorWell.js';
21
+ import { FeeBreakdownInfo } from './FeeBreakdownInfo.js';
22
+ import { DestinationWalletSelector } from './DestinationWalletSelector.js';
23
+ import { PercentageButtons } from '../../common/PercentageButtons.js';
24
+ const SellTabContent = ({ slippageTolerance, onOpenSlippageConfig, onSlippageToleranceChange, disableInputAutoFocus, isUsdInputMode, usdInputValue, tradeType, amountInputValue, amountOutputValue, conversionRate, fromToken, toToken, quote, isFetchingQuote, inputAmountUsd, fromTokenPriceData, isLoadingFromTokenPrice, toggleInputMode, setUsdInputValue, setTradeType, setTokenInputCache, setAmountInputValue, setAmountOutputValue, setUsdOutputValue, debouncedAmountInputControls, onAnalyticEvent, feeBreakdown, fromBalance, isLoadingFromBalance, toBalance, isLoadingToBalance, toBalancePending, hasInsufficientBalance, address, timeEstimate, fromBalancePending, multiWalletSupportEnabled, fromChainWalletVMSupported, disablePasteWalletAddressOption, onSetPrimaryWallet, setOriginAddressOverride, fromChain, toChain, onConnectWallet, onLinkNewWallet, linkedWallets, setAddressModalOpen, transactionModalOpen, depositAddressModalOpen, isValidFromAddress, isValidToAddress, toChainWalletVMSupported, isInsufficientLiquidityError, recipientWalletSupportsChain, recipient, setCustomToAddress, setDestinationAddressOverride, isRecipientLinked, isSameCurrencySameRecipientSwap, debouncedInputAmountValue, debouncedOutputAmountValue, showHighPriceImpactWarning, disableSwapButton, percentOptions, onMaxAmountClicked, publicClient, isFromNative, getFeeBufferAmount, onPrimaryAction, toDisplayName, error, relayerFeeProportion, highRelayerServiceFee, isCapacityExceededError, isCouldNotExecuteError, supportsExternalLiquidity, recipientLinkedWallet, toChainVmType, supportedWalletVMs, lockToToken, lockFromToken, isSingleChainLocked, lockChainId, popularChainIds, handleSetFromToken, handleSetToToken, ctaCopy }) => {
25
+ const selectedPaymentVmType = useMemo(() => toChain?.vmType ?? toChainVmType, [toChain, toChainVmType]);
26
+ const recipientVmType = recipientLinkedWallet?.vmType;
27
+ // Keep a ref to track the current toToken to avoid infinite loops
28
+ const toTokenRef = useRef(toToken);
29
+ toTokenRef.current = toToken;
30
+ const hasAutoSelectedDestination = useRef(false);
31
+ // Auto-select the user's primary wallet as the destination for selling
32
+ useEffect(() => {
33
+ if (!hasAutoSelectedDestination.current &&
34
+ multiWalletSupportEnabled &&
35
+ address &&
36
+ isValidFromAddress &&
37
+ !recipient) {
38
+ setDestinationAddressOverride(address);
39
+ hasAutoSelectedDestination.current = true;
40
+ }
41
+ }, [
42
+ multiWalletSupportEnabled,
43
+ address,
44
+ isValidFromAddress,
45
+ recipient,
46
+ setDestinationAddressOverride
47
+ ]);
48
+ // Smart auto-selection for destination token when selling to same wallet
49
+ useEffect(() => {
50
+ if (recipient === address &&
51
+ fromToken &&
52
+ !toToken &&
53
+ isValidToAddress &&
54
+ multiWalletSupportEnabled) {
55
+ // let user manually select the destination token
56
+ }
57
+ }, [
58
+ recipient,
59
+ address,
60
+ fromToken,
61
+ toToken,
62
+ isValidToAddress,
63
+ multiWalletSupportEnabled
64
+ ]);
65
+ const displayCta = [
66
+ 'Swap',
67
+ 'Confirm',
68
+ 'Bridge',
69
+ 'Send',
70
+ 'Wrap',
71
+ 'Unwrap'
72
+ ].includes(ctaCopy)
73
+ ? 'Sell'
74
+ : ctaCopy;
75
+ const hasSelectedTokens = Boolean(fromToken);
76
+ const invalidAmount = !quote ||
77
+ Number(debouncedInputAmountValue) === 0 ||
78
+ Number(debouncedOutputAmountValue) === 0 ||
79
+ !hasSelectedTokens;
80
+ const toChainId = toToken?.chainId;
81
+ const lockedToChainIds = isSingleChainLocked
82
+ ? lockChainId !== undefined
83
+ ? [lockChainId]
84
+ : undefined
85
+ : isChainLocked(toChainId, lockChainId, fromToken?.chainId, lockToToken) &&
86
+ toChainId !== undefined
87
+ ? [toChainId]
88
+ : undefined;
89
+ const chainIdsFilterForDestination = !toChainWalletVMSupported && fromToken ? [fromToken.chainId] : undefined;
90
+ const hasValidInputAmount = fromToken && amountInputValue && Number(amountInputValue) > 0;
91
+ const currencyOutAmountUsd = quote?.details?.currencyOut?.amountUsd;
92
+ const currencyOutAmountFormatted = quote?.details?.currencyOut?.amountFormatted;
93
+ // Only show skeleton on initial load, not on subsequent fetches
94
+ const isLoadingOutput = hasValidInputAmount && isFetchingQuote && toToken && !currencyOutAmountUsd;
95
+ return (_jsx(TabsContent, { value: "sell", children: _jsxs(SectionContainer, { css: {
96
+ backgroundColor: 'widget-background',
97
+ border: '1px solid',
98
+ borderColor: 'slate.4'
99
+ }, id: 'sell-token-section', children: [_jsx(AmountSectionHeader, { label: "Amount", slippageTolerance: slippageTolerance, onOpenSlippageConfig: onOpenSlippageConfig, onSlippageToleranceChange: onSlippageToleranceChange, onAnalyticEvent: onAnalyticEvent }), _jsx(Flex, { align: "center", justify: "between", css: { width: '100%' }, children: _jsx(AmountInput, { autoFocus: !disableInputAutoFocus, prefixSymbol: isUsdInputMode ? '$' : undefined, value: isUsdInputMode
100
+ ? usdInputValue
101
+ : tradeType === 'EXACT_INPUT'
102
+ ? amountInputValue
103
+ : amountInputValue
104
+ ? formatFixedLength(amountInputValue, 8)
105
+ : amountInputValue, setValue: (value) => {
106
+ if (isUsdInputMode) {
107
+ setUsdInputValue(value);
108
+ setTradeType('EXACT_INPUT');
109
+ setTokenInputCache('');
110
+ if (Number(value) === 0) {
111
+ setAmountOutputValue('');
112
+ setUsdOutputValue('');
113
+ debouncedAmountInputControls.flush();
114
+ }
115
+ }
116
+ else {
117
+ setAmountInputValue(value);
118
+ setTradeType('EXACT_INPUT');
119
+ if (Number(value) === 0) {
120
+ setAmountOutputValue('');
121
+ debouncedAmountInputControls.flush();
122
+ }
123
+ }
124
+ }, onClick: () => {
125
+ onAnalyticEvent?.(EventNames.SWAP_INPUT_FOCUSED);
126
+ }, css: {
127
+ fontWeight: '700',
128
+ fontSize: 32,
129
+ lineHeight: '32px',
130
+ py: 0,
131
+ color: isFetchingQuote && tradeType === 'EXPECTED_OUTPUT'
132
+ ? 'text-subtle'
133
+ : 'input-color',
134
+ _placeholder: {
135
+ color: isFetchingQuote && tradeType === 'EXPECTED_OUTPUT'
136
+ ? 'text-subtle'
137
+ : 'input-color'
138
+ }
139
+ } }) }), _jsxs(Flex, { direction: "column", css: { gap: '3', width: '100%' }, children: [_jsx(Flex, { align: "center", justify: "between", css: { gap: '3', width: '100%' }, children: _jsx(AmountModeToggle, { onToggle: toggleInputMode, textProps: {
140
+ css: {
141
+ minHeight: 18,
142
+ display: 'flex',
143
+ alignItems: 'center'
144
+ }
145
+ }, children: isUsdInputMode
146
+ ? fromToken
147
+ ? usdInputValue && Number(usdInputValue) > 0
148
+ ? amountInputValue &&
149
+ conversionRate &&
150
+ !isLoadingFromTokenPrice
151
+ ? `${formatNumber(amountInputValue, 4, false)} ${fromToken.symbol}`
152
+ : '...'
153
+ : `0 ${fromToken.symbol}`
154
+ : null
155
+ : quote?.details?.currencyIn?.amountUsd && !isFetchingQuote
156
+ ? formatDollar(Number(quote.details.currencyIn.amountUsd))
157
+ : isLoadingFromTokenPrice &&
158
+ amountInputValue &&
159
+ Number(amountInputValue) > 0
160
+ ? '...'
161
+ : inputAmountUsd &&
162
+ inputAmountUsd > 0 &&
163
+ fromTokenPriceData?.price &&
164
+ fromTokenPriceData.price > 0
165
+ ? formatDollar(inputAmountUsd)
166
+ : '$0.00' }) }), _jsxs(Flex, { align: "center", css: { width: '100%', gap: '3' }, children: [multiWalletSupportEnabled === true ? (_jsx(MultiWalletDropdown, { context: "origin", selectedWalletAddress: address, disablePasteWalletAddressOption: disablePasteWalletAddressOption, onSelect: (wallet) => {
167
+ setOriginAddressOverride(wallet.address);
168
+ onSetPrimaryWallet?.(wallet.address);
169
+ }, chain: fromChain, disableWalletFiltering: false, onLinkNewWallet: () => {
170
+ if (!address && fromChainWalletVMSupported) {
171
+ onConnectWallet?.();
172
+ }
173
+ else {
174
+ onLinkNewWallet?.({
175
+ chain: fromChain,
176
+ direction: 'from'
177
+ })?.then((wallet) => {
178
+ if (wallet) {
179
+ setOriginAddressOverride(wallet.address);
180
+ onSetPrimaryWallet?.(wallet.address);
181
+ }
182
+ });
183
+ }
184
+ }, setAddressModalOpen: setAddressModalOpen, wallets: linkedWallets ?? [], onAnalyticEvent: onAnalyticEvent, testId: "origin-wallet-select-button" })) : (_jsx(Box, {})), _jsxs(Flex, { align: "center", css: {
185
+ gap: '8px',
186
+ marginLeft: 'auto',
187
+ flexShrink: 0
188
+ }, children: [(() => {
189
+ const displayToken = fromToken || toToken;
190
+ const displayBalance = fromToken
191
+ ? fromBalance
192
+ : toToken && recipient !== address
193
+ ? fromBalance
194
+ : toBalance;
195
+ const displayBalancePending = fromToken
196
+ ? fromBalancePending
197
+ : toToken && recipient !== address
198
+ ? fromBalancePending
199
+ : toBalancePending;
200
+ const isLoadingDisplayBalance = fromToken
201
+ ? isLoadingFromBalance
202
+ : toToken && recipient !== address
203
+ ? isLoadingFromBalance
204
+ : isLoadingToBalance;
205
+ return displayToken ? (_jsx(BalanceDisplay, { hideBalanceLabel: true, displaySymbol: true, isLoading: isLoadingDisplayBalance, balance: displayBalance, decimals: displayToken?.decimals, symbol: displayToken?.symbol, hasInsufficientBalance: hasInsufficientBalance, isConnected: !isDeadAddress(address) &&
206
+ address !== tronDeadAddress &&
207
+ address !== undefined, pending: displayBalancePending, size: "md" })) : (_jsx(Flex, { css: { height: 18 } }));
208
+ })(), fromBalance && fromBalance > 0n && onMaxAmountClicked ? (_jsx(PercentageButtons, { balance: fromBalance, onPercentageClick: onMaxAmountClicked, getFeeBufferAmount: getFeeBufferAmount, fromChain: fromChain, publicClient: publicClient, isFromNative: isFromNative, percentages: percentOptions, buttonStyles: {
209
+ fontSize: 12,
210
+ fontWeight: '500',
211
+ px: '1',
212
+ py: '1',
213
+ minHeight: '23px',
214
+ lineHeight: '100%',
215
+ backgroundColor: 'widget-selector-background',
216
+ border: 'none',
217
+ _hover: {
218
+ backgroundColor: 'widget-selector-hover-background'
219
+ }
220
+ } })) : null] })] })] }), _jsx(Divider, { color: "gray4" }), _jsx(DestinationWalletSelector, { label: "Sell to", isMultiWalletEnabled: multiWalletSupportEnabled, walletSupported: toChainWalletVMSupported, dropdownProps: {
221
+ selectedWalletAddress: recipient,
222
+ disablePasteWalletAddressOption,
223
+ onSelect: (wallet) => {
224
+ setDestinationAddressOverride(wallet.address);
225
+ setCustomToAddress(undefined);
226
+ handleSetToToken(undefined);
227
+ },
228
+ chain: toChain,
229
+ disableWalletFiltering: true,
230
+ onLinkNewWallet: () => {
231
+ if (!address && toChainWalletVMSupported) {
232
+ onConnectWallet?.();
233
+ }
234
+ else {
235
+ onLinkNewWallet?.({
236
+ chain: toChain,
237
+ direction: 'to'
238
+ })?.then((wallet) => {
239
+ if (!wallet)
240
+ return;
241
+ setDestinationAddressOverride(wallet.address);
242
+ setCustomToAddress(undefined);
243
+ // Always reset payment method when linking new wallets (like buy tab)
244
+ handleSetToToken(undefined);
245
+ });
246
+ }
247
+ },
248
+ setAddressModalOpen,
249
+ wallets: linkedWallets ?? [],
250
+ onAnalyticEvent,
251
+ testId: 'destination-wallet-select-button'
252
+ }, fallback: {
253
+ highlighted: Boolean(isValidToAddress &&
254
+ multiWalletSupportEnabled &&
255
+ !isRecipientLinked),
256
+ text: !isValidToAddress
257
+ ? 'Enter Address'
258
+ : (toDisplayName ?? recipient ?? 'Select wallet'),
259
+ onClick: () => {
260
+ setDestinationAddressOverride(undefined);
261
+ setAddressModalOpen(true);
262
+ onAnalyticEvent?.(EventNames.SWAP_ADDRESS_MODAL_CLICKED);
263
+ },
264
+ showClipboard: Boolean(isValidToAddress &&
265
+ multiWalletSupportEnabled &&
266
+ !isRecipientLinked)
267
+ } }), _jsxs(Flex, { direction: "column", css: { gap: '2', width: '100%' }, children: [_jsxs(Flex, { justify: "between", css: { width: '100%' }, children: [_jsx(PaymentMethod, { address: recipient, isValidAddress: isValidToAddress, token: toToken, onAnalyticEvent: onAnalyticEvent, multiWalletSupportEnabled: multiWalletSupportEnabled, fromChainWalletVMSupported: toChainWalletVMSupported, supportedWalletVMs: supportedWalletVMs, popularChainIds: popularChainIds, lockedChainIds: lockedToChainIds, chainIdsFilter: chainIdsFilterForDestination, linkedWallets: linkedWallets, context: "to", autoSelectToken: true, setToken: (token) => {
268
+ if (token?.address === fromToken?.address &&
269
+ token?.chainId === fromToken?.chainId &&
270
+ recipient === address) {
271
+ return;
272
+ }
273
+ handleSetToToken(token);
274
+ }, trigger: _jsx("div", { style: { width: 'max-content' }, children: _jsx(PaymentMethodTrigger, { token: toToken, locked: lockToToken, address: recipient, testId: "payment-method-select-button", balanceLabel: "available" }) }) }), _jsx(FeeBreakdownInfo, { isLoading: Boolean(isLoadingOutput), amountUsd: currencyOutAmountUsd, tokenAmountFormatted: currencyOutAmountFormatted, fallbackTokenAmount: amountOutputValue, quote: quote, feeBreakdown: feeBreakdown, token: toToken })] }), _jsx(WidgetErrorWell, { hasInsufficientBalance: hasInsufficientBalance, error: error, quote: quote, currency: fromToken, relayerFeeProportion: relayerFeeProportion, isHighRelayerServiceFee: highRelayerServiceFee, isCapacityExceededError: isCapacityExceededError, isCouldNotExecuteError: isCouldNotExecuteError, supportsExternalLiquidity: supportsExternalLiquidity, recipientWalletSupportsChain: recipientWalletSupportsChain, recipient: recipient, toChainWalletVMSupported: toChainWalletVMSupported, recipientLinkedWallet: recipientLinkedWallet, toChainVmType: toChainVmType, containerCss: { width: '100%' } })] }), _jsx(Flex, { css: { width: '100%' }, children: _jsx(SwapButton, { context: "Sell", transactionModalOpen: transactionModalOpen, depositAddressModalOpen: depositAddressModalOpen, showHighPriceImpactWarning: showHighPriceImpactWarning, disableSwapButton: disableSwapButton, tokenWidgetMode: true, hasValidAmount: !invalidAmount, quote: quote, address: address, hasInsufficientBalance: hasInsufficientBalance, isInsufficientLiquidityError: isInsufficientLiquidityError, debouncedInputAmountValue: debouncedInputAmountValue, debouncedOutputAmountValue: debouncedOutputAmountValue, isSameCurrencySameRecipientSwap: isSameCurrencySameRecipientSwap, ctaCopy: displayCta, isValidFromAddress: isValidFromAddress, isValidToAddress: isValidToAddress, fromChainWalletVMSupported: fromChainWalletVMSupported, recipientWalletSupportsChain: recipientWalletSupportsChain, isFetchingQuote: isFetchingQuote, onClick: () => {
275
+ onAnalyticEvent?.('TOKEN_SELL_CLICKED', {
276
+ token: fromToken,
277
+ amount: amountInputValue
278
+ });
279
+ onPrimaryAction();
280
+ }, onConnectWallet: onConnectWallet, onAnalyticEvent: onAnalyticEvent }) }), _jsx(TransactionDetailsFooter, { timeEstimate: timeEstimate, feeBreakdown: feeBreakdown, quote: quote })] }) }));
281
+ };
282
+ export default SellTabContent;
283
+ //# sourceMappingURL=SellTabContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SellTabContent.js","sourceRoot":"","sources":["../../../../../src/components/widgets/TokenWidget/SellTabContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import {} from 'react';
3
+ import { Flex, Box, Text } from '../../primitives/index.js';
4
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
+ import { faClock, faGasPump } from '@fortawesome/free-solid-svg-icons';
6
+ import { formatDollar } from '../../../utils/numbers.js';
7
+ const TransactionDetailsFooter = ({ timeEstimate, feeBreakdown, quote }) => {
8
+ const hasEstimate = timeEstimate !== undefined && (timeEstimate.time ?? 0) > 0;
9
+ const isLongEstimate = hasEstimate && (timeEstimate?.time ?? 0) >= 600;
10
+ const clockColor = hasEstimate
11
+ ? isLongEstimate
12
+ ? 'amber9'
13
+ : 'green9'
14
+ : 'gray9';
15
+ const timeLabel = hasEstimate ? `~${timeEstimate?.formattedTime}` : '—';
16
+ const originGas = feeBreakdown?.breakdown?.find((fee) => fee.id === 'origin-gas');
17
+ const networkCostUsd = originGas?.usd.value ??
18
+ (quote?.fees?.gas?.amountUsd !== undefined
19
+ ? -Number(quote.fees.gas.amountUsd)
20
+ : undefined);
21
+ const networkCostLabel = formatDollar(networkCostUsd !== undefined ? Math.abs(networkCostUsd) : undefined);
22
+ const hasNetworkCost = networkCostUsd !== undefined && networkCostLabel !== '-';
23
+ const showDivider = timeEstimate && timeEstimate.time !== 0 && hasNetworkCost;
24
+ return (_jsxs(Flex, { justify: "center", align: "center", css: { gap: '6px', width: '100%' }, children: [timeEstimate && timeEstimate.time !== 0 ? (_jsxs(_Fragment, { children: [_jsxs(Flex, { align: "center", css: { gap: '2' }, children: [_jsx(Box, { css: { color: clockColor, width: 14, height: 14 }, children: _jsx(FontAwesomeIcon, { icon: faClock }) }), _jsx(Text, { style: "subtitle2", children: timeLabel })] }), showDivider ? (_jsx(Flex, { justify: "center", align: "center", css: { color: 'gray6', height: 4 }, children: "\u2022" })) : null] })) : null, hasNetworkCost ? (_jsxs(Flex, { align: "center", css: { gap: '2' }, children: [_jsx(Box, { css: { color: 'gray9', width: 14, height: 14 }, children: _jsx(FontAwesomeIcon, { icon: faGasPump }) }), _jsx(Text, { style: "subtitle2", children: networkCostLabel })] })) : null] }));
25
+ };
26
+ export default TransactionDetailsFooter;
27
+ //# sourceMappingURL=TransactionDetailsFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionDetailsFooter.js","sourceRoot":"","sources":["../../../../../src/components/widgets/TokenWidget/TransactionDetailsFooter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { useEffect } from 'react';
2
+ import { addressesEqual, findSupportedWallet } from '../../../../utils/address.js';
3
+ export const useWalletGuards = ({ multiWalletSupportEnabled, allowUnsupportedOrigin, allowUnsupportedRecipient, fromChain, toChain, address, recipient, linkedWallets, connectorKeyOverrides, onSetPrimaryWallet, isValidFromAddress, isValidToAddress, setOriginAddressOverride, setCustomToAddress, disablePasteWalletAddressOption, customToAddress, originAddressOverride, destinationAddressOverride, setDestinationAddressOverride }) => {
4
+ useEffect(() => {
5
+ if (!allowUnsupportedOrigin &&
6
+ multiWalletSupportEnabled &&
7
+ fromChain &&
8
+ address &&
9
+ linkedWallets &&
10
+ !isValidFromAddress) {
11
+ const supportedAddress = findSupportedWallet(fromChain, address, linkedWallets, connectorKeyOverrides);
12
+ if (supportedAddress) {
13
+ setOriginAddressOverride(undefined);
14
+ onSetPrimaryWallet?.(supportedAddress);
15
+ }
16
+ }
17
+ if (!allowUnsupportedRecipient &&
18
+ multiWalletSupportEnabled &&
19
+ toChain &&
20
+ recipient &&
21
+ linkedWallets &&
22
+ !isValidToAddress) {
23
+ const supportedAddress = findSupportedWallet(toChain, recipient, linkedWallets, connectorKeyOverrides);
24
+ if (supportedAddress) {
25
+ setCustomToAddress(supportedAddress);
26
+ }
27
+ else {
28
+ setCustomToAddress(undefined);
29
+ }
30
+ }
31
+ }, [
32
+ allowUnsupportedOrigin,
33
+ allowUnsupportedRecipient,
34
+ multiWalletSupportEnabled,
35
+ fromChain?.id,
36
+ toChain?.id,
37
+ address,
38
+ recipient,
39
+ linkedWallets,
40
+ onSetPrimaryWallet,
41
+ isValidFromAddress,
42
+ isValidToAddress,
43
+ connectorKeyOverrides,
44
+ setOriginAddressOverride,
45
+ setCustomToAddress
46
+ ]);
47
+ useEffect(() => {
48
+ if (!disablePasteWalletAddressOption || !customToAddress) {
49
+ return;
50
+ }
51
+ const isLinkedWallet = linkedWallets?.some((wallet) => addressesEqual(wallet.vmType, wallet.address, customToAddress));
52
+ if (!isLinkedWallet) {
53
+ setCustomToAddress(undefined);
54
+ }
55
+ }, [
56
+ disablePasteWalletAddressOption,
57
+ customToAddress,
58
+ linkedWallets,
59
+ setCustomToAddress
60
+ ]);
61
+ useEffect(() => {
62
+ if (destinationAddressOverride &&
63
+ customToAddress &&
64
+ destinationAddressOverride !== customToAddress) {
65
+ setDestinationAddressOverride(undefined);
66
+ }
67
+ }, [
68
+ destinationAddressOverride,
69
+ customToAddress,
70
+ setDestinationAddressOverride
71
+ ]);
72
+ useEffect(() => {
73
+ if (!multiWalletSupportEnabled) {
74
+ if (originAddressOverride !== undefined) {
75
+ setOriginAddressOverride(undefined);
76
+ }
77
+ if (destinationAddressOverride !== undefined) {
78
+ setDestinationAddressOverride(undefined);
79
+ }
80
+ return;
81
+ }
82
+ if (originAddressOverride) {
83
+ const originExists = linkedWallets?.some((wallet) => addressesEqual(wallet.vmType, wallet.address, originAddressOverride));
84
+ if (!originExists) {
85
+ setOriginAddressOverride(undefined);
86
+ }
87
+ }
88
+ if (destinationAddressOverride) {
89
+ const destinationMatches = linkedWallets?.some((wallet) => addressesEqual(wallet.vmType, wallet.address, destinationAddressOverride));
90
+ if (!destinationMatches) {
91
+ setDestinationAddressOverride(undefined);
92
+ }
93
+ }
94
+ }, [
95
+ multiWalletSupportEnabled,
96
+ linkedWallets,
97
+ originAddressOverride,
98
+ destinationAddressOverride,
99
+ setOriginAddressOverride,
100
+ setDestinationAddressOverride,
101
+ allowUnsupportedOrigin
102
+ ]);
103
+ };
104
+ //# sourceMappingURL=useWalletGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletGuards.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/TokenWidget/hooks/useWalletGuards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default as TokenWidget } from './widget/index.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/widgets/TokenWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA"}