@n1xyz/wallet-widget 0.0.12 → 0.0.15

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 (124) hide show
  1. package/dist/Logic/sessionManager.d.ts +0 -36
  2. package/dist/Logic/sessionManager.js +1 -146
  3. package/dist/Logic/sessionManager.js.map +1 -1
  4. package/dist/Modal/LoadingFallback.js +1 -1
  5. package/dist/Modal/LoadingFallback.js.map +1 -1
  6. package/dist/Modal/N1WalletModal.js +6 -5
  7. package/dist/Modal/N1WalletModal.js.map +1 -1
  8. package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
  9. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
  10. package/dist/Modal/NTSFlow/components/BackButton.js +1 -1
  11. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
  12. package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
  13. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
  14. package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
  15. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
  16. package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
  17. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
  18. package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
  19. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
  20. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
  21. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
  22. package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
  23. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
  24. package/dist/Modal/NordFlow/NordFlow.js +2 -2
  25. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  26. package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
  27. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
  28. package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
  29. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
  30. package/dist/Modal/NordFlow/components/Header.js +1 -1
  31. package/dist/Modal/NordFlow/components/Header.js.map +1 -1
  32. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
  33. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
  34. package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
  35. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
  36. package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
  37. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
  38. package/dist/Modal/NordFlow/components/TransactionTable.js +6 -6
  39. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  40. package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
  41. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
  42. package/dist/Modal/NordFlow/context/DepositContext.js +1 -4
  43. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -1
  44. package/dist/Modal/NordFlow/context/WalletConnectContext.js +0 -2
  45. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -1
  46. package/dist/Modal/NordFlow/screens/00-IdleScreen.js +1 -1
  47. package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -1
  48. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +3 -3
  49. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  50. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +4 -4
  51. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
  52. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +2 -2
  53. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
  54. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +4 -22
  55. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
  56. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +1 -1
  57. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
  58. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +4 -5
  59. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
  60. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +3 -3
  61. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
  62. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +2 -2
  63. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
  64. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +2 -2
  65. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
  66. package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
  67. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
  68. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
  69. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
  70. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
  71. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
  72. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
  73. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
  74. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
  75. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
  76. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
  77. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
  78. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
  79. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
  80. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
  81. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
  82. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
  83. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
  84. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
  85. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
  86. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
  87. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
  88. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
  89. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
  90. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
  91. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
  92. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
  93. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
  94. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
  95. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
  96. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
  97. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
  98. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
  99. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
  100. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
  101. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
  102. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
  103. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
  104. package/dist/Provider/LazyWalletProvider.js +3 -3
  105. package/dist/Provider/LazyWalletProvider.js.map +1 -1
  106. package/dist/Provider/N1WalletProvider.js +11 -21
  107. package/dist/Provider/N1WalletProvider.js.map +1 -1
  108. package/dist/Provider/hooks/useNordUserInitialization.d.ts +1 -20
  109. package/dist/Provider/hooks/useNordUserInitialization.js +5 -5
  110. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
  111. package/dist/WidgetButton/N1ConnectButton.js +1 -1
  112. package/dist/WidgetButton/N1ConnectButton.js.map +1 -1
  113. package/dist/components/Logo.js.map +1 -1
  114. package/dist/components/QRCodeLoader.js +1 -1
  115. package/dist/components/QRCodeLoader.js.map +1 -1
  116. package/dist/components/logos/EVMChainsGroup.js +1 -1
  117. package/dist/components/logos/EVMChainsGroup.js.map +1 -1
  118. package/dist/components/logos/MoreChainsGroup.js +1 -1
  119. package/dist/components/logos/MoreChainsGroup.js.map +1 -1
  120. package/dist/index.d.ts +1 -1
  121. package/dist/index.js +1 -1
  122. package/dist/index.js.map +1 -1
  123. package/dist/main.css +2 -1
  124. package/package.json +2 -2
@@ -9,45 +9,9 @@ export interface SessionKeyData {
9
9
  createdAt: string;
10
10
  sessionMode: N1SessionMode;
11
11
  }
12
- /**
13
- * Generate a new session key pair
14
- * @returns Promise resolving to the generated key pair
15
- */
16
- export declare function generateSessionKeys(): Promise<{
17
- publicKey: Uint8Array;
18
- privateKey: Uint8Array;
19
- }>;
20
- /**
21
- * Create a signing function for the given key pair
22
- * @param privateKey The private key to use for signing
23
- * @returns A function that signs messages with the private key
24
- */
25
- export declare function createSigningFunction(privateKey: Uint8Array): (message: Uint8Array) => Promise<Uint8Array>;
26
- /**
27
- * Store session keys in local storage
28
- * @param data The session key data to store
29
- */
30
- export declare function storeSessionKeys({ privKey, walletPublicKey, chainName, sessionMode, }: {
31
- privKey: Uint8Array;
32
- walletPublicKey: string;
33
- chainName: string;
34
- sessionMode: N1SessionMode;
35
- }): void;
36
12
  /**
37
13
  * Retrieve session keys from local storage
38
14
  * @param walletPublicKey The wallet public key to retrieve session keys for
39
15
  * @returns The session key data or null if not found
40
16
  */
41
17
  export declare function getSessionKeys(walletPublicKey: string): SessionKeyData | null;
42
- /**
43
- * Remove session keys from local storage
44
- * @param walletPublicKey The wallet public key to remove session keys for
45
- */
46
- export declare function removeSessionKeys(walletPublicKey: string): void;
47
- /**
48
- * Check if a session exists and is valid
49
- * @param walletPublicKey The wallet public key to check
50
- * @param sessionMode The session mode to check
51
- * @returns Whether a valid session exists
52
- */
53
- export declare function hasValidSession(walletPublicKey: string, sessionMode: N1SessionMode): Promise<boolean>;
@@ -1,109 +1,6 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import { generateSessionKeyPair, signEd25519 } from '@n1xyz/nts-sdk';
38
1
  import { N1SessionMode } from '../Provider/types';
39
2
  import { logger } from '../utils/logger';
