@b3dotfun/sdk 0.0.73 → 0.0.74-alpha.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 (461) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.js +75 -50
  2. package/dist/cjs/anyspend/react/components/AnySpendBuySpin.js +9 -10
  3. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +41 -41
  4. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -0
  5. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +17 -9
  6. package/dist/cjs/anyspend/react/components/AnySpendStakeB3.js +7 -8
  7. package/dist/cjs/anyspend/react/components/AnySpendStakeB3ExactIn.js +7 -8
  8. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
  9. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +2 -2
  10. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
  11. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +18 -14
  12. package/dist/cjs/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  13. package/dist/cjs/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  14. package/dist/cjs/anyspend/react/components/common/InsufficientDepositPayment.js +6 -6
  15. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +35 -35
  16. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.js +1 -2
  17. package/dist/cjs/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  18. package/dist/cjs/anyspend/react/components/common/OrderHistory.js +7 -3
  19. package/dist/cjs/anyspend/react/components/common/OrderHistoryItem.js +1 -1
  20. package/dist/cjs/anyspend/react/components/common/PanelOnramp.js +4 -4
  21. package/dist/cjs/anyspend/react/components/common/PanelOnrampPayment.js +8 -9
  22. package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  23. package/dist/cjs/anyspend/react/components/common/RecipientSelection.js +1 -1
  24. package/dist/cjs/anyspend/react/components/common/TransferCryptoDetails.js +2 -3
  25. package/dist/cjs/anyspend/react/components/webview/WebviewOnrampOrderStatus.js +1 -2
  26. package/dist/cjs/anyspend/react/components/webview/WebviewOnrampPayment.js +12 -12
  27. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +4 -5
  28. package/dist/cjs/anyspend/react/hooks/useConnectedWalletDisplay.js +3 -2
  29. package/dist/cjs/anyspend/react/hooks/usePhantomTransfer.js +17 -17
  30. package/dist/cjs/anyspend/react/utils/toast.d.ts +6 -0
  31. package/dist/cjs/anyspend/react/utils/toast.js +9 -0
  32. package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
  33. package/dist/cjs/global-account/react/components/AvatarCreator/AvatarCreator.js +2 -3
  34. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +1 -0
  35. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +275 -39
  36. package/dist/cjs/global-account/react/components/B3DynamicModal.js +40 -13
  37. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.d.ts +1 -1
  38. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +19 -3
  39. package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +1 -0
  40. package/dist/cjs/global-account/react/components/Deposit/Deposit.js +61 -0
  41. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
  42. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +34 -0
  43. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
  44. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +104 -283
  45. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
  46. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +320 -0
  47. package/dist/cjs/global-account/react/components/LinkAccount/LinkedAccountItem.d.ts +16 -0
  48. package/dist/cjs/global-account/react/components/LinkAccount/LinkedAccountItem.js +44 -0
  49. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
  50. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +23 -0
  51. package/dist/cjs/global-account/react/components/ManageAccount/ContentTokens.js +1 -2
  52. package/dist/cjs/global-account/react/components/ManageAccount/Header.d.ts +3 -0
  53. package/dist/cjs/global-account/react/components/ManageAccount/Header.js +120 -0
  54. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
  55. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.js +43 -0
  56. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
  57. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +16 -0
  58. package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +16 -194
  59. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
  60. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +15 -0
  61. package/dist/cjs/global-account/react/components/ManageAccount/NotificationChannel.d.ts +16 -0
  62. package/dist/cjs/global-account/react/components/ManageAccount/NotificationChannel.js +13 -0
  63. package/dist/cjs/global-account/react/components/ManageAccount/NotificationsContent.d.ts +8 -0
  64. package/dist/cjs/global-account/react/components/ManageAccount/NotificationsContent.js +152 -0
  65. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
  66. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +47 -0
  67. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
  68. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +60 -0
  69. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
  70. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.js +8 -0
  71. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
  72. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +116 -0
  73. package/dist/cjs/global-account/react/components/ManageAccount/TokenBalanceRow.d.ts +3 -3
  74. package/dist/cjs/global-account/react/components/ManageAccount/TokenBalanceRow.js +2 -2
  75. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
  76. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +44 -0
  77. package/dist/cjs/global-account/react/components/ManageAccount/channels/DiscordChannel.d.ts +11 -0
  78. package/dist/cjs/global-account/react/components/ManageAccount/channels/DiscordChannel.js +48 -0
  79. package/dist/cjs/global-account/react/components/ManageAccount/channels/EmailChannel.d.ts +11 -0
  80. package/dist/cjs/global-account/react/components/ManageAccount/channels/EmailChannel.js +68 -0
  81. package/dist/cjs/global-account/react/components/ManageAccount/channels/PhoneChannel.d.ts +14 -0
  82. package/dist/cjs/global-account/react/components/ManageAccount/channels/PhoneChannel.js +79 -0
  83. package/dist/cjs/global-account/react/components/ManageAccount/channels/TelegramChannel.d.ts +11 -0
  84. package/dist/cjs/global-account/react/components/ManageAccount/channels/TelegramChannel.js +79 -0
  85. package/dist/cjs/global-account/react/components/ManageAccount/channels/index.d.ts +4 -0
  86. package/dist/cjs/global-account/react/components/ManageAccount/channels/index.js +11 -0
  87. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +11 -0
  88. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.js +12 -0
  89. package/dist/cjs/global-account/react/components/Send/Send.d.ts +5 -0
  90. package/dist/cjs/global-account/react/components/Send/Send.js +195 -0
  91. package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +5 -4
  92. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -1
  93. package/dist/cjs/global-account/react/components/Toast/ToastComponents.d.ts +15 -0
  94. package/dist/cjs/global-account/react/components/Toast/ToastComponents.js +54 -0
  95. package/dist/cjs/global-account/react/components/Toast/ToastContext.d.ts +19 -0
  96. package/dist/cjs/global-account/react/components/Toast/ToastContext.js +59 -0
  97. package/dist/cjs/global-account/react/components/Toast/index.d.ts +4 -0
  98. package/dist/cjs/global-account/react/components/Toast/index.js +12 -0
  99. package/dist/cjs/global-account/react/components/Toast/toastApi.d.ts +21 -0
  100. package/dist/cjs/global-account/react/components/Toast/toastApi.js +93 -0
  101. package/dist/cjs/global-account/react/components/WalletImage/WalletImage.d.ts +4 -0
  102. package/dist/cjs/global-account/react/components/WalletImage/WalletImage.js +13 -0
  103. package/dist/cjs/global-account/react/components/icons/BellIcon.d.ts +3 -0
  104. package/dist/cjs/global-account/react/components/icons/BellIcon.js +5 -0
  105. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
  106. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.js +7 -0
  107. package/dist/cjs/global-account/react/components/icons/CopyIcon.d.ts +2 -0
  108. package/dist/cjs/global-account/react/components/icons/CopyIcon.js +7 -0
  109. package/dist/cjs/global-account/react/components/icons/LinkIcon.d.ts +3 -0
  110. package/dist/cjs/global-account/react/components/icons/LinkIcon.js +5 -0
  111. package/dist/cjs/global-account/react/components/icons/LockIcon.d.ts +3 -0
  112. package/dist/cjs/global-account/react/components/icons/LockIcon.js +5 -0
  113. package/dist/cjs/global-account/react/components/icons/WalletIcon.d.ts +2 -0
  114. package/dist/cjs/global-account/react/components/icons/WalletIcon.js +7 -0
  115. package/dist/cjs/global-account/react/components/index.d.ts +10 -4
  116. package/dist/cjs/global-account/react/components/index.js +29 -9
  117. package/dist/cjs/global-account/react/components/ui/Tabs.js +2 -2
  118. package/dist/cjs/global-account/react/components/ui/dialog.js +2 -2
  119. package/dist/cjs/global-account/react/components/ui/drawer.js +1 -1
  120. package/dist/cjs/global-account/react/hooks/index.d.ts +3 -2
  121. package/dist/cjs/global-account/react/hooks/index.js +7 -3
  122. package/dist/cjs/global-account/react/hooks/useAccountWallet.d.ts +1 -0
  123. package/dist/cjs/global-account/react/hooks/useAccountWallet.js +18 -0
  124. package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
  125. package/dist/cjs/global-account/react/hooks/useChainSwitchWithAction.js +11 -11
  126. package/dist/cjs/global-account/react/hooks/useNativeBalance.js +2 -2
  127. package/dist/cjs/global-account/react/hooks/useNotifications.d.ts +48 -0
  128. package/dist/cjs/global-account/react/hooks/useNotifications.js +189 -0
  129. package/dist/cjs/global-account/react/hooks/useSimBalance.js +3 -3
  130. package/dist/cjs/global-account/react/hooks/useTokenBalanceDirect.d.ts +1 -0
  131. package/dist/cjs/global-account/react/hooks/useTokenBalanceDirect.js +1 -0
  132. package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +17 -17
  133. package/dist/cjs/global-account/react/stores/index.d.ts +1 -0
  134. package/dist/cjs/global-account/react/stores/index.js +3 -1
  135. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +47 -6
  136. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
  137. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.js +36 -0
  138. package/dist/cjs/global-account/react/utils/index.d.ts +4 -0
  139. package/dist/cjs/global-account/react/utils/index.js +20 -0
  140. package/dist/cjs/global-account/react/utils/notificationsAPI.d.ts +80 -0
  141. package/dist/cjs/global-account/react/utils/notificationsAPI.js +257 -0
  142. package/dist/cjs/global-account/react/utils/profileDisplay.d.ts +3 -0
  143. package/dist/cjs/global-account/react/utils/profileDisplay.js +8 -4
  144. package/dist/cjs/global-account/react/utils/toast.d.ts +6 -0
  145. package/dist/cjs/global-account/react/utils/toast.js +9 -0
  146. package/dist/cjs/shared/constants/chains/supported.d.ts +3 -2
  147. package/dist/cjs/shared/constants/chains/supported.js +4 -0
  148. package/dist/cjs/shared/utils/ipfs.js +10 -3
  149. package/dist/esm/anyspend/react/components/AnySpend.js +67 -42
  150. package/dist/esm/anyspend/react/components/AnySpendBuySpin.js +1 -2
  151. package/dist/esm/anyspend/react/components/AnySpendCustom.js +10 -10
  152. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -0
  153. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +12 -4
  154. package/dist/esm/anyspend/react/components/AnySpendStakeB3.js +1 -2
  155. package/dist/esm/anyspend/react/components/AnySpendStakeB3ExactIn.js +1 -2
  156. package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
  157. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +2 -2
  158. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
  159. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +9 -5
  160. package/dist/esm/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  161. package/dist/esm/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  162. package/dist/esm/anyspend/react/components/common/InsufficientDepositPayment.js +1 -1
  163. package/dist/esm/anyspend/react/components/common/OrderDetails.js +2 -2
  164. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.js +1 -2
  165. package/dist/esm/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  166. package/dist/esm/anyspend/react/components/common/OrderHistory.js +6 -5
  167. package/dist/esm/anyspend/react/components/common/OrderHistoryItem.js +2 -2
  168. package/dist/esm/anyspend/react/components/common/PanelOnramp.js +4 -4
  169. package/dist/esm/anyspend/react/components/common/PanelOnrampPayment.js +2 -3
  170. package/dist/esm/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  171. package/dist/esm/anyspend/react/components/common/RecipientSelection.js +1 -1
  172. package/dist/esm/anyspend/react/components/common/TransferCryptoDetails.js +1 -2
  173. package/dist/esm/anyspend/react/components/webview/WebviewOnrampOrderStatus.js +1 -2
  174. package/dist/esm/anyspend/react/components/webview/WebviewOnrampPayment.js +1 -1
  175. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +1 -2
  176. package/dist/esm/anyspend/react/hooks/useConnectedWalletDisplay.js +3 -2
  177. package/dist/esm/anyspend/react/hooks/usePhantomTransfer.js +1 -1
  178. package/dist/esm/anyspend/react/utils/toast.d.ts +6 -0
  179. package/dist/esm/anyspend/react/utils/toast.js +5 -0
  180. package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
  181. package/dist/esm/global-account/react/components/AvatarCreator/AvatarCreator.js +1 -2
  182. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +1 -0
  183. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +276 -40
  184. package/dist/esm/global-account/react/components/B3DynamicModal.js +37 -13
  185. package/dist/esm/global-account/react/components/B3Provider/B3Provider.d.ts +1 -1
  186. package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +19 -3
  187. package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +1 -0
  188. package/dist/esm/global-account/react/components/Deposit/Deposit.js +55 -0
  189. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
  190. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +31 -0
  191. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
  192. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +103 -283
  193. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
  194. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +314 -0
  195. package/dist/esm/global-account/react/components/LinkAccount/LinkedAccountItem.d.ts +16 -0
  196. package/dist/esm/global-account/react/components/LinkAccount/LinkedAccountItem.js +42 -0
  197. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
  198. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +21 -0
  199. package/dist/esm/global-account/react/components/ManageAccount/ContentTokens.js +1 -2
  200. package/dist/esm/global-account/react/components/ManageAccount/Header.d.ts +3 -0
  201. package/dist/esm/global-account/react/components/ManageAccount/Header.js +81 -0
  202. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
  203. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.js +41 -0
  204. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
  205. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +10 -0
  206. package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +18 -196
  207. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
  208. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +13 -0
  209. package/dist/esm/global-account/react/components/ManageAccount/NotificationChannel.d.ts +16 -0
  210. package/dist/esm/global-account/react/components/ManageAccount/NotificationChannel.js +9 -0
  211. package/dist/esm/global-account/react/components/ManageAccount/NotificationsContent.d.ts +8 -0
  212. package/dist/esm/global-account/react/components/ManageAccount/NotificationsContent.js +147 -0
  213. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
  214. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +45 -0
  215. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
  216. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +55 -0
  217. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
  218. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.js +6 -0
  219. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
  220. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +111 -0
  221. package/dist/esm/global-account/react/components/ManageAccount/TokenBalanceRow.d.ts +3 -3
  222. package/dist/esm/global-account/react/components/ManageAccount/TokenBalanceRow.js +3 -3
  223. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
  224. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +42 -0
  225. package/dist/esm/global-account/react/components/ManageAccount/channels/DiscordChannel.d.ts +11 -0
  226. package/dist/esm/global-account/react/components/ManageAccount/channels/DiscordChannel.js +44 -0
  227. package/dist/esm/global-account/react/components/ManageAccount/channels/EmailChannel.d.ts +11 -0
  228. package/dist/esm/global-account/react/components/ManageAccount/channels/EmailChannel.js +64 -0
  229. package/dist/esm/global-account/react/components/ManageAccount/channels/PhoneChannel.d.ts +14 -0
  230. package/dist/esm/global-account/react/components/ManageAccount/channels/PhoneChannel.js +75 -0
  231. package/dist/esm/global-account/react/components/ManageAccount/channels/TelegramChannel.d.ts +11 -0
  232. package/dist/esm/global-account/react/components/ManageAccount/channels/TelegramChannel.js +75 -0
  233. package/dist/esm/global-account/react/components/ManageAccount/channels/index.d.ts +4 -0
  234. package/dist/esm/global-account/react/components/ManageAccount/channels/index.js +4 -0
  235. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +11 -0
  236. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.js +10 -0
  237. package/dist/esm/global-account/react/components/Send/Send.d.ts +5 -0
  238. package/dist/esm/global-account/react/components/Send/Send.js +189 -0
  239. package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +7 -6
  240. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -1
  241. package/dist/esm/global-account/react/components/Toast/ToastComponents.d.ts +15 -0
  242. package/dist/esm/global-account/react/components/Toast/ToastComponents.js +50 -0
  243. package/dist/esm/global-account/react/components/Toast/ToastContext.d.ts +19 -0
  244. package/dist/esm/global-account/react/components/Toast/ToastContext.js +55 -0
  245. package/dist/esm/global-account/react/components/Toast/index.d.ts +4 -0
  246. package/dist/esm/global-account/react/components/Toast/index.js +3 -0
  247. package/dist/esm/global-account/react/components/Toast/toastApi.d.ts +21 -0
  248. package/dist/esm/global-account/react/components/Toast/toastApi.js +89 -0
  249. package/dist/esm/global-account/react/components/WalletImage/WalletImage.d.ts +4 -0
  250. package/dist/esm/global-account/react/components/WalletImage/WalletImage.js +11 -0
  251. package/dist/esm/global-account/react/components/icons/BellIcon.d.ts +3 -0
  252. package/dist/esm/global-account/react/components/icons/BellIcon.js +3 -0
  253. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
  254. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.js +4 -0
  255. package/dist/esm/global-account/react/components/icons/CopyIcon.d.ts +2 -0
  256. package/dist/esm/global-account/react/components/icons/CopyIcon.js +4 -0
  257. package/dist/esm/global-account/react/components/icons/LinkIcon.d.ts +3 -0
  258. package/dist/esm/global-account/react/components/icons/LinkIcon.js +3 -0
  259. package/dist/esm/global-account/react/components/icons/LockIcon.d.ts +3 -0
  260. package/dist/esm/global-account/react/components/icons/LockIcon.js +3 -0
  261. package/dist/esm/global-account/react/components/icons/WalletIcon.d.ts +2 -0
  262. package/dist/esm/global-account/react/components/icons/WalletIcon.js +4 -0
  263. package/dist/esm/global-account/react/components/index.d.ts +10 -4
  264. package/dist/esm/global-account/react/components/index.js +14 -5
  265. package/dist/esm/global-account/react/components/ui/Tabs.js +2 -2
  266. package/dist/esm/global-account/react/components/ui/dialog.js +2 -2
  267. package/dist/esm/global-account/react/components/ui/drawer.js +1 -1
  268. package/dist/esm/global-account/react/hooks/index.d.ts +3 -2
  269. package/dist/esm/global-account/react/hooks/index.js +3 -2
  270. package/dist/esm/global-account/react/hooks/useAccountWallet.d.ts +1 -0
  271. package/dist/esm/global-account/react/hooks/useAccountWallet.js +17 -0
  272. package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
  273. package/dist/esm/global-account/react/hooks/useChainSwitchWithAction.js +2 -2
  274. package/dist/esm/global-account/react/hooks/useNativeBalance.js +1 -1
  275. package/dist/esm/global-account/react/hooks/useNotifications.d.ts +48 -0
  276. package/dist/esm/global-account/react/hooks/useNotifications.js +186 -0
  277. package/dist/esm/global-account/react/hooks/useSimBalance.js +3 -3
  278. package/dist/esm/global-account/react/hooks/useTokenBalanceDirect.d.ts +1 -0
  279. package/dist/esm/global-account/react/hooks/useTokenBalanceDirect.js +1 -0
  280. package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +2 -2
  281. package/dist/esm/global-account/react/stores/index.d.ts +1 -0
  282. package/dist/esm/global-account/react/stores/index.js +1 -0
  283. package/dist/esm/global-account/react/stores/useModalStore.d.ts +47 -6
  284. package/dist/esm/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
  285. package/dist/esm/global-account/react/stores/useRecentAddressesStore.js +33 -0
  286. package/dist/esm/global-account/react/utils/index.d.ts +4 -0
  287. package/dist/esm/global-account/react/utils/index.js +4 -0
  288. package/dist/esm/global-account/react/utils/notificationsAPI.d.ts +80 -0
  289. package/dist/esm/global-account/react/utils/notificationsAPI.js +254 -0
  290. package/dist/esm/global-account/react/utils/profileDisplay.d.ts +3 -0
  291. package/dist/esm/global-account/react/utils/profileDisplay.js +8 -4
  292. package/dist/esm/global-account/react/utils/toast.d.ts +6 -0
  293. package/dist/esm/global-account/react/utils/toast.js +5 -0
  294. package/dist/esm/shared/constants/chains/supported.d.ts +3 -2
  295. package/dist/esm/shared/constants/chains/supported.js +3 -0
  296. package/dist/esm/shared/utils/ipfs.js +10 -3
  297. package/dist/styles/index.css +1 -1
  298. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -0
  299. package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
  300. package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
  301. package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  302. package/dist/types/anyspend/react/utils/toast.d.ts +6 -0
  303. package/dist/types/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +1 -0
  304. package/dist/types/global-account/react/components/B3Provider/B3Provider.d.ts +1 -1
  305. package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +1 -0
  306. package/dist/types/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
  307. package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
  308. package/dist/types/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
  309. package/dist/types/global-account/react/components/LinkAccount/LinkedAccountItem.d.ts +16 -0
  310. package/dist/types/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
  311. package/dist/types/global-account/react/components/ManageAccount/Header.d.ts +3 -0
  312. package/dist/types/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
  313. package/dist/types/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
  314. package/dist/types/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
  315. package/dist/types/global-account/react/components/ManageAccount/NotificationChannel.d.ts +16 -0
  316. package/dist/types/global-account/react/components/ManageAccount/NotificationsContent.d.ts +8 -0
  317. package/dist/types/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
  318. package/dist/types/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
  319. package/dist/types/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
  320. package/dist/types/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
  321. package/dist/types/global-account/react/components/ManageAccount/TokenBalanceRow.d.ts +3 -3
  322. package/dist/types/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
  323. package/dist/types/global-account/react/components/ManageAccount/channels/DiscordChannel.d.ts +11 -0
  324. package/dist/types/global-account/react/components/ManageAccount/channels/EmailChannel.d.ts +11 -0
  325. package/dist/types/global-account/react/components/ManageAccount/channels/PhoneChannel.d.ts +14 -0
  326. package/dist/types/global-account/react/components/ManageAccount/channels/TelegramChannel.d.ts +11 -0
  327. package/dist/types/global-account/react/components/ManageAccount/channels/index.d.ts +4 -0
  328. package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +11 -0
  329. package/dist/types/global-account/react/components/Send/Send.d.ts +5 -0
  330. package/dist/types/global-account/react/components/Toast/ToastComponents.d.ts +15 -0
  331. package/dist/types/global-account/react/components/Toast/ToastContext.d.ts +19 -0
  332. package/dist/types/global-account/react/components/Toast/index.d.ts +4 -0
  333. package/dist/types/global-account/react/components/Toast/toastApi.d.ts +21 -0
  334. package/dist/types/global-account/react/components/WalletImage/WalletImage.d.ts +4 -0
  335. package/dist/types/global-account/react/components/icons/BellIcon.d.ts +3 -0
  336. package/dist/types/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
  337. package/dist/types/global-account/react/components/icons/CopyIcon.d.ts +2 -0
  338. package/dist/types/global-account/react/components/icons/LinkIcon.d.ts +3 -0
  339. package/dist/types/global-account/react/components/icons/LockIcon.d.ts +3 -0
  340. package/dist/types/global-account/react/components/icons/WalletIcon.d.ts +2 -0
  341. package/dist/types/global-account/react/components/index.d.ts +10 -4
  342. package/dist/types/global-account/react/hooks/index.d.ts +3 -2
  343. package/dist/types/global-account/react/hooks/useAccountWallet.d.ts +1 -0
  344. package/dist/types/global-account/react/hooks/useNotifications.d.ts +48 -0
  345. package/dist/types/global-account/react/hooks/useTokenBalanceDirect.d.ts +1 -0
  346. package/dist/types/global-account/react/stores/index.d.ts +1 -0
  347. package/dist/types/global-account/react/stores/useModalStore.d.ts +47 -6
  348. package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
  349. package/dist/types/global-account/react/utils/index.d.ts +4 -0
  350. package/dist/types/global-account/react/utils/notificationsAPI.d.ts +80 -0
  351. package/dist/types/global-account/react/utils/profileDisplay.d.ts +3 -0
  352. package/dist/types/global-account/react/utils/toast.d.ts +6 -0
  353. package/dist/types/shared/constants/chains/supported.d.ts +3 -2
  354. package/package.json +2 -1
  355. package/src/anyspend/react/components/AnySpend.tsx +213 -173
  356. package/src/anyspend/react/components/AnySpendBuySpin.tsx +2 -1
  357. package/src/anyspend/react/components/AnySpendCustom.tsx +80 -77
  358. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +20 -4
  359. package/src/anyspend/react/components/AnySpendStakeB3.tsx +2 -1
  360. package/src/anyspend/react/components/AnySpendStakeB3ExactIn.tsx +2 -1
  361. package/src/anyspend/react/components/AnyspendDepositHype.tsx +3 -0
  362. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +56 -22
  363. package/src/anyspend/react/components/common/FeeDetailPanel.tsx +1 -1
  364. package/src/anyspend/react/components/common/FiatPaymentMethod.tsx +2 -2
  365. package/src/anyspend/react/components/common/InsufficientDepositPayment.tsx +1 -1
  366. package/src/anyspend/react/components/common/OrderDetails.tsx +6 -2
  367. package/src/anyspend/react/components/common/OrderDetailsCollapsible.tsx +2 -2
  368. package/src/anyspend/react/components/common/OrderHistory.tsx +8 -13
  369. package/src/anyspend/react/components/common/OrderHistoryItem.tsx +69 -25
  370. package/src/anyspend/react/components/common/PanelOnramp.tsx +6 -4
  371. package/src/anyspend/react/components/common/PanelOnrampPayment.tsx +3 -3
  372. package/src/anyspend/react/components/common/PointsDetailPanel.tsx +1 -1
  373. package/src/anyspend/react/components/common/RecipientSelection.tsx +1 -1
  374. package/src/anyspend/react/components/common/TransferCryptoDetails.tsx +2 -2
  375. package/src/anyspend/react/components/webview/WebviewOnrampOrderStatus.tsx +3 -3
  376. package/src/anyspend/react/components/webview/WebviewOnrampPayment.tsx +2 -1
  377. package/src/anyspend/react/hooks/useAnyspendFlow.ts +2 -1
  378. package/src/anyspend/react/hooks/useConnectedWalletDisplay.ts +3 -2
  379. package/src/anyspend/react/hooks/usePhantomTransfer.ts +1 -1
  380. package/src/anyspend/react/utils/toast.ts +6 -0
  381. package/src/global-account/react/components/AccountAssets/AccountAssets.tsx +115 -25
  382. package/src/global-account/react/components/AvatarCreator/AvatarCreator.tsx +2 -2
  383. package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +491 -130
  384. package/src/global-account/react/components/B3DynamicModal.tsx +76 -17
  385. package/src/global-account/react/components/B3Provider/B3Provider.tsx +40 -20
  386. package/src/global-account/react/components/Deposit/Deposit.tsx +208 -0
  387. package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +84 -0
  388. package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +269 -434
  389. package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +480 -0
  390. package/src/global-account/react/components/LinkAccount/LinkedAccountItem.tsx +135 -0
  391. package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +83 -0
  392. package/src/global-account/react/components/ManageAccount/ContentTokens.tsx +2 -1
  393. package/src/global-account/react/components/ManageAccount/Header.tsx +230 -0
  394. package/src/global-account/react/components/ManageAccount/HomeActions.tsx +118 -0
  395. package/src/global-account/react/components/ManageAccount/HomeContent.tsx +42 -0
  396. package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +74 -597
  397. package/src/global-account/react/components/ManageAccount/NFTContent.tsx +24 -0
  398. package/src/global-account/react/components/ManageAccount/NotificationChannel.tsx +94 -0
  399. package/src/global-account/react/components/ManageAccount/NotificationsContent.tsx +268 -0
  400. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +79 -0
  401. package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +106 -0
  402. package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +31 -0
  403. package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +197 -0
  404. package/src/global-account/react/components/ManageAccount/TokenBalanceRow.tsx +20 -5
  405. package/src/global-account/react/components/ManageAccount/TokenContent.tsx +66 -0
  406. package/src/global-account/react/components/ManageAccount/channels/DiscordChannel.tsx +119 -0
  407. package/src/global-account/react/components/ManageAccount/channels/EmailChannel.tsx +168 -0
  408. package/src/global-account/react/components/ManageAccount/channels/PhoneChannel.tsx +227 -0
  409. package/src/global-account/react/components/ManageAccount/channels/TelegramChannel.tsx +150 -0
  410. package/src/global-account/react/components/ManageAccount/channels/index.ts +4 -0
  411. package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +61 -0
  412. package/src/global-account/react/components/Send/Send.tsx +621 -0
  413. package/src/global-account/react/components/SignInWithB3/SignIn.tsx +13 -12
  414. package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +1 -1
  415. package/src/global-account/react/components/Toast/README.md +350 -0
  416. package/src/global-account/react/components/Toast/ToastComponents.tsx +159 -0
  417. package/src/global-account/react/components/Toast/ToastContext.tsx +86 -0
  418. package/src/global-account/react/components/Toast/index.ts +4 -0
  419. package/src/global-account/react/components/Toast/toastApi.ts +98 -0
  420. package/src/global-account/react/components/WalletImage/WalletImage.tsx +12 -0
  421. package/src/global-account/react/components/icons/BellIcon.tsx +15 -0
  422. package/src/global-account/react/components/icons/ChevronDownIcon.tsx +17 -0
  423. package/src/global-account/react/components/icons/CopyIcon.tsx +22 -0
  424. package/src/global-account/react/components/icons/LinkIcon.tsx +15 -0
  425. package/src/global-account/react/components/icons/LockIcon.tsx +15 -0
  426. package/src/global-account/react/components/icons/WalletIcon.tsx +21 -0
  427. package/src/global-account/react/components/index.ts +19 -5
  428. package/src/global-account/react/components/ui/Tabs.tsx +5 -13
  429. package/src/global-account/react/components/ui/dialog.tsx +23 -14
  430. package/src/global-account/react/components/ui/drawer.tsx +1 -1
  431. package/src/global-account/react/hooks/index.ts +5 -1
  432. package/src/global-account/react/hooks/useAccountWallet.tsx +26 -0
  433. package/src/global-account/react/hooks/useB3BalanceFromAddresses.ts +1 -0
  434. package/src/global-account/react/hooks/useChainSwitchWithAction.ts +3 -2
  435. package/src/global-account/react/hooks/useNativeBalance.tsx +2 -1
  436. package/src/global-account/react/hooks/useNotifications.ts +229 -0
  437. package/src/global-account/react/hooks/useSimBalance.ts +3 -3
  438. package/src/global-account/react/hooks/useTokenBalanceDirect.tsx +2 -0
  439. package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +3 -2
  440. package/src/global-account/react/stores/index.ts +1 -0
  441. package/src/global-account/react/stores/useModalStore.ts +53 -6
  442. package/src/global-account/react/stores/useRecentAddressesStore.ts +54 -0
  443. package/src/global-account/react/utils/index.ts +4 -0
  444. package/src/global-account/react/utils/notificationsAPI.ts +305 -0
  445. package/src/global-account/react/utils/profileDisplay.ts +12 -4
  446. package/src/global-account/react/utils/toast.ts +6 -0
  447. package/src/shared/constants/chains/supported.ts +4 -0
  448. package/src/shared/utils/ipfs.ts +10 -3
  449. package/src/styles/index.css +12 -1
  450. package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.d.ts +0 -7
  451. package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +0 -107
  452. package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
  453. package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.js +0 -151
  454. package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.d.ts +0 -7
  455. package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +0 -104
  456. package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
  457. package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.js +0 -145
  458. package/dist/types/global-account/react/components/ManageAccount/BalanceContent.d.ts +0 -7
  459. package/dist/types/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
  460. package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +0 -258
  461. package/src/global-account/react/components/ProfileEditor/ProfileEditor.tsx +0 -279
