@iota/dapp-kit 0.1.2 → 0.2.0

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/CHANGELOG.md +15 -0
  2. package/dist/cjs/components/AccountDropdownMenu.css +58 -31
  3. package/dist/cjs/components/AccountDropdownMenu.css.css +27 -18
  4. package/dist/cjs/components/AccountDropdownMenu.css.css.map +3 -3
  5. package/dist/cjs/components/AccountDropdownMenu.css.d.ts +1 -0
  6. package/dist/cjs/components/AccountDropdownMenu.css.js +6 -4
  7. package/dist/cjs/components/AccountDropdownMenu.css.js.map +2 -2
  8. package/dist/cjs/components/AccountDropdownMenu.css.map +3 -3
  9. package/dist/cjs/components/AccountDropdownMenu.js +44 -104
  10. package/dist/cjs/components/AccountDropdownMenu.js.map +4 -4
  11. package/dist/cjs/components/ConnectButton.css +195 -191
  12. package/dist/cjs/components/ConnectButton.css.map +3 -3
  13. package/dist/cjs/components/ConnectButton.js +693 -418
  14. package/dist/cjs/components/ConnectButton.js.map +4 -4
  15. package/dist/cjs/components/WalletProvider.js +119 -34
  16. package/dist/cjs/components/WalletProvider.js.map +3 -3
  17. package/dist/cjs/components/connect-modal/ConnectModal.css +177 -224
  18. package/dist/cjs/components/connect-modal/ConnectModal.css.css +32 -69
  19. package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +3 -3
  20. package/dist/cjs/components/connect-modal/ConnectModal.css.d.ts +1 -5
  21. package/dist/cjs/components/connect-modal/ConnectModal.css.js +7 -15
  22. package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +2 -2
  23. package/dist/cjs/components/connect-modal/ConnectModal.css.map +3 -3
  24. package/dist/cjs/components/connect-modal/ConnectModal.js +705 -403
  25. package/dist/cjs/components/connect-modal/ConnectModal.js.map +4 -4
  26. package/dist/cjs/components/connect-modal/InfoSection.css +11 -7
  27. package/dist/cjs/components/connect-modal/InfoSection.css.map +3 -3
  28. package/dist/cjs/components/connect-modal/InfoSection.js +1 -1
  29. package/dist/cjs/components/connect-modal/InfoSection.js.map +2 -2
  30. package/dist/cjs/components/connect-modal/views/GetTheWallet.css +78 -0
  31. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.css +35 -0
  32. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.css.map +7 -0
  33. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.d.ts +5 -0
  34. package/dist/cjs/components/connect-modal/views/{GettingStarted.css.js → GetTheWallet.css.js} +13 -9
  35. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.js.map +7 -0
  36. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.map +7 -0
  37. package/dist/cjs/components/connect-modal/views/GetTheWallet.d.ts +1 -0
  38. package/dist/cjs/components/connect-modal/views/GetTheWallet.js +524 -0
  39. package/dist/cjs/components/connect-modal/views/GetTheWallet.js.map +7 -0
  40. package/dist/cjs/components/connect-modal/views/WalletConnect.css +179 -0
  41. package/dist/cjs/components/connect-modal/views/WalletConnect.css.css +51 -0
  42. package/dist/cjs/components/connect-modal/views/WalletConnect.css.css.map +7 -0
  43. package/dist/cjs/components/connect-modal/views/WalletConnect.css.d.ts +8 -0
  44. package/dist/cjs/components/connect-modal/views/WalletConnect.css.js +41 -0
  45. package/dist/cjs/components/connect-modal/views/WalletConnect.css.js.map +7 -0
  46. package/dist/cjs/components/connect-modal/views/WalletConnect.css.map +7 -0
  47. package/dist/cjs/components/connect-modal/views/WalletConnect.d.ts +7 -0
  48. package/dist/cjs/components/connect-modal/views/WalletConnect.js +325 -0
  49. package/dist/cjs/components/connect-modal/views/WalletConnect.js.map +7 -0
  50. package/dist/cjs/components/connect-modal/views/index.css +214 -0
  51. package/dist/cjs/components/connect-modal/views/index.css.map +7 -0
  52. package/dist/cjs/components/connect-modal/views/index.d.ts +2 -0
  53. package/dist/cjs/components/connect-modal/views/index.js +790 -0
  54. package/dist/cjs/components/connect-modal/views/index.js.map +7 -0
  55. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css +22 -10
  56. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css +5 -2
  57. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css.map +3 -3
  58. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js.map +1 -1
  59. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.map +3 -3
  60. package/dist/cjs/components/connect-modal/wallet-list/WalletList.d.ts +4 -4
  61. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +38 -61
  62. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +4 -4
  63. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css +17 -8
  64. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css +17 -8
  65. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
  66. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.d.ts +1 -0
  67. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js +4 -2
  68. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
  69. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
  70. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js +32 -5
  71. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
  72. package/dist/cjs/components/icons/ArrowRightIcon.d.ts +2 -0
  73. package/dist/cjs/components/icons/{BackIcon.js → ArrowRightIcon.js} +23 -12
  74. package/dist/cjs/components/icons/ArrowRightIcon.js.map +7 -0
  75. package/dist/cjs/components/icons/ArrowTopRightIcon.d.ts +2 -0
  76. package/dist/cjs/components/icons/ArrowTopRightIcon.js +47 -0
  77. package/dist/cjs/components/icons/ArrowTopRightIcon.js.map +7 -0
  78. package/dist/cjs/components/icons/IotaIcon.js +391 -12
  79. package/dist/cjs/components/icons/IotaIcon.js.map +2 -2
  80. package/dist/cjs/components/styling/InjectedThemeStyles.js +13 -8
  81. package/dist/cjs/components/styling/InjectedThemeStyles.js.map +2 -2
  82. package/dist/cjs/components/styling/StyleMarker.css +16 -1
  83. package/dist/cjs/components/styling/StyleMarker.css.css +16 -1
  84. package/dist/cjs/components/styling/StyleMarker.css.css.map +3 -3
  85. package/dist/cjs/components/styling/StyleMarker.css.map +3 -3
  86. package/dist/cjs/components/styling/StyleMarker.js +2 -2
  87. package/dist/cjs/components/styling/StyleMarker.js.map +1 -1
  88. package/dist/cjs/components/ui/Button.css +4 -5
  89. package/dist/cjs/components/ui/Button.css.css +4 -5
  90. package/dist/cjs/components/ui/Button.css.css.map +3 -3
  91. package/dist/cjs/components/ui/Button.css.d.ts +0 -1
  92. package/dist/cjs/components/ui/Button.css.js.map +1 -1
  93. package/dist/cjs/components/ui/Button.css.map +3 -3
  94. package/dist/cjs/components/ui/Button.js.map +1 -1
  95. package/dist/cjs/components/ui/IconButton.css +1 -5
  96. package/dist/cjs/components/ui/IconButton.css.css +1 -5
  97. package/dist/cjs/components/ui/IconButton.css.css.map +3 -3
  98. package/dist/cjs/components/ui/IconButton.css.js.map +1 -1
  99. package/dist/cjs/components/ui/IconButton.css.map +3 -3
  100. package/dist/cjs/components/ui/IconButton.js.map +1 -1
  101. package/dist/cjs/components/ui/Text.css +11 -7
  102. package/dist/cjs/components/ui/Text.css.css +11 -7
  103. package/dist/cjs/components/ui/Text.css.css.map +3 -3
  104. package/dist/cjs/components/ui/Text.css.d.ts +3 -0
  105. package/dist/cjs/components/ui/Text.css.js +1 -1
  106. package/dist/cjs/components/ui/Text.css.js.map +2 -2
  107. package/dist/cjs/components/ui/Text.css.map +3 -3
  108. package/dist/cjs/components/ui/Text.js +1 -1
  109. package/dist/cjs/components/ui/Text.js.map +2 -2
  110. package/dist/cjs/constants/walletDefaults.d.ts +1 -0
  111. package/dist/cjs/constants/walletDefaults.js +4 -1
  112. package/dist/cjs/constants/walletDefaults.js.map +2 -2
  113. package/dist/cjs/index.css +246 -242
  114. package/dist/cjs/index.css.map +3 -3
  115. package/dist/cjs/index.d.ts +1 -1
  116. package/dist/cjs/index.js +1010 -634
  117. package/dist/cjs/index.js.map +4 -4
  118. package/dist/cjs/themes/darkTheme.d.ts +2 -0
  119. package/dist/cjs/themes/darkTheme.js +88 -0
  120. package/dist/cjs/themes/darkTheme.js.map +7 -0
  121. package/dist/cjs/themes/lightTheme.js +30 -25
  122. package/dist/cjs/themes/lightTheme.js.map +2 -2
  123. package/dist/cjs/themes/themeContract.d.ts +22 -12
  124. package/dist/cjs/themes/themeContract.js +13 -8
  125. package/dist/cjs/themes/themeContract.js.map +2 -2
  126. package/dist/esm/components/AccountDropdownMenu.css +58 -31
  127. package/dist/esm/components/AccountDropdownMenu.css.css +27 -18
  128. package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
  129. package/dist/esm/components/AccountDropdownMenu.css.d.ts +1 -0
  130. package/dist/esm/components/AccountDropdownMenu.css.js +6 -4
  131. package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
  132. package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
  133. package/dist/esm/components/AccountDropdownMenu.js +33 -93
  134. package/dist/esm/components/AccountDropdownMenu.js.map +4 -4
  135. package/dist/esm/components/ConnectButton.css +195 -191
  136. package/dist/esm/components/ConnectButton.css.map +3 -3
  137. package/dist/esm/components/ConnectButton.js +677 -402
  138. package/dist/esm/components/ConnectButton.js.map +4 -4
  139. package/dist/esm/components/WalletProvider.js +119 -34
  140. package/dist/esm/components/WalletProvider.js.map +3 -3
  141. package/dist/esm/components/connect-modal/ConnectModal.css +177 -224
  142. package/dist/esm/components/connect-modal/ConnectModal.css.css +32 -69
  143. package/dist/esm/components/connect-modal/ConnectModal.css.css.map +3 -3
  144. package/dist/esm/components/connect-modal/ConnectModal.css.d.ts +1 -5
  145. package/dist/esm/components/connect-modal/ConnectModal.css.js +7 -15
  146. package/dist/esm/components/connect-modal/ConnectModal.css.js.map +2 -2
  147. package/dist/esm/components/connect-modal/ConnectModal.css.map +3 -3
  148. package/dist/esm/components/connect-modal/ConnectModal.js +701 -399
  149. package/dist/esm/components/connect-modal/ConnectModal.js.map +4 -4
  150. package/dist/esm/components/connect-modal/InfoSection.css +11 -7
  151. package/dist/esm/components/connect-modal/InfoSection.css.map +3 -3
  152. package/dist/esm/components/connect-modal/InfoSection.js +1 -1
  153. package/dist/esm/components/connect-modal/InfoSection.js.map +2 -2
  154. package/dist/esm/components/connect-modal/views/GetTheWallet.css +78 -0
  155. package/dist/esm/components/connect-modal/views/GetTheWallet.css.css +35 -0
  156. package/dist/esm/components/connect-modal/views/GetTheWallet.css.css.map +7 -0
  157. package/dist/esm/components/connect-modal/views/GetTheWallet.css.d.ts +5 -0
  158. package/dist/esm/components/connect-modal/views/GetTheWallet.css.js +14 -0
  159. package/dist/esm/components/connect-modal/views/GetTheWallet.css.js.map +7 -0
  160. package/dist/esm/components/connect-modal/views/GetTheWallet.css.map +7 -0
  161. package/dist/esm/components/connect-modal/views/GetTheWallet.d.ts +1 -0
  162. package/dist/esm/components/connect-modal/views/GetTheWallet.js +491 -0
  163. package/dist/esm/components/connect-modal/views/GetTheWallet.js.map +7 -0
  164. package/dist/esm/components/connect-modal/views/WalletConnect.css +179 -0
  165. package/dist/esm/components/connect-modal/views/WalletConnect.css.css +51 -0
  166. package/dist/esm/components/connect-modal/views/WalletConnect.css.css.map +7 -0
  167. package/dist/esm/components/connect-modal/views/WalletConnect.css.d.ts +8 -0
  168. package/dist/esm/components/connect-modal/views/WalletConnect.css.js +20 -0
  169. package/dist/esm/components/connect-modal/views/WalletConnect.css.js.map +7 -0
  170. package/dist/esm/components/connect-modal/views/WalletConnect.css.map +7 -0
  171. package/dist/esm/components/connect-modal/views/WalletConnect.d.ts +7 -0
  172. package/dist/esm/components/connect-modal/views/WalletConnect.js +294 -0
  173. package/dist/esm/components/connect-modal/views/WalletConnect.js.map +7 -0
  174. package/dist/esm/components/connect-modal/views/index.css +214 -0
  175. package/dist/esm/components/connect-modal/views/index.css.map +7 -0
  176. package/dist/esm/components/connect-modal/views/index.d.ts +2 -0
  177. package/dist/esm/components/connect-modal/views/index.js +757 -0
  178. package/dist/esm/components/connect-modal/views/index.js.map +7 -0
  179. package/dist/esm/components/connect-modal/wallet-list/WalletList.css +22 -10
  180. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css +5 -2
  181. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css.map +3 -3
  182. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js.map +1 -1
  183. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.map +3 -3
  184. package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +4 -4
  185. package/dist/esm/components/connect-modal/wallet-list/WalletList.js +38 -61
  186. package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +4 -4
  187. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css +17 -8
  188. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css +17 -8
  189. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
  190. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.d.ts +1 -0
  191. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js +4 -2
  192. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
  193. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
  194. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js +32 -5
  195. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
  196. package/dist/esm/components/icons/ArrowRightIcon.d.ts +2 -0
  197. package/dist/esm/components/icons/ArrowRightIcon.js +26 -0
  198. package/dist/esm/components/icons/ArrowRightIcon.js.map +7 -0
  199. package/dist/esm/components/icons/ArrowTopRightIcon.d.ts +2 -0
  200. package/dist/esm/components/icons/ArrowTopRightIcon.js +26 -0
  201. package/dist/esm/components/icons/ArrowTopRightIcon.js.map +7 -0
  202. package/dist/esm/components/icons/IotaIcon.js +391 -12
  203. package/dist/esm/components/icons/IotaIcon.js.map +2 -2
  204. package/dist/esm/components/styling/InjectedThemeStyles.js +13 -8
  205. package/dist/esm/components/styling/InjectedThemeStyles.js.map +2 -2
  206. package/dist/esm/components/styling/StyleMarker.css +16 -1
  207. package/dist/esm/components/styling/StyleMarker.css.css +16 -1
  208. package/dist/esm/components/styling/StyleMarker.css.css.map +3 -3
  209. package/dist/esm/components/styling/StyleMarker.css.js +2 -2
  210. package/dist/esm/components/styling/StyleMarker.css.js.map +1 -1
  211. package/dist/esm/components/styling/StyleMarker.css.map +3 -3
  212. package/dist/esm/components/styling/StyleMarker.js +2 -2
  213. package/dist/esm/components/styling/StyleMarker.js.map +1 -1
  214. package/dist/esm/components/ui/Button.css +4 -5
  215. package/dist/esm/components/ui/Button.css.css +4 -5
  216. package/dist/esm/components/ui/Button.css.css.map +3 -3
  217. package/dist/esm/components/ui/Button.css.d.ts +0 -1
  218. package/dist/esm/components/ui/Button.css.js.map +1 -1
  219. package/dist/esm/components/ui/Button.css.map +3 -3
  220. package/dist/esm/components/ui/Button.js.map +1 -1
  221. package/dist/esm/components/ui/IconButton.css +1 -5
  222. package/dist/esm/components/ui/IconButton.css.css +1 -5
  223. package/dist/esm/components/ui/IconButton.css.css.map +3 -3
  224. package/dist/esm/components/ui/IconButton.css.js.map +1 -1
  225. package/dist/esm/components/ui/IconButton.css.map +3 -3
  226. package/dist/esm/components/ui/IconButton.js.map +1 -1
  227. package/dist/esm/components/ui/Text.css +11 -7
  228. package/dist/esm/components/ui/Text.css.css +11 -7
  229. package/dist/esm/components/ui/Text.css.css.map +3 -3
  230. package/dist/esm/components/ui/Text.css.d.ts +3 -0
  231. package/dist/esm/components/ui/Text.css.js +1 -1
  232. package/dist/esm/components/ui/Text.css.js.map +2 -2
  233. package/dist/esm/components/ui/Text.css.map +3 -3
  234. package/dist/esm/components/ui/Text.js +1 -1
  235. package/dist/esm/components/ui/Text.js.map +2 -2
  236. package/dist/esm/constants/walletDefaults.d.ts +1 -0
  237. package/dist/esm/constants/walletDefaults.js +4 -1
  238. package/dist/esm/constants/walletDefaults.js.map +2 -2
  239. package/dist/esm/index.css +246 -242
  240. package/dist/esm/index.css.map +3 -3
  241. package/dist/esm/index.d.ts +1 -1
  242. package/dist/esm/index.js +993 -617
  243. package/dist/esm/index.js.map +4 -4
  244. package/dist/esm/themes/darkTheme.d.ts +2 -0
  245. package/dist/esm/themes/darkTheme.js +67 -0
  246. package/dist/esm/themes/darkTheme.js.map +7 -0
  247. package/dist/esm/themes/lightTheme.js +30 -25
  248. package/dist/esm/themes/lightTheme.js.map +2 -2
  249. package/dist/esm/themes/themeContract.d.ts +22 -12
  250. package/dist/esm/themes/themeContract.js +13 -8
  251. package/dist/esm/themes/themeContract.js.map +2 -2
  252. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  253. package/dist/tsconfig.tsbuildinfo +1 -1
  254. package/package.json +3 -3
  255. package/src/components/AccountDropdownMenu.css.ts +17 -11
  256. package/src/components/AccountDropdownMenu.tsx +4 -16
  257. package/src/components/ConnectButton.tsx +1 -4
  258. package/src/components/WalletProvider.tsx +13 -2
  259. package/src/components/connect-modal/ConnectModal.css.ts +17 -58
  260. package/src/components/connect-modal/ConnectModal.tsx +16 -101
  261. package/src/components/connect-modal/views/GetTheWallet.css.ts +38 -0
  262. package/src/components/connect-modal/views/GetTheWallet.tsx +25 -0
  263. package/src/components/connect-modal/views/WalletConnect.css.ts +55 -0
  264. package/src/components/connect-modal/views/WalletConnect.tsx +79 -0
  265. package/src/components/connect-modal/views/index.ts +5 -0
  266. package/src/components/connect-modal/wallet-list/WalletList.css.ts +5 -1
  267. package/src/components/connect-modal/wallet-list/WalletList.tsx +11 -25
  268. package/src/components/connect-modal/wallet-list/WalletListItem.css.ts +14 -6
  269. package/src/components/connect-modal/wallet-list/WalletListItem.tsx +12 -9
  270. package/src/components/icons/ArrowRightIcon.tsx +23 -0
  271. package/src/components/icons/ArrowTopRightIcon.tsx +23 -0
  272. package/src/components/icons/IotaIcon.tsx +222 -6
  273. package/src/components/styling/StyleMarker.css.ts +15 -0
  274. package/src/components/ui/Button.css.ts +3 -5
  275. package/src/components/ui/IconButton.css.ts +0 -3
  276. package/src/components/ui/Text.css.ts +1 -1
  277. package/src/constants/walletDefaults.ts +5 -0
  278. package/src/index.ts +1 -1
  279. package/src/themes/darkTheme.ts +69 -0
  280. package/src/themes/lightTheme.ts +29 -24
  281. package/src/themes/themeContract.ts +11 -6
  282. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +0 -146
  283. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css +0 -32
  284. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css.map +0 -7
  285. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.d.ts +0 -5
  286. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js +0 -35
  287. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js.map +0 -7
  288. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +0 -7
  289. package/dist/cjs/components/connect-modal/views/ConnectionStatus.d.ts +0 -8
  290. package/dist/cjs/components/connect-modal/views/ConnectionStatus.js +0 -173
  291. package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +0 -7
  292. package/dist/cjs/components/connect-modal/views/GettingStarted.css +0 -145
  293. package/dist/cjs/components/connect-modal/views/GettingStarted.css.css +0 -23
  294. package/dist/cjs/components/connect-modal/views/GettingStarted.css.css.map +0 -7
  295. package/dist/cjs/components/connect-modal/views/GettingStarted.css.d.ts +0 -3
  296. package/dist/cjs/components/connect-modal/views/GettingStarted.css.js.map +0 -7
  297. package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +0 -7
  298. package/dist/cjs/components/connect-modal/views/GettingStarted.d.ts +0 -1
  299. package/dist/cjs/components/connect-modal/views/GettingStarted.js +0 -172
  300. package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +0 -7
  301. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css +0 -95
  302. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css +0 -17
  303. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css.map +0 -7
  304. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.d.ts +0 -2
  305. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js +0 -29
  306. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js.map +0 -7
  307. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.map +0 -7
  308. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.d.ts +0 -1
  309. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js +0 -135
  310. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js.map +0 -7
  311. package/dist/cjs/components/icons/BackIcon.d.ts +0 -2
  312. package/dist/cjs/components/icons/BackIcon.js.map +0 -7
  313. package/dist/cjs/hooks/useResolveIotaNSNames.d.ts +0 -3
  314. package/dist/cjs/hooks/useResolveIotaNSNames.js +0 -83
  315. package/dist/cjs/hooks/useResolveIotaNSNames.js.map +0 -7
  316. package/dist/esm/components/connect-modal/views/ConnectionStatus.css +0 -146
  317. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css +0 -32
  318. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css.map +0 -7
  319. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.d.ts +0 -5
  320. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js +0 -14
  321. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js.map +0 -7
  322. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +0 -7
  323. package/dist/esm/components/connect-modal/views/ConnectionStatus.d.ts +0 -8
  324. package/dist/esm/components/connect-modal/views/ConnectionStatus.js +0 -140
  325. package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +0 -7
  326. package/dist/esm/components/connect-modal/views/GettingStarted.css +0 -145
  327. package/dist/esm/components/connect-modal/views/GettingStarted.css.css +0 -23
  328. package/dist/esm/components/connect-modal/views/GettingStarted.css.css.map +0 -7
  329. package/dist/esm/components/connect-modal/views/GettingStarted.css.d.ts +0 -3
  330. package/dist/esm/components/connect-modal/views/GettingStarted.css.js +0 -10
  331. package/dist/esm/components/connect-modal/views/GettingStarted.css.js.map +0 -7
  332. package/dist/esm/components/connect-modal/views/GettingStarted.css.map +0 -7
  333. package/dist/esm/components/connect-modal/views/GettingStarted.d.ts +0 -1
  334. package/dist/esm/components/connect-modal/views/GettingStarted.js +0 -139
  335. package/dist/esm/components/connect-modal/views/GettingStarted.js.map +0 -7
  336. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css +0 -95
  337. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css +0 -17
  338. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css.map +0 -7
  339. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.d.ts +0 -2
  340. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js +0 -8
  341. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js.map +0 -7
  342. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.map +0 -7
  343. package/dist/esm/components/connect-modal/views/WhatIsAWallet.d.ts +0 -1
  344. package/dist/esm/components/connect-modal/views/WhatIsAWallet.js +0 -102
  345. package/dist/esm/components/connect-modal/views/WhatIsAWallet.js.map +0 -7
  346. package/dist/esm/components/icons/BackIcon.d.ts +0 -2
  347. package/dist/esm/components/icons/BackIcon.js +0 -15
  348. package/dist/esm/components/icons/BackIcon.js.map +0 -7
  349. package/dist/esm/hooks/useResolveIotaNSNames.d.ts +0 -3
  350. package/dist/esm/hooks/useResolveIotaNSNames.js +0 -60
  351. package/dist/esm/hooks/useResolveIotaNSNames.js.map +0 -7
  352. package/src/components/connect-modal/views/ConnectionStatus.css.ts +0 -36
  353. package/src/components/connect-modal/views/ConnectionStatus.tsx +0 -55
  354. package/src/components/connect-modal/views/GettingStarted.css.ts +0 -26
  355. package/src/components/connect-modal/views/GettingStarted.tsx +0 -40
  356. package/src/components/connect-modal/views/WhatIsAWallet.css.ts +0 -20
  357. package/src/components/connect-modal/views/WhatIsAWallet.tsx +0 -24
  358. package/src/components/icons/BackIcon.tsx +0 -18
  359. package/src/hooks/useResolveIotaNSNames.ts +0 -31
