@b3dotfun/sdk 0.1.69 → 0.1.70

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 (538) hide show
  1. package/dist/cjs/anyspend/constants/rpc.d.ts +1 -1
  2. package/dist/cjs/anyspend/constants/rpc.js +1 -1
  3. package/dist/cjs/anyspend/react/components/AnySpend.d.ts +2 -0
  4. package/dist/cjs/anyspend/react/components/AnySpend.js +12 -4
  5. package/dist/cjs/anyspend/react/components/AnySpendBondKit.d.ts +1 -1
  6. package/dist/cjs/anyspend/react/components/AnySpendBondKit.js +2 -2
  7. package/dist/cjs/anyspend/react/components/AnySpendBuySpin.d.ts +2 -1
  8. package/dist/cjs/anyspend/react/components/AnySpendBuySpin.js +2 -2
  9. package/dist/cjs/anyspend/react/components/AnySpendCollectorClubPurchase.d.ts +5 -1
  10. package/dist/cjs/anyspend/react/components/AnySpendCollectorClubPurchase.js +2 -2
  11. package/dist/cjs/anyspend/react/components/AnySpendCustom.d.ts +2 -0
  12. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +7 -3
  13. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +2 -0
  14. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +21 -14
  15. package/dist/cjs/anyspend/react/components/AnySpendDeposit.d.ts +3 -1
  16. package/dist/cjs/anyspend/react/components/AnySpendDeposit.js +12 -6
  17. package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.d.ts +2 -1
  18. package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.js +2 -2
  19. package/dist/cjs/anyspend/react/components/AnySpendNFT.d.ts +3 -1
  20. package/dist/cjs/anyspend/react/components/AnySpendNFT.js +4 -4
  21. package/dist/cjs/anyspend/react/components/AnySpendStakeB3.d.ts +2 -1
  22. package/dist/cjs/anyspend/react/components/AnySpendStakeB3.js +3 -3
  23. package/dist/cjs/anyspend/react/components/AnySpendStakeB3ExactIn.d.ts +2 -1
  24. package/dist/cjs/anyspend/react/components/AnySpendStakeB3ExactIn.js +3 -3
  25. package/dist/cjs/anyspend/react/components/AnySpendStakeUpside.d.ts +3 -1
  26. package/dist/cjs/anyspend/react/components/AnySpendStakeUpside.js +2 -2
  27. package/dist/cjs/anyspend/react/components/AnySpendStakeUpsideExactIn.d.ts +2 -1
  28. package/dist/cjs/anyspend/react/components/AnySpendStakeUpsideExactIn.js +2 -2
  29. package/dist/cjs/anyspend/react/components/AnySpendWorkflowTrigger.d.ts +3 -1
  30. package/dist/cjs/anyspend/react/components/AnySpendWorkflowTrigger.js +2 -2
  31. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
  32. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +2 -2
  33. package/dist/cjs/anyspend/react/components/AnyspendSignatureMint.d.ts +2 -1
  34. package/dist/cjs/anyspend/react/components/AnyspendSignatureMint.js +2 -2
  35. package/dist/cjs/anyspend/react/components/checkout/AnySpendCheckout.d.ts +5 -1
  36. package/dist/cjs/anyspend/react/components/checkout/AnySpendCheckout.js +15 -6
  37. package/dist/cjs/anyspend/react/components/checkout/AnySpendCheckoutTrigger.d.ts +3 -1
  38. package/dist/cjs/anyspend/react/components/checkout/AnySpendCheckoutTrigger.js +2 -2
  39. package/dist/cjs/anyspend/react/components/checkout/CartItemRow.d.ts +2 -1
  40. package/dist/cjs/anyspend/react/components/checkout/CartSummary.d.ts +6 -4
  41. package/dist/cjs/anyspend/react/components/checkout/CartSummary.js +13 -11
  42. package/dist/cjs/anyspend/react/components/checkout/CheckoutCartPanel.d.ts +3 -1
  43. package/dist/cjs/anyspend/react/components/checkout/CheckoutCartPanel.js +5 -4
  44. package/dist/cjs/anyspend/react/components/checkout/CheckoutFormPanel.d.ts +3 -1
  45. package/dist/cjs/anyspend/react/components/checkout/CheckoutFormPanel.js +2 -2
  46. package/dist/cjs/anyspend/react/components/checkout/CheckoutPaymentPanel.d.ts +3 -1
  47. package/dist/cjs/anyspend/react/components/checkout/CheckoutPaymentPanel.js +15 -7
  48. package/dist/cjs/anyspend/react/components/checkout/CheckoutSuccess.d.ts +2 -1
  49. package/dist/cjs/anyspend/react/components/checkout/CheckoutSuccess.js +5 -3
  50. package/dist/cjs/anyspend/react/components/checkout/CryptoPayPanel.js +43 -23
  51. package/dist/cjs/anyspend/react/components/checkout/DiscountCodeInput.d.ts +3 -1
  52. package/dist/cjs/anyspend/react/components/checkout/DiscountCodeInput.js +3 -6
  53. package/dist/cjs/anyspend/react/components/checkout/FiatCheckoutPanel.js +1 -2
  54. package/dist/cjs/anyspend/react/components/checkout/KycGate.js +1 -2
  55. package/dist/cjs/anyspend/react/components/checkout/PriceSkeleton.d.ts +5 -0
  56. package/dist/cjs/anyspend/react/components/checkout/PriceSkeleton.js +9 -0
  57. package/dist/cjs/anyspend/react/components/checkout/ShippingSelector.d.ts +3 -1
  58. package/dist/cjs/anyspend/react/components/checkout/ShippingSelector.js +3 -2
  59. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +8 -0
  60. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +10 -9
  61. package/dist/cjs/anyspend/react/components/common/InsufficientDepositPayment.js +2 -2
  62. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +7 -2
  63. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.js +2 -2
  64. package/dist/cjs/anyspend/react/components/common/OrderStatus.js +37 -6
  65. package/dist/cjs/anyspend/react/components/common/StepProgress.d.ts +2 -0
  66. package/dist/cjs/anyspend/react/components/common/StepProgress.js +7 -2
  67. package/dist/cjs/anyspend/react/components/common/TransferCryptoDetails.js +2 -2
  68. package/dist/cjs/anyspend/react/hooks/useAnyspendCreateOnrampOrder.js +4 -6
  69. package/dist/cjs/anyspend/react/hooks/useKycStatus.d.ts +3 -1
  70. package/dist/cjs/anyspend/react/hooks/useKycStatus.js +11 -7
  71. package/dist/cjs/anyspend/utils/chain.js +8 -7
  72. package/dist/cjs/app.shared.js +9 -7
  73. package/dist/cjs/global-account/better-auth-client.d.ts +1883 -0
  74. package/dist/cjs/global-account/better-auth-client.js +17 -0
  75. package/dist/cjs/global-account/bsmnt.d.ts +0 -1
  76. package/dist/cjs/global-account/bsmnt.js +0 -6
  77. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +3 -1
  78. package/dist/cjs/global-account/react/components/B3DynamicModal.js +5 -2
  79. package/dist/cjs/global-account/react/components/B3Provider/AuthenticationProvider.d.ts +3 -1
  80. package/dist/cjs/global-account/react/components/B3Provider/AuthenticationProvider.js +2 -1
  81. package/dist/cjs/global-account/react/components/B3Provider/B3ConfigProvider.d.ts +4 -1
  82. package/dist/cjs/global-account/react/components/B3Provider/B3ConfigProvider.js +2 -1
  83. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.d.ts +11 -2
  84. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +10 -13
  85. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.native.js +6 -8
  86. package/dist/cjs/global-account/react/components/B3Provider/BetterAuthProvider.d.ts +16 -0
  87. package/dist/cjs/global-account/react/components/B3Provider/BetterAuthProvider.js +120 -0
  88. package/dist/cjs/global-account/react/components/B3Provider/LocalSDKProvider.d.ts +3 -1
  89. package/dist/cjs/global-account/react/components/B3Provider/LocalSDKProvider.js +3 -1
  90. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +3 -1
  91. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +4 -2
  92. package/dist/cjs/global-account/react/components/LinkAccount/LinkedAccountItem.js +2 -1
  93. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +4 -2
  94. package/dist/cjs/global-account/react/components/ManageAccount/Header.js +36 -4
  95. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +4 -1
  96. package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +6 -0
  97. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +17 -6
  98. package/dist/cjs/global-account/react/components/ManageAccount/SessionDurationContent.d.ts +5 -0
  99. package/dist/cjs/global-account/react/components/ManageAccount/SessionDurationContent.js +57 -0
  100. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +14 -29
  101. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +27 -16
  102. package/dist/cjs/global-account/react/components/Send/Send.js +5 -2
  103. package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthResetPassword.d.ts +21 -0
  104. package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthResetPassword.js +68 -0
  105. package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthSignIn.d.ts +39 -0
  106. package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthSignIn.js +173 -0
  107. package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthVerifyEmail.d.ts +37 -0
  108. package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthVerifyEmail.js +85 -0
  109. package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +14 -4
  110. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.d.ts +1 -1
  111. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +14 -5
  112. package/dist/cjs/global-account/react/components/SignInWithB3/components/AuthButton.js +10 -1
  113. package/dist/cjs/global-account/react/components/SignInWithB3/components/PasswordInput.d.ts +10 -0
  114. package/dist/cjs/global-account/react/components/SignInWithB3/components/PasswordInput.js +10 -0
  115. package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.d.ts +8 -0
  116. package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.js +141 -0
  117. package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +96 -15
  118. package/dist/cjs/global-account/react/components/SignInWithB3/utils/signInUtils.d.ts +5 -3
  119. package/dist/cjs/global-account/react/components/SignInWithB3/utils/signInUtils.js +20 -3
  120. package/dist/cjs/global-account/react/components/SingleUserSearchSelector/SingleUserSearchSelector.js +2 -1
  121. package/dist/cjs/global-account/react/components/Toast/ToastContext.d.ts +3 -0
  122. package/dist/cjs/global-account/react/components/Toast/ToastContext.js +30 -7
  123. package/dist/cjs/global-account/react/components/UserAvatar/UserAvatar.d.ts +18 -0
  124. package/dist/cjs/global-account/react/components/UserAvatar/UserAvatar.js +27 -0
  125. package/dist/cjs/global-account/react/components/custom/Button.d.ts +1 -1
  126. package/dist/cjs/global-account/react/components/index.d.ts +5 -0
  127. package/dist/cjs/global-account/react/components/index.js +12 -3
  128. package/dist/cjs/global-account/react/components/ui/button.d.ts +1 -1
  129. package/dist/cjs/global-account/react/hooks/index.d.ts +1 -0
  130. package/dist/cjs/global-account/react/hooks/index.js +5 -2
  131. package/dist/cjs/global-account/react/hooks/useAuth.js +26 -15
  132. package/dist/cjs/global-account/react/hooks/useAuthentication.js +23 -12
  133. package/dist/cjs/global-account/react/hooks/useAutoSelectWallet.d.ts +6 -3
  134. package/dist/cjs/global-account/react/hooks/useAutoSelectWallet.js +31 -3
  135. package/dist/cjs/global-account/react/hooks/useBetterAuth.d.ts +973 -0
  136. package/dist/cjs/global-account/react/hooks/useBetterAuth.js +158 -0
  137. package/dist/cjs/global-account/react/hooks/useConnect.d.ts +2 -2
  138. package/dist/cjs/global-account/react/hooks/useFirstEOA.d.ts +8 -8
  139. package/dist/cjs/global-account/react/hooks/useTWAuth.js +0 -1
  140. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +42 -1
  141. package/dist/cjs/global-account/react/utils/createWagmiConfig.d.ts +4 -31
  142. package/dist/cjs/global-account/react/utils/createWagmiConfig.js +5 -24
  143. package/dist/cjs/global-account/react/utils/index.d.ts +0 -1
  144. package/dist/cjs/global-account/react/utils/index.js +0 -1
  145. package/dist/cjs/global-account/react/utils/profileDisplay.js +17 -18
  146. package/dist/cjs/shared/constants/chains/b3Chain.d.ts +7 -7
  147. package/dist/cjs/shared/constants/chains/b3Chain.js +4 -4
  148. package/dist/cjs/shared/constants/chains/b3Viem.d.ts +6 -0
  149. package/dist/cjs/shared/constants/chains/b3Viem.js +19 -0
  150. package/dist/cjs/shared/constants/chains/supported.d.ts +1 -1
  151. package/dist/cjs/shared/constants/index.d.ts +1 -0
  152. package/dist/cjs/shared/constants/index.js +2 -1
  153. package/dist/cjs/shared/generated/chain-networks.json +2 -2
  154. package/dist/cjs/shared/utils/chains.d.ts +1 -1
  155. package/dist/cjs/shared/utils/chains.js +2 -2
  156. package/dist/cjs/shared/utils/session-duration.d.ts +15 -0
  157. package/dist/cjs/shared/utils/session-duration.js +69 -0
  158. package/dist/cjs/wallet/react/components/ConnectWallet.d.ts +11 -0
  159. package/dist/cjs/wallet/react/components/ConnectWallet.js +467 -0
  160. package/dist/cjs/wallet/react/components/WalletProvider.d.ts +35 -0
  161. package/dist/cjs/wallet/react/components/WalletProvider.js +20 -0
  162. package/dist/cjs/wallet/react/hooks/useWalletDisconnect.d.ts +13 -0
  163. package/dist/cjs/wallet/react/hooks/useWalletDisconnect.js +22 -0
  164. package/dist/cjs/wallet/react/hooks/useWalletState.d.ts +31 -0
  165. package/dist/cjs/wallet/react/hooks/useWalletState.js +63 -0
  166. package/dist/cjs/wallet/react/index.d.ts +5 -0
  167. package/dist/cjs/wallet/react/index.js +16 -0
  168. package/dist/cjs/wallet/utils/createWalletConfig.d.ts +21 -0
  169. package/dist/cjs/wallet/utils/createWalletConfig.js +24 -0
  170. package/dist/esm/anyspend/constants/rpc.d.ts +1 -1
  171. package/dist/esm/anyspend/constants/rpc.js +1 -1
  172. package/dist/esm/anyspend/react/components/AnySpend.d.ts +2 -0
  173. package/dist/esm/anyspend/react/components/AnySpend.js +12 -4
  174. package/dist/esm/anyspend/react/components/AnySpendBondKit.d.ts +1 -1
  175. package/dist/esm/anyspend/react/components/AnySpendBondKit.js +2 -2
  176. package/dist/esm/anyspend/react/components/AnySpendBuySpin.d.ts +2 -1
  177. package/dist/esm/anyspend/react/components/AnySpendBuySpin.js +2 -2
  178. package/dist/esm/anyspend/react/components/AnySpendCollectorClubPurchase.d.ts +5 -1
  179. package/dist/esm/anyspend/react/components/AnySpendCollectorClubPurchase.js +2 -2
  180. package/dist/esm/anyspend/react/components/AnySpendCustom.d.ts +2 -0
  181. package/dist/esm/anyspend/react/components/AnySpendCustom.js +7 -3
  182. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +2 -0
  183. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +21 -14
  184. package/dist/esm/anyspend/react/components/AnySpendDeposit.d.ts +3 -1
  185. package/dist/esm/anyspend/react/components/AnySpendDeposit.js +13 -7
  186. package/dist/esm/anyspend/react/components/AnySpendDepositUpside.d.ts +2 -1
  187. package/dist/esm/anyspend/react/components/AnySpendDepositUpside.js +2 -2
  188. package/dist/esm/anyspend/react/components/AnySpendNFT.d.ts +3 -1
  189. package/dist/esm/anyspend/react/components/AnySpendNFT.js +4 -4
  190. package/dist/esm/anyspend/react/components/AnySpendStakeB3.d.ts +2 -1
  191. package/dist/esm/anyspend/react/components/AnySpendStakeB3.js +4 -4
  192. package/dist/esm/anyspend/react/components/AnySpendStakeB3ExactIn.d.ts +2 -1
  193. package/dist/esm/anyspend/react/components/AnySpendStakeB3ExactIn.js +4 -4
  194. package/dist/esm/anyspend/react/components/AnySpendStakeUpside.d.ts +3 -1
  195. package/dist/esm/anyspend/react/components/AnySpendStakeUpside.js +2 -2
  196. package/dist/esm/anyspend/react/components/AnySpendStakeUpsideExactIn.d.ts +2 -1
  197. package/dist/esm/anyspend/react/components/AnySpendStakeUpsideExactIn.js +2 -2
  198. package/dist/esm/anyspend/react/components/AnySpendWorkflowTrigger.d.ts +3 -1
  199. package/dist/esm/anyspend/react/components/AnySpendWorkflowTrigger.js +2 -2
  200. package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
  201. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +2 -2
  202. package/dist/esm/anyspend/react/components/AnyspendSignatureMint.d.ts +2 -1
  203. package/dist/esm/anyspend/react/components/AnyspendSignatureMint.js +2 -2
  204. package/dist/esm/anyspend/react/components/checkout/AnySpendCheckout.d.ts +5 -1
  205. package/dist/esm/anyspend/react/components/checkout/AnySpendCheckout.js +15 -6
  206. package/dist/esm/anyspend/react/components/checkout/AnySpendCheckoutTrigger.d.ts +3 -1
  207. package/dist/esm/anyspend/react/components/checkout/AnySpendCheckoutTrigger.js +2 -2
  208. package/dist/esm/anyspend/react/components/checkout/CartItemRow.d.ts +2 -1
  209. package/dist/esm/anyspend/react/components/checkout/CartSummary.d.ts +6 -4
  210. package/dist/esm/anyspend/react/components/checkout/CartSummary.js +13 -11
  211. package/dist/esm/anyspend/react/components/checkout/CheckoutCartPanel.d.ts +3 -1
  212. package/dist/esm/anyspend/react/components/checkout/CheckoutCartPanel.js +5 -4
  213. package/dist/esm/anyspend/react/components/checkout/CheckoutFormPanel.d.ts +3 -1
  214. package/dist/esm/anyspend/react/components/checkout/CheckoutFormPanel.js +2 -2
  215. package/dist/esm/anyspend/react/components/checkout/CheckoutPaymentPanel.d.ts +3 -1
  216. package/dist/esm/anyspend/react/components/checkout/CheckoutPaymentPanel.js +16 -8
  217. package/dist/esm/anyspend/react/components/checkout/CheckoutSuccess.d.ts +2 -1
  218. package/dist/esm/anyspend/react/components/checkout/CheckoutSuccess.js +5 -3
  219. package/dist/esm/anyspend/react/components/checkout/CryptoPayPanel.js +44 -24
  220. package/dist/esm/anyspend/react/components/checkout/DiscountCodeInput.d.ts +3 -1
  221. package/dist/esm/anyspend/react/components/checkout/DiscountCodeInput.js +3 -6
  222. package/dist/esm/anyspend/react/components/checkout/FiatCheckoutPanel.js +2 -3
  223. package/dist/esm/anyspend/react/components/checkout/KycGate.js +2 -3
  224. package/dist/esm/anyspend/react/components/checkout/PriceSkeleton.d.ts +5 -0
  225. package/dist/esm/anyspend/react/components/checkout/PriceSkeleton.js +6 -0
  226. package/dist/esm/anyspend/react/components/checkout/ShippingSelector.d.ts +3 -1
  227. package/dist/esm/anyspend/react/components/checkout/ShippingSelector.js +3 -2
  228. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +8 -0
  229. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +9 -8
  230. package/dist/esm/anyspend/react/components/common/InsufficientDepositPayment.js +2 -2
  231. package/dist/esm/anyspend/react/components/common/OrderDetails.js +8 -3
  232. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.js +2 -2
  233. package/dist/esm/anyspend/react/components/common/OrderStatus.js +34 -3
  234. package/dist/esm/anyspend/react/components/common/StepProgress.d.ts +2 -0
  235. package/dist/esm/anyspend/react/components/common/StepProgress.js +4 -2
  236. package/dist/esm/anyspend/react/components/common/TransferCryptoDetails.js +2 -2
  237. package/dist/esm/anyspend/react/hooks/useAnyspendCreateOnrampOrder.js +5 -7
  238. package/dist/esm/anyspend/react/hooks/useKycStatus.d.ts +3 -1
  239. package/dist/esm/anyspend/react/hooks/useKycStatus.js +9 -5
  240. package/dist/esm/anyspend/utils/chain.js +10 -9
  241. package/dist/esm/app.shared.js +9 -7
  242. package/dist/esm/global-account/better-auth-client.d.ts +1883 -0
  243. package/dist/esm/global-account/better-auth-client.js +13 -0
  244. package/dist/esm/global-account/bsmnt.d.ts +0 -1
  245. package/dist/esm/global-account/bsmnt.js +0 -5
  246. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +3 -1
  247. package/dist/esm/global-account/react/components/B3DynamicModal.js +5 -2
  248. package/dist/esm/global-account/react/components/B3Provider/AuthenticationProvider.d.ts +3 -1
  249. package/dist/esm/global-account/react/components/B3Provider/AuthenticationProvider.js +2 -1
  250. package/dist/esm/global-account/react/components/B3Provider/B3ConfigProvider.d.ts +4 -1
  251. package/dist/esm/global-account/react/components/B3Provider/B3ConfigProvider.js +2 -1
  252. package/dist/esm/global-account/react/components/B3Provider/B3Provider.d.ts +11 -2
  253. package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +5 -8
  254. package/dist/esm/global-account/react/components/B3Provider/B3Provider.native.js +4 -6
  255. package/dist/esm/global-account/react/components/B3Provider/BetterAuthProvider.d.ts +16 -0
  256. package/dist/esm/global-account/react/components/B3Provider/BetterAuthProvider.js +115 -0
  257. package/dist/esm/global-account/react/components/B3Provider/LocalSDKProvider.d.ts +3 -1
  258. package/dist/esm/global-account/react/components/B3Provider/LocalSDKProvider.js +3 -1
  259. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +3 -1
  260. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +4 -2
  261. package/dist/esm/global-account/react/components/LinkAccount/LinkedAccountItem.js +2 -1
  262. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +5 -3
  263. package/dist/esm/global-account/react/components/ManageAccount/Header.js +37 -5
  264. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +4 -1
  265. package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +7 -1
  266. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +16 -8
  267. package/dist/esm/global-account/react/components/ManageAccount/SessionDurationContent.d.ts +5 -0
  268. package/dist/esm/global-account/react/components/ManageAccount/SessionDurationContent.js +52 -0
  269. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +16 -31
  270. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +27 -16
  271. package/dist/esm/global-account/react/components/Send/Send.js +5 -2
  272. package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthResetPassword.d.ts +21 -0
  273. package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthResetPassword.js +65 -0
  274. package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthSignIn.d.ts +39 -0
  275. package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthSignIn.js +170 -0
  276. package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthVerifyEmail.d.ts +37 -0
  277. package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthVerifyEmail.js +82 -0
  278. package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +15 -5
  279. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.d.ts +1 -1
  280. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +14 -5
  281. package/dist/esm/global-account/react/components/SignInWithB3/components/AuthButton.js +11 -2
  282. package/dist/esm/global-account/react/components/SignInWithB3/components/PasswordInput.d.ts +10 -0
  283. package/dist/esm/global-account/react/components/SignInWithB3/components/PasswordInput.js +7 -0
  284. package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.d.ts +8 -0
  285. package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.js +138 -0
  286. package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +100 -19
  287. package/dist/esm/global-account/react/components/SignInWithB3/utils/signInUtils.d.ts +5 -3
  288. package/dist/esm/global-account/react/components/SignInWithB3/utils/signInUtils.js +19 -2
  289. package/dist/esm/global-account/react/components/SingleUserSearchSelector/SingleUserSearchSelector.js +2 -1
  290. package/dist/esm/global-account/react/components/Toast/ToastContext.d.ts +3 -0
  291. package/dist/esm/global-account/react/components/Toast/ToastContext.js +30 -7
  292. package/dist/esm/global-account/react/components/UserAvatar/UserAvatar.d.ts +18 -0
  293. package/dist/esm/global-account/react/components/UserAvatar/UserAvatar.js +21 -0
  294. package/dist/esm/global-account/react/components/custom/Button.d.ts +1 -1
  295. package/dist/esm/global-account/react/components/index.d.ts +5 -0
  296. package/dist/esm/global-account/react/components/index.js +5 -0
  297. package/dist/esm/global-account/react/components/ui/button.d.ts +1 -1
  298. package/dist/esm/global-account/react/hooks/index.d.ts +1 -0
  299. package/dist/esm/global-account/react/hooks/index.js +1 -0
  300. package/dist/esm/global-account/react/hooks/useAuth.js +28 -17
  301. package/dist/esm/global-account/react/hooks/useAuthentication.js +24 -13
  302. package/dist/esm/global-account/react/hooks/useAutoSelectWallet.d.ts +6 -3
  303. package/dist/esm/global-account/react/hooks/useAutoSelectWallet.js +33 -5
  304. package/dist/esm/global-account/react/hooks/useBetterAuth.d.ts +973 -0
  305. package/dist/esm/global-account/react/hooks/useBetterAuth.js +150 -0
  306. package/dist/esm/global-account/react/hooks/useConnect.d.ts +2 -2
  307. package/dist/esm/global-account/react/hooks/useFirstEOA.d.ts +8 -8
  308. package/dist/esm/global-account/react/hooks/useTWAuth.js +0 -1
  309. package/dist/esm/global-account/react/stores/useModalStore.d.ts +42 -1
  310. package/dist/esm/global-account/react/utils/createWagmiConfig.d.ts +4 -31
  311. package/dist/esm/global-account/react/utils/createWagmiConfig.js +5 -23
  312. package/dist/esm/global-account/react/utils/index.d.ts +0 -1
  313. package/dist/esm/global-account/react/utils/index.js +0 -1
  314. package/dist/esm/global-account/react/utils/profileDisplay.js +17 -18
  315. package/dist/esm/shared/constants/chains/b3Chain.d.ts +7 -7
  316. package/dist/esm/shared/constants/chains/b3Chain.js +4 -4
  317. package/dist/esm/shared/constants/chains/b3Viem.d.ts +6 -0
  318. package/dist/esm/shared/constants/chains/b3Viem.js +16 -0
  319. package/dist/esm/shared/constants/chains/supported.d.ts +1 -1
  320. package/dist/esm/shared/constants/index.d.ts +1 -0
  321. package/dist/esm/shared/constants/index.js +1 -0
  322. package/dist/esm/shared/generated/chain-networks.json +2 -2
  323. package/dist/esm/shared/utils/chains.d.ts +1 -1
  324. package/dist/esm/shared/utils/chains.js +2 -2
  325. package/dist/esm/shared/utils/session-duration.d.ts +15 -0
  326. package/dist/esm/shared/utils/session-duration.js +64 -0
  327. package/dist/esm/wallet/react/components/ConnectWallet.d.ts +11 -0
  328. package/dist/esm/wallet/react/components/ConnectWallet.js +431 -0
  329. package/dist/esm/wallet/react/components/WalletProvider.d.ts +35 -0
  330. package/dist/esm/wallet/react/components/WalletProvider.js +17 -0
  331. package/dist/esm/wallet/react/hooks/useWalletDisconnect.d.ts +13 -0
  332. package/dist/esm/wallet/react/hooks/useWalletDisconnect.js +19 -0
  333. package/dist/esm/wallet/react/hooks/useWalletState.d.ts +31 -0
  334. package/dist/esm/wallet/react/hooks/useWalletState.js +60 -0
  335. package/dist/esm/wallet/react/index.d.ts +5 -0
  336. package/dist/esm/wallet/react/index.js +8 -0
  337. package/dist/esm/wallet/utils/createWalletConfig.d.ts +21 -0
  338. package/dist/esm/wallet/utils/createWalletConfig.js +21 -0
  339. package/dist/styles/index.css +1 -1
  340. package/dist/types/anyspend/constants/rpc.d.ts +1 -1
  341. package/dist/types/anyspend/react/components/AnySpend.d.ts +2 -0
  342. package/dist/types/anyspend/react/components/AnySpendBondKit.d.ts +1 -1
  343. package/dist/types/anyspend/react/components/AnySpendBuySpin.d.ts +2 -1
  344. package/dist/types/anyspend/react/components/AnySpendCollectorClubPurchase.d.ts +5 -1
  345. package/dist/types/anyspend/react/components/AnySpendCustom.d.ts +2 -0
  346. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +2 -0
  347. package/dist/types/anyspend/react/components/AnySpendDeposit.d.ts +3 -1
  348. package/dist/types/anyspend/react/components/AnySpendDepositUpside.d.ts +2 -1
  349. package/dist/types/anyspend/react/components/AnySpendNFT.d.ts +3 -1
  350. package/dist/types/anyspend/react/components/AnySpendStakeB3.d.ts +2 -1
  351. package/dist/types/anyspend/react/components/AnySpendStakeB3ExactIn.d.ts +2 -1
  352. package/dist/types/anyspend/react/components/AnySpendStakeUpside.d.ts +3 -1
  353. package/dist/types/anyspend/react/components/AnySpendStakeUpsideExactIn.d.ts +2 -1
  354. package/dist/types/anyspend/react/components/AnySpendWorkflowTrigger.d.ts +3 -1
  355. package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
  356. package/dist/types/anyspend/react/components/AnyspendSignatureMint.d.ts +2 -1
  357. package/dist/types/anyspend/react/components/checkout/AnySpendCheckout.d.ts +5 -1
  358. package/dist/types/anyspend/react/components/checkout/AnySpendCheckoutTrigger.d.ts +3 -1
  359. package/dist/types/anyspend/react/components/checkout/CartItemRow.d.ts +2 -1
  360. package/dist/types/anyspend/react/components/checkout/CartSummary.d.ts +6 -4
  361. package/dist/types/anyspend/react/components/checkout/CheckoutCartPanel.d.ts +3 -1
  362. package/dist/types/anyspend/react/components/checkout/CheckoutFormPanel.d.ts +3 -1
  363. package/dist/types/anyspend/react/components/checkout/CheckoutPaymentPanel.d.ts +3 -1
  364. package/dist/types/anyspend/react/components/checkout/CheckoutSuccess.d.ts +2 -1
  365. package/dist/types/anyspend/react/components/checkout/DiscountCodeInput.d.ts +3 -1
  366. package/dist/types/anyspend/react/components/checkout/PriceSkeleton.d.ts +5 -0
  367. package/dist/types/anyspend/react/components/checkout/ShippingSelector.d.ts +3 -1
  368. package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +8 -0
  369. package/dist/types/anyspend/react/components/common/StepProgress.d.ts +2 -0
  370. package/dist/types/anyspend/react/hooks/useKycStatus.d.ts +3 -1
  371. package/dist/types/global-account/better-auth-client.d.ts +1883 -0
  372. package/dist/types/global-account/bsmnt.d.ts +0 -1
  373. package/dist/types/global-account/react/components/B3Provider/AuthenticationProvider.d.ts +3 -1
  374. package/dist/types/global-account/react/components/B3Provider/B3ConfigProvider.d.ts +4 -1
  375. package/dist/types/global-account/react/components/B3Provider/B3Provider.d.ts +11 -2
  376. package/dist/types/global-account/react/components/B3Provider/BetterAuthProvider.d.ts +16 -0
  377. package/dist/types/global-account/react/components/B3Provider/LocalSDKProvider.d.ts +3 -1
  378. package/dist/types/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +3 -1
  379. package/dist/types/global-account/react/components/ManageAccount/SessionDurationContent.d.ts +5 -0
  380. package/dist/types/global-account/react/components/SignInWithB3/BetterAuthResetPassword.d.ts +21 -0
  381. package/dist/types/global-account/react/components/SignInWithB3/BetterAuthSignIn.d.ts +39 -0
  382. package/dist/types/global-account/react/components/SignInWithB3/BetterAuthVerifyEmail.d.ts +37 -0
  383. package/dist/types/global-account/react/components/SignInWithB3/SignInWithB3Flow.d.ts +1 -1
  384. package/dist/types/global-account/react/components/SignInWithB3/components/PasswordInput.d.ts +10 -0
  385. package/dist/types/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.d.ts +8 -0
  386. package/dist/types/global-account/react/components/SignInWithB3/utils/signInUtils.d.ts +5 -3
  387. package/dist/types/global-account/react/components/Toast/ToastContext.d.ts +3 -0
  388. package/dist/types/global-account/react/components/UserAvatar/UserAvatar.d.ts +18 -0
  389. package/dist/types/global-account/react/components/custom/Button.d.ts +1 -1
  390. package/dist/types/global-account/react/components/index.d.ts +5 -0
  391. package/dist/types/global-account/react/components/ui/button.d.ts +1 -1
  392. package/dist/types/global-account/react/hooks/index.d.ts +1 -0
  393. package/dist/types/global-account/react/hooks/useAutoSelectWallet.d.ts +6 -3
  394. package/dist/types/global-account/react/hooks/useBetterAuth.d.ts +973 -0
  395. package/dist/types/global-account/react/hooks/useConnect.d.ts +2 -2
  396. package/dist/types/global-account/react/hooks/useFirstEOA.d.ts +8 -8
  397. package/dist/types/global-account/react/stores/useModalStore.d.ts +42 -1
  398. package/dist/types/global-account/react/utils/createWagmiConfig.d.ts +4 -31
  399. package/dist/types/global-account/react/utils/index.d.ts +0 -1
  400. package/dist/types/shared/constants/chains/b3Chain.d.ts +7 -7
  401. package/dist/types/shared/constants/chains/b3Viem.d.ts +6 -0
  402. package/dist/types/shared/constants/chains/supported.d.ts +1 -1
  403. package/dist/types/shared/constants/index.d.ts +1 -0
  404. package/dist/types/shared/utils/chains.d.ts +1 -1
  405. package/dist/types/shared/utils/session-duration.d.ts +15 -0
  406. package/dist/types/wallet/react/components/ConnectWallet.d.ts +11 -0
  407. package/dist/types/wallet/react/components/WalletProvider.d.ts +35 -0
  408. package/dist/types/wallet/react/hooks/useWalletDisconnect.d.ts +13 -0
  409. package/dist/types/wallet/react/hooks/useWalletState.d.ts +31 -0
  410. package/dist/types/wallet/react/index.d.ts +5 -0
  411. package/dist/types/wallet/utils/createWalletConfig.d.ts +21 -0
  412. package/package.json +15 -6
  413. package/src/anyspend/constants/rpc.ts +2 -1
  414. package/src/anyspend/react/components/AnySpend.tsx +24 -12
  415. package/src/anyspend/react/components/AnySpendBondKit.tsx +2 -0
  416. package/src/anyspend/react/components/AnySpendBuySpin.tsx +3 -0
  417. package/src/anyspend/react/components/AnySpendCollectorClubPurchase.tsx +6 -0
  418. package/src/anyspend/react/components/AnySpendCustom.tsx +12 -2
  419. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +29 -14
  420. package/src/anyspend/react/components/AnySpendDeposit.tsx +51 -34
  421. package/src/anyspend/react/components/AnySpendDepositUpside.tsx +3 -0
  422. package/src/anyspend/react/components/AnySpendNFT.tsx +6 -2
  423. package/src/anyspend/react/components/AnySpendStakeB3.tsx +5 -2
  424. package/src/anyspend/react/components/AnySpendStakeB3ExactIn.tsx +5 -2
  425. package/src/anyspend/react/components/AnySpendStakeUpside.tsx +4 -0
  426. package/src/anyspend/react/components/AnySpendStakeUpsideExactIn.tsx +3 -0
  427. package/src/anyspend/react/components/AnySpendWorkflowTrigger.tsx +4 -0
  428. package/src/anyspend/react/components/AnyspendDepositHype.tsx +3 -0
  429. package/src/anyspend/react/components/AnyspendSignatureMint.tsx +3 -0
  430. package/src/anyspend/react/components/checkout/AnySpendCheckout.tsx +29 -5
  431. package/src/anyspend/react/components/checkout/AnySpendCheckoutTrigger.tsx +4 -0
  432. package/src/anyspend/react/components/checkout/CartItemRow.tsx +2 -1
  433. package/src/anyspend/react/components/checkout/CartSummary.tsx +24 -20
  434. package/src/anyspend/react/components/checkout/CheckoutCartPanel.tsx +12 -3
  435. package/src/anyspend/react/components/checkout/CheckoutFormPanel.tsx +5 -0
  436. package/src/anyspend/react/components/checkout/CheckoutPaymentPanel.tsx +99 -83
  437. package/src/anyspend/react/components/checkout/CheckoutSuccess.tsx +13 -3
  438. package/src/anyspend/react/components/checkout/CryptoPayPanel.tsx +45 -27
  439. package/src/anyspend/react/components/checkout/DiscountCodeInput.tsx +15 -5
  440. package/src/anyspend/react/components/checkout/FiatCheckoutPanel.tsx +9 -3
  441. package/src/anyspend/react/components/checkout/KycGate.tsx +8 -3
  442. package/src/anyspend/react/components/checkout/PriceSkeleton.tsx +19 -0
  443. package/src/anyspend/react/components/checkout/ShippingSelector.tsx +5 -1
  444. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +10 -8
  445. package/src/anyspend/react/components/common/InsufficientDepositPayment.tsx +2 -2
  446. package/src/anyspend/react/components/common/OrderDetails.tsx +10 -2
  447. package/src/anyspend/react/components/common/OrderDetailsCollapsible.tsx +4 -4
  448. package/src/anyspend/react/components/common/OrderStatus.tsx +38 -3
  449. package/src/anyspend/react/components/common/StepProgress.tsx +15 -5
  450. package/src/anyspend/react/components/common/TransferCryptoDetails.tsx +2 -2
  451. package/src/anyspend/react/hooks/useAnyspendCreateOnrampOrder.ts +5 -7
  452. package/src/anyspend/react/hooks/useKycStatus.ts +8 -5
  453. package/src/anyspend/utils/chain.ts +9 -9
  454. package/src/app.shared.ts +9 -8
  455. package/src/global-account/better-auth-client.ts +17 -0
  456. package/src/global-account/bsmnt.ts +0 -6
  457. package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +3 -1
  458. package/src/global-account/react/components/B3DynamicModal.tsx +5 -2
  459. package/src/global-account/react/components/B3Provider/AuthenticationProvider.tsx +4 -0
  460. package/src/global-account/react/components/B3Provider/B3ConfigProvider.tsx +6 -0
  461. package/src/global-account/react/components/B3Provider/B3Provider.native.tsx +16 -21
  462. package/src/global-account/react/components/B3Provider/B3Provider.tsx +56 -37
  463. package/src/global-account/react/components/B3Provider/BetterAuthProvider.tsx +127 -0
  464. package/src/global-account/react/components/B3Provider/LocalSDKProvider.tsx +5 -0
  465. package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +17 -10
  466. package/src/global-account/react/components/LinkAccount/LinkedAccountItem.tsx +2 -1
  467. package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +18 -14
  468. package/src/global-account/react/components/ManageAccount/Header.tsx +71 -4
  469. package/src/global-account/react/components/ManageAccount/HomeContent.tsx +25 -19
  470. package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +13 -0
  471. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +40 -15
  472. package/src/global-account/react/components/ManageAccount/SessionDurationContent.tsx +107 -0
  473. package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +35 -54
  474. package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +31 -22
  475. package/src/global-account/react/components/Send/Send.tsx +8 -5
  476. package/src/global-account/react/components/SignInWithB3/BetterAuthResetPassword.tsx +145 -0
  477. package/src/global-account/react/components/SignInWithB3/BetterAuthSignIn.tsx +446 -0
  478. package/src/global-account/react/components/SignInWithB3/BetterAuthVerifyEmail.tsx +155 -0
  479. package/src/global-account/react/components/SignInWithB3/SignIn.tsx +42 -13
  480. package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +20 -4
  481. package/src/global-account/react/components/SignInWithB3/components/AuthButton.tsx +21 -2
  482. package/src/global-account/react/components/SignInWithB3/components/PasswordInput.tsx +62 -0
  483. package/src/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.tsx +315 -0
  484. package/src/global-account/react/components/SignInWithB3/steps/LoginStepCustom.tsx +207 -54
  485. package/src/global-account/react/components/SignInWithB3/utils/signInUtils.ts +24 -4
  486. package/src/global-account/react/components/SingleUserSearchSelector/SingleUserSearchSelector.tsx +2 -1
  487. package/src/global-account/react/components/Toast/ToastContext.tsx +39 -7
  488. package/src/global-account/react/components/UserAvatar/UserAvatar.tsx +45 -0
  489. package/src/global-account/react/components/index.ts +11 -0
  490. package/src/global-account/react/hooks/index.ts +1 -0
  491. package/src/global-account/react/hooks/useAuth.ts +28 -17
  492. package/src/global-account/react/hooks/useAuthentication.ts +24 -13
  493. package/src/global-account/react/hooks/useAutoSelectWallet.ts +40 -6
  494. package/src/global-account/react/hooks/useBetterAuth.ts +192 -0
  495. package/src/global-account/react/hooks/useConnect.tsx +2 -2
  496. package/src/global-account/react/hooks/useTWAuth.tsx +0 -1
  497. package/src/global-account/react/stores/useModalStore.ts +43 -0
  498. package/src/global-account/react/utils/createWagmiConfig.tsx +6 -25
  499. package/src/global-account/react/utils/index.ts +0 -1
  500. package/src/global-account/react/utils/profileDisplay.ts +21 -19
  501. package/src/shared/constants/chains/b3Chain.ts +5 -5
  502. package/src/shared/constants/chains/b3Viem.ts +18 -0
  503. package/src/shared/constants/index.ts +2 -0
  504. package/src/shared/generated/chain-networks.json +2 -2
  505. package/src/shared/utils/chains.ts +3 -2
  506. package/src/shared/utils/session-duration.ts +64 -0
  507. package/src/types/torph.d.ts +4 -0
  508. package/src/wallet/__tests__/createWalletConfig.test.ts +39 -0
  509. package/src/wallet/react/components/ConnectWallet.tsx +665 -0
  510. package/src/wallet/react/components/WalletProvider.tsx +64 -0
  511. package/src/wallet/react/hooks/useWalletDisconnect.ts +22 -0
  512. package/src/wallet/react/hooks/useWalletState.ts +93 -0
  513. package/src/wallet/react/index.ts +10 -0
  514. package/src/wallet/utils/createWalletConfig.ts +39 -0
  515. package/dist/cjs/global-account/react/components/AvatarCreator/AvatarCreator.d.ts +0 -6
  516. package/dist/cjs/global-account/react/components/AvatarCreator/AvatarCreator.js +0 -54
  517. package/dist/cjs/global-account/react/components/ProfileAvatar.d.ts +0 -0
  518. package/dist/cjs/global-account/react/components/ProfileAvatar.js +0 -127
  519. package/dist/cjs/global-account/react/hooks/useRPMToken.d.ts +0 -7
  520. package/dist/cjs/global-account/react/hooks/useRPMToken.js +0 -11
  521. package/dist/cjs/global-account/react/utils/updateAvatar.d.ts +0 -4
  522. package/dist/cjs/global-account/react/utils/updateAvatar.js +0 -54
  523. package/dist/esm/global-account/react/components/AvatarCreator/AvatarCreator.d.ts +0 -6
  524. package/dist/esm/global-account/react/components/AvatarCreator/AvatarCreator.js +0 -51
  525. package/dist/esm/global-account/react/components/ProfileAvatar.d.ts +0 -0
  526. package/dist/esm/global-account/react/components/ProfileAvatar.js +0 -127
  527. package/dist/esm/global-account/react/hooks/useRPMToken.d.ts +0 -7
  528. package/dist/esm/global-account/react/hooks/useRPMToken.js +0 -8
  529. package/dist/esm/global-account/react/utils/updateAvatar.d.ts +0 -4
  530. package/dist/esm/global-account/react/utils/updateAvatar.js +0 -18
  531. package/dist/types/global-account/react/components/AvatarCreator/AvatarCreator.d.ts +0 -6
  532. package/dist/types/global-account/react/components/ProfileAvatar.d.ts +0 -0
  533. package/dist/types/global-account/react/hooks/useRPMToken.d.ts +0 -7
  534. package/dist/types/global-account/react/utils/updateAvatar.d.ts +0 -4
  535. package/src/global-account/react/components/AvatarCreator/AvatarCreator.tsx +0 -90
  536. package/src/global-account/react/components/ProfileAvatar.tsx +0 -138
  537. package/src/global-account/react/hooks/useRPMToken.ts +0 -17
  538. package/src/global-account/react/utils/updateAvatar.ts +0 -21
