thirdweb 5.105.49-nightly-04862de9e4e11724720fa40a0ed4713ff2bfdad5-20250917000323 → 5.106.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 (528) hide show
  1. package/dist/cjs/exports/react.js +3 -1
  2. package/dist/cjs/exports/react.js.map +1 -1
  3. package/dist/cjs/pay/convert/type.js +26 -43
  4. package/dist/cjs/pay/convert/type.js.map +1 -1
  5. package/dist/cjs/react/core/design-system/index.js +3 -1
  6. package/dist/cjs/react/core/design-system/index.js.map +1 -1
  7. package/dist/cjs/react/core/hooks/usePaymentMethods.js +4 -1
  8. package/dist/cjs/react/core/hooks/usePaymentMethods.js.map +1 -1
  9. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +1 -2
  10. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  11. package/dist/cjs/react/core/machines/paymentMachine.js.map +1 -1
  12. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js +1 -9
  13. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  14. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +7 -5
  15. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
  16. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js +2 -2
  17. package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js +1 -1
  18. package/dist/cjs/react/web/ui/Bridge/FundWallet.js +7 -6
  19. package/dist/cjs/react/web/ui/Bridge/FundWallet.js.map +1 -1
  20. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js +5 -3
  21. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
  22. package/dist/cjs/react/web/ui/Bridge/StepRunner.js +3 -3
  23. package/dist/cjs/react/web/ui/Bridge/StepRunner.js.map +1 -1
  24. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js +2 -2
  25. package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js +2 -2
  26. package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -1
  27. package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js +3 -3
  28. package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -1
  29. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js +2 -1
  30. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js.map +1 -1
  31. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js +28 -3
  32. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
  33. package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +16 -22
  34. package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -1
  35. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js +12 -4
  36. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
  37. package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +2 -2
  38. package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -1
  39. package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js +1 -1
  40. package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -1
  41. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js +8 -7
  42. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
  43. package/dist/cjs/react/web/ui/Bridge/swap-widget/SearchInput.js +22 -0
  44. package/dist/cjs/react/web/ui/Bridge/swap-widget/SearchInput.js.map +1 -0
  45. package/dist/cjs/react/web/ui/Bridge/swap-widget/SelectChainButton.js +20 -0
  46. package/dist/cjs/react/web/ui/Bridge/swap-widget/SelectChainButton.js.map +1 -0
  47. package/dist/cjs/react/web/ui/Bridge/swap-widget/SwapWidget.js +257 -0
  48. package/dist/cjs/react/web/ui/Bridge/swap-widget/SwapWidget.js.map +1 -0
  49. package/dist/cjs/react/web/ui/Bridge/swap-widget/common.js +17 -0
  50. package/dist/cjs/react/web/ui/Bridge/swap-widget/common.js.map +1 -0
  51. package/dist/cjs/react/web/ui/Bridge/swap-widget/hooks.js +22 -0
  52. package/dist/cjs/react/web/ui/Bridge/swap-widget/hooks.js.map +1 -0
  53. package/dist/cjs/react/web/ui/Bridge/swap-widget/select-chain.js +66 -0
  54. package/dist/cjs/react/web/ui/Bridge/swap-widget/select-chain.js.map +1 -0
  55. package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js +208 -0
  56. package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -0
  57. package/dist/cjs/react/web/ui/Bridge/swap-widget/storage.js +53 -0
  58. package/dist/cjs/react/web/ui/Bridge/swap-widget/storage.js.map +1 -0
  59. package/dist/cjs/react/web/ui/Bridge/swap-widget/swap-ui.js +450 -0
  60. package/dist/cjs/react/web/ui/Bridge/swap-widget/swap-ui.js.map +1 -0
  61. package/dist/cjs/react/web/ui/Bridge/swap-widget/types.js +3 -0
  62. package/dist/cjs/react/web/ui/Bridge/swap-widget/types.js.map +1 -0
  63. package/dist/cjs/react/web/ui/Bridge/swap-widget/use-bridge-chains.js +16 -0
  64. package/dist/cjs/react/web/ui/Bridge/swap-widget/use-bridge-chains.js.map +1 -0
  65. package/dist/cjs/react/web/ui/Bridge/swap-widget/use-tokens.js +68 -0
  66. package/dist/cjs/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -0
  67. package/dist/cjs/react/web/ui/Bridge/swap-widget/utils.js +7 -0
  68. package/dist/cjs/react/web/ui/Bridge/swap-widget/utils.js.map +1 -0
  69. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +14 -1
  70. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  71. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +11 -11
  72. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  73. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +2 -2
  74. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
  75. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +15 -1
  76. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  77. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModal.js +1 -1
  78. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModal.js.map +1 -1
  79. package/dist/cjs/react/web/ui/ConnectWallet/NetworkSelector.js +2 -2
  80. package/dist/cjs/react/web/ui/ConnectWallet/NetworkSelector.js.map +1 -1
  81. package/dist/cjs/react/web/ui/ConnectWallet/WalletEntryButton.js +1 -1
  82. package/dist/cjs/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  83. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +7 -8
  84. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  85. package/dist/cjs/react/web/ui/ConnectWallet/WalletTypeRowButton.js +1 -1
  86. package/dist/cjs/react/web/ui/ConnectWallet/WalletTypeRowButton.js.map +1 -1
  87. package/dist/cjs/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.js +9 -0
  88. package/dist/cjs/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.js.map +1 -0
  89. package/dist/cjs/react/web/ui/ConnectWallet/icons/WalletDotIcon.js +12 -0
  90. package/dist/cjs/react/web/ui/ConnectWallet/icons/WalletDotIcon.js.map +1 -0
  91. package/dist/cjs/react/web/ui/ConnectWallet/screens/ReceiveFunds.js +1 -1
  92. package/dist/cjs/react/web/ui/ConnectWallet/screens/ReceiveFunds.js.map +1 -1
  93. package/dist/cjs/react/web/ui/ConnectWallet/screens/SendFunds.js +7 -7
  94. package/dist/cjs/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  95. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +3 -3
  96. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  97. package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js +2 -2
  98. package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  99. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +1 -1
  100. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  101. package/dist/cjs/react/web/ui/components/DynamicHeight.js +1 -1
  102. package/dist/cjs/react/web/ui/components/DynamicHeight.js.map +1 -1
  103. package/dist/cjs/react/web/ui/components/Img.js +42 -7
  104. package/dist/cjs/react/web/ui/components/Img.js.map +1 -1
  105. package/dist/cjs/react/web/ui/components/Modal.js +10 -10
  106. package/dist/cjs/react/web/ui/components/Modal.js.map +1 -1
  107. package/dist/cjs/react/web/ui/components/OTPInput.js +1 -1
  108. package/dist/cjs/react/web/ui/components/OTPInput.js.map +1 -1
  109. package/dist/cjs/react/web/ui/components/Skeleton.js +1 -0
  110. package/dist/cjs/react/web/ui/components/Skeleton.js.map +1 -1
  111. package/dist/cjs/react/web/ui/components/Spinner.js +2 -1
  112. package/dist/cjs/react/web/ui/components/Spinner.js.map +1 -1
  113. package/dist/cjs/react/web/ui/components/basic.js +11 -5
  114. package/dist/cjs/react/web/ui/components/basic.js.map +1 -1
  115. package/dist/cjs/react/web/ui/components/buttons.js +9 -0
  116. package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
  117. package/dist/cjs/react/web/ui/components/formElements.js +1 -1
  118. package/dist/cjs/react/web/ui/components/formElements.js.map +1 -1
  119. package/dist/cjs/react/web/ui/components/modalElements.js +1 -1
  120. package/dist/cjs/react/web/ui/components/modalElements.js.map +1 -1
  121. package/dist/cjs/react/web/ui/components/text.js +2 -1
  122. package/dist/cjs/react/web/ui/components/text.js.map +1 -1
  123. package/dist/cjs/react/web/utils/cls.js +17 -0
  124. package/dist/cjs/react/web/utils/cls.js.map +1 -0
  125. package/dist/cjs/react/web/wallets/in-app/InputSelectionUI.js +1 -1
  126. package/dist/cjs/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
  127. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +9 -9
  128. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  129. package/dist/cjs/react/web/wallets/shared/ConnectingScreen.js +3 -3
  130. package/dist/cjs/react/web/wallets/shared/ConnectingScreen.js.map +1 -1
  131. package/dist/cjs/react/web/wallets/shared/GuestLogin.js +1 -1
  132. package/dist/cjs/react/web/wallets/shared/GuestLogin.js.map +1 -1
  133. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +5 -5
  134. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  135. package/dist/cjs/react/web/wallets/shared/ScanScreen.js +5 -5
  136. package/dist/cjs/react/web/wallets/shared/ScanScreen.js.map +1 -1
  137. package/dist/cjs/react/web/wallets/shared/SocialLogin.js +1 -1
  138. package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
  139. package/dist/cjs/stories/Bridge/Swap/SelectChain.stories.js +25 -0
  140. package/dist/cjs/stories/Bridge/Swap/SelectChain.stories.js.map +1 -0
  141. package/dist/cjs/stories/Bridge/Swap/SwapWidget.Prefill.stories.js +83 -0
  142. package/dist/cjs/stories/Bridge/Swap/SwapWidget.Prefill.stories.js.map +1 -0
  143. package/dist/cjs/stories/Bridge/Swap/SwapWidget.stories.js +52 -0
  144. package/dist/cjs/stories/Bridge/Swap/SwapWidget.stories.js.map +1 -0
  145. package/dist/cjs/stories/BuyWidget.stories.js +36 -0
  146. package/dist/cjs/stories/BuyWidget.stories.js.map +1 -0
  147. package/dist/cjs/stories/ConnectEmbed.stories.js +90 -0
  148. package/dist/cjs/stories/ConnectEmbed.stories.js.map +1 -0
  149. package/dist/cjs/stories/ConnectWallet/useWalletDetailsModal.stories.js +1 -1
  150. package/dist/cjs/version.js +1 -1
  151. package/dist/cjs/version.js.map +1 -1
  152. package/dist/cjs/wallets/connection/autoConnect.js +0 -9
  153. package/dist/cjs/wallets/connection/autoConnect.js.map +1 -1
  154. package/dist/cjs/wallets/connection/autoConnectCore.js +8 -2
  155. package/dist/cjs/wallets/connection/autoConnectCore.js.map +1 -1
  156. package/dist/cjs/wallets/manager/index.js +1 -2
  157. package/dist/cjs/wallets/manager/index.js.map +1 -1
  158. package/dist/cjs/wallets/smart/lib/bundler.js +3 -0
  159. package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
  160. package/dist/esm/exports/react.js +1 -0
  161. package/dist/esm/exports/react.js.map +1 -1
  162. package/dist/esm/pay/convert/type.js +26 -43
  163. package/dist/esm/pay/convert/type.js.map +1 -1
  164. package/dist/esm/react/core/design-system/index.js +3 -1
  165. package/dist/esm/react/core/design-system/index.js.map +1 -1
  166. package/dist/esm/react/core/hooks/usePaymentMethods.js +4 -1
  167. package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -1
  168. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +1 -2
  169. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  170. package/dist/esm/react/core/machines/paymentMachine.js.map +1 -1
  171. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js +1 -9
  172. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  173. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +7 -5
  174. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
  175. package/dist/esm/react/web/ui/Bridge/DirectPayment.js +2 -2
  176. package/dist/esm/react/web/ui/Bridge/ErrorBanner.js +1 -1
  177. package/dist/esm/react/web/ui/Bridge/FundWallet.js +7 -6
  178. package/dist/esm/react/web/ui/Bridge/FundWallet.js.map +1 -1
  179. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +5 -3
  180. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
  181. package/dist/esm/react/web/ui/Bridge/StepRunner.js +3 -3
  182. package/dist/esm/react/web/ui/Bridge/StepRunner.js.map +1 -1
  183. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +2 -2
  184. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js +2 -2
  185. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -1
  186. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js +3 -3
  187. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -1
  188. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js +2 -1
  189. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js.map +1 -1
  190. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +28 -3
  191. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
  192. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +16 -22
  193. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -1
  194. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +12 -4
  195. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
  196. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +3 -3
  197. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -1
  198. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js +1 -1
  199. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -1
  200. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +9 -8
  201. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
  202. package/dist/esm/react/web/ui/Bridge/swap-widget/SearchInput.js +19 -0
  203. package/dist/esm/react/web/ui/Bridge/swap-widget/SearchInput.js.map +1 -0
  204. package/dist/esm/react/web/ui/Bridge/swap-widget/SelectChainButton.js +17 -0
  205. package/dist/esm/react/web/ui/Bridge/swap-widget/SelectChainButton.js.map +1 -0
  206. package/dist/esm/react/web/ui/Bridge/swap-widget/SwapWidget.js +253 -0
  207. package/dist/esm/react/web/ui/Bridge/swap-widget/SwapWidget.js.map +1 -0
  208. package/dist/esm/react/web/ui/Bridge/swap-widget/common.js +14 -0
  209. package/dist/esm/react/web/ui/Bridge/swap-widget/common.js.map +1 -0
  210. package/dist/esm/react/web/ui/Bridge/swap-widget/hooks.js +19 -0
  211. package/dist/esm/react/web/ui/Bridge/swap-widget/hooks.js.map +1 -0
  212. package/dist/esm/react/web/ui/Bridge/swap-widget/select-chain.js +62 -0
  213. package/dist/esm/react/web/ui/Bridge/swap-widget/select-chain.js.map +1 -0
  214. package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js +205 -0
  215. package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -0
  216. package/dist/esm/react/web/ui/Bridge/swap-widget/storage.js +49 -0
  217. package/dist/esm/react/web/ui/Bridge/swap-widget/storage.js.map +1 -0
  218. package/dist/esm/react/web/ui/Bridge/swap-widget/swap-ui.js +447 -0
  219. package/dist/esm/react/web/ui/Bridge/swap-widget/swap-ui.js.map +1 -0
  220. package/dist/esm/react/web/ui/Bridge/swap-widget/types.js +2 -0
  221. package/dist/esm/react/web/ui/Bridge/swap-widget/types.js.map +1 -0
  222. package/dist/esm/react/web/ui/Bridge/swap-widget/use-bridge-chains.js +13 -0
  223. package/dist/esm/react/web/ui/Bridge/swap-widget/use-bridge-chains.js.map +1 -0
  224. package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js +64 -0
  225. package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -0
  226. package/dist/esm/react/web/ui/Bridge/swap-widget/utils.js +4 -0
  227. package/dist/esm/react/web/ui/Bridge/swap-widget/utils.js.map +1 -0
  228. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +14 -1
  229. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  230. package/dist/esm/react/web/ui/ConnectWallet/Details.js +11 -11
  231. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  232. package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +2 -2
  233. package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
  234. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +15 -1
  235. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  236. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModal.js +1 -1
  237. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModal.js.map +1 -1
  238. package/dist/esm/react/web/ui/ConnectWallet/NetworkSelector.js +2 -2
  239. package/dist/esm/react/web/ui/ConnectWallet/NetworkSelector.js.map +1 -1
  240. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js +1 -1
  241. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  242. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +8 -9
  243. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  244. package/dist/esm/react/web/ui/ConnectWallet/WalletTypeRowButton.js +1 -1
  245. package/dist/esm/react/web/ui/ConnectWallet/WalletTypeRowButton.js.map +1 -1
  246. package/dist/esm/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.js +5 -0
  247. package/dist/esm/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.js.map +1 -0
  248. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletDotIcon.js +8 -0
  249. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletDotIcon.js.map +1 -0
  250. package/dist/esm/react/web/ui/ConnectWallet/screens/ReceiveFunds.js +1 -1
  251. package/dist/esm/react/web/ui/ConnectWallet/screens/ReceiveFunds.js.map +1 -1
  252. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js +7 -7
  253. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  254. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +3 -3
  255. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  256. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js +2 -2
  257. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  258. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +1 -1
  259. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  260. package/dist/esm/react/web/ui/components/DynamicHeight.js +1 -1
  261. package/dist/esm/react/web/ui/components/DynamicHeight.js.map +1 -1
  262. package/dist/esm/react/web/ui/components/Img.js +43 -8
  263. package/dist/esm/react/web/ui/components/Img.js.map +1 -1
  264. package/dist/esm/react/web/ui/components/Modal.js +10 -10
  265. package/dist/esm/react/web/ui/components/Modal.js.map +1 -1
  266. package/dist/esm/react/web/ui/components/OTPInput.js +1 -1
  267. package/dist/esm/react/web/ui/components/OTPInput.js.map +1 -1
  268. package/dist/esm/react/web/ui/components/Skeleton.js +1 -0
  269. package/dist/esm/react/web/ui/components/Skeleton.js.map +1 -1
  270. package/dist/esm/react/web/ui/components/Spinner.js +2 -1
  271. package/dist/esm/react/web/ui/components/Spinner.js.map +1 -1
  272. package/dist/esm/react/web/ui/components/basic.js +11 -5
  273. package/dist/esm/react/web/ui/components/basic.js.map +1 -1
  274. package/dist/esm/react/web/ui/components/buttons.js +9 -0
  275. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  276. package/dist/esm/react/web/ui/components/formElements.js +1 -1
  277. package/dist/esm/react/web/ui/components/formElements.js.map +1 -1
  278. package/dist/esm/react/web/ui/components/modalElements.js +1 -1
  279. package/dist/esm/react/web/ui/components/modalElements.js.map +1 -1
  280. package/dist/esm/react/web/ui/components/text.js +2 -1
  281. package/dist/esm/react/web/ui/components/text.js.map +1 -1
  282. package/dist/esm/react/web/utils/cls.js +14 -0
  283. package/dist/esm/react/web/utils/cls.js.map +1 -0
  284. package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js +1 -1
  285. package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
  286. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +9 -9
  287. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  288. package/dist/esm/react/web/wallets/shared/ConnectingScreen.js +3 -3
  289. package/dist/esm/react/web/wallets/shared/ConnectingScreen.js.map +1 -1
  290. package/dist/esm/react/web/wallets/shared/GuestLogin.js +1 -1
  291. package/dist/esm/react/web/wallets/shared/GuestLogin.js.map +1 -1
  292. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +5 -5
  293. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  294. package/dist/esm/react/web/wallets/shared/ScanScreen.js +5 -5
  295. package/dist/esm/react/web/wallets/shared/ScanScreen.js.map +1 -1
  296. package/dist/esm/react/web/wallets/shared/SocialLogin.js +1 -1
  297. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  298. package/dist/esm/stories/Bridge/Swap/SelectChain.stories.js +21 -0
  299. package/dist/esm/stories/Bridge/Swap/SelectChain.stories.js.map +1 -0
  300. package/dist/esm/stories/Bridge/Swap/SwapWidget.Prefill.stories.js +74 -0
  301. package/dist/esm/stories/Bridge/Swap/SwapWidget.Prefill.stories.js.map +1 -0
  302. package/dist/esm/stories/Bridge/Swap/SwapWidget.stories.js +45 -0
  303. package/dist/esm/stories/Bridge/Swap/SwapWidget.stories.js.map +1 -0
  304. package/dist/esm/stories/BuyWidget.stories.js +29 -0
  305. package/dist/esm/stories/BuyWidget.stories.js.map +1 -0
  306. package/dist/esm/stories/ConnectEmbed.stories.js +81 -0
  307. package/dist/esm/stories/ConnectEmbed.stories.js.map +1 -0
  308. package/dist/esm/stories/ConnectWallet/useWalletDetailsModal.stories.js +1 -1
  309. package/dist/esm/version.js +1 -1
  310. package/dist/esm/version.js.map +1 -1
  311. package/dist/esm/wallets/connection/autoConnect.js +0 -9
  312. package/dist/esm/wallets/connection/autoConnect.js.map +1 -1
  313. package/dist/esm/wallets/connection/autoConnectCore.js +8 -2
  314. package/dist/esm/wallets/connection/autoConnectCore.js.map +1 -1
  315. package/dist/esm/wallets/manager/index.js +1 -2
  316. package/dist/esm/wallets/manager/index.js.map +1 -1
  317. package/dist/esm/wallets/smart/lib/bundler.js +3 -0
  318. package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
  319. package/dist/types/bridge/types/Chain.d.ts +1 -0
  320. package/dist/types/bridge/types/Chain.d.ts.map +1 -1
  321. package/dist/types/exports/react.d.ts +1 -0
  322. package/dist/types/exports/react.d.ts.map +1 -1
  323. package/dist/types/pay/convert/type.d.ts +27 -3
  324. package/dist/types/pay/convert/type.d.ts.map +1 -1
  325. package/dist/types/react/core/design-system/index.d.ts +2 -0
  326. package/dist/types/react/core/design-system/index.d.ts.map +1 -1
  327. package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -1
  328. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts +1 -1
  329. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  330. package/dist/types/react/core/machines/paymentMachine.d.ts +1 -0
  331. package/dist/types/react/core/machines/paymentMachine.d.ts.map +1 -1
  332. package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  333. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -1
  334. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +1 -1
  335. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts.map +1 -1
  336. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +2 -1
  337. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -1
  338. package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts.map +1 -1
  339. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts.map +1 -1
  340. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts +3 -1
  341. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -1
  342. package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts.map +1 -1
  343. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -1
  344. package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts.map +1 -1
  345. package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts.map +1 -1
  346. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -1
  347. package/dist/types/react/web/ui/Bridge/swap-widget/SearchInput.d.ts +6 -0
  348. package/dist/types/react/web/ui/Bridge/swap-widget/SearchInput.d.ts.map +1 -0
  349. package/dist/types/react/web/ui/Bridge/swap-widget/SelectChainButton.d.ts +8 -0
  350. package/dist/types/react/web/ui/Bridge/swap-widget/SelectChainButton.d.ts.map +1 -0
  351. package/dist/types/react/web/ui/Bridge/swap-widget/SwapWidget.d.ts +220 -0
  352. package/dist/types/react/web/ui/Bridge/swap-widget/SwapWidget.d.ts.map +1 -0
  353. package/dist/types/react/web/ui/Bridge/swap-widget/common.d.ts +9 -0
  354. package/dist/types/react/web/ui/Bridge/swap-widget/common.d.ts.map +1 -0
  355. package/dist/types/react/web/ui/Bridge/swap-widget/hooks.d.ts +3 -0
  356. package/dist/types/react/web/ui/Bridge/swap-widget/hooks.d.ts.map +1 -0
  357. package/dist/types/react/web/ui/Bridge/swap-widget/select-chain.d.ts +23 -0
  358. package/dist/types/react/web/ui/Bridge/swap-widget/select-chain.d.ts.map +1 -0
  359. package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts +18 -0
  360. package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts.map +1 -0
  361. package/dist/types/react/web/ui/Bridge/swap-widget/storage.d.ts +46 -0
  362. package/dist/types/react/web/ui/Bridge/swap-widget/storage.d.ts.map +1 -0
  363. package/dist/types/react/web/ui/Bridge/swap-widget/swap-ui.d.ts +40 -0
  364. package/dist/types/react/web/ui/Bridge/swap-widget/swap-ui.d.ts.map +1 -0
  365. package/dist/types/react/web/ui/Bridge/swap-widget/types.d.ts +139 -0
  366. package/dist/types/react/web/ui/Bridge/swap-widget/types.d.ts.map +1 -0
  367. package/dist/types/react/web/ui/Bridge/swap-widget/use-bridge-chains.d.ts +4 -0
  368. package/dist/types/react/web/ui/Bridge/swap-widget/use-bridge-chains.d.ts.map +1 -0
  369. package/dist/types/react/web/ui/Bridge/swap-widget/use-tokens.d.ts +44 -0
  370. package/dist/types/react/web/ui/Bridge/swap-widget/use-tokens.d.ts.map +1 -0
  371. package/dist/types/react/web/ui/Bridge/swap-widget/utils.d.ts +2 -0
  372. package/dist/types/react/web/ui/Bridge/swap-widget/utils.d.ts.map +1 -0
  373. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +13 -0
  374. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
  375. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  376. package/dist/types/react/web/ui/ConnectWallet/Modal/AllWalletsUI.d.ts.map +1 -1
  377. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +13 -0
  378. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  379. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModal.d.ts.map +1 -1
  380. package/dist/types/react/web/ui/ConnectWallet/NetworkSelector.d.ts +1 -0
  381. package/dist/types/react/web/ui/ConnectWallet/NetworkSelector.d.ts.map +1 -1
  382. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts +1 -0
  383. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts.map +1 -1
  384. package/dist/types/react/web/ui/ConnectWallet/WalletSelector.d.ts.map +1 -1
  385. package/dist/types/react/web/ui/ConnectWallet/WalletTypeRowButton.d.ts +1 -0
  386. package/dist/types/react/web/ui/ConnectWallet/WalletTypeRowButton.d.ts.map +1 -1
  387. package/dist/types/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.d.ts +3 -0
  388. package/dist/types/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.d.ts.map +1 -0
  389. package/dist/types/react/web/ui/ConnectWallet/icons/WalletDotIcon.d.ts +6 -0
  390. package/dist/types/react/web/ui/ConnectWallet/icons/WalletDotIcon.d.ts.map +1 -0
  391. package/dist/types/react/web/ui/ConnectWallet/screens/ReceiveFunds.d.ts.map +1 -1
  392. package/dist/types/react/web/ui/ConnectWallet/screens/SendFunds.d.ts.map +1 -1
  393. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts.map +1 -1
  394. package/dist/types/react/web/ui/ConnectWallet/screens/TokenSelector.d.ts.map +1 -1
  395. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  396. package/dist/types/react/web/ui/components/Img.d.ts +3 -0
  397. package/dist/types/react/web/ui/components/Img.d.ts.map +1 -1
  398. package/dist/types/react/web/ui/components/Modal.d.ts +3 -0
  399. package/dist/types/react/web/ui/components/Modal.d.ts.map +1 -1
  400. package/dist/types/react/web/ui/components/Skeleton.d.ts +1 -0
  401. package/dist/types/react/web/ui/components/Skeleton.d.ts.map +1 -1
  402. package/dist/types/react/web/ui/components/Spinner.d.ts +1 -0
  403. package/dist/types/react/web/ui/components/Spinner.d.ts.map +1 -1
  404. package/dist/types/react/web/ui/components/basic.d.ts +6 -0
  405. package/dist/types/react/web/ui/components/basic.d.ts.map +1 -1
  406. package/dist/types/react/web/ui/components/buttons.d.ts +1 -1
  407. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  408. package/dist/types/react/web/ui/components/formElements.d.ts +1 -0
  409. package/dist/types/react/web/ui/components/formElements.d.ts.map +1 -1
  410. package/dist/types/react/web/ui/components/modalElements.d.ts.map +1 -1
  411. package/dist/types/react/web/ui/components/text.d.ts +1 -0
  412. package/dist/types/react/web/ui/components/text.d.ts.map +1 -1
  413. package/dist/types/react/web/utils/cls.d.ts +12 -0
  414. package/dist/types/react/web/utils/cls.d.ts.map +1 -0
  415. package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts +1 -0
  416. package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts.map +1 -1
  417. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  418. package/dist/types/react/web/wallets/shared/ConnectingScreen.d.ts.map +1 -1
  419. package/dist/types/react/web/wallets/shared/GuestLogin.d.ts.map +1 -1
  420. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
  421. package/dist/types/react/web/wallets/shared/ScanScreen.d.ts.map +1 -1
  422. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  423. package/dist/types/stories/Bridge/Swap/SelectChain.stories.d.ts +10 -0
  424. package/dist/types/stories/Bridge/Swap/SelectChain.stories.d.ts.map +1 -0
  425. package/dist/types/stories/Bridge/Swap/SwapWidget.Prefill.stories.d.ts +15 -0
  426. package/dist/types/stories/Bridge/Swap/SwapWidget.Prefill.stories.d.ts.map +1 -0
  427. package/dist/types/stories/Bridge/Swap/SwapWidget.stories.d.ts +10 -0
  428. package/dist/types/stories/Bridge/Swap/SwapWidget.stories.d.ts.map +1 -0
  429. package/dist/types/stories/BuyWidget.stories.d.ts +13 -0
  430. package/dist/types/stories/BuyWidget.stories.d.ts.map +1 -0
  431. package/dist/types/stories/ConnectEmbed.stories.d.ts +12 -0
  432. package/dist/types/stories/ConnectEmbed.stories.d.ts.map +1 -0
  433. package/dist/types/version.d.ts +1 -1
  434. package/dist/types/version.d.ts.map +1 -1
  435. package/dist/types/wallets/connection/autoConnect.d.ts.map +1 -1
  436. package/dist/types/wallets/connection/autoConnectCore.d.ts +0 -1
  437. package/dist/types/wallets/connection/autoConnectCore.d.ts.map +1 -1
  438. package/dist/types/wallets/manager/index.d.ts.map +1 -1
  439. package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
  440. package/package.json +2 -1
  441. package/src/bridge/types/Chain.ts +2 -0
  442. package/src/exports/react.ts +4 -0
  443. package/src/pay/convert/type.ts +27 -44
  444. package/src/react/core/design-system/index.ts +3 -1
  445. package/src/react/core/hooks/usePaymentMethods.ts +4 -1
  446. package/src/react/core/hooks/wallets/useAutoConnect.ts +0 -2
  447. package/src/react/core/machines/paymentMachine.ts +1 -0
  448. package/src/react/web/hooks/wallets/useAutoConnect.ts +0 -11
  449. package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +7 -5
  450. package/src/react/web/ui/Bridge/BuyWidget.tsx +1 -1
  451. package/src/react/web/ui/Bridge/DirectPayment.tsx +2 -2
  452. package/src/react/web/ui/Bridge/ErrorBanner.tsx +1 -1
  453. package/src/react/web/ui/Bridge/FundWallet.tsx +9 -8
  454. package/src/react/web/ui/Bridge/QuoteLoader.tsx +6 -3
  455. package/src/react/web/ui/Bridge/StepRunner.tsx +5 -3
  456. package/src/react/web/ui/Bridge/TransactionPayment.tsx +2 -2
  457. package/src/react/web/ui/Bridge/UnsupportedTokenScreen.tsx +2 -2
  458. package/src/react/web/ui/Bridge/common/TokenAndChain.tsx +3 -2
  459. package/src/react/web/ui/Bridge/common/WithHeader.tsx +23 -13
  460. package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +47 -5
  461. package/src/react/web/ui/Bridge/payment-selection/FiatProviderSelection.tsx +89 -83
  462. package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +16 -7
  463. package/src/react/web/ui/Bridge/payment-selection/WalletFiatSelection.tsx +12 -7
  464. package/src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx +1 -5
  465. package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +27 -16
  466. package/src/react/web/ui/Bridge/swap-widget/SearchInput.tsx +46 -0
  467. package/src/react/web/ui/Bridge/swap-widget/SelectChainButton.tsx +50 -0
  468. package/src/react/web/ui/Bridge/swap-widget/SwapWidget.tsx +548 -0
  469. package/src/react/web/ui/Bridge/swap-widget/common.tsx +35 -0
  470. package/src/react/web/ui/Bridge/swap-widget/hooks.ts +21 -0
  471. package/src/react/web/ui/Bridge/swap-widget/select-chain.tsx +171 -0
  472. package/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx +528 -0
  473. package/src/react/web/ui/Bridge/swap-widget/storage.ts +56 -0
  474. package/src/react/web/ui/Bridge/swap-widget/swap-ui.tsx +950 -0
  475. package/src/react/web/ui/Bridge/swap-widget/types.ts +157 -0
  476. package/src/react/web/ui/Bridge/swap-widget/use-bridge-chains.ts +14 -0
  477. package/src/react/web/ui/Bridge/swap-widget/use-tokens.ts +120 -0
  478. package/src/react/web/ui/Bridge/swap-widget/utils.ts +3 -0
  479. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +15 -0
  480. package/src/react/web/ui/ConnectWallet/Details.test.tsx +1 -1
  481. package/src/react/web/ui/ConnectWallet/Details.tsx +12 -1
  482. package/src/react/web/ui/ConnectWallet/Modal/AllWalletsUI.tsx +7 -1
  483. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +19 -1
  484. package/src/react/web/ui/ConnectWallet/Modal/ConnectModal.tsx +2 -0
  485. package/src/react/web/ui/ConnectWallet/NetworkSelector.tsx +4 -1
  486. package/src/react/web/ui/ConnectWallet/WalletEntryButton.tsx +2 -0
  487. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +20 -22
  488. package/src/react/web/ui/ConnectWallet/WalletTypeRowButton.tsx +2 -0
  489. package/src/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.tsx +23 -0
  490. package/src/react/web/ui/ConnectWallet/icons/WalletDotIcon.tsx +22 -0
  491. package/src/react/web/ui/ConnectWallet/screens/ReceiveFunds.tsx +5 -2
  492. package/src/react/web/ui/ConnectWallet/screens/SendFunds.test.tsx +1 -3
  493. package/src/react/web/ui/ConnectWallet/screens/SendFunds.tsx +19 -4
  494. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +13 -3
  495. package/src/react/web/ui/ConnectWallet/screens/TokenSelector.tsx +2 -0
  496. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +2 -0
  497. package/src/react/web/ui/components/DynamicHeight.tsx +1 -1
  498. package/src/react/web/ui/components/Img.tsx +67 -9
  499. package/src/react/web/ui/components/Modal.tsx +17 -12
  500. package/src/react/web/ui/components/OTPInput.tsx +1 -1
  501. package/src/react/web/ui/components/Skeleton.tsx +2 -0
  502. package/src/react/web/ui/components/Spinner.tsx +3 -0
  503. package/src/react/web/ui/components/basic.tsx +17 -3
  504. package/src/react/web/ui/components/buttons.tsx +18 -1
  505. package/src/react/web/ui/components/formElements.tsx +2 -1
  506. package/src/react/web/ui/components/modalElements.tsx +1 -0
  507. package/src/react/web/ui/components/text.tsx +3 -1
  508. package/src/react/web/utils/cls.ts +13 -0
  509. package/src/react/web/wallets/in-app/InputSelectionUI.tsx +2 -0
  510. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +9 -0
  511. package/src/react/web/wallets/shared/ConnectingScreen.tsx +21 -4
  512. package/src/react/web/wallets/shared/GuestLogin.tsx +6 -1
  513. package/src/react/web/wallets/shared/OTPLoginUI.tsx +35 -6
  514. package/src/react/web/wallets/shared/ScanScreen.tsx +22 -3
  515. package/src/react/web/wallets/shared/SocialLogin.tsx +6 -1
  516. package/src/stories/Bridge/Swap/SelectChain.stories.tsx +51 -0
  517. package/src/stories/Bridge/Swap/SwapWidget.Prefill.stories.tsx +116 -0
  518. package/src/stories/Bridge/Swap/SwapWidget.stories.tsx +71 -0
  519. package/src/stories/BuyWidget.stories.tsx +56 -0
  520. package/src/stories/ConnectEmbed.stories.tsx +128 -0
  521. package/src/stories/ConnectWallet/useWalletDetailsModal.stories.tsx +1 -1
  522. package/src/transaction/prepare-transaction.test.ts +2 -2
  523. package/src/version.ts +1 -1
  524. package/src/wallets/connection/autoConnect.test.ts +0 -3
  525. package/src/wallets/connection/autoConnect.ts +0 -11
  526. package/src/wallets/connection/autoConnectCore.ts +7 -3
  527. package/src/wallets/manager/index.ts +1 -2
  528. package/src/wallets/smart/lib/bundler.ts +4 -0