40
- import { arrayBufferToBase64, base64ToUint8Array } from './utils';
41
- /**
42
- * Generate a new session key pair
43
- * @returns Promise resolving to the generated key pair
44
- */
45
- export function generateSessionKeys() {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var error_1;
48
- return __generator(this, function (_a) {
49
- switch (_a.label) {
50
- case 0:
51
- _a.trys.push([0, 2, , 3]);
52
- return [4 /*yield*/, generateSessionKeyPair()];
53
- case 1: return [2 /*return*/, _a.sent()];
54
- case 2:
55
- error_1 = _a.sent();
56
- logger.error('Failed to generate session keys', error_1);
57
- throw error_1;
58
- case 3: return [2 /*return*/];
59
- }
60
- });
61
- });
62
- }
63
- /**
64
- * Create a signing function for the given key pair
65
- * @param privateKey The private key to use for signing
66
- * @returns A function that signs messages with the private key
67
- */
68
- export function createSigningFunction(privateKey) {
69
- var _this = this;
70
- return function (message) { return __awaiter(_this, void 0, void 0, function () {
71
- var error_2;
72
- return __generator(this, function (_a) {
73
- switch (_a.label) {
74
- case 0:
75
- _a.trys.push([0, 2, , 3]);
76
- return [4 /*yield*/, signEd25519(message, privateKey)];
77
- case 1: return [2 /*return*/, _a.sent()];
78
- case 2:
79
- error_2 = _a.sent();
80
- logger.error('Error signing with session key', error_2);
81
- throw error_2;
82
- case 3: return [2 /*return*/];
83
- }
84
- });
85
- }); };
86
- }
87
- /**
88
- * Store session keys in local storage
89
- * @param data The session key data to store
90
- */
91
- export function storeSessionKeys(_a) {
92
- var privKey = _a.privKey, walletPublicKey = _a.walletPublicKey, chainName = _a.chainName, sessionMode = _a.sessionMode;
93
- var storageKey = "n1_sessionKey_".concat(walletPublicKey);
94
- var data = {
95
- ed25519PrivateKey: arrayBufferToBase64(privKey),
96
- walletPublicKey: walletPublicKey,
97
- chainName: chainName,
98
- createdAt: new Date().toISOString(),
99
- sessionMode: sessionMode.toString(),
100
- };
101
- localStorage.setItem(storageKey, JSON.stringify(data));
102
- logger.debug('Session keys stored in local storage', {
103
- walletPublicKey: walletPublicKey,
104
- sessionMode: sessionMode,
105
- });
106
- }
3
+ import { base64ToUint8Array } from './utils';
107
4
  /**
108
5
  * Retrieve session keys from local storage
109
6
  * @param walletPublicKey The wallet public key to retrieve session keys for
@@ -138,46 +35,4 @@ export function getSessionKeys(walletPublicKey) {
138
35
  return null;
139
36
  }
140
37
  }
141
- /**
142
- * Remove session keys from local storage
143
- * @param walletPublicKey The wallet public key to remove session keys for
144
- */
145
- export function removeSessionKeys(walletPublicKey) {
146
- var storageKey = "n1_sessionKey_".concat(walletPublicKey);
147
- localStorage.removeItem(storageKey);
148
- logger.debug('Session keys removed from local storage', { walletPublicKey: walletPublicKey });
149
- }
150
- /**
151
- * Check if a session exists and is valid
152
- * @param walletPublicKey The wallet public key to check
153
- * @param sessionMode The session mode to check
154
- * @returns Whether a valid session exists
155
- */
156
- export function hasValidSession(walletPublicKey, sessionMode) {
157
- return __awaiter(this, void 0, void 0, function () {
158
- var sessionData, createdAt, now, sessionAgeMs, maxSessionAgeMs;
159
- return __generator(this, function (_a) {
160
- sessionData = getSessionKeys(walletPublicKey);
161
- if (!sessionData) {
162
- return [2 /*return*/, false];
163
- }
164
- // Check if the session mode matches
165
- if (sessionData.sessionMode !== sessionMode) {
166
- return [2 /*return*/, false];
167
- }
168
- createdAt = new Date(sessionData.createdAt);
169
- now = new Date();
170
- sessionAgeMs = now.getTime() - createdAt.getTime();
171
- maxSessionAgeMs = 7 * 24 * 60 * 60 * 1000;
172
- if (sessionAgeMs > maxSessionAgeMs) {
173
- // Session is expired, remove it
174
- removeSessionKeys(walletPublicKey);
175
- return [2 /*return*/, false];
176
- }
177
- // TODO: Add additional validation based on session mode
178
- // For example, verify the session with the backend
179
- return [2 /*return*/, true];
180
- });
181
- });
182
- }
183
38
  //# sourceMappingURL=sessionManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../src/Logic/sessionManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { generateSessionKeyPair, signEd25519 } from '@n1xyz/nts-sdk';\nimport { N1SessionMode } from '../Provider/types';\nimport { logger } from '../utils/logger';\nimport { arrayBufferToBase64, base64ToUint8Array } from './utils';\n\n/**\n * Interface for session key data stored in local storage\n */\nexport interface SessionKeyData {\n ed25519PrivateKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n sessionMode: N1SessionMode;\n}\n\n/**\n * Generate a new session key pair\n * @returns Promise resolving to the generated key pair\n */\nexport async function generateSessionKeys(): Promise<{\n publicKey: Uint8Array;\n privateKey: Uint8Array;\n}> {\n try {\n return await generateSessionKeyPair();\n } catch (error) {\n logger.error('Failed to generate session keys', error);\n throw error;\n }\n}\n\n/**\n * Create a signing function for the given key pair\n * @param privateKey The private key to use for signing\n * @returns A function that signs messages with the private key\n */\nexport function createSigningFunction(privateKey: Uint8Array) {\n return async (message: Uint8Array): Promise<Uint8Array> => {\n try {\n return await signEd25519(message, privateKey);\n } catch (error) {\n logger.error('Error signing with session key', error);\n throw error;\n }\n };\n}\n\n/**\n * Store session keys in local storage\n * @param data The session key data to store\n */\nexport function storeSessionKeys({\n privKey,\n walletPublicKey,\n chainName,\n sessionMode,\n}: {\n privKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n sessionMode: N1SessionMode;\n}): void {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = {\n ed25519PrivateKey: arrayBufferToBase64(privKey),\n walletPublicKey,\n chainName,\n createdAt: new Date().toISOString(),\n sessionMode: sessionMode.toString(),\n };\n\n localStorage.setItem(storageKey, JSON.stringify(data));\n logger.debug('Session keys stored in local storage', {\n walletPublicKey,\n sessionMode,\n });\n}\n\n/**\n * Retrieve session keys from local storage\n * @param walletPublicKey The wallet public key to retrieve session keys for\n * @returns The session key data or null if not found\n */\nexport function getSessionKeys(walletPublicKey: string): SessionKeyData | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = localStorage.getItem(storageKey);\n if (!data) {\n return null;\n }\n\n try {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n }\n\n // Convert sessionMode string to enum value\n if (typeof parsedData.sessionMode === 'string') {\n parsedData.sessionMode =\n parsedData.sessionMode === N1SessionMode.Nord.toString()\n ? N1SessionMode.Nord\n : N1SessionMode.NTS;\n } else if (parsedData.sessionMode === undefined) {\n // For backward compatibility, default to NTS mode if not specified\n parsedData.sessionMode = N1SessionMode.NTS;\n }\n\n return parsedData as SessionKeyData;\n } catch (error) {\n logger.error('Failed to parse session key data', error);\n return null;\n }\n}\n\n/**\n * Remove session keys from local storage\n * @param walletPublicKey The wallet public key to remove session keys for\n */\nexport function removeSessionKeys(walletPublicKey: string): void {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n localStorage.removeItem(storageKey);\n logger.debug('Session keys removed from local storage', { walletPublicKey });\n}\n\n/**\n * Check if a session exists and is valid\n * @param walletPublicKey The wallet public key to check\n * @param sessionMode The session mode to check\n * @returns Whether a valid session exists\n */\nexport async function hasValidSession(\n walletPublicKey: string,\n sessionMode: N1SessionMode\n): Promise<boolean> {\n const sessionData = getSessionKeys(walletPublicKey);\n\n if (!sessionData) {\n return false;\n }\n\n // Check if the session mode matches\n if (sessionData.sessionMode !== sessionMode) {\n return false;\n }\n\n // Check if the session is expired (e.g., older than 7 days)\n const createdAt = new Date(sessionData.createdAt);\n const now = new Date();\n const sessionAgeMs = now.getTime() - createdAt.getTime();\n const maxSessionAgeMs = 7 * 24 * 60 * 60 * 1000; // 7 days\n\n if (sessionAgeMs > maxSessionAgeMs) {\n // Session is expired, remove it\n removeSessionKeys(walletPublicKey);\n return false;\n }\n\n // TODO: Add additional validation based on session mode\n // For example, verify the session with the backend\n\n return true;\n}\n"]}
1
+ {"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../src/Logic/sessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAa7C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,eAAuB;IACpD,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,IAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,UAAU,CAAC,iBAAiB,GAAG,kBAAkB,CAC/C,UAAU,CAAC,iBAAiB,CAC7B,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC/C,UAAU,CAAC,WAAW;gBACpB,UAAU,CAAC,WAAW,KAAK,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACtD,CAAC,CAAC,aAAa,CAAC,IAAI;oBACpB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;QAC1B,CAAC;aAAM,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAChD,mEAAmE;YACnE,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC;QAC7C,CAAC;QAED,OAAO,UAA4B,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { N1SessionMode } from '../Provider/types';\nimport { logger } from '../utils/logger';\nimport { base64ToUint8Array } from './utils';\n\n/**\n * Interface for session key data stored in local storage\n */\nexport interface SessionKeyData {\n ed25519PrivateKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n sessionMode: N1SessionMode;\n}\n\n/**\n * Retrieve session keys from local storage\n * @param walletPublicKey The wallet public key to retrieve session keys for\n * @returns The session key data or null if not found\n */\nexport function getSessionKeys(walletPublicKey: string): SessionKeyData | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = localStorage.getItem(storageKey);\n if (!data) {\n return null;\n }\n\n try {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n }\n\n // Convert sessionMode string to enum value\n if (typeof parsedData.sessionMode === 'string') {\n parsedData.sessionMode =\n parsedData.sessionMode === N1SessionMode.Nord.toString()\n ? N1SessionMode.Nord\n : N1SessionMode.NTS;\n } else if (parsedData.sessionMode === undefined) {\n // For backward compatibility, default to NTS mode if not specified\n parsedData.sessionMode = N1SessionMode.NTS;\n }\n\n return parsedData as SessionKeyData;\n } catch (error) {\n logger.error('Failed to parse session key data', error);\n return null;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- export var LoadingFallback = function () { return (_jsx("div", { className: "flex items-center justify-center w-full h-full", children: _jsx("div", { className: "n1-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-gray-200 dark:border-n1-gray-800" }) })); };
2
+ export var LoadingFallback = function () { return (_jsx("div", { className: "flex items-center justify-center w-full h-full", children: _jsx("div", { className: "n1-ww-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-ww-gray-200 dark:border-n1-ww-gray-800" }) })); };
3
3
  //# sourceMappingURL=LoadingFallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingFallback.js","sourceRoot":"","sources":["../../src/Modal/LoadingFallback.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,IAAM,eAAe,GAAa,cAAM,OAAA,CAC7C,cAAK,SAAS,EAAC,gDAAgD,YAC7D,cAAK,SAAS,EAAC,iGAAiG,GAAO,GACnH,CACP,EAJ8C,CAI9C,CAAC","sourcesContent":["import React from 'react';\n\nexport const LoadingFallback: React.FC = () => (\n <div className=\"flex items-center justify-center w-full h-full\">\n <div className=\"n1-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-gray-200 dark:border-n1-gray-800\"></div>\n </div>\n);\n"]}
1
+ {"version":3,"file":"LoadingFallback.js","sourceRoot":"","sources":["../../src/Modal/LoadingFallback.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,IAAM,eAAe,GAAa,cAAM,OAAA,CAC7C,cAAK,SAAS,EAAC,gDAAgD,YAC7D,cAAK,SAAS,EAAC,0GAA0G,GAAO,GAC5H,CACP,EAJ8C,CAI9C,CAAC","sourcesContent":["import React from 'react';\n\nexport const LoadingFallback: React.FC = () => (\n <div className=\"flex items-center justify-center w-full h-full\">\n <div className=\"n1-ww-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-ww-gray-200 dark:border-n1-ww-gray-800\"></div>\n </div>\n);\n"]}
@@ -150,10 +150,11 @@ export function N1WalletModal() {
150
150
  return [4 /*yield*/, signEd25519(message, sessionData_1.ed25519PrivateKey)];
151
151
  case 1:
152
152
  signature = _a.sent();
153
- return [2 /*return*/, {
154
- signature: signature,
155
- pubKey: sessionPubKey_1,
156
- }];
153
+ console.log("baby", {
154
+ signature: signature,
155
+ pubKey: sessionPubKey_1,
156
+ });
157
+ return [2 /*return*/, signature];
157
158
  }
158
159
  });
