@b3dotfun/sdk 0.0.65-test.5 → 0.0.66-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 (316) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.js +69 -97
  2. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +23 -10
  3. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
  4. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +45 -14
  5. package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
  6. package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.js +41 -0
  7. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
  8. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +14 -251
  9. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
  10. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +3 -5
  11. package/dist/cjs/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  12. package/dist/cjs/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  13. package/dist/cjs/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  14. package/dist/cjs/anyspend/react/components/common/OrderHistory.js +3 -7
  15. package/dist/cjs/anyspend/react/components/common/OrderTokenAmount.js +2 -10
  16. package/dist/cjs/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
  17. package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  18. package/dist/cjs/anyspend/react/components/common/RecipientSelection.js +1 -1
  19. package/dist/cjs/anyspend/react/components/index.d.ts +1 -0
  20. package/dist/cjs/anyspend/react/components/index.js +4 -1
  21. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
  22. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +16 -10
  23. package/dist/cjs/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
  24. package/dist/cjs/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.js +13 -9
  25. package/dist/cjs/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
  26. package/dist/cjs/anyspend/react/hooks/useCryptoPaymentMethodState.js +51 -0
  27. package/dist/cjs/anyspend/react/hooks/useSigMint.d.ts +1 -1
  28. package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +2 -38
  29. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
  30. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +35 -251
  31. package/dist/cjs/global-account/react/components/B3DynamicModal.js +15 -23
  32. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
  33. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +279 -113
  34. package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +5 -6
  35. package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +193 -24
  36. package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
  37. package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.js +141 -0
  38. package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +1 -3
  39. package/dist/cjs/global-account/react/components/index.d.ts +4 -5
  40. package/dist/cjs/global-account/react/components/index.js +9 -14
  41. package/dist/cjs/global-account/react/components/ui/Tabs.js +2 -2
  42. package/dist/cjs/global-account/react/components/ui/dialog.js +2 -2
  43. package/dist/cjs/global-account/react/components/ui/drawer.js +1 -1
  44. package/dist/cjs/global-account/react/hooks/index.d.ts +1 -1
  45. package/dist/cjs/global-account/react/hooks/index.js +1 -3
  46. package/dist/cjs/global-account/react/hooks/useAccountWallet.d.ts +0 -1
  47. package/dist/cjs/global-account/react/hooks/useAccountWallet.js +0 -18
  48. package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +2 -2
  49. package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +0 -1
  50. package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +6 -14
  51. package/dist/cjs/global-account/react/hooks/useUserQuery.d.ts +2 -2
  52. package/dist/cjs/global-account/react/stores/index.d.ts +0 -1
  53. package/dist/cjs/global-account/react/stores/index.js +1 -3
  54. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +26 -31
  55. package/dist/cjs/global-account/react/utils/profileDisplay.d.ts +0 -2
  56. package/dist/cjs/global-account/react/utils/profileDisplay.js +2 -2
  57. package/dist/cjs/shared/constants/chains/supported.d.ts +3 -3
  58. package/dist/cjs/shared/utils/ipfs.js +3 -10
  59. package/dist/esm/anyspend/react/components/AnySpend.js +70 -98
  60. package/dist/esm/anyspend/react/components/AnySpendCustom.js +23 -10
  61. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
  62. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +45 -14
  63. package/dist/esm/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
  64. package/dist/esm/anyspend/react/components/AnySpendDepositUpside.js +38 -0
  65. package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
  66. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +15 -249
  67. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
  68. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +3 -5
  69. package/dist/esm/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  70. package/dist/esm/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  71. package/dist/esm/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  72. package/dist/esm/anyspend/react/components/common/OrderHistory.js +5 -6
  73. package/dist/esm/anyspend/react/components/common/OrderTokenAmount.js +2 -10
  74. package/dist/esm/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
  75. package/dist/esm/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  76. package/dist/esm/anyspend/react/components/common/RecipientSelection.js +1 -1
  77. package/dist/esm/anyspend/react/components/index.d.ts +1 -0
  78. package/dist/esm/anyspend/react/components/index.js +1 -0
  79. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
  80. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +16 -10
  81. package/dist/esm/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
  82. package/dist/esm/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.js +13 -9
  83. package/dist/esm/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
  84. package/dist/esm/anyspend/react/hooks/useCryptoPaymentMethodState.js +48 -0
  85. package/dist/esm/anyspend/react/hooks/useSigMint.d.ts +1 -1
  86. package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +2 -38
  87. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
  88. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +38 -254
  89. package/dist/esm/global-account/react/components/B3DynamicModal.js +15 -23
  90. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
  91. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +280 -113
  92. package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +5 -6
  93. package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +195 -26
  94. package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
  95. package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.js +135 -0
  96. package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +2 -4
  97. package/dist/esm/global-account/react/components/index.d.ts +4 -5
  98. package/dist/esm/global-account/react/components/index.js +5 -9
  99. package/dist/esm/global-account/react/components/ui/Tabs.js +2 -2
  100. package/dist/esm/global-account/react/components/ui/dialog.js +2 -2
  101. package/dist/esm/global-account/react/components/ui/drawer.js +1 -1
  102. package/dist/esm/global-account/react/hooks/index.d.ts +1 -1
  103. package/dist/esm/global-account/react/hooks/index.js +1 -1
  104. package/dist/esm/global-account/react/hooks/useAccountWallet.d.ts +0 -1
  105. package/dist/esm/global-account/react/hooks/useAccountWallet.js +0 -17
  106. package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +2 -2
  107. package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +0 -1
  108. package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +6 -14
  109. package/dist/esm/global-account/react/hooks/useUserQuery.d.ts +2 -2
  110. package/dist/esm/global-account/react/stores/index.d.ts +0 -1
  111. package/dist/esm/global-account/react/stores/index.js +0 -1
  112. package/dist/esm/global-account/react/stores/useModalStore.d.ts +26 -31
  113. package/dist/esm/global-account/react/utils/profileDisplay.d.ts +0 -2
  114. package/dist/esm/global-account/react/utils/profileDisplay.js +2 -2
  115. package/dist/esm/shared/constants/chains/supported.d.ts +3 -3
  116. package/dist/esm/shared/utils/ipfs.js +3 -10
  117. package/dist/styles/index.css +1 -1
  118. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
  119. package/dist/types/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
  120. package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
  121. package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
  122. package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  123. package/dist/types/anyspend/react/components/index.d.ts +1 -0
  124. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
  125. package/dist/types/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
  126. package/dist/types/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
  127. package/dist/types/anyspend/react/hooks/useSigMint.d.ts +1 -1
  128. package/dist/types/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
  129. package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
  130. package/dist/types/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
  131. package/dist/types/global-account/react/components/index.d.ts +4 -5
  132. package/dist/types/global-account/react/hooks/index.d.ts +1 -1
  133. package/dist/types/global-account/react/hooks/useAccountWallet.d.ts +0 -1
  134. package/dist/types/global-account/react/hooks/useAuthentication.d.ts +2 -2
  135. package/dist/types/global-account/react/hooks/useUserQuery.d.ts +2 -2
  136. package/dist/types/global-account/react/stores/index.d.ts +0 -1
  137. package/dist/types/global-account/react/stores/useModalStore.d.ts +26 -31
  138. package/dist/types/global-account/react/utils/profileDisplay.d.ts +0 -2
  139. package/dist/types/shared/constants/chains/supported.d.ts +3 -3
  140. package/package.json +1 -2
  141. package/src/anyspend/react/components/AnySpend.tsx +218 -256
  142. package/src/anyspend/react/components/AnySpendCustom.tsx +31 -16
  143. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +56 -13
  144. package/src/anyspend/react/components/AnySpendDepositUpside.tsx +81 -0
  145. package/src/anyspend/react/components/AnyspendDepositHype.tsx +36 -524
  146. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +14 -7
  147. package/src/anyspend/react/components/common/FeeDetailPanel.tsx +1 -1
  148. package/src/anyspend/react/components/common/FiatPaymentMethod.tsx +2 -2
  149. package/src/anyspend/react/components/common/OrderHistory.tsx +13 -8
  150. package/src/anyspend/react/components/common/OrderTokenAmount.tsx +2 -13
  151. package/src/anyspend/react/components/common/PanelOnrampPayment.tsx +1 -1
  152. package/src/anyspend/react/components/common/PointsDetailPanel.tsx +1 -1
  153. package/src/anyspend/react/components/common/RecipientSelection.tsx +1 -1
  154. package/src/anyspend/react/components/index.ts +1 -0
  155. package/src/anyspend/react/hooks/useAnyspendFlow.ts +24 -12
  156. package/src/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.ts +20 -12
  157. package/src/anyspend/react/hooks/useCryptoPaymentMethodState.ts +71 -0
  158. package/src/global-account/react/components/AccountAssets/AccountAssets.tsx +25 -115
  159. package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +128 -477
  160. package/src/global-account/react/components/B3DynamicModal.tsx +17 -28
  161. package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +433 -332
  162. package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +10 -6
  163. package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +589 -73
  164. package/src/global-account/react/components/ProfileEditor/ProfileEditor.tsx +265 -0
  165. package/src/global-account/react/components/SignInWithB3/SignIn.tsx +7 -11
  166. package/src/global-account/react/components/index.ts +5 -11
  167. package/src/global-account/react/components/ui/Tabs.tsx +13 -5
  168. package/src/global-account/react/components/ui/dialog.tsx +14 -32
  169. package/src/global-account/react/components/ui/drawer.tsx +1 -1
  170. package/src/global-account/react/hooks/index.ts +0 -3
  171. package/src/global-account/react/hooks/useAccountWallet.tsx +0 -26
  172. package/src/global-account/react/hooks/useB3BalanceFromAddresses.ts +0 -1
  173. package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +6 -12
  174. package/src/global-account/react/stores/index.ts +0 -1
  175. package/src/global-account/react/stores/useModalStore.ts +28 -35
  176. package/src/global-account/react/utils/profileDisplay.ts +2 -4
  177. package/src/shared/utils/ipfs.ts +3 -10
  178. package/src/styles/index.css +9 -6
  179. package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +0 -1
  180. package/dist/cjs/global-account/react/components/Deposit/Deposit.js +0 -65
  181. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
  182. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +0 -37
  183. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
  184. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +0 -331
  185. package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
  186. package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.js +0 -34
  187. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
  188. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +0 -23
  189. package/dist/cjs/global-account/react/components/ManageAccount/Header.d.ts +0 -3
  190. package/dist/cjs/global-account/react/components/ManageAccount/Header.js +0 -120
  191. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
  192. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.js +0 -43
  193. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
  194. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +0 -16
  195. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
  196. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +0 -15
  197. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
  198. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +0 -47
  199. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
  200. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +0 -50
  201. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
  202. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.js +0 -8
  203. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
  204. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +0 -106
  205. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
  206. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +0 -22
  207. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
  208. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.js +0 -12
  209. package/dist/cjs/global-account/react/components/Send/Send.d.ts +0 -5
  210. package/dist/cjs/global-account/react/components/Send/Send.js +0 -187
  211. package/dist/cjs/global-account/react/components/icons/BellIcon.d.ts +0 -3
  212. package/dist/cjs/global-account/react/components/icons/BellIcon.js +0 -5
  213. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
  214. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.js +0 -7
  215. package/dist/cjs/global-account/react/components/icons/CopyIcon.d.ts +0 -2
  216. package/dist/cjs/global-account/react/components/icons/CopyIcon.js +0 -7
  217. package/dist/cjs/global-account/react/components/icons/LinkIcon.d.ts +0 -3
  218. package/dist/cjs/global-account/react/components/icons/LinkIcon.js +0 -5
  219. package/dist/cjs/global-account/react/components/icons/LockIcon.d.ts +0 -3
  220. package/dist/cjs/global-account/react/components/icons/LockIcon.js +0 -5
  221. package/dist/cjs/global-account/react/components/icons/WalletIcon.d.ts +0 -2
  222. package/dist/cjs/global-account/react/components/icons/WalletIcon.js +0 -7
  223. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
  224. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.js +0 -36
  225. package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +0 -1
  226. package/dist/esm/global-account/react/components/Deposit/Deposit.js +0 -59
  227. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
  228. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +0 -34
  229. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
  230. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +0 -325
  231. package/dist/esm/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
  232. package/dist/esm/global-account/react/components/ManageAccount/AppsContent.js +0 -32
  233. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
  234. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +0 -21
  235. package/dist/esm/global-account/react/components/ManageAccount/Header.d.ts +0 -3
  236. package/dist/esm/global-account/react/components/ManageAccount/Header.js +0 -81
  237. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
  238. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.js +0 -41
  239. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
  240. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +0 -10
  241. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
  242. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +0 -13
  243. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
  244. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +0 -45
  245. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
  246. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +0 -45
  247. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
  248. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.js +0 -6
  249. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
  250. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +0 -101
  251. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
  252. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +0 -20
  253. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
  254. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.js +0 -10
  255. package/dist/esm/global-account/react/components/Send/Send.d.ts +0 -5
  256. package/dist/esm/global-account/react/components/Send/Send.js +0 -181
  257. package/dist/esm/global-account/react/components/icons/BellIcon.d.ts +0 -3
  258. package/dist/esm/global-account/react/components/icons/BellIcon.js +0 -3
  259. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
  260. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.js +0 -4
  261. package/dist/esm/global-account/react/components/icons/CopyIcon.d.ts +0 -2
  262. package/dist/esm/global-account/react/components/icons/CopyIcon.js +0 -4
  263. package/dist/esm/global-account/react/components/icons/LinkIcon.d.ts +0 -3
  264. package/dist/esm/global-account/react/components/icons/LinkIcon.js +0 -3
  265. package/dist/esm/global-account/react/components/icons/LockIcon.d.ts +0 -3
  266. package/dist/esm/global-account/react/components/icons/LockIcon.js +0 -3
  267. package/dist/esm/global-account/react/components/icons/WalletIcon.d.ts +0 -2
  268. package/dist/esm/global-account/react/components/icons/WalletIcon.js +0 -4
  269. package/dist/esm/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
  270. package/dist/esm/global-account/react/stores/useRecentAddressesStore.js +0 -33
  271. package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +0 -1
  272. package/dist/types/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
  273. package/dist/types/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
  274. package/dist/types/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
  275. package/dist/types/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
  276. package/dist/types/global-account/react/components/ManageAccount/Header.d.ts +0 -3
  277. package/dist/types/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
  278. package/dist/types/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
  279. package/dist/types/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
  280. package/dist/types/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
  281. package/dist/types/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
  282. package/dist/types/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
  283. package/dist/types/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
  284. package/dist/types/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
  285. package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
  286. package/dist/types/global-account/react/components/Send/Send.d.ts +0 -5
  287. package/dist/types/global-account/react/components/icons/BellIcon.d.ts +0 -3
  288. package/dist/types/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
  289. package/dist/types/global-account/react/components/icons/CopyIcon.d.ts +0 -2
  290. package/dist/types/global-account/react/components/icons/LinkIcon.d.ts +0 -3
  291. package/dist/types/global-account/react/components/icons/LockIcon.d.ts +0 -3
  292. package/dist/types/global-account/react/components/icons/WalletIcon.d.ts +0 -2
  293. package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
  294. package/src/global-account/react/components/Deposit/Deposit.tsx +0 -211
  295. package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +0 -84
  296. package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +0 -490
  297. package/src/global-account/react/components/ManageAccount/AppsContent.tsx +0 -79
  298. package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +0 -83
  299. package/src/global-account/react/components/ManageAccount/Header.tsx +0 -230
  300. package/src/global-account/react/components/ManageAccount/HomeActions.tsx +0 -118
  301. package/src/global-account/react/components/ManageAccount/HomeContent.tsx +0 -42
  302. package/src/global-account/react/components/ManageAccount/NFTContent.tsx +0 -24
  303. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +0 -79
  304. package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +0 -87
  305. package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +0 -31
  306. package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +0 -182
  307. package/src/global-account/react/components/ManageAccount/TokenContent.tsx +0 -41
  308. package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +0 -61
  309. package/src/global-account/react/components/Send/Send.tsx +0 -585
  310. package/src/global-account/react/components/icons/BellIcon.tsx +0 -15
  311. package/src/global-account/react/components/icons/ChevronDownIcon.tsx +0 -17
  312. package/src/global-account/react/components/icons/CopyIcon.tsx +0 -22
  313. package/src/global-account/react/components/icons/LinkIcon.tsx +0 -15
  314. package/src/global-account/react/components/icons/LockIcon.tsx +0 -15
  315. package/src/global-account/react/components/icons/WalletIcon.tsx +0 -21
  316. package/src/global-account/react/stores/useRecentAddressesStore.ts +0 -55