@@ -62,6 +62,8 @@ var DEFAULT_REQUIRED_FEATURES = [
62
62
  "iota:signTransactionBlock"
63
63
  ];
64
64
  var DEFAULT_PREFERRED_WALLETS = [IOTA_WALLET_NAME];
65
+ var WALLET_CHROME_EXTENSION_ID = "TODO";
66
+ var WALLET_DOWNLOAD_URL = "https://chromewebstore.google.com/detail/" + WALLET_CHROME_EXTENSION_ID;
65
67
 
66
68
  // src/contexts/walletContext.ts
67
69
  var import_react = require("react");
@@ -464,42 +466,39 @@ function useWalletsChanged(preferredWallets, requiredFeatures) {
464
466
  // src/themes/lightTheme.ts
465
467
  var lightTheme = {
466
468
  blurs: {
467
- modalOverlay: "blur(0)"
469
+ modalOverlay: "blur(12px)"
468
470
  },
469
471
  backgroundColors: {
470
- primaryButton: "#F6F7F9",
471
- primaryButtonHover: "#F0F2F5",
472
- outlineButtonHover: "#F4F4F5",
473
- modalOverlay: "rgba(24 36 53 / 20%)",
474
- modalPrimary: "white",
475
- modalSecondary: "#F7F8F8",
472
+ primaryButton: "#DDE4F0",
473
+ primaryButtonHover: "#002F6D14",
474
+ outlineButtonHover: "#002F6D14",
475
+ modalOverlay: "rgba(0, 47, 109, 0.72)",
476
+ modalPrimary: "#ffffff",
477
+ modalSecondary: "#e3eaf6",
476
478
  iconButton: "transparent",
477
- iconButtonHover: "#F0F1F2",
478
479
  dropdownMenu: "#FFFFFF",
479
- dropdownMenuSeparator: "#F3F6F8",
480
- walletItemSelected: "white",
481
- walletItemHover: "#3C424226"
480
+ dropdownMenuSeparator: "#002f6d14",
481
+ walletItemSelected: "#EFF4FA",
482
+ walletItemHover: "rgba(0, 103, 238, 0.12)",
483
+ scrollThumb: "#cad4e2"
482
484
  },
483
485
  borderColors: {
484
- outlineButton: "#E4E4E7"
486
+ outlineButton: "#6E7787"
485
487
  },
486
488
  colors: {
487
- primaryButton: "#373737",
488
- outlineButton: "#373737",
489
- iconButton: "#000000",
490
- body: "#182435",
491
- bodyMuted: "#767A81",
492
- bodyDanger: "#FF794B"
489
+ primaryButton: "#171D26",
490
+ outlineButtonHover: "#E3EAF6",
491
+ iconButton: "#171D26",
492
+ body: "#171D26",
493
+ bodyMuted: "#545E6E",
494
+ bodyDanger: "#B51431"
493
495
  },
494
496
  radii: {
495
497
  small: "6px",
496
498
  medium: "8px",
497
499
  large: "12px",
498
- xlarge: "16px"
499
- },
500
- shadows: {
501
- primaryButton: "0px 4px 12px rgba(0, 0, 0, 0.1)",
502
- walletItemSelected: "0px 2px 6px rgba(0, 0, 0, 0.05)"
500
+ xlarge: "16px",
501
+ full: "120px"
503
502
  },
504
503
  fontWeights: {
505
504
  normal: "400",
@@ -515,8 +514,16 @@ var lightTheme = {
515
514
  typography: {
516
515
  fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',
517
516
  fontStyle: "normal",
518
- lineHeight: "1.3",
519
- letterSpacing: "1"
517
+ lineHeight: "24px",
518
+ letterSpacing: "0.1px"
519
+ },
520
+ spacing: {
521
+ xxsmall: "4px",
522
+ xsmall: "8px",
523
+ small: "12px",
524
+ medium: "16px",
525
+ large: "24px",
526
+ xlarge: "32px"
520
527
  }
521
528
  };
522
529
 
@@ -635,16 +642,16 @@ var themeContractValues = {
635
642
  modalPrimary: "",
636
643
  modalSecondary: "",
637
644
  iconButton: "",
638
- iconButtonHover: "",
639
645
  dropdownMenu: "",
640
- dropdownMenuSeparator: ""
646
+ dropdownMenuSeparator: "",
647
+ scrollThumb: ""
641
648
  },
642
649
  borderColors: {
643
650
  outlineButton: ""
644
651
  },
645
652
  colors: {
646
653
  primaryButton: "",
647
- outlineButton: "",
654
+ outlineButtonHover: "",
648
655
  body: "",
649
656
  bodyMuted: "",
650
657
  bodyDanger: "",
@@ -654,11 +661,8 @@ var themeContractValues = {
654
661
  small: "",
655
662
  medium: "",
656
663
  large: "",
657
- xlarge: ""
658
- },
659
- shadows: {
660
- primaryButton: "",
661
- walletItemSelected: ""
664
+ xlarge: "",
665
+ full: ""
662
666
  },
663
667
  fontWeights: {
664
668
  normal: "",
@@ -676,6 +680,14 @@ var themeContractValues = {
676
680
  fontStyle: "",
677
681
  lineHeight: "",
678
682
  letterSpacing: ""
683
+ },
684
+ spacing: {
685
+ xxsmall: "",
686
+ xsmall: "",
687
+ small: "",
688
+ medium: "",
689
+ large: "",
690
+ xlarge: ""
679
691
  }
680
692
  };
681
693
  var themeVars = (0, import_css.createGlobalThemeContract)(
@@ -710,8 +722,81 @@ function cssStringFromTheme(theme) {
710
722
  return Object.entries((0, import_dynamic.assignInlineVars)(themeVars, theme)).map(([key, value]) => `${key}:${value};`).join("");
711
723
  }
712
724
 
725
+ // src/themes/darkTheme.ts
726
+ var darkTheme = {
727
+ blurs: {
728
+ modalOverlay: "blur(12px)"
729
+ },
730
+ backgroundColors: {
731
+ primaryButton: "#253041",
732
+ primaryButtonHover: "#313D50",
733
+ outlineButtonHover: "#313D50",
734
+ modalOverlay: "rgba(0, 47, 109, 0.72)",
735
+ modalPrimary: "#0f141c",
736
+ modalSecondary: "#171d26",
737
+ iconButton: "transparent",
738
+ dropdownMenu: "#0f141c",
739
+ dropdownMenuSeparator: "#bed8ff14",
740
+ walletItemSelected: "#171D26",
741
+ walletItemHover: "rgba(190, 216, 255, 0.12)",
742
+ scrollThumb: "#3c4656"
743
+ },
744
+ borderColors: {
745
+ outlineButton: "#8892A1"
746
+ },
747
+ colors: {
748
+ primaryButton: "#E3EAF6",
749
+ outlineButtonHover: "#171D26",
750
+ iconButton: "#E3EAF6",
751
+ body: "#E3EAF6",
752
+ bodyMuted: "#8892A1",
753
+ bodyDanger: "#FFB0BE"
754
+ },
755
+ radii: {
756
+ small: "6px",
757
+ medium: "8px",
758
+ large: "12px",
759
+ xlarge: "16px",
760
+ full: "120px"
761
+ },
762
+ fontWeights: {
763
+ normal: "400",
764
+ medium: "500",
765
+ bold: "600"
766
+ },
767
+ fontSizes: {
768
+ small: "14px",
769
+ medium: "16px",
770
+ large: "18px",
771
+ xlarge: "20px"
772
+ },
773
+ typography: {
774
+ fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',
775
+ fontStyle: "normal",
776
+ lineHeight: "24px",
777
+ letterSpacing: "0.1px"
778
+ },
779
+ spacing: {
780
+ xxsmall: "4px",
781
+ xsmall: "8px",
782
+ small: "12px",
783
+ medium: "16px",
784
+ large: "24px",
785
+ xlarge: "32px"
786
+ }
787
+ };
788
+
713
789
  // src/components/WalletProvider.tsx
714
790
  var import_jsx_runtime3 = require("react/jsx-runtime");
791
+ var themeWithSelectorAndMediaQuery = [
792
+ {
793
+ selector: ".dark",
794
+ variables: darkTheme
795
+ },
796
+ {
797
+ variables: lightTheme
798
+ }
799
+ ];
715
800
  function WalletProvider({
716
801
  preferredWallets = DEFAULT_PREFERRED_WALLETS,
717
802
  requiredFeatures = DEFAULT_REQUIRED_FEATURES,
@@ -719,7 +804,7 @@ function WalletProvider({
719
804
  storageKey = DEFAULT_STORAGE_KEY,
720
805
  enableUnsafeBurner = false,
721
806
  autoConnect = false,
722
- theme = lightTheme,
807
+ theme = themeWithSelectorAndMediaQuery,
723
808
  children
724
809
  }) {
725
810
  const storeRef = (0, import_react9.useRef)(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/components/WalletProvider.tsx", "../../../src/utils/stateStorage.ts", "../../../src/constants/walletDefaults.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../src/utils/walletUtils.ts", "../../../src/hooks/wallet/useConnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useWallets.ts", "../../../src/hooks/wallet/useUnsafeBurnerWallet.ts", "../../../src/hooks/useIotaClient.ts", "../../../src/components/IotaClientProvider.tsx", "../../../src/hooks/wallet/useWalletPropertiesChanged.ts", "../../../src/hooks/wallet/useWalletsChanged.ts", "../../../src/themes/lightTheme.ts", "../../../src/walletStore.ts", "../../../src/components/styling/InjectedThemeStyles.tsx", "../../../src/constants/styleDataAttribute.ts", "../../../src/themes/themeContract.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithFeatures, WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport type { ReactNode } from 'react';\nimport { useRef } from 'react';\nimport type { StateStorage } from 'zustand/middleware';\n\nimport {\n DEFAULT_PREFERRED_WALLETS,\n DEFAULT_REQUIRED_FEATURES,\n DEFAULT_STORAGE,\n DEFAULT_STORAGE_KEY,\n} from '../constants/walletDefaults.js';\nimport { WalletContext } from '../contexts/walletContext.js';\nimport { useAutoConnectWallet } from '../hooks/wallet/useAutoConnectWallet.js';\nimport { useUnsafeBurnerWallet } from '../hooks/wallet/useUnsafeBurnerWallet.js';\nimport { useWalletPropertiesChanged } from '../hooks/wallet/useWalletPropertiesChanged.js';\nimport { useWalletsChanged } from '../hooks/wallet/useWalletsChanged.js';\nimport { lightTheme } from '../themes/lightTheme.js';\nimport type { Theme } from '../themes/themeContract.js';\nimport { createInMemoryStore } from '../utils/stateStorage.js';\nimport { getRegisteredWallets } from '../utils/walletUtils.js';\nimport { createWalletStore } from '../walletStore.js';\nimport { InjectedThemeStyles } from './styling/InjectedThemeStyles.js';\n\nexport type WalletProviderProps = {\n /** A list of wallets that are sorted to the top of the wallet list, if they are available to connect to. By default, wallets are sorted by the order they are loaded in. */\n preferredWallets?: string[];\n\n /** A list of features that are required for the dApp to function. This filters the list of wallets presented to users when selecting a wallet to connect from, ensuring that only wallets that meet the dApps requirements can connect. */\n requiredFeatures?: (keyof WalletWithRequiredFeatures['features'])[];\n\n /** Enables the development-only unsafe burner wallet, which can be useful for testing. */\n enableUnsafeBurner?: boolean;\n\n /** Enables automatically reconnecting to the most recently used wallet account upon mounting. */\n autoConnect?: boolean;\n\n /** Configures how the most recently connected to wallet account is stored. Set to `null` to disable persisting state entirely. Defaults to using localStorage if it is available. */\n storage?: StateStorage | null;\n\n /** The key to use to store the most recently connected wallet account. */\n storageKey?: string;\n\n /** The theme to use for styling UI components. Defaults to using the light theme. */\n theme?: Theme | null;\n\n children: ReactNode;\n};\n\nexport type { WalletWithFeatures };\n\nexport function WalletProvider({\n preferredWallets = DEFAULT_PREFERRED_WALLETS,\n requiredFeatures = DEFAULT_REQUIRED_FEATURES,\n storage = DEFAULT_STORAGE,\n storageKey = DEFAULT_STORAGE_KEY,\n enableUnsafeBurner = false,\n autoConnect = false,\n theme = lightTheme,\n children,\n}: WalletProviderProps) {\n const storeRef = useRef(\n createWalletStore({\n autoConnectEnabled: autoConnect,\n wallets: getRegisteredWallets(preferredWallets, requiredFeatures),\n storage: storage || createInMemoryStore(),\n storageKey,\n }),\n );\n\n return (\n <WalletContext.Provider value={storeRef.current}>\n <WalletConnectionManager\n preferredWallets={preferredWallets}\n requiredFeatures={requiredFeatures}\n enableUnsafeBurner={enableUnsafeBurner}\n >\n {/* TODO: We ideally don't want to inject styles if people aren't using the UI components */}\n {theme ? <InjectedThemeStyles theme={theme} /> : null}\n {children}\n </WalletConnectionManager>\n </WalletContext.Provider>\n );\n}\n\ntype WalletConnectionManagerProps = Pick<\n WalletProviderProps,\n 'preferredWallets' | 'requiredFeatures' | 'enableUnsafeBurner' | 'children'\n>;\n\nfunction WalletConnectionManager({\n preferredWallets = DEFAULT_PREFERRED_WALLETS,\n requiredFeatures = DEFAULT_REQUIRED_FEATURES,\n enableUnsafeBurner = false,\n children,\n}: WalletConnectionManagerProps) {\n useWalletsChanged(preferredWallets, requiredFeatures);\n useWalletPropertiesChanged();\n useUnsafeBurnerWallet(enableUnsafeBurner);\n useAutoConnectWallet();\n\n return children;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { StateStorage } from 'zustand/middleware';\n\nexport function createInMemoryStore(): StateStorage {\n const store = new Map();\n return {\n getItem(key: string) {\n return store.get(key);\n },\n setItem(key: string, value: string) {\n store.set(key, value);\n },\n removeItem(key: string) {\n store.delete(key);\n },\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@iota/wallet-standard';\n\nimport { createInMemoryStore } from '../utils/stateStorage.js';\n\nexport const IOTA_WALLET_NAME = 'Iota Wallet';\n\nexport const DEFAULT_STORAGE =\n typeof window !== 'undefined' && window.localStorage ? localStorage : createInMemoryStore();\n\nexport const DEFAULT_STORAGE_KEY = 'iota-dapp-kit:wallet-connection-info';\n\nexport const DEFAULT_REQUIRED_FEATURES: (keyof WalletWithRequiredFeatures['features'])[] = [\n 'iota:signTransactionBlock',\n];\n\nexport const DEFAULT_PREFERRED_WALLETS = [IOTA_WALLET_NAME];\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from '@tanstack/react-query';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {\n const { mutateAsync: connectWallet } = useConnectWallet();\n const autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);\n const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n const lastConnectedAccountAddress = useWalletStore(\n (state) => state.lastConnectedAccountAddress,\n );\n const wallets = useWallets();\n const { isConnected } = useCurrentWallet();\n\n const [clientOnly, setClientOnly] = useState(false);\n useLayoutEffect(() => {\n setClientOnly(true);\n }, []);\n\n const { data, isError } = useQuery({\n queryKey: [\n '@iota/dapp-kit',\n 'autoconnect',\n {\n isConnected,\n autoConnectEnabled,\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n walletCount: wallets.length,\n },\n ],\n queryFn: async () => {\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n if (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {\n return 'attempted';\n }\n\n const wallet = wallets.find(\n (wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,\n );\n if (wallet) {\n await connectWallet({\n wallet,\n accountAddress: lastConnectedAccountAddress,\n silent: true,\n });\n }\n\n return 'attempted';\n },\n enabled: autoConnectEnabled,\n persister: undefined,\n gcTime: 0,\n staleTime: 0,\n networkMode: 'always',\n retry: false,\n retryOnMount: false,\n refetchInterval: false,\n refetchIntervalInBackground: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n refetchOnWindowFocus: false,\n });\n\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n // We always initialize with \"idle\" so that in SSR environments, we guarantee that the initial render states always agree:\n if (!clientOnly) {\n return 'idle';\n }\n\n if (isConnected) {\n return 'attempted';\n }\n\n if (!lastConnectedWalletName) {\n return 'attempted';\n }\n\n return isError ? 'attempted' : data ?? 'idle';\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MinimallyRequiredFeatures, Wallet, WalletWithFeatures } from '@iota/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@iota/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n preferredWallets: string[],\n requiredFeatures?: (keyof AdditionalFeatures)[],\n) {\n const walletsApi = getWallets();\n const wallets = walletsApi.get();\n\n const iotaWallets = wallets.filter(\n (wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n isWalletWithRequiredFeatureSet(wallet, requiredFeatures),\n );\n\n return [\n // Preferred wallets, in order:\n ...(preferredWallets\n .map((name) => iotaWallets.find((wallet) => wallet.name === name))\n .filter(Boolean) as WalletWithFeatures<\n MinimallyRequiredFeatures & AdditionalFeatures\n >[]),\n\n // Wallets in default order:\n ...iotaWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n ];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n return wallet?.id ?? wallet?.name;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isSupportedChain } from '@iota/wallet-standard';\nimport type {\n StandardConnectInput,\n StandardConnectOutput,\n WalletAccount,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n /** The wallet to connect to. */\n wallet: WalletWithRequiredFeatures;\n\n /** An optional account address to connect to. Defaults to the first authorized account. */\n accountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n ConnectWalletResult,\n Error,\n ConnectWalletArgs,\n unknown\n> {\n const setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n return useMutation({\n mutationKey: walletMutationKeys.connectWallet(mutationKey),\n mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n try {\n setConnectionStatus('connecting');\n\n const connectResult =\n await wallet.features['standard:connect'].connect(connectArgs);\n const connectedIotaAccounts = connectResult.accounts.filter((account) =>\n account.chains.some(isSupportedChain),\n );\n const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);\n\n setWalletConnected(wallet, connectedIotaAccounts, selectedAccount);\n\n return { accounts: connectedIotaAccounts };\n } catch (error) {\n setConnectionStatus('disconnected');\n throw error;\n }\n },\n ...mutationOptions,\n });\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n if (connectedAccounts.length === 0) {\n return null;\n }\n\n if (accountAddress) {\n const selectedAccount = connectedAccounts.find(\n (account) => account.address === accountAddress,\n );\n return selectedAccount ?? connectedAccounts[0];\n }\n\n return connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n signAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n switchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n return useWalletStore((state) => state.wallets);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { Ed25519Keypair } from '@iota/iota-sdk/keypairs/ed25519';\nimport type {\n StandardConnectFeature,\n StandardConnectMethod,\n StandardEventsFeature,\n StandardEventsOnMethod,\n IotaFeatures,\n IotaSignAndExecuteTransactionBlockMethod,\n IotaSignPersonalMessageMethod,\n IotaSignTransactionBlockMethod,\n Wallet,\n} from '@iota/wallet-standard';\nimport { getWallets, ReadonlyWalletAccount, SUPPORTED_CHAINS } from '@iota/wallet-standard';\nimport { useEffect } from 'react';\n\nimport { useIotaClient } from '../useIotaClient.js';\n\nconst WALLET_NAME = 'Unsafe Burner Wallet';\n\nexport function useUnsafeBurnerWallet(enabled: boolean) {\n const iotaClient = useIotaClient();\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const unregister = registerUnsafeBurnerWallet(iotaClient);\n return unregister;\n }, [enabled, iotaClient]);\n}\n\nfunction registerUnsafeBurnerWallet(iotaClient: IotaClient) {\n const walletsApi = getWallets();\n const registeredWallets = walletsApi.get();\n\n if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {\n console.warn(\n 'registerUnsafeBurnerWallet: Unsafe Burner Wallet already registered, skipping duplicate registration.',\n );\n return;\n }\n\n console.warn(\n 'Your application is currently using the unsafe burner wallet. Make sure that this wallet is disabled in production.',\n );\n\n const keypair = new Ed25519Keypair();\n const account = new ReadonlyWalletAccount({\n address: keypair.getPublicKey().toIotaAddress(),\n publicKey: keypair.getPublicKey().toIotaBytes(),\n chains: ['iota:unknown'],\n features: ['iota:signAndExecuteTransactionBlock', 'iota:signTransactionBlock'],\n });\n\n class UnsafeBurnerWallet implements Wallet {\n get version() {\n return '1.0.0' as const;\n }\n\n get name() {\n return WALLET_NAME;\n }\n\n get icon() {\n return 'data:image/png;base64,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' as const;\n }\n\n // Return the Iota chains that your wallet supports.\n get chains() {\n return SUPPORTED_CHAINS;\n }\n\n get accounts() {\n return [account];\n }\n\n get features(): StandardConnectFeature & StandardEventsFeature & IotaFeatures {\n return {\n 'standard:connect': {\n version: '1.0.0',\n connect: this.#connect,\n },\n 'standard:events': {\n version: '1.0.0',\n on: this.#on,\n },\n 'iota:signPersonalMessage': {\n version: '1.0.0',\n signPersonalMessage: this.#signPersonalMessage,\n },\n 'iota:signTransactionBlock': {\n version: '1.0.0',\n signTransactionBlock: this.#signTransactionBlock,\n },\n 'iota:signAndExecuteTransactionBlock': {\n version: '1.0.0',\n signAndExecuteTransactionBlock: this.#signAndExecuteTransactionBlock,\n },\n };\n }\n\n #on: StandardEventsOnMethod = () => {\n return () => {};\n };\n\n #connect: StandardConnectMethod = async () => {\n return { accounts: this.accounts };\n };\n\n #signPersonalMessage: IotaSignPersonalMessageMethod = async (messageInput) => {\n const { bytes, signature } = await keypair.signPersonalMessage(messageInput.message);\n return { bytes, signature };\n };\n\n #signTransactionBlock: IotaSignTransactionBlockMethod = async (transactionInput) => {\n const { bytes, signature } = await transactionInput.transactionBlock.sign({\n client: iotaClient,\n signer: keypair,\n });\n\n return {\n transactionBlockBytes: bytes,\n signature: signature,\n };\n };\n\n #signAndExecuteTransactionBlock: IotaSignAndExecuteTransactionBlockMethod = async (\n transactionInput,\n ) => {\n return await iotaClient.signAndExecuteTransactionBlock({\n signer: keypair,\n transactionBlock: transactionInput.transactionBlock,\n options: transactionInput.options,\n requestType: transactionInput.requestType,\n });\n };\n }\n\n return walletsApi.register(new UnsafeBurnerWallet());\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Local).url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling various changes in properties for a wallet.\n */\nexport function useWalletPropertiesChanged() {\n const { currentWallet } = useCurrentWallet();\n const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);\n\n useEffect(() => {\n const unsubscribeFromEvents = currentWallet?.features['standard:events'].on(\n 'change',\n ({ accounts }) => {\n // TODO: We should handle features changing that might make the list of wallets\n // or even the current wallet incompatible with the dApp.\n if (accounts) {\n updateWalletAccounts(accounts);\n }\n },\n );\n return unsubscribeFromEvents;\n }, [currentWallet?.features, updateWalletAccounts]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport { getWallets } from '@iota/wallet-standard';\nimport { useEffect } from 'react';\n\nimport { getRegisteredWallets } from '../../utils/walletUtils.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling the addition and removal of new wallets.\n */\nexport function useWalletsChanged(\n preferredWallets: string[],\n requiredFeatures: (keyof WalletWithRequiredFeatures['features'])[],\n) {\n const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);\n const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);\n\n useEffect(() => {\n const walletsApi = getWallets();\n\n const unsubscribeFromRegister = walletsApi.on('register', () => {\n setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));\n });\n\n const unsubscribeFromUnregister = walletsApi.on('unregister', (unregisteredWallet) => {\n setWalletUnregistered(\n getRegisteredWallets(preferredWallets, requiredFeatures),\n unregisteredWallet,\n );\n });\n\n return () => {\n unsubscribeFromRegister();\n unsubscribeFromUnregister();\n };\n }, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ThemeVars } from './themeContract.js';\n\nexport const lightTheme: ThemeVars = {\n blurs: {\n modalOverlay: 'blur(0)',\n },\n backgroundColors: {\n primaryButton: '#F6F7F9',\n primaryButtonHover: '#F0F2F5',\n outlineButtonHover: '#F4F4F5',\n modalOverlay: 'rgba(24 36 53 / 20%)',\n modalPrimary: 'white',\n modalSecondary: '#F7F8F8',\n iconButton: 'transparent',\n iconButtonHover: '#F0F1F2',\n dropdownMenu: '#FFFFFF',\n dropdownMenuSeparator: '#F3F6F8',\n walletItemSelected: 'white',\n walletItemHover: '#3C424226',\n },\n borderColors: {\n outlineButton: '#E4E4E7',\n },\n colors: {\n primaryButton: '#373737',\n outlineButton: '#373737',\n iconButton: '#000000',\n body: '#182435',\n bodyMuted: '#767A81',\n bodyDanger: '#FF794B',\n },\n radii: {\n small: '6px',\n medium: '8px',\n large: '12px',\n xlarge: '16px',\n },\n shadows: {\n primaryButton: '0px 4px 12px rgba(0, 0, 0, 0.1)',\n walletItemSelected: '0px 2px 6px rgba(0, 0, 0, 0.05)',\n },\n fontWeights: {\n normal: '400',\n medium: '500',\n bold: '600',\n },\n fontSizes: {\n small: '14px',\n medium: '16px',\n large: '18px',\n xlarge: '20px',\n },\n typography: {\n fontFamily:\n 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"',\n fontStyle: 'normal',\n lineHeight: '1.3',\n letterSpacing: '1',\n },\n};\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet, WalletAccount, WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport { createStore } from 'zustand';\nimport type { StateStorage } from 'zustand/middleware';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { getWalletUniqueIdentifier } from './utils/walletUtils.js';\n\ntype WalletConnectionStatus = 'disconnected' | 'connecting' | 'connected';\n\nexport type WalletActions = {\n setAccountSwitched: (selectedAccount: WalletAccount) => void;\n setConnectionStatus: (connectionStatus: WalletConnectionStatus) => void;\n setWalletConnected: (\n wallet: WalletWithRequiredFeatures,\n connectedAccounts: readonly WalletAccount[],\n selectedAccount: WalletAccount | null,\n ) => void;\n updateWalletAccounts: (accounts: readonly WalletAccount[]) => void;\n setWalletDisconnected: () => void;\n setWalletRegistered: (updatedWallets: WalletWithRequiredFeatures[]) => void;\n setWalletUnregistered: (\n updatedWallets: WalletWithRequiredFeatures[],\n unregisteredWallet: Wallet,\n ) => void;\n};\n\nexport type WalletStore = ReturnType<typeof createWalletStore>;\n\nexport type StoreState = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n accounts: readonly WalletAccount[];\n currentWallet: WalletWithRequiredFeatures | null;\n currentAccount: WalletAccount | null;\n lastConnectedAccountAddress: string | null;\n lastConnectedWalletName: string | null;\n connectionStatus: WalletConnectionStatus;\n} & WalletActions;\n\ntype WalletConfiguration = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n storage: StateStorage;\n storageKey: string;\n};\n\nexport function createWalletStore({\n wallets,\n storage,\n storageKey,\n autoConnectEnabled,\n}: WalletConfiguration) {\n return createStore<StoreState>()(\n persist(\n (set, get) => ({\n autoConnectEnabled,\n wallets,\n accounts: [] as WalletAccount[],\n currentWallet: null,\n currentAccount: null,\n lastConnectedAccountAddress: null,\n lastConnectedWalletName: null,\n connectionStatus: 'disconnected',\n setConnectionStatus(connectionStatus) {\n set(() => ({\n connectionStatus,\n }));\n },\n setWalletConnected(wallet, connectedAccounts, selectedAccount) {\n set(() => ({\n accounts: connectedAccounts,\n currentWallet: wallet,\n currentAccount: selectedAccount,\n lastConnectedWalletName: getWalletUniqueIdentifier(wallet),\n lastConnectedAccountAddress: selectedAccount?.address,\n connectionStatus: 'connected',\n }));\n },\n setWalletDisconnected() {\n set(() => ({\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n }));\n },\n setAccountSwitched(selectedAccount) {\n set(() => ({\n currentAccount: selectedAccount,\n lastConnectedAccountAddress: selectedAccount.address,\n }));\n },\n setWalletRegistered(updatedWallets) {\n set(() => ({ wallets: updatedWallets }));\n },\n setWalletUnregistered(updatedWallets, unregisteredWallet) {\n if (unregisteredWallet === get().currentWallet) {\n set(() => ({\n wallets: updatedWallets,\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n }));\n } else {\n set(() => ({ wallets: updatedWallets }));\n }\n },\n updateWalletAccounts(accounts) {\n const currentAccount = get().currentAccount;\n\n set(() => ({\n accounts,\n currentAccount:\n (currentAccount &&\n accounts.find(\n ({ address }) => address === currentAccount.address,\n )) ||\n accounts[0],\n }));\n },\n }),\n {\n name: storageKey,\n storage: createJSONStorage(() => storage),\n partialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n }),\n },\n ),\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { assignInlineVars } from '@vanilla-extract/dynamic';\n\nimport { styleDataAttributeSelector } from '../../constants/styleDataAttribute.js';\nimport { themeVars } from '../../themes/themeContract.js';\nimport type { DynamicTheme, Theme, ThemeVars } from '../../themes/themeContract.js';\n\ntype InjectedThemeStylesProps = {\n theme: Theme;\n};\n\nexport function InjectedThemeStyles({ theme }: InjectedThemeStylesProps) {\n const themeStyles = Array.isArray(theme)\n ? getDynamicThemeStyles(theme)\n : getStaticThemeStyles(theme);\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: themeStyles,\n }}\n />\n );\n}\n\nfunction getDynamicThemeStyles(themes: DynamicTheme[]) {\n return themes\n .map(({ mediaQuery, selector, variables }) => {\n const themeStyles = getStaticThemeStyles(variables);\n const themeStylesWithSelectorPrefix = selector\n ? `${selector} ${themeStyles}`\n : themeStyles;\n\n return mediaQuery\n ? `@media ${mediaQuery}{${themeStylesWithSelectorPrefix}}`\n : themeStylesWithSelectorPrefix;\n })\n .join(' ');\n}\n\nfunction getStaticThemeStyles(theme: ThemeVars) {\n return `${styleDataAttributeSelector} {${cssStringFromTheme(theme)}}`;\n}\n\nfunction cssStringFromTheme(theme: ThemeVars) {\n return Object.entries(assignInlineVars(themeVars, theme))\n .map(([key, value]) => `${key}:${value};`)\n .join('');\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nexport const styleDataAttributeName = 'data-dapp-kit';\n\nexport const styleDataAttributeSelector = `[${styleDataAttributeName}]`;\n\nexport const styleDataAttribute = { [styleDataAttributeName]: '' };\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createGlobalThemeContract } from '@vanilla-extract/css';\n\nconst themeContractValues = {\n blurs: {\n modalOverlay: '',\n },\n backgroundColors: {\n primaryButton: '',\n primaryButtonHover: '',\n outlineButtonHover: '',\n walletItemHover: '',\n walletItemSelected: '',\n modalOverlay: '',\n modalPrimary: '',\n modalSecondary: '',\n iconButton: '',\n iconButtonHover: '',\n dropdownMenu: '',\n dropdownMenuSeparator: '',\n },\n borderColors: {\n outlineButton: '',\n },\n colors: {\n primaryButton: '',\n outlineButton: '',\n body: '',\n bodyMuted: '',\n bodyDanger: '',\n iconButton: '',\n },\n radii: {\n small: '',\n medium: '',\n large: '',\n xlarge: '',\n },\n shadows: {\n primaryButton: '',\n walletItemSelected: '',\n },\n fontWeights: {\n normal: '',\n medium: '',\n bold: '',\n },\n fontSizes: {\n small: '',\n medium: '',\n large: '',\n xlarge: '',\n },\n typography: {\n fontFamily: '',\n fontStyle: '',\n lineHeight: '',\n letterSpacing: '',\n },\n};\n\nexport type ThemeVars = typeof themeContractValues;\n\n/**\n * A custom theme that is enabled when various conditions are\n */\nexport type DynamicTheme = {\n /**\n * An optional media query required for the given theme to be enabled. This is useful\n * when you want the theme of your application to automatically switch depending on\n * a media feature.\n *\n * @example '(prefers-color-scheme: dark)'\n */\n mediaQuery?: string;\n\n /**\n * An optional CSS selector required for the given theme to be enabled. This is useful\n * when you have a manual theme switcher on your application that sets a top-level\n * class name or data-attribute to control the current theme.\n *\n * @example '.data-dark'\n */\n selector?: string;\n\n /** The theme definitions that will be set when the selector and mediaQuery criteria are matched. */\n variables: ThemeVars;\n};\n\nexport type Theme = ThemeVars | DynamicTheme[];\n\nexport const themeVars = createGlobalThemeContract(\n themeContractValues,\n (_, path) => `dapp-kit-${path.join('-')}`,\n);\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../src/components/WalletProvider.tsx", "../../../src/utils/stateStorage.ts", "../../../src/constants/walletDefaults.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../src/utils/walletUtils.ts", "../../../src/hooks/wallet/useConnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useWallets.ts", "../../../src/hooks/wallet/useUnsafeBurnerWallet.ts", "../../../src/hooks/useIotaClient.ts", "../../../src/components/IotaClientProvider.tsx", "../../../src/hooks/wallet/useWalletPropertiesChanged.ts", "../../../src/hooks/wallet/useWalletsChanged.ts", "../../../src/themes/lightTheme.ts", "../../../src/walletStore.ts", "../../../src/components/styling/InjectedThemeStyles.tsx", "../../../src/constants/styleDataAttribute.ts", "../../../src/themes/themeContract.ts", "../../../src/themes/darkTheme.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithFeatures, WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport type { ReactNode } from 'react';\nimport { useRef } from 'react';\nimport type { StateStorage } from 'zustand/middleware';\n\nimport {\n DEFAULT_PREFERRED_WALLETS,\n DEFAULT_REQUIRED_FEATURES,\n DEFAULT_STORAGE,\n DEFAULT_STORAGE_KEY,\n} from '../constants/walletDefaults.js';\nimport { WalletContext } from '../contexts/walletContext.js';\nimport { useAutoConnectWallet } from '../hooks/wallet/useAutoConnectWallet.js';\nimport { useUnsafeBurnerWallet } from '../hooks/wallet/useUnsafeBurnerWallet.js';\nimport { useWalletPropertiesChanged } from '../hooks/wallet/useWalletPropertiesChanged.js';\nimport { useWalletsChanged } from '../hooks/wallet/useWalletsChanged.js';\nimport { lightTheme } from '../themes/lightTheme.js';\nimport type { DynamicTheme, Theme } from '../themes/themeContract.js';\nimport { createInMemoryStore } from '../utils/stateStorage.js';\nimport { getRegisteredWallets } from '../utils/walletUtils.js';\nimport { createWalletStore } from '../walletStore.js';\nimport { InjectedThemeStyles } from './styling/InjectedThemeStyles.js';\nimport { darkTheme } from '../themes/darkTheme.js';\n\nconst themeWithSelectorAndMediaQuery: DynamicTheme[] = [\n {\n selector: '.dark',\n variables: darkTheme,\n },\n {\n variables: lightTheme,\n },\n];\n\nexport type WalletProviderProps = {\n /** A list of wallets that are sorted to the top of the wallet list, if they are available to connect to. By default, wallets are sorted by the order they are loaded in. */\n preferredWallets?: string[];\n\n /** A list of features that are required for the dApp to function. This filters the list of wallets presented to users when selecting a wallet to connect from, ensuring that only wallets that meet the dApps requirements can connect. */\n requiredFeatures?: (keyof WalletWithRequiredFeatures['features'])[];\n\n /** Enables the development-only unsafe burner wallet, which can be useful for testing. */\n enableUnsafeBurner?: boolean;\n\n /** Enables automatically reconnecting to the most recently used wallet account upon mounting. */\n autoConnect?: boolean;\n\n /** Configures how the most recently connected to wallet account is stored. Set to `null` to disable persisting state entirely. Defaults to using localStorage if it is available. */\n storage?: StateStorage | null;\n\n /** The key to use to store the most recently connected wallet account. */\n storageKey?: string;\n\n /** The theme to use for styling UI components. Defaults to using the light theme. */\n theme?: Theme | null;\n\n children: ReactNode;\n};\n\nexport type { WalletWithFeatures };\n\nexport function WalletProvider({\n preferredWallets = DEFAULT_PREFERRED_WALLETS,\n requiredFeatures = DEFAULT_REQUIRED_FEATURES,\n storage = DEFAULT_STORAGE,\n storageKey = DEFAULT_STORAGE_KEY,\n enableUnsafeBurner = false,\n autoConnect = false,\n theme = themeWithSelectorAndMediaQuery,\n children,\n}: WalletProviderProps) {\n const storeRef = useRef(\n createWalletStore({\n autoConnectEnabled: autoConnect,\n wallets: getRegisteredWallets(preferredWallets, requiredFeatures),\n storage: storage || createInMemoryStore(),\n storageKey,\n }),\n );\n\n return (\n <WalletContext.Provider value={storeRef.current}>\n <WalletConnectionManager\n preferredWallets={preferredWallets}\n requiredFeatures={requiredFeatures}\n enableUnsafeBurner={enableUnsafeBurner}\n >\n {/* TODO: We ideally don't want to inject styles if people aren't using the UI components */}\n {theme ? <InjectedThemeStyles theme={theme} /> : null}\n {children}\n </WalletConnectionManager>\n </WalletContext.Provider>\n );\n}\n\ntype WalletConnectionManagerProps = Pick<\n WalletProviderProps,\n 'preferredWallets' | 'requiredFeatures' | 'enableUnsafeBurner' | 'children'\n>;\n\nfunction WalletConnectionManager({\n preferredWallets = DEFAULT_PREFERRED_WALLETS,\n requiredFeatures = DEFAULT_REQUIRED_FEATURES,\n enableUnsafeBurner = false,\n children,\n}: WalletConnectionManagerProps) {\n useWalletsChanged(preferredWallets, requiredFeatures);\n useWalletPropertiesChanged();\n useUnsafeBurnerWallet(enableUnsafeBurner);\n useAutoConnectWallet();\n\n return children;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { StateStorage } from 'zustand/middleware';\n\nexport function createInMemoryStore(): StateStorage {\n const store = new Map();\n return {\n getItem(key: string) {\n return store.get(key);\n },\n setItem(key: string, value: string) {\n store.set(key, value);\n },\n removeItem(key: string) {\n store.delete(key);\n },\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@iota/wallet-standard';\n\nimport { createInMemoryStore } from '../utils/stateStorage.js';\n\nexport const IOTA_WALLET_NAME = 'Iota Wallet';\n\nexport const DEFAULT_STORAGE =\n typeof window !== 'undefined' && window.localStorage ? localStorage : createInMemoryStore();\n\nexport const DEFAULT_STORAGE_KEY = 'iota-dapp-kit:wallet-connection-info';\n\nexport const DEFAULT_REQUIRED_FEATURES: (keyof WalletWithRequiredFeatures['features'])[] = [\n 'iota:signTransactionBlock',\n];\n\nexport const DEFAULT_PREFERRED_WALLETS = [IOTA_WALLET_NAME];\n\nconst WALLET_CHROME_EXTENSION_ID = 'TODO';\n\nexport const WALLET_DOWNLOAD_URL =\n 'https://chromewebstore.google.com/detail/' + WALLET_CHROME_EXTENSION_ID;\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from '@tanstack/react-query';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {\n const { mutateAsync: connectWallet } = useConnectWallet();\n const autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);\n const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n const lastConnectedAccountAddress = useWalletStore(\n (state) => state.lastConnectedAccountAddress,\n );\n const wallets = useWallets();\n const { isConnected } = useCurrentWallet();\n\n const [clientOnly, setClientOnly] = useState(false);\n useLayoutEffect(() => {\n setClientOnly(true);\n }, []);\n\n const { data, isError } = useQuery({\n queryKey: [\n '@iota/dapp-kit',\n 'autoconnect',\n {\n isConnected,\n autoConnectEnabled,\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n walletCount: wallets.length,\n },\n ],\n queryFn: async () => {\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n if (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {\n return 'attempted';\n }\n\n const wallet = wallets.find(\n (wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,\n );\n if (wallet) {\n await connectWallet({\n wallet,\n accountAddress: lastConnectedAccountAddress,\n silent: true,\n });\n }\n\n return 'attempted';\n },\n enabled: autoConnectEnabled,\n persister: undefined,\n gcTime: 0,\n staleTime: 0,\n networkMode: 'always',\n retry: false,\n retryOnMount: false,\n refetchInterval: false,\n refetchIntervalInBackground: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n refetchOnWindowFocus: false,\n });\n\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n // We always initialize with \"idle\" so that in SSR environments, we guarantee that the initial render states always agree:\n if (!clientOnly) {\n return 'idle';\n }\n\n if (isConnected) {\n return 'attempted';\n }\n\n if (!lastConnectedWalletName) {\n return 'attempted';\n }\n\n return isError ? 'attempted' : data ?? 'idle';\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MinimallyRequiredFeatures, Wallet, WalletWithFeatures } from '@iota/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@iota/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n preferredWallets: string[],\n requiredFeatures?: (keyof AdditionalFeatures)[],\n) {\n const walletsApi = getWallets();\n const wallets = walletsApi.get();\n\n const iotaWallets = wallets.filter(\n (wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n isWalletWithRequiredFeatureSet(wallet, requiredFeatures),\n );\n\n return [\n // Preferred wallets, in order:\n ...(preferredWallets\n .map((name) => iotaWallets.find((wallet) => wallet.name === name))\n .filter(Boolean) as WalletWithFeatures<\n MinimallyRequiredFeatures & AdditionalFeatures\n >[]),\n\n // Wallets in default order:\n ...iotaWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n ];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n return wallet?.id ?? wallet?.name;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isSupportedChain } from '@iota/wallet-standard';\nimport type {\n StandardConnectInput,\n StandardConnectOutput,\n WalletAccount,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n /** The wallet to connect to. */\n wallet: WalletWithRequiredFeatures;\n\n /** An optional account address to connect to. Defaults to the first authorized account. */\n accountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n ConnectWalletResult,\n Error,\n ConnectWalletArgs,\n unknown\n> {\n const setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n return useMutation({\n mutationKey: walletMutationKeys.connectWallet(mutationKey),\n mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n try {\n setConnectionStatus('connecting');\n\n const connectResult =\n await wallet.features['standard:connect'].connect(connectArgs);\n const connectedIotaAccounts = connectResult.accounts.filter((account) =>\n account.chains.some(isSupportedChain),\n );\n const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);\n\n setWalletConnected(wallet, connectedIotaAccounts, selectedAccount);\n\n return { accounts: connectedIotaAccounts };\n } catch (error) {\n setConnectionStatus('disconnected');\n throw error;\n }\n },\n ...mutationOptions,\n });\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n if (connectedAccounts.length === 0) {\n return null;\n }\n\n if (accountAddress) {\n const selectedAccount = connectedAccounts.find(\n (account) => account.address === accountAddress,\n );\n return selectedAccount ?? connectedAccounts[0];\n }\n\n return connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n signAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n switchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n return useWalletStore((state) => state.wallets);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { Ed25519Keypair } from '@iota/iota-sdk/keypairs/ed25519';\nimport type {\n StandardConnectFeature,\n StandardConnectMethod,\n StandardEventsFeature,\n StandardEventsOnMethod,\n IotaFeatures,\n IotaSignAndExecuteTransactionBlockMethod,\n IotaSignPersonalMessageMethod,\n IotaSignTransactionBlockMethod,\n Wallet,\n} from '@iota/wallet-standard';\nimport { getWallets, ReadonlyWalletAccount, SUPPORTED_CHAINS } from '@iota/wallet-standard';\nimport { useEffect } from 'react';\n\nimport { useIotaClient } from '../useIotaClient.js';\n\nconst WALLET_NAME = 'Unsafe Burner Wallet';\n\nexport function useUnsafeBurnerWallet(enabled: boolean) {\n const iotaClient = useIotaClient();\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const unregister = registerUnsafeBurnerWallet(iotaClient);\n return unregister;\n }, [enabled, iotaClient]);\n}\n\nfunction registerUnsafeBurnerWallet(iotaClient: IotaClient) {\n const walletsApi = getWallets();\n const registeredWallets = walletsApi.get();\n\n if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {\n console.warn(\n 'registerUnsafeBurnerWallet: Unsafe Burner Wallet already registered, skipping duplicate registration.',\n );\n return;\n }\n\n console.warn(\n 'Your application is currently using the unsafe burner wallet. Make sure that this wallet is disabled in production.',\n );\n\n const keypair = new Ed25519Keypair();\n const account = new ReadonlyWalletAccount({\n address: keypair.getPublicKey().toIotaAddress(),\n publicKey: keypair.getPublicKey().toIotaBytes(),\n chains: ['iota:unknown'],\n features: ['iota:signAndExecuteTransactionBlock', 'iota:signTransactionBlock'],\n });\n\n class UnsafeBurnerWallet implements Wallet {\n get version() {\n return '1.0.0' as const;\n }\n\n get name() {\n return WALLET_NAME;\n }\n\n get icon() {\n return 'data:image/png;base64,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' as const;\n }\n\n // Return the Iota chains that your wallet supports.\n get chains() {\n return SUPPORTED_CHAINS;\n }\n\n get accounts() {\n return [account];\n }\n\n get features(): StandardConnectFeature & StandardEventsFeature & IotaFeatures {\n return {\n 'standard:connect': {\n version: '1.0.0',\n connect: this.#connect,\n },\n 'standard:events': {\n version: '1.0.0',\n on: this.#on,\n },\n 'iota:signPersonalMessage': {\n version: '1.0.0',\n signPersonalMessage: this.#signPersonalMessage,\n },\n 'iota:signTransactionBlock': {\n version: '1.0.0',\n signTransactionBlock: this.#signTransactionBlock,\n },\n 'iota:signAndExecuteTransactionBlock': {\n version: '1.0.0',\n signAndExecuteTransactionBlock: this.#signAndExecuteTransactionBlock,\n },\n };\n }\n\n #on: StandardEventsOnMethod = () => {\n return () => {};\n };\n\n #connect: StandardConnectMethod = async () => {\n return { accounts: this.accounts };\n };\n\n #signPersonalMessage: IotaSignPersonalMessageMethod = async (messageInput) => {\n const { bytes, signature } = await keypair.signPersonalMessage(messageInput.message);\n return { bytes, signature };\n };\n\n #signTransactionBlock: IotaSignTransactionBlockMethod = async (transactionInput) => {\n const { bytes, signature } = await transactionInput.transactionBlock.sign({\n client: iotaClient,\n signer: keypair,\n });\n\n return {\n transactionBlockBytes: bytes,\n signature: signature,\n };\n };\n\n #signAndExecuteTransactionBlock: IotaSignAndExecuteTransactionBlockMethod = async (\n transactionInput,\n ) => {\n return await iotaClient.signAndExecuteTransactionBlock({\n signer: keypair,\n transactionBlock: transactionInput.transactionBlock,\n options: transactionInput.options,\n requestType: transactionInput.requestType,\n });\n };\n }\n\n return walletsApi.register(new UnsafeBurnerWallet());\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Local).url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling various changes in properties for a wallet.\n */\nexport function useWalletPropertiesChanged() {\n const { currentWallet } = useCurrentWallet();\n const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);\n\n useEffect(() => {\n const unsubscribeFromEvents = currentWallet?.features['standard:events'].on(\n 'change',\n ({ accounts }) => {\n // TODO: We should handle features changing that might make the list of wallets\n // or even the current wallet incompatible with the dApp.\n if (accounts) {\n updateWalletAccounts(accounts);\n }\n },\n );\n return unsubscribeFromEvents;\n }, [currentWallet?.features, updateWalletAccounts]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport { getWallets } from '@iota/wallet-standard';\nimport { useEffect } from 'react';\n\nimport { getRegisteredWallets } from '../../utils/walletUtils.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling the addition and removal of new wallets.\n */\nexport function useWalletsChanged(\n preferredWallets: string[],\n requiredFeatures: (keyof WalletWithRequiredFeatures['features'])[],\n) {\n const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);\n const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);\n\n useEffect(() => {\n const walletsApi = getWallets();\n\n const unsubscribeFromRegister = walletsApi.on('register', () => {\n setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));\n });\n\n const unsubscribeFromUnregister = walletsApi.on('unregister', (unregisteredWallet) => {\n setWalletUnregistered(\n getRegisteredWallets(preferredWallets, requiredFeatures),\n unregisteredWallet,\n );\n });\n\n return () => {\n unsubscribeFromRegister();\n unsubscribeFromUnregister();\n };\n }, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ThemeVars } from './themeContract.js';\n\nexport const lightTheme: ThemeVars = {\n blurs: {\n modalOverlay: 'blur(12px)',\n },\n backgroundColors: {\n primaryButton: '#DDE4F0',\n primaryButtonHover: '#002F6D14',\n outlineButtonHover: '#002F6D14',\n modalOverlay: 'rgba(0, 47, 109, 0.72)',\n modalPrimary: '#ffffff',\n modalSecondary: '#e3eaf6',\n iconButton: 'transparent',\n dropdownMenu: '#FFFFFF',\n dropdownMenuSeparator: '#002f6d14',\n walletItemSelected: '#EFF4FA',\n walletItemHover: 'rgba(0, 103, 238, 0.12)',\n scrollThumb: '#cad4e2',\n },\n borderColors: {\n outlineButton: '#6E7787',\n },\n colors: {\n primaryButton: '#171D26',\n outlineButtonHover: '#E3EAF6',\n iconButton: '#171D26',\n body: '#171D26',\n bodyMuted: '#545E6E',\n bodyDanger: '#B51431',\n },\n radii: {\n small: '6px',\n medium: '8px',\n large: '12px',\n xlarge: '16px',\n full: '120px',\n },\n fontWeights: {\n normal: '400',\n medium: '500',\n bold: '600',\n },\n fontSizes: {\n small: '14px',\n medium: '16px',\n large: '18px',\n xlarge: '20px',\n },\n typography: {\n fontFamily:\n 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"',\n fontStyle: 'normal',\n lineHeight: '24px',\n letterSpacing: '0.1px',\n },\n spacing: {\n xxsmall: '4px',\n xsmall: '8px',\n small: '12px',\n medium: '16px',\n large: '24px',\n xlarge: '32px',\n },\n};\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet, WalletAccount, WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport { createStore } from 'zustand';\nimport type { StateStorage } from 'zustand/middleware';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { getWalletUniqueIdentifier } from './utils/walletUtils.js';\n\ntype WalletConnectionStatus = 'disconnected' | 'connecting' | 'connected';\n\nexport type WalletActions = {\n setAccountSwitched: (selectedAccount: WalletAccount) => void;\n setConnectionStatus: (connectionStatus: WalletConnectionStatus) => void;\n setWalletConnected: (\n wallet: WalletWithRequiredFeatures,\n connectedAccounts: readonly WalletAccount[],\n selectedAccount: WalletAccount | null,\n ) => void;\n updateWalletAccounts: (accounts: readonly WalletAccount[]) => void;\n setWalletDisconnected: () => void;\n setWalletRegistered: (updatedWallets: WalletWithRequiredFeatures[]) => void;\n setWalletUnregistered: (\n updatedWallets: WalletWithRequiredFeatures[],\n unregisteredWallet: Wallet,\n ) => void;\n};\n\nexport type WalletStore = ReturnType<typeof createWalletStore>;\n\nexport type StoreState = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n accounts: readonly WalletAccount[];\n currentWallet: WalletWithRequiredFeatures | null;\n currentAccount: WalletAccount | null;\n lastConnectedAccountAddress: string | null;\n lastConnectedWalletName: string | null;\n connectionStatus: WalletConnectionStatus;\n} & WalletActions;\n\ntype WalletConfiguration = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n storage: StateStorage;\n storageKey: string;\n};\n\nexport function createWalletStore({\n wallets,\n storage,\n storageKey,\n autoConnectEnabled,\n}: WalletConfiguration) {\n return createStore<StoreState>()(\n persist(\n (set, get) => ({\n autoConnectEnabled,\n wallets,\n accounts: [] as WalletAccount[],\n currentWallet: null,\n currentAccount: null,\n lastConnectedAccountAddress: null,\n lastConnectedWalletName: null,\n connectionStatus: 'disconnected',\n setConnectionStatus(connectionStatus) {\n set(() => ({\n connectionStatus,\n }));\n },\n setWalletConnected(wallet, connectedAccounts, selectedAccount) {\n set(() => ({\n accounts: connectedAccounts,\n currentWallet: wallet,\n currentAccount: selectedAccount,\n lastConnectedWalletName: getWalletUniqueIdentifier(wallet),\n lastConnectedAccountAddress: selectedAccount?.address,\n connectionStatus: 'connected',\n }));\n },\n setWalletDisconnected() {\n set(() => ({\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n }));\n },\n setAccountSwitched(selectedAccount) {\n set(() => ({\n currentAccount: selectedAccount,\n lastConnectedAccountAddress: selectedAccount.address,\n }));\n },\n setWalletRegistered(updatedWallets) {\n set(() => ({ wallets: updatedWallets }));\n },\n setWalletUnregistered(updatedWallets, unregisteredWallet) {\n if (unregisteredWallet === get().currentWallet) {\n set(() => ({\n wallets: updatedWallets,\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n }));\n } else {\n set(() => ({ wallets: updatedWallets }));\n }\n },\n updateWalletAccounts(accounts) {\n const currentAccount = get().currentAccount;\n\n set(() => ({\n accounts,\n currentAccount:\n (currentAccount &&\n accounts.find(\n ({ address }) => address === currentAccount.address,\n )) ||\n accounts[0],\n }));\n },\n }),\n {\n name: storageKey,\n storage: createJSONStorage(() => storage),\n partialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n }),\n },\n ),\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { assignInlineVars } from '@vanilla-extract/dynamic';\n\nimport { styleDataAttributeSelector } from '../../constants/styleDataAttribute.js';\nimport { themeVars } from '../../themes/themeContract.js';\nimport type { DynamicTheme, Theme, ThemeVars } from '../../themes/themeContract.js';\n\ntype InjectedThemeStylesProps = {\n theme: Theme;\n};\n\nexport function InjectedThemeStyles({ theme }: InjectedThemeStylesProps) {\n const themeStyles = Array.isArray(theme)\n ? getDynamicThemeStyles(theme)\n : getStaticThemeStyles(theme);\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: themeStyles,\n }}\n />\n );\n}\n\nfunction getDynamicThemeStyles(themes: DynamicTheme[]) {\n return themes\n .map(({ mediaQuery, selector, variables }) => {\n const themeStyles = getStaticThemeStyles(variables);\n const themeStylesWithSelectorPrefix = selector\n ? `${selector} ${themeStyles}`\n : themeStyles;\n\n return mediaQuery\n ? `@media ${mediaQuery}{${themeStylesWithSelectorPrefix}}`\n : themeStylesWithSelectorPrefix;\n })\n .join(' ');\n}\n\nfunction getStaticThemeStyles(theme: ThemeVars) {\n return `${styleDataAttributeSelector} {${cssStringFromTheme(theme)}}`;\n}\n\nfunction cssStringFromTheme(theme: ThemeVars) {\n return Object.entries(assignInlineVars(themeVars, theme))\n .map(([key, value]) => `${key}:${value};`)\n .join('');\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nexport const styleDataAttributeName = 'data-dapp-kit';\n\nexport const styleDataAttributeSelector = `[${styleDataAttributeName}]`;\n\nexport const styleDataAttribute = { [styleDataAttributeName]: '' };\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createGlobalThemeContract } from '@vanilla-extract/css';\n\nconst themeContractValues = {\n blurs: {\n modalOverlay: '',\n },\n backgroundColors: {\n primaryButton: '',\n primaryButtonHover: '',\n outlineButtonHover: '',\n walletItemHover: '',\n walletItemSelected: '',\n modalOverlay: '',\n modalPrimary: '',\n modalSecondary: '',\n iconButton: '',\n dropdownMenu: '',\n dropdownMenuSeparator: '',\n scrollThumb: '',\n },\n borderColors: {\n outlineButton: '',\n },\n colors: {\n primaryButton: '',\n outlineButtonHover: '',\n body: '',\n bodyMuted: '',\n bodyDanger: '',\n iconButton: '',\n },\n radii: {\n small: '',\n medium: '',\n large: '',\n xlarge: '',\n full: '',\n },\n fontWeights: {\n normal: '',\n medium: '',\n bold: '',\n },\n fontSizes: {\n small: '',\n medium: '',\n large: '',\n xlarge: '',\n },\n typography: {\n fontFamily: '',\n fontStyle: '',\n lineHeight: '',\n letterSpacing: '',\n },\n spacing: {\n xxsmall: '',\n xsmall: '',\n small: '',\n medium: '',\n large: '',\n xlarge: '',\n },\n};\n\nexport type ThemeVars = typeof themeContractValues;\n\n/**\n * A custom theme that is enabled when various conditions are\n */\nexport type DynamicTheme = {\n /**\n * An optional media query required for the given theme to be enabled. This is useful\n * when you want the theme of your application to automatically switch depending on\n * a media feature.\n *\n * @example '(prefers-color-scheme: dark)'\n */\n mediaQuery?: string;\n\n /**\n * An optional CSS selector required for the given theme to be enabled. This is useful\n * when you have a manual theme switcher on your application that sets a top-level\n * class name or data-attribute to control the current theme.\n *\n * @example '.data-dark'\n */\n selector?: string;\n\n /** The theme definitions that will be set when the selector and mediaQuery criteria are matched. */\n variables: ThemeVars;\n};\n\nexport type Theme = ThemeVars | DynamicTheme[];\n\nexport const themeVars = createGlobalThemeContract(\n themeContractValues,\n (_, path) => `dapp-kit-${path.join('-')}`,\n);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ThemeVars } from './themeContract.js';\n\nexport const darkTheme: ThemeVars = {\n blurs: {\n modalOverlay: 'blur(12px)',\n },\n backgroundColors: {\n primaryButton: '#253041',\n primaryButtonHover: '#313D50',\n outlineButtonHover: '#313D50',\n modalOverlay: 'rgba(0, 47, 109, 0.72)',\n modalPrimary: '#0f141c',\n modalSecondary: '#171d26',\n iconButton: 'transparent',\n dropdownMenu: '#0f141c',\n dropdownMenuSeparator: '#bed8ff14',\n walletItemSelected: '#171D26',\n walletItemHover: 'rgba(190, 216, 255, 0.12)',\n scrollThumb: '#3c4656',\n },\n borderColors: {\n outlineButton: '#8892A1',\n },\n colors: {\n primaryButton: '#E3EAF6',\n outlineButtonHover: '#171D26',\n iconButton: '#E3EAF6',\n body: '#E3EAF6',\n bodyMuted: '#8892A1',\n bodyDanger: '#FFB0BE',\n },\n radii: {\n small: '6px',\n medium: '8px',\n large: '12px',\n xlarge: '16px',\n full: '120px',\n },\n fontWeights: {\n normal: '400',\n medium: '500',\n bold: '600',\n },\n fontSizes: {\n small: '14px',\n medium: '16px',\n large: '18px',\n xlarge: '20px',\n },\n typography: {\n fontFamily:\n 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"',\n fontStyle: 'normal',\n lineHeight: '24px',\n letterSpacing: '0.1px',\n },\n spacing: {\n xxsmall: '4px',\n xsmall: '8px',\n small: '12px',\n medium: '16px',\n large: '24px',\n xlarge: '32px',\n },\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_react", "import_react_query", "import_react", "import_wallet_standard", "import_react", "wallet", "import_wallet_standard", "import_react", "import_react", "import_react", "import_react", "import_wallet_standard", "import_react", "import_zustand", "import_jsx_runtime", "import_jsx_runtime"]
7
7
  }