@sudobility/heavymath_ui 0.0.3

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 (201) hide show
  1. package/dist/components/dealer/DealerNFTList.d.ts +6 -0
  2. package/dist/components/dealer/DealerNFTList.d.ts.map +1 -0
  3. package/dist/components/dealer/DealerNFTList.js +46 -0
  4. package/dist/components/dealer/DealerNFTList.js.map +1 -0
  5. package/dist/components/dealer/DealerNFTSelector.d.ts +8 -0
  6. package/dist/components/dealer/DealerNFTSelector.d.ts.map +1 -0
  7. package/dist/components/dealer/DealerNFTSelector.js +10 -0
  8. package/dist/components/dealer/DealerNFTSelector.js.map +1 -0
  9. package/dist/components/dealer/UpcomingGamesWidget.d.ts +8 -0
  10. package/dist/components/dealer/UpcomingGamesWidget.d.ts.map +1 -0
  11. package/dist/components/dealer/UpcomingGamesWidget.js +68 -0
  12. package/dist/components/dealer/UpcomingGamesWidget.js.map +1 -0
  13. package/dist/components/icons/index.d.ts +2 -0
  14. package/dist/components/icons/index.d.ts.map +1 -0
  15. package/dist/components/icons/index.js +2 -0
  16. package/dist/components/icons/index.js.map +1 -0
  17. package/dist/components/market/GameMarketsSection.d.ts +16 -0
  18. package/dist/components/market/GameMarketsSection.d.ts.map +1 -0
  19. package/dist/components/market/GameMarketsSection.js +18 -0
  20. package/dist/components/market/GameMarketsSection.js.map +1 -0
  21. package/dist/components/market/InlineCreateMarketForm.d.ts +17 -0
  22. package/dist/components/market/InlineCreateMarketForm.d.ts.map +1 -0
  23. package/dist/components/market/InlineCreateMarketForm.js +274 -0
  24. package/dist/components/market/InlineCreateMarketForm.js.map +1 -0
  25. package/dist/components/market/LeagueMarketsSection.d.ts +16 -0
  26. package/dist/components/market/LeagueMarketsSection.d.ts.map +1 -0
  27. package/dist/components/market/LeagueMarketsSection.js +15 -0
  28. package/dist/components/market/LeagueMarketsSection.js.map +1 -0
  29. package/dist/components/market/MarketCard.d.ts +8 -0
  30. package/dist/components/market/MarketCard.d.ts.map +1 -0
  31. package/dist/components/market/MarketCard.js +30 -0
  32. package/dist/components/market/MarketCard.js.map +1 -0
  33. package/dist/components/market/MarketList.d.ts +9 -0
  34. package/dist/components/market/MarketList.d.ts.map +1 -0
  35. package/dist/components/market/MarketList.js +17 -0
  36. package/dist/components/market/MarketList.js.map +1 -0
  37. package/dist/components/market/MarketStatusBadge.d.ts +8 -0
  38. package/dist/components/market/MarketStatusBadge.d.ts.map +1 -0
  39. package/dist/components/market/MarketStatusBadge.js +31 -0
  40. package/dist/components/market/MarketStatusBadge.js.map +1 -0
  41. package/dist/components/market/PredictionSlider.d.ts +11 -0
  42. package/dist/components/market/PredictionSlider.d.ts.map +1 -0
  43. package/dist/components/market/PredictionSlider.js +55 -0
  44. package/dist/components/market/PredictionSlider.js.map +1 -0
  45. package/dist/components/market/SportPredictionCard.d.ts +15 -0
  46. package/dist/components/market/SportPredictionCard.d.ts.map +1 -0
  47. package/dist/components/market/SportPredictionCard.js +92 -0
  48. package/dist/components/market/SportPredictionCard.js.map +1 -0
  49. package/dist/components/market/TeamMarketsSection.d.ts +17 -0
  50. package/dist/components/market/TeamMarketsSection.d.ts.map +1 -0
  51. package/dist/components/market/TeamMarketsSection.js +8 -0
  52. package/dist/components/market/TeamMarketsSection.js.map +1 -0
  53. package/dist/components/market/TeamTournamentMarketForm.d.ts +19 -0
  54. package/dist/components/market/TeamTournamentMarketForm.d.ts.map +1 -0
  55. package/dist/components/market/TeamTournamentMarketForm.js +92 -0
  56. package/dist/components/market/TeamTournamentMarketForm.js.map +1 -0
  57. package/dist/components/market/TournamentMarketForm.d.ts +19 -0
  58. package/dist/components/market/TournamentMarketForm.d.ts.map +1 -0
  59. package/dist/components/market/TournamentMarketForm.js +86 -0
  60. package/dist/components/market/TournamentMarketForm.js.map +1 -0
  61. package/dist/components/market/index.d.ts +12 -0
  62. package/dist/components/market/index.d.ts.map +1 -0
  63. package/dist/components/market/index.js +12 -0
  64. package/dist/components/market/index.js.map +1 -0
  65. package/dist/components/sports/SeasonSelector.d.ts +10 -0
  66. package/dist/components/sports/SeasonSelector.d.ts.map +1 -0
  67. package/dist/components/sports/SeasonSelector.js +13 -0
  68. package/dist/components/sports/SeasonSelector.js.map +1 -0
  69. package/dist/components/ui/AnimatedCollapse.d.ts +9 -0
  70. package/dist/components/ui/AnimatedCollapse.d.ts.map +1 -0
  71. package/dist/components/ui/AnimatedCollapse.js +8 -0
  72. package/dist/components/ui/AnimatedCollapse.js.map +1 -0
  73. package/dist/components/ui/FavoriteStar.d.ts +13 -0
  74. package/dist/components/ui/FavoriteStar.d.ts.map +1 -0
  75. package/dist/components/ui/FavoriteStar.js +47 -0
  76. package/dist/components/ui/FavoriteStar.js.map +1 -0
  77. package/dist/components/wallet/ConnectedWalletMenu.d.ts +16 -0
  78. package/dist/components/wallet/ConnectedWalletMenu.d.ts.map +1 -0
  79. package/dist/components/wallet/ConnectedWalletMenu.js +131 -0
  80. package/dist/components/wallet/ConnectedWalletMenu.js.map +1 -0
  81. package/dist/components/wallet/DealerRoute.d.ts +6 -0
  82. package/dist/components/wallet/DealerRoute.d.ts.map +1 -0
  83. package/dist/components/wallet/DealerRoute.js +20 -0
  84. package/dist/components/wallet/DealerRoute.js.map +1 -0
  85. package/dist/components/wallet/ProtectedRoute.d.ts +8 -0
  86. package/dist/components/wallet/ProtectedRoute.d.ts.map +1 -0
  87. package/dist/components/wallet/ProtectedRoute.js +17 -0
  88. package/dist/components/wallet/ProtectedRoute.js.map +1 -0
  89. package/dist/components/wallet/WalletConnectionModal.d.ts +7 -0
  90. package/dist/components/wallet/WalletConnectionModal.d.ts.map +1 -0
  91. package/dist/components/wallet/WalletConnectionModal.js +334 -0
  92. package/dist/components/wallet/WalletConnectionModal.js.map +1 -0
  93. package/dist/config/app.d.ts +24 -0
  94. package/dist/config/app.d.ts.map +1 -0
  95. package/dist/config/app.js +18 -0
  96. package/dist/config/app.js.map +1 -0
  97. package/dist/config/chains.d.ts +1070 -0
  98. package/dist/config/chains.d.ts.map +1 -0
  99. package/dist/config/chains.js +28 -0
  100. package/dist/config/chains.js.map +1 -0
  101. package/dist/config/contracts.d.ts +15 -0
  102. package/dist/config/contracts.d.ts.map +1 -0
  103. package/dist/config/contracts.js +62 -0
  104. package/dist/config/contracts.js.map +1 -0
  105. package/dist/config/sportCodes.d.ts +58 -0
  106. package/dist/config/sportCodes.d.ts.map +1 -0
  107. package/dist/config/sportCodes.js +78 -0
  108. package/dist/config/sportCodes.js.map +1 -0
  109. package/dist/context/IndexerContext.d.ts +34 -0
  110. package/dist/context/IndexerContext.d.ts.map +1 -0
  111. package/dist/context/IndexerContext.js +40 -0
  112. package/dist/context/IndexerContext.js.map +1 -0
  113. package/dist/context/WalletAuthContext.d.ts +26 -0
  114. package/dist/context/WalletAuthContext.d.ts.map +1 -0
  115. package/dist/context/WalletAuthContext.js +148 -0
  116. package/dist/context/WalletAuthContext.js.map +1 -0
  117. package/dist/hooks/index.d.ts +13 -0
  118. package/dist/hooks/index.d.ts.map +1 -0
  119. package/dist/hooks/index.js +13 -0
  120. package/dist/hooks/index.js.map +1 -0
  121. package/dist/hooks/useContractWithToast.d.ts +1348 -0
  122. package/dist/hooks/useContractWithToast.d.ts.map +1 -0
  123. package/dist/hooks/useContractWithToast.js +395 -0
  124. package/dist/hooks/useContractWithToast.js.map +1 -0
  125. package/dist/hooks/useDealerNFT.d.ts +71 -0
  126. package/dist/hooks/useDealerNFT.d.ts.map +1 -0
  127. package/dist/hooks/useDealerNFT.js +127 -0
  128. package/dist/hooks/useDealerNFT.js.map +1 -0
  129. package/dist/hooks/useDealerPermission.d.ts +11 -0
  130. package/dist/hooks/useDealerPermission.d.ts.map +1 -0
  131. package/dist/hooks/useDealerPermission.js +48 -0
  132. package/dist/hooks/useDealerPermission.js.map +1 -0
  133. package/dist/hooks/useFilteredSportsData.d.ts +20 -0
  134. package/dist/hooks/useFilteredSportsData.d.ts.map +1 -0
  135. package/dist/hooks/useFilteredSportsData.js +52 -0
  136. package/dist/hooks/useFilteredSportsData.js.map +1 -0
  137. package/dist/hooks/useGameMarkets.d.ts +23 -0
  138. package/dist/hooks/useGameMarkets.d.ts.map +1 -0
  139. package/dist/hooks/useGameMarkets.js +50 -0
  140. package/dist/hooks/useGameMarkets.js.map +1 -0
  141. package/dist/hooks/useLeagueMarkets.d.ts +11 -0
  142. package/dist/hooks/useLeagueMarkets.d.ts.map +1 -0
  143. package/dist/hooks/useLeagueMarkets.js +38 -0
  144. package/dist/hooks/useLeagueMarkets.js.map +1 -0
  145. package/dist/hooks/useMarketContract.d.ts +219 -0
  146. package/dist/hooks/useMarketContract.d.ts.map +1 -0
  147. package/dist/hooks/useMarketContract.js +790 -0
  148. package/dist/hooks/useMarketContract.js.map +1 -0
  149. package/dist/hooks/useToastActions.d.ts +13 -0
  150. package/dist/hooks/useToastActions.d.ts.map +1 -0
  151. package/dist/hooks/useToastActions.js +40 -0
  152. package/dist/hooks/useToastActions.js.map +1 -0
  153. package/dist/index.d.ts +43 -0
  154. package/dist/index.d.ts.map +1 -0
  155. package/dist/index.js +47 -0
  156. package/dist/index.js.map +1 -0
  157. package/dist/lib/evmClient.d.ts +299 -0
  158. package/dist/lib/evmClient.d.ts.map +1 -0
  159. package/dist/lib/evmClient.js +691 -0
  160. package/dist/lib/evmClient.js.map +1 -0
  161. package/dist/types/auth.d.ts +44 -0
  162. package/dist/types/auth.d.ts.map +1 -0
  163. package/dist/types/auth.js +17 -0
  164. package/dist/types/auth.js.map +1 -0
  165. package/dist/types/dealer.d.ts +59 -0
  166. package/dist/types/dealer.d.ts.map +1 -0
  167. package/dist/types/dealer.js +31 -0
  168. package/dist/types/dealer.js.map +1 -0
  169. package/dist/types/market.d.ts +79 -0
  170. package/dist/types/market.d.ts.map +1 -0
  171. package/dist/types/market.js +47 -0
  172. package/dist/types/market.js.map +1 -0
  173. package/dist/utils/conditionData.d.ts +8 -0
  174. package/dist/utils/conditionData.d.ts.map +1 -0
  175. package/dist/utils/conditionData.js +7 -0
  176. package/dist/utils/conditionData.js.map +1 -0
  177. package/dist/utils/datetime.d.ts +3 -0
  178. package/dist/utils/datetime.d.ts.map +1 -0
  179. package/dist/utils/datetime.js +13 -0
  180. package/dist/utils/datetime.js.map +1 -0
  181. package/dist/utils/format.d.ts +79 -0
  182. package/dist/utils/format.d.ts.map +1 -0
  183. package/dist/utils/format.js +144 -0
  184. package/dist/utils/format.js.map +1 -0
  185. package/dist/utils/marketDisplay.d.ts +28 -0
  186. package/dist/utils/marketDisplay.d.ts.map +1 -0
  187. package/dist/utils/marketDisplay.js +45 -0
  188. package/dist/utils/marketDisplay.js.map +1 -0
  189. package/dist/utils/marketId.d.ts +8 -0
  190. package/dist/utils/marketId.d.ts.map +1 -0
  191. package/dist/utils/marketId.js +12 -0
  192. package/dist/utils/marketId.js.map +1 -0
  193. package/dist/utils/oracleId.d.ts +33 -0
  194. package/dist/utils/oracleId.d.ts.map +1 -0
  195. package/dist/utils/oracleId.js +62 -0
  196. package/dist/utils/oracleId.js.map +1 -0
  197. package/dist/utils/sportsSeason.d.ts +10 -0
  198. package/dist/utils/sportsSeason.d.ts.map +1 -0
  199. package/dist/utils/sportsSeason.js +39 -0
  200. package/dist/utils/sportsSeason.js.map +1 -0
  201. package/package.json +85 -0
