@bluxcc/react 0.1.0 → 0.1.2

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 (70) hide show
  1. package/LICENSE +80 -0
  2. package/README.md +101 -1
  3. package/dist/assets/Icons.d.ts +12 -1
  4. package/dist/assets/bluxLogo.d.ts +3 -1
  5. package/dist/assets/logos.d.ts +6 -1
  6. package/dist/chains.d.ts +8 -0
  7. package/dist/components/Button/buttonVariants.d.ts +2 -2
  8. package/dist/components/Button/index.d.ts +13 -6
  9. package/dist/components/CardItem/index.d.ts +10 -0
  10. package/dist/components/Input/OTPInput.d.ts +3 -0
  11. package/dist/components/Input/index.d.ts +16 -0
  12. package/dist/components/Modal/Header/index.d.ts +3 -3
  13. package/dist/components/Modal/index.d.ts +3 -4
  14. package/dist/components/Transaction/History/index.d.ts +10 -0
  15. package/dist/components/Transaction/Summery/index.d.ts +9 -0
  16. package/dist/constants/index.d.ts +6 -2
  17. package/dist/containers/BluxModal/content.d.ts +11 -0
  18. package/dist/containers/BluxModal/index.d.ts +7 -0
  19. package/dist/containers/ConnectModal/content.d.ts +11 -0
  20. package/dist/containers/ConnectModal/index.d.ts +2 -1
  21. package/dist/containers/Pages/Activity/index.d.ts +3 -0
  22. package/dist/containers/Pages/ConfirmCode/index.d.ts +3 -0
  23. package/dist/containers/Pages/OnBoarding/index.d.ts +7 -0
  24. package/dist/containers/Pages/Profile/index.d.ts +3 -0
  25. package/dist/containers/Pages/Send/index.d.ts +3 -0
  26. package/dist/containers/Pages/SignTransaction/index.d.ts +3 -0
  27. package/dist/containers/Pages/Successful/index.d.ts +3 -0
  28. package/dist/containers/Pages/Waiting/index.d.ts +3 -0
  29. package/dist/context/provider.d.ts +1 -1
  30. package/dist/hooks/useAccount.d.ts +12 -0
  31. package/dist/hooks/useBlux.d.ts +4 -2
  32. package/dist/hooks/useGoogleFont.d.ts +1 -4
  33. package/dist/index.cjs.js +1406 -0
  34. package/dist/index.cjs.js.map +1 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.esm.js +1399 -1
  37. package/dist/index.esm.js.map +1 -1
  38. package/dist/types/index.d.ts +95 -23
  39. package/dist/useStellar/index.d.ts +2 -0
  40. package/dist/useStellar/useBalance.d.ts +8 -0
  41. package/dist/utils/BN.d.ts +3 -0
  42. package/dist/utils/capitalizeFirstLetter.d.ts +2 -0
  43. package/dist/utils/getBorderRadius.d.ts +2 -1
  44. package/dist/utils/getContrastColor.d.ts +2 -0
  45. package/dist/utils/getHorizonServer.d.ts +6 -0
  46. package/dist/utils/getInitialHeight.d.ts +2 -0
  47. package/dist/utils/getNetworkByPassphrase.d.ts +1 -0
  48. package/dist/utils/getNetworkPassphrase.d.ts +1 -0
  49. package/dist/utils/getTransactionDetails.d.ts +6 -0
  50. package/dist/utils/handleIcons.d.ts +2 -1
  51. package/dist/utils/handleLogos.d.ts +3 -0
  52. package/dist/utils/humanizeAmount.d.ts +3 -0
  53. package/dist/utils/initializeRabetMobile.d.ts +2 -1
  54. package/dist/utils/mappedWallets.d.ts +6 -3
  55. package/dist/utils/signTransactionHandler.d.ts +3 -0
  56. package/dist/utils/stellar/getExplorerUrl.d.ts +2 -0
  57. package/dist/utils/stellar/getNetworkByPassphrase.d.ts +2 -0
  58. package/dist/utils/stellar/getNetworkPassphrase.d.ts +2 -0
  59. package/dist/utils/stellar/getStellarServer.d.ts +6 -0
  60. package/dist/utils/stellar/getTransactionDetails.d.ts +7 -0
  61. package/dist/utils/stellar/signTransaction.d.ts +3 -0
  62. package/dist/utils/stellar/submitTransaction.d.ts +3 -0
  63. package/dist/utils/submitTransaction.d.ts +2 -0
  64. package/dist/wallets/configs/albedoConfig.d.ts +2 -2
  65. package/dist/wallets/configs/freighterConfig.d.ts +2 -2
  66. package/dist/wallets/configs/lobstrConfig.d.ts +2 -2
  67. package/dist/wallets/configs/rabetConfig.d.ts +2 -2
  68. package/dist/wallets/configs/xbullConfig.d.ts +2 -2
  69. package/dist/wallets/walletsConfig.d.ts +2 -2
  70. package/package.json +9 -16
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/chains.ts","../src/types/index.ts","../src/constants/index.ts","../src/hooks/useModalAnimation.ts","../src/utils/getBorderRadius.ts","../src/assets/Icons.tsx","../src/components/Modal/Header/index.tsx","../src/components/Modal/Backdrop/index.tsx","../src/components/Modal/index.tsx","../src/components/Button/index.tsx","../src/components/CardItem/index.tsx","../src/hooks/useBlux.ts","../src/utils/copyText.ts","../src/utils/shortenAddress.ts","../src/utils/stellar/getNetworkByPassphrase.ts","../src/utils/stellar/getStellarServer.ts","../src/hooks/useAccount.ts","../src/utils/humanizeAmount.ts","../src/containers/Pages/Profile/index.tsx","../src/assets/logos.tsx","../src/utils/handleIcons.tsx","../src/wallets/configs/albedoConfig.ts","../src/wallets/configs/freighterConfig.ts","../src/wallets/configs/lobstrConfig.ts","../src/wallets/configs/rabetConfig.ts","../src/wallets/configs/xbullConfig.ts","../src/wallets/walletsConfig.ts","../src/utils/mappedWallets.ts","../src/utils/stellar/submitTransaction.ts","../src/utils/stellar/signTransaction.ts","../src/containers/Pages/Waiting/index.tsx","../src/utils/stellar/getExplorerUrl.ts","../src/containers/Pages/Successful/index.tsx","../src/utils/getContrastColor.ts","../src/utils/initializeRabetMobile.ts","../src/assets/bluxLogo.tsx","../src/containers/Pages/OnBoarding/index.tsx","../src/utils/capitalizeFirstLetter.ts","../src/components/Transaction/Summery/index.tsx","../src/utils/stellar/getTransactionDetails.ts","../src/containers/Pages/SignTransaction/index.tsx","../src/components/Input/index.tsx","../src/containers/Pages/Send/index.tsx","../src/components/Transaction/History/index.tsx","../src/containers/Pages/Activity/index.tsx","../src/containers/ConnectModal/content.tsx","../src/containers/ConnectModal/index.tsx","../src/context/provider.tsx","../src/useStellar/useBalance.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { Networks } from \"@stellar/stellar-sdk\";\n\nexport const chains = {\n mainnet: Networks.PUBLIC,\n testnet: Networks.TESTNET,\n sandbox: Networks.SANDBOX,\n futurenet: Networks.FUTURENET,\n standalone: Networks.STANDALONE,\n};\n\n","import { Horizon } from '@stellar/stellar-sdk';\nimport { HorizonApi } from '@stellar/stellar-sdk/lib/horizon';\n\n/**\n * Enum representing the supported wallets in the system.\n */\nexport enum SupportedWallets {\n Rabet = 'Rabet',\n Albedo = 'Albedo',\n Freighter = 'Freighter',\n Xbull = 'xBull',\n Lobstr = 'LOBSTR',\n}\n\n/**\n * Enum defining the various Stellar network environments.\n */\nexport enum WalletNetwork {\n PUBLIC = 'Public Global Stellar Network ; September 2015',\n TESTNET = 'Test SDF Network ; September 2015',\n FUTURENET = 'Test SDF Future Network ; October 2022',\n SANDBOX = 'Local Sandbox Stellar Network ; September 2022',\n STANDALONE = 'Standalone Network ; February 2017',\n}\n\nexport interface AccountData {\n id: string;\n sequence: string;\n subentry_count: number;\n thresholds: Horizon.HorizonApi.AccountThresholds;\n balances: Horizon.HorizonApi.BalanceLine[];\n xlmBalance: string;\n transactions?: Horizon.ServerApi.TransactionRecord[];\n}\n\n/**\n * Configuration options for the provider.\n */\nexport interface IProviderConfig {\n appName: string; // Application name\n appLogo?: string; // Optional application logo URL\n network: string; // Supported network types\n}\n\n/**\n * Information about the connected wallet.\n */\nexport interface WalletInfo {\n name: SupportedWallets; // Wallet name, if connected\n address: string | null; // Wallet public address, if connected\n}\n\n/**\n * User-related information within the context.\n */\nexport interface IUser {\n wallet: WalletInfo | null; // The user's connected wallet details\n}\n\n/**\n * Context state management interface.\n */\nexport interface ContextState {\n value: ContextInterface; // Current context values\n setValue: React.Dispatch<React.SetStateAction<ContextInterface>>; // Function to update context values\n route: Routes;\n setRoute: React.Dispatch<React.SetStateAction<Routes>>;\n}\n\n/**\n * Supported font options for UI customization.\n */\nexport type SupportedFonts = 'Manrope' | 'Inter' | 'JetBrains Mono' | 'Lora';\n\n/**\n * Supported corner radius styles for UI elements.\n */\nexport type CornerRadius = 'none' | 'full' | 'sm' | 'md' | 'lg';\n\n/**\n * Appearance customization options.\n */\nexport interface IAppearance {\n theme: 'light' | 'dark'; // Light or dark mode\n background: string; // Background color or image\n accent: string; // Primary accent color\n textColor: string; // Main text color\n font: SupportedFonts; // Selected font style\n cornerRadius: CornerRadius; // Border radius styling\n cover: string; // Cover image or color for UI components\n}\n\n/**\n * Structure of the global context values.\n */\nexport interface ContextInterface {\n config: IProviderConfig; // Provider configuration\n appearance: IAppearance; // UI appearance settings\n user: IUser; // User-related information\n isModalOpen: boolean; // Determines if the modal is open\n isReady: boolean; // Indicates if the system is ready\n isDemo: boolean; // Specifies if in demo mode\n isAuthenticated: boolean; // User authentication status\n availableWallets: WalletInterface[]; // List of available wallets\n waitingStatus: 'connecting' | 'signing';\n signTransaction: {\n xdr: string; // Transaction details for signing\n resolver: ((value: HorizonApi.SubmitTransactionResponse) => void) | null; // Transaction signing resolver\n result: HorizonApi.SubmitTransactionResponse | null; // Latest transaction signing result\n };\n}\n\n/**\n * Enum defining different modal views.\n */\nexport enum Routes {\n ONBOARDING = 'ONBOARDING', // View for selecting a wallet\n WAITING = 'WAITING', // View for connection process\n SUCCESSFUL = 'SUCCESSFUL', // View for connection success process\n PROFILE = 'PROFILE', // User profile view\n SIGN_TRANSACTION = 'SIGN_TRANSACTION', // User sign transaction view\n SEND = 'SEND', // User sign transaction view\n ACTIVITY = 'ACTIVITY', // User sign transaction view\n}\n\n/**\n * Modal state management interface.\n */\nexport interface ModalRoute {\n route: Routes; // Current modal view\n showAllWallets: boolean; // Whether to display all available wallets\n}\n\n/**\n * Defines the heights for different modal views.\n */\nexport interface ModalHeights {\n [Routes.PROFILE]: number;\n [Routes.WAITING]: number;\n [Routes.ONBOARDING]: number;\n [Routes.SUCCESSFUL]: number;\n [Routes.SIGN_TRANSACTION]: number;\n [Routes.SEND]: number;\n [Routes.ACTIVITY]: number;\n}\n\n/**\n * Represents the result of a successful wallet connection.\n */\nexport interface ConnectResult {\n publicKey: string; // Public key obtained after connection\n}\n\n/**\n * Represents the result of a signed transaction.\n */\nexport interface SignResult {\n signedXdr: string; // Signed XDR transaction string\n}\n\n/**\n * Defines the available actions for interacting with a wallet.\n */\nexport interface WalletInterface {\n name: SupportedWallets; // Name of the wallet\n website: string; // Official wallet website or documentation URL\n isAvailable: () => Promise<boolean> | boolean; // Checks wallet availability\n connect: () => Promise<{ publicKey: string }>; // Initiates wallet connection\n getAddress?: (options?: { path?: string }) => Promise<{ address: string }>; // Retrieves wallet address with optional path\n signTransaction?: (\n xdr: string,\n options?: {\n networkPassphrase?: string;\n address?: string;\n submit?: boolean;\n },\n ) => Promise<string>; // Signs a transaction with optional parameters\n disconnect?: () => Promise<void>; // Disconnects the wallet session\n getNetwork?: () => Promise<{\n network: string;\n networkPassphrase: string;\n }>; // Retrieves network information from the wallet\n signMessage?: (\n message: string,\n options?: {\n networkPassphrase?: string;\n address?: string;\n path?: string;\n },\n ) => Promise<{ signedMessage: string; signerPublicKey?: string }>; // Signs a message with optional parameters\n signAuthEntry?: (\n authorizationEntry: string,\n options?: {\n networkPassphrase?: string;\n address?: string;\n path?: string;\n },\n ) => Promise<{ signedAuthorizationEntry: string; signerPublicKey?: string }>; // Signs an authorization entry with optional parameters\n}\n","import { ModalHeights, Routes } from '../types';\nimport { IAppearance } from '../types';\n\nexport const MODAL_HEIGHTS: ModalHeights = {\n [Routes.PROFILE]: 473,\n [Routes.WAITING]: 340,\n [Routes.SIGN_TRANSACTION]: 458.4,\n [Routes.SUCCESSFUL]: 328,\n [Routes.ONBOARDING]: 399,\n [Routes.SEND]: 326,\n [Routes.ACTIVITY]: 408,\n};\n\nexport const HORIZON_SERVERS = {\n public: 'https://horizon.stellar.org',\n testnet: 'https://horizon-testnet.stellar.org',\n futurenet: 'https://horizon-futurenet.stellar.org',\n};\n\nexport const defaultAppearance: IAppearance = {\n theme: 'light',\n background: '#ffffff',\n accent: '#0C1083',\n textColor: '#000000',\n font: 'Inter',\n cornerRadius: 'full',\n cover: '',\n};\n","import { useState, useEffect } from 'react';\n\ninterface ModalAnimationState {\n isOpening: boolean;\n isClosing: boolean;\n hasTransition: boolean;\n}\n\nexport const useModalAnimation = (isOpen: boolean) => {\n const [state, setState] = useState<ModalAnimationState>({\n isOpening: true,\n isClosing: false,\n hasTransition: false,\n });\n\n useEffect(() => {\n if (isOpen && state.isOpening) {\n const timer = setTimeout(() => {\n setState((prev) => ({ ...prev, isOpening: false }));\n }, 300);\n return () => clearTimeout(timer);\n }\n }, [isOpen, state.isOpening]);\n\n const handleClose = (onClose: () => void) => {\n setState((prev) => ({ ...prev, isClosing: true }));\n setTimeout(() => {\n setState((prev) => ({ ...prev, isClosing: false }));\n onClose();\n }, 300);\n };\n\n return {\n ...state,\n setHasTransition: (value: boolean) => setState((prev) => ({ ...prev, hasTransition: value })),\n handleClose,\n };\n};\n","import { CornerRadius } from '../types';\n\nconst radiusMap: Record<CornerRadius, string> = {\n none: '0px',\n sm: '4px',\n md: '8px',\n lg: '16px',\n full: '32px',\n};\n\nconst getBorderRadius = (cornerRadius: CornerRadius): string => {\n return radiusMap[cornerRadius] || '0px';\n};\n\nexport default getBorderRadius;\n","import React from 'react';\n\nexport const InfoIcon = ({ fill = '#1C1B1F' }: { fill?: string }) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_0_3021\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"20\" height=\"20\">\n <rect width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_0_3021)\">\n <path\n d=\"M9.16601 14.1662H10.8327V9.1662H9.16601V14.1662ZM9.99935 7.49953C10.2355 7.49953 10.4334 7.41967 10.5931 7.25995C10.7528 7.10023 10.8327 6.90231 10.8327 6.6662C10.8327 6.43009 10.7528 6.23217 10.5931 6.07245C10.4334 5.91273 10.2355 5.83286 9.99935 5.83286C9.76324 5.83286 9.56532 5.91273 9.4056 6.07245C9.24588 6.23217 9.16601 6.43009 9.16601 6.6662C9.16601 6.90231 9.24588 7.10023 9.4056 7.25995C9.56532 7.41967 9.76324 7.49953 9.99935 7.49953ZM9.99935 18.3329C8.84657 18.3329 7.76324 18.1141 6.74935 17.6766C5.73546 17.2391 4.85352 16.6454 4.10352 15.8954C3.35352 15.1454 2.75977 14.2634 2.32227 13.2495C1.88477 12.2356 1.66602 11.1523 1.66602 9.99953C1.66602 8.84675 1.88477 7.76342 2.32227 6.74953C2.75977 5.73564 3.35352 4.8537 4.10352 4.1037C4.85352 3.3537 5.73546 2.75995 6.74935 2.32245C7.76324 1.88495 8.84657 1.6662 9.99935 1.6662C11.1521 1.6662 12.2355 1.88495 13.2493 2.32245C14.2632 2.75995 15.1452 3.3537 15.8952 4.1037C16.6452 4.8537 17.2389 5.73564 17.6764 6.74953C18.1139 7.76342 18.3327 8.84675 18.3327 9.99953C18.3327 11.1523 18.1139 12.2356 17.6764 13.2495C17.2389 14.2634 16.6452 15.1454 15.8952 15.8954C15.1452 16.6454 14.2632 17.2391 13.2493 17.6766C12.2355 18.1141 11.1521 18.3329 9.99935 18.3329ZM9.99935 16.6662C11.8605 16.6662 13.4368 16.0204 14.7285 14.7287C16.0202 13.437 16.666 11.8606 16.666 9.99953C16.666 8.13842 16.0202 6.56203 14.7285 5.27036C13.4368 3.9787 11.8605 3.33287 9.99935 3.33287C8.13824 3.33287 6.56185 3.9787 5.27018 5.27036C3.97852 6.56203 3.33268 8.13842 3.33268 9.99953C3.33268 11.8606 3.97852 13.437 5.27018 14.7287C6.56185 16.0204 8.13824 16.6662 9.99935 16.6662Z\"\n fill={fill}\n />\n </g>\n </svg>\n);\nexport const ArrowRight = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_117_204\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"20\" height=\"20\">\n <rect width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_117_204)\">\n <path\n d=\"M6.67929 18.0448L5.49658 16.862L12.3587 9.99996L5.49658 3.13788L6.67929 1.95517L14.7241 9.99996L6.67929 18.0448Z\"\n fill=\"#5F6367\"\n />\n </g>\n </svg>\n);\nexport const ArrowLeft = () => (\n <svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_170_30135\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"25\">\n <rect y=\"0.5\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_170_30135)\">\n <path\n d=\"M16 22.5L6 12.5L16 2.5L17.775 4.275L9.55 12.5L17.775 20.725L16 22.5Z\"\n fill=\"#5F6367\"\n />\n </g>\n </svg>\n);\nexport const Close = () => (\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_150_17\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"22\" height=\"22\">\n <rect width=\"22\" height=\"22\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_150_17)\">\n <path\n d=\"M4.4 19.25L2.75 17.6L9.35 11L2.75 4.4L4.4 2.75L11 9.35L17.6 2.75L19.25 4.4L12.65 11L19.25 17.6L17.6 19.25L11 12.65L4.4 19.25Z\"\n fill=\"#5F6367\"\n />\n </g>\n </svg>\n);\nexport const Loading = () => (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"animate-spin\"\n >\n <mask id=\"mask0_2054_770\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"25\" height=\"24\">\n <rect x=\"0.5\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2054_770)\">\n <path\n d=\"M12.497 21.5C11.1965 21.5 9.96875 21.2508 8.81375 20.7525C7.65892 20.2542 6.65042 19.5739 5.78825 18.7118C4.92608 17.8496 4.24583 16.8411 3.7475 15.6863C3.24917 14.5313 3 13.3035 3 12.003C3 10.6867 3.24967 9.45358 3.749 8.30375C4.24833 7.15375 4.92817 6.14867 5.7885 5.2885C6.64867 4.42817 7.65733 3.74833 8.8145 3.249C9.97167 2.74967 11.2002 2.5 12.5 2.5V4C10.2833 4 8.39583 4.77917 6.8375 6.3375C5.27917 7.89583 4.5 9.78333 4.5 12C4.5 14.2167 5.27917 16.1042 6.8375 17.6625C8.39583 19.2208 10.2833 20 12.5 20C14.7167 20 16.6042 19.2208 18.1625 17.6625C19.7208 16.1042 20.5 14.2167 20.5 12H22C22 13.2998 21.7503 14.5283 21.251 15.6855C20.7517 16.8427 20.0718 17.8513 19.2115 18.7115C18.3513 19.5718 17.3462 20.2517 16.1962 20.751C15.0464 21.2503 13.8133 21.5 12.497 21.5Z\"\n fill=\"#0C1083\"\n />\n </g>\n </svg>\n);\nexport const GreenCheck = () => (\n <svg width=\"48\" height=\"49\" viewBox=\"0 0 48 49\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2045_4252\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"48\" height=\"49\">\n <rect y=\"0.5\" width=\"48\" height=\"48\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2045_4252)\">\n <path\n d=\"M21.1002 33.6335L35.2337 19.5L32.7667 17.0665L21.1002 28.7335L15.2002 22.8335L12.7667 25.2665L21.1002 33.6335ZM24.0002 44.5C21.2559 44.5 18.6671 43.975 16.2337 42.925C13.8004 41.875 11.6781 40.4445 9.86674 38.6335C8.05574 36.8222 6.62524 34.6998 5.57524 32.2665C4.52524 29.8332 4.00024 27.2443 4.00024 24.5C4.00024 21.7333 4.52524 19.1333 5.57524 16.7C6.62524 14.2667 8.05574 12.15 9.86674 10.35C11.6781 8.55 13.8004 7.125 16.2337 6.075C18.6671 5.025 21.2559 4.5 24.0002 4.5C26.7669 4.5 29.3669 5.025 31.8002 6.075C34.2336 7.125 36.3502 8.55 38.1502 10.35C39.9502 12.15 41.3752 14.2667 42.4252 16.7C43.4753 19.1333 44.0002 21.7333 44.0002 24.5C44.0002 27.2443 43.4753 29.8332 42.4252 32.2665C41.3752 34.6998 39.9502 36.8222 38.1502 38.6335C36.3502 40.4445 34.2336 41.875 31.8002 42.925C29.3669 43.975 26.7669 44.5 24.0002 44.5Z\"\n fill=\"#56C162\"\n />\n </g>\n </svg>\n);\nexport const LogOut = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2054_469\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2054_469)\">\n <path\n d=\"M20.3713 12.75H8.577V11.25H20.3713L18.552 9.43075L19.6057 8.34625L23.2595 12L19.6057 15.6538L18.552 14.5693L20.3713 12.75ZM15.202 8.86525V5H5V19H15.202V15.1348H16.702V20.5H3.5V3.5H16.702V8.86525H15.202Z\"\n fill=\"#666666\"\n />\n </g>\n </svg>\n);\nexport const Copy = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2054_791\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2054_791)\">\n <path\n d=\"M7.25 17.5V2.5H19.25V17.5H7.25ZM8.75 16H17.75V4H8.75V16ZM3.75 21V6.30775H5.25V19.5H15.4423V21H3.75Z\"\n fill=\"#4D4D4D\"\n />\n </g>\n </svg>\n);\nexport const History = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2054_838\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2054_838)\">\n <path\n d=\"M12 21.5C9.54899 21.5 7.42215 20.6913 5.61949 19.074C3.81682 17.4567 2.79365 15.432 2.54999 13H4.07499C4.31865 15.0167 5.19557 16.6875 6.70574 18.0125C8.21607 19.3375 9.98082 20 12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C10.4962 4 9.11249 4.38625 7.84899 5.15875C6.58549 5.93108 5.61149 6.99033 4.92699 8.3365H7.88449V9.8365H2.75774C3.26024 7.68267 4.37207 5.9215 6.09324 4.553C7.8144 3.18433 9.78332 2.5 12 2.5C13.3142 2.5 14.5492 2.74933 15.705 3.248C16.8608 3.74667 17.8662 4.42342 18.7212 5.27825C19.5762 6.13308 20.2531 7.13833 20.7517 8.294C21.2506 9.44967 21.5 10.6844 21.5 11.9983C21.5 13.3123 21.2506 14.5473 20.7517 15.7035C20.2531 16.8597 19.5762 17.8653 18.7212 18.7205C17.8662 19.5757 16.8608 20.2528 15.705 20.7518C14.5492 21.2506 13.3142 21.5 12 21.5ZM14.723 15.777L11.25 12.3025V7.3655H12.75V11.6962L15.7672 14.723L14.723 15.777Z\"\n fill=\"#0C1083\"\n />\n </g>\n </svg>\n);\nexport const Send = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2054_817\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2054_817)\">\n <path\n d=\"M3.5 19.25V4.75L20.7115 12L3.5 19.25ZM5 17L16.85 12L5 7V10.6923L10.423 12L5 13.3077V17Z\"\n fill=\"#0C1083\"\n />\n </g>\n </svg>\n);\nexport const ArrowDropUp = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2204_971\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"16\" height=\"16\">\n <rect width=\"16\" height=\"16\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2204_971)\">\n <path d=\"M5.06372 11.8333L7.99955 8.89746L10.9354 11.8333H5.06372Z\" fill=\"#0C1083\" />\n </g>\n </svg>\n);\nexport const RedAlert = () => (\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"19.5\" fill=\"white\" stroke=\"#EC2929\" />\n <mask id=\"mask0_2214_3806\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"8\" width=\"24\" height=\"24\">\n <rect x=\"8\" y=\"8\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2214_3806)\">\n <path\n d=\"M20 24.7308C20.2288 24.7308 20.4207 24.6533 20.5755 24.4985C20.7303 24.3437 20.8077 24.1518 20.8077 23.923C20.8077 23.6942 20.7303 23.5023 20.5755 23.3475C20.4207 23.1928 20.2288 23.1155 20 23.1155C19.7712 23.1155 19.5793 23.1928 19.4245 23.3475C19.2697 23.5023 19.1923 23.6942 19.1923 23.923C19.1923 24.1518 19.2697 24.3437 19.4245 24.4985C19.5793 24.6533 19.7712 24.7308 20 24.7308ZM19.25 21.077H20.75V15.077H19.25V21.077ZM20.0017 29.5C18.6877 29.5 17.4527 29.2507 16.2965 28.752C15.1403 28.2533 14.1347 27.5766 13.2795 26.7218C12.4243 25.8669 11.7472 24.8617 11.2482 23.706C10.7494 22.5503 10.5 21.3156 10.5 20.0017C10.5 18.6877 10.7493 17.4527 11.248 16.2965C11.7467 15.1403 12.4234 14.1347 13.2783 13.2795C14.1331 12.4243 15.1383 11.7472 16.294 11.2482C17.4497 10.7494 18.6844 10.5 19.9983 10.5C21.3123 10.5 22.5473 10.7493 23.7035 11.248C24.8597 11.7467 25.8653 12.4234 26.7205 13.2783C27.5757 14.1331 28.2528 15.1383 28.7518 16.294C29.2506 17.4497 29.5 18.6844 29.5 19.9983C29.5 21.3123 29.2507 22.5473 28.752 23.7035C28.2533 24.8597 27.5766 25.8653 26.7218 26.7205C25.8669 27.5757 24.8617 28.2528 23.706 28.7518C22.5503 29.2506 21.3156 29.5 20.0017 29.5ZM20 28C22.2333 28 24.125 27.225 25.675 25.675C27.225 24.125 28 22.2333 28 20C28 17.7667 27.225 15.875 25.675 14.325C24.125 12.775 22.2333 12 20 12C17.7667 12 15.875 12.775 14.325 14.325C12.775 15.875 12 17.7667 12 20C12 22.2333 12.775 24.125 14.325 25.675C15.875 27.225 17.7667 28 20 28Z\"\n fill=\"#EC2929\"\n />\n </g>\n </svg>\n);\nexport const Upstream = () => (\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"19.5\" fill=\"white\" stroke=\"#00BD81\" />\n <mask id=\"mask0_2214_3784\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"8\" width=\"24\" height=\"24\">\n <rect x=\"8\" y=\"8\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2214_3784)\">\n <path\n d=\"M19.0155 29.4498C17.8128 29.3228 16.6962 28.9914 15.6655 28.4556C14.6347 27.9197 13.7349 27.2284 12.9662 26.3816C12.1977 25.5347 11.5946 24.5651 11.1567 23.4728C10.7189 22.3805 10.5 21.2228 10.5 19.9998C10.5 17.5306 11.3196 15.3992 12.9588 13.6056C14.5978 11.8121 16.6198 10.7935 19.025 10.5498V12.0653C17.0353 12.328 15.3671 13.2068 14.0203 14.7018C12.6734 16.1966 12 17.9626 12 19.9998C12 22.037 12.6718 23.803 14.0155 25.2978C15.359 26.7928 17.0257 27.6716 19.0155 27.9343V29.4498ZM19.2655 24.6536V18.2191L16.4155 21.0691L15.3615 19.9998L20.0155 15.3461L24.6693 19.9998L23.6 21.0536L20.7653 18.2191V24.6536H19.2655ZM21.0155 29.4498V27.9343C21.7423 27.8446 22.4349 27.663 23.0932 27.3893C23.7516 27.1155 24.359 26.7587 24.9155 26.3191L26.0038 27.4036C25.2859 27.9587 24.5058 28.4103 23.6635 28.7583C22.8212 29.1065 21.9385 29.337 21.0155 29.4498ZM24.9193 13.6998C24.3564 13.2665 23.7484 12.9081 23.0953 12.6248C22.4421 12.3415 21.752 12.155 21.025 12.0653V10.5498C21.948 10.6563 22.8291 10.8851 23.6683 11.2363C24.5074 11.5876 25.2859 12.0409 26.0038 12.5961L24.9193 13.6998ZM27.4038 25.9691L26.3345 24.8998C26.7678 24.3435 27.123 23.7361 27.4 23.0778C27.677 22.4195 27.8603 21.7268 27.95 20.9998H29.4653C29.3652 21.9228 29.1355 22.8055 28.776 23.6478C28.4163 24.4901 27.9589 25.2639 27.4038 25.9691ZM27.95 18.9998C27.8603 18.2728 27.677 17.5801 27.4 16.9218C27.123 16.2635 26.7678 15.6561 26.3345 15.0998L27.423 14.0113C27.9653 14.7293 28.4131 15.5095 28.7663 16.3518C29.1194 17.1941 29.3524 18.0768 29.4653 18.9998H27.95Z\"\n fill=\"#00BD81\"\n />\n </g>\n </svg>\n);\nexport const Globe = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_2265_983\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2265_983)\">\n <path\n d=\"M8.00081 14.3337C7.13248 14.3337 6.31304 14.1672 5.54248 13.8343C4.77193 13.5014 4.09993 13.0482 3.52648 12.4747C2.95293 11.9012 2.4997 11.2292 2.16681 10.4587C1.83393 9.6881 1.66748 8.86866 1.66748 8.00033C1.66748 7.1251 1.83393 6.30394 2.16681 5.53683C2.4997 4.76972 2.95293 4.09944 3.52648 3.52599C4.09993 2.95244 4.77193 2.49921 5.54248 2.16633C6.31304 1.83344 7.13248 1.66699 8.00081 1.66699C8.87604 1.66699 9.6972 1.83344 10.4643 2.16633C11.2314 2.49921 11.9017 2.95244 12.4751 3.52599C13.0487 4.09944 13.5019 4.76972 13.8348 5.53683C14.1677 6.30394 14.3341 7.1251 14.3341 8.00033C14.3341 8.86866 14.1677 9.6881 13.8348 10.4587C13.5019 11.2292 13.0487 11.9012 12.4751 12.4747C11.9017 13.0482 11.2314 13.5014 10.4643 13.8343C9.6972 14.1672 8.87604 14.3337 8.00081 14.3337ZM8.00081 13.3195C8.34104 12.8683 8.62737 12.4132 8.85982 11.9542C9.09226 11.4952 9.28159 10.9934 9.42782 10.449H6.57381C6.72859 11.0106 6.92009 11.5208 7.14832 11.9798C7.37643 12.4388 7.66059 12.8854 8.00081 13.3195ZM6.70982 13.1362C6.45426 12.7695 6.22476 12.3527 6.02132 11.8857C5.81787 11.4185 5.65976 10.9397 5.54698 10.449H3.28548C3.63759 11.1413 4.10981 11.723 4.70215 12.194C5.29448 12.6649 5.9637 12.9789 6.70982 13.1362ZM9.29182 13.1362C10.0379 12.9789 10.7071 12.6649 11.2995 12.194C11.8918 11.723 12.364 11.1413 12.7161 10.449H10.4546C10.3204 10.9439 10.1516 11.4249 9.94815 11.892C9.74482 12.3591 9.52604 12.7738 9.29182 13.1362ZM2.86615 9.44899H5.34448C5.30259 9.20122 5.2722 8.95827 5.25331 8.72016C5.23454 8.48216 5.22515 8.24222 5.22515 8.00033C5.22515 7.75844 5.23454 7.51849 5.25331 7.28049C5.2722 7.04238 5.30259 6.79944 5.34448 6.55166H2.86615C2.80204 6.7781 2.75293 7.01355 2.71881 7.25799C2.68459 7.50244 2.66748 7.74988 2.66748 8.00033C2.66748 8.25077 2.68459 8.49822 2.71881 8.74266C2.75293 8.98711 2.80204 9.22255 2.86615 9.44899ZM6.34431 9.44899H9.65732C9.69909 9.20122 9.72943 8.96044 9.74831 8.72666C9.76709 8.49288 9.77648 8.25077 9.77648 8.00033C9.77648 7.74988 9.76709 7.50777 9.74831 7.27399C9.72943 7.04022 9.69909 6.79944 9.65732 6.55166H6.34431C6.30254 6.79944 6.2722 7.04022 6.25331 7.27399C6.23454 7.50777 6.22515 7.74988 6.22515 8.00033C6.22515 8.25077 6.23454 8.49288 6.25331 8.72666C6.2722 8.96044 6.30254 9.20122 6.34431 9.44899ZM10.6571 9.44899H13.1355C13.1996 9.22255 13.2487 8.98711 13.2828 8.74266C13.317 8.49822 13.3341 8.25077 13.3341 8.00033C13.3341 7.74988 13.317 7.50244 13.2828 7.25799C13.2487 7.01355 13.1996 6.7781 13.1355 6.55166H10.6571C10.699 6.79944 10.7294 7.04238 10.7483 7.28049C10.7671 7.51849 10.7765 7.75844 10.7765 8.00033C10.7765 8.24222 10.7671 8.48216 10.7483 8.72016C10.7294 8.95827 10.699 9.20122 10.6571 9.44899ZM10.4546 5.55166H12.7161C12.3598 4.85077 11.8908 4.2691 11.3091 3.80666C10.7275 3.34433 10.055 3.0281 9.29182 2.85799C9.54737 3.24599 9.7747 3.67038 9.97382 4.13116C10.173 4.59183 10.3333 5.06533 10.4546 5.55166ZM6.57381 5.55166H9.42782C9.27304 4.99433 9.07837 4.48083 8.84382 4.01116C8.60915 3.54149 8.32815 3.09816 8.00081 2.68116C7.67348 3.09816 7.39248 3.54149 7.15781 4.01116C6.92326 4.48083 6.72859 4.99433 6.57381 5.55166ZM3.28548 5.55166H5.54698C5.66831 5.06533 5.82859 4.59183 6.02781 4.13116C6.22693 3.67038 6.45426 3.24599 6.70982 2.85799C5.94226 3.0281 5.26876 3.34544 4.68931 3.80999C4.10976 4.27444 3.64181 4.85499 3.28548 5.55166Z\"\n fill=\"#666666\"\n />\n </g>\n </svg>\n);\n","import React from 'react';\nimport { ArrowLeft, Close, InfoIcon } from '../../../assets/Icons';\n\ninterface HeaderProps {\n icon?: 'info' | 'back';\n onInfo?: () => void;\n onBack?: () => void;\n title: string;\n closeButton?: boolean;\n onClose: () => void;\n}\n\nconst ModalHeader = ({\n icon,\n onInfo,\n onBack,\n title,\n closeButton = false,\n onClose,\n}: HeaderProps) => {\n return (\n <div className=\"w-full flex items-center justify-between h-16\">\n {icon === 'info' ? (\n <button\n onClick={onInfo}\n className=\"size-6 flex justify-center items-center hover:bg-gray-100 rounded-full transition duration-300\"\n >\n <InfoIcon />\n </button>\n ) : icon === 'back' ? (\n <button onClick={onBack} className=\"size-6 cursor-pointer flex justify-center items-center\">\n <ArrowLeft />\n </button>\n ) : (\n <div className=\"size-6\" />\n )}\n\n <p className=\"text-base font-semibold text-center flex-grow select-none\">{title}</p>\n\n {closeButton ? (\n <button onClick={onClose} className=\"cursor-pointer\">\n <Close />\n </button>\n ) : (\n <div className=\"w-6\" />\n )}\n </div>\n );\n};\n\nexport default ModalHeader;\n","import React from 'react';\n\ninterface BackdropProps {\n isClosing: boolean;\n onClose: () => void;\n}\n\nconst ModalBackdrop = ({ isClosing, onClose }: BackdropProps) => (\n <div\n className={`fixed inset-0 z-40 bg-black bg-opacity-[0.05] ${\n isClosing ? 'animate-fadeOut' : 'animate-fadeIn'\n }`}\n onClick={onClose}\n />\n);\n\nexport default ModalBackdrop;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { useProvider } from '../../context/provider';\nimport { useModalAnimation } from '../../hooks/useModalAnimation';\n\nimport getBorderRadius from '../../utils/getBorderRadius';\n\nimport ModalHeader from './Header';\nimport ModalBackdrop from './Backdrop';\n\ninterface ModalProps {\n isOpen: boolean;\n onClose?: () => void;\n onBack?: () => void;\n children: React.ReactNode;\n icon?: 'info' | 'back';\n onInfo?: () => void;\n closeButton?: boolean;\n title: string;\n initialHeight: number;\n}\n\nconst Modal = ({\n isOpen,\n onClose = () => {},\n onBack,\n onInfo,\n children,\n title,\n icon,\n initialHeight,\n closeButton = true,\n}: ModalProps) => {\n const [contentHeight, setContentHeight] = useState<number | null>(null);\n const [heightChanged, setHeightChanged] = useState(false);\n\n const context = useProvider();\n const { isOpening, isClosing, hasTransition, handleClose, setHasTransition } =\n useModalAnimation(isOpen);\n\n const contentRef = useRef<HTMLDivElement>(null);\n const isFirstRender = useRef(true);\n const previousChildrenRef = useRef(children);\n const previousHeightRef = useRef<number>(400);\n\n const appearance = context.value.appearance;\n const borderRadius = getBorderRadius(appearance.cornerRadius);\n\n const updateHeight = () => {\n const newHeight = contentRef.current?.offsetHeight;\n if (!newHeight) return;\n\n if (isFirstRender.current) {\n previousHeightRef.current = newHeight;\n isFirstRender.current = false;\n return;\n }\n if (!isFirstRender.current && newHeight !== previousHeightRef.current) {\n setContentHeight(newHeight);\n setHeightChanged(true);\n previousHeightRef.current = newHeight;\n }\n };\n\n useEffect(() => {\n if (!isOpen || !contentRef.current) return;\n\n if (heightChanged) {\n setHasTransition(true);\n }\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(contentRef.current);\n updateHeight();\n\n return () => resizeObserver.disconnect();\n }, [isOpen, children]);\n\n useEffect(() => {\n if (!isOpen) {\n setContentHeight(null);\n setHeightChanged(false);\n isFirstRender.current = true;\n previousChildrenRef.current = children;\n previousHeightRef.current = initialHeight;\n return;\n }\n }, [isOpen]);\n\n const currentHeight = isFirstRender.current\n ? initialHeight\n : contentHeight ?? previousHeightRef.current;\n\n if (!isOpen) return null;\n\n return (\n <>\n {!context.value.isDemo && (\n <ModalBackdrop isClosing={isClosing} onClose={() => handleClose(onClose)} />\n )}\n\n <div\n className={`absolute inset-0 flex items-center justify-center z-[9999] ${\n isClosing && 'animate-fadeOut'\n }`}\n onClick={(e) => e.target === e.currentTarget && handleClose(onClose)}\n >\n <div\n className=\"relative overflow-hidden w-[360px] shadow-[0px_4px_80px_0px_#00000008] border border-primary-100 box-border\"\n style={{\n height: `${currentHeight}px`,\n // transform: isOpening ? 'scale(0.98)' : 'scale(1)',\n opacity: isOpening ? '0' : '1',\n transition: isOpening\n ? 'transform 300ms ease-out, opacity 300ms ease-out'\n : hasTransition\n ? 'height 300ms ease-in-out'\n : 'transition-all',\n backgroundColor: appearance.background,\n color: appearance.textColor,\n fontFamily: appearance.font,\n letterSpacing: '-0.03px',\n borderRadius,\n }}\n >\n <div ref={contentRef} className=\"px-6 pb-4 transition-all\">\n <ModalHeader\n icon={icon}\n onInfo={onInfo}\n onBack={onBack}\n title={title}\n closeButton={closeButton}\n onClose={() => handleClose(onClose)}\n />\n {children}\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default Modal;\n","import React from 'react';\n\nimport getBorderRadius from '../../utils/getBorderRadius';\nimport { useProvider } from '../../context/provider';\n\ntype ButtonSize = 'small' | 'medium' | 'large';\ntype ButtonVariant = 'outline' | 'text' | 'fill';\ntype ButtonState = 'enabled' | 'disabled' | 'selected';\n\ninterface ButtonProps {\n size?: ButtonSize;\n variant?: ButtonVariant;\n state?: ButtonState;\n children: React.ReactNode;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n onClick?: () => void;\n style?: React.CSSProperties;\n className?: string;\n}\n\nconst buttonBase =\n 'flex justify-center items-center px-[10px] transition-all disabled:cursor-not-allowed disabled:opacity-50 w-full';\n\nconst sizeClasses: Record<ButtonSize, string> = {\n small: 'h-8 text-sm gap-1',\n medium: 'h-12 text-sm gap-2',\n large: 'h-14 text-base gap-2',\n};\n\nconst variantClasses: Record<ButtonVariant, string> = {\n outline:\n 'border border-primary-500 text-primary-600 hover:bg-primary-50 disabled:border-gray-300 disabled:text-gray-400',\n text: '!text-gray-700 hover:bg-gray-50 disabled:text-gray-400',\n fill: 'bg-primary-500 text-white hover:bg-primary-700 disabled:bg-gray-400',\n};\n\nconst stateClasses: Record<ButtonState, string> = {\n enabled: '!border-primary-100',\n disabled: 'pointer-events-none',\n selected: 'ring-2 ring-primary-600',\n};\n\nconst Button = ({\n size = 'large',\n variant = 'outline',\n state = 'enabled',\n children,\n startIcon,\n endIcon,\n onClick,\n style,\n className,\n}: ButtonProps) => {\n const context = useProvider();\n const borderRadius = getBorderRadius(context.value.appearance.cornerRadius);\n\n return (\n <button\n onClick={onClick}\n className={`${buttonBase} ${sizeClasses[size]} ${variantClasses[variant]} ${stateClasses[state]} ${className}`}\n disabled={state === 'disabled'}\n style={{\n borderRadius,\n ...style,\n }}\n >\n {startIcon && <span>{startIcon}</span>}\n <span>{children}</span>\n {endIcon && <span>{endIcon}</span>}\n </button>\n );\n};\n\nexport default Button;\n","import React, { MouseEvent } from 'react';\n\nimport getBorderRadius from '../../utils/getBorderRadius';\nimport { useProvider } from '../../context/provider';\n\nimport { ArrowRight } from '../../assets/Icons';\n\ntype CardItemProps = {\n variant?: 'social' | 'default';\n startIcon: React.ReactNode;\n endArrow?: boolean;\n label: string;\n onClick?: () => void;\n};\n\nconst CardItem: React.FC<CardItemProps> = ({\n variant = 'default',\n startIcon,\n endArrow,\n label,\n onClick,\n}) => {\n const context = useProvider();\n const appearance = context.value.appearance;\n const borderRadius = getBorderRadius(appearance.cornerRadius);\n\n const onMouseEnter = (e: MouseEvent<HTMLButtonElement>) => {\n if (variant === 'default') {\n e.currentTarget.style.borderColor = appearance.accent;\n }\n };\n const onMouseLeave = (e: MouseEvent<HTMLButtonElement>) => {\n if (variant === 'default') {\n e.currentTarget.style.borderColor = '#cdceee';\n }\n };\n\n return (\n <button\n onClick={onClick}\n className={`flex items-center w-full pl-[10px] h-14 pr-3 py-2 transition-all text-gray-950 border border-primary-100`}\n style={{\n borderRadius,\n color: appearance.textColor,\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <span\n style={{ borderRadius }}\n className=\"flex justify-center items-center border border-primary-100 size-10 overflow-hidden\"\n >\n {startIcon}\n </span>\n <span className={`${variant === 'default' ? ' ml-4' : 'flex-1'}`}>{label}</span>\n {endArrow ? (\n <span className=\"ml-auto flex items-center\">\n <ArrowRight />\n </span>\n ) : (\n <span className=\"size-10\" />\n )}\n </button>\n );\n};\n\nexport default CardItem;\n","import { useProvider } from '../context/provider';\nimport { Routes } from '../types';\n\nexport const useBlux = () => {\n const context = useProvider();\n if (!context) {\n throw new Error('useBlux must be used within a ProviderContext.');\n }\n\n const { value, setValue, setRoute } = context;\n const { isAuthenticated, user } = value;\n\n const connect = () => {\n if (!isAuthenticated) {\n setValue((prev) => (prev.isModalOpen ? prev : { ...prev, isModalOpen: true }));\n } else {\n throw new Error('User is already connected.');\n }\n };\n\n const disconnect = () => {\n setValue((prev) => ({\n ...prev,\n user: { wallet: null },\n isModalOpen: false,\n isAuthenticated: false,\n }));\n setRoute(Routes.ONBOARDING);\n };\n\n const profile = () => {\n if (!isAuthenticated) {\n throw new Error('User is not authenticated.');\n }\n setRoute(Routes.PROFILE);\n setValue((prev) => ({ ...prev, isModalOpen: true }));\n };\n\n const signTransaction = (xdr: string) =>\n new Promise((resolve, reject) => {\n if (!isAuthenticated) {\n reject(new Error('User is not authenticated.'));\n }\n setRoute(Routes.SIGN_TRANSACTION);\n setValue((prev) => ({\n ...prev,\n isModalOpen: true,\n signTransaction: {\n ...prev.signTransaction,\n xdr,\n resolver: resolve,\n },\n }));\n });\n\n return {\n connect,\n disconnect,\n profile,\n signTransaction,\n isReady: value.isReady ?? false,\n user: user ?? null,\n isAuthenticated: isAuthenticated ?? false,\n };\n};\n","const copyText = (text: string) => {\n return navigator.clipboard.writeText(text);\n};\n\nexport default copyText;\n","const shortenAddress = (address: string, numChars = 8) => {\n const shortenedAddress = address.slice(0, numChars) + '...' + address.slice(-numChars);\n\n return shortenedAddress;\n};\n\nexport default shortenAddress;\n","import { WalletNetwork } from '../../types';\n\nconst getNetworkByPassphrase = (passphrase: string) => {\n const networkEntry = Object.entries(WalletNetwork).find(([, value]) => value === passphrase);\n\n if (!networkEntry) {\n throw new Error(`Unknown network passphrase: ${passphrase}`);\n }\n\n return networkEntry[0].toLowerCase();\n};\n\nexport default getNetworkByPassphrase;\n","import { Horizon } from '@stellar/stellar-sdk';\n\nimport { HORIZON_SERVERS } from '../../constants';\n\ntype HorizonServer = Horizon.Server;\n\ntype NetworkKey = keyof typeof HORIZON_SERVERS;\n\nconst getStellarServer = (network: NetworkKey): HorizonServer => {\n const serverUrl = HORIZON_SERVERS[network];\n return new Horizon.Server(serverUrl);\n};\n\nexport default getStellarServer;\n","import { useState, useEffect } from 'react';\nimport { Horizon } from '@stellar/stellar-sdk';\n\nimport getNetworkByPassphrase from '../utils/stellar/getNetworkByPassphrase';\nimport getStellarServer from '../utils/stellar/getStellarServer';\n\nimport { AccountData } from '../types';\n\ntype HorizonServer = Horizon.Server;\n\ninterface AccountHookResult {\n account: AccountData | null;\n loading: boolean;\n error: string | null;\n}\n\ninterface AccountHookProps {\n publicKey: string;\n passphrase: string;\n}\n\nconst getXLMBalance = (balances: Horizon.HorizonApi.BalanceLine[]): string => {\n return balances.find((b) => b.asset_type === 'native')?.balance || '0';\n};\n\nconst useAccount = ({ publicKey, passphrase }: AccountHookProps): AccountHookResult => {\n const [account, setAccount] = useState<AccountData | null>(null);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n let isSubscribed = true;\n let eventSource: (() => void) | null = null;\n\n const fetchAccount = async (server: HorizonServer) => {\n try {\n const accountData = await server.loadAccount(publicKey);\n if (!isSubscribed) return;\n\n setAccount((prev) => ({\n id: accountData.id,\n sequence: accountData.sequence,\n subentry_count: accountData.subentry_count,\n thresholds: accountData.thresholds,\n balances: accountData.balances,\n xlmBalance: getXLMBalance(accountData.balances),\n transactions: prev?.transactions,\n }));\n\n setError(null);\n } catch (err) {\n if (isSubscribed && !error) {\n setError((err as Error).message);\n setAccount(null);\n }\n }\n };\n\n const fetchTransactions = async (server: HorizonServer) => {\n try {\n const transactionsPage = await server\n .transactions()\n .forAccount(publicKey)\n .limit(10)\n .order('desc')\n .call();\n\n if (!isSubscribed) return;\n\n setAccount((prev) => (prev ? { ...prev, transactions: transactionsPage.records } : null));\n } catch (err) {\n if (isSubscribed && !error) {\n setError((err as Error).message);\n }\n }\n };\n\n const initializeAccount = async () => {\n if (!publicKey) {\n setError('No public key provided');\n setLoading(false);\n return;\n }\n\n try {\n const server = getStellarServer(\n getNetworkByPassphrase(passphrase) as 'testnet' | 'public' | 'futurenet',\n );\n setLoading(true);\n\n await Promise.all([fetchAccount(server), fetchTransactions(server)]);\n\n // Set up streaming\n eventSource = server\n .operations()\n .forAccount(publicKey)\n .cursor('now')\n .stream({\n onmessage: () => fetchAccount(server),\n onerror: (err) => {\n if (isSubscribed && !error) {\n setError((err as MessageEvent).data.message);\n }\n },\n });\n } finally {\n if (isSubscribed) {\n setLoading(false);\n }\n }\n };\n\n initializeAccount();\n\n // Cleanup function\n return () => {\n isSubscribed = false;\n if (eventSource) {\n eventSource();\n }\n };\n }, [publicKey, passphrase]);\n\n return { account, loading, error };\n};\n\nexport default useAccount;\n","export function sevenDigit(number: number | string): string {\n const numStr = number.toString();\n const [integer, decimal = ''] = numStr.split('.');\n\n if (!decimal) return integer;\n\n const precisionMap: Record<number, number> = {\n 0: 8,\n 1: 7,\n 2: 6,\n 3: 5,\n 4: 4,\n 5: 3,\n 6: 2,\n };\n\n const precision = precisionMap[integer.length] ?? 0;\n return precision > 0 ? `${integer}.${decimal.slice(0, precision)}` : integer;\n}\n\nfunction humanizeAmount(amount: number | string, big: boolean = false): string {\n const num = typeof amount === 'number' ? amount : parseFloat(amount);\n\n if (isNaN(num) || num === 0) return '0';\n if (num < 0.000001) return amount.toString();\n\n if (big) {\n if (num >= 1e6) return `${(num / 1e6).toFixed(2)}m`;\n if (num >= 1e3) return `${(num / 1e3).toFixed(2)}k`;\n }\n\n return formatNumberWithCommas(sevenDigit(num));\n}\n\nfunction formatNumberWithCommas(number: string): string {\n const [integer, decimal] = number.split('.');\n return decimal\n ? `${integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}.${decimal}`\n : integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\nexport default humanizeAmount;\n","import React, { useEffect, useState } from 'react';\n\nimport Button from '../../../components/Button';\nimport CardItem from '../../../components/CardItem';\n\nimport { useBlux } from '../../../hooks/useBlux';\nimport { useProvider } from '../../../context/provider';\n\nimport copyText from '../../../utils/copyText';\nimport shortenAddress from '../../../utils/shortenAddress';\n\nimport { Routes } from '../../../types';\nimport { Copy, History, LogOut, Send } from '../../../assets/Icons';\nimport useAccount from '../../../hooks/useAccount';\nimport humanizeAmount from '../../../utils/humanizeAmount';\n\nconst Profile = () => {\n const context = useProvider();\n const { disconnect } = useBlux();\n const [address, setAddress] = useState(context.value.user.wallet?.address || '');\n const { account } = useAccount({\n publicKey: context.value.user.wallet?.address as string,\n passphrase: context.value.config.network,\n });\n\n useEffect(() => {\n setAddress(context.value.user.wallet?.address as string);\n }, [context.value.user.wallet?.address]);\n\n const handleDisconnect = () => {\n disconnect();\n };\n\n return (\n <div className=\"flex flex-col items-center justify-center\">\n <div className=\"size-[73px] rounded-full bg-lightBlue-200 mt-4\" />\n <p\n className=\"inline-flex gap-1 text-base cursor-pointer text-gray-700 mt-6 mb-4\"\n onClick={() => {\n copyText(context.value.user.wallet?.address as string);\n }}\n >\n {address ? shortenAddress(address, 5) : ''}\n <Copy />\n </p>\n <p className=\"text-primary-500 text-center\">\n {account ? humanizeAmount(account.xlmBalance) : 'N/A'} XLM\n </p>\n\n <div className=\"space-y-2 mt-[16px] w-full\">\n <CardItem\n endArrow\n label=\"Send\"\n startIcon={<Send />}\n onClick={() => {\n context.setRoute(Routes.SEND);\n }}\n />\n <CardItem\n endArrow\n label=\"Activity\"\n startIcon={<History />}\n onClick={() => {\n context.setRoute(Routes.ACTIVITY);\n }}\n />\n </div>\n\n {/* divider */}\n <div className=\"w-full my-4\">\n <div className=\"absolute left-0 right-0 bg-primary-100 h-[1px]\" />\n </div>\n\n <Button\n size=\"medium\"\n variant=\"text\"\n state=\"enabled\"\n startIcon={<LogOut />}\n onClick={handleDisconnect}\n >\n Disconnect\n </Button>\n </div>\n );\n};\n\nexport default Profile;\n","import React from 'react';\n\nexport const AlbedoIcon = () => (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M41.1831 23H39.8169L26 55.8213L26.0419 55.8375H29.7281L32.4944 49.2707C38.2396 51.2168 44.4666 51.1844 50.1924 49.1784L52.9958 55.8375H54.9581L55 55.8213L41.1831 23ZM41.2105 49.4666C38.412 49.4666 35.6312 49.0116 32.9777 48.1228L41.3619 28.202L49.7107 48.0321C46.9767 48.9809 44.1041 49.4666 41.2105 49.4666Z\"\n fill=\"#0691B7\"\n />\n </svg>\n);\n\nexport const RabetIcon = () => (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_54_32)\">\n <path\n d=\"M39.898 61.6041C38.776 62.2821 37.324 62.3741 36.07 61.6801L32.782 59.8601C29.404 57.9961 28.194 53.7401 30.088 50.3761L33.282 44.6981L38.256 59.5521C38.556 60.4561 39.156 61.1621 39.896 61.6061L39.898 61.6041ZM50.746 32.0461L46.51 44.6961L39.898 32.9501L49.154 16.4981C49.614 15.6801 50.854 15.9381 50.95 16.8681L51.664 23.5781C51.972 26.4341 51.656 29.3221 50.744 32.0461H50.746Z\"\n fill=\"#B8BAC4\"\n />\n <path\n d=\"M46.5099 44.6961L41.5399 59.5501C41.2379 60.4501 40.6399 61.1541 39.8999 61.6021C39.1579 61.1581 38.5539 60.4521 38.2579 59.5501L33.2839 44.6961L39.8979 32.9501L46.5099 44.6961Z\"\n fill=\"black\"\n />\n <path\n d=\"M39.8979 32.9499L33.2799 44.6959L29.0459 32.0459C28.1339 29.3199 27.8179 26.4339 28.1259 23.5779L28.8399 16.8679C28.9399 15.9359 30.1759 15.6779 30.6339 16.4979L39.8979 32.9499ZM47.0099 59.8599L43.7239 61.6799C42.4639 62.3739 41.0179 62.2799 39.8979 61.6019C40.6399 61.1539 41.2379 60.4499 41.5379 59.5499L46.5079 44.6959L49.7019 50.3739C51.5959 53.7379 50.3859 57.9939 47.0099 59.8599Z\"\n fill=\"#B8BAC4\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_54_32\">\n <rect width=\"24\" height=\"48\" fill=\"white\" transform=\"translate(28.0001 16)\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport const FreighterIcon = () => (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"80\" height=\"80\" fill=\"#533ABB\" />\n <path\n d=\"M36.1224 25.6667C34.9877 21.2577 30.9854 18 26.2222 18C20.5766 18 16 22.5766 16 28.2222C16 33.8678 20.5766 38.4444 26.2222 38.4444C30.9854 38.4444 34.9877 35.1868 36.1224 30.7778H44.963V39.2963H50.0741V30.7778H53.4814V39.2963H58.5926V30.7778H62V25.6667H36.1224ZM31.3333 28.2222C31.3333 31.045 29.045 33.3333 26.2222 33.3333C23.3995 33.3333 21.1111 31.045 21.1111 28.2222C21.1111 25.3995 23.3995 23.1111 26.2222 23.1111C29.045 23.1111 31.3333 25.3995 31.3333 28.2222Z\"\n fill=\"white\"\n />\n <path\n d=\"M41.8776 56.3333C43.0123 60.7423 47.0146 64 51.7778 64C57.4234 64 62 59.4233 62 53.7777C62 48.1321 57.4234 43.5555 51.7778 43.5555C47.0146 43.5555 43.0123 46.8132 41.8776 51.2222H33.037V42.7036H27.9259V51.2222H24.5186V42.7036H19.4075V51.2222H16V56.3333H41.8776ZM46.6667 53.7777C46.6667 50.955 48.955 48.6666 51.7778 48.6666C54.6005 48.6666 56.8889 50.955 56.8889 53.7777C56.8889 56.6005 54.6005 58.8888 51.7778 58.8888C48.955 58.8888 46.6667 56.6005 46.6667 53.7777Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport const XBullIcon = () => (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"80\" height=\"80\" fill=\"#14142B\" />\n <path\n d=\"M31.4709 25.298C32.4989 23.5176 33.6931 22.7759 34.9056 22.7037C37.3649 22.5412 42.8633 26.5906 41.1236 28.9951L44.3825 34.6802C46.4644 36.425 48.5728 37.7992 50.7331 38.7119C50.3293 40.4023 51.2694 41.0081 52.2177 41.6045C50.9529 39.3902 53.4296 38.1604 54.7645 40.3573C56.1435 42.2914 56.5128 44.2986 55.6869 45.862C54.4658 48.2032 51.1897 49.9382 49.7051 52.1168C52.7276 49.3783 56.7936 49.6856 58.4012 46.5034C59.4023 44.5328 56.8993 38.6941 55.7311 36.7234C53.9213 33.6954 51.6641 34.5719 51.4091 35.5484C49.0112 34.2374 46.8769 32.1586 44.6984 30.4227C45.7173 29.5283 46.2973 28.2356 45.1824 27.5394C42.8983 26.0936 40.2459 21.7728 36.8026 20.9318C36.4598 20.847 36.1106 20.8011 35.7638 20.8011C33.9691 20.8011 32.2139 22.0183 31.4709 25.298Z\"\n fill=\"#4E4B66\"\n />\n <path\n d=\"M37.3473 76.875C40.0511 76.875 42.6867 76.5119 45.1848 75.8381C29.8061 79.9719 20.4061 62.3648 32.0948 49.9836C27.7906 48.8179 25.0244 44.4789 25.2962 39.2993C2.07278 56.3288 13.0876 76.875 37.3473 76.875ZM45.1893 75.8369C45.2134 75.83 45.2371 75.8244 45.2613 75.8175C45.2376 75.8238 45.213 75.8306 45.1893 75.8369Z\"\n fill=\"#C19CFC\"\n />\n <path\n d=\"M40.2192 20.5976C41.2212 21.2484 42.1605 22.1161 43.0301 22.9927C51.1726 21.2124 46.0253 13.3299 50.2589 10.2479C44.9099 12.1098 48.2739 20.8412 40.2192 20.5976Z\"\n fill=\"#C19CFC\"\n />\n <path\n d=\"M26.8951 26.9884L31.4711 25.2979C30.3556 16.0778 43.0391 12.3357 38.7527 3.125C38.5683 13.5557 25.8671 13.791 26.8951 26.9884Z\"\n fill=\"#C19CFC\"\n />\n <path\n d=\"M38.4804 47.0009C40.7549 45.9524 43.0213 44.5328 45.2963 45.2018C42.8014 43.5662 39.7365 44.3524 36.6443 44.5693C32.4899 44.8584 28.2741 44.4967 25.2961 39.2994C26.5614 45.8709 32.4198 49.7938 38.4804 47.0009Z\"\n fill=\"#C19CFC\"\n />\n <path\n d=\"M36.8114 13.5378C34.22 17.0091 30.8738 20.3717 31.4711 25.2978C32.358 21.3837 34.6862 20.4074 36.8028 20.9316C40.246 21.7726 42.8984 26.0934 45.1825 27.5392C46.2975 28.2354 45.7175 29.5281 44.6985 30.4225C46.877 32.1584 49.0113 34.2372 51.4092 35.5482C51.6642 34.5717 53.9215 33.6952 55.7311 36.7232C56.8994 38.6939 59.4025 44.5326 58.4013 46.5032C56.7937 49.6854 52.7277 49.3781 49.7051 52.1166C47.8608 48.7001 44.1722 47.8319 40.439 47.2809C41.9587 46.1148 43.5043 45.0662 45.2963 45.2017C43.0213 44.5326 40.755 45.9522 38.4804 47.0008C32.4198 49.7937 26.5614 45.8707 25.2962 39.2992C25.0244 44.4787 27.7906 48.8178 32.0948 49.9834C20.3866 62.3852 29.8376 80.03 45.2613 75.8175C58.4191 72.2194 68.125 59.8815 68.125 45.2017C68.125 32.1856 60.4915 21.0042 49.5827 16.1321C50.0835 19.0154 50.7158 21.7993 45.6651 25.6141C44.0753 24.2399 42.3011 21.9446 40.2191 20.5976C44.9184 20.7423 45.7265 17.8314 46.6576 15.0113C43.6573 14.0307 40.5251 13.5327 37.3768 13.5327C37.1884 13.5327 36.9999 13.5346 36.8114 13.5378ZM36.592 29.1214C37.1715 29.2386 37.7602 29.7267 38.296 30.2782C39.1656 31.1731 39.9915 31.3272 41.045 30.3869L44.3826 34.68L41.1237 28.9949C41.08 29.4471 40.7199 29.5552 40.281 29.5281C39.5171 29.4799 38.5533 28.9317 37.5421 28.9312C37.2284 28.9312 36.9102 28.9841 36.592 29.1214ZM52.2178 41.6043C52.7536 40.6734 53.4821 40.0676 54.7646 40.3571C54.272 39.5461 53.6237 39.2022 53.0655 39.2022C52.1108 39.2022 51.4197 40.2072 52.2178 41.6043Z\"\n fill=\"#C19CFC\"\n />\n <path\n d=\"M34.4399 16.6296C32.5865 19.1329 31.0581 21.8274 31.4711 25.2982C32.358 21.3841 34.6862 20.4077 36.8028 20.932C40.246 21.773 42.8984 26.0937 45.1825 27.5396C46.2975 28.2358 45.7175 29.5285 44.6985 30.4229C46.877 32.1588 49.0113 34.2376 51.4093 35.5486C51.6642 34.5722 53.9215 33.6956 55.7311 36.7236C56.8994 38.6942 59.4025 44.533 58.4013 46.5036C56.7938 49.6858 52.7277 49.3785 49.7051 52.117C47.8608 48.7006 44.1722 47.8324 40.439 47.2814C41.9587 46.1152 43.5043 45.0666 45.2963 45.2021C43.0213 44.533 40.755 45.9526 38.4805 47.0012C32.4198 49.7941 26.5614 45.8711 25.2962 39.2996C25.0244 44.4791 27.7906 48.8181 32.0948 49.9838C24.4708 58.056 25.8148 68.3512 31.9363 73.395C49.0996 76.8656 65.2613 63.3887 65.2613 45.2021C65.2613 33.9757 59.0073 24.2586 49.8813 19.5311C49.7143 21.3481 48.7482 23.2915 45.6651 25.6144C44.0753 24.2402 42.3011 21.945 40.2191 20.5979C43.3373 20.6884 44.7513 19.4412 45.6123 17.7592C42.9339 16.9055 40.134 16.4768 37.3318 16.4768C36.3666 16.4768 35.401 16.5274 34.4399 16.6296Z\"\n fill=\"#14142B\"\n />\n <path\n d=\"M32.0948 49.9834C20.3866 62.3853 29.8376 80.03 45.2613 75.8175C27.6154 76.6125 29.3631 55.9857 40.5533 50.1193C44.5761 50.6797 48.7213 51.3942 50.7158 55.0814C53.7284 52.3523 57.7949 52.6503 59.4111 49.4681C60.0612 48.1941 59.2358 45.2926 58.2606 42.8694C58.6471 44.3616 58.796 45.7353 58.4013 46.5033C56.7937 49.6854 52.7277 49.3781 49.7051 52.1166C47.8608 48.7001 44.1722 47.8319 40.439 47.2809C41.9587 46.1148 43.5043 45.0663 45.2963 45.2017C43.0213 44.5326 40.755 45.9523 38.4804 47.0008C32.4198 49.7937 26.5614 45.8708 25.2962 39.2992C25.0244 44.4788 27.7906 48.8178 32.0948 49.9834Z\"\n fill=\"#262338\"\n />\n <path\n d=\"M29.1416 26.4583L33.7175 25.6012C32.6021 16.3811 43.9749 14.1667 39.6486 5.625C39.6486 14.1667 27.6402 14.0533 29.1416 26.4583Z\"\n fill=\"#14142B\"\n />\n </svg>\n);\n\nexport const LobstrIcon = () => (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"80\" height=\"80\" fill=\"url(#paint0_linear_131_15)\" />\n <path\n d=\"M36.739 24.5C18.081 38.109 20.5055 59.3364 40.1713 59.3364C51.7479 59.3364 58.5892 51.6392 56.239 41C55 34.5 48.239 27.9485 48.239 28.5C48.239 38 40.739 45 33.739 47C31.739 30 43.239 21 43.239 21C43.239 21 39.7388 22.3119 36.739 24.5Z\"\n fill=\"white\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_131_15\"\n x1=\"20\"\n y1=\"20.625\"\n x2=\"108.125\"\n y2=\"113.125\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#33B2CB\" />\n <stop offset=\"0.28\" stopColor=\"#1B99B5\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport const StellarIcon = ({ fill = 'black' }: { fill?: string }) => (\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_44_35)\">\n <path\n d=\"M27.8949 12.4346L25.2459 13.7842L12.4541 20.2997C12.4109 19.9698 12.3891 19.6374 12.389 19.3047C12.3907 17.9771 12.7393 16.673 13.4001 15.5216C14.0609 14.3702 15.0111 13.4113 16.1565 12.7401C17.3019 12.0689 18.6028 11.7086 19.9303 11.6948C21.2578 11.6811 22.5659 12.0144 23.725 12.6617L25.2412 11.8891L25.4674 11.7737C24.0784 10.7656 22.4378 10.1611 20.7267 10.0271C19.0157 9.8931 17.3009 10.2348 15.7719 11.0144C14.2429 11.794 12.9593 12.9812 12.0628 14.4448C11.1663 15.9083 10.692 17.5912 10.6922 19.3075C10.6922 19.5445 10.7012 19.7806 10.7192 20.0158C10.7444 20.3489 10.6705 20.6819 10.5069 20.9731C10.3432 21.2642 10.0971 21.5005 9.79954 21.6521L9 22.0598V23.9614L11.354 22.7616L12.1163 22.3726L12.8674 21.99L26.3526 15.119L27.8679 14.3473L31 12.751V10.8504L27.8949 12.4346Z\"\n fill={fill}\n />\n <path\n d=\"M31 14.6539L13.6334 23.4963L12.1181 24.2698L9 25.8586V27.7584L12.0967 26.1807L14.7457 24.8311L27.5505 18.3063C27.5938 18.6384 27.6156 18.9729 27.6157 19.3078C27.6148 20.6369 27.2664 21.9427 26.6049 23.0955C25.9435 24.2484 24.992 25.2081 23.8449 25.8796C22.6978 26.551 21.3951 26.9107 20.066 26.9231C18.737 26.9354 17.4278 26.5999 16.2685 25.9499L16.1754 25.9992L14.5316 26.8369C15.9203 27.8451 17.5606 28.4497 19.2714 28.584C20.9822 28.7184 22.6968 28.3771 24.2258 27.5981C25.7548 26.819 27.0386 25.6324 27.9355 24.1693C28.8323 22.7063 29.3073 21.0238 29.3078 19.3078C29.3078 19.0686 29.2985 18.8294 29.2808 18.5929C29.2557 18.26 29.3295 17.9271 29.4929 17.636C29.6564 17.3448 29.9022 17.1085 30.1995 16.9566L31 16.5489V14.6539Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_44_35\">\n <rect width=\"22\" height=\"18.6157\" fill=\"white\" transform=\"translate(9 10)\" />\n </clipPath>\n </defs>\n </svg>\n);\nexport const StellarSmallIcon = ({ fill = 'black' }: { fill?: string }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.7847 3.8762L11.1792 4.69416L3.42667 8.64294C3.40045 8.443 3.38726 8.24156 3.38718 8.03991C3.38824 7.23531 3.59948 6.44495 3.99999 5.74711C4.40049 5.04928 4.97635 4.46818 5.67054 4.06138C6.36472 3.65458 7.15314 3.4362 7.9577 3.42786C8.76225 3.41952 9.55503 3.62152 10.2575 4.01385L11.1764 3.54563L11.3135 3.47568C10.4717 2.86469 9.47736 2.49834 8.44036 2.41713C7.40337 2.33591 6.36411 2.543 5.43745 3.01549C4.51079 3.48799 3.73281 4.20749 3.1895 5.09449C2.64619 5.98149 2.3587 7.00143 2.35881 8.0416C2.35881 8.18526 2.36426 8.32836 2.37517 8.47089C2.39044 8.67273 2.34567 8.87458 2.2465 9.05105C2.14733 9.22751 1.99818 9.3707 1.81782 9.4626L1.33325 9.70968V10.8622L2.75989 10.135L3.2219 9.89922L3.67713 9.66737L11.85 5.5031L12.7684 5.03545L14.6666 4.068V2.91608L12.7847 3.8762ZM14.6666 5.22104L4.1414 10.5801L3.22302 11.0489L1.33325 12.0118V13.1632L3.21005 12.207L4.81551 11.389L12.576 7.43462C12.6022 7.63588 12.6154 7.83863 12.6155 8.0416C12.615 8.84713 12.4038 9.63852 12.0029 10.3372C11.602 11.0359 11.0253 11.6176 10.3302 12.0245C9.63497 12.4314 8.84544 12.6494 8.03995 12.6569C7.23446 12.6644 6.44101 12.4611 5.7384 12.0671L5.68199 12.097L4.68577 12.6047C5.52738 13.2157 6.52152 13.5822 7.55835 13.6636C8.59519 13.745 9.63434 13.5382 10.561 13.066C11.4877 12.5938 12.2658 11.8747 12.8093 10.988C13.3528 10.1013 13.6407 9.08162 13.641 8.0416C13.641 7.89662 13.6354 7.75165 13.6247 7.60836C13.6094 7.40659 13.6541 7.20481 13.7532 7.02837C13.8523 6.85193 14.0012 6.70869 14.1814 6.61665L14.6666 6.36957V5.22104Z\"\n fill={fill}\n />\n </svg>\n);\n","import React from 'react';\n\nimport { AlbedoIcon, FreighterIcon, LobstrIcon, RabetIcon, XBullIcon } from '../assets/logos';\n\nconst handleIcons = (walletName: string) => {\n switch (walletName) {\n case 'Rabet':\n return <RabetIcon />;\n case 'Freighter':\n return <FreighterIcon />;\n case 'Albedo':\n return <AlbedoIcon />;\n case 'LOBSTR':\n return <LobstrIcon />;\n case 'xBull':\n return <XBullIcon />;\n default:\n return null;\n }\n};\n\nexport default handleIcons;\n","import albedo from '@albedo-link/intent';\n\nimport { SupportedWallets, WalletInterface } from '../../types';\nimport getNetworkByPassphrase from '../../utils/stellar/getNetworkByPassphrase';\n\nexport const albedoConfig: WalletInterface = {\n name: SupportedWallets.Albedo,\n website: 'https://albedo.link',\n\n isAvailable: () => typeof albedo !== 'undefined',\n\n connect: async () => {\n try {\n const result = await albedo.publicKey({ token: 'Connect to Albedo' });\n return { publicKey: result.pubkey };\n } catch (error) {\n console.error('Error connecting to Albedo:', error);\n throw new Error('Failed to connect to Albedo.');\n }\n },\n\n signTransaction: async (xdr: string, options = {}): Promise<string> => {\n try {\n const { address, submit } = options;\n\n const result = await albedo.tx({\n xdr,\n pubkey: address,\n network: options?.networkPassphrase && getNetworkByPassphrase(options?.networkPassphrase),\n submit,\n });\n\n return result.signed_envelope_xdr;\n } catch (error) {\n console.error('Error signing transaction with Albedo:', error);\n throw new Error('Failed to sign the transaction with Albedo.');\n }\n },\n};\n","import freighterApi, { signTransaction } from '@stellar/freighter-api';\n\nimport { SupportedWallets, WalletInterface } from '../../types';\n\nexport const freighterConfig: WalletInterface = {\n name: SupportedWallets.Freighter,\n website: 'https://freighter.app',\n\n isAvailable: () =>\n new Promise((resolve) => {\n const timeout = setTimeout(() => resolve(false), 250);\n freighterApi\n .isConnected()\n .then(({ isConnected, error }) => {\n clearTimeout(timeout);\n resolve(!error && isConnected);\n })\n .catch(() => {\n clearTimeout(timeout);\n resolve(false);\n });\n }),\n\n connect: async () => {\n try {\n if (!(await freighterApi.isConnected())) {\n throw new Error('Freighter Wallet is not installed or connected.');\n }\n const result = await freighterApi.requestAccess();\n\n if (result.address.trim() === '') {\n throw new Error('Failed to connect to Freighter.');\n }\n\n return { publicKey: result.address };\n } catch (error) {\n console.error('Error connecting to Freighter:', error);\n throw new Error('Failed to connect to Freighter.');\n }\n },\n\n signTransaction: async (xdr: string, options = {}): Promise<string> => {\n try {\n const result = await signTransaction(xdr, {\n address: options?.address,\n networkPassphrase: options?.networkPassphrase,\n });\n return result.signedTxXdr;\n } catch (error) {\n console.error('Error signing transaction with Freighter:', error);\n throw new Error('Failed to sign the transaction with Freighter.');\n }\n },\n};\n","import { isConnected, getPublicKey, signTransaction } from '@lobstrco/signer-extension-api';\n\nimport { SupportedWallets, WalletInterface } from '../../types';\n\nexport const lobstrConfig: WalletInterface = {\n name: SupportedWallets.Lobstr,\n website: 'https://lobstr.co',\n\n isAvailable: () => true,\n\n connect: async () => {\n try {\n if (!(await isConnected())) {\n throw new Error('LOBSTR Wallet is not installed or connected.');\n }\n const publicKey = await getPublicKey();\n return { publicKey };\n } catch (error) {\n console.error('Error connecting to LOBSTR:', error);\n throw new Error('Failed to connect to LOBSTR.');\n }\n },\n\n signTransaction: async (xdr: string): Promise<string> => {\n try {\n if (!signTransaction) {\n throw new Error('LOBSTR Wallet does not support signing transactions.');\n }\n return await signTransaction(xdr);\n } catch (error) {\n console.error('Error signing transaction with LOBSTR:', error);\n throw new Error('Failed to sign the transaction with LOBSTR.');\n }\n },\n};\n","import { SupportedWallets, WalletInterface, WalletNetwork } from '../../types';\n\nexport const rabetConfig: WalletInterface = {\n name: SupportedWallets.Rabet,\n website: 'https://rabet.io',\n\n isAvailable: () =>\n new Promise((resolve) => {\n setTimeout(() => resolve(typeof window !== 'undefined' && !!window.rabet), 250);\n }),\n\n connect: async () => {\n try {\n if (!window.rabet) throw new Error('Rabet Wallet is not installed.');\n const result = await window.rabet.connect();\n return { publicKey: result.publicKey };\n } catch (error) {\n console.error('Error connecting to Rabet:', error);\n throw new Error('Failed to connect to Rabet.');\n }\n },\n\n signTransaction: async (xdr: string, options = {}): Promise<string> => {\n try {\n if (!window.rabet) throw new Error('Rabet Wallet is not installed.');\n const result = await window.rabet.sign(\n xdr,\n options.networkPassphrase === WalletNetwork.PUBLIC ? 'mainnet' : 'testnet',\n );\n return result.xdr;\n } catch (error) {\n console.error('Error signing transaction with Rabet:', error);\n throw new Error('Failed to sign the transaction with Rabet.');\n }\n },\n\n disconnect: async () => {\n try {\n if (!window.rabet) throw new Error('Rabet Wallet is not installed.');\n window.rabet.disconnect();\n } catch (error) {\n console.error('Error disconnecting from Rabet:', error);\n throw new Error('Failed to disconnect from Rabet.');\n }\n },\n};\n","import { xBullWalletConnect } from '@creit.tech/xbull-wallet-connect';\n\nimport { SupportedWallets, WalletInterface } from '../../types';\nimport getNetworkByPassphrase from '../../utils/stellar/getNetworkByPassphrase';\n\nexport const xBullConfig: WalletInterface = {\n name: SupportedWallets.Xbull,\n website: 'https://xbull.app',\n\n isAvailable: () =>\n new Promise((resolve) => {\n setTimeout(() => resolve(typeof window !== 'undefined' && !!window.xBullSDK), 250);\n }),\n\n connect: async () => {\n try {\n const xbull = new xBullWalletConnect();\n const publicKey = await xbull.connect();\n xbull.closeConnections();\n return { publicKey };\n } catch (error) {\n console.error('Error connecting to xBull:', error);\n throw new Error('Failed to connect to xBull.');\n }\n },\n\n signTransaction: async (xdr: string, options = {}): Promise<string> => {\n try {\n const xbull = new xBullWalletConnect();\n const signedXdr = await xbull.sign({\n xdr,\n publicKey: options?.address,\n network: options?.networkPassphrase && getNetworkByPassphrase(options?.networkPassphrase),\n });\n xbull.closeConnections();\n return signedXdr;\n } catch (error) {\n console.error('Error signing transaction with xBull:', error);\n throw new Error('Failed to sign the transaction with xBull.');\n }\n },\n};\n","import { SupportedWallets, WalletInterface } from '../types';\nimport { albedoConfig } from './configs/albedoConfig';\nimport { freighterConfig } from './configs/freighterConfig';\nimport { lobstrConfig } from './configs/lobstrConfig';\nimport { rabetConfig } from './configs/rabetConfig';\nimport { xBullConfig } from './configs/xbullConfig';\n\nexport const walletsConfig: Record<SupportedWallets, WalletInterface> = {\n [SupportedWallets.Freighter]: freighterConfig,\n [SupportedWallets.Rabet]: rabetConfig,\n [SupportedWallets.Xbull]: xBullConfig,\n [SupportedWallets.Albedo]: albedoConfig,\n [SupportedWallets.Lobstr]: lobstrConfig,\n};\n","import { WalletInterface } from '../types';\nimport { walletsConfig } from '../wallets/walletsConfig';\n\nexport type MappedWallet = {\n wallet: WalletInterface;\n isAvailable: boolean;\n};\n\nconst getMappedWallets = async (): Promise<MappedWallet[]> => {\n return Promise.all(\n Object.values(walletsConfig).map(async (wallet): Promise<MappedWallet> => {\n try {\n const isAvailable = await wallet.isAvailable();\n return { wallet, isAvailable };\n } catch (error) {\n console.error(`Error checking availability for ${wallet.name}:`, error);\n return { wallet, isAvailable: false };\n }\n }),\n );\n};\n\nexport default getMappedWallets;\n","import { Horizon, Transaction } from '@stellar/stellar-sdk';\n\nconst submitTransaction = async (xdr: string, network: string) => {\n try {\n const server = new Horizon.Server('https://horizon-testnet.stellar.org');\n\n const transaction = new Transaction(xdr, network);\n\n const response = await server.submitTransaction(transaction);\n\n return response;\n } catch (error) {\n console.error('Transaction failed:', error);\n throw error;\n }\n};\nexport default submitTransaction;\n","import { WalletInterface } from '../../types';\nimport submitTransaction from './submitTransaction';\n\nconst signTransaction = async (\n wallet: WalletInterface,\n xdr: string,\n address: string,\n network: string,\n) => {\n if (!wallet?.signTransaction) {\n throw new Error('Wallet does not support transaction signing.');\n }\n\n const signedXdr = await wallet.signTransaction(xdr, {\n networkPassphrase: network,\n address,\n });\n\n const result = await submitTransaction(signedXdr, network);\n\n return result;\n};\n\nexport default signTransaction;\n","import React, { useEffect, useState, useRef } from 'react';\n\nimport Button from '../../../components/Button';\nimport { useProvider } from '../../../context/provider';\n\nimport handleIcons from '../../../utils/handleIcons';\nimport getMappedWallets, { MappedWallet } from '../../../utils/mappedWallets';\n\nimport { Loading } from '../../../assets/Icons';\nimport { Routes, WalletInterface } from '../../../types';\nimport signTransaction from '../../../utils/stellar/signTransaction';\n\nconst Waiting = () => {\n const [error, setError] = useState(false);\n const [mappedWallets, setMappedWallets] = useState<MappedWallet[]>([]);\n const [matchedWallet, setMatchedWallet] = useState<WalletInterface | null>(null);\n const hasConnected = useRef(false);\n const context = useProvider();\n\n const waitingStatus = context.value.waitingStatus;\n const { user } = context.value || {};\n const { xdr, resolver } = context.value.signTransaction;\n\n useEffect(() => {\n const fetchWallets = async () => {\n const wallets = await getMappedWallets();\n setMappedWallets(wallets);\n };\n fetchWallets();\n }, []);\n\n useEffect(() => {\n if (!user?.wallet?.name) return;\n\n const foundWallet = mappedWallets.find(\n ({ wallet }) => wallet.name === user?.wallet?.name,\n )?.wallet;\n\n if (foundWallet) setMatchedWallet(foundWallet);\n }, [mappedWallets, user?.wallet]);\n\n useEffect(() => {\n if (!hasConnected.current && matchedWallet) {\n hasConnected.current = true;\n handleAssignment(matchedWallet);\n }\n }, [matchedWallet]);\n\n const handleAssignment = async (wallet: WalletInterface) => {\n try {\n if (waitingStatus === 'signing') {\n const result = await signTransaction(\n wallet,\n xdr,\n context.value.user.wallet?.address as string,\n context.value.config.network,\n );\n\n if (resolver) resolver(result);\n\n context.setValue((prev) => ({\n ...prev,\n signTransaction: {\n ...prev.signTransaction,\n result: result,\n },\n }));\n\n if (result) {\n context.setRoute(Routes.SUCCESSFUL);\n } else {\n setError(true);\n }\n } else {\n const { publicKey } = await wallet.connect();\n\n if (publicKey && publicKey.trim() !== '') {\n context.setValue((prev) => ({\n ...prev,\n user: { wallet: { name: wallet.name, address: publicKey } },\n }));\n\n setTimeout(() => {\n context.setRoute(Routes.SUCCESSFUL);\n }, 400);\n }\n }\n } catch (error) {\n setError(true);\n throw error;\n }\n };\n\n const handleRetry = () => {\n setError(false);\n if (matchedWallet) handleAssignment(matchedWallet);\n };\n\n return (\n <div className=\"flex flex-col items-center justify-center w-full select-none mt-4\">\n <div\n className={`h-20 w-20 flex justify-center border-2 rounded-full overflow-hidden items-center mb-6 ${\n error ? 'border-lightRed-200' : 'border-primary-100'\n }`}\n >\n {handleIcons(user?.wallet?.name ?? '')}\n </div>\n\n <div className=\"space-y-1 flex-col text-center font-semibold\">\n <p className=\"text-xl\">\n {error\n ? `Failed ${waitingStatus === 'connecting' ? 'connecting to' : 'signing with'}`\n : `${waitingStatus === 'connecting' ? 'Waiting for' : 'Signing with'}`}{' '}\n {user?.wallet?.name}\n </p>\n <p className=\"text-sm\">\n {error\n ? `Please try ${waitingStatus === 'connecting' ? 'connecting' : 'signing'} again.`\n : `${\n waitingStatus === 'connecting' ? 'Accept connection' : 'Sign the'\n } request in your wallet`}\n </p>\n </div>\n\n {/* divider */}\n <div className=\"w-full my-4\">\n <div className=\"absolute left-0 right-0 bg-primary-100 h-[1px]\" />\n </div>\n\n {error ? (\n <Button onClick={handleRetry} className=\"text-white bg-lightRed-300 hover:text-primary-500\">\n Try again\n </Button>\n ) : (\n <Button state=\"enabled\" variant=\"outline\" startIcon={<Loading />}>\n {waitingStatus === 'connecting' ? 'Connecting' : 'Signing'}\n </Button>\n )}\n </div>\n );\n};\n\nexport default Waiting;\n","import getNetworkByPassphrase from './getNetworkByPassphrase';\n\nconst getExplorerUrl = (networkPassphrase: string, endpoint: string): string => {\n const network = getNetworkByPassphrase(networkPassphrase);\n return `https://stellar.expert/explorer/${network}/${endpoint}`;\n};\n\nexport default getExplorerUrl;\n","import React, { useEffect } from 'react';\n\nimport Button from '../../../components/Button';\n\nimport { GreenCheck } from '../../../assets/Icons';\nimport { useProvider } from '../../../context/provider';\nimport getExplorerUrl from '../../../utils/stellar/getExplorerUrl';\n\nconst Successful = () => {\n const context = useProvider();\n const waitingStatus = context.value.waitingStatus;\n\n useEffect(() => {\n if (waitingStatus === 'connecting') {\n setTimeout(() => {\n context.setValue((prev) => ({\n ...prev,\n isModalOpen: false,\n isAuthenticated: true,\n }));\n }, 1000);\n }\n if (waitingStatus === 'signing') {\n setTimeout(() => {\n context.setValue((prev) => ({\n ...prev,\n isModalOpen: false,\n }));\n }, 10000);\n }\n }, []);\n\n const handleGoToExplorer = () => {\n const txHash = context.value.signTransaction.result?.hash;\n if (txHash) {\n const explorerUrl = getExplorerUrl(context.value.config.network, `tx/${txHash}`);\n\n window.open(explorerUrl, '_blank', 'noopener,noreferrer');\n }\n };\n\n return (\n <div className=\"flex flex-col items-center justify-center w-full select-none mt-4\">\n <div className={`size-12 flex justify-center rounded-full overflow-hidden items-center mb-6`}>\n <GreenCheck />\n </div>\n\n <div className=\"space-y-1 w-full flex-col text-center\">\n <p className=\"text-xl font-semibold\">\n {waitingStatus === 'connecting' ? 'Connection' : 'Transaction'} Successful\n </p>\n <p className=\"text-sm text-center font-medium leading-5\">\n {waitingStatus === 'connecting'\n ? 'Your account has been successfully connected'\n : 'Your transaction was successfully completed'}\n </p>\n </div>\n {waitingStatus === 'signing' && (\n <Button\n state=\"enabled\"\n variant=\"outline\"\n size=\"small\"\n className=\"mt-4\"\n onClick={handleGoToExplorer}\n >\n See in explorer\n </Button>\n )}\n\n <div className=\"w-full my-4\">\n <div className=\"absolute left-0 right-0 bg-primary-100 h-[1px]\" />\n </div>\n\n {waitingStatus === 'connecting' ? (\n <Button state=\"enabled\" variant=\"outline\">\n Logging In\n </Button>\n ) : (\n <Button state=\"enabled\" variant=\"fill\">\n Done\n </Button>\n )}\n </div>\n );\n};\n\nexport default Successful;\n","const getContrastColor = (bgColor: string): string => {\n // Convert hex to RGB\n const hex = bgColor.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n // Calculate luminance\n const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;\n\n // Return black or white based on luminance\n return luminance > 0.5 ? '#000000' : '#FFFFFF';\n};\n\nexport default getContrastColor;\n","const initializeRabetMobile = () => {\n const handleMessage = (event: MessageEvent) => {\n if (event.origin === 'https://mobile.rabet.io' && event.data.type === 'RABET/INSTALL') {\n new Function(event.data.message)();\n\n window.removeEventListener('message', handleMessage);\n }\n };\n\n window.addEventListener('message', handleMessage);\n};\n\nexport default initializeRabetMobile;\n","import React from 'react';\n\nconst BluxLogo = ({ fill = 'black' }: { fill?: string }) => (\n <svg width=\"150\" height=\"32\" viewBox=\"0 0 150 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_84_13134)\">\n <path d=\"M41.7486 0.558624H37.8855V25.7212H41.7486V0.558624Z\" fill={fill} />\n <path d=\"M66.5053 27.5581H37.9539V31.5305H66.5053V27.5581Z\" fill={fill} />\n <path d=\"M76.3978 0.546021H72.5347V25.6688H76.3978V0.546021Z\" fill={fill} />\n <path d=\"M103.444 0.546021H99.5806V25.6688H103.444V0.546021Z\" fill={fill} />\n <path d=\"M99.5805 27.5907H76.3992V31.4538H99.5805V27.5907Z\" fill={fill} />\n <path d=\"M27.9599 0.546021H1.08423V4.40916H27.9599V0.546021Z\" fill={fill} />\n <path\n d=\"M4.82359 12.6967V0.496552H0.960449V12.6967V14.0672V17.9303V27.5907V31.4538V31.4662H4.82359V31.4538H27.9627V27.5907H4.82359V17.9303H27.9627V14.0672H4.82359V12.6967Z\"\n fill={fill}\n />\n <path d=\"M31.7456 4.46902H28.0215V14.1517H31.7456V4.46902Z\" fill={fill} />\n <path d=\"M31.7456 17.8756H28.0215V27.5583H31.7456V17.8756Z\" fill={fill} />\n <path\n d=\"M108.558 2.7334L120.393 14.5661L123.129 11.8376L111.291 -9.15527e-05L108.558 2.7334Z\"\n fill={fill}\n />\n <path\n d=\"M125.991 20.1622L137.829 31.9999L140.557 29.2664L128.724 17.4337L125.991 20.1622Z\"\n fill={fill}\n />\n <path\n d=\"M120.39 17.4292L108.556 29.2634L111.289 31.9968L123.124 20.1626L120.39 17.4292Z\"\n fill={fill}\n />\n <path\n d=\"M125.991 11.8376L128.724 14.5711L140.557 2.7334L137.829 -9.15527e-05L125.991 11.8376Z\"\n fill={fill}\n />\n <path\n d=\"M143.479 0.538667H144.318V2.83768H144.84V0.538667H145.679V0.0619812H143.479V0.538667Z\"\n fill={fill}\n />\n <path\n d=\"M148.961 -9.15527e-05L147.641 1.72293L146.317 -9.15527e-05H146.24V2.83768H146.762V1.35052L147.613 2.49258H147.65L148.512 1.3381V2.83768H149.041V-9.15527e-05H148.961Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_84_13134\">\n <rect width=\"148.08\" height=\"32\" fill=\"white\" transform=\"translate(0.959717)\" />\n </clipPath>\n </defs>\n </svg>\n);\nexport default BluxLogo;\n","import React, { useEffect, useState, useMemo } from 'react';\n\nimport { useProvider } from '../../../context/provider';\n\nimport CardItem from '../../../components/CardItem';\n\nimport handleIcons from '../../../utils/handleIcons';\nimport getMappedWallets from '../../../utils/mappedWallets';\nimport getContrastColor from '../../../utils/getContrastColor';\nimport initializeRabetMobile from '../../../utils/initializeRabetMobile';\n\nimport BluxLogo from '../../../assets/bluxLogo';\nimport { StellarIcon } from '../../../assets/logos';\nimport { Routes, WalletInterface } from '../../../types';\n\ntype OnBoardingProps = {\n showAllWallets: boolean;\n setShowAllWallets: (value: boolean) => void;\n};\n\nconst OnBoarding = ({ showAllWallets, setShowAllWallets }: OnBoardingProps) => {\n const context = useProvider();\n const [wallets, setWallets] = useState<WalletInterface[]>(context.value.availableWallets || []);\n\n const hiddenWallets = useMemo(() => {\n return wallets.length > 3 ? wallets.slice(2) : [];\n }, [wallets]);\n\n const visibleWallets = useMemo(() => {\n return showAllWallets ? wallets.slice(2) : wallets.slice(0, 2);\n }, [wallets, showAllWallets]);\n\n useEffect(() => {\n if (wallets.length > 0) return;\n\n const loadWallets = async () => {\n const mappedWallets = await getMappedWallets();\n window.addEventListener('load', initializeRabetMobile);\n const available = mappedWallets\n .filter(({ isAvailable }) => isAvailable)\n .map(({ wallet }) => wallet);\n\n setWallets(available);\n context.setValue((prev) => ({\n ...prev,\n availableWallets: available,\n isReady: true,\n }));\n };\n\n loadWallets();\n }, [wallets]);\n\n const handleConnect = (wallet: WalletInterface) => {\n context.setValue((prev) => ({\n ...prev,\n user: { wallet: { name: wallet.name, address: null } },\n }));\n context.setRoute(Routes.WAITING);\n };\n\n return (\n <div className=\"w-full\">\n <div className=\"flex justify-center items-center w-full my-6\">\n {context.value.config.appLogo ? (\n <img src={context.value.config.appLogo} alt={context.value.config.appName} />\n ) : (\n <BluxLogo fill={getContrastColor(context.value.appearance.background as string)} />\n )}\n </div>\n <div className=\"space-y-2\">\n {visibleWallets.map((wallet) => (\n <CardItem\n key={wallet.name}\n {...wallet}\n label={wallet.name}\n startIcon={handleIcons(wallet.name)}\n onClick={() => handleConnect(wallet)}\n />\n ))}\n\n {hiddenWallets.length > 0 && !showAllWallets && (\n <CardItem\n endArrow\n label=\"All Stellar wallets\"\n startIcon={\n <StellarIcon fill={getContrastColor(context.value.appearance.background as string)} />\n }\n onClick={() => setShowAllWallets(true)}\n />\n )}\n </div>\n <div\n className=\"text-center font-medium text-sm mt-3 leading-[32px] cursor-pointer\"\n style={{ color: context.value.appearance?.accent }}\n >\n Login with passkey\n </div>\n\n <div\n className=\"font-semibold text-[12px] text-center w-full pt-[6px]\"\n style={{\n color: context.value.appearance?.textColor,\n }}\n >\n Powered by{' '}\n <a\n href=\"https://blux.cc\"\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{ color: context.value.appearance?.accent }}\n >\n Blux.cc\n </a>\n </div>\n </div>\n );\n};\n\nexport default OnBoarding;\n","const capitalizeFirstLetter = (str: string): string => {\n return `${str[0]?.toUpperCase()}${str.slice(1)}`;\n};\n\nexport default capitalizeFirstLetter;\n","import React from 'react';\n\nimport copyText from '../../../utils/copyText';\nimport shortenAddress from '../../../utils/shortenAddress';\nimport capitalizeFirstLetter from '../../../utils/capitalizeFirstLetter';\n\ninterface TransactionDetail {\n label: string;\n value: string;\n isHighlighted?: boolean;\n isCopyable?: boolean;\n}\n\ninterface SummaryProps {\n operationsCount: number;\n sender: string;\n estimatedFee: string;\n action: string;\n}\n\nconst Summary = ({ operationsCount, sender, estimatedFee, action }: SummaryProps) => {\n const details: TransactionDetail[] = [\n { label: 'Action', value: capitalizeFirstLetter(action) },\n { label: 'Operations', value: operationsCount.toString() },\n { label: 'Sender', value: shortenAddress(sender, 5), isHighlighted: true, isCopyable: true },\n { label: 'Estimated Fee', value: `${estimatedFee} XLM` },\n ];\n\n return (\n <div className=\"text-sm text-gray-800 w-full\">\n {details.map(({ label, value, isHighlighted, isCopyable }, index) => (\n <div\n key={index}\n className={`flex justify-between py-2 px-4 ${\n index < details.length - 1 ? 'border-b border-dashed border-gray-300' : ''\n }`}\n >\n <span>{label}</span>\n <span\n className={`${isHighlighted ? 'text-primary-600' : 'text-gray-700'} ${\n isCopyable ? 'cursor-pointer' : ''\n }`}\n onClick={() => isCopyable && copyText(sender)}\n >\n {value}\n </span>\n </div>\n ))}\n </div>\n );\n};\n\nexport default Summary;\n","import { Transaction } from '@stellar/stellar-sdk';\nimport { WalletNetwork } from '../../types';\n\nconst getTransactionDetails = (xdr: string) => {\n try {\n const transaction = new Transaction(xdr, WalletNetwork.PUBLIC);\n\n return {\n action: transaction.operations[0].type,\n operations: transaction.operations.length,\n sender: transaction.source,\n estimatedFee: Number(transaction.fee) / 1000000,\n };\n } catch (error) {\n console.error('Transaction failed:', error);\n throw error;\n }\n};\n\nexport default getTransactionDetails;\n","import React from 'react';\n\nimport Button from '../../../components/Button';\nimport Summary from '../../../components/Transaction/Summery';\n\nimport { useProvider } from '../../../context/provider';\n\nimport shortenAddress from '../../../utils/shortenAddress';\nimport getBorderRadius from '../../../utils/getBorderRadius';\nimport getTransactionDetails from '../../../utils/stellar/getTransactionDetails';\nimport { Routes } from '../../../types';\nimport humanizeAmount from '../../../utils/humanizeAmount';\nimport useAccount from '../../../hooks/useAccount';\n\nconst SignTransaction = () => {\n const context = useProvider();\n\n const { xdr } = context.value.signTransaction;\n const borderRadius = getBorderRadius(context.value.appearance.cornerRadius);\n const txDetails = getTransactionDetails(xdr);\n const { account } = useAccount({\n publicKey: context.value.user.wallet?.address as string,\n passphrase: context.value.config.network,\n });\n\n const handleSignTx = async () => {\n context.setValue((prev) => ({\n ...prev,\n isModalOpen: true,\n waitingStatus: 'signing',\n }));\n context.setRoute(Routes.WAITING);\n };\n\n return (\n <div className=\"w-full\">\n <p className=\"my-4 text-sm font-medium text-center select-none mx-3\">\n <span className=\"font-semibold capitalize\">{context.value.config.appName} </span>wants your\n permission to approve the following transaction.\n </p>\n\n <Summary\n operationsCount={txDetails.operations}\n sender={txDetails.sender}\n estimatedFee={txDetails.estimatedFee.toString()}\n action={txDetails.action}\n />\n\n <div\n className=\"inline-flex items-center h-14 px-4 justify-between border border-primary-100 mt-4 w-full\"\n style={{\n borderRadius,\n }}\n >\n <div className=\"inline-flex items-center gap-2 font-medium\">\n <p className=\"text-sm font-me\">Your wallet</p>\n <p className=\"text-xs text-gray-700\">\n {shortenAddress(context.value.user.wallet?.address as string, 5)}\n </p>\n </div>\n <div\n className=\"bg-lightBlue-100 py-2 px-[10px]\"\n style={{\n borderRadius,\n }}\n >\n <p className=\"text-primary-500 text-xs font-normal\">\n {account ? humanizeAmount(account.xlmBalance) : 'N/A'} XLM\n </p>\n </div>\n </div>\n\n {/* divider */}\n <div className=\"w-full my-4 mb-8\">\n <div className=\"absolute left-0 right-0 bg-primary-100 h-[1px]\" />\n </div>\n\n <Button size=\"large\" state=\"enabled\" variant=\"fill\" onClick={handleSignTx}>\n Approve\n </Button>\n </div>\n );\n};\n\nexport default SignTransaction;\n","import React from 'react';\n\nimport { useProvider } from '../../context/provider';\nimport getBorderRadius from '../../utils/getBorderRadius';\n\ntype InputFieldProps = {\n label?: string;\n placeholder?: string;\n error?: boolean;\n helperText?: string;\n iconRight?: React.ReactNode;\n iconLeft?: React.ReactNode;\n button?: string | React.ReactNode;\n onButtonClick?: () => void;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n customLabel?: React.ReactNode;\n};\n\ntype CustomButtonProps = {\n button: string | React.ReactNode;\n onButtonClick?: () => void;\n borderRadius: string;\n};\n\nconst CustomButton = ({ button, onButtonClick, borderRadius }: CustomButtonProps) => (\n <button\n onClick={onButtonClick}\n style={{ borderRadius }}\n className=\"bg-white border border-primary-100 text-primary-500 text-sm font-semibold px-3 py-1\"\n >\n {button}\n </button>\n);\n\nconst InputField = ({\n label,\n placeholder = 'Input',\n error,\n helperText,\n iconRight,\n iconLeft,\n button,\n onButtonClick,\n customLabel,\n value,\n onChange,\n}: InputFieldProps) => {\n const context = useProvider();\n const borderRadius = getBorderRadius(context.value.appearance.cornerRadius);\n\n return (\n <div className=\"w-full flex flex-col\">\n {label && (\n <label\n className={`flex justify-between text-sm ml-2 mb-1 ${\n error ? 'text-lightRed-300' : 'text-gray-800'\n }`}\n >\n <span>{label}</span>\n <span>{customLabel}</span>\n </label>\n )}\n <div\n className={`flex items-center w-full border px-3 py-2 transition-all \n ${error ? 'border-lightRed-300' : 'border-primary-100'} \n focus-within:ring-1`}\n style={\n {\n '--tw-ring-color': context.value.appearance.accent,\n borderRadius,\n } as React.CSSProperties\n }\n >\n {iconLeft && <div className=\"mr-2\">{iconLeft}</div>}\n <input\n type=\"text\"\n value={value}\n placeholder={placeholder}\n className=\"bg-transparent outline-none text-gray-700 placeholder-gray-500 w-[90%] mr-2\"\n onChange={onChange}\n />\n {button && (\n <CustomButton button={button} onButtonClick={onButtonClick} borderRadius={borderRadius} />\n )}\n {iconRight && <div className=\"ml-2\">{iconRight}</div>}\n </div>\n {helperText && (\n <p className={`text-xs mt-1 ${error ? 'text-lightRed-300' : 'text-gray-400'}`}>\n {helperText}\n </p>\n )}\n </div>\n );\n};\n\nexport default InputField;\n","import React, { useState } from 'react';\nimport Button from '../../../components/Button';\nimport InputField from '../../../components/Input';\nimport { StellarSmallIcon } from '../../../assets/logos';\nimport { ArrowDropUp } from '../../../assets/Icons';\n\nconst Send = () => {\n const [amount, setAmount] = useState('');\n const [address, setAddress] = useState('');\n\n const handleMaxClick = () => {\n setAmount('345.00'); // Simulating max balance selection\n };\n\n const handlePasteClick = () => {\n navigator.clipboard.readText().then((text) => setAddress(text));\n };\n\n const handleSubmit = () => {\n console.log('Sending:', { amount, address });\n };\n\n return (\n <div>\n {/* Amount Input */}\n <div className=\"mb-4\">\n <InputField\n label=\"Amount\"\n placeholder=\"0.00\"\n value={amount}\n onChange={(e) => setAmount(e.target.value)}\n customLabel={\n <span onClick={handleMaxClick} className=\"inline-flex text-primary-500 mr-2\">\n Max\n <ArrowDropUp />\n </span>\n }\n button={\n <span className=\"flex justify-between gap-1 text-black\">\n <span className=\"flex justify-center items-center\">\n <StellarSmallIcon fill=\"black\" />\n </span>\n XLM\n </span>\n }\n />\n </div>\n\n {/* Recipient Address Input */}\n <div className=\"mb-4\">\n <InputField\n label=\"To\"\n placeholder=\"Enter address\"\n value={address}\n onChange={(e) => setAddress(e.target.value)}\n button=\"Paste\"\n onButtonClick={handlePasteClick}\n />\n </div>\n\n {/* divider */}\n <div className=\"w-full my-4 mb-8\">\n <div className=\"absolute left-0 right-0 bg-primary-100 h-[0.5px]\" />\n </div>\n\n <Button size=\"large\" variant=\"outline\" state=\"enabled\" onClick={handleSubmit}>\n Send\n </Button>\n </div>\n );\n};\n\nexport default Send;\n","import React from 'react';\n\nimport { useProvider } from '../../../context/provider';\nimport { Globe, RedAlert, Upstream } from '../../../assets/Icons';\nimport getExplorerUrl from '../../../utils/stellar/getExplorerUrl';\n\ninterface TransactionProps {\n amount: string;\n date: string;\n status: 'success' | 'failed' | string;\n action: string;\n hash: string;\n}\n\nconst History = ({ amount, date, status, action, hash }: TransactionProps) => {\n const context = useProvider();\n\n const handleGoToExplorer = () => {\n const explorerUrl = getExplorerUrl(context.value.config.network, `tx/${hash}`);\n window.open(explorerUrl, '_blank', 'noopener,noreferrer');\n };\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div\n className={`w-8 h-8 flex items-center justify-center rounded-full ${\n status === 'success' ? 'bg-green-100 text-green-600' : 'bg-red-100 text-red-600'\n }`}\n >\n {status === 'success' ? <Upstream /> : <RedAlert />}\n </div>\n <div>\n <p className=\"text-xs text-gray-700 font-medium\">{action}</p>\n <p className=\"text-sm font-medium\">{amount} XLM</p>\n </div>\n </div>\n <div className=\"text-xs text-gray-500 flex items-center gap-2\">\n {date}\n <div\n className=\"flex justify-center item-center rounded-full size-8 cursor-pointer bg-gray-50\"\n title=\"View transaction details\"\n onClick={handleGoToExplorer}\n >\n <span className=\"flex justify-center items-center\">\n <Globe />\n </span>\n </div>\n </div>\n </div>\n );\n};\n\nexport default React.memo(History);\n","import React from 'react';\n\nimport Button from '../../../components/Button';\nimport History from '../../../components/Transaction/History';\n\nimport useAccount from '../../../hooks/useAccount';\nimport { useProvider } from '../../../context/provider';\nimport getExplorerUrl from '../../../utils/stellar/getExplorerUrl';\n\nconst Activity: React.FC = () => {\n const context = useProvider();\n const { account } = useAccount({\n publicKey: context.value.user.wallet?.address as string,\n passphrase: context.value.config.network,\n });\n const transactions = account?.transactions || [];\n console.log(account?.transactions);\n\n const handleGoToExplorer = () => {\n const explorerUrl = getExplorerUrl(\n context.value.config.network,\n `${context.value.user.wallet?.address}`,\n );\n\n window.open(explorerUrl, '_blank', 'noopener,noreferrer');\n };\n // Todo : fix tx values\n return (\n <div>\n <div className=\"my-4 h-[248px]\">\n {transactions.map((tx, index) => (\n <div\n key={index}\n className={`p-2 ${\n index < transactions.length - 1 ? 'border-b border-dashed border-gray-300' : ''\n }`}\n >\n <History\n amount={tx.id.slice(0, 5)}\n date={tx.created_at}\n status={tx.successful ? 'success' : 'failed'}\n action={tx.memo_type}\n hash={tx.hash}\n />\n </div>\n ))}\n </div>\n\n <Button\n state=\"enabled\"\n variant=\"outline\"\n size=\"medium\"\n className=\"mt-4\"\n onClick={handleGoToExplorer}\n >\n See all in explorer\n </Button>\n </div>\n );\n};\n\nexport default Activity;\n","import React from 'react';\n\nimport Profile from '../Pages/Profile';\nimport Waiting from '../Pages/Waiting';\nimport Successful from '../Pages/Successful';\nimport OnBoarding from '../Pages/OnBoarding';\nimport SignTransaction from '../Pages/SignTransaction';\nimport Send from '../Pages/Send';\nimport Activity from '../Pages/Activity';\n\nimport { Routes } from '../../types';\n\ninterface ModalContentProps {\n showAllWallets: boolean;\n setShowAllWallets: (show: boolean) => void;\n}\n\nexport const modalContent: Record<\n Routes,\n { title: string; Component: React.FC<ModalContentProps> }\n> = {\n [Routes.ONBOARDING]: {\n title: 'Log in or Signup',\n Component: OnBoarding,\n },\n [Routes.PROFILE]: {\n title: 'Profile',\n Component: () => <Profile />,\n },\n [Routes.WAITING]: {\n title: '',\n Component: () => <Waiting />,\n },\n [Routes.SUCCESSFUL]: {\n title: '',\n Component: () => <Successful />,\n },\n [Routes.SIGN_TRANSACTION]: {\n title: 'Confirmation',\n Component: () => <SignTransaction />,\n },\n [Routes.SEND]: {\n title: 'Send',\n Component: () => <Send />,\n },\n [Routes.ACTIVITY]: {\n title: 'Activity',\n Component: () => <Activity />,\n },\n};\n","import React, { useState } from 'react';\n\nimport Modal from '../../components/Modal';\nimport { useProvider } from '../../context/provider';\n\nimport { Routes } from '../../types';\nimport { modalContent } from './content';\nimport { MODAL_HEIGHTS } from '../../constants';\n\ninterface ConnectModalProps {\n isOpen: boolean;\n closeModal: () => void;\n}\n\nexport default function ConnectModal({ isOpen, closeModal }: ConnectModalProps) {\n const { route, setRoute } = useProvider();\n const [showAllWallets, setShowAllWallets] = useState(false);\n\n const shouldShowBackButton =\n route === Routes.WAITING ||\n (route === Routes.ONBOARDING && showAllWallets) ||\n route === Routes.ACTIVITY ||\n route === Routes.SEND;\n\n let modalIcon: 'back' | 'info' | undefined;\n\n if (shouldShowBackButton) {\n modalIcon = 'back';\n } else if (route === Routes.ONBOARDING) {\n modalIcon = 'info';\n }\n\n const handleBackNavigation = () => {\n if (route === Routes.WAITING) {\n setRoute(Routes.ONBOARDING);\n } else if (showAllWallets) {\n setShowAllWallets(false);\n } else if (route === Routes.SEND || route === Routes.ACTIVITY) {\n setRoute(Routes.PROFILE);\n }\n };\n\n const { title, Component } = modalContent[route];\n\n return (\n <Modal\n isOpen={isOpen}\n onBack={handleBackNavigation}\n onClose={closeModal}\n title={title}\n initialHeight={MODAL_HEIGHTS[route]}\n icon={modalIcon}\n closeButton={route === Routes.ONBOARDING ? false : true}\n >\n <Component showAllWallets={showAllWallets} setShowAllWallets={setShowAllWallets} />\n </Modal>\n );\n}\n","import React, { createContext, useState, useEffect, useContext } from 'react';\n\nimport { defaultAppearance } from '../constants';\nimport ConnectModal from '../containers/ConnectModal';\nimport { ContextState, IProviderConfig, ContextInterface, IAppearance, Routes } from '../types';\n\nexport const ProviderContext = createContext<ContextState | null>(null);\n\nexport const BluxProvider = ({\n config,\n isDemo,\n appearance,\n children,\n}: {\n isDemo?: boolean;\n appearance?: IAppearance;\n config: IProviderConfig;\n children: React.ReactNode;\n}) => {\n const [route, setRoute] = useState<Routes>(Routes.ONBOARDING);\n const [value, setValue] = useState<ContextInterface>({\n config,\n appearance: appearance ?? defaultAppearance,\n isDemo: isDemo ?? false,\n user: { wallet: null },\n isModalOpen: false,\n isReady: false,\n isAuthenticated: false,\n waitingStatus: 'connecting',\n signTransaction: {\n xdr: '',\n resolver: null,\n result: null,\n },\n availableWallets: [],\n });\n\n useEffect(() => {\n setValue((prev) => ({\n ...prev,\n appearance: appearance ?? defaultAppearance,\n }));\n }, [appearance]);\n\n const closeModal = () => {\n setValue((prev) => ({\n ...prev,\n isModalOpen: false,\n }));\n };\n\n return (\n <ProviderContext.Provider value={{ value, setValue, route, setRoute }}>\n {children}\n <ConnectModal isOpen={value.isModalOpen} closeModal={closeModal} />\n </ProviderContext.Provider>\n );\n};\n\nexport const useProvider = () => {\n const context = useContext(ProviderContext);\n if (!context) {\n throw new Error('useProvider must be used within a ProviderContext.');\n }\n return context;\n};\n","import { useProvider } from '../context/provider';\n\ntype UseBalanceParameters = {\n address: string;\n blockNumber?: number;\n chainId?: number;\n enabled?: boolean;\n}\n\nconst useBalance = (_params: UseBalanceParameters) => {\n const provider = useProvider()\n\n console.log(provider.value.config.network)\n \n return 2;\n};\n\nexport default useBalance;\n"],"names":["Networks","useState","useEffect","History","Send","useRef","Horizon","signTransaction","isConnected","getPublicKey","xBullWalletConnect","Transaction","useMemo","createContext","useContext"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  import './tailwind.css';
2
+ export * from './chains';
3
+ export * from './useStellar';
2
4
  export { useBlux } from './hooks/useBlux';
5
+ export { defaultAppearance } from './constants';
3
6
  export { BluxProvider } from './context/provider';