@n1xyz/wallet-widget 0.0.8 → 0.0.10

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 (514) hide show
  1. package/dist/Logic/getPseudoName.js +1 -0
  2. package/dist/Logic/getPseudoName.js.map +1 -0
  3. package/dist/Logic/sessionManager.js +1 -0
  4. package/dist/Logic/sessionManager.js.map +1 -0
  5. package/dist/Logic/transactionManager.js +1 -0
  6. package/dist/Logic/transactionManager.js.map +1 -0
  7. package/dist/Logic/utils.js +1 -0
  8. package/dist/Logic/utils.js.map +1 -0
  9. package/dist/Logic/words.js +1 -0
  10. package/dist/Logic/words.js.map +1 -0
  11. package/dist/Modal/LoadingFallback.js +2 -1
  12. package/dist/Modal/LoadingFallback.js.map +1 -0
  13. package/dist/Modal/N1WalletModal.js +5 -5
  14. package/dist/Modal/N1WalletModal.js.map +1 -0
  15. package/dist/Modal/NTSFlow/LoadingFallback.js +2 -1
  16. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -0
  17. package/dist/Modal/NTSFlow/NTSFlow.js +1 -0
  18. package/dist/Modal/NTSFlow/NTSFlow.js.map +1 -0
  19. package/dist/Modal/NTSFlow/components/BackButton.js +3 -2
  20. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -0
  21. package/dist/Modal/NTSFlow/components/ModalHeader.js +2 -1
  22. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -0
  23. package/dist/Modal/NTSFlow/index.js +1 -0
  24. package/dist/Modal/NTSFlow/index.js.map +1 -0
  25. package/dist/Modal/NTSFlow/views/ConnectView.js +3 -2
  26. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -0
  27. package/dist/Modal/NTSFlow/views/CreateSessionView.js +6 -5
  28. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -0
  29. package/dist/Modal/NTSFlow/views/CreateUserView.js +2 -1
  30. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -0
  31. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +4 -3
  32. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -0
  33. package/dist/Modal/NTSFlow/views/SigningView.js +2 -1
  34. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -0
  35. package/dist/Modal/NTSFlow/views/SuccessView.js +1 -0
  36. package/dist/Modal/NTSFlow/views/SuccessView.js.map +1 -0
  37. package/dist/Modal/NordFlow/NordFlow.js +8 -12
  38. package/dist/Modal/NordFlow/NordFlow.js.map +1 -0
  39. package/dist/Modal/NordFlow/components/ChainButton.js +6 -5
  40. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -0
  41. package/dist/Modal/NordFlow/components/EVMChainsButton.js +5 -4
  42. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -0
  43. package/dist/Modal/NordFlow/components/ImageWithFallback.js +2 -1
  44. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -0
  45. package/dist/Modal/NordFlow/components/LoadingSquares.js +2 -1
  46. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -0
  47. package/dist/Modal/NordFlow/components/MoreButton.js +5 -4
  48. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -0
  49. package/dist/Modal/NordFlow/components/TransactionTable.js +7 -6
  50. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -0
  51. package/dist/Modal/NordFlow/components/WaitingMessage.js +2 -1
  52. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -0
  53. package/dist/Modal/NordFlow/components/index.js +1 -0
  54. package/dist/Modal/NordFlow/components/index.js.map +1 -0
  55. package/dist/Modal/NordFlow/constants.js +1 -0
  56. package/dist/Modal/NordFlow/constants.js.map +1 -0
  57. package/dist/Modal/NordFlow/hoc/index.js +1 -0
  58. package/dist/Modal/NordFlow/hoc/index.js.map +1 -0
  59. package/dist/Modal/NordFlow/hoc/withImageFallback.js +1 -0
  60. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -0
  61. package/dist/Modal/NordFlow/hooks/index.js +1 -0
  62. package/dist/Modal/NordFlow/hooks/index.js.map +1 -0
  63. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +31 -30
  64. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -0
  65. package/dist/Modal/NordFlow/hooks/useFlowState.js +44 -22
  66. package/dist/Modal/NordFlow/hooks/useFlowState.js.map +1 -0
  67. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +19 -16
  68. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +1 -0
  69. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -4
  70. package/dist/Modal/NordFlow/hooks/useNordInstance.js +65 -25
  71. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -0
  72. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +73 -52
  73. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -0
  74. package/dist/Modal/NordFlow/index.js +1 -0
  75. package/dist/Modal/NordFlow/index.js.map +1 -0
  76. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +4 -3
  77. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -0
  78. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +5 -4
  79. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -0
  80. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +3 -2
  81. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -0
  82. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +3 -2
  83. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -0
  84. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +2 -1
  85. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -0
  86. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +5 -4
  87. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -0
  88. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +5 -4
  89. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -0
  90. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +3 -2
  91. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -0
  92. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +4 -3
  93. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -0
  94. package/dist/Modal/NordFlow/screens/index.js +1 -0
  95. package/dist/Modal/NordFlow/screens/index.js.map +1 -0
  96. package/dist/Modal/NordFlow/types.js +1 -0
  97. package/dist/Modal/NordFlow/types.js.map +1 -0
  98. package/dist/Modal/NordFlow/utils/imageUtils.js +1 -0
  99. package/dist/Modal/NordFlow/utils/imageUtils.js.map +1 -0
  100. package/dist/Modal/NordFlow/utils/index.js +1 -0
  101. package/dist/Modal/NordFlow/utils/index.js.map +1 -0
  102. package/dist/Modal/NordFlow/utils/nordUtils.js +1 -0
  103. package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -0
  104. package/dist/Modal/NordFlow/utils/persistence.js +1 -0
  105. package/dist/Modal/NordFlow/utils/persistence.js.map +1 -0
  106. package/dist/Modal/Sidebar/N1Sidebar.js +12 -10
  107. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -0
  108. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +1 -0
  109. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -0
  110. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +6 -5
  111. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -0
  112. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +4 -3
  113. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -0
  114. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +3 -2
  115. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -0
  116. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +3 -2
  117. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -0
  118. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +2 -1
  119. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -0
  120. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +5 -4
  121. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -0
  122. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +7 -6
  123. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -0
  124. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +2 -1
  125. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -0
  126. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +4 -3
  127. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -0
  128. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +8 -7
  129. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -0
  130. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +14 -13
  131. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -0
  132. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +2 -1
  133. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -0
  134. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +3 -2
  135. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -0
  136. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +2 -1
  137. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -0
  138. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +6 -5
  139. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -0
  140. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +2 -1
  141. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -0
  142. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +6 -5
  143. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -0
  144. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +5 -4
  145. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -0
  146. package/dist/Provider/LazyWalletProvider.js +1 -0
  147. package/dist/Provider/LazyWalletProvider.js.map +1 -0
  148. package/dist/Provider/N1WalletProvider.js +3 -12
  149. package/dist/Provider/N1WalletProvider.js.map +1 -0
  150. package/dist/Provider/context.js +1 -0
  151. package/dist/Provider/context.js.map +1 -0
  152. package/dist/Provider/hooks.js +1 -0
  153. package/dist/Provider/hooks.js.map +1 -0
  154. package/dist/Provider/icons/CoinbaseWalletIcon.js +1 -0
  155. package/dist/Provider/icons/CoinbaseWalletIcon.js.map +1 -0
  156. package/dist/Provider/icons/ConnectionDotsSVG.js +1 -0
  157. package/dist/Provider/icons/ConnectionDotsSVG.js.map +1 -0
  158. package/dist/Provider/icons/MetamaskIcon.js +1 -0
  159. package/dist/Provider/icons/MetamaskIcon.js.map +1 -0
  160. package/dist/Provider/icons/PhantomIcon.js +1 -0
  161. package/dist/Provider/icons/PhantomIcon.js.map +1 -0
  162. package/dist/Provider/icons/UserIcon.js +1 -0
  163. package/dist/Provider/icons/UserIcon.js.map +1 -0
  164. package/dist/Provider/icons/WalletConnectIcon.js +1 -0
  165. package/dist/Provider/icons/WalletConnectIcon.js.map +1 -0
  166. package/dist/Provider/index.js +1 -0
  167. package/dist/Provider/index.js.map +1 -0
  168. package/dist/Provider/types.js +1 -0
  169. package/dist/Provider/types.js.map +1 -0
  170. package/dist/WidgetButton/N1ConnectButton.js +1 -0
  171. package/dist/WidgetButton/N1ConnectButton.js.map +1 -0
  172. package/dist/components/Logo.js +1 -0
  173. package/dist/components/Logo.js.map +1 -0
  174. package/dist/components/QRCodeLoader.js +2 -1
  175. package/dist/components/QRCodeLoader.js.map +1 -0
  176. package/dist/components/logos/ArbitrumLogo.js +1 -0
  177. package/dist/components/logos/ArbitrumLogo.js.map +1 -0
  178. package/dist/components/logos/BaseLogo.js +1 -0
  179. package/dist/components/logos/BaseLogo.js.map +1 -0
  180. package/dist/components/logos/BeraLogo.js +1 -0
  181. package/dist/components/logos/BeraLogo.js.map +1 -0
  182. package/dist/components/logos/BitcoinLogo.js +1 -0
  183. package/dist/components/logos/BitcoinLogo.js.map +1 -0
  184. package/dist/components/logos/EVMChainsGroup.js +2 -1
  185. package/dist/components/logos/EVMChainsGroup.js.map +1 -0
  186. package/dist/components/logos/EthereumLogo.js +1 -0
  187. package/dist/components/logos/EthereumLogo.js.map +1 -0
  188. package/dist/components/logos/HyperliquidLogo.js +1 -0
  189. package/dist/components/logos/HyperliquidLogo.js.map +1 -0
  190. package/dist/components/logos/MoreChainsGroup.js +2 -1
  191. package/dist/components/logos/MoreChainsGroup.js.map +1 -0
  192. package/dist/components/logos/OptimismLogo.js +1 -0
  193. package/dist/components/logos/OptimismLogo.js.map +1 -0
  194. package/dist/components/logos/SolanaLogo.js +1 -0
  195. package/dist/components/logos/SolanaLogo.js.map +1 -0
  196. package/dist/components/logos/index.js +1 -0
  197. package/dist/components/logos/index.js.map +1 -0
  198. package/dist/config/solana.js +1 -0
  199. package/dist/config/solana.js.map +1 -0
  200. package/dist/config.js +1 -0
  201. package/dist/config.js.map +1 -0
  202. package/dist/errors/types.js +1 -0
  203. package/dist/errors/types.js.map +1 -0
  204. package/dist/index.js +1 -0
  205. package/dist/index.js.map +1 -0
  206. package/dist/main.css +1 -1
  207. package/dist/utils/dynamicImports.js +1 -0
  208. package/dist/utils/dynamicImports.js.map +1 -0
  209. package/dist/utils/logger.d.ts +1 -0
  210. package/dist/utils/logger.js +26 -2
  211. package/dist/utils/logger.js.map +1 -0
  212. package/dist/utils/shortenString.js +1 -0
  213. package/dist/utils/shortenString.js.map +1 -0
  214. package/package.json +2 -2
  215. package/dist/Modal/BackButton.d.ts +0 -3
  216. package/dist/Modal/BackButton.js +0 -26
  217. package/dist/Modal/ConnectView.d.ts +0 -1
  218. package/dist/Modal/ConnectView.js +0 -68
  219. package/dist/Modal/CreateSessionView.d.ts +0 -1
  220. package/dist/Modal/CreateSessionView.js +0 -248
  221. package/dist/Modal/CreateUserView.d.ts +0 -1
  222. package/dist/Modal/CreateUserView.js +0 -160
  223. package/dist/Modal/ModalHeader.d.ts +0 -1
  224. package/dist/Modal/ModalHeader.js +0 -20
  225. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +0 -9
  226. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +0 -145
  227. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +0 -14
  228. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +0 -75
  229. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +0 -7
  230. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +0 -5
  231. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +0 -1
  232. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +0 -5
  233. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +0 -13
  234. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +0 -58
  235. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +0 -6
  236. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +0 -6
  237. package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +0 -5
  238. package/dist/Modal/NTSFlow/NordFlow/components/index.js +0 -5
  239. package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +0 -37
  240. package/dist/Modal/NTSFlow/NordFlow/constants.js +0 -223
  241. package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +0 -8
  242. package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +0 -8
  243. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  244. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +0 -43
  245. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +0 -38
  246. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +0 -166
  247. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +0 -32
  248. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +0 -163
  249. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
  250. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +0 -101
  251. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +0 -32
  252. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +0 -193
  253. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +0 -2
  254. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +0 -69
  255. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  256. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +0 -89
  257. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +0 -30
  258. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +0 -132
  259. package/dist/Modal/NTSFlow/NordFlow/index.d.ts +0 -3
  260. package/dist/Modal/NTSFlow/NordFlow/index.js +0 -3
  261. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  262. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
  263. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  264. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  265. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  266. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
  267. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
  268. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +0 -20
  269. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  270. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +0 -6
  271. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  272. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
  273. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
  274. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +0 -14
  275. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  276. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
  277. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  278. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
  279. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  280. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +0 -13
  281. package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +0 -10
  282. package/dist/Modal/NTSFlow/NordFlow/screens/index.js +0 -10
  283. package/dist/Modal/NTSFlow/NordFlow/types.d.ts +0 -105
  284. package/dist/Modal/NTSFlow/NordFlow/types.js +0 -34
  285. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +0 -24
  286. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +0 -83
  287. package/dist/Modal/NoWhitelistView.d.ts +0 -1
  288. package/dist/Modal/NoWhitelistView.js +0 -42
  289. package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +0 -11
  290. package/dist/Modal/NordFlow/NordFlowWrapper.js +0 -11
  291. package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +0 -9
  292. package/dist/Modal/NordFlow/WalletConnectionFlow.js +0 -145
  293. package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +0 -14
  294. package/dist/Modal/NordFlow/components/AnimatedButton.js +0 -75
  295. package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  296. package/dist/Modal/NordFlow/hooks/useButtonTyping.js +0 -43
  297. package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +0 -32
  298. package/dist/Modal/NordFlow/hooks/useNordSession.js +0 -391
  299. package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +0 -2
  300. package/dist/Modal/NordFlow/hooks/useTableValues.js +0 -69
  301. package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  302. package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +0 -89
  303. package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +0 -14
  304. package/dist/Modal/NordFlow/hooks/useWalletConnect.js +0 -221
  305. package/dist/Modal/NordFlow/index copy.d.ts +0 -1
  306. package/dist/Modal/NordFlow/index copy.js +0 -1
  307. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +0 -5
  308. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +0 -17
  309. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  310. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +0 -153
  311. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  312. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +0 -47
  313. package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  314. package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +0 -62
  315. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +0 -1
  316. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +0 -116
  317. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +0 -5
  318. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +0 -138
  319. package/dist/Modal/SigningView.d.ts +0 -1
  320. package/dist/Modal/SigningView.js +0 -5
  321. package/dist/Modal/SuccessView.d.ts +0 -1
  322. package/dist/Modal/SuccessView.js +0 -10
  323. package/dist/NordFlow/WalletConnectionFlow.d.ts +0 -9
  324. package/dist/NordFlow/WalletConnectionFlow.js +0 -145
  325. package/dist/NordFlow/components/AnimatedButton.d.ts +0 -14
  326. package/dist/NordFlow/components/AnimatedButton.js +0 -75
  327. package/dist/NordFlow/components/ChainButton.d.ts +0 -7
  328. package/dist/NordFlow/components/ChainButton.js +0 -5
  329. package/dist/NordFlow/components/LoadingSquares.d.ts +0 -1
  330. package/dist/NordFlow/components/LoadingSquares.js +0 -5
  331. package/dist/NordFlow/components/TransactionTable.d.ts +0 -13
  332. package/dist/NordFlow/components/TransactionTable.js +0 -58
  333. package/dist/NordFlow/components/WaitingMessage.d.ts +0 -6
  334. package/dist/NordFlow/components/WaitingMessage.js +0 -6
  335. package/dist/NordFlow/components/index.d.ts +0 -5
  336. package/dist/NordFlow/components/index.js +0 -5
  337. package/dist/NordFlow/constants.d.ts +0 -37
  338. package/dist/NordFlow/constants.js +0 -223
  339. package/dist/NordFlow/hooks/index.d.ts +0 -8
  340. package/dist/NordFlow/hooks/index.js +0 -8
  341. package/dist/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  342. package/dist/NordFlow/hooks/useButtonTyping.js +0 -43
  343. package/dist/NordFlow/hooks/useDepositFlow.d.ts +0 -38
  344. package/dist/NordFlow/hooks/useDepositFlow.js +0 -166
  345. package/dist/NordFlow/hooks/useFlowState.d.ts +0 -32
  346. package/dist/NordFlow/hooks/useFlowState.js +0 -163
  347. package/dist/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
  348. package/dist/NordFlow/hooks/useInterruptHandler.js +0 -101
  349. package/dist/NordFlow/hooks/useNordSession.d.ts +0 -32
  350. package/dist/NordFlow/hooks/useNordSession.js +0 -193
  351. package/dist/NordFlow/hooks/useTableValues.d.ts +0 -2
  352. package/dist/NordFlow/hooks/useTableValues.js +0 -69
  353. package/dist/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  354. package/dist/NordFlow/hooks/useWaitingMessage.js +0 -89
  355. package/dist/NordFlow/hooks/useWalletConnect.d.ts +0 -30
  356. package/dist/NordFlow/hooks/useWalletConnect.js +0 -132
  357. package/dist/NordFlow/index.d.ts +0 -3
  358. package/dist/NordFlow/index.js +0 -3
  359. package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  360. package/dist/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
  361. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  362. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  363. package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  364. package/dist/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
  365. package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
  366. package/dist/NordFlow/screens/04-AmountInputScreen.js +0 -20
  367. package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  368. package/dist/NordFlow/screens/05-DepositProgressScreen.js +0 -6
  369. package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  370. package/dist/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
  371. package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
  372. package/dist/NordFlow/screens/07-NordAuthScreen.js +0 -14
  373. package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  374. package/dist/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
  375. package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  376. package/dist/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
  377. package/dist/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  378. package/dist/NordFlow/screens/10-ErrorScreen.js +0 -13
  379. package/dist/NordFlow/screens/index.d.ts +0 -10
  380. package/dist/NordFlow/screens/index.js +0 -10
  381. package/dist/NordFlow/types.d.ts +0 -105
  382. package/dist/NordFlow/types.js +0 -34
  383. package/dist/NordFlow/utils/persistence.d.ts +0 -24
  384. package/dist/NordFlow/utils/persistence.js +0 -83
  385. package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +0 -9
  386. package/dist/WalletConnectionFlow/WalletConnectionFlow.js +0 -145
  387. package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +0 -14
  388. package/dist/WalletConnectionFlow/components/AnimatedButton.js +0 -75
  389. package/dist/WalletConnectionFlow/components/ChainButton.d.ts +0 -7
  390. package/dist/WalletConnectionFlow/components/ChainButton.js +0 -5
  391. package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +0 -1
  392. package/dist/WalletConnectionFlow/components/LoadingSquares.js +0 -5
  393. package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +0 -13
  394. package/dist/WalletConnectionFlow/components/TransactionTable.js +0 -58
  395. package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +0 -6
  396. package/dist/WalletConnectionFlow/components/WaitingMessage.js +0 -6
  397. package/dist/WalletConnectionFlow/components/index.d.ts +0 -5
  398. package/dist/WalletConnectionFlow/components/index.js +0 -5
  399. package/dist/WalletConnectionFlow/constants.d.ts +0 -37
  400. package/dist/WalletConnectionFlow/constants.js +0 -223
  401. package/dist/WalletConnectionFlow/hooks/index.d.ts +0 -8
  402. package/dist/WalletConnectionFlow/hooks/index.js +0 -8
  403. package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +0 -7
  404. package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +0 -43
  405. package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +0 -38
  406. package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +0 -166
  407. package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +0 -32
  408. package/dist/WalletConnectionFlow/hooks/useFlowState.js +0 -163
  409. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +0 -27
  410. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +0 -101
  411. package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +0 -32
  412. package/dist/WalletConnectionFlow/hooks/useNordSession.js +0 -193
  413. package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +0 -2
  414. package/dist/WalletConnectionFlow/hooks/useTableValues.js +0 -69
  415. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +0 -6
  416. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +0 -89
  417. package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +0 -30
  418. package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +0 -132
  419. package/dist/WalletConnectionFlow/index.d.ts +0 -3
  420. package/dist/WalletConnectionFlow/index.js +0 -3
  421. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  422. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +0 -17
  423. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  424. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  425. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  426. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +0 -7
  427. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +0 -8
  428. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +0 -20
  429. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  430. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +0 -6
  431. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  432. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +0 -99
  433. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +0 -7
  434. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +0 -14
  435. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  436. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +0 -20
  437. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  438. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +0 -18
  439. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +0 -7
  440. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +0 -13
  441. package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +0 -8
  442. package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +0 -20
  443. package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +0 -8
  444. package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +0 -28
  445. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +0 -6
  446. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +0 -20
  447. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +0 -7
  448. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +0 -7
  449. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +0 -6
  450. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +0 -17
  451. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +0 -7
  452. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +0 -6
  453. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +0 -8
  454. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +0 -99
  455. package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +0 -7
  456. package/dist/WalletConnectionFlow/screens/ErrorScreen.js +0 -13
  457. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +0 -6
  458. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +0 -47
  459. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +0 -6
  460. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +0 -47
  461. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +0 -5
  462. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +0 -18
  463. package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +0 -7
  464. package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +0 -14
  465. package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +0 -6
  466. package/dist/WalletConnectionFlow/screens/SigningScreen.js +0 -6
  467. package/dist/WalletConnectionFlow/screens/index.d.ts +0 -10
  468. package/dist/WalletConnectionFlow/screens/index.js +0 -10
  469. package/dist/WalletConnectionFlow/types.d.ts +0 -105
  470. package/dist/WalletConnectionFlow/types.js +0 -34
  471. package/dist/WalletConnectionFlow/utils/persistence.d.ts +0 -24
  472. package/dist/WalletConnectionFlow/utils/persistence.js +0 -83
  473. package/dist/components/LazyLoadWrapper.d.ts +0 -8
  474. package/dist/components/LazyLoadWrapper.js +0 -17
  475. package/dist/components/WalletDeposit/AnimatedButton.d.ts +0 -17
  476. package/dist/components/WalletDeposit/AnimatedButton.js +0 -29
  477. package/dist/components/WalletDeposit/components/ChainButton.d.ts +0 -7
  478. package/dist/components/WalletDeposit/components/ChainButton.js +0 -5
  479. package/dist/components/WalletDeposit/components/LoadingSquares.d.ts +0 -1
  480. package/dist/components/WalletDeposit/components/LoadingSquares.js +0 -5
  481. package/dist/components/WalletDeposit/components/TransactionTable.d.ts +0 -13
  482. package/dist/components/WalletDeposit/components/TransactionTable.js +0 -58
  483. package/dist/components/WalletDeposit/components/WaitingMessage.d.ts +0 -6
  484. package/dist/components/WalletDeposit/components/WaitingMessage.js +0 -6
  485. package/dist/components/WalletDeposit/constants.d.ts +0 -15
  486. package/dist/components/WalletDeposit/constants.js +0 -32
  487. package/dist/components/WalletDeposit/hooks.d.ts +0 -9
  488. package/dist/components/WalletDeposit/hooks.js +0 -185
  489. package/dist/components/WalletDeposit/index.d.ts +0 -1
  490. package/dist/components/WalletDeposit/index.js +0 -136
  491. package/dist/components/WalletDeposit/screens/AmountInputScreen.d.ts +0 -12
  492. package/dist/components/WalletDeposit/screens/AmountInputScreen.js +0 -18
  493. package/dist/components/WalletDeposit/screens/AppsTableScreen.d.ts +0 -8
  494. package/dist/components/WalletDeposit/screens/AppsTableScreen.js +0 -28
  495. package/dist/components/WalletDeposit/screens/ChainSelectionScreen.d.ts +0 -5
  496. package/dist/components/WalletDeposit/screens/ChainSelectionScreen.js +0 -8
  497. package/dist/components/WalletDeposit/screens/InitialScreen.d.ts +0 -9
  498. package/dist/components/WalletDeposit/screens/InitialScreen.js +0 -18
  499. package/dist/components/WalletDeposit/screens/SigningScreen.d.ts +0 -6
  500. package/dist/components/WalletDeposit/screens/SigningScreen.js +0 -6
  501. package/dist/components/WalletDeposit/screens/SuccessScreen.d.ts +0 -12
  502. package/dist/components/WalletDeposit/screens/SuccessScreen.js +0 -7
  503. package/dist/components/WalletDeposit/types.d.ts +0 -48
  504. package/dist/components/WalletDeposit/types.js +0 -1
  505. package/dist/config/dynamic.d.ts +0 -20
  506. package/dist/config/dynamic.js +0 -47
  507. package/dist/hooks/useSolanaSession.d.ts +0 -17
  508. package/dist/hooks/useSolanaSession.js +0 -180
  509. package/dist/utils/lazyLoad.d.ts +0 -3
  510. package/dist/utils/lazyLoad.js +0 -9
  511. package/dist/utils/react-shim.d.ts +0 -2
  512. package/dist/utils/react-shim.js +0 -6
  513. package/dist/utils/solana-session.d.ts +0 -84
  514. package/dist/utils/solana-session.js +0 -230
