@n1xyz/wallet-widget 0.0.15 → 0.0.16

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 (52) hide show
  1. package/dist/Modal/N1WalletModal.d.ts +1 -0
  2. package/dist/Modal/N1WalletModal.js +1 -0
  3. package/dist/Modal/N1WalletModal.js.map +1 -1
  4. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
  5. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +14 -12
  6. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
  7. package/dist/Provider/N1WalletProvider.d.ts +1 -1
  8. package/dist/Provider/N1WalletProvider.js +65 -37
  9. package/dist/Provider/N1WalletProvider.js.map +1 -1
  10. package/dist/Provider/types.d.ts +13 -0
  11. package/dist/Provider/types.js.map +1 -1
  12. package/dist/embedded-main-css.d.ts +2 -0
  13. package/dist/embedded-main-css.js +3 -0
  14. package/dist/embedded-main-css.js.map +1 -0
  15. package/dist/index.d.ts +0 -1
  16. package/dist/index.js +0 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/main.css +1 -1
  19. package/package.json +7 -4
  20. package/dist/Modal/NordFlow/context/deposit/types.d.ts +0 -26
  21. package/dist/Modal/NordFlow/context/deposit/types.js +0 -2
  22. package/dist/Modal/NordFlow/context/deposit/types.js.map +0 -1
  23. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +0 -7
  24. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +0 -113
  25. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +0 -1
  26. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +0 -20
  27. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +0 -235
  28. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +0 -1
  29. package/dist/Modal/NordFlow/hooks/index.d.ts +0 -3
  30. package/dist/Modal/NordFlow/hooks/index.js +0 -4
  31. package/dist/Modal/NordFlow/hooks/index.js.map +0 -1
  32. package/dist/Modal/NordFlow/hooks/useDepositFlow.d.ts +0 -52
  33. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +0 -385
  34. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +0 -1
  35. package/dist/Modal/NordFlow/hooks/useFlowState.d.ts +0 -32
  36. package/dist/Modal/NordFlow/hooks/useFlowState.js +0 -189
  37. package/dist/Modal/NordFlow/hooks/useFlowState.js.map +0 -1
  38. package/dist/Modal/NordFlow/hooks/useInterruptHandler.d.ts +0 -24
  39. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +0 -59
  40. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +0 -1
  41. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -0
  42. package/dist/Modal/NordFlow/hooks/useNordInstance.js +0 -3
  43. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +0 -1
  44. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -13
  45. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -259
  46. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +0 -1
  47. package/dist/Modal/NordFlow/utils/persistence.d.ts +0 -24
  48. package/dist/Modal/NordFlow/utils/persistence.js +0 -84
  49. package/dist/Modal/NordFlow/utils/persistence.js.map +0 -1
  50. package/dist/Provider/useN1WalletProvider.d.ts +0 -37
  51. package/dist/Provider/useN1WalletProvider.js +0 -398
  52. package/dist/Provider/useN1WalletProvider.js.map +0 -1
@@ -1 +1,2 @@
1
+ import '../main.css';
1
2
  export declare function N1WalletModal(): import("react/jsx-runtime").JSX.Element | null;
@@ -35,6 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import '../main.css';
38
39
  import { bs58Decode, getEd25519PublicKey, signEd25519 } from '@n1xyz/nts-sdk';
39
40
  import { lazy, Suspense, useEffect, useState } from 'react';
40
41
  import { ANIMATION_EASE } from './NordFlow/constants';
