0xtrails 0.0.1 → 0.0.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 (359) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +42 -0
  3. package/dist/abi.d.ts +37 -0
  4. package/dist/abi.d.ts.map +1 -0
  5. package/dist/abi.js +36 -0
  6. package/dist/apiClient.d.ts +9 -0
  7. package/dist/apiClient.d.ts.map +1 -0
  8. package/dist/apiClient.js +18 -0
  9. package/dist/buffer.d.ts +3 -0
  10. package/dist/buffer.d.ts.map +1 -0
  11. package/dist/buffer.js +8 -0
  12. package/dist/cctp.d.ts +84 -0
  13. package/dist/cctp.d.ts.map +1 -0
  14. package/dist/cctp.js +401 -0
  15. package/dist/chainSwitch.d.ts +7 -0
  16. package/dist/chainSwitch.d.ts.map +1 -0
  17. package/dist/chainSwitch.js +33 -0
  18. package/dist/chains.d.ts +13 -0
  19. package/dist/chains.d.ts.map +1 -0
  20. package/dist/chains.js +95 -0
  21. package/dist/constants.d.ts +11 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +16 -0
  24. package/dist/encoders.d.ts +7 -0
  25. package/dist/encoders.d.ts.map +1 -0
  26. package/dist/encoders.js +8 -0
  27. package/dist/error.d.ts +2 -0
  28. package/dist/error.d.ts.map +1 -0
  29. package/dist/error.js +12 -0
  30. package/dist/explorer.d.ts +12 -0
  31. package/dist/explorer.d.ts.map +1 -0
  32. package/dist/explorer.js +18 -0
  33. package/dist/gasless.d.ts +116 -0
  34. package/dist/gasless.d.ts.map +1 -0
  35. package/dist/gasless.js +297 -0
  36. package/dist/index.d.ts +13 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +9 -0
  39. package/dist/indexerClient.d.ts +9 -0
  40. package/dist/indexerClient.d.ts.map +1 -0
  41. package/dist/indexerClient.js +18 -0
  42. package/dist/intents.d.ts +83 -0
  43. package/dist/intents.d.ts.map +1 -0
  44. package/dist/intents.js +288 -0
  45. package/dist/metaTxnMonitor.d.ts +14 -0
  46. package/dist/metaTxnMonitor.d.ts.map +1 -0
  47. package/dist/metaTxnMonitor.js +121 -0
  48. package/dist/metaTxns.d.ts +6 -0
  49. package/dist/metaTxns.d.ts.map +1 -0
  50. package/dist/metaTxns.js +4 -0
  51. package/dist/paymasterSend.d.ts +90 -0
  52. package/dist/paymasterSend.d.ts.map +1 -0
  53. package/dist/paymasterSend.js +329 -0
  54. package/dist/preconditions.d.ts +11 -0
  55. package/dist/preconditions.d.ts.map +1 -0
  56. package/dist/preconditions.js +29 -0
  57. package/dist/prepareSend.d.ts +102 -0
  58. package/dist/prepareSend.d.ts.map +1 -0
  59. package/dist/prepareSend.js +1080 -0
  60. package/dist/prices.d.ts +18 -0
  61. package/dist/prices.d.ts.map +1 -0
  62. package/dist/prices.js +142 -0
  63. package/dist/queryParams.d.ts +9 -0
  64. package/dist/queryParams.d.ts.map +1 -0
  65. package/dist/queryParams.js +66 -0
  66. package/dist/relaySdk.d.ts +65 -0
  67. package/dist/relaySdk.d.ts.map +1 -0
  68. package/dist/relaySdk.js +314 -0
  69. package/dist/relayer.d.ts +23 -0
  70. package/dist/relayer.d.ts.map +1 -0
  71. package/dist/relayer.js +230 -0
  72. package/dist/sendUserOp.d.ts +140 -0
  73. package/dist/sendUserOp.d.ts.map +1 -0
  74. package/dist/sendUserOp.js +388 -0
  75. package/dist/sequenceWallet.d.ts +79 -0
  76. package/dist/sequenceWallet.d.ts.map +1 -0
  77. package/dist/sequenceWallet.js +374 -0
  78. package/dist/theme.d.ts +3 -0
  79. package/dist/theme.d.ts.map +1 -0
  80. package/dist/theme.js +1 -0
  81. package/dist/toSimpleSmartAccount.d.ts +95 -0
  82. package/dist/toSimpleSmartAccount.d.ts.map +1 -0
  83. package/dist/toSimpleSmartAccount.js +373 -0
  84. package/dist/tokenBalances.d.ts +118 -0
  85. package/dist/tokenBalances.d.ts.map +1 -0
  86. package/dist/tokenBalances.js +492 -0
  87. package/dist/tokens.d.ts +50 -0
  88. package/dist/tokens.d.ts.map +1 -0
  89. package/dist/tokens.js +356 -0
  90. package/dist/trails.d.ts +128 -0
  91. package/dist/trails.d.ts.map +1 -0
  92. package/dist/trails.js +1031 -0
  93. package/dist/umd/trails.min.js +12610 -0
  94. package/dist/umd/trails.min.js.map +1 -0
  95. package/dist/umd.d.ts +24 -0
  96. package/dist/umd.d.ts.map +1 -0
  97. package/dist/utils.d.ts +5 -0
  98. package/dist/utils.d.ts.map +1 -0
  99. package/dist/utils.js +9 -0
  100. package/dist/widget/ConstantsUtil-B-_-u8aQ.js +6 -0
  101. package/dist/widget/add-hVLs3ldJ.js +20 -0
  102. package/dist/widget/all-wallets-Cwxnx4BT.js +11 -0
  103. package/dist/widget/app-store-CAAVQjW0.js +22 -0
  104. package/dist/widget/apple-C3BSbglw.js +23 -0
  105. package/dist/widget/arrow-bottom-circle-BGU9MmsZ.js +16 -0
  106. package/dist/widget/arrow-bottom-hS_SA8Gp.js +13 -0
  107. package/dist/widget/arrow-left-CJZanWz7.js +13 -0
  108. package/dist/widget/arrow-right-C1qL8EMd.js +13 -0
  109. package/dist/widget/arrow-top-CbuCmbQs.js +13 -0
  110. package/dist/widget/bank-CXBEEGbb.js +19 -0
  111. package/dist/widget/bin-Dqzv3zCZ.js +9 -0
  112. package/dist/widget/bitcoin-4y3sovZp.js +18 -0
  113. package/dist/widget/browser-DyOl4_8m.js +1413 -0
  114. package/dist/widget/browser-t7Fh0sEU.js +19 -0
  115. package/dist/widget/card-Bo4CZkTs.js +19 -0
  116. package/dist/widget/ccip-BynehMIN.js +232 -0
  117. package/dist/widget/checkmark-DV6OKvnY.js +16 -0
  118. package/dist/widget/checkmark-bold-CAp1-IQ2.js +13 -0
  119. package/dist/widget/chevron-bottom-BjzsVzk9.js +13 -0
  120. package/dist/widget/chevron-left-CQZBDCiR.js +13 -0
  121. package/dist/widget/chevron-right-Dhg4zeZM.js +13 -0
  122. package/dist/widget/chevron-top-CDQmfJef.js +13 -0
  123. package/dist/widget/chrome-store-BNaC_b6w.js +66 -0
  124. package/dist/widget/circle-BC_GBj91.js +9 -0
  125. package/dist/widget/clock-BmF8-4a0.js +13 -0
  126. package/dist/widget/close-Bf61nZ8o.js +13 -0
  127. package/dist/widget/coinPlaceholder-7cZW2058.js +13 -0
  128. package/dist/widget/compass-CFC3yhnW.js +13 -0
  129. package/dist/widget/components/ChainImage.d.ts +8 -0
  130. package/dist/widget/components/ChainImage.d.ts.map +1 -0
  131. package/dist/widget/components/ChainImage.js +6 -0
  132. package/dist/widget/components/ConnectWallet.d.ts +18 -0
  133. package/dist/widget/components/ConnectWallet.d.ts.map +1 -0
  134. package/dist/widget/components/ConnectWallet.js +66 -0
  135. package/dist/widget/components/DebugScreensDropdown.d.ts +9 -0
  136. package/dist/widget/components/DebugScreensDropdown.d.ts.map +1 -0
  137. package/dist/widget/components/DebugScreensDropdown.js +40 -0
  138. package/dist/widget/components/FeeOptions.d.ts +17 -0
  139. package/dist/widget/components/FeeOptions.d.ts.map +1 -0
  140. package/dist/widget/components/FeeOptions.js +65 -0
  141. package/dist/widget/components/Footer.d.ts +9 -0
  142. package/dist/widget/components/Footer.d.ts.map +1 -0
  143. package/dist/widget/components/Footer.js +13 -0
  144. package/dist/widget/components/GreenCheckAnimation.d.ts +2 -0
  145. package/dist/widget/components/GreenCheckAnimation.d.ts.map +1 -0
  146. package/dist/widget/components/GreenCheckAnimation.js +74 -0
  147. package/dist/widget/components/Modal.d.ts +11 -0
  148. package/dist/widget/components/Modal.d.ts.map +1 -0
  149. package/dist/widget/components/Modal.js +36 -0
  150. package/dist/widget/components/Receipt.d.ts +13 -0
  151. package/dist/widget/components/Receipt.d.ts.map +1 -0
  152. package/dist/widget/components/Receipt.js +36 -0
  153. package/dist/widget/components/SendForm.d.ts +44 -0
  154. package/dist/widget/components/SendForm.d.ts.map +1 -0
  155. package/dist/widget/components/SendForm.js +177 -0
  156. package/dist/widget/components/TokenImage.d.ts +10 -0
  157. package/dist/widget/components/TokenImage.d.ts.map +1 -0
  158. package/dist/widget/components/TokenImage.js +8 -0
  159. package/dist/widget/components/TokenList.d.ts +16 -0
  160. package/dist/widget/components/TokenList.d.ts.map +1 -0
  161. package/dist/widget/components/TokenList.js +39 -0
  162. package/dist/widget/components/TransferPending.d.ts +11 -0
  163. package/dist/widget/components/TransferPending.d.ts.map +1 -0
  164. package/dist/widget/components/TransferPending.js +77 -0
  165. package/dist/widget/components/TransferPendingVertical.d.ts +18 -0
  166. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -0
  167. package/dist/widget/components/TransferPendingVertical.js +183 -0
  168. package/dist/widget/components/WalletConfirmation.d.ts +18 -0
  169. package/dist/widget/components/WalletConfirmation.d.ts.map +1 -0
  170. package/dist/widget/components/WalletConfirmation.js +22 -0
  171. package/dist/widget/config.d.ts +4 -0
  172. package/dist/widget/config.d.ts.map +1 -0
  173. package/dist/widget/config.js +3 -0
  174. package/dist/widget/copy-e0xXvKN0.js +20 -0
  175. package/dist/widget/cursor-CqM3v0xJ.js +8 -0
  176. package/dist/widget/cursor-transparent-CUQpdsCG.js +17 -0
  177. package/dist/widget/desktop-DUDGIRpM.js +14 -0
  178. package/dist/widget/disconnect-DUFST9QQ.js +13 -0
  179. package/dist/widget/discord-C1cj365Z.js +22 -0
  180. package/dist/widget/email-BHhmb_lX.js +703 -0
  181. package/dist/widget/embedded-wallet-CuuC4eah.js +467 -0
  182. package/dist/widget/ethereum-CfmBVfeB.js +15 -0
  183. package/dist/widget/etherscan-BSiynDhW.js +11 -0
  184. package/dist/widget/exclamation-triangle-DEiFNpHw.js +9 -0
  185. package/dist/widget/extension-mRmfCDxo.js +13 -0
  186. package/dist/widget/external-link-B4xMIVnW.js +13 -0
  187. package/dist/widget/facebook-CBAZStBR.js +31 -0
  188. package/dist/widget/farcaster-LHDEDf5S.js +17 -0
  189. package/dist/widget/filters-CBijuvFv.js +13 -0
  190. package/dist/widget/github-C3ILD420.js +23 -0
  191. package/dist/widget/google-CSj73POX.js +23 -0
  192. package/dist/widget/help-circle-2hdG5IdB.js +17 -0
  193. package/dist/widget/hooks/useAmountUsd.d.ts +13 -0
  194. package/dist/widget/hooks/useAmountUsd.d.ts.map +1 -0
  195. package/dist/widget/hooks/useAmountUsd.js +35 -0
  196. package/dist/widget/hooks/useSendForm.d.ts +125 -0
  197. package/dist/widget/hooks/useSendForm.d.ts.map +1 -0
  198. package/dist/widget/hooks/useSendForm.js +450 -0
  199. package/dist/widget/hooks/useTokenList.d.ts +52 -0
  200. package/dist/widget/hooks/useTokenList.d.ts.map +1 -0
  201. package/dist/widget/hooks/useTokenList.js +252 -0
  202. package/dist/widget/id-ByYSrwsd.js +17 -0
  203. package/dist/widget/if-defined-DRXJEhv7.js +752 -0
  204. package/dist/widget/image-C90L4Rf6.js +9 -0
  205. package/dist/widget/index-B3SlQ9v3.js +46 -0
  206. package/dist/widget/index-B8LPuLXQ.js +78 -0
  207. package/dist/widget/index-BDbworWA.js +171 -0
  208. package/dist/widget/index-BTlDgFSK.js +98 -0
  209. package/dist/widget/index-BUCcjXbd.js +306 -0
  210. package/dist/widget/index-BZ34edi2.js +1055 -0
  211. package/dist/widget/index-BiCU29wK.js +147 -0
  212. package/dist/widget/index-BlmqIKsY.js +266 -0
  213. package/dist/widget/index-BlviH5nG.js +55 -0
  214. package/dist/widget/index-Bwd5X3fS.js +8306 -0
  215. package/dist/widget/index-C5gmknHK.js +78 -0
  216. package/dist/widget/index-CD6dBcRj.js +76 -0
  217. package/dist/widget/index-CDlhy529.js +63 -0
  218. package/dist/widget/index-CHXa5ke-.js +59 -0
  219. package/dist/widget/index-CK94R-H7.js +22498 -0
  220. package/dist/widget/index-CQzo3m3x.js +182 -0
  221. package/dist/widget/index-CRT8cAwG.js +325 -0
  222. package/dist/widget/index-CY7Lt2Yu.js +310 -0
  223. package/dist/widget/index-CiKfAu1E.js +79 -0
  224. package/dist/widget/index-CkCu6rMi.js +258 -0
  225. package/dist/widget/index-CngLTu_R.js +517 -0
  226. package/dist/widget/index-CsMV8-em.js +2577 -0
  227. package/dist/widget/index-Cu2Wva8v.js +200 -0
  228. package/dist/widget/index-DKBxLTEF.js +240 -0
  229. package/dist/widget/index-DQEVT3dx.js +511 -0
  230. package/dist/widget/index-DU2HcCis.js +200 -0
  231. package/dist/widget/index-DutZGWNW.js +321 -0
  232. package/dist/widget/index-O0glArmc.js +182 -0
  233. package/dist/widget/index-O8FmRjKe.js +63719 -0
  234. package/dist/widget/index-RtKXrB6I.js +576 -0
  235. package/dist/widget/index-TIYtS0gE.js +88 -0
  236. package/dist/widget/index-dQNJvWHs.js +66 -0
  237. package/dist/widget/index-wmEwdsq7.js +909 -0
  238. package/dist/widget/index.d.ts +3 -0
  239. package/dist/widget/index.d.ts.map +1 -0
  240. package/dist/widget/index.js +2 -0
  241. package/dist/widget/info-DMPChDjV.js +8 -0
  242. package/dist/widget/info-circle-DAvS_7nY.js +17 -0
  243. package/dist/widget/lightbulb-DnZ9mNEs.js +8 -0
  244. package/dist/widget/lit-html-BRjl1r6K.js +243 -0
  245. package/dist/widget/mail-DpaVSOP8.js +13 -0
  246. package/dist/widget/mobile-CRvdyu7I.js +14 -0
  247. package/dist/widget/more-C5VqW9PR.js +16 -0
  248. package/dist/widget/network-placeholder-CZ0vApma.js +19 -0
  249. package/dist/widget/nftPlaceholder-7jjIK2bT.js +13 -0
  250. package/dist/widget/off-4mHjJLLX.js +9 -0
  251. package/dist/widget/onramp-Bc0ozVsw.js +929 -0
  252. package/dist/widget/play-store-Uocul8nC.js +37 -0
  253. package/dist/widget/plus-DrYF7siO.js +18 -0
  254. package/dist/widget/prepareSend-BQJmzM5B.js +54987 -0
  255. package/dist/widget/qr-code-DcnGMUB3.js +11 -0
  256. package/dist/widget/receive-fvIVd7R_.js +184 -0
  257. package/dist/widget/recycle-horizontal-DrDwXC4D.js +14 -0
  258. package/dist/widget/ref-CXNmEjML.js +41 -0
  259. package/dist/widget/refresh-OK9lIPLS.js +13 -0
  260. package/dist/widget/reown-logo-C-Qn7mS3.js +17 -0
  261. package/dist/widget/search-DZqv1oKg.js +13 -0
  262. package/dist/widget/send-CJlmI-xe.js +1039 -0
  263. package/dist/widget/send-otoEC8uU.js +20 -0
  264. package/dist/widget/socials-BJciurWF.js +599 -0
  265. package/dist/widget/solana-Bv5Hs_0T.js +18 -0
  266. package/dist/widget/swapHorizontal-BzOPGV37.js +13 -0
  267. package/dist/widget/swapHorizontalBold-axyHnSmj.js +13 -0
  268. package/dist/widget/swapHorizontalMedium-C6YOPfPz.js +21 -0
  269. package/dist/widget/swapHorizontalRoundedBold-yVcLbWNT.js +13 -0
  270. package/dist/widget/swapVertical-BDjxt9pE.js +13 -0
  271. package/dist/widget/swaps-DEWNj4kd.js +1637 -0
  272. package/dist/widget/telegram-BQJD7dlP.js +21 -0
  273. package/dist/widget/three-dots-DW9jmSMG.js +10 -0
  274. package/dist/widget/transactions-uCseGQQt.js +38 -0
  275. package/dist/widget/twitch-XugxDfOE.js +23 -0
  276. package/dist/widget/twitterIcon-DQVObQUL.js +11 -0
  277. package/dist/widget/types.d.ts +51 -0
  278. package/dist/widget/types.d.ts.map +1 -0
  279. package/dist/widget/types.js +1 -0
  280. package/dist/widget/verify-DpMYHxLf.js +13 -0
  281. package/dist/widget/verify-filled-KpEL6ZJ_.js +13 -0
  282. package/dist/widget/w3m-modal-C8e-6Kba.js +1047 -0
  283. package/dist/widget/wallet-D8ssEB0o.js +13 -0
  284. package/dist/widget/wallet-placeholder-HtAy21Wc.js +19 -0
  285. package/dist/widget/walletconnect-Bp_4XfrY.js +37 -0
  286. package/dist/widget/warning-circle-FgYS7P7n.js +17 -0
  287. package/dist/widget/widget/index.js +7 -0
  288. package/dist/widget/widget.d.ts +47 -0
  289. package/dist/widget/widget.d.ts.map +1 -0
  290. package/dist/widget/widget.js +932 -0
  291. package/dist/widget/x-DlZBoP9k.js +17 -0
  292. package/dist/widget/x-mark-Ba9pt-_h.js +8 -0
  293. package/package.json +102 -8
  294. package/src/abi.ts +38 -0
  295. package/src/apiClient.ts +32 -0
  296. package/src/buffer.ts +10 -0
  297. package/src/cctp.ts +579 -0
  298. package/src/chainSwitch.ts +55 -0
  299. package/src/chains.ts +124 -0
  300. package/src/constants.ts +26 -0
  301. package/src/encoders.ts +20 -0
  302. package/src/error.ts +15 -0
  303. package/src/explorer.ts +37 -0
  304. package/src/gasless.ts +545 -0
  305. package/src/index.ts +48 -0
  306. package/src/indexerClient.ts +36 -0
  307. package/src/intents.ts +537 -0
  308. package/src/metaTxnMonitor.ts +163 -0
  309. package/src/metaTxns.ts +21 -0
  310. package/src/paymasterSend.ts +503 -0
  311. package/src/preconditions.ts +52 -0
  312. package/src/prepareSend.ts +1849 -0
  313. package/src/prices.ts +186 -0
  314. package/src/queryParams.ts +80 -0
  315. package/src/relaySdk.ts +481 -0
  316. package/src/relayer.ts +255 -0
  317. package/src/sendUserOp.ts +570 -0
  318. package/src/sequenceWallet.ts +579 -0
  319. package/src/theme.ts +2 -0
  320. package/src/toSimpleSmartAccount.ts +567 -0
  321. package/src/tokenBalances.ts +760 -0
  322. package/src/tokens.ts +471 -0
  323. package/src/trails.ts +1591 -0
  324. package/src/types.d.ts +11 -0
  325. package/src/umd.tsx +49 -0
  326. package/src/utils.ts +16 -0
  327. package/src/vite-env.d.ts +4 -0
  328. package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +31 -0
  329. package/src/widget/assets/MetaMask-icon-fox.svg +26 -0
  330. package/src/widget/assets/MetaMask-logo-black.svg +3 -0
  331. package/src/widget/assets/MetaMask-logo-white.svg +16 -0
  332. package/src/widget/assets/Privy_Brandmark_Black.svg +9 -0
  333. package/src/widget/assets/Privy_Brandmark_White.svg +9 -0
  334. package/src/widget/assets/Trails-logo-black.svg +11 -0
  335. package/src/widget/assets/Trails-logo-white.svg +11 -0
  336. package/src/widget/components/ChainImage.tsx +28 -0
  337. package/src/widget/components/ConnectWallet.tsx +206 -0
  338. package/src/widget/components/DebugScreensDropdown.tsx +88 -0
  339. package/src/widget/components/FeeOptions.tsx +199 -0
  340. package/src/widget/components/Footer.tsx +51 -0
  341. package/src/widget/components/GreenCheckAnimation.tsx +119 -0
  342. package/src/widget/components/Modal.tsx +97 -0
  343. package/src/widget/components/Receipt.tsx +237 -0
  344. package/src/widget/components/SendForm.tsx +695 -0
  345. package/src/widget/components/TokenImage.tsx +37 -0
  346. package/src/widget/components/TokenList.tsx +287 -0
  347. package/src/widget/components/TransferPending.tsx +204 -0
  348. package/src/widget/components/TransferPendingVertical.tsx +412 -0
  349. package/src/widget/components/WalletConfirmation.tsx +172 -0
  350. package/src/widget/config.ts +5 -0
  351. package/src/widget/hooks/useAmountUsd.ts +59 -0
  352. package/src/widget/hooks/useSendForm.ts +715 -0
  353. package/src/widget/hooks/useTokenList.ts +397 -0
  354. package/src/widget/index.css +2 -0
  355. package/src/widget/index.tsx +8 -0
  356. package/src/widget/types/svg.d.ts +8 -0
  357. package/src/widget/types.ts +59 -0
  358. package/src/widget/widget.tsx +1438 -0
  359. package/index.js +0 -1
