@n1xyz/wallet-widget 0.0.33-alpha.3 → 0.0.33
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.
- package/dist/animations/N1Loader.js +8 -14
- package/dist/animations/N1Loader.js.map +1 -1
- package/dist/animations/Processing.js +8 -14
- package/dist/animations/Processing.js.map +1 -1
- package/dist/components/LoadingFallback.js +2 -6
- package/dist/components/LoadingFallback.js.map +1 -1
- package/dist/components/Logo.js +22 -25
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/N1ConnectButton.js +12 -18
- package/dist/components/N1ConnectButton.js.map +1 -1
- package/dist/components/logos/ArbitrumLogo.js +3 -7
- package/dist/components/logos/ArbitrumLogo.js.map +1 -1
- package/dist/components/logos/BaseLogo.js +3 -7
- package/dist/components/logos/BaseLogo.js.map +1 -1
- package/dist/components/logos/BeraLogo.js +3 -7
- package/dist/components/logos/BeraLogo.js.map +1 -1
- package/dist/components/logos/BitcoinLogo.js +3 -7
- package/dist/components/logos/BitcoinLogo.js.map +1 -1
- package/dist/components/logos/EthereumLogo.js +3 -7
- package/dist/components/logos/EthereumLogo.js.map +1 -1
- package/dist/components/logos/HyperliquidLogo.js +3 -7
- package/dist/components/logos/HyperliquidLogo.js.map +1 -1
- package/dist/components/logos/OptimismLogo.js +3 -7
- package/dist/components/logos/OptimismLogo.js.map +1 -1
- package/dist/components/logos/SolanaLogo.js +3 -7
- package/dist/components/logos/SolanaLogo.js.map +1 -1
- package/dist/components/logos/ZeroOneLogo.js +3 -7
- package/dist/components/logos/ZeroOneLogo.js.map +1 -1
- package/dist/components/logos/index.js +9 -25
- package/dist/components/logos/index.js.map +1 -1
- package/dist/config/solana.js +3 -7
- package/dist/config/solana.js.map +1 -1
- package/dist/config.js +2 -5
- package/dist/config.js.map +1 -1
- package/dist/context/n1-wallet-context.js +4 -8
- package/dist/context/n1-wallet-context.js.map +1 -1
- package/dist/errors/types.js +3 -6
- package/dist/errors/types.js.map +1 -1
- package/dist/features/onboarding-flow/N1WalletModal.js +23 -59
- package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js +46 -50
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +4 -7
- package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
- package/dist/features/onboarding-flow/components/Header.js +11 -15
- package/dist/features/onboarding-flow/components/Header.js.map +1 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js +6 -10
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js +10 -13
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js +8 -14
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
- package/dist/features/onboarding-flow/components/index.js +5 -21
- package/dist/features/onboarding-flow/components/index.js.map +1 -1
- package/dist/features/onboarding-flow/index.js +1 -5
- package/dist/features/onboarding-flow/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +55 -60
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +43 -48
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js +7 -11
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +69 -74
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/debug.js +18 -21
- package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
- package/dist/features/onboarding-flow/providers/index.js +5 -16
- package/dist/features/onboarding-flow/providers/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +15 -20
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +8 -11
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +34 -38
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +47 -51
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +8 -12
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +25 -28
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +10 -13
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +7 -10
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/index.js +7 -23
- package/dist/features/onboarding-flow/screens/index.js.map +1 -1
- package/dist/features/onboarding-flow/types.js +3 -6
- package/dist/features/onboarding-flow/types.js.map +1 -1
- package/dist/features/onboarding-flow/utils/depositStorage.js +3 -8
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
- package/dist/features/onboarding-flow/utils/imageUtils.js +3 -9
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUser.js +2 -38
- package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUtils.js +5 -12
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/session.js +14 -17
- package/dist/features/onboarding-flow/utils/session.js.map +1 -1
- package/dist/features/onboarding-flow/utils/transaction.js +1 -4
- package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
- package/dist/features/onboarding-flow/utils/utils.js +8 -16
- package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.js +9 -15
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
- package/dist/hooks/index.js +2 -18
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useN1Wallet.js +6 -10
- package/dist/hooks/useN1Wallet.js.map +1 -1
- package/dist/hooks/useNordUserInitialization.js +31 -34
- package/dist/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/index.js +7 -21
- package/dist/index.js.map +1 -1
- package/dist/main.css +2 -0
- package/dist/polyfills/windowEthereumGuard.js +1 -2
- package/dist/polyfills/windowEthereumGuard.js.map +1 -1
- package/dist/providers/LazyWalletProvider.js +38 -74
- package/dist/providers/LazyWalletProvider.js.map +1 -1
- package/dist/providers/N1WalletProvider.js +70 -109
- package/dist/providers/N1WalletProvider.js.map +1 -1
- package/dist/providers/ShadowRootWrapper.js +4 -10
- package/dist/providers/ShadowRootWrapper.js.map +1 -1
- package/dist/providers/WalletErrorBoundary.js +6 -11
- package/dist/providers/WalletErrorBoundary.js.map +1 -1
- package/dist/styles/embedded-main-css.js +1 -3
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/styles/main.css +1 -1
- package/dist/types/wallet.js +4 -7
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/ed25519.js +14 -20
- package/dist/utils/ed25519.js.map +1 -1
- package/dist/utils/getPseudoName.js +7 -10
- package/dist/utils/getPseudoName.js.map +1 -1
- package/dist/utils/logger.js +3 -5
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/shortenString.js +2 -6
- package/dist/utils/shortenString.js.map +1 -1
- package/dist/utils/words.js +1 -4
- package/dist/utils/words.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var react_1 = require("react");
|
|
6
|
-
var n1_wallet_context_1 = require("../context/n1-wallet-context");
|
|
7
|
-
function useN1WalletContext() {
|
|
8
|
-
var context = (0, react_1.useContext)(n1_wallet_context_1.N1WalletContext);
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';
|
|
3
|
+
export function useN1WalletContext() {
|
|
4
|
+
var context = useContext(N1WalletContext);
|
|
9
5
|
if (context === undefined) {
|
|
10
6
|
throw new Error('useN1WalletContext must be used within a N1WalletProvider');
|
|
11
7
|
}
|
|
12
8
|
return context;
|
|
13
9
|
}
|
|
14
|
-
function useN1WalletInternalContext() {
|
|
15
|
-
var context =
|
|
10
|
+
export function useN1WalletInternalContext() {
|
|
11
|
+
var context = useContext(N1InternalWalletContext);
|
|
16
12
|
if (context === undefined) {
|
|
17
13
|
throw new Error('useN1WalletInternalContext must be used within a N1WalletProvider');
|
|
18
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useN1Wallet.js","sourceRoot":"","sources":["../../src/hooks/useN1Wallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useN1Wallet.js","sourceRoot":"","sources":["../../src/hooks/useN1Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAExF,MAAM,UAAU,kBAAkB;IAChC,IAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,IAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';\n\nexport function useN1WalletContext() {\n const context = useContext(N1WalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n\nexport function useN1WalletInternalContext() {\n const context = useContext(N1InternalWalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletInternalContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -35,24 +34,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
35
|
}
|
|
37
36
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var nordUser_1 = require("../features/onboarding-flow/utils/nordUser");
|
|
49
|
-
function useNordUserInitialization() {
|
|
37
|
+
import { useEffect } from 'react';
|
|
38
|
+
import { PublicKey } from '@solana/web3.js';
|
|
39
|
+
import { signEd25519Message } from '../utils/ed25519';
|
|
40
|
+
import { WalletError, WalletErrorCode } from '../errors/types';
|
|
41
|
+
import { logger } from '../utils/logger';
|
|
42
|
+
import { N1SessionMode } from '../types/wallet';
|
|
43
|
+
import { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';
|
|
44
|
+
import { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';
|
|
45
|
+
import { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';
|
|
46
|
+
export function useNordUserInitialization() {
|
|
50
47
|
var _this = this;
|
|
51
|
-
var _a =
|
|
52
|
-
var _b =
|
|
48
|
+
var _a = useN1WalletInternalContext(), setNordUser = _a.setNordUser, setSessionPubKey = _a.setSessionPubKey, setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey, dynamicWallet = _a.dynamicWallet;
|
|
49
|
+
var _b = useN1WalletContext(), address = _b.address, nordUser = _b.nordUser, sessionMode = _b.sessionMode, nord = _b.nord, signMessageWithSessionKey = _b.signMessageWithSessionKey, signMessageWithWalletKey = _b.signMessageWithWalletKey, signTransactionWithWalletKey = _b.signTransactionWithWalletKey, sessionPubKey = _b.sessionPubKey;
|
|
53
50
|
// First useEffect: Initialize signing functions
|
|
54
|
-
|
|
55
|
-
if (sessionMode !==
|
|
51
|
+
useEffect(function () {
|
|
52
|
+
if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {
|
|
56
53
|
return;
|
|
57
54
|
}
|
|
58
55
|
var createTransactionSignFunction = function () {
|
|
@@ -70,17 +67,17 @@ function useNordUserInitialization() {
|
|
|
70
67
|
case 1: return [4 /*yield*/, (_a.sent()).signTransaction(transaction)];
|
|
71
68
|
case 2:
|
|
72
69
|
signedTransaction = _a.sent();
|
|
73
|
-
|
|
70
|
+
logger.debug('Solana transaction signature received');
|
|
74
71
|
// const serializedTx = signedTransaction.serialize();
|
|
75
72
|
// return Transaction.from(serializedTx);
|
|
76
73
|
console.log('signedTransaction', signedTransaction.signatures);
|
|
77
74
|
console.log('signedTransaction - 2', signedTransaction);
|
|
78
75
|
return [2 /*return*/, signedTransaction];
|
|
79
|
-
case 3: throw new
|
|
76
|
+
case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
80
77
|
case 4:
|
|
81
78
|
error_1 = _a.sent();
|
|
82
79
|
console.error('Error signing transaction with wallet:', error_1);
|
|
83
|
-
throw new
|
|
80
|
+
throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign transaction with wallet', { originalError: error_1 });
|
|
84
81
|
case 5: return [2 /*return*/];
|
|
85
82
|
}
|
|
86
83
|
});
|
|
@@ -111,13 +108,13 @@ function useNordUserInitialization() {
|
|
|
111
108
|
if (!(result === null || result === void 0 ? void 0 : result.signature)) {
|
|
112
109
|
throw new Error('Wallet did not return a signature');
|
|
113
110
|
}
|
|
114
|
-
|
|
111
|
+
logger.debug('Solana message signature received');
|
|
115
112
|
return [2 /*return*/, result.signature];
|
|
116
|
-
case 3: throw new
|
|
113
|
+
case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
|
|
117
114
|
case 4:
|
|
118
115
|
error_2 = _a.sent();
|
|
119
116
|
console.error('Error signing message with wallet:', error_2);
|
|
120
|
-
throw new
|
|
117
|
+
throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign message with wallet', { originalError: error_2 });
|
|
121
118
|
case 5: return [2 /*return*/];
|
|
122
119
|
}
|
|
123
120
|
});
|
|
@@ -135,7 +132,7 @@ function useNordUserInitialization() {
|
|
|
135
132
|
sessionKeyPair_1 = null;
|
|
136
133
|
if (address) {
|
|
137
134
|
try {
|
|
138
|
-
storedKeys =
|
|
135
|
+
storedKeys = getSessionKeysFromLocalStorage(address);
|
|
139
136
|
if (storedKeys) {
|
|
140
137
|
sessionKeyPair_1 = {
|
|
141
138
|
privateKey: storedKeys.ed25519PrivateKey,
|
|
@@ -149,7 +146,7 @@ function useNordUserInitialization() {
|
|
|
149
146
|
}
|
|
150
147
|
}
|
|
151
148
|
if (!!sessionKeyPair_1) return [3 /*break*/, 2];
|
|
152
|
-
return [4 /*yield*/,
|
|
149
|
+
return [4 /*yield*/, generateSessionKeyPair()];
|
|
153
150
|
case 1:
|
|
154
151
|
sessionKeyPair_1 = _a.sent();
|
|
155
152
|
_a.label = 2;
|
|
@@ -160,7 +157,7 @@ function useNordUserInitialization() {
|
|
|
160
157
|
switch (_a.label) {
|
|
161
158
|
case 0:
|
|
162
159
|
_a.trys.push([0, 2, , 3]);
|
|
163
|
-
return [4 /*yield*/,
|
|
160
|
+
return [4 /*yield*/, signEd25519Message(message, sessionKeyPair_1.privateKey)];
|
|
164
161
|
case 1: return [2 /*return*/, _a.sent()];
|
|
165
162
|
case 2:
|
|
166
163
|
error_4 = _a.sent();
|
|
@@ -170,7 +167,7 @@ function useNordUserInitialization() {
|
|
|
170
167
|
}
|
|
171
168
|
});
|
|
172
169
|
}); };
|
|
173
|
-
|
|
170
|
+
storeSessionKeysInLocalStorage({
|
|
174
171
|
privKey: sessionKeyPair_1.privateKey,
|
|
175
172
|
publicKey: sessionKeyPair_1.publicKey,
|
|
176
173
|
walletPublicKey: address,
|
|
@@ -217,8 +214,8 @@ function useNordUserInitialization() {
|
|
|
217
214
|
signTransactionWithWalletKey,
|
|
218
215
|
]);
|
|
219
216
|
// Second useEffect: Initialize NordUser
|
|
220
|
-
|
|
221
|
-
if (sessionMode !==
|
|
217
|
+
useEffect(function () {
|
|
218
|
+
if (sessionMode !== N1SessionMode.Nord) {
|
|
222
219
|
return;
|
|
223
220
|
}
|
|
224
221
|
var createNordUser = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -233,13 +230,13 @@ function useNordUserInitialization() {
|
|
|
233
230
|
sessionId = undefined;
|
|
234
231
|
if (address) {
|
|
235
232
|
try {
|
|
236
|
-
sessionKeyData =
|
|
233
|
+
sessionKeyData = getSessionKeysFromLocalStorage(address);
|
|
237
234
|
if (sessionKeyData) {
|
|
238
235
|
sessionIdKey = "n1_sessionId_".concat(address);
|
|
239
236
|
storedSessionId = localStorage.getItem(sessionIdKey);
|
|
240
237
|
if (storedSessionId !== null) {
|
|
241
238
|
sessionId = BigInt(storedSessionId);
|
|
242
|
-
|
|
239
|
+
logger.debug('Found existing sessionId in localStorage', {
|
|
243
240
|
sessionId: storedSessionId,
|
|
244
241
|
});
|
|
245
242
|
}
|
|
@@ -249,12 +246,12 @@ function useNordUserInitialization() {
|
|
|
249
246
|
console.error('Error retrieving sessionId from localStorage:', error);
|
|
250
247
|
}
|
|
251
248
|
}
|
|
252
|
-
return [4 /*yield*/,
|
|
249
|
+
return [4 /*yield*/, dynamicImportNordUser()];
|
|
253
250
|
case 1:
|
|
254
251
|
NordUser = _a.sent();
|
|
255
252
|
return [4 /*yield*/, NordUser.new({
|
|
256
253
|
nord: nord,
|
|
257
|
-
walletPubkey: new
|
|
254
|
+
walletPubkey: new PublicKey(address),
|
|
258
255
|
sessionPubkey: sessionPubKey,
|
|
259
256
|
sessionId: sessionId,
|
|
260
257
|
signSessionFn: signMessageWithSessionKey,
|
|
@@ -291,7 +288,7 @@ function useNordUserInitialization() {
|
|
|
291
288
|
signTransactionWithWalletKey &&
|
|
292
289
|
sessionPubKey &&
|
|
293
290
|
nordUser === null) {
|
|
294
|
-
|
|
291
|
+
logger.debug('Dependencies available, initializing NordUser');
|
|
295
292
|
createNordUser();
|
|
296
293
|
}
|
|
297
294
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNordUserInitialization.js","sourceRoot":"","sources":["../../src/hooks/useNordUserInitialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport { PublicKey } from '@solana/web3.js';\nimport { signEd25519Message } from '../utils/ed25519';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1SessionMode } from '../types/wallet';\nimport { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';\nimport { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';\nimport { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';\n\n\n\nexport function useNordUserInitialization() {\n const {\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n } = useN1WalletInternalContext();\n\n const {\n address,\n nordUser,\n sessionMode,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n } = useN1WalletContext();\n // First useEffect: Initialize signing functions\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {\n return;\n }\n\n const createTransactionSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signTransactionWithWallet = async (\n transaction: any\n ): Promise<any> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signedTransaction = await (\n await dynamicWallet.getSigner()\n ).signTransaction(transaction);\n logger.debug('Solana transaction signature received');\n\n // const serializedTx = signedTransaction.serialize();\n // return Transaction.from(serializedTx);\n console.log('signedTransaction', signedTransaction.signatures);\n console.log('signedTransaction - 2', signedTransaction);\n return signedTransaction;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing transaction with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign transaction with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignTransactionWithWalletKey(() => signTransactionWithWallet);\n return signTransactionWithWallet;\n };\n\n const createWalletMessageSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signMessageWithWallet = async (\n message: Uint8Array\n ): Promise<Uint8Array> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signer = await dynamicWallet.getSigner();\n if (!signer?.signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n const result = await signer.signMessage(message);\n if (!result?.signature) {\n throw new Error('Wallet did not return a signature');\n }\n logger.debug('Solana message signature received');\n return result.signature;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing message with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign message with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignMessageWithWalletKey(() => signMessageWithWallet);\n return signMessageWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n try {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: storedKeys.ed25519PublicKey,\n };\n }\n } catch (error) {\n console.error(\n 'Error reconstructing key pair from stored keys:',\n error\n );\n sessionKeyPair = null;\n }\n }\n\n if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519Message(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n publicKey: sessionKeyPair.publicKey!,\n walletPublicKey: address,\n chainName: dynamicWallet?.chain || 'ETH',\n });\n\n setSessionPubKey(sessionKeyPair.publicKey!);\n setSignMessageWithSessionKey(() => signFn);\n return signFn;\n } catch (error) {\n console.error('Error creating session:', error);\n return null;\n }\n };\n\n // Initialize signing functions if needed\n const initSigningFunctions = async () => {\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n if (!signMessageWithWalletKey && dynamicWallet) {\n createWalletMessageSignFunction();\n }\n\n if (!signMessageWithSessionKey) {\n await createSession();\n }\n };\n\n initSigningFunctions();\n }, [\n dynamicWallet,\n address,\n sessionMode,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n ]);\n\n // Second useEffect: Initialize NordUser\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord) {\n return;\n }\n\n const createNordUser = async () => {\n try {\n if (!nord || !address || !sessionPubKey || !signMessageWithSessionKey || !signMessageWithWalletKey || !signTransactionWithWalletKey) {\n return null;\n }\n\n let sessionId = undefined;\n if (address) {\n try {\n const sessionKeyData = getSessionKeysFromLocalStorage(address);\n if (sessionKeyData) {\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n if (storedSessionId !== null) {\n sessionId = BigInt(storedSessionId);\n logger.debug('Found existing sessionId in localStorage', {\n sessionId: storedSessionId,\n });\n }\n }\n } catch (error) {\n console.error('Error retrieving sessionId from localStorage:', error);\n }\n }\n\n const NordUser = await dynamicImportNordUser();\n const user = await NordUser.new({\n nord,\n walletPubkey: new PublicKey(address),\n sessionPubkey: sessionPubKey,\n sessionId,\n signSessionFn: signMessageWithSessionKey,\n signTransactionFn: signTransactionWithWalletKey,\n signMessageFn: signMessageWithWalletKey,\n });\n\n try {\n await user.updateAccountId();\n } catch (_) { }\n\n setNordUser(user);\n return user;\n } catch (error) {\n console.error('Error creating NordUser:', error);\n setNordUser(null);\n return null;\n }\n };\n\n // Only create NordUser when all dependencies are available and nordUser is null\n if (\n signMessageWithSessionKey &&\n signMessageWithWalletKey &&\n signTransactionWithWalletKey &&\n sessionPubKey &&\n nordUser === null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n createNordUser();\n }\n }, [\n sessionMode,\n nord,\n address,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser\n ]);\n} \n"]}
|
|
1
|
+
{"version":3,"file":"useNordUserInitialization.js","sourceRoot":"","sources":["../../src/hooks/useNordUserInitialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport { PublicKey } from '@solana/web3.js';\nimport { signEd25519Message } from '../utils/ed25519';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1SessionMode } from '../types/wallet';\nimport { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';\nimport { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';\nimport { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';\n\n\n\nexport function useNordUserInitialization() {\n const {\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n } = useN1WalletInternalContext();\n\n const {\n address,\n nordUser,\n sessionMode,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n } = useN1WalletContext();\n // First useEffect: Initialize signing functions\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {\n return;\n }\n\n const createTransactionSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signTransactionWithWallet = async (\n transaction: any\n ): Promise<any> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signedTransaction = await (\n await dynamicWallet.getSigner()\n ).signTransaction(transaction);\n logger.debug('Solana transaction signature received');\n\n // const serializedTx = signedTransaction.serialize();\n // return Transaction.from(serializedTx);\n console.log('signedTransaction', signedTransaction.signatures);\n console.log('signedTransaction - 2', signedTransaction);\n return signedTransaction;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing transaction with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign transaction with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignTransactionWithWalletKey(() => signTransactionWithWallet);\n return signTransactionWithWallet;\n };\n\n const createWalletMessageSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signMessageWithWallet = async (\n message: Uint8Array\n ): Promise<Uint8Array> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signer = await dynamicWallet.getSigner();\n if (!signer?.signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n const result = await signer.signMessage(message);\n if (!result?.signature) {\n throw new Error('Wallet did not return a signature');\n }\n logger.debug('Solana message signature received');\n return result.signature;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing message with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign message with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignMessageWithWalletKey(() => signMessageWithWallet);\n return signMessageWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n try {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: storedKeys.ed25519PublicKey,\n };\n }\n } catch (error) {\n console.error(\n 'Error reconstructing key pair from stored keys:',\n error\n );\n sessionKeyPair = null;\n }\n }\n\n if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519Message(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n publicKey: sessionKeyPair.publicKey!,\n walletPublicKey: address,\n chainName: dynamicWallet?.chain || 'ETH',\n });\n\n setSessionPubKey(sessionKeyPair.publicKey!);\n setSignMessageWithSessionKey(() => signFn);\n return signFn;\n } catch (error) {\n console.error('Error creating session:', error);\n return null;\n }\n };\n\n // Initialize signing functions if needed\n const initSigningFunctions = async () => {\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n if (!signMessageWithWalletKey && dynamicWallet) {\n createWalletMessageSignFunction();\n }\n\n if (!signMessageWithSessionKey) {\n await createSession();\n }\n };\n\n initSigningFunctions();\n }, [\n dynamicWallet,\n address,\n sessionMode,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n ]);\n\n // Second useEffect: Initialize NordUser\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord) {\n return;\n }\n\n const createNordUser = async () => {\n try {\n if (!nord || !address || !sessionPubKey || !signMessageWithSessionKey || !signMessageWithWalletKey || !signTransactionWithWalletKey) {\n return null;\n }\n\n let sessionId = undefined;\n if (address) {\n try {\n const sessionKeyData = getSessionKeysFromLocalStorage(address);\n if (sessionKeyData) {\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n if (storedSessionId !== null) {\n sessionId = BigInt(storedSessionId);\n logger.debug('Found existing sessionId in localStorage', {\n sessionId: storedSessionId,\n });\n }\n }\n } catch (error) {\n console.error('Error retrieving sessionId from localStorage:', error);\n }\n }\n\n const NordUser = await dynamicImportNordUser();\n const user = await NordUser.new({\n nord,\n walletPubkey: new PublicKey(address),\n sessionPubkey: sessionPubKey,\n sessionId,\n signSessionFn: signMessageWithSessionKey,\n signTransactionFn: signTransactionWithWalletKey,\n signMessageFn: signMessageWithWalletKey,\n });\n\n try {\n await user.updateAccountId();\n } catch (_) { }\n\n setNordUser(user);\n return user;\n } catch (error) {\n console.error('Error creating NordUser:', error);\n setNordUser(null);\n return null;\n }\n };\n\n // Only create NordUser when all dependencies are available and nordUser is null\n if (\n signMessageWithSessionKey &&\n signMessageWithWalletKey &&\n signTransactionWithWalletKey &&\n sessionPubKey &&\n nordUser === null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n createNordUser();\n }\n }, [\n sessionMode,\n nord,\n address,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser\n ]);\n} \n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, "N1WalletProvider", { enumerable: true, get: function () { return N1WalletProvider_1.N1WalletProvider; } });
|
|
9
|
-
var wallet_1 = require("./types/wallet");
|
|
10
|
-
Object.defineProperty(exports, "N1ModalViewMode", { enumerable: true, get: function () { return wallet_1.N1ModalViewMode; } });
|
|
11
|
-
Object.defineProperty(exports, "N1SessionMode", { enumerable: true, get: function () { return wallet_1.N1SessionMode; } });
|
|
12
|
-
var N1ConnectButton_1 = require("./components/N1ConnectButton");
|
|
13
|
-
Object.defineProperty(exports, "N1ConnectButton", { enumerable: true, get: function () { return N1ConnectButton_1.N1ConnectButton; } });
|
|
14
|
-
var useN1Wallet_1 = require("./hooks/useN1Wallet");
|
|
15
|
-
Object.defineProperty(exports, "useN1WalletContext", { enumerable: true, get: function () { return useN1Wallet_1.useN1WalletContext; } });
|
|
16
|
-
var Logo_1 = require("./components/Logo");
|
|
17
|
-
Object.defineProperty(exports, "Logo", { enumerable: true, get: function () { return __importDefault(Logo_1).default; } });
|
|
18
|
-
var N1Loader_1 = require("./animations/N1Loader");
|
|
19
|
-
Object.defineProperty(exports, "N1LoaderAnimation", { enumerable: true, get: function () { return N1Loader_1.N1LoaderAnimation; } });
|
|
20
|
-
var Processing_1 = require("./animations/Processing");
|
|
21
|
-
Object.defineProperty(exports, "ProcessingAnimation", { enumerable: true, get: function () { return Processing_1.ProcessingAnimation; } });
|
|
1
|
+
export { N1WalletProvider } from './providers/N1WalletProvider';
|
|
2
|
+
export { N1ModalViewMode, N1SessionMode, } from './types/wallet';
|
|
3
|
+
export { N1ConnectButton } from './components/N1ConnectButton';
|
|
4
|
+
export { useN1WalletContext } from './hooks/useN1Wallet';
|
|
5
|
+
export { default as Logo } from './components/Logo';
|
|
6
|
+
export { N1LoaderAnimation } from './animations/N1Loader';
|
|
7
|
+
export { ProcessingAnimation } from './animations/Processing';
|
|
22
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,eAAe,EACf,aAAa,GAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export { N1WalletProvider } from './providers/N1WalletProvider';\nexport {\n N1ModalViewMode,\n N1SessionMode,\n type N1NordFunctions,\n} from './types/wallet';\nexport { N1ConnectButton } from './components/N1ConnectButton';\nexport { useN1WalletContext } from './hooks/useN1Wallet';\nexport { default as Logo } from './components/Logo';\nexport { N1LoaderAnimation } from './animations/N1Loader';\nexport { ProcessingAnimation } from './animations/Processing';\n"]}
|
package/dist/main.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Thin-Trial.otf) format("opentype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf) format("opentype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Light-Trial.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Light-Italic-Trial.otf) format("opentype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Regular-Trial.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Medium-Trial.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf) format("opentype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf) format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf) format("opentype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Bold-Trial.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf) format("opentype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf) format("opentype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:APK Galeria;src:url(../assets/fonts/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf) format("opentype");font-weight:800;font-style:italic;font-display:swap}@keyframes n1-ww-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes n1-ww-squareLoader{0%{height:0;opacity:.2}40%{height:100%;opacity:1}60%{height:100%;opacity:1}to{height:0;opacity:.2}}@keyframes n1-ww-contentAppear{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes n1-ww-fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes n1-ww-fadeOut{0%{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(0)}}@keyframes n1-ww-fadeDelayed{0%,50%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes n1-ww-fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes n1-ww-transfer-wave{0%{transform:scale(.7)}35%{transform:scale(1.4)}70%{transform:scale(2.1)}to{transform:scale(.7)}}@keyframes n1-ww-typing{0%{width:0}to{width:100%}}@keyframes n1-ww-showTableValue{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes n1-ww-typingMessage{0%{width:0}to{width:100%}}@keyframes n1-ww-typeButton{0%{width:0}to{width:100%}}@keyframes n1-ww-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes n1-ww-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.1)}}@keyframes n1-ww-content-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes n1-ww-square-loader{0%{height:0;opacity:.2}40%{height:100%;opacity:1}60%{height:100%;opacity:1}to{height:0;opacity:.2}}@keyframes n1-ww-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.n1-wallet-widget,.n1-wallet-widget *{font-family:APK Galeria,Mona Sans,"sans-serif"}.n1-wallet-widget :after,.n1-wallet-widget :before{font-family:inherit}.n1-wallet-widget{*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
2
|
+
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-bottom-2{bottom:-.5rem}.-left-2{left:-.5rem}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-full{left:100%}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1{top:.25rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-\[-1px\]{top:-1px}.top-full{top:100%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.m-4{margin:1rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-3{margin-bottom:-.75rem}.-ml-3{margin-left:-.75rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-32{height:8rem}.h-36{height:9rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-96{height:24rem}.h-\[10px\]{height:10px}.h-\[14px\]{height:14px}.h-\[32px\]{height:32px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0}.max-h-20{max-height:5rem}.w-1{width:.25rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-3{width:.75rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[10px\]{width:10px}.w-\[292px\]{width:292px}.w-\[2px\]{width:2px}.w-\[300px\]{width:300px}.w-\[68px\]{width:68px}.w-\[6px\]{width:6px}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-24{min-width:6rem}.min-w-96{min-width:24rem}.min-w-\[120px\]{min-width:120px}.min-w-\[7rem\]{min-width:7rem}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-\[280px\]{max-width:280px}.max-w-\[65\%\]{max-width:65%}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.origin-center{transform-origin:center}.origin-left{transform-origin:left}.-translate-x-1{--tw-translate-x:-0.25rem}.-translate-x-1,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-2{--tw-translate-y:0.5rem}.translate-y-2,.translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y:1rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-x-0{--tw-scale-x:0}.scale-x-0,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-\[3px\]{gap:3px}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-n1-ww-gray-200>:not([hidden])~:not([hidden]){border-color:#ffffff33}.divide-n1-ww-gray-800>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(5 4 10/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[6px\]{border-radius:6px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-none{border-style:none}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-emerald-800{--tw-border-opacity:1;border-color:rgb(6 95 70/var(--tw-border-opacity,1))}.border-emerald-900{--tw-border-opacity:1;border-color:rgb(6 78 59/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-900{--tw-border-opacity:1;border-color:rgb(20 83 45/var(--tw-border-opacity,1))}.border-n1-ww-border{--tw-border-opacity:1;border-color:rgb(43 43 48/var(--tw-border-opacity,1))}.border-n1-ww-gray-100{border-color:#ffffff66}.border-n1-ww-gray-200{border-color:#ffffff33}.border-n1-ww-gray-400{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.border-n1-ww-gray-700{--tw-border-opacity:1;border-color:rgb(13 13 13/var(--tw-border-opacity,1))}.border-n1-ww-gray-800{--tw-border-opacity:1;border-color:rgb(5 4 10/var(--tw-border-opacity,1))}.border-n1-ww-main{--tw-border-opacity:1;border-color:rgb(255 68 26/var(--tw-border-opacity,1))}.border-n1-ww-main-400{--tw-border-opacity:1;border-color:rgb(255 115 83/var(--tw-border-opacity,1))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-neutral-800{--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.border-red-900{--tw-border-opacity:1;border-color:rgb(127 29 29/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.border-yellow-700{--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.border-b-n1-ww-border{--tw-border-opacity:1;border-bottom-color:rgb(43 43 48/var(--tw-border-opacity,1))}.border-b-n1-ww-main{--tw-border-opacity:1;border-bottom-color:rgb(255 68 26/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#1b1b1b\]{--tw-bg-opacity:1;background-color:rgb(27 27 27/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-emerald-800{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity,1))}.bg-emerald-900{--tw-bg-opacity:1;background-color:rgb(6 78 59/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-200{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.bg-n1-ww-accent-neon{--tw-bg-opacity:1;background-color:rgb(0 255 81/var(--tw-bg-opacity,1))}.bg-n1-ww-border{--tw-bg-opacity:1;background-color:rgb(43 43 48/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-100{background-color:#ffffff66}.bg-n1-ww-gray-200{background-color:#ffffff33}.bg-n1-ww-gray-300{--tw-bg-opacity:1;background-color:rgb(43 43 48/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-50{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-600{--tw-bg-opacity:1;background-color:rgb(31 31 31/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-600\/70{background-color:rgba(31,31,31,.7)}.bg-n1-ww-gray-650{--tw-bg-opacity:1;background-color:rgb(27 27 27/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-700{--tw-bg-opacity:1;background-color:rgb(13 13 13/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-800{--tw-bg-opacity:1;background-color:rgb(5 4 10/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-800\/70{background-color:rgba(5,4,10,.7)}.bg-n1-ww-gray-900{--tw-bg-opacity:1;background-color:rgb(6 5 10/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-950{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-n1-ww-main{--tw-bg-opacity:1;background-color:rgb(255 68 26/var(--tw-bg-opacity,1))}.bg-n1-ww-main-400{--tw-bg-opacity:1;background-color:rgb(255 115 83/var(--tw-bg-opacity,1))}.bg-n1-ww-main-500{--tw-bg-opacity:1;background-color:rgb(255 68 26/var(--tw-bg-opacity,1))}.bg-n1-ww-main-950{--tw-bg-opacity:1;background-color:rgb(64 17 7/var(--tw-bg-opacity,1))}.bg-n1-ww-main\/20{background-color:rgba(255,68,26,.2)}.bg-n1-ww-main\/90{background-color:rgba(255,68,26,.9)}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.bg-neutral-950{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-900{--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500{--tw-gradient-from:#ef4444 var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:transparent var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-neutral-900{--tw-gradient-to:hsla(0,0%,9%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#171717 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-white{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fff var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-green-500{--tw-gradient-to:#22c55e var(--tw-gradient-to-position)}.to-neutral-800{--tw-gradient-to:#262626 var(--tw-gradient-to-position)}.to-red-500{--tw-gradient-to:#ef4444 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-px{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-era{font-family:APK Galeria,Mona Sans,sans-serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[12px\]{font-size:12px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-\[-0\.24px\]{letter-spacing:-.24px}.tracking-\[-0\.2px\]{letter-spacing:-.2px}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-n1-ww-accent-neon{--tw-text-opacity:1;color:rgb(0 255 81/var(--tw-text-opacity,1))}.text-n1-ww-gray-100{color:#ffffff66}.text-n1-ww-gray-200{color:#ffffff33}.text-n1-ww-gray-300{--tw-text-opacity:1;color:rgb(43 43 48/var(--tw-text-opacity,1))}.text-n1-ww-gray-400{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-n1-ww-gray-50{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-n1-ww-gray-500{--tw-text-opacity:1;color:rgb(41 41 41/var(--tw-text-opacity,1))}.text-n1-ww-gray-600{--tw-text-opacity:1;color:rgb(31 31 31/var(--tw-text-opacity,1))}.text-n1-ww-gray-700{--tw-text-opacity:1;color:rgb(13 13 13/var(--tw-text-opacity,1))}.text-n1-ww-gray-800{--tw-text-opacity:1;color:rgb(5 4 10/var(--tw-text-opacity,1))}.text-n1-ww-gray-900{--tw-text-opacity:1;color:rgb(6 5 10/var(--tw-text-opacity,1))}.text-n1-ww-icon{--tw-text-opacity:1;color:rgb(173 173 173/var(--tw-text-opacity,1))}.text-n1-ww-main{--tw-text-opacity:1;color:rgb(255 68 26/var(--tw-text-opacity,1))}.text-n1-ww-main-700{--tw-text-opacity:1;color:rgb(179 48 18/var(--tw-text-opacity,1))}.text-n1-ww-main\/90{color:rgba(255,68,26,.9)}.text-neutral-300{--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/70{color:hsla(0,0%,100%,.7)}.text-yellow-200{--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.decoration-white{text-decoration-color:#fff}.decoration-white\/40{text-decoration-color:hsla(0,0%,100%,.4)}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[0_0_25px_rgba\(255\2c 68\2c 26\2c 0\.18\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_25px_rgba\(255\2c 68\2c 26\2c 0\.18\)\]{--tw-shadow:0 0 25px rgba(255,68,26,.18);--tw-shadow-colored:0 0 25px var(--tw-shadow-color)}.shadow-\[0_12px_30px_rgba\(0\2c 0\2c 0\2c 0\.6\)\]{--tw-shadow:0 12px 30px rgba(0,0,0,.6);--tw-shadow-colored:0 12px 30px var(--tw-shadow-color)}.shadow-\[0_12px_30px_rgba\(0\2c 0\2c 0\2c 0\.6\)\],.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.brightness-150{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-150{--tw-brightness:brightness(1.5)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale-0{--tw-grayscale:grayscale(0)}.grayscale-0,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%)}.filter,.sepia{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[max-width\2c transform\2c opacity\]{transition-property:max-width,transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-\[3000ms\]{transition-duration:3s}.ease-\[cubic-bezier\(0\.16\2c 1\2c 0\.3\2c 1\)\]{transition-timing-function:cubic-bezier(.16,1,.3,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[max-width\2c transform\2c opacity\]{will-change:max-width,transform,opacity}.n1-ww-animate-blink{animation:n1-ww-blink .8s infinite}.n1-ww-animate-square-loader{animation:n1-ww-squareLoader 2s ease-in-out infinite}.n1-ww-animate-content-appear{animation:n1-ww-contentAppear .3s cubic-bezier(.16,1,.3,1) forwards}.n1-ww-animate-fade-in{animation:n1-ww-fadeIn var(--duration,.3s) ease-out forwards;animation-delay:var(--delay,0s)}.n1-ww-animate-fade-out{animation:n1-ww-fadeOut 3s forwards}.n1-ww-animate-fade-delayed{animation:n1-ww-fadeDelayed 2s cubic-bezier(.16,1,.3,1) forwards;animation-delay:2s}.n1-ww-animate-transfer-dot{animation:n1-ww-transfer-wave 1.6s ease-in-out infinite;transform-origin:center;will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.n1-ww-animate-transfer-dot:not(.n1-ww-force-motion){animation:none}}.n1-ww-typing-container{position:relative}.n1-ww-typing-container:after{content:"";position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:4px;height:24px;background:#ff441a}.n1-ww-typing-text{display:inline-block;overflow:hidden;width:0;animation:n1-ww-typing .5s steps(30) forwards;animation-delay:.1s}.n1-ww-table-value.n1-ww-show-value{animation:n1-ww-showTableValue .3s ease forwards}.n1-ww-typing-message{display:inline-block;overflow:hidden;width:0;white-space:nowrap}.n1-ww-typing-message.n1-ww-start-typing{animation:n1-ww-typingMessage .8s steps(20) forwards}.n1-ww-typing-button-text{display:inline-block;overflow:hidden;width:0;animation:n1-ww-typeButton .8s steps(20) forwards}.n1-ww-typing-cursor{display:inline-block;width:4px;height:24px;background:#ff441a;margin-left:2px;vertical-align:middle;transform:translateY(-2px)}.n1-ww-animate-fade-in{animation:n1-ww-fade-in .3s ease-out forwards}.n1-ww-animate-fade-out{animation:n1-ww-fade-out .3s ease-out forwards}.n1-ww-animate-content-appear{animation:n1-ww-content-appear .3s ease-out forwards}.n1-ww-animate-square-loader{animation:n1-ww-square-loader 2s ease-in-out infinite}.n1-ww-animate-fade-up{animation:n1-ww-fade-up .3s ease-out forwards}border:none!important}#dynamic-widget{display:none!important}.hover\:border-n1-ww-main-400\/50:hover{border-color:rgba(255,115,83,.5)}.hover\:bg-n1-ww-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(5 4 10/var(--tw-bg-opacity,1))}.hover\:bg-n1-ww-gray-900:hover{--tw-bg-opacity:1;background-color:rgb(6 5 10/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:font-bold:hover{font-weight:700}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.hover\:text-n1-ww-gray-300:hover{--tw-text-opacity:1;color:rgb(43 43 48/var(--tw-text-opacity,1))}.hover\:text-n1-ww-main:hover{--tw-text-opacity:1;color:rgb(255 68 26/var(--tw-text-opacity,1))}.hover\:text-n1-ww-main-400:hover{--tw-text-opacity:1;color:rgb(255 115 83/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-n1-ww-main:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 68 26/var(--tw-ring-opacity,1))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-black:focus-visible{outline-color:#000}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-80{opacity:.8}@media (min-width:640px){.sm\:w-auto{width:auto}}@media (min-width:768px){.md\:text-6xl{font-size:3.75rem;line-height:1}}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
var patchWindowEthereumGuard = function () {
|
|
4
2
|
if (typeof window === 'undefined' || window.__n1EthereumGuardPatched) {
|
|
5
3
|
return;
|
|
@@ -26,4 +24,5 @@ var patchWindowEthereumGuard = function () {
|
|
|
26
24
|
window.__n1EthereumGuardPatched = true;
|
|
27
25
|
};
|
|
28
26
|
patchWindowEthereumGuard();
|
|
27
|
+
export {};
|
|
29
28
|
//# sourceMappingURL=windowEthereumGuard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowEthereumGuard.js","sourceRoot":"","sources":["../../src/polyfills/windowEthereumGuard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"windowEthereumGuard.js","sourceRoot":"","sources":["../../src/polyfills/windowEthereumGuard.ts"],"names":[],"mappings":"AAMA,IAAM,wBAAwB,GAAG;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAM,sBAAsB,GAAG,MAAM,CAAC,cAAc,CAAC;IACrD,IAAM,WAAW,GAAG,MAA0D,CAAC;IAE/E,IAAM,+BAA+B,GAAiC,UACpE,MAAM,EACN,QAAqB,EACrB,UAA8C;QAE9C,IAAI,MAAM,KAAK,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YACjF,IAAI,CAAC;gBACH,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,KAAK,YAAY,SAAS;oBAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAC5D,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,CAAC,cAAc,GAAG,+BAA+B,CAAC;IAExD,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF,wBAAwB,EAAE,CAAC","sourcesContent":["declare global {\n interface Window {\n __n1EthereumGuardPatched?: boolean;\n }\n}\n\nconst patchWindowEthereumGuard = () => {\n if (typeof window === 'undefined' || window.__n1EthereumGuardPatched) {\n return;\n }\n\n const originalDefineProperty = Object.defineProperty;\n const typedWindow = window as unknown as Window & Record<PropertyKey, unknown>;\n\n const definePropertyWithEthereumGuard: typeof Object.defineProperty = function (\n target,\n property: PropertyKey,\n attributes: PropertyDescriptor & ThisType<any>\n ) {\n if (target === typedWindow && property === 'ethereum' && property in typedWindow) {\n try {\n return originalDefineProperty(target, property, attributes);\n } catch (error) {\n if (\n error instanceof TypeError &&\n typeof error.message === 'string' &&\n error.message.includes('Cannot redefine property: ethereum')\n ) {\n return target;\n }\n throw error;\n }\n }\n\n return originalDefineProperty(target, property, attributes);\n };\n\n Object.defineProperty = definePropertyWithEthereumGuard;\n\n window.__n1EthereumGuardPatched = true;\n};\n\npatchWindowEthereumGuard();\n\nexport {};\n"]}
|