@n1xyz/wallet-widget 0.0.4 → 0.0.7

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 (428) hide show
  1. package/README.md +184 -19
  2. package/dist/Logic/sessionManager.d.ts +53 -0
  3. package/dist/Logic/sessionManager.js +182 -0
  4. package/dist/Logic/transactionManager.d.ts +41 -0
  5. package/dist/Logic/transactionManager.js +196 -0
  6. package/dist/Logic/utils.js +9 -12
  7. package/dist/Modal/BackButton.js +1 -1
  8. package/dist/Modal/ConnectView.js +1 -1
  9. package/dist/Modal/CreateSessionView.js +1 -1
  10. package/dist/Modal/LoadingFallback.d.ts +2 -0
  11. package/dist/Modal/LoadingFallback.js +2 -0
  12. package/dist/Modal/ModalHeader.js +1 -1
  13. package/dist/Modal/N1WalletModal.js +88 -82
  14. package/dist/Modal/NTSFlow/LoadingFallback.d.ts +2 -0
  15. package/dist/Modal/NTSFlow/LoadingFallback.js +2 -0
  16. package/dist/Modal/NTSFlow/NTSFlow.d.ts +4 -0
  17. package/dist/Modal/NTSFlow/NTSFlow.js +34 -0
  18. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +9 -0
  19. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +145 -0
  20. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +14 -0
  21. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +75 -0
  22. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +7 -0
  23. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +5 -0
  24. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +1 -0
  25. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +5 -0
  26. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +13 -0
  27. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +58 -0
  28. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +6 -0
  29. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +6 -0
  30. package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +5 -0
  31. package/dist/Modal/NTSFlow/NordFlow/components/index.js +5 -0
  32. package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +37 -0
  33. package/dist/Modal/NTSFlow/NordFlow/constants.js +223 -0
  34. package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +8 -0
  35. package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +8 -0
  36. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  37. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +43 -0
  38. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +38 -0
  39. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +166 -0
  40. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +32 -0
  41. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +163 -0
  42. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
  43. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +101 -0
  44. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +32 -0
  45. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +193 -0
  46. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +2 -0
  47. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +69 -0
  48. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  49. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +89 -0
  50. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +30 -0
  51. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +132 -0
  52. package/dist/Modal/NTSFlow/NordFlow/index.d.ts +3 -0
  53. package/dist/Modal/NTSFlow/NordFlow/index.js +3 -0
  54. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  55. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  56. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  57. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  58. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  59. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
  60. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
  61. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +20 -0
  62. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  63. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +6 -0
  64. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  65. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
  66. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
  67. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +14 -0
  68. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  69. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
  70. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  71. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
  72. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  73. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +13 -0
  74. package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +10 -0
  75. package/dist/Modal/NTSFlow/NordFlow/screens/index.js +10 -0
  76. package/dist/Modal/NTSFlow/NordFlow/types.d.ts +105 -0
  77. package/dist/Modal/NTSFlow/NordFlow/types.js +34 -0
  78. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +24 -0
  79. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +83 -0
  80. package/dist/Modal/NTSFlow/components/BackButton.d.ts +3 -0
  81. package/dist/Modal/NTSFlow/components/BackButton.js +25 -0
  82. package/dist/Modal/NTSFlow/components/ModalHeader.d.ts +1 -0
  83. package/dist/Modal/NTSFlow/components/ModalHeader.js +20 -0
  84. package/dist/Modal/NTSFlow/index.d.ts +1 -0
  85. package/dist/Modal/NTSFlow/index.js +1 -0
  86. package/dist/Modal/NTSFlow/views/ConnectView.d.ts +1 -0
  87. package/dist/Modal/NTSFlow/views/ConnectView.js +68 -0
  88. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -0
  89. package/dist/Modal/NTSFlow/views/CreateSessionView.js +245 -0
  90. package/dist/Modal/NTSFlow/views/CreateUserView.d.ts +1 -0
  91. package/dist/Modal/NTSFlow/views/CreateUserView.js +105 -0
  92. package/dist/Modal/NTSFlow/views/NoWhitelistView.d.ts +1 -0
  93. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +42 -0
  94. package/dist/Modal/NTSFlow/views/SigningView.d.ts +1 -0
  95. package/dist/Modal/NTSFlow/views/SigningView.js +5 -0
  96. package/dist/Modal/NTSFlow/views/SuccessView.d.ts +1 -0
  97. package/dist/Modal/NTSFlow/views/SuccessView.js +10 -0
  98. package/dist/Modal/NoWhitelistView.js +1 -1
  99. package/dist/Modal/NordFlow/NordFlow.d.ts +9 -0
  100. package/dist/Modal/NordFlow/NordFlow.js +267 -0
  101. package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +11 -0
  102. package/dist/Modal/NordFlow/NordFlowWrapper.js +11 -0
  103. package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +9 -0
  104. package/dist/Modal/NordFlow/WalletConnectionFlow.js +145 -0
  105. package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +14 -0
  106. package/dist/Modal/NordFlow/components/AnimatedButton.js +75 -0
  107. package/dist/Modal/NordFlow/components/ChainButton.d.ts +8 -0
  108. package/dist/Modal/NordFlow/components/ChainButton.js +21 -0
  109. package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +8 -0
  110. package/dist/Modal/NordFlow/components/EVMChainsButton.js +18 -0
  111. package/dist/Modal/NordFlow/components/ImageWithFallback.d.ts +17 -0
  112. package/dist/Modal/NordFlow/components/ImageWithFallback.js +32 -0
  113. package/dist/Modal/NordFlow/components/LoadingSquares.d.ts +1 -0
  114. package/dist/Modal/NordFlow/components/LoadingSquares.js +5 -0
  115. package/dist/Modal/NordFlow/components/MoreButton.d.ts +8 -0
  116. package/dist/Modal/NordFlow/components/MoreButton.js +18 -0
  117. package/dist/Modal/NordFlow/components/TransactionTable.d.ts +13 -0
  118. package/dist/Modal/NordFlow/components/TransactionTable.js +85 -0
  119. package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +6 -0
  120. package/dist/Modal/NordFlow/components/WaitingMessage.js +6 -0
  121. package/dist/Modal/NordFlow/components/index.d.ts +5 -0
  122. package/dist/Modal/NordFlow/components/index.js +5 -0
  123. package/dist/Modal/NordFlow/constants.d.ts +37 -0
  124. package/dist/Modal/NordFlow/constants.js +192 -0
  125. package/dist/Modal/NordFlow/hoc/index.d.ts +1 -0
  126. package/dist/Modal/NordFlow/hoc/index.js +1 -0
  127. package/dist/Modal/NordFlow/hoc/withImageFallback.d.ts +7 -0
  128. package/dist/Modal/NordFlow/hoc/withImageFallback.js +60 -0
  129. package/dist/Modal/NordFlow/hooks/index.d.ts +5 -0
  130. package/dist/Modal/NordFlow/hooks/index.js +5 -0
  131. package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  132. package/dist/Modal/NordFlow/hooks/useButtonTyping.js +43 -0
  133. package/dist/Modal/NordFlow/hooks/useDepositFlow.d.ts +52 -0
  134. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +380 -0
  135. package/dist/Modal/NordFlow/hooks/useFlowState.d.ts +32 -0
  136. package/dist/Modal/NordFlow/hooks/useFlowState.js +167 -0
  137. package/dist/Modal/NordFlow/hooks/useInterruptHandler.d.ts +24 -0
  138. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +56 -0
  139. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +10 -0
  140. package/dist/Modal/NordFlow/hooks/useNordInstance.js +319 -0
  141. package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +32 -0
  142. package/dist/Modal/NordFlow/hooks/useNordSession.js +391 -0
  143. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +14 -0
  144. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +239 -0
  145. package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +2 -0
  146. package/dist/Modal/NordFlow/hooks/useTableValues.js +69 -0
  147. package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  148. package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +89 -0
  149. package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +14 -0
  150. package/dist/Modal/NordFlow/hooks/useWalletConnect.js +221 -0
  151. package/dist/Modal/NordFlow/index copy.d.ts +1 -0
  152. package/dist/Modal/NordFlow/index copy.js +1 -0
  153. package/dist/Modal/NordFlow/index.d.ts +1 -0
  154. package/dist/Modal/NordFlow/index.js +1 -0
  155. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  156. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  157. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  158. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  159. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  160. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +63 -0
  161. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +12 -0
  162. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +186 -0
  163. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +6 -0
  164. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +45 -0
  165. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  166. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +121 -0
  167. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +6 -0
  168. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +135 -0
  169. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +5 -0
  170. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +17 -0
  171. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  172. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +153 -0
  173. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +5 -0
  174. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +36 -0
  175. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +7 -0
  176. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +67 -0
  177. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  178. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +47 -0
  179. package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  180. package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +62 -0
  181. package/dist/Modal/NordFlow/screens/index.d.ts +9 -0
  182. package/dist/Modal/NordFlow/screens/index.js +9 -0
  183. package/dist/Modal/NordFlow/types.d.ts +110 -0
  184. package/dist/Modal/NordFlow/types.js +32 -0
  185. package/dist/Modal/NordFlow/utils/imageUtils.d.ts +21 -0
  186. package/dist/Modal/NordFlow/utils/imageUtils.js +109 -0
  187. package/dist/Modal/NordFlow/utils/index.d.ts +3 -0
  188. package/dist/Modal/NordFlow/utils/index.js +3 -0
  189. package/dist/Modal/NordFlow/utils/nordUtils.d.ts +40 -0
  190. package/dist/Modal/NordFlow/utils/nordUtils.js +63 -0
  191. package/dist/Modal/NordFlow/utils/persistence.d.ts +24 -0
  192. package/dist/Modal/NordFlow/utils/persistence.js +83 -0
  193. package/dist/Modal/Sidebar/N1Sidebar.js +38 -18
  194. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +1 -0
  195. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +116 -0
  196. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +7 -0
  197. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +86 -0
  198. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +6 -0
  199. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +42 -0
  200. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +7 -0
  201. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +15 -0
  202. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +1 -0
  203. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +54 -0
  204. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts +5 -0
  205. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +208 -0
  206. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.d.ts +10 -0
  207. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +61 -0
  208. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.d.ts +7 -0
  209. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +29 -0
  210. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.d.ts +11 -0
  211. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +21 -0
  212. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.d.ts +7 -0
  213. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +19 -0
  214. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.d.ts +7 -0
  215. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +23 -0
  216. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.d.ts +7 -0
  217. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +79 -0
  218. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.d.ts +9 -0
  219. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +109 -0
  220. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.d.ts +7 -0
  221. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +29 -0
  222. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.d.ts +9 -0
  223. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +39 -0
  224. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.d.ts +7 -0
  225. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +9 -0
  226. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +8 -0
  227. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +259 -0
  228. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +5 -0
  229. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +138 -0
  230. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +1 -0
  231. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +108 -0
  232. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.d.ts +1 -0
  233. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +182 -0
  234. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +1 -0
  235. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +195 -0
  236. package/dist/NordFlow/WalletConnectionFlow.d.ts +9 -0
  237. package/dist/NordFlow/WalletConnectionFlow.js +145 -0
  238. package/dist/NordFlow/components/AnimatedButton.d.ts +14 -0
  239. package/dist/NordFlow/components/AnimatedButton.js +75 -0
  240. package/dist/NordFlow/components/ChainButton.d.ts +7 -0
  241. package/dist/NordFlow/components/ChainButton.js +5 -0
  242. package/dist/NordFlow/components/LoadingSquares.d.ts +1 -0
  243. package/dist/NordFlow/components/LoadingSquares.js +5 -0
  244. package/dist/NordFlow/components/TransactionTable.d.ts +13 -0
  245. package/dist/NordFlow/components/TransactionTable.js +58 -0
  246. package/dist/NordFlow/components/WaitingMessage.d.ts +6 -0
  247. package/dist/NordFlow/components/WaitingMessage.js +6 -0
  248. package/dist/NordFlow/components/index.d.ts +5 -0
  249. package/dist/NordFlow/components/index.js +5 -0
  250. package/dist/NordFlow/constants.d.ts +37 -0
  251. package/dist/NordFlow/constants.js +223 -0
  252. package/dist/NordFlow/hooks/index.d.ts +8 -0
  253. package/dist/NordFlow/hooks/index.js +8 -0
  254. package/dist/NordFlow/hooks/useButtonTyping.d.ts +7 -0
  255. package/dist/NordFlow/hooks/useButtonTyping.js +43 -0
  256. package/dist/NordFlow/hooks/useDepositFlow.d.ts +38 -0
  257. package/dist/NordFlow/hooks/useDepositFlow.js +166 -0
  258. package/dist/NordFlow/hooks/useFlowState.d.ts +32 -0
  259. package/dist/NordFlow/hooks/useFlowState.js +163 -0
  260. package/dist/NordFlow/hooks/useInterruptHandler.d.ts +27 -0
  261. package/dist/NordFlow/hooks/useInterruptHandler.js +101 -0
  262. package/dist/NordFlow/hooks/useNordSession.d.ts +32 -0
  263. package/dist/NordFlow/hooks/useNordSession.js +193 -0
  264. package/dist/NordFlow/hooks/useTableValues.d.ts +2 -0
  265. package/dist/NordFlow/hooks/useTableValues.js +69 -0
  266. package/dist/NordFlow/hooks/useWaitingMessage.d.ts +6 -0
  267. package/dist/NordFlow/hooks/useWaitingMessage.js +89 -0
  268. package/dist/NordFlow/hooks/useWalletConnect.d.ts +30 -0
  269. package/dist/NordFlow/hooks/useWalletConnect.js +132 -0
  270. package/dist/NordFlow/index.d.ts +3 -0
  271. package/dist/NordFlow/index.js +3 -0
  272. package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  273. package/dist/NordFlow/screens/01-ConnectWalletScreen.js +17 -0
  274. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  275. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  276. package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  277. package/dist/NordFlow/screens/03-ChainSelectionScreen.js +7 -0
  278. package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +8 -0
  279. package/dist/NordFlow/screens/04-AmountInputScreen.js +20 -0
  280. package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  281. package/dist/NordFlow/screens/05-DepositProgressScreen.js +6 -0
  282. package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  283. package/dist/NordFlow/screens/06-DepositSuccessScreen.js +99 -0
  284. package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +7 -0
  285. package/dist/NordFlow/screens/07-NordAuthScreen.js +14 -0
  286. package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  287. package/dist/NordFlow/screens/08-AuthLoadingScreen.js +20 -0
  288. package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  289. package/dist/NordFlow/screens/09-FinalSuccessScreen.js +18 -0
  290. package/dist/NordFlow/screens/10-ErrorScreen.d.ts +7 -0
  291. package/dist/NordFlow/screens/10-ErrorScreen.js +13 -0
  292. package/dist/NordFlow/screens/index.d.ts +10 -0
  293. package/dist/NordFlow/screens/index.js +10 -0
  294. package/dist/NordFlow/types.d.ts +105 -0
  295. package/dist/NordFlow/types.js +34 -0
  296. package/dist/NordFlow/utils/persistence.d.ts +24 -0
  297. package/dist/NordFlow/utils/persistence.js +83 -0
  298. package/dist/Provider/LazyWalletProvider.js +81 -42
  299. package/dist/Provider/N1WalletProvider.d.ts +1 -1
  300. package/dist/Provider/N1WalletProvider.js +65 -46
  301. package/dist/Provider/types.d.ts +61 -0
  302. package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +9 -0
  303. package/dist/WalletConnectionFlow/WalletConnectionFlow.js +145 -0
  304. package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +14 -0
  305. package/dist/WalletConnectionFlow/components/AnimatedButton.js +75 -0
  306. package/dist/WalletConnectionFlow/components/ChainButton.d.ts +7 -0
  307. package/dist/WalletConnectionFlow/components/ChainButton.js +5 -0
  308. package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +1 -0
  309. package/dist/WalletConnectionFlow/components/LoadingSquares.js +5 -0
  310. package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +13 -0
  311. package/dist/WalletConnectionFlow/components/TransactionTable.js +58 -0
  312. package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +6 -0
  313. package/dist/WalletConnectionFlow/components/WaitingMessage.js +6 -0
  314. package/dist/WalletConnectionFlow/components/index.d.ts +5 -0
  315. package/dist/WalletConnectionFlow/components/index.js +5 -0
  316. package/dist/WalletConnectionFlow/constants.d.ts +37 -0
  317. package/dist/WalletConnectionFlow/constants.js +223 -0
  318. package/dist/WalletConnectionFlow/hooks/index.d.ts +8 -0
  319. package/dist/WalletConnectionFlow/hooks/index.js +8 -0
  320. package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +7 -0
  321. package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +43 -0
  322. package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +38 -0
  323. package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +166 -0
  324. package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +32 -0
  325. package/dist/WalletConnectionFlow/hooks/useFlowState.js +163 -0
  326. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +27 -0
  327. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +101 -0
  328. package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +32 -0
  329. package/dist/WalletConnectionFlow/hooks/useNordSession.js +193 -0
  330. package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +2 -0
  331. package/dist/WalletConnectionFlow/hooks/useTableValues.js +69 -0
  332. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +6 -0
  333. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +89 -0
  334. package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +30 -0
  335. package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +132 -0
  336. package/dist/WalletConnectionFlow/index.d.ts +3 -0
  337. package/dist/WalletConnectionFlow/index.js +3 -0
  338. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +6 -0
  339. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +17 -0
  340. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +6 -0
  341. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +47 -0
  342. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +7 -0
  343. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +7 -0
  344. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +8 -0
  345. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +20 -0
  346. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +7 -0
  347. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +6 -0
  348. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +8 -0
  349. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +99 -0
  350. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +7 -0
  351. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +14 -0
  352. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +6 -0
  353. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +20 -0
  354. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +5 -0
  355. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +18 -0
  356. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +7 -0
  357. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +13 -0
  358. package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +8 -0
  359. package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +20 -0
  360. package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +8 -0
  361. package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +28 -0
  362. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +6 -0
  363. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +20 -0
  364. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +7 -0
  365. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +7 -0
  366. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +6 -0
  367. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +17 -0
  368. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +7 -0
  369. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +6 -0
  370. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +8 -0
  371. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +99 -0
  372. package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +7 -0
  373. package/dist/WalletConnectionFlow/screens/ErrorScreen.js +13 -0
  374. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +6 -0
  375. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +47 -0
  376. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +6 -0
  377. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +47 -0
  378. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +5 -0
  379. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +18 -0
  380. package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +7 -0
  381. package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +14 -0
  382. package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +6 -0
  383. package/dist/WalletConnectionFlow/screens/SigningScreen.js +6 -0
  384. package/dist/WalletConnectionFlow/screens/index.d.ts +10 -0
  385. package/dist/WalletConnectionFlow/screens/index.js +10 -0
  386. package/dist/WalletConnectionFlow/types.d.ts +105 -0
  387. package/dist/WalletConnectionFlow/types.js +34 -0
  388. package/dist/WalletConnectionFlow/utils/persistence.d.ts +24 -0
  389. package/dist/WalletConnectionFlow/utils/persistence.js +83 -0
  390. package/dist/components/WalletDeposit/components/TransactionTable.d.ts +9 -2
  391. package/dist/components/WalletDeposit/components/TransactionTable.js +55 -5
  392. package/dist/components/WalletDeposit/types.d.ts +5 -0
  393. package/dist/components/logos/ArbitrumLogo.d.ts +8 -0
  394. package/dist/components/logos/ArbitrumLogo.js +5 -0
  395. package/dist/components/logos/BaseLogo.d.ts +8 -0
  396. package/dist/components/logos/BaseLogo.js +5 -0
  397. package/dist/components/logos/BeraLogo.d.ts +8 -0
  398. package/dist/components/logos/BeraLogo.js +5 -0
  399. package/dist/components/logos/BitcoinLogo.d.ts +8 -0
  400. package/dist/components/logos/BitcoinLogo.js +5 -0
  401. package/dist/components/logos/EVMChainsGroup.d.ts +7 -0
  402. package/dist/components/logos/EVMChainsGroup.js +18 -0
  403. package/dist/components/logos/EthereumLogo.d.ts +8 -0
  404. package/dist/components/logos/EthereumLogo.js +5 -0
  405. package/dist/components/logos/HyperliquidLogo.d.ts +8 -0
  406. package/dist/components/logos/HyperliquidLogo.js +5 -0
  407. package/dist/components/logos/MoreChainsGroup.d.ts +7 -0
  408. package/dist/components/logos/MoreChainsGroup.js +18 -0
  409. package/dist/components/logos/OptimismLogo.d.ts +8 -0
  410. package/dist/components/logos/OptimismLogo.js +5 -0
  411. package/dist/components/logos/SolanaLogo.d.ts +8 -0
  412. package/dist/components/logos/SolanaLogo.js +5 -0
  413. package/dist/components/logos/index.d.ts +10 -0
  414. package/dist/components/logos/index.js +10 -0
  415. package/dist/config/dynamic.d.ts +20 -0
  416. package/dist/config/dynamic.js +47 -0
  417. package/dist/config/solana.d.ts +25 -0
  418. package/dist/config/solana.js +41 -0
  419. package/dist/errors/types.d.ts +5 -1
  420. package/dist/errors/types.js +12 -0
  421. package/dist/hooks/useSolanaSession.d.ts +17 -0
  422. package/dist/hooks/useSolanaSession.js +180 -0
  423. package/dist/index.d.ts +1 -2
  424. package/dist/index.js +1 -2
  425. package/dist/main.css +1 -1
  426. package/dist/utils/solana-session.d.ts +84 -0
  427. package/dist/utils/solana-session.js +230 -0
  428. package/package.json +14 -11
