@n1xyz/wallet-widget 0.0.35-alpha.0 → 0.0.35-alpha.1

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 (574) hide show
  1. package/dist/bridge-assist/cctp-solana.d.ts +33 -0
  2. package/dist/bridge-assist/cctp-solana.js +392 -0
  3. package/dist/bridge-assist/cctp-solana.js.map +1 -0
  4. package/dist/main.css +1 -2
  5. package/dist/src/adapters/evm.d.ts +39 -0
  6. package/dist/src/adapters/evm.js +338 -0
  7. package/dist/src/adapters/evm.js.map +1 -0
  8. package/dist/src/adapters/factory.d.ts +37 -0
  9. package/dist/src/adapters/factory.js +82 -0
  10. package/dist/src/adapters/factory.js.map +1 -0
  11. package/dist/src/adapters/index.d.ts +33 -0
  12. package/dist/src/adapters/index.js +36 -0
  13. package/dist/src/adapters/index.js.map +1 -0
  14. package/dist/src/adapters/solana.d.ts +37 -0
  15. package/dist/src/adapters/solana.js +359 -0
  16. package/dist/src/adapters/solana.js.map +1 -0
  17. package/dist/src/adapters/types.d.ts +160 -0
  18. package/dist/src/adapters/types.js +20 -0
  19. package/dist/src/adapters/types.js.map +1 -0
  20. package/dist/src/animations/N1Loader.js.map +1 -0
  21. package/dist/src/animations/N1Loader.json +1 -0
  22. package/dist/src/animations/Processing.js.map +1 -0
  23. package/dist/src/animations/Processing.json +1 -0
  24. package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
  25. package/dist/{components → src/components}/LoadingFallback.js +3 -0
  26. package/dist/src/components/LoadingFallback.js.map +1 -0
  27. package/dist/{components → src/components}/Logo.d.ts +4 -0
  28. package/dist/{components → src/components}/Logo.js +4 -0
  29. package/dist/src/components/Logo.js.map +1 -0
  30. package/dist/src/components/N1ConnectButton.d.ts +13 -0
  31. package/dist/src/components/N1ConnectButton.js +66 -0
  32. package/dist/src/components/N1ConnectButton.js.map +1 -0
  33. package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
  34. package/dist/src/components/logos/BaseLogo.js +6 -0
  35. package/dist/src/components/logos/BaseLogo.js.map +1 -0
  36. package/dist/src/components/logos/BeraLogo.js.map +1 -0
  37. package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
  38. package/dist/src/components/logos/EthereumLogo.js.map +1 -0
  39. package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
  40. package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
  41. package/dist/src/components/logos/OptimismLogo.js.map +1 -0
  42. package/dist/src/components/logos/SolanaLogo.js.map +1 -0
  43. package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
  44. package/dist/src/components/logos/index.js.map +1 -0
  45. package/dist/src/config/chains.d.ts +18 -0
  46. package/dist/src/config/chains.js +58 -0
  47. package/dist/src/config/chains.js.map +1 -0
  48. package/dist/src/config/dynamic.d.ts +1 -0
  49. package/dist/src/config/dynamic.js +18 -0
  50. package/dist/src/config/dynamic.js.map +1 -0
  51. package/dist/src/config/solana.js.map +1 -0
  52. package/dist/src/config/turnkey.d.ts +2 -0
  53. package/dist/src/config/turnkey.js +32 -0
  54. package/dist/src/config/turnkey.js.map +1 -0
  55. package/dist/src/context/n1-wallet-context.js.map +1 -0
  56. package/dist/src/errors/types.d.ts +72 -0
  57. package/dist/src/errors/types.js +140 -0
  58. package/dist/src/errors/types.js.map +1 -0
  59. package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
  60. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
  61. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
  62. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
  63. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  64. package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
  65. package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
  66. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  67. package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
  68. package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
  69. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  70. package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
  71. package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
  72. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  73. package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
  74. package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
  75. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  76. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
  77. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
  78. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  79. package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
  80. package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
  81. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  82. package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
  83. package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
  84. package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
  85. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
  86. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
  87. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  88. package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
  89. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  90. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  91. package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
  92. package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
  93. package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
  94. package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
  95. package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
  96. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
  97. package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
  98. package/dist/src/features/onboarding-flow/components/Header.js +69 -0
  99. package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
  100. package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +2 -5
  101. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js +33 -0
  102. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  103. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
  104. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
  105. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  106. package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
  107. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  108. package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
  109. package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
  110. package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
  111. package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
  112. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
  113. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
  114. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  115. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
  116. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
  117. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  118. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
  119. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
  120. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  121. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
  122. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
  123. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  124. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
  125. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
  126. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  127. package/dist/src/features/onboarding-flow/index.js.map +1 -0
  128. package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
  129. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
  130. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  131. package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
  132. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
  133. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  134. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
  135. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
  136. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  137. package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
  138. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
  139. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  140. package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
  141. package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
  142. package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
  143. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
  144. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
  145. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  146. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
  147. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
  148. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  149. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
  150. package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
  151. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  152. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +1 -0
  153. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +25 -0
  154. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  155. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +1 -0
  156. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +25 -0
  157. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  158. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts → src/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts} +11 -11
  159. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.js → src/features/onboarding-flow/screens/04-ChainSelectionScreen.js} +60 -30
  160. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  161. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
  162. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
  163. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  164. package/dist/{features/onboarding-flow/screens/04-DepositProgressScreen.d.ts → src/features/onboarding-flow/screens/06-DepositProgressScreen.d.ts} +5 -0
  165. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
  166. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  167. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
  168. package/dist/{features/onboarding-flow/screens/05-DepositSuccessScreen.js → src/features/onboarding-flow/screens/07-DepositSuccessScreen.js} +12 -6
  169. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  170. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
  171. package/dist/{features/onboarding-flow/screens/06-AuthLoadingScreen.js → src/features/onboarding-flow/screens/08-AuthLoadingScreen.js} +6 -2
  172. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  173. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
  174. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
  175. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  176. package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
  177. package/dist/src/features/onboarding-flow/screens/index.js +11 -0
  178. package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
  179. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
  180. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
  181. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  182. package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
  183. package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
  184. package/dist/src/features/onboarding-flow/types.js.map +1 -0
  185. package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
  186. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
  187. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  188. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
  189. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
  190. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  191. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
  192. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
  193. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  194. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
  195. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
  196. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  197. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
  198. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
  199. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  200. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
  201. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
  202. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  203. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
  204. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
  205. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  206. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
  207. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
  208. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  209. package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
  210. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
  211. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  212. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
  213. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
  214. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  215. package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
  216. package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
  217. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  218. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
  219. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
  220. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  221. package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
  222. package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
  223. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  224. package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
  225. package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
  226. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  227. package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
  228. package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
  229. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  230. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
  231. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
  232. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  233. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
  234. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
  235. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  236. package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
  237. package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
  238. package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
  239. package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
  240. package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
  241. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  242. package/dist/src/hooks/index.js.map +1 -0
  243. package/dist/src/hooks/useN1Wallet.d.ts +12 -0
  244. package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
  245. package/dist/src/hooks/useN1Wallet.js.map +1 -0
  246. package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
  247. package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
  248. package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
  249. package/dist/src/index.d.ts +9 -0
  250. package/dist/src/index.js +16 -0
  251. package/dist/src/index.js.map +1 -0
  252. package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
  253. package/dist/src/providers/LazyWalletProvider.js +404 -0
  254. package/dist/src/providers/LazyWalletProvider.js.map +1 -0
  255. package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
  256. package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
  257. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  258. package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
  259. package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
  260. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  261. package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
  262. package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
  263. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  264. package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
  265. package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
  266. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  267. package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
  268. package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
  269. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  270. package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
  271. package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
  272. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  273. package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
  274. package/dist/src/providers/N1WalletProvider/index.js +27 -0
  275. package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
  276. package/dist/src/providers/N1WalletProvider.d.ts +17 -0
  277. package/dist/src/providers/N1WalletProvider.js +102 -0
  278. package/dist/src/providers/N1WalletProvider.js.map +1 -0
  279. package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
  280. package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -5
  281. package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
  282. package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
  283. package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
  284. package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
  285. package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
  286. package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
  287. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
  288. package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
  289. package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
  290. package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
  291. package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
  292. package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
  293. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
  294. package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
  295. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
  296. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  297. package/dist/src/services/bootstrap/index.d.ts +13 -0
  298. package/dist/src/services/bootstrap/index.js +16 -0
  299. package/dist/src/services/bootstrap/index.js.map +1 -0
  300. package/dist/src/services/bootstrap/types.d.ts +92 -0
  301. package/dist/src/services/bootstrap/types.js +7 -0
  302. package/dist/src/services/bootstrap/types.js.map +1 -0
  303. package/dist/src/services/storage/StorageService.d.ts +98 -0
  304. package/dist/src/services/storage/StorageService.js +360 -0
  305. package/dist/src/services/storage/StorageService.js.map +1 -0
  306. package/dist/src/services/storage/index.d.ts +9 -0
  307. package/dist/src/services/storage/index.js +10 -0
  308. package/dist/src/services/storage/index.js.map +1 -0
  309. package/dist/src/services/storage/keys.d.ts +28 -0
  310. package/dist/src/services/storage/keys.js +45 -0
  311. package/dist/src/services/storage/keys.js.map +1 -0
  312. package/dist/src/services/storage/types.d.ts +73 -0
  313. package/dist/src/services/storage/types.js +23 -0
  314. package/dist/src/services/storage/types.js.map +1 -0
  315. package/dist/src/store/index.d.ts +8 -0
  316. package/dist/src/store/index.js +24 -0
  317. package/dist/src/store/index.js.map +1 -0
  318. package/dist/src/store/selectors.d.ts +105 -0
  319. package/dist/src/store/selectors.js +183 -0
  320. package/dist/src/store/selectors.js.map +1 -0
  321. package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
  322. package/dist/src/store/slices/bootstrapSlice.js +78 -0
  323. package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
  324. package/dist/src/store/slices/configSlice.d.ts +7 -0
  325. package/dist/src/store/slices/configSlice.js +14 -0
  326. package/dist/src/store/slices/configSlice.js.map +1 -0
  327. package/dist/src/store/slices/index.d.ts +10 -0
  328. package/dist/src/store/slices/index.js +10 -0
  329. package/dist/src/store/slices/index.js.map +1 -0
  330. package/dist/src/store/slices/sessionSlice.d.ts +7 -0
  331. package/dist/src/store/slices/sessionSlice.js +17 -0
  332. package/dist/src/store/slices/sessionSlice.js.map +1 -0
  333. package/dist/src/store/slices/signingSlice.d.ts +7 -0
  334. package/dist/src/store/slices/signingSlice.js +14 -0
  335. package/dist/src/store/slices/signingSlice.js.map +1 -0
  336. package/dist/src/store/slices/uiSlice.d.ts +9 -0
  337. package/dist/src/store/slices/uiSlice.js +25 -0
  338. package/dist/src/store/slices/uiSlice.js.map +1 -0
  339. package/dist/src/store/slices/walletSlice.d.ts +7 -0
  340. package/dist/src/store/slices/walletSlice.js +21 -0
  341. package/dist/src/store/slices/walletSlice.js.map +1 -0
  342. package/dist/src/store/store.d.ts +50 -0
  343. package/dist/src/store/store.js +259 -0
  344. package/dist/src/store/store.js.map +1 -0
  345. package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
  346. package/dist/src/store/subscriptions/depositPersistence.js +106 -0
  347. package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
  348. package/dist/src/store/subscriptions/index.d.ts +34 -0
  349. package/dist/src/store/subscriptions/index.js +73 -0
  350. package/dist/src/store/subscriptions/index.js.map +1 -0
  351. package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
  352. package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
  353. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
  354. package/dist/src/store/types.d.ts +166 -0
  355. package/dist/src/store/types.js +7 -0
  356. package/dist/src/store/types.js.map +1 -0
  357. package/dist/src/styles/cdn-fonts.d.ts +12 -0
  358. package/dist/{styles → src/styles}/cdn-fonts.js +20 -2
  359. package/dist/src/styles/cdn-fonts.js.map +1 -0
  360. package/dist/src/styles/embedded-main-css.d.ts +2 -0
  361. package/dist/src/styles/embedded-main-css.js +3 -0
  362. package/dist/src/styles/embedded-main-css.js.map +1 -0
  363. package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
  364. package/dist/src/turnkey/TurnkeyProvider.js +695 -0
  365. package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
  366. package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
  367. package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
  368. package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
  369. package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
  370. package/dist/src/turnkey/createWalletProvider.js +286 -0
  371. package/dist/src/turnkey/createWalletProvider.js.map +1 -0
  372. package/dist/src/turnkey/index.d.ts +3 -0
  373. package/dist/src/turnkey/index.js +3 -0
  374. package/dist/src/turnkey/index.js.map +1 -0
  375. package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
  376. package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
  377. package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
  378. package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
  379. package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
  380. package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
  381. package/dist/src/turnkey/types.d.ts +61 -0
  382. package/dist/src/turnkey/types.js +12 -0
  383. package/dist/src/turnkey/types.js.map +1 -0
  384. package/dist/{types → src/types}/wallet.d.ts +39 -13
  385. package/dist/src/types/wallet.js.map +1 -0
  386. package/dist/src/utils/address.d.ts +130 -0
  387. package/dist/src/utils/address.js +274 -0
  388. package/dist/src/utils/address.js.map +1 -0
  389. package/dist/src/utils/chain.d.ts +89 -0
  390. package/dist/src/utils/chain.js +282 -0
  391. package/dist/src/utils/chain.js.map +1 -0
  392. package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
  393. package/dist/{utils → src/utils}/ed25519.js +5 -20
  394. package/dist/src/utils/ed25519.js.map +1 -0
  395. package/dist/src/utils/errors.d.ts +68 -0
  396. package/dist/src/utils/errors.js +190 -0
  397. package/dist/src/utils/errors.js.map +1 -0
  398. package/dist/src/utils/events.d.ts +124 -0
  399. package/dist/src/utils/events.js +155 -0
  400. package/dist/src/utils/events.js.map +1 -0
  401. package/dist/src/utils/formatAmount.d.ts +4 -0
  402. package/dist/src/utils/formatAmount.js +9 -0
  403. package/dist/src/utils/formatAmount.js.map +1 -0
  404. package/dist/src/utils/logger.d.ts +45 -0
  405. package/dist/{utils → src/utils}/logger.js +68 -2
  406. package/dist/src/utils/logger.js.map +1 -0
  407. package/dist/src/utils/shortenString.d.ts +5 -0
  408. package/dist/src/utils/shortenString.js +16 -0
  409. package/dist/src/utils/shortenString.js.map +1 -0
  410. package/package.json +45 -29
  411. package/dist/animations/N1Loader.js.map +0 -1
  412. package/dist/animations/Processing.js.map +0 -1
  413. package/dist/components/LoadingFallback.js.map +0 -1
  414. package/dist/components/Logo.js.map +0 -1
  415. package/dist/components/N1ConnectButton.d.ts +0 -5
  416. package/dist/components/N1ConnectButton.js +0 -49
  417. package/dist/components/N1ConnectButton.js.map +0 -1
  418. package/dist/components/logos/ArbitrumLogo.js.map +0 -1
  419. package/dist/components/logos/BaseLogo.js +0 -6
  420. package/dist/components/logos/BaseLogo.js.map +0 -1
  421. package/dist/components/logos/BeraLogo.js.map +0 -1
  422. package/dist/components/logos/BitcoinLogo.js.map +0 -1
  423. package/dist/components/logos/EthereumLogo.js.map +0 -1
  424. package/dist/components/logos/HyperliquidLogo.js.map +0 -1
  425. package/dist/components/logos/OptimismLogo.js.map +0 -1
  426. package/dist/components/logos/SolanaLogo.js.map +0 -1
  427. package/dist/components/logos/ZeroOneLogo.js.map +0 -1
  428. package/dist/components/logos/index.js.map +0 -1
  429. package/dist/config/chains.d.ts +0 -0
  430. package/dist/config/chains.js +0 -2
  431. package/dist/config/chains.js.map +0 -1
  432. package/dist/config/solana.js.map +0 -1
  433. package/dist/config.d.ts +0 -2
  434. package/dist/config.js +0 -3
  435. package/dist/config.js.map +0 -1
  436. package/dist/context/n1-wallet-context.js.map +0 -1
  437. package/dist/errors/types.d.ts +0 -25
  438. package/dist/errors/types.js +0 -77
  439. package/dist/errors/types.js.map +0 -1
  440. package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
  441. package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  442. package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
  443. package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
  444. package/dist/features/onboarding-flow/components/Header.js +0 -45
  445. package/dist/features/onboarding-flow/components/Header.js.map +0 -1
  446. package/dist/features/onboarding-flow/components/ImageWithFallback.js +0 -63
  447. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  448. package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  449. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  450. package/dist/features/onboarding-flow/components/index.js.map +0 -1
  451. package/dist/features/onboarding-flow/index.js.map +0 -1
  452. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
  453. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  454. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
  455. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  456. package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  457. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
  458. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  459. package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
  460. package/dist/features/onboarding-flow/providers/index.js.map +0 -1
  461. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  462. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
  463. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  464. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
  465. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
  466. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
  467. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
  468. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
  469. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
  470. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
  471. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
  472. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
  473. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
  474. package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
  475. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
  476. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
  477. package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
  478. package/dist/features/onboarding-flow/screens/index.js +0 -8
  479. package/dist/features/onboarding-flow/screens/index.js.map +0 -1
  480. package/dist/features/onboarding-flow/types.js.map +0 -1
  481. package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
  482. package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
  483. package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
  484. package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
  485. package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
  486. package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
  487. package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
  488. package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
  489. package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
  490. package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
  491. package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  492. package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
  493. package/dist/features/onboarding-flow/utils/session.js +0 -69
  494. package/dist/features/onboarding-flow/utils/session.js.map +0 -1
  495. package/dist/features/onboarding-flow/utils/transaction.js +0 -8
  496. package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
  497. package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
  498. package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
  499. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  500. package/dist/hooks/index.js.map +0 -1
  501. package/dist/hooks/useN1Wallet.d.ts +0 -2
  502. package/dist/hooks/useN1Wallet.js.map +0 -1
  503. package/dist/hooks/useNordUserInitialization.d.ts +0 -1
  504. package/dist/hooks/useNordUserInitialization.js.map +0 -1
  505. package/dist/index.d.ts +0 -7
  506. package/dist/index.js +0 -8
  507. package/dist/index.js.map +0 -1
  508. package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
  509. package/dist/polyfills/windowEthereumGuard.js +0 -28
  510. package/dist/polyfills/windowEthereumGuard.js.map +0 -1
  511. package/dist/providers/LazyWalletProvider.d.ts +0 -1
  512. package/dist/providers/LazyWalletProvider.js +0 -230
  513. package/dist/providers/LazyWalletProvider.js.map +0 -1
  514. package/dist/providers/N1WalletProvider.d.ts +0 -3
  515. package/dist/providers/N1WalletProvider.js +0 -271
  516. package/dist/providers/N1WalletProvider.js.map +0 -1
  517. package/dist/providers/ShadowRootWrapper.js.map +0 -1
  518. package/dist/providers/WalletErrorBoundary.js.map +0 -1
  519. package/dist/styles/cdn-fonts.d.ts +0 -1
  520. package/dist/styles/cdn-fonts.js.map +0 -1
  521. package/dist/styles/embedded-main-css.d.ts +0 -2
  522. package/dist/styles/embedded-main-css.js +0 -3
  523. package/dist/styles/embedded-main-css.js.map +0 -1
  524. package/dist/types/wallet.js.map +0 -1
  525. package/dist/utils/ed25519.js.map +0 -1
  526. package/dist/utils/getPseudoName.d.ts +0 -1
  527. package/dist/utils/getPseudoName.js +0 -5826
  528. package/dist/utils/getPseudoName.js.map +0 -1
  529. package/dist/utils/logger.d.ts +0 -21
  530. package/dist/utils/logger.js.map +0 -1
  531. package/dist/utils/shortenString.d.ts +0 -2
  532. package/dist/utils/shortenString.js +0 -9
  533. package/dist/utils/shortenString.js.map +0 -1
  534. package/dist/utils/words.d.ts +0 -9
  535. package/dist/utils/words.js +0 -93572
  536. package/dist/utils/words.js.map +0 -1
  537. /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
  538. /package/dist/{animations → src/animations}/N1Loader.js +0 -0
  539. /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
  540. /package/dist/{animations → src/animations}/Processing.js +0 -0
  541. /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
  542. /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
  543. /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
  544. /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
  545. /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
  546. /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
  547. /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
  548. /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
  549. /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
  550. /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
  551. /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
  552. /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
  553. /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
  554. /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
  555. /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
  556. /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
  557. /package/dist/{components → src/components}/logos/index.d.ts +0 -0
  558. /package/dist/{components → src/components}/logos/index.js +0 -0
  559. /package/dist/{config → src/config}/solana.d.ts +0 -0
  560. /package/dist/{config → src/config}/solana.js +0 -0
  561. /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
  562. /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
  563. /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  564. /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
  565. /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
  566. /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
  567. /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
  568. /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
  569. /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
  570. /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
  571. /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
  572. /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  573. /package/dist/{hooks → src/hooks}/index.js +0 -0
  574. /package/dist/{types → src/types}/wallet.js +0 -0