@@ -0,0 +1 @@
1
+ {"version":3,"file":"06-DepositSuccessScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/06-DepositSuccessScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\nimport { TransactionTable } from '../components/TransactionTable';\nimport { ANIMATION_EASE, TYPING_INTERVAL } from '../constants';\nimport { TableValues } from '../types';\nimport { useN1WalletContext } from '../../../Provider/hooks';\nimport { isNordConfigured } from '../utils/nordUtils';\n\ninterface DepositSuccessScreenProps {\n amount: string;\n tableValues: TableValues;\n onContinue: () => void;\n}\n\nexport function DepositSuccessScreen({\n amount,\n tableValues,\n onContinue,\n}: DepositSuccessScreenProps) {\n const { nord } = useN1WalletContext();\n const [isHovered, setIsHovered] = useState(false);\n const [showDetails, setShowDetails] = useState(false);\n const [animatedTableValues, setAnimatedTableValues] = useState<TableValues>({\n amount: { text: '', visible: false, typing: false },\n tx: { text: '', visible: false, typing: false },\n from: { text: '', visible: false, typing: false },\n to: { text: '', visible: false, typing: false },\n network: { text: '', visible: false, typing: false },\n status: { text: '', visible: false, typing: false },\n });\n // Add state to track if the button should be enabled\n const [isContinueEnabled, setIsContinueEnabled] = useState(false);\n // Add state to show a message about waiting\n const [showWaitingMessage, setShowWaitingMessage] = useState(true);\n\n // Get token information from Nord if available\n const [tokenSymbol, setTokenSymbol] = useState('USDC');\n\n // Try to get token information from Nord\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n // Find the USDC token or the first token\n const usdcToken =\n nord.tokens.find((t) => t.symbol === 'USDC') || nord.tokens[0];\n if (usdcToken) {\n setTokenSymbol(usdcToken.symbol);\n }\n } catch (error) {\n console.warn('Error getting token information from Nord:', error);\n }\n }\n }, [nord]);\n\n // Add animation to table values\n useEffect(() => {\n if (!showDetails) return;\n\n // Extract the text values from the tableValues\n const values = {\n amount: `${Number(amount).toLocaleString()} ${tokenSymbol}`,\n tx: tableValues.tx.text,\n from: tableValues.from.text,\n to: tableValues.to.text,\n network: tableValues.network.text,\n status: tableValues.status.text,\n };\n\n // Animate each field with typing effect\n Object.entries(values).forEach(([key, value], index) => {\n setTimeout(() => {\n // Make the field visible first\n setAnimatedTableValues((prev) => ({\n ...prev,\n [key]: {\n ...prev[key as keyof typeof prev],\n visible: true,\n typing: true,\n },\n }));\n\n let textIndex = 0;\n // Type out each character with the typing animation\n const interval = setInterval(() => {\n if (textIndex <= value.length) {\n setAnimatedTableValues((prev) => ({\n ...prev,\n [key]: {\n text: value.slice(0, textIndex),\n visible: true,\n typing: textIndex < value.length,\n },\n }));\n textIndex++;\n } else {\n clearInterval(interval);\n setAnimatedTableValues((prev) => ({\n ...prev,\n [key]: {\n text: value,\n visible: true,\n typing: false,\n },\n }));\n }\n }, TYPING_INTERVAL);\n }, index * 300); // Slightly faster staggering for better UX\n });\n }, [tableValues, showDetails, amount, tokenSymbol]);\n\n // Enable the continue button after a minimum viewing time\n useEffect(() => {\n const enableTimer = setTimeout(() => {\n setIsContinueEnabled(true);\n setShowWaitingMessage(false);\n }, 4000);\n\n return () => clearTimeout(enableTimer);\n }, []);\n\n const toggleDetails = () => {\n setShowDetails((prev) => !prev);\n };\n\n return (\n <div className=\"relative w-full px-4\">\n <div className=\"flex flex-col space-y-6\">\n {/* Amount display */}\n <div className=\"w-full\">\n <div\n className={`relative w-full px-3 py-3 flex items-center justify-center transition-all duration-300 ${ANIMATION_EASE} ${showDetails ? 'opacity-0 max-h-0' : 'opacity-100 max-h-[200px]'}`}\n >\n <div\n className={`relative w-full px-5 py-8 transition-all duration-300 ${ANIMATION_EASE} ${\n showDetails ? 'max-h-0 overflow-hidden' : 'max-h-[200px]'\n }`}\n >\n <div className=\"w-2 h-2 bg-green-200 dark:bg-emerald-800 absolute -top-2 -left-2 rounded-sm\"></div>\n <div className=\"w-2 h-2 bg-green-200 dark:bg-emerald-800 absolute -top-2 -right-2 rounded-sm\"></div>\n <div className=\"w-2 h-2 bg-green-200 dark:bg-emerald-800 absolute -bottom-2 -left-2 rounded-sm\"></div>\n <div className=\"w-2 h-2 bg-green-200 dark:bg-emerald-800 absolute -bottom-2 -right-2 rounded-sm\"></div>\n <p\n className=\"text-5xl md:text-7xl tracking-tight text-green-500/80 dark:text-emerald-500/80 font-medium pt-4 underline text-center n1-animate-fade-up\"\n style={{ animationDelay: '0.3s' }}\n >\n +{Number(amount).toLocaleString()}\n <span className=\"text-xl md:text-2xl text-green-500/50 dark:text-emerald-500/50 ml-2\">\n {tokenSymbol}\n </span>\n </p>\n\n {/* Subtle transaction details toggle positioned at the bottom of amount display */}\n <div className=\"absolute bottom-0 left-0 right-0 flex justify-center -mb-3\">\n <button\n onClick={toggleDetails}\n className={`\n group flex items-center space-x-1 px-3 py-1 text-xs font-medium \n transition-colors duration-200 focus:outline-none\n ${\n showDetails\n ? 'text-green-600 dark:text-emerald-400 hover:text-green-700 dark:hover:text-emerald-300'\n : 'text-n1-gray-500 dark:text-n1-gray-400 hover:text-green-600 dark:hover:text-emerald-400'\n }\n `}\n >\n <span>View details</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3 transition-transform duration-200\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div\n className={`transition-all duration-300 ease-in-out overflow-hidden ${\n showDetails\n ? 'max-h-[500px] opacity-100 -mt-4'\n : 'max-h-0 opacity-0'\n }`}\n >\n <TransactionTable\n tableValues={animatedTableValues}\n onClose={toggleDetails}\n />\n </div>\n\n {/* Continue button */}\n <div className=\"mt-6\">\n {showWaitingMessage && (\n <p className=\"text-sm text-n1-gray-600 dark:text-neutral-400 text-center mb-2 n1-animate-pulse\">\n Please wait a moment...\n </p>\n )}\n <button\n onClick={isContinueEnabled ? onContinue : undefined}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n ${!isContinueEnabled ? 'opacity-50 cursor-not-allowed' : ''}\n `}\n style={{\n transform:\n isHovered && isContinueEnabled ? 'scale(0.99)' : 'scale(1)',\n }}\n disabled={!isContinueEnabled}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Continue\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -118,18 +118,19 @@ export function AuthLoadingScreen(_a) {
118
118
  setStatusMessage(null);
119
119
  performAuth();
120
120
  };