@@ -0,0 +1,86 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ import { useEffect, useState } from 'react';
39
+ import { useN1WalletContext } from '../../../../Provider/hooks';
40
+ import MarketSelector from '../MarketOverview/MarketSelector';
41
+ export default function MarketOverview(_a) {
42
+ var _this = this;
43
+ var selectedMarket = _a.selectedMarket, onMarketChange = _a.onMarketChange, _b = _a.className, className = _b === void 0 ? '' : _b;
44
+ var nord = useN1WalletContext().nord;
45
+ var _c = useState(null), marketStats = _c[0], setMarketStats = _c[1];
46
+ var _d = useState(false), loading = _d[0], setLoading = _d[1];
47
+ var _e = useState(null), error = _e[0], setError = _e[1];
48
+ // Fetch market stats when selected market changes
49
+ useEffect(function () {
50
+ if (!selectedMarket || !nord)
51
+ return;
52
+ var fetchMarketStats = function () { return __awaiter(_this, void 0, void 0, function () {
53
+ var stats, selectedStats, err_1;
54
+ return __generator(this, function (_a) {
55
+ switch (_a.label) {
56
+ case 0:
57
+ setLoading(true);
58
+ setError(null);
59
+ _a.label = 1;
60
+ case 1:
61
+ _a.trys.push([1, 3, 4, 5]);
62
+ return [4 /*yield*/, nord.getMarketStats()];
63
+ case 2:
64
+ stats = _a.sent();
65
+ selectedStats = stats.markets.find(function (m) { return m.symbol === selectedMarket; });
66
+ setMarketStats(selectedStats || null);
67
+ return [3 /*break*/, 5];
68
+ case 3:
69
+ err_1 = _a.sent();
70
+ console.error('Error fetching market stats:', err_1);
71
+ setError('Failed to load market statistics');
72
+ return [3 /*break*/, 5];
73
+ case 4:
74
+ setLoading(false);
75
+ return [7 /*endfinally*/];
76
+ case 5: return [2 /*return*/];
77
+ }
78
+ });
79
+ }); };
80
+ fetchMarketStats();
81
+ // Set up polling for market stats updates
82
+ var intervalId = setInterval(fetchMarketStats, 30000); // Update every 30 seconds
83
+ return function () { return clearInterval(intervalId); };
84
+ }, [selectedMarket, nord]);
85
+ return (_jsx("div", { className: "".concat(className), children: _jsx(MarketSelector, { selectedMarket: selectedMarket, onMarketChange: onMarketChange }) }));
86
+ }
@@ -0,0 +1,6 @@
1
+ interface MarketSelectorProps {
2
+ selectedMarket: string | null;
3
+ onMarketChange: (market: string) => void;
4
+ }
5
+ export default function MarketSelector({ selectedMarket, onMarketChange, }: MarketSelectorProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef } from 'react';
3
+ import { useN1WalletContext } from '../../../../Provider/hooks';
4
+ import { ChevronDown } from 'lucide-react';
5
+ export default function MarketSelector(_a) {
6
+ var _b;
7
+ var selectedMarket = _a.selectedMarket, onMarketChange = _a.onMarketChange;
8
+ var nord = useN1WalletContext().nord;
9
+ var _c = useState(false), isOpen = _c[0], setIsOpen = _c[1];
10
+ var _d = useState(''), searchQuery = _d[0], setSearchQuery = _d[1];
11
+ var dropdownRef = useRef(null);
12
+ var buttonRef = useRef(null);
13
+ var containerRef = useRef(null);
14
+ // Close dropdown when clicking outside
15
+ useEffect(function () {
16
+ function handleClickOutside(event) {
17
+ if (dropdownRef.current &&
18
+ !dropdownRef.current.contains(event.target) &&
19
+ buttonRef.current &&
20
+ !buttonRef.current.contains(event.target)) {
21
+ setIsOpen(false);
22
+ }
23
+ }
24
+ document.addEventListener('mousedown', handleClickOutside);
25
+ return function () {
26
+ document.removeEventListener('mousedown', handleClickOutside);
27
+ };
28
+ }, []);
29
+ // Filter markets based on search query
30
+ var filteredMarkets = ((_b = nord === null || nord === void 0 ? void 0 : nord.markets) === null || _b === void 0 ? void 0 : _b.filter(function (market) {
31
+ return market.symbol.toLowerCase().includes(searchQuery.toLowerCase());
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 () {
34
+ onMarketChange(market.symbol);
35
+ setIsOpen(false);
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
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" })) }) }))] }));
42
+ }
@@ -0,0 +1,7 @@
1
+ interface MarketStatsProps {
2
+ marketStats: any;
3
+ loading: boolean;
4
+ error: string | null;
5
+ }
6
+ export default function MarketStats({ marketStats, loading, error, }: MarketStatsProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { ArrowDown, ArrowUp, RefreshCw } from 'lucide-react';
3
+ export default function MarketStats(_a) {
4
+ var _b, _c, _d, _e;
5
+ var marketStats = _a.marketStats, loading = _a.loading, error = _a.error;
6
+ if (error) {
7
+ return (_jsx("div", { className: "bg-red-50 dark:bg-red-900/20 p-3 rounded-sm text-red-600 dark:text-red-400 text-sm border border-red-200 dark:border-red-900/30", children: error }));
8
+ }
9
+ if (!marketStats && !loading) {
10
+ return (_jsx("div", { className: "bg-gray-50 dark:bg-gray-800 p-3 rounded-sm text-gray-500 dark:text-gray-400 text-sm border border-gray-200 dark:border-gray-800", children: "Select a market to view statistics" }));
11
+ }
12
+ return (_jsx("div", { className: "bg-gray-50 dark:bg-gray-800 p-3 rounded-sm border border-gray-200 dark:border-gray-800", children: loading && !marketStats ? (_jsx("div", { className: "flex items-center justify-center h-24", children: _jsx(RefreshCw, { size: 24, className: "text-main animate-spin" }) })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between mb-3", children: [_jsx("h3", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: marketStats === null || marketStats === void 0 ? void 0 : marketStats.symbol }), _jsxs("div", { className: "flex items-center", children: [_jsxs("span", { className: "text-xs font-medium px-2 py-1 rounded-sm ".concat((marketStats === null || marketStats === void 0 ? void 0 : marketStats.priceChangePercent) >= 0
13
+ ? 'bg-green-100 dark:bg-green-900/20 text-green-600 dark:text-green-400 border border-green-200 dark:border-green-900/30'
14
+ : 'bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400 border border-red-200 dark:border-red-900/30'), children: [(marketStats === null || marketStats === void 0 ? void 0 : marketStats.priceChangePercent) >= 0 ? (_jsx(ArrowUp, { size: 12, className: "inline mr-1" })) : (_jsx(ArrowDown, { size: 12, className: "inline mr-1" })), Math.abs((marketStats === null || marketStats === void 0 ? void 0 : marketStats.priceChangePercent) || 0).toFixed(2), "%"] }), loading && (_jsx(RefreshCw, { size: 14, className: "ml-2 text-main animate-spin" }))] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-gray-950 p-2 rounded-sm border border-gray-200 dark:border-gray-800", children: [_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Last Price" }), _jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-gray-100 font-mono", children: (_b = marketStats === null || marketStats === void 0 ? void 0 : marketStats.lastPrice) === null || _b === void 0 ? void 0 : _b.toFixed((marketStats === null || marketStats === void 0 ? void 0 : marketStats.priceDecimals) || 2) })] }), _jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-gray-950 p-2 rounded-sm border border-gray-200 dark:border-gray-800", children: [_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "24h High" }), _jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-gray-100 font-mono", children: (_c = marketStats === null || marketStats === void 0 ? void 0 : marketStats.highPrice) === null || _c === void 0 ? void 0 : _c.toFixed((marketStats === null || marketStats === void 0 ? void 0 : marketStats.priceDecimals) || 2) })] }), _jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-gray-950 p-2 rounded-sm border border-gray-200 dark:border-gray-800", children: [_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "24h Low" }), _jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-gray-100 font-mono", children: (_d = marketStats === null || marketStats === void 0 ? void 0 : marketStats.lowPrice) === null || _d === void 0 ? void 0 : _d.toFixed((marketStats === null || marketStats === void 0 ? void 0 : marketStats.priceDecimals) || 2) })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-gray-950 p-2 rounded-sm border border-gray-200 dark:border-gray-800", children: [_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "24h Volume" }), _jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-gray-100 font-mono", children: (_e = marketStats === null || marketStats === void 0 ? void 0 : marketStats.volume) === null || _e === void 0 ? void 0 : _e.toFixed(2) })] }), _jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-gray-950 p-2 rounded-sm border border-gray-200 dark:border-gray-800", children: [_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Base Asset" }), _jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-gray-100", children: marketStats === null || marketStats === void 0 ? void 0 : marketStats.baseAsset })] }), _jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-gray-950 p-2 rounded-sm border border-gray-200 dark:border-gray-800", children: [_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Quote Asset" }), _jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-gray-100", children: marketStats === null || marketStats === void 0 ? void 0 : marketStats.quoteAsset })] })] })] })] })) }));
15
+ }
@@ -0,0 +1 @@
1
+ export default function NordTradingView(): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { useN1WalletContext } from '../../../Provider/hooks';
4
+ import { N1SessionMode } from '../../../Provider/types';
5
+ import MarketOverview from './MarketOverview/MarketOverview';
6
+ import OrderBook from './OrderBook/OrderBook';
7
+ import TradeForm from './TradeForm/TradeForm';
8
+ import UserOrders from './UserOrders/UserOrders';
9
+ import UserPositions from './UserPositions/UserPositions';
10
+ import UserBalances from './UserBalances/UserBalances';
11
+ export default function NordTradingView() {
12
+ var _a = useN1WalletContext(), sessionMode = _a.sessionMode, nord = _a.nord, nordUser = _a.nordUser;
13
+ var _b = useState(null), selectedMarket = _b[0], setSelectedMarket = _b[1];
14
+ var _c = useState('orderbook'), activeView = _c[0], setActiveView = _c[1];
15
+ // Early return if not in Nord session mode or if Nord/NordUser is not available
16
+ if (sessionMode !== N1SessionMode.Nord || !nord || !nordUser) {
17
+ return null;
18
+ }
19
+ // Set default selected market if not already set and markets are available
20
+ useEffect(function () {
21
+ if (!selectedMarket && nord.markets && nord.markets.length > 0) {
22
+ setSelectedMarket(nord.markets[0].symbol);
23
+ }
24
+ }, [nord.markets, selectedMarket]);
25
+ // Render the active view component
26
+ var renderActiveView = function () {
27
+ switch (activeView) {
28
+ case 'orderbook':
29
+ return _jsx(OrderBook, { marketSymbol: selectedMarket });
30
+ case 'tradeform':
31
+ return _jsx(TradeForm, { marketSymbol: selectedMarket });
32
+ case 'orders':
33
+ return _jsx(UserOrders, {});
34
+ case 'positions':
35
+ return (_jsxs("div", { className: "space-y-4", children: [_jsx(UserPositions, {}), _jsx(UserBalances, {})] }));
36
+ case 'balances':
37
+ return _jsx(UserBalances, {});
38
+ default:
39
+ return _jsx(OrderBook, { marketSymbol: selectedMarket });
40
+ }
41
+ };
42
+ // Map view types to display names
43
+ var viewLabels = {
44
+ orderbook: 'Order Book',
45
+ tradeform: 'Trade',
46
+ positions: 'Positions',
47
+ orders: 'Orders',
48
+ balances: 'Balances',
49
+ history: 'History',
50
+ };
51
+ return (_jsxs("div", { className: "space-y-4 @container", children: [_jsxs("div", { className: "flex flex-col @md:flex-row justify-between items-start @md:items-center bg-transparent mb-3 gap-3 @md:gap-0", children: [_jsx("div", { className: "flex justify-start gap-2 flex-wrap w-full @md:w-auto", children: ['orderbook', 'tradeform', 'positions', 'orders'].map(function (view) { return (_jsxs("button", { onClick: function () { return setActiveView(view); }, className: "\n relative px-4 @md:px-5 py-2 text-sm font-medium tracking-wide transition-all duration-150 \n border ".concat(activeView === view
52
+ ? 'border-main/80 text-main bg-main/[0.03] shadow-[0_0_0_1px_rgba(255,68,26,0.1)]'
53
+ : 'border-gray-200 dark:border-gray-800 text-gray-500 dark:text-gray-400 hover:border-gray-300 dark:hover:border-gray-700', "\n first:ml-0 last:mr-0 group rounded-[2px] overflow-hidden flex-grow @md:flex-grow-0\n "), children: [_jsx("span", { className: "relative z-10", children: viewLabels[view] }), _jsx("span", { className: "\n absolute inset-0 bg-main/[0.02] opacity-0 transition-opacity duration-150\n ".concat(activeView !== view ? 'group-hover:opacity-100' : '', "\n ") })] }, view)); }) }), _jsx("div", { className: "min-w-[160px] w-full @md:w-auto border border-gray-200 dark:border-gray-800 rounded-[2px] overflow-visible hover:border-gray-300 dark:hover:border-gray-700 transition-colors duration-150 relative z-20", children: _jsx("div", { className: "px-5 py-2 text-sm", children: _jsx(MarketOverview, { selectedMarket: selectedMarket, onMarketChange: setSelectedMarket }) }) })] }), _jsx("div", { className: "border border-gray-200 dark:border-gray-800 rounded-[3px] shadow-sm bg-white dark:bg-gray-950", children: renderActiveView() })] }));
54
+ }
@@ -0,0 +1,5 @@
1
+ interface OrderBookProps {
2
+ marketSymbol: string | null;
3
+ }
4
+ export default function OrderBook({ marketSymbol }: OrderBookProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,208 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
46
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
47
+ import { useEffect, useState } from 'react';
48
+ import { useN1WalletContext } from '../../../../Provider/hooks';
49
+ import OrderBookHeader from './OrderBookHeader';
50
+ import OrderBookTable from './OrderBookTable';
51
+ // Create a simple implementation for the missing OrderBookDepthVisualizer component
52
+ import { RefreshCw } from 'lucide-react';
53
+ // Simple implementation of OrderBookDepthVisualizer
54
+ var OrderBookDepthVisualizer = function (_a) {
55
+ var data = _a.data, maxSize = _a.maxSize;
56
+ if (!data || data.bids.length === 0 || data.asks.length === 0) {
57
+ return null;
58
+ }
59
+ return (_jsxs("div", { className: "mt-3", children: [_jsx("h3", { className: "text-xs font-medium text-gray-900 dark:text-gray-100 mb-2", children: "Depth Chart" }), _jsx("div", { className: "w-full h-24 border border-gray-200 dark:border-gray-800 rounded-sm overflow-hidden flex items-center justify-center", children: _jsxs("div", { className: "relative w-full h-full", children: [_jsxs("div", { className: "absolute inset-0 flex", children: [_jsx("div", { className: "w-1/2 bg-gradient-to-r from-green-500/10 to-green-500/5" }), _jsx("div", { className: "w-1/2 bg-gradient-to-l from-red-500/10 to-red-500/5" })] }), _jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: _jsx("div", { className: "h-full w-px bg-gray-300 dark:bg-gray-600" }) })] }) })] }));
60
+ };
61
+ export default function OrderBook(_a) {
62
+ var _this = this;
63
+ var marketSymbol = _a.marketSymbol;
64
+ var nord = useN1WalletContext().nord;
65
+ var _b = useState(null), orderBookData = _b[0], setOrderBookData = _b[1];
66
+ var _c = useState(false), loading = _c[0], setLoading = _c[1];
67
+ var _d = useState(null), error = _d[0], setError = _d[1];
68
+ var _e = useState(0.01), aggregationLevel = _e[0], setAggregationLevel = _e[1];
69
+ // Fetch orderbook data when market changes
70
+ useEffect(function () {
71
+ if (!marketSymbol || !nord)
72
+ return;
73
+ var subscription = null;
74
+ var fetchOrderBook = function () { return __awaiter(_this, void 0, void 0, function () {
75
+ var orderbook, bids, asks, err_1;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ setLoading(true);
80
+ setError(null);
81
+ _a.label = 1;
82
+ case 1:
83
+ _a.trys.push([1, 3, 4, 5]);
84
+ return [4 /*yield*/, nord.getOrderbook({ symbol: marketSymbol })];
85
+ case 2:
86
+ orderbook = _a.sent();
87
+ bids = Array.isArray(orderbook.bids[0])
88
+ ? orderbook.bids
89
+ : orderbook.bids.map(function (entry) { return [
90
+ entry.price,
91
+ entry.size,
92
+ ]; });
93
+ asks = Array.isArray(orderbook.asks[0])
94
+ ? orderbook.asks
95
+ : orderbook.asks.map(function (entry) { return [
96
+ entry.price,
97
+ entry.size,
98
+ ]; });
99
+ setOrderBookData({
100
+ bids: bids,
101
+ asks: asks,
102
+ timestamp: Date.now(),
103
+ });
104
+ // Subscribe to real-time updates
105
+ subscription = nord.subscribeOrderbook(marketSymbol);
106
+ subscription.on('update', function (update) {
107
+ setOrderBookData(function (prev) {
108
+ if (!prev)
109
+ return update;
110
+ // Convert OrderbookEntry[] to [number, number][] if needed
111
+ var updatedBids = update.bids
112
+ ? update.bids.map(function (entry) { return [
113
+ entry.price,
114
+ entry.size,
115
+ ]; })
116
+ : prev.bids;
117
+ var updatedAsks = update.asks
118
+ ? update.asks.map(function (entry) { return [
119
+ entry.price,
120
+ entry.size,
121
+ ]; })
122
+ : prev.asks;
123
+ return {
124
+ bids: updatedBids,
125
+ asks: updatedAsks,
126
+ timestamp: Date.now(),
127
+ };
128
+ });
129
+ });
130
+ return [3 /*break*/, 5];
131
+ case 3:
132
+ err_1 = _a.sent();
133
+ console.error('Error fetching orderbook:', err_1);
134
+ setError('Failed to load orderbook data');
135
+ return [3 /*break*/, 5];
136
+ case 4:
137
+ setLoading(false);
138
+ return [7 /*endfinally*/];
139
+ case 5: return [2 /*return*/];
140
+ }
141
+ });
142
+ }); };
143
+ fetchOrderBook();
144
+ // Cleanup subscription on unmount or market change
145
+ return function () {
146
+ if (subscription) {
147
+ subscription.close();
148
+ }
149
+ };
150
+ }, [marketSymbol, nord]);
151
+ // Aggregate orderbook data based on aggregation level
152
+ var aggregateOrderBook = function (data, level) {
153
+ if (!data)
154
+ return null;
155
+ var aggregatedBids = {};
156
+ var aggregatedAsks = {};
157
+ // Aggregate bids
158
+ data.bids.forEach(function (_a) {
159
+ var price = _a[0], size = _a[1];
160
+ var aggregatedPrice = Math.floor(price / level) * level;
161
+ aggregatedBids[aggregatedPrice] =
162
+ (aggregatedBids[aggregatedPrice] || 0) + size;
163
+ });
164
+ // Aggregate asks
165
+ data.asks.forEach(function (_a) {
166
+ var price = _a[0], size = _a[1];
167
+ var aggregatedPrice = Math.ceil(price / level) * level;
168
+ aggregatedAsks[aggregatedPrice] =
169
+ (aggregatedAsks[aggregatedPrice] || 0) + size;
170
+ });
171
+ // Convert back to arrays and sort
172
+ var bids = Object.entries(aggregatedBids)
173
+ .map(function (_a) {
174
+ var price = _a[0], size = _a[1];
175
+ return [parseFloat(price), size];
176
+ })
177
+ .sort(function (a, b) { return b[0] - a[0]; });
178
+ var asks = Object.entries(aggregatedAsks)
179
+ .map(function (_a) {
180
+ var price = _a[0], size = _a[1];
181
+ return [parseFloat(price), size];
182
+ })
183
+ .sort(function (a, b) { return a[0] - b[0]; });
184
+ return {
185
+ bids: bids,
186
+ asks: asks,
187
+ timestamp: data.timestamp,
188
+ };
189
+ };
190
+ var aggregatedData = aggregateOrderBook(orderBookData, aggregationLevel);
191
+ // Calculate max size for depth visualization
192
+ var calculateMaxSize = function (data) {
193
+ if (!data)
194
+ return 0;
195
+ var bidSizes = data.bids.map(function (_a) {
196
+ var _ = _a[0], size = _a[1];
197
+ return size;
198
+ });
199
+ var askSizes = data.asks.map(function (_a) {
200
+ var _ = _a[0], size = _a[1];
201
+ return size;
202
+ });
203
+ var allSizes = __spreadArray(__spreadArray([], bidSizes, true), askSizes, true);
204
+ return Math.max.apply(Math, __spreadArray(__spreadArray([], allSizes, false), [0], false));
205
+ };
206
+ var maxSize = calculateMaxSize(aggregatedData);
207
+ return (_jsxs("div", { className: "p-4", children: [_jsx(OrderBookHeader, { marketSymbol: marketSymbol, aggregationLevel: aggregationLevel, onAggregationChange: setAggregationLevel }), error ? (_jsx("div", { className: "p-3 mt-3 border border-red-200 dark:border-red-900/30 rounded-sm text-red-600 dark:text-red-400 text-xs", children: error })) : loading && !orderBookData ? (_jsx("div", { className: "flex items-center justify-center h-40 mt-3", children: _jsx(RefreshCw, { size: 24, className: "text-main animate-spin" }) })) : !marketSymbol ? (_jsx("div", { className: "p-3 mt-3 border border-gray-200 dark:border-gray-800 rounded-sm text-gray-500 dark:text-gray-400 text-xs", children: "Select a market to view orderbook" })) : (_jsx("div", { className: "mt-3", children: _jsxs("div", { className: "flex flex-col", children: [_jsx(OrderBookTable, { data: aggregatedData, loading: loading, maxSize: maxSize }), _jsx(OrderBookDepthVisualizer, { data: aggregatedData, maxSize: maxSize })] }) }))] }));
208
+ }
@@ -0,0 +1,10 @@
1
+ interface OrderBookDepthVisualizerProps {
2
+ data: {
3
+ bids: Array<[number, number]>;
4
+ asks: Array<[number, number]>;
5
+ timestamp: number;
6
+ } | null;
7
+ maxSize: number;
8
+ }
9
+ export default function OrderBookDepthVisualizer({ data, maxSize, }: OrderBookDepthVisualizerProps): import("react/jsx-runtime").JSX.Element | null;
10
+ export {};
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export default function OrderBookDepthVisualizer(_a) {
3
+ var data = _a.data, maxSize = _a.maxSize;
4
+ if (!data || data.bids.length === 0 || data.asks.length === 0) {
5
+ return null;
6
+ }
7
+ // Calculate cumulative sizes
8
+ var calculateCumulativeSizes = function (orders) {
9
+ var cumulative = 0;
10
+ return orders.map(function (_a) {
11
+ var price = _a[0], size = _a[1];
12
+ cumulative += size;
13
+ return [price, cumulative];
14
+ });
15
+ };
16
+ var cumulativeBids = calculateCumulativeSizes(data.bids);
17
+ var cumulativeAsks = calculateCumulativeSizes(data.asks);
18
+ // Find max cumulative size for scaling
19
+ var maxCumulativeSize = Math.max(cumulativeBids[cumulativeBids.length - 1][1], cumulativeAsks[cumulativeAsks.length - 1][1]);
20
+ // Calculate price range for x-axis
21
+ var minPrice = cumulativeBids[cumulativeBids.length - 1][0];
22
+ var maxPrice = cumulativeAsks[cumulativeAsks.length - 1][0];
23
+ var priceRange = maxPrice - minPrice;
24
+ // Helper function to calculate x position based on price
25
+ var getPricePosition = function (price) {
26
+ return ((price - minPrice) / priceRange) * 100;
27
+ };
28
+ // Helper function to calculate y position based on cumulative size
29
+ var getSizePosition = function (size) {
30
+ return (size / maxCumulativeSize) * 100;
31
+ };
32
+ // Generate SVG path for bids
33
+ var generateBidPath = function () {
34
+ if (cumulativeBids.length === 0)
35
+ return '';
36
+ var path = "M ".concat(getPricePosition(cumulativeBids[0][0]), " 100 ");
37
+ cumulativeBids.forEach(function (_a) {
38
+ var price = _a[0], size = _a[1];
39
+ var x = getPricePosition(price);
40
+ var y = 100 - getSizePosition(size);
41
+ path += "L ".concat(x, " ").concat(y, " ");
42
+ });
43
+ path += "L ".concat(getPricePosition(cumulativeBids[cumulativeBids.length - 1][0]), " 100 Z");
44
+ return path;
45
+ };
46
+ // Generate SVG path for asks
47
+ var generateAskPath = function () {
48
+ if (cumulativeAsks.length === 0)
49
+ return '';
50
+ var path = "M ".concat(getPricePosition(cumulativeAsks[0][0]), " 100 ");
51
+ cumulativeAsks.forEach(function (_a) {
52
+ var price = _a[0], size = _a[1];
53
+ var x = getPricePosition(price);
54
+ var y = 100 - getSizePosition(size);
55
+ path += "L ".concat(x, " ").concat(y, " ");
56
+ });
57
+ path += "L ".concat(getPricePosition(cumulativeAsks[cumulativeAsks.length - 1][0]), " 100 Z");
58
+ return path;
59
+ };
60
+ return (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 mb-2", children: "Depth Chart" }), _jsx("div", { className: "w-full h-32 bg-gray-50 dark:bg-gray-800 rounded-lg overflow-hidden", children: _jsxs("svg", { width: "100%", height: "100%", viewBox: "0 0 100 100", preserveAspectRatio: "none", children: [_jsx("path", { d: generateBidPath(), fill: "rgba(16, 185, 129, 0.2)", stroke: "rgb(16, 185, 129)", strokeWidth: "0.5" }), _jsx("path", { d: generateAskPath(), fill: "rgba(239, 68, 68, 0.2)", stroke: "rgb(239, 68, 68)", strokeWidth: "0.5" }), _jsx("line", { x1: getPricePosition(data.asks[0][0]), y1: "0", x2: getPricePosition(data.asks[0][0]), y2: "100", stroke: "rgba(156, 163, 175, 0.5)", strokeWidth: "0.5", strokeDasharray: "2,2" })] }) }), _jsxs("div", { className: "flex justify-between mt-1 text-xs text-gray-500 dark:text-gray-400", children: [_jsx("span", { children: minPrice.toFixed(2) }), _jsx("span", { children: ((minPrice + maxPrice) / 2).toFixed(2) }), _jsx("span", { children: maxPrice.toFixed(2) })] })] }));
61
+ }
@@ -0,0 +1,7 @@
1
+ interface OrderBookHeaderProps {
2
+ marketSymbol: string | null;
3
+ aggregationLevel: number;
4
+ onAggregationChange: (level: number) => void;
5
+ }
6
+ export default function OrderBookHeader({ marketSymbol, aggregationLevel, onAggregationChange, }: OrderBookHeaderProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronDown } from 'lucide-react';
3
+ import { useState, useRef, useEffect } from 'react';
4
+ export default function OrderBookHeader(_a) {
5
+ var marketSymbol = _a.marketSymbol, aggregationLevel = _a.aggregationLevel, onAggregationChange = _a.onAggregationChange;
6
+ var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
7
+ var dropdownRef = useRef(null);
8
+ // Common aggregation levels
9
+ var aggregationOptions = [0.0001, 0.001, 0.01, 0.1, 1, 10, 100];
10
+ // Close dropdown when clicking outside
11
+ useEffect(function () {
12
+ function handleClickOutside(event) {
13
+ if (dropdownRef.current &&
14
+ !dropdownRef.current.contains(event.target)) {
15
+ setIsOpen(false);
16
+ }
17
+ }
18
+ document.addEventListener('mousedown', handleClickOutside);
19
+ return function () {
20
+ document.removeEventListener('mousedown', handleClickOutside);
21
+ };
22
+ }, []);
23
+ return (_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("h2", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: ["Order Book", ' ', marketSymbol ? _jsx("span", { className: "text-main", children: marketSymbol }) : ''] }), _jsxs("div", { className: "relative", ref: dropdownRef, children: [_jsxs("button", { onClick: function () { return setIsOpen(!isOpen); }, className: "flex items-center gap-1 px-2 py-1 bg-gray-100 dark:bg-gray-950 rounded-sm text-xs text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-gray-800 hover:border-main dark:hover:border-main transition-colors duration-200", children: [_jsxs("span", { children: ["Precision:", ' ', _jsx("span", { className: "font-mono font-medium", children: aggregationLevel })] }), _jsx(ChevronDown, { size: 14, className: "transition-transform duration-200 ".concat(isOpen ? 'rotate-180 text-main' : 'text-gray-500 dark:text-gray-400') })] }), isOpen && (_jsx("div", { className: "absolute right-0 z-50 mt-1 w-36 bg-white dark:bg-gray-950 rounded-sm shadow-lg border border-gray-200 dark:border-gray-800 overflow-hidden", children: aggregationOptions.map(function (level) { return (_jsx("button", { onClick: function () {
24
+ onAggregationChange(level);
25
+ setIsOpen(false);
26
+ }, className: "w-full text-left px-3 py-1.5 text-xs hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 ".concat(aggregationLevel === level
27
+ ? 'bg-gray-100 dark:bg-gray-800 border-l-2 border-main text-main'
28
+ : 'text-gray-900 dark:text-gray-100'), children: level }, level)); }) }))] })] }));
29
+ }
@@ -0,0 +1,11 @@
1
+ interface OrderBookTableProps {
2
+ data: {
3
+ bids: Array<[number, number]>;
4
+ asks: Array<[number, number]>;
5
+ timestamp: number;
6
+ } | null;
7
+ loading: boolean;
8
+ maxSize: number;
9
+ }
10
+ export default function OrderBookTable({ data, loading, maxSize, }: OrderBookTableProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { RefreshCw } from 'lucide-react';
3
+ export default function OrderBookTable(_a) {
4
+ var data = _a.data, loading = _a.loading, maxSize = _a.maxSize;
5
+ if (!data) {
6
+ return (_jsx("div", { className: "flex items-center justify-center h-40", children: _jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "No orderbook data available" }) }));
7
+ }
8
+ // Limit the number of rows to display
9
+ var maxRows = 8;
10
+ var bids = data.bids.slice(0, maxRows);
11
+ var asks = data.asks.slice(0, maxRows).reverse(); // Reverse to show highest ask at the bottom
12
+ return (_jsxs("div", { className: "relative", children: [loading && (_jsx("div", { className: "absolute top-2 right-2 z-10", children: _jsx(RefreshCw, { size: 14, className: "text-main animate-spin" }) })), _jsxs("div", { className: "grid grid-cols-3 gap-1 mb-1 text-[10px] text-gray-500 dark:text-gray-400 font-medium uppercase tracking-wider", children: [_jsx("div", { className: "text-left", children: "Size" }), _jsx("div", { className: "text-center", children: "Price" }), _jsx("div", { className: "text-right", children: "Size" })] }), _jsx("div", { className: "space-y-px mb-2", children: asks.map(function (_a, index) {
13
+ var price = _a[0], size = _a[1];
14
+ var sizePercentage = (size / maxSize) * 100;
15
+ return (_jsxs("div", { className: "grid grid-cols-3 gap-1 relative", children: [_jsx("div", { className: "text-left text-xs" }), _jsx("div", { className: "text-center text-xs font-medium text-red-600 dark:text-red-400 font-mono z-10", children: price.toFixed(4) }), _jsx("div", { className: "text-right text-xs font-medium text-gray-900 dark:text-gray-100 font-mono z-10", children: size.toFixed(4) }), _jsx("div", { className: "absolute top-0 right-0 h-full bg-red-100/50 dark:bg-red-900/10 z-0", style: { width: "".concat(sizePercentage, "%") } })] }, "ask-".concat(index)));
16
+ }) }), bids.length > 0 && asks.length > 0 && (_jsx("div", { className: "py-1 px-2 mb-2 border border-gray-200 dark:border-gray-800 rounded-sm text-center", children: _jsxs("span", { className: "text-[10px] text-gray-500 dark:text-gray-400", children: ["Spread:", ' ', _jsx("span", { className: "font-mono font-medium", children: (asks[asks.length - 1][0] - bids[0][0]).toFixed(4) }), ' ', "(", _jsxs("span", { className: "font-mono", children: [((asks[asks.length - 1][0] / bids[0][0] - 1) * 100).toFixed(2), "%"] }), ")"] }) })), _jsx("div", { className: "space-y-px", children: bids.map(function (_a, index) {
17
+ var price = _a[0], size = _a[1];
18
+ var sizePercentage = (size / maxSize) * 100;
19
+ return (_jsxs("div", { className: "grid grid-cols-3 gap-1 relative", children: [_jsx("div", { className: "text-left text-xs font-medium text-gray-900 dark:text-gray-100 font-mono z-10", children: size.toFixed(4) }), _jsx("div", { className: "text-center text-xs font-medium text-green-600 dark:text-green-400 font-mono z-10", children: price.toFixed(4) }), _jsx("div", { className: "text-right text-xs" }), _jsx("div", { className: "absolute top-0 left-0 h-full bg-green-100/50 dark:bg-green-900/10 z-0", style: { width: "".concat(sizePercentage, "%") } })] }, "bid-".concat(index)));
20
+ }) }), _jsxs("div", { className: "mt-2 text-[10px] text-gray-500 dark:text-gray-400 text-right", children: ["Last updated:", ' ', _jsx("span", { className: "font-mono", children: new Date(data.timestamp).toLocaleTimeString() })] })] }));
21
+ }
@@ -0,0 +1,7 @@
1
+ interface AmountInputProps {
2
+ amount: string;
3
+ onChange: (amount: string) => void;
4
+ marketInfo?: any;
5
+ }
6
+ export default function AmountInput({ amount, onChange, marketInfo, }: AmountInputProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};