159
160
  }); };
@@ -238,6 +239,6 @@ export function N1WalletModal() {
238
239
  };
239
240
  if (!showLogin && !showSidebar)
240
241
  return null;
241
- return (_jsxs("div", { className: darkMode ? 'dark' : '', children: [showLogin && (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center w-full h-full", children: [_jsx("div", { className: "\n fixed inset-0 w-full h-full bg-black/20 dark:bg-black/40 backdrop-blur-sm\n transition-all duration-500 ".concat(ANIMATION_EASE, "\n ").concat(showLoginAnimation ? 'opacity-100' : 'opacity-0', "\n "), onClick: function () { return setStartClosingLogin(true); } }), _jsx("div", { className: "\n relative z-50 transition-all duration-500 ".concat(ANIMATION_EASE, "\n ").concat(showLoginAnimation ? 'opacity-100 scale-100' : 'opacity-0 scale-95', "\n "), children: sessionMode === N1SessionMode.Nord ? (_jsx(NordFlow, { onClose: handleNordFlowClose })) : (_jsx(NTSFlow, {})) })] })), _jsx(Suspense, { fallback: _jsx(LoadingFallback, {}), children: _jsx(N1Sidebar, {}) })] }));
242
+ return (_jsxs("div", { className: 'n1-wallet-widget ' + (darkMode ? 'dark' : ''), children: [showLogin && (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center w-full h-full", children: [_jsx("div", { className: "\n fixed inset-0 w-full h-full bg-black/20 dark:bg-black/40 backdrop-blur-sm\n transition-all duration-500 ".concat(ANIMATION_EASE, "\n ").concat(showLoginAnimation ? 'opacity-100' : 'opacity-0', "\n "), onClick: function () { return setStartClosingLogin(true); } }), _jsx("div", { className: "\n relative z-50 transition-all duration-500 ".concat(ANIMATION_EASE, "\n ").concat(showLoginAnimation ? 'opacity-100 scale-100' : 'opacity-0 scale-95', "\n "), children: sessionMode === N1SessionMode.Nord ? (_jsx(NordFlow, { onClose: handleNordFlowClose })) : (_jsx(NTSFlow, {})) })] })), _jsx(Suspense, { fallback: _jsx(LoadingFallback, {}), children: _jsx(N1Sidebar, {}) })] }));
242
243
  }
243
244
  //# sourceMappingURL=N1WalletModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"N1WalletModal.js","sourceRoot":"","sources":["../../src/Modal/N1WalletModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { bs58Decode, getEd25519PublicKey, signEd25519 } from '@n1xyz/nts-sdk';\nimport { lazy, Suspense, useEffect, useState } from 'react';\nimport { ANIMATION_EASE } from './NordFlow/constants';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport {\n getSessionKeysFromLocalStorage,\n getUser,\n getUserBalances,\n} from '../Logic/utils';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../Provider/hooks';\nimport { N1ModalViewMode, N1SessionMode } from '../Provider/types';\nimport { logger } from '../utils/logger';\nimport { LoadingFallback } from './LoadingFallback';\n\n// Lazy load components\nconst N1Sidebar = lazy(() =>\n import('./Sidebar/N1Sidebar').then((mod) => ({ default: mod.N1Sidebar }))\n);\n\n// Lazy load the NTSFlow component\nconst NTSFlow = lazy(() =>\n import('./NTSFlow').then((mod) => ({\n default: mod.NTSFlow,\n }))\n);\n\n// Lazy load the NordFlow component\nconst NordFlow = lazy(() =>\n import('./NordFlow/NordFlow').then((mod) => ({\n default: mod.NordFlow,\n }))\n);\n\nexport function N1WalletModal() {\n const { showLogin, setShowLogin, viewMode } = useN1WalletContext();\n\n const {\n setBalances,\n setViewMode,\n setUsername,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setIsConnected,\n setWalletPubKey,\n setStartClosingLogin,\n startClosingLogin,\n setLoading,\n setAddress,\n dynamicWallet,\n dynamicSdkHasLoaded,\n darkMode,\n handleError,\n showSidebar,\n sessionMode,\n } = useN1WalletInternalContext();\n\n const [showLoginAnimation, setShowLoginAnimation] = useState(false);\n\n // Handle loading state\n useEffect(() => {\n if (dynamicSdkHasLoaded || dynamicWallet) {\n setLoading(false);\n }\n }, [dynamicSdkHasLoaded, dynamicWallet]);\n\n // Initialize session when wallet is connected\n useEffect(() => {\n\n // For Nord mode, we don't need to execute the NTS flow\n if (sessionMode === N1SessionMode.Nord) {\n return;\n }\n\n const initializeSession = async () => {\n // If wallet is not connected, or not in connect mode, skip\n if (!dynamicWallet || viewMode !== N1ModalViewMode.Connect) {\n return;\n }\n\n // NTS Flow below\n // Wallet is connected or we're in connect mode\n // TODO: make this clearer/ more organized\n try {\n logger.debug('Initialize Session...');\n\n if (dynamicWallet) {\n // Check whitelist status first\n const response = await fetch(\n 'https://argus-1g4n.onrender.com/api/db/verifyWhitelist',\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ address: dynamicWallet.address }),\n }\n );\n\n const whitelistData = await response.json();\n\n if (!whitelistData.isWhitelisted) {\n logger.info('Wallet not whitelisted');\n setViewMode(N1ModalViewMode.NoWhitelist);\n return;\n }\n }\n\n logger.group('Session Initialization');\n try {\n // Get wallet public key\n const walletPubKey =\n dynamicWallet.chain === 'SOL'\n ? bs58Decode(dynamicWallet.address)\n : Uint8Array.from(\n Buffer.from(dynamicWallet.address.slice(2), 'hex')\n );\n setWalletPubKey(walletPubKey);\n\n // Check for existing session\n const sessionData = getSessionKeysFromLocalStorage(\n dynamicWallet.address\n );\n if (!sessionData) {\n logger.info(\n 'No existing session found, transitioning to CreateSession'\n );\n setViewMode(N1ModalViewMode.CreateSession);\n return;\n }\n logger.debug('Session time', sessionData.createdAt);\n logger.debug(\n 'Session time',\n new Date(sessionData.createdAt).getTime()\n );\n logger.debug('Current time', Date.now());\n if (\n new Date(sessionData.createdAt).getTime() <\n Date.now() - 30 * 24 * 60 * 60 * 1000\n ) {\n // Session expired (older than 30 days)\n logger.info(\n 'Session expired, transitioning to CreateSession',\n new Date(sessionData.createdAt)\n );\n setViewMode(N1ModalViewMode.CreateSession);\n return;\n }\n\n // Use existing session\n logger.info('Using existing session');\n const sessionPubKey = await getEd25519PublicKey(\n sessionData.ed25519PrivateKey\n );\n setSessionPubKey(sessionPubKey);\n\n // Setup signing function\n const signFn = async (message: Uint8Array) => {\n logger.debug('signFn', { message });\n const signature = await signEd25519(\n message,\n sessionData.ed25519PrivateKey\n );\n return {\n signature,\n pubKey: sessionPubKey,\n };\n };\n setSignMessageWithSessionKey(() => signFn);\n\n // Fetch user data\n try {\n logger.debug('Fetching user data');\n const userData = await getUser();\n logger.debug('User data:', userData);\n\n if (!userData) {\n logger.info('No user data found, transitioning to CreatingUser');\n setViewMode(N1ModalViewMode.CreatingUser);\n return;\n }\n\n // User exists, set data and check balances\n setUsername(userData.name || '');\n setAddress(dynamicWallet.address);\n setWalletPubKey(walletPubKey);\n setIsConnected(true);\n\n // Fetch balances\n try {\n const balances = await getUserBalances(dynamicWallet.address);\n logger.debug('User balances:', balances);\n setBalances(balances);\n } catch (error) {\n logger.error('Error fetching balances:', error);\n // Continue anyway, non-critical error\n }\n\n // Success!\n setViewMode(N1ModalViewMode.Success);\n } catch (error) {\n logger.error('Error fetching user:', error);\n throw new WalletError(\n WalletErrorCode.USER_FETCH_FAILED,\n 'Failed to fetch user data'\n );\n }\n } finally {\n logger.groupEnd();\n }\n } catch (error) {\n logger.error('Error in session initialization:', error);\n handleError(\n error instanceof WalletError\n ? error\n : new WalletError(\n WalletErrorCode.SESSION_INITIALIZATION_FAILED,\n 'Failed to initialize session'\n )\n );\n }\n };\n\n initializeSession();\n }, [dynamicWallet, dynamicSdkHasLoaded, viewMode, sessionMode]);\n\n // Handle modal visibility\n useEffect(() => {\n if (showLogin) {\n setStartClosingLogin(false);\n setShowLoginAnimation(true);\n }\n }, [showLogin]);\n\n useEffect(() => {\n if (startClosingLogin) {\n setShowLoginAnimation(false);\n const timeout = setTimeout(() => {\n setShowLogin(false);\n setStartClosingLogin(false);\n }, 700);\n return () => clearTimeout(timeout);\n }\n }, [startClosingLogin, setShowLogin, setStartClosingLogin]);\n\n // Handle modal close for Nord mode\n const handleNordFlowClose = () => {\n setStartClosingLogin(true);\n };\n\n if (!showLogin && !showSidebar) return null;\n\n return (\n <div className={darkMode ? 'dark' : ''}>\n {showLogin && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center w-full h-full\">\n <div\n className={`\n fixed inset-0 w-full h-full bg-black/20 dark:bg-black/40 backdrop-blur-sm\n transition-all duration-500 ${ANIMATION_EASE}\n ${showLoginAnimation ? 'opacity-100' : 'opacity-0'}\n `}\n onClick={() => setStartClosingLogin(true)}\n />\n <div\n className={`\n relative z-50 transition-all duration-500 ${ANIMATION_EASE}\n ${showLoginAnimation ? 'opacity-100 scale-100' : 'opacity-0 scale-95'}\n `}\n >\n {sessionMode === N1SessionMode.Nord ? (\n <NordFlow onClose={handleNordFlowClose} />\n ) : (\n <NTSFlow />\n )}\n </div>\n </div>\n )}\n <Suspense fallback={<LoadingFallback />}>\n <N1Sidebar />\n </Suspense>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"N1WalletModal.js","sourceRoot":"","sources":["../../src/Modal/N1WalletModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { bs58Decode, getEd25519PublicKey, signEd25519 } from '@n1xyz/nts-sdk';\nimport { lazy, Suspense, useEffect, useState } from 'react';\nimport { ANIMATION_EASE } from './NordFlow/constants';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport {\n getSessionKeysFromLocalStorage,\n getUser,\n getUserBalances,\n} from '../Logic/utils';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../Provider/hooks';\nimport { N1ModalViewMode, N1SessionMode } from '../Provider/types';\nimport { logger } from '../utils/logger';\nimport { LoadingFallback } from './LoadingFallback';\n\n// Lazy load components\nconst N1Sidebar = lazy(() =>\n import('./Sidebar/N1Sidebar').then((mod) => ({ default: mod.N1Sidebar }))\n);\n\n// Lazy load the NTSFlow component\nconst NTSFlow = lazy(() =>\n import('./NTSFlow').then((mod) => ({\n default: mod.NTSFlow,\n }))\n);\n\n// Lazy load the NordFlow component\nconst NordFlow = lazy(() =>\n import('./NordFlow/NordFlow').then((mod) => ({\n default: mod.NordFlow,\n }))\n);\n\nexport function N1WalletModal() {\n const { showLogin, setShowLogin, viewMode } = useN1WalletContext();\n\n const {\n setBalances,\n setViewMode,\n setUsername,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setIsConnected,\n setWalletPubKey,\n setStartClosingLogin,\n startClosingLogin,\n setLoading,\n setAddress,\n dynamicWallet,\n dynamicSdkHasLoaded,\n darkMode,\n handleError,\n showSidebar,\n sessionMode,\n } = useN1WalletInternalContext();\n\n const [showLoginAnimation, setShowLoginAnimation] = useState(false);\n\n // Handle loading state\n useEffect(() => {\n if (dynamicSdkHasLoaded || dynamicWallet) {\n setLoading(false);\n }\n }, [dynamicSdkHasLoaded, dynamicWallet]);\n\n // Initialize session when wallet is connected\n useEffect(() => {\n\n // For Nord mode, we don't need to execute the NTS flow\n if (sessionMode === N1SessionMode.Nord) {\n return;\n }\n\n const initializeSession = async () => {\n // If wallet is not connected, or not in connect mode, skip\n if (!dynamicWallet || viewMode !== N1ModalViewMode.Connect) {\n return;\n }\n\n // NTS Flow below\n // Wallet is connected or we're in connect mode\n // TODO: make this clearer/ more organized\n try {\n logger.debug('Initialize Session...');\n\n if (dynamicWallet) {\n // Check whitelist status first\n const response = await fetch(\n 'https://argus-1g4n.onrender.com/api/db/verifyWhitelist',\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ address: dynamicWallet.address }),\n }\n );\n\n const whitelistData = await response.json();\n\n if (!whitelistData.isWhitelisted) {\n logger.info('Wallet not whitelisted');\n setViewMode(N1ModalViewMode.NoWhitelist);\n return;\n }\n }\n\n logger.group('Session Initialization');\n try {\n // Get wallet public key\n const walletPubKey =\n dynamicWallet.chain === 'SOL'\n ? bs58Decode(dynamicWallet.address)\n : Uint8Array.from(\n Buffer.from(dynamicWallet.address.slice(2), 'hex')\n );\n setWalletPubKey(walletPubKey);\n\n // Check for existing session\n const sessionData = getSessionKeysFromLocalStorage(\n dynamicWallet.address\n );\n if (!sessionData) {\n logger.info(\n 'No existing session found, transitioning to CreateSession'\n );\n setViewMode(N1ModalViewMode.CreateSession);\n return;\n }\n logger.debug('Session time', sessionData.createdAt);\n logger.debug(\n 'Session time',\n new Date(sessionData.createdAt).getTime()\n );\n logger.debug('Current time', Date.now());\n if (\n new Date(sessionData.createdAt).getTime() <\n Date.now() - 30 * 24 * 60 * 60 * 1000\n ) {\n // Session expired (older than 30 days)\n logger.info(\n 'Session expired, transitioning to CreateSession',\n new Date(sessionData.createdAt)\n );\n setViewMode(N1ModalViewMode.CreateSession);\n return;\n }\n\n // Use existing session\n logger.info('Using existing session');\n const sessionPubKey = await getEd25519PublicKey(\n sessionData.ed25519PrivateKey\n );\n setSessionPubKey(sessionPubKey);\n\n // Setup signing function\n const signFn = async (message: Uint8Array) => {\n logger.debug('signFn', { message });\n const signature = await signEd25519(\n message,\n sessionData.ed25519PrivateKey\n );\n console.log(\"baby\", {\n signature,\n pubKey: sessionPubKey,\n })\n return signature;\n };\n setSignMessageWithSessionKey(() => signFn);\n\n // Fetch user data\n try {\n logger.debug('Fetching user data');\n const userData = await getUser();\n logger.debug('User data:', userData);\n\n if (!userData) {\n logger.info('No user data found, transitioning to CreatingUser');\n setViewMode(N1ModalViewMode.CreatingUser);\n return;\n }\n\n // User exists, set data and check balances\n setUsername(userData.name || '');\n setAddress(dynamicWallet.address);\n setWalletPubKey(walletPubKey);\n setIsConnected(true);\n\n // Fetch balances\n try {\n const balances = await getUserBalances(dynamicWallet.address);\n logger.debug('User balances:', balances);\n setBalances(balances);\n } catch (error) {\n logger.error('Error fetching balances:', error);\n // Continue anyway, non-critical error\n }\n\n // Success!\n setViewMode(N1ModalViewMode.Success);\n } catch (error) {\n logger.error('Error fetching user:', error);\n throw new WalletError(\n WalletErrorCode.USER_FETCH_FAILED,\n 'Failed to fetch user data'\n );\n }\n } finally {\n logger.groupEnd();\n }\n } catch (error) {\n logger.error('Error in session initialization:', error);\n handleError(\n error instanceof WalletError\n ? error\n : new WalletError(\n WalletErrorCode.SESSION_INITIALIZATION_FAILED,\n 'Failed to initialize session'\n )\n );\n }\n };\n\n initializeSession();\n }, [dynamicWallet, dynamicSdkHasLoaded, viewMode, sessionMode]);\n\n // Handle modal visibility\n useEffect(() => {\n if (showLogin) {\n setStartClosingLogin(false);\n setShowLoginAnimation(true);\n }\n }, [showLogin]);\n\n useEffect(() => {\n if (startClosingLogin) {\n setShowLoginAnimation(false);\n const timeout = setTimeout(() => {\n setShowLogin(false);\n setStartClosingLogin(false);\n }, 700);\n return () => clearTimeout(timeout);\n }\n }, [startClosingLogin, setShowLogin, setStartClosingLogin]);\n\n // Handle modal close for Nord mode\n const handleNordFlowClose = () => {\n setStartClosingLogin(true);\n };\n\n if (!showLogin && !showSidebar) return null;\n\n return (\n <div className={'n1-wallet-widget '+(darkMode ? 'dark' : '')}>\n {showLogin && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center w-full h-full\">\n <div\n className={`\n fixed inset-0 w-full h-full bg-black/20 dark:bg-black/40 backdrop-blur-sm\n transition-all duration-500 ${ANIMATION_EASE}\n ${showLoginAnimation ? 'opacity-100' : 'opacity-0'}\n `}\n onClick={() => setStartClosingLogin(true)}\n />\n <div\n className={`\n relative z-50 transition-all duration-500 ${ANIMATION_EASE}\n ${showLoginAnimation ? 'opacity-100 scale-100' : 'opacity-0 scale-95'}\n `}\n >\n {sessionMode === N1SessionMode.Nord ? (\n <NordFlow onClose={handleNordFlowClose} />\n ) : (\n <NTSFlow />\n )}\n </div>\n </div>\n )}\n <Suspense fallback={<LoadingFallback />}>\n <N1Sidebar />\n </Suspense>\n </div>\n );\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- export var LoadingFallback = function () { return (_jsx("div", { className: "flex items-center justify-center w-full h-full", children: _jsx("div", { className: "n1-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-gray-200 dark:border-n1-gray-800" }) })); };
2
+ export var LoadingFallback = function () { return (_jsx("div", { className: "flex items-center justify-center w-full h-full", children: _jsx("div", { className: "n1-ww-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-ww-gray-200 dark:border-n1-ww-gray-800" }) })); };
3
3
  //# sourceMappingURL=LoadingFallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingFallback.js","sourceRoot":"","sources":["../../../src/Modal/NTSFlow/LoadingFallback.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,IAAM,eAAe,GAAa,cAAM,OAAA,CAC7C,cAAK,SAAS,EAAC,gDAAgD,YAC7D,cAAK,SAAS,EAAC,iGAAiG,GAAO,GACnH,CACP,EAJ8C,CAI9C,CAAC","sourcesContent":["import React from 'react';\n\nexport const LoadingFallback: React.FC = () => (\n <div className=\"flex items-center justify-center w-full h-full\">\n <div className=\"n1-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-gray-200 dark:border-n1-gray-800\"></div>\n </div>\n);\n"]}
1
+ {"version":3,"file":"LoadingFallback.js","sourceRoot":"","sources":["../../../src/Modal/NTSFlow/LoadingFallback.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,IAAM,eAAe,GAAa,cAAM,OAAA,CAC7C,cAAK,SAAS,EAAC,gDAAgD,YAC7D,cAAK,SAAS,EAAC,0GAA0G,GAAO,GAC5H,CACP,EAJ8C,CAI9C,CAAC","sourcesContent":["import React from 'react';\n\nexport const LoadingFallback: React.FC = () => (\n <div className=\"flex items-center justify-center w-full h-full\">\n <div className=\"n1-ww-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-ww-gray-200 dark:border-n1-ww-gray-800\"></div>\n </div>\n);\n"]}
@@ -15,7 +15,7 @@ export function BackButton(props) {
15
15
  return (_jsx("button", { onClick: props.onClick || back, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () {
16
16
  setIsHovered(false);
17
17
  setIsPressed(false);
18
- }, onMouseDown: function () { return setIsPressed(true); }, onMouseUp: function () { return setIsPressed(false); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n "), style: {
18
+ }, onMouseDown: function () { return setIsPressed(true); }, onMouseUp: function () { return setIsPressed(false); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-ww-gray-200 dark:border-n1-ww-gray-800 hover:border-n1-ww-gray-400 dark:hover:border-white/60\n "), style: {
19
19
  transform: isPressed
20
20
  ? 'scale(0.98)'
21
21
  : isHovered
@@ -1 +1 @@
1
- {"version":3,"file":"BackButton.js","sourceRoot":"","sources":["../../../../src/Modal/NTSFlow/components/BackButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,UAAU,CAAC,KAA+B;IAClD,IAAA,KAAuC,0BAA0B,EAAE,EAAjE,WAAW,iBAAA,EAAE,mBAAmB,yBAAiC,CAAC;IACpE,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAC5C,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAElD,SAAS,IAAI;QACX,mBAAmB;QACnB,mBAAmB,EAAE,CAAC;QACtB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CACL,iBACE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,EAC9B,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,YAAY,EAAE;YACZ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,WAAW,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACrC,SAAS,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACpC,SAAS,EAAE,uKAEqB,cAAc,oIAE7C,EACD,KAAK,EAAE;YACL,SAAS,EAAE,SAAS;gBAClB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,UAAU;SACjB,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eACE,SAAS,EAAE,2FAC0D,cAAc,8HAEpF,qBAGM,GACH,GACF,GACC,CACV,CAAC;AACJ,CAAC","sourcesContent":["import { useState } from 'react';\nimport { useN1WalletInternalContext } from '../../../Provider/hooks';\nimport { N1ModalViewMode } from '../../../Provider/types';\nimport { ANIMATION_EASE } from '../../NordFlow/constants';\n\nexport function BackButton(props: { onClick?: () => void }) {\n const { setViewMode, dynamicHandleLogOut } = useN1WalletInternalContext();\n const [isHovered, setIsHovered] = useState(false);\n const [isPressed, setIsPressed] = useState(false);\n\n function back() {\n // todo: disconnect\n dynamicHandleLogOut();\n setViewMode(N1ModalViewMode.Connect);\n }\n\n return (\n <button\n onClick={props.onClick || back}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => {\n setIsHovered(false);\n setIsPressed(false);\n }}\n onMouseDown={() => setIsPressed(true)}\n onMouseUp={() => setIsPressed(false)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isPressed\n ? 'scale(0.98)'\n : isHovered\n ? 'scale(0.99)'\n : 'scale(1)',\n }}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Back\n </span>\n </div>\n </div>\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"BackButton.js","sourceRoot":"","sources":["../../../../src/Modal/NTSFlow/components/BackButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,UAAU,CAAC,KAA+B;IAClD,IAAA,KAAuC,0BAA0B,EAAE,EAAjE,WAAW,iBAAA,EAAE,mBAAmB,yBAAiC,CAAC;IACpE,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAC5C,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAElD,SAAS,IAAI;QACX,mBAAmB;QACnB,mBAAmB,EAAE,CAAC;QACtB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CACL,iBACE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,EAC9B,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,YAAY,EAAE;YACZ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,WAAW,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACrC,SAAS,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACpC,SAAS,EAAE,0KAEqB,cAAc,6IAE7C,EACD,KAAK,EAAE;YACL,SAAS,EAAE,SAAS;gBAClB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,UAAU;SACjB,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eACE,SAAS,EAAE,2FAC0D,cAAc,8HAEpF,qBAGM,GACH,GACF,GACC,CACV,CAAC;AACJ,CAAC","sourcesContent":["import { useState } from 'react';\nimport { useN1WalletInternalContext } from '../../../Provider/hooks';\nimport { N1ModalViewMode } from '../../../Provider/types';\nimport { ANIMATION_EASE } from '../../NordFlow/constants';\n\nexport function BackButton(props: { onClick?: () => void }) {\n const { setViewMode, dynamicHandleLogOut } = useN1WalletInternalContext();\n const [isHovered, setIsHovered] = useState(false);\n const [isPressed, setIsPressed] = useState(false);\n\n function back() {\n // todo: disconnect\n dynamicHandleLogOut();\n setViewMode(N1ModalViewMode.Connect);\n }\n\n return (\n <button\n onClick={props.onClick || back}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => {\n setIsHovered(false);\n setIsPressed(false);\n }}\n onMouseDown={() => setIsPressed(true)}\n onMouseUp={() => setIsPressed(false)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-ww-gray-200 dark:border-n1-ww-gray-800 hover:border-n1-ww-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isPressed\n ? 'scale(0.98)'\n : isHovered\n ? 'scale(0.99)'\n : 'scale(1)',\n }}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Back\n </span>\n </div>\n </div>\n </button>\n );\n}\n"]}
@@ -16,6 +16,6 @@ export function ModalHeader() {
16
16
  setViewMode(N1ModalViewMode.Connect);
17
17
  }
18
18
  };
19
- return (_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-6 h-6 text-n1-gray-50", children: _jsx(Logo, { size: 24 }) }), _jsxs("h2", { className: "text-xl text-n1-gray-400 flex items-center gap-2", children: ["Connect", viewMode === N1ModalViewMode.CreateSession && (_jsx("span", { className: "text-n1-gray-700 dark:text-n1-gray-300 font-normal", children: "/ / Session" })), viewMode === N1ModalViewMode.Signing && (_jsx("span", { className: "text-n1-gray-700 dark:text-n1-gray-300 font-normal", children: "/ / Sign" })), viewMode === N1ModalViewMode.CreatingUser && (_jsx("span", { className: "text-n1-gray-700 dark:text-n1-gray-300 font-normal", children: "/ / Create User" })), viewMode === N1ModalViewMode.Success && (_jsx("span", { className: "text-n1-gray-700 dark:text-n1-gray-300 font-normal", children: "/ / Success" }))] })] }), _jsx("button", { onClick: close, className: "\n text-neutral-400 hover:text-n1-gray-900 dark:hover:text-white \n transition-colors duration-300 ".concat(ANIMATION_EASE, "\n h-10 w-10 rounded-full hover:bg-n1-gray-100 dark:hover:bg-n1-gray-800\n flex items-center justify-center\n "), children: _jsx(X, { size: 20 }) })] }));
19
+ return (_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-6 h-6 text-n1-ww-gray-50", children: _jsx(Logo, { size: 24 }) }), _jsxs("h2", { className: "text-xl text-n1-ww-gray-400 flex items-center gap-2", children: ["Connect", viewMode === N1ModalViewMode.CreateSession && (_jsx("span", { className: "text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal", children: "/ / Session" })), viewMode === N1ModalViewMode.Signing && (_jsx("span", { className: "text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal", children: "/ / Sign" })), viewMode === N1ModalViewMode.CreatingUser && (_jsx("span", { className: "text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal", children: "/ / Create User" })), viewMode === N1ModalViewMode.Success && (_jsx("span", { className: "text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal", children: "/ / Success" }))] })] }), _jsx("button", { onClick: close, className: "\n text-neutral-400 hover:text-n1-ww-gray-900 dark:hover:text-white \n transition-colors duration-300 ".concat(ANIMATION_EASE, "\n h-10 w-10 rounded-full hover:bg-n1-ww-gray-100 dark:hover:bg-n1-ww-gray-800\n flex items-center justify-center\n "), children: _jsx(X, { size: 20 }) })] }));
20
20
  }
21
21
  //# sourceMappingURL=ModalHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.js","sourceRoot":"","sources":["../../../../src/Modal/NTSFlow/components/ModalHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,WAAW;IACnB,IAAA,KAMF,0BAA0B,EAAE,EAL9B,WAAW,iBAAA,EACX,oBAAoB,0BAAA,EACpB,gBAAgB,sBAAA,EAChB,UAAU,gBAAA,EACV,mBAAmB,yBACW,CAAC;IAEzB,IAAA,QAAQ,GAAK,kBAAkB,EAAE,SAAzB,CAA0B;IAE1C,IAAM,KAAK,GAAG;QACZ,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,QAAQ,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,mBAAmB,EAAE,CAAC;YACtB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,EACN,cAAI,SAAS,EAAC,kDAAkD,wBAE7D,QAAQ,KAAK,eAAe,CAAC,aAAa,IAAI,CAC7C,eAAM,SAAS,EAAC,oDAAoD,4BAE7D,CACR,EACA,QAAQ,KAAK,eAAe,CAAC,OAAO,IAAI,CACvC,eAAM,SAAS,EAAC,oDAAoD,yBAE7D,CACR,EACA,QAAQ,KAAK,eAAe,CAAC,YAAY,IAAI,CAC5C,eAAM,SAAS,EAAC,oDAAoD,gCAE7D,CACR,EACA,QAAQ,KAAK,eAAe,CAAC,OAAO,IAAI,CACvC,eAAM,SAAS,EAAC,oDAAoD,4BAE7D,CACR,IACE,IACD,EACN,iBACE,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,+HAEwB,cAAc,4IAGhD,YAED,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,IACL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1ModalViewMode } from '../../../Provider/types';\nimport { X } from 'lucide-react';\nimport Logo from '../../../components/Logo';\nimport { ANIMATION_EASE } from '../../NordFlow/constants';\n\nexport function ModalHeader() {\n const {\n setViewMode,\n setStartClosingLogin,\n setDynamicWallet,\n setAddress,\n dynamicHandleLogOut,\n } = useN1WalletInternalContext();\n\n const { viewMode } = useN1WalletContext();\n\n const close = () => {\n setStartClosingLogin(true);\n\n if (viewMode === N1ModalViewMode.CreateSession) {\n setDynamicWallet(null);\n setAddress('');\n dynamicHandleLogOut();\n setViewMode(N1ModalViewMode.Connect);\n }\n };\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-6 h-6 text-n1-gray-50\">\n <Logo size={24} />\n </div>\n <h2 className=\"text-xl text-n1-gray-400 flex items-center gap-2\">\n Connect\n {viewMode === N1ModalViewMode.CreateSession && (\n <span className=\"text-n1-gray-700 dark:text-n1-gray-300 font-normal\">\n / / Session\n </span>\n )}\n {viewMode === N1ModalViewMode.Signing && (\n <span className=\"text-n1-gray-700 dark:text-n1-gray-300 font-normal\">\n / / Sign\n </span>\n )}\n {viewMode === N1ModalViewMode.CreatingUser && (\n <span className=\"text-n1-gray-700 dark:text-n1-gray-300 font-normal\">\n / / Create User\n </span>\n )}\n {viewMode === N1ModalViewMode.Success && (\n <span className=\"text-n1-gray-700 dark:text-n1-gray-300 font-normal\">\n / / Success\n </span>\n )}\n </h2>\n </div>\n <button\n onClick={close}\n className={`\n text-neutral-400 hover:text-n1-gray-900 dark:hover:text-white \n transition-colors duration-300 ${ANIMATION_EASE}\n h-10 w-10 rounded-full hover:bg-n1-gray-100 dark:hover:bg-n1-gray-800\n flex items-center justify-center\n `}\n >\n <X size={20} />\n </button>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ModalHeader.js","sourceRoot":"","sources":["../../../../src/Modal/NTSFlow/components/ModalHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,WAAW;IACnB,IAAA,KAMF,0BAA0B,EAAE,EAL9B,WAAW,iBAAA,EACX,oBAAoB,0BAAA,EACpB,gBAAgB,sBAAA,EAChB,UAAU,gBAAA,EACV,mBAAmB,yBACW,CAAC;IAEzB,IAAA,QAAQ,GAAK,kBAAkB,EAAE,SAAzB,CAA0B;IAE1C,IAAM,KAAK,GAAG;QACZ,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,QAAQ,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,mBAAmB,EAAE,CAAC;YACtB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,4BAA4B,YACzC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,EACN,cAAI,SAAS,EAAC,qDAAqD,wBAEhE,QAAQ,KAAK,eAAe,CAAC,aAAa,IAAI,CAC7C,eAAM,SAAS,EAAC,0DAA0D,4BAEnE,CACR,EACA,QAAQ,KAAK,eAAe,CAAC,OAAO,IAAI,CACvC,eAAM,SAAS,EAAC,0DAA0D,yBAEnE,CACR,EACA,QAAQ,KAAK,eAAe,CAAC,YAAY,IAAI,CAC5C,eAAM,SAAS,EAAC,0DAA0D,gCAEnE,CACR,EACA,QAAQ,KAAK,eAAe,CAAC,OAAO,IAAI,CACvC,eAAM,SAAS,EAAC,0DAA0D,4BAEnE,CACR,IACE,IACD,EACN,iBACE,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,kIAEwB,cAAc,kJAGhD,YAED,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,IACL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1ModalViewMode } from '../../../Provider/types';\nimport { X } from 'lucide-react';\nimport Logo from '../../../components/Logo';\nimport { ANIMATION_EASE } from '../../NordFlow/constants';\n\nexport function ModalHeader() {\n const {\n setViewMode,\n setStartClosingLogin,\n setDynamicWallet,\n setAddress,\n dynamicHandleLogOut,\n } = useN1WalletInternalContext();\n\n const { viewMode } = useN1WalletContext();\n\n const close = () => {\n setStartClosingLogin(true);\n\n if (viewMode === N1ModalViewMode.CreateSession) {\n setDynamicWallet(null);\n setAddress('');\n dynamicHandleLogOut();\n setViewMode(N1ModalViewMode.Connect);\n }\n };\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-6 h-6 text-n1-ww-gray-50\">\n <Logo size={24} />\n </div>\n <h2 className=\"text-xl text-n1-ww-gray-400 flex items-center gap-2\">\n Connect\n {viewMode === N1ModalViewMode.CreateSession && (\n <span className=\"text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal\">\n / / Session\n </span>\n )}\n {viewMode === N1ModalViewMode.Signing && (\n <span className=\"text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal\">\n / / Sign\n </span>\n )}\n {viewMode === N1ModalViewMode.CreatingUser && (\n <span className=\"text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal\">\n / / Create User\n </span>\n )}\n {viewMode === N1ModalViewMode.Success && (\n <span className=\"text-n1-ww-gray-700 dark:text-n1-ww-gray-300 font-normal\">\n / / Success\n </span>\n )}\n </h2>\n </div>\n <button\n onClick={close}\n className={`\n text-neutral-400 hover:text-n1-ww-gray-900 dark:hover:text-white \n transition-colors duration-300 ${ANIMATION_EASE}\n h-10 w-10 rounded-full hover:bg-n1-ww-gray-100 dark:hover:bg-n1-ww-gray-800\n flex items-center justify-center\n `}\n >\n <X size={20} />\n </button>\n </div>\n );\n}\n"]}
@@ -62,8 +62,8 @@ export function ConnectView() {
62
62
  }
63
63
  });
64
64
  }); };
65
- return (_jsxs("div", { className: "bg-n1-gray-50 dark:bg-n1-gray-950 relative border border-n1-gray-200 dark:border-n1-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity]", children: [_jsx("div", { className: "p-6 border-b border-n1-gray-200 dark:border-n1-gray-800", children: _jsx(ModalHeader, {}) }), _jsx("div", { className: "p-6 overflow-hidden relative", children: _jsxs("div", { className: "space-y-4", children: [_jsx("button", { onClick: handleConnect, onMouseEnter: function () { return setIsHovered('wallet'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60\n "), style: {
65
+ return (_jsxs("div", { className: "bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 relative border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity]", children: [_jsx("div", { className: "p-6 border-b border-n1-ww-gray-200 dark:border-n1-ww-gray-800", children: _jsx(ModalHeader, {}) }), _jsx("div", { className: "p-6 overflow-hidden relative", children: _jsxs("div", { className: "space-y-4", children: [_jsx("button", { onClick: handleConnect, onMouseEnter: function () { return setIsHovered('wallet'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-pointer border-n1-ww-gray-200 dark:border-n1-ww-gray-800 hover:border-n1-ww-gray-400 dark:hover:border-white/60\n "), style: {
66
66
  transform: isHovered === 'wallet' ? 'scale(0.99)' : 'scale(1)',
67
- }, children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsxs("div", { className: "flex items-center", children: [_jsx(IoMdWallet, { className: "w-5 h-5 text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white transition-colors duration-300" }), _jsx("span", { className: "\n ml-2 text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white\n "), children: "Continue with Wallet" })] }) }) }), _jsx("button", { disabled: true, onMouseEnter: function () { return setIsHovered('google'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-not-allowed border-n1-gray-200 dark:border-n1-gray-800 opacity-50\n "), children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center", children: _jsx("span", { className: "text-base font-medium tracking-wide text-n1-gray-500 dark:text-neutral-400", children: "Continue with Google (soon)" }) }) }) }), _jsx("button", { disabled: true, onMouseEnter: function () { return setIsHovered('email'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-not-allowed border-n1-gray-200 dark:border-n1-gray-800 opacity-50\n "), children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center", children: _jsx("span", { className: "text-base font-medium tracking-wide text-n1-gray-500 dark:text-neutral-400", children: "Continue with Email (soon)" }) }) }) })] }) })] }));
67
+ }, children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsxs("div", { className: "flex items-center", children: [_jsx(IoMdWallet, { className: "w-5 h-5 text-n1-ww-gray-500 dark:text-neutral-400 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white transition-colors duration-300" }), _jsx("span", { className: "\n ml-2 text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-ww-gray-500 dark:text-neutral-400 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white\n "), children: "Continue with Wallet" })] }) }) }), _jsx("button", { disabled: true, onMouseEnter: function () { return setIsHovered('google'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-not-allowed border-n1-ww-gray-200 dark:border-n1-ww-gray-800 opacity-50\n "), children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center", children: _jsx("span", { className: "text-base font-medium tracking-wide text-n1-ww-gray-500 dark:text-neutral-400", children: "Continue with Google (soon)" }) }) }) }), _jsx("button", { disabled: true, onMouseEnter: function () { return setIsHovered('email'); }, onMouseLeave: function () { return setIsHovered(null); }, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n cursor-not-allowed border-n1-ww-gray-200 dark:border-n1-ww-gray-800 opacity-50\n "), children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center", children: _jsx("span", { className: "text-base font-medium tracking-wide text-n1-ww-gray-500 dark:text-neutral-400", children: "Continue with Email (soon)" }) }) }) })] }) })] }));
68
68
  }