121
- return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-6", children: [authStatus === 'loading' && _jsx(LoadingSquares, {}), authStatus === 'success' && (_jsx("div", { className: "text-green-500 text-4xl mb-4", children: "\u2713" })), authStatus === 'error' && (_jsx("div", { className: "text-red-500 text-4xl mb-4", children: "\u26A0\uFE0F" })), _jsxs("div", { className: "space-y-2 text-center w-[300px]", children: [_jsxs("h3", { className: "text-xl text-gray-800 dark:text-white font-semibold", children: [authStatus === 'loading' &&
121
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-6", children: [authStatus === 'loading' && _jsx(LoadingSquares, {}), authStatus === 'success' && (_jsx("div", { className: "text-green-500 text-4xl mb-4", children: "\u2713" })), authStatus === 'error' && (_jsx("div", { className: "text-red-500 text-4xl mb-4", children: "\u26A0\uFE0F" })), _jsxs("div", { className: "space-y-2 text-center w-[300px]", children: [_jsxs("h3", { className: "text-xl text-n1-gray-800 dark:text-white font-semibold", children: [authStatus === 'loading' &&
122
122
  (isCreatingAccount ? 'Creating Account' : 'Authenticating'), authStatus === 'success' &&
123
123
  (isCreatingAccount
124
124
  ? 'Account Created'
125
- : 'Authentication Successful'), authStatus === 'error' && 'Authentication Failed'] }), _jsxs("p", { className: "text-sm text-gray-600 dark:text-neutral-400", children: [authStatus === 'loading' && statusMessage
125
+ : 'Authentication Successful'), authStatus === 'error' && 'Authentication Failed'] }), _jsxs("p", { className: "text-sm text-n1-gray-600 dark:text-neutral-400", children: [authStatus === 'loading' && statusMessage
126
126
  ? statusMessage
127
127
  : 'Please wait while we create your Nord account', authStatus === 'success' &&
128
128
  (isCreatingAccount
129
129
  ? 'Your account has been created successfully'
130
130
  : 'You have been logged in successfully'), authStatus === 'error' &&
131
131
  (errorMessage ||
132
- 'There was an error during authentication. Please try again.')] }), authStatus === 'error' && (_jsx("div", { className: "mt-6", children: _jsx("button", { onClick: handleRetry, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-gray-200 dark:border-gray-800 hover:border-gray-400 dark:hover:border-white/60\n "), style: {
132
+ 'There was an error during authentication. Please try again.')] }), authStatus === 'error' && (_jsx("div", { className: "mt-6", children: _jsx("button", { onClick: handleRetry, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n "), style: {
133
133
  transform: isHovered ? 'scale(0.99)' : 'scale(1)',
134
- }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-gray-700 dark:text-gray-300 group-hover:text-gray-900 dark:group-hover:text-white\n "), children: "Try Again" }) }) }))] })] }));
134
+ }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n "), children: "Try Again" }) }) }))] })] }));
135
135
  }
136
+ //# sourceMappingURL=07-AuthLoadingScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"07-AuthLoadingScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/07-AuthLoadingScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, useCallback, useRef } from 'react';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { LoadingSquares } from '../components/LoadingSquares';\nimport { logger } from '../../../utils/logger';\nimport { ANIMATION_EASE } from '../constants';\n\ninterface AuthLoadingScreenProps {\n isCreatingAccount?: boolean;\n onAuthComplete?: (success: boolean) => void;\n}\n\nexport function AuthLoadingScreen({\n isCreatingAccount = false,\n onAuthComplete,\n}: AuthLoadingScreenProps) {\n const { sessionMode, setNordUser } = useN1WalletInternalContext();\n const { address, nord, nordUser } = useN1WalletContext();\n const [authStatus, setAuthStatus] = useState<'loading' | 'success' | 'error'>(\n 'loading'\n );\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const [statusMessage, setStatusMessage] = useState<string | null>(null);\n const [isHovered, setIsHovered] = useState<boolean>(false);\n const authInitiatedRef = useRef(false);\n\n const performAuth = useCallback(async () => {\n try {\n // Step 1: Tell user to sign transaction\n setStatusMessage(\n 'Please sign the transaction to authenticate your session'\n );\n\n if (!nordUser) {\n throw new Error('Nord user is not initialized');\n }\n\n // Step 2: Call nordUser.refreshSession and get sessionId\n setStatusMessage('Session is being authenticated...');\n\n // Get the session public key from the nordUser\n const sessionPubKey = nordUser.sessionPubKey;\n if (!sessionPubKey) {\n throw new Error('Session public key is not available');\n }\n\n // Refresh the session\n await nordUser.refreshSession(sessionPubKey);\n await nordUser.updateAccountId();\n\n // Get the sessionId after refresh\n const sessionId = nordUser.sessionId;\n if (!sessionId) {\n throw new Error('Failed to get session ID after refresh');\n }\n\n logger.debug('Session refreshed successfully', {\n sessionId: sessionId.toString(),\n });\n\n // Step 3: Store sessionId in localStorage\n if (address) {\n const sessionIdKey = `n1_sessionId_${address}`;\n localStorage.setItem(sessionIdKey, sessionId.toString());\n logger.debug('Stored sessionId in localStorage', { key: sessionIdKey });\n }\n\n // Step 4: Update status to success\n setAuthStatus('success');\n\n // Step 5: Call onAuthComplete callback with success=true\n if (onAuthComplete) {\n onAuthComplete(true);\n }\n setNordUser(nordUser);\n } catch (error) {\n console.error('Authentication error:', error);\n setAuthStatus('error');\n setErrorMessage(\n error instanceof Error ? error.message : 'Unknown error occurred'\n );\n }\n }, [onAuthComplete, isCreatingAccount, sessionMode, address, nord]);\n\n useEffect(() => {\n if (!authInitiatedRef.current) {\n authInitiatedRef.current = true;\n performAuth();\n }\n }, []);\n\n const handleRetry = () => {\n setAuthStatus('loading');\n setErrorMessage(null);\n setStatusMessage(null);\n performAuth();\n };\n\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n {authStatus === 'loading' && <LoadingSquares />}\n {authStatus === 'success' && (\n <div className=\"text-green-500 text-4xl mb-4\">✓</div>\n )}\n {authStatus === 'error' && (\n <div className=\"text-red-500 text-4xl mb-4\">⚠️</div>\n )}\n\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-n1-gray-800 dark:text-white font-semibold\">\n {authStatus === 'loading' &&\n (isCreatingAccount ? 'Creating Account' : 'Authenticating')}\n {authStatus === 'success' &&\n (isCreatingAccount\n ? 'Account Created'\n : 'Authentication Successful')}\n {authStatus === 'error' && 'Authentication Failed'}\n </h3>\n <p className=\"text-sm text-n1-gray-600 dark:text-neutral-400\">\n {authStatus === 'loading' && statusMessage\n ? statusMessage\n : 'Please wait while we create your Nord account'}\n {authStatus === 'success' &&\n (isCreatingAccount\n ? 'Your account has been created successfully'\n : 'You have been logged in successfully')}\n {authStatus === 'error' &&\n (errorMessage ||\n 'There was an error during authentication. Please try again.')}\n </p>\n\n {authStatus === 'error' && (\n <div className=\"mt-6\">\n <button\n onClick={handleRetry}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Try Again\n </span>\n </button>\n </div>\n )}\n </div>\n </div>\n );\n}\n"]}
@@ -30,7 +30,8 @@ export function FinalSuccessScreen(_a) {
30
30
  return 'Your wallet has been successfully connected';
31
31
  }
32
32
  };
33
- return (_jsx("div", { className: "overflow-hidden relative", children: _jsxs("div", { className: "space-y-8", children: [_jsxs("div", { className: "flex flex-col items-center justify-center pt-4", children: [_jsx("div", { className: "mb-6", children: _jsx("div", { className: "w-20 h-20 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center", children: _jsx("svg", { className: "w-10 h-10 text-green-500 dark:text-green-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M5 13l4 4L19 7" }) }) }) }), _jsx("h2", { className: "text-2xl text-gray-800 dark:text-white font-semibold mb-2 text-center", children: getTitle() }), _jsx("p", { className: "text-lg text-gray-700 dark:text-neutral-300 text-center", children: getMessage() }), address && (_jsxs("p", { className: "text-sm text-gray-500 dark:text-neutral-400 text-center mt-2", children: ["Wallet: ", address.substring(0, 6), "...", address.substring(address.length - 4)] }))] }), _jsx("button", { onClick: onDone, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-gray-200 dark:border-gray-800 hover:border-gray-400 dark:hover:border-white/60\n "), style: {
33
+ return (_jsx("div", { className: "overflow-hidden relative", children: _jsxs("div", { className: "space-y-8", children: [_jsxs("div", { className: "flex flex-col items-center justify-center pt-4", children: [_jsx("div", { className: "mb-6", children: _jsx("div", { className: "w-20 h-20 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center", children: _jsx("svg", { className: "w-10 h-10 text-green-500 dark:text-green-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M5 13l4 4L19 7" }) }) }) }), _jsx("h2", { className: "text-2xl text-n1-gray-800 dark:text-white font-semibold mb-2 text-center", children: getTitle() }), _jsx("p", { className: "text-lg text-n1-gray-700 dark:text-neutral-300 text-center", children: getMessage() }), address && (_jsxs("p", { className: "text-sm text-n1-gray-500 dark:text-neutral-400 text-center mt-2", children: ["Wallet: ", address.substring(0, 6), "...", address.substring(address.length - 4)] }))] }), _jsx("button", { onClick: onDone, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n "), style: {
34
34
  transform: isHovered ? 'scale(0.99)' : 'scale(1)',
35
- }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-gray-700 dark:text-gray-300 group-hover:text-gray-900 dark:group-hover:text-white\n "), children: "Open App" }) })] }) }));
35
+ }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n "), children: "Open App" }) })] }) }));
36
36
  }
37
+ //# sourceMappingURL=08-FinalSuccessScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"08-FinalSuccessScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/08-FinalSuccessScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,UAAU,kBAAkB,CAAC,EAAmC;QAAjC,MAAM,YAAA;IACnC,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAC5C,IAAA,KAAoB,kBAAkB,EAAE,EAAtC,IAAI,UAAA,EAAE,OAAO,aAAyB,CAAC;IACzC,IAAA,KAAkC,0BAA0B,EAAE,EAA5D,WAAW,iBAAA,EAAE,cAAc,oBAAiC,CAAC;IACrE,wDAAwD;IACxD,SAAS,CAAC;QACR,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oEAAoE;IACpE,IAAM,QAAQ,GAAG;QACf,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,4BAA4B,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,4BAA4B,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG;QACjB,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO,6CAA6C,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,6CAA6C,CAAC;QACvD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,gDAAgD,aAC7D,cAAK,SAAS,EAAC,MAAM,YAEnB,cAAK,SAAS,EAAC,2FAA2F,YACxG,cACE,SAAS,EAAC,8CAA8C,EACxD,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,YAElC,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,EACf,CAAC,EAAC,gBAAgB,GAClB,GACE,GACF,GACF,EAEN,aAAI,SAAS,EAAC,0EAA0E,YACrF,QAAQ,EAAE,GACR,EAEL,YAAG,SAAS,EAAC,4DAA4D,YACtE,UAAU,EAAE,GACX,EAGH,OAAO,IAAI,CACV,aAAG,SAAS,EAAC,iEAAiE,yBACnE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,SAC/B,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IACpC,CACL,IACG,EAEN,iBACE,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACvC,SAAS,EAAE,+KAEqB,cAAc,4IAE7C,EACD,KAAK,EAAE;wBACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;qBAClD,YAED,eACE,SAAS,EAAE,2FAC0D,cAAc,8HAEpF,yBAGM,GACA,IACL,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useState } from 'react';\nimport { ANIMATION_EASE } from '../constants';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { isNordConfigured } from '../utils/nordUtils';\nimport { useNordInstance } from '../hooks/useNordInstance';\n\ninterface FinalSuccessScreenProps {\n onDone: () => void;\n}\n\nexport function FinalSuccessScreen({ onDone }: FinalSuccessScreenProps) {\n const [isHovered, setIsHovered] = useState(false);\n const { nord, address } = useN1WalletContext();\n const { sessionMode, setIsConnected } = useN1WalletInternalContext();\n // Add a minimum viewing time before enabling the button\n useEffect(() => {\n setIsConnected(true);\n }, []);\n\n // Get the appropriate title and message based on Nord configuration\n const getTitle = () => {\n if (nord && isNordConfigured(nord)) {\n return 'Authentication Successful!';\n } else {\n return 'Authentication Successful!';\n }\n };\n\n const getMessage = () => {\n if (sessionMode === N1SessionMode.Nord) {\n return 'Your wallet has been successfully connected';\n } else {\n return 'Your wallet has been successfully connected';\n }\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"space-y-8\">\n <div className=\"flex flex-col items-center justify-center pt-4\">\n <div className=\"mb-6\">\n {/* Success icon/animation */}\n <div className=\"w-20 h-20 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center\">\n <svg\n className=\"w-10 h-10 text-green-500 dark:text-green-400\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n </div>\n </div>\n\n <h2 className=\"text-2xl text-n1-gray-800 dark:text-white font-semibold mb-2 text-center\">\n {getTitle()}\n </h2>\n\n <p className=\"text-lg text-n1-gray-700 dark:text-neutral-300 text-center\">\n {getMessage()}\n </p>\n\n {/* Display wallet address if available */}\n {address && (\n <p className=\"text-sm text-n1-gray-500 dark:text-neutral-400 text-center mt-2\">\n Wallet: {address.substring(0, 6)}...\n {address.substring(address.length - 4)}\n </p>\n )}\n </div>\n\n <button\n onClick={onDone}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Open App\n </span>\n </button>\n </div>\n </div>\n );\n}\n"]}
@@ -59,9 +59,10 @@ export function ErrorScreen(_a) {
59
59
  }
60
60
  return 'Please try again or try a different wallet.';
61
61
  };
62
- return (_jsx("div", { className: "overflow-hidden relative", children: _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex flex-col items-center justify-center py-4", children: [_jsx("div", { className: "mb-6", children: _jsx("div", { className: "w-20 h-20 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center", children: _jsx("svg", { className: "w-10 h-10 text-red-500 dark:text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }) }) }), _jsx("h2", { className: "text-xl text-gray-800 dark:text-white font-semibold mb-2 text-center", children: isNordError ? 'Nord Error' : 'Something went wrong' }), _jsx("p", { className: "text-sm text-gray-600 dark:text-neutral-400 text-center mb-2 max-w-xs", children: errorMessage }), _jsx("p", { className: "text-xs text-gray-500 dark:text-neutral-500 text-center mb-6 max-w-xs", children: getSuggestion() })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("button", { onClick: onRetry, onMouseEnter: function () { return setIsHovered('retry'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-gray-200 dark:border-gray-800 hover:border-gray-400 dark:hover:border-white/60\n "), style: {
62
+ return (_jsx("div", { className: "overflow-hidden relative", children: _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex flex-col items-center justify-center py-4", children: [_jsx("div", { className: "mb-6", children: _jsx("div", { className: "w-20 h-20 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center", children: _jsx("svg", { className: "w-10 h-10 text-red-500 dark:text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }) }) }), _jsx("h2", { className: "text-xl text-n1-gray-800 dark:text-white font-semibold mb-2 text-center", children: isNordError ? 'Nord Error' : 'Something went wrong' }), _jsx("p", { className: "text-sm text-n1-gray-600 dark:text-neutral-400 text-center mb-2 max-w-xs", children: errorMessage }), _jsx("p", { className: "text-xs text-n1-gray-500 dark:text-neutral-500 text-center mb-6 max-w-xs", children: getSuggestion() })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("button", { onClick: onRetry, onMouseEnter: function () { return setIsHovered('retry'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n "), style: {
63
63
  transform: isHovered === 'retry' ? 'scale(0.99)' : 'scale(1)',
64
- }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-gray-700 dark:text-gray-300 group-hover:text-gray-900 dark:group-hover:text-white\n "), children: "Try Again" }) }), _jsx("button", { onClick: onCancel, onMouseEnter: function () { return setIsHovered('cancel'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 border-gray-200 dark:border-gray-800 bg-white dark:bg-neutral-900 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer hover:bg-gray-50 dark:hover:bg-neutral-950\n "), style: {
64
+ }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n "), children: "Try Again" }) }), _jsx("button", { onClick: onCancel, onMouseEnter: function () { return setIsHovered('cancel'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 border-n1-gray-200 dark:border-n1-gray-800 bg-white dark:bg-neutral-900 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer hover:bg-n1-gray-50 dark:hover:bg-neutral-950\n "), style: {
65
65
  transform: isHovered === 'cancel' ? 'scale(0.99)' : 'scale(1)',
66
- }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-300\n "), children: "Cancel" }) })] })] }) }));
66
+ }, children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-gray-500 dark:text-n1-gray-400 group-hover:text-n1-gray-700 dark:group-hover:text-n1-gray-300\n "), children: "Cancel" }) })] })] }) }));
67
67
  }
68
+ //# sourceMappingURL=09-ErrorScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"09-ErrorScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/09-ErrorScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport { ANIMATION_EASE } from '../constants';\nimport { useN1WalletContext } from '../../../Provider/hooks';\nimport { isNordConfigured } from '../utils/nordUtils';\n\ninterface ErrorScreenProps {\n onRetry: () => void;\n onCancel: () => void;\n error: Error | null;\n}\n\nexport function ErrorScreen({ onRetry, onCancel, error }: ErrorScreenProps) {\n const [isHovered, setIsHovered] = useState<'retry' | 'cancel' | null>(null);\n const { nord } = useN1WalletContext();\n const [isNordError, setIsNordError] = useState(false);\n\n // Check if the error is related to Nord\n useEffect(() => {\n if (\n error &&\n error.message &&\n (error.message.includes('Nord') ||\n error.message.includes('nord') ||\n (error.name && error.name.includes('Nord')))\n ) {\n setIsNordError(true);\n } else {\n setIsNordError(false);\n }\n }, [error]);\n\n // Get a user-friendly error message\n const getErrorMessage = () => {\n if (!error) return 'An unexpected error occurred';\n\n // Check for specific Nord-related errors\n if (isNordError) {\n if (\n error.message.includes('connection') ||\n error.message.includes('network')\n ) {\n return 'Failed to connect to Nord. Please check your network connection and try again.';\n }\n\n if (\n error.message.includes('authentication') ||\n error.message.includes('auth')\n ) {\n return 'Authentication with Nord failed. Please try again.';\n }\n\n if (\n error.message.includes('deposit') ||\n error.message.includes('transaction')\n ) {\n return 'Failed to process your deposit. Please try again.';\n }\n\n return `Nord error: ${error.message}`;\n }\n\n // Generic wallet errors\n if (error.message.includes('wallet') || error.message.includes('Wallet')) {\n return 'There was an issue with your wallet connection. Please try again.';\n }\n\n // Default error message\n return error.message;\n };\n\n const errorMessage = getErrorMessage();\n\n // Get a suggestion based on the error\n const getSuggestion = () => {\n if (isNordError && nord && !isNordConfigured(nord)) {\n return 'Nord is not properly configured. Please check your settings.';\n }\n\n if (isNordError) {\n return 'You can try again or contact support if the issue persists.';\n }\n\n return 'Please try again or try a different wallet.';\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"space-y-6\">\n <div className=\"flex flex-col items-center justify-center py-4\">\n <div className=\"mb-6\">\n {/* Error icon */}\n <div className=\"w-20 h-20 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center\">\n <svg\n className=\"w-10 h-10 text-red-500 dark:text-red-400\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n </div>\n\n <h2 className=\"text-xl text-n1-gray-800 dark:text-white font-semibold mb-2 text-center\">\n {isNordError ? 'Nord Error' : 'Something went wrong'}\n </h2>\n\n <p className=\"text-sm text-n1-gray-600 dark:text-neutral-400 text-center mb-2 max-w-xs\">\n {errorMessage}\n </p>\n\n <p className=\"text-xs text-n1-gray-500 dark:text-neutral-500 text-center mb-6 max-w-xs\">\n {getSuggestion()}\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <button\n onClick={onRetry}\n onMouseEnter={() => setIsHovered('retry')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isHovered === 'retry' ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-700 dark:text-n1-gray-300 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Try Again\n </span>\n </button>\n\n <button\n onClick={onCancel}\n onMouseEnter={() => setIsHovered('cancel')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 border-n1-gray-200 dark:border-n1-gray-800 bg-white dark:bg-neutral-900 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer hover:bg-n1-gray-50 dark:hover:bg-neutral-950\n `}\n style={{\n transform: isHovered === 'cancel' ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-500 dark:text-n1-gray-400 group-hover:text-n1-gray-700 dark:group-hover:text-n1-gray-300\n `}\n >\n Cancel\n </span>\n </button>\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -7,3 +7,4 @@ export * from './06-DepositSuccessScreen';
7
7
  export * from './07-AuthLoadingScreen';
8
8
  export * from './08-FinalSuccessScreen';
9
9
  export * from './09-ErrorScreen';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './01-ConnectWalletScreen';\nexport * from './02-EvmWalletAuthScreen';\nexport * from './03-ChainSelectionScreen';\nexport * from './04-AmountInputScreen';\nexport * from './05-DepositProgressScreen';\nexport * from './06-DepositSuccessScreen';\nexport * from './07-AuthLoadingScreen';\nexport * from './08-FinalSuccessScreen';\nexport * from './09-ErrorScreen';\n"]}
@@ -31,3 +31,4 @@ export var initialFlowContext = {
31
31
  depositError: undefined,
32
32
  lastInterruption: null,
33
33
  };
34
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,oDAAuC,CAAA;IACvC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,4BAAe,CAAA;AACjB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AA+BD;;GAEG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAgB;IAC7C,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;IACvB,gBAAgB,EAAE,IAAI;CACvB,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Types for the wallet connection flow state machine\n */\n\n/**\n * Enum representing all possible states in the wallet connection flow\n */\nexport enum FlowState {\n IDLE = 'IDLE',\n CONNECTING_WALLET = 'CONNECTING_WALLET',\n ETH_TO_SOL_AUTH = 'ETH_TO_SOL_AUTH',\n CHAIN_SELECTION = 'CHAIN_SELECTION',\n AMOUNT_INPUT = 'AMOUNT_INPUT',\n DEPOSIT_PROGRESS = 'DEPOSIT_PROGRESS',\n DEPOSIT_SUCCESS = 'DEPOSIT_SUCCESS',\n AUTH_LOADING = 'AUTH_LOADING',\n FINAL_SUCCESS = 'FINAL_SUCCESS',\n ERROR = 'ERROR',\n}\n\n/**\n * Interface representing the flow context, containing all data necessary\n * for the wallet connection flow\n */\nexport interface FlowContext {\n walletType: 'solana' | 'ethereum' | null;\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n selectedChain: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n lastInterruption: {\n timestamp: number;\n state: FlowState;\n context: Partial<FlowContext>;\n } | null;\n}\n\n/**\n * Interface for state transitions in the flow\n */\nexport interface StateTransition {\n from: FlowState | FlowState[];\n to: FlowState;\n condition?: (context: FlowContext) => boolean;\n}\n\n/**\n * Initial flow context with default values\n */\nexport const initialFlowContext: FlowContext = {\n walletType: null,\n hasNordAccount: false,\n hasActiveSession: false,\n selectedChain: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n lastInterruption: null,\n};\n\nexport interface TableValues {\n amount?: { text: string; visible: boolean; typing: boolean };\n tx: { text: string; visible: boolean; typing: boolean };\n from: { text: string; visible: boolean; typing: boolean };\n to: { text: string; visible: boolean; typing: boolean };\n network: { text: string; visible: boolean; typing: boolean };\n status: { text: string; visible: boolean; typing: boolean };\n}\n\nexport interface WaitingMessageState {\n title: string;\n subtitle: string;\n visible: boolean;\n isTyping: boolean;\n}\n\n/**\n * Interface for a blockchain network\n */\nexport interface Chain {\n id: string;\n name: string;\n logo: string | React.ReactNode;\n disabled?: boolean;\n network?: string;\n description?: string;\n}\n\nexport interface App {\n name: string;\n color: string;\n progress: number;\n}\n\nexport type ButtonKey = 'deposit' | 'continue' | 'openApp';\n\nexport interface ButtonState {\n text: string;\n isTyping: boolean;\n showCursor: boolean;\n}\n\nexport type ButtonStates = Record<ButtonKey, ButtonState>;\n"]}
@@ -107,3 +107,4 @@ export var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
107
107
  return fallbackUrl || '';
108
108
  }
109
109
  };
110
+ //# sourceMappingURL=imageUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageUtils.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/utils/imageUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,MAAM,CAAC,IAAM,YAAY,GAAG,UAAO,GAAW;;QAC5C,IAAI,CAAC,GAAG;YAAE,sBAAO,KAAK,EAAC;QAEvB,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO;gBACzB,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,GAAG,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC;gBACjC,GAAG,CAAC,OAAO,GAAG,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC;gBACnC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YAChB,CAAC,CAAC,EAAC;;KACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAC7B,OAAwB,EACxB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yEAAyE,CAAC;QAE5E,6CAA6C;QAC7C,IAAM,UAAU,GAA2B;YACzC,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,uBAAuB;YAC9B,4BAA4B;SAC7B,CAAC;QAEF,IAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAG,OAAO,cAAI,UAAU,CAAC,UAAU,CAAC,CAAE,CAAC;QAChD,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAC7B,WAAmB,EACnB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yFAAyF,CAAC;QAE5F,8DAA8D;QAC9D,IAAM,cAAc,GAA2B;YAC7C,IAAI,EAAE,4CAA4C;YAClD,IAAI,EAAE,4CAA4C;YAClD,GAAG,EAAE,4CAA4C;YACjD,4BAA4B;SAC7B,CAAC;QAEF,IAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC9C,OAAO,UAAG,OAAO,cAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,cAAW,CAAC;QAC5E,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC","sourcesContent":["/**\n * Checks if an image URL is valid and accessible\n * @param url The image URL to check\n * @returns A promise that resolves to true if the image is valid, false otherwise\n */\nexport const isImageValid = async (url: string): Promise<boolean> => {\n if (!url) return false;\n\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => resolve(true);\n img.onerror = () => resolve(false);\n img.src = url;\n });\n};\n\n/**\n * Gets chain icon URL with fallback\n * @param chainId The chain ID\n * @param fallbackUrl Optional fallback URL\n * @returns The chain icon URL or fallback\n */\nexport const getChainIconUrl = (\n chainId: string | number,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains';\n\n // Map of chain IDs to their respective paths\n const chainPaths: Record<string, string> = {\n '1': 'ethereum/info/logo.png',\n '56': 'smartchain/info/logo.png',\n '137': 'polygon/info/logo.png',\n // Add more chains as needed\n };\n\n const chainIdStr = chainId.toString();\n if (chainPaths[chainIdStr]) {\n return `${baseUrl}/${chainPaths[chainIdStr]}`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting chain icon URL:', error);\n return fallbackUrl || '';\n }\n};\n\n/**\n * Gets token icon URL with fallback\n * @param tokenSymbol The token symbol (e.g., 'ETH', 'USDC')\n * @param chainId Optional chain ID for chain-specific tokens\n * @param fallbackUrl Optional fallback URL\n * @returns The token icon URL or fallback\n */\nexport const getTokenIconUrl = (\n tokenSymbol: string,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets';\n\n // Map of token symbols to their respective contract addresses\n const tokenAddresses: Record<string, string> = {\n USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n DAI: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n // Add more tokens as needed\n };\n\n if (tokenAddresses[tokenSymbol.toUpperCase()]) {\n return `${baseUrl}/${tokenAddresses[tokenSymbol.toUpperCase()]}/logo.png`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting token icon URL:', error);\n return fallbackUrl || '';\n }\n};\n"]}
@@ -1,3 +1,4 @@
1
1
  export * from './imageUtils';
2
2
  export * from './persistence';
3
3
  export * from './nordUtils';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC","sourcesContent":["export * from './imageUtils';\nexport * from './persistence';\nexport * from './nordUtils';\n"]}
@@ -61,3 +61,4 @@ export function shortenAddress(address, startChars, endChars) {
61
61
  return address;
62
62
  return "".concat(address.substring(0, startChars), "...").concat(address.substring(address.length - endChars));
63
63
  }
64
+ //# sourceMappingURL=nordUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nordUtils.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/utils/nordUtils.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAO;IAC3C,OAAO,EAAE,CAAC,EAAE;QACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,OAAO,IAAK,OAAA,KAAK,GAAG,OAAO,CAAC,OAAO,EAAvB,CAAuB,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAuB,EACvB,QAAoB;IAApB,yBAAA,EAAA,YAAoB;IAEpB,IAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,UAAsB,EACtB,QAAoB;IADpB,2BAAA,EAAA,cAAsB;IACtB,yBAAA,EAAA,YAAoB;IAEpB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE5D,OAAO,UAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAE,CAAC;AACjG,CAAC","sourcesContent":["import { NordUser } from '@n1xyz/nord-ts';\n\n/**\n * Format a Nord transaction for display\n *\n * @param tx Transaction object\n * @returns Formatted transaction ID\n */\nexport function formatNordTransaction(tx: any): string {\n return tx.id\n ? tx.id.substring(0, 8) + '...' + tx.id.substring(tx.id.length - 8)\n : 'Unknown';\n}\n\n/**\n * Get token balance for a specific token\n *\n * @param nordUser NordUser instance\n * @param tokenSymbol Token symbol\n * @returns Token balance\n */\nexport function getTokenBalance(\n nordUser: NordUser | null,\n tokenSymbol: string\n): number {\n if (!nordUser || !nordUser.balances || !nordUser.balances[tokenSymbol]) {\n return 0;\n }\n\n const tokenBalances = nordUser.balances[tokenSymbol];\n return tokenBalances.reduce((total, balance) => total + balance.balance, 0);\n}\n\n/**\n * Check if Nord is properly configured\n *\n * @param nord Nord instance\n * @returns Whether Nord is properly configured\n */\nexport function isNordConfigured(nord: any): boolean {\n return !!nord && !!nord.webServerUrl && !!nord.solanaProgramId;\n}\n\n/**\n * Format an amount with the appropriate number of decimal places\n *\n * @param amount Amount to format\n * @param decimals Number of decimal places\n * @returns Formatted amount\n */\nexport function formatAmount(\n amount: number | string,\n decimals: number = 2\n): string {\n const numAmount = typeof amount === 'string' ? parseFloat(amount) : amount;\n return numAmount.toFixed(decimals);\n}\n\n/**\n * Shorten an address for display\n *\n * @param address Address to shorten\n * @param startChars Number of characters to show at the start\n * @param endChars Number of characters to show at the end\n * @returns Shortened address\n */\nexport function shortenAddress(\n address: string,\n startChars: number = 6,\n endChars: number = 4\n): string {\n if (!address) return '';\n if (address.length <= startChars + endChars) return address;\n\n return `${address.substring(0, startChars)}...${address.substring(address.length - endChars)}`;\n}\n"]}
@@ -81,3 +81,4 @@ export var clearStoredState = function () {
81
81
  export var hasRecoverableState = function () {
82
82
  return loadStateFromLocalStorage() !== null;
83
83
  };
84
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/utils/persistence.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEzE;;;;GAIG;AACH,MAAM,CAAC,IAAM,uBAAuB,GAAG,UACrC,KAAgB,EAChB,OAAoB;IAEpB,IAAI,CAAC;QACH,IAAM,aAAa,GAAG;YACpB,KAAK,OAAA;YACL,OAAO,wBACF,OAAO;gBACV,6EAA6E;gBAC7E,KAAK,EAAE,OAAO,CAAC,KAAK;oBAClB,CAAC,CAAC;wBACE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;wBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;qBACzB;oBACH,CAAC,CAAC,IAAI,GACT;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAM,yBAAyB,GAAG;IAIvC,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClC,IAAA,KAAK,GAAyB,UAAU,MAAnC,EAAE,OAAO,GAAgB,UAAU,QAA1B,EAAE,SAAS,GAAK,UAAU,UAAf,CAAgB;QAEjD,2BAA2B;QAC3B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAAC;YAC/C,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,KAAK,OAAA;YACL,OAAO,wBACF,kBAAkB,GAClB,OAAO,CACX;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC9B,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAM,mBAAmB,GAAG;IACjC,OAAO,yBAAyB,EAAE,KAAK,IAAI,CAAC;AAC9C,CAAC,CAAC","sourcesContent":["import { FlowContext, FlowState, initialFlowContext } from '../types';\nimport { FLOW_STATE_STORAGE_KEY, STATE_EXPIRY_TIME } from '../constants';\n\n/**\n * Saves the current flow state and context to localStorage\n * @param state Current flow state\n * @param context Current flow context\n */\nexport const saveStateToLocalStorage = (\n state: FlowState,\n context: FlowContext\n): void => {\n try {\n const persistedData = {\n state,\n context: {\n ...context,\n // Filter out any sensitive data or error objects that shouldn't be persisted\n error: context.error\n ? {\n message: context.error.message,\n name: context.error.name,\n }\n : null,\n },\n timestamp: Date.now(),\n };\n\n localStorage.setItem(FLOW_STATE_STORAGE_KEY, JSON.stringify(persistedData));\n } catch (error) {\n console.error('Failed to save flow state:', error);\n }\n};\n\n/**\n * Loads the flow state and context from localStorage if available and not expired\n * @returns The loaded state and context, or null if not available or expired\n */\nexport const loadStateFromLocalStorage = (): {\n state: FlowState;\n context: FlowContext;\n} | null => {\n try {\n const storedData = localStorage.getItem(FLOW_STATE_STORAGE_KEY);\n\n if (!storedData) {\n return null;\n }\n\n const parsedData = JSON.parse(storedData);\n const { state, context, timestamp } = parsedData;\n\n // Check if data is expired\n if (Date.now() - timestamp > STATE_EXPIRY_TIME) {\n localStorage.removeItem(FLOW_STATE_STORAGE_KEY);\n return null;\n }\n\n return {\n state,\n context: {\n ...initialFlowContext,\n ...context,\n },\n };\n } catch (error) {\n console.error('Failed to load flow state:', error);\n return null;\n }\n};\n\n/**\n * Clears the stored flow state from localStorage\n */\nexport const clearStoredState = (): void => {\n try {\n localStorage.removeItem(FLOW_STATE_STORAGE_KEY);\n } catch (error) {\n console.error('Failed to clear flow state:', error);\n }\n};\n\n/**\n * Checks if there is a stored state that can be recovered\n * @returns True if there is a recoverable state, false otherwise\n */\nexport const hasRecoverableState = (): boolean => {\n return loadStateFromLocalStorage() !== null;\n};\n"]}
@@ -76,6 +76,7 @@ export function N1Sidebar(_) {
76
76
  var handleClose = function () {
77
77
  setClosing(true);
78
78
  setStartClosingLogin(true);
79
+ window.location.reload();
79
80
  };
80
81
  var disconnect = function () {
81
82
  dynamicHandleLogOut();
@@ -164,10 +165,10 @@ export function N1Sidebar(_) {
164
165
  }
165
166
  });
166
167
  }); };
167
- return (_jsxs("div", { className: "fixed inset-0 bg-white/45 dark:bg-black/45 h-screen w-screen duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] z-[9999] flex items-stretch justify-end backdrop-blur-sm ".concat(!showSidebar ? 'hidden pointer-events-none' : '', " ").concat(closing ? 'opacity-0' : 'opacity-100'), children: [showSidebar && (_jsx("div", { className: "w-screen h-screen fixed top-0 left-0", onClick: function () { return setClosing(true); } })), showSidebar && (_jsxs("div", { className: "relative h-screen bg-gray-50 dark:bg-gray-950 shadow-xl border-l border-gray-200 dark:border-gray-800 duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] overflow-hidden ".concat(closing ? 'translate-x-full' : 'translate-x-0', " ").concat(isFullscreen ? 'w-screen' : 'w-[420px]'), children: [_jsxs("div", { className: "flex justify-between items-center px-6 py-4 border-b border-gray-200 dark:border-gray-800", children: [_jsxs("div", { className: "flex items-center gap-4", children: [currentView !== 'balances' && (_jsx("button", { onClick: function () {
168
+ return (_jsxs("div", { className: "fixed inset-0 bg-white/45 dark:bg-black/45 h-screen w-screen duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] z-[9999] flex items-stretch justify-end backdrop-blur-sm ".concat(!showSidebar ? 'hidden pointer-events-none' : '', " ").concat(closing ? 'opacity-0' : 'opacity-100'), children: [showSidebar && (_jsx("div", { className: "w-screen h-screen fixed top-0 left-0", onClick: function () { return setClosing(true); } })), showSidebar && (_jsxs("div", { className: "relative h-screen bg-n1-gray-50 dark:bg-n1-gray-950 shadow-xl border-l border-n1-gray-200 dark:border-n1-gray-800 duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] overflow-hidden ".concat(closing ? 'translate-x-full' : 'translate-x-0', " ").concat(isFullscreen ? 'w-screen' : 'w-[420px]'), children: [_jsxs("div", { className: "flex justify-between items-center px-6 py-4 border-b border-n1-gray-200 dark:border-n1-gray-800", children: [_jsxs("div", { className: "flex items-center gap-4", children: [currentView !== 'balances' && (_jsx("button", { onClick: function () {
168
169
  setCurrentView('balances');
169
170
  clearSendingForm();
170
- }, className: "text-gray-500 hover:text-red-500 dark:text-gray-400 dark:hover:text-red-500 transition-colors duration-200", children: _jsx(ArrowLeft, { size: 20 }) })), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(BlockiesSvg, { address: address, className: "w-10 h-10 rounded-full" }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "font-medium text-gray-900 dark:text-gray-50", children: username }), _jsx("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: shortenAddress(address) })] })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("button", { onClick: toggleFullscreen, className: "text-gray-400 hover:text-red-500 transition-colors duration-200 h-6 flex items-center", "aria-label": isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen', children: isFullscreen ? (_jsx(Minimize2, { size: 20 })) : (_jsx(Maximize2, { size: 20 })) }), _jsx("button", { onClick: handleClose, className: "text-gray-400 hover:text-red-500 transition-colors duration-200 h-6 flex items-center", children: _jsx(X, { size: 20 }) })] })] }), _jsx("div", { className: "p-6 overflow-y-auto h-[calc(100vh-144px)]", children: _jsx("div", { className: "space-y-4", children: sessionMode === N1SessionMode.Nord ? (_jsx(NordTradingView, {})) : (_jsxs(_Fragment, { children: [currentView === 'balances' && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-gray-50", children: "Balances" }), _jsxs("div", { className: "flex space-x-2", children: [_jsxs("button", { onClick: function () {
171
+ }, className: "text-n1-gray-500 hover:text-red-500 dark:text-n1-gray-400 dark:hover:text-red-500 transition-colors duration-200", children: _jsx(ArrowLeft, { size: 20 }) })), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(BlockiesSvg, { address: address, className: "w-10 h-10 rounded-full" }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "font-medium text-n1-gray-900 dark:text-n1-gray-50", children: username }), _jsx("span", { className: "text-sm text-n1-gray-500 dark:text-n1-gray-400", children: shortenAddress(address) })] })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("button", { onClick: toggleFullscreen, className: "text-n1-gray-400 hover:text-red-500 transition-colors duration-200 h-6 flex items-center", "aria-label": isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen', children: isFullscreen ? (_jsx(Minimize2, { size: 20 })) : (_jsx(Maximize2, { size: 20 })) }), _jsx("button", { onClick: handleClose, className: "text-n1-gray-400 hover:text-red-500 transition-colors duration-200 h-6 flex items-center", children: _jsx(X, { size: 20 }) })] })] }), _jsx("div", { className: "p-6 overflow-y-auto h-[calc(100vh-144px)]", children: _jsx("div", { className: "space-y-4", children: sessionMode === N1SessionMode.Nord ? (_jsx(NordTradingView, {})) : (_jsxs(_Fragment, { children: [currentView === 'balances' && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("h2", { className: "text-xl font-semibold text-n1-gray-900 dark:text-n1-gray-50", children: "Balances" }), _jsxs("div", { className: "flex space-x-2", children: [_jsxs("button", { onClick: function () {
171
172
  setReceiving(true);
172
173
  setSending(false);
173
174
  setCurrentView('receive');
@@ -175,23 +176,24 @@ export function N1Sidebar(_) {
175
176
  setSending(true);
176
177
  setReceiving(false);
177
178
  setCurrentView('send');
178
- }, className: "px-3 py-1.5 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200 flex items-center", children: [_jsx(ArrowUp, { size: 16, className: "mr-1.5" }), "Send"] })] })] }), balances && balances.length > 0 ? (_jsx("div", { className: "space-y-3", children: balances.map(function (balance, index) { return (_jsxs("div", { className: "p-4 bg-white dark:bg-gray-900 rounded-xl shadow-sm border border-gray-200 dark:border-gray-800 flex justify-between items-center", children: [_jsxs("div", { children: [_jsx("div", { className: "font-medium text-gray-900 dark:text-gray-50", children: balance.appType }), _jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: balance.appId })] }), _jsxs("div", { className: "text-right", children: [_jsx("div", { className: "font-medium text-gray-900 dark:text-gray-50", children: balance.balance.toString() }), _jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Available" })] })] }, index)); }) })) : (_jsx("div", { className: "p-4 bg-gray-50 dark:bg-gray-800 rounded-xl text-gray-500 dark:text-gray-400 text-center", children: "No balances found" }))] })), currentView === 'send' && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center", children: [_jsx("button", { onClick: function () {
179
+ }, className: "px-3 py-1.5 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200 flex items-center", children: [_jsx(ArrowUp, { size: 16, className: "mr-1.5" }), "Send"] })] })] }), balances && balances.length > 0 ? (_jsx("div", { className: "space-y-3", children: balances.map(function (balance, index) { return (_jsxs("div", { className: "p-4 bg-white dark:bg-n1-gray-900 rounded-xl shadow-sm border border-n1-gray-200 dark:border-n1-gray-800 flex justify-between items-center", children: [_jsxs("div", { children: [_jsx("div", { className: "font-medium text-n1-gray-900 dark:text-n1-gray-50", children: balance.appType }), _jsx("div", { className: "text-sm text-n1-gray-500 dark:text-n1-gray-400", children: balance.appId })] }), _jsxs("div", { className: "text-right", children: [_jsx("div", { className: "font-medium text-n1-gray-900 dark:text-n1-gray-50", children: balance.balance.toString() }), _jsx("div", { className: "text-sm text-n1-gray-500 dark:text-n1-gray-400", children: "Available" })] })] }, index)); }) })) : (_jsx("div", { className: "p-4 bg-n1-gray-50 dark:bg-n1-gray-800 rounded-xl text-n1-gray-500 dark:text-n1-gray-400 text-center", children: "No balances found" }))] })), currentView === 'send' && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center", children: [_jsx("button", { onClick: function () {
179
180
  setCurrentView('balances');
180
181
  clearSendingForm();
181
- }, className: "mr-3 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200", children: _jsx(ArrowLeft, { size: 20 }) }), _jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-gray-50", children: "Send Tokens" })] }), error && (_jsx("div", { className: "p-4 bg-red-50 dark:bg-red-900/20 rounded-xl text-red-600 dark:text-red-400 text-sm", children: error })), success && (_jsx("div", { className: "p-4 bg-green-50 dark:bg-green-900/20 rounded-xl text-green-600 dark:text-green-400 text-sm", children: success })), _jsxs("form", { onSubmit: handleSend, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Token" }), _jsxs("select", { value: tokenToSend, onChange: function (e) { return setTokenToSend(e.target.value); }, className: "w-full px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-gray-800", required: true, children: [_jsx("option", { value: "", children: "Select Token" }), balances &&
182
- balances.map(function (balance, index) { return (_jsxs("option", { value: balance.mint, children: [balance.appType, " (", balance.balance.toString(), ")"] }, index)); })] })] }), tokenToSend && (_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "App ID" }), _jsxs("select", { value: appIdAction, onChange: function (e) { return setAppIdAction(e.target.value); }, className: "w-full px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-gray-800", required: true, children: [_jsx("option", { value: "", children: "Select App ID" }), balances &&
182
+ }, className: "mr-3 text-n1-gray-500 hover:text-n1-gray-700 dark:text-n1-gray-400 dark:hover:text-n1-gray-200", children: _jsx(ArrowLeft, { size: 20 }) }), _jsx("h2", { className: "text-xl font-semibold text-n1-gray-900 dark:text-n1-gray-50", children: "Send Tokens" })] }), error && (_jsx("div", { className: "p-4 bg-red-50 dark:bg-red-900/20 rounded-xl text-red-600 dark:text-red-400 text-sm", children: error })), success && (_jsx("div", { className: "p-4 bg-green-50 dark:bg-green-900/20 rounded-xl text-green-600 dark:text-green-400 text-sm", children: success })), _jsxs("form", { onSubmit: handleSend, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1", children: "Token" }), _jsxs("select", { value: tokenToSend, onChange: function (e) { return setTokenToSend(e.target.value); }, className: "w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800", required: true, children: [_jsx("option", { value: "", children: "Select Token" }), balances &&
183
+ balances.map(function (balance, index) { return (_jsxs("option", { value: balance.mint, children: [balance.appType, " (", balance.balance.toString(), ")"] }, index)); })] })] }), tokenToSend && (_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1", children: "App ID" }), _jsxs("select", { value: appIdAction, onChange: function (e) { return setAppIdAction(e.target.value); }, className: "w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800", required: true, children: [_jsx("option", { value: "", children: "Select App ID" }), balances &&
183
184
  balances
184
185
  .filter(function (balance) {
185
186
  return balance.mint === tokenToSend;
186
187
  })
187
- .map(function (balance, index) { return (_jsx("option", { value: balance.appId, children: balance.appId }, index)); })] })] })), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Amount" }), _jsx("input", { type: "text", value: amount, onChange: function (e) { return setAmount(e.target.value); }, className: "w-full px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-gray-800", placeholder: "Enter amount", required: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Recipient Address" }), _jsx("input", { type: "text", value: recipientAddress, onChange: function (e) {
188
+ .map(function (balance, index) { return (_jsx("option", { value: balance.appId, children: balance.appId }, index)); })] })] })), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1", children: "Amount" }), _jsx("input", { type: "text", value: amount, onChange: function (e) { return setAmount(e.target.value); }, className: "w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800", placeholder: "Enter amount", required: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1", children: "Recipient Address" }), _jsx("input", { type: "text", value: recipientAddress, onChange: function (e) {
188
189
  return setRecipientAddress(e.target.value);
189
- }, className: "w-full px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-gray-800", placeholder: "Enter recipient address", required: true })] }), _jsx("button", { type: "submit", disabled: activeSending, className: "w-full py-3 rounded-xl font-medium transition-colors duration-200 ".concat(activeSending
190
- ? 'bg-gray-300 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed'
190
+ }, className: "w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800", placeholder: "Enter recipient address", required: true })] }), _jsx("button", { type: "submit", disabled: activeSending, className: "w-full py-3 rounded-xl font-medium transition-colors duration-200 ".concat(activeSending
191
+ ? 'bg-n1-gray-300 dark:bg-n1-gray-700 text-n1-gray-500 dark:text-n1-gray-400 cursor-not-allowed'
191
192
  : 'bg-blue-600 hover:bg-blue-700 text-white'), children: activeSending ? 'Sending...' : 'Send Tokens' })] })] })), currentView === 'receive' && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center", children: [_jsx("button", { onClick: function () {
