thirdweb 5.102.7-nightly-3f747601135809eedf86a150752f4b5f12c99776-20250617000426 → 5.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/dist/cjs/bridge/Routes.js +4 -1
  2. package/dist/cjs/bridge/Routes.js.map +1 -1
  3. package/dist/cjs/bridge/Token.js +57 -0
  4. package/dist/cjs/bridge/Token.js.map +1 -1
  5. package/dist/cjs/bridge/types/Errors.js +9 -0
  6. package/dist/cjs/bridge/types/Errors.js.map +1 -1
  7. package/dist/cjs/exports/react.js +9 -1
  8. package/dist/cjs/exports/react.js.map +1 -1
  9. package/dist/cjs/pay/buyWithFiat/getQuote.js +2 -2
  10. package/dist/cjs/pay/convert/cryptoToFiat.js +3 -3
  11. package/dist/cjs/pay/convert/cryptoToFiat.js.map +1 -1
  12. package/dist/cjs/pay/convert/fiatToCrypto.js +3 -3
  13. package/dist/cjs/pay/convert/fiatToCrypto.js.map +1 -1
  14. package/dist/cjs/pay/convert/get-token.js +15 -3
  15. package/dist/cjs/pay/convert/get-token.js.map +1 -1
  16. package/dist/cjs/pay/utils/commonTypes.js +1 -1
  17. package/dist/cjs/react/core/adapters/WindowAdapter.js +3 -0
  18. package/dist/cjs/react/core/adapters/WindowAdapter.js.map +1 -0
  19. package/dist/cjs/react/core/errors/mapBridgeError.js +27 -0
  20. package/dist/cjs/react/core/errors/mapBridgeError.js.map +1 -0
  21. package/dist/cjs/react/core/hooks/others/useChainQuery.js +1 -1
  22. package/dist/cjs/react/core/hooks/others/useChainQuery.js.map +1 -1
  23. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js +40 -0
  24. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js.map +1 -0
  25. package/dist/cjs/react/core/hooks/useBridgeError.js +94 -0
  26. package/dist/cjs/react/core/hooks/useBridgeError.js.map +1 -0
  27. package/dist/cjs/react/core/hooks/useBridgePrepare.js +90 -0
  28. package/dist/cjs/react/core/hooks/useBridgePrepare.js.map +1 -0
  29. package/dist/cjs/react/core/hooks/useBridgeQuote.js +50 -0
  30. package/dist/cjs/react/core/hooks/useBridgeQuote.js.map +1 -0
  31. package/dist/cjs/react/core/hooks/useBridgeRoutes.js +61 -0
  32. package/dist/cjs/react/core/hooks/useBridgeRoutes.js.map +1 -0
  33. package/dist/cjs/react/core/hooks/usePaymentMethods.js +154 -0
  34. package/dist/cjs/react/core/hooks/usePaymentMethods.js.map +1 -0
  35. package/dist/cjs/react/core/hooks/useStepExecutor.js +408 -0
  36. package/dist/cjs/react/core/hooks/useStepExecutor.js.map +1 -0
  37. package/dist/cjs/react/core/hooks/useTransactionDetails.js +126 -0
  38. package/dist/cjs/react/core/hooks/useTransactionDetails.js.map +1 -0
  39. package/dist/cjs/react/core/machines/paymentMachine.js +189 -0
  40. package/dist/cjs/react/core/machines/paymentMachine.js.map +1 -0
  41. package/dist/cjs/react/web/adapters/WindowAdapter.js +25 -0
  42. package/dist/cjs/react/web/adapters/WindowAdapter.js.map +1 -0
  43. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +5 -0
  44. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  45. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +107 -0
  46. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -0
  47. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +177 -0
  48. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -0
  49. package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js +154 -0
  50. package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js.map +1 -0
  51. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js +62 -0
  52. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js.map +1 -0
  53. package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js +26 -0
  54. package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js.map +1 -0
  55. package/dist/cjs/react/web/ui/Bridge/FundWallet.js +122 -0
  56. package/dist/cjs/react/web/ui/Bridge/FundWallet.js.map +1 -0
  57. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js +99 -0
  58. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js.map +1 -0
  59. package/dist/cjs/react/web/ui/Bridge/StepRunner.js +179 -0
  60. package/dist/cjs/react/web/ui/Bridge/StepRunner.js.map +1 -0
  61. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js +117 -0
  62. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js.map +1 -0
  63. package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js +179 -0
  64. package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js.map +1 -0
  65. package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js +23 -0
  66. package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -0
  67. package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js +101 -0
  68. package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -0
  69. package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js +57 -0
  70. package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -0
  71. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js +27 -0
  72. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js.map +1 -0
  73. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js +121 -0
  74. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -0
  75. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js +80 -0
  76. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -0
  77. package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +83 -0
  78. package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -0
  79. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js +111 -0
  80. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -0
  81. package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js +71 -0
  82. package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -0
  83. package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +54 -0
  84. package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -0
  85. package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js +140 -0
  86. package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -0
  87. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js +61 -0
  88. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -0
  89. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
  90. package/dist/cjs/react/web/ui/ConnectWallet/constants.js +1 -1
  91. package/dist/cjs/react/web/ui/ConnectWallet/icons/CreditCardIcon.js +12 -0
  92. package/dist/cjs/react/web/ui/ConnectWallet/icons/CreditCardIcon.js.map +1 -0
  93. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  94. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +3 -1
  95. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  96. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +4 -0
  97. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  98. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  99. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +4 -1
  100. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  101. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +1 -1
  102. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -1
  103. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
  104. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  105. package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js +11 -0
  106. package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
  107. package/dist/cjs/react/web/ui/PayEmbed.js +2 -1
  108. package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
  109. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js +6 -5
  110. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
  111. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +43 -4
  112. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
  113. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +8 -4
  114. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  115. package/dist/cjs/react/web/ui/components/ChainName.js +2 -1
  116. package/dist/cjs/react/web/ui/components/ChainName.js.map +1 -1
  117. package/dist/cjs/react/web/ui/components/TokenIcon.js +6 -3
  118. package/dist/cjs/react/web/ui/components/TokenIcon.js.map +1 -1
  119. package/dist/cjs/react/web/ui/components/buttons.js +1 -5
  120. package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
  121. package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js +228 -0
  122. package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js.map +1 -0
  123. package/dist/cjs/stories/Bridge/DirectPayment.stories.js +194 -0
  124. package/dist/cjs/stories/Bridge/DirectPayment.stories.js.map +1 -0
  125. package/dist/cjs/stories/Bridge/ErrorBanner.stories.js +153 -0
  126. package/dist/cjs/stories/Bridge/ErrorBanner.stories.js.map +1 -0
  127. package/dist/cjs/stories/Bridge/FundWallet.stories.js +173 -0
  128. package/dist/cjs/stories/Bridge/FundWallet.stories.js.map +1 -0
  129. package/dist/cjs/stories/Bridge/PaymentDetails.stories.js +430 -0
  130. package/dist/cjs/stories/Bridge/PaymentDetails.stories.js.map +1 -0
  131. package/dist/cjs/stories/Bridge/PaymentSelection.stories.js +151 -0
  132. package/dist/cjs/stories/Bridge/PaymentSelection.stories.js.map +1 -0
  133. package/dist/cjs/stories/Bridge/StepRunner.stories.js +82 -0
  134. package/dist/cjs/stories/Bridge/StepRunner.stories.js.map +1 -0
  135. package/dist/cjs/stories/Bridge/SuccessScreen.stories.js +180 -0
  136. package/dist/cjs/stories/Bridge/SuccessScreen.stories.js.map +1 -0
  137. package/dist/cjs/stories/Bridge/TransactionPayment.stories.js +139 -0
  138. package/dist/cjs/stories/Bridge/TransactionPayment.stories.js.map +1 -0
  139. package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js +94 -0
  140. package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -0
  141. package/dist/cjs/stories/Bridge/fixtures.js +731 -0
  142. package/dist/cjs/stories/Bridge/fixtures.js.map +1 -0
  143. package/dist/cjs/stories/TokenBalanceRow.stories.js +81 -0
  144. package/dist/cjs/stories/TokenBalanceRow.stories.js.map +1 -0
  145. package/dist/cjs/stories/WalletRow.stories.js +120 -0
  146. package/dist/cjs/stories/WalletRow.stories.js.map +1 -0
  147. package/dist/cjs/stories/utils.js +19 -1
  148. package/dist/cjs/stories/utils.js.map +1 -1
  149. package/dist/cjs/version.js +1 -1
  150. package/dist/cjs/version.js.map +1 -1
  151. package/dist/esm/bridge/Routes.js +4 -1
  152. package/dist/esm/bridge/Routes.js.map +1 -1
  153. package/dist/esm/bridge/Token.js +56 -0
  154. package/dist/esm/bridge/Token.js.map +1 -1
  155. package/dist/esm/bridge/types/Errors.js +9 -0
  156. package/dist/esm/bridge/types/Errors.js.map +1 -1
  157. package/dist/esm/exports/react.js +4 -0
  158. package/dist/esm/exports/react.js.map +1 -1
  159. package/dist/esm/pay/buyWithFiat/getQuote.js +2 -2
  160. package/dist/esm/pay/convert/cryptoToFiat.js +4 -4
  161. package/dist/esm/pay/convert/cryptoToFiat.js.map +1 -1
  162. package/dist/esm/pay/convert/fiatToCrypto.js +4 -4
  163. package/dist/esm/pay/convert/fiatToCrypto.js.map +1 -1
  164. package/dist/esm/pay/convert/get-token.js +15 -3
  165. package/dist/esm/pay/convert/get-token.js.map +1 -1
  166. package/dist/esm/pay/utils/commonTypes.js +1 -1
  167. package/dist/esm/react/core/adapters/WindowAdapter.js +2 -0
  168. package/dist/esm/react/core/adapters/WindowAdapter.js.map +1 -0
  169. package/dist/esm/react/core/errors/mapBridgeError.js +23 -0
  170. package/dist/esm/react/core/errors/mapBridgeError.js.map +1 -0
  171. package/dist/esm/react/core/hooks/others/useChainQuery.js +1 -1
  172. package/dist/esm/react/core/hooks/others/useChainQuery.js.map +1 -1
  173. package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js +37 -0
  174. package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js.map +1 -0
  175. package/dist/esm/react/core/hooks/useBridgeError.js +91 -0
  176. package/dist/esm/react/core/hooks/useBridgeError.js.map +1 -0
  177. package/dist/esm/react/core/hooks/useBridgePrepare.js +87 -0
  178. package/dist/esm/react/core/hooks/useBridgePrepare.js.map +1 -0
  179. package/dist/esm/react/core/hooks/useBridgeQuote.js +47 -0
  180. package/dist/esm/react/core/hooks/useBridgeQuote.js.map +1 -0
  181. package/dist/esm/react/core/hooks/useBridgeRoutes.js +58 -0
  182. package/dist/esm/react/core/hooks/useBridgeRoutes.js.map +1 -0
  183. package/dist/esm/react/core/hooks/usePaymentMethods.js +151 -0
  184. package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -0
  185. package/dist/esm/react/core/hooks/useStepExecutor.js +405 -0
  186. package/dist/esm/react/core/hooks/useStepExecutor.js.map +1 -0
  187. package/dist/esm/react/core/hooks/useTransactionDetails.js +123 -0
  188. package/dist/esm/react/core/hooks/useTransactionDetails.js.map +1 -0
  189. package/dist/esm/react/core/machines/paymentMachine.js +186 -0
  190. package/dist/esm/react/core/machines/paymentMachine.js.map +1 -0
  191. package/dist/esm/react/web/adapters/WindowAdapter.js +21 -0
  192. package/dist/esm/react/web/adapters/WindowAdapter.js.map +1 -0
  193. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +5 -0
  194. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  195. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +104 -0
  196. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -0
  197. package/dist/esm/react/web/ui/Bridge/BuyWidget.js +174 -0
  198. package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -0
  199. package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js +151 -0
  200. package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js.map +1 -0
  201. package/dist/esm/react/web/ui/Bridge/DirectPayment.js +59 -0
  202. package/dist/esm/react/web/ui/Bridge/DirectPayment.js.map +1 -0
  203. package/dist/esm/react/web/ui/Bridge/ErrorBanner.js +23 -0
  204. package/dist/esm/react/web/ui/Bridge/ErrorBanner.js.map +1 -0
  205. package/dist/esm/react/web/ui/Bridge/FundWallet.js +119 -0
  206. package/dist/esm/react/web/ui/Bridge/FundWallet.js.map +1 -0
  207. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +96 -0
  208. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -0
  209. package/dist/esm/react/web/ui/Bridge/StepRunner.js +176 -0
  210. package/dist/esm/react/web/ui/Bridge/StepRunner.js.map +1 -0
  211. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +114 -0
  212. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js.map +1 -0
  213. package/dist/esm/react/web/ui/Bridge/TransactionWidget.js +176 -0
  214. package/dist/esm/react/web/ui/Bridge/TransactionWidget.js.map +1 -0
  215. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js +20 -0
  216. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -0
  217. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js +96 -0
  218. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -0
  219. package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js +54 -0
  220. package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -0
  221. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js +24 -0
  222. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js.map +1 -0
  223. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +119 -0
  224. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -0
  225. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js +77 -0
  226. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -0
  227. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +80 -0
  228. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -0
  229. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +108 -0
  230. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -0
  231. package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js +68 -0
  232. package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -0
  233. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +51 -0
  234. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -0
  235. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js +137 -0
  236. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -0
  237. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +58 -0
  238. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -0
  239. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
  240. package/dist/esm/react/web/ui/ConnectWallet/constants.js +1 -1
  241. package/dist/esm/react/web/ui/ConnectWallet/icons/CreditCardIcon.js +8 -0
  242. package/dist/esm/react/web/ui/ConnectWallet/icons/CreditCardIcon.js.map +1 -0
  243. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  244. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +3 -1
  245. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  246. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +3 -0
  247. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  248. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  249. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +4 -1
  250. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  251. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +1 -1
  252. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -1
  253. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
  254. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  255. package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js +9 -0
  256. package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
  257. package/dist/esm/react/web/ui/PayEmbed.js +2 -1
  258. package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
  259. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js +6 -5
  260. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
  261. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +45 -6
  262. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
  263. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +8 -4
  264. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  265. package/dist/esm/react/web/ui/components/ChainName.js +2 -2
  266. package/dist/esm/react/web/ui/components/ChainName.js.map +1 -1
  267. package/dist/esm/react/web/ui/components/TokenIcon.js +7 -4
  268. package/dist/esm/react/web/ui/components/TokenIcon.js.map +1 -1
  269. package/dist/esm/react/web/ui/components/buttons.js +1 -5
  270. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  271. package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js +226 -0
  272. package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js.map +1 -0
  273. package/dist/esm/stories/Bridge/DirectPayment.stories.js +191 -0
  274. package/dist/esm/stories/Bridge/DirectPayment.stories.js.map +1 -0
  275. package/dist/esm/stories/Bridge/ErrorBanner.stories.js +150 -0
  276. package/dist/esm/stories/Bridge/ErrorBanner.stories.js.map +1 -0
  277. package/dist/esm/stories/Bridge/FundWallet.stories.js +170 -0
  278. package/dist/esm/stories/Bridge/FundWallet.stories.js.map +1 -0
  279. package/dist/esm/stories/Bridge/PaymentDetails.stories.js +427 -0
  280. package/dist/esm/stories/Bridge/PaymentDetails.stories.js.map +1 -0
  281. package/dist/esm/stories/Bridge/PaymentSelection.stories.js +148 -0
  282. package/dist/esm/stories/Bridge/PaymentSelection.stories.js.map +1 -0
  283. package/dist/esm/stories/Bridge/StepRunner.stories.js +79 -0
  284. package/dist/esm/stories/Bridge/StepRunner.stories.js.map +1 -0
  285. package/dist/esm/stories/Bridge/SuccessScreen.stories.js +177 -0
  286. package/dist/esm/stories/Bridge/SuccessScreen.stories.js.map +1 -0
  287. package/dist/esm/stories/Bridge/TransactionPayment.stories.js +136 -0
  288. package/dist/esm/stories/Bridge/TransactionPayment.stories.js.map +1 -0
  289. package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js +91 -0
  290. package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -0
  291. package/dist/esm/stories/Bridge/fixtures.js +728 -0
  292. package/dist/esm/stories/Bridge/fixtures.js.map +1 -0
  293. package/dist/esm/stories/TokenBalanceRow.stories.js +78 -0
  294. package/dist/esm/stories/TokenBalanceRow.stories.js.map +1 -0
  295. package/dist/esm/stories/WalletRow.stories.js +117 -0
  296. package/dist/esm/stories/WalletRow.stories.js.map +1 -0
  297. package/dist/esm/stories/utils.js +17 -0
  298. package/dist/esm/stories/utils.js.map +1 -1
  299. package/dist/esm/version.js +1 -1
  300. package/dist/esm/version.js.map +1 -1
  301. package/dist/types/bridge/Routes.d.ts +1 -0
  302. package/dist/types/bridge/Routes.d.ts.map +1 -1
  303. package/dist/types/bridge/Token.d.ts +48 -1
  304. package/dist/types/bridge/Token.d.ts.map +1 -1
  305. package/dist/types/bridge/types/BridgeAction.d.ts +1 -1
  306. package/dist/types/bridge/types/BridgeAction.d.ts.map +1 -1
  307. package/dist/types/bridge/types/Errors.d.ts +1 -0
  308. package/dist/types/bridge/types/Errors.d.ts.map +1 -1
  309. package/dist/types/exports/react.d.ts +4 -0
  310. package/dist/types/exports/react.d.ts.map +1 -1
  311. package/dist/types/pay/convert/get-token.d.ts +2 -1
  312. package/dist/types/pay/convert/get-token.d.ts.map +1 -1
  313. package/dist/types/pay/utils/commonTypes.d.ts +1 -1
  314. package/dist/types/react/core/adapters/WindowAdapter.d.ts +14 -0
  315. package/dist/types/react/core/adapters/WindowAdapter.d.ts.map +1 -0
  316. package/dist/types/react/core/errors/mapBridgeError.d.ts +17 -0
  317. package/dist/types/react/core/errors/mapBridgeError.d.ts.map +1 -0
  318. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +14 -6
  319. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  320. package/dist/types/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.d.ts +54 -0
  321. package/dist/types/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.d.ts.map +1 -0
  322. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -1
  323. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  324. package/dist/types/react/core/hooks/useBridgeError.d.ts +72 -0
  325. package/dist/types/react/core/hooks/useBridgeError.d.ts.map +1 -0
  326. package/dist/types/react/core/hooks/useBridgePrepare.d.ts +75 -0
  327. package/dist/types/react/core/hooks/useBridgePrepare.d.ts.map +1 -0
  328. package/dist/types/react/core/hooks/useBridgeQuote.d.ts +14 -0
  329. package/dist/types/react/core/hooks/useBridgeQuote.d.ts.map +1 -0
  330. package/dist/types/react/core/hooks/useBridgeRoutes.d.ts +30 -0
  331. package/dist/types/react/core/hooks/useBridgeRoutes.d.ts.map +1 -0
  332. package/dist/types/react/core/hooks/usePaymentMethods.d.ts +36 -0
  333. package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -0
  334. package/dist/types/react/core/hooks/useStepExecutor.d.ts +67 -0
  335. package/dist/types/react/core/hooks/useStepExecutor.d.ts.map +1 -0
  336. package/dist/types/react/core/hooks/useTransactionDetails.d.ts +31 -0
  337. package/dist/types/react/core/hooks/useTransactionDetails.d.ts.map +1 -0
  338. package/dist/types/react/core/machines/paymentMachine.d.ts +86 -0
  339. package/dist/types/react/core/machines/paymentMachine.d.ts.map +1 -0
  340. package/dist/types/react/web/adapters/WindowAdapter.d.ts +19 -0
  341. package/dist/types/react/web/adapters/WindowAdapter.d.ts.map +1 -0
  342. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +5 -0
  343. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  344. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts +78 -0
  345. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -0
  346. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +325 -0
  347. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -0
  348. package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts +328 -0
  349. package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts.map +1 -0
  350. package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts +27 -0
  351. package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts.map +1 -0
  352. package/dist/types/react/web/ui/Bridge/ErrorBanner.d.ts +17 -0
  353. package/dist/types/react/web/ui/Bridge/ErrorBanner.d.ts.map +1 -0
  354. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts +35 -0
  355. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts.map +1 -0
  356. package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts +57 -0
  357. package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts.map +1 -0
  358. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +39 -0
  359. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -0
  360. package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts +27 -0
  361. package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts.map +1 -0
  362. package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts +355 -0
  363. package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts.map +1 -0
  364. package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts +13 -0
  365. package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts.map +1 -0
  366. package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts +16 -0
  367. package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts.map +1 -0
  368. package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts +10 -0
  369. package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts.map +1 -0
  370. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts +9 -0
  371. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts.map +1 -0
  372. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts +36 -0
  373. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -0
  374. package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts +15 -0
  375. package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts.map +1 -0
  376. package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts +12 -0
  377. package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts.map +1 -0
  378. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts +50 -0
  379. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -0
  380. package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts +15 -0
  381. package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts.map +1 -0
  382. package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts +12 -0
  383. package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts.map +1 -0
  384. package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts +24 -0
  385. package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts.map +1 -0
  386. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts +28 -0
  387. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -0
  388. package/dist/types/react/web/ui/ConnectWallet/constants.d.ts +1 -1
  389. package/dist/types/react/web/ui/ConnectWallet/icons/CreditCardIcon.d.ts +6 -0
  390. package/dist/types/react/web/ui/ConnectWallet/icons/CreditCardIcon.d.ts.map +1 -0
  391. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  392. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts.map +1 -1
  393. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +4 -0
  394. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
  395. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +4 -1
  396. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  397. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
  398. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.d.ts.map +1 -1
  399. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
  400. package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts +2 -0
  401. package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts.map +1 -1
  402. package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
  403. package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts.map +1 -1
  404. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts +2 -0
  405. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -1
  406. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  407. package/dist/types/react/web/ui/components/ChainName.d.ts +3 -0
  408. package/dist/types/react/web/ui/components/ChainName.d.ts.map +1 -1
  409. package/dist/types/react/web/ui/components/TokenIcon.d.ts.map +1 -1
  410. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  411. package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts +90 -0
  412. package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts.map +1 -0
  413. package/dist/types/stories/Bridge/DirectPayment.stories.d.ts +65 -0
  414. package/dist/types/stories/Bridge/DirectPayment.stories.d.ts.map +1 -0
  415. package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts +55 -0
  416. package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts.map +1 -0
  417. package/dist/types/stories/Bridge/FundWallet.stories.d.ts +63 -0
  418. package/dist/types/stories/Bridge/FundWallet.stories.d.ts.map +1 -0
  419. package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts +70 -0
  420. package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts.map +1 -0
  421. package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts +65 -0
  422. package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts.map +1 -0
  423. package/dist/types/stories/Bridge/StepRunner.stories.d.ts +61 -0
  424. package/dist/types/stories/Bridge/StepRunner.stories.d.ts.map +1 -0
  425. package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts +58 -0
  426. package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts.map +1 -0
  427. package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts +55 -0
  428. package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts.map +1 -0
  429. package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts +39 -0
  430. package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts.map +1 -0
  431. package/dist/types/stories/Bridge/fixtures.d.ts +37 -0
  432. package/dist/types/stories/Bridge/fixtures.d.ts.map +1 -0
  433. package/dist/types/stories/TokenBalanceRow.stories.d.ts +53 -0
  434. package/dist/types/stories/TokenBalanceRow.stories.d.ts.map +1 -0
  435. package/dist/types/stories/WalletRow.stories.d.ts +63 -0
  436. package/dist/types/stories/WalletRow.stories.d.ts.map +1 -0
  437. package/dist/types/stories/utils.d.ts +5 -0
  438. package/dist/types/stories/utils.d.ts.map +1 -1
  439. package/dist/types/version.d.ts +1 -1
  440. package/dist/types/version.d.ts.map +1 -1
  441. package/package.json +2 -1
  442. package/src/bridge/Routes.ts +5 -0
  443. package/src/bridge/Token.ts +82 -1
  444. package/src/bridge/types/BridgeAction.ts +1 -1
  445. package/src/bridge/types/Errors.ts +11 -0
  446. package/src/exports/react.ts +16 -0
  447. package/src/pay/buyWithFiat/getQuote.ts +2 -2
  448. package/src/pay/convert/cryptoToFiat.ts +4 -4
  449. package/src/pay/convert/fiatToCrypto.ts +4 -4
  450. package/src/pay/convert/get-token.ts +17 -4
  451. package/src/pay/utils/commonTypes.ts +1 -1
  452. package/src/react/components.md +134 -0
  453. package/src/react/core/adapters/.keep +2 -0
  454. package/src/react/core/adapters/WindowAdapter.ts +13 -0
  455. package/src/react/core/errors/.keep +2 -0
  456. package/src/react/core/errors/mapBridgeError.test.ts +98 -0
  457. package/src/react/core/errors/mapBridgeError.ts +25 -0
  458. package/src/react/core/hooks/connection/ConnectButtonProps.ts +42 -37
  459. package/src/react/core/hooks/others/useChainQuery.ts +1 -1
  460. package/src/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.ts +100 -0
  461. package/src/react/core/hooks/transaction/useSendTransaction.ts +1 -1
  462. package/src/react/core/hooks/useBridgeError.test.ts +172 -0
  463. package/src/react/core/hooks/useBridgeError.ts +149 -0
  464. package/src/react/core/hooks/useBridgePrepare.test.ts +161 -0
  465. package/src/react/core/hooks/useBridgePrepare.ts +133 -0
  466. package/src/react/core/hooks/useBridgeQuote.ts +67 -0
  467. package/src/react/core/hooks/useBridgeRoutes.test.ts +137 -0
  468. package/src/react/core/hooks/useBridgeRoutes.ts +75 -0
  469. package/src/react/core/hooks/usePaymentMethods.test.ts +336 -0
  470. package/src/react/core/hooks/usePaymentMethods.ts +203 -0
  471. package/src/react/core/hooks/useStepExecutor.ts +606 -0
  472. package/src/react/core/hooks/useTransactionDetails.ts +177 -0
  473. package/src/react/core/hooks/wallets/useAutoConnectCore.test.tsx +1 -57
  474. package/src/react/core/machines/.keep +2 -0
  475. package/src/react/core/machines/paymentMachine.test.ts +691 -0
  476. package/src/react/core/machines/paymentMachine.ts +290 -0
  477. package/src/react/core/types/.keep +2 -0
  478. package/src/react/core/utils/wallet.test.ts +77 -0
  479. package/src/react/native/flows/.keep +2 -0
  480. package/src/react/web/adapters/WindowAdapter.ts +23 -0
  481. package/src/react/web/adapters/adapters.test.ts +38 -0
  482. package/src/react/web/flows/.keep +2 -0
  483. package/src/react/web/hooks/transaction/useSendTransaction.tsx +5 -0
  484. package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +357 -0
  485. package/src/react/web/ui/Bridge/BuyWidget.tsx +494 -0
  486. package/src/react/web/ui/Bridge/CheckoutWidget.tsx +484 -0
  487. package/src/react/web/ui/Bridge/DirectPayment.tsx +234 -0
  488. package/src/react/web/ui/Bridge/ErrorBanner.tsx +86 -0
  489. package/src/react/web/ui/Bridge/FundWallet.tsx +341 -0
  490. package/src/react/web/ui/Bridge/QuoteLoader.tsx +219 -0
  491. package/src/react/web/ui/Bridge/StepRunner.tsx +417 -0
  492. package/src/react/web/ui/Bridge/TransactionPayment.tsx +403 -0
  493. package/src/react/web/ui/Bridge/TransactionWidget.tsx +502 -0
  494. package/src/react/web/ui/Bridge/UnsupportedTokenScreen.tsx +84 -0
  495. package/src/react/web/ui/Bridge/common/TokenAndChain.tsx +203 -0
  496. package/src/react/web/ui/Bridge/common/TokenBalanceRow.tsx +112 -0
  497. package/src/react/web/ui/Bridge/common/WithHeader.tsx +65 -0
  498. package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +318 -0
  499. package/src/react/web/ui/Bridge/payment-details/PaymentOverview.tsx +301 -0
  500. package/src/react/web/ui/Bridge/payment-selection/FiatProviderSelection.tsx +186 -0
  501. package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +268 -0
  502. package/src/react/web/ui/Bridge/payment-selection/TokenSelection.tsx +282 -0
  503. package/src/react/web/ui/Bridge/payment-selection/WalletFiatSelection.tsx +172 -0
  504. package/src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx +392 -0
  505. package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +155 -0
  506. package/src/react/web/ui/ConnectWallet/Details.test.tsx +2 -2
  507. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +2 -2
  508. package/src/react/web/ui/ConnectWallet/constants.ts +1 -1
  509. package/src/react/web/ui/ConnectWallet/icons/CreditCardIcon.tsx +24 -0
  510. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +5 -2
  511. package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +3 -1
  512. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +8 -0
  513. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +3 -2
  514. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +7 -1
  515. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.tsx +1 -0
  516. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +7 -3
  517. package/src/react/web/ui/ConnectWallet/screens/formatTokenBalance.ts +22 -0
  518. package/src/react/web/ui/PayEmbed.tsx +2 -0
  519. package/src/react/web/ui/TransactionButton/DepositScreen.tsx +10 -5
  520. package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +78 -25
  521. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +15 -9
  522. package/src/react/web/ui/components/ChainName.tsx +4 -2
  523. package/src/react/web/ui/components/TokenIcon.tsx +7 -4
  524. package/src/react/web/ui/components/buttons.tsx +1 -5
  525. package/src/stories/Bridge/BridgeOrchestrator.stories.tsx +267 -0
  526. package/src/stories/Bridge/DirectPayment.stories.tsx +225 -0
  527. package/src/stories/Bridge/ErrorBanner.stories.tsx +184 -0
  528. package/src/stories/Bridge/FundWallet.stories.tsx +196 -0
  529. package/src/stories/Bridge/PaymentDetails.stories.tsx +501 -0
  530. package/src/stories/Bridge/PaymentSelection.stories.tsx +177 -0
  531. package/src/stories/Bridge/StepRunner.stories.tsx +109 -0
  532. package/src/stories/Bridge/SuccessScreen.stories.tsx +217 -0
  533. package/src/stories/Bridge/TransactionPayment.stories.tsx +170 -0
  534. package/src/stories/Bridge/UnsupportedTokenScreen.stories.tsx +119 -0
  535. package/src/stories/Bridge/fixtures.ts +802 -0
  536. package/src/stories/TokenBalanceRow.stories.tsx +169 -0
  537. package/src/stories/WalletRow.stories.tsx +166 -0
  538. package/src/stories/utils.tsx +35 -0
  539. package/src/version.ts +1 -1
  540. package/src/wallets/connection/autoConnectCore.test.ts +0 -53