@@ -1,38 +1,52 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AuthButton, Button, getConnectOptionsFromStrategy, isWalletType, LoginStepContainer, useAuthentication, useAuthStore, useB3Config, useConnect, WalletRow, } from "../../../../../global-account/react/index.js";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { AuthButton, Button, getConnectOptionsFromStrategy, Input, isWalletType, LoginStepContainer, useAuthentication, useAuthStore, useB3Config, useConnect, WalletRow, } from "../../../../../global-account/react/index.js";
3
+ import { ecosystemWalletId } from "../../../../../shared/constants/index.js";
3
4
  import { debugB3React } from "../../../../../shared/utils/debug.js";
4
5
  import { client } from "../../../../../shared/utils/thirdweb.js";
5
6
  import { useState } from "react";
6
- import { useConnect as useConnectTW } from "thirdweb/react";
7
- import { createWallet } from "thirdweb/wallets";
7
+ import { useConnectedWallets, useConnect as useConnectTW } from "thirdweb/react";
8
+ import { createWallet, preAuthenticate, } from "thirdweb/wallets";
8
9
  const debug = debugB3React("LoginStepCustom");
10
+ const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
9
11
  export function LoginStepCustom({ onSuccess, onError, chain, strategies, maxInitialWallets = 2, automaticallySetFirstEoa, }) {
10
12
  const { partnerId } = useB3Config();
11
13
  const [isLoading, setIsLoading] = useState(false);
12
14
  const [showAllWallets, setShowAllWallets] = useState(false);
15
+ const [showEmailFlow, setShowEmailFlow] = useState(false);
16
+ const [email, setEmail] = useState("");
17
+ const [verificationCode, setVerificationCode] = useState("");
18
+ const [emailCodeSent, setEmailCodeSent] = useState(false);
19
+ const [emailError, setEmailError] = useState(null);
13
20
  const { connect } = useConnect(partnerId, chain);
14
21
  const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
15
- const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
16
- const { logout } = useAuthentication(partnerId, { skipAutoConnect: true });
22
+ const { connect: onAuthConnect, logout } = useAuthentication(partnerId, { skipAutoConnect: true });
17
23
  const { connect: connectTW } = useConnectTW();
24
+ const connectedWallets = useConnectedWallets();
18
25
  // Split strategies into auth and wallet types
19
26
  const authStrategies = strategies.filter(s => !isWalletType(s));
20
27
  const walletStrategies = strategies.filter(isWalletType);
21
28
  const initialWallets = walletStrategies.slice(0, maxInitialWallets);
22
29
  const additionalWallets = walletStrategies.slice(maxInitialWallets);
23
- const handleConnect = async (strategy) => {
30
+ const authGridColumns = Math.max(1, Math.min(authStrategies.length, 4));
31
+ const resetEmailFlow = () => {
32
+ setShowEmailFlow(false);
33
+ setEmailCodeSent(false);
34
+ setVerificationCode("");
35
+ setEmailError(null);
36
+ };
37
+ const connectWithOptions = async (strategy, options) => {
24
38
  try {
25
39
  setIsLoading(true);
26
40
  debug("setIsAuthenticating:true:3");
27
41
  setIsAuthenticating(true);
28
- const options = getConnectOptionsFromStrategy(strategy);
29
42
  let connectResult;
30
- if (automaticallySetFirstEoa) {
31
- if (!options.wallet?.id) {
43
+ if (automaticallySetFirstEoa && isWalletType(strategy) && options.strategy === "wallet") {
44
+ const walletId = options.wallet?.id;
45
+ if (!walletId) {
32
46
  throw new Error("Wallet ID is required");
33
47
  }
34
48
  connectResult = await connectTW(async () => {
35
- const wallet = createWallet(options.wallet?.id);
49
+ const wallet = createWallet(walletId);
36
50
  await wallet.connect({
37
51
  client,
38
52
  });
@@ -40,20 +54,27 @@ export function LoginStepCustom({ onSuccess, onError, chain, strategies, maxInit
40
54
  });
41
55
  }
42
56
  else {
43
- // @ts-expect-error we have custom strategies too and we also get things like "apple" isn't assignable to "wallet"
44
57
  connectResult = await connect(options);
45
58
  }
46
59
  const account = connectResult?.getAccount();
47
60
  debug("@@connectResult", { connectResult, account, options });
48
- if (!account)
61
+ if (!account || !connectResult)
49
62
  throw new Error("Failed to connect");
63
+ const allConnectedWallets = connectedWallets.length > 0 && connectedWallets.some(wallet => wallet.id === connectResult.id)
64
+ ? connectedWallets
65
+ : [connectResult, ...connectedWallets.filter(wallet => wallet.id !== connectResult.id)];
66
+ await onAuthConnect(connectResult, allConnectedWallets);
50
67
  await onSuccess(account);
51
- setIsAuthenticated(true);
68
+ if (strategy === "email") {
69
+ resetEmailFlow();
70
+ }
52
71
  }
53
72
  catch (error) {
73
+ if (strategy === "email") {
74
+ setEmailError(error instanceof Error ? error.message : "Failed to sign in with email");
75
+ }
54
76
  await onError?.(error);
55
77
  await logout();
56
- setIsAuthenticated(false);
57
78
  }
58
79
  finally {
59
80
  setIsLoading(false);
@@ -61,8 +82,68 @@ export function LoginStepCustom({ onSuccess, onError, chain, strategies, maxInit
61
82
  setIsAuthenticating(false);
62
83
  }
63
84
  };
64
- return (_jsxs(LoginStepContainer, { partnerId: partnerId, children: [authStrategies.length > 0 && (_jsx("div", { className: `mb-6 w-full ${authStrategies.length <= 3 ? "space-y-3 px-3" : "grid grid-cols-4 gap-4"}`, children: authStrategies.map(strategy => {
65
- console.log("strategy", strategy);
66
- return (_jsx(AuthButton, { strategy: strategy, onClick: () => handleConnect(strategy), isLoading: isLoading }, strategy));
67
- }) })), _jsx("div", { className: "mb-4 w-full space-y-2", children: initialWallets.map(walletId => (_jsx(WalletRow, { walletId: walletId, onClick: () => handleConnect(walletId), isLoading: isLoading }, walletId))) }), additionalWallets.length > 0 && (_jsxs("div", { className: "w-full", children: [_jsx(Button, { onClick: () => setShowAllWallets(!showAllWallets), className: "mb-2 w-full bg-transparent text-gray-600 hover:bg-gray-100", children: showAllWallets ? "Show less" : "More options" }), showAllWallets && (_jsx("div", { className: "max-h-60 space-y-2 overflow-y-auto", children: additionalWallets.map(walletId => (_jsx(WalletRow, { walletId: walletId, onClick: () => handleConnect(walletId), isLoading: isLoading }, walletId))) }))] }))] }));
85
+ const handleConnect = async (strategy) => {
86
+ if (strategy === "email") {
87
+ setShowEmailFlow(true);
88
+ setEmailCodeSent(false);
89
+ setVerificationCode("");
90
+ setEmailError(null);
91
+ return;
92
+ }
93
+ const options = getConnectOptionsFromStrategy(strategy);
94
+ await connectWithOptions(strategy, options);
95
+ };
96
+ const handleSendEmailCode = async () => {
97
+ const normalizedEmail = email.trim().toLowerCase();
98
+ if (!normalizedEmail) {
99
+ setEmailError("Please enter your email address");
100
+ return;
101
+ }
102
+ if (!EMAIL_REGEX.test(normalizedEmail)) {
103
+ setEmailError("Please enter a valid email address");
104
+ return;
105
+ }
106
+ try {
107
+ setIsLoading(true);
108
+ setEmailError(null);
109
+ await preAuthenticate({
110
+ client,
111
+ strategy: "email",
112
+ email: normalizedEmail,
113
+ ecosystem: {
114
+ id: ecosystemWalletId,
115
+ partnerId,
116
+ },
117
+ });
118
+ setEmail(normalizedEmail);
119
+ setEmailCodeSent(true);
120
+ }
121
+ catch (error) {
122
+ setEmailError(error instanceof Error ? error.message : "Failed to send verification code");
123
+ await onError?.(error);
124
+ }
125
+ finally {
126
+ setIsLoading(false);
127
+ }
128
+ };
129
+ const handleEmailLogin = async () => {
130
+ const normalizedEmail = email.trim().toLowerCase();
131
+ const normalizedCode = verificationCode.trim();
132
+ if (!EMAIL_REGEX.test(normalizedEmail)) {
133
+ setEmailError("Please enter a valid email address");
134
+ return;
135
+ }
136
+ if (!normalizedCode) {
137
+ setEmailError("Please enter your verification code");
138
+ return;
139
+ }
140
+ await connectWithOptions("email", {
141
+ strategy: "email",
142
+ email: normalizedEmail,
143
+ verificationCode: normalizedCode,
144
+ });
145
+ };
146
+ return (_jsx(LoginStepContainer, { partnerId: partnerId, children: showEmailFlow ? (_jsxs("div", { className: "mb-6 w-full space-y-3 px-3", children: [_jsx("p", { className: "text-center text-sm font-medium text-gray-900 dark:text-gray-100", children: "Sign in with email" }), _jsx(Input, { type: "email", placeholder: "you@example.com", value: email, onChange: event => setEmail(event.target.value), disabled: isLoading || emailCodeSent }), emailCodeSent && (_jsx(Input, { type: "text", placeholder: "Enter verification code", value: verificationCode, onChange: event => setVerificationCode(event.target.value), disabled: isLoading })), emailError && _jsx("p", { className: "text-sm text-red-500", children: emailError }), _jsx(Button, { onClick: emailCodeSent ? handleEmailLogin : handleSendEmailCode, disabled: isLoading, className: "w-full", children: isLoading ? "Loading..." : emailCodeSent ? "Verify code" : "Send code" }), emailCodeSent && (_jsx(Button, { variant: "outline", onClick: handleSendEmailCode, disabled: isLoading, className: "w-full", children: "Resend code" })), _jsx(Button, { variant: "outline", onClick: resetEmailFlow, disabled: isLoading, className: "w-full", children: "Back" })] })) : (_jsxs(_Fragment, { children: [authStrategies.length > 0 && (_jsx("div", { className: `mb-6 grid w-full gap-4 px-3 ${authStrategies.length > 4 ? "grid-cols-4" : ""}`, style: authStrategies.length <= 4
147
+ ? { gridTemplateColumns: `repeat(${authGridColumns}, minmax(0, 1fr))` }
148
+ : undefined, children: authStrategies.map(strategy => (_jsx(AuthButton, { strategy: strategy, onClick: () => handleConnect(strategy), isLoading: isLoading }, strategy))) })), _jsx("div", { className: "mb-4 w-full space-y-2", children: initialWallets.map(walletId => (_jsx(WalletRow, { walletId: walletId, onClick: () => handleConnect(walletId), isLoading: isLoading }, walletId))) }), additionalWallets.length > 0 && (_jsxs("div", { className: "w-full", children: [_jsx(Button, { onClick: () => setShowAllWallets(!showAllWallets), className: "mb-2 w-full bg-transparent text-gray-600 hover:bg-gray-100", children: showAllWallets ? "Show less" : "More options" }), showAllWallets && (_jsx("div", { className: "max-h-60 space-y-2 overflow-y-auto", children: additionalWallets.map(walletId => (_jsx(WalletRow, { walletId: walletId, onClick: () => handleConnect(walletId), isLoading: isLoading }, walletId))) }))] }))] })) }));
68
149
  }
@@ -3,15 +3,17 @@ import { SingleStepAuthArgsType, Wallet } from "thirdweb/wallets";
3
3
  type WalletType = Wallet["id"];
4
4
  type StrategyType = SingleStepAuthArgsType["strategy"];
5
5
  type CustomStrategyType = "basement" | "privy";
6
- type AllowedStrategies = StrategyType | WalletType | CustomStrategyType;
7
- export declare const allowedStrategies: readonly ["apple", "google", "x", "discord", "guest", "walletConnect", "io.metamask", "com.coinbase.wallet", "basement", "privy"];
6
+ type AllowedStrategies = StrategyType | WalletType | CustomStrategyType | "email";
7
+ type NonWalletStrategyType = Exclude<AllowedStrategies, WalletType>;
8
+ export declare const allowedStrategies: readonly ["apple", "google", "github", "x", "discord", "email", "guest", "walletConnect", "io.metamask", "com.coinbase.wallet", "basement", "privy"];
8
9
  export type AllowedStrategy = (typeof allowedStrategies)[number];
9
10
  export declare function isWalletType(strategy: AllowedStrategies): strategy is WalletType;
10
- export declare function isStrategyType(strategy: AllowedStrategies): strategy is StrategyType;
11
+ export declare function isStrategyType(strategy: AllowedStrategies): strategy is NonWalletStrategyType;
11
12
  export declare function getConnectOptionsFromStrategy(strategy: AllowedStrategy): {
12
13
  strategy: StrategyType;
13
14
  wallet?: Wallet;
14
15
  chain?: Chain;
15
16
  };
16
17
  export declare const strategyIcons: Record<string, string>;
18
+ export declare const strategyLabels: Record<string, string>;
17
19
  export {};
@@ -5,9 +5,10 @@ export const allowedStrategies = [
5
5
  // Auth strategies
6
6
  "apple",
7
7
  "google",
8
+ "github",
8
9
  "x",
9
10
  "discord",
10
- // "github",
11
+ "email",
11
12
  "guest",
12
13
  // Wallet IDs
13
14
  "walletConnect",
@@ -29,6 +30,9 @@ export function getConnectOptionsFromStrategy(strategy) {
29
30
  if (!allowedStrategies.includes(strategy)) {
30
31
  throw new Error(`Invalid strategy: ${strategy}`);
31
32
  }
33
+ if (strategy === "email") {
34
+ throw new Error("Email strategy requires OTP flow and cannot be connected in a single step");
35
+ }
32
36
  if (isWalletType(strategy)) {
33
37
  return { strategy: "wallet", wallet: createWallet(strategy) };
34
38
  }
@@ -39,11 +43,24 @@ export function getConnectOptionsFromStrategy(strategy) {
39
43
  }
40
44
  export const strategyIcons = {
41
45
  google: "https://cdn.b3.fun/google.svg",
46
+ github: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/github/github-original.svg",
42
47
  x: "https://cdn.b3.fun/x.svg?1",
43
48
  discord: "https://cdn.b3.fun/discord.svg",
44
49
  apple: "https://cdn.b3.fun/apple.svg",
45
50
  guest: "https://cdn.b3.fun/incognito.svg",
46
- // Add more strategies as needed
51
+ microsoft: "https://upload.wikimedia.org/wikipedia/commons/4/44/Microsoft_logo.svg",
52
+ slack: "https://upload.wikimedia.org/wikipedia/commons/d/d5/Slack_icon_2019.svg",
53
+ };
54
+ export const strategyLabels = {
55
+ google: "Google",
56
+ x: "X",
57
+ discord: "Discord",
58
+ apple: "Apple",
59
+ guest: "Guest",
60
+ github: "GitHub",
61
+ email: "Email",
62
+ microsoft: "Microsoft",
63
+ slack: "Slack",
47
64
  };
48
65
  // Test it
49
66
  // console.log(getConnectOptionsFromStrategy("io.metamask"));
@@ -4,6 +4,7 @@ import { cn } from "../../../../shared/utils/index.js";
4
4
  import { Search, X } from "lucide-react";
5
5
  import { useCallback, useEffect, useRef, useState } from "react";
6
6
  import { fetchProfile as fetchProfileApi } from "../../utils/profileApi.js";
7
+ import { validateImageUrl } from "../../utils/profileDisplay.js";
7
8
  import { IPFSMediaRenderer } from "../IPFSMediaRenderer/IPFSMediaRenderer.js";
8
9
  import { Input } from "../ui/input.js";
9
10
  /**
@@ -156,5 +157,5 @@ export function SingleUserSearchSelector({ onSelectUser, profileTypeFilter, plac
156
157
  const getProfileTypeBadges = (profiles) => {
157
158
  return profiles.map(p => p.type);
158
159
  };
159
- return (_jsxs("div", { className: cn("single-user-search-selector b3-root relative w-full", className), ref: dropdownRef, children: [_jsxs("div", { className: "single-user-search-input-wrapper relative flex items-center", children: [_jsx(Search, { className: "single-user-search-icon pointer-events-none absolute text-gray-400", style: { left: "12px", width: "16px", height: "16px" } }), _jsx(Input, { ref: inputRef, type: "text", value: searchQuery, onChange: e => setSearchQuery(e.target.value), placeholder: placeholder, className: cn("single-user-search-input w-full border-gray-300 focus:border-blue-500 focus:ring-blue-500"), style: { paddingLeft: "44px", paddingRight: "44px" } }), showClearButton && searchQuery && (_jsx("button", { onClick: handleClear, className: "single-user-search-clear-button absolute text-gray-400 transition-colors hover:text-gray-600", style: { right: "12px" }, type: "button", children: _jsx(X, { style: { width: "16px", height: "16px" } }) }))] }), isSearching && _jsx("div", { className: "single-user-search-loading mt-2 text-sm text-gray-500", children: "Searching..." }), error && !isSearching && _jsx("div", { className: "single-user-search-error mt-2 text-sm text-red-500", children: error }), showDropdown && searchResult && !isSearching && (_jsx("div", { className: "single-user-search-dropdown absolute z-50 mt-2 w-full rounded-lg border border-gray-200 bg-white shadow-lg", children: _jsx("button", { onClick: () => handleSelectUser(searchResult), className: "single-user-search-result-button w-full px-4 py-3 text-left transition-colors hover:bg-gray-50", type: "button", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "single-user-search-result-avatar h-11 w-11 shrink-0", children: _jsx(IPFSMediaRenderer, { src: searchResult.avatar, alt: getDisplayName(searchResult), className: "h-full w-full rounded-full object-cover" }) }), _jsxs("div", { className: "single-user-search-result-info min-w-0 flex-1 pt-0.5", children: [_jsx("div", { className: "single-user-search-result-name text-base font-semibold text-gray-900", children: getDisplayName(searchResult) }), searchResult.address && (_jsxs("div", { className: "single-user-search-result-address mt-1 font-mono text-xs text-gray-500", children: [searchResult.address.slice(0, 6), "...", searchResult.address.slice(-4)] })), searchResult.bio && (_jsx("div", { className: "single-user-search-result-bio mt-1.5 line-clamp-2 text-sm text-gray-600", children: searchResult.bio })), showBadges && (_jsx("div", { className: "single-user-search-result-badges mt-2 flex flex-wrap gap-1.5", children: getProfileTypeBadges(searchResult.profiles).map((type, index) => (_jsx("span", { className: "single-user-search-result-badge inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800", children: type }, `${type}-${index}`))) }))] })] }) }) }))] }));
160
+ return (_jsxs("div", { className: cn("single-user-search-selector b3-root relative w-full", className), ref: dropdownRef, children: [_jsxs("div", { className: "single-user-search-input-wrapper relative flex items-center", children: [_jsx(Search, { className: "single-user-search-icon pointer-events-none absolute text-gray-400", style: { left: "12px", width: "16px", height: "16px" } }), _jsx(Input, { ref: inputRef, type: "text", value: searchQuery, onChange: e => setSearchQuery(e.target.value), placeholder: placeholder, className: cn("single-user-search-input w-full border-gray-300 focus:border-blue-500 focus:ring-blue-500"), style: { paddingLeft: "44px", paddingRight: "44px" } }), showClearButton && searchQuery && (_jsx("button", { onClick: handleClear, className: "single-user-search-clear-button absolute text-gray-400 transition-colors hover:text-gray-600", style: { right: "12px" }, type: "button", children: _jsx(X, { style: { width: "16px", height: "16px" } }) }))] }), isSearching && _jsx("div", { className: "single-user-search-loading mt-2 text-sm text-gray-500", children: "Searching..." }), error && !isSearching && _jsx("div", { className: "single-user-search-error mt-2 text-sm text-red-500", children: error }), showDropdown && searchResult && !isSearching && (_jsx("div", { className: "single-user-search-dropdown absolute z-50 mt-2 w-full rounded-lg border border-gray-200 bg-white shadow-lg", children: _jsx("button", { onClick: () => handleSelectUser(searchResult), className: "single-user-search-result-button w-full px-4 py-3 text-left transition-colors hover:bg-gray-50", type: "button", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "single-user-search-result-avatar h-11 w-11 shrink-0", children: _jsx(IPFSMediaRenderer, { src: validateImageUrl(searchResult.avatar) ?? undefined, alt: getDisplayName(searchResult), className: "h-full w-full rounded-full object-cover" }) }), _jsxs("div", { className: "single-user-search-result-info min-w-0 flex-1 pt-0.5", children: [_jsx("div", { className: "single-user-search-result-name text-base font-semibold text-gray-900", children: getDisplayName(searchResult) }), searchResult.address && (_jsxs("div", { className: "single-user-search-result-address mt-1 font-mono text-xs text-gray-500", children: [searchResult.address.slice(0, 6), "...", searchResult.address.slice(-4)] })), searchResult.bio && (_jsx("div", { className: "single-user-search-result-bio mt-1.5 line-clamp-2 text-sm text-gray-600", children: searchResult.bio })), showBadges && (_jsx("div", { className: "single-user-search-result-badges mt-2 flex flex-wrap gap-1.5", children: getProfileTypeBadges(searchResult.profiles).map((type, index) => (_jsx("span", { className: "single-user-search-result-badge inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800", children: type }, `${type}-${index}`))) }))] })] }) }) }))] }));
160
161
  }
@@ -11,6 +11,9 @@ interface ToastContextType {
11
11
  addToast: (type: ToastType, message: string, duration?: number) => string;
12
12
  removeToast: (id: string) => void;
13
13
  clearAll: () => void;
14
+ headerMode: boolean;
15
+ setHeaderMode: (enabled: boolean) => void;
16
+ latestToast: ToastItem | null;
14
17
  }
15
18
  export declare function ToastProvider({ children }: {
16
19
  children: React.ReactNode;
@@ -4,6 +4,9 @@ const ToastContext = createContext(undefined);
4
4
  let globalToastCounter = 0;
5
5
  export function ToastProvider({ children }) {
6
6
  const [toasts, setToasts] = useState([]);
7
+ const [headerMode, setHeaderMode] = useState(false);
8
+ const headerModeRef = useRef(false);
9
+ const [latestToast, setLatestToast] = useState(null);
7
10
  const timeoutsRef = useRef(new Map());
8
11
  const removeToast = useCallback((id) => {
9
12
  setToasts(prev => prev.filter(toast => toast.id !== id));
@@ -22,12 +25,23 @@ export function ToastProvider({ children }) {
22
25
  duration,
23
26
  createdAt: Date.now(),
24
27
  };
25
- setToasts(prev => [...prev, newToast]);
26
- if (duration > 0) {
27
- const timeout = setTimeout(() => {
28
- removeToast(id);
29
- }, duration);
30
- timeoutsRef.current.set(id, timeout);
28
+ if (headerModeRef.current) {
29
+ setLatestToast(newToast);
30
+ if (duration > 0) {
31
+ const timeout = setTimeout(() => {
32
+ setLatestToast(null);
33
+ }, duration);
34
+ timeoutsRef.current.set(id, timeout);
35
+ }
36
+ }
37
+ else {
38
+ setToasts(prev => [...prev, newToast]);
39
+ if (duration > 0) {
40
+ const timeout = setTimeout(() => {
41
+ removeToast(id);
42
+ }, duration);
43
+ timeoutsRef.current.set(id, timeout);
44
+ }
31
45
  }
32
46
  return id;
33
47
  }, [removeToast]);
@@ -36,6 +50,15 @@ export function ToastProvider({ children }) {
36
50
  timeoutsRef.current.clear();
37
51
  setToasts([]);
38
52
  }, []);
53
+ const setHeaderModeCallback = useCallback((enabled) => {
54
+ setHeaderMode(enabled);
55
+ headerModeRef.current = enabled;
56
+ if (!enabled) {
57
+ setLatestToast(null);
58
+ timeoutsRef.current.forEach(timeout => clearTimeout(timeout));
59
+ timeoutsRef.current.clear();
60
+ }
61
+ }, []);
39
62
  // Cleanup on unmount
40
63
  useEffect(() => {
41
64
  const timeouts = timeoutsRef.current;
@@ -44,7 +67,7 @@ export function ToastProvider({ children }) {
44
67
  timeouts.clear();
45
68
  };
46
69
  }, []);
47
- return _jsx(ToastContext.Provider, { value: { toasts, addToast, removeToast, clearAll }, children: children });
70
+ return (_jsx(ToastContext.Provider, { value: { toasts, addToast, removeToast, clearAll, headerMode, setHeaderMode: setHeaderModeCallback, latestToast }, children: children }));
48
71
  }
49
72
  export function useToastContext() {
50
73
  const context = useContext(ToastContext);
@@ -0,0 +1,18 @@
1
+ interface UserAvatarProps {
2
+ /** Direct avatar URL (IPFS or HTTP). Resolved and validated internally. */
3
+ avatarUrl?: string | null;
4
+ /** Seed for the generated fallback avatar + alt text. Use email, username, or address. */
5
+ name?: string;
6
+ /** Avatar size in pixels (square). */
7
+ size?: number;
8
+ /** Additional className for the outer container. */
9
+ className?: string;
10
+ }
11
+ /**
12
+ * Renders a user avatar with IPFS support and boring-avatars fallback.
13
+ *
14
+ * - If `avatarUrl` is provided and valid, renders via IPFSMediaRenderer.
15
+ * - On load failure or missing URL, falls back to a deterministic boring-avatars beam.
16
+ */
17
+ export declare function UserAvatar({ avatarUrl, name, size, className }: UserAvatarProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { validateImageUrl } from "../../../../global-account/react/utils/profileDisplay.js";
3
+ import { AVATAR_COLORS } from "../../../../shared/constants/index.js";
4
+ import Avatar from "boring-avatars";
5
+ import { useCallback, useEffect, useState } from "react";
6
+ import { IPFSMediaRenderer } from "../IPFSMediaRenderer/IPFSMediaRenderer.js";
7
+ /**
8
+ * Renders a user avatar with IPFS support and boring-avatars fallback.
9
+ *
10
+ * - If `avatarUrl` is provided and valid, renders via IPFSMediaRenderer.
11
+ * - On load failure or missing URL, falls back to a deterministic boring-avatars beam.
12
+ */
13
+ export function UserAvatar({ avatarUrl, name = "user", size = 40, className }) {
14
+ const resolvedSrc = validateImageUrl(avatarUrl);
15
+ const [imgError, setImgError] = useState(false);
16
+ useEffect(() => {
17
+ setImgError(false);
18
+ }, [avatarUrl]);
19
+ const handleImgError = useCallback(() => setImgError(true), []);
20
+ return (_jsx("div", { className: className, style: { width: size, height: size, minWidth: size, minHeight: size }, children: resolvedSrc && !imgError ? (_jsx("div", { onErrorCapture: handleImgError, className: "h-full w-full overflow-hidden rounded-full", children: _jsx(IPFSMediaRenderer, { src: resolvedSrc, alt: name, className: "h-full w-full object-cover" }) })) : (_jsx(Avatar, { name: name, variant: "beam", size: size, colors: AVATAR_COLORS })) }));
21
+ }
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  declare const buttonVariants: (props?: ({
3
- variant?: "link" | "default" | "b3" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
3
+ variant?: "default" | "link" | "b3" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
4
4
  size?: "default" | "icon" | "sm" | "lg" | null | undefined;
5
5
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
6
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
@@ -1,10 +1,14 @@
1
1
  export { B3DynamicModal } from "./B3DynamicModal";
2
2
  export { B3Provider } from "./B3Provider/B3Provider";
3
+ export type { AuthStrategy } from "./B3Provider/B3ConfigProvider";
3
4
  export { RelayKitProviderWrapper } from "./B3Provider/RelayKitProviderWrapper";
4
5
  export { useB3 } from "./B3Provider/useB3";
5
6
  export { useB3Account } from "./B3Provider/useB3Account";
6
7
  export { useB3Config } from "./B3Provider/useB3Config";
7
8
  export { StyleRoot } from "./StyleRoot";
9
+ export { BetterAuthResetPassword, type BetterAuthResetPasswordProps } from "./SignInWithB3/BetterAuthResetPassword";
10
+ export { BetterAuthSignIn, type BetterAuthSignInProps } from "./SignInWithB3/BetterAuthSignIn";
11
+ export { BetterAuthVerifyEmail, type BetterAuthVerifyEmailProps, type BetterAuthVerifyEmailState, } from "./SignInWithB3/BetterAuthVerifyEmail";
8
12
  export { AuthButton } from "./SignInWithB3/components/AuthButton";
9
13
  export { PermissionItem } from "./SignInWithB3/components/PermissionItem";
10
14
  export { WalletRow } from "./SignInWithB3/components/WalletRow";
@@ -14,6 +18,7 @@ export { SignInWithB3Privy } from "./SignInWithB3/SignInWithB3Privy";
14
18
  export { LoginStepContainer } from "./SignInWithB3/steps/LoginStep";
15
19
  export { getConnectOptionsFromStrategy, isWalletType, type AllowedStrategy } from "./SignInWithB3/utils/signInUtils";
16
20
  export { ManageAccount } from "./ManageAccount/ManageAccount";
21
+ export { UserAvatar } from "./UserAvatar/UserAvatar";
17
22
  export { Deposit } from "./Deposit/Deposit";
18
23
  export { Send } from "./Send/Send";
19
24
  export { IPFSMediaRenderer } from "./IPFSMediaRenderer/IPFSMediaRenderer";
@@ -8,6 +8,9 @@ export { useB3Account } from "./B3Provider/useB3Account.js";
8
8
  export { useB3Config } from "./B3Provider/useB3Config.js";
9
9
  export { StyleRoot } from "./StyleRoot.js";
10
10
  // SignInWithB3 Components
11
+ export { BetterAuthResetPassword } from "./SignInWithB3/BetterAuthResetPassword.js";
12
+ export { BetterAuthSignIn } from "./SignInWithB3/BetterAuthSignIn.js";
13
+ export { BetterAuthVerifyEmail, } from "./SignInWithB3/BetterAuthVerifyEmail.js";
11
14
  export { AuthButton } from "./SignInWithB3/components/AuthButton.js";
12
15
  export { PermissionItem } from "./SignInWithB3/components/PermissionItem.js";
13
16
  export { WalletRow } from "./SignInWithB3/components/WalletRow.js";
@@ -18,6 +21,8 @@ export { LoginStepContainer } from "./SignInWithB3/steps/LoginStep.js";
18
21
  export { getConnectOptionsFromStrategy, isWalletType } from "./SignInWithB3/utils/signInUtils.js";
19
22
  // ManageAccount Components
20
23
  export { ManageAccount } from "./ManageAccount/ManageAccount.js";
24
+ // UserAvatar
25
+ export { UserAvatar } from "./UserAvatar/UserAvatar.js";
21
26
  // Deposit Components
22
27
  export { Deposit } from "./Deposit/Deposit.js";
23
28
  // Send Components
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
4
+ variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
5
  size?: "default" | "icon" | "sm" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -5,6 +5,7 @@ export { useAddTWSessionKey } from "./useAddTWSessionKey";
5
5
  export { useAnalytics } from "./useAnalytics";
6
6
  export { useAuth } from "./useAuth";
7
7
  export { useAuthentication } from "./useAuthentication";
8
+ export { useBetterAuth, EmailVerificationRequiredError } from "./useBetterAuth";
8
9
  export { useB3BalanceFromAddresses } from "./useB3BalanceFromAddresses";
9
10
  export { useB3EnsName } from "./useB3EnsName";
10
11
  export { useChainSwitchWithAction } from "./useChainSwitchWithAction";
@@ -5,6 +5,7 @@ export { useAddTWSessionKey } from "./useAddTWSessionKey.js";
5
5
  export { useAnalytics } from "./useAnalytics.js";
6
6
  export { useAuth } from "./useAuth.js";
7
7
  export { useAuthentication } from "./useAuthentication.js";
8
+ export { useBetterAuth, EmailVerificationRequiredError } from "./useBetterAuth.js";
8
9
  export { useB3BalanceFromAddresses } from "./useB3BalanceFromAddresses.js";
9
10
  export { useB3EnsName } from "./useB3EnsName.js";
10
11
  export { useChainSwitchWithAction } from "./useChainSwitchWithAction.js";
@@ -5,13 +5,13 @@ import { ecosystemWalletId } from "../../../shared/constants/index.js";
5
5
  import { debugB3React } from "../../../shared/utils/debug.js";
6
6
  import { client } from "../../../shared/utils/thirdweb.js";
7
7
  import { getConnectors } from "@wagmi/core";
8
- import { useCallback, useContext, useEffect, useRef } from "react";
8
+ import { useCallback, useContext, useEffect, useMemo, useRef } from "react";
9
9
  import { useActiveWallet, useAutoConnect, useConnectedWallets, useDisconnect, useSetActiveWallet, } from "thirdweb/react";
10
10
  import { ecosystemWallet } from "thirdweb/wallets";
11
11
  import { preAuthenticate } from "thirdweb/wallets/in-app";
12
12
  import { useAccount, useConnect, useSwitchAccount } from "wagmi";
13
13
  import { LocalSDKContext } from "../components/B3Provider/LocalSDKProvider.js";
14
- import { getCachedWagmiConfig } from "../utils/createWagmiConfig.js";
14
+ import { createWagmiConfig } from "../utils/createWagmiConfig.js";
15
15
  import { useSearchParam } from "./useSearchParamsSSR.js";
16
16
  import { useUserQuery } from "./useUserQuery.js";
17
17
  const debug = debugB3React("useAuth");
@@ -21,7 +21,7 @@ const debug = debugB3React("useAuth");
21
21
  * This hook provides 1:1 feature parity with useAuthentication.ts
22
22
  */
23
23
  export function useAuth() {
24
- const { onConnectCallback } = useContext(LocalSDKContext);
24
+ const { onConnectCallback, disableBSMNTAuthentication } = useContext(LocalSDKContext);
25
25
  const { disconnect } = useDisconnect();
26
26
  const wallets = useConnectedWallets();
27
27
  const activeWallet = useActiveWallet();
@@ -38,7 +38,7 @@ export function useAuth() {
38
38
  const useAutoConnectLoadingPrevious = useRef(false);
39
39
  const referralCode = useSearchParam("referralCode");
40
40
  const { partnerId } = useB3Config();
41
- const wagmiConfig = getCachedWagmiConfig({ partnerId });
41
+ const wagmiConfig = useMemo(() => createWagmiConfig({ partnerId }), [partnerId]);
42
42
  const { connect } = useConnect();
43
43
  const activeWagmiAccount = useAccount();
44
44
  const { switchAccount } = useSwitchAccount();
@@ -63,8 +63,10 @@ export function useAuth() {
63
63
  }
64
64
  // Authenticate with BSMNT
65
65
  try {
66
- const b3Jwt = await authenticateWithB3JWT(response.accessToken);
67
- debug("BSMNT re-authentication successful", b3Jwt);
66
+ if (!disableBSMNTAuthentication) {
67
+ const b3Jwt = await authenticateWithB3JWT(response.accessToken);
68
+ debug("BSMNT re-authentication successful", b3Jwt);
69
+ }
68
70
  }
69
71
  catch (bsmntError) {
70
72
  // BSMNT authentication failure shouldn't block the main auth flow
@@ -76,7 +78,7 @@ export function useAuth() {
76
78
  debug("Re-authentication failed", err);
77
79
  throw err;
78
80
  }
79
- }, [setUser]);
81
+ }, [setUser, disableBSMNTAuthentication]);
80
82
  const syncWagmi = useCallback(async () => {
81
83
  function syncWagmiFunc() {
82
84
  const connectors = getConnectors(wagmiConfig);
@@ -120,9 +122,7 @@ export function useAuth() {
120
122
  });
121
123
  }
122
124
  syncWagmiFunc();
123
- // wagmi config shouldn't change
124
- // eslint-disable-next-line react-hooks/exhaustive-deps
125
- }, [partnerId, wallets]);
125
+ }, [wagmiConfig, wallets, connect, switchAccount]);
126
126
  useEffect(() => {
127
127
  syncWagmi();
128
128
  }, [wallets, syncWagmi]);
@@ -139,9 +139,11 @@ export function useAuth() {
139
139
  setIsAuthenticated(true);
140
140
  setIsAuthenticating(false);
141
141
  debug("Re-authenticated successfully", { userAuth });
142
- // Authenticate on BSMNT with B3 JWT
143
- const b3Jwt = await authenticateWithB3JWT(userAuth.accessToken);
144
- debug("@@b3Jwt", b3Jwt);
142
+ if (!disableBSMNTAuthentication) {
143
+ // Authenticate on BSMNT with B3 JWT
144
+ const b3Jwt = await authenticateWithB3JWT(userAuth.accessToken);
145
+ debug("@@b3Jwt", b3Jwt);
146
+ }
145
147
  return userAuth;
146
148
  }
147
149
  catch (error) {
@@ -151,7 +153,14 @@ export function useAuth() {
151
153
  setIsAuthenticating(false);
152
154
  throw new Error("Authentication required. Please authenticate.");
153
155
  }
154
- }, [reAuthenticate, setIsAuthenticated, setIsAuthenticating, setUser, setHasStartedConnecting]);
156
+ }, [
157
+ reAuthenticate,
158
+ setIsAuthenticated,
159
+ setIsAuthenticating,
160
+ setUser,
161
+ setHasStartedConnecting,
162
+ disableBSMNTAuthentication,
163
+ ]);
155
164
  /**
156
165
  * Authenticate with B3
157
166
  *
@@ -181,8 +190,10 @@ export function useAuth() {
181
190
  }
182
191
  // Step 3: Authenticate with BSMNT for basement integration
183
192
  try {
184
- const b3Jwt = await authenticateWithB3JWT(response.accessToken);
185
- debug("BSMNT authentication successful", b3Jwt);
193
+ if (!disableBSMNTAuthentication) {
194
+ const b3Jwt = await authenticateWithB3JWT(response.accessToken);
195
+ debug("BSMNT authentication successful", b3Jwt);
196
+ }
186
197
  }
187
198
  catch (bsmntError) {
188
199
  // BSMNT authentication failure shouldn't block the main auth flow
@@ -194,7 +205,7 @@ export function useAuth() {
194
205
  debug("Authentication failed", err);
195
206
  throw err;
196
207
  }
197
- }, [referralCode, setUser]);
208
+ }, [referralCode, setUser, disableBSMNTAuthentication]);
198
209
  /**
199
210
  * Handle wallet connection
200
211
  */