192
193
  setCurrentView('balances');
193
194
  setReceiving(false);
194
- }, className: "mr-3 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200", children: _jsx(ArrowLeft, { size: 20 }) }), _jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-gray-50", children: "Receive Tokens" })] }), _jsxs("div", { className: "p-4 bg-white dark:bg-gray-900 rounded-xl shadow-sm border border-gray-200 dark:border-gray-800 flex flex-col items-center", children: [_jsx("div", { className: "mb-4 bg-white p-2 rounded-lg", children: _jsx(QRCodeLoader, { address: address }) }), _jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400 mb-2", children: "Your wallet address:" }), _jsx("div", { className: "font-mono text-sm text-gray-900 dark:text-gray-100 mb-4 break-all text-center", children: address }), _jsx("button", { onClick: function () {
195
+ }, className: "mr-3 text-n1-gray-500 hover:text-n1-gray-700 dark:text-n1-gray-400 dark:hover:text-n1-gray-200", children: _jsx(ArrowLeft, { size: 20 }) }), _jsx("h2", { className: "text-xl font-semibold text-n1-gray-900 dark:text-n1-gray-50", children: "Receive Tokens" })] }), _jsxs("div", { className: "p-4 bg-white dark:bg-n1-gray-900 rounded-xl shadow-sm border border-n1-gray-200 dark:border-n1-gray-800 flex flex-col items-center", children: [_jsx("div", { className: "mb-4 bg-white p-2 rounded-lg", children: _jsx(QRCodeLoader, { address: address }) }), _jsx("div", { className: "text-sm text-n1-gray-500 dark:text-n1-gray-400 mb-2", children: "Your wallet address:" }), _jsx("div", { className: "font-mono text-sm text-n1-gray-900 dark:text-n1-gray-100 mb-4 break-all text-center", children: address }), _jsx("button", { onClick: function () {
195
196
  navigator.clipboard.writeText(address);
196
- }, className: "px-4 py-2 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200", children: "Copy Address" })] })] }))] })) }) }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 p-6 border-t border-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-950", children: _jsxs("button", { onClick: disconnect, className: "group relative w-full px-6 py-3 rounded-sm bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-800 font-medium transition-all duration-300 ease-in-out overflow-hidden", children: [_jsx("div", { className: "relative z-10 flex items-center justify-center", children: _jsx("span", { className: "text-gray-900 dark:text-gray-100 group-hover:text-white dark:group-hover:text-white transition-colors duration-300 ease-in-out", children: "Disconnect" }) }), _jsx("div", { className: "absolute inset-0 bg-red-700 transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out origin-left" })] }) })] }))] }));
197
+ }, className: "px-4 py-2 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200", children: "Copy Address" })] })] }))] })) }) }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 p-6 border-t border-n1-gray-200 dark:border-n1-gray-800 bg-n1-gray-50 dark:bg-n1-gray-950", children: _jsxs("button", { onClick: disconnect, className: "group relative w-full px-6 py-3 rounded-sm bg-white dark:bg-n1-gray-900 border border-n1-gray-200 dark:border-n1-gray-800 font-medium transition-all duration-300 ease-in-out overflow-hidden", children: [_jsx("div", { className: "relative z-10 flex items-center justify-center", children: _jsx("span", { className: "text-n1-gray-900 dark:text-n1-gray-100 group-hover:text-white dark:group-hover:text-white transition-colors duration-300 ease-in-out", children: "Disconnect" }) }), _jsx("div", { className: "absolute inset-0 bg-red-700 transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out origin-left" })] }) })] }))] }));
197
198
  }