@@ -0,0 +1,548 @@
1
+ "use client";
2
+
3
+ import { useCallback, useEffect, useState } from "react";
4
+ import type { Buy, Sell } from "../../../../../bridge/index.js";
5
+ import type { TokenWithPrices } from "../../../../../bridge/types/Token.js";
6
+ import type { ThirdwebClient } from "../../../../../client/client.js";
7
+ import { NATIVE_TOKEN_ADDRESS } from "../../../../../constants/addresses.js";
8
+ import type { SupportedFiatCurrency } from "../../../../../pay/convert/type.js";
9
+ import { getAddress } from "../../../../../utils/address.js";
10
+ import { CustomThemeProvider } from "../../../../core/design-system/CustomThemeProvider.js";
11
+ import type { Theme } from "../../../../core/design-system/index.js";
12
+ import type { BridgePrepareRequest } from "../../../../core/hooks/useBridgePrepare.js";
13
+ import type { CompletedStatusResult } from "../../../../core/hooks/useStepExecutor.js";
14
+ import { webWindowAdapter } from "../../../adapters/WindowAdapter.js";
15
+ import { EmbedContainer } from "../../ConnectWallet/Modal/ConnectEmbed.js";
16
+ import { DynamicHeight } from "../../components/DynamicHeight.js";
17
+ import { ErrorBanner } from "../ErrorBanner.js";
18
+ import { PaymentDetails } from "../payment-details/PaymentDetails.js";
19
+ import { SuccessScreen } from "../payment-success/SuccessScreen.js";
20
+ import { StepRunner } from "../StepRunner.js";
21
+ import { useActiveWalletInfo } from "./hooks.js";
22
+ import { getLastUsedTokens, setLastUsedTokens } from "./storage.js";
23
+ import { SwapUI } from "./swap-ui.js";
24
+ import type {
25
+ SwapPreparedQuote,
26
+ SwapWidgetConnectOptions,
27
+ TokenSelection,
28
+ } from "./types.js";
29
+ import { useBridgeChains } from "./use-bridge-chains.js";
30
+
31
+ export type SwapWidgetProps = {
32
+ /**
33
+ * A client is the entry point to the thirdweb SDK.
34
+ * It is required for all other actions.
35
+ * You can create a client using the `createThirdwebClient` function. Refer to the [Creating a Client](https://portal.thirdweb.com/typescript/v5/client) documentation for more information.
36
+ *
37
+ * You must provide a `clientId` or `secretKey` in order to initialize a client. Pass `clientId` if you want for client-side usage and `secretKey` for server-side usage.
38
+ *
39
+ * ```tsx
40
+ * import { createThirdwebClient } from "thirdweb";
41
+ *
42
+ * const client = createThirdwebClient({
43
+ * clientId: "<your_client_id>",
44
+ * })
45
+ * ```
46
+ */
47
+ client: ThirdwebClient;
48
+ /**
49
+ * The prefill Buy and/or Sell tokens for the swap widget. If `tokenAddress` is not provided, the native token will be used
50
+ *
51
+ * @example
52
+ *
53
+ * ### Set an ERC20 token as the buy token
54
+ * ```ts
55
+ * <SwapWidget client={client} prefill={{
56
+ * buyToken: {
57
+ * chainId: 8453,
58
+ * tokenAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
59
+ * },
60
+ * }} />
61
+ * ```
62
+ *
63
+ * ### Set a native token as the sell token
64
+ *
65
+ * ```ts
66
+ * <SwapWidget client={client} prefill={{
67
+ * sellToken: {
68
+ * chainId: 8453,
69
+ * },
70
+ * }} />
71
+ * ```
72
+ *
73
+ * ### Set 0.1 Base USDC as the buy token
74
+ * ```ts
75
+ * <SwapWidget client={client} prefill={{
76
+ * buyToken: {
77
+ * chainId: 8453,
78
+ * amount: "0.1",
79
+ * tokenAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
80
+ * },
81
+ * }} />
82
+ * ```
83
+ *
84
+ * ### Set Base USDC as the buy token and Base native token as the sell token
85
+ * ```ts
86
+ * <SwapWidget client={client} prefill={{
87
+ * buyToken: {
88
+ * chainId: 8453,
89
+ * tokenAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
90
+ * },
91
+ * sellToken: {
92
+ * chainId: 8453,
93
+ * },
94
+ * }} />
95
+ * ```
96
+ */
97
+ prefill?: {
98
+ buyToken?: {
99
+ tokenAddress?: string;
100
+ chainId: number;
101
+ amount?: string;
102
+ };
103
+ sellToken?: {
104
+ tokenAddress?: string;
105
+ chainId: number;
106
+ amount?: string;
107
+ };
108
+ };
109
+ /**
110
+ * Set the theme for the `SwapWidget` component. By default it is set to `"dark"`
111
+ *
112
+ * theme can be set to either `"dark"`, `"light"` or a custom theme object.
113
+ * You can also import [`lightTheme`](https://portal.thirdweb.com/references/typescript/v5/lightTheme)
114
+ * or [`darkTheme`](https://portal.thirdweb.com/references/typescript/v5/darkTheme)
115
+ * functions from `thirdweb/react` to use the default themes as base and overrides parts of it.
116
+ * @example
117
+ * ```ts
118
+ * import { lightTheme } from "thirdweb/react";
119
+ *
120
+ * const customTheme = lightTheme({
121
+ * colors: {
122
+ * modalBg: 'red'
123
+ * }
124
+ * })
125
+ *
126
+ * function Example() {
127
+ * return <SwapWidget client={client} theme={customTheme} />
128
+ * }
129
+ * ```
130
+ */
131
+ theme?: "light" | "dark" | Theme;
132
+ /**
133
+ * The currency to use for the payment.
134
+ * @default "USD"
135
+ */
136
+ currency?: SupportedFiatCurrency;
137
+ connectOptions?: SwapWidgetConnectOptions;
138
+ /**
139
+ * Whether to show thirdweb branding in the widget.
140
+ * @default true
141
+ */
142
+ showThirdwebBranding?: boolean;
143
+ /**
144
+ * Callback to be called when the swap is successful.
145
+ */
146
+ onSuccess?: (quote: SwapPreparedQuote) => void;
147
+ /**
148
+ * Callback to be called when user encounters an error when swapping.
149
+ */
150
+ onError?: (error: Error, quote: SwapPreparedQuote) => void;
151
+ /**
152
+ * Callback to be called when the user cancels the purchase.
153
+ */
154
+ onCancel?: (quote: SwapPreparedQuote) => void;
155
+ style?: React.CSSProperties;
156
+ className?: string;
157
+
158
+ /**
159
+ * Whether to persist the token selections to localStorage so that if the user revisits the widget, the last used tokens are pre-selected.
160
+ * The last used tokens do not override the tokens specified in the `prefill` prop
161
+ *
162
+ * @default true
163
+ */
164
+ persistTokenSelections?: boolean;
165
+ };
166
+
167
+ /**
168
+ * A widget for swapping tokens with cross-chain support
169
+ *
170
+ * @param props - Props of type [`SwapWidgetProps`](https://portal.thirdweb.com/references/typescript/v5/SwapWidgetProps) to configure the SwapWidget component.
171
+ *
172
+ * @example
173
+ * ### Basic usage
174
+ *
175
+ * By default, no tokens are selected in the widget UI.
176
+ *
177
+ * You can set specific tokens to buy or sell by default by passing the `prefill` prop. User can change these selections in the widget UI.
178
+ *
179
+ * ```tsx
180
+ * <SwapWidget client={client} />
181
+ * ```
182
+ *
183
+ * ### Set an ERC20 token to Buy by default
184
+ *
185
+ * ```tsx
186
+ * <SwapWidget client={client} prefill={{
187
+ * buyToken: {
188
+ * // Base USDC
189
+ * chainId: 8453,
190
+ * tokenAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
191
+ * },
192
+ * }} />
193
+ * ```
194
+ *
195
+ * ### Set a native token to Sell by default
196
+ *
197
+ * By not specifying a `tokenAddress`, the native token will be used.
198
+ *
199
+ * ```tsx
200
+ * <SwapWidget client={client} prefill={{
201
+ * // Base native token (ETH)
202
+ * sellToken: {
203
+ * chainId: 8453,
204
+ * },
205
+ * }} />
206
+ * ```
207
+ *
208
+ * ### Set amount and token to Buy by default
209
+ *
210
+ * ```tsx
211
+ * <SwapWidget client={client} prefill={{
212
+ * buyToken: {
213
+ * // 0.1 Base USDC
214
+ * chainId: 8453,
215
+ * amount: "0.1",
216
+ * tokenAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
217
+ * },
218
+ * }} />
219
+ * ```
220
+ *
221
+ * ### Set both buy and sell tokens by default
222
+ *
223
+ * ```tsx
224
+ * <SwapWidget client={client} prefill={{
225
+ * buyToken: {
226
+ * // Base USDC
227
+ * chainId: 8453,
228
+ * tokenAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
229
+ * },
230
+ * sellToken: {
231
+ * // Polygon native token (MATIC)
232
+ * chainId: 137,
233
+ * },
234
+ * }} />
235
+ * ```
236
+ *
237
+ */
238
+ export function SwapWidget(props: SwapWidgetProps) {
239
+ return (
240
+ <SwapWidgetContainer
241
+ theme={props.theme}
242
+ style={props.style}
243
+ className={props.className}
244
+ >
245
+ <SwapWidgetContent {...props} />
246
+ </SwapWidgetContainer>
247
+ );
248
+ }
249
+
250
+ /**
251
+ * @internal
252
+ */
253
+ export function SwapWidgetContainer(props: {
254
+ theme: SwapWidgetProps["theme"];
255
+ className: string | undefined;
256
+ style?: React.CSSProperties | undefined;
257
+ children: React.ReactNode;
258
+ }) {
259
+ return (
260
+ <CustomThemeProvider theme={props.theme || "dark"}>
261
+ <EmbedContainer
262
+ className={props.className}
263
+ modalSize="compact"
264
+ style={{
265
+ ...props.style,
266
+ }}
267
+ >
268
+ <DynamicHeight>{props.children}</DynamicHeight>
269
+ </EmbedContainer>
270
+ </CustomThemeProvider>
271
+ );
272
+ }
273
+
274
+ type SelectionInfo = {
275
+ preparedQuote: SwapPreparedQuote;
276
+ request: BridgePrepareRequest;
277
+ quote: Buy.quote.Result | Sell.quote.Result;
278
+ buyToken: TokenWithPrices;
279
+ sellToken: TokenWithPrices;
280
+ sellTokenBalance: bigint;
281
+ mode: "buy" | "sell";
282
+ };
283
+
284
+ type Join<T, U> = T & U;
285
+
286
+ type SwapWidgetScreen =
287
+ | { id: "1:swap-ui" }
288
+ | Join<{ id: "2:preview" }, SelectionInfo>
289
+ | Join<{ id: "3:execute" }, SelectionInfo>
290
+ | Join<
291
+ {
292
+ id: "4:success";
293
+ completedStatuses: CompletedStatusResult[];
294
+ },
295
+ SelectionInfo
296
+ >
297
+ | { id: "error"; error: Error; preparedQuote: SwapPreparedQuote };
298
+
299
+ function SwapWidgetContent(props: SwapWidgetProps) {
300
+ const [screen, setScreen] = useState<SwapWidgetScreen>({ id: "1:swap-ui" });
301
+ const activeWalletInfo = useActiveWalletInfo();
302
+ const isPersistEnabled = props.persistTokenSelections !== false;
303
+
304
+ const [amountSelection, setAmountSelection] = useState<{
305
+ type: "buy" | "sell";
306
+ amount: string;
307
+ }>(() => {
308
+ if (props.prefill?.buyToken?.amount) {
309
+ return {
310
+ type: "buy",
311
+ amount: props.prefill.buyToken.amount,
312
+ };
313
+ }
314
+ if (props.prefill?.sellToken?.amount) {
315
+ return {
316
+ type: "sell",
317
+ amount: props.prefill.sellToken.amount,
318
+ };
319
+ }
320
+ return {
321
+ type: "buy",
322
+ amount: "",
323
+ };
324
+ });
325
+
326
+ const [buyToken, setBuyToken] = useState<TokenSelection | undefined>(() => {
327
+ if (props.prefill?.buyToken) {
328
+ return {
329
+ tokenAddress:
330
+ props.prefill.buyToken.tokenAddress ||
331
+ getAddress(NATIVE_TOKEN_ADDRESS),
332
+ chainId: props.prefill.buyToken.chainId,
333
+ };
334
+ }
335
+
336
+ if (!isPersistEnabled) {
337
+ return undefined;
338
+ }
339
+
340
+ const lastUsedBuyToken = getLastUsedTokens()?.buyToken;
341
+
342
+ // the token that will be set as initial value of sell token
343
+ const sellToken = getInitialSellToken(
344
+ props.prefill,
345
+ getLastUsedTokens()?.sellToken,
346
+ );
347
+
348
+ // if both tokens are same, ignore "buyToken", keep "sellToken"
349
+ if (
350
+ lastUsedBuyToken &&
351
+ sellToken &&
352
+ lastUsedBuyToken.tokenAddress.toLowerCase() ===
353
+ sellToken.tokenAddress.toLowerCase() &&
354
+ lastUsedBuyToken.chainId === sellToken.chainId
355
+ ) {
356
+ return undefined;
357
+ }
358
+
359
+ return lastUsedBuyToken;
360
+ });
361
+
362
+ const [sellToken, setSellToken] = useState<TokenSelection | undefined>(() => {
363
+ return getInitialSellToken(
364
+ props.prefill,
365
+ isPersistEnabled ? getLastUsedTokens()?.sellToken : undefined,
366
+ );
367
+ });
368
+
369
+ // persist selections to localStorage whenever they change
370
+ useEffect(() => {
371
+ if (isPersistEnabled) {
372
+ setLastUsedTokens({ buyToken, sellToken });
373
+ }
374
+ }, [buyToken, sellToken, isPersistEnabled]);
375
+
376
+ // preload requests
377
+ useBridgeChains(props.client);
378
+
379
+ const handleError = useCallback(
380
+ (error: Error, quote: SwapPreparedQuote) => {
381
+ console.error(error);
382
+ props.onError?.(error, quote);
383
+ setScreen({
384
+ id: "error",
385
+ preparedQuote: quote,
386
+ error,
387
+ });
388
+ },
389
+ [props.onError],
390
+ );
391
+
392
+ // if wallet suddenly disconnects, show screen 1
393
+ if (screen.id === "1:swap-ui" || !activeWalletInfo) {
394
+ return (
395
+ <SwapUI
396
+ showThirdwebBranding={
397
+ props.showThirdwebBranding === undefined
398
+ ? true
399
+ : props.showThirdwebBranding
400
+ }
401
+ client={props.client}
402
+ theme={props.theme || "dark"}
403
+ connectOptions={props.connectOptions}
404
+ currency={props.currency || "USD"}
405
+ activeWalletInfo={activeWalletInfo}
406
+ buyToken={buyToken}
407
+ sellToken={sellToken}
408
+ setBuyToken={setBuyToken}
409
+ setSellToken={setSellToken}
410
+ amountSelection={amountSelection}
411
+ setAmountSelection={setAmountSelection}
412
+ onSwap={(data) => {
413
+ setScreen({
414
+ id: "2:preview",
415
+ buyToken: data.buyToken,
416
+ sellToken: data.sellToken,
417
+ sellTokenBalance: data.sellTokenBalance,
418
+ mode: data.mode,
419
+ preparedQuote: data.result,
420
+ request: data.request,
421
+ quote: data.result,
422
+ });
423
+ }}
424
+ />
425
+ );
426
+ }
427
+
428
+ if (screen.id === "2:preview") {
429
+ return (
430
+ <PaymentDetails
431
+ title="Review Swap"
432
+ confirmButtonLabel="Swap"
433
+ client={props.client}
434
+ onBack={() => {
435
+ setScreen({ id: "1:swap-ui" });
436
+ }}
437
+ onConfirm={() => {
438
+ setScreen({
439
+ ...screen,
440
+ id: "3:execute",
441
+ });
442
+ }}
443
+ onError={(error) => handleError(error, screen.preparedQuote)}
444
+ paymentMethod={{
445
+ quote: screen.quote,
446
+ type: "wallet",
447
+ payerWallet: activeWalletInfo.activeWallet,
448
+ balance: screen.sellTokenBalance,
449
+ originToken: screen.sellToken,
450
+ action: screen.mode,
451
+ }}
452
+ preparedQuote={screen.preparedQuote}
453
+ uiOptions={{
454
+ destinationToken: screen.buyToken,
455
+ mode: "fund_wallet",
456
+ currency: props.currency,
457
+ }}
458
+ />
459
+ );
460
+ }
461
+
462
+ if (screen.id === "3:execute") {
463
+ return (
464
+ <StepRunner
465
+ title="Processing Swap"
466
+ autoStart={true}
467
+ client={props.client}
468
+ onBack={() => {
469
+ setScreen({
470
+ ...screen,
471
+ id: "2:preview",
472
+ sellTokenBalance: screen.sellTokenBalance,
473
+ });
474
+ }}
475
+ onCancel={() => props.onCancel?.(screen.preparedQuote)}
476
+ onComplete={(completedStatuses) => {
477
+ props.onSuccess?.(screen.preparedQuote);
478
+ setScreen({
479
+ ...screen,
480
+ id: "4:success",
481
+ completedStatuses,
482
+ });
483
+ }}
484
+ request={screen.request}
485
+ wallet={activeWalletInfo.activeWallet}
486
+ windowAdapter={webWindowAdapter}
487
+ />
488
+ );
489
+ }
490
+
491
+ if (screen.id === "4:success") {
492
+ return (
493
+ <SuccessScreen
494
+ client={props.client}
495
+ completedStatuses={screen.completedStatuses}
496
+ onDone={() => {
497
+ setScreen({ id: "1:swap-ui" });
498
+ // clear amounts
499
+ setAmountSelection({
500
+ type: "buy",
501
+ amount: "",
502
+ });
503
+ }}
504
+ preparedQuote={screen.preparedQuote}
505
+ uiOptions={{
506
+ destinationToken: screen.buyToken,
507
+ mode: "fund_wallet",
508
+ currency: props.currency,
509
+ }}
510
+ windowAdapter={webWindowAdapter}
511
+ hasPaymentId={false} // TODO Question: Do we need to expose this as prop?
512
+ />
513
+ );
514
+ }
515
+
516
+ if (screen.id === "error") {
517
+ return (
518
+ <ErrorBanner
519
+ client={props.client}
520
+ error={screen.error}
521
+ onCancel={() => {
522
+ setScreen({ id: "1:swap-ui" });
523
+ props.onCancel?.(screen.preparedQuote);
524
+ }}
525
+ onRetry={() => {
526
+ setScreen({ id: "1:swap-ui" });
527
+ }}
528
+ />
529
+ );
530
+ }
531
+
532
+ return null;
533
+ }
534
+
535
+ function getInitialSellToken(
536
+ prefill: SwapWidgetProps["prefill"],
537
+ lastUsedSellToken: TokenSelection | undefined,
538
+ ) {
539
+ if (prefill?.sellToken) {
540
+ return {
541
+ tokenAddress:
542
+ prefill.sellToken.tokenAddress || getAddress(NATIVE_TOKEN_ADDRESS),
543
+ chainId: prefill.sellToken.chainId,
544
+ };
545
+ }
546
+
547
+ return lastUsedSellToken;
548
+ }
@@ -0,0 +1,35 @@
1
+ import type { Theme } from "../../../../core/design-system/index.js";
2
+ import { Text } from "../../components/text.js";
3
+
4
+ export function DecimalRenderer(props: {
5
+ value: string;
6
+ color: keyof Theme["colors"];
7
+ weight: 400 | 500 | 600 | 700;
8
+ integerSize: "md" | "sm";
9
+ fractionSize: "sm" | "xs";
10
+ }) {
11
+ if (Number(props.value) > 1000) {
12
+ return (
13
+ <Text size={props.integerSize} color={props.color} weight={props.weight}>
14
+ {compactFormatter.format(Number(props.value))}
15
+ </Text>
16
+ );
17
+ }
18
+ const [integerPart, fractionPart] = props.value.split(".");
19
+
20
+ return (
21
+ <div style={{ display: "flex", alignItems: "baseline" }}>
22
+ <Text size={props.integerSize} color={props.color} weight={props.weight}>
23
+ {integerPart}
24
+ </Text>
25
+ <Text size={props.fractionSize} color={props.color} weight={props.weight}>
26
+ .{fractionPart || "00"}
27
+ </Text>
28
+ </div>
29
+ );
30
+ }
31
+
32
+ const compactFormatter = new Intl.NumberFormat("en-US", {
33
+ notation: "compact",
34
+ maximumFractionDigits: 2,
35
+ });
@@ -0,0 +1,21 @@
1
+ import { useMemo } from "react";
2
+ import { useActiveAccount } from "../../../../core/hooks/wallets/useActiveAccount.js";
3
+ import { useActiveWallet } from "../../../../core/hooks/wallets/useActiveWallet.js";
4
+ import { useActiveWalletChain } from "../../../../core/hooks/wallets/useActiveWalletChain.js";
5
+ import type { ActiveWalletInfo } from "./types.js";
6
+
7
+ export function useActiveWalletInfo(): ActiveWalletInfo | undefined {
8
+ const activeAccount = useActiveAccount();
9
+ const activeWallet = useActiveWallet();
10
+ const activeChain = useActiveWalletChain();
11
+
12
+ return useMemo(() => {
13
+ return activeAccount && activeWallet && activeChain
14
+ ? {
15
+ activeChain,
16
+ activeWallet,
17
+ activeAccount,
18
+ }
19
+ : undefined;
20
+ }, [activeAccount, activeWallet, activeChain]);
21
+ }