69
69
  //# sourceMappingURL=ConnectView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectView.js","sourceRoot":"","sources":["../../../../src/Modal/NTSFlow/views/ConnectView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,UAAU,WAAW;IAA3B,iBA2FC;IA1FO,IAAA,KAAqC,0BAA0B,EAAE,EAA/D,iBAAiB,uBAAA,EAAE,WAAW,iBAAiC,CAAC;IAClE,IAAA,KAA4B,QAAQ,CAExC,IAAI,CAAC,EAFA,SAAS,QAAA,EAAE,YAAY,QAEvB,CAAC;IAER,IAAM,aAAa,GAAG;;;;;;oBAElB,qBAAM,iBAAiB,CAAC,IAAI,CAAC,EAAA;;oBAA7B,SAA6B,CAAC;;;;oBAE9B,WAAW,CAAC,OAAoB,CAAC,CAAC;;;;;SAErC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,kRAAkR,aAC/R,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,WAAW,KAAG,GACX,EAEN,cAAK,SAAS,EAAC,8BAA8B,YAC3C,eAAK,SAAS,EAAC,WAAW,aACxB,iBACE,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,CAAC,EAAtB,CAAsB,EAC1C,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,mLAEqB,cAAc,gJAE7C,EACD,KAAK,EAAE;gCACL,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;6BAC/D,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,UAAU,IAAC,SAAS,EAAC,wIAAwI,GAAG,EACjK,eACE,SAAS,EAAE,sGAC+D,cAAc,0IAEzF,qCAGM,IACH,GACF,GACC,EAET,iBACE,QAAQ,QACR,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,CAAC,EAAtB,CAAsB,EAC1C,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,mLAEqB,cAAc,2GAE7C,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,4EAA4E,4CAErF,GACH,GACF,GACC,EAET,iBACE,QAAQ,QACR,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB,EACzC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,mLAEqB,cAAc,2GAE7C,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,4EAA4E,2CAErF,GACH,GACF,GACC,IACL,GACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useState } from 'react';\nimport { IoMdWallet } from 'react-icons/io';\nimport { WalletError } from '../../../errors/types';\nimport { useN1WalletInternalContext } from '../../../Provider/hooks';\nimport { ANIMATION_EASE } from '../../NordFlow/constants';\nimport { ModalHeader } from '../components/ModalHeader';\n\nexport function ConnectView() {\n const { showDynamicWidget, handleError } = useN1WalletInternalContext();\n const [isHovered, setIsHovered] = useState<\n 'wallet' | 'google' | 'email' | null\n >(null);\n\n const handleConnect = async () => {\n try {\n await showDynamicWidget(true);\n } catch (error) {\n handleError(error as WalletError);\n }\n };\n\n return (\n <div className=\"bg-n1-gray-50 dark:bg-n1-gray-950 relative border border-n1-gray-200 dark:border-n1-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity]\">\n <div className=\"p-6 border-b border-n1-gray-200 dark:border-n1-gray-800\">\n <ModalHeader />\n </div>\n\n <div className=\"p-6 overflow-hidden relative\">\n <div className=\"space-y-4\">\n <button\n onClick={handleConnect}\n onMouseEnter={() => setIsHovered('wallet')}\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 === 'wallet' ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <IoMdWallet className=\"w-5 h-5 text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white transition-colors duration-300\" />\n <span\n className={`\n ml-2 text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white\n `}\n >\n Continue with Wallet\n </span>\n </div>\n </div>\n </button>\n\n <button\n disabled\n onMouseEnter={() => setIsHovered('google')}\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-not-allowed border-n1-gray-200 dark:border-n1-gray-800 opacity-50\n `}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span className=\"text-base font-medium tracking-wide text-n1-gray-500 dark:text-neutral-400\">\n Continue with Google (soon)\n </span>\n </div>\n </div>\n </button>\n\n <button\n disabled\n onMouseEnter={() => setIsHovered('email')}\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-not-allowed border-n1-gray-200 dark:border-n1-gray-800 opacity-50\n `}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span className=\"text-base font-medium tracking-wide text-n1-gray-500 dark:text-neutral-400\">\n Continue with Email (soon)\n </span>\n </div>\n </div>\n </button>\n </div>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ConnectView.js","sourceRoot":"","sources":["../../../../src/Modal/NTSFlow/views/ConnectView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,UAAU,WAAW;IAA3B,iBA2FC;IA1FO,IAAA,KAAqC,0BAA0B,EAAE,EAA/D,iBAAiB,uBAAA,EAAE,WAAW,iBAAiC,CAAC;IAClE,IAAA,KAA4B,QAAQ,CAExC,IAAI,CAAC,EAFA,SAAS,QAAA,EAAE,YAAY,QAEvB,CAAC;IAER,IAAM,aAAa,GAAG;;;;;;oBAElB,qBAAM,iBAAiB,CAAC,IAAI,CAAC,EAAA;;oBAA7B,SAA6B,CAAC;;;;oBAE9B,WAAW,CAAC,OAAoB,CAAC,CAAC;;;;;SAErC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,8RAA8R,aAC3S,cAAK,SAAS,EAAC,+DAA+D,YAC5E,KAAC,WAAW,KAAG,GACX,EAEN,cAAK,SAAS,EAAC,8BAA8B,YAC3C,eAAK,SAAS,EAAC,WAAW,aACxB,iBACE,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,CAAC,EAAtB,CAAsB,EAC1C,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,sLAEqB,cAAc,yJAE7C,EACD,KAAK,EAAE;gCACL,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;6BAC/D,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,UAAU,IAAC,SAAS,EAAC,8IAA8I,GAAG,EACvK,eACE,SAAS,EAAE,sGAC+D,cAAc,gJAEzF,qCAGM,IACH,GACF,GACC,EAET,iBACE,QAAQ,QACR,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,CAAC,EAAtB,CAAsB,EAC1C,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,sLAEqB,cAAc,iHAE7C,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,+EAA+E,4CAExF,GACH,GACF,GACC,EAET,iBACE,QAAQ,QACR,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB,EACzC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,SAAS,EAAE,sLAEqB,cAAc,iHAE7C,YAED,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,+EAA+E,2CAExF,GACH,GACF,GACC,IACL,GACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useState } from 'react';\nimport { IoMdWallet } from 'react-icons/io';\nimport { WalletError } from '../../../errors/types';\nimport { useN1WalletInternalContext } from '../../../Provider/hooks';\nimport { ANIMATION_EASE } from '../../NordFlow/constants';\nimport { ModalHeader } from '../components/ModalHeader';\n\nexport function ConnectView() {\n const { showDynamicWidget, handleError } = useN1WalletInternalContext();\n const [isHovered, setIsHovered] = useState<\n 'wallet' | 'google' | 'email' | null\n >(null);\n\n const handleConnect = async () => {\n try {\n await showDynamicWidget(true);\n } catch (error) {\n handleError(error as WalletError);\n }\n };\n\n return ( \n <div className=\"bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 relative border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity]\">\n <div className=\"p-6 border-b border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <ModalHeader />\n </div>\n\n <div className=\"p-6 overflow-hidden relative\">\n <div className=\"space-y-4\">\n <button\n onClick={handleConnect}\n onMouseEnter={() => setIsHovered('wallet')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-pointer border-n1-ww-gray-200 dark:border-n1-ww-gray-800 hover:border-n1-ww-gray-400 dark:hover:border-white/60\n `}\n style={{\n transform: isHovered === 'wallet' ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <IoMdWallet className=\"w-5 h-5 text-n1-ww-gray-500 dark:text-neutral-400 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white transition-colors duration-300\" />\n <span\n className={`\n ml-2 text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-ww-gray-500 dark:text-neutral-400 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white\n `}\n >\n Continue with Wallet\n </span>\n </div>\n </div>\n </button>\n\n <button\n disabled\n onMouseEnter={() => setIsHovered('google')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-not-allowed border-n1-ww-gray-200 dark:border-n1-ww-gray-800 opacity-50\n `}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span className=\"text-base font-medium tracking-wide text-n1-ww-gray-500 dark:text-neutral-400\">\n Continue with Google (soon)\n </span>\n </div>\n </div>\n </button>\n\n <button\n disabled\n onMouseEnter={() => setIsHovered('email')}\n onMouseLeave={() => setIsHovered(null)}\n className={`\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-center\n transition-all duration-300 ${ANIMATION_EASE}\n cursor-not-allowed border-n1-ww-gray-200 dark:border-n1-ww-gray-800 opacity-50\n `}\n >\n <div className=\"relative z-[200] pl-4 isolate\">\n <div className=\"flex items-center\">\n <span className=\"text-base font-medium tracking-wide text-n1-ww-gray-500 dark:text-neutral-400\">\n Continue with Email (soon)\n </span>\n </div>\n </div>\n </button>\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -224,18 +224,18 @@ export function CreateSessionView() {