@@ -16,15 +16,20 @@ import { AnySpendStakeUpsideExactIn } from "@b3dotfun/sdk/anyspend/react/compone
16
16
  import { useGlobalAccount, useIsMobile, useModalStore } from "@b3dotfun/sdk/global-account/react";
17
17
  import { cn } from "@b3dotfun/sdk/shared/utils/cn";
18
18
  import { debugB3React } from "@b3dotfun/sdk/shared/utils/debug";
19
+ import { AnimatePresence, motion } from "framer-motion";
19
20
  import { useEffect, useRef } from "react";
20
21
  import { useSetActiveWallet } from "thirdweb/react";
21
22
  import { AvatarEditor } from "./AvatarEditor/AvatarEditor";
22
23
  import { useB3 } from "./B3Provider/useB3";
24
+ import { Deposit } from "./Deposit/Deposit";
23
25
  import { LinkAccount } from "./LinkAccount/LinkAccount";
24
- import { ProfileEditor } from "./ProfileEditor/ProfileEditor";
26
+ import { LinkNewAccount } from "./LinkAccount/LinkNewAccount";
25
27
  import { ManageAccount } from "./ManageAccount/ManageAccount";
28
+ import NotificationsContent from "./ManageAccount/NotificationsContent";
26
29
  import { RequestPermissions } from "./RequestPermissions/RequestPermissions";
