@talken/talkenkit 2.4.22 → 2.4.23

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 (185) hide show
  1. package/README.md +159 -325
  2. package/dist/Arc-R3PUWRPJ.js +7 -0
  3. package/dist/Brave-24BM36UM.js +7 -0
  4. package/dist/Browser-4R4QKTV2.js +7 -0
  5. package/dist/Chrome-TLI42HDP.js +7 -0
  6. package/dist/Edge-AZ34LAFM.js +7 -0
  7. package/dist/Firefox-ZDK7RHKK.js +7 -0
  8. package/dist/Linux-VYP66PDO.js +7 -0
  9. package/dist/Macos-5QL4JBJE.js +7 -0
  10. package/dist/Opera-BKMCKUXC.js +7 -0
  11. package/dist/Safari-PXQIVS6N.js +7 -0
  12. package/dist/Windows-GTAT3OTE.js +7 -0
  13. package/dist/abcWallet-AYWSIGAG.js +7 -0
  14. package/dist/abcWallet-O4GH6RHS.js +181 -0
  15. package/dist/ar_AR-ZRPPM56D.js +7 -0
  16. package/dist/arbitrum-IA4OWRTN.js +7 -0
  17. package/dist/argentWallet-M6SBG4CU.js +7 -0
  18. package/dist/assets-NU2OP443.js +7 -0
  19. package/dist/avalanche-MXEFEDSW.js +7 -0
  20. package/dist/base-Z4LFBE5D.js +7 -0
  21. package/dist/berasigWallet-NNBFDHFK.js +7 -0
  22. package/dist/bestWallet-XRIABRUE.js +7 -0
  23. package/dist/bifrostWallet-ORF3DABG.js +7 -0
  24. package/dist/binanceWallet-BCWLBY3Q.js +7 -0
  25. package/dist/bitgetWallet-CLYTW54T.js +7 -0
  26. package/dist/bitskiWallet-X5NWL5CE.js +7 -0
  27. package/dist/bitverseWallet-6SGDFATJ.js +7 -0
  28. package/dist/blast-TN2WIMWF.js +7 -0
  29. package/dist/bloomWallet-MXLAOWS6.js +7 -0
  30. package/dist/braveWallet-6QAF4GDN.js +7 -0
  31. package/dist/bsc-RVE67I5L.js +7 -0
  32. package/dist/bybitWallet-GR4PFINZ.js +7 -0
  33. package/dist/celo-E6XU57FO.js +7 -0
  34. package/dist/chunk-N7AWNQBH.js +5319 -0
  35. package/dist/clvWallet-ZIMSRU5J.js +7 -0
  36. package/dist/coin98Wallet-RFXRNVWP.js +7 -0
  37. package/dist/coinbaseWallet-WWX6LF36.js +7 -0
  38. package/dist/compassWallet-3LBTWCKI.js +7 -0
  39. package/dist/connect-MR6XDLIE.js +7 -0
  40. package/dist/coreWallet-52SXITOT.js +7 -0
  41. package/dist/create-X4WFHLCW.js +7 -0
  42. package/dist/cronos-ROYR77VZ.js +7 -0
  43. package/dist/dawnWallet-ONVAA3S4.js +7 -0
  44. package/dist/de_DE-GYZFZXWH.js +7 -0
  45. package/dist/desigWallet-WJMSF3PS.js +7 -0
  46. package/dist/en_US-AV7YDYDW.js +7 -0
  47. package/dist/enkryptWallet-FR4QCDFK.js +7 -0
  48. package/dist/es_419-OGVOQEFZ.js +7 -0
  49. package/dist/ethereum-RFBAMUVK.js +7 -0
  50. package/dist/flow-NBCRNYVF.js +7 -0
  51. package/dist/foxWallet-5ESSNXJV.js +7 -0
  52. package/dist/fr_FR-Q5QBQBX2.js +1355 -0
  53. package/dist/frameWallet-FDBUY4AA.js +7 -0
  54. package/dist/frontierWallet-HNIG7QYQ.js +7 -0
  55. package/dist/gateWallet-ZVEZILRP.js +7 -0
  56. package/dist/gnosis-T7U5EW2Q.js +7 -0
  57. package/dist/hardhat-NEEC6JX7.js +7 -0
  58. package/dist/hi_IN-7I7LRHGW.js +7 -0
  59. package/dist/id_ID-ZMGZ2JFV.js +7 -0
  60. package/dist/imTokenWallet-N2MYFADO.js +7 -0
  61. package/dist/index.d.ts +3 -3
  62. package/dist/index.js +168 -243
  63. package/dist/injectedWallet-H7LYKTQS.js +7 -0
  64. package/dist/iopayWallet-IJHJ7NYT.js +7 -0
  65. package/dist/ja_JP-NYBCHQTZ.js +7 -0
  66. package/dist/kaia-A33DVQBT.js +7 -0
  67. package/dist/kaiaWallet-5K6WZ3AH.js +7 -0
  68. package/dist/kaikasWallet-F6Z6IPWN.js +7 -0
  69. package/dist/ko_KR-67WE736M.js +7 -0
  70. package/dist/krakenWallet-DAOXUKWO.js +7 -0
  71. package/dist/kresusWallet-AUJWLAOF.js +7 -0
  72. package/dist/ledgerWallet-KZKJ5Q2S.js +7 -0
  73. package/dist/login-CWDTIDNK.js +7 -0
  74. package/dist/magicEden-PKT2ZXEQ.js +7 -0
  75. package/dist/manta-5V6W5D7G.js +7 -0
  76. package/dist/mantle-KBL3OIYT.js +7 -0
  77. package/dist/metaMaskWallet-YFHEHW7V.js +7 -0
  78. package/dist/mewWallet-6V4UZOQC.js +7 -0
  79. package/dist/ms_MY-65AJIBUS.js +7 -0
  80. package/dist/nestWallet-BFZZZYLV.js +7 -0
  81. package/dist/oktoWallet-GJFOPPEA.js +7 -0
  82. package/dist/okxWallet-GJMKZIND.js +7 -0
  83. package/dist/omniWallet-DEYUMT4A.js +7 -0
  84. package/dist/oneInchWallet-D7BQOLOO.js +7 -0
  85. package/dist/oneKeyWallet-4MM7G2SZ.js +7 -0
  86. package/dist/optimism-YWJ3IQHA.js +7 -0
  87. package/dist/paraSwapWallet-TMV5MUEF.js +7 -0
  88. package/dist/phantomWallet-IPGVKCAB.js +7 -0
  89. package/dist/polygon-WWEUOMKW.js +7 -0
  90. package/dist/pt_BR-DMJANC65.js +7 -0
  91. package/dist/rabbyWallet-FLVUU35F.js +7 -0
  92. package/dist/rainbowWallet-2SR6TVBF.js +7 -0
  93. package/dist/ramperWallet-AF5AKK2S.js +7 -0
  94. package/dist/refresh-HJGJRASX.js +7 -0
  95. package/dist/ronin-PNHX5V6H.js +7 -0
  96. package/dist/roninWallet-SAB5ESVK.js +7 -0
  97. package/dist/ru_RU-WER7RQ6A.js +1355 -0
  98. package/dist/safeWallet-VUYZPLY4.js +7 -0
  99. package/dist/safeheronWallet-6JG77AKC.js +7 -0
  100. package/dist/safepalWallet-KQJ4OCNH.js +7 -0
  101. package/dist/scan-DEOT2M37.js +7 -0
  102. package/dist/scroll-NMZWDUQH.js +7 -0
  103. package/dist/seifWallet-QATOS33A.js +7 -0
  104. package/dist/services/AbcAuthService.d.ts +11 -12
  105. package/dist/sign-A7IJEUT5.js +7 -0
  106. package/dist/subWallet-LOZELSAO.js +7 -0
  107. package/dist/tahoWallet-L6KHUNKD.js +7 -0
  108. package/dist/talismanWallet-BLXUHONV.js +7 -0
  109. package/dist/th_TH-JOSHEZ6D.js +1355 -0
  110. package/dist/themes/baseTheme.js +0 -1
  111. package/dist/themes/darkTheme.js +0 -1
  112. package/dist/themes/lightTheme.js +0 -1
  113. package/dist/themes/midnightTheme.js +0 -1
  114. package/dist/tokenPocketWallet-BVMBOYTC.js +7 -0
  115. package/dist/tokenaryWallet-Z2IGVXSA.js +7 -0
  116. package/dist/tr_TR-EAMG2YPO.js +1355 -0
  117. package/dist/trustWallet-E2GVGE4U.js +7 -0
  118. package/dist/uk_UA-GO2TRVWA.js +1355 -0
  119. package/dist/uniswapWallet-T26M44R7.js +7 -0
  120. package/dist/utils/apiClientFactory.d.ts +1 -6
  121. package/dist/utils/embeddedTxAdapter.d.ts +54 -0
  122. package/dist/valoraWallet-RX3ONO47.js +7 -0
  123. package/dist/vi_VN-5HLLSOJA.js +7 -0
  124. package/dist/walletConnectWallet-FNSU4KNU.js +7 -0
  125. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.d.ts +0 -3
  126. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
  127. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +1 -3
  128. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  129. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +7 -6
  130. package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +3 -4
  131. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -4
  132. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +3 -3
  133. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
  134. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +4 -6
  135. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +37 -44
  136. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +1 -2
  137. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +1 -1
  138. package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +1 -3
  139. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +8 -8
  140. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.d.ts +1 -2
  141. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.js +1 -5
  142. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +2 -2
  143. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiSingleton.js +4 -9
  144. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.d.ts +2 -4
  145. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +1 -5
  146. package/dist/wallets/walletConnectors/abcWallet/api/index.d.ts +3 -68
  147. package/dist/wallets/walletConnectors/abcWallet/api/index.js +6 -41
  148. package/dist/wallets/walletConnectors/abcWallet/constants.d.ts +1 -38
  149. package/dist/wallets/walletConnectors/abcWallet/constants.js +1 -7
  150. package/dist/wallets/walletConnectors/abcWallet/index.d.ts +3 -3
  151. package/dist/wallets/walletConnectors/abcWallet/index.js +33 -45
  152. package/dist/wallets/walletConnectors/abcWallet/resolveTalkenApiUrl.d.ts +1 -0
  153. package/dist/wallets/walletConnectors/abcWallet/resolveTalkenApiUrl.js +7 -0
  154. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +4 -4
  155. package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
  156. package/dist/wallets/walletConnectors/chunk-35RTM3PL.js +1 -0
  157. package/dist/wallets/walletConnectors/chunk-AFM6KHDP.js +314 -0
  158. package/dist/wallets/walletConnectors/chunk-AXMN57KP.js +1387 -0
  159. package/dist/wallets/walletConnectors/chunk-BYZ5QLMX.js +436 -0
  160. package/dist/wallets/walletConnectors/chunk-CC6GTQBN.js +148 -0
  161. package/dist/wallets/walletConnectors/chunk-FAVNVTIA.js +479 -0
  162. package/dist/wallets/walletConnectors/chunk-GFWUFYT2.js +16 -0
  163. package/dist/wallets/walletConnectors/chunk-QP36UXD5.js +54 -0
  164. package/dist/wallets/walletConnectors/chunk-R6ZE7JAZ.js +15 -0
  165. package/dist/wallets/walletConnectors/chunk-RIJTOH57.js +771 -0
  166. package/dist/wallets/walletConnectors/chunk-RY43MKRA.js +552 -0
  167. package/dist/wallets/walletConnectors/chunk-TQXCRSMS.js +199 -0
  168. package/dist/wallets/walletConnectors/chunk-URFU24K7.js +273 -0
  169. package/dist/wallets/walletConnectors/chunk-USS5CPXQ.js +54 -0
  170. package/dist/wallets/walletConnectors/chunk-VQYS4NXP.js +314 -0
  171. package/dist/wallets/walletConnectors/chunk-YPM7FC4M.js +104 -0
  172. package/dist/wallets/walletConnectors/chunk-Z3L3JJNU.js +356 -0
  173. package/dist/wallets/walletConnectors/index.js +76 -76
  174. package/dist/wigwamWallet-5GKUN7ZJ.js +7 -0
  175. package/dist/xdc-X7V4QFNF.js +7 -0
  176. package/dist/xdefiWallet-ZA65GDWS.js +7 -0
  177. package/dist/zealWallet-URNQ2AWF.js +7 -0
  178. package/dist/zerionWallet-CYFHB5PA.js +7 -0
  179. package/dist/zetachain-BMJKVYBN.js +7 -0
  180. package/dist/zh_CN-THPIFVWJ.js +7 -0
  181. package/dist/zh_HK-R7XP4TGF.js +7 -0
  182. package/dist/zh_TW-F5LD752V.js +7 -0
  183. package/dist/zkSync-JL26RB7U.js +7 -0
  184. package/dist/zora-YZH32HP3.js +7 -0
  185. package/package.json +1 -1