224
224
  }
225
225
  });
226
226
  }); };
227
- return (_jsxs("div", { className: "bg-n1-gray-50 dark:bg-n1-gray-950 relative border border-n1-gray-200 dark:border-n1-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity]", children: [_jsx("div", { className: "p-6 border-b border-n1-gray-200 dark:border-n1-gray-800", children: _jsx(ModalHeader, {}) }), _jsx("div", { className: "p-6 overflow-hidden relative", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "text-center", children: [_jsx("h3", { className: "text-xl font-medium text-n1-gray-900 dark:text-white mb-2", children: "Create Session" }), _jsx("p", { className: "text-n1-gray-500 dark:text-n1-gray-400", children: "Please authenticate to create a new session." })] }), _jsx("button", { onClick: handleSign, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () {
227
+ return (_jsxs("div", { className: "bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 relative border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity]", children: [_jsx("div", { className: "p-6 border-b border-n1-ww-gray-200 dark:border-n1-ww-gray-800", children: _jsx(ModalHeader, {}) }), _jsx("div", { className: "p-6 overflow-hidden relative", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "text-center", children: [_jsx("h3", { className: "text-xl font-medium text-n1-ww-gray-900 dark:text-white mb-2", children: "Create Session" }), _jsx("p", { className: "text-n1-ww-gray-500 dark:text-n1-ww-gray-400", children: "Please authenticate to create a new session." })] }), _jsx("button", { onClick: handleSign, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () {
228
228
  setIsHovered(false);
229
229
  setIsPressed(false);
230
- }, onMouseDown: function () { return setIsPressed(true); }, onMouseUp: function () { return setIsPressed(false); }, disabled: !NTSComponents || !keyPair, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-gray-100 dark:bg-neutral-950 py-4 text-left\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n ").concat(!NTSComponents || !keyPair
231
- ? 'cursor-not-allowed border-n1-gray-200 dark:border-n1-gray-800 opacity-50'
232
- : 'cursor-pointer border-n1-gray-200 dark:border-n1-gray-800 hover:border-n1-gray-400 dark:hover:border-white/60', "\n "), style: {
230
+ }, onMouseDown: function () { return setIsPressed(true); }, onMouseUp: function () { return setIsPressed(false); }, disabled: !NTSComponents || !keyPair, className: "\n group relative w-full overflow-hidden rounded-md border-2 bg-n1-ww-gray-100 dark:bg-neutral-950 py-4 text-left\n transition-all duration-300 ".concat(ANIMATION_EASE, "\n ").concat(!NTSComponents || !keyPair
231
+ ? 'cursor-not-allowed border-n1-ww-gray-200 dark:border-n1-ww-gray-800 opacity-50'
232
+ : 'cursor-pointer border-n1-ww-gray-200 dark:border-n1-ww-gray-800 hover:border-n1-ww-gray-400 dark:hover:border-white/60', "\n "), style: {
233
233
  transform: isPressed && (!NTSComponents || !keyPair)
234
234
  ? 'scale(0.98)'
235
235
  : isHovered && (!NTSComponents || !keyPair)
236
236
  ? 'scale(0.99)'
237
237
  : 'scale(1)',
238
- }, children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center justify-start", children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-gray-500 dark:text-neutral-400 group-hover:text-n1-gray-900 dark:group-hover:text-white\n "), children: "Authenticate" }) }) }) }), _jsx(BackButton, { onClick: function () {
238
+ }, children: _jsx("div", { className: "relative z-[200] pl-4 isolate", children: _jsx("div", { className: "flex items-center justify-start", children: _jsx("span", { className: "\n text-base font-medium tracking-wide transition-colors duration-300 ".concat(ANIMATION_EASE, "\n text-n1-ww-gray-500 dark:text-neutral-400 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white\n "), children: "Authenticate" }) }) }) }), _jsx(BackButton, { onClick: function () {
239
239
  logger.debug('BackButton clicked');
240
240
  setDynamicWallet(null);
241
241
  setAddress('');