@relayprotocol/relay-kit-ui 7.1.6 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/_cjs/src/components/common/AmountInput.js +2 -17
  2. package/_cjs/src/components/common/AmountInput.js.map +1 -1
  3. package/_cjs/src/components/common/BalanceDisplay.js +2 -2
  4. package/_cjs/src/components/common/BalanceDisplay.js.map +1 -1
  5. package/_cjs/src/components/common/CopyToClipBoard.js +3 -7
  6. package/_cjs/src/components/common/CopyToClipBoard.js.map +1 -1
  7. package/_cjs/src/components/common/CustomAddressModal.js +10 -48
  8. package/_cjs/src/components/common/CustomAddressModal.js.map +1 -1
  9. package/_cjs/src/components/common/ErrorWell.js +9 -28
  10. package/_cjs/src/components/common/ErrorWell.js.map +1 -1
  11. package/_cjs/src/components/common/LoadingSpinner.js +7 -13
  12. package/_cjs/src/components/common/LoadingSpinner.js.map +1 -1
  13. package/_cjs/src/components/common/Modal.js +4 -22
  14. package/_cjs/src/components/common/Modal.js.map +1 -1
  15. package/_cjs/src/components/common/MultiWalletDropdown.js +23 -57
  16. package/_cjs/src/components/common/MultiWalletDropdown.js.map +1 -1
  17. package/_cjs/src/components/common/PercentageButtons.js +7 -24
  18. package/_cjs/src/components/common/PercentageButtons.js.map +1 -1
  19. package/_cjs/src/components/common/SlippageToleranceConfig.js +21 -117
  20. package/_cjs/src/components/common/SlippageToleranceConfig.js.map +1 -1
  21. package/_cjs/src/components/common/StepIcon.js +1 -7
  22. package/_cjs/src/components/common/StepIcon.js.map +1 -1
  23. package/_cjs/src/components/common/TokenSelector/ChainFilter.js +19 -109
  24. package/_cjs/src/components/common/TokenSelector/ChainFilter.js.map +1 -1
  25. package/_cjs/src/components/common/TokenSelector/ChainFilterRow.js +10 -54
  26. package/_cjs/src/components/common/TokenSelector/ChainFilterRow.js.map +1 -1
  27. package/_cjs/src/components/common/TokenSelector/ChainFilterSidebar.js +15 -98
  28. package/_cjs/src/components/common/TokenSelector/ChainFilterSidebar.js.map +1 -1
  29. package/_cjs/src/components/common/TokenSelector/ChainShortcuts.js +6 -28
  30. package/_cjs/src/components/common/TokenSelector/ChainShortcuts.js.map +1 -1
  31. package/_cjs/src/components/common/TokenSelector/CompactChainFilter.js +12 -83
  32. package/_cjs/src/components/common/TokenSelector/CompactChainFilter.js.map +1 -1
  33. package/_cjs/src/components/common/TokenSelector/MobileChainSelector.js +16 -109
  34. package/_cjs/src/components/common/TokenSelector/MobileChainSelector.js.map +1 -1
  35. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js +10 -101
  36. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
  37. package/_cjs/src/components/common/TokenSelector/PaymentTokenList.js +8 -69
  38. package/_cjs/src/components/common/TokenSelector/PaymentTokenList.js.map +1 -1
  39. package/_cjs/src/components/common/TokenSelector/SuggestedTokens.js +2 -33
  40. package/_cjs/src/components/common/TokenSelector/SuggestedTokens.js.map +1 -1
  41. package/_cjs/src/components/common/TokenSelector/TagPill.js +1 -9
  42. package/_cjs/src/components/common/TokenSelector/TagPill.js.map +1 -1
  43. package/_cjs/src/components/common/TokenSelector/TokenList.js +8 -57
  44. package/_cjs/src/components/common/TokenSelector/TokenList.js.map +1 -1
  45. package/_cjs/src/components/common/TokenSelector/TokenSelector.js +24 -70
  46. package/_cjs/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
  47. package/_cjs/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js +2 -35
  48. package/_cjs/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js.map +1 -1
  49. package/_cjs/src/components/common/TokenSelector/triggers/TokenTrigger.js +2 -28
  50. package/_cjs/src/components/common/TokenSelector/triggers/TokenTrigger.js.map +1 -1
  51. package/_cjs/src/components/common/TransactionModal/DepositAddressModal.js +2 -10
  52. package/_cjs/src/components/common/TransactionModal/DepositAddressModal.js.map +1 -1
  53. package/_cjs/src/components/common/TransactionModal/TransactionModal.js +2 -13
  54. package/_cjs/src/components/common/TransactionModal/TransactionModal.js.map +1 -1
  55. package/_cjs/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js +8 -45
  56. package/_cjs/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js.map +1 -1
  57. package/_cjs/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js +1 -5
  58. package/_cjs/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js.map +1 -1
  59. package/_cjs/src/components/common/TransactionModal/steps/ErrorStep.js +9 -30
  60. package/_cjs/src/components/common/TransactionModal/steps/ErrorStep.js.map +1 -1
  61. package/_cjs/src/components/common/TransactionModal/steps/SwapConfirmationStep.js +26 -81
  62. package/_cjs/src/components/common/TransactionModal/steps/SwapConfirmationStep.js.map +1 -1
  63. package/_cjs/src/components/common/TransactionModal/steps/SwapSuccessStep.js +16 -76
  64. package/_cjs/src/components/common/TransactionModal/steps/SwapSuccessStep.js.map +1 -1
  65. package/_cjs/src/components/common/TransactionModal/steps/TransactionsByChain.js +3 -8
  66. package/_cjs/src/components/common/TransactionModal/steps/TransactionsByChain.js.map +1 -1
  67. package/_cjs/src/components/common/TransactionModal/steps/WaitingForDepositStep.js +27 -63
  68. package/_cjs/src/components/common/TransactionModal/steps/WaitingForDepositStep.js.map +1 -1
  69. package/_cjs/src/components/common/UnverifiedTokenModal.js +6 -32
  70. package/_cjs/src/components/common/UnverifiedTokenModal.js.map +1 -1
  71. package/_cjs/src/components/primitives/AccessibleList.js +5 -21
  72. package/_cjs/src/components/primitives/AccessibleList.js.map +1 -1
  73. package/_cjs/src/components/primitives/Anchor.js +18 -41
  74. package/_cjs/src/components/primitives/Anchor.js.map +1 -1
  75. package/_cjs/src/components/primitives/Box.js +3 -4
  76. package/_cjs/src/components/primitives/Box.js.map +1 -1
  77. package/_cjs/src/components/primitives/Button.js +63 -124
  78. package/_cjs/src/components/primitives/Button.js.map +1 -1
  79. package/_cjs/src/components/primitives/ChainIcon.js +5 -9
  80. package/_cjs/src/components/primitives/ChainIcon.js.map +1 -1
  81. package/_cjs/src/components/primitives/ChainTokenIcon.js +7 -26
  82. package/_cjs/src/components/primitives/ChainTokenIcon.js.map +1 -1
  83. package/_cjs/src/components/primitives/Collapsible.js +7 -32
  84. package/_cjs/src/components/primitives/Collapsible.js.map +1 -1
  85. package/_cjs/src/components/primitives/Dialog.js +39 -81
  86. package/_cjs/src/components/primitives/Dialog.js.map +1 -1
  87. package/_cjs/src/components/primitives/Dropdown.js +5 -35
  88. package/_cjs/src/components/primitives/Dropdown.js.map +1 -1
  89. package/_cjs/src/components/primitives/Flex.js +23 -59
  90. package/_cjs/src/components/primitives/Flex.js.map +1 -1
  91. package/_cjs/src/components/primitives/Input.js +19 -51
  92. package/_cjs/src/components/primitives/Input.js.map +1 -1
  93. package/_cjs/src/components/primitives/Pill.js +18 -49
  94. package/_cjs/src/components/primitives/Pill.js.map +1 -1
  95. package/_cjs/src/components/primitives/Skeleton.js +3 -12
  96. package/_cjs/src/components/primitives/Skeleton.js.map +1 -1
  97. package/_cjs/src/components/primitives/SlippageButton.js +1 -13
  98. package/_cjs/src/components/primitives/SlippageButton.js.map +1 -1
  99. package/_cjs/src/components/primitives/Switch.js +5 -43
  100. package/_cjs/src/components/primitives/Switch.js.map +1 -1
  101. package/_cjs/src/components/primitives/Tabs.js +9 -39
  102. package/_cjs/src/components/primitives/Tabs.js.map +1 -1
  103. package/_cjs/src/components/primitives/Text.js +36 -94
  104. package/_cjs/src/components/primitives/Text.js.map +1 -1
  105. package/_cjs/src/components/primitives/Tooltip.js +2 -30
  106. package/_cjs/src/components/primitives/Tooltip.js.map +1 -1
  107. package/_cjs/src/components/widgets/FeeBreakdown.js +25 -82
  108. package/_cjs/src/components/widgets/FeeBreakdown.js.map +1 -1
  109. package/_cjs/src/components/widgets/FetchingQuoteLoader.js +3 -9
  110. package/_cjs/src/components/widgets/FetchingQuoteLoader.js.map +1 -1
  111. package/_cjs/src/components/widgets/OnrampWidget/modals/OnrampModal.js +1 -8
  112. package/_cjs/src/components/widgets/OnrampWidget/modals/OnrampModal.js.map +1 -1
  113. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js +2 -19
  114. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js.map +1 -1
  115. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js +3 -27
  116. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js.map +1 -1
  117. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js +2 -32
  118. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js.map +1 -1
  119. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js +9 -45
  120. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js.map +1 -1
  121. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js +5 -26
  122. package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js.map +1 -1
  123. package/_cjs/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js +7 -96
  124. package/_cjs/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js.map +1 -1
  125. package/_cjs/src/components/widgets/OnrampWidget/widget/index.js +18 -112
  126. package/_cjs/src/components/widgets/OnrampWidget/widget/index.js.map +1 -1
  127. package/_cjs/src/components/widgets/PriceImpactTooltip.js +3 -9
  128. package/_cjs/src/components/widgets/PriceImpactTooltip.js.map +1 -1
  129. package/_cjs/src/components/widgets/SwapButton.js +3 -14
  130. package/_cjs/src/components/widgets/SwapButton.js.map +1 -1
  131. package/_cjs/src/components/widgets/SwapWidget/GasTopUpSection.js +6 -11
  132. package/_cjs/src/components/widgets/SwapWidget/GasTopUpSection.js.map +1 -1
  133. package/_cjs/src/components/widgets/SwapWidget/PriceImpact.js +2 -4
  134. package/_cjs/src/components/widgets/SwapWidget/PriceImpact.js.map +1 -1
  135. package/_cjs/src/components/widgets/SwapWidget/index.js +35 -136
  136. package/_cjs/src/components/widgets/SwapWidget/index.js.map +1 -1
  137. package/_cjs/src/components/widgets/TokenSelectorContainer.js +3 -13
  138. package/_cjs/src/components/widgets/TokenSelectorContainer.js.map +1 -1
  139. package/_cjs/src/components/widgets/WidgetErrorWell.js +10 -76
  140. package/_cjs/src/components/widgets/WidgetErrorWell.js.map +1 -1
  141. package/_cjs/src/providers/RelayKitProvider.js +1 -0
  142. package/_cjs/src/providers/RelayKitProvider.js.map +1 -1
  143. package/_cjs/src/styles.css +3 -3717
  144. package/_cjs/src/themes/RelayKitTheme.js.map +1 -1
  145. package/_cjs/src/utils/cn.js +13 -0
  146. package/_cjs/src/utils/cn.js.map +1 -0
  147. package/_cjs/src/utils/theme.js +13 -1
  148. package/_cjs/src/utils/theme.js.map +1 -1
  149. package/_cjs/src/version.js +1 -1
  150. package/_cjs/tsconfig.build.tsbuildinfo +1 -1
  151. package/_esm/package.json +1 -1
  152. package/_esm/src/components/common/AmountInput.js +2 -17
  153. package/_esm/src/components/common/AmountInput.js.map +1 -1
  154. package/_esm/src/components/common/BalanceDisplay.js +2 -2
  155. package/_esm/src/components/common/BalanceDisplay.js.map +1 -1
  156. package/_esm/src/components/common/CopyToClipBoard.js +3 -7
  157. package/_esm/src/components/common/CopyToClipBoard.js.map +1 -1
  158. package/_esm/src/components/common/CustomAddressModal.js +10 -48
  159. package/_esm/src/components/common/CustomAddressModal.js.map +1 -1
  160. package/_esm/src/components/common/ErrorWell.js +9 -29
  161. package/_esm/src/components/common/ErrorWell.js.map +1 -1
  162. package/_esm/src/components/common/LoadingSpinner.js +7 -13
  163. package/_esm/src/components/common/LoadingSpinner.js.map +1 -1
  164. package/_esm/src/components/common/Modal.js +4 -22
  165. package/_esm/src/components/common/Modal.js.map +1 -1
  166. package/_esm/src/components/common/MultiWalletDropdown.js +22 -56
  167. package/_esm/src/components/common/MultiWalletDropdown.js.map +1 -1
  168. package/_esm/src/components/common/PercentageButtons.js +7 -24
  169. package/_esm/src/components/common/PercentageButtons.js.map +1 -1
  170. package/_esm/src/components/common/SlippageToleranceConfig.js +21 -117
  171. package/_esm/src/components/common/SlippageToleranceConfig.js.map +1 -1
  172. package/_esm/src/components/common/StepIcon.js +1 -7
  173. package/_esm/src/components/common/StepIcon.js.map +1 -1
  174. package/_esm/src/components/common/TokenSelector/ChainFilter.js +19 -109
  175. package/_esm/src/components/common/TokenSelector/ChainFilter.js.map +1 -1
  176. package/_esm/src/components/common/TokenSelector/ChainFilterRow.js +10 -54
  177. package/_esm/src/components/common/TokenSelector/ChainFilterRow.js.map +1 -1
  178. package/_esm/src/components/common/TokenSelector/ChainFilterSidebar.js +15 -98
  179. package/_esm/src/components/common/TokenSelector/ChainFilterSidebar.js.map +1 -1
  180. package/_esm/src/components/common/TokenSelector/ChainShortcuts.js +6 -28
  181. package/_esm/src/components/common/TokenSelector/ChainShortcuts.js.map +1 -1
  182. package/_esm/src/components/common/TokenSelector/CompactChainFilter.js +12 -83
  183. package/_esm/src/components/common/TokenSelector/CompactChainFilter.js.map +1 -1
  184. package/_esm/src/components/common/TokenSelector/MobileChainSelector.js +16 -109
  185. package/_esm/src/components/common/TokenSelector/MobileChainSelector.js.map +1 -1
  186. package/_esm/src/components/common/TokenSelector/PaymentMethod.js +10 -101
  187. package/_esm/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
  188. package/_esm/src/components/common/TokenSelector/PaymentTokenList.js +8 -69
  189. package/_esm/src/components/common/TokenSelector/PaymentTokenList.js.map +1 -1
  190. package/_esm/src/components/common/TokenSelector/SuggestedTokens.js +2 -33
  191. package/_esm/src/components/common/TokenSelector/SuggestedTokens.js.map +1 -1
  192. package/_esm/src/components/common/TokenSelector/TagPill.js +1 -9
  193. package/_esm/src/components/common/TokenSelector/TagPill.js.map +1 -1
  194. package/_esm/src/components/common/TokenSelector/TokenList.js +9 -57
  195. package/_esm/src/components/common/TokenSelector/TokenList.js.map +1 -1
  196. package/_esm/src/components/common/TokenSelector/TokenSelector.js +24 -70
  197. package/_esm/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
  198. package/_esm/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js +2 -35
  199. package/_esm/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.js.map +1 -1
  200. package/_esm/src/components/common/TokenSelector/triggers/TokenTrigger.js +2 -28
  201. package/_esm/src/components/common/TokenSelector/triggers/TokenTrigger.js.map +1 -1
  202. package/_esm/src/components/common/TransactionModal/DepositAddressModal.js +2 -10
  203. package/_esm/src/components/common/TransactionModal/DepositAddressModal.js.map +1 -1
  204. package/_esm/src/components/common/TransactionModal/TransactionModal.js +2 -13
  205. package/_esm/src/components/common/TransactionModal/TransactionModal.js.map +1 -1
  206. package/_esm/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js +8 -45
  207. package/_esm/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js.map +1 -1
  208. package/_esm/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js +1 -5
  209. package/_esm/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js.map +1 -1
  210. package/_esm/src/components/common/TransactionModal/steps/ErrorStep.js +9 -30
  211. package/_esm/src/components/common/TransactionModal/steps/ErrorStep.js.map +1 -1
  212. package/_esm/src/components/common/TransactionModal/steps/SwapConfirmationStep.js +26 -81
  213. package/_esm/src/components/common/TransactionModal/steps/SwapConfirmationStep.js.map +1 -1
  214. package/_esm/src/components/common/TransactionModal/steps/SwapSuccessStep.js +16 -76
  215. package/_esm/src/components/common/TransactionModal/steps/SwapSuccessStep.js.map +1 -1
  216. package/_esm/src/components/common/TransactionModal/steps/TransactionsByChain.js +3 -8
  217. package/_esm/src/components/common/TransactionModal/steps/TransactionsByChain.js.map +1 -1
  218. package/_esm/src/components/common/TransactionModal/steps/WaitingForDepositStep.js +28 -63
  219. package/_esm/src/components/common/TransactionModal/steps/WaitingForDepositStep.js.map +1 -1
  220. package/_esm/src/components/common/UnverifiedTokenModal.js +6 -32
  221. package/_esm/src/components/common/UnverifiedTokenModal.js.map +1 -1
  222. package/_esm/src/components/primitives/AccessibleList.js +5 -21
  223. package/_esm/src/components/primitives/AccessibleList.js.map +1 -1
  224. package/_esm/src/components/primitives/Anchor.js +18 -41
  225. package/_esm/src/components/primitives/Anchor.js.map +1 -1
  226. package/_esm/src/components/primitives/Box.js +3 -4
  227. package/_esm/src/components/primitives/Box.js.map +1 -1
  228. package/_esm/src/components/primitives/Button.js +63 -124
  229. package/_esm/src/components/primitives/Button.js.map +1 -1
  230. package/_esm/src/components/primitives/ChainIcon.js +5 -9
  231. package/_esm/src/components/primitives/ChainIcon.js.map +1 -1
  232. package/_esm/src/components/primitives/ChainTokenIcon.js +7 -26
  233. package/_esm/src/components/primitives/ChainTokenIcon.js.map +1 -1
  234. package/_esm/src/components/primitives/Collapsible.js +7 -32
  235. package/_esm/src/components/primitives/Collapsible.js.map +1 -1
  236. package/_esm/src/components/primitives/Dialog.js +39 -81
  237. package/_esm/src/components/primitives/Dialog.js.map +1 -1
  238. package/_esm/src/components/primitives/Dropdown.js +5 -35
  239. package/_esm/src/components/primitives/Dropdown.js.map +1 -1
  240. package/_esm/src/components/primitives/Flex.js +22 -58
  241. package/_esm/src/components/primitives/Flex.js.map +1 -1
  242. package/_esm/src/components/primitives/Input.js +19 -50
  243. package/_esm/src/components/primitives/Input.js.map +1 -1
  244. package/_esm/src/components/primitives/Pill.js +17 -48
  245. package/_esm/src/components/primitives/Pill.js.map +1 -1
  246. package/_esm/src/components/primitives/Skeleton.js +3 -12
  247. package/_esm/src/components/primitives/Skeleton.js.map +1 -1
  248. package/_esm/src/components/primitives/SlippageButton.js +1 -13
  249. package/_esm/src/components/primitives/SlippageButton.js.map +1 -1
  250. package/_esm/src/components/primitives/Switch.js +5 -43
  251. package/_esm/src/components/primitives/Switch.js.map +1 -1
  252. package/_esm/src/components/primitives/Tabs.js +9 -39
  253. package/_esm/src/components/primitives/Tabs.js.map +1 -1
  254. package/_esm/src/components/primitives/Text.js +36 -94
  255. package/_esm/src/components/primitives/Text.js.map +1 -1
  256. package/_esm/src/components/primitives/Tooltip.js +3 -30
  257. package/_esm/src/components/primitives/Tooltip.js.map +1 -1
  258. package/_esm/src/components/widgets/FeeBreakdown.js +24 -81
  259. package/_esm/src/components/widgets/FeeBreakdown.js.map +1 -1
  260. package/_esm/src/components/widgets/FetchingQuoteLoader.js +3 -9
  261. package/_esm/src/components/widgets/FetchingQuoteLoader.js.map +1 -1
  262. package/_esm/src/components/widgets/OnrampWidget/modals/OnrampModal.js +1 -8
  263. package/_esm/src/components/widgets/OnrampWidget/modals/OnrampModal.js.map +1 -1
  264. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js +3 -20
  265. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js.map +1 -1
  266. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js +4 -28
  267. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js.map +1 -1
  268. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js +3 -33
  269. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js.map +1 -1
  270. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js +9 -45
  271. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js.map +1 -1
  272. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js +5 -26
  273. package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js.map +1 -1
  274. package/_esm/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js +7 -96
  275. package/_esm/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js.map +1 -1
  276. package/_esm/src/components/widgets/OnrampWidget/widget/index.js +18 -112
  277. package/_esm/src/components/widgets/OnrampWidget/widget/index.js.map +1 -1
  278. package/_esm/src/components/widgets/PriceImpactTooltip.js +4 -10
  279. package/_esm/src/components/widgets/PriceImpactTooltip.js.map +1 -1
  280. package/_esm/src/components/widgets/SwapButton.js +3 -14
  281. package/_esm/src/components/widgets/SwapButton.js.map +1 -1
  282. package/_esm/src/components/widgets/SwapWidget/GasTopUpSection.js +5 -10
  283. package/_esm/src/components/widgets/SwapWidget/GasTopUpSection.js.map +1 -1
  284. package/_esm/src/components/widgets/SwapWidget/PriceImpact.js +2 -4
  285. package/_esm/src/components/widgets/SwapWidget/PriceImpact.js.map +1 -1
  286. package/_esm/src/components/widgets/SwapWidget/index.js +35 -136
  287. package/_esm/src/components/widgets/SwapWidget/index.js.map +1 -1
  288. package/_esm/src/components/widgets/TokenSelectorContainer.js +3 -14
  289. package/_esm/src/components/widgets/TokenSelectorContainer.js.map +1 -1
  290. package/_esm/src/components/widgets/WidgetErrorWell.js +14 -80
  291. package/_esm/src/components/widgets/WidgetErrorWell.js.map +1 -1
  292. package/_esm/src/providers/RelayKitProvider.js +1 -0
  293. package/_esm/src/providers/RelayKitProvider.js.map +1 -1
  294. package/_esm/src/styles.css +3 -3717
  295. package/_esm/src/themes/RelayKitTheme.js.map +1 -1
  296. package/_esm/src/utils/cn.js +9 -0
  297. package/_esm/src/utils/cn.js.map +1 -0
  298. package/_esm/src/utils/theme.js +15 -1
  299. package/_esm/src/utils/theme.js.map +1 -1
  300. package/_esm/src/version.js +1 -1
  301. package/_esm/tsconfig.build.tsbuildinfo +1 -1
  302. package/_types/src/components/common/AmountInput.d.ts.map +1 -1
  303. package/_types/src/components/common/CopyToClipBoard.d.ts.map +1 -1
  304. package/_types/src/components/common/CustomAddressModal.d.ts.map +1 -1
  305. package/_types/src/components/common/ErrorWell.d.ts.map +1 -1
  306. package/_types/src/components/common/LoadingSpinner.d.ts +1 -2
  307. package/_types/src/components/common/LoadingSpinner.d.ts.map +1 -1
  308. package/_types/src/components/common/Modal.d.ts +3 -3
  309. package/_types/src/components/common/Modal.d.ts.map +1 -1
  310. package/_types/src/components/common/MultiWalletDropdown.d.ts.map +1 -1
  311. package/_types/src/components/common/PercentageButtons.d.ts +1 -1
  312. package/_types/src/components/common/PercentageButtons.d.ts.map +1 -1
  313. package/_types/src/components/common/SlippageToleranceConfig.d.ts +0 -1
  314. package/_types/src/components/common/SlippageToleranceConfig.d.ts.map +1 -1
  315. package/_types/src/components/common/StepIcon.d.ts.map +1 -1
  316. package/_types/src/components/common/TokenSelector/ChainFilter.d.ts.map +1 -1
  317. package/_types/src/components/common/TokenSelector/ChainFilterRow.d.ts.map +1 -1
  318. package/_types/src/components/common/TokenSelector/ChainFilterSidebar.d.ts.map +1 -1
  319. package/_types/src/components/common/TokenSelector/ChainShortcuts.d.ts.map +1 -1
  320. package/_types/src/components/common/TokenSelector/CompactChainFilter.d.ts.map +1 -1
  321. package/_types/src/components/common/TokenSelector/MobileChainSelector.d.ts.map +1 -1
  322. package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts.map +1 -1
  323. package/_types/src/components/common/TokenSelector/PaymentTokenList.d.ts.map +1 -1
  324. package/_types/src/components/common/TokenSelector/SuggestedTokens.d.ts.map +1 -1
  325. package/_types/src/components/common/TokenSelector/TagPill.d.ts.map +1 -1
  326. package/_types/src/components/common/TokenSelector/TokenList.d.ts.map +1 -1
  327. package/_types/src/components/common/TokenSelector/TokenSelector.d.ts.map +1 -1
  328. package/_types/src/components/common/TokenSelector/triggers/PaymentMethodTrigger.d.ts.map +1 -1
  329. package/_types/src/components/common/TokenSelector/triggers/TokenTrigger.d.ts.map +1 -1
  330. package/_types/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.d.ts.map +1 -1
  331. package/_types/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.d.ts.map +1 -1
  332. package/_types/src/components/common/TransactionModal/steps/ErrorStep.d.ts.map +1 -1
  333. package/_types/src/components/common/TransactionModal/steps/SwapConfirmationStep.d.ts.map +1 -1
  334. package/_types/src/components/common/TransactionModal/steps/SwapSuccessStep.d.ts.map +1 -1
  335. package/_types/src/components/common/TransactionModal/steps/TransactionsByChain.d.ts.map +1 -1
  336. package/_types/src/components/common/TransactionModal/steps/WaitingForDepositStep.d.ts.map +1 -1
  337. package/_types/src/components/common/UnverifiedTokenModal.d.ts.map +1 -1
  338. package/_types/src/components/primitives/AccessibleList.d.ts +2 -3
  339. package/_types/src/components/primitives/AccessibleList.d.ts.map +1 -1
  340. package/_types/src/components/primitives/Anchor.d.ts +10 -39
  341. package/_types/src/components/primitives/Anchor.d.ts.map +1 -1
  342. package/_types/src/components/primitives/Box.d.ts +2 -5
  343. package/_types/src/components/primitives/Box.d.ts.map +1 -1
  344. package/_types/src/components/primitives/Button.d.ts +11 -8
  345. package/_types/src/components/primitives/Button.d.ts.map +1 -1
  346. package/_types/src/components/primitives/ChainIcon.d.ts +1 -2
  347. package/_types/src/components/primitives/ChainIcon.d.ts.map +1 -1
  348. package/_types/src/components/primitives/ChainTokenIcon.d.ts +1 -2
  349. package/_types/src/components/primitives/ChainTokenIcon.d.ts.map +1 -1
  350. package/_types/src/components/primitives/Collapsible.d.ts +3 -4
  351. package/_types/src/components/primitives/Collapsible.d.ts.map +1 -1
  352. package/_types/src/components/primitives/Dialog.d.ts +2 -3
  353. package/_types/src/components/primitives/Dialog.d.ts.map +1 -1
  354. package/_types/src/components/primitives/Dropdown.d.ts +2 -3
  355. package/_types/src/components/primitives/Dropdown.d.ts.map +1 -1
  356. package/_types/src/components/primitives/Flex.d.ts +10 -65
  357. package/_types/src/components/primitives/Flex.d.ts.map +1 -1
  358. package/_types/src/components/primitives/Input.d.ts +10 -8
  359. package/_types/src/components/primitives/Input.d.ts.map +1 -1
  360. package/_types/src/components/primitives/Pill.d.ts +9 -50
  361. package/_types/src/components/primitives/Pill.d.ts.map +1 -1
  362. package/_types/src/components/primitives/Skeleton.d.ts +1 -2
  363. package/_types/src/components/primitives/Skeleton.d.ts.map +1 -1
  364. package/_types/src/components/primitives/SlippageButton.d.ts.map +1 -1
  365. package/_types/src/components/primitives/Switch.d.ts +2 -3
  366. package/_types/src/components/primitives/Switch.d.ts.map +1 -1
  367. package/_types/src/components/primitives/Tabs.d.ts +4 -5
  368. package/_types/src/components/primitives/Tabs.d.ts.map +1 -1
  369. package/_types/src/components/primitives/Text.d.ts +10 -100
  370. package/_types/src/components/primitives/Text.d.ts.map +1 -1
  371. package/_types/src/components/primitives/Tooltip.d.ts.map +1 -1
  372. package/_types/src/components/widgets/FeeBreakdown.d.ts.map +1 -1
  373. package/_types/src/components/widgets/FetchingQuoteLoader.d.ts +1 -2
  374. package/_types/src/components/widgets/FetchingQuoteLoader.d.ts.map +1 -1
  375. package/_types/src/components/widgets/OnrampWidget/modals/OnrampModal.d.ts.map +1 -1
  376. package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.d.ts.map +1 -1
  377. package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.d.ts.map +1 -1
  378. package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.d.ts.map +1 -1
  379. package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.d.ts.map +1 -1
  380. package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.d.ts.map +1 -1
  381. package/_types/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.d.ts.map +1 -1
  382. package/_types/src/components/widgets/OnrampWidget/widget/index.d.ts.map +1 -1
  383. package/_types/src/components/widgets/PriceImpactTooltip.d.ts.map +1 -1
  384. package/_types/src/components/widgets/SwapButton.d.ts.map +1 -1
  385. package/_types/src/components/widgets/SwapWidget/GasTopUpSection.d.ts.map +1 -1
  386. package/_types/src/components/widgets/SwapWidget/PriceImpact.d.ts.map +1 -1
  387. package/_types/src/components/widgets/SwapWidget/index.d.ts.map +1 -1
  388. package/_types/src/components/widgets/TokenSelectorContainer.d.ts +1 -2
  389. package/_types/src/components/widgets/TokenSelectorContainer.d.ts.map +1 -1
  390. package/_types/src/components/widgets/WidgetErrorWell.d.ts +1 -2
  391. package/_types/src/components/widgets/WidgetErrorWell.d.ts.map +1 -1
  392. package/_types/src/providers/RelayKitProvider.d.ts.map +1 -1
  393. package/_types/src/themes/RelayKitTheme.d.ts +1 -0
  394. package/_types/src/themes/RelayKitTheme.d.ts.map +1 -1
  395. package/_types/src/utils/cn.d.ts +3 -0
  396. package/_types/src/utils/cn.d.ts.map +1 -0
  397. package/_types/src/utils/theme.d.ts.map +1 -1
  398. package/_types/src/version.d.ts +1 -1
  399. package/_types/tsconfig.build.tsbuildinfo +1 -1
  400. package/dist/styles.css +3 -3717
  401. package/package.json +20 -19
  402. package/_cjs/src/components/widgets/TokenWidget/AmountModeToggle.js +0 -31
  403. package/_cjs/src/components/widgets/TokenWidget/AmountModeToggle.js.map +0 -1
  404. package/_cjs/src/components/widgets/TokenWidget/AmountSectionHeader.js +0 -8
  405. package/_cjs/src/components/widgets/TokenWidget/AmountSectionHeader.js.map +0 -1
  406. package/_cjs/src/components/widgets/TokenWidget/BuyTabContent.js +0 -214
  407. package/_cjs/src/components/widgets/TokenWidget/BuyTabContent.js.map +0 -1
  408. package/_cjs/src/components/widgets/TokenWidget/DestinationWalletSelector.js +0 -20
  409. package/_cjs/src/components/widgets/TokenWidget/DestinationWalletSelector.js.map +0 -1
  410. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownInfo.js +0 -64
  411. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownInfo.js.map +0 -1
  412. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js +0 -44
  413. package/_cjs/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js.map +0 -1
  414. package/_cjs/src/components/widgets/TokenWidget/SectionContainer.js +0 -25
  415. package/_cjs/src/components/widgets/TokenWidget/SectionContainer.js.map +0 -1
  416. package/_cjs/src/components/widgets/TokenWidget/SellTabContent.js +0 -261
  417. package/_cjs/src/components/widgets/TokenWidget/SellTabContent.js.map +0 -1
  418. package/_cjs/src/components/widgets/TokenWidget/TransactionDetailsFooter.js +0 -42
  419. package/_cjs/src/components/widgets/TokenWidget/TransactionDetailsFooter.js.map +0 -1
  420. package/_cjs/src/components/widgets/TokenWidget/hooks/useWalletGuards.js +0 -108
  421. package/_cjs/src/components/widgets/TokenWidget/hooks/useWalletGuards.js.map +0 -1
  422. package/_cjs/src/components/widgets/TokenWidget/index.js +0 -9
  423. package/_cjs/src/components/widgets/TokenWidget/index.js.map +0 -1
  424. package/_cjs/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js +0 -719
  425. package/_cjs/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js.map +0 -1
  426. package/_cjs/src/components/widgets/TokenWidget/widget/index.js +0 -1034
  427. package/_cjs/src/components/widgets/TokenWidget/widget/index.js.map +0 -1
  428. package/_esm/src/components/widgets/TokenWidget/AmountModeToggle.js +0 -30
  429. package/_esm/src/components/widgets/TokenWidget/AmountModeToggle.js.map +0 -1
  430. package/_esm/src/components/widgets/TokenWidget/AmountSectionHeader.js +0 -7
  431. package/_esm/src/components/widgets/TokenWidget/AmountSectionHeader.js.map +0 -1
  432. package/_esm/src/components/widgets/TokenWidget/BuyTabContent.js +0 -211
  433. package/_esm/src/components/widgets/TokenWidget/BuyTabContent.js.map +0 -1
  434. package/_esm/src/components/widgets/TokenWidget/DestinationWalletSelector.js +0 -16
  435. package/_esm/src/components/widgets/TokenWidget/DestinationWalletSelector.js.map +0 -1
  436. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownInfo.js +0 -59
  437. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownInfo.js.map +0 -1
  438. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js +0 -43
  439. package/_esm/src/components/widgets/TokenWidget/FeeBreakdownTooltip.js.map +0 -1
  440. package/_esm/src/components/widgets/TokenWidget/SectionContainer.js +0 -25
  441. package/_esm/src/components/widgets/TokenWidget/SectionContainer.js.map +0 -1
  442. package/_esm/src/components/widgets/TokenWidget/SellTabContent.js +0 -264
  443. package/_esm/src/components/widgets/TokenWidget/SellTabContent.js.map +0 -1
  444. package/_esm/src/components/widgets/TokenWidget/TransactionDetailsFooter.js +0 -41
  445. package/_esm/src/components/widgets/TokenWidget/TransactionDetailsFooter.js.map +0 -1
  446. package/_esm/src/components/widgets/TokenWidget/hooks/useWalletGuards.js +0 -104
  447. package/_esm/src/components/widgets/TokenWidget/hooks/useWalletGuards.js.map +0 -1
  448. package/_esm/src/components/widgets/TokenWidget/index.js +0 -2
  449. package/_esm/src/components/widgets/TokenWidget/index.js.map +0 -1
  450. package/_esm/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js +0 -742
  451. package/_esm/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.js.map +0 -1
  452. package/_esm/src/components/widgets/TokenWidget/widget/index.js +0 -1100
  453. package/_esm/src/components/widgets/TokenWidget/widget/index.js.map +0 -1
  454. package/_types/src/components/widgets/TokenWidget/AmountModeToggle.d.ts +0 -12
  455. package/_types/src/components/widgets/TokenWidget/AmountModeToggle.d.ts.map +0 -1
  456. package/_types/src/components/widgets/TokenWidget/AmountSectionHeader.d.ts +0 -11
  457. package/_types/src/components/widgets/TokenWidget/AmountSectionHeader.d.ts.map +0 -1
  458. package/_types/src/components/widgets/TokenWidget/BuyTabContent.d.ts +0 -53
  459. package/_types/src/components/widgets/TokenWidget/BuyTabContent.d.ts.map +0 -1
  460. package/_types/src/components/widgets/TokenWidget/DestinationWalletSelector.d.ts +0 -17
  461. package/_types/src/components/widgets/TokenWidget/DestinationWalletSelector.d.ts.map +0 -1
  462. package/_types/src/components/widgets/TokenWidget/FeeBreakdownInfo.d.ts +0 -16
  463. package/_types/src/components/widgets/TokenWidget/FeeBreakdownInfo.d.ts.map +0 -1
  464. package/_types/src/components/widgets/TokenWidget/FeeBreakdownTooltip.d.ts +0 -15
  465. package/_types/src/components/widgets/TokenWidget/FeeBreakdownTooltip.d.ts.map +0 -1
  466. package/_types/src/components/widgets/TokenWidget/SectionContainer.d.ts +0 -11
  467. package/_types/src/components/widgets/TokenWidget/SectionContainer.d.ts.map +0 -1
  468. package/_types/src/components/widgets/TokenWidget/SellTabContent.d.ts +0 -61
  469. package/_types/src/components/widgets/TokenWidget/SellTabContent.d.ts.map +0 -1
  470. package/_types/src/components/widgets/TokenWidget/TransactionDetailsFooter.d.ts +0 -14
  471. package/_types/src/components/widgets/TokenWidget/TransactionDetailsFooter.d.ts.map +0 -1
  472. package/_types/src/components/widgets/TokenWidget/hooks/useWalletGuards.d.ts +0 -28
  473. package/_types/src/components/widgets/TokenWidget/hooks/useWalletGuards.d.ts.map +0 -1
  474. package/_types/src/components/widgets/TokenWidget/index.d.ts +0 -3
  475. package/_types/src/components/widgets/TokenWidget/index.d.ts.map +0 -1
  476. package/_types/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.d.ts +0 -117
  477. package/_types/src/components/widgets/TokenWidget/widget/TokenWidgetRenderer.d.ts.map +0 -1
  478. package/_types/src/components/widgets/TokenWidget/widget/index.d.ts +0 -58
  479. package/_types/src/components/widgets/TokenWidget/widget/index.d.ts.map +0 -1
  480. package/dist/panda.buildinfo.json +0 -676