199
+ //# sourceMappingURL=N1Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N1Sidebar.js","sourceRoot":"","sources":["../../../src/Modal/Sidebar/N1Sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["import BlockiesSvg from 'blockies-react-svg';\nimport QRCodeLoader from '../../components/QRCodeLoader';\nimport {\n ArrowDown,\n ArrowUp,\n X,\n ArrowLeft,\n Maximize2,\n Minimize2,\n} from 'lucide-react';\nimport { useEffect, useState } from 'react';\nimport { Balance, N1ModalViewMode, N1SessionMode } from '../../Provider/types';\nimport { shortenAddress } from '../../utils/shortenString';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../Provider/hooks';\nimport { importNTSSDK } from '../../utils/dynamicImports';\nimport { getUserBalances } from '../../Logic/utils';\nimport { logger } from '../../utils/logger';\nimport NordTradingView from './NordTradingView/NordTradingView';\n\nexport function N1Sidebar(_: any) {\n // State management\n const [closing, setClosing] = useState(false);\n const [sending, setSending] = useState(false);\n const [receiving, setReceiving] = useState(false);\n const [success, setSuccess] = useState('');\n const [activeSending, setActiveSending] = useState(false);\n const [tokenToSend, setTokenToSend] = useState('');\n const [appIdAction, setAppIdAction] = useState('');\n const [amount, setAmount] = useState('');\n const [recipientAddress, setRecipientAddress] = useState('');\n const [error, setError] = useState('');\n const [isFullscreen, setIsFullscreen] = useState(false);\n const [currentView, setCurrentView] = useState<\n 'balances' | 'send' | 'receive'\n >('balances');\n\n // Context hooks\n const {\n username,\n isConnected,\n address,\n balances,\n walletPubKey,\n sessionPubKey,\n signMessageWithSessionKey,\n sessionMode,\n } = useN1WalletContext();\n\n const {\n setShowSidebar,\n showSidebar,\n setStartClosingLogin,\n dynamicHandleLogOut,\n setBalances,\n setViewMode,\n setIsConnected,\n } = useN1WalletInternalContext();\n\n // Utility functions\n const clearSendingForm = () => {\n setAmount('');\n setTokenToSend('');\n setRecipientAddress('');\n setAppIdAction('');\n setSuccess('');\n setError('');\n };\n\n const handleClose = () => {\n setClosing(true);\n setStartClosingLogin(true);\n window.location.reload();\n };\n\n const disconnect = () => {\n dynamicHandleLogOut();\n setViewMode(N1ModalViewMode.Connect);\n setIsConnected(false);\n handleClose();\n };\n\n const toggleFullscreen = () => {\n setIsFullscreen(!isFullscreen);\n };\n\n // Effects\n useEffect(() => {\n if (showSidebar) {\n setClosing(false);\n }\n }, [showSidebar]);\n\n useEffect(() => {\n let timeout: NodeJS.Timeout;\n if (closing) {\n timeout = setTimeout(() => {\n setShowSidebar(false);\n setClosing(false);\n }, 700);\n }\n return () => clearTimeout(timeout);\n }, [closing, setShowSidebar]);\n\n useEffect(() => {\n if (!isConnected && showSidebar) {\n setShowSidebar(false);\n }\n }, [isConnected, showSidebar]);\n\n // Send tokens handler\n const handleSend = async (e: React.FormEvent) => {\n e.preventDefault();\n setError('');\n\n if (!sessionPubKey || !signMessageWithSessionKey || !walletPubKey) return;\n\n if (!tokenToSend || !amount || !recipientAddress) {\n setError('All fields are required.');\n setTimeout(() => setError(''), 2000);\n return;\n }\n\n if (isNaN(Number(amount)) || Number(amount) <= 0) {\n setError('Amount must be a positive number.');\n setTimeout(() => setError(''), 2000);\n return;\n }\n\n setActiveSending(true);\n\n try {\n const sdk = await importNTSSDK();\n const nts = new sdk.NTSInterface(process.env.NTS_URL!);\n const idl = await nts.getAppIdl(appIdAction);\n const appClient = new sdk.NAppClient(\n process.env.NTS_URL!,\n appIdAction,\n idl,\n walletPubKey,\n sessionPubKey,\n signMessageWithSessionKey\n );\n\n await (appClient as any)['transfer'](\n amount,\n tokenToSend,\n recipientAddress\n );\n\n const balances = await getUserBalances(address);\n setBalances(balances);\n\n setActiveSending(false);\n setSuccess('Tokens sent successfully!');\n setTimeout(() => {\n setSending(false);\n clearSendingForm();\n }, 2000);\n } catch (error) {\n logger.error('Error sending tokens:', error);\n setError('Error sending tokens. Please try again.');\n setActiveSending(false);\n setTimeout(() => setError(''), 2000);\n }\n };\n\n return (\n <div\n className={`fixed inset-0 bg-white/45 dark:bg-black/45 h-screen w-screen duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] z-[9999] flex items-stretch justify-end backdrop-blur-sm ${\n !showSidebar ? 'hidden pointer-events-none' : ''\n } ${closing ? 'opacity-0' : 'opacity-100'}`}\n >\n {showSidebar && (\n <div\n className=\"w-screen h-screen fixed top-0 left-0\"\n onClick={() => setClosing(true)}\n />\n )}\n {showSidebar && (\n <div\n className={`relative h-screen bg-n1-gray-50 dark:bg-n1-gray-950 shadow-xl border-l border-n1-gray-200 dark:border-n1-gray-800 duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] overflow-hidden ${\n closing ? 'translate-x-full' : 'translate-x-0'\n } ${isFullscreen ? 'w-screen' : 'w-[420px]'}`}\n >\n {/* Header */}\n <div className=\"flex justify-between items-center px-6 py-4 border-b border-n1-gray-200 dark:border-n1-gray-800\">\n <div className=\"flex items-center gap-4\">\n {currentView !== 'balances' && (\n <button\n onClick={() => {\n setCurrentView('balances');\n clearSendingForm();\n }}\n className=\"text-n1-gray-500 hover:text-red-500 dark:text-n1-gray-400 dark:hover:text-red-500 transition-colors duration-200\"\n >\n <ArrowLeft size={20} />\n </button>\n )}\n <div className=\"flex items-center gap-3\">\n <BlockiesSvg\n address={address}\n className=\"w-10 h-10 rounded-full\"\n />\n <div className=\"flex flex-col\">\n <span className=\"font-medium text-n1-gray-900 dark:text-n1-gray-50\">\n {username}\n </span>\n <span className=\"text-sm text-n1-gray-500 dark:text-n1-gray-400\">\n {shortenAddress(address)}\n </span>\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-3\">\n <button\n onClick={toggleFullscreen}\n className=\"text-n1-gray-400 hover:text-red-500 transition-colors duration-200 h-6 flex items-center\"\n aria-label={\n isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'\n }\n >\n {isFullscreen ? (\n <Minimize2 size={20} />\n ) : (\n <Maximize2 size={20} />\n )}\n </button>\n <button\n onClick={handleClose}\n className=\"text-n1-gray-400 hover:text-red-500 transition-colors duration-200 h-6 flex items-center\"\n >\n <X size={20} />\n </button>\n </div>\n </div>\n\n {/* Main Content */}\n <div className=\"p-6 overflow-y-auto h-[calc(100vh-144px)]\">\n {/* Views */}\n <div className=\"space-y-4\">\n {sessionMode === N1SessionMode.Nord ? (\n <NordTradingView />\n ) : (\n <>\n {currentView === 'balances' && (\n <div className=\"space-y-4\">\n {/* Balances View */}\n <div className=\"flex justify-between items-center\">\n <h2 className=\"text-xl font-semibold text-n1-gray-900 dark:text-n1-gray-50\">\n Balances\n </h2>\n <div className=\"flex space-x-2\">\n <button\n onClick={() => {\n setReceiving(true);\n setSending(false);\n setCurrentView('receive');\n }}\n className=\"px-3 py-1.5 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200 flex items-center\"\n >\n <ArrowDown size={16} className=\"mr-1.5\" />\n Receive\n </button>\n <button\n onClick={() => {\n setSending(true);\n setReceiving(false);\n setCurrentView('send');\n }}\n className=\"px-3 py-1.5 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200 flex items-center\"\n >\n <ArrowUp size={16} className=\"mr-1.5\" />\n Send\n </button>\n </div>\n </div>\n\n {/* Balance List */}\n {balances && balances.length > 0 ? (\n <div className=\"space-y-3\">\n {balances.map((balance: Balance, index: number) => (\n <div\n key={index}\n className=\"p-4 bg-white dark:bg-n1-gray-900 rounded-xl shadow-sm border border-n1-gray-200 dark:border-n1-gray-800 flex justify-between items-center\"\n >\n <div>\n <div className=\"font-medium text-n1-gray-900 dark:text-n1-gray-50\">\n {balance.appType}\n </div>\n <div className=\"text-sm text-n1-gray-500 dark:text-n1-gray-400\">\n {balance.appId}\n </div>\n </div>\n <div className=\"text-right\">\n <div className=\"font-medium text-n1-gray-900 dark:text-n1-gray-50\">\n {balance.balance.toString()}\n </div>\n <div className=\"text-sm text-n1-gray-500 dark:text-n1-gray-400\">\n Available\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"p-4 bg-n1-gray-50 dark:bg-n1-gray-800 rounded-xl text-n1-gray-500 dark:text-n1-gray-400 text-center\">\n No balances found\n </div>\n )}\n </div>\n )}\n\n {/* Send View */}\n {currentView === 'send' && (\n <div className=\"space-y-4\">\n <div className=\"flex items-center\">\n <button\n onClick={() => {\n setCurrentView('balances');\n clearSendingForm();\n }}\n className=\"mr-3 text-n1-gray-500 hover:text-n1-gray-700 dark:text-n1-gray-400 dark:hover:text-n1-gray-200\"\n >\n <ArrowLeft size={20} />\n </button>\n <h2 className=\"text-xl font-semibold text-n1-gray-900 dark:text-n1-gray-50\">\n Send Tokens\n </h2>\n </div>\n\n {error && (\n <div className=\"p-4 bg-red-50 dark:bg-red-900/20 rounded-xl text-red-600 dark:text-red-400 text-sm\">\n {error}\n </div>\n )}\n\n {success && (\n <div className=\"p-4 bg-green-50 dark:bg-green-900/20 rounded-xl text-green-600 dark:text-green-400 text-sm\">\n {success}\n </div>\n )}\n\n <form onSubmit={handleSend} className=\"space-y-4\">\n {/* Token Selection */}\n <div>\n <label className=\"block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1\">\n Token\n </label>\n <select\n value={tokenToSend}\n onChange={(e) => setTokenToSend(e.target.value)}\n className=\"w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800\"\n required\n >\n <option value=\"\">Select Token</option>\n {balances &&\n balances.map(\n (balance: Balance, index: number) => (\n <option key={index} value={balance.mint}>\n {balance.appType} (\n {balance.balance.toString()})\n </option>\n )\n )}\n </select>\n </div>\n\n {/* App ID Selection */}\n {tokenToSend && (\n <div>\n <label className=\"block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1\">\n App ID\n </label>\n <select\n value={appIdAction}\n onChange={(e) => setAppIdAction(e.target.value)}\n className=\"w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800\"\n required\n >\n <option value=\"\">Select App ID</option>\n {balances &&\n balances\n .filter(\n (balance: Balance) =>\n balance.mint === tokenToSend\n )\n .map((balance: Balance, index: number) => (\n <option key={index} value={balance.appId}>\n {balance.appId}\n </option>\n ))}\n </select>\n </div>\n )}\n\n {/* Amount Input */}\n <div>\n <label className=\"block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1\">\n Amount\n </label>\n <input\n type=\"text\"\n value={amount}\n onChange={(e) => setAmount(e.target.value)}\n className=\"w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800\"\n placeholder=\"Enter amount\"\n required\n />\n </div>\n\n {/* Recipient Address */}\n <div>\n <label className=\"block text-sm font-medium text-n1-gray-700 dark:text-n1-gray-300 mb-1\">\n Recipient Address\n </label>\n <input\n type=\"text\"\n value={recipientAddress}\n onChange={(e) =>\n setRecipientAddress(e.target.value)\n }\n className=\"w-full px-3 py-2 bg-n1-gray-100 dark:bg-n1-gray-800 rounded-lg text-n1-gray-900 dark:text-n1-gray-100 border border-n1-gray-200 dark:border-n1-gray-800\"\n placeholder=\"Enter recipient address\"\n required\n />\n </div>\n\n {/* Submit Button */}\n <button\n type=\"submit\"\n disabled={activeSending}\n className={`w-full py-3 rounded-xl font-medium transition-colors duration-200 ${\n activeSending\n ? 'bg-n1-gray-300 dark:bg-n1-gray-700 text-n1-gray-500 dark:text-n1-gray-400 cursor-not-allowed'\n : 'bg-blue-600 hover:bg-blue-700 text-white'\n }`}\n >\n {activeSending ? 'Sending...' : 'Send Tokens'}\n </button>\n </form>\n </div>\n )}\n\n {/* Receive View */}\n {currentView === 'receive' && (\n <div className=\"space-y-4\">\n <div className=\"flex items-center\">\n <button\n onClick={() => {\n setCurrentView('balances');\n setReceiving(false);\n }}\n className=\"mr-3 text-n1-gray-500 hover:text-n1-gray-700 dark:text-n1-gray-400 dark:hover:text-n1-gray-200\"\n >\n <ArrowLeft size={20} />\n </button>\n <h2 className=\"text-xl font-semibold text-n1-gray-900 dark:text-n1-gray-50\">\n Receive Tokens\n </h2>\n </div>\n\n <div className=\"p-4 bg-white dark:bg-n1-gray-900 rounded-xl shadow-sm border border-n1-gray-200 dark:border-n1-gray-800 flex flex-col items-center\">\n <div className=\"mb-4 bg-white p-2 rounded-lg\">\n <QRCodeLoader address={address} />\n </div>\n <div className=\"text-sm text-n1-gray-500 dark:text-n1-gray-400 mb-2\">\n Your wallet address:\n </div>\n <div className=\"font-mono text-sm text-n1-gray-900 dark:text-n1-gray-100 mb-4 break-all text-center\">\n {address}\n </div>\n <button\n onClick={() => {\n navigator.clipboard.writeText(address);\n }}\n className=\"px-4 py-2 bg-blue-100 dark:bg-blue-900/20 hover:bg-blue-200 dark:hover:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg transition-colors duration-200\"\n >\n Copy Address\n </button>\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n\n {/* Footer */}\n <div className=\"absolute bottom-0 left-0 right-0 p-6 border-t border-n1-gray-200 dark:border-n1-gray-800 bg-n1-gray-50 dark:bg-n1-gray-950\">\n <button\n onClick={disconnect}\n className=\"group relative w-full px-6 py-3 rounded-sm bg-white dark:bg-n1-gray-900 border border-n1-gray-200 dark:border-n1-gray-800 font-medium transition-all duration-300 ease-in-out overflow-hidden\"\n >\n <div className=\"relative z-10 flex items-center justify-center\">\n <span className=\"text-n1-gray-900 dark:text-n1-gray-100 group-hover:text-white dark:group-hover:text-white transition-colors duration-300 ease-in-out\">\n Disconnect\n </span>\n </div>\n <div className=\"absolute inset-0 bg-red-700 transform scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out origin-left\"></div>\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
@@ -84,3 +84,4 @@ export default function MarketOverview(_a) {
84
84
  }, [selectedMarket, nord]);
