@n1xyz/wallet-widget 0.0.9 → 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 (98) hide show
  1. package/dist/Modal/LoadingFallback.js +1 -1
  2. package/dist/Modal/LoadingFallback.js.map +1 -1
  3. package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
  4. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
  5. package/dist/Modal/NTSFlow/components/BackButton.js +2 -2
  6. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
  7. package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
  8. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
  9. package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
  10. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
  11. package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
  12. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
  13. package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
  14. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
  15. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
  16. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
  17. package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
  18. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
  19. package/dist/Modal/NordFlow/NordFlow.js +2 -2
  20. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  21. package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
  22. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
  23. package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
  24. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
  25. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
  26. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
  27. package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
  28. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
  29. package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
  30. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
  31. package/dist/Modal/NordFlow/components/TransactionTable.js +6 -6
  32. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  33. package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
  34. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
  35. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +3 -3
  36. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  37. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +4 -4
  38. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
  39. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +2 -2
  40. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
  41. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +2 -2
  42. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
  43. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +1 -1
  44. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
  45. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +4 -4
  46. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
  47. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +4 -4
  48. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
  49. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +2 -2
  50. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
  51. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +3 -3
  52. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
  53. package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
  54. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
  55. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
  56. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
  57. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
  58. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
  59. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
  60. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
  61. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
  62. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
  63. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
  64. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
  65. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
  66. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
  67. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
  68. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
  69. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
  70. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
  71. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
  72. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
  73. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
  74. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
  75. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
  76. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
  77. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
  78. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
  79. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
  80. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
  81. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
  82. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
  83. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
  84. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
  85. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
  86. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
  87. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
  88. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
  89. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
  90. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
  91. package/dist/components/QRCodeLoader.js +1 -1
  92. package/dist/components/QRCodeLoader.js.map +1 -1
  93. package/dist/components/logos/EVMChainsGroup.js +1 -1
  94. package/dist/components/logos/EVMChainsGroup.js.map +1 -1
  95. package/dist/components/logos/MoreChainsGroup.js +1 -1
  96. package/dist/components/logos/MoreChainsGroup.js.map +1 -1
  97. package/dist/main.css +1 -1
  98. package/package.json +1 -1
@@ -1 +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-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-gray-600 dark:text-neutral-400 text-center mb-2 max-w-xs\">\n {errorMessage}\n </p>\n\n <p className=\"text-xs text-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-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-gray-200 dark:border-gray-800 hover:border-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-gray-700 dark:text-gray-300 group-hover:text-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-gray-200 dark:border-gray-800 bg-white dark:bg-neutral-900 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer hover:bg-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-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-300\n `}\n >\n Cancel\n </span>\n </button>\n </div>\n </div>\n </div>\n );\n}\n"]}
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"]}
@@ -165,10 +165,10 @@ export function N1Sidebar(_) {
165
165
  }
166
166
  });