@@ -0,0 +1,134 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useCallback, useContext, useMemo, } from 'react';
4
+ import { useWalletStore, getWalletActions } from '../../store';
5
+ // ---------------------------------------------------------------------------
6
+ // Context
7
+ // ---------------------------------------------------------------------------
8
+ var SigningContext = createContext(null);
9
+ // ---------------------------------------------------------------------------
10
+ // Hooks
11
+ // ---------------------------------------------------------------------------
12
+ /**
13
+ * Hook to access signing state and actions.
14
+ * Must be used within a SigningProvider.
15
+ */
16
+ export function useSigning() {
17
+ var context = useContext(SigningContext);
18
+ if (!context) {
19
+ throw new Error('useSigning must be used within a SigningProvider');
20
+ }
21
+ return context;
22
+ }
23
+ /**
24
+ * Hook to access signing functions only (no setters).
25
+ * Useful for components that only need to sign.
26
+ */
27
+ export function useSigningState() {
28
+ var _a = useSigning(), signMessageWithSessionKey = _a.signMessageWithSessionKey, signMessageWithWalletKey = _a.signMessageWithWalletKey, signTransactionWithWalletKey = _a.signTransactionWithWalletKey;
29
+ return {
30
+ signMessageWithSessionKey: signMessageWithSessionKey,
31
+ signMessageWithWalletKey: signMessageWithWalletKey,
32
+ signTransactionWithWalletKey: signTransactionWithWalletKey,
33
+ };
34
+ }
35
+ /**
36
+ * Hook to access signing setters only (no functions).
37
+ * Useful for components that register signing functions.
38
+ */
39
+ export function useSigningActions() {
40
+ var _a = useSigning(), setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey;
41
+ return {
42
+ setSignMessageWithSessionKey: setSignMessageWithSessionKey,
43
+ setSignMessageWithWalletKey: setSignMessageWithWalletKey,
44
+ setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
45
+ };
46
+ }
47
+ // ---------------------------------------------------------------------------
48
+ // Provider
49
+ // ---------------------------------------------------------------------------
50
+ /**
51
+ * SigningProvider manages signing functions for wallet operations.
52
+ *
53
+ * Uses clean Zustand approach - reads/writes directly from store.
54
+ *
55
+ * Responsibilities:
56
+ * - Store and provide signing functions
57
+ * - Support session key signing
58
+ * - Support wallet key signing (messages and transactions)
59
+ *
60
+ * Does NOT handle:
61
+ * - Modal state
62
+ * - Network/chain state
63
+ * - Session/authentication state
64
+ * - Theming
65
+ */
66
+ export function SigningProvider(_a) {
67
+ // -------------------------------------------------------------------------
68
+ // State from Store (individual selectors for optimal re-renders)
69
+ // -------------------------------------------------------------------------
70
+ var children = _a.children;
71
+ var signMessageWithSessionKey = useWalletStore(function (state) { return state.signing.signMessageWithSessionKey; });
72
+ var signMessageWithWalletKey = useWalletStore(function (state) { return state.signing.signMessageWithWalletKey; });
73
+ var signTransactionWithWalletKey = useWalletStore(function (state) { return state.signing.signTransactionWithWalletKey; });
74
+ // -------------------------------------------------------------------------
75
+ // Store Actions (stable references via getWalletActions)
76
+ // -------------------------------------------------------------------------
77
+ var storeActions = getWalletActions().signing;
78
+ // -------------------------------------------------------------------------
79
+ // Action Wrappers (compatible with React.Dispatch signature)
80
+ // -------------------------------------------------------------------------
81
+ var setSignMessageWithSessionKey = useCallback(function (valueOrUpdater) {
82
+ if (typeof valueOrUpdater === 'function') {
83
+ var currentValue = useWalletStore.getState().signing.signMessageWithSessionKey;
84
+ storeActions.setSignMessageWithSessionKey(valueOrUpdater(currentValue));
85
+ }
86
+ else {
87
+ storeActions.setSignMessageWithSessionKey(valueOrUpdater);
88
+ }
89
+ }, [storeActions]);
90
+ var setSignMessageWithWalletKey = useCallback(function (valueOrUpdater) {
91
+ if (typeof valueOrUpdater === 'function') {
92
+ var currentValue = useWalletStore.getState().signing.signMessageWithWalletKey;
93
+ storeActions.setSignMessageWithWalletKey(valueOrUpdater(currentValue));
94
+ }
95
+ else {
96
+ storeActions.setSignMessageWithWalletKey(valueOrUpdater);
97
+ }
98
+ }, [storeActions]);
99
+ var setSignTransactionWithWalletKey = useCallback(function (valueOrUpdater) {
100
+ if (typeof valueOrUpdater === 'function') {
101
+ var currentValue = useWalletStore.getState().signing.signTransactionWithWalletKey;
102
+ storeActions.setSignTransactionWithWalletKey(valueOrUpdater(currentValue));
103
+ }
104
+ else {
105
+ storeActions.setSignTransactionWithWalletKey(valueOrUpdater);
106
+ }
107
+ }, [storeActions]);
108
+ // -------------------------------------------------------------------------
109
+ // Context Value
110
+ // -------------------------------------------------------------------------
111
+ var value = useMemo(function () { return ({
112
+ // State
113
+ signMessageWithSessionKey: signMessageWithSessionKey,
114
+ signMessageWithWalletKey: signMessageWithWalletKey,
115
+ signTransactionWithWalletKey: signTransactionWithWalletKey,
116
+ // Actions
117
+ setSignMessageWithSessionKey: setSignMessageWithSessionKey,
118
+ setSignMessageWithWalletKey: setSignMessageWithWalletKey,
119
+ setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
120
+ }); }, [
121
+ signMessageWithSessionKey,
122
+ signMessageWithWalletKey,
123
+ signTransactionWithWalletKey,
124
+ setSignMessageWithSessionKey,
125
+ setSignMessageWithWalletKey,
126
+ setSignTransactionWithWalletKey,
127
+ ]);
128
+ return _jsx(SigningContext.Provider, { value: value, children: children });
129
+ }
130
+ // ---------------------------------------------------------------------------
131
+ // Exports
132
+ // ---------------------------------------------------------------------------
133
+ export { SigningContext };
134
+ //# sourceMappingURL=SigningProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SigningProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/SigningProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport { useWalletStore, getWalletActions, WalletStore } from '../../store';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Generic signing function type */\nexport type SigningFunction<T = unknown, R = unknown> = ((input: T) => Promise<R>) | null;\n\nexport interface SigningState {\n /** Function to sign messages with the session key */\n signMessageWithSessionKey: SigningFunction;\n /** Function to sign messages with the wallet key */\n signMessageWithWalletKey: SigningFunction;\n /** Function to sign transactions with the wallet key */\n signTransactionWithWalletKey: SigningFunction;\n}\n\nexport interface SigningActions {\n /** Set the session key signing function */\n setSignMessageWithSessionKey: React.Dispatch<React.SetStateAction<SigningFunction>>;\n /** Set the wallet key message signing function */\n setSignMessageWithWalletKey: React.Dispatch<React.SetStateAction<SigningFunction>>;\n /** Set the wallet key transaction signing function */\n setSignTransactionWithWalletKey: React.Dispatch<React.SetStateAction<SigningFunction>>;\n}\n\nexport interface SigningContextValue extends SigningState, SigningActions { }\n\nexport interface SigningProviderProps {\n children: React.ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst SigningContext = createContext<SigningContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access signing state and actions.\n * Must be used within a SigningProvider.\n */\nexport function useSigning(): SigningContextValue {\n const context = useContext(SigningContext);\n if (!context) {\n throw new Error('useSigning must be used within a SigningProvider');\n }\n return context;\n}\n\n/**\n * Hook to access signing functions only (no setters).\n * Useful for components that only need to sign.\n */\nexport function useSigningState(): SigningState {\n const {\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n } = useSigning();\n\n return {\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n };\n}\n\n/**\n * Hook to access signing setters only (no functions).\n * Useful for components that register signing functions.\n */\nexport function useSigningActions(): SigningActions {\n const {\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n } = useSigning();\n\n return {\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * SigningProvider manages signing functions for wallet operations.\n *\n * Uses clean Zustand approach - reads/writes directly from store.\n *\n * Responsibilities:\n * - Store and provide signing functions\n * - Support session key signing\n * - Support wallet key signing (messages and transactions)\n *\n * Does NOT handle:\n * - Modal state\n * - Network/chain state\n * - Session/authentication state\n * - Theming\n */\nexport function SigningProvider({ children }: SigningProviderProps) {\n // -------------------------------------------------------------------------\n // State from Store (individual selectors for optimal re-renders)\n // -------------------------------------------------------------------------\n\n const signMessageWithSessionKey = useWalletStore((state: WalletStore) => state.signing.signMessageWithSessionKey);\n const signMessageWithWalletKey = useWalletStore((state: WalletStore) => state.signing.signMessageWithWalletKey);\n const signTransactionWithWalletKey = useWalletStore((state: WalletStore) => state.signing.signTransactionWithWalletKey);\n\n // -------------------------------------------------------------------------\n // Store Actions (stable references via getWalletActions)\n // -------------------------------------------------------------------------\n\n const storeActions = getWalletActions().signing;\n\n // -------------------------------------------------------------------------\n // Action Wrappers (compatible with React.Dispatch signature)\n // -------------------------------------------------------------------------\n\n const setSignMessageWithSessionKey = useCallback<React.Dispatch<React.SetStateAction<SigningFunction>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().signing.signMessageWithSessionKey;\n storeActions.setSignMessageWithSessionKey(valueOrUpdater(currentValue) as SigningFunction);\n } else {\n storeActions.setSignMessageWithSessionKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setSignMessageWithWalletKey = useCallback<React.Dispatch<React.SetStateAction<SigningFunction>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().signing.signMessageWithWalletKey;\n storeActions.setSignMessageWithWalletKey(valueOrUpdater(currentValue) as SigningFunction);\n } else {\n storeActions.setSignMessageWithWalletKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n const setSignTransactionWithWalletKey = useCallback<React.Dispatch<React.SetStateAction<SigningFunction>>>(\n (valueOrUpdater) => {\n if (typeof valueOrUpdater === 'function') {\n const currentValue = useWalletStore.getState().signing.signTransactionWithWalletKey;\n storeActions.setSignTransactionWithWalletKey(valueOrUpdater(currentValue) as SigningFunction);\n } else {\n storeActions.setSignTransactionWithWalletKey(valueOrUpdater);\n }\n },\n [storeActions]\n );\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<SigningContextValue>(\n () => ({\n // State\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n // Actions\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n }),\n [\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n ]\n );\n\n return <SigningContext.Provider value={value}>{children}</SigningContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { SigningContext };\n"]}
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ export interface ColorOverride {
3
+ color: string;
4
+ replacement: string;
5
+ }
6
+ export interface ThemingState {
7
+ /** The processed CSS with color overrides applied (without @font-face rules) */
8
+ injectedCss: string;
9
+ /** The original color overrides */
10
+ colorOverrides: ColorOverride[];
11
+ }
12
+ export interface ThemingContextValue extends ThemingState {
13
+ }
14
+ export interface ThemingProviderProps {
15
+ children: React.ReactNode;
16
+ /** Color overrides to apply to the CSS */
17
+ colorOverrides?: ColorOverride[];
18
+ }
19
+ declare const ThemingContext: React.Context<ThemingContextValue | null>;
20
+ /**
21
+ * Hook to access theming state.
22
+ * Must be used within a ThemingProvider.
23
+ */
24
+ export declare function useTheming(): ThemingContextValue;
25
+ /**
26
+ * Hook to get the processed CSS string.
27
+ * Convenience hook for components that only need the CSS.
28
+ */
29
+ export declare function useInjectedCss(): string;
30
+ /**
31
+ * ThemingProvider manages CSS injection and color overrides.
32
+ *
33
+ * NOTE: This provider's state comes from props (not internal state).
34
+ * The store is synced for external observers but props are the source of truth.
35
+ * We don't subscribe to the store (no useWalletStore) to avoid infinite loops.
36
+ *
37
+ * Responsibilities:
38
+ * - Process base CSS with color overrides
39
+ * - Provide processed CSS to components
40
+ * - Handle theme customization
41
+ * - Sync to store for external access
42
+ *
43
+ * Does NOT handle:
44
+ * - Modal state
45
+ * - Network/chain state
46
+ * - Session/authentication state
47
+ * - Signing functions
48
+ */
49
+ export declare function ThemingProvider({ children, colorOverrides }: ThemingProviderProps): import("react/jsx-runtime").JSX.Element;
50
+ export { ThemingContext };
@@ -0,0 +1,102 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useEffect, useMemo, } from 'react';
4
+ import mainCss from '../../styles/embedded-main-css';
5
+ import { getWalletActions } from '../../store';
6
+ // ---------------------------------------------------------------------------
7
+ // Context
8
+ // ---------------------------------------------------------------------------
9
+ var ThemingContext = createContext(null);
10
+ // ---------------------------------------------------------------------------
11
+ // Hooks
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * Hook to access theming state.
15
+ * Must be used within a ThemingProvider.
16
+ */
17
+ export function useTheming() {
18
+ var context = useContext(ThemingContext);
19
+ if (!context) {
20
+ throw new Error('useTheming must be used within a ThemingProvider');
21
+ }
22
+ return context;
23
+ }
24
+ /**
25
+ * Hook to get the processed CSS string.
26
+ * Convenience hook for components that only need the CSS.
27
+ */
28
+ export function useInjectedCss() {
29
+ return useTheming().injectedCss;
30
+ }
31
+ // ---------------------------------------------------------------------------
32
+ // Helper
33
+ // ---------------------------------------------------------------------------
34
+ /**
35
+ * Apply color overrides to the base CSS string.
36
+ * Replaces all instances of each color with its replacement (case-insensitive).
37
+ */
38
+ function applyColorOverrides(baseCss, overrides) {
39
+ if (!Array.isArray(overrides) || overrides.length === 0) {
40
+ return baseCss;
41
+ }
42
+ var result = baseCss;
43
+ overrides.forEach(function (_a) {
44
+ var color = _a.color, replacement = _a.replacement;
45
+ if (color && replacement) {
46
+ // Escape special regex characters and replace all instances case-insensitively
47
+ var regex = new RegExp(color.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
48
+ result = result.replace(regex, replacement);
49
+ }
50
+ });
51
+ return result;
52
+ }
53
+ // ---------------------------------------------------------------------------
54
+ // Provider
55
+ // ---------------------------------------------------------------------------
56
+ /**
57
+ * ThemingProvider manages CSS injection and color overrides.
58
+ *
59
+ * NOTE: This provider's state comes from props (not internal state).
60
+ * The store is synced for external observers but props are the source of truth.
61
+ * We don't subscribe to the store (no useWalletStore) to avoid infinite loops.
62
+ *
63
+ * Responsibilities:
64
+ * - Process base CSS with color overrides
65
+ * - Provide processed CSS to components
66
+ * - Handle theme customization
67
+ * - Sync to store for external access
68
+ *
69
+ * Does NOT handle:
70
+ * - Modal state
71
+ * - Network/chain state
72
+ * - Session/authentication state
73
+ * - Signing functions
74
+ */
75
+ export function ThemingProvider(_a) {
76
+ // -------------------------------------------------------------------------
77
+ // Derived State (from props - props are source of truth)
78
+ // -------------------------------------------------------------------------
79
+ var children = _a.children, _b = _a.colorOverrides, colorOverrides = _b === void 0 ? [] : _b;
80
+ var injectedCss = useMemo(function () { return applyColorOverrides(mainCss, colorOverrides); }, [colorOverrides]);
81
+ // -------------------------------------------------------------------------
82
+ // Store Sync (write-only, no subscription to avoid infinite loop)
83
+ // -------------------------------------------------------------------------
84
+ var storeActions = getWalletActions().config;
85
+ useEffect(function () {
86
+ storeActions.setInjectedCss(injectedCss);
87
+ storeActions.setColorOverrides(colorOverrides);
88
+ }, [injectedCss, colorOverrides, storeActions]);
89
+ // -------------------------------------------------------------------------
90
+ // Context Value
91
+ // -------------------------------------------------------------------------
92
+ var value = useMemo(function () { return ({
93
+ injectedCss: injectedCss,
94
+ colorOverrides: colorOverrides,
95
+ }); }, [injectedCss, colorOverrides]);
96
+ return _jsx(ThemingContext.Provider, { value: value, children: children });
97
+ }
98
+ // ---------------------------------------------------------------------------
99
+ // Exports
100
+ // ---------------------------------------------------------------------------
101
+ export { ThemingContext };
102
+ //# sourceMappingURL=ThemingProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemingProvider.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/ThemingProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n} from 'react';\nimport mainCss from '../../styles/embedded-main-css';\nimport { getWalletActions } from '../../store';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface ColorOverride {\n color: string;\n replacement: string;\n}\n\nexport interface ThemingState {\n /** The processed CSS with color overrides applied (without @font-face rules) */\n injectedCss: string;\n /** The original color overrides */\n colorOverrides: ColorOverride[];\n}\n\nexport interface ThemingContextValue extends ThemingState {}\n\nexport interface ThemingProviderProps {\n children: React.ReactNode;\n /** Color overrides to apply to the CSS */\n colorOverrides?: ColorOverride[];\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst ThemingContext = createContext<ThemingContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Hooks\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access theming state.\n * Must be used within a ThemingProvider.\n */\nexport function useTheming(): ThemingContextValue {\n const context = useContext(ThemingContext);\n if (!context) {\n throw new Error('useTheming must be used within a ThemingProvider');\n }\n return context;\n}\n\n/**\n * Hook to get the processed CSS string.\n * Convenience hook for components that only need the CSS.\n */\nexport function useInjectedCss(): string {\n return useTheming().injectedCss;\n}\n\n// ---------------------------------------------------------------------------\n// Helper\n// ---------------------------------------------------------------------------\n\n/**\n * Apply color overrides to the base CSS string.\n * Replaces all instances of each color with its replacement (case-insensitive).\n */\nfunction applyColorOverrides(baseCss: string, overrides: ColorOverride[]): string {\n if (!Array.isArray(overrides) || overrides.length === 0) {\n return baseCss;\n }\n\n let result = baseCss;\n overrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Escape special regex characters and replace all instances case-insensitively\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n result = result.replace(regex, replacement);\n }\n });\n\n return result;\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\n/**\n * ThemingProvider manages CSS injection and color overrides.\n *\n * NOTE: This provider's state comes from props (not internal state).\n * The store is synced for external observers but props are the source of truth.\n * We don't subscribe to the store (no useWalletStore) to avoid infinite loops.\n *\n * Responsibilities:\n * - Process base CSS with color overrides\n * - Provide processed CSS to components\n * - Handle theme customization\n * - Sync to store for external access\n *\n * Does NOT handle:\n * - Modal state\n * - Network/chain state\n * - Session/authentication state\n * - Signing functions\n */\nexport function ThemingProvider({ children, colorOverrides = [] }: ThemingProviderProps) {\n // -------------------------------------------------------------------------\n // Derived State (from props - props are source of truth)\n // -------------------------------------------------------------------------\n\n const injectedCss = useMemo(\n () => applyColorOverrides(mainCss, colorOverrides),\n [colorOverrides]\n );\n\n // -------------------------------------------------------------------------\n // Store Sync (write-only, no subscription to avoid infinite loop)\n // -------------------------------------------------------------------------\n\n const storeActions = getWalletActions().config;\n\n useEffect(() => {\n storeActions.setInjectedCss(injectedCss);\n storeActions.setColorOverrides(colorOverrides);\n }, [injectedCss, colorOverrides, storeActions]);\n\n // -------------------------------------------------------------------------\n // Context Value\n // -------------------------------------------------------------------------\n\n const value = useMemo<ThemingContextValue>(\n () => ({\n injectedCss,\n colorOverrides,\n }),\n [injectedCss, colorOverrides]\n );\n\n return <ThemingContext.Provider value={value}>{children}</ThemingContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport { ThemingContext };\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * N1WalletProvider sub-providers
3
+ *
4
+ * These providers split the monolithic N1WalletProvider into focused,
5
+ * single-responsibility providers for better maintainability and testing.
6
+ *
7
+ * Provider hierarchy:
8
+ * - ThemingProvider: CSS injection, color overrides (outermost)
9
+ * - NetworkProvider: Wallet network, chain, address normalization
10
+ * - SessionProvider: Session keys, nordUser, authentication state
11
+ * - SigningProvider: Signing functions with unified interface
12
+ * - ModalProvider: Modal visibility, cooldown, deposit-only flow
13
+ * - ContextBridge: Maps sub-providers to legacy N1WalletContext/N1InternalWalletContext
14
+ */
15
+ export { ModalProvider, ModalContext, useModal, useModalState, useModalActions, type ModalStateValues, type ModalActions, type ModalContextValue, type ModalProviderProps, } from './ModalProvider';
16
+ export type { ModalState } from '../../store/types';
17
+ export { NetworkProvider, NetworkContext, useNetwork, useNetworkState, useNetworkActions, type WalletNetworkType, type NetworkState, type NetworkActions, type NetworkContextValue, type NetworkProviderProps, } from './NetworkProvider';
18
+ export { SessionProvider, SessionContext, useSession, useSessionState, useSessionActions, type SessionState, type SessionActions, type SessionContextValue, type SessionProviderProps, } from './SessionProvider';
19
+ export { SigningProvider, SigningContext, useSigning, useSigningState, useSigningActions, type SigningFunction, type SigningState, type SigningActions, type SigningContextValue, type SigningProviderProps, } from './SigningProvider';
20
+ export { ThemingProvider, ThemingContext, useTheming, useInjectedCss, type ColorOverride, type ThemingState, type ThemingContextValue, type ThemingProviderProps, } from './ThemingProvider';
21
+ export { ContextBridge, type ContextBridgeProps, } from './ContextBridge';
@@ -0,0 +1,27 @@
1
+ /**
2
+ * N1WalletProvider sub-providers
3
+ *
4
+ * These providers split the monolithic N1WalletProvider into focused,
5
+ * single-responsibility providers for better maintainability and testing.
6
+ *
7
+ * Provider hierarchy:
8
+ * - ThemingProvider: CSS injection, color overrides (outermost)
9
+ * - NetworkProvider: Wallet network, chain, address normalization
10
+ * - SessionProvider: Session keys, nordUser, authentication state
11
+ * - SigningProvider: Signing functions with unified interface
12
+ * - ModalProvider: Modal visibility, cooldown, deposit-only flow
13
+ * - ContextBridge: Maps sub-providers to legacy N1WalletContext/N1InternalWalletContext
14
+ */
15
+ // ModalProvider
16
+ export { ModalProvider, ModalContext, useModal, useModalState, useModalActions, } from './ModalProvider';
17
+ // NetworkProvider
18
+ export { NetworkProvider, NetworkContext, useNetwork, useNetworkState, useNetworkActions, } from './NetworkProvider';
19
+ // SessionProvider
20
+ export { SessionProvider, SessionContext, useSession, useSessionState, useSessionActions, } from './SessionProvider';
21
+ // SigningProvider
22
+ export { SigningProvider, SigningContext, useSigning, useSigningState, useSigningActions, } from './SigningProvider';
23
+ // ThemingProvider
24
+ export { ThemingProvider, ThemingContext, useTheming, useInjectedCss, } from './ThemingProvider';
25
+ // ContextBridge
26
+ export { ContextBridge, } from './ContextBridge';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/N1WalletProvider/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AAKzB,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,GAMlB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,GAKlB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,GAMlB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,cAAc,GAKf,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EACL,aAAa,GAEd,MAAM,iBAAiB,CAAC","sourcesContent":["/**\n * N1WalletProvider sub-providers\n *\n * These providers split the monolithic N1WalletProvider into focused,\n * single-responsibility providers for better maintainability and testing.\n *\n * Provider hierarchy:\n * - ThemingProvider: CSS injection, color overrides (outermost)\n * - NetworkProvider: Wallet network, chain, address normalization\n * - SessionProvider: Session keys, nordUser, authentication state\n * - SigningProvider: Signing functions with unified interface\n * - ModalProvider: Modal visibility, cooldown, deposit-only flow\n * - ContextBridge: Maps sub-providers to legacy N1WalletContext/N1InternalWalletContext\n */\n\n// ModalProvider\nexport {\n ModalProvider,\n ModalContext,\n useModal,\n useModalState,\n useModalActions,\n type ModalStateValues,\n type ModalActions,\n type ModalContextValue,\n type ModalProviderProps,\n} from './ModalProvider';\n\n// Re-export ModalState from store types for convenience\nexport type { ModalState } from '../../store/types';\n\n// NetworkProvider\nexport {\n NetworkProvider,\n NetworkContext,\n useNetwork,\n useNetworkState,\n useNetworkActions,\n type WalletNetworkType,\n type NetworkState,\n type NetworkActions,\n type NetworkContextValue,\n type NetworkProviderProps,\n} from './NetworkProvider';\n\n// SessionProvider\nexport {\n SessionProvider,\n SessionContext,\n useSession,\n useSessionState,\n useSessionActions,\n type SessionState,\n type SessionActions,\n type SessionContextValue,\n type SessionProviderProps,\n} from './SessionProvider';\n\n// SigningProvider\nexport {\n SigningProvider,\n SigningContext,\n useSigning,\n useSigningState,\n useSigningActions,\n type SigningFunction,\n type SigningState,\n type SigningActions,\n type SigningContextValue,\n type SigningProviderProps,\n} from './SigningProvider';\n\n// ThemingProvider\nexport {\n ThemingProvider,\n ThemingContext,\n useTheming,\n useInjectedCss,\n type ColorOverride,\n type ThemingState,\n type ThemingContextValue,\n type ThemingProviderProps,\n} from './ThemingProvider';\n\n// ContextBridge\nexport {\n ContextBridge,\n type ContextBridgeProps,\n} from './ContextBridge';\n"]}
@@ -0,0 +1,17 @@
1
+ import { N1WalletProviderProps } from '../types/wallet';
2
+ /**
3
+ * Main provider component for the N1 wallet widget.
4
+ *
5
+ * Coordinates sub-providers for clean separation of concerns:
6
+ * - ThemingProvider: CSS injection and color overrides
7
+ * - NetworkProvider: Wallet network, chain, and address state
8
+ * - SessionProvider: Connection status, keys, and Nord user
9
+ * - SigningProvider: Message and transaction signing functions
10
+ * - ModalProvider: Modal visibility and flow control
11
+ * - ContextBridge: Legacy context compatibility layer
12
+ *
13
+ * External integrations:
14
+ * - Dynamic SDK for wallet connection (lazy loaded)
15
+ * - Optional Turnkey support for additional wallet features
16
+ */
17
+ export declare function N1WalletProvider({ children, providedSessionMode, onError, nord, colorOverrides, skipFinalScreen, dynamicEnvironmentId, enableTurnkey, }: N1WalletProviderProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,102 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import React, { Suspense, useCallback, useEffect, useMemo } from 'react';
4
+ import root from 'react-shadow';
5
+ import { N1WalletModal } from '../features/onboarding-flow/N1WalletModal';
6
+ import { OnboardingProvider } from '../features/onboarding-flow/providers';
7
+ import { logger } from '../utils/logger';
8
+ import { createBootstrapError } from '../utils/errors';
9
+ import WalletErrorBoundary from './WalletErrorBoundary';
10
+ import { useNordUserInitialization } from '../hooks/useNordUserInitialization';
11
+ import { N1SessionMode } from '../types/wallet';
12
+ import { TurnkeyProvider } from '../turnkey';
13
+ import { getDynamicEnvironmentId } from '../config/dynamic';
14
+ import { ThemingProvider, NetworkProvider, SessionProvider, SigningProvider, ModalProvider, ContextBridge, useInjectedCss, useSession, } from './N1WalletProvider/index';
15
+ import { initializeSubscriptions, cleanupSubscriptions, } from '../store/subscriptions';
16
+ import { ensureCdnFontsLoaded } from '../styles/cdn-fonts';
17
+ var LazyWalletProvider = React.lazy(function () {
18
+ return import('./LazyWalletProvider').then(function (mod) { return ({
19
+ default: mod.LazyWalletProvider,
20
+ }); });
21
+ });
22
+ /**
23
+ * ModalContent renders the modal with CSS from ThemingProvider.
24
+ * Must be rendered inside ThemingProvider.
25
+ *
26
+ * NOTE: Fonts are loaded via CDN using the FontFace API (see cdn-fonts.ts).
27
+ * This works regardless of Shadow DOM since fonts are registered globally.
28
+ */
29
+ var ModalContent = React.memo(function () {
30
+ var css = useInjectedCss();
31
+ // Load CDN fonts on mount
32
+ useEffect(function () {
33
+ void ensureCdnFontsLoaded();
34
+ }, []);
35
+ return (_jsxs(root.div, { children: [_jsx("style", { children: css }), _jsx(N1WalletModal, {})] }));
36
+ });
37
+ var DynamicBridge = React.memo(function () { return null; });
38
+ /**
39
+ * Wrapper component that initializes NordUser when the provider mounts.
40
+ * This ensures session keys and signing functions are set up before the widget is used.
41
+ */
42
+ function NordWrapper(_a) {
43
+ var children = _a.children;
44
+ useNordUserInitialization();
45
+ return _jsx(_Fragment, { children: children });
46
+ }
47
+ /**
48
+ * Inner component that sets up ModalProvider with session dependencies.
49
+ * Must be rendered inside SessionProvider to access session state.
50
+ */
51
+ function ModalProviderWrapper(_a) {
52
+ var children = _a.children, nord = _a.nord, handleError = _a.handleError, skipFinalScreen = _a.skipFinalScreen, turnkeyEnabled = _a.turnkeyEnabled, dynamicEnvironmentId = _a.dynamicEnvironmentId;
53
+ var _b = useSession(), dynamicSdkHasLoaded = _b.dynamicSdkHasLoaded, setLoading = _b.setLoading;
54
+ // Update loading state based on SDK readiness
55
+ useEffect(function () {
56
+ var isDynamicReady = Boolean(dynamicSdkHasLoaded);
57
+ setLoading(!isDynamicReady);
58
+ }, [dynamicSdkHasLoaded, setLoading]);
59
+ var body = (_jsx(NordWrapper, { children: _jsxs(_Fragment, { children: [_jsx(OnboardingProvider, { children: _jsxs(_Fragment, { children: [children, _jsx(ModalContent, {})] }) }), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, { dynamicEnvironmentId: dynamicEnvironmentId, children: _jsx(DynamicBridge, {}) }) })] }) }));
60
+ return (_jsx(ModalProvider, { children: _jsx(ContextBridge, { nord: nord, handleError: handleError, skipFinalScreen: skipFinalScreen, turnkeyEnabled: turnkeyEnabled, children: turnkeyEnabled ? _jsx(TurnkeyProvider, { children: body }) : body }) }));
61
+ }
62
+ /**
63
+ * Main provider component for the N1 wallet widget.
64
+ *
65
+ * Coordinates sub-providers for clean separation of concerns:
66
+ * - ThemingProvider: CSS injection and color overrides
67
+ * - NetworkProvider: Wallet network, chain, and address state
68
+ * - SessionProvider: Connection status, keys, and Nord user
69
+ * - SigningProvider: Message and transaction signing functions
70
+ * - ModalProvider: Modal visibility and flow control
71
+ * - ContextBridge: Legacy context compatibility layer
72
+ *
73
+ * External integrations:
74
+ * - Dynamic SDK for wallet connection (lazy loaded)
75
+ * - Optional Turnkey support for additional wallet features
76
+ */
77
+ export function N1WalletProvider(_a) {
78
+ var children = _a.children, providedSessionMode = _a.providedSessionMode, onError = _a.onError, nord = _a.nord, colorOverrides = _a.colorOverrides, skipFinalScreen = _a.skipFinalScreen, dynamicEnvironmentId = _a.dynamicEnvironmentId, enableTurnkey = _a.enableTurnkey;
79
+ var resolvedDynamicEnvironmentId = useMemo(function () { return dynamicEnvironmentId !== null && dynamicEnvironmentId !== void 0 ? dynamicEnvironmentId : getDynamicEnvironmentId(); }, [dynamicEnvironmentId]);
80
+ var turnkeyEnabled = enableTurnkey !== false;
81
+ var handleError = useCallback(function (error) {
82
+ onError === null || onError === void 0 ? void 0 : onError(error);
83
+ }, [onError]);
84
+ // Initialize store subscriptions on mount
85
+ useEffect(function () {
86
+ initializeSubscriptions();
87
+ return function () {
88
+ cleanupSubscriptions();
89
+ };
90
+ }, []);
91
+ useEffect(function () {
92
+ if (providedSessionMode !== N1SessionMode.Nord) {
93
+ logger.warn("Only Nord session mode is supported. Received ".concat(providedSessionMode, ", defaulting to Nord."));
94
+ }
95
+ }, [providedSessionMode]);
96
+ if (!resolvedDynamicEnvironmentId) {
97
+ logger.logError(createBootstrapError('CONFIG_MISSING', 'Dynamic environment ID is required. Provide it via dynamicEnvironmentId prop or NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID.'));
98
+ return null;
99
+ }
100
+ return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(ThemingProvider, { colorOverrides: colorOverrides, children: _jsx(NetworkProvider, { children: _jsx(SessionProvider, { children: _jsx(SigningProvider, { children: _jsx(ModalProviderWrapper, { nord: nord, handleError: handleError, skipFinalScreen: skipFinalScreen, turnkeyEnabled: turnkeyEnabled, dynamicEnvironmentId: resolvedDynamicEnvironmentId, children: children }) }) }) }) }) }));
101
+ }
102
+ //# sourceMappingURL=N1WalletProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../../src/providers/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { Suspense, useCallback, useEffect, useMemo } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../features/onboarding-flow/N1WalletModal';\nimport { OnboardingProvider } from '../features/onboarding-flow/providers';\nimport { logger } from '../utils/logger';\nimport { createBootstrapError } from '../utils/errors';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { useNordUserInitialization } from '../hooks/useNordUserInitialization';\nimport { N1SessionMode, N1WalletProviderProps } from '../types/wallet';\nimport { TurnkeyProvider } from '../turnkey';\nimport { getDynamicEnvironmentId } from '../config/dynamic';\nimport {\n ThemingProvider,\n NetworkProvider,\n SessionProvider,\n SigningProvider,\n ModalProvider,\n ContextBridge,\n useInjectedCss,\n useSession,\n} from './N1WalletProvider/index';\nimport { WalletError, N1Error } from '../errors/types';\nimport {\n initializeSubscriptions,\n cleanupSubscriptions,\n} from '../store/subscriptions';\nimport { ensureCdnFontsLoaded } from '../styles/cdn-fonts';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\n/**\n * ModalContent renders the modal with CSS from ThemingProvider.\n * Must be rendered inside ThemingProvider.\n *\n * NOTE: Fonts are loaded via CDN using the FontFace API (see cdn-fonts.ts).\n * This works regardless of Shadow DOM since fonts are registered globally.\n */\nconst ModalContent = React.memo(() => {\n const css = useInjectedCss();\n\n // Load CDN fonts on mount\n useEffect(() => {\n void ensureCdnFontsLoaded();\n }, []);\n\n return (\n <root.div>\n <style>{css}</style>\n <N1WalletModal />\n </root.div>\n );\n});\n\nconst DynamicBridge = React.memo(() => null);\n\n/**\n * Wrapper component that initializes NordUser when the provider mounts.\n * This ensures session keys and signing functions are set up before the widget is used.\n */\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n useNordUserInitialization();\n return <>{children}</>;\n}\n\n/**\n * Inner component that sets up ModalProvider with session dependencies.\n * Must be rendered inside SessionProvider to access session state.\n */\nfunction ModalProviderWrapper({\n children,\n nord,\n handleError,\n skipFinalScreen,\n turnkeyEnabled,\n dynamicEnvironmentId,\n}: {\n children: React.ReactNode;\n nord: N1WalletProviderProps['nord'];\n handleError: (error: WalletError | N1Error) => void;\n skipFinalScreen: N1WalletProviderProps['skipFinalScreen'];\n turnkeyEnabled: boolean;\n dynamicEnvironmentId: string;\n}) {\n const { dynamicSdkHasLoaded, setLoading } = useSession();\n\n // Update loading state based on SDK readiness\n useEffect(() => {\n const isDynamicReady = Boolean(dynamicSdkHasLoaded);\n setLoading(!isDynamicReady);\n }, [dynamicSdkHasLoaded, setLoading]);\n\n const body = (\n <NordWrapper>\n <>\n <OnboardingProvider>\n <>\n {children}\n <ModalContent />\n </>\n </OnboardingProvider>\n <Suspense fallback={null}>\n <LazyWalletProvider dynamicEnvironmentId={dynamicEnvironmentId}>\n <DynamicBridge />\n </LazyWalletProvider>\n </Suspense>\n </>\n </NordWrapper>\n );\n\n return (\n <ModalProvider>\n <ContextBridge\n nord={nord}\n handleError={handleError}\n skipFinalScreen={skipFinalScreen}\n turnkeyEnabled={turnkeyEnabled}\n >\n {turnkeyEnabled ? <TurnkeyProvider>{body}</TurnkeyProvider> : body}\n </ContextBridge>\n </ModalProvider>\n );\n}\n\n/**\n * Main provider component for the N1 wallet widget.\n *\n * Coordinates sub-providers for clean separation of concerns:\n * - ThemingProvider: CSS injection and color overrides\n * - NetworkProvider: Wallet network, chain, and address state\n * - SessionProvider: Connection status, keys, and Nord user\n * - SigningProvider: Message and transaction signing functions\n * - ModalProvider: Modal visibility and flow control\n * - ContextBridge: Legacy context compatibility layer\n *\n * External integrations:\n * - Dynamic SDK for wallet connection (lazy loaded)\n * - Optional Turnkey support for additional wallet features\n */\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n onError,\n nord,\n colorOverrides,\n skipFinalScreen,\n dynamicEnvironmentId,\n enableTurnkey,\n}: N1WalletProviderProps) {\n const resolvedDynamicEnvironmentId = useMemo(\n () => dynamicEnvironmentId ?? getDynamicEnvironmentId(),\n [dynamicEnvironmentId]\n );\n\n const turnkeyEnabled = enableTurnkey !== false;\n\n const handleError = useCallback(\n (error: WalletError | N1Error) => {\n onError?.(error);\n },\n [onError]\n );\n\n// Initialize store subscriptions on mount\n useEffect(() => {\n initializeSubscriptions();\n return () => {\n cleanupSubscriptions();\n };\n }, []);\n\n useEffect(() => {\n if (providedSessionMode !== N1SessionMode.Nord) {\n logger.warn(\n `Only Nord session mode is supported. Received ${providedSessionMode}, defaulting to Nord.`\n );\n }\n }, [providedSessionMode]);\n\n if (!resolvedDynamicEnvironmentId) {\n logger.logError(createBootstrapError(\n 'CONFIG_MISSING',\n 'Dynamic environment ID is required. Provide it via dynamicEnvironmentId prop or NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID.'\n ));\n return null;\n }\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <ThemingProvider colorOverrides={colorOverrides}>\n <NetworkProvider>\n <SessionProvider>\n <SigningProvider>\n <ModalProviderWrapper\n nord={nord}\n handleError={handleError}\n skipFinalScreen={skipFinalScreen}\n turnkeyEnabled={turnkeyEnabled}\n dynamicEnvironmentId={resolvedDynamicEnvironmentId}\n >\n {children}\n </ModalProviderWrapper>\n </SigningProvider>\n </SessionProvider>\n </NetworkProvider>\n </ThemingProvider>\n </WalletErrorBoundary>\n );\n}\n"]}
@@ -3,5 +3,9 @@ interface ShadowRootWrapperProps {
3
3
  children: React.ReactNode;
4
4
  injectedCss: string;
5
5
  }
