thirdweb 5.105.49-nightly-04862de9e4e11724720fa40a0ed4713ff2bfdad5-20250917000323 → 5.106.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 (522) 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 +251 -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/esm/exports/react.js +1 -0
  159. package/dist/esm/exports/react.js.map +1 -1
  160. package/dist/esm/pay/convert/type.js +26 -43
  161. package/dist/esm/pay/convert/type.js.map +1 -1
  162. package/dist/esm/react/core/design-system/index.js +3 -1
  163. package/dist/esm/react/core/design-system/index.js.map +1 -1
  164. package/dist/esm/react/core/hooks/usePaymentMethods.js +4 -1
  165. package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -1
  166. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +1 -2
  167. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  168. package/dist/esm/react/core/machines/paymentMachine.js.map +1 -1
  169. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js +1 -9
  170. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  171. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +7 -5
  172. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
  173. package/dist/esm/react/web/ui/Bridge/DirectPayment.js +2 -2
  174. package/dist/esm/react/web/ui/Bridge/ErrorBanner.js +1 -1
  175. package/dist/esm/react/web/ui/Bridge/FundWallet.js +7 -6
  176. package/dist/esm/react/web/ui/Bridge/FundWallet.js.map +1 -1
  177. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +5 -3
  178. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
  179. package/dist/esm/react/web/ui/Bridge/StepRunner.js +3 -3
  180. package/dist/esm/react/web/ui/Bridge/StepRunner.js.map +1 -1
  181. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +2 -2
  182. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js +2 -2
  183. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -1
  184. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js +3 -3
  185. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -1
  186. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js +2 -1
  187. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js.map +1 -1
  188. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +28 -3
  189. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
  190. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +16 -22
  191. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -1
  192. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +12 -4
  193. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
  194. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +3 -3
  195. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -1
  196. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js +1 -1
  197. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -1
  198. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +9 -8
  199. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
  200. package/dist/esm/react/web/ui/Bridge/swap-widget/SearchInput.js +19 -0
  201. package/dist/esm/react/web/ui/Bridge/swap-widget/SearchInput.js.map +1 -0
  202. package/dist/esm/react/web/ui/Bridge/swap-widget/SelectChainButton.js +17 -0
  203. package/dist/esm/react/web/ui/Bridge/swap-widget/SelectChainButton.js.map +1 -0
  204. package/dist/esm/react/web/ui/Bridge/swap-widget/SwapWidget.js +247 -0
  205. package/dist/esm/react/web/ui/Bridge/swap-widget/SwapWidget.js.map +1 -0
  206. package/dist/esm/react/web/ui/Bridge/swap-widget/common.js +14 -0
  207. package/dist/esm/react/web/ui/Bridge/swap-widget/common.js.map +1 -0
  208. package/dist/esm/react/web/ui/Bridge/swap-widget/hooks.js +19 -0
  209. package/dist/esm/react/web/ui/Bridge/swap-widget/hooks.js.map +1 -0
  210. package/dist/esm/react/web/ui/Bridge/swap-widget/select-chain.js +62 -0
  211. package/dist/esm/react/web/ui/Bridge/swap-widget/select-chain.js.map +1 -0
  212. package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js +205 -0
  213. package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -0
  214. package/dist/esm/react/web/ui/Bridge/swap-widget/storage.js +49 -0
  215. package/dist/esm/react/web/ui/Bridge/swap-widget/storage.js.map +1 -0
  216. package/dist/esm/react/web/ui/Bridge/swap-widget/swap-ui.js +447 -0
  217. package/dist/esm/react/web/ui/Bridge/swap-widget/swap-ui.js.map +1 -0
  218. package/dist/esm/react/web/ui/Bridge/swap-widget/types.js +2 -0
  219. package/dist/esm/react/web/ui/Bridge/swap-widget/types.js.map +1 -0
  220. package/dist/esm/react/web/ui/Bridge/swap-widget/use-bridge-chains.js +13 -0
  221. package/dist/esm/react/web/ui/Bridge/swap-widget/use-bridge-chains.js.map +1 -0
  222. package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js +64 -0
  223. package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -0
  224. package/dist/esm/react/web/ui/Bridge/swap-widget/utils.js +4 -0
  225. package/dist/esm/react/web/ui/Bridge/swap-widget/utils.js.map +1 -0
  226. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +14 -1
  227. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  228. package/dist/esm/react/web/ui/ConnectWallet/Details.js +11 -11
  229. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  230. package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +2 -2
  231. package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
  232. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +15 -1
  233. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  234. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModal.js +1 -1
  235. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModal.js.map +1 -1
  236. package/dist/esm/react/web/ui/ConnectWallet/NetworkSelector.js +2 -2
  237. package/dist/esm/react/web/ui/ConnectWallet/NetworkSelector.js.map +1 -1
  238. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js +1 -1
  239. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  240. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +8 -9
  241. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  242. package/dist/esm/react/web/ui/ConnectWallet/WalletTypeRowButton.js +1 -1
  243. package/dist/esm/react/web/ui/ConnectWallet/WalletTypeRowButton.js.map +1 -1
  244. package/dist/esm/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.js +5 -0
  245. package/dist/esm/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.js.map +1 -0
  246. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletDotIcon.js +8 -0
  247. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletDotIcon.js.map +1 -0
  248. package/dist/esm/react/web/ui/ConnectWallet/screens/ReceiveFunds.js +1 -1
  249. package/dist/esm/react/web/ui/ConnectWallet/screens/ReceiveFunds.js.map +1 -1
  250. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js +7 -7
  251. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  252. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +3 -3
  253. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  254. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js +2 -2
  255. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  256. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +1 -1
  257. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  258. package/dist/esm/react/web/ui/components/DynamicHeight.js +1 -1
  259. package/dist/esm/react/web/ui/components/DynamicHeight.js.map +1 -1
  260. package/dist/esm/react/web/ui/components/Img.js +43 -8
  261. package/dist/esm/react/web/ui/components/Img.js.map +1 -1
  262. package/dist/esm/react/web/ui/components/Modal.js +10 -10
  263. package/dist/esm/react/web/ui/components/Modal.js.map +1 -1
  264. package/dist/esm/react/web/ui/components/OTPInput.js +1 -1
  265. package/dist/esm/react/web/ui/components/OTPInput.js.map +1 -1
  266. package/dist/esm/react/web/ui/components/Skeleton.js +1 -0
  267. package/dist/esm/react/web/ui/components/Skeleton.js.map +1 -1
  268. package/dist/esm/react/web/ui/components/Spinner.js +2 -1
  269. package/dist/esm/react/web/ui/components/Spinner.js.map +1 -1
  270. package/dist/esm/react/web/ui/components/basic.js +11 -5
  271. package/dist/esm/react/web/ui/components/basic.js.map +1 -1
  272. package/dist/esm/react/web/ui/components/buttons.js +9 -0
  273. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  274. package/dist/esm/react/web/ui/components/formElements.js +1 -1
  275. package/dist/esm/react/web/ui/components/formElements.js.map +1 -1
  276. package/dist/esm/react/web/ui/components/modalElements.js +1 -1
  277. package/dist/esm/react/web/ui/components/modalElements.js.map +1 -1
  278. package/dist/esm/react/web/ui/components/text.js +2 -1
  279. package/dist/esm/react/web/ui/components/text.js.map +1 -1
  280. package/dist/esm/react/web/utils/cls.js +14 -0
  281. package/dist/esm/react/web/utils/cls.js.map +1 -0
  282. package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js +1 -1
  283. package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
  284. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +9 -9
  285. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  286. package/dist/esm/react/web/wallets/shared/ConnectingScreen.js +3 -3
  287. package/dist/esm/react/web/wallets/shared/ConnectingScreen.js.map +1 -1
  288. package/dist/esm/react/web/wallets/shared/GuestLogin.js +1 -1
  289. package/dist/esm/react/web/wallets/shared/GuestLogin.js.map +1 -1
  290. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +5 -5
  291. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  292. package/dist/esm/react/web/wallets/shared/ScanScreen.js +5 -5
  293. package/dist/esm/react/web/wallets/shared/ScanScreen.js.map +1 -1
  294. package/dist/esm/react/web/wallets/shared/SocialLogin.js +1 -1
  295. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  296. package/dist/esm/stories/Bridge/Swap/SelectChain.stories.js +21 -0
  297. package/dist/esm/stories/Bridge/Swap/SelectChain.stories.js.map +1 -0
  298. package/dist/esm/stories/Bridge/Swap/SwapWidget.Prefill.stories.js +74 -0
  299. package/dist/esm/stories/Bridge/Swap/SwapWidget.Prefill.stories.js.map +1 -0
  300. package/dist/esm/stories/Bridge/Swap/SwapWidget.stories.js +45 -0
  301. package/dist/esm/stories/Bridge/Swap/SwapWidget.stories.js.map +1 -0
  302. package/dist/esm/stories/BuyWidget.stories.js +29 -0
  303. package/dist/esm/stories/BuyWidget.stories.js.map +1 -0
  304. package/dist/esm/stories/ConnectEmbed.stories.js +81 -0
  305. package/dist/esm/stories/ConnectEmbed.stories.js.map +1 -0
  306. package/dist/esm/stories/ConnectWallet/useWalletDetailsModal.stories.js +1 -1
  307. package/dist/esm/version.js +1 -1
  308. package/dist/esm/version.js.map +1 -1
  309. package/dist/esm/wallets/connection/autoConnect.js +0 -9
  310. package/dist/esm/wallets/connection/autoConnect.js.map +1 -1
  311. package/dist/esm/wallets/connection/autoConnectCore.js +8 -2
  312. package/dist/esm/wallets/connection/autoConnectCore.js.map +1 -1
  313. package/dist/esm/wallets/manager/index.js +1 -2
  314. package/dist/esm/wallets/manager/index.js.map +1 -1
  315. package/dist/types/bridge/types/Chain.d.ts +1 -0
  316. package/dist/types/bridge/types/Chain.d.ts.map +1 -1
  317. package/dist/types/exports/react.d.ts +1 -0
  318. package/dist/types/exports/react.d.ts.map +1 -1
  319. package/dist/types/pay/convert/type.d.ts +27 -3
  320. package/dist/types/pay/convert/type.d.ts.map +1 -1
  321. package/dist/types/react/core/design-system/index.d.ts +2 -0
  322. package/dist/types/react/core/design-system/index.d.ts.map +1 -1
  323. package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -1
  324. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts +1 -1
  325. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  326. package/dist/types/react/core/machines/paymentMachine.d.ts +1 -0
  327. package/dist/types/react/core/machines/paymentMachine.d.ts.map +1 -1
  328. package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  329. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -1
  330. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +1 -1
  331. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts.map +1 -1
  332. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +2 -1
  333. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -1
  334. package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts.map +1 -1
  335. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts.map +1 -1
  336. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts +3 -1
  337. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -1
  338. package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts.map +1 -1
  339. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -1
  340. package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts.map +1 -1
  341. package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts.map +1 -1
  342. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -1
  343. package/dist/types/react/web/ui/Bridge/swap-widget/SearchInput.d.ts +6 -0
  344. package/dist/types/react/web/ui/Bridge/swap-widget/SearchInput.d.ts.map +1 -0
  345. package/dist/types/react/web/ui/Bridge/swap-widget/SelectChainButton.d.ts +8 -0
  346. package/dist/types/react/web/ui/Bridge/swap-widget/SelectChainButton.d.ts.map +1 -0
  347. package/dist/types/react/web/ui/Bridge/swap-widget/SwapWidget.d.ts +213 -0
  348. package/dist/types/react/web/ui/Bridge/swap-widget/SwapWidget.d.ts.map +1 -0
  349. package/dist/types/react/web/ui/Bridge/swap-widget/common.d.ts +9 -0
  350. package/dist/types/react/web/ui/Bridge/swap-widget/common.d.ts.map +1 -0
  351. package/dist/types/react/web/ui/Bridge/swap-widget/hooks.d.ts +3 -0
  352. package/dist/types/react/web/ui/Bridge/swap-widget/hooks.d.ts.map +1 -0
  353. package/dist/types/react/web/ui/Bridge/swap-widget/select-chain.d.ts +23 -0
  354. package/dist/types/react/web/ui/Bridge/swap-widget/select-chain.d.ts.map +1 -0
  355. package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts +18 -0
  356. package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts.map +1 -0
  357. package/dist/types/react/web/ui/Bridge/swap-widget/storage.d.ts +46 -0
  358. package/dist/types/react/web/ui/Bridge/swap-widget/storage.d.ts.map +1 -0
  359. package/dist/types/react/web/ui/Bridge/swap-widget/swap-ui.d.ts +40 -0
  360. package/dist/types/react/web/ui/Bridge/swap-widget/swap-ui.d.ts.map +1 -0
  361. package/dist/types/react/web/ui/Bridge/swap-widget/types.d.ts +139 -0
  362. package/dist/types/react/web/ui/Bridge/swap-widget/types.d.ts.map +1 -0
  363. package/dist/types/react/web/ui/Bridge/swap-widget/use-bridge-chains.d.ts +4 -0
  364. package/dist/types/react/web/ui/Bridge/swap-widget/use-bridge-chains.d.ts.map +1 -0
  365. package/dist/types/react/web/ui/Bridge/swap-widget/use-tokens.d.ts +44 -0
  366. package/dist/types/react/web/ui/Bridge/swap-widget/use-tokens.d.ts.map +1 -0
  367. package/dist/types/react/web/ui/Bridge/swap-widget/utils.d.ts +2 -0
  368. package/dist/types/react/web/ui/Bridge/swap-widget/utils.d.ts.map +1 -0
  369. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +13 -0
  370. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
  371. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  372. package/dist/types/react/web/ui/ConnectWallet/Modal/AllWalletsUI.d.ts.map +1 -1
  373. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +13 -0
  374. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  375. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModal.d.ts.map +1 -1
  376. package/dist/types/react/web/ui/ConnectWallet/NetworkSelector.d.ts +1 -0
  377. package/dist/types/react/web/ui/ConnectWallet/NetworkSelector.d.ts.map +1 -1
  378. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts +1 -0
  379. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts.map +1 -1
  380. package/dist/types/react/web/ui/ConnectWallet/WalletSelector.d.ts.map +1 -1
  381. package/dist/types/react/web/ui/ConnectWallet/WalletTypeRowButton.d.ts +1 -0
  382. package/dist/types/react/web/ui/ConnectWallet/WalletTypeRowButton.d.ts.map +1 -1
  383. package/dist/types/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.d.ts +3 -0
  384. package/dist/types/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.d.ts.map +1 -0
  385. package/dist/types/react/web/ui/ConnectWallet/icons/WalletDotIcon.d.ts +6 -0
  386. package/dist/types/react/web/ui/ConnectWallet/icons/WalletDotIcon.d.ts.map +1 -0
  387. package/dist/types/react/web/ui/ConnectWallet/screens/ReceiveFunds.d.ts.map +1 -1
  388. package/dist/types/react/web/ui/ConnectWallet/screens/SendFunds.d.ts.map +1 -1
  389. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts.map +1 -1
  390. package/dist/types/react/web/ui/ConnectWallet/screens/TokenSelector.d.ts.map +1 -1
  391. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  392. package/dist/types/react/web/ui/components/Img.d.ts +3 -0
  393. package/dist/types/react/web/ui/components/Img.d.ts.map +1 -1
  394. package/dist/types/react/web/ui/components/Modal.d.ts +3 -0
  395. package/dist/types/react/web/ui/components/Modal.d.ts.map +1 -1
  396. package/dist/types/react/web/ui/components/Skeleton.d.ts +1 -0
  397. package/dist/types/react/web/ui/components/Skeleton.d.ts.map +1 -1
  398. package/dist/types/react/web/ui/components/Spinner.d.ts +1 -0
  399. package/dist/types/react/web/ui/components/Spinner.d.ts.map +1 -1
  400. package/dist/types/react/web/ui/components/basic.d.ts +6 -0
  401. package/dist/types/react/web/ui/components/basic.d.ts.map +1 -1
  402. package/dist/types/react/web/ui/components/buttons.d.ts +1 -1
  403. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  404. package/dist/types/react/web/ui/components/formElements.d.ts +1 -0
  405. package/dist/types/react/web/ui/components/formElements.d.ts.map +1 -1
  406. package/dist/types/react/web/ui/components/modalElements.d.ts.map +1 -1
  407. package/dist/types/react/web/ui/components/text.d.ts +1 -0
  408. package/dist/types/react/web/ui/components/text.d.ts.map +1 -1
  409. package/dist/types/react/web/utils/cls.d.ts +12 -0
  410. package/dist/types/react/web/utils/cls.d.ts.map +1 -0
  411. package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts +1 -0
  412. package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts.map +1 -1
  413. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  414. package/dist/types/react/web/wallets/shared/ConnectingScreen.d.ts.map +1 -1
  415. package/dist/types/react/web/wallets/shared/GuestLogin.d.ts.map +1 -1
  416. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
  417. package/dist/types/react/web/wallets/shared/ScanScreen.d.ts.map +1 -1
  418. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  419. package/dist/types/stories/Bridge/Swap/SelectChain.stories.d.ts +10 -0
  420. package/dist/types/stories/Bridge/Swap/SelectChain.stories.d.ts.map +1 -0
  421. package/dist/types/stories/Bridge/Swap/SwapWidget.Prefill.stories.d.ts +15 -0
  422. package/dist/types/stories/Bridge/Swap/SwapWidget.Prefill.stories.d.ts.map +1 -0
  423. package/dist/types/stories/Bridge/Swap/SwapWidget.stories.d.ts +10 -0
  424. package/dist/types/stories/Bridge/Swap/SwapWidget.stories.d.ts.map +1 -0
  425. package/dist/types/stories/BuyWidget.stories.d.ts +13 -0
  426. package/dist/types/stories/BuyWidget.stories.d.ts.map +1 -0
  427. package/dist/types/stories/ConnectEmbed.stories.d.ts +12 -0
  428. package/dist/types/stories/ConnectEmbed.stories.d.ts.map +1 -0
  429. package/dist/types/version.d.ts +1 -1
  430. package/dist/types/version.d.ts.map +1 -1
  431. package/dist/types/wallets/connection/autoConnect.d.ts.map +1 -1
  432. package/dist/types/wallets/connection/autoConnectCore.d.ts +0 -1
  433. package/dist/types/wallets/connection/autoConnectCore.d.ts.map +1 -1
  434. package/dist/types/wallets/manager/index.d.ts.map +1 -1
  435. package/package.json +2 -1
  436. package/src/bridge/types/Chain.ts +2 -0
  437. package/src/exports/react.ts +4 -0
  438. package/src/pay/convert/type.ts +27 -44
  439. package/src/react/core/design-system/index.ts +3 -1
  440. package/src/react/core/hooks/usePaymentMethods.ts +4 -1
  441. package/src/react/core/hooks/wallets/useAutoConnect.ts +0 -2
  442. package/src/react/core/machines/paymentMachine.ts +1 -0
  443. package/src/react/web/hooks/wallets/useAutoConnect.ts +0 -11
  444. package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +7 -5
  445. package/src/react/web/ui/Bridge/BuyWidget.tsx +1 -1
  446. package/src/react/web/ui/Bridge/DirectPayment.tsx +2 -2
  447. package/src/react/web/ui/Bridge/ErrorBanner.tsx +1 -1
  448. package/src/react/web/ui/Bridge/FundWallet.tsx +9 -8
  449. package/src/react/web/ui/Bridge/QuoteLoader.tsx +6 -3
  450. package/src/react/web/ui/Bridge/StepRunner.tsx +5 -3
  451. package/src/react/web/ui/Bridge/TransactionPayment.tsx +2 -2
  452. package/src/react/web/ui/Bridge/UnsupportedTokenScreen.tsx +2 -2
  453. package/src/react/web/ui/Bridge/common/TokenAndChain.tsx +3 -2
  454. package/src/react/web/ui/Bridge/common/WithHeader.tsx +23 -13
  455. package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +47 -5
  456. package/src/react/web/ui/Bridge/payment-selection/FiatProviderSelection.tsx +89 -83
  457. package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +16 -7
  458. package/src/react/web/ui/Bridge/payment-selection/WalletFiatSelection.tsx +12 -7
  459. package/src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx +1 -5
  460. package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +27 -16
  461. package/src/react/web/ui/Bridge/swap-widget/SearchInput.tsx +46 -0
  462. package/src/react/web/ui/Bridge/swap-widget/SelectChainButton.tsx +50 -0
  463. package/src/react/web/ui/Bridge/swap-widget/SwapWidget.tsx +528 -0
  464. package/src/react/web/ui/Bridge/swap-widget/common.tsx +35 -0
  465. package/src/react/web/ui/Bridge/swap-widget/hooks.ts +21 -0
  466. package/src/react/web/ui/Bridge/swap-widget/select-chain.tsx +171 -0
  467. package/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx +528 -0
  468. package/src/react/web/ui/Bridge/swap-widget/storage.ts +56 -0
  469. package/src/react/web/ui/Bridge/swap-widget/swap-ui.tsx +950 -0
  470. package/src/react/web/ui/Bridge/swap-widget/types.ts +157 -0
  471. package/src/react/web/ui/Bridge/swap-widget/use-bridge-chains.ts +14 -0
  472. package/src/react/web/ui/Bridge/swap-widget/use-tokens.ts +120 -0
  473. package/src/react/web/ui/Bridge/swap-widget/utils.ts +3 -0
  474. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +15 -0
  475. package/src/react/web/ui/ConnectWallet/Details.test.tsx +1 -1
  476. package/src/react/web/ui/ConnectWallet/Details.tsx +12 -1
  477. package/src/react/web/ui/ConnectWallet/Modal/AllWalletsUI.tsx +7 -1
  478. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +19 -1
  479. package/src/react/web/ui/ConnectWallet/Modal/ConnectModal.tsx +2 -0
  480. package/src/react/web/ui/ConnectWallet/NetworkSelector.tsx +4 -1
  481. package/src/react/web/ui/ConnectWallet/WalletEntryButton.tsx +2 -0
  482. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +20 -22
  483. package/src/react/web/ui/ConnectWallet/WalletTypeRowButton.tsx +2 -0
  484. package/src/react/web/ui/ConnectWallet/icons/ArrowUpDownIcon.tsx +23 -0
  485. package/src/react/web/ui/ConnectWallet/icons/WalletDotIcon.tsx +22 -0
  486. package/src/react/web/ui/ConnectWallet/screens/ReceiveFunds.tsx +5 -2
  487. package/src/react/web/ui/ConnectWallet/screens/SendFunds.test.tsx +1 -3
  488. package/src/react/web/ui/ConnectWallet/screens/SendFunds.tsx +19 -4
  489. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +13 -3
  490. package/src/react/web/ui/ConnectWallet/screens/TokenSelector.tsx +2 -0
  491. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +2 -0
  492. package/src/react/web/ui/components/DynamicHeight.tsx +1 -1
  493. package/src/react/web/ui/components/Img.tsx +67 -9
  494. package/src/react/web/ui/components/Modal.tsx +17 -12
  495. package/src/react/web/ui/components/OTPInput.tsx +1 -1
  496. package/src/react/web/ui/components/Skeleton.tsx +2 -0
  497. package/src/react/web/ui/components/Spinner.tsx +3 -0
  498. package/src/react/web/ui/components/basic.tsx +17 -3
  499. package/src/react/web/ui/components/buttons.tsx +18 -1
  500. package/src/react/web/ui/components/formElements.tsx +2 -1
  501. package/src/react/web/ui/components/modalElements.tsx +1 -0
  502. package/src/react/web/ui/components/text.tsx +3 -1
  503. package/src/react/web/utils/cls.ts +13 -0
  504. package/src/react/web/wallets/in-app/InputSelectionUI.tsx +2 -0
  505. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +9 -0
  506. package/src/react/web/wallets/shared/ConnectingScreen.tsx +21 -4
  507. package/src/react/web/wallets/shared/GuestLogin.tsx +6 -1
  508. package/src/react/web/wallets/shared/OTPLoginUI.tsx +35 -6
  509. package/src/react/web/wallets/shared/ScanScreen.tsx +22 -3
  510. package/src/react/web/wallets/shared/SocialLogin.tsx +6 -1
  511. package/src/stories/Bridge/Swap/SelectChain.stories.tsx +51 -0
  512. package/src/stories/Bridge/Swap/SwapWidget.Prefill.stories.tsx +116 -0
  513. package/src/stories/Bridge/Swap/SwapWidget.stories.tsx +71 -0
  514. package/src/stories/BuyWidget.stories.tsx +56 -0
  515. package/src/stories/ConnectEmbed.stories.tsx +128 -0
  516. package/src/stories/ConnectWallet/useWalletDetailsModal.stories.tsx +1 -1
  517. package/src/transaction/prepare-transaction.test.ts +2 -2
  518. package/src/version.ts +1 -1
  519. package/src/wallets/connection/autoConnect.test.ts +0 -3
  520. package/src/wallets/connection/autoConnect.ts +0 -11
  521. package/src/wallets/connection/autoConnectCore.ts +7 -3
  522. package/src/wallets/manager/index.ts +1 -2