85
85
  return (_jsx("div", { className: "".concat(className), children: _jsx(MarketSelector, { selectedMarket: selectedMarket, onMarketChange: onMarketChange }) }));
86
86
  }
87
+ //# sourceMappingURL=MarketOverview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketOverview.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAQ9D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAIjB;IAJtB,iBAgDC;QA/CC,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEN,IAAA,IAAI,GAAK,kBAAkB,EAAE,KAAzB,CAA0B;IAChC,IAAA,KAAgC,QAAQ,CAAM,IAAI,CAAC,EAAlD,WAAW,QAAA,EAAE,cAAc,QAAuB,CAAC;IACpD,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IACxC,IAAA,KAAoB,QAAQ,CAAgB,IAAI,CAAC,EAAhD,KAAK,QAAA,EAAE,QAAQ,QAAiC,CAAC;IAExD,kDAAkD;IAClD,SAAS,CAAC;QACR,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI;YAAE,OAAO;QAErC,IAAM,gBAAgB,GAAG;;;;;wBACvB,UAAU,CAAC,IAAI,CAAC,CAAC;wBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;wBAGC,qBAAM,IAAI,CAAC,cAAc,EAAE,EAAA;;wBAAnC,KAAK,GAAG,SAA2B;wBACnC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CACtC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,cAAc,EAA3B,CAA2B,CACxC,CAAC;wBACF,cAAc,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;;;;wBAEtC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAG,CAAC,CAAC;wBACnD,QAAQ,CAAC,kCAAkC,CAAC,CAAC;;;wBAE7C,UAAU,CAAC,KAAK,CAAC,CAAC;;;;;aAErB,CAAC;QAEF,gBAAgB,EAAE,CAAC;QAEnB,0CAA0C;QAC1C,IAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,0BAA0B;QAEnF,OAAO,cAAM,OAAA,aAAa,CAAC,UAAU,CAAC,EAAzB,CAAyB,CAAC;IACzC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3B,OAAO,CACL,cAAK,SAAS,EAAE,UAAG,SAAS,CAAE,YAC5B,KAAC,cAAc,IACb,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useState } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport MarketSelector from '../MarketOverview/MarketSelector';\n\ninterface MarketOverviewProps {\n selectedMarket: string | null;\n onMarketChange: (market: string) => void;\n className?: string;\n}\n\nexport default function MarketOverview({\n selectedMarket,\n onMarketChange,\n className = '',\n}: MarketOverviewProps) {\n const { nord } = useN1WalletContext();\n const [marketStats, setMarketStats] = useState<any>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n // Fetch market stats when selected market changes\n useEffect(() => {\n if (!selectedMarket || !nord) return;\n\n const fetchMarketStats = async () => {\n setLoading(true);\n setError(null);\n\n try {\n const stats = await nord.getMarketStats();\n const selectedStats = stats.markets.find(\n (m: any) => m.symbol === selectedMarket\n );\n setMarketStats(selectedStats || null);\n } catch (err) {\n console.error('Error fetching market stats:', err);\n setError('Failed to load market statistics');\n } finally {\n setLoading(false);\n }\n };\n\n fetchMarketStats();\n\n // Set up polling for market stats updates\n const intervalId = setInterval(fetchMarketStats, 30000); // Update every 30 seconds\n\n return () => clearInterval(intervalId);\n }, [selectedMarket, nord]);\n\n return (\n <div className={`${className}`}>\n <MarketSelector\n selectedMarket={selectedMarket}\n onMarketChange={onMarketChange}\n />\n </div>\n );\n}\n"]}
@@ -30,13 +30,14 @@ export default function MarketSelector(_a) {
30
30
  var filteredMarkets = ((_b = nord === null || nord === void 0 ? void 0 : nord.markets) === null || _b === void 0 ? void 0 : _b.filter(function (market) {
31
31
  return market.symbol.toLowerCase().includes(searchQuery.toLowerCase());
32
32
  })) || [];
33
- return (_jsxs("div", { className: "relative w-full", ref: containerRef, children: [_jsxs("button", { ref: buttonRef, onClick: function () { return setIsOpen(!isOpen); }, className: "w-full flex items-center justify-between font-medium text-gray-900 dark:text-gray-100 transition-colors duration-200", children: [_jsx("span", { className: "truncate", children: selectedMarket || 'Select Market' }), _jsx(ChevronDown, { size: 16, className: "ml-2 transition-transform duration-200 ".concat(isOpen ? 'rotate-180 text-main' : 'text-gray-500 dark:text-gray-400') })] }), isOpen && (_jsx("div", { ref: dropdownRef, className: "absolute right-0 top-full mt-1 bg-white dark:bg-gray-950 rounded-[2px] shadow-lg border border-gray-200 dark:border-gray-800 overflow-hidden z-50 w-[250px] max-h-[300px]", children: _jsx("div", { className: "overflow-y-auto max-h-[300px]", children: filteredMarkets.length > 0 ? (filteredMarkets.map(function (market) { return (_jsx("button", { onClick: function () {
33
+ return (_jsxs("div", { className: "relative w-full", ref: containerRef, children: [_jsxs("button", { ref: buttonRef, onClick: function () { return setIsOpen(!isOpen); }, className: "w-full flex items-center justify-between font-medium text-n1-gray-900 dark:text-n1-gray-100 transition-colors duration-200", children: [_jsx("span", { className: "truncate", children: selectedMarket || 'Select Market' }), _jsx(ChevronDown, { size: 16, className: "ml-2 transition-transform duration-200 ".concat(isOpen ? 'rotate-180 text-n1-main' : 'text-n1-gray-500 dark:text-n1-gray-400') })] }), isOpen && (_jsx("div", { ref: dropdownRef, className: "absolute right-0 top-full mt-1 bg-white dark:bg-n1-gray-950 rounded-[2px] shadow-lg border border-n1-gray-200 dark:border-n1-gray-800 overflow-hidden z-50 w-[250px] max-h-[300px]", children: _jsx("div", { className: "overflow-y-auto max-h-[300px]", children: filteredMarkets.length > 0 ? (filteredMarkets.map(function (market) { return (_jsx("button", { onClick: function () {
34
34
  onMarketChange(market.symbol);
35
35
  setIsOpen(false);
36
36
  setSearchQuery('');
37
- }, className: "w-full text-left px-4 py-2 hover:bg-gray-50 dark:hover:bg-gray-900 transition-colors duration-200 ".concat(selectedMarket === market.symbol
38
- ? 'border-l-2 border-main text-main dark:text-main bg-gray-50 dark:bg-gray-950'
39
- : 'text-gray-900 dark:text-gray-100'), children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "font-medium", children: market.symbol }), market.change24h !== undefined && (_jsxs("span", { className: "text-sm ".concat(market.change24h >= 0
37
+ }, className: "w-full text-left px-4 py-2 hover:bg-n1-gray-50 dark:hover:bg-n1-gray-900 transition-colors duration-200 ".concat(selectedMarket === market.symbol
38
+ ? 'border-l-2 border-n1-main text-n1-main dark:text-n1-main bg-n1-gray-50 dark:bg-n1-gray-950'
39
+ : 'text-n1-gray-900 dark:text-n1-gray-100'), children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "font-medium", children: market.symbol }), market.change24h !== undefined && (_jsxs("span", { className: "text-sm ".concat(market.change24h >= 0
40
40
  ? 'text-green-500'
41
- : 'text-red-500'), children: [market.change24h >= 0 ? '+' : '', market.change24h.toFixed(2), "%"] }))] }) }, market.symbol)); })) : (_jsx("div", { className: "px-4 py-3 text-sm text-gray-500 dark:text-gray-400", children: "No markets found" })) }) }))] }));
41
+ : 'text-red-500'), children: [market.change24h >= 0 ? '+' : '', market.change24h.toFixed(2), "%"] }))] }) }, market.symbol)); })) : (_jsx("div", { className: "px-4 py-3 text-sm text-n1-gray-500 dark:text-n1-gray-400", children: "No markets found" })) }) }))] }));
42
42
  }
