@iota/dapp-kit 0.1.1 → 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 +22 -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
@@ -39,6 +39,8 @@ var DEFAULT_REQUIRED_FEATURES = [
39
39
  "iota:signTransactionBlock"
40
40
  ];
41
41
  var DEFAULT_PREFERRED_WALLETS = [IOTA_WALLET_NAME];
42
+ var WALLET_CHROME_EXTENSION_ID = "TODO";
43
+ var WALLET_DOWNLOAD_URL = "https://chromewebstore.google.com/detail/" + WALLET_CHROME_EXTENSION_ID;
42
44
 
43
45
  // src/contexts/walletContext.ts
44
46
  import { createContext } from "react";
@@ -441,42 +443,39 @@ function useWalletsChanged(preferredWallets, requiredFeatures) {
441
443
  // src/themes/lightTheme.ts
442
444
  var lightTheme = {
443
445
  blurs: {
444
- modalOverlay: "blur(0)"
446
+ modalOverlay: "blur(12px)"
445
447
  },
446
448
  backgroundColors: {
447
- primaryButton: "#F6F7F9",
448
- primaryButtonHover: "#F0F2F5",
449
- outlineButtonHover: "#F4F4F5",
450
- modalOverlay: "rgba(24 36 53 / 20%)",
451
- modalPrimary: "white",
452
- modalSecondary: "#F7F8F8",
449
+ primaryButton: "#DDE4F0",
450
+ primaryButtonHover: "#002F6D14",
451
+ outlineButtonHover: "#002F6D14",
452
+ modalOverlay: "rgba(0, 47, 109, 0.72)",
453
+ modalPrimary: "#ffffff",
454
+ modalSecondary: "#e3eaf6",
453
455
  iconButton: "transparent",
454
- iconButtonHover: "#F0F1F2",
455
456
  dropdownMenu: "#FFFFFF",
456
- dropdownMenuSeparator: "#F3F6F8",
457
- walletItemSelected: "white",
458
- walletItemHover: "#3C424226"
457
+ dropdownMenuSeparator: "#002f6d14",
458
+ walletItemSelected: "#EFF4FA",
459
+ walletItemHover: "rgba(0, 103, 238, 0.12)",
460
+ scrollThumb: "#cad4e2"
459
461
  },
460
462
  borderColors: {
461
- outlineButton: "#E4E4E7"
463
+ outlineButton: "#6E7787"
462
464
  },
463
465
  colors: {
464
- primaryButton: "#373737",
465
- outlineButton: "#373737",
466
- iconButton: "#000000",
467
- body: "#182435",
468
- bodyMuted: "#767A81",
469
- bodyDanger: "#FF794B"
466
+ primaryButton: "#171D26",
467
+ outlineButtonHover: "#E3EAF6",
468
+ iconButton: "#171D26",
469
+ body: "#171D26",
470
+ bodyMuted: "#545E6E",
471
+ bodyDanger: "#B51431"
470
472
  },
471
473
  radii: {
472
474
  small: "6px",
473
475
  medium: "8px",
474
476
  large: "12px",
475
- xlarge: "16px"
476
- },
477
- shadows: {
478
- primaryButton: "0px 4px 12px rgba(0, 0, 0, 0.1)",
479
- walletItemSelected: "0px 2px 6px rgba(0, 0, 0, 0.05)"
477
+ xlarge: "16px",
478
+ full: "120px"
480
479
  },
481
480
  fontWeights: {
482
481
  normal: "400",
@@ -492,8 +491,16 @@ var lightTheme = {
492
491
  typography: {
493
492
  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"',
494
493
  fontStyle: "normal",
495
- lineHeight: "1.3",
496
- letterSpacing: "1"
494
+ lineHeight: "24px",
495
+ letterSpacing: "0.1px"
496
+ },
497
+ spacing: {
498
+ xxsmall: "4px",
499
+ xsmall: "8px",
500
+ small: "12px",
501
+ medium: "16px",
502
+ large: "24px",
503
+ xlarge: "32px"
497
504
  }
498
505
  };
499
506
 
@@ -612,16 +619,16 @@ var themeContractValues = {
612
619
  modalPrimary: "",
613
620
  modalSecondary: "",
614
621
  iconButton: "",
615
- iconButtonHover: "",
616
622
  dropdownMenu: "",
617
- dropdownMenuSeparator: ""
623
+ dropdownMenuSeparator: "",
624
+ scrollThumb: ""
618
625
  },
619
626
  borderColors: {
620
627
  outlineButton: ""
621
628
  },
622
629
  colors: {
623
630
  primaryButton: "",
624
- outlineButton: "",
631
+ outlineButtonHover: "",
625
632
  body: "",
626
633
  bodyMuted: "",
627
634
  bodyDanger: "",
@@ -631,11 +638,8 @@ var themeContractValues = {
631
638
  small: "",
632
639
  medium: "",
633
640
  large: "",
634
- xlarge: ""
635
- },
636
- shadows: {
637
- primaryButton: "",
638
- walletItemSelected: ""
641
+ xlarge: "",
642
+ full: ""
639
643
  },
640
644
  fontWeights: {
641
645
  normal: "",
@@ -653,6 +657,14 @@ var themeContractValues = {
653
657
  fontStyle: "",
654
658
  lineHeight: "",
655
659
  letterSpacing: ""
660
+ },
661
+ spacing: {
662
+ xxsmall: "",
663
+ xsmall: "",
664
+ small: "",
665
+ medium: "",
666
+ large: "",
667
+ xlarge: ""
656
668
  }
657
669
  };
658
670
  var themeVars = createGlobalThemeContract(
@@ -687,8 +699,81 @@ function cssStringFromTheme(theme) {
687
699
  return Object.entries(assignInlineVars(themeVars, theme)).map(([key, value]) => `${key}:${value};`).join("");
688
700
  }
689
701
 
702
+ // src/themes/darkTheme.ts
703
+ var darkTheme = {
704
+ blurs: {
705
+ modalOverlay: "blur(12px)"
706
+ },
707
+ backgroundColors: {
708
+ primaryButton: "#253041",
709
+ primaryButtonHover: "#313D50",
710
+ outlineButtonHover: "#313D50",
711
+ modalOverlay: "rgba(0, 47, 109, 0.72)",
712
+ modalPrimary: "#0f141c",
713
+ modalSecondary: "#171d26",
714
+ iconButton: "transparent",
715
+ dropdownMenu: "#0f141c",
716
+ dropdownMenuSeparator: "#bed8ff14",
717
+ walletItemSelected: "#171D26",
718
+ walletItemHover: "rgba(190, 216, 255, 0.12)",
719
+ scrollThumb: "#3c4656"
720
+ },
721
+ borderColors: {
722
+ outlineButton: "#8892A1"
723
+ },
724
+ colors: {
725
+ primaryButton: "#E3EAF6",
726
+ outlineButtonHover: "#171D26",
727
+ iconButton: "#E3EAF6",
728
+ body: "#E3EAF6",
729
+ bodyMuted: "#8892A1",
730
+ bodyDanger: "#FFB0BE"
731
+ },
732
+ radii: {
733
+ small: "6px",
734
+ medium: "8px",
735
+ large: "12px",
736
+ xlarge: "16px",
737
+ full: "120px"
738
+ },
739
+ fontWeights: {
740
+ normal: "400",
741
+ medium: "500",
742
+ bold: "600"
743
+ },
744
+ fontSizes: {
745
+ small: "14px",
746
+ medium: "16px",
747
+ large: "18px",
748
+ xlarge: "20px"
749
+ },
750
+ typography: {
751
+ 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"',
752
+ fontStyle: "normal",
753
+ lineHeight: "24px",
754
+ letterSpacing: "0.1px"
755
+ },
756
+ spacing: {
757
+ xxsmall: "4px",
758
+ xsmall: "8px",
759
+ small: "12px",
760
+ medium: "16px",
761
+ large: "24px",
762
+ xlarge: "32px"
763
+ }
764
+ };
765
+
690
766
  // src/components/WalletProvider.tsx
691
767
  import { jsx as jsx3, jsxs } from "react/jsx-runtime";
768
+ var themeWithSelectorAndMediaQuery = [
769
+ {
770
+ selector: ".dark",
771
+ variables: darkTheme
772
+ },
773
+ {
774
+ variables: lightTheme
775
+ }
776
+ ];
692
777
  function WalletProvider({
693
778
  preferredWallets = DEFAULT_PREFERRED_WALLETS,
694
779
  requiredFeatures = DEFAULT_REQUIRED_FEATURES,
@@ -696,7 +781,7 @@ function WalletProvider({
696
781
  storageKey = DEFAULT_STORAGE_KEY,
697
782
  enableUnsafeBurner = false,
698
783
  autoConnect = false,
699
- theme = lightTheme,
784
+ theme = themeWithSelectorAndMediaQuery,
700
785
  children
701
786
  }) {
702
787
  const storeRef = 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": ["wallet", "getWallets", "useContext", "createContext", "useState", "useContext", "getWallets", "useEffect", "useEffect", "getWallets", "useEffect", "useEffect", "getWallets", "jsx", "jsx"]
7
7
  }