@@ -0,0 +1,334 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback, useMemo, useRef } from 'react';
3
+ import { useNavigate, useParams } from 'react-router-dom';
4
+ import { useTranslation } from 'react-i18next';
5
+ import { useAccount, useConnect, useDisconnect } from 'wagmi';
6
+ import { ChainType } from '@sudobility/types';
7
+ import { Modal, Logo } from '@sudobility/components';
8
+ import { WalletIcon, WalletConnectScreen, WalletVerifyScreen, } from '@sudobility/web3-components';
9
+ import { useAuth } from '../../context/WalletAuthContext';
10
+ import { AuthStatus } from '../../types/auth';
11
+ import { getAppConfig } from '../../config/app';
12
+ // Detect if browser supports extensions (Safari doesn't, Chrome/Firefox/Edge do)
13
+ const supportsExtensions = () => {
14
+ if (typeof navigator === 'undefined')
15
+ return true; // Assume support on server
16
+ const userAgent = navigator.userAgent.toLowerCase();
17
+ const isMobile = /android|iphone|ipad|mobile|tablet/i.test(userAgent);
18
+ // Mobile browsers don't support extensions (except Kiwi/Firefox mobile, but we'll simplify)
19
+ if (isMobile)
20
+ return false;
21
+ // Safari doesn't support standard Web Extensions API that crypto wallets use
22
+ const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
23
+ return !isSafari;
24
+ };
25
+ // Detect if desktop browser has a built-in wallet (Brave, Opera)
26
+ const hasDesktopBrowserWallet = () => {
27
+ if (typeof navigator === 'undefined' || typeof window === 'undefined')
28
+ return false;
29
+ const userAgent = navigator.userAgent.toLowerCase();
30
+ const isMobile = /android|iphone|ipad|mobile|tablet/i.test(userAgent);
31
+ // Only check on desktop
32
+ if (isMobile)
33
+ return false;
34
+ const windowObj = window;
35
+ // Check for Brave Wallet
36
+ const hasBraveWallet = !!(windowObj.ethereum?.isBraveWallet ||
37
+ navigator.brave?.isBrave);
38
+ // Check for Opera Wallet
39
+ const hasOperaWallet = !!(windowObj.ethereum?.isOpera ||
40
+ userAgent.includes('opr/') ||
41
+ userAgent.includes('opera'));
42
+ return hasBraveWallet || hasOperaWallet;
43
+ };
44
+ // Helper to get connector display name
45
+ const getConnectorName = (connector) => {
46
+ if (connector.id === 'metaMask' || connector.id === 'io.metamask') {
47
+ return 'MetaMask';
48
+ }
49
+ if (connector.id === 'coinbaseWalletSDK' ||
50
+ connector.id === 'coinbaseWallet') {
51
+ return 'Coinbase Wallet';
52
+ }
53
+ if (connector.id === 'walletConnect') {
54
+ return 'WalletConnect';
55
+ }
56
+ if (connector.id === 'injected') {
57
+ return 'Browser Wallet';
58
+ }
59
+ if (connector.name === 'MetaMask')
60
+ return 'MetaMask';
61
+ if (connector.name === 'WalletConnect')
62
+ return 'WalletConnect';
63
+ if (connector.name === 'Coinbase Wallet')
64
+ return 'Coinbase Wallet';
65
+ if (connector.name === 'Injected' || connector.name === 'Browser Wallet') {
66
+ return 'Browser Wallet';
67
+ }
68
+ return connector.name || 'Unknown Wallet';
69
+ };
70
+ export function WalletConnectionModal({ isOpen, onClose, }) {
71
+ const { lang } = useParams();
72
+ const navigate = useNavigate();
73
+ const { t } = useTranslation('connectWalletPage');
74
+ const { address, status, signVerificationMessage } = useAuth();
75
+ const { connectors, connect } = useConnect();
76
+ const { connector: activeConnector } = useAccount();
77
+ const { disconnect: wagmiDisconnect } = useDisconnect();
78
+ const [step, setStep] = useState('connect');
79
+ const [error, setError] = useState(null);
80
+ const [isSigning, setIsSigning] = useState(false);
81
+ const [connectingWallet, setConnectingWallet] = useState(null);
82
+ const [connectedWalletProvider, setConnectedWalletProvider] = useState(null);
83
+ const [activeTab, setActiveTab] = useState('ethereum');
84
+ const [browserSupportsExtensions] = useState(supportsExtensions);
85
+ const [hasDesktopWallet] = useState(hasDesktopBrowserWallet);
86
+ // Reset state when modal closes
87
+ useEffect(() => {
88
+ if (!isOpen) {
89
+ setStep('connect');
90
+ setError(null);
91
+ setIsSigning(false);
92
+ setConnectingWallet(null);
93
+ setConnectedWalletProvider(null);
94
+ setActiveTab('ethereum');
95
+ }
96
+ }, [isOpen]);
97
+ // Handle navigation based on status
98
+ useEffect(() => {
99
+ if (!isOpen)
100
+ return;
101
+ if (status === AuthStatus.Verified) {
102
+ onClose();
103
+ navigate(`/${lang}/wallet`);
104
+ }
105
+ else if (status === AuthStatus.Connected && step !== 'sign') {
106
+ setStep('sign');
107
+ if (activeConnector) {
108
+ setConnectedWalletProvider(getConnectorName(activeConnector));
109
+ }
110
+ setConnectingWallet(null);
111
+ }
112
+ else if (status === AuthStatus.Disconnected && step !== 'connect') {
113
+ setStep('connect');
114
+ setConnectingWallet(null);
115
+ setConnectedWalletProvider(null);
116
+ }
117
+ }, [status, navigate, step, lang, activeConnector, isOpen, onClose]);
118
+ // Reset connection
119
+ const resetConnection = useCallback(async () => {
120
+ try {
121
+ await wagmiDisconnect();
122
+ setStep('connect');
123
+ setError(null);
124
+ setIsSigning(false);
125
+ setConnectingWallet(null);
126
+ setConnectedWalletProvider(null);
127
+ }
128
+ catch (err) {
129
+ console.error('Error resetting connection:', err);
130
+ setStep('connect');
131
+ setError(null);
132
+ setConnectingWallet(null);
133
+ setConnectedWalletProvider(null);
134
+ }
135
+ }, [wagmiDisconnect]);
136
+ // Store connectors in a ref to avoid dependency issues
137
+ const connectorsRef = useRef(connectors);
138
+ useEffect(() => {
139
+ connectorsRef.current = connectors;
140
+ });
141
+ // Handle wallet selection - stable reference
142
+ const handleWalletSelect = useCallback(async (walletName, connectorIndex) => {
143
+ setError(null);
144
+ setConnectingWallet(walletName);
145
+ try {
146
+ const connector = connectorsRef.current[connectorIndex];
147
+ await connect({ connector });
148
+ }
149
+ catch (err) {
150
+ const errorMessage = err instanceof Error ? err.message.toLowerCase() : '';
151
+ const isCancellation = errorMessage.includes('user rejected') ||
152
+ errorMessage.includes('user denied') ||
153
+ errorMessage.includes('cancelled') ||
154
+ errorMessage.includes('canceled');
155
+ if (isCancellation) {
156
+ setConnectingWallet(null);
157
+ setError(null);
158
+ }
159
+ else {
160
+ console.error('Failed to connect wallet:', err);
161
+ setConnectingWallet(null);
162
+ setError(t('errors.failedToConnect', 'Failed to connect wallet. Please try again.'));
163
+ }
164
+ }
165
+ }, [connect, t]);
166
+ // Build stable wallet options - only rebuild when connectors array identity changes
167
+ const walletOptionsBase = useMemo(() => {
168
+ const seenWallets = new Set();
169
+ const uniqueConnectors = connectors.filter(connector => {
170
+ const walletName = getConnectorName(connector);
171
+ // Only show Browser Wallet on desktop when browser has built-in wallet
172
+ if (walletName === 'Browser Wallet') {
173
+ if (!hasDesktopWallet) {
174
+ return false;
175
+ }
176
+ }
177
+ // If browser doesn't support extensions, only show WalletConnect
178
+ if (!browserSupportsExtensions && walletName !== 'WalletConnect') {
179
+ return false;
180
+ }
181
+ // Skip duplicates
182
+ if (seenWallets.has(walletName))
183
+ return false;
184
+ seenWallets.add(walletName);
185
+ return true;
186
+ });
187
+ // Sort: Browser Wallet first (if desktop), MetaMask second, Coinbase third, WalletConnect last
188
+ const sortedConnectors = [...uniqueConnectors].sort((a, b) => {
189
+ const nameA = getConnectorName(a);
190
+ const nameB = getConnectorName(b);
191
+ // Browser Wallet always first (only on desktop when detected)
192
+ if (hasDesktopWallet) {
193
+ if (nameA === 'Browser Wallet')
194
+ return -1;
195
+ if (nameB === 'Browser Wallet')
196
+ return 1;
197
+ }
198
+ // MetaMask second
199
+ if (nameA === 'MetaMask')
200
+ return -1;
201
+ if (nameB === 'MetaMask')
202
+ return 1;
203
+ // Coinbase Wallet third
204
+ if (nameA === 'Coinbase Wallet')
205
+ return -1;
206
+ if (nameB === 'Coinbase Wallet')
207
+ return 1;
208
+ // WalletConnect always last
209
+ if (nameA === 'WalletConnect')
210
+ return 1;
211
+ if (nameB === 'WalletConnect')
212
+ return -1;
213
+ return 0;
214
+ });
215
+ return sortedConnectors.map(connector => {
216
+ const walletName = getConnectorName(connector);
217
+ const originalIndex = connectors.indexOf(connector);
218
+ return {
219
+ id: connector.id,
220
+ name: walletName,
221
+ available: true,
222
+ chainType: 'evm',
223
+ connector,
224
+ originalIndex,
225
+ };
226
+ });
227
+ }, [connectors, hasDesktopWallet, browserSupportsExtensions]);
228
+ // Build final wallet options with connecting state and click handlers
229
+ const evmWallets = useMemo(() => {
230
+ return walletOptionsBase.map(wallet => ({
231
+ id: wallet.id,
232
+ name: wallet.name,
233
+ available: wallet.available,
234
+ connecting: connectingWallet === wallet.name,
235
+ chainType: wallet.chainType,
236
+ connector: wallet.connector,
237
+ onClick: () => handleWalletSelect(wallet.name, wallet.originalIndex),
238
+ }));
239
+ }, [walletOptionsBase, connectingWallet, handleWalletSelect]);
240
+ // Build Solana wallet options
241
+ const solanaWallets = useMemo(() => [
242
+ {
243
+ id: 'phantom',
244
+ name: t('walletNames.phantom', 'Phantom'),
245
+ available: true,
246
+ connecting: connectingWallet === 'Phantom',
247
+ chainType: 'solana',
248
+ onClick: () => {
249
+ // Solana wallet connection not implemented yet
250
+ setError(t('errors.solanaNotSupported', 'Solana wallet connection coming soon'));
251
+ },
252
+ },
253
+ {
254
+ id: 'solflare',
255
+ name: t('walletNames.solflare', 'Solflare'),
256
+ available: true,
257
+ connecting: connectingWallet === 'Solflare',
258
+ chainType: 'solana',
259
+ onClick: () => {
260
+ // Solana wallet connection not implemented yet
261
+ setError(t('errors.solanaNotSupported', 'Solana wallet connection coming soon'));
262
+ },
263
+ },
264
+ ], [t, connectingWallet]);
265
+ // Handle sign message
266
+ const handleSignMessage = async () => {
267
+ setIsSigning(true);
268
+ setError(null);
269
+ try {
270
+ const signed = await signVerificationMessage();
271
+ if (signed) {
272
+ onClose();
273
+ navigate(`/${lang}/wallet`);
274
+ }
275
+ else {
276
+ setError(t('errors.defaultSigningError', 'Failed to sign message. Please try again.'));
277
+ }
278
+ }
279
+ catch (err) {
280
+ console.error('Signing error:', err);
281
+ const errorString = err instanceof Error ? err.message.toLowerCase() : '';
282
+ if (errorString.includes('rejected') ||
283
+ errorString.includes('cancelled') ||
284
+ errorString.includes('canceled') ||
285
+ errorString.includes('denied')) {
286
+ setError(t('errors.signingCanceled', 'Signing was canceled. Please try again.'));
287
+ }
288
+ else {
289
+ setError(t('errors.defaultSigningError', 'Failed to sign message. Please try again.'));
290
+ }
291
+ }
292
+ finally {
293
+ setIsSigning(false);
294
+ }
295
+ };
296
+ const handleClose = () => {
297
+ // If connected but not verified, disconnect before closing
298
+ if (status === AuthStatus.Connected) {
299
+ wagmiDisconnect();
300
+ }
301
+ onClose();
302
+ };
303
+ return (_jsx(Modal, { isOpen: isOpen, onClose: handleClose, size: 'medium', variant: 'web3wallet', showCloseButton: true, closeOnOverlayClick: true, closeOnEscape: true, children: _jsxs("div", { className: 'p-6', children: [_jsxs("div", { className: 'text-center mb-8', children: [_jsx("div", { className: 'flex justify-center mb-6', children: _jsx(Logo, { size: 'lg', logoText: getAppConfig().name }) }), _jsxs("h1", { className: 'text-2xl font-bold text-gray-900 dark:text-white mb-2 flex items-center justify-center gap-3', children: [step === 'sign' && connectedWalletProvider && activeConnector && (_jsx(WalletIcon, { wallet: connectedWalletProvider, connector: activeConnector, className: 'w-8 h-8' })), step === 'connect'
304
+ ? t('pageTitle.connect', 'Connect Your Wallet')
305
+ : t('pageTitle.verify', 'Verify Your Wallet')] }), _jsx("p", { className: 'text-gray-600 dark:text-gray-400', children: step === 'connect'
306
+ ? t('pageDescription.connect', 'Choose your preferred wallet to connect')
307
+ : t('pageDescription.verify', 'Sign the message to authenticate your identity') })] }), step === 'connect' ? (_jsx(WalletConnectScreen, { evmWallets: evmWallets, solanaWallets: solanaWallets, activeTab: activeTab, onTabChange: setActiveTab, connectingWallet: connectingWallet, isAutoConnecting: false, error: error, browserSupportsExtensions: browserSupportsExtensions, labels: {
308
+ ethereum: t('tabLabels.ethereum', 'Ethereum'),
309
+ solana: t('tabLabels.solana', 'Solana'),
310
+ available: t('walletStatus.available', 'Available'),
311
+ notAvailable: t('walletStatus.notAvailable', 'Not Available'),
312
+ noWalletText: t('noWalletLinks.noWallet', "Don't have a wallet?"),
313
+ installMetaMask: t('noWalletLinks.installMetaMask', 'Install MetaMask'),
314
+ installPhantom: t('noWalletLinks.installPhantom', 'Install Phantom'),
315
+ autoConnectTitle: t('walletBrowserAutoConnect.title', 'Connecting to your wallet...'),
316
+ autoConnectDescription: t('walletBrowserAutoConnect.description', 'We detected you are using a wallet browser. Automatically connecting...'),
317
+ extensionsNotSupported: t('browserCompatibility.extensionsNotSupported', 'Solana wallets require browser extension support'),
318
+ useChromeForSolana: t('browserCompatibility.useChromeForSolana', 'Please use Chrome, Firefox, or Edge to connect Solana wallets'),
319
+ } })) : (_jsx(WalletVerifyScreen, { walletAddress: address || '', chainType: ChainType.EVM, walletProvider: connectedWalletProvider || undefined, walletConnector: activeConnector, isSigning: isSigning, error: error, onSign: handleSignMessage, onUseDifferentWallet: resetConnection, labels: {
320
+ pageTitle: t('pageTitle.verify', 'Verify Your Wallet'),
321
+ pageDescription: t('pageDescription.verify', 'Sign the message to authenticate your identity'),
322
+ connectedWalletLabel: t('verificationSection.connectedWalletLabel', 'Connected wallet:'),
323
+ ethereumChainLabel: t('verificationSection.ethereumChainLabel', 'Ethereum'),
324
+ solanaChainLabel: t('verificationSection.solanaChainLabel', 'Solana'),
325
+ signInEthereumTitle: t('verificationSection.signInEthereumTitle', 'Sign-In with Ethereum'),
326
+ signInEthereumDescription: t('verificationSection.signInEthereumDescription', "You'll be asked to sign a message to prove ownership of your wallet. This is gasless and secure."),
327
+ signInSolanaTitle: t('verificationSection.signInSolanaTitle', 'Sign-In with Solana'),
328
+ signInSolanaDescription: t('verificationSection.signInSolanaDescription', "You'll be asked to sign a message to prove ownership of your wallet. This is gasless and secure."),
329
+ signMessageButton: t('verificationSection.signMessageButton', 'Sign Message'),
330
+ signingButton: t('verificationSection.signingButton', 'Signing...'),
331
+ useDifferentWallet: t('verificationSection.useDifferentWallet', 'Use a different wallet'),
332
+ } }))] }) }));
333
+ }
334
+ //# sourceMappingURL=WalletConnectionModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectionModal.js","sourceRoot":"","sources":["../../../src/components/wallet/WalletConnectionModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * App configuration interface that consuming apps must provide.
3
+ * This decouples the UI library from specific app configs.
4
+ */
5
+ export interface HeavymathAppConfig {
6
+ name: string;
7
+ indexerUrl: string;
8
+ websocketUrl?: string;
9
+ defaultChainId: number;
10
+ alchemyApiKey?: string;
11
+ walletConnectProjectId?: string;
12
+ devMode?: boolean;
13
+ testMode?: boolean;
14
+ }
15
+ /**
16
+ * Initialize the app config. Must be called before using any components
17
+ * that depend on config (contexts, hooks, etc.).
18
+ */
19
+ export declare function initHeavymathUI(config: HeavymathAppConfig): void;
20
+ /**
21
+ * Get the current app config. Throws if not initialized.
22
+ */
23
+ export declare function getAppConfig(): HeavymathAppConfig;
24
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAOjD"}
@@ -0,0 +1,18 @@
1
+ let _appConfig = null;
2
+ /**
3
+ * Initialize the app config. Must be called before using any components
4
+ * that depend on config (contexts, hooks, etc.).
5
+ */
6
+ export function initHeavymathUI(config) {
7
+ _appConfig = config;
8
+ }
9
+ /**
10
+ * Get the current app config. Throws if not initialized.
11
+ */
12
+ export function getAppConfig() {
13
+ if (!_appConfig) {
14
+ throw new Error('heavymath_ui not initialized. Call initHeavymathUI() first.');
15
+ }
16
+ return _appConfig;
17
+ }
18
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"AAeA,IAAI,UAAU,GAA8B,IAAI,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,UAAU,GAAG,MAAM,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}