167
167
  }); };
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-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 () {
169
169
  setCurrentView('balances');
170
170
  clearSendingForm();
171
- }, 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 () {
172
172
  setReceiving(true);
173
173
  setSending(false);
174
174
  setCurrentView('receive');
@@ -176,24 +176,24 @@ export function N1Sidebar(_) {
176
176
  setSending(true);
177
177
  setReceiving(false);
178
178
  setCurrentView('send');
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-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 () {
180
180
  setCurrentView('balances');
181
181
  clearSendingForm();
182
- }, 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 &&
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-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 &&
184
184
  balances
185
185
  .filter(function (balance) {
186
186
  return balance.mint === tokenToSend;
187
187
  })
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-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) {
189
189
  return setRecipientAddress(e.target.value);
190
- }, 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
191
- ? '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'
192
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 () {
193
193
  setCurrentView('balances');
194
194
  setReceiving(false);
195
- }, 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 () {
196
196
  navigator.clipboard.writeText(address);
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-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" })] }) })] }))] }));
198
198
  }
199
199
  //# sourceMappingURL=N1Sidebar.js.map
@@ -1 +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-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 ${\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-gray-200 dark:border-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-gray-500 hover:text-red-500 dark:text-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-gray-900 dark:text-gray-50\">\n {username}\n </span>\n <span className=\"text-sm text-gray-500 dark:text-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-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-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-gray-900 dark:text-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-gray-900 rounded-xl shadow-sm border border-gray-200 dark:border-gray-800 flex justify-between items-center\"\n >\n <div>\n <div className=\"font-medium text-gray-900 dark:text-gray-50\">\n {balance.appType}\n </div>\n <div className=\"text-sm text-gray-500 dark:text-gray-400\">\n {balance.appId}\n </div>\n </div>\n <div className=\"text-right\">\n <div className=\"font-medium text-gray-900 dark:text-gray-50\">\n {balance.balance.toString()}\n </div>\n <div className=\"text-sm text-gray-500 dark:text-gray-400\">\n Available\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"p-4 bg-gray-50 dark:bg-gray-800 rounded-xl text-gray-500 dark:text-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-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200\"\n >\n <ArrowLeft size={20} />\n </button>\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-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-gray-700 dark:text-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-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-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-gray-700 dark:text-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-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-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-gray-700 dark:text-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-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-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-gray-700 dark:text-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-gray-100 dark:bg-gray-800 rounded-lg text-gray-900 dark:text-gray-100 border border-gray-200 dark:border-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-gray-300 dark:bg-gray-700 text-gray-500 dark:text-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-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200\"\n >\n <ArrowLeft size={20} />\n </button>\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-gray-50\">\n Receive Tokens\n </h2>\n </div>\n\n <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\">\n <div className=\"mb-4 bg-white p-2 rounded-lg\">\n <QRCodeLoader address={address} />\n </div>\n <div className=\"text-sm text-gray-500 dark:text-gray-400 mb-2\">\n Your wallet address:\n </div>\n <div className=\"font-mono text-sm text-gray-900 dark:text-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-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-950\">\n <button\n onClick={disconnect}\n 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\"\n >\n <div className=\"relative z-10 flex items-center justify-center\">\n <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\">\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"]}
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"]}
@@ -30,14 +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
43
  //# sourceMappingURL=MarketSelector.js.map