@@ -0,0 +1,23 @@
1
+ import type { IconFC } from "./types.js";
2
+
3
+ export const ArrowUpDownIcon: IconFC = (props) => {
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ viewBox="0 0 24 24"
8
+ fill="none"
9
+ stroke="currentColor"
10
+ strokeWidth="2"
11
+ strokeLinecap="round"
12
+ strokeLinejoin="round"
13
+ role="presentation"
14
+ width={props.size}
15
+ height={props.size}
16
+ >
17
+ <path d="m21 16-4 4-4-4" />
18
+ <path d="M17 20V4" />
19
+ <path d="m3 8 4-4 4 4" />
20
+ <path d="M7 4v16" />
21
+ </svg>
22
+ );
23
+ };
@@ -0,0 +1,22 @@
1
+ import type { IconFC } from "./types.js";
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export const WalletDotIcon: IconFC = (props) => {
7
+ return (
8
+ <svg
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ fill="none"
11
+ viewBox="0 0 18 18"
12
+ width={props.size}
13
+ height={props.size}
14
+ role="presentation"
15
+ >
16
+ <path
17
+ fill="currentColor"
18
+ d="M15.6 4.6H1.85v-.55l12.1-.968v.968h1.65V2.4c0-1.21-.98-2.059-2.177-1.888L2.378 2.089C1.18 2.26.2 3.39.2 4.6v11a2.2 2.2 0 002.2 2.2h13.2a2.2 2.2 0 002.2-2.2V6.8a2.2 2.2 0 00-2.2-2.2zm-1.65 7.707a1.65 1.65 0 01-.63-3.176 1.65 1.65 0 11.63 3.176z"
19
+ ></path>
20
+ </svg>
21
+ );
22
+ };
@@ -35,7 +35,7 @@ export function ReceiveFunds(props: {
35
35
  const locale = connectLocale.receiveFundsScreen;
36
36
 
37
37
  return (
38
- <Container p="lg">
38
+ <Container p="lg" className="tw-receive-funds-screen">
39
39
  <ModalHeader onBack={props.onBack} title={locale.title} />
40
40
 
41
41
  <Spacer y="xl" />
@@ -57,7 +57,10 @@ export function ReceiveFunds(props: {
57
57
  </Container>
58
58
  <Spacer y="xl" />
59
59
 
60
- <WalletAddressContainer onClick={onCopy}>
60
+ <WalletAddressContainer
61
+ onClick={onCopy}
62
+ className="tw-copy-address-button"
63
+ >
61
64
  <Text color="primaryText" size="md">
62
65
  {shortenString(address || "")}
63
66
  </Text>
@@ -58,9 +58,7 @@ describe("SendFunds screen", () => {
58
58
  token={{ nativeToken: true }}
59
59
  />,
60
60
  );
61
- const element = container.querySelector(
62
- "button.tw-sendfunds-screen-send-button",
63
- );
61
+ const element = container.querySelector("button.tw-send-funds-button");
64
62
  expect(element?.innerHTML).toBe(en.sendFundsScreen.submitButton);
65
63
  vi.resetAllMocks();
66
64
  });
@@ -170,7 +170,11 @@ export function SendFundsForm(props: {
170
170
 
171
171
  if (sendTokenMutation.isError) {
172
172
  return (
173
- <Container animate="fadein" p="lg">
173
+ <Container
174
+ animate="fadein"
175
+ p="lg"
176
+ className="tw-send-funds-screen tw-send-funds-screen__error"
177
+ >
174
178
  <ModalHeader
175
179
  onBack={() => {
176
180
  sendTokenMutation.reset();
@@ -199,7 +203,11 @@ export function SendFundsForm(props: {
199
203
 
200
204
  if (sendTokenMutation.isSuccess) {
201
205
  return (
202
- <Container animate="fadein" p="lg">
206
+ <Container
207
+ animate="fadein"
208
+ p="lg"
209
+ className="tw-send-funds-screen tw-send-funds-screen__success"
210
+ >
203
211
  <ModalHeader
204
212
  onBack={() => {
205
213
  sendTokenMutation.reset();
@@ -232,7 +240,11 @@ export function SendFundsForm(props: {
232
240
  balanceQuery?.data?.symbol;
233
241
 
234
242
  return (
235
- <Container animate="fadein" p="lg">
243
+ <Container
244
+ animate="fadein"
245
+ p="lg"
246
+ className="tw-send-funds-screen tw-send-funds-screen__form"
247
+ >
236
248
  <ModalHeader onBack={props.onBack} title={locale.title} />
237
249
  <Spacer y="xl" />
238
250
 
@@ -247,6 +259,7 @@ export function SendFundsForm(props: {
247
259
  </Label>
248
260
  <Spacer y="sm" />
249
261
  <Button
262
+ className="tw-select-token-button"
250
263
  fullWidth
251
264
  id={tokenId}
252
265
  onClick={props.onTokenSelect}
@@ -289,6 +302,7 @@ export function SendFundsForm(props: {
289
302
  </Label>
290
303
  <Spacer y="sm" />
291
304
  <Input
305
+ className="tw-address-input"
292
306
  id={receiverId}
293
307
  onChange={(e) => {
294
308
  setReceiverAddress(e.target.value);
@@ -308,6 +322,7 @@ export function SendFundsForm(props: {
308
322
  <Spacer y="sm" />
309
323
  <Container relative>
310
324
  <Input
325
+ className="tw-amount-input"
311
326
  id={amountId}
312
327
  onChange={(e) => {
313
328
  setAmount(e.target.value);
@@ -326,7 +341,7 @@ export function SendFundsForm(props: {
326
341
 
327
342
  {/* Submit */}
328
343
  <Button
329
- className="tw-sendfunds-screen-send-button"
344
+ className="tw-send-funds-button"
330
345
  fullWidth
331
346
  onClick={async () => {
332
347
  if (!receiverAddress || !amount) {
@@ -169,14 +169,24 @@ export const SignatureScreen: React.FC<{
169
169
  </Container>
170
170
 
171
171
  <Container animate="fadein" flex="column" gap="md" key={status}>
172
- <Text center color="primaryText" size="lg">
172
+ <Text
173
+ center
174
+ color="primaryText"
175
+ size="lg"
176
+ className="tw-screen-title"
177
+ >
173
178
  {status === "failed"
174
179
  ? error || locale.signingScreen.failedToSignIn
175
- : locale.signingScreen.inProgress}
180
+ : locale.signingScreen.inProgress}{" "}
176
181
  </Text>
177
182
 
178
183
  {status === "signing" && (
179
- <Text balance center multiline>
184
+ <Text
185
+ balance
186
+ center
187
+ multiline
188
+ className="tw-screen-description"
189
+ >
180
190
  {connectLocale.signatureScreen.signingScreen.prompt}
181
191
  </Text>
182
192
  )}
@@ -101,6 +101,7 @@ export function TokenSelector(props: {
101
101
  if (screen === "select-chain" && chainSelection) {
102
102
  return (
103
103
  <NetworkSelectorContent
104
+ className="tw-send-funds-screen tw-send-funds-screen__select-chain"
104
105
  chains={chainSelection.chains}
105
106
  client={props.client}
106
107
  closeModal={() => setScreen("base")}
@@ -131,6 +132,7 @@ export function TokenSelector(props: {
131
132
 
132
133
  return (
133
134
  <Container
135
+ className="tw-send-funds-screen tw-send-funds-screen__select-token"
134
136
  animate="fadein"
135
137
  style={{
136
138
  minHeight: "300px",
@@ -68,6 +68,8 @@ export function TransactionModal(props: ModalProps) {
68
68
  return (
69
69
  <CustomThemeProvider theme={props.theme}>
70
70
  <Modal
71
+ className="tw-modal__view-transaction"
72
+ title="View Transaction"
71
73
  open={true}
72
74
  setOpen={(_open) => {
73
75
  if (!_open) {
@@ -17,7 +17,7 @@ export function DynamicHeight(props: {
17
17
  boxSizing: "border-box",
18
18
  height: height ? `${height}px` : "auto",
19
19
  overflow: "hidden",
20
- transition: "height 210ms cubic-bezier(0.175, 0.885, 0.32, 1.1)",
20
+ transition: "height 210ms ease",
21
21
  }}
22
22
  >
23
23
  <div
@@ -1,7 +1,9 @@
1
1
  "use client";
2
- import { useState } from "react";
2
+ import { useEffect, useRef, useState } from "react";
3
3
  import type { ThirdwebClient } from "../../../../client/client.js";
4
4
  import { resolveScheme } from "../../../../utils/ipfs.js";
5
+ import { radius, type Theme } from "../../../core/design-system/index.js";
6
+ import { Container } from "./basic.js";
5
7
  import { Skeleton } from "./Skeleton.js";
6
8
 
7
9
  /**
@@ -16,20 +18,24 @@ export const Img: React.FC<{
16
18
  className?: string;
17
19
  style?: React.CSSProperties;
18
20
  fallbackImage?: string;
21
+ fallback?: React.ReactNode;
19
22
  client: ThirdwebClient;
23
+ skeletonColor?: keyof Theme["colors"];
20
24
  }> = (props) => {
21
- const [isLoaded, setIsLoaded] = useState(false);
25
+ const [_status, setStatus] = useState<"pending" | "fallback" | "loaded">(
26
+ "pending",
27
+ );
28
+ const imgRef = useRef<HTMLImageElement>(null);
22
29
 
23
30
  const propSrc = props.src;
24
31
 
25
32
  const widthPx = `${props.width}px`;
26
33
  const heightPx = `${props.height || props.width}px`;
27
34
 
28
- if (propSrc === undefined) {
29
- return <Skeleton height={heightPx} width={widthPx} />;
30
- }
31
-
32
35
  const getSrc = () => {
36
+ if (propSrc === undefined) {
37
+ return undefined;
38
+ }
33
39
  try {
34
40
  return resolveScheme({
35
41
  client: props.client,
@@ -42,6 +48,31 @@ export const Img: React.FC<{
42
48
 
43
49
  const src = getSrc();
44
50
 
51
+ const status =
52
+ src === undefined ? "pending" : src === "" ? "fallback" : _status;
53
+
54
+ const isLoaded = status === "loaded";
55
+
56
+ useEffect(() => {
57
+ const imgEl = imgRef.current;
58
+ if (!imgEl) {
59
+ return;
60
+ }
61
+ if (imgEl.complete) {
62
+ setStatus("loaded");
63
+ } else {
64
+ function handleLoad() {
65
+ setStatus("loaded");
66
+ }
67
+ imgEl.addEventListener("load", handleLoad);
68
+ return () => {
69
+ imgEl.removeEventListener("load", handleLoad);
70
+ };
71
+ }
72
+
73
+ return;
74
+ }, []);
75
+
45
76
  return (
46
77
  <div
47
78
  style={{
@@ -52,7 +83,32 @@ export const Img: React.FC<{
52
83
  position: "relative",
53
84
  }}
54
85
  >
55
- {!isLoaded && <Skeleton height={heightPx} width={widthPx} />}
86
+ {status === "pending" && (
87
+ <Skeleton
88
+ height={heightPx}
89
+ width={widthPx}
90
+ color={props.skeletonColor}
91
+ style={props.style}
92
+ />
93
+ )}
94
+ {status === "fallback" &&
95
+ (props.fallback || (
96
+ <Container
97
+ bg="tertiaryBg"
98
+ borderColor="borderColor"
99
+ style={{
100
+ height: heightPx,
101
+ width: widthPx,
102
+ borderRadius: radius.md,
103
+ borderWidth: "1px",
104
+ borderStyle: "solid",
105
+ ...props.style,
106
+ }}
107
+ >
108
+ <div />
109
+ </Container>
110
+ ))}
111
+
56
112
  <img
57
113
  alt={props.alt || ""}
58
114
  className={props.className}
@@ -67,12 +123,14 @@ export const Img: React.FC<{
67
123
  e.currentTarget.src !== props.fallbackImage
68
124
  ) {
69
125
  e.currentTarget.src = props.fallbackImage;
126
+ } else {
127
+ setStatus("fallback");
70
128
  }
71
129
  }}
72
130
  onLoad={() => {
73
- setIsLoaded(true);
131
+ setStatus("loaded");
74
132
  }}
75
- src={src}
133
+ src={src || undefined}
76
134
  style={{
77
135
  height: !isLoaded
78
136
  ? 0
@@ -12,6 +12,7 @@ import {
12
12
  shadow,
13
13
  spacing,
14
14
  } from "../../../core/design-system/index.js";
15
+ import { cls } from "../../utils/cls.js";
15
16
  import {
16
17
  compactModalMaxHeight,
17
18
  modalCloseFadeOutDuration,
@@ -33,10 +34,13 @@ export const Modal: React.FC<{
33
34
  open?: boolean;
34
35
  setOpen?: (open: boolean) => void;
35
36
  children: React.ReactNode;
37
+ className: string;
36
38
  style?: React.CSSProperties;
37
39
  hideCloseIcon?: boolean;
38
40
  size: "wide" | "compact";
41
+ title: string;
39
42
  hide?: boolean;
43
+ crossContainerStyles?: React.CSSProperties;
40
44
  }> = (props) => {
41
45
  const [open, setOpen] = useState(props.open);
42
46
  const contentRef = useRef<HTMLDivElement>(null);
@@ -88,6 +92,7 @@ export const Modal: React.FC<{
88
92
  <FocusScope trapped={!props.hide}>
89
93
  <Dialog.Content aria-describedby={undefined} asChild>
90
94
  <DialogContent
95
+ className={cls("tw-modal", props.className)}
91
96
  ref={contentRef}
92
97
  style={
93
98
  props.hide
@@ -116,7 +121,7 @@ export const Modal: React.FC<{
116
121
  width: "1px",
117
122
  }}
118
123
  >
119
- Connect Modal
124
+ {props.title}
120
125
  </Dialog.Title>
121
126
  {props.size === "compact" ? (
122
127
  <DynamicHeight maxHeight={compactModalMaxHeight}>
@@ -128,7 +133,15 @@ export const Modal: React.FC<{
128
133
 
129
134
  {/* Close Icon */}
130
135
  {!props.hideCloseIcon && (
131
- <CrossContainer>
136
+ <div
137
+ style={{
138
+ position: "absolute",
139
+ right: spacing.lg,
140
+ top: spacing.lg,
141
+ transform: "translateX(6px)",
142
+ ...props.crossContainerStyles,
143
+ }}
144
+ >
132
145
  <Dialog.Close asChild>
133
146
  <IconButton aria-label="Close" autoFocus type="button">
134
147
  <Cross2Icon
@@ -140,7 +153,7 @@ export const Modal: React.FC<{
140
153
  />
141
154
  </IconButton>
142
155
  </Dialog.Close>
143
- </CrossContainer>
156
+ </div>
144
157
  )}
145
158
  </DialogContent>
146
159
  </Dialog.Content>
@@ -150,13 +163,6 @@ export const Modal: React.FC<{
150
163
  );
151
164
  };
152
165
 
153
- const CrossContainer = /* @__PURE__ */ StyledDiv({
154
- position: "absolute",
155
- right: spacing.lg,
156
- top: spacing.lg,
157
- transform: "translateX(6px)",
158
- });
159
-
160
166
  const modalAnimationDesktop = keyframes`
161
167
  from {
162
168
  opacity: 0;
@@ -190,7 +196,7 @@ const DialogContent = /* @__PURE__ */ StyledDiv((_) => {
190
196
  animation: `${modalAnimationDesktop} 300ms ease`,
191
197
  background: theme.colors.modalBg,
192
198
  border: `1px solid ${theme.colors.borderColor}`,
193
- borderRadius: radius.lg,
199
+ borderRadius: radius.xl,
194
200
  boxShadow: shadow.lg,
195
201
  boxSizing: "border-box",
196
202
  color: theme.colors.primaryText,
@@ -208,7 +214,6 @@ const DialogContent = /* @__PURE__ */ StyledDiv((_) => {
208
214
  animation: `${modalAnimationMobile} 0.35s cubic-bezier(0.15, 1.15, 0.6, 1)`,
209
215
  borderBottomLeftRadius: 0,
210
216
  borderBottomRightRadius: 0,
211
- borderRadius: radius.xl,
212
217
  bottom: 0,
213
218
  left: 0,
214
219
  maxWidth: "none !important",
@@ -21,7 +21,7 @@ export function OTPInput(props: {
21
21
  onEnter: () => void;
22
22
  }) {
23
23
  return (
24
- <OTPInputContainer>
24
+ <OTPInputContainer className="tw-otp-input-container">
25
25
  <InputOTP
26
26
  maxLength={6}
27
27
  onChange={(newValue) => {
@@ -12,6 +12,7 @@ export const Skeleton: React.FC<{
12
12
  width?: string;
13
13
  color?: keyof Theme["colors"];
14
14
  className?: string;
15
+ style?: React.CSSProperties;
15
16
  }> = (props) => {
16
17
  return (
17
18
  <SkeletonDiv
@@ -20,6 +21,7 @@ export const Skeleton: React.FC<{
20
21
  style={{
21
22
  height: props.height,
22
23
  width: props.width || "auto",
24
+ ...props.style,
23
25
  }}
24
26
  />
25
27
  );
@@ -10,6 +10,7 @@ import { StyledCircle, StyledSvg } from "../design-system/elements.js";
10
10
  */
11
11
  export const Spinner: React.FC<{
12
12
  size: keyof typeof iconSize;
13
+ style?: React.CSSProperties;
13
14
  color?: keyof Theme["colors"];
14
15
  }> = (props) => {
15
16
  const theme = useCustomTheme();
@@ -18,8 +19,10 @@ export const Spinner: React.FC<{
18
19
  style={{
19
20
  height: `${iconSize[props.size]}px`,
20
21
  width: `${iconSize[props.size]}px`,
22
+ ...props.style,
21
23
  }}
22
24
  viewBox="0 0 50 50"
25
+ className="tw-spinner"
23
26
  >
24
27
  <Circle
25
28
  cx="25"
@@ -2,6 +2,7 @@
2
2
  import type { CSSObject } from "@emotion/react";
3
3
  import { useCustomTheme } from "../../../core/design-system/CustomThemeProvider.js";
4
4
  import { spacing, type Theme } from "../../../core/design-system/index.js";
5
+ import { cls } from "../../utils/cls.js";
5
6
  import {
6
7
  fadeInAnimation,
7
8
  floatDownAnimation,
@@ -36,10 +37,12 @@ export function ModalHeader(props: {
36
37
  onBack?: () => void;
37
38
  title: React.ReactNode;
38
39
  leftAligned?: boolean;
40
+ className?: string;
39
41
  }) {
40
42
  const { onBack, title } = props;
41
43
  return (
42
44
  <div
45
+ className={cls("tw-header", props.className)}
43
46
  style={{
44
47
  alignItems: "center",
45
48
  display: "flex",
@@ -64,11 +67,10 @@ export function ModalHeader(props: {
64
67
  );
65
68
  }
66
69
 
67
- export const Line = /* @__PURE__ */ StyledDiv(() => {
70
+ export const Line = /* @__PURE__ */ StyledDiv((props: { dashed?: boolean }) => {
68
71
  const theme = useCustomTheme();
69
72
  return {
70
- background: theme.colors.separatorLine,
71
- height: "1px",
73
+ borderTop: `1px ${props.dashed ? "dashed" : "solid"} ${theme.colors.separatorLine}`,
72
74
  };
73
75
  });
74
76
 
@@ -87,12 +89,15 @@ export function Container(props: {
87
89
  p?: keyof typeof spacing;
88
90
  px?: keyof typeof spacing;
89
91
  py?: keyof typeof spacing;
92
+ pb?: keyof typeof spacing;
93
+ pt?: keyof typeof spacing;
90
94
  relative?: boolean;
91
95
  scrollY?: boolean;
92
96
  color?: keyof Theme["colors"];
93
97
  debug?: boolean;
94
98
  bg?: keyof Theme["colors"];
95
99
  borderColor?: keyof Theme["colors"];
100
+ className?: string;
96
101
  }) {
97
102
  const styles: React.CSSProperties = {};
98
103
 
@@ -156,6 +161,14 @@ export function Container(props: {
156
161
  styles.paddingBottom = spacing[props.py];
157
162
  }
158
163
 
164
+ if (props.pb) {
165
+ styles.paddingBottom = spacing[props.pb];
166
+ }
167
+
168
+ if (props.pt) {
169
+ styles.paddingTop = spacing[props.pt];
170
+ }
171
+
159
172
  if (props.debug) {
160
173
  styles.outline = "1px solid red";
161
174
  styles.outlineOffset = "-1px";
@@ -168,6 +181,7 @@ export function Container(props: {
168
181
  color={props.color}
169
182
  data-animate={props.animate}
170
183
  data-scrolly={props.scrollY}
184
+ className={props.className}
171
185
  style={{
172
186
  ...styles,
173
187
  ...props.style,
@@ -9,7 +9,14 @@ import {
9
9
  import { StyledButton } from "../design-system/elements.js";
10
10
 
11
11
  type ButtonProps = {
12
- variant: "primary" | "secondary" | "link" | "accent" | "outline" | "ghost";
12
+ variant:
13
+ | "primary"
14
+ | "secondary"
15
+ | "link"
16
+ | "accent"
17
+ | "outline"
18
+ | "ghost"
19
+ | "ghost-solid";
13
20
  unstyled?: boolean;
14
21
  fullWidth?: boolean;
15
22
  gap?: keyof typeof spacing;
@@ -65,6 +72,7 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
65
72
  case "secondary":
66
73
  return theme.colors.secondaryButtonText;
67
74
  case "ghost":
75
+ case "ghost-solid":
68
76
  case "outline":
69
77
  return theme.colors.secondaryButtonText;
70
78
  case "link":
@@ -109,6 +117,15 @@ export const Button = /* @__PURE__ */ StyledButton((props: ButtonProps) => {
109
117
  };
110
118
  }
111
119
 
120
+ if (props.variant === "ghost-solid") {
121
+ return {
122
+ "&:hover": {
123
+ background: theme.colors.tertiaryBg,
124
+ },
125
+ border: "1px solid transparent",
126
+ };
127
+ }
128
+
112
129
  if (props.variant === "accent") {
113
130
  return {
114
131
  "&:hover": {
@@ -30,6 +30,7 @@ type InputProps = {
30
30
  variant: "outline" | "transparent";
31
31
  sm?: boolean;
32
32
  theme?: Theme;
33
+ bg?: keyof Theme["colors"];
33
34
  };
34
35
 
35
36
  export const Input = /* @__PURE__ */ StyledInput<InputProps>((props) => {
@@ -86,7 +87,7 @@ export const Input = /* @__PURE__ */ StyledInput<InputProps>((props) => {
86
87
  WebkitAppearance: "none",
87
88
  },
88
89
  appearance: "none",
89
- background: "transparent",
90
+ background: props.bg ? theme.colors[props.bg] : "transparent",
90
91
  border: "none",
91
92
  borderRadius: radius.md,
92
93
  boxShadow: `0 0 0 1.5px ${
@@ -26,6 +26,7 @@ export const BackButton: React.FC<{
26
26
  }> = (props) => {
27
27
  return (
28
28
  <IconButton
29
+ className="tw-back-button"
29
30
  onClick={props.onClick}
30
31
  style={{ transform: "translateX(-25%)", ...props.style }}
31
32
  type="button"
@@ -12,6 +12,7 @@ export type TextProps = {
12
12
  weight?: 400 | 500 | 600 | 700;
13
13
  multiline?: boolean;
14
14
  balance?: boolean;
15
+ trackingTight?: boolean;
15
16
  };
16
17
 
17
18
  export const Text = /* @__PURE__ */ StyledSpan<TextProps>((p) => {
@@ -20,7 +21,7 @@ export const Text = /* @__PURE__ */ StyledSpan<TextProps>((p) => {
20
21
  color: theme.colors[p.color || "secondaryText"],
21
22
  display: p.inline ? "inline" : "block",
22
23
  fontSize: fontSize[p.size || "md"],
23
- fontWeight: p.weight || 500,
24
+ fontWeight: p.weight || 400,
24
25
  lineHeight: p.multiline ? 1.5 : "normal",
25
26
  margin: 0,
26
27
  maxWidth: "100%",
@@ -28,6 +29,7 @@ export const Text = /* @__PURE__ */ StyledSpan<TextProps>((p) => {
28
29
  textAlign: p.center ? "center" : "left",
29
30
  textOverflow: "ellipsis",
30
31
  textWrap: p.balance ? "balance" : "inherit",
32
+ letterSpacing: p.trackingTight ? "-0.025em" : undefined,
31
33
  };
32
34
  });
33
35
 
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @internal
3
+ * Utility for merging class names
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * cls("foo", "bar", true, false, "baz") // "foo bar baz"
8
+ * cls('foo', someCondition && "bar") // "foo bar" or "foo"
9
+ * ```
10
+ */
11
+ export function cls(...classes: (string | unknown)[]) {
12
+ return classes.filter((v) => typeof v === "string").join(" ");
13
+ }
@@ -14,6 +14,7 @@ import { CountrySelector, getCountrySelector } from "./CountrySelector.js";
14
14
  import type { SupportedSmsCountry } from "./supported-sms-countries.js";
15
15
 
16
16
  export function InputSelectionUI(props: {
17
+ className?: string;
17
18
  onSelect: (data: string) => void;
18
19
  placeholder: string;
19
20
  name: string;
@@ -63,6 +64,7 @@ export function InputSelectionUI(props: {
63
64
  }}
64
65
  >
65
66
  <InputContainer
67
+ className={props.className}
66
68
  data-error={renderingError}
67
69
  style={{
68
70
  display: "flex",