package/src/types.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ declare global {
2
+ interface Window {
3
+ Buffer: typeof import("buffer").Buffer
4
+ ethereum?: any
5
+ }
6
+ }
7
+
8
+ declare module "*.svg" {
9
+ const content: string
10
+ export default content
11
+ }
package/src/umd.tsx ADDED
@@ -0,0 +1,49 @@
1
+ import React from "react"
2
+ import { createRoot } from "react-dom/client"
3
+ import type { RelayerEnv } from "./relayer.js"
4
+ import type { Theme } from "./theme.js"
5
+ import { TrailsWidget } from "./widget/widget.js"
6
+
7
+ interface TrailsGlobal {
8
+ render: (
9
+ element: HTMLElement,
10
+ options: {
11
+ appId: string
12
+ indexerUrl?: string
13
+ apiUrl?: string
14
+ env?: RelayerEnv
15
+ toRecipient?: string
16
+ toAmount?: string
17
+ toChainId?: number | string
18
+ toToken?: string
19
+ toCalldata?: string
20
+ theme?: Theme
21
+ },
22
+ ) => void
23
+ }
24
+
25
+ const TrailsGlobal: TrailsGlobal = {
26
+ render: (element, options) => {
27
+ const root = createRoot(element)
28
+ root.render(
29
+ <React.StrictMode>
30
+ <TrailsWidget {...options} />
31
+ </React.StrictMode>,
32
+ )
33
+ },
34
+ }
35
+
36
+ // Export for both UMD and ESM/CJS
37
+ export default TrailsGlobal
38
+
39
+ // Explicitly set the global for UMD
40
+ if (typeof window !== "undefined") {
41
+ window.TrailsWidget = TrailsGlobal
42
+ }
43
+
44
+ // Add type declaration for window object
45
+ declare global {
46
+ interface Window {
47
+ TrailsWidget: TrailsGlobal
48
+ }
49
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,16 @@
1
+ export async function requestWithTimeout<T>(
2
+ client: { request: (...args: any[]) => Promise<T> },
3
+ args: Parameters<typeof client.request>,
4
+ timeoutMs: number,
5
+ ): Promise<T> {
6
+ return Promise.race([
7
+ client.request(...args),
8
+ new Promise<never>((_, reject) =>
9
+ setTimeout(() => reject(new Error("Request timed out")), timeoutMs),
10
+ ),
11
+ ])
12
+ }
13
+
14
+ export function bigintToString(n: bigint): string {
15
+ return n.toString()
16
+ }
@@ -0,0 +1,4 @@
1
+ declare module "*.css?inline" {
2
+ const content: string
3
+ export default content
4
+ }
@@ -0,0 +1,31 @@
1
+ <svg width="1025" height="1025" viewBox="0 0 1025 1025" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_542_3186)">
3
+ <path d="M862.005 871.546L689.114 820.065L558.73 898.006L467.763 897.968L337.303 820.065L164.488 871.546L111.92 694.087L164.488 497.133L111.92 330.613L164.488 124.233L434.526 285.567H591.967L862.005 124.233L914.573 330.613L862.005 497.133L914.573 694.087L862.005 871.546Z" fill="#FF5C16"/>
4
+ <path d="M164.527 124.233L434.566 285.68L423.826 396.479L164.527 124.233Z" fill="#FF5C16"/>
5
+ <path d="M337.34 694.163L456.155 784.672L337.34 820.065V694.163Z" fill="#FF5C16"/>
6
+ <path d="M446.659 544.525L423.823 396.554L277.65 497.169L277.574 497.132V497.207L278.026 600.776L337.302 544.525H337.34H446.659Z" fill="#FF5C16"/>
7
+ <path d="M862.005 124.233L591.967 285.68L602.669 396.479L862.005 124.233Z" fill="#FF5C16"/>
8
+ <path d="M689.19 694.163L570.375 784.672L689.19 820.065V694.163Z" fill="#FF5C16"/>
9
+ <path d="M748.922 497.207H748.96H748.922V497.132L748.884 497.169L602.711 396.554L579.875 544.525H689.194L748.508 600.776L748.922 497.207Z" fill="#FF5C16"/>
10
+ <path d="M337.303 820.062L164.488 871.544L111.92 694.16H337.303V820.062Z" fill="#E34807"/>
11
+ <path d="M446.623 544.487L479.634 758.4L433.886 639.463L277.953 600.776L337.267 544.487H446.586H446.623Z" fill="#E34807"/>
12
+ <path d="M689.188 820.062L862.003 871.544L914.571 694.16H689.188V820.062Z" fill="#E34807"/>
13
+ <path d="M579.87 544.487L546.859 758.4L592.607 639.463L748.54 600.776L689.189 544.487H579.87Z" fill="#E34807"/>
14
+ <path d="M111.92 694.085L164.488 497.131H277.538L277.952 600.737L433.886 639.424L479.633 758.361L456.119 784.556L337.304 694.047H111.92V694.085Z" fill="#FF8D5D"/>
15
+ <path d="M914.573 694.085L862.004 497.131H748.955L748.54 600.737L592.607 639.424L546.859 758.361L570.374 784.556L689.189 694.047H914.573V694.085Z" fill="#FF8D5D"/>
16
+ <path d="M591.969 285.567H513.249H434.528L423.826 396.366L479.635 758.25H546.862L602.709 396.366L591.969 285.567Z" fill="#FF8D5D"/>
17
+ <path d="M164.488 124.233L111.92 330.613L164.488 497.133H277.538L423.787 396.479L164.488 124.233Z" fill="#661800"/>
18
+ <path d="M413.951 587.451H362.739L334.854 614.781L433.923 639.349L413.951 587.413V587.451Z" fill="#661800"/>
19
+ <path d="M862.006 124.233L914.574 330.613L862.006 497.133H748.956L602.707 396.479L862.006 124.233Z" fill="#661800"/>
20
+ <path d="M612.617 587.451H663.904L691.79 614.819L592.607 639.424L612.617 587.413V587.451Z" fill="#661800"/>
21
+ <path d="M558.692 827.41L570.373 784.635L546.859 758.44H479.594L456.08 784.635L467.762 827.41" fill="#661800"/>
22
+ <path d="M558.689 827.407V898.043H467.76V827.407H558.689Z" fill="#C0C4CD"/>
23
+ <path d="M337.34 819.99L467.837 898.007V827.372L456.155 784.597L337.34 819.99Z" fill="#E7EBF6"/>
24
+ <path d="M689.19 819.99L558.693 898.007V827.372L570.375 784.597L689.19 819.99Z" fill="#E7EBF6"/>
25
+ </g>
26
+ <defs>
27
+ <clipPath id="clip0_542_3186">
28
+ <rect width="1024" height="1024" fill="white" transform="translate(0.986328 0.5)"/>
29
+ </clipPath>
30
+ </defs>
31
+ </svg>
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!-- Generator: Adobe Illustrator 29.4.0, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 142 136.878" style="enable-background:new 0 0 142 136.878;" xml:space="preserve">
5
+ <path style="fill:#FF5C16;" d="M132.682,132.192l-30.583-9.106l-23.063,13.787l-16.092-0.007l-23.077-13.78l-30.569,9.106L0,100.801
6
+ l9.299-34.839L0,36.507L9.299,0l47.766,28.538h27.85L132.682,0l9.299,36.507l-9.299,29.455l9.299,34.839L132.682,132.192
7
+ L132.682,132.192z"/>
8
+ <path style="fill:#FF5C16;" d="M9.305,0l47.767,28.558l-1.899,19.599L9.305,0z M39.875,100.814l21.017,16.01l-21.017,6.261
9
+ C39.875,123.085,39.875,100.814,39.875,100.814z M59.212,74.345l-4.039-26.174L29.317,65.97l-0.014-0.007v0.013l0.08,18.321
10
+ l10.485-9.951L59.212,74.345L59.212,74.345z M132.682,0L84.915,28.558l1.893,19.599L132.682,0z M102.113,100.814l-21.018,16.01
11
+ l21.018,6.261V100.814z M112.678,65.975h0.007H112.678v-0.013l-0.006,0.007L86.815,48.171l-4.039,26.174h19.336l10.492,9.95
12
+ C112.604,84.295,112.678,65.975,112.678,65.975z"/>
13
+ <path style="fill:#E34807;" d="M39.868,123.085l-30.569,9.106L0,100.814h39.868C39.868,100.814,39.868,123.085,39.868,123.085z
14
+ M59.205,74.338l5.839,37.84l-8.093-21.04L29.37,84.295l10.491-9.956h19.344L59.205,74.338z M102.112,123.085l30.57,9.106
15
+ l9.299-31.378h-39.869C102.112,100.814,102.112,123.085,102.112,123.085z M82.776,74.338l-5.839,37.84l8.092-21.04l27.583-6.843
16
+ l-10.498-9.956H82.776V74.338z"/>
17
+ <path style="fill:#FF8D5D;" d="M0,100.801l9.299-34.839h19.997l0.073,18.327l27.584,6.843l8.092,21.039l-4.16,4.633l-21.017-16.01H0
18
+ V100.801z M141.981,100.801l-9.299-34.839h-19.998l-0.073,18.327l-27.582,6.843l-8.093,21.039l4.159,4.633l21.018-16.01h39.868
19
+ V100.801z M84.915,28.538h-27.85l-1.891,19.599l9.872,64.013h11.891l9.878-64.013L84.915,28.538z"/>
20
+ <path style="fill:#661800;" d="M9.299,0L0,36.507l9.299,29.455h19.997l25.87-17.804L9.299,0z M53.426,81.938h-9.059l-4.932,4.835
21
+ l17.524,4.344l-3.533-9.186V81.938z M132.682,0l9.299,36.507l-9.299,29.455h-19.998L86.815,48.158L132.682,0z M88.568,81.938h9.072
22
+ l4.932,4.841l-17.544,4.353l3.54-9.201V81.938z M79.029,124.385l2.067-7.567l-4.16-4.633h-11.9l-4.159,4.633l2.066,7.567"/>
23
+ <path style="fill:#C0C4CD;" d="M79.029,124.384v12.495H62.945v-12.495L79.029,124.384L79.029,124.384z"/>
24
+ <path style="fill:#E7EBF6;" d="M39.875,123.072l23.083,13.8v-12.495l-2.067-7.566C60.891,116.811,39.875,123.072,39.875,123.072z
25
+ M102.113,123.072l-23.084,13.8v-12.495l2.067-7.566C81.096,116.811,102.113,123.072,102.113,123.072z"/>
26
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 127 63">
2
+ <path fill="currentColor" d="M71.554 48.607v13.81h-7.072v-9.568l-8.059.945c-1.77.205-2.548.79-2.548 1.864 0 1.575 1.478 2.239 4.648 2.239 1.932 0 4.073-.29 5.963-.79l-3.66 5.225c-1.479.332-2.92.496-4.44.496-6.414 0-10.074-2.57-10.074-7.132 0-4.023 2.877-6.136 9.416-6.884l8.638-1.012c-.467-2.532-2.362-3.633-6.13-3.633-3.537 0-7.443.912-10.937 2.613l1.111-6.18c3.248-1.369 6.95-2.074 10.69-2.074 8.226 0 12.461 3.444 12.461 10.075l-.008.005ZM7.938 31.315.208 62.416h7.73l3.836-15.628 6.65 8.039h8.06l6.65-8.039 3.836 15.628h7.73l-7.73-31.105-14.518 17.388L7.934 31.311l.004.004ZM36.97.21 22.452 17.598 7.938.21.208 31.315h7.73l3.836-15.628 6.65 8.039h8.06l6.65-8.039 3.836 15.628h7.73L36.97.21Zm53.17 48.107-6.25-.912c-1.562-.247-2.178-.747-2.178-1.617 0-1.41 1.52-2.032 4.647-2.032 3.62 0 6.868.747 10.283 2.364l-.862-6.094c-2.757-.995-5.922-1.491-9.212-1.491-7.688 0-11.886 2.696-11.886 7.547 0 3.776 2.303 5.889 7.196 6.636l6.335.954c1.603.248 2.261.87 2.261 1.865 0 1.41-1.478 2.074-4.481 2.074-3.948 0-8.225-.953-11.72-2.654l.7 6.094c3.003 1.122 6.91 1.785 10.57 1.785 7.896 0 12.007-2.78 12.007-7.715 0-3.94-2.303-6.057-7.4-6.8l-.01-.004ZM100.3 34.09v28.325h7.071V34.091H100.3Zm15.334 15.595 9.833-10.744h-8.8l-9.296 11.114 9.912 12.356h8.925l-10.574-12.73v.004Zm-16.321-25.09c0 4.56 3.66 7.13 10.074 7.13 1.52 0 2.961-.167 4.44-.495l3.66-5.225c-1.89.496-4.031.79-5.963.79-3.166 0-4.648-.664-4.648-2.239 0-1.079.783-1.659 2.549-1.864l8.058-.945v9.567h7.072v-13.81c0-6.635-4.236-10.075-12.461-10.075-3.744 0-7.442.705-10.691 2.075l-1.112 6.178c3.495-1.701 7.401-2.613 10.937-2.613 3.769 0 5.664 1.1 6.13 3.633l-8.637 1.013c-6.539.747-9.417 2.86-9.417 6.883l.009-.004Zm-19.779-1.492c0 5.725 3.29 8.627 9.787 8.627 2.59 0 4.732-.416 6.785-1.37l.903-6.261c-1.974 1.2-3.99 1.822-6.005 1.822-3.044 0-4.402-1.243-4.402-4.023v-8.295h10.732V7.84H86.601V2.948l-13.448 7.174v3.482h6.372V23.1l.008.004Zm-6.95-2.612v1.411H53.47c.862 2.873 3.423 4.187 7.97 4.187 3.62 0 6.993-.747 9.992-2.196l-.862 6.056c-2.757 1.16-6.251 1.785-9.829 1.785-9.5 0-14.68-4.23-14.68-12.066 0-7.838 5.264-12.235 13.406-12.235s13.119 4.771 13.119 13.062l-.005-.004ZM53.378 17.09h12.086c-.637-2.751-2.732-4.188-6.08-4.188-3.349 0-5.335 1.399-6.006 4.188Z"/>
3
+ </svg>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 127 63">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #fff;
7
+ }
8
+ </style>
9
+ </defs>
10
+ <!-- Generator: Adobe Illustrator 28.7.1, SVG Export Plug-In . SVG Version: 1.2.0 Build 142) -->
11
+ <g>
12
+ <g id="Layer_1">
13
+ <path class="cls-1" d="M71.6,48.6v13.8h-7.1v-9.6l-8.1.9c-1.8.2-2.5.8-2.5,1.9,0,1.6,1.5,2.2,4.6,2.2s4.1-.3,6-.8l-3.7,5.2c-1.5.3-2.9.5-4.4.5-6.4,0-10.1-2.6-10.1-7.1s2.9-6.1,9.4-6.9l8.6-1c-.5-2.5-2.4-3.6-6.1-3.6s-7.4.9-10.9,2.6l1.1-6.2c3.2-1.4,7-2.1,10.7-2.1,8.2,0,12.5,3.4,12.5,10.1h0s0,0,0,0ZM7.9,31.3L.2,62.4h7.7l3.8-15.6,6.6,8h8.1l6.7-8,3.8,15.6h7.7l-7.7-31.1-14.5,17.4L7.9,31.3h0ZM37,.2l-14.5,17.4L7.9.2.2,31.3h7.7l3.8-15.6,6.6,8h8.1l6.7-8,3.8,15.6h7.7L37,.2ZM90.1,48.3l-6.2-.9c-1.6-.2-2.2-.7-2.2-1.6,0-1.4,1.5-2,4.6-2s6.9.7,10.3,2.4l-.9-6.1c-2.8-1-5.9-1.5-9.2-1.5-7.7,0-11.9,2.7-11.9,7.5s2.3,5.9,7.2,6.6l6.3,1c1.6.2,2.3.9,2.3,1.9,0,1.4-1.5,2.1-4.5,2.1s-8.2-1-11.7-2.7l.7,6.1c3,1.1,6.9,1.8,10.6,1.8,7.9,0,12-2.8,12-7.7s-2.3-6.1-7.4-6.8h0s0,0,0,0ZM100.3,34.1v28.3h7.1v-28.3h-7.1ZM115.6,49.7l9.8-10.7h-8.8l-9.3,11.1,9.9,12.4h8.9l-10.6-12.7s0,0,0,0ZM99.3,24.6c0,4.6,3.7,7.1,10.1,7.1s3-.2,4.4-.5l3.7-5.2c-1.9.5-4,.8-6,.8-3.2,0-4.6-.7-4.6-2.2s.8-1.7,2.5-1.9l8.1-.9v9.6h7.1v-13.8c0-6.6-4.2-10.1-12.5-10.1s-7.4.7-10.7,2.1l-1.1,6.2c3.5-1.7,7.4-2.6,10.9-2.6s5.7,1.1,6.1,3.6l-8.6,1c-6.5.7-9.4,2.9-9.4,6.9h0s0,0,0,0ZM79.5,23.1c0,5.7,3.3,8.6,9.8,8.6s4.7-.4,6.8-1.4l.9-6.3c-2,1.2-4,1.8-6,1.8-3,0-4.4-1.2-4.4-4v-8.3h10.7v-5.8h-10.7V2.9l-13.4,7.2v3.5h6.4v9.5h0s0,0,0,0ZM72.6,20.5v1.4h-19.1c.9,2.9,3.4,4.2,8,4.2s7-.7,10-2.2l-.9,6.1c-2.8,1.2-6.3,1.8-9.8,1.8-9.5,0-14.7-4.2-14.7-12.1s5.3-12.2,13.4-12.2,13.1,4.8,13.1,13.1h0s0,0,0,0ZM53.4,17.1h12.1c-.6-2.8-2.7-4.2-6.1-4.2s-5.3,1.4-6,4.2Z"/>
14
+ </g>
15
+ </g>
16
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg width="346" height="78" viewBox="0 0 346 78" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M253.808 41.4359H252.758L239.096 1.81787H223.094V3.45587L242.366 58.7819H263.618L282.896 3.45587V1.81787H267.59L253.802 41.4359H253.808Z" fill="#010110"/>
3
+ <path d="M218.834 1.81787H202.922V58.7759H218.834V1.81787Z" fill="#010110"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M330.164 1.81215H330.176L316.388 41.4422H315.338L301.676 1.81815H285.674V3.46815L306.608 63.5762H286.784V76.7702H306.158C314.432 76.7702 320.876 73.9802 324.002 65.0762C324.422 63.8882 345.47 3.45615 345.47 3.45615V1.80615H330.164V1.81215Z" fill="#010110"/>
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M121.832 0.27002C114.596 0.27002 107.834 3.95402 103.616 10.878H102.638V1.87802H87.47V76.752H103.586V51.528H104.576C104.684 51.678 104.792 51.834 104.9 51.96C107.618 55.266 113.966 60.306 121.862 60.306C136.232 60.306 146.06 47.886 146.06 30.294C146.06 12.702 135.746 0.27002 121.832 0.27002ZM117.02 47.958C109.52 47.958 104.342 42.114 104.342 30.3C104.342 18.486 109.52 12.642 117.02 12.642C124.52 12.642 129.95 18.612 129.95 30.3C129.95 41.988 124.646 47.958 117.02 47.958Z" fill="#010110"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M186.032 1.81201C178.562 1.81201 173.768 3.06001 170.966 10.878H170.006V1.81801H146.936V14.898H152.084C153.782 14.898 154.616 15.498 154.832 16.89V27.762H154.892V58.782H171.008V28.566C171.008 20.742 173.132 15.948 180.956 15.948H197.84V1.81201H186.038H186.032Z" fill="#010110"/>
7
+ <path d="M30.53 60.2881C47.096 60.2881 60.53 46.8541 60.53 30.2881C60.53 13.7221 47.096 0.288086 30.53 0.288086C13.964 0.288086 0.530029 13.7221 0.530029 30.2881C0.530029 46.8541 13.964 60.2881 30.53 60.2881Z" fill="#010110"/>
8
+ <path d="M30.53 77.73C41.852 77.73 51.032 75.798 51.032 73.428C51.032 71.058 41.858 69.126 30.53 69.126C19.202 69.126 10.028 71.058 10.028 73.428C10.028 75.798 19.202 77.73 30.53 77.73Z" fill="#010110"/>
9
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg width="346" height="78" viewBox="0 0 346 78" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M253.808 41.4361H252.758L239.096 1.81812H223.094V3.45612L242.366 58.7821H263.618L282.896 3.45612V1.81812H267.59L253.802 41.4361H253.808Z" fill="white"/>
3
+ <path d="M218.834 1.81812H202.922V58.7761H218.834V1.81812Z" fill="white"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M330.164 1.81215H330.176L316.388 41.4422H315.338L301.676 1.81815H285.674V3.46815L306.608 63.5762H286.784V76.7702H306.158C314.432 76.7702 320.876 73.9802 324.002 65.0762C324.422 63.8882 345.47 3.45615 345.47 3.45615V1.80615H330.164V1.81215Z" fill="white"/>
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M121.832 0.27002C114.596 0.27002 107.834 3.95402 103.616 10.878H102.638V1.87802H87.47V76.752H103.586V51.528H104.576C104.684 51.678 104.792 51.834 104.9 51.96C107.618 55.266 113.966 60.306 121.862 60.306C136.232 60.306 146.06 47.886 146.06 30.294C146.06 12.702 135.746 0.27002 121.832 0.27002ZM117.02 47.958C109.52 47.958 104.342 42.114 104.342 30.3C104.342 18.486 109.52 12.642 117.02 12.642C124.52 12.642 129.95 18.612 129.95 30.3C129.95 41.988 124.646 47.958 117.02 47.958Z" fill="white"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M186.032 1.81201C178.562 1.81201 173.768 3.06001 170.966 10.878H170.006V1.81801H146.936V14.898H152.084C153.782 14.898 154.616 15.498 154.832 16.89V27.762H154.892V58.782H171.008V28.566C171.008 20.742 173.132 15.948 180.956 15.948H197.84V1.81201H186.038H186.032Z" fill="white"/>
7
+ <path d="M30.53 60.2881C47.096 60.2881 60.53 46.8541 60.53 30.2881C60.53 13.7221 47.096 0.288086 30.53 0.288086C13.964 0.288086 0.530029 13.7221 0.530029 30.2881C0.530029 46.8541 13.964 60.2881 30.53 60.2881Z" fill="white"/>
8
+ <path d="M30.53 77.73C41.852 77.73 51.032 75.798 51.032 73.428C51.032 71.058 41.858 69.126 30.53 69.126C19.202 69.126 10.028 71.058 10.028 73.428C10.028 75.798 19.202 77.73 30.53 77.73Z" fill="white"/>
9
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="88" height="34" viewBox="0 0 88 34" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M38.6446 28.5C37.5577 28.5 36.5651 28.3035 35.6667 27.9104C34.7794 27.5066 34.0752 26.9223 33.5539 26.1574C33.0326 25.3924 32.772 24.4575 32.772 23.3526C32.772 21.5571 33.4929 20.176 34.9347 19.2092C36.3765 18.2424 38.6391 17.7536 41.7224 17.743L43.4692 17.7271V16.8825C43.4692 16.2344 43.2751 15.751 42.8869 15.4323C42.5098 15.1029 41.9164 14.9436 41.1068 14.9542C40.5301 14.9648 39.9478 15.0976 39.36 15.3526C38.7722 15.5969 38.3563 16.0538 38.1123 16.7231H33.4707C33.5372 15.4801 33.9199 14.4655 34.6186 13.6793C35.3173 12.8931 36.249 12.3141 37.4135 11.9422C38.5892 11.5704 39.9034 11.3845 41.3564 11.3845C43.2418 11.3845 44.7335 11.6023 45.8315 12.0378C46.9296 12.4628 47.7115 13.0631 48.1773 13.8386C48.6542 14.6036 48.8926 15.5066 48.8926 16.5478V28.1813H44.1845L43.7021 25.4562C43.1586 26.6142 42.4765 27.411 41.6558 27.8466C40.8351 28.2822 39.8314 28.5 38.6446 28.5ZM40.5911 25.01C40.9682 25.01 41.3286 24.9462 41.6724 24.8187C42.0163 24.6912 42.3213 24.5159 42.5874 24.2928C42.8536 24.0591 43.0644 23.8041 43.2196 23.5279C43.3749 23.2517 43.4581 22.9542 43.4692 22.6355V20.3884L42.0717 20.4044C41.495 20.4044 40.8961 20.4788 40.275 20.6275C39.665 20.7762 39.1493 21.0259 38.7278 21.3765C38.3064 21.7165 38.0956 22.1892 38.0956 22.7948C38.0956 23.4854 38.3452 24.0272 38.8443 24.4203C39.3434 24.8134 39.9256 25.01 40.5911 25.01Z" fill="black"/>
3
+ <path d="M19.5117 28.1813V11.7032H24.9685V15.9263C25.2346 15.0657 25.6173 14.2955 26.1164 13.6155C26.6266 12.925 27.2532 12.3831 27.9963 11.99C28.7394 11.5863 29.5989 11.3845 30.5749 11.3845C30.6969 11.3845 30.8023 11.3898 30.891 11.4004C30.9908 11.4004 31.0518 11.411 31.074 11.4323V16.5797C31.0186 16.5584 30.9465 16.5425 30.8577 16.5319C30.7801 16.5212 30.6969 16.5159 30.6082 16.5159C29.5213 16.4097 28.6229 16.4256 27.9131 16.5637C27.2144 16.7019 26.6598 16.925 26.2495 17.2331C25.8502 17.5412 25.5674 17.9077 25.401 18.3327C25.2457 18.7576 25.1681 19.2198 25.1681 19.7191V28.1813H19.5117Z" fill="black"/>
4
+ <path d="M11.3461 28.3884C9.69352 28.3884 8.41251 28.1919 7.50306 27.7988C6.60469 27.3951 5.97805 26.8479 5.62314 26.1574C5.27933 25.4562 5.10742 24.6647 5.10742 23.7829V15.4163H2.3125V11.7032H5.30705L6.75442 6.6514H10.7638V11.6713H14.5403V15.4163H10.7638L10.7804 23.5438C10.7804 23.8732 10.8303 24.1175 10.9302 24.2769C11.0411 24.4363 11.1908 24.5425 11.3793 24.5956C11.5679 24.6487 11.7952 24.6753 12.0614 24.6753H14.5735V27.9422C14.3406 28.0379 13.9802 28.1335 13.4922 28.2291C13.0042 28.3353 12.2888 28.3884 11.3461 28.3884Z" fill="black"/>
5
+ <path d="M66.5682 28.5C65.1375 28.5 64.0118 28.3459 63.1911 28.0378C62.3814 27.7297 61.788 27.3313 61.411 26.8426C61.0339 26.3433 60.7954 25.7908 60.6956 25.1853C60.6069 24.5797 60.5625 23.9794 60.5625 23.3845V4.5H66.1024V22.6833C66.1024 23.1826 66.1794 23.7863 66.4234 24.1582C66.6674 24.5194 67.1942 24.7478 68.0038 24.8434L68.7525 24.8912L68.7975 28.0538C68.4426 28.1706 68.0766 28.2716 67.6995 28.3566C67.3224 28.4522 66.9453 28.5 66.5682 28.5Z" fill="black"/>
6
+ <path d="M51.9839 28.1813V11.7032H57.3741V28.1813H51.9839ZM51.9673 9.85458V5.13745H57.4074V9.85458H51.9673Z" fill="black"/>
7
+ <rect x="66.1875" y="24.875" width="9.54688" height="3.625" fill="black"/>
8
+ <path d="M76.3006 11.3848C78.5409 11.3848 80.3216 11.8522 81.6414 12.7871C82.961 13.722 83.6264 15.0127 83.6375 16.6592H78.9793C78.8573 16.0963 78.5411 15.6716 78.0311 15.3848C77.532 15.0873 76.9329 14.9385 76.2342 14.9385C75.5244 14.9385 74.9253 15.0554 74.4373 15.2891C73.9607 15.5121 73.7225 15.8519 73.7225 16.3086C73.7225 16.6592 73.9329 16.9408 74.3543 17.1533C74.7757 17.3658 75.4466 17.5576 76.367 17.7275L78.8797 18.2207C79.911 18.465 80.7482 18.7947 81.3914 19.209C82.0347 19.6127 82.5281 20.0542 82.8719 20.5322C83.2267 21.0102 83.4657 21.4879 83.5877 21.9658C83.7208 22.4332 83.7869 22.8478 83.7869 23.209C83.7869 24.3458 83.4598 25.3076 82.8055 26.0938C82.1622 26.8798 81.269 27.4802 80.1268 27.8945C78.9956 28.2981 77.709 28.5 76.2674 28.5C75.0698 28.5 73.8998 28.3091 72.7576 27.9268C71.6153 27.5443 70.6386 26.933 69.8289 26.0938C69.4823 25.7344 69.1889 25.3279 68.9481 24.875H76.2244C76.227 24.875 76.2297 24.875 76.2322 24.875C77.0527 24.875 77.7202 24.7552 78.2303 24.5322C78.7404 24.3091 78.9959 23.9685 78.9959 23.5117C78.9959 23.1294 78.835 22.8316 78.5135 22.6191C78.2029 22.3961 77.6533 22.2212 76.866 22.0938L74.0877 21.5996C72.5019 21.3127 71.2264 20.7863 70.2615 20.0215C69.2969 19.246 68.8088 18.152 68.7977 16.7393C68.7866 15.73 69.0696 14.8211 69.6463 14.0137C70.223 13.2064 71.0713 12.569 72.1912 12.1016C73.3114 11.6235 74.6815 11.3848 76.3006 11.3848Z" fill="black"/>
9
+ <rect x="12.3125" y="11.6797" width="10.1875" height="3.74219" fill="black"/>
10
+ <rect x="1.31738" y="11.6797" width="10.1875" height="3.74219" fill="black"/>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="88" height="34" viewBox="0 0 88 34" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M38.6446 28.5C37.5577 28.5 36.5651 28.3035 35.6667 27.9104C34.7794 27.5066 34.0752 26.9223 33.5539 26.1574C33.0326 25.3924 32.772 24.4575 32.772 23.3526C32.772 21.5571 33.4929 20.176 34.9347 19.2092C36.3765 18.2424 38.6391 17.7536 41.7224 17.743L43.4692 17.7271V16.8825C43.4692 16.2344 43.2751 15.751 42.8869 15.4323C42.5098 15.1029 41.9164 14.9436 41.1068 14.9542C40.5301 14.9648 39.9478 15.0976 39.36 15.3526C38.7722 15.5969 38.3563 16.0538 38.1123 16.7231H33.4707C33.5372 15.4801 33.9199 14.4655 34.6186 13.6793C35.3173 12.8931 36.249 12.3141 37.4135 11.9422C38.5892 11.5704 39.9034 11.3845 41.3564 11.3845C43.2418 11.3845 44.7335 11.6023 45.8315 12.0378C46.9296 12.4628 47.7115 13.0631 48.1773 13.8386C48.6542 14.6036 48.8926 15.5066 48.8926 16.5478V28.1813H44.1845L43.7021 25.4562C43.1586 26.6142 42.4765 27.411 41.6558 27.8466C40.8351 28.2822 39.8314 28.5 38.6446 28.5ZM40.5911 25.01C40.9682 25.01 41.3286 24.9462 41.6724 24.8187C42.0163 24.6912 42.3213 24.5159 42.5874 24.2928C42.8536 24.0591 43.0644 23.8041 43.2196 23.5279C43.3749 23.2517 43.4581 22.9542 43.4692 22.6355V20.3884L42.0717 20.4044C41.495 20.4044 40.8961 20.4788 40.275 20.6275C39.665 20.7762 39.1493 21.0259 38.7278 21.3765C38.3064 21.7165 38.0956 22.1892 38.0956 22.7948C38.0956 23.4854 38.3452 24.0272 38.8443 24.4203C39.3434 24.8134 39.9256 25.01 40.5911 25.01Z" fill="white"/>
3
+ <path d="M19.5117 28.1813V11.7032H24.9685V15.9263C25.2346 15.0657 25.6173 14.2955 26.1164 13.6155C26.6266 12.925 27.2532 12.3831 27.9963 11.99C28.7394 11.5863 29.5989 11.3845 30.5749 11.3845C30.6969 11.3845 30.8023 11.3898 30.891 11.4004C30.9908 11.4004 31.0518 11.411 31.074 11.4323V16.5797C31.0186 16.5584 30.9465 16.5425 30.8577 16.5319C30.7801 16.5212 30.6969 16.5159 30.6082 16.5159C29.5213 16.4097 28.6229 16.4256 27.9131 16.5637C27.2144 16.7019 26.6598 16.925 26.2495 17.2331C25.8502 17.5412 25.5674 17.9077 25.401 18.3327C25.2457 18.7576 25.1681 19.2198 25.1681 19.7191V28.1813H19.5117Z" fill="white"/>
4
+ <path d="M11.3461 28.3884C9.69352 28.3884 8.41251 28.1919 7.50306 27.7988C6.60469 27.3951 5.97805 26.8479 5.62314 26.1574C5.27933 25.4562 5.10742 24.6647 5.10742 23.7829V15.4163H2.3125V11.7032H5.30705L6.75442 6.6514H10.7638V11.6713H14.5403V15.4163H10.7638L10.7804 23.5438C10.7804 23.8732 10.8303 24.1175 10.9302 24.2769C11.0411 24.4363 11.1908 24.5425 11.3793 24.5956C11.5679 24.6487 11.7952 24.6753 12.0614 24.6753H14.5735V27.9422C14.3406 28.0379 13.9802 28.1335 13.4922 28.2291C13.0042 28.3353 12.2888 28.3884 11.3461 28.3884Z" fill="white"/>
5
+ <path d="M66.5682 28.5C65.1375 28.5 64.0118 28.3459 63.1911 28.0378C62.3814 27.7297 61.788 27.3313 61.411 26.8426C61.0339 26.3433 60.7954 25.7908 60.6956 25.1853C60.6069 24.5797 60.5625 23.9794 60.5625 23.3845V4.5H66.1024V22.6833C66.1024 23.1826 66.1794 23.7863 66.4234 24.1582C66.6674 24.5194 67.1942 24.7478 68.0038 24.8434L68.7525 24.8912L68.7975 28.0538C68.4426 28.1706 68.0766 28.2716 67.6995 28.3566C67.3224 28.4522 66.9453 28.5 66.5682 28.5Z" fill="white"/>
6
+ <path d="M51.9839 28.1813V11.7032H57.3741V28.1813H51.9839ZM51.9673 9.85458V5.13745H57.4074V9.85458H51.9673Z" fill="white"/>
7
+ <rect x="66.1875" y="24.875" width="9.54688" height="3.625" fill="white"/>
8
+ <path d="M76.3006 11.3848C78.5409 11.3848 80.3216 11.8522 81.6414 12.7871C82.961 13.722 83.6264 15.0127 83.6375 16.6592H78.9793C78.8573 16.0963 78.5411 15.6716 78.0311 15.3848C77.532 15.0873 76.9329 14.9385 76.2342 14.9385C75.5244 14.9385 74.9253 15.0554 74.4373 15.2891C73.9607 15.5121 73.7225 15.8519 73.7225 16.3086C73.7225 16.6592 73.9329 16.9408 74.3543 17.1533C74.7757 17.3658 75.4466 17.5576 76.367 17.7275L78.8797 18.2207C79.911 18.465 80.7482 18.7947 81.3914 19.209C82.0347 19.6127 82.5281 20.0542 82.8719 20.5322C83.2267 21.0102 83.4657 21.4879 83.5877 21.9658C83.7208 22.4332 83.7869 22.8478 83.7869 23.209C83.7869 24.3458 83.4598 25.3076 82.8055 26.0938C82.1622 26.8798 81.269 27.4802 80.1268 27.8945C78.9956 28.2981 77.709 28.5 76.2674 28.5C75.0698 28.5 73.8998 28.3091 72.7576 27.9268C71.6153 27.5443 70.6386 26.933 69.8289 26.0938C69.4823 25.7344 69.1889 25.3279 68.9481 24.875H76.2244C76.227 24.875 76.2297 24.875 76.2322 24.875C77.0527 24.875 77.7202 24.7552 78.2303 24.5322C78.7404 24.3091 78.9959 23.9685 78.9959 23.5117C78.9959 23.1294 78.835 22.8316 78.5135 22.6191C78.2029 22.3961 77.6533 22.2212 76.866 22.0938L74.0877 21.5996C72.5019 21.3127 71.2264 20.7863 70.2615 20.0215C69.2969 19.246 68.8088 18.152 68.7977 16.7393C68.7866 15.73 69.0696 14.8211 69.6463 14.0137C70.223 13.2064 71.0713 12.569 72.1912 12.1016C73.3114 11.6235 74.6815 11.3848 76.3006 11.3848Z" fill="white"/>
9
+ <rect x="12.3125" y="11.6797" width="10.1875" height="3.74219" fill="white"/>
10
+ <rect x="1.31738" y="11.6797" width="10.1875" height="3.74219" fill="white"/>
11
+ </svg>
@@ -0,0 +1,28 @@
1
+ import { NetworkImage } from "@0xsequence/design-system"
2
+ import type React from "react"
3
+
4
+ interface TokenImageProps {
5
+ chainId?: number
6
+ size?: number
7
+ }
8
+
9
+ export const ChainImage: React.FC<TokenImageProps> = ({
10
+ chainId,
11
+ size = 24,
12
+ }) => {
13
+ return (
14
+ <div
15
+ className={`rounded-full flex items-center justify-center text-sm relative bg-black-100 bg-opacity-90`}
16
+ style={{ width: size, height: size }}
17
+ >
18
+ <NetworkImage
19
+ chainId={chainId ?? 0}
20
+ size="xl"
21
+ className="absolute w-full h-full text-white"
22
+ disableAnimation={true}
23
+ />
24
+ </div>
25
+ )
26
+ }
27
+
28
+ export default ChainImage
@@ -0,0 +1,206 @@
1
+ // biome-ignore lint/style/useImportType: Need to use React
2
+ import React, { useEffect, useState } from "react"
3
+ import { useAccount, useDisconnect } from "wagmi"
4
+ import type { ActiveTheme } from "../../theme.js"
5
+ import MetaMaskFox from "../assets/MetaMask-icon-fox.svg"
6
+ import MetaMaskLogoWhite from "../assets/MetaMask-logo-white.svg"
7
+ import PrivyLogoBlack from "../assets/Privy_Brandmark_Black.svg"
8
+ import PrivyLogoWhite from "../assets/Privy_Brandmark_White.svg"
9
+
10
+ export interface WalletOption {
11
+ id: string
12
+ name: string
13
+ connector: () => void
14
+ }
15
+
16
+ export interface ConnectWalletProps {
17
+ onConnect: (walletId: string) => void
18
+ onDisconnect: () => void
19
+ onContinue: () => void
20
+ onError: (error: Error) => void
21
+ theme?: ActiveTheme
22
+ walletOptions: WalletOption[]
23
+ }
24
+
25
+ export const ConnectWallet: React.FC<ConnectWalletProps> = ({
26
+ onConnect,
27
+ onDisconnect,
28
+ onContinue,
29
+ onError,
30
+ theme = "light",
31
+ walletOptions,
32
+ }) => {
33
+ const { isConnected, address, connector } = useAccount()
34
+ const { disconnect } = useDisconnect()
35
+ const [error, setError] = useState<string | null>(null)
36
+
37
+ useEffect(() => {
38
+ if (error) {
39
+ if (onError) {
40
+ onError(new Error(error))
41
+ }
42
+ }
43
+ }, [error, onError])
44
+
45
+ const handleDisconnect = () => {
46
+ try {
47
+ setError(null)
48
+ disconnect()
49
+ onDisconnect()
50
+ } catch (error) {
51
+ console.error("[trails-sdk] Failed to disconnect:", error)
52
+ setError(
53
+ error instanceof Error ? error.message : "Failed to disconnect wallet",
54
+ )
55
+ }
56
+ }
57
+
58
+ const getWalletButtonStyle = (walletId: string) => {
59
+ let isMetaMask = false
60
+ try {
61
+ if (walletId === "injected") {
62
+ isMetaMask =
63
+ typeof window !== "undefined" && !!window.ethereum?.isMetaMask
64
+ }
65
+ } catch (error) {
66
+ console.error(
67
+ "[trails-sdk] Failed to check if MetaMask is installed:",
68
+ error,
69
+ )
70
+ }
71
+
72
+ if (isMetaMask) {
73
+ return "bg-[#FF5C16] hover:bg-[#FF5C16]/90 text-white"
74
+ }
75
+
76
+ switch (walletId) {
77
+ case "privy":
78
+ return theme === "dark"
79
+ ? "bg-white hover:bg-white/90 text-black"
80
+ : "bg-black hover:bg-black/90 text-white"
81
+ default:
82
+ return theme === "dark"
83
+ ? "bg-blue-600 hover:bg-blue-700"
84
+ : "bg-blue-500 hover:bg-blue-600"
85
+ }
86
+ }
87
+
88
+ return (
89
+ <div className="space-y-6">
90
+ <div className="flex items-center relative">
91
+ <h2
92
+ className={`text-lg font-semibold w-full text-center ${theme === "dark" ? "text-white" : "text-gray-900"}`}
93
+ >
94
+ Connect a Wallet
95
+ </h2>
96
+ </div>
97
+
98
+ {isConnected ? (
99
+ <div className="space-y-4">
100
+ <div
101
+ className={`p-4 rounded-2xl ${theme === "dark" ? "bg-gray-800" : "bg-gray-50"}`}
102
+ >
103
+ <p className={theme === "dark" ? "text-gray-400" : "text-gray-500"}>
104
+ Connected with {connector?.name || ""}
105
+ </p>
106
+ <p
107
+ className={theme === "dark" ? "text-white" : "text-gray-900"}
108
+ style={{ wordBreak: "break-all" }}
109
+ >
110
+ {address}
111
+ </p>
112
+ </div>
113
+ <div className="flex flex-col gap-3">
114
+ {error && (
115
+ <div
116
+ className={`border rounded-lg p-4 ${
117
+ theme === "dark"
118
+ ? "bg-red-900/20 border-red-800"
119
+ : "bg-red-50 border-red-200"
120
+ }`}
121
+ >
122
+ <p
123
+ className={`text-sm break-words ${theme === "dark" ? "text-red-200" : "text-red-600"}`}
124
+ >
125
+ {error}
126
+ </p>
127
+ </div>
128
+ )}
129
+ <button
130
+ type="button"
131
+ onClick={onContinue}
132
+ className={`w-full cursor-pointer font-semibold py-3 px-4 rounded-[24px] transition-colors ${
133
+ theme === "dark"
134
+ ? "bg-blue-600 hover:bg-blue-700 text-white"
135
+ : "bg-blue-500 hover:bg-blue-600 text-white"
136
+ }`}
137
+ >
138
+ Continue
139
+ </button>
140
+ <button
141
+ type="button"
142
+ onClick={handleDisconnect}
143
+ className={`w-full cursor-pointer font-semibold py-3 px-4 rounded-[24px] transition-colors border ${
144
+ theme === "dark"
145
+ ? "bg-gray-800 hover:bg-gray-700 text-white border-gray-700"
146
+ : "bg-white hover:bg-gray-50 text-gray-900 border-gray-200"
147
+ }`}
148
+ >
149
+ Disconnect
150
+ </button>
151
+ </div>
152
+ </div>
153
+ ) : (
154
+ <div className="flex flex-col gap-3">
155
+ {walletOptions.length > 0 ? (
156
+ walletOptions.map((wallet) => (
157
+ <button
158
+ type="button"
159
+ key={wallet.id}
160
+ onClick={() => onConnect(wallet.id)}
161
+ className={`w-full flex items-center justify-center space-x-2 cursor-pointer font-semibold py-3 px-4 rounded-[24px] transition-colors ${getWalletButtonStyle(wallet.id)}`}
162
+ >
163
+ {wallet.id === "privy" ? (
164
+ <img
165
+ src={theme === "dark" ? PrivyLogoBlack : PrivyLogoWhite}
166
+ alt="Privy"
167
+ className="h-6"
168
+ />
169
+ ) : wallet.id === "injected" && window.ethereum?.isMetaMask ? (
170
+ <div className="flex items-center space-x-2">
171
+ <img
172
+ src={MetaMaskFox}
173
+ alt="MetaMask Fox"
174
+ className="h-6 w-6"
175
+ />
176
+ <img
177
+ src={MetaMaskLogoWhite}
178
+ alt="MetaMask"
179
+ className="h-6"
180
+ />
181
+ </div>
182
+ ) : (
183
+ <span>{wallet.name}</span>
184
+ )}
185
+ </button>
186
+ ))
187
+ ) : (
188
+ <div className="space-y-6">
189
+ <div
190
+ className={`text-center p-4 rounded-lg ${
191
+ theme === "dark"
192
+ ? "text-gray-300 bg-gray-800"
193
+ : "text-gray-600 bg-gray-50"
194
+ }`}
195
+ >
196
+ Please connect wallet in dapp
197
+ </div>
198
+ </div>
199
+ )}
200
+ </div>
201
+ )}
202
+ </div>
203
+ )
204
+ }
205
+
206
+ export default ConnectWallet
@@ -0,0 +1,88 @@
1
+ import { ChevronDown } from "lucide-react"
2
+ import type React from "react"
3
+ import { useRef, useState } from "react"
4
+ import { useQueryParams } from "../../queryParams.js"
5
+ import type { ActiveTheme } from "../../theme.js"
6
+
7
+ interface DebugScreensDropdownProps {
8
+ onScreenSelect: (screen: string) => void
9
+ theme?: ActiveTheme
10
+ }
11
+
12
+ const SCREENS = [
13
+ "Connect",
14
+ "Tokens",
15
+ "Send",
16
+ "Wallet Confirmation",
17
+ "Pending 1-item-0-confirmed",
18
+ "Pending 1-item-1-confirmed",
19
+ "Pending 2-item-0-confirmed",
20
+ "Pending 2-item-1-confirmed",
21
+ "Pending 2-item-2-confirmed",
22
+ "Pending 3-item-0-confirmed",
23
+ "Pending 3-item-1-confirmed",
24
+ "Pending 3-item-2-confirmed",
25
+ "Pending 3-item-3-confirmed",
26
+ "Receipt",
27
+ ] as const
28
+
29
+ export const DebugScreensDropdown: React.FC<DebugScreensDropdownProps> = ({
30
+ onScreenSelect,
31
+ theme = "light",
32
+ }) => {
33
+ const [isOpen, setIsOpen] = useState(false)
34
+ const dropdownRef = useRef<HTMLDivElement>(null)
35
+ const { hasParam } = useQueryParams()
36
+
37
+ const shouldShow = hasParam("debug", "true")
38
+
39
+ if (!shouldShow) {
40
+ return null
41
+ }
42
+
43
+ return (
44
+ <div className="relative" ref={dropdownRef}>
45
+ <button
46
+ type="button"
47
+ onClick={() => setIsOpen(!isOpen)}
48
+ className={`p-1 rounded-full hover:bg-opacity-10 ${
49
+ theme === "dark"
50
+ ? "hover:bg-gray-800 text-gray-200"
51
+ : "hover:bg-gray-100 text-gray-700"
52
+ }`}
53
+ >
54
+ <ChevronDown className="w-4 h-4" />
55
+ </button>
56
+
57
+ {isOpen && (
58
+ <div
59
+ className={`absolute bottom-full right-0 mb-1 w-40 border rounded-lg shadow-lg overflow-hidden max-h-[300px] overflow-y-auto ${
60
+ theme === "dark"
61
+ ? "bg-gray-800 border-gray-700 text-gray-200"
62
+ : "bg-white border-gray-200 text-gray-700"
63
+ }`}
64
+ >
65
+ {SCREENS.map((screen) => (
66
+ <button
67
+ key={screen}
68
+ type="button"
69
+ onClick={() => {
70
+ onScreenSelect(screen)
71
+ setIsOpen(false)
72
+ }}
73
+ className={`w-full text-left px-3 py-2 text-sm ${
74
+ theme === "dark"
75
+ ? "text-gray-200 hover:bg-gray-700"
76
+ : "text-gray-700 hover:bg-gray-50"
77
+ }`}
78
+ >
79
+ {screen}
80
+ </button>
81
+ ))}
82
+ </div>
83
+ )}
84
+ </div>
85
+ )
86
+ }
87
+
88
+ export default DebugScreensDropdown