@@ -1 +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-gray-900 dark:text-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-main' : 'text-gray-500 dark:text-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-gray-950 rounded-[2px] shadow-lg border border-gray-200 dark:border-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-gray-50 dark:hover:bg-gray-900 transition-colors duration-200 ${\n selectedMarket === market.symbol\n ? 'border-l-2 border-main text-main dark:text-main bg-gray-50 dark:bg-gray-950'\n : 'text-gray-900 dark:text-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-gray-500 dark:text-gray-400\">\n No markets found\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
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"]}
@@ -7,10 +7,10 @@ export default function MarketStats(_a) {
7
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
8
  }
9
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" }));
10
+ return (_jsx("div", { className: "bg-n1-gray-50 dark:bg-n1-gray-800 p-3 rounded-sm text-n1-gray-500 dark:text-n1-gray-400 text-sm border border-n1-gray-200 dark:border-n1-gray-800", children: "Select a market to view statistics" }));
11
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
12
+ return (_jsx("div", { className: "bg-n1-gray-50 dark:bg-n1-gray-800 p-3 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: loading && !marketStats ? (_jsx("div", { className: "flex items-center justify-center h-24", children: _jsx(RefreshCw, { size: 24, className: "text-n1-main n1-animate-spin" }) })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between mb-3", children: [_jsx("h3", { className: "text-base font-semibold text-n1-gray-900 dark:text-n1-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
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 })] })] })] })] })) }));
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-n1-main n1-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-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: [_jsx("span", { className: "text-xs text-n1-gray-500 dark:text-n1-gray-400", children: "Last Price" }), _jsx("span", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-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-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: [_jsx("span", { className: "text-xs text-n1-gray-500 dark:text-n1-gray-400", children: "24h High" }), _jsx("span", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-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-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: [_jsx("span", { className: "text-xs text-n1-gray-500 dark:text-n1-gray-400", children: "24h Low" }), _jsx("span", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-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-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: [_jsx("span", { className: "text-xs text-n1-gray-500 dark:text-n1-gray-400", children: "24h Volume" }), _jsx("span", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-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-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: [_jsx("span", { className: "text-xs text-n1-gray-500 dark:text-n1-gray-400", children: "Base Asset" }), _jsx("span", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100", children: marketStats === null || marketStats === void 0 ? void 0 : marketStats.baseAsset })] }), _jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800", children: [_jsx("span", { className: "text-xs text-n1-gray-500 dark:text-n1-gray-400", children: "Quote Asset" }), _jsx("span", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100", children: marketStats === null || marketStats === void 0 ? void 0 : marketStats.quoteAsset })] })] })] })] })) }));
15
15
  }
16
16
  //# sourceMappingURL=MarketStats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarketStats.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ArrowDown, ArrowUp, RefreshCw } from 'lucide-react';\n\ninterface MarketStatsProps {\n marketStats: any;\n loading: boolean;\n error: string | null;\n}\n\nexport default function MarketStats({\n marketStats,\n loading,\n error,\n}: MarketStatsProps) {\n if (error) {\n return (\n <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\">\n {error}\n </div>\n );\n }\n\n if (!marketStats && !loading) {\n return (\n <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\">\n Select a market to view statistics\n </div>\n );\n }\n\n return (\n <div className=\"bg-gray-50 dark:bg-gray-800 p-3 rounded-sm border border-gray-200 dark:border-gray-800\">\n {loading && !marketStats ? (\n <div className=\"flex items-center justify-center h-24\">\n <RefreshCw size={24} className=\"text-main animate-spin\" />\n </div>\n ) : (\n <>\n <div className=\"flex items-center justify-between mb-3\">\n <h3 className=\"text-base font-semibold text-gray-900 dark:text-gray-100\">\n {marketStats?.symbol}\n </h3>\n <div className=\"flex items-center\">\n <span\n className={`text-xs font-medium px-2 py-1 rounded-sm ${\n marketStats?.priceChangePercent >= 0\n ? 'bg-green-100 dark:bg-green-900/20 text-green-600 dark:text-green-400 border border-green-200 dark:border-green-900/30'\n : 'bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400 border border-red-200 dark:border-red-900/30'\n }`}\n >\n {marketStats?.priceChangePercent >= 0 ? (\n <ArrowUp size={12} className=\"inline mr-1\" />\n ) : (\n <ArrowDown size={12} className=\"inline mr-1\" />\n )}\n {Math.abs(marketStats?.priceChangePercent || 0).toFixed(2)}%\n </span>\n {loading && (\n <RefreshCw size={14} className=\"ml-2 text-main animate-spin\" />\n )}\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-2\">\n <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\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n Last Price\n </span>\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100 font-mono\">\n {marketStats?.lastPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n <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\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n 24h High\n </span>\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100 font-mono\">\n {marketStats?.highPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n <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\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n 24h Low\n </span>\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100 font-mono\">\n {marketStats?.lowPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n </div>\n <div className=\"space-y-2\">\n <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\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n 24h Volume\n </span>\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100 font-mono\">\n {marketStats?.volume?.toFixed(2)}\n </span>\n </div>\n <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\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n Base Asset\n </span>\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100\">\n {marketStats?.baseAsset}\n </span>\n </div>\n <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\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n Quote Asset\n </span>\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100\">\n {marketStats?.quoteAsset}\n </span>\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"MarketStats.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ArrowDown, ArrowUp, RefreshCw } from 'lucide-react';\n\ninterface MarketStatsProps {\n marketStats: any;\n loading: boolean;\n error: string | null;\n}\n\nexport default function MarketStats({\n marketStats,\n loading,\n error,\n}: MarketStatsProps) {\n if (error) {\n return (\n <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\">\n {error}\n </div>\n );\n }\n\n if (!marketStats && !loading) {\n return (\n <div className=\"bg-n1-gray-50 dark:bg-n1-gray-800 p-3 rounded-sm text-n1-gray-500 dark:text-n1-gray-400 text-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n Select a market to view statistics\n </div>\n );\n }\n\n return (\n <div className=\"bg-n1-gray-50 dark:bg-n1-gray-800 p-3 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n {loading && !marketStats ? (\n <div className=\"flex items-center justify-center h-24\">\n <RefreshCw size={24} className=\"text-n1-main n1-animate-spin\" />\n </div>\n ) : (\n <>\n <div className=\"flex items-center justify-between mb-3\">\n <h3 className=\"text-base font-semibold text-n1-gray-900 dark:text-n1-gray-100\">\n {marketStats?.symbol}\n </h3>\n <div className=\"flex items-center\">\n <span\n className={`text-xs font-medium px-2 py-1 rounded-sm ${\n marketStats?.priceChangePercent >= 0\n ? 'bg-green-100 dark:bg-green-900/20 text-green-600 dark:text-green-400 border border-green-200 dark:border-green-900/30'\n : 'bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400 border border-red-200 dark:border-red-900/30'\n }`}\n >\n {marketStats?.priceChangePercent >= 0 ? (\n <ArrowUp size={12} className=\"inline mr-1\" />\n ) : (\n <ArrowDown size={12} className=\"inline mr-1\" />\n )}\n {Math.abs(marketStats?.priceChangePercent || 0).toFixed(2)}%\n </span>\n {loading && (\n <RefreshCw size={14} className=\"ml-2 text-n1-main n1-animate-spin\" />\n )}\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n <span className=\"text-xs text-n1-gray-500 dark:text-n1-gray-400\">\n Last Price\n </span>\n <span className=\"text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100 font-mono\">\n {marketStats?.lastPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n <span className=\"text-xs text-n1-gray-500 dark:text-n1-gray-400\">\n 24h High\n </span>\n <span className=\"text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100 font-mono\">\n {marketStats?.highPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n <span className=\"text-xs text-n1-gray-500 dark:text-n1-gray-400\">\n 24h Low\n </span>\n <span className=\"text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100 font-mono\">\n {marketStats?.lowPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n </div>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n <span className=\"text-xs text-n1-gray-500 dark:text-n1-gray-400\">\n 24h Volume\n </span>\n <span className=\"text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100 font-mono\">\n {marketStats?.volume?.toFixed(2)}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n <span className=\"text-xs text-n1-gray-500 dark:text-n1-gray-400\">\n Base Asset\n </span>\n <span className=\"text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100\">\n {marketStats?.baseAsset}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-gray-950 p-2 rounded-sm border border-n1-gray-200 dark:border-n1-gray-800\">\n <span className=\"text-xs text-n1-gray-500 dark:text-n1-gray-400\">\n Quote Asset\n </span>\n <span className=\"text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100\">\n {marketStats?.quoteAsset}\n </span>\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n"]}
@@ -49,7 +49,7 @@ export default function NordTradingView() {
49
49
  history: 'History',
50
50
  };
51
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() })] }));
52
+ ? 'border-n1-main/80 text-n1-main bg-n1-main/[0.03] shadow-[0_0_0_1px_rgba(255,68,26,0.1)]'
53
+ : 'border-n1-gray-200 dark:border-n1-gray-800 text-n1-gray-500 dark:text-n1-gray-400 hover:border-n1-gray-300 dark:hover:border-n1-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-n1-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-n1-gray-200 dark:border-n1-gray-800 rounded-[2px] overflow-visible hover:border-n1-gray-300 dark:hover:border-n1-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-n1-gray-200 dark:border-n1-gray-800 rounded-[3px] shadow-sm bg-white dark:bg-n1-gray-950", children: renderActiveView() })] }));
54
54
  }
55
55
  //# sourceMappingURL=NordTradingView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NordTradingView.js","sourceRoot":"","sources":["../../../../src/Modal/Sidebar/NordTradingView/NordTradingView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useN1WalletContext } from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport MarketOverview from './MarketOverview/MarketOverview';\nimport OrderBook from './OrderBook/OrderBook';\nimport TradeForm from './TradeForm/TradeForm';\nimport UserOrders from './UserOrders/UserOrders';\nimport UserPositions from './UserPositions/UserPositions';\nimport UserBalances from './UserBalances/UserBalances';\n\n// Define the available view types\ntype ViewType =\n | 'orderbook'\n | 'tradeform'\n | 'orders'\n | 'positions'\n | 'balances'\n | 'history';\n\nexport default function NordTradingView() {\n const { sessionMode, nord, nordUser } = useN1WalletContext();\n const [selectedMarket, setSelectedMarket] = useState<string | null>(null);\n const [activeView, setActiveView] = useState<ViewType>('orderbook');\n\n // Early return if not in Nord session mode or if Nord/NordUser is not available\n if (sessionMode !== N1SessionMode.Nord || !nord || !nordUser) {\n return null;\n }\n\n // Set default selected market if not already set and markets are available\n useEffect(() => {\n if (!selectedMarket && nord.markets && nord.markets.length > 0) {\n setSelectedMarket(nord.markets[0].symbol);\n }\n }, [nord.markets, selectedMarket]);\n\n // Render the active view component\n const renderActiveView = () => {\n switch (activeView) {\n case 'orderbook':\n return <OrderBook marketSymbol={selectedMarket} />;\n case 'tradeform':\n return <TradeForm marketSymbol={selectedMarket} />;\n case 'orders':\n return <UserOrders />;\n case 'positions':\n return (\n <div className=\"space-y-4\">\n <UserPositions />\n <UserBalances />\n </div>\n );\n case 'balances':\n return <UserBalances />;\n default:\n return <OrderBook marketSymbol={selectedMarket} />;\n }\n };\n\n // Map view types to display names\n const viewLabels: Record<ViewType, string> = {\n orderbook: 'Order Book',\n tradeform: 'Trade',\n positions: 'Positions',\n orders: 'Orders',\n balances: 'Balances',\n history: 'History',\n };\n\n return (\n <div className=\"space-y-4 @container\">\n {/* Navigation Bar - Combined Menu and Market Overview */}\n <div className=\"flex flex-col @md:flex-row justify-between items-start @md:items-center bg-transparent mb-3 gap-3 @md:gap-0\">\n {/* View Selector Tabs - Redesigned */}\n <div className=\"flex justify-start gap-2 flex-wrap w-full @md:w-auto\">\n {['orderbook', 'tradeform', 'positions', 'orders'].map((view) => (\n <button\n key={view}\n onClick={() => setActiveView(view as ViewType)}\n className={`\n relative px-4 @md:px-5 py-2 text-sm font-medium tracking-wide transition-all duration-150 \n border ${\n activeView === view\n ? 'border-main/80 text-main bg-main/[0.03] shadow-[0_0_0_1px_rgba(255,68,26,0.1)]'\n : 'border-gray-200 dark:border-gray-800 text-gray-500 dark:text-gray-400 hover:border-gray-300 dark:hover:border-gray-700'\n }\n first:ml-0 last:mr-0 group rounded-[2px] overflow-hidden flex-grow @md:flex-grow-0\n `}\n >\n <span className=\"relative z-10\">\n {viewLabels[view as ViewType]}\n </span>\n <span\n className={`\n absolute inset-0 bg-main/[0.02] opacity-0 transition-opacity duration-150\n ${activeView !== view ? 'group-hover:opacity-100' : ''}\n `}\n />\n </button>\n ))}\n </div>\n\n {/* Market Overview - Styled to match the menu */}\n <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\">\n <div className=\"px-5 py-2 text-sm\">\n <MarketOverview\n selectedMarket={selectedMarket}\n onMarketChange={setSelectedMarket}\n />\n </div>\n </div>\n </div>\n\n {/* Active View */}\n <div className=\"border border-gray-200 dark:border-gray-800 rounded-[3px] shadow-sm bg-white dark:bg-gray-950\">\n {renderActiveView()}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"NordTradingView.js","sourceRoot":"","sources":["../../../../src/Modal/Sidebar/NordTradingView/NordTradingView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAWvD,MAAM,CAAC,OAAO,UAAU,eAAe;IAC/B,IAAA,KAAkC,kBAAkB,EAAE,EAApD,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAyB,CAAC;IACvD,IAAA,KAAsC,QAAQ,CAAgB,IAAI,CAAC,EAAlE,cAAc,QAAA,EAAE,iBAAiB,QAAiC,CAAC;IACpE,IAAA,KAA8B,QAAQ,CAAW,WAAW,CAAC,EAA5D,UAAU,QAAA,EAAE,aAAa,QAAmC,CAAC;IAEpE,gFAAgF;IAChF,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,SAAS,CAAC;QACR,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnC,mCAAmC;IACnC,IAAM,gBAAgB,GAAG;QACvB,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,WAAW;gBACd,OAAO,KAAC,SAAS,IAAC,YAAY,EAAE,cAAc,GAAI,CAAC;YACrD,KAAK,WAAW;gBACd,OAAO,KAAC,SAAS,IAAC,YAAY,EAAE,cAAc,GAAI,CAAC;YACrD,KAAK,QAAQ;gBACX,OAAO,KAAC,UAAU,KAAG,CAAC;YACxB,KAAK,WAAW;gBACd,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,KAAG,EACjB,KAAC,YAAY,KAAG,IACZ,CACP,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO,KAAC,YAAY,KAAG,CAAC;YAC1B;gBACE,OAAO,KAAC,SAAS,IAAC,YAAY,EAAE,cAAc,GAAI,CAAC;QACvD,CAAC;IACH,CAAC,CAAC;IAEF,kCAAkC;IAClC,IAAM,UAAU,GAA6B;QAC3C,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAEnC,eAAK,SAAS,EAAC,6GAA6G,aAE1H,cAAK,SAAS,EAAC,sDAAsD,YAClE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC/D,kBAEE,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,IAAgB,CAAC,EAA/B,CAA+B,EAC9C,SAAS,EAAE,+IAGP,UAAU,KAAK,IAAI;gCACjB,CAAC,CAAC,yFAAyF;gCAC3F,CAAC,CAAC,0IAA0I,yHAGjJ,aAED,eAAM,SAAS,EAAC,eAAe,YAC5B,UAAU,CAAC,IAAgB,CAAC,GACxB,EACP,eACE,SAAS,EAAE,8HAEP,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,uBACvD,GACD,KApBG,IAAI,CAqBF,CACV,EAxBgE,CAwBhE,CAAC,GACE,EAGN,cAAK,SAAS,EAAC,sNAAsN,YACnO,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,cAAc,IACb,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,iBAAiB,GACjC,GACE,GACF,IACF,EAGN,cAAK,SAAS,EAAC,wGAAwG,YACpH,gBAAgB,EAAE,GACf,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useN1WalletContext } from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport MarketOverview from './MarketOverview/MarketOverview';\nimport OrderBook from './OrderBook/OrderBook';\nimport TradeForm from './TradeForm/TradeForm';\nimport UserOrders from './UserOrders/UserOrders';\nimport UserPositions from './UserPositions/UserPositions';\nimport UserBalances from './UserBalances/UserBalances';\n\n// Define the available view types\ntype ViewType =\n | 'orderbook'\n | 'tradeform'\n | 'orders'\n | 'positions'\n | 'balances'\n | 'history';\n\nexport default function NordTradingView() {\n const { sessionMode, nord, nordUser } = useN1WalletContext();\n const [selectedMarket, setSelectedMarket] = useState<string | null>(null);\n const [activeView, setActiveView] = useState<ViewType>('orderbook');\n\n // Early return if not in Nord session mode or if Nord/NordUser is not available\n if (sessionMode !== N1SessionMode.Nord || !nord || !nordUser) {\n return null;\n }\n\n // Set default selected market if not already set and markets are available\n useEffect(() => {\n if (!selectedMarket && nord.markets && nord.markets.length > 0) {\n setSelectedMarket(nord.markets[0].symbol);\n }\n }, [nord.markets, selectedMarket]);\n\n // Render the active view component\n const renderActiveView = () => {\n switch (activeView) {\n case 'orderbook':\n return <OrderBook marketSymbol={selectedMarket} />;\n case 'tradeform':\n return <TradeForm marketSymbol={selectedMarket} />;\n case 'orders':\n return <UserOrders />;\n case 'positions':\n return (\n <div className=\"space-y-4\">\n <UserPositions />\n <UserBalances />\n </div>\n );\n case 'balances':\n return <UserBalances />;\n default:\n return <OrderBook marketSymbol={selectedMarket} />;\n }\n };\n\n // Map view types to display names\n const viewLabels: Record<ViewType, string> = {\n orderbook: 'Order Book',\n tradeform: 'Trade',\n positions: 'Positions',\n orders: 'Orders',\n balances: 'Balances',\n history: 'History',\n };\n\n return (\n <div className=\"space-y-4 @container\">\n {/* Navigation Bar - Combined Menu and Market Overview */}\n <div className=\"flex flex-col @md:flex-row justify-between items-start @md:items-center bg-transparent mb-3 gap-3 @md:gap-0\">\n {/* View Selector Tabs - Redesigned */}\n <div className=\"flex justify-start gap-2 flex-wrap w-full @md:w-auto\">\n {['orderbook', 'tradeform', 'positions', 'orders'].map((view) => (\n <button\n key={view}\n onClick={() => setActiveView(view as ViewType)}\n className={`\n relative px-4 @md:px-5 py-2 text-sm font-medium tracking-wide transition-all duration-150 \n border ${\n activeView === view\n ? 'border-n1-main/80 text-n1-main bg-n1-main/[0.03] shadow-[0_0_0_1px_rgba(255,68,26,0.1)]'\n : 'border-n1-gray-200 dark:border-n1-gray-800 text-n1-gray-500 dark:text-n1-gray-400 hover:border-n1-gray-300 dark:hover:border-n1-gray-700'\n }\n first:ml-0 last:mr-0 group rounded-[2px] overflow-hidden flex-grow @md:flex-grow-0\n `}\n >\n <span className=\"relative z-10\">\n {viewLabels[view as ViewType]}\n </span>\n <span\n className={`\n absolute inset-0 bg-n1-main/[0.02] opacity-0 transition-opacity duration-150\n ${activeView !== view ? 'group-hover:opacity-100' : ''}\n `}\n />\n </button>\n ))}\n </div>\n\n {/* Market Overview - Styled to match the menu */}\n <div className=\"min-w-[160px] w-full @md:w-auto border border-n1-gray-200 dark:border-n1-gray-800 rounded-[2px] overflow-visible hover:border-n1-gray-300 dark:hover:border-n1-gray-700 transition-colors duration-150 relative z-20\">\n <div className=\"px-5 py-2 text-sm\">\n <MarketOverview\n selectedMarket={selectedMarket}\n onMarketChange={setSelectedMarket}\n />\n </div>\n </div>\n </div>\n\n {/* Active View */}\n <div className=\"border border-n1-gray-200 dark:border-n1-gray-800 rounded-[3px] shadow-sm bg-white dark:bg-n1-gray-950\">\n {renderActiveView()}\n </div>\n </div>\n );\n}\n"]}
@@ -56,7 +56,7 @@ var OrderBookDepthVisualizer = function (_a) {
56
56
  if (!data || data.bids.length === 0 || data.asks.length === 0) {
57
57
  return null;
58
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" }) })] }) })] }));
59
+ return (_jsxs("div", { className: "mt-3", children: [_jsx("h3", { className: "text-xs font-medium text-n1-gray-900 dark:text-n1-gray-100 mb-2", children: "Depth Chart" }), _jsx("div", { className: "w-full h-24 border border-n1-gray-200 dark:border-n1-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-n1-gray-300 dark:bg-n1-gray-600" }) })] }) })] }));
60
60
  };
61
61
  export default function OrderBook(_a) {
62
62
  var _this = this;
@@ -204,6 +204,6 @@ export default function OrderBook(_a) {
204
204
  return Math.max.apply(Math, __spreadArray(__spreadArray([], allSizes, false), [0], false));
205
205
  };
206
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 })] }) }))] }));
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-n1-main n1-animate-spin" }) })) : !marketSymbol ? (_jsx("div", { className: "p-3 mt-3 border border-n1-gray-200 dark:border-n1-gray-800 rounded-sm text-n1-gray-500 dark:text-n1-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
208
  }
209
209
  //# sourceMappingURL=OrderBook.js.map