@@ -11,14 +11,16 @@ import { Text } from "./text.js";
11
11
  export const ChainName: React.FC<{
12
12
  chain: Chain;
13
13
  size: "xs" | "sm" | "md" | "lg";
14
+ color?: "primaryText" | "secondaryText";
14
15
  client: ThirdwebClient;
15
16
  short?: boolean;
17
+ style?: React.CSSProperties;
16
18
  }> = (props) => {
17
19
  const { name } = useChainName(props.chain);
18
20
 
19
21
  if (name) {
20
22
  return (
21
- <Text size={props.size}>
23
+ <Text size={props.size} color={props.color} style={props.style}>
22
24
  {props.short ? shorterChainName(name) : name}
23
25
  </Text>
24
26
  );
@@ -27,7 +29,7 @@ export const ChainName: React.FC<{
27
29
  return <Skeleton width="50px" height={fontSize[props.size]} />;
28
30
  };
29
31
 
30
- function shorterChainName(name: string) {
32
+ export function shorterChainName(name: string) {
31
33
  const split = name.split(" ");
32
34
  const wordsToRemove = new Set(["mainnet", "testnet", "chain"]);
33
35
  return split
@@ -4,7 +4,7 @@ import type { Chain } from "../../../../chains/types.js";
4
4
  import type { ThirdwebClient } from "../../../../client/client.js";
5
5
  import { NATIVE_TOKEN_ADDRESS } from "../../../../constants/addresses.js";
6
6
  import { iconSize } from "../../../core/design-system/index.js";
7
- import { useChainIconUrl } from "../../../core/hooks/others/useChainQuery.js";
7
+ import { useChainMetadata } from "../../../core/hooks/others/useChainQuery.js";
8
8
  import { genericTokenIcon } from "../../../core/utils/walletIcon.js";
9
9
  import { CoinsIcon } from "../ConnectWallet/icons/CoinsIcon.js";
10
10
  import {
@@ -27,17 +27,20 @@ export function TokenIcon(props: {
27
27
  size: keyof typeof iconSize;
28
28
  client: ThirdwebClient;
29
29
  }) {
30
- const chainIconQuery = useChainIconUrl(props.chain);
30
+ const chainMeta = useChainMetadata(props.chain).data;
31
31
 
32
32
  const tokenImage = useMemo(() => {
33
33
  if (
34
34
  isNativeToken(props.token) ||
35
35
  props.token.address === NATIVE_TOKEN_ADDRESS
36
36
  ) {
37
- return chainIconQuery.url;
37
+ if (chainMeta?.nativeCurrency.symbol === "ETH") {
38
+ return "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png"; // ETH icon
39
+ }
40
+ return chainMeta?.icon?.url;
38
41
  }
39
42
  return props.token.icon;
40
- }, [props.token, chainIconQuery.url]);
43
+ }, [props.token, chainMeta?.icon?.url, chainMeta?.nativeCurrency.symbol]);
41
44
 
42
45
  return tokenImage ? (
43
46
  <Img
@@ -93,7 +93,6 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
93
93
  border: `1px solid ${theme.colors.borderColor}`,
94
94
  "&:hover": {
95
95
  borderColor: theme.colors.accentText,
96
- transform: "scale(1.01)",
97
96
  },
98
97
  '&[aria-selected="true"]': {
99
98
  borderColor: theme.colors.accentText,
@@ -106,7 +105,6 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
106
105
  border: "1px solid transparent",
107
106
  "&:hover": {
108
107
  borderColor: theme.colors.accentText,
109
- transform: "scale(1.01)",
110
108
  },
111
109
  };
112
110
  }
@@ -114,7 +112,7 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
114
112
  if (props.variant === "accent") {
115
113
  return {
116
114
  "&:hover": {
117
- transform: "scale(1.01)",
115
+ opacity: 0.8,
118
116
  },
119
117
  };
120
118
  }
@@ -123,7 +121,6 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
123
121
  return {
124
122
  "&:hover": {
125
123
  background: theme.colors.secondaryButtonHoverBg,
126
- transform: "scale(1.01)",
127
124
  },
128
125
  };
129
126
  }
@@ -133,7 +130,6 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
133
130
  padding: 0,
134
131
  "&:hover": {
135
132
  color: theme.colors.primaryText,
136
- transform: "scale(1.01)",
137
133
  },
138
134
  };
139
135
  }
@@ -0,0 +1,267 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import {} from "../../react/core/design-system/CustomThemeProvider.js";
3
+ import type { Theme } from "../../react/core/design-system/index.js";
4
+ import {
5
+ BridgeOrchestrator,
6
+ type BridgeOrchestratorProps,
7
+ } from "../../react/web/ui/Bridge/BridgeOrchestrator.js";
8
+ import { ModalThemeWrapper, storyClient } from "../utils.js";
9
+ import {
10
+ DIRECT_PAYMENT_UI_OPTIONS,
11
+ FUND_WALLET_UI_OPTIONS,
12
+ TRANSACTION_UI_OPTIONS,
13
+ } from "./fixtures.js";
14
+
15
+ /**
16
+ * BridgeOrchestrator is the main orchestrator component for the Bridge payment flow.
17
+ * It manages the complete state machine navigation between different screens and
18
+ * handles the coordination of payment methods, routes, and execution.
19
+ */
20
+
21
+ // Props interface for the wrapper component
22
+ interface BridgeOrchestratorWithThemeProps extends BridgeOrchestratorProps {
23
+ theme: "light" | "dark" | Theme;
24
+ }
25
+
26
+ // Wrapper component to provide theme context
27
+ const BridgeOrchestratorWithTheme = (
28
+ props: BridgeOrchestratorWithThemeProps,
29
+ ) => {
30
+ const { theme, ...componentProps } = props;
31
+ return (
32
+ <ModalThemeWrapper theme={theme}>
33
+ <BridgeOrchestrator {...componentProps} />
34
+ </ModalThemeWrapper>
35
+ );
36
+ };
37
+
38
+ const meta = {
39
+ title: "Bridge/BridgeOrchestrator",
40
+ component: BridgeOrchestratorWithTheme,
41
+ parameters: {
42
+ layout: "fullscreen",
43
+ docs: {
44
+ description: {
45
+ component:
46
+ "**BridgeOrchestrator** is the main orchestrator component that manages the complete Bridge payment flow using XState FSM.\n\n" +
47
+ "## Features\n" +
48
+ "- **State Machine Navigation**: Uses XState v5 for predictable state transitions\n" +
49
+ "- **Payment Method Selection**: Supports wallet and fiat payment methods\n" +
50
+ "- **Route Preview**: Shows detailed transaction steps and fees\n" +
51
+ "- **Step Execution**: Real-time progress tracking\n" +
52
+ "- **Error Handling**: Comprehensive error states with retry functionality\n" +
53
+ "- **Theme Support**: Works with both light and dark themes\n\n" +
54
+ "## State Flow\n" +
55
+ "1. **Resolve Requirements** → 2. **Method Selection** → 3. **Quote** → 4. **Preview** → 5. **Prepare** → 6. **Execute** → 7. **Success**\n\n" +
56
+ "Each state can transition to the **Error** state, which provides retry functionality.",
57
+ },
58
+ },
59
+ },
60
+ tags: ["autodocs"],
61
+ args: {
62
+ client: storyClient,
63
+ uiOptions: FUND_WALLET_UI_OPTIONS.usdcDefault,
64
+ onComplete: () => {},
65
+ onError: (error) => console.error("Bridge error:", error),
66
+ onCancel: () => {},
67
+ theme: "dark",
68
+ },
69
+ argTypes: {
70
+ theme: {
71
+ control: "select",
72
+ options: ["light", "dark"],
73
+ description: "Theme for the component",
74
+ },
75
+ presetOptions: {
76
+ control: "object",
77
+ description: "Quick buy options",
78
+ },
79
+ onComplete: { action: "flow completed" },
80
+ onError: { action: "error occurred" },
81
+ onCancel: { action: "flow cancelled" },
82
+ },
83
+ } satisfies Meta<typeof BridgeOrchestratorWithTheme>;
84
+
85
+ export default meta;
86
+ type Story = StoryObj<typeof meta>;
87
+
88
+ /**
89
+ * Default BridgeOrchestrator in light theme.
90
+ */
91
+ export const Light: Story = {
92
+ args: {
93
+ theme: "light",
94
+ uiOptions: FUND_WALLET_UI_OPTIONS.usdcDefault,
95
+ presetOptions: undefined,
96
+ onComplete: undefined,
97
+ onError: undefined,
98
+ onCancel: undefined,
99
+ receiverAddress: undefined,
100
+ connectOptions: undefined,
101
+ connectLocale: undefined,
102
+ purchaseData: undefined,
103
+ paymentLinkId: undefined,
104
+ },
105
+ parameters: {
106
+ backgrounds: { default: "light" },
107
+ },
108
+ };
109
+
110
+ /**
111
+ * BridgeOrchestrator in dark theme.
112
+ */
113
+ export const Dark: Story = {
114
+ args: {
115
+ theme: "dark",
116
+ uiOptions: FUND_WALLET_UI_OPTIONS.usdcDefault,
117
+ presetOptions: undefined,
118
+ onComplete: undefined,
119
+ onError: undefined,
120
+ onCancel: undefined,
121
+ receiverAddress: undefined,
122
+ connectOptions: undefined,
123
+ connectLocale: undefined,
124
+ purchaseData: undefined,
125
+ paymentLinkId: undefined,
126
+ },
127
+ parameters: {
128
+ backgrounds: { default: "dark" },
129
+ },
130
+ };
131
+
132
+ /**
133
+ * Direct payment mode for purchasing a specific product/service.
134
+ */
135
+ export const DirectPayment: Story = {
136
+ args: {
137
+ theme: "dark",
138
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.digitalArt,
139
+ presetOptions: undefined,
140
+ onComplete: undefined,
141
+ onError: undefined,
142
+ onCancel: undefined,
143
+ receiverAddress: undefined,
144
+ connectOptions: undefined,
145
+ connectLocale: undefined,
146
+ purchaseData: undefined,
147
+ paymentLinkId: undefined,
148
+ },
149
+ parameters: {
150
+ backgrounds: { default: "dark" },
151
+ docs: {
152
+ description: {
153
+ story:
154
+ "Direct payment mode shows a product purchase interface with the item image, price, seller address, and network information. The user can connect their wallet and proceed with the payment.",
155
+ },
156
+ },
157
+ },
158
+ };
159
+
160
+ /**
161
+ * Direct payment mode in light theme.
162
+ */
163
+ export const DirectPaymentLight: Story = {
164
+ args: {
165
+ theme: "light",
166
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.concertTicket,
167
+ presetOptions: undefined,
168
+ onComplete: undefined,
169
+ onError: undefined,
170
+ onCancel: undefined,
171
+ receiverAddress: undefined,
172
+ connectOptions: undefined,
173
+ connectLocale: undefined,
174
+ purchaseData: undefined,
175
+ paymentLinkId: undefined,
176
+ },
177
+ parameters: {
178
+ backgrounds: { default: "light" },
179
+ docs: {
180
+ description: {
181
+ story:
182
+ "Light theme version of direct payment mode, showing a different product example with USDC payment.",
183
+ },
184
+ },
185
+ },
186
+ };
187
+
188
+ /**
189
+ * Transaction mode showing a complex contract interaction.
190
+ */
191
+ export const Transaction: Story = {
192
+ args: {
193
+ theme: "dark",
194
+ uiOptions: TRANSACTION_UI_OPTIONS.contractInteraction,
195
+ presetOptions: undefined,
196
+ onComplete: undefined,
197
+ onError: undefined,
198
+ onCancel: undefined,
199
+ receiverAddress: undefined,
200
+ connectOptions: undefined,
201
+ connectLocale: undefined,
202
+ purchaseData: undefined,
203
+ paymentLinkId: undefined,
204
+ },
205
+ parameters: {
206
+ backgrounds: { default: "dark" },
207
+ docs: {
208
+ description: {
209
+ story:
210
+ "Transaction mode showing a complex contract interaction (claimTo function) with function name extraction from contract ABI and detailed cost breakdown.",
211
+ },
212
+ },
213
+ },
214
+ };
215
+
216
+ /**
217
+ * Transaction mode in light theme showing an ERC20 token transfer.
218
+ */
219
+ export const TransactionLight: Story = {
220
+ args: {
221
+ theme: "light",
222
+ uiOptions: TRANSACTION_UI_OPTIONS.erc20Transfer,
223
+ presetOptions: undefined,
224
+ onComplete: undefined,
225
+ onError: undefined,
226
+ onCancel: undefined,
227
+ receiverAddress: undefined,
228
+ connectOptions: undefined,
229
+ connectLocale: undefined,
230
+ purchaseData: undefined,
231
+ paymentLinkId: undefined,
232
+ },
233
+ parameters: {
234
+ backgrounds: { default: "light" },
235
+ docs: {
236
+ description: {
237
+ story:
238
+ "Light theme version of transaction mode showing an ERC20 token transfer with proper token amount formatting and USD conversion.",
239
+ },
240
+ },
241
+ },
242
+ };
243
+
244
+ export const CustompresetOptions: Story = {
245
+ args: {
246
+ theme: "dark",
247
+ uiOptions: FUND_WALLET_UI_OPTIONS.ethDefault,
248
+ presetOptions: [1, 2, 3],
249
+ onComplete: undefined,
250
+ onError: undefined,
251
+ onCancel: undefined,
252
+ receiverAddress: undefined,
253
+ connectOptions: undefined,
254
+ connectLocale: undefined,
255
+ purchaseData: undefined,
256
+ paymentLinkId: undefined,
257
+ },
258
+ parameters: {
259
+ backgrounds: { default: "dark" },
260
+ docs: {
261
+ description: {
262
+ story:
263
+ "Fund wallet mode with custom quick options showing ETH with [1, 2, 3] preset amounts.",
264
+ },
265
+ },
266
+ },
267
+ };
@@ -0,0 +1,225 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import type { Theme } from "../../react/core/design-system/index.js";
3
+ import {
4
+ DirectPayment,
5
+ type DirectPaymentProps,
6
+ } from "../../react/web/ui/Bridge/DirectPayment.js";
7
+ import { ModalThemeWrapper, storyClient } from "../utils.js";
8
+ import { DIRECT_PAYMENT_UI_OPTIONS } from "./fixtures.js";
9
+
10
+ // Props interface for the wrapper component
11
+ interface DirectPaymentWithThemeProps extends DirectPaymentProps {
12
+ theme: "light" | "dark" | Theme;
13
+ }
14
+
15
+ // Wrapper component to provide theme context
16
+ const DirectPaymentWithTheme = (props: DirectPaymentWithThemeProps) => {
17
+ const { theme, ...componentProps } = props;
18
+ return (
19
+ <ModalThemeWrapper theme={theme}>
20
+ <DirectPayment {...componentProps} />
21
+ </ModalThemeWrapper>
22
+ );
23
+ };
24
+
25
+ const meta = {
26
+ title: "Bridge/DirectPayment",
27
+ component: DirectPaymentWithTheme,
28
+ parameters: {
29
+ layout: "centered",
30
+ docs: {
31
+ description: {
32
+ component:
33
+ "DirectPayment component displays a product/service purchase interface with payment details.\n\n" +
34
+ "## Features\n" +
35
+ "- **Product Display**: Shows product name, image, and pricing\n" +
36
+ "- **Payment Details**: Token amount, network information, and seller address\n" +
37
+ "- **Wallet Integration**: Connect button or continue with active wallet\n" +
38
+ "- **Responsive Design**: Adapts to different screen sizes and themes\n" +
39
+ "- **Fee Configuration**: Support for sender or receiver paying fees\n\n" +
40
+ "This component is used in the 'direct_payment' mode of BridgeOrchestrator for purchasing specific items or services. It now accepts uiOptions directly to configure payment info and metadata.",
41
+ },
42
+ },
43
+ },
44
+ tags: ["autodocs"],
45
+ args: {
46
+ client: storyClient,
47
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.digitalArt,
48
+ onContinue: (_amount, _token, _receiverAddress) => {},
49
+ theme: "dark",
50
+ },
51
+ argTypes: {
52
+ theme: {
53
+ control: "select",
54
+ options: ["light", "dark"],
55
+ description: "Theme for the component",
56
+ },
57
+ onContinue: {
58
+ action: "continue clicked",
59
+ description: "Called when user continues with the payment",
60
+ },
61
+ uiOptions: {
62
+ description:
63
+ "UI configuration for direct payment mode including payment info and metadata",
64
+ },
65
+ },
66
+ } satisfies Meta<typeof DirectPaymentWithTheme>;
67
+
68
+ export default meta;
69
+ type Story = StoryObj<typeof meta>;
70
+
71
+ export const DigitalArt: Story = {
72
+ args: {
73
+ theme: "dark",
74
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.digitalArt,
75
+ },
76
+ parameters: {
77
+ backgrounds: { default: "dark" },
78
+ docs: {
79
+ description: {
80
+ story:
81
+ "Example of purchasing a digital art NFT with ETH payment. Shows the product image, pricing in ETH, and seller information with sender paying fees.",
82
+ },
83
+ },
84
+ },
85
+ };
86
+
87
+ export const DigitalArtLight: Story = {
88
+ args: {
89
+ theme: "light",
90
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.digitalArt,
91
+ },
92
+ parameters: {
93
+ backgrounds: { default: "light" },
94
+ docs: {
95
+ description: {
96
+ story: "Light theme version of the digital art purchase interface.",
97
+ },
98
+ },
99
+ },
100
+ };
101
+
102
+ export const ConcertTicket: Story = {
103
+ args: {
104
+ theme: "dark",
105
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.concertTicket,
106
+ },
107
+ parameters: {
108
+ backgrounds: { default: "dark" },
109
+ docs: {
110
+ description: {
111
+ story:
112
+ "Example of purchasing a concert ticket with USDC payment. Shows different product type, stable token pricing, and receiver paying fees.",
113
+ },
114
+ },
115
+ },
116
+ };
117
+
118
+ export const ConcertTicketLight: Story = {
119
+ args: {
120
+ theme: "light",
121
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.concertTicket,
122
+ },
123
+ parameters: {
124
+ backgrounds: { default: "light" },
125
+ docs: {
126
+ description: {
127
+ story: "Light theme version of the concert ticket purchase.",
128
+ },
129
+ },
130
+ },
131
+ };
132
+
133
+ export const SubscriptionService: Story = {
134
+ args: {
135
+ theme: "dark",
136
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.subscription,
137
+ },
138
+ parameters: {
139
+ backgrounds: { default: "dark" },
140
+ docs: {
141
+ description: {
142
+ story:
143
+ "Example of a subscription service payment with detailed description. Shows how the component works for recurring service payments with comprehensive product information.",
144
+ },
145
+ },
146
+ },
147
+ };
148
+
149
+ export const SubscriptionServiceLight: Story = {
150
+ args: {
151
+ theme: "light",
152
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.subscription,
153
+ },
154
+ parameters: {
155
+ backgrounds: { default: "light" },
156
+ docs: {
157
+ description: {
158
+ story:
159
+ "Light theme version of subscription service payment with full description text.",
160
+ },
161
+ },
162
+ },
163
+ };
164
+
165
+ export const PhysicalProduct: Story = {
166
+ args: {
167
+ theme: "dark",
168
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.sneakers,
169
+ },
170
+ parameters: {
171
+ backgrounds: { default: "dark" },
172
+ docs: {
173
+ description: {
174
+ story:
175
+ "Example of purchasing physical products with crypto payments. Shows how the component adapts to different product types with ETH payment.",
176
+ },
177
+ },
178
+ },
179
+ };
180
+
181
+ export const PhysicalProductLight: Story = {
182
+ args: {
183
+ theme: "light",
184
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.sneakers,
185
+ },
186
+ parameters: {
187
+ backgrounds: { default: "light" },
188
+ docs: {
189
+ description: {
190
+ story: "Light theme version of physical product purchase.",
191
+ },
192
+ },
193
+ },
194
+ };
195
+
196
+ export const NoImage: Story = {
197
+ args: {
198
+ theme: "dark",
199
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.credits,
200
+ },
201
+ parameters: {
202
+ backgrounds: { default: "dark" },
203
+ docs: {
204
+ description: {
205
+ story:
206
+ "Example of purchasing digital credits without product image. Shows how the component handles text-only products with description fallback.",
207
+ },
208
+ },
209
+ },
210
+ };
211
+
212
+ export const NoImageLight: Story = {
213
+ args: {
214
+ theme: "light",
215
+ uiOptions: DIRECT_PAYMENT_UI_OPTIONS.credits,
216
+ },
217
+ parameters: {
218
+ backgrounds: { default: "light" },
219
+ docs: {
220
+ description: {
221
+ story: "Light theme version of credits purchase without image.",
222
+ },
223
+ },
224
+ },
225
+ };