@@ -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 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
+ {"version":3,"file":"N1WalletModal.js","sourceRoot":"","sources":["../../src/Modal/N1WalletModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import '../main.css';\nimport { 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,5 +1,5 @@
1
1
  interface FinalSuccessScreenProps {
2
2
  onDone?: () => void;
3
3
  }
4
- export declare function FinalSuccessScreen({ onDone }: FinalSuccessScreenProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function FinalSuccessScreen({ onDone }: FinalSuccessScreenProps): import("react/jsx-runtime").JSX.Element | null;
5
5
  export {};
@@ -1,31 +1,33 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { useN1WalletContext, useN1WalletInternalContext, } from '../../../Provider/hooks';
4
4
  import { N1SessionMode } from '../../../Provider/types';
5
5
  import { ANIMATION_EASE } from '../constants';
6
- import { isNordConfigured } from '../utils/nordUtils';
7
6
  export function FinalSuccessScreen(_a) {
8
7
  var onDone = _a.onDone;
9
8
  var _b = useState(false), isHovered = _b[0], setIsHovered = _b[1];
10
- var _c = useN1WalletContext(), nord = _c.nord, address = _c.address, nordUser = _c.nordUser;
11
- var _d = useN1WalletInternalContext(), sessionMode = _d.sessionMode, setIsConnected = _d.setIsConnected;
12
- // Add a minimum viewing time before enabling the button
9
+ var address = useN1WalletContext().address;
10
+ var _c = useN1WalletInternalContext(), sessionMode = _c.sessionMode, setIsConnected = _c.setIsConnected, skipFinalScreen = _c.skipFinalScreen;
11
+ var hasCalledOnDone = useRef(false);
13
12
  useEffect(function () {
14
13
  setIsConnected(true);
15
14
  }, [setIsConnected]);
15
+ useEffect(function () {
16
+ if (skipFinalScreen && onDone && !hasCalledOnDone.current) {
17
+ hasCalledOnDone.current = true;
18
+ onDone();
19
+ }
20
+ }, [skipFinalScreen, onDone]);
21
+ if (skipFinalScreen) {
22
+ return null;
23
+ }
16
24
  var handleDone = function () {
17
25
  if (onDone) {
18
26
  onDone();
19
27
  }
20
28
  };
21
- // Get the appropriate title and message based on Nord configuration
22
29
  var getTitle = function () {
23
- if (nord && isNordConfigured(nord)) {
24
- return 'Authentication Successful!';
25
- }
26
- else {
27
- return 'Authentication Successful!';
28
- }
30
+ return 'Authentication Successful!';
29
31
  };
30
32
  var getMessage = function () {
31
33
  if (sessionMode === N1SessionMode.Nord) {
@@ -1 +1 @@
1
- {"version":3,"file":"08-FinalSuccessScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/08-FinalSuccessScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { ANIMATION_EASE } from '../constants';\nimport { isNordConfigured } from '../utils/nordUtils';\n\ninterface FinalSuccessScreenProps {\n onDone?: () => void;\n}\n\nexport function FinalSuccessScreen({ onDone }: FinalSuccessScreenProps) {\n const [isHovered, setIsHovered] = useState(false);\n const { nord, address, nordUser } = useN1WalletContext();\n const { sessionMode, setIsConnected } = useN1WalletInternalContext();\n \n // Add a minimum viewing time before enabling the button\n useEffect(() => {\n setIsConnected(true);\n }, [setIsConnected]);\n\n const handleDone = () => {\n if (onDone) {\n onDone();\n }\n };\n\n // Get the appropriate title and message based on Nord configuration\n const getTitle = () => {\n if (nord && isNordConfigured(nord)) {\n return 'Authentication Successful!';\n } else {\n return 'Authentication Successful!';\n }\n };\n\n const getMessage = () => {\n if (sessionMode === N1SessionMode.Nord) {\n return 'Your wallet has been successfully connected';\n } else {\n return 'Your wallet has been successfully connected';\n }\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"space-y-8\">\n <div className=\"flex flex-col items-center justify-center pt-4\">\n <div className=\"mb-6\">\n {/* Success icon/animation */}\n <div className=\"w-20 h-20 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center\">\n <svg\n className=\"w-10 h-10 text-green-500 dark:text-green-400\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n </div>\n </div>\n\n <h2 className=\"text-2xl text-n1-ww-gray-800 dark:text-white font-semibold mb-2 text-center\">\n {getTitle()}\n </h2>\n\n <p className=\"text-lg text-n1-ww-gray-700 dark:text-neutral-300 text-center\">\n {getMessage()}\n </p>\n\n {/* Display wallet address if available */}\n {address && (\n <p className=\"text-sm text-n1-ww-gray-500 dark:text-neutral-400 text-center mt-2\">\n Wallet: {address.substring(0, 6)}...\n {address.substring(address.length - 4)}\n </p>\n )}\n </div>\n\n <button\n onClick={handleDone}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(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: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-ww-gray-700 dark:text-n1-ww-gray-300 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white\n `}\n >\n Open App\n </span>\n </button>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"08-FinalSuccessScreen.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/screens/08-FinalSuccessScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { ANIMATION_EASE } from '../constants';\n\ninterface FinalSuccessScreenProps {\n onDone?: () => void;\n}\n\nexport function FinalSuccessScreen({ onDone }: FinalSuccessScreenProps) {\n const [isHovered, setIsHovered] = useState(false);\n const { address } = useN1WalletContext();\n const { sessionMode, setIsConnected, skipFinalScreen } = useN1WalletInternalContext();\n const hasCalledOnDone = useRef(false);\n\n useEffect(() => {\n setIsConnected(true);\n }, [setIsConnected]);\n\n useEffect(() => {\n if (skipFinalScreen && onDone && !hasCalledOnDone.current) {\n hasCalledOnDone.current = true;\n onDone();\n }\n }, [skipFinalScreen, onDone]);\n\n if (skipFinalScreen) {\n return null;\n }\n\n const handleDone = () => {\n if (onDone) {\n onDone();\n }\n };\n\n const getTitle = () => {\n return 'Authentication Successful!';\n };\n\n const getMessage = () => {\n if (sessionMode === N1SessionMode.Nord) {\n return 'Your wallet has been successfully connected';\n } else {\n return 'Your wallet has been successfully connected';\n }\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"space-y-8\">\n <div className=\"flex flex-col items-center justify-center pt-4\">\n <div className=\"mb-6\">\n {/* Success icon/animation */}\n <div className=\"w-20 h-20 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center\">\n <svg\n className=\"w-10 h-10 text-green-500 dark:text-green-400\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n </div>\n </div>\n\n <h2 className=\"text-2xl text-n1-ww-gray-800 dark:text-white font-semibold mb-2 text-center\">\n {getTitle()}\n </h2>\n\n <p className=\"text-lg text-n1-ww-gray-700 dark:text-neutral-300 text-center\">\n {getMessage()}\n </p>\n\n {/* Display wallet address if available */}\n {address && (\n <p className=\"text-sm text-n1-ww-gray-500 dark:text-neutral-400 text-center mt-2\">\n Wallet: {address.substring(0, 6)}...\n {address.substring(address.length - 4)}\n </p>\n )}\n </div>\n\n <button\n onClick={handleDone}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(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: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n <span\n className={`\n text-base font-medium tracking-wide transition-colors duration-300 ${ANIMATION_EASE}\n text-n1-ww-gray-700 dark:text-n1-ww-gray-300 group-hover:text-n1-ww-gray-900 dark:group-hover:text-white\n `}\n >\n Open App\n </span>\n </button>\n </div>\n </div>\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
1
  import { N1WalletProviderProps } from './types';
2
- export declare function N1WalletProvider({ children, providedSessionMode, appId, darkMode, onError, faucetUrl, nord, }: N1WalletProviderProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function N1WalletProvider({ children, providedSessionMode, appId, darkMode, onError, faucetUrl, nord, colorOverrides, skipFinalScreen, }: N1WalletProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,15 @@
1
1
  'use client';
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,19 +48,21 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
48
  };
38
49
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
39
50
  import React, { Suspense, useCallback, useEffect, useState } from 'react';
51
+ import root from 'react-shadow';
40
52
  import { N1WalletModal } from '../Modal/N1WalletModal';
41
53
  import { NordProvider } from '../Modal/NordFlow/context';
42
54
  import { WalletError, WalletErrorCode } from '../errors/types';
43
55
  import { logger } from '../utils/logger';
44
56
  import WalletErrorBoundary from './WalletErrorBoundary';
45
57
  import { N1InternalWalletContext, N1WalletContext } from './context';
46
- import { N1ModalViewMode, N1SessionMode, } from './types';
47
58
  import { useNordUserInitialization } from './hooks/useNordUserInitialization';
59
+ import { N1ModalViewMode, N1SessionMode, } from './types';
48
60
  var LazyWalletProvider = React.lazy(function () {
49
61
  return import('./LazyWalletProvider').then(function (mod) { return ({
50
62
  default: mod.LazyWalletProvider,
51
63
  }); });
52
64
  });
65
+ import mainCss from '../embedded-main-css';
53
66
  function NordWrapper(_a) {
54
67
  var children = _a.children;
55
68
  // Use the extracted hook for NordUser initialization
@@ -58,7 +71,7 @@ function NordWrapper(_a) {
58
71
  }
59
72
  export function N1WalletProvider(_a) {
60
73
  var _this = this;
61
- var children = _a.children, providedSessionMode = _a.providedSessionMode, appId = _a.appId, _b = _a.darkMode, darkMode = _b === void 0 ? true : _b, onError = _a.onError, faucetUrl = _a.faucetUrl, nord = _a.nord;
74
+ var children = _a.children, providedSessionMode = _a.providedSessionMode, appId = _a.appId, _b = _a.darkMode, darkMode = _b === void 0 ? true : _b, onError = _a.onError, faucetUrl = _a.faucetUrl, nord = _a.nord, colorOverrides = _a.colorOverrides, skipFinalScreen = _a.skipFinalScreen;
62
75
  var _c = useState(false), isConnected = _c[0], setIsConnected = _c[1];
63
76
  var _d = useState(null), ntsInterface = _d[0], setNtsInterface = _d[1];
64
77
  var _e = useState(null), sessionPubKey = _e[0], setSessionPubKey = _e[1];
@@ -144,6 +157,19 @@ export function N1WalletProvider(_a) {
144
157
  return [2 /*return*/];
145
158
  });
146
159
  }); };
160
+ // Prepare CSS with color overrides if provided
161
+ var injectedCss = mainCss;
162
+ if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {
163
+ // Apply all color overrides in order
164
+ colorOverrides.forEach(function (_a) {
165
+ var color = _a.color, replacement = _a.replacement;
166
+ if (color && replacement) {
167
+ // Replace all instances, case-insensitive
168
+ var regex = new RegExp(color.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
169
+ injectedCss = injectedCss.replace(regex, replacement);
170
+ }
171
+ });
172
+ }
147
173
  // Create the wallet context value
148
174
  var walletContextValue = {
149
175
  address: address,
@@ -168,40 +194,42 @@ export function N1WalletProvider(_a) {
168
194
  nord: nord,
169
195
  nordUser: nordUser,
170
196
  };
171
- return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(N1WalletContext.Provider, { value: walletContextValue, children: _jsx(N1InternalWalletContext.Provider, { value: {
172
- dynamicHandleLogOut: dynamicHandleLogOut,
173
- dynamicWallet: dynamicWallet,
174
- loading: loading,
175
- dynamicSdkHasLoaded: dynamicSdkHasLoaded,
176
- handleError: handleError,
177
- setDynamicSdkHasLoaded: setDynamicSdkHasLoaded,
178
- setAddress: setAddress,
179
- setBalances: setBalances,
180
- setChain: setChain,
181
- setDynamicHandleLogOut: setDynamicHandleLogOut,
182
- setDynamicWallet: setDynamicWallet,
183
- setIsConnected: setIsConnected,
184
- setLoading: setLoading,
185
- setNtsInterface: setNtsInterface,
186
- setSessionMode: setSessionMode,
187
- setSessionPubKey: setSessionPubKey,
188
- setShowSidebar: setShowSidebar,
189
- setSignMessageWithSessionKey: setSignMessageWithSessionKey,
190
- setSignMessageWithWalletKey: setSignMessageWithWalletKey,
191
- setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
192
- setStartClosingLogin: setStartClosingLogin,
193
- setUsername: setUsername,
194
- setUserChain: setUserChain,
195
- setViewMode: setViewMode,
196
- setWalletPubKey: setWalletPubKey,
197
- showSidebar: showSidebar,
198
- startClosingLogin: startClosingLogin,
199
- showDynamicWidget: showDynamicWidget,
200
- setShowDynamicWidget: setShowDynamicWidget,
201
- darkMode: darkMode,
202
- sessionMode: sessionMode,
203
- faucetUrl: faucetUrl,
204
- setNordUser: setNordUser,
205
- }, children: sessionMode === N1SessionMode.Nord ? (_jsx(NordWrapper, { children: _jsx(NordProvider, { children: _jsxs(_Fragment, { children: [children, _jsx(N1WalletModal, {}), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] }) }) })) : (_jsxs(_Fragment, { children: [children, _jsx(N1WalletModal, {}), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] })) }) }) }));
197
+ // Create the internal wallet context value
198
+ var internalWalletContextValue = {
199
+ dynamicHandleLogOut: dynamicHandleLogOut,
200
+ dynamicWallet: dynamicWallet,
201
+ loading: loading,
202
+ dynamicSdkHasLoaded: dynamicSdkHasLoaded,
203
+ handleError: handleError,
204
+ setDynamicSdkHasLoaded: setDynamicSdkHasLoaded,
205
+ setAddress: setAddress,
206
+ setBalances: setBalances,
207
+ setChain: setChain,
208
+ setDynamicHandleLogOut: setDynamicHandleLogOut,
209
+ setDynamicWallet: setDynamicWallet,
210
+ setIsConnected: setIsConnected,
211
+ setLoading: setLoading,
212
+ setNtsInterface: setNtsInterface,
213
+ setSessionMode: setSessionMode,
214
+ setSessionPubKey: setSessionPubKey,
215
+ setShowSidebar: setShowSidebar,
216
+ setSignMessageWithSessionKey: setSignMessageWithSessionKey,
217
+ setSignMessageWithWalletKey: setSignMessageWithWalletKey,
218
+ setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
219
+ setStartClosingLogin: setStartClosingLogin,
220
+ setUsername: setUsername,
221
+ setUserChain: setUserChain,
222
+ setViewMode: setViewMode,
223
+ setWalletPubKey: setWalletPubKey,
224
+ showSidebar: showSidebar,
225
+ startClosingLogin: startClosingLogin,
226
+ showDynamicWidget: showDynamicWidget,
227
+ setShowDynamicWidget: setShowDynamicWidget,
228
+ darkMode: darkMode,
229
+ sessionMode: sessionMode,
230
+ faucetUrl: faucetUrl,
231
+ setNordUser: setNordUser,
232
+ };
233
+ return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(N1WalletContext.Provider, { value: walletContextValue, children: _jsx(N1InternalWalletContext.Provider, { value: __assign(__assign({}, internalWalletContextValue), { skipFinalScreen: skipFinalScreen }), children: sessionMode === N1SessionMode.Nord ? (_jsx(NordWrapper, { children: _jsx(NordProvider, { children: _jsxs(_Fragment, { children: [children, _jsxs(root.div, { children: [_jsx("style", { children: injectedCss }), _jsx(N1WalletModal, {})] }), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] }) }) })) : (_jsxs(_Fragment, { children: [children, _jsxs(root.div, { children: [_jsx("style", { children: injectedCss }), _jsx(N1WalletModal, {})] }), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] })) }) }) }));
206
234
  }
207
235
  //# sourceMappingURL=N1WalletProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAEL,eAAe,EACf,aAAa,GAEd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,IAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,OAAA,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC;QAC5C,OAAO,EAAE,GAAG,CAAC,kBAAkB;KAChC,CAAC,EAF2C,CAE3C,CAAC;AAFH,CAEG,CACJ,CAAC;AAGF,SAAS,WAAW,CAAC,EAA2C;QAAzC,QAAQ,cAAA;IAE7B,qDAAqD;IACrD,yBAAyB,EAAE,CAAC;IAC5B,OAAO,CACL,4BACG,QAAQ,GACR,CACJ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAQT;IARxB,iBAwMC;QAvMC,QAAQ,cAAA,EACR,mBAAmB,yBAAA,EACnB,KAAK,WAAA,EACL,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EACf,OAAO,aAAA,EACP,SAAS,eAAA,EACT,IAAI,UAAA;IAEE,IAAA,KAAgC,QAAQ,CAAU,KAAK,CAAC,EAAvD,WAAW,QAAA,EAAE,cAAc,QAA4B,CAAC;IACzD,IAAA,KAAkC,QAAQ,CAAM,IAAI,CAAC,EAApD,YAAY,QAAA,EAAE,eAAe,QAAuB,CAAC;IACtD,IAAA,KAAoC,QAAQ,CAAoB,IAAI,CAAC,EAApE,aAAa,QAAA,EAAE,gBAAgB,QAAqC,CAAC;IACtE,IAAA,KAAkC,QAAQ,CAAoB,IAAI,CAAC,EAAlE,YAAY,QAAA,EAAE,eAAe,QAAqC,CAAC;IACpE,IAAA,KAA4B,QAAQ,CAAgB,IAAI,CAAC,EAAxD,SAAS,QAAA,EAAE,YAAY,QAAiC,CAAC;IAC1D,IAAA,KAA0B,QAAQ,CAAS,EAAE,CAAC,EAA7C,QAAQ,QAAA,EAAE,WAAW,QAAwB,CAAC;IAC/C,IAAA,KAA4D,QAAQ,CAExE,IAAI,CAAC,EAFA,yBAAyB,QAAA,EAAE,4BAA4B,QAEvD,CAAC;IACF,IAAA,KAA0D,QAAQ,CAEtE,IAAI,CAAC,EAFA,wBAAwB,QAAA,EAAE,2BAA2B,QAErD,CAAC;IACF,IAAA,KACJ,QAAQ,CAA8C,IAAI,CAAC,EADtD,4BAA4B,QAAA,EAAE,+BAA+B,QACP,CAAC;IACxD,IAAA,KAAwB,QAAQ,CAAU,KAAK,CAAC,EAA/C,OAAO,QAAA,EAAE,UAAU,QAA4B,CAAC;IACjD,IAAA,KAA0B,QAAQ,CACtC,eAAe,CAAC,OAAO,CACxB,EAFM,QAAQ,QAAA,EAAE,WAAW,QAE3B,CAAC;IACI,IAAA,KAA0B,QAAQ,CAAM,IAAI,CAAC,EAA5C,QAAQ,QAAA,EAAE,WAAW,QAAuB,CAAC;IAEpD,UAAU;IACJ,IAAA,KAA0B,QAAQ,CAAY,EAAE,CAAC,EAAhD,QAAQ,QAAA,EAAE,WAAW,QAA2B,CAAC;IAClD,IAAA,KAAoB,QAAQ,CAAS,EAAE,CAAC,EAAvC,KAAK,QAAA,EAAE,QAAQ,QAAwB,CAAC;IACzC,IAAA,KAAgD,QAAQ,CAAM,IAAI,CAAC,EAAlE,mBAAmB,QAAA,EAAE,sBAAsB,QAAuB,CAAC;IACpE,IAAA,KAAgC,QAAQ,CAAuB,IAAI,CAAC,EAAnE,WAAW,QAAA,EAAE,cAAc,QAAwC,CAAC;IAErE,IAAA,KAA4B,QAAQ,CAAU,KAAK,CAAC,EAAnD,SAAS,QAAA,EAAE,YAAY,QAA4B,CAAC;IACrD,IAAA,KAA4C,QAAQ,CAAU,KAAK,CAAC,EAAnE,iBAAiB,QAAA,EAAE,oBAAoB,QAA4B,CAAC;IACrE,IAAA,KAAgC,QAAQ,CAAU,KAAK,CAAC,EAAvD,WAAW,QAAA,EAAE,cAAc,QAA4B,CAAC;IACzD,IAAA,KAA4C,QAAQ,CAAM,IAAI,CAAC,EAA9D,iBAAiB,QAAA,EAAE,oBAAoB,QAAuB,CAAC;IAEtE,UAAU;IACJ,IAAA,KAAwB,QAAQ,CAAS,EAAE,CAAC,EAA3C,OAAO,QAAA,EAAE,UAAU,QAAwB,CAAC;IAC7C,IAAA,KAA8B,QAAQ,CAAS,EAAE,CAAC,EAAjD,UAAU,QAAA,EAAE,aAAa,QAAwB,CAAC;IACnD,IAAA,KAAgD,QAAQ,CAAM,IAAI,CAAC,EAAlE,mBAAmB,QAAA,EAAE,sBAAsB,QAAuB,CAAC;IACpE,IAAA,KAAoC,QAAQ,CAAM,IAAI,CAAC,EAAtD,aAAa,QAAA,EAAE,gBAAgB,QAAuB,CAAC;IAG9D,8DAA8D;IAC9D,SAAS,CAAC;QACR,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,kCAAkC;QAClC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACpC,IAAI,mBAAmB,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAM;QACR,CAAC;QAED,2BAA2B;QAC3B,IAAM,OAAO,GAAG;;;;;wBACd,sCAAsC;wBACtC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;;;;wBAGL,qBAAM,MAAM,CAAC,gBAAgB,CAAC,EAAA;;wBAA/C,YAAY,GAAK,CAAA,SAA8B,CAAA,aAAnC;wBACpB,IAAI,OAAO,EAAE,CAAC;4BACZ,sCAAsC;4BACtC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;4BAC5C,eAAe,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAC,CAAC;wBAC1D,CAAC;;;;wBAED,IAAI,OAAO,EAAE,CAAC;4BACZ,sCAAsC;4BACtC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAK,CAAC,CAAC;wBAChD,CAAC;;;;;aAEJ,CAAC;QAEF,OAAO,EAAE,CAAC;QAEV,OAAO;YACL,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnC,6DAA6D;IAC7D,SAAS,CAAC;QACR,IAAM,cAAc,GAClB,mBAAmB,IAAI,mBAAmB,KAAK,aAAa,CAAC,IAAI,CAAC;QACpE,IAAM,UAAU,GACd,YAAY,IAAI,mBAAmB,KAAK,aAAa,CAAC,IAAI,CAAC;QAE7D,UAAU,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE7D,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,KAAkB;QACjB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,cAAc,GAAG;;YACrB,WAAW,CACT,IAAI,WAAW,CACb,eAAe,CAAC,gBAAgB,EAChC,4CAA4C,CAC7C,CACF,CAAC;;;SACH,CAAC;IAEF,kCAAkC;IAClC,IAAM,kBAAkB,GAAG;QACzB,OAAO,SAAA;QACP,KAAK,OAAA;QACL,QAAQ,UAAA;QACR,KAAK,OAAA;QACL,WAAW,aAAA;QACX,YAAY,cAAA;QACZ,WAAW,aAAA;QACX,aAAa,eAAA;QACb,YAAY,cAAA;QACZ,SAAS,WAAA;QACT,yBAAyB,2BAAA;QACzB,wBAAwB,0BAAA;QACxB,4BAA4B,8BAAA;QAC5B,SAAS,WAAA;QACT,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,YAAY,cAAA;QACZ,cAAc,gBAAA;QACd,SAAS,WAAA;QACT,IAAI,MAAA;QACJ,QAAQ,UAAA;KACT,CAAC;IAEF,OAAO,CACL,KAAC,mBAAmB,IAAC,OAAO,EAAE,WAAW,YACvC,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB,YACjD,KAAC,uBAAuB,CAAC,QAAQ,IAC7B,KAAK,EAAE;oBACL,mBAAmB,qBAAA;oBACnB,aAAa,eAAA;oBACb,OAAO,SAAA;oBACP,mBAAmB,qBAAA;oBACnB,WAAW,aAAA;oBACX,sBAAsB,wBAAA;oBACtB,UAAU,YAAA;oBACV,WAAW,aAAA;oBACX,QAAQ,UAAA;oBACR,sBAAsB,wBAAA;oBACtB,gBAAgB,kBAAA;oBAChB,cAAc,gBAAA;oBACd,UAAU,YAAA;oBACV,eAAe,iBAAA;oBACf,cAAc,gBAAA;oBACd,gBAAgB,kBAAA;oBAChB,cAAc,gBAAA;oBACd,4BAA4B,8BAAA;oBAC5B,2BAA2B,6BAAA;oBAC3B,+BAA+B,iCAAA;oBAC/B,oBAAoB,sBAAA;oBACpB,WAAW,aAAA;oBACX,YAAY,cAAA;oBACZ,WAAW,aAAA;oBACX,eAAe,iBAAA;oBACf,WAAW,aAAA;oBACX,iBAAiB,mBAAA;oBACjB,iBAAiB,mBAAA;oBACjB,oBAAoB,sBAAA;oBACpB,QAAQ,UAAA;oBACR,WAAW,aAAA;oBACX,SAAS,WAAA;oBACT,WAAW,aAAA;iBACZ,YAEA,WAAW,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CACpC,KAAC,WAAW,cACV,KAAC,YAAY,cACX,8BACG,QAAQ,EACT,KAAC,aAAa,KAAG,EACjB,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,kBAAkB,KAAG,GACb,IACV,GACU,GACH,CACf,CAAC,CAAC,CAAC,CACF,8BACG,QAAQ,EACT,KAAC,aAAa,KAAG,EACjB,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,kBAAkB,KAAG,GACb,IACV,CACJ,GACgC,GACV,GACP,CACzB,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport { NordUser } from '@n1xyz/nord-ts';\nimport React, { Suspense, useCallback, useEffect, useState } from 'react';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { NordProvider } from '../Modal/NordFlow/context';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\nimport { useNordUserInitialization } from './hooks/useNordUserInitialization';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n darkMode = true,\n onError,\n faucetUrl,\n nord,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [ntsInterface, setNtsInterface] = useState<any>(null);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Connect\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n const [sessionMode, setSessionMode] = useState<N1SessionMode | null>(null);\n\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showSidebar, setShowSidebar] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [oldAddress, setOldAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n\n\n // Combine SDK loading and initialization into a single effect\n useEffect(() => {\n let mounted = true;\n\n // Set the session mode from props\n setSessionMode(providedSessionMode);\n if (providedSessionMode === N1SessionMode.Nord) {\n return\n }\n\n // Load the appropriate SDK\n const loadSDK = async () => {\n // eslint-disable-next-line no-console\n logger.debug('Loading NTS SDK');\n\n try {\n const { NTSInterface } = await import('@n1xyz/nts-sdk');\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.debug('NTS SDK loaded successfully');\n setNtsInterface(new NTSInterface(process.env.NTS_URL!));\n }\n } catch (error) {\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.error('Error loading NTS SDK:', error);\n }\n }\n };\n\n loadSDK();\n\n return () => {\n mounted = false;\n };\n }, [providedSessionMode, onError]);\n\n // Separate effect to handle loading state based on both SDKs\n useEffect(() => {\n const isDynamicReady =\n dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;\n const isNtsReady =\n ntsInterface || providedSessionMode === N1SessionMode.Nord;\n\n setLoading(!isDynamicReady || !isNtsReady);\n }, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n ntsInterface,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n faucetUrl,\n nord,\n nordUser,\n };\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n setNtsInterface,\n setSessionMode,\n setSessionPubKey,\n setShowSidebar,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n showSidebar,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n darkMode,\n sessionMode,\n faucetUrl,\n setNordUser,\n }}\n >\n {sessionMode === N1SessionMode.Nord ? (\n <NordWrapper>\n <NordProvider>\n <>\n {children}\n <N1WalletModal />\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n </NordProvider>\n </NordWrapper>\n ) : (\n <>\n {children}\n <N1WalletModal />\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n )}\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
1
+ {"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { Suspense, useCallback, useEffect, useState } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { NordProvider } from '../Modal/NordFlow/context';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport { useNordUserInitialization } from './hooks/useNordUserInitialization';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nimport mainCss from '../embedded-main-css';\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n darkMode = true,\n onError,\n faucetUrl,\n nord,\n colorOverrides,\n skipFinalScreen,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [ntsInterface, setNtsInterface] = useState<any>(null);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Connect\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n const [sessionMode, setSessionMode] = useState<N1SessionMode | null>(null);\n\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showSidebar, setShowSidebar] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [oldAddress, setOldAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n\n // Combine SDK loading and initialization into a single effect\n useEffect(() => {\n let mounted = true;\n\n // Set the session mode from props\n setSessionMode(providedSessionMode);\n if (providedSessionMode === N1SessionMode.Nord) {\n return\n }\n\n // Load the appropriate SDK\n const loadSDK = async () => {\n // eslint-disable-next-line no-console\n logger.debug('Loading NTS SDK');\n\n try {\n const { NTSInterface } = await import('@n1xyz/nts-sdk');\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.debug('NTS SDK loaded successfully');\n setNtsInterface(new NTSInterface(process.env.NTS_URL!));\n }\n } catch (error) {\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.error('Error loading NTS SDK:', error);\n }\n }\n };\n\n loadSDK();\n\n return () => {\n mounted = false;\n };\n }, [providedSessionMode, onError]);\n\n // Separate effect to handle loading state based on both SDKs\n useEffect(() => {\n const isDynamicReady =\n dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;\n const isNtsReady =\n ntsInterface || providedSessionMode === N1SessionMode.Nord;\n\n setLoading(!isDynamicReady || !isNtsReady);\n }, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Prepare CSS with color overrides if provided\n let injectedCss = mainCss;\n if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {\n // Apply all color overrides in order\n colorOverrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Replace all instances, case-insensitive\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n injectedCss = injectedCss.replace(regex, replacement);\n }\n });\n }\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n ntsInterface,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n faucetUrl,\n nord,\n nordUser,\n };\n\n // Create the internal wallet context value\n const internalWalletContextValue = {\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n setNtsInterface,\n setSessionMode,\n setSessionPubKey,\n setShowSidebar,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n showSidebar,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n darkMode,\n sessionMode,\n faucetUrl,\n setNordUser,\n };\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n ...internalWalletContextValue,\n skipFinalScreen, // make available to modal context tree\n }}\n >\n {sessionMode === N1SessionMode.Nord ? (\n <NordWrapper>\n <NordProvider>\n <>\n {children}\n <root.div>\n <style>{injectedCss}</style>\n <N1WalletModal />\n </root.div>\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n </NordProvider>\n </NordWrapper>\n ) : (\n <>\n {children}\n <root.div>\n <style>{injectedCss}</style>\n <N1WalletModal />\n </root.div>\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n )}\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
@@ -12,6 +12,10 @@ export declare enum N1SessionMode {
12
12
  Nord = 0,
13
13
  NTS = 1
14
14
  }
15
+ export interface CssColorOverride {
16
+ color: string;
17
+ replacement: string;
18
+ }
15
19
  export interface N1WalletProviderProps {
16
20
  children: React.ReactNode;
17
21
  providedSessionMode: N1SessionMode;
@@ -20,6 +24,14 @@ export interface N1WalletProviderProps {
20
24
  onError?: (error: WalletError) => void;
21
25
  faucetUrl?: string;
22
26
  nord?: Nord;
27
+ /**
28
+ * Optional array of color overrides: [{color: '#original', replacement: '#new'}]
29
+ */
30
+ colorOverrides?: CssColorOverride[];
31
+ /**
32
+ * If true, skip the final success screen and immediately call onDone
33
+ */
34
+ skipFinalScreen?: boolean;
23
35
  }
24
36
  export interface Balance {
25
37
  mint: string;
@@ -134,4 +146,5 @@ export interface N1InternalWalletState {
134
146
  darkMode: boolean;
135
147
  sessionMode: N1SessionMode | null;
136
148
  faucetUrl?: string;
149
+ skipFinalScreen?: boolean;
137
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Provider/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,2DAAO,CAAA;IACP,uEAAa,CAAA;IACb,2DAAO,CAAA;IACP,qEAAY,CAAA;IACZ,2DAAO,CAAA;IACP,mEAAW,CAAA;AACb,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,iDAAI,CAAA;IACJ,+CAAG,CAAA;AACL,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB","sourcesContent":["import type { WalletError } from '../errors/types';\nimport { Nord } from '@n1xyz/nord-ts';\n\nexport enum N1ModalViewMode {\n Connect,\n CreateSession,\n Signing,\n CreatingUser,\n Success,\n NoWhitelist,\n}\n\nexport enum N1SessionMode {\n Nord,\n NTS,\n}\n\nexport interface N1WalletProviderProps {\n children: React.ReactNode;\n providedSessionMode: N1SessionMode;\n appId: string;\n darkMode?: boolean;\n onError?: (error: WalletError) => void;\n faucetUrl?: string;\n nord?: Nord;\n}\n\nexport interface Balance {\n mint: string;\n balance: bigint;\n appId: string;\n appType: string;\n}\n\nexport interface N1NordFunctions {\n // Market information functions\n getMarkets: () => Promise<any[]>;\n getOrderbook: (symbol: string) => Promise<any>;\n getTrades: (params: any) => Promise<any>;\n getMarketsStats: () => Promise<any>;\n\n // Trading functions\n placeOrder: (params: {\n sessionId: bigint | string;\n marketId: number;\n side: 'BUY' | 'SELL';\n fillMode: 'GTC' | 'IOC' | 'FOK' | 'POST_ONLY';\n isReduceOnly: boolean;\n size?: number | string;\n price?: number | string;\n quoteSize?: number | string;\n clientOrderId?: bigint | string;\n }) => Promise<bigint | undefined>;\n\n cancelOrder: (params: {\n sessionId: bigint | string;\n orderId: bigint | string;\n }) => Promise<bigint>;\n\n // Account management\n createSession: (params: {\n userPubkey: Uint8Array;\n sessionPubkey: Uint8Array;\n expiryTimestamp?: bigint;\n }) => Promise<bigint>;\n\n revokeSession: (params: { sessionId: bigint | string }) => Promise<void>;\n\n withdraw: (params: {\n sessionId: bigint | string;\n tokenId: number;\n amount: number;\n }) => Promise<void>;\n\n transfer: (params: {\n sessionId: bigint | string;\n fromAccountId: number;\n toAccountId?: number;\n tokenId: number;\n tokenDecimals: number;\n amount: number | string;\n }) => Promise<number | undefined>;\n\n // Blockchain information\n getTimestamp: () => Promise<bigint>;\n getActionNonce: () => Promise<number>;\n\n // Block and action queries\n queryBlock: (query: any) => Promise<any>;\n queryLastNBlocks: () => Promise<any>;\n queryRecentBlocks: (last_n: number) => Promise<any>;\n queryAction: (query: any) => Promise<any>;\n queryRecentActions: (last_n: number) => Promise<any>;\n getActions: (fromActionId: number, toActionId: number) => Promise<any>;\n}\n\nexport interface N1WalletState {\n address: string;\n appId: string | null;\n balances: Balance[];\n chain: string;\n isConnected: boolean;\n ntsInterface: any;\n sessionMode: N1SessionMode | null;\n sessionPubKey: Uint8Array | null;\n setShowLogin: (show: boolean) => void;\n showLogin: boolean;\n signMessageWithSessionKey: ((message: any) => Promise<any>) | null;\n signMessageWithWalletKey: ((message: any) => Promise<any>) | null;\n signTransactionWithWalletKey: ((transaction: any) => Promise<any>) | null;\n userChain: string | null;\n username: string;\n viewMode: N1ModalViewMode;\n walletPubKey: Uint8Array | null;\n throwTestError: () => Promise<void>;\n nord?: Nord;\n faucetUrl?: string;\n nordUser?: any;\n}\n\nexport interface N1InternalWalletState {\n dynamicHandleLogOut: any;\n dynamicWallet: any;\n loading: boolean;\n dynamicSdkHasLoaded: any;\n handleError: (error: WalletError) => void;\n setDynamicSdkHasLoaded: (loaded: any) => void;\n setAddress: (address: string) => void;\n setBalances: (balances: Balance[]) => void;\n setChain: (chain: string) => void;\n setDynamicHandleLogOut: (handler: any) => void;\n setDynamicWallet: (wallet: any) => void;\n setIsConnected: (connected: boolean) => void;\n setLoading: (loading: boolean) => void;\n setNtsInterface: (nts: any) => void;\n setSessionMode: (mode: N1SessionMode | null) => void;\n setSessionPubKey: (key: Uint8Array) => void;\n setShowSidebar: (show: boolean) => void;\n setSignMessageWithSessionKey: React.Dispatch<\n React.SetStateAction<((message: any) => Promise<any>) | null>\n >;\n setSignMessageWithWalletKey: React.Dispatch<\n React.SetStateAction<((message: any) => Promise<any>) | null>\n >;\n setSignTransactionWithWalletKey: React.Dispatch<\n React.SetStateAction<((transaction: any) => Promise<any>) | null>\n >;\n setStartClosingLogin: (closing: boolean) => void;\n setUsername: (username: string) => void;\n setUserChain: (chain: string) => void;\n setViewMode: (mode: N1ModalViewMode) => void;\n setWalletPubKey: (key: Uint8Array) => void;\n setNordUser: (user: any) => void;\n showSidebar: boolean;\n startClosingLogin: boolean;\n showDynamicWidget: any;\n setShowDynamicWidget: (show: any) => void;\n darkMode: boolean;\n sessionMode: N1SessionMode | null;\n faucetUrl?: string;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Provider/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,2DAAO,CAAA;IACP,uEAAa,CAAA;IACb,2DAAO,CAAA;IACP,qEAAY,CAAA;IACZ,2DAAO,CAAA;IACP,mEAAW,CAAA;AACb,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,iDAAI,CAAA;IACJ,+CAAG,CAAA;AACL,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB","sourcesContent":["import type { WalletError } from '../errors/types';\nimport { Nord } from '@n1xyz/nord-ts';\n\nexport enum N1ModalViewMode {\n Connect,\n CreateSession,\n Signing,\n CreatingUser,\n Success,\n NoWhitelist,\n}\n\nexport enum N1SessionMode {\n Nord,\n NTS,\n}\n\nexport interface CssColorOverride {\n color: string; // Color to find in CSS (e.g. '#3b82f6')\n replacement: string; // Replacement color (e.g. '#afafaf')\n}\n\nexport interface N1WalletProviderProps {\n children: React.ReactNode;\n providedSessionMode: N1SessionMode;\n appId: string;\n darkMode?: boolean;\n onError?: (error: WalletError) => void;\n faucetUrl?: string;\n nord?: Nord;\n /**\n * Optional array of color overrides: [{color: '#original', replacement: '#new'}]\n */\n colorOverrides?: CssColorOverride[];\n /**\n * If true, skip the final success screen and immediately call onDone\n */\n skipFinalScreen?: boolean;\n}\n\nexport interface Balance {\n mint: string;\n balance: bigint;\n appId: string;\n appType: string;\n}\n\nexport interface N1NordFunctions {\n // Market information functions\n getMarkets: () => Promise<any[]>;\n getOrderbook: (symbol: string) => Promise<any>;\n getTrades: (params: any) => Promise<any>;\n getMarketsStats: () => Promise<any>;\n\n // Trading functions\n placeOrder: (params: {\n sessionId: bigint | string;\n marketId: number;\n side: 'BUY' | 'SELL';\n fillMode: 'GTC' | 'IOC' | 'FOK' | 'POST_ONLY';\n isReduceOnly: boolean;\n size?: number | string;\n price?: number | string;\n quoteSize?: number | string;\n clientOrderId?: bigint | string;\n }) => Promise<bigint | undefined>;\n\n cancelOrder: (params: {\n sessionId: bigint | string;\n orderId: bigint | string;\n }) => Promise<bigint>;\n\n // Account management\n createSession: (params: {\n userPubkey: Uint8Array;\n sessionPubkey: Uint8Array;\n expiryTimestamp?: bigint;\n }) => Promise<bigint>;\n\n revokeSession: (params: { sessionId: bigint | string }) => Promise<void>;\n\n withdraw: (params: {\n sessionId: bigint | string;\n tokenId: number;\n amount: number;\n }) => Promise<void>;\n\n transfer: (params: {\n sessionId: bigint | string;\n fromAccountId: number;\n toAccountId?: number;\n tokenId: number;\n tokenDecimals: number;\n amount: number | string;\n }) => Promise<number | undefined>;\n\n // Blockchain information\n getTimestamp: () => Promise<bigint>;\n getActionNonce: () => Promise<number>;\n\n // Block and action queries\n queryBlock: (query: any) => Promise<any>;\n queryLastNBlocks: () => Promise<any>;\n queryRecentBlocks: (last_n: number) => Promise<any>;\n queryAction: (query: any) => Promise<any>;\n queryRecentActions: (last_n: number) => Promise<any>;\n getActions: (fromActionId: number, toActionId: number) => Promise<any>;\n}\n\nexport interface N1WalletState {\n address: string;\n appId: string | null;\n balances: Balance[];\n chain: string;\n isConnected: boolean;\n ntsInterface: any;\n sessionMode: N1SessionMode | null;\n sessionPubKey: Uint8Array | null;\n setShowLogin: (show: boolean) => void;\n showLogin: boolean;\n signMessageWithSessionKey: ((message: any) => Promise<any>) | null;\n signMessageWithWalletKey: ((message: any) => Promise<any>) | null;\n signTransactionWithWalletKey: ((transaction: any) => Promise<any>) | null;\n userChain: string | null;\n username: string;\n viewMode: N1ModalViewMode;\n walletPubKey: Uint8Array | null;\n throwTestError: () => Promise<void>;\n nord?: Nord;\n faucetUrl?: string;\n nordUser?: any;\n}\n\nexport interface N1InternalWalletState {\n dynamicHandleLogOut: any;\n dynamicWallet: any;\n loading: boolean;\n dynamicSdkHasLoaded: any;\n handleError: (error: WalletError) => void;\n setDynamicSdkHasLoaded: (loaded: any) => void;\n setAddress: (address: string) => void;\n setBalances: (balances: Balance[]) => void;\n setChain: (chain: string) => void;\n setDynamicHandleLogOut: (handler: any) => void;\n setDynamicWallet: (wallet: any) => void;\n setIsConnected: (connected: boolean) => void;\n setLoading: (loading: boolean) => void;\n setNtsInterface: (nts: any) => void;\n setSessionMode: (mode: N1SessionMode | null) => void;\n setSessionPubKey: (key: Uint8Array) => void;\n setShowSidebar: (show: boolean) => void;\n setSignMessageWithSessionKey: React.Dispatch<\n React.SetStateAction<((message: any) => Promise<any>) | null>\n >;\n setSignMessageWithWalletKey: React.Dispatch<\n React.SetStateAction<((message: any) => Promise<any>) | null>\n >;\n setSignTransactionWithWalletKey: React.Dispatch<\n React.SetStateAction<((transaction: any) => Promise<any>) | null>\n >;\n setStartClosingLogin: (closing: boolean) => void;\n setUsername: (username: string) => void;\n setUserChain: (chain: string) => void;\n setViewMode: (mode: N1ModalViewMode) => void;\n setWalletPubKey: (key: Uint8Array) => void;\n setNordUser: (user: any) => void;\n showSidebar: boolean;\n startClosingLogin: boolean;\n showDynamicWidget: any;\n setShowDynamicWidget: (show: any) => void;\n darkMode: boolean;\n sessionMode: N1SessionMode | null;\n faucetUrl?: string;\n skipFinalScreen?: boolean;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: ".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: }\n /*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;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;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}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-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height: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{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[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%}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1{top:.25rem}.top-1\\/2{top:50%}.top-2{top:.5rem}.top-3{top:.75rem}.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}.z-\\[200\\]{z-index:200}.z-\\[9999\\]{z-index:9999}.m-4{margin:1rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-auto{margin-bottom:auto;margin-top: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}.mr-0{margin-right:0}.mr-0\\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.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}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display: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-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-8{height:2rem}.h-80{height:20rem}.h-\\[14px\\]{height:14px}.h-\\[20px\\]{height:20px}.h-\\[32px\\]{height:32px}.h-\\[calc\\(100vh-144px\\)\\]{height:calc(100vh - 144px)}.h-full{height:100%}.h-screen{height:100vh}.max-h-0{max-height:0}.max-h-20{max-height:5rem}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[300px\\]{max-height:300px}.max-h-\\[500px\\]{max-height:500px}.w-1{width:.25rem}.w-1\\/2{width:50%}.w-10{width:2.5rem}.w-12{width:3rem}.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-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\\[250px\\]{width:250px}.w-\\[2px\\]{width:2px}.w-\\[300px\\]{width:300px}.w-\\[420px\\]{width:420px}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.min-w-24{min-width:6rem}.min-w-96{min-width:24rem}.min-w-\\[120px\\]{min-width:120px}.min-w-\\[160px\\]{min-width:160px}.min-w-\\[280px\\]{min-width:280px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-\\[65\\%\\]{max-width:65%}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.origin-center{transform-origin:center}.origin-left{transform-origin:left}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.-translate-y-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-y-1\\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-\\[-200\\%\\]{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-\\[-200\\%\\]{--tw-translate-x:-200%}.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}.translate-y-\\[-2px\\]{--tw-translate-y:-2px}.translate-y-\\[-2px\\],.translate-y-\\[2px\\]{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-\\[2px\\]{--tw-translate-y:2px}.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-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-95,.scale-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))}.scale-x-0{--tw-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-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}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1px*var(--tw-space-y-reverse));margin-top:calc(1px*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-n1-ww-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(234 234 234/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-\\[15px\\]{border-radius:15px}.rounded-\\[18px\\]{border-radius:18px}.rounded-\\[20px\\]{border-radius:20px}.rounded-\\[25px\\]{border-radius:25px}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[3px\\]{border-radius:3px}.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-bottom-left-radius:.125rem;border-top-left-radius:.125rem}.rounded-r-sm{border-bottom-right-radius:.125rem;border-top-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-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-gray-100{--tw-border-opacity:1;border-color:rgb(247 247 247/var(--tw-border-opacity,1))}.border-n1-ww-gray-200{--tw-border-opacity:1;border-color:rgb(234 234 234/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\\/40{border-color:rgba(255,68,26,.4)}.border-n1-ww-main\\/80{border-color:rgba(255,68,26,.8)}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/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-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-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\\/20{background-color:rgba(0,0,0,.2)}.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-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/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-100\\/50{background-color:rgba(220,252,231,.5)}.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-gray-100{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-200{--tw-bg-opacity:1;background-color:rgb(234 234 234/var(--tw-bg-opacity,1))}.bg-n1-ww-gray-300{--tw-bg-opacity:1;background-color:rgb(217 217 217/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-main{--tw-bg-opacity:1;background-color:rgb(255 68 26/var(--tw-bg-opacity,1))}.bg-n1-ww-main\\/10{background-color:rgba(255,68,26,.1)}.bg-n1-ww-main\\/40{background-color:rgba(255,68,26,.4)}.bg-n1-ww-main\\/5{background-color:rgba(255,68,26,.05)}.bg-n1-ww-main\\/\\[0\\.02\\]{background-color:rgba(255,68,26,.02)}.bg-n1-ww-main\\/\\[0\\.03\\]{background-color:rgba(255,68,26,.03)}.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-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-100\\/50{background-color:hsla(0,93%,94%,.5)}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/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-white\\/30{background-color:hsla(0,0%,100%,.3)}.bg-white\\/45{background-color:hsla(0,0%,100%,.45)}.bg-white\\/70{background-color:hsla(0,0%,100%,.7)}.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-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-green-500\\/10{--tw-gradient-from:rgba(34,197,94,.1) 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-red-500\\/10{--tw-gradient-from:rgba(239,68,68,.1) 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-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-green-500\\/5{--tw-gradient-to:rgba(34,197,94,.05) var(--tw-gradient-to-position)}.to-red-500{--tw-gradient-to:#ef4444 var(--tw-gradient-to-position)}.to-red-500\\/5{--tw-gradient-to:rgba(239,68,68,.05) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.p-0{padding:0}.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}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.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-bottom:0;padding-top:0}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-2{padding-bottom:.5rem}.pl-4{padding-left: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:Monument Grotesk,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-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\\[10px\\]{font-size:10px}.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-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)}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.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-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-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-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-500\\/50{color:rgba(34,197,94,.5)}.text-green-500\\/80{color:rgba(34,197,94,.8)}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-n1-ww-gray-400{--tw-text-opacity:1;color:rgb(173 173 173/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(142 142 142/var(--tw-text-opacity,1))}.text-n1-ww-gray-600{--tw-text-opacity:1;color:rgb(112 112 112/var(--tw-text-opacity,1))}.text-n1-ww-gray-700{--tw-text-opacity:1;color:rgb(70 70 70/var(--tw-text-opacity,1))}.text-n1-ww-gray-800{--tw-text-opacity:1;color:rgb(27 27 27/var(--tw-text-opacity,1))}.text-n1-ww-gray-900{--tw-text-opacity:1;color:rgb(20 20 20/var(--tw-text-opacity,1))}.text-n1-ww-main{--tw-text-opacity:1;color:rgb(255 68 26/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-600{--tw-text-opacity:1;color:rgb(147 51 234/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))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.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_0_1px_rgba\\(255\\2c 68\\2c 26\\2c 0\\.1\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(255\\2c 68\\2c 26\\2c 0\\.1\\)\\]{--tw-shadow:0 0 0 1px rgba(255,68,26,.1);--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.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-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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-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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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,.drop-shadow{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)}.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))}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.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-duration:.15s;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-\\[max-width\\2c transform\\2c opacity\\]{transition-duration:.15s;transition-property:max-width,transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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}.\\@container{container-type:inline-size}@keyframes n1-ww-blink{0%,to{opacity:1}50%{opacity:0}}.n1-ww-animate-blink{animation:n1-ww-blink .8s infinite}@keyframes n1-ww-squareLoader{0%{height:0;opacity:.2}40%{height:100%;opacity:1}60%{height:100%;opacity:1}to{height:0;opacity:.2}}.n1-ww-animate-square-loader{animation:n1-ww-squareLoader 2s ease-in-out infinite}@keyframes n1-ww-contentAppear{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.n1-ww-animate-content-appear{animation:n1-ww-contentAppear .3s cubic-bezier(.16,1,.3,1) forwards}@keyframes n1-ww-fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.n1-ww-animate-fade-in{animation:n1-ww-fadeIn var(--duration,.3s) ease-out forwards;animation-delay:var(--delay,0s)}@keyframes n1-ww-fadeOut{0%{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(0)}}.n1-ww-animate-fade-out{animation:n1-ww-fadeOut 3s forwards}@keyframes n1-ww-fadeDelayed{0%,50%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.n1-ww-animate-fade-delayed{animation:n1-ww-fadeDelayed 2s cubic-bezier(.16,1,.3,1) forwards;animation-delay:2s}@keyframes n1-ww-fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.n1-ww-typing-container{position:relative}.n1-ww-typing-container:after{background:#ff441a;content:\"\";height:24px;position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:4px}.n1-ww-typing-text{animation:n1-ww-typing .5s steps(30) forwards;animation-delay:.1s;display:inline-block;overflow:hidden;width:0}@keyframes n1-ww-typing{0%{width:0}to{width:100%}}.n1-ww-table-value.n1-ww-show-value{animation:n1-ww-showTableValue .3s ease forwards}@keyframes n1-ww-showTableValue{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.n1-ww-typing-message{display:inline-block;overflow:hidden;white-space:nowrap;width:0}.n1-ww-typing-message.n1-ww-start-typing{animation:n1-ww-typingMessage .8s steps(20) forwards}@keyframes n1-ww-typingMessage{0%{width:0}to{width:100%}}.n1-ww-typing-button-text{animation:n1-ww-typeButton .8s steps(20) forwards;display:inline-block;overflow:hidden;width:0}.n1-ww-typing-cursor{background:#ff441a;display:inline-block;height:24px;margin-left:2px;transform:translateY(-2px);vertical-align:middle;width:4px}@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)}}border:none!important;.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}}.first\\:ml-0:first-child{margin-left:0}.last\\:mr-0:last-child{margin-right:0}.hover\\:scale-\\[0\\.99\\]:hover{--tw-scale-x:0.99;--tw-scale-y:0.99;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))}.hover\\:border-emerald-600:hover{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity,1))}.hover\\:border-n1-ww-gray-300:hover{--tw-border-opacity:1;border-color:rgb(217 217 217/var(--tw-border-opacity,1))}.hover\\:border-n1-ww-gray-400:hover{--tw-border-opacity:1;border-color:rgb(173 173 173/var(--tw-border-opacity,1))}.hover\\:border-n1-ww-main:hover{--tw-border-opacity:1;border-color:rgb(255 68 26/var(--tw-border-opacity,1))}.hover\\:border-red-500:hover{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.hover\\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\\:bg-emerald-600:hover{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.hover\\:bg-emerald-700:hover{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.hover\\:bg-n1-ww-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity,1))}.hover\\:bg-n1-ww-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(234 234 234/var(--tw-bg-opacity,1))}.hover\\:bg-n1-ww-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\\:bg-n1-ww-main\\/90:hover{background-color:rgba(255,68,26,.9)}.hover\\:bg-red-50\\/50:hover{background-color:hsla(0,86%,97%,.5)}.hover\\:bg-red-800:hover{--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))}.hover\\:bg-stone-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity,1))}.hover\\:font-bold:hover{font-weight:700}.hover\\:text-green-600:hover{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.hover\\:text-green-700:hover{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.hover\\:text-n1-ww-gray-500:hover{--tw-text-opacity:1;color:rgb(142 142 142/var(--tw-text-opacity,1))}.hover\\:text-n1-ww-gray-700:hover{--tw-text-opacity:1;color:rgb(70 70 70/var(--tw-text-opacity,1))}.hover\\:text-n1-ww-gray-900:hover{--tw-text-opacity:1;color:rgb(20 20 20/var(--tw-text-opacity,1))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\\:text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\\:opacity-80:hover{opacity:.8}.focus\\:border-n1-ww-gray-400:focus{--tw-border-opacity:1;border-color:rgb(173 173 173/var(--tw-border-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring: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(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:ring-1:focus,.focus\\:ring:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-1: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(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:ring-n1-ww-gray-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(173 173 173/var(--tw-ring-opacity,1))}.focus\\:ring-orange-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(254 215 170/var(--tw-ring-opacity,1))}.active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}.active\\:scale-\\[0\\.98\\]:active,.group:hover .group-hover\\:scale-105{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\\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\\:scale-x-100{--tw-scale-x:1;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\\:text-n1-ww-gray-700{--tw-text-opacity:1;color:rgb(70 70 70/var(--tw-text-opacity,1))}.group:hover .group-hover\\:text-n1-ww-gray-900{--tw-text-opacity:1;color:rgb(20 20 20/var(--tw-text-opacity,1))}.group:hover .group-hover\\:text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.group:hover .group-hover\\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .group-hover\\:opacity-100{opacity:1}.group:hover .group-hover\\:opacity-80{opacity:.8}.group:hover .group-hover\\:grayscale-0{--tw-grayscale:grayscale(0);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)}@container (min-width: 28rem){.\\@md\\:w-auto{width:auto}.\\@md\\:flex-grow-0{flex-grow:0}.\\@md\\:flex-row{flex-direction:row}.\\@md\\:items-center{align-items:center}.\\@md\\:gap-0{gap:0}.\\@md\\:px-5{padding-left:1.25rem;padding-right:1.25rem}}.dark\\:divide-n1-ww-gray-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(27 27 27/var(--tw-divide-opacity,1))}.dark\\:border-emerald-800\\/30:is(.dark *){border-color:rgba(6,95,70,.3)}.dark\\:border-emerald-900\\/30:is(.dark *){border-color:rgba(6,78,59,.3)}.dark\\:border-green-900\\/30:is(.dark *){border-color:rgba(20,83,45,.3)}.dark\\:border-n1-ww-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(70 70 70/var(--tw-border-opacity,1))}.dark\\:border-n1-ww-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(27 27 27/var(--tw-border-opacity,1))}.dark\\:border-neutral-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.dark\\:border-neutral-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}.dark\\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\\:border-red-800\\/30:is(.dark *){border-color:rgba(153,27,27,.3)}.dark\\:border-red-900\\/30:is(.dark *){border-color:rgba(127,29,29,.3)}.dark\\:bg-black\\/10:is(.dark *){background-color:rgba(0,0,0,.1)}.dark\\:bg-black\\/40:is(.dark *){background-color:rgba(0,0,0,.4)}.dark\\:bg-black\\/45:is(.dark *){background-color:rgba(0,0,0,.45)}.dark\\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\\:bg-blue-900\\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\\:bg-emerald-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.dark\\:bg-emerald-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.dark\\:bg-emerald-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity,1))}.dark\\:bg-emerald-900\\/10:is(.dark *){background-color:rgba(6,78,59,.1)}.dark\\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\\:bg-green-900\\/10:is(.dark *){background-color:rgba(20,83,45,.1)}.dark\\:bg-green-900\\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\\:bg-green-900\\/30:is(.dark *){background-color:rgba(20,83,45,.3)}.dark\\:bg-n1-ww-dark-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.dark\\:bg-n1-ww-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(112 112 112/var(--tw-bg-opacity,1))}.dark\\:bg-n1-ww-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(70 70 70/var(--tw-bg-opacity,1))}.dark\\:bg-n1-ww-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(27 27 27/var(--tw-bg-opacity,1))}.dark\\:bg-n1-ww-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 20 20/var(--tw-bg-opacity,1))}.dark\\:bg-n1-ww-gray-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.dark\\:bg-n1-ww-main\\/20:is(.dark *){background-color:rgba(255,68,26,.2)}.dark\\:bg-neutral-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.dark\\:bg-neutral-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.dark\\:bg-neutral-900\\/80:is(.dark *){background-color:hsla(0,0%,9%,.8)}.dark\\:bg-neutral-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.dark\\:bg-red-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\\:bg-red-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.dark\\:bg-red-900\\/10:is(.dark *){background-color:rgba(127,29,29,.1)}.dark\\:bg-red-900\\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\\:bg-red-900\\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\\:via-n1-ww-gray-300:is(.dark *){--tw-gradient-to:hsla(0,0%,85%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#d9d9d9 var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\\:text-black:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\\:text-emerald-500:is(.dark *){--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.dark\\:text-emerald-500\\/50:is(.dark *){color:rgba(16,185,129,.5)}.dark\\:text-emerald-500\\/80:is(.dark *){color:rgba(16,185,129,.8)}.dark\\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(247 247 247/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(234 234 234/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(217 217 217/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(173 173 173/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-50:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(142 142 142/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(112 112 112/var(--tw-text-opacity,1))}.dark\\:text-n1-ww-main:is(.dark *){--tw-text-opacity:1;color:rgb(255 68 26/var(--tw-text-opacity,1))}.dark\\:text-neutral-300:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.dark\\:text-neutral-400:is(.dark *){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.dark\\:text-neutral-500:is(.dark *){--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.dark\\:text-neutral-900:is(.dark *){--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.dark\\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\\:text-red-500:is(.dark *){--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.dark\\:text-red-600:is(.dark *){--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.dark\\:text-stone-200:is(.dark *){--tw-text-opacity:1;color:rgb(231 229 228/var(--tw-text-opacity,1))}.dark\\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:opacity-10:is(.dark *){opacity:.1}.dark\\:hover\\:border-emerald-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity,1))}.dark\\:hover\\:border-n1-ww-gray-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(142 142 142/var(--tw-border-opacity,1))}.dark\\:hover\\:border-n1-ww-gray-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(112 112 112/var(--tw-border-opacity,1))}.dark\\:hover\\:border-n1-ww-gray-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(70 70 70/var(--tw-border-opacity,1))}.dark\\:hover\\:border-n1-ww-main:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 68 26/var(--tw-border-opacity,1))}.dark\\:hover\\:border-red-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\\:hover\\:border-white\\/60:hover:is(.dark *){border-color:hsla(0,0%,100%,.6)}.dark\\:hover\\:bg-blue-900\\/30:hover:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\\:hover\\:bg-emerald-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-n1-ww-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(70 70 70/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-n1-ww-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(27 27 27/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-n1-ww-gray-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 20 20/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-neutral-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.dark\\:hover\\:text-emerald-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\\:hover\\:text-emerald-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\\:hover\\:text-n1-ww-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(234 234 234/var(--tw-text-opacity,1))}.dark\\:hover\\:text-n1-ww-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(217 217 217/var(--tw-text-opacity,1))}.dark\\:hover\\:text-red-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\\:hover\\:text-red-500:hover:is(.dark *){--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.dark\\:hover\\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:focus\\:border-n1-ww-gray-600:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(112 112 112/var(--tw-border-opacity,1))}.dark\\:focus\\:ring-n1-ww-gray-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(112 112 112/var(--tw-ring-opacity,1))}.group:hover .dark\\:group-hover\\:text-n1-ww-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(217 217 217/var(--tw-text-opacity,1))}.group:hover .dark\\:group-hover\\:text-n1-ww-gray-50:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .dark\\:group-hover\\:text-red-500:is(.dark *){--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.group:hover .dark\\:group-hover\\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:h-48{height:12rem}.sm\\:w-48{width:12rem}.sm\\:items-end{align-items:flex-end}.sm\\:justify-between{justify-content:space-between}}@media (min-width:768px){.md\\:text-2xl{font-size:1.5rem;line-height:2rem}.md\\:text-7xl{font-size:4.5rem;line-height:1}}";
2
+ export default _default;