6
+ /**
7
+ * Wraps children in a shadow DOM root to isolate styles from host application.
8
+ * Used for the connect button to prevent CSS conflicts.
9
+ */
6
10
  export declare function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps): import("react/jsx-runtime").JSX.Element;
7
11
  export {};
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect } from 'react';
3
2
  import root from 'react-shadow';
4
- import { ensureCdnFontsLoaded } from '../styles/cdn-fonts';
3
+ /**
4
+ * Wraps children in a shadow DOM root to isolate styles from host application.
5
+ * Used for the connect button to prevent CSS conflicts.
6
+ */
5
7
  export function ShadowRootWrapper(_a) {
6
8
  var children = _a.children, injectedCss = _a.injectedCss;
7
- useEffect(function () {
8
- void ensureCdnFontsLoaded();
9
- }, []);
10
9
  return (_jsxs(root.div, { children: [_jsx("style", { children: injectedCss }), children] }));
11
10
  }
12
11
  //# sourceMappingURL=ShadowRootWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShadowRootWrapper.js","sourceRoot":"","sources":["../../../src/providers/ShadowRootWrapper.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,cAAc,CAAC;AAOhC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAiD;QAA/C,QAAQ,cAAA,EAAE,WAAW,iBAAA;IACvD,OAAO,CACL,MAAC,IAAI,CAAC,GAAG,eACP,0BAAQ,WAAW,GAAS,EAC3B,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport root from 'react-shadow';\n\ninterface ShadowRootWrapperProps {\n children: React.ReactNode;\n injectedCss: string;\n}\n\n/**\n * Wraps children in a shadow DOM root to isolate styles from host application.\n * Used for the connect button to prevent CSS conflicts.\n */\nexport function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps) {\n return (\n <root.div>\n <style>{injectedCss}</style>\n {children}\n </root.div>\n );\n} \n"]}