30
+ import { Send } from "./Send/Send";
27
31
  import { SignInWithB3Flow } from "./SignInWithB3/SignInWithB3Flow";
32
+ import { ToastContainer, useToastContext } from "./Toast/index";
28
33
  import { Dialog, DialogContent, DialogDescription, DialogTitle } from "./ui/dialog";
29
34
  import { Drawer, DrawerContent, DrawerDescription, DrawerTitle } from "./ui/drawer";
30
35
  import { AnySpendDepositUpside } from "@b3dotfun/sdk/anyspend/react/components/AnySpendDepositUpside";
@@ -32,12 +37,16 @@ import { AnySpendDepositUpside } from "@b3dotfun/sdk/anyspend/react/components/A
32
37
  const debug = debugB3React("B3DynamicModal");
33
38
 
34
39
  export function B3DynamicModal() {
35
- const { isOpen, setB3ModalOpen, contentType, history, navigateBack } = useModalStore();
40
+ const isOpen = useModalStore(state => state.isOpen);
41
+ const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
42
+ const contentType = useModalStore(state => state.contentType);
43
+ const navigateBack = useModalStore(state => state.navigateBack);
36
44
  const { theme } = useB3();
37
45
  const isMobile = useIsMobile();
38
46
  const prevIsOpenRef = useRef(isOpen);
39
47
  const { wallet } = useGlobalAccount();
40
48
  const setActiveWallet = useSetActiveWallet();
49
+ const { toasts, removeToast } = useToastContext();
41
50
 
42
51
  // anyspend cleanup global account chnages by setting account back
43
52
  useEffect(() => {
@@ -66,8 +75,11 @@ export function B3DynamicModal() {
66
75
  "anySpendSignatureMint",
67
76
  "anySpendBondKit",
68
77
  "linkAccount",
78
+ "linkNewAccount",
69
79
  "avatarEditor",
70
- "profileEditor",
80
+ "deposit",
81
+ "send",
82
+ "notifications",
71
83
  ];
72
84
 
73
85
  const freestyleTypes = [
@@ -85,7 +97,7 @@ export function B3DynamicModal() {
85
97
 
86
98
  // Check if current content type is in freestyle types
87
99
  const isFreestyleType = freestyleTypes.includes(contentType?.type as string);
88
- const hideCloseButton = isFreestyleType;
100
+ const hideCloseButton = true;
89
101
 
90
102
  // Build content class using cn utility
91
103
  // eslint-disable-next-line tailwindcss/no-custom-classname
@@ -95,7 +107,10 @@ export function B3DynamicModal() {
95
107
  fullWidthTypes.includes(contentType?.type as string) && "w-full",
96
108
  isFreestyleType && "b3-modal-freestyle",
97
109
  contentType?.type === "signInWithB3" && "p-0",
98
- contentType?.type === "anySpend" && "md:px-6",
110
+ contentType?.type === "anySpend" && "md:p-0",
111
+ contentType?.type === "send" && "p-0",
112
+ contentType?.type === "manageAccount" && " md:p-0 md:pt-2",
113
+ contentType?.type === "linkAccount" && "md:p-0",
99
114
  // Add specific styles for avatar editor
100
115
  // contentType?.type === "avatarEditor_disabled" &&
101
116
  // "h-[90dvh] w-[90vw] bg-black p-0 overflow-y-auto overflow-x-hidden max-md:-mt-8 max-md:rounded-t-xl",
@@ -123,7 +138,7 @@ export function B3DynamicModal() {
123
138
  case "anySpendFundTournament":
124
139
  return <AnySpendTournament {...contentType} mode="modal" action="fund" />;
125
140
  case "anySpendOrderHistory":
126
- return <OrderHistory onBack={() => {}} mode="modal" />;
141
+ return <OrderHistory {...contentType} mode="modal" />;
127
142
  case "anySpendStakeB3":
128
143
  return <AnySpendStakeB3 {...contentType} mode="modal" />;
129
144
  case "anySpendStakeB3ExactIn":
@@ -142,14 +157,20 @@ export function B3DynamicModal() {
142
157
  return <AnySpendBondKit {...contentType} />;
143
158
  case "linkAccount":
144
159
  return <LinkAccount {...contentType} />;
160
+ case "linkNewAccount":
161
+ return <LinkNewAccount {...contentType} />;
145
162
  case "anySpendDepositHype":
146
163
  return <AnySpendDepositHype {...contentType} mode="modal" />;
147
164
  case "anySpendCollectorClubPurchase":
148
165
  return <AnySpendCollectorClubPurchase {...contentType} mode="modal" />;
149
166
  case "avatarEditor":
150
167
  return <AvatarEditor onSetAvatar={contentType.onSuccess} />;
151
- case "profileEditor":
152
- return <ProfileEditor onSuccess={contentType.onSuccess} />;
168
+ case "deposit":
169
+ return <Deposit />;
170
+ case "send":
171
+ return <Send {...contentType} />;
172
+ case "notifications":
173
+ return <NotificationsContent {...contentType} />;
153
174
  // Add other modal types here
154
175
  default:
155
176
  return null;
@@ -168,17 +189,21 @@ export function B3DynamicModal() {
168
189
  contentClass,
169
190
  "rounded-2xl bg-white shadow-xl dark:bg-gray-900",
170
191
  "border border-gray-200 dark:border-gray-800",
171
- // Remove default width classes for avatar editor and profile editor
172
- contentType?.type === "avatarEditor" || contentType?.type === "profileEditor"
173
- ? "!w-[90vw] !max-w-none" // Use !important to override default styles
174
- : "mx-auto w-full max-w-md sm:max-w-lg",
192
+ (contentType?.type === "manageAccount" ||
193
+ contentType?.type === "deposit" ||
194
+ contentType?.type === "send" ||
195
+ contentType?.type === "avatarEditor" ||
196
+ contentType?.type === "notifications") &&
197
+ "p-0",
198
+ "mx-auto w-full max-w-md sm:max-w-lg",
175
199
  )}
176
200
  hideCloseButton={hideCloseButton}
177
201
  >
178
202
  <ModalTitle className="sr-only hidden">{contentType?.type || "Modal"}</ModalTitle>
179
203
  <ModalDescription className="sr-only hidden">{contentType?.type || "Modal Body"}</ModalDescription>
180
- <div className={cn("no-scrollbar max-h-[90dvh] overflow-auto sm:max-h-[80dvh]")}>
181
- {history.length > 0 && contentType?.showBackButton && (
204
+
205
+ <div className={cn("no-scrollbar flex max-h-[90dvh] flex-col overflow-auto sm:max-h-[80dvh]")}>
206
+ {!hideCloseButton && (
182
207
  <button
183
208
  onClick={navigateBack}
184
209
  className="flex items-center gap-2 px-6 py-4 text-gray-600 transition-colors hover:text-gray-900 dark:text-gray-400 dark:hover:text-white"
@@ -199,13 +224,47 @@ export function B3DynamicModal() {
199
224
  strokeLinejoin="round"
200
225
  />
201
226
  </svg>
202
- <span className="text-sm font-medium">Back</span>
227
+ <span className="font-inter text-sm font-semibold">Back</span>
203
228
  </button>
204
229
  )}
205
- {renderContent()}
230
+ <div className="flex-1">{renderContent()}</div>
231
+
232
+ {/* Toast Container - Part of modal-inner-content layer */}
233
+ <AnimatePresence>
234
+ {toasts.length > 0 && (
235
+ <motion.div
236
+ initial={{ height: 0 }}
237
+ animate={{ height: "auto" }}
238
+ exit={{ height: 0 }}
239
+ transition={{ duration: 0.3, ease: "easeInOut" }}
240
+ className="toast-section relative z-10 overflow-hidden bg-white dark:border-gray-800 dark:bg-gray-900"
241
+ >
242
+ <motion.div
243
+ initial={{ opacity: 0, y: -10 }}
244
+ animate={{ opacity: 1, y: 0 }}
245
+ exit={{ opacity: 0, y: -10 }}
246
+ transition={{ duration: 0.2, delay: 0.1 }}
247
+ className="p-4 pt-0"
248
+ >
249
+ <ToastContainer toasts={toasts} onDismiss={removeToast} theme={theme} />
250
+ </motion.div>
251
+ </motion.div>
252
+ )}
253
+ </AnimatePresence>
206
254
  </div>
207
255
  </ModalContent>
208
- {(contentType?.type === "avatarEditor" || contentType?.type === "profileEditor") && (
256
+
257
+ {/* Animate inner container margin to cover branding when toasts appear */}
258
+ {isOpen && (
259
+ <style>{`
260
+ .modal-inner-content {
261
+ transition: margin-bottom 0.3s ease-in-out;
262
+ margin-bottom: ${toasts.length > 0 ? "0px" : "23px"} !important;
263
+ }
264
+ `}</style>
265
+ )}
266
+
267
+ {contentType?.type === "avatarEditor" && (
209
268
  <button
210
269
  onClick={() => setB3ModalOpen(false)}
211
270
  className="fixed right-5 top-5 z-[100] cursor-pointer text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white"
@@ -13,7 +13,6 @@ import { debugB3React } from "@b3dotfun/sdk/shared/utils/debug";
13
13
  import "@relayprotocol/relay-kit-ui/styles.css";
14
14
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
15
15
  import { useCallback, useEffect, useState } from "react";
16
- import { Toaster } from "sonner";
17
16
  import {
18
17
  getLastAuthProvider,
19
18
  ThirdwebProvider,
@@ -25,6 +24,7 @@ import { Account, Wallet } from "thirdweb/wallets";
25
24
  import { CreateConnectorFn, WagmiProvider } from "wagmi";
26
25
  import { ClientType, setClientType } from "../../../client-manager";
27
26
  import { StyleRoot } from "../StyleRoot";
27
+ import { setToastContext, ToastProvider, useToastContext } from "../Toast/index";
28
28
  import { LocalSDKProvider } from "./LocalSDKProvider";
29
29
  import { B3Context, B3ContextType } from "./types";
30
30
 
@@ -53,7 +53,8 @@ export function B3Provider({
53
53
  environment,
54
54
  automaticallySetFirstEoa,
55
55
  simDuneApiKey,
56
- toaster,
56
+ // deprecated since v0.0.87
57
+ toaster: _toaster,
57
58
  clientType = "rest",
58
59
  rpcUrls,
59
60
  partnerId,
@@ -96,24 +97,26 @@ export function B3Provider({
96
97
  <WagmiProvider config={wagmiConfig} reconnectOnMount={false}>
97
98
  <QueryClientProvider client={queryClient}>
98
99
  <TooltipProvider>
99
- <LocalSDKProvider onConnectCallback={onConnect}>
100
- <InnerProvider
101
- accountOverride={accountOverride}
102
- environment={environment}
103
- theme={theme}
104
- automaticallySetFirstEoa={!!automaticallySetFirstEoa}
105
- clientType={clientType}
106
- partnerId={partnerId}
107
- createClientReferenceId={createClientReferenceId}
108
- >
109
- <RelayKitProviderWrapper simDuneApiKey={simDuneApiKey}>
110
- {children}
111
- {/* For the modal https://github.com/b3-fun/b3/blob/main/packages/sdk/src/global-account/react/components/ui/dialog.tsx#L46 */}
112
- <StyleRoot id="b3-root" />
113
- <Toaster theme={theme} position={toaster?.position} style={toaster?.style} />
114
- </RelayKitProviderWrapper>
115
- </InnerProvider>
116
- </LocalSDKProvider>
100
+ <ToastProvider>
101
+ <LocalSDKProvider onConnectCallback={onConnect}>
102
+ <InnerProvider
103
+ accountOverride={accountOverride}
104
+ environment={environment}
105
+ theme={theme}
106
+ automaticallySetFirstEoa={!!automaticallySetFirstEoa}
107
+ clientType={clientType}
108
+ partnerId={partnerId}
109
+ createClientReferenceId={createClientReferenceId}
110
+ >
111
+ <ToastContextConnector />
112
+ <RelayKitProviderWrapper simDuneApiKey={simDuneApiKey}>
113
+ {children}
114
+ {/* For the modal https://github.com/b3-fun/b3/blob/main/packages/sdk/src/global-account/react/components/ui/dialog.tsx#L46 */}
115
+ <StyleRoot id="b3-root" />
116
+ </RelayKitProviderWrapper>
117
+ </InnerProvider>
118
+ </LocalSDKProvider>
119
+ </ToastProvider>
117
120
  </TooltipProvider>
118
121
  </QueryClientProvider>
119
122
  </WagmiProvider>
@@ -222,3 +225,20 @@ export function InnerProvider({
222
225
  const InnerProvider2 = ({ children }: { children: React.ReactNode }) => {
223
226
  return <>{children}</>;
224
227
  };
228
+
229
+ /**
230
+ * Component to connect the toast context to the global toast API
231
+ */
232
+ function ToastContextConnector() {
233
+ const toastContext = useToastContext();
234
+
235
+ useEffect(() => {
236
+ setToastContext({
237
+ addToast: toastContext.addToast,
238
+ removeToast: toastContext.removeToast,
239
+ clearAll: toastContext.clearAll,
240
+ });
241
+ }, [toastContext]);
242
+
243
+ return null;
244
+ }
@@ -0,0 +1,208 @@
1
+ import { RELAY_SOLANA_MAINNET_CHAIN_ID } from "@b3dotfun/sdk/anyspend/constants";
2
+ import type { components } from "@b3dotfun/sdk/anyspend/types/api";
3
+ import { ALL_CHAINS } from "@b3dotfun/sdk/anyspend/utils/chain";
4
+ import { toast, useAccountWallet } from "@b3dotfun/sdk/global-account/react";
5
+ import { TokenSelector } from "@relayprotocol/relay-kit-ui";
6
+ import { ChevronDown, Copy } from "lucide-react";
7
+ import { QRCodeSVG } from "qrcode.react";
8
+ import { useMemo, useState } from "react";
9
+
10
+ import { base } from "thirdweb/chains";
11
+ import ModalHeader from "../ModalHeader/ModalHeader";
12
+ import { Button } from "../ui/button";
13
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
14
+
15
+ // Coinbase logo SVG
16
+ const CoinbaseLogo = () => (
17
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
18
+ <path
19
+ d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z"
20
+ fill="#0052FF"
21
+ />
22
+ <path
23
+ d="M8.00065 11.3337C6.16065 11.3337 4.66732 9.84033 4.66732 8.00033C4.66732 6.16033 6.16065 4.66699 8.00065 4.66699C9.47399 4.66699 10.734 5.64699 11.1607 7.00033H13.2273C12.774 4.54699 10.6273 2.66699 8.00065 2.66699C5.05399 2.66699 2.66732 5.05366 2.66732 8.00033C2.66732 10.947 5.05399 13.3337 8.00065 13.3337C10.6273 13.3337 12.774 11.4537 13.2273 9.00033H11.1607C10.734 10.3537 9.47399 11.3337 8.00065 11.3337Z"
24
+ fill="white"
25
+ />
26
+ </svg>
27
+ );
28
+
29
+ export function Deposit() {
30
+ const { address } = useAccountWallet();
31
+
32
+ const [selectedChainId, setSelectedChainId] = useState(base.id);
33
+ const [selectedToken, setSelectedToken] = useState<components["schemas"]["Token"]>({
34
+ address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
35
+ chainId: base.id,
36
+ decimals: 6,
37
+ symbol: "USDC",
38
+ name: "USD Coin",
39
+ metadata: {
40
+ logoURI: "https://assets.relay.link/icons/1/light/usdc.png",
41
+ },
42
+ });
43
+
44
+ // Get the selected chain object
45
+ const selectedChain = useMemo(() => ALL_CHAINS[selectedChainId], [selectedChainId]);
46
+
47
+ // Get all supported chains for the dropdown
48
+ const supportedChains = useMemo(() => Object.values(ALL_CHAINS), []);
49
+
50
+ // The deposit address is the user's active wallet address
51
+ const depositAddress = address;
52
+
53
+ const handleTokenSelect = (token: any) => {
54
+ setSelectedChainId(token.chainId);
55
+ setSelectedToken({
56
+ address: token.address,
57
+ chainId: token.chainId,
58
+ decimals: token.decimals,
59
+ metadata: { logoURI: token.logoURI },
60
+ name: token.name,
61
+ symbol: token.symbol,
62
+ });
63
+ };
64
+
65
+ const handleCopyAddress = async () => {
66
+ try {
67
+ await navigator.clipboard.writeText(depositAddress || "");
68
+ toast.success("Address copied to clipboard");
69
+ } catch (error) {
70
+ toast.error("Failed to copy address");
71
+ }
72
+ };
73
+
74
+ return (
75
+ <div className="flex w-full flex-col">
76
+ <ModalHeader title="Deposit" showCloseButton={false} />
77
+
78
+ {/* Content */}
79
+ <div className="flex flex-col pb-5 pt-5">
80
+ {/* Header text */}
81
+ <div className="mb-4 px-5">
82
+ <p className="font-neue-montreal-medium text-base leading-snug text-[#3f3f46]">
83
+ Send any accepted token and we'll convert it to B3 on Base for you to use.
84
+ </p>
85
+ </div>
86
+
87
+ {/* Chain and Token Selectors */}
88
+ <div className="space-y-3 px-5">
89
+ {/* Chain Selector */}
90
+ <div>
91
+ <label className="mb-1.5 block text-sm font-medium text-[#3f3f46]">Chain</label>
92
+ <DropdownMenu>
93
+ <DropdownMenuTrigger asChild>
94
+ <button className="flex h-10 w-full items-center justify-between rounded-lg border border-[#d1d1d6] bg-white px-2.5 py-2 transition-colors hover:bg-[#fafafa]">
95
+ <div className="flex items-center gap-2">
96
+ {selectedChain?.logoUrl && (
97
+ <img src={selectedChain.logoUrl} alt={selectedChain.name} className="h-6 w-6 rounded-full" />
98
+ )}
99
+ <span className="text-base text-[#18181b]">{selectedChain?.name || "Select Chain"}</span>
100
+ </div>
101
+ <ChevronDown className="h-4 w-4 text-[#51525c]" />
102
+ </button>
103
+ </DropdownMenuTrigger>
104
+ <DropdownMenuContent className="max-h-[300px] w-full overflow-y-auto">
105
+ {supportedChains.map(chain => (
106
+ <DropdownMenuItem key={chain.id} onClick={() => setSelectedChainId(chain.id)}>
107
+ <div className="flex items-center gap-2">
108
+ {chain.logoUrl && <img src={chain.logoUrl} alt={chain.name} className="h-6 w-6 rounded-full" />}
109
+ <span className="text-[#18181b]">{chain.name}</span>
110
+ </div>
111
+ </DropdownMenuItem>
112
+ ))}
113
+ </DropdownMenuContent>
114
+ </DropdownMenu>
115
+ </div>
116
+
117
+ {/* Accepted Tokens Selector */}
118
+ <div>
119
+ <label className="mb-1.5 block text-sm font-medium text-[#3f3f46]">Accepted tokens</label>
120
+ <TokenSelector
121
+ address={address}
122
+ chainIdsFilter={[selectedChainId]}
123
+ context="from"
124
+ fromChainWalletVMSupported={true}
125
+ isValidAddress={true}
126
+ lockedChainIds={[selectedChainId]}
127
+ multiWalletSupportEnabled={true}
128
+ onAnalyticEvent={undefined}
129
+ popularChainIds={[1, 8453, RELAY_SOLANA_MAINNET_CHAIN_ID]}
130
+ setToken={handleTokenSelect}
131
+ supportedWalletVMs={["evm", "svm"]}
132
+ token={undefined}
133
+ trigger={
134
+ <button className="flex h-10 w-full items-center justify-between rounded-lg border border-[#d1d1d6] bg-white px-2.5 py-2 transition-colors hover:bg-[#fafafa]">
135
+ <div className="flex items-center gap-2">
136
+ {selectedToken?.metadata?.logoURI && (
137
+ <img
138
+ src={selectedToken.metadata.logoURI}
139
+ alt={selectedToken.symbol}
140
+ className="h-6 w-6 rounded-full"
141
+ />
142
+ )}
143
+ <span className="text-base text-[#18181b]">{selectedToken.symbol}</span>
144
+ </div>
145
+ <ChevronDown className="h-4 w-4 text-[#51525c]" />
146
+ </button>
147
+ }
148
+ />
149
+ </div>
150
+ </div>
151
+
152
+ {/* QR Code and Address Container */}
153
+ <div className="mx-5 mt-4 flex items-start rounded-xl border border-[#e4e4e7] bg-[#fafafa]">
154
+ {/* QR Code Section */}
155
+ <div className="flex flex-1 flex-col items-center gap-2 px-5 pb-3 pt-5">
156
+ <div className="flex w-full items-center justify-center">
157
+ <div className="w-full">
158
+ <div className="flex aspect-[144/146] w-full flex-col items-center justify-center overflow-hidden">
159
+ <QRCodeSVG value={depositAddress || ""} size={144} level="M" />
160
+ </div>
161
+ </div>
162
+ </div>
163
+ <div className="flex items-center gap-2">
164
+ <span className="text-xs font-semibold leading-[18px] text-[#0b57c2]">SCAN WITH</span>
165
+ <CoinbaseLogo />
166
+ </div>
167
+ </div>
168
+
169
+ {/* Deposit Address Section */}
170
+ <div className="relative flex flex-1 flex-col gap-2 self-stretch border-l border-[#e4e4e7] p-6">
171
+ <label className="text-sm font-medium leading-5 text-[#3f3f46]">Deposit address:</label>
172
+ <div className="relative flex w-full flex-wrap items-center gap-2">
173
+ <p className="h-[74px] flex-1 overflow-hidden text-ellipsis whitespace-pre-wrap break-all pr-6 text-base font-semibold leading-6 text-[#18181b]">
174
+ {depositAddress}
175
+ </p>
176
+ <button
177
+ onClick={handleCopyAddress}
178
+ className="absolute bottom-0 right-0 h-4 w-4 transition-opacity hover:opacity-70"
179
+ aria-label="Copy address"
180
+ >
181
+ <Copy className="h-full w-full text-[#51525c]" />
182
+ </button>
183
+ </div>
184
+ </div>
185
+ </div>
186
+
187
+ {/* Warning Text */}
188
+ <div className="mx-5 mt-4">
189
+ <p className="font-neue-montreal-italic text-center text-sm leading-[1.3] text-[#3f3f46]">
190
+ Do not send any tokens other than the ones specified.
191
+ <br />
192
+ Tokens not accepted will not be converted.
193
+ </p>
194
+ </div>
195
+
196
+ {/* Action Button */}
197
+ <div className="mt-4 px-5">
198
+ <Button
199
+ onClick={handleCopyAddress}
200
+ className="h-12 w-full rounded-xl bg-[#0c68e9] text-base font-semibold text-white shadow-[inset_0px_0px_0px_1px_rgba(10,13,18,0.18),inset_0px_-2px_0px_0px_rgba(10,13,18,0.05)] hover:bg-[#0b5fd4]"
201
+ >
202
+ Copy deposit address
203
+ </Button>
204
+ </div>
205
+ </div>
206
+ </div>
207
+ );
208
+ }
@@ -0,0 +1,84 @@
1
+ "use client";
2
+
3
+ import { client as defaultClient } from "@b3dotfun/sdk/shared/utils/thirdweb";
4
+ import type { ThirdwebClient } from "thirdweb";
5
+ import { MediaRenderer } from "thirdweb/react";
6
+
7
+ // Primary IPFS gateway URL - matches our allowed list in profileDisplay.ts
8
+ // Note: MediaRenderer expects the base gateway URL without /ipfs path
9
+ // const IPFS_GATEWAY_URL = "https://cloudflare-ipfs.com";
10
+
11
+ interface IPFSMediaRendererProps {
12
+ /** The source URL - can be IPFS URL (ipfs://...) or HTTP URL */
13
+ src: string | null | undefined;
14
+ /** Alt text for the media */
15
+ alt?: string;
16
+ /** CSS class name */
17
+ className?: string;
18
+ /** Thirdweb client instance (optional, uses default if not provided) */
19
+ client?: ThirdwebClient;
20
+ /** Width of the media */
21
+ width?: string | number;
22
+ /** Height of the media */
23
+ height?: string | number;
24
+ /** Controls property for video/audio */
25
+ controls?: boolean;
26
+ /** Style object */
27
+ style?: React.CSSProperties;
28
+ }
29
+
30
+ /**
31
+ * IPFSMediaRenderer - A wrapper around Thirdweb's MediaRenderer that configures
32
+ * the IPFS gateway URL to use our validated gateway.
33
+ *
34
+ * Features:
35
+ * - Configures MediaRenderer to use cloudflare-ipfs.com gateway
36
+ * - Gateway matches our allowed list in profileDisplay.ts
37
+ * - Provides fallback for missing sources
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <IPFSMediaRenderer
42
+ * src="ipfs://QmX..."
43
+ * alt="Profile Avatar"
44
+ * className="size-14 rounded-full"
45
+ * />
46
+ * ```
47
+ */
48
+ export function IPFSMediaRenderer({
49
+ src,
50
+ alt = "Media",
51
+ className,
52
+ client = defaultClient,
53
+ width,
54
+ height,
55
+ controls,
56
+ style,
57
+ }: IPFSMediaRendererProps) {
58
+ // If no source, render fallback
59
+ if (!src) {
60
+ return (
61
+ <div className={className} style={style} aria-label={alt}>
62
+ <div className="bg-b3-primary-wash flex h-full w-full items-center justify-center rounded-full">
63
+ <span className="text-b3-grey font-neue-montreal-semibold text-xs">{alt.charAt(0).toUpperCase()}</span>
64
+ </div>
65
+ </div>
66
+ );
67
+ }
68
+
69
+ // Convert IPFS URLs to HTTP gateway URLs if needed
70
+ // This handles both ipfs:// URLs and existing HTTP gateway URLs
71
+
72
+ return (
73
+ <MediaRenderer
74
+ src={src}
75
+ client={client}
76
+ alt={alt}
77
+ className={className}
78
+ width={width ? width.toString() : undefined}
79
+ height={height ? height.toString() : undefined}
80
+ controls={controls}
81
+ style={style}
82
+ />
83
+ );
84
+ }