@@ -1,1034 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const index_js_1 = require("../../../primitives/index.js");
6
- const Tabs_js_1 = require("../../../primitives/Tabs.js");
7
- const react_1 = require("react");
8
- const index_js_2 = require("../../../../hooks/index.js");
9
- const useFallbackState_js_1 = tslib_1.__importDefault(require("../../../../hooks/useFallbackState.js"));
10
- const viem_1 = require("viem");
11
- const wagmi_1 = require("wagmi");
12
- const relay_sdk_1 = require("@relayprotocol/relay-sdk");
13
- const events_js_1 = require("../../../../constants/events.js");
14
- const WidgetContainer_js_1 = tslib_1.__importDefault(require("../../WidgetContainer.js"));
15
- const RelayKitProvider_js_1 = require("../../../../providers/RelayKitProvider.js");
16
- const tokens_js_1 = require("../../../../utils/tokens.js");
17
- const UnverifiedTokenModal_js_1 = require("../../../common/UnverifiedTokenModal.js");
18
- const localStorage_js_1 = require("../../../../utils/localStorage.js");
19
- const quote_js_1 = require("../../../../utils/quote.js");
20
- const nativeMaxAmount_js_1 = require("../../../../utils/nativeMaxAmount.js");
21
- const TokenWidgetRenderer_js_1 = tslib_1.__importDefault(require("./TokenWidgetRenderer.js"));
22
- const BuyTabContent_js_1 = tslib_1.__importDefault(require("../BuyTabContent.js"));
23
- const SellTabContent_js_1 = tslib_1.__importDefault(require("../SellTabContent.js"));
24
- const useWalletGuards_js_1 = require("../hooks/useWalletGuards.js");
25
- const address_js_1 = require("../../../../utils/address.js");
26
- const BASE_USDC_ADDRESS = '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913';
27
- const BASE_USDC_TOKEN = {
28
- chainId: 8453,
29
- address: BASE_USDC_ADDRESS,
30
- name: 'USD Coin',
31
- symbol: 'USDC',
32
- decimals: 6,
33
- logoURI: `${relay_sdk_1.ASSETS_RELAY_API}/icons/currencies/usdc.png`,
34
- verified: true
35
- };
36
- const isBaseUsdcToken = (token) => token?.chainId === BASE_USDC_TOKEN.chainId &&
37
- token?.address?.toLowerCase() === BASE_USDC_ADDRESS;
38
- const COMPATIBLE_WALLET_VMS = [
39
- 'evm',
40
- 'suivm',
41
- 'tvm',
42
- 'hypevm',
43
- 'svm',
44
- 'bvm'
45
- ];
46
- const TokenWidget = ({ fromToken: externalFromToken, setFromToken: setExternalFromToken, toToken: externalToToken, setToToken: setExternalToToken, activeTab: externalActiveTab, setActiveTab: setExternalActiveTab, defaultToAddress, defaultAmount, defaultTradeType, slippageTolerance, onOpenSlippageConfig, lockToToken = false, lockFromToken = false, lockChainId, singleChainMode = false, wallet, multiWalletSupportEnabled = false, linkedWallets, supportedWalletVMs, disableInputAutoFocus = false, popularChainIds, disablePasteWalletAddressOption, useSecureBaseUrl, paymentMethodMinHeight = '85vh', onSetPrimaryWallet, onLinkNewWallet, onFromTokenChange, onToTokenChange, onConnectWallet, onAnalyticEvent: _onAnalyticEvent, onSwapSuccess, onSwapValidating, onSwapError, onUnverifiedTokenDecline, walletsLoading = false }) => {
47
- const onAnalyticEvent = (0, react_1.useCallback)((eventName, data) => {
48
- try {
49
- _onAnalyticEvent?.(eventName, data);
50
- }
51
- catch (e) {
52
- console.error('Error in onAnalyticEvent', eventName, data, e);
53
- }
54
- }, [_onAnalyticEvent]);
55
- const relayClient = (0, index_js_2.useRelayClient)();
56
- const providerOptionsContext = (0, react_1.useContext)(RelayKitProvider_js_1.ProviderOptionsContext);
57
- const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides;
58
- const [transactionModalOpen, setTransactionModalOpen] = (0, react_1.useState)(false);
59
- const [depositAddressModalOpen, setDepositAddressModalOpen] = (0, react_1.useState)(false);
60
- const [addressModalOpen, setAddressModalOpen] = (0, react_1.useState)(false);
61
- const [pendingSuccessFlush, setPendingSuccessFlush] = (0, react_1.useState)(false);
62
- const [unverifiedTokens, setUnverifiedTokens] = (0, react_1.useState)([]);
63
- const declinedTokensRef = (0, react_1.useRef)(new Set());
64
- const [fromToken, setFromToken] = (0, react_1.useState)(externalFromToken);
65
- const [toToken, setToToken] = (0, react_1.useState)(externalToToken);
66
- (0, react_1.useEffect)(() => {
67
- setFromToken(externalFromToken);
68
- }, [externalFromToken]);
69
- (0, react_1.useEffect)(() => {
70
- setToToken(externalToToken);
71
- }, [externalToToken]);
72
- const updateFromToken = (0, react_1.useCallback)((token) => {
73
- setFromToken(token);
74
- setExternalFromToken?.(token);
75
- }, [setExternalFromToken]);
76
- const updateToToken = (0, react_1.useCallback)((token) => {
77
- setToToken(token);
78
- setExternalToToken?.(token);
79
- }, [setExternalToToken]);
80
- const [activeTab, setActiveTab] = (0, useFallbackState_js_1.default)(setExternalActiveTab && externalActiveTab ? externalActiveTab : 'buy', setExternalActiveTab && externalActiveTab
81
- ? [
82
- externalActiveTab,
83
- setExternalActiveTab
84
- ]
85
- : undefined);
86
- const [isUsdInputMode, setIsUsdInputMode] = (0, react_1.useState)(activeTab === 'buy');
87
- const [usdInputValue, setUsdInputValue] = (0, react_1.useState)('');
88
- const [usdOutputValue, setUsdOutputValue] = (0, react_1.useState)('');
89
- const [tokenInputCache, setTokenInputCache] = (0, react_1.useState)('');
90
- const tabTokenStateRef = (0, react_1.useRef)({ buy: {}, sell: {} });
91
- const prevActiveTabRef = (0, react_1.useRef)(activeTab);
92
- const autoSelectedFromTokenRef = (0, react_1.useRef)(false);
93
- const tabRecipientRef = (0, react_1.useRef)({ buy: {}, sell: {} });
94
- const setTradeTypeRef = (0, react_1.useRef)(null);
95
- const tradeTypeRef = (0, react_1.useRef)(defaultTradeType ?? 'EXPECTED_OUTPUT');
96
- const hasLockedToken = lockFromToken || lockToToken;
97
- const isSingleChainLocked = singleChainMode && lockChainId !== undefined;
98
- const [localSlippageTolerance, setLocalSlippageTolerance] = (0, react_1.useState)(slippageTolerance);
99
- (0, react_1.useEffect)(() => {
100
- setLocalSlippageTolerance(slippageTolerance);
101
- }, [slippageTolerance]);
102
- (0, react_1.useEffect)(() => {
103
- const desiredTradeType = activeTab === 'buy' ? 'EXPECTED_OUTPUT' : 'EXACT_INPUT';
104
- if (tradeTypeRef.current !== desiredTradeType) {
105
- setTradeTypeRef.current?.(desiredTradeType);
106
- }
107
- }, [activeTab]);
108
- const handleOpenSlippageConfig = () => {
109
- onOpenSlippageConfig?.();
110
- };
111
- const handleSlippageToleranceChange = (value) => {
112
- setLocalSlippageTolerance(value);
113
- };
114
- const computedDefaultTradeType = defaultTradeType ??
115
- (activeTab === 'buy' ? 'EXPECTED_OUTPUT' : 'EXACT_INPUT');
116
- (0, react_1.useEffect)(() => {
117
- const tokensToVerify = [];
118
- const getTokenKey = (token) => `${token.chainId}:${token.address.toLowerCase()}`;
119
- if (fromToken && 'verified' in fromToken && !fromToken.verified) {
120
- if ((0, localStorage_js_1.alreadyAcceptedToken)(fromToken)) {
121
- setFromToken({ ...fromToken, verified: true });
122
- }
123
- else if (!declinedTokensRef.current.has(getTokenKey(fromToken))) {
124
- tokensToVerify.push({ token: fromToken, context: 'from' });
125
- }
126
- }
127
- if (toToken && 'verified' in toToken && !toToken.verified) {
128
- if ((0, localStorage_js_1.alreadyAcceptedToken)(toToken)) {
129
- setToToken({ ...toToken, verified: true });
130
- }
131
- else if (!declinedTokensRef.current.has(getTokenKey(toToken))) {
132
- tokensToVerify.push({ token: toToken, context: 'to' });
133
- }
134
- }
135
- if (tokensToVerify.length > 0) {
136
- setUnverifiedTokens((prev) => [...prev, ...tokensToVerify]);
137
- tokensToVerify.forEach(({ context }) => {
138
- if (context === 'from') {
139
- setFromToken(undefined);
140
- }
141
- else {
142
- setToToken(undefined);
143
- }
144
- });
145
- }
146
- }, [fromToken, toToken]);
147
- return ((0, jsx_runtime_1.jsx)(TokenWidgetRenderer_js_1.default, { context: "Swap", transactionModalOpen: transactionModalOpen, setTransactionModalOpen: setTransactionModalOpen, depositAddressModalOpen: depositAddressModalOpen, defaultAmount: defaultAmount, defaultToAddress: defaultToAddress, defaultTradeType: computedDefaultTradeType, toToken: toToken, setToToken: updateToToken, fromToken: fromToken, setFromToken: updateFromToken, slippageTolerance: localSlippageTolerance, wallet: wallet, linkedWallets: linkedWallets, multiWalletSupportEnabled: multiWalletSupportEnabled, onSwapError: onSwapError, onAnalyticEvent: onAnalyticEvent, supportedWalletVMs: supportedWalletVMs, useSecureBaseUrl: useSecureBaseUrl, children: ({ quote, steps, swap, setSteps, feeBreakdown, fromToken, setFromToken, toToken, setToToken, error, toDisplayName, address, originAddressOverride: _originAddressOverride, setOriginAddressOverride, recipient, customToAddress, setCustomToAddress, destinationAddressOverride, setDestinationAddressOverride, tradeType, setTradeType, isSameCurrencySameRecipientSwap, allowUnsupportedOrigin, setAllowUnsupportedOrigin, allowUnsupportedRecipient, setAllowUnsupportedRecipient, debouncedInputAmountValue, debouncedAmountInputControls, setAmountInputValue, amountInputValue, amountOutputValue, debouncedOutputAmountValue, debouncedAmountOutputControls, setAmountOutputValue, toBalance, toBalancePending, isLoadingToBalance, isFetchingQuote, isLoadingFromBalance, fromBalance, fromBalancePending, highRelayerServiceFee, relayerFeeProportion, hasInsufficientBalance, isInsufficientLiquidityError, isCapacityExceededError, isCouldNotExecuteError, ctaCopy, isFromNative, timeEstimate, isSvmSwap, isBvmSwap, isValidFromAddress, isValidToAddress, slippageTolerance, fromChainWalletVMSupported, toChainWalletVMSupported, isRecipientLinked, swapError, recipientWalletSupportsChain, linkedWallet, quoteParameters, setSwapError, invalidateBalanceQueries, invalidateQuoteQuery, quoteInProgress, setQuoteInProgress, abortController, fromTokenPriceData, toTokenPriceData, isLoadingFromTokenPrice, isLoadingToTokenPrice }) => {
148
- setTradeTypeRef.current = setTradeType;
149
- tradeTypeRef.current = tradeType;
150
- (0, react_1.useEffect)(() => {
151
- if (prevActiveTabRef.current !== activeTab) {
152
- return;
153
- }
154
- tabTokenStateRef.current[activeTab] = {
155
- fromToken,
156
- toToken
157
- };
158
- }, [activeTab, fromToken, toToken]);
159
- (0, react_1.useEffect)(() => {
160
- tabRecipientRef.current[activeTab] = {
161
- override: typeof destinationAddressOverride === 'string'
162
- ? destinationAddressOverride
163
- : undefined,
164
- custom: typeof customToAddress === 'string' ? customToAddress : undefined
165
- };
166
- }, [activeTab, destinationAddressOverride, customToAddress]);
167
- (0, react_1.useEffect)(() => {
168
- setAllowUnsupportedOrigin(activeTab === 'buy');
169
- setAllowUnsupportedRecipient(activeTab === 'sell');
170
- }, [activeTab, setAllowUnsupportedOrigin, setAllowUnsupportedRecipient]);
171
- (0, react_1.useEffect)(() => {
172
- if (activeTab === 'buy' &&
173
- toToken &&
174
- multiWalletSupportEnabled &&
175
- linkedWallets &&
176
- linkedWallets.length > 0 &&
177
- !destinationAddressOverride &&
178
- !customToAddress) {
179
- const toChain = relayClient?.chains?.find((c) => c.id === toToken.chainId);
180
- if (toChain) {
181
- const compatibleWallets = linkedWallets.filter((wallet) => {
182
- return (0, address_js_1.isWalletVmTypeCompatible)(wallet.vmType, toChain.vmType);
183
- });
184
- const currentAddressWallet = compatibleWallets.find((w) => w.address.toLowerCase() === address?.toLowerCase());
185
- const walletToSelect = currentAddressWallet || compatibleWallets[0];
186
- if (walletToSelect) {
187
- setDestinationAddressOverride(walletToSelect.address);
188
- }
189
- }
190
- }
191
- }, [
192
- activeTab,
193
- toToken,
194
- multiWalletSupportEnabled,
195
- linkedWallets,
196
- destinationAddressOverride,
197
- customToAddress,
198
- relayClient?.chains,
199
- setDestinationAddressOverride,
200
- address
201
- ]);
202
- const inputAmountUsd = (0, react_1.useMemo)(() => {
203
- return ((0, quote_js_1.calculateUsdValue)(fromTokenPriceData?.price, amountInputValue) ??
204
- null);
205
- }, [fromTokenPriceData, amountInputValue]);
206
- const outputAmountUsd = (0, react_1.useMemo)(() => {
207
- return ((0, quote_js_1.calculateUsdValue)(toTokenPriceData?.price, amountOutputValue) ??
208
- null);
209
- }, [toTokenPriceData, amountOutputValue]);
210
- const percentageOptions = [20, 50];
211
- const handleMaxAmountClicked = async (amount, percent, bufferAmount) => {
212
- if (fromToken) {
213
- const formattedAmount = (0, viem_1.formatUnits)(amount, fromToken?.decimals);
214
- setAmountInputValue(formattedAmount);
215
- setTradeType('EXACT_INPUT');
216
- debouncedAmountOutputControls.cancel();
217
- debouncedAmountInputControls.flush();
218
- onAnalyticEvent?.(events_js_1.EventNames.MAX_AMOUNT_CLICKED, {
219
- percent: percent,
220
- bufferAmount: bufferAmount ? bufferAmount.toString() : '0',
221
- chainType: fromChain?.vmType
222
- });
223
- if (isUsdInputMode && conversionRate) {
224
- const numericTokenAmount = Number(formattedAmount);
225
- if (!isNaN(numericTokenAmount)) {
226
- const usdEquivalent = numericTokenAmount * conversionRate;
227
- setUsdInputValue(usdEquivalent.toFixed(2));
228
- }
229
- }
230
- }
231
- };
232
- const fromChain = relayClient?.chains?.find((chain) => chain.id === fromToken?.chainId);
233
- const toChain = relayClient?.chains?.find((chain) => chain.id === toToken?.chainId);
234
- const handleSetToToken = (0, react_1.useCallback)((token) => {
235
- if (!token) {
236
- updateToToken(undefined);
237
- onToTokenChange?.(undefined);
238
- return;
239
- }
240
- let _token = token;
241
- if (!fromChainWalletVMSupported) {
242
- const newToChain = relayClient?.chains.find((chain) => token?.chainId == chain.id);
243
- if (newToChain) {
244
- const _toToken = (0, tokens_js_1.findBridgableToken)(newToChain, _token);
245
- if (_toToken && _toToken.address != _token?.address) {
246
- _token = _toToken;
247
- }
248
- }
249
- }
250
- updateToToken(_token);
251
- onToTokenChange?.(_token);
252
- }, [
253
- fromChainWalletVMSupported,
254
- onToTokenChange,
255
- relayClient,
256
- updateToToken
257
- ]);
258
- const handleSetFromToken = (0, react_1.useCallback)((token) => {
259
- if (!token) {
260
- updateFromToken(undefined);
261
- onFromTokenChange?.(undefined);
262
- return;
263
- }
264
- let _token = token;
265
- const newFromChain = relayClient?.chains.find((chain) => token?.chainId == chain.id);
266
- if (newFromChain?.vmType &&
267
- !(0, address_js_1.isChainVmTypeSupported)(newFromChain?.vmType, supportedWalletVMs)) {
268
- setTradeType('EXACT_INPUT');
269
- const _toToken = (0, tokens_js_1.findBridgableToken)(toChain, toToken);
270
- if (_toToken && _toToken?.address != toToken?.address) {
271
- handleSetToToken(_toToken);
272
- }
273
- const _fromToken = (0, tokens_js_1.findBridgableToken)(newFromChain, _token);
274
- if (_fromToken && _fromToken.address != _token?.address) {
275
- _token = _fromToken;
276
- }
277
- }
278
- updateFromToken(_token);
279
- onFromTokenChange?.(_token);
280
- }, [
281
- handleSetToToken,
282
- onFromTokenChange,
283
- relayClient,
284
- updateFromToken,
285
- setTradeType,
286
- supportedWalletVMs,
287
- toChain,
288
- toToken
289
- ]);
290
- const publicClient = (0, wagmi_1.usePublicClient)({ chainId: fromChain?.id });
291
- (0, react_1.useEffect)(() => {
292
- if (activeTab !== 'sell')
293
- return;
294
- if (fromToken)
295
- return;
296
- const candidateFromToken = tabTokenStateRef.current.sell?.fromToken ??
297
- tabTokenStateRef.current.buy?.toToken ??
298
- toToken;
299
- if (candidateFromToken) {
300
- handleSetFromToken(candidateFromToken);
301
- }
302
- }, [activeTab, fromToken, toToken, handleSetFromToken]);
303
- (0, useWalletGuards_js_1.useWalletGuards)({
304
- multiWalletSupportEnabled,
305
- allowUnsupportedOrigin,
306
- allowUnsupportedRecipient,
307
- fromChain,
308
- toChain,
309
- address,
310
- recipient,
311
- linkedWallets,
312
- connectorKeyOverrides,
313
- onSetPrimaryWallet,
314
- isValidFromAddress,
315
- isValidToAddress,
316
- setOriginAddressOverride,
317
- setCustomToAddress,
318
- disablePasteWalletAddressOption,
319
- customToAddress: customToAddress,
320
- originAddressOverride: _originAddressOverride,
321
- destinationAddressOverride: destinationAddressOverride,
322
- setDestinationAddressOverride
323
- });
324
- const isAutoSlippage = slippageTolerance === undefined;
325
- const isHighPriceImpact = Number(quote?.details?.totalImpact?.percent) < -3.5;
326
- const totalImpactUsd = quote?.details?.totalImpact?.usd;
327
- const showHighPriceImpactWarning = Boolean(isHighPriceImpact && totalImpactUsd && Number(totalImpactUsd) <= -10);
328
- const conversionRate = (0, react_1.useMemo)(() => {
329
- if (isUsdInputMode) {
330
- if (fromTokenPriceData?.price && fromTokenPriceData.price > 0) {
331
- return fromTokenPriceData.price;
332
- }
333
- else {
334
- return null;
335
- }
336
- }
337
- else {
338
- if (amountInputValue &&
339
- Number(amountInputValue) > 0 &&
340
- quote?.details?.currencyIn?.amountUsd) {
341
- const tokenVal = Number(amountInputValue);
342
- const usdVal = Number(quote.details.currencyIn.amountUsd);
343
- if (tokenVal > 0 && usdVal > 0) {
344
- const rate = usdVal / tokenVal;
345
- return rate;
346
- }
347
- else {
348
- return null;
349
- }
350
- }
351
- else {
352
- return null;
353
- }
354
- }
355
- }, [
356
- isUsdInputMode,
357
- fromTokenPriceData?.price,
358
- quote?.details?.currencyIn?.amountUsd,
359
- amountInputValue
360
- ]);
361
- const toggleInputMode = () => {
362
- if (!isUsdInputMode) {
363
- let newUsdInputValue = '';
364
- let newUsdOutputValue = '';
365
- if (quote?.details?.currencyIn?.amountUsd &&
366
- Number(quote.details.currencyIn.amountUsd) > 0) {
367
- newUsdInputValue = String(Number(quote.details.currencyIn.amountUsd));
368
- }
369
- else if (inputAmountUsd && inputAmountUsd > 0) {
370
- newUsdInputValue = inputAmountUsd.toFixed(2);
371
- }
372
- else if (amountInputValue &&
373
- Number(amountInputValue) > 0 &&
374
- conversionRate &&
375
- conversionRate > 0) {
376
- newUsdInputValue = (Number(amountInputValue) * conversionRate).toFixed(2);
377
- }
378
- if (quote?.details?.currencyOut?.amountUsd &&
379
- Number(quote.details.currencyOut.amountUsd) > 0) {
380
- newUsdOutputValue = String(Number(quote.details.currencyOut.amountUsd));
381
- }
382
- else if (outputAmountUsd && outputAmountUsd > 0) {
383
- newUsdOutputValue = outputAmountUsd.toFixed(2);
384
- }
385
- else if (amountOutputValue &&
386
- Number(amountOutputValue) > 0 &&
387
- toTokenPriceData?.price &&
388
- toTokenPriceData.price > 0) {
389
- newUsdOutputValue = (Number(amountOutputValue) * toTokenPriceData.price).toFixed(2);
390
- }
391
- setTokenInputCache(amountInputValue);
392
- setUsdInputValue(newUsdInputValue);
393
- setUsdOutputValue(newUsdOutputValue);
394
- setIsUsdInputMode(true);
395
- if (tradeType !== 'EXPECTED_OUTPUT' || !newUsdOutputValue) {
396
- setTradeType('EXACT_INPUT');
397
- }
398
- }
399
- else {
400
- if (!usdInputValue && tokenInputCache) {
401
- setAmountInputValue(tokenInputCache);
402
- }
403
- setUsdInputValue('');
404
- setUsdOutputValue('');
405
- setIsUsdInputMode(false);
406
- }
407
- };
408
- (0, react_1.useEffect)(() => {
409
- if (isUsdInputMode) {
410
- if (conversionRate && conversionRate > 0 && usdInputValue) {
411
- const usdValue = Number(usdInputValue);
412
- if (!isNaN(usdValue) && usdValue > 0) {
413
- const tokenEquivalent = (usdValue / conversionRate).toFixed(fromToken?.decimals ?? 8);
414
- setAmountInputValue(tokenEquivalent);
415
- }
416
- }
417
- else if (usdInputValue === '' || Number(usdInputValue) === 0) {
418
- setAmountInputValue('');
419
- }
420
- }
421
- }, [
422
- isUsdInputMode,
423
- usdInputValue,
424
- conversionRate,
425
- setAmountInputValue,
426
- fromToken?.decimals
427
- ]);
428
- (0, react_1.useEffect)(() => {
429
- if (isUsdInputMode && tradeType === 'EXPECTED_OUTPUT') {
430
- if (toTokenPriceData?.price &&
431
- toTokenPriceData.price > 0 &&
432
- usdOutputValue) {
433
- const usdValue = Number(usdOutputValue);
434
- if (!isNaN(usdValue) && usdValue > 0) {
435
- const tokenEquivalent = (usdValue / toTokenPriceData.price).toFixed(toToken?.decimals ?? 8);
436
- setAmountOutputValue(tokenEquivalent);
437
- }
438
- }
439
- else if (usdOutputValue === '' || Number(usdOutputValue) === 0) {
440
- setAmountOutputValue('');
441
- }
442
- }
443
- }, [
444
- isUsdInputMode,
445
- tradeType,
446
- usdOutputValue,
447
- toTokenPriceData?.price,
448
- setAmountOutputValue,
449
- toToken?.decimals
450
- ]);
451
- (0, react_1.useEffect)(() => {
452
- if (isUsdInputMode) {
453
- if (tradeType === 'EXPECTED_OUTPUT') {
454
- return;
455
- }
456
- if (quote?.details?.currencyOut?.amountUsd && !isFetchingQuote) {
457
- const quoteUsdValue = Number(quote.details.currencyOut.amountUsd);
458
- if (!isNaN(quoteUsdValue) && quoteUsdValue >= 0) {
459
- setUsdOutputValue(quoteUsdValue.toFixed(2));
460
- }
461
- }
462
- else if (toTokenPriceData?.price &&
463
- toTokenPriceData.price > 0 &&
464
- amountOutputValue &&
465
- Number(amountOutputValue) > 0) {
466
- const tokenAmount = Number(amountOutputValue);
467
- const usdEquivalent = tokenAmount * toTokenPriceData.price;
468
- if (!isNaN(usdEquivalent) && usdEquivalent >= 0) {
469
- setUsdOutputValue(usdEquivalent.toFixed(2));
470
- }
471
- }
472
- else if (!amountOutputValue || Number(amountOutputValue) === 0) {
473
- setUsdOutputValue('');
474
- }
475
- }
476
- }, [
477
- isUsdInputMode,
478
- tradeType,
479
- quote?.details?.currencyOut?.amountUsd,
480
- isFetchingQuote,
481
- toTokenPriceData?.price,
482
- amountOutputValue
483
- ]);
484
- (0, react_1.useEffect)(() => {
485
- if (isUsdInputMode && tradeType === 'EXPECTED_OUTPUT') {
486
- if (quote?.details?.currencyIn?.amountUsd && !isFetchingQuote) {
487
- const quoteUsdValue = Number(quote.details.currencyIn.amountUsd);
488
- if (!isNaN(quoteUsdValue) && quoteUsdValue >= 0) {
489
- setUsdInputValue(quoteUsdValue.toFixed(2));
490
- }
491
- }
492
- else if (!amountInputValue || Number(amountInputValue) === 0) {
493
- setUsdInputValue('');
494
- }
495
- }
496
- }, [
497
- isUsdInputMode,
498
- tradeType,
499
- quote?.details?.currencyIn?.amountUsd,
500
- isFetchingQuote,
501
- amountInputValue
502
- ]);
503
- const recipientLinkedWallet = linkedWallets?.find((wallet) => wallet.address === recipient);
504
- const handlePrimaryAction = () => {
505
- if (fromChainWalletVMSupported) {
506
- if (!isValidToAddress || !isValidFromAddress) {
507
- if (multiWalletSupportEnabled &&
508
- (isValidToAddress ||
509
- (!isValidToAddress && toChainWalletVMSupported))) {
510
- const chain = !isValidFromAddress ? fromChain : toChain;
511
- if (!address) {
512
- onConnectWallet?.();
513
- }
514
- else {
515
- onLinkNewWallet?.({
516
- chain,
517
- direction: !isValidFromAddress ? 'from' : 'to'
518
- })?.then((wallet) => {
519
- if (!isValidFromAddress) {
520
- onSetPrimaryWallet?.(wallet.address);
521
- }
522
- else {
523
- setDestinationAddressOverride(wallet.address);
524
- setCustomToAddress(undefined);
525
- }
526
- });
527
- }
528
- }
529
- else {
530
- setAddressModalOpen(true);
531
- }
532
- }
533
- else {
534
- swap();
535
- }
536
- }
537
- else {
538
- if (!isValidToAddress) {
539
- if (multiWalletSupportEnabled && toChainWalletVMSupported) {
540
- if (!address) {
541
- onConnectWallet?.();
542
- }
543
- else {
544
- onLinkNewWallet?.({
545
- chain: toChain,
546
- direction: 'to'
547
- })?.then((wallet) => {
548
- if (!wallet) {
549
- return;
550
- }
551
- setDestinationAddressOverride(wallet.address);
552
- setCustomToAddress(undefined);
553
- });
554
- }
555
- }
556
- else {
557
- setAddressModalOpen(true);
558
- }
559
- }
560
- else {
561
- const swapEventData = (0, quote_js_1.getSwapEventData)(quote?.details, quote?.fees, quote?.steps ? quote?.steps : null, linkedWallet?.connector, quoteParameters);
562
- onAnalyticEvent?.(events_js_1.EventNames.SWAP_CTA_CLICKED, swapEventData);
563
- setDepositAddressModalOpen(true);
564
- }
565
- }
566
- };
567
- const linkedWalletsLoading = multiWalletSupportEnabled && linkedWallets === undefined;
568
- const walletAddressLoading = Boolean(wallet && !address);
569
- (0, react_1.useEffect)(() => {
570
- if (walletsLoading || linkedWalletsLoading || walletAddressLoading) {
571
- return;
572
- }
573
- const hasLinkedCompatibleWallet = linkedWallets?.some((wallet) => wallet?.vmType && COMPATIBLE_WALLET_VMS.includes(wallet.vmType)) ?? false;
574
- const hasCompatibleWallet = Boolean(address && isValidFromAddress) || hasLinkedCompatibleWallet;
575
- const baseSelected = isBaseUsdcToken(fromToken);
576
- if (activeTab === 'buy' && !fromToken && !hasCompatibleWallet) {
577
- handleSetFromToken(BASE_USDC_TOKEN);
578
- autoSelectedFromTokenRef.current = true;
579
- return;
580
- }
581
- if (autoSelectedFromTokenRef.current && !baseSelected) {
582
- autoSelectedFromTokenRef.current = false;
583
- }
584
- if (autoSelectedFromTokenRef.current &&
585
- (activeTab !== 'buy' || hasCompatibleWallet)) {
586
- if (baseSelected) {
587
- handleSetFromToken(undefined);
588
- }
589
- autoSelectedFromTokenRef.current = false;
590
- }
591
- }, [
592
- activeTab,
593
- address,
594
- handleSetFromToken,
595
- linkedWallets,
596
- fromToken,
597
- isValidFromAddress,
598
- linkedWalletsLoading,
599
- multiWalletSupportEnabled,
600
- walletAddressLoading,
601
- walletsLoading
602
- ]);
603
- const handleTabChange = (0, react_1.useCallback)((nextTab, updateActiveTab) => {
604
- const prevTab = prevActiveTabRef.current ?? activeTab;
605
- if (nextTab === prevTab && !updateActiveTab) {
606
- return;
607
- }
608
- setAllowUnsupportedOrigin(nextTab === 'buy');
609
- setAllowUnsupportedRecipient(nextTab === 'sell');
610
- if (nextTab !== prevTab) {
611
- const storedNextState = tabTokenStateRef.current[nextTab] ?? {};
612
- const storedNextRecipient = tabRecipientRef.current[nextTab] ?? {};
613
- const prevFromToken = fromToken;
614
- const prevToToken = toToken;
615
- tabTokenStateRef.current[prevTab] = {
616
- fromToken: prevFromToken,
617
- toToken: prevToToken
618
- };
619
- tabRecipientRef.current[prevTab] = {
620
- override: typeof destinationAddressOverride === 'string'
621
- ? destinationAddressOverride
622
- : undefined,
623
- custom: typeof customToAddress === 'string'
624
- ? customToAddress
625
- : undefined
626
- };
627
- let nextFromToken;
628
- let nextToToken;
629
- if (nextTab === 'sell') {
630
- nextFromToken =
631
- storedNextState.fromToken ??
632
- prevToToken ??
633
- prevFromToken ??
634
- undefined;
635
- nextToToken = storedNextState.toToken ?? undefined;
636
- }
637
- else {
638
- nextToToken =
639
- storedNextState.toToken ??
640
- prevFromToken ??
641
- prevToToken ??
642
- undefined;
643
- nextFromToken = storedNextState.fromToken ?? undefined;
644
- }
645
- handleSetFromToken(nextFromToken);
646
- handleSetToToken(nextToToken);
647
- setDestinationAddressOverride(storedNextRecipient.override);
648
- setCustomToAddress(storedNextRecipient.custom);
649
- if (nextTab === 'buy' &&
650
- multiWalletSupportEnabled &&
651
- linkedWallets &&
652
- linkedWallets.length > 0 &&
653
- !storedNextRecipient.override &&
654
- !storedNextRecipient.custom) {
655
- const toChainForRecipient = relayClient?.chains?.find((c) => c.id === nextToToken?.chainId);
656
- if (toChainForRecipient) {
657
- const compatibleWallets = linkedWallets.filter((wallet) => (0, address_js_1.isWalletVmTypeCompatible)(wallet.vmType, toChainForRecipient.vmType));
658
- if (compatibleWallets.length > 0) {
659
- setDestinationAddressOverride(compatibleWallets[0].address);
660
- }
661
- }
662
- }
663
- setAmountInputValue('');
664
- setAmountOutputValue('');
665
- setUsdInputValue('');
666
- setUsdOutputValue('');
667
- setTokenInputCache('');
668
- setIsUsdInputMode(nextTab === 'buy');
669
- debouncedAmountInputControls.cancel();
670
- debouncedAmountOutputControls.cancel();
671
- setOriginAddressOverride(undefined);
672
- }
673
- if (updateActiveTab) {
674
- setActiveTab(nextTab);
675
- }
676
- const desiredTradeType = nextTab === 'buy' ? 'EXPECTED_OUTPUT' : 'EXACT_INPUT';
677
- if (tradeType !== desiredTradeType) {
678
- setTradeType(desiredTradeType);
679
- }
680
- prevActiveTabRef.current = nextTab;
681
- }, [
682
- activeTab,
683
- customToAddress,
684
- debouncedAmountInputControls,
685
- debouncedAmountOutputControls,
686
- destinationAddressOverride,
687
- fromToken,
688
- handleSetFromToken,
689
- handleSetToToken,
690
- linkedWallets,
691
- multiWalletSupportEnabled,
692
- relayClient?.chains,
693
- setActiveTab,
694
- setAllowUnsupportedOrigin,
695
- setAllowUnsupportedRecipient,
696
- setAmountInputValue,
697
- setAmountOutputValue,
698
- setCustomToAddress,
699
- setDestinationAddressOverride,
700
- setIsUsdInputMode,
701
- setOriginAddressOverride,
702
- setTokenInputCache,
703
- setTradeType,
704
- setUsdInputValue,
705
- setUsdOutputValue,
706
- toToken,
707
- tradeType
708
- ]);
709
- (0, react_1.useEffect)(() => {
710
- if (prevActiveTabRef.current === activeTab) {
711
- return;
712
- }
713
- handleTabChange(activeTab, false);
714
- }, [activeTab, handleTabChange]);
715
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(WidgetContainer_js_1.default, { steps: steps, setSteps: setSteps, quoteInProgress: quoteInProgress, setQuoteInProgress: setQuoteInProgress, transactionModalOpen: transactionModalOpen, setTransactionModalOpen: setTransactionModalOpen, depositAddressModalOpen: depositAddressModalOpen, setDepositAddressModalOpen: setDepositAddressModalOpen, addressModalOpen: addressModalOpen, setAddressModalOpen: setAddressModalOpen, fromToken: fromToken, fromChain: fromChain, toToken: toToken, toChain: toChain, address: address, recipient: recipient, amountInputValue: amountInputValue, amountOutputValue: amountOutputValue, debouncedInputAmountValue: debouncedInputAmountValue, debouncedOutputAmountValue: debouncedOutputAmountValue, tradeType: tradeType, onTransactionModalOpenChange: (open) => {
716
- if (!open) {
717
- if (pendingSuccessFlush) {
718
- setPendingSuccessFlush(false);
719
- }
720
- else if (steps) {
721
- invalidateQuoteQuery();
722
- }
723
- if (abortController) {
724
- abortController.abort();
725
- }
726
- setSwapError(null);
727
- setSteps(null);
728
- setQuoteInProgress(null);
729
- }
730
- else if (pendingSuccessFlush) {
731
- setPendingSuccessFlush(false);
732
- }
733
- }, onDepositAddressModalOpenChange: (open) => {
734
- if (!open) {
735
- setSwapError(null);
736
- if (pendingSuccessFlush) {
737
- setPendingSuccessFlush(false);
738
- }
739
- else {
740
- invalidateQuoteQuery();
741
- }
742
- }
743
- else if (pendingSuccessFlush) {
744
- setPendingSuccessFlush(false);
745
- }
746
- }, slippageTolerance: localSlippageTolerance, swapError: swapError, setSwapError: setSwapError, onSwapSuccess: (data) => {
747
- setPendingSuccessFlush(true);
748
- setAmountInputValue('');
749
- setAmountOutputValue('');
750
- onSwapSuccess?.(data);
751
- }, onSwapValidating: onSwapValidating, onAnalyticEvent: onAnalyticEvent, invalidateBalanceQueries: invalidateBalanceQueries, invalidateQuoteQuery: invalidateQuoteQuery, customToAddress: customToAddress, setCustomToAddress: setCustomToAddress, timeEstimate: timeEstimate, wallet: wallet, linkedWallets: linkedWallets, multiWalletSupportEnabled: multiWalletSupportEnabled, children: () => {
752
- return ((0, jsx_runtime_1.jsx)(index_js_1.Flex, { direction: "column", css: { gap: '3', width: '100%', position: 'relative' }, children: (0, jsx_runtime_1.jsx)(Tabs_js_1.TabsRoot, { value: activeTab, onValueChange: (value) => {
753
- const nextTab = value;
754
- handleTabChange(nextTab, true);
755
- onAnalyticEvent?.('TAB_SWITCHED', {
756
- tab: value
757
- });
758
- }, children: (0, jsx_runtime_1.jsxs)(index_js_1.Flex, { direction: "column", css: {
759
- width: '100%',
760
- overflow: 'hidden',
761
- border: 'widget-border',
762
- minWidth: { base: 320, md: 400 },
763
- maxWidth: 408
764
- }, children: [(0, jsx_runtime_1.jsxs)(Tabs_js_1.TabsList, { css: {
765
- backgroundColor: 'transparent',
766
- p: '0',
767
- mb: '2'
768
- }, children: [(0, jsx_runtime_1.jsx)(Tabs_js_1.TabsTrigger, { value: "buy", css: {
769
- padding: '12px',
770
- background: 'none',
771
- border: '1px solid transparent',
772
- color: 'text-subtle',
773
- '&[data-state="active"]': {
774
- background: 'widget-background',
775
- borderRadius: '12px',
776
- borderColor: 'slate.4',
777
- color: 'text-default'
778
- },
779
- '&:not([data-state="active"])': {
780
- _hover: {
781
- backgroundColor: 'transparent !important'
782
- }
783
- },
784
- _dark: {
785
- '&[data-state="active"]': {
786
- background: 'widget-background',
787
- borderColor: 'gray.4'
788
- },
789
- '&:not([data-state="active"])': {
790
- _hover: {
791
- backgroundColor: 'transparent !important'
792
- }
793
- }
794
- }
795
- }, children: (0, jsx_runtime_1.jsx)(index_js_1.Text, { style: "subtitle1", css: { color: 'inherit' }, children: "Buy" }) }), (0, jsx_runtime_1.jsx)(Tabs_js_1.TabsTrigger, { value: "sell", css: {
796
- padding: '12px',
797
- background: 'none',
798
- border: '1px solid transparent',
799
- color: 'text-subtle',
800
- '&[data-state="active"]': {
801
- background: 'widget-background',
802
- borderRadius: '12px',
803
- borderColor: 'slate.4',
804
- color: 'text-default'
805
- },
806
- '&:not([data-state="active"])': {
807
- _hover: {
808
- backgroundColor: 'transparent !important'
809
- }
810
- },
811
- _dark: {
812
- '&[data-state="active"]': {
813
- background: 'widget-background',
814
- borderColor: 'gray.4'
815
- },
816
- '&:not([data-state="active"])': {
817
- _hover: {
818
- backgroundColor: 'transparent !important'
819
- }
820
- }
821
- }
822
- }, children: (0, jsx_runtime_1.jsx)(index_js_1.Text, { style: "subtitle1", css: { color: 'inherit' }, children: "Sell" }) })] }), (0, jsx_runtime_1.jsx)(BuyTabContent_js_1.default, { slippageTolerance: localSlippageTolerance,
823
- onOpenSlippageConfig: handleOpenSlippageConfig,
824
- onSlippageToleranceChange: handleSlippageToleranceChange,
825
- isUsdInputMode,
826
- usdOutputValue,
827
- tradeType,
828
- amountOutputValue,
829
- amountInputValue,
830
- outputAmountUsd,
831
- setUsdOutputValue,
832
- setTradeType,
833
- setAmountOutputValue,
834
- setAmountInputValue,
835
- setUsdInputValue,
836
- toggleInputMode,
837
- debouncedAmountOutputControls,
838
- toToken,
839
- fromToken,
840
- quote,
841
- isFetchingQuote,
842
- isLoadingToTokenPrice,
843
- toTokenPriceData,
844
- handleSetFromToken,
845
- handleSetToToken,
846
- feeBreakdown,
847
- isLoadingFromBalance,
848
- fromBalance,
849
- fromBalancePending,
850
- toBalance,
851
- isLoadingToBalance,
852
- toBalancePending,
853
- hasInsufficientBalance,
854
- address,
855
- multiWalletSupportEnabled,
856
- linkedWallets,
857
- onSetPrimaryWallet,
858
- setOriginAddressOverride,
859
- onConnectWallet,
860
- onLinkNewWallet,
861
- disablePasteWalletAddressOption,
862
- setAddressModalOpen,
863
- fromChain,
864
- toChain,
865
- toChainWalletVMSupported,
866
- fromChainWalletVMSupported,
867
- supportedWalletVMs,
868
- recipient,
869
- setCustomToAddress,
870
- setDestinationAddressOverride,
871
- isValidToAddress,
872
- isRecipientLinked,
873
- toDisplayName,
874
- isValidFromAddress,
875
- recipientWalletSupportsChain,
876
- recipientLinkedWallet,
877
- lockToToken,
878
- lockFromToken,
879
- isSingleChainLocked,
880
- lockChainId,
881
- popularChainIds,
882
- transactionModalOpen,
883
- depositAddressModalOpen,
884
- error,
885
- isInsufficientLiquidityError,
886
- isSameCurrencySameRecipientSwap,
887
- isCapacityExceededError,
888
- isCouldNotExecuteError,
889
- showHighPriceImpactWarning,
890
- onPrimaryAction: handlePrimaryAction,
891
- debouncedInputAmountValue,
892
- debouncedOutputAmountValue,
893
- timeEstimate,
894
- relayerFeeProportion,
895
- highRelayerServiceFee,
896
- onAnalyticEvent,
897
- toChainVmType: toChain?.vmType,
898
- ctaCopy,
899
- paymentMethodMinHeight }), (0, jsx_runtime_1.jsx)(SellTabContent_js_1.default, { slippageTolerance: localSlippageTolerance,
900
- onOpenSlippageConfig: handleOpenSlippageConfig,
901
- onSlippageToleranceChange: handleSlippageToleranceChange,
902
- isUsdInputMode,
903
- usdInputValue,
904
- tradeType,
905
- amountInputValue,
906
- amountOutputValue,
907
- conversionRate,
908
- inputAmountUsd,
909
- setUsdInputValue,
910
- setTradeType,
911
- setTokenInputCache,
912
- setAmountInputValue,
913
- setAmountOutputValue,
914
- setUsdOutputValue,
915
- toggleInputMode,
916
- debouncedAmountInputControls,
917
- fromToken,
918
- toToken,
919
- quote,
920
- isFetchingQuote,
921
- fromTokenPriceData,
922
- isLoadingFromTokenPrice,
923
- handleSetFromToken,
924
- handleSetToToken,
925
- feeBreakdown,
926
- fromBalance,
927
- isLoadingFromBalance,
928
- toBalance,
929
- isLoadingToBalance,
930
- toBalancePending,
931
- hasInsufficientBalance,
932
- fromBalancePending,
933
- address,
934
- multiWalletSupportEnabled,
935
- linkedWallets,
936
- onSetPrimaryWallet,
937
- setOriginAddressOverride,
938
- onConnectWallet,
939
- onLinkNewWallet,
940
- disablePasteWalletAddressOption,
941
- setAddressModalOpen,
942
- fromChain,
943
- toChain,
944
- fromChainWalletVMSupported,
945
- toChainWalletVMSupported,
946
- supportedWalletVMs,
947
- recipient,
948
- setCustomToAddress,
949
- setDestinationAddressOverride,
950
- isValidToAddress,
951
- isRecipientLinked,
952
- toDisplayName,
953
- isValidFromAddress,
954
- recipientWalletSupportsChain,
955
- recipientLinkedWallet,
956
- lockToToken,
957
- lockFromToken,
958
- isSingleChainLocked,
959
- lockChainId,
960
- popularChainIds,
961
- transactionModalOpen,
962
- depositAddressModalOpen,
963
- error,
964
- isInsufficientLiquidityError,
965
- isSameCurrencySameRecipientSwap,
966
- isCapacityExceededError,
967
- isCouldNotExecuteError,
968
- showHighPriceImpactWarning,
969
- onPrimaryAction: handlePrimaryAction,
970
- debouncedInputAmountValue,
971
- debouncedOutputAmountValue,
972
- percentOptions: percentageOptions,
973
- onMaxAmountClicked: handleMaxAmountClicked,
974
- publicClient,
975
- isFromNative,
976
- getFeeBufferAmount: nativeMaxAmount_js_1.getFeeBufferAmount,
977
- timeEstimate,
978
- relayerFeeProportion,
979
- highRelayerServiceFee,
980
- onAnalyticEvent,
981
- toChainVmType: toChain?.vmType,
982
- ctaCopy,
983
- paymentMethodMinHeight })] }) }) }));
984
- } }), (0, jsx_runtime_1.jsx)(UnverifiedTokenModal_js_1.UnverifiedTokenModal, { open: unverifiedTokens.length > 0, onOpenChange: () => { }, data: unverifiedTokens.length > 0 ? unverifiedTokens[0] : undefined, onDecline: (token, context) => {
985
- if (token) {
986
- const tokenKey = `${token.chainId}:${token.address.toLowerCase()}`;
987
- declinedTokensRef.current.add(tokenKey);
988
- onUnverifiedTokenDecline?.(token, context);
989
- }
990
- setUnverifiedTokens((prev) => prev.filter((unverifiedToken) => !(unverifiedToken.context === context &&
991
- unverifiedToken.token.address === token?.address &&
992
- unverifiedToken.token.chainId === token?.chainId)));
993
- }, onAcceptToken: (token, context) => {
994
- if (token) {
995
- if (context === 'to') {
996
- onAnalyticEvent?.(events_js_1.EventNames.SWAP_TOKEN_SELECT, {
997
- direction: 'output',
998
- token_symbol: token.symbol
999
- });
1000
- if (token.address === fromToken?.address &&
1001
- token.chainId === fromToken?.chainId &&
1002
- address === recipient &&
1003
- (!lockToToken || !fromToken)) {
1004
- handleSetToToken(fromToken);
1005
- handleSetFromToken(toToken);
1006
- }
1007
- else {
1008
- handleSetToToken(token);
1009
- }
1010
- }
1011
- else if (context === 'from') {
1012
- onAnalyticEvent?.(events_js_1.EventNames.SWAP_TOKEN_SELECT, {
1013
- direction: 'input',
1014
- token_symbol: token.symbol
1015
- });
1016
- if (token.address === toToken?.address &&
1017
- token.chainId === toToken?.chainId &&
1018
- address === recipient &&
1019
- (!lockToToken || !fromToken)) {
1020
- handleSetFromToken(toToken);
1021
- handleSetToToken(fromToken);
1022
- }
1023
- else {
1024
- handleSetFromToken(token);
1025
- }
1026
- }
1027
- }
1028
- setUnverifiedTokens((prev) => prev.filter((unverifiedToken) => !(unverifiedToken.token.address === token?.address &&
1029
- unverifiedToken.token.chainId === token?.chainId)));
1030
- } })] }));
1031
- } }));
1032
- };
1033
- exports.default = TokenWidget;
1034
- //# sourceMappingURL=index.js.map