@@ -1,12 +1,17 @@
1
1
  import React from 'react';
2
- import { WalletError } from '../errors/types';
2
+ import { WalletError, N1Error } from '../errors/types';
3
3
  type WalletErrorBoundaryProps = {
4
4
  children: React.ReactNode;
5
- onError: (error: WalletError) => void;
5
+ onError: (error: WalletError | N1Error) => void;
6
6
  };
7
7
  type WalletErrorBoundaryState = {
8
8
  hasError: boolean;
9
9
  };
10
+ /**
11
+ * React error boundary that catches WalletErrors and unhandled exceptions.
12
+ * Converts unknown errors to WalletError format and calls onError callback.
13
+ * Resets error state when children change after an error.
14
+ */
10
15
  declare class WalletErrorBoundary extends React.Component<WalletErrorBoundaryProps, WalletErrorBoundaryState> {
11
16
  state: WalletErrorBoundaryState;
12
17
  static getDerivedStateFromError(): WalletErrorBoundaryState;
@@ -15,7 +15,11 @@ var __extends = (this && this.__extends) || (function () {
15
15
  })();
16
16
  import React from 'react';
17
17
  import { WalletError, WalletErrorCode } from '../errors/types';
18
- // Error boundary to catch WalletErrors
18
+ /**
19
+ * React error boundary that catches WalletErrors and unhandled exceptions.
20
+ * Converts unknown errors to WalletError format and calls onError callback.
21
+ * Resets error state when children change after an error.
22
+ */
19
23
  var WalletErrorBoundary = /** @class */ (function (_super) {
20
24
  __extends(WalletErrorBoundary, _super);
21
25
  function WalletErrorBoundary() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../../src/providers/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAW,MAAM,iBAAiB,CAAC;AAWxE;;;;GAIG;AACH;IAAkC,uCAGjC;IAHD;;QAIE,WAAK,GAA6B;YAChC,QAAQ,EAAE,KAAK;SAChB,CAAC;;IAuCJ,CAAC;IArCQ,4CAAwB,GAA/B;QACE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,+CAAiB,GAAjB,UAAkB,KAAY;QAC5B,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,IAAI,WAAW,CACb,eAAe,CAAC,OAAO,EACvB,KAAK,CAAC,OAAO,IAAI,8BAA8B,EAC/C,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gDAAkB,GAAlB,UACE,SAAmC,EACnC,SAAmC;QAEnC,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5F,wDAAwD;YACxD,yDAAyD;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,oCAAM,GAAN;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,AA7CD,CAAkC,KAAK,CAAC,SAAS,GA6ChD;AAED,eAAe,mBAAmB,CAAC","sourcesContent":["import React from 'react';\nimport { WalletError, WalletErrorCode, N1Error } from '../errors/types';\n\ntype WalletErrorBoundaryProps = {\n children: React.ReactNode;\n onError: (error: WalletError | N1Error) => void;\n};\n\ntype WalletErrorBoundaryState = {\n hasError: boolean;\n};\n\n/**\n * React error boundary that catches WalletErrors and unhandled exceptions.\n * Converts unknown errors to WalletError format and calls onError callback.\n * Resets error state when children change after an error.\n */\nclass WalletErrorBoundary extends React.Component<\n WalletErrorBoundaryProps,\n WalletErrorBoundaryState\n> {\n state: WalletErrorBoundaryState = {\n hasError: false,\n };\n\n static getDerivedStateFromError(): WalletErrorBoundaryState {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error) {\n console.error('[N1 Wallet] Unhandled error captured by WalletErrorBoundary:', error);\n if (error instanceof WalletError) {\n this.props.onError(error);\n } else {\n // Convert unknown errors to WalletError\n this.props.onError(\n new WalletError(\n WalletErrorCode.UNKNOWN,\n error.message || 'An unexpected error occurred',\n { originalError: error }\n )\n );\n }\n }\n\n componentDidUpdate(\n prevProps: WalletErrorBoundaryProps,\n prevState: WalletErrorBoundaryState\n ) {\n if (prevState.hasError && this.state.hasError && prevProps.children !== this.props.children) {\n // reset error state when children change after an error\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n return null;\n }\n return this.props.children;\n }\n}\n\nexport default WalletErrorBoundary;\n"]}