package/README.md CHANGED
@@ -1,18 +1,33 @@
1
1
  # TalkenKit
2
2
 
3
- **Enhanced wallet connection library with ABC WaaS integration**
3
+ ## Enhanced wallet connection library with embedded wallet support
4
4
 
5
- TalkenKit is a React library for wallet connection, forked from RainbowKit, with integrated ABC WaaS (Wallet-as-a-Service) support for embedded wallets via email and social login.
5
+ TalkenKit is a React library for wallet connection, forked from [RainbowKit](https://rainbowkit.com), with integrated ABC WaaS (Wallet-as-a-Service) support for embedded wallets.
6
6
 
7
7
  ## Features
8
8
 
9
- - **Embedded Wallets**: Email and social login-based wallets (Google, Apple, Telegram, X)
10
- - **Traditional Wallets**: 60+ wallet connectors (MetaMask, Phantom, WalletConnect, etc.)
11
- - **Multi-Chain Support**: EVM and Solana chains via ABC WaaS
12
- - **MPC Security**: No seed phrases, MPC-based key management
13
- - **Modern Stack**: Built on Wagmi v2, Viem v2, React 19
9
+ - 🔐 **Embedded Wallets** - Email and social login (Google, Apple, Telegram, X)
10
+ - 🌈 **Traditional Wallets** - 60+ wallet connectors (MetaMask, WalletConnect, etc.)
11
+ - ⛓️ **Multi-Chain** - EVM and Solana chains with auto-reconnect support
12
+ - 🔑 **MPC Security** - No seed phrases, MPC-based key management
13
+ - 🎨 **Customizable** - Built on wagmi and viem with full theming support
14
+ - 🔄 **Auto-Reconnect** - External wallets automatically reconnect after page refresh
14
15
 
15
- ## Installation
16
+ ## Quick Start
17
+
18
+ ### Create New App
19
+
20
+ Scaffold a new TalkenKit + wagmi + Next.js app:
21
+
22
+ ```bash
23
+ npm create @talken/talkenkit@latest
24
+ # or
25
+ pnpm create @talken/talkenkit@latest
26
+ # or
27
+ yarn create @talken/talkenkit
28
+ ```
29
+
30
+ ### Add to Existing App
16
31
 
17
32
  ```bash
18
33
  npm install @talken/talkenkit wagmi viem @tanstack/react-query
@@ -20,21 +35,19 @@ npm install @talken/talkenkit wagmi viem @tanstack/react-query
20
35
  pnpm add @talken/talkenkit wagmi viem @tanstack/react-query
21
36
  ```
22
37
 
23
- ## Quick Start
24
-
25
- ### 1. Wrap Your App
38
+ ## Basic Usage
26
39
 
27
40
  ```typescript
28
41
  import '@talken/talkenkit/styles.css';
29
- import { getDefaultConfig, TalkenKitProvider } from '@talken/talkenkit';
42
+ import { getDefaultConfig, TalkenKitProvider, ConnectButton } from '@talken/talkenkit';
30
43
  import { WagmiProvider } from 'wagmi';
31
- import { mainnet, polygon, optimism } from 'wagmi/chains';
32
- import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
44
+ import { mainnet, polygon } from 'wagmi/chains';
45
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
33
46
 
34
47
  const config = getDefaultConfig({
35
48
  appName: 'My App',
36
49
  projectId: 'YOUR_WALLETCONNECT_PROJECT_ID',
37
- chains: [mainnet, polygon, optimism],
50
+ chains: [mainnet, polygon],
38
51
  });
39
52
 
40
53
  const queryClient = new QueryClient();
@@ -44,7 +57,7 @@ function App() {
44
57
  <WagmiProvider config={config}>
45
58
  <QueryClientProvider client={queryClient}>
46
59
  <TalkenKitProvider>
47
- {/* Your App */}
60
+ <ConnectButton />
48
61
  </TalkenKitProvider>
49
62
  </QueryClientProvider>
50
63
  </WagmiProvider>
@@ -52,382 +65,203 @@ function App() {
52
65
  }
53
66
  ```
54
67
 
55
- ### 2. Add Connect Button
68
+ ## ABC WaaS Integration
69
+
70
+ Enable embedded wallets with email and social login:
56
71
 
57
72
  ```typescript
58
- import { ConnectButton } from '@talken/talkenkit';
73
+ import { abcWallet } from '@talken/talkenkit/wallets';
59
74
 
60
- export default function Header() {
61
- return <ConnectButton />;
62
- }
75
+ const config = getDefaultConfig({
76
+ appName: 'My App',
77
+ projectId: 'YOUR_WALLETCONNECT_PROJECT_ID',
78
+ chains: [mainnet, polygon],
79
+ wallets: [{
80
+ groupName: 'Embedded',
81
+ wallets: [abcWallet()],
82
+ }],
83
+ });
63
84
  ```
64
85
 
65
- ## ABC WaaS Integration
66
-
67
- ### Environment Variables
68
-
69
- TalkenKit can use environment variables for configuration convenience:
86
+ **Environment Variables:**
70
87
 
71
88
  ```bash
72
- # ABC WaaS API endpoint
73
89
  NEXT_PUBLIC_ABC_WAAS_URL=https://your-waas-url.com
74
-
75
- # Talken API server
76
90
  NEXT_PUBLIC_API_SERVER=https://your-api-server.com
77
91
  ```
78
92
 
79
- **Note**: These environment variables are **optional**. You can pass configuration explicitly in function calls:
80
-
81
- ```typescript
82
- import { registerUser } from '@talken/talkenkit';
83
-
84
- await registerUser(
85
- {
86
- username: email,
87
- password: encryptedPassword,
88
- secureChannel: secureChannelId,
89
- emailCode: otpCode,
90
- name: displayName,
91
- },
92
- {
93
- waasUrl: 'https://your-waas-url.com',
94
- environment: 'production',
95
- }
96
- );
97
- ```
98
-
99
- ### Authentication Services
93
+ For detailed configuration options, see [Configuration Guide](./docs/configuration.md).
100
94
 
101
- TalkenKit provides ready-to-use authentication services:
102
-
103
- #### Register New User
104
-
105
- ```typescript
106
- import { registerUser } from '@talken/talkenkit';
107
-
108
- const result = await registerUser(
109
- {
110
- username: 'user@example.com',
111
- password: encryptedPassword,
112
- secureChannel: secureChannelId,
113
- emailCode: '123456',
114
- name: 'User Name',
115
- },
116
- {
117
- waasUrl: 'https://your-waas-url.com',
118
- environment: 'production',
119
- }
120
- );
121
- ```
122
-
123
- #### Reset Password (Code 619 Flow)
124
-
125
- ```typescript
126
- import { resetPassword } from '@talken/talkenkit';
127
-
128
- await resetPassword(
129
- {
130
- username: 'user@example.com',
131
- password: encryptedPassword,
132
- secureChannel: secureChannelId,
133
- emailCode: '123456',
134
- },
135
- {
136
- waasUrl: 'https://your-waas-url.com',
137
- environment: 'production',
138
- }
139
- );
140
- ```
141
-
142
- #### Email Verification
143
-
144
- ```typescript
145
- import { emailCheck, sendOtpCode, verifyOtpCode } from '@talken/talkenkit';
146
-
147
- // Check if email exists
148
- const checkResult = await emailCheck('user@example.com', config);
149
-
150
- // Send OTP
151
- await sendOtpCode('user@example.com', config);
152
-
153
- // Verify OTP
154
- const verifyResult = await verifyOtpCode('user@example.com', '123456', config);
155
- ```
156
-
157
- ### Encryption Utilities
158
-
159
- TalkenKit provides secure encryption utilities for PIN-based authentication:
160
-
161
- ```typescript
162
- import { hashPin, encryptWithPin, decryptWithPin } from '@talken/talkenkit';
163
-
164
- // Hash PIN
165
- const pinHash = await hashPin('123456');
95
+ ## Documentation
166
96
 
167
- // Encrypt data with PIN
168
- const salt = crypto.getRandomValues(new Uint8Array(32));
169
- const encrypted = await encryptWithPin(sensitiveData, pinHash, salt);
97
+ **Quick Start:**
170
98
 
171
- // Decrypt data with PIN
172
- const decrypted = await decryptWithPin(encrypted, pinHash, saltHex);
173
- ```
99
+ - [Package API Reference](./packages/talkenkit/README.md)
100
+ - [ABC WaaS Integration Guide](./docs/abc-waas.md)
101
+ - [Configuration Guide](./docs/configuration.md)
174
102
 
175
- **Security**: Uses PBKDF2 (100,000 iterations) + AES-256-GCM encryption.
103
+ **Technical:**
176
104
 
177
- ### Authentication Provider
105
+ - [Architecture Documentation](./docs/abc-waas-architecture.md)
106
+ - [Development Guide](./CLAUDE.md)
178
107
 
179
- For managing authentication state across your app:
108
+ **RainbowKit Compatibility:**
180
109
 
181
- ```typescript
182
- import { AbcAuthProvider, useAbcAuth } from '@talken/talkenkit';
110
+ - [RainbowKit Documentation](https://rainbowkit.com) - API compatible
183
111
 
184
- function App() {
185
- return (
186
- <AbcAuthProvider>
187
- <YourApp />
188
- </AbcAuthProvider>
189
- );
190
- }
112
+ ## Examples
191
113
 
192
- function YourComponent() {
193
- const {
194
- isAuthenticated,
195
- user,
196
- tokens,
197
- wallets,
198
- login,
199
- logout,
200
- refreshTokens,
201
- } = useAbcAuth();
202
-
203
- // Use authentication state
204
- }
205
- ```
114
+ Interactive examples in the [examples](./examples/) directory:
206
115
 
207
- ### Authentication Modal
116
+ **ABC WaaS:**
208
117
 
209
- Pre-built authentication modal with complete flow:
118
+ - `with-demo` - Full-featured demo with ABC WaaS and multi-chain support
119
+ - `with-abc-wallet` - ABC Wallet integration example
210
120
 
211
- ```typescript
212
- import { AbcAuthModal } from '@talken/talkenkit';
121
+ **Framework Examples:**
213
122
 
214
- function LoginPage() {
215
- const [showAuth, setShowAuth] = useState(false);
123
+ - `with-next` - Next.js Pages Router
124
+ - `with-next-app` - Next.js App Router
125
+ - `with-vite` - Vite + React
126
+ - `with-create-react-app` - Create React App
127
+ - `with-remix` - Remix
216
128
 
217
- const handleAuthSuccess = (result) => {
218
- console.log('Authenticated:', result);
219
- // result contains: uid, email, pin, accessToken, refreshToken, evmWallet, solanaWallet
220
- };
129
+ **Advanced:**
221
130
 
222
- return (
223
- <>
224
- <button onClick={() => setShowAuth(true)}>Login</button>
225
- {showAuth && (
226
- <AbcAuthModal
227
- onClose={() => setShowAuth(false)}
228
- onSuccess={handleAuthSuccess}
229
- waasUrl={process.env.NEXT_PUBLIC_ABC_WAAS_URL}
230
- environment="production"
231
- evmChainId={1}
232
- />
233
- )}
234
- </>
235
- );
236
- }
237
- ```
238
-
239
- ## Configuration Patterns
240
-
241
- ### Pattern 1: Environment Variables (Recommended for Next.js)
242
-
243
- ```typescript
244
- // .env.local
245
- NEXT_PUBLIC_ABC_WAAS_URL=https://your-waas-url.com
246
- NEXT_PUBLIC_API_SERVER=https://your-api-server.com
131
+ - `with-next-custom-button` - Custom connect button
132
+ - `with-next-mint-nft` - NFT minting example
133
+ - `with-next-siwe-next-auth` - Sign-In with Ethereum (NextAuth)
134
+ - `with-next-siwe-iron-session` - Sign-In with Ethereum (Iron Session)
247
135
 
248
- // Your code
249
- await registerUser(params); // Uses environment variables automatically
250
- ```
136
+ ### Running Examples
251
137
 
252
- ### Pattern 2: Explicit Configuration (Framework-Agnostic)
138
+ ```bash
139
+ # Install dependencies
140
+ pnpm install
253
141
 
254
- ```typescript
255
- const config = {
256
- waasUrl: 'https://your-waas-url.com',
257
- environment: 'production',
258
- };
259
-
260
- await registerUser(params, config);
261
- await resetPassword(params, config);
262
- await sendOtpCode(email, config);
142
+ # Run an example
143
+ cd examples/with-demo
144
+ pnpm run dev
263
145
  ```
264
146
 
265
- ### Pattern 3: Configuration Context (Advanced)
147
+ Demo will be available at <http://localhost:3000>
266
148
 
267
- ```typescript
268
- import { AbcAuthProvider } from '@talken/talkenkit';
269
-
270
- <AbcAuthProvider
271
- config={{
272
- waasUrl: 'https://your-waas-url.com',
273
- apiServer: 'https://your-api-server.com',
274
- }}
275
- >
276
- <YourApp />
277
- </AbcAuthProvider>;
278
- ```
149
+ ## Development
279
150
 
280
- ## Multi-Chain Support
151
+ ### Setup
281
152
 
282
- ### EVM Chains
283
-
284
- ```typescript
285
- import { useAccount, useSignMessage } from 'wagmi';
153
+ ```bash
154
+ # Install dependencies
155
+ pnpm install
286
156
 
287
- function EVMComponent() {
288
- const { address } = useAccount();
289
- const { signMessage } = useSignMessage();
157
+ # Build all packages
158
+ pnpm run build
290
159
 
291
- // Sign message (no PIN required)
292
- await signMessage({ message: 'Hello World' });
160
+ # Build TalkenKit only
161
+ pnpm --filter @talken/talkenkit build
293
162
 
294
- // Send transaction (PIN required)
295
- // Handled automatically by TalkenKit
296
- }
163
+ # Development mode
164
+ pnpm run dev
297
165
  ```
298
166
 
299
- ### Solana
300
-
301
- ```typescript
302
- import { useSolSignMessage, useSolSignTransaction } from '@talken/talkenkit';
303
-
304
- function SolanaComponent() {
305
- const { signMessage } = useSolSignMessage();
306
- const { signTransaction } = useSolSignTransaction();
307
-
308
- // Sign message
309
- const signature = await signMessage('Hello Solana');
310
-
311
- // Sign and send transaction (PIN required)
312
- const txHash = await signTransaction({
313
- toAddress: 'recipient-address',
314
- amount: 0.001, // SOL
315
- });
316
- }
167
+ ### Project Structure
168
+
169
+ ```text
170
+ talken-kit/
171
+ ├── packages/
172
+ │ ├── talkenkit/ # Main library
173
+ │ ├── talken-button/ # Standalone button
174
+ │ └── create-talkenkit/ # CLI scaffolding
175
+
176
+ ├── examples/ # Example applications
177
+ │ ├── with-demo/ # ABC WaaS demo
178
+ │ ├── with-next/ # Next.js example
179
+ │ └── ...
180
+
181
+ └── docs/ # Documentation
182
+ ├── abc-waas.md
183
+ ├── abc-waas-architecture.md
184
+ └── configuration.md
317
185
  ```
318
186
 
319
- ## API Reference
187
+ ## Key Features
320
188
 
321
- ### Authentication Functions
189
+ ### Embedded Wallets (ABC WaaS)
322
190
 
323
- - `registerUser(params, config?)` - Register new user with email + password
324
- - `registerSnsUser(params, config?)` - Register user with OTP only
325
- - `resetPassword(params, config?)` - Reset password for existing user
326
- - `emailCheck(email, config?)` - Check if email exists
327
- - `sendOtpCode(email, config?)` - Send OTP verification code
328
- - `verifyOtpCode(email, code, config?)` - Verify OTP code
329
- - `loginWithPassword(params, apiServer?)` - Login with email + password
191
+ - Email/Social login integration
192
+ - Multi-chain support (EVM + Solana)
193
+ - MPC-based key management
194
+ - PIN-based security
195
+ - No seed phrases required
330
196
 
331
- ### Encryption Functions
197
+ ### Traditional Wallet Support
332
198
 
333
- - `hashPin(pin)` - SHA-256 hash of PIN
334
- - `encryptWithPin(data, hashedPin, salt)` - Encrypt with PIN
335
- - `decryptWithPin(encrypted, hashedPin, salt)` - Decrypt with PIN
336
- - `verifyPin(pin, hashedPin)` - Verify PIN against hash
199
+ - 60+ wallet connectors
200
+ - WalletConnect v2
201
+ - EIP-6963 multi-injected provider support
202
+ - Automatic wallet detection
337
203
 
338
- ### Components
204
+ ### Multi-Chain Support
339
205
 
340
- - `<AbcAuthModal />` - Complete authentication flow modal
341
- - `<AbcLoginModal />` - Simplified login modal
342
- - `<ConnectButton />` - RainbowKit connect button
343
- - `<WalletButton />` - Wallet-specific button
206
+ - **EVM**: Ethereum, Polygon, Optimism, Arbitrum, and more
207
+ - **Solana**: Mainnet and Devnet support
208
+ - Dual wallet generation
209
+ - Unified signing interface
344
210
 
345
- ### Hooks
346
-
347
- - `useAbcAuth()` - Authentication state and methods
348
- - `useSolSignMessage()` - Sign Solana messages
349
- - `useSolSignTransaction()` - Sign and send Solana transactions
350
-
351
- ## Documentation
211
+ ### Developer Experience
352
212
 
353
- - **[Quick Start Guide](../../docs/abc-waas-quickstart.md)** - Get started in 5 minutes
354
- - **[ABC WaaS Integration](../../docs/abc-waas.md)** - Complete technical documentation
355
-
356
- ## Examples
357
-
358
- See the [examples directory](../../examples) for complete implementations:
359
-
360
- - **with-demo**: Full-featured demo with ABC WaaS integration
361
- - **with-abc-wallet**: ABC Wallet integration example
362
- - **with-next**: Next.js App Router example
363
- - **with-vite**: Vite + React example
364
-
365
- ## Security
366
-
367
- ### PIN Security
368
-
369
- - PINs are hashed with SHA-256 before storage
370
- - Sensitive data encrypted with PBKDF2 (100,000 iterations) + AES-256-GCM
371
- - Plain text PINs cleared from memory immediately after use
372
- - Encrypted with secure channel (ECDH) before API transmission
373
-
374
- ### Token Management
375
-
376
- - Access tokens: 10-minute expiry
377
- - Refresh tokens: 60-minute expiry
378
- - Automatic token refresh before expiration
379
- - Encrypted storage with PIN-based encryption
380
-
381
- ### Wallet Security
382
-
383
- - MPC-based key management (no seed phrases)
384
- - Wallets encrypted with PIN hash
385
- - Secure channel for all API communications
386
- - Compatible with Android app (same encryption pattern)
213
+ - RainbowKit API compatible
214
+ - TypeScript support
215
+ - React 19 ready
216
+ - Built on Wagmi v2 and Viem v2
217
+ - Vanilla Extract for type-safe styling
387
218
 
388
219
  ## Migration from RainbowKit
389
220
 
390
- ### 100% API Compatible
391
-
392
- TalkenKit is a **drop-in replacement** for RainbowKit with **zero breaking changes**:
221
+ TalkenKit is a drop-in replacement for RainbowKit:
393
222
 
394
223
  ```diff
395
224
  - import '@rainbow-me/rainbowkit/styles.css';
396
- - import { getDefaultConfig, RainbowKitProvider } from '@rainbow-me/rainbowkit';
225
+ - import { getDefaultConfig, RainbowKitProvider, ConnectButton } from '@rainbow-me/rainbowkit';
397
226
  + import '@talken/talkenkit/styles.css';
398
- + import { getDefaultConfig, TalkenKitProvider } from '@talken/talkenkit';
227
+ + import { getDefaultConfig, TalkenKitProvider, ConnectButton } from '@talken/talkenkit';
399
228
  ```
400
229
 
401
- ### What's Preserved
230
+ **Note**: Both `TalkenKitProvider` and `RainbowKitProvider` work (they're the same component). Use `TalkenKitProvider` for TalkenKit branding, or keep `RainbowKitProvider` for RainbowKit compatibility.
231
+
232
+ See [CLAUDE.md](./CLAUDE.md) for detailed migration guide.
233
+
234
+ ## Technology Stack
402
235
 
403
- **All Components**: ConnectButton, WalletButton, RainbowKitProvider
404
- **All Hooks**: useAccountModal, useChainModal, useConnectModal
405
- **All Themes**: lightTheme, darkTheme, midnightTheme
406
- **All 60+ Wallets**: MetaMask, Coinbase, WalletConnect, Rainbow, etc.
407
- **All Locales**: 21 languages (en, ko, ja, zh, es, fr, etc.)
408
- **All Types**: Wallet, Theme, Chain, Authentication types
236
+ - **React** 19
237
+ - **TypeScript** 5.5
238
+ - **Wagmi** 2.14
239
+ - **Viem** 2.21
240
+ - **TanStack Query** 5
241
+ - **Vanilla Extract** - Type-safe CSS-in-JS
409
242
 
410
- ### What's Added (Optional)
243
+ ## Contributing
411
244
 
412
- 🎯 **ABC WaaS Integration**: Email/social login embedded wallets
413
- 🎯 **Multi-Chain**: Solana support via useSolSignMessage/Transaction
414
- 🎯 **Zero-Config PIN**: Automatic PIN modal for ABC Wallet transactions
245
+ Please follow our [contributing guidelines](/.github/CONTRIBUTING.md).
415
246
 
416
- ### Migration Checklist
247
+ ## Security
417
248
 
418
- 1. Replace package: `@rainbow-me/rainbowkit` `@talken/talkenkit`
419
- 2. ✅ Update imports: Change import paths only
420
- 3. ✅ (Optional) Rename provider: `RainbowKitProvider` → `TalkenKitProvider`
421
- 4. ✅ Test existing functionality: Should work without changes
422
- 5. ✅ (Optional) Add ABC Wallet for embedded wallet support
249
+ For security best practices and implementation details, see:
423
250
 
424
- All RainbowKit APIs remain **100% compatible**.
251
+ - [Security in Package README](./packages/talkenkit/README.md#security)
252
+ - [Architecture Security](./docs/abc-waas-architecture.md#security-architecture)
425
253
 
426
254
  ## License
427
255
 
428
- MIT
256
+ Licensed under the MIT License, Copyright © 2022-present [Rainbow](https://rainbow.me).
257
+
258
+ Forked and enhanced by [Talken](https://talken.io).
259
+
260
+ See [LICENSE](/LICENSE) for more information.
429
261
 
430
262
  ## Links
431
263
 
432
- - [Examples](../../examples)
433
- - [RainbowKit Docs](https://rainbowkit.com) (API compatible)
264
+ - **Documentation**: [docs/](./docs/)
265
+ - **Package**: [@talken/talkenkit](./packages/talkenkit/)
266
+ - **Examples**: [examples/](./examples/)
267
+ - **RainbowKit**: [rainbowkit.com](https://rainbowkit.com)
@@ -0,0 +1,7 @@
1
+ "use client";
2
+
3
+ // src/components/Icons/Arc.svg
4
+ var Arc_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" viewBox="0 0 78 78"><defs><path id="a" fill="%231A007F" fill-rule="evenodd" d="m26.722 56.452 6.608-13.904c-5.047-1.073-10.126-4.195-12.999-7.993l-6.91 14.529a39.257 39.257 0 0 0 13.3 7.368Z" clip-rule="evenodd"/><path id="b" fill="%234E000A" fill-rule="evenodd" d="M54.304 34.138c-3.32 4.07-7.931 7.087-12.864 8.263l6.588 13.863c4.809-1.623 9.304-4.245 13.185-7.608l-6.91-14.518Z" clip-rule="evenodd"/><path id="c" fill="%231A007F" fill-rule="evenodd" d="m13.422 49.084-3.455 7.265c-1.76 3.694-.437 8.242 3.184 10.167 3.84 2.04 8.566.448 10.419-3.434l3.152-6.63a39.427 39.427 0 0 1-13.3-7.368" clip-rule="evenodd"/><path id="d" fill="%23FF9396" fill-rule="evenodd" d="M68.02 18.277a7.586 7.586 0 0 0-8.93 5.952c-.729 3.642-2.436 7.035-4.787 9.92l6.9 14.528c6.369-5.527 11.074-13.052 12.759-21.471.823-4.122-1.842-8.117-5.943-8.93" clip-rule="evenodd"/><path id="e" fill="%23002DC8" fill-rule="evenodd" d="M41.438 42.403a19.312 19.312 0 0 1-4.496.54 17.33 17.33 0 0 1-3.61-.395c-5.048-1.072-10.128-4.194-13-7.993-.718-.947-1.301-1.936-1.706-2.945-1.572-3.882-5.996-5.756-9.878-4.195-3.881 1.572-5.755 5.995-4.194 9.877 1.78 4.414 4.923 8.462 8.867 11.791a39.377 39.377 0 0 0 13.291 7.37c3.341 1.071 6.807 1.665 10.22 1.665 3.788 0 7.525-.656 11.084-1.853l-6.578-13.862Z" clip-rule="evenodd"/><path id="f" fill="%23FF536A" fill-rule="evenodd" d="m64.846 56.316-3.643-7.66-6.9-14.518-.011.01s0-.01.011-.01L44.27 13.032a7.589 7.589 0 0 0-6.848-4.33 7.589 7.589 0 0 0-6.848 4.33L20.343 34.554c2.872 3.799 7.95 6.921 12.999 7.993l3.309-6.952a.866.866 0 0 1 1.561 0l3.238 6.806h.02-.02l6.588 13.863 3.236 6.807a7.576 7.576 0 0 0 6.858 4.33 7.44 7.44 0 0 0 2.02-.281c4.569-1.26 6.734-6.515 4.694-10.804" clip-rule="evenodd"/></defs><path fill="%23000" fill-rule="evenodd" d="M37.422 8.702a7.59 7.59 0 0 1 6.848 4.33l10.033 21.107s0 .01-.011.01c0 0 0-.011.01-.011 2.353-2.883 4.06-6.276 4.788-9.919.822-4.11 4.818-6.764 8.93-5.952a7.585 7.585 0 0 1 5.953 8.93c-1.686 8.419-6.39 15.944-12.76 21.47l3.643 7.66c2.019 4.246-.094 9.44-4.57 10.771l-.135.043a7.506 7.506 0 0 1-2.019.28 7.595 7.595 0 0 1-6.858-4.33l-3.238-6.805-6.587-13.863h.022-.022l-3.237-6.807a.865.865 0 0 0-1.56 0l-3.31 6.952c-5.048-1.07-10.127-4.194-13-7.993l10.231-21.523a7.55 7.55 0 0 1 6.848-4.35ZM8.749 27.414a7.582 7.582 0 0 1 9.876 4.195c.407 1.01.99 1.998 1.707 2.945l.01.011.344.436c.032.042.063.074.094.116l.093.114c.053.052.094.115.146.166.01.01.021.022.021.032l-.02-.032c.197.24.415.468.634.699.01.009.01.02.02.02a20.332 20.332 0 0 0 2.385 2.112c.405.313.822.603 1.248.895.042.021.073.052.115.074 2.404 1.58 5.162 2.767 7.91 3.35 1.165.25 2.33.386 3.465.396h.146c1.509 0 3.018-.188 4.495-.542l6.589 13.863c-3.56 1.198-7.296 1.853-11.084 1.853-3.414 0-6.869-.593-10.22-1.665l-3.154 6.63a7.583 7.583 0 0 1-10.418 3.434C9.53 64.59 8.207 60.053 9.967 56.348l3.455-7.264c-3.903-3.3-7.015-7.307-8.815-11.657l-.052-.135c-1.56-3.883.312-8.305 4.194-9.878Z" clip-rule="evenodd"/><path fill="%23fff" fill-rule="evenodd" stroke="%23fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="6.021" d="M37.422 8.702a7.59 7.59 0 0 1 6.848 4.33l10.033 21.107s0 .01-.011.01c0 0 0-.011.01-.011 2.353-2.883 4.06-6.276 4.788-9.919.822-4.11 4.818-6.764 8.93-5.952a7.585 7.585 0 0 1 5.953 8.93c-1.686 8.419-6.39 15.944-12.76 21.47l3.643 7.66c2.019 4.246-.094 9.44-4.57 10.771l-.135.043a7.506 7.506 0 0 1-2.019.28 7.595 7.595 0 0 1-6.858-4.33l-3.238-6.805-6.587-13.863h.022-.022l-3.237-6.807a.865.865 0 0 0-1.56 0l-3.31 6.952c-5.048-1.07-10.127-4.194-13-7.993l10.231-21.523a7.55 7.55 0 0 1 6.848-4.35h0ZM8.749 27.414a7.582 7.582 0 0 1 9.876 4.195c.407 1.01.99 1.998 1.707 2.945l.01.011.344.436c.032.042.063.074.094.116l.093.114c.053.052.094.115.146.166.01.01.021.022.021.032l-.02-.032c.197.24.415.468.634.699.01.009.01.02.02.02a20.332 20.332 0 0 0 2.385 2.112c.405.313.822.603 1.248.895.042.021.073.052.115.074 2.404 1.58 5.162 2.767 7.91 3.35 1.165.25 2.33.386 3.465.396h.146c1.509 0 3.018-.188 4.495-.542l6.589 13.863c-3.56 1.198-7.296 1.853-11.084 1.853-3.414 0-6.869-.593-10.22-1.665l-3.154 6.63a7.583 7.583 0 0 1-10.418 3.434C9.53 64.59 8.207 60.053 9.967 56.348l3.455-7.264c-3.903-3.3-7.015-7.307-8.815-11.657l-.052-.135c-1.56-3.883.312-8.305 4.194-9.878h0Z" clip-rule="evenodd"/><use xlink:href="%23a" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23b" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23c" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23d" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23e" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23f" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23a" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23b" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23c" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23d" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23e" fill-rule="evenodd" clip-rule="evenodd"/><use xlink:href="%23f" fill-rule="evenodd" clip-rule="evenodd"/></svg>';
5
+ export {
6
+ Arc_default as default
7
+ };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+
3
+ // src/components/Icons/Brave.svg
4
+ var Brave_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 78 78"><path fill="url(%23a)" fill-rule="evenodd" d="m67.81 19.54 1.69-4.2s-2.14-2.35-4.75-5c-2.6-2.65-8.1-1.09-8.1-1.09L50.37 2H28.34l-6.28 7.25s-5.5-1.56-8.1 1.1c-2.6 2.64-4.75 4.98-4.75 4.98l1.69 4.21-2.15 6.24s6.3 24.3 7.04 27.28c1.46 5.84 2.45 8.1 6.58 11.06a513.66 513.66 0 0 0 12.85 8.89c1.23.78 2.76 2.1 4.13 2.1 1.38 0 2.91-1.32 4.14-2.1 1.22-.78 8.72-5.92 12.85-8.89 4.13-2.96 5.12-5.22 6.58-11.06.74-2.97 7.04-27.28 7.04-27.28l-2.15-6.24Z" clip-rule="evenodd"/><path fill="%23fff" fill-rule="evenodd" d="M39.35 47.5c.42 0 3.11.97 5.27 2.1 2.15 1.14 3.72 1.95 4.22 2.26.5.32.2.92-.26 1.25-.46.33-6.57 5.15-7.17 5.69-.6.53-1.46 1.41-2.06 1.41-.59 0-1.46-.88-2.05-1.41-.6-.54-6.71-5.36-7.17-5.69-.45-.33-.76-.93-.26-1.25.5-.31 2.07-1.12 4.22-2.25 2.16-1.14 4.85-2.1 5.26-2.1Zm.04-34.36c.2.01 1.36.07 3.02.63 1.84.63 3.83 1.4 4.75 1.4.92 0 7.73-1.32 7.73-1.32s8.06 9.94 8.06 12.06c0 2.13-1.01 2.69-2.03 3.8l-6.05 6.54c-.57.62-1.77 1.55-1.06 3.24.7 1.7 1.73 3.84.58 6.03-1.15 2.18-3.12 3.63-4.38 3.4-1.26-.25-4.23-1.83-5.32-2.55-1.09-.72-4.54-3.62-4.54-4.73 0-1.11 3.57-3.1 4.23-3.56.66-.45 3.67-2.2 3.73-2.9.06-.69.04-.89-.85-2.59-.89-1.7-2.49-3.97-2.22-5.48.26-1.51 2.84-2.3 4.68-3 1.84-.71 5.39-2.05 5.83-2.26.44-.2.33-.4-1.01-.53s-5.15-.65-6.86-.16c-1.72.49-4.65 1.23-4.89 1.62-.24.4-.45.4-.2 1.76.24 1.36 1.5 7.87 1.62 9.02.12 1.16.36 1.92-.87 2.2-1.22.3-3.28.79-3.99.79-.7 0-2.76-.5-3.99-.78-1.22-.29-.98-1.05-.86-2.2.12-1.16 1.38-7.67 1.62-9.03.25-1.35.04-1.37-.2-1.76-.24-.4-3.17-1.13-4.89-1.62-1.71-.49-5.52.03-6.86.16-1.34.13-1.46.32-1.01.53.44.21 3.98 1.55 5.83 2.26 1.84.7 4.42 1.49 4.68 3 .27 1.51-1.33 3.78-2.22 5.48-.89 1.7-.91 1.9-.85 2.6.06.68 3.07 2.44 3.73 2.89.66.45 4.23 2.45 4.23 3.56 0 1.1-3.45 4.01-4.54 4.73-1.1.72-4.06 2.3-5.32 2.54-1.26.24-3.23-1.21-4.38-3.4-1.15-2.18-.12-4.33.58-6.02.7-1.69-.49-2.62-1.06-3.24L17.8 29.7c-1.02-1.1-2.04-1.66-2.04-3.79 0-2.12 8.07-12.06 8.07-12.06s6.81 1.33 7.73 1.33c.92 0 2.9-.78 4.74-1.4a11.3 11.3 0 0 1 3.03-.64h.07Z" clip-rule="evenodd"/><mask id="b" width="52" height="14" x="13" y="2" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="%23fff" d="M56.64 9.25 50.37 2H28.34l-6.28 7.25s-5.5-1.56-8.1 1.1c0 0 7.34-.68 9.86 3.5 0 0 6.81 1.33 7.73 1.33.92 0 2.9-.78 4.74-1.4 1.84-.63 3.06-.64 3.06-.64s1.23 0 3.06.63c1.84.63 3.83 1.4 4.75 1.4.92 0 7.73-1.32 7.73-1.32 2.52-4.18 9.86-3.5 9.86-3.5-2.6-2.66-8.1-1.1-8.1-1.1Z"/></mask><g mask="url(%23b)"><path fill="url(%23c)" d="M56.64 9.25 50.37 2H28.34l-6.28 7.25s-5.5-1.56-8.1 1.1c0 0 7.34-.68 9.86 3.5 0 0 6.81 1.33 7.73 1.33.92 0 2.9-.78 4.74-1.4 1.84-.63 3.06-.64 3.06-.64s1.23 0 3.06.63c1.84.63 3.83 1.4 4.75 1.4.92 0 7.73-1.32 7.73-1.32 2.52-4.18 9.86-3.5 9.86-3.5-2.6-2.66-8.1-1.1-8.1-1.1Z"/></g><defs><linearGradient id="a" x1="8.75" x2="69.96" y1="39.07" y2="39.07" gradientUnits="userSpaceOnUse"><stop stop-color="%23F50"/><stop offset=".41" stop-color="%23F50"/><stop offset=".58" stop-color="%23FF2000"/><stop offset="1" stop-color="%23FF2000"/></linearGradient><linearGradient id="c" x1="15.05" x2="64.75" y1="8.68" y2="8.68" gradientUnits="userSpaceOnUse"><stop stop-color="%23FF452A"/><stop offset="1" stop-color="%23FF2000"/></linearGradient></defs></svg>';
5
+ export {
6
+ Brave_default as default
7
+ };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+
3
+ // src/components/Icons/Browser.svg
4
+ var Browser_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 78 78"><g fill-rule="evenodd" clip-rule="evenodd"><path fill="url(%23a)" d="M39 76c20.434 0 37-16.566 37-37S59.434 2 39 2 2 18.566 2 39s16.566 37 37 37Zm0-5c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Z"/><path fill="url(%23b)" d="M39 76c20.434 0 37-16.566 37-37S59.434 2 39 2 2 18.566 2 39s16.566 37 37 37Zm0-5c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Z"/></g><circle cx="39" cy="39" r="30" fill="url(%23c)"/><circle cx="39" cy="39" r="30" fill="url(%23d)" fill-opacity=".7" style="mix-blend-mode:screen"/><g filter="url(%23e)"><circle cx="39" cy="39" r="29.5" stroke="%23000"/></g><g filter="url(%23f)"><path fill="%23000" fill-opacity=".3" d="m55.681 53.597-8.973-18.865c-.54-1.147-1.316-1.924-2.429-2.463l-18.824-8.91c-2.429-1.147-4.25.607-3.103 3.105 1.147 2.497 8.94 18.831 8.94 18.831.505 1.08 1.248 1.822 2.428 2.43l18.858 8.943c2.361 1.114 4.183-.742 3.103-3.071Zm-12.38-13.6c0 2.328-1.923 4.252-4.25 4.252-2.328 0-4.251-1.924-4.251-4.252a4.255 4.255 0 0 1 4.25-4.252c2.328 0 4.25 1.89 4.25 4.252Z"/></g><path fill="%23000" fill-opacity=".8" d="m55.681 52.597-8.973-18.865c-.54-1.147-1.316-1.924-2.429-2.463l-18.824-8.91c-2.429-1.147-4.25.607-3.103 3.105 1.147 2.497 8.94 18.831 8.94 18.831.505 1.08 1.248 1.822 2.428 2.43l18.858 8.943c2.361 1.114 4.183-.742 3.103-3.071Zm-12.38-13.6c0 2.328-1.923 4.252-4.25 4.252-2.328 0-4.251-1.924-4.251-4.252a4.255 4.255 0 0 1 4.25-4.252c2.328 0 4.25 1.89 4.25 4.252Z"/><path fill="url(%23g)" d="m55.681 52.597-8.973-18.865c-.54-1.147-1.316-1.924-2.429-2.463l-18.824-8.91c-2.429-1.147-4.25.607-3.103 3.105 1.147 2.497 8.94 18.831 8.94 18.831.505 1.08 1.248 1.822 2.428 2.43l18.858 8.943c2.361 1.114 4.183-.742 3.103-3.071Zm-12.38-13.6c0 2.328-1.923 4.252-4.25 4.252-2.328 0-4.251-1.924-4.251-4.252a4.255 4.255 0 0 1 4.25-4.252c2.328 0 4.25 1.89 4.25 4.252Z" opacity=".14"/><path fill="url(%23h)" fill-opacity=".08" d="M61.248 56.008c.166-.217.25-.325.378-.66.754-1.95-1.183-3.95-3.157-3.26-.338.118-.904.522-2.035 1.332A29.863 29.863 0 0 1 39 59.003a29.863 29.863 0 0 1-17.425-5.577c-1.132-.809-1.697-1.213-2.035-1.331-1.974-.69-3.911 1.313-3.156 3.263.129.334.212.442.378.659 5.118 6.679 13.176 10.986 22.24 10.986 9.068 0 17.129-4.31 22.246-10.995Z"/><path fill="url(%23i)" fill-opacity=".2" d="M62.26 40.051C63.805 41.947 67 41.445 67 39c0-15.464-12.536-28-28-28S11 23.536 11 39c0 2.445 3.195 2.946 4.74 1.051C21.241 33.307 29.618 29 39 29c9.382 0 17.758 4.307 23.26 11.051Z"/><path fill="url(%23j)" d="M39 45a6 6 0 1 1 0-11.999 6 6 0 0 1 0 12Z"/><path stroke="%23fff" stroke-opacity=".24" stroke-width=".125" d="M36.728 44.486a5.938 5.938 0 1 0 4.545-10.971 5.938 5.938 0 0 0-4.545 10.971Z"/><g filter="url(%23k)"><path fill="%231A1B1F" d="M39 46a6 6 0 1 1 0-11.999 6 6 0 0 1 0 12Z"/></g><path fill="url(%23l)" d="M39 44.5a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11Z"/><path stroke="%23fff" stroke-opacity=".24" stroke-width=".25" d="M36.944 43.966a5.376 5.376 0 1 0 4.114-9.934 5.376 5.376 0 0 0-4.114 9.934Z"/><path fill="url(%23m)" fill-rule="evenodd" d="M36.704 44.544a6.002 6.002 0 0 0 8.297-5.543 6 6 0 1 0-8.297 5.543Zm.191-.463a5.5 5.5 0 1 0 4.21-10.163 5.5 5.5 0 0 0-4.21 10.163Z" clip-rule="evenodd"/><path fill="url(%23n)" fill-opacity=".06" d="M36.897 42.12A5.98 5.98 0 0 0 39 42.5c1.46 0 2.858-.526 3.89-1.464.256-.233.701-.022.54.285a5 5 0 0 1-9.049-.406c-.098-.238.237-.383.411-.195a5.565 5.565 0 0 0 2.103 1.4Z"/><g fill-rule="evenodd" clip-rule="evenodd"><path fill="url(%23o)" d="M39 71c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Zm0-2c16.569 0 30-13.431 30-30C69 22.431 55.569 9 39 9 22.431 9 9 22.431 9 39c0 16.569 13.431 30 30 30Z"/><path fill="url(%23p)" d="M39 71c17.673 0 32-14.327 32-32C71 21.327 56.673 7 39 7 21.327 7 7 21.327 7 39c0 17.673 14.327 32 32 32Zm0-2c16.569 0 30-13.431 30-30C69 22.431 55.569 9 39 9 22.431 9 9 22.431 9 39c0 16.569 13.431 30 30 30Z"/></g><path fill="url(%23q)" fill-rule="evenodd" d="M39 76c20.434 0 37-16.566 37-37S59.434 2 39 2 2 18.566 2 39s16.566 37 37 37Zm0-1c19.882 0 36-16.118 36-36S58.882 3 39 3 3 19.118 3 39s16.118 36 36 36Z" clip-rule="evenodd"/><circle cx="39" cy="39" r="32" stroke="%23fff" stroke-opacity=".3" stroke-width=".25"/><defs><linearGradient id="a" x1="39" x2="39" y1="2" y2="76" gradientUnits="userSpaceOnUse"><stop stop-color="%23174299"/><stop offset="1" stop-color="%23001E59"/></linearGradient><linearGradient id="b" x1="39" x2="39" y1="2" y2="76" gradientUnits="userSpaceOnUse"><stop stop-color="%23D2D8E4"/><stop offset="1" stop-color="%23C2C9D6"/></linearGradient><linearGradient id="g" x1="34" x2="46.5" y1="45.5" y2="33" gradientUnits="userSpaceOnUse"><stop stop-color="%23fff" stop-opacity="0"/><stop offset=".453" stop-color="%23fff" stop-opacity=".64"/><stop offset=".453" stop-color="%233B3B3B" stop-opacity=".233"/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="i" x1="39" x2="39" y1="11" y2="41.205" gradientUnits="userSpaceOnUse"><stop stop-color="%23fff"/><stop offset="1" stop-color="%23fff" stop-opacity="0"/></linearGradient><linearGradient id="j" x1="39.001" x2="38.751" y1="33" y2="45" gradientUnits="userSpaceOnUse"><stop stop-color="%23DCE1EA"/><stop offset="1" stop-color="%23BEC6D5"/></linearGradient><linearGradient id="l" x1="39.001" x2="38.772" y1="33.5" y2="44.5" gradientUnits="userSpaceOnUse"><stop stop-color="%23DCE1EA"/><stop offset="1" stop-color="%23BEC6D5"/></linearGradient><linearGradient id="m" x1="39" x2="39" y1="33" y2="45.001" gradientUnits="userSpaceOnUse"><stop stop-color="%23F2F4F7"/><stop offset="1" stop-color="%23A3ADC2"/></linearGradient><linearGradient id="o" x1="39" x2="39" y1="7" y2="71" gradientUnits="userSpaceOnUse"><stop stop-color="%23D2D8E4"/><stop offset="1" stop-color="%23C2C9D6"/></linearGradient><linearGradient id="p" x1="39" x2="39" y1="7" y2="71" gradientUnits="userSpaceOnUse"><stop stop-color="%239FACC6"/><stop offset="1" stop-color="%23E0E3EB"/></linearGradient><linearGradient id="q" x1="39" x2="39" y1="2" y2="76" gradientUnits="userSpaceOnUse"><stop stop-color="%23F2F4F7"/><stop offset="1" stop-color="%23A3ADC2"/></linearGradient><radialGradient id="c" cx="0" cy="0" r="1" gradientTransform="rotate(-40.077 108.556 65.416) scale(118.435)" gradientUnits="userSpaceOnUse"><stop offset=".276" stop-color="%2320FF4D"/><stop offset=".464" stop-color="%231499FF"/><stop offset=".755" stop-color="%23FF6FC6"/><stop offset="1" stop-color="%23BC67FF"/></radialGradient><radialGradient id="d" cx="0" cy="0" r="1" gradientTransform="rotate(45 .265 -.64) scale(98.1111)" gradientUnits="userSpaceOnUse"><stop stop-color="red"/><stop offset="1" stop-color="%2300A3FF"/></radialGradient><radialGradient id="h" cx="0" cy="0" r="1" gradientTransform="matrix(0 -29.3887 57.4838 0 38.999 67)" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-opacity="0"/></radialGradient><radialGradient id="n" cx="0" cy="0" r="1" gradientTransform="matrix(-.00135 -5.75038 8.42557 -.00199 39.002 44)" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-opacity="0"/></radialGradient><filter id="e" width="68" height="68" x="5" y="5" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2138_47895" stdDeviation="2"/></filter><filter id="f" width="38" height="38" x="20" y="21" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2138_47895" stdDeviation="1"/></filter><filter id="k" width="16" height="16" x="31.001" y="32" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2138_47895" stdDeviation="1"/></filter></defs></svg>';
5
+ export {
6
+ Browser_default as default
7
+ };