@@ -0,0 +1,265 @@
1
+ "use client";
2
+
3
+ import { Users } from "@b3dotfun/b3-api";
4
+ import app from "@b3dotfun/sdk/global-account/app";
5
+ import { Button, useB3, useProfile } from "@b3dotfun/sdk/global-account/react";
6
+ import { validateImageUrl } from "@b3dotfun/sdk/global-account/react/utils/profileDisplay";
7
+ import { cn } from "@b3dotfun/sdk/shared/utils/cn";
8
+ import { debugB3React } from "@b3dotfun/sdk/shared/utils/debug";
9
+ import { getIpfsUrl } from "@b3dotfun/sdk/shared/utils/ipfs";
10
+ import { client } from "@b3dotfun/sdk/shared/utils/thirdweb";
11
+ import { Check, Loader2, Upload, X } from "lucide-react";
12
+ import { useRef, useState } from "react";
13
+ import { toast } from "sonner";
14
+ import { useActiveAccount } from "thirdweb/react";
15
+ import { upload } from "thirdweb/storage";
16
+
17
+ const debug = debugB3React("ProfileEditor");
18
+
19
+ interface ProfileEditorProps {
20
+ onSuccess?: () => void;
21
+ className?: string;
22
+ }
23
+
24
+ export function ProfileEditor({ onSuccess, className }: ProfileEditorProps) {
25
+ const [selectedFile, setSelectedFile] = useState<File | null>(null);
26
+ const [previewUrl, setPreviewUrl] = useState<string | null>(null);
27
+ const [username, setUsername] = useState<string>("");
28
+ const [isUploading, setIsUploading] = useState(false);
29
+ const [isSaving, setIsSaving] = useState(false);
30
+ const fileInputRef = useRef<HTMLInputElement>(null);
31
+ const { user, setUser } = useB3();
32
+
33
+ const account = useActiveAccount();
34
+ const { data: profile, refetch: refreshProfile } = useProfile({
35
+ address: account?.address,
36
+ fresh: true,
37
+ });
38
+
39
+ const rawAvatarUrl = user?.avatar ? getIpfsUrl(user?.avatar) : profile?.avatar;
40
+ const avatarUrl = validateImageUrl(rawAvatarUrl);
41
+ const safePreviewUrl = validateImageUrl(previewUrl);
42
+ const hasAvatar = !!avatarUrl;
43
+ const currentUsername = user?.username || "";
44
+
45
+ const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {
46
+ const file = event.target.files?.[0];
47
+ if (file) {
48
+ // Validate file type
49
+ if (!file.type.startsWith("image/")) {
50
+ toast.error("Please select an image file");
51
+ return;
52
+ }
53
+
54
+ // Validate file size (max 5MB)
55
+ if (file.size > 5 * 1024 * 1024) {
56
+ toast.error("File size must be less than 5MB");
57
+ return;
58
+ }
59
+
60
+ setSelectedFile(file);
61
+
62
+ // Create preview URL
63
+ const url = URL.createObjectURL(file);
64
+ setPreviewUrl(url);
65
+ }
66
+ };
67
+
68
+ const handleRemoveFile = () => {
69
+ setSelectedFile(null);
70
+ if (previewUrl) {
71
+ URL.revokeObjectURL(previewUrl);
72
+ setPreviewUrl(null);
73
+ }
74
+ if (fileInputRef.current) {
75
+ fileInputRef.current.value = "";
76
+ }
77
+ };
78
+
79
+ const handleSave = async () => {
80
+ // Check if there are any changes
81
+ const hasAvatarChange = selectedFile !== null;
82
+ const hasUsernameChange = username.trim() !== "" && username !== currentUsername;
83
+
84
+ if (!hasAvatarChange && !hasUsernameChange) {
85
+ toast.error("Please make at least one change");
86
+ return;
87
+ }
88
+
89
+ setIsSaving(true);
90
+ try {
91
+ let ipfsUrl: string | undefined;
92
+
93
+ // Upload avatar if selected
94
+ if (hasAvatarChange && selectedFile) {
95
+ debug("Starting upload to IPFS", selectedFile);
96
+ setIsUploading(true);
97
+
98
+ ipfsUrl = await upload({
99
+ client,
100
+ files: [selectedFile],
101
+ });
102
+
103
+ debug("Upload successful", ipfsUrl);
104
+ setIsUploading(false);
105
+ }
106
+
107
+ // Update user profile
108
+ let updatedUser = user as Users | undefined;
109
+
110
+ // If both avatar and username need updating, do them sequentially
111
+ // Update avatar first if uploaded
112
+ if (ipfsUrl) {
113
+ // @ts-expect-error this resolved fine, look into why expect-error needed
114
+ updatedUser = await app.service("users").setAvatar(
115
+ {
116
+ avatar: ipfsUrl,
117
+ },
118
+ // @ts-expect-error - our typed client is expecting context even though it's set elsewhere
119
+ {},
120
+ );
121
+ }
122
+
123
+ // Update username if changed (this will use the updated user from avatar change if both were updated)
124
+ if (hasUsernameChange && user?._id) {
125
+ // @ts-expect-error this resolved fine, look into why expect-error needed
126
+ updatedUser = await app.service("users").registerUsername(
127
+ { username: username },
128
+ // @ts-expect-error - our typed client is expecting context even though it's set elsewhere
129
+ {},
130
+ );
131
+ }
132
+
133
+ // Update user state
134
+ setUser(updatedUser);
135
+
136
+ // Refresh profile to get updated data
137
+ await refreshProfile();
138
+
139
+ // Show success message
140
+ const changes = [];
141
+ if (hasAvatarChange) changes.push("avatar");
142
+ if (hasUsernameChange) changes.push("username");
143
+ toast.success(`Successfully updated ${changes.join(" and ")}!`);
144
+
145
+ onSuccess?.();
146
+
147
+ // Clean up
148
+ handleRemoveFile();
149
+ setUsername("");
150
+ } catch (error) {
151
+ debug("Error updating profile:", error);
152
+ toast.error("Failed to update profile. Please try again.");
153
+ } finally {
154
+ setIsUploading(false);
155
+ setIsSaving(false);
156
+ }
157
+ };
158
+
159
+ const handleFileInputClick = () => {
160
+ fileInputRef.current?.click();
161
+ };
162
+
163
+ const isLoading = isUploading || isSaving;
164
+ const hasChanges = selectedFile !== null || (username.trim() !== "" && username !== currentUsername);
165
+
166
+ return (
167
+ <div className={cn("flex flex-col items-center justify-center space-y-6 p-8", className)}>
168
+ <div className="space-y-2 text-center">
169
+ <h2 className="font-neue-montreal-semibold text-b3-grey text-2xl">Edit Your Profile</h2>
170
+ <p className="text-b3-foreground-muted font-neue-montreal-medium">Update your avatar and username</p>
171
+ </div>
172
+
173
+ {/* Avatar Section */}
174
+ <div className="w-full max-w-md space-y-4">
175
+ <div className="space-y-2">
176
+ <label className="text-b3-grey font-neue-montreal-semibold text-sm">Avatar</label>
177
+
178
+ {/* Current/Preview Avatar */}
179
+ <div className="flex justify-center">
180
+ {safePreviewUrl || avatarUrl ? (
181
+ <div className="relative">
182
+ <div className="border-b3-primary-blue h-32 w-32 overflow-hidden rounded-full border-4">
183
+ <img
184
+ src={safePreviewUrl || avatarUrl || ""}
185
+ alt={safePreviewUrl ? "Preview" : "Current avatar"}
186
+ className="h-full w-full object-cover"
187
+ />
188
+ </div>
189
+ {safePreviewUrl && (
190
+ <button
191
+ onClick={handleRemoveFile}
192
+ className="bg-b3-negative absolute -right-2 -top-2 flex h-8 w-8 items-center justify-center rounded-full text-white transition-colors hover:bg-red-600"
193
+ disabled={isLoading}
194
+ >
195
+ <X size={16} />
196
+ </button>
197
+ )}
198
+ </div>
199
+ ) : (
200
+ <div className="bg-b3-primary-wash h-32 w-32 rounded-full" />
201
+ )}
202
+ </div>
203
+
204
+ {/* Upload Button */}
205
+ {!selectedFile && (
206
+ <Button variant="outline" onClick={handleFileInputClick} disabled={isLoading} className="w-full">
207
+ <Upload className="mr-2 h-4 w-4" />
208
+ {hasAvatar ? "Change Avatar" : "Upload Avatar"}
209
+ </Button>
210
+ )}
211
+
212
+ {/* Hidden file input */}
213
+ <input ref={fileInputRef} type="file" accept="image/*" onChange={handleFileSelect} className="hidden" />
214
+ </div>
215
+
216
+ {/* Username Section */}
217
+ <div className="space-y-2">
218
+ <label htmlFor="username" className="text-b3-grey font-neue-montreal-semibold text-sm">
219
+ Username
220
+ </label>
221
+ <input
222
+ id="username"
223
+ type="text"
224
+ value={username}
225
+ onChange={e => setUsername(e.target.value)}
226
+ placeholder={currentUsername || "Enter username"}
227
+ className="border-b3-line bg-b3-background text-b3-grey placeholder:text-b3-foreground-muted font-neue-montreal-medium focus:border-b3-primary-blue w-full rounded-lg border px-4 py-3 transition-colors focus:outline-none"
228
+ disabled={isLoading}
229
+ />
230
+ {currentUsername && (
231
+ <p className="text-b3-foreground-muted font-neue-montreal-medium text-xs">Current: {currentUsername}</p>
232
+ )}
233
+ </div>
234
+ </div>
235
+
236
+ {/* Action Buttons */}
237
+ <div className="flex w-full max-w-md gap-3">
238
+ <Button
239
+ onClick={handleSave}
240
+ disabled={isLoading || !hasChanges}
241
+ className="bg-b3-primary-blue hover:bg-b3-primary-blue/90 flex-1 text-white disabled:opacity-50"
242
+ >
243
+ {isLoading ? (
244
+ <>
245
+ <Loader2 className="mr-2 h-4 w-4 animate-spin" />
246
+ {isUploading ? "Uploading..." : "Saving..."}
247
+ </>
248
+ ) : (
249
+ <>
250
+ <Check className="mr-2 h-4 w-4" />
251
+ Save Changes
252
+ </>
253
+ )}
254
+ </Button>
255
+ </div>
256
+
257
+ {/* Help Text */}
258
+ <div className="text-b3-foreground-muted font-neue-montreal-medium max-w-md text-center text-xs">
259
+ <p>
260
+ Your avatar will be uploaded to IPFS and stored securely. Make sure you have the rights to use this image.
261
+ </p>
262
+ </div>
263
+ </div>
264
+ );
265
+ }
@@ -1,5 +1,4 @@
1
1
  import {
2
- IPFSMediaRenderer,
3
2
  SignInWithB3,
4
3
  SignInWithB3ModalProps,
5
4
  StyleRoot,
@@ -14,7 +13,6 @@ import { cn, truncateAddress } from "@b3dotfun/sdk/shared/utils";
14
13
  import { Menu, MenuButton, MenuItems, Transition } from "@headlessui/react";
15
14
  import { ReactNode, useEffect } from "react";
16
15
  import { useConnectedWallets, useSetActiveWallet, useWalletInfo } from "thirdweb/react";
17
- import { useAccountWalletImage } from "../../hooks/useAccountWallet";
18
16
  import { ManageAccountButton } from "../custom/ManageAccountButton";
19
17
 
20
18
  type SignInProps = {
@@ -46,7 +44,7 @@ export function SignIn(props: SignInWithB3Props) {
46
44
 
47
45
  const isMobile = useIsMobile();
48
46
  const { logout } = useAuthentication(partnerId);
49
- const onDisconnect = async (): Promise<void> => {
47
+ const onDisconnect = async () => {
50
48
  await logout();
51
49
  };
52
50
 
@@ -75,19 +73,17 @@ export function SignIn(props: SignInWithB3Props) {
75
73
  }
76
74
  }, [connectedEOAWallet, isActiveEOAWallet, setActiveWallet, automaticallySetFirstEoa]);
77
75
 
78
- const walletImage = useAccountWalletImage();
79
-
80
76
  // Desktop version - original dropdown menu
81
77
  return (
82
78
  <StyleRoot>
83
79
  <Menu className={`relative flex items-center ${className || ""}`} as="div">
84
80
  {globalAddress ? (
85
81
  <>
86
- <MenuButton className="bg-b3-react-background group flex h-10 items-center gap-1 rounded-xl px-3 focus:outline-none">
87
- {!!walletImage && (
88
- <IPFSMediaRenderer
89
- src={walletImage}
90
- alt="Wallet Image"
82
+ <MenuButton className="bg-b3-react-background group flex h-10 items-center gap-1 rounded-xl px-3">
83
+ {!!wallet.meta?.icon && (
84
+ <img
85
+ src={wallet.meta.icon}
86
+ alt={wallet.meta.icon}
91
87
  className="bg-b3-react-primary h-6 w-6 rounded-full object-cover opacity-100"
92
88
  />
93
89
  )}
@@ -102,7 +98,7 @@ export function SignIn(props: SignInWithB3Props) {
102
98
  leaveTo="scale-95 opacity-0"
103
99
  >
104
100
  <MenuItems
105
- className="b3-root absolute -right-4 top-full min-w-64 rounded-2xl border focus:outline-none lg:right-0"
101
+ className="b3-root absolute -right-4 top-full min-w-64 rounded-2xl border lg:right-0"
106
102
  modal={false}
107
103
  // TODO: Figure out why setting anchor on mobile causes z-index issues where it appears under elements
108
104
  anchor={isMobile ? "top end" : undefined}
@@ -1,4 +1,3 @@
1
- // TODO woj: Barrel file for all components, this might be reason of bundle size issues
2
1
  // Core Components
3
2
  export { B3DynamicModal } from "./B3DynamicModal";
4
3
  export { B3Provider, InnerProvider } from "./B3Provider/B3Provider";
@@ -20,14 +19,9 @@ export { getConnectOptionsFromStrategy, isWalletType, type AllowedStrategy } fro
20
19
  // ManageAccount Components
21
20
  export { ManageAccount } from "./ManageAccount/ManageAccount";
22
21
 
23
- // Deposit Components
24
- export { Deposit } from "./Deposit/Deposit";
25
-
26
- // Send Components
27
- export { Send } from "./Send/Send";
28
-
29
- // Media Components
30
- export { IPFSMediaRenderer } from "./IPFSMediaRenderer/IPFSMediaRenderer";
22
+ // Profile Components
23
+ export { AvatarEditor } from "./AvatarEditor/AvatarEditor";
24
+ export { ProfileEditor } from "./ProfileEditor/ProfileEditor";
31
25
 
32
26
  // RequestPermissions Components
33
27
  export { RequestPermissions } from "./RequestPermissions/RequestPermissions";
@@ -106,12 +100,12 @@ export { ScrollArea, ScrollBar } from "./ui/scroll-area";
106
100
  export { ShinyButton } from "./ui/ShinyButton";
107
101
  export { Skeleton } from "./ui/skeleton";
108
102
  export {
103
+ TabTrigger as TabTriggerPrimitive,
109
104
  TabsContent as TabsContentPrimitive,
110
105
  TabsList as TabsListPrimitive,
111
106
  Tabs as TabsPrimitive,
112
- TabTrigger as TabTriggerPrimitive,
113
107
  } from "./ui/Tabs";
114
- export { Tabs, TabsContent, TabsList, TabsTransitionWrapper, TabTrigger } from "./ui/TabSystem";
108
+ export { TabTrigger, Tabs, TabsContent, TabsList, TabsTransitionWrapper } from "./ui/TabSystem";
115
109
  export { TextLoop } from "./ui/text-loop";
116
110
  export { TextShimmer } from "./ui/text-shimmer";
117
111
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip";
@@ -16,18 +16,26 @@ export const Tabs = ({
16
16
  );
17
17
 
18
18
  export function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {
19
- return <TabsPrimitive.List className={cn("", className)} {...props} />;
19
+ return (
20
+ <TabsPrimitive.List
21
+ className={cn(
22
+ "border-b3-react-border bg-b3-react-background inline-flex h-12 w-full items-center justify-center rounded-lg border",
23
+ className,
24
+ )}
25
+ {...props}
26
+ />
27
+ );
20
28
  }
21
29
 
22
30
  export function TabTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {
23
31
  return (
24
32
  <TabsPrimitive.Trigger
25
33
  className={cn(
26
- "text-md inline-flex h-full items-center justify-center whitespace-nowrap px-3 font-semibold transition-all",
34
+ "inline-flex h-full items-center justify-center whitespace-nowrap px-3 text-sm font-medium transition-all",
27
35
  "focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
28
- "data-[state=active]:text-b3-react-primary data-[state=active]:font-bold",
29
- "hover:text-b3-react-foreground data-[state=inactive]:text-b3-react-muted-foreground",
30
- "flex-1",
36
+ "data-[state=active]:bg-b3-react-subtle data-[state=active]:text-b3-react-primary data-[state=active]:font-bold",
37
+ "border-b3-react-border hover:text-b3-react-foreground data-[state=inactive]:border-b3-react-border data-[state=inactive]:text-b3-react-muted-foreground",
38
+ "flex-1 border-r",
31
39
  className,
32
40
  )}
33
41
  {...props}
@@ -42,7 +42,7 @@ type DialogContentProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.
42
42
 
43
43
  const DialogContent: React.ForwardRefExoticComponent<DialogContentProps & React.RefAttributes<DialogContentElement>> =
44
44
  React.forwardRef<DialogContentElement, DialogContentProps>(
45
- ({ className, children, hideCloseButton = true, closeBtnClassName, ...props }, ref) => {
45
+ ({ className, children, hideCloseButton = false, closeBtnClassName, ...props }, ref) => {
46
46
  const container = typeof window !== "undefined" ? document.getElementById("b3-root") : null;
47
47
  return (
48
48
  <DialogPortal container={container}>
@@ -50,7 +50,7 @@ const DialogContent: React.ForwardRefExoticComponent<DialogContentProps & React.
50
50
  <DialogPrimitive.Content
51
51
  ref={ref}
52
52
  className={cn(
53
- "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 border shadow-lg !outline-none",
53
+ "bg-b3-react-background fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg !outline-none",
54
54
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 duration-500",
55
55
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
56
56
  "data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
@@ -60,36 +60,18 @@ const DialogContent: React.ForwardRefExoticComponent<DialogContentProps & React.
60
60
  )}
61
61
  {...props}
62
62
  >
63
- <div className="modal-inner-content flex flex-1 flex-col overflow-hidden rounded-xl border border-[#D1D1D6] bg-white shadow-[0_20px_24px_-4px_rgba(10,13,18,0.08),0_8px_8px_-4px_rgba(10,13,18,0.03),0_3px_3px_-1.5px_rgba(10,13,18,0.04)]">
64
- {children}
65
- {!hideCloseButton && (
66
- <DialogPrimitive.Close
67
- className={cn(
68
- "modal-close-button data-[state=open]:bg-b3-react-background data-[state=open]:text-b3-react-muted-foreground absolute right-2 top-2 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400",
69
- closeBtnClassName,
70
- )}
71
- >
72
- <X className="h-5 w-5" />
73
- <span className="sr-only">Close</span>
74
- </DialogPrimitive.Close>
75
- )}
76
- </div>
77
- {/* Global Account Footer */}
78
- <div className="b3-modal-ga-branding flex items-center justify-center gap-1.5 pt-[10px]">
79
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
80
- <path
81
- d="M2 4.66667C2 3.19391 3.19391 2 4.66667 2H11.3333C12.8061 2 14 3.19391 14 4.66667V11.3333C14 12.8061 12.8061 14 11.3333 14H4.66667C3.19391 14 2 12.8061 2 11.3333V4.66667Z"
82
- fill="#0B57C2"
83
- />
84
- <path
85
- d="M5.33333 6C5.33333 5.63181 5.63181 5.33333 6 5.33333H10C10.3682 5.33333 10.6667 5.63181 10.6667 6V10C10.6667 10.3682 10.3682 10.6667 10 10.6667H6C5.63181 10.6667 5.33333 10.3682 5.33333 10V6Z"
86
- fill="white"
87
- />
88
- </svg>
89
- <span className="font-neue-montreal-semibold text-xs uppercase leading-none tracking-[0.72px] text-[#0B57C2]">
90
- Global Account
91
- </span>
92
- </div>
63
+ {children}
64
+ {!hideCloseButton && (
65
+ <DialogPrimitive.Close
66
+ className={cn(
67
+ "modal-close-button data-[state=open]:bg-b3-react-background data-[state=open]:text-b3-react-muted-foreground absolute right-2 top-2 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400",
68
+ closeBtnClassName,
69
+ )}
70
+ >
71
+ <X className="h-5 w-5" />
72
+ <span className="sr-only">Close</span>
73
+ </DialogPrimitive.Close>
74
+ )}
93
75
  </DialogPrimitive.Content>
94
76
  </DialogPortal>
95
77
  );
@@ -35,7 +35,7 @@ const DrawerContent = React.forwardRef<
35
35
  <DrawerPrimitive.Content
36
36
  ref={ref}
37
37
  className={cn(
38
- "bg-b3-react-background fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border py-6 pt-5",
38
+ "bg-b3-react-background fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border py-6",
39
39
  className,
40
40
  )}
41
41
  {...props}
@@ -26,12 +26,9 @@ export { useOneBalance } from "./useOneBalance";
26
26
  export {
27
27
  useProfile,
28
28
  useProfilePreference,
29
- useProfileSettings,
30
- useDisplayName,
31
29
  type CombinedProfile,
32
30
  type PreferenceRequestBody,
33
31
  type Profile,
34
- type DisplayNameRequestBody,
35
32
  } from "./useProfile";
36
33
  export { useQueryB3 } from "./useQueryB3";
37
34
  export { useQueryBSMNT } from "./useQueryBSMNT";
@@ -112,29 +112,3 @@ export function useAccountWallet(): {
112
112
 
113
113
  return res;
114
114
  }
115
-
116
- export function useAccountWalletImage(): string {
117
- const { account, user } = useB3();
118
-
119
- const activeWallet = useActiveWallet();
120
- const connectedWallets = useConnectedWallets();
121
-
122
- const connectedSmartWallet = connectedWallets.find(wallet => wallet.id === ecosystemWalletId);
123
- const connectedEOAWallet = connectedWallets.find(wallet => wallet.id !== ecosystemWalletId);
124
- const isActiveSmartWallet = activeWallet?.id === connectedSmartWallet?.id;
125
-
126
- const { data: walletImage } = useWalletImage(connectedEOAWallet?.id);
127
-
128
- // If not EOA sign in, then we need to show the smart wallet icon
129
- const lastAuthProvider = useLastAuthProvider();
130
-
131
- const smartWalletIcon =
132
- lastAuthProvider && !connectedEOAWallet
133
- ? socialIcons[lastAuthProvider as keyof typeof socialIcons]
134
- : "https://gradvatar.com/0x0000000000000000000000000000000000000000"; // show smart wallet of eoa wallet is gradvatar
135
-
136
- const { data: profileData } = useProfile({ address: account?.address });
137
- const avatarUrl = user?.avatar || profileData?.avatar;
138
-
139
- return avatarUrl || (isActiveSmartWallet ? smartWalletIcon : walletImage) || "";
140
- }
@@ -104,7 +104,6 @@ export function useB3BalanceFromAddresses(
104
104
  enabled: (options?.enabled ?? true) && normalizedAddresses.length > 0,
105
105
  refetchInterval: options?.refetchInterval ?? 30000, // Default 30s refresh
106
106
  staleTime: 10000, // Consider data stale after 10s
107
- structuralSharing: false, // Disable structural sharing because data contains BigInt values
108
107
  });
109
108
  }
110
109
 
@@ -6,7 +6,6 @@ import invariant from "invariant";
6
6
  import { useCallback, useState } from "react";
7
7
  import { toast } from "sonner";
8
8
  import { prepareTransaction, sendTransaction as twSendTransaction } from "thirdweb";
9
- import { useActiveWallet } from "thirdweb/react";
10
9
  import { isAddress } from "viem";
11
10
  import { useSwitchChain } from "wagmi";
12
11
  import { useB3 } from "../components";
@@ -29,7 +28,6 @@ invariant(partnerId, "Partner ID is required");
29
28
  export function useUnifiedChainSwitchAndExecute() {
30
29
  const { switchChainAsync } = useSwitchChain();
31
30
  const [isSwitchingOrExecuting, setIsSwitchingOrExecuting] = useState(false);
32
- const activeWallet = useActiveWallet();
33
31
 
34
32
  const { isActiveSmartWallet, isActiveEOAWallet, connectedEOAWallet } = useAccountWallet();
35
33
  const { account: aaAccount } = useB3();
@@ -49,12 +47,12 @@ export function useUnifiedChainSwitchAndExecute() {
49
47
  return;
50
48
  }
51
49
 
52
- const currentChainId = activeWallet?.getChain()?.id;
50
+ const currentChainId = connectedEOAWallet?.getChain()?.id;
53
51
  const onCorrectChain = currentChainId === targetChainId;
54
52
 
55
53
  // Helper function to execute the transaction
56
54
  const executeTransaction = async (): Promise<string> => {
57
- const signer = activeWallet?.getAccount();
55
+ const signer = connectedEOAWallet?.getAccount();
58
56
  if (!signer) {
59
57
  throw new Error("No account connected");
60
58
  }
@@ -62,7 +60,7 @@ export function useUnifiedChainSwitchAndExecute() {
62
60
  // Coinbase Smart Wallet specific chain switching (different behavior from other wallets)
63
61
  const walletChain = connectedEOAWallet.getChain();
64
62
  if (walletChain?.id !== targetChainId) {
65
- activeWallet?.switchChain(getThirdwebChain(targetChainId));
63
+ connectedEOAWallet?.switchChain(getThirdwebChain(targetChainId));
66
64
  }
67
65
 
68
66
  invariant(isAddress(params.to), "params.to is not a valid address");
@@ -121,7 +119,7 @@ export function useUnifiedChainSwitchAndExecute() {
121
119
  setIsSwitchingOrExecuting(false);
122
120
  }
123
121
  },
124
- [connectedEOAWallet, activeWallet, switchChainAsync],
122
+ [connectedEOAWallet, switchChainAsync],
125
123
  );
126
124
 
127
125
  // Handle AA wallet transaction (no chain switch needed for AA)
@@ -186,14 +184,10 @@ export function useUnifiedChainSwitchAndExecute() {
186
184
  // Check which wallet type is active
187
185
  if (isActiveSmartWallet) {
188
186
  return handleAASendTransaction(targetChainId, params);
189
- } else if (isActiveEOAWallet) {
190
- return handleEOASwitchChainAndSendTransaction(targetChainId, params);
191
- } else {
192
- toast.error("No wallet connected");
193
- return undefined;
194
187
  }
188
+ return handleEOASwitchChainAndSendTransaction(targetChainId, params);
195
189
  },
196
- [isActiveSmartWallet, isActiveEOAWallet, handleAASendTransaction, handleEOASwitchChainAndSendTransaction],
190
+ [isActiveSmartWallet, handleAASendTransaction, handleEOASwitchChainAndSendTransaction],
197
191
  );
198
192
 
199
193
  return {
@@ -1,6 +1,5 @@
1
1
  export { useAuthStore } from "./useAuthStore";
2
2
  export { useModalStore } from "./useModalStore";
3
- export { useRecentAddressesStore } from "./useRecentAddressesStore";
4
3
 
5
4
  export type {
6
5
  AnySpendBuySpinProps,