43
+ //# sourceMappingURL=MarketSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketSelector.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport { ChevronDown, Search, X } from 'lucide-react';\n\ninterface MarketSelectorProps {\n selectedMarket: string | null;\n onMarketChange: (market: string) => void;\n}\n\nexport default function MarketSelector({\n selectedMarket,\n onMarketChange,\n}: MarketSelectorProps) {\n const { nord } = useN1WalletContext();\n const [isOpen, setIsOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node) &&\n buttonRef.current &&\n !buttonRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n // Filter markets based on search query\n const filteredMarkets =\n nord?.markets?.filter((market) =>\n market.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n ) || [];\n\n return (\n <div className=\"relative w-full\" ref={containerRef}>\n <button\n ref={buttonRef}\n onClick={() => setIsOpen(!isOpen)}\n className=\"w-full flex items-center justify-between font-medium text-n1-gray-900 dark:text-n1-gray-100 transition-colors duration-200\"\n >\n <span className=\"truncate\">{selectedMarket || 'Select Market'}</span>\n <ChevronDown\n size={16}\n className={`ml-2 transition-transform duration-200 ${isOpen ? 'rotate-180 text-n1-main' : 'text-n1-gray-500 dark:text-n1-gray-400'}`}\n />\n </button>\n\n {isOpen && (\n <div\n ref={dropdownRef}\n className=\"absolute right-0 top-full mt-1 bg-white dark:bg-n1-gray-950 rounded-[2px] shadow-lg border border-n1-gray-200 dark:border-n1-gray-800 overflow-hidden z-50 w-[250px] max-h-[300px]\"\n >\n {/* Market list */}\n <div className=\"overflow-y-auto max-h-[300px]\">\n {filteredMarkets.length > 0 ? (\n filteredMarkets.map((market) => (\n <button\n key={market.symbol}\n onClick={() => {\n onMarketChange(market.symbol);\n setIsOpen(false);\n setSearchQuery('');\n }}\n className={`w-full text-left px-4 py-2 hover:bg-n1-gray-50 dark:hover:bg-n1-gray-900 transition-colors duration-200 ${\n selectedMarket === market.symbol\n ? 'border-l-2 border-n1-main text-n1-main dark:text-n1-main bg-n1-gray-50 dark:bg-n1-gray-950'\n : 'text-n1-gray-900 dark:text-n1-gray-100'\n }`}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"font-medium\">{market.symbol}</span>\n {(market as any).change24h !== undefined && (\n <span\n className={`text-sm ${\n (market as any).change24h >= 0\n ? 'text-green-500'\n : 'text-red-500'\n }`}\n >\n {(market as any).change24h >= 0 ? '+' : ''}\n {(market as any).change24h.toFixed(2)}%\n </span>\n )}\n </div>\n </button>\n ))\n ) : (\n <div className=\"px-4 py-3 text-sm text-n1-gray-500 dark:text-n1-gray-400\">\n No markets found\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}