@metamask/snaps-sdk 10.3.0 → 11.0.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 (738) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/dist/error-wrappers.d.cts +192 -192
  3. package/dist/error-wrappers.d.mts +192 -192
  4. package/dist/errors.cjs +27 -1
  5. package/dist/errors.cjs.map +1 -1
  6. package/dist/errors.d.cts +14 -0
  7. package/dist/errors.d.cts.map +1 -1
  8. package/dist/errors.d.mts +14 -0
  9. package/dist/errors.d.mts.map +1 -1
  10. package/dist/errors.mjs +25 -1
  11. package/dist/errors.mjs.map +1 -1
  12. package/dist/images.cjs +1 -41
  13. package/dist/images.cjs.map +1 -1
  14. package/dist/images.d.cts +0 -49
  15. package/dist/images.d.cts.map +1 -1
  16. package/dist/images.d.mts +0 -49
  17. package/dist/images.d.mts.map +1 -1
  18. package/dist/images.mjs +0 -39
  19. package/dist/images.mjs.map +1 -1
  20. package/dist/index.cjs +8 -0
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +8 -0
  23. package/dist/index.d.cts.map +1 -1
  24. package/dist/index.d.mts +8 -0
  25. package/dist/index.d.mts.map +1 -1
  26. package/dist/index.mjs +8 -0
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/internals/error-wrappers.d.cts +12 -12
  29. package/dist/internals/error-wrappers.d.mts +12 -12
  30. package/dist/jsx/components/Address.cjs +1 -0
  31. package/dist/jsx/components/Address.cjs.map +1 -1
  32. package/dist/jsx/components/Address.d.cts +4 -1
  33. package/dist/jsx/components/Address.d.cts.map +1 -1
  34. package/dist/jsx/components/Address.d.mts +4 -1
  35. package/dist/jsx/components/Address.d.mts.map +1 -1
  36. package/dist/jsx/components/Address.mjs +1 -0
  37. package/dist/jsx/components/Address.mjs.map +1 -1
  38. package/dist/jsx/components/Avatar.cjs +1 -0
  39. package/dist/jsx/components/Avatar.cjs.map +1 -1
  40. package/dist/jsx/components/Avatar.d.cts +4 -1
  41. package/dist/jsx/components/Avatar.d.cts.map +1 -1
  42. package/dist/jsx/components/Avatar.d.mts +4 -1
  43. package/dist/jsx/components/Avatar.d.mts.map +1 -1
  44. package/dist/jsx/components/Avatar.mjs +1 -0
  45. package/dist/jsx/components/Avatar.mjs.map +1 -1
  46. package/dist/jsx/components/Banner.cjs +1 -0
  47. package/dist/jsx/components/Banner.cjs.map +1 -1
  48. package/dist/jsx/components/Banner.d.cts +4 -1
  49. package/dist/jsx/components/Banner.d.cts.map +1 -1
  50. package/dist/jsx/components/Banner.d.mts +4 -1
  51. package/dist/jsx/components/Banner.d.mts.map +1 -1
  52. package/dist/jsx/components/Banner.mjs +1 -0
  53. package/dist/jsx/components/Banner.mjs.map +1 -1
  54. package/dist/jsx/components/Box.cjs +1 -0
  55. package/dist/jsx/components/Box.cjs.map +1 -1
  56. package/dist/jsx/components/Box.d.cts +4 -1
  57. package/dist/jsx/components/Box.d.cts.map +1 -1
  58. package/dist/jsx/components/Box.d.mts +4 -1
  59. package/dist/jsx/components/Box.d.mts.map +1 -1
  60. package/dist/jsx/components/Box.mjs +1 -0
  61. package/dist/jsx/components/Box.mjs.map +1 -1
  62. package/dist/jsx/components/Card.cjs +1 -0
  63. package/dist/jsx/components/Card.cjs.map +1 -1
  64. package/dist/jsx/components/Card.d.cts +4 -1
  65. package/dist/jsx/components/Card.d.cts.map +1 -1
  66. package/dist/jsx/components/Card.d.mts +4 -1
  67. package/dist/jsx/components/Card.d.mts.map +1 -1
  68. package/dist/jsx/components/Card.mjs +1 -0
  69. package/dist/jsx/components/Card.mjs.map +1 -1
  70. package/dist/jsx/components/Container.cjs +1 -0
  71. package/dist/jsx/components/Container.cjs.map +1 -1
  72. package/dist/jsx/components/Container.d.cts +4 -1
  73. package/dist/jsx/components/Container.d.cts.map +1 -1
  74. package/dist/jsx/components/Container.d.mts +4 -1
  75. package/dist/jsx/components/Container.d.mts.map +1 -1
  76. package/dist/jsx/components/Container.mjs +1 -0
  77. package/dist/jsx/components/Container.mjs.map +1 -1
  78. package/dist/jsx/components/Copyable.cjs +1 -0
  79. package/dist/jsx/components/Copyable.cjs.map +1 -1
  80. package/dist/jsx/components/Copyable.d.cts +4 -1
  81. package/dist/jsx/components/Copyable.d.cts.map +1 -1
  82. package/dist/jsx/components/Copyable.d.mts +4 -1
  83. package/dist/jsx/components/Copyable.d.mts.map +1 -1
  84. package/dist/jsx/components/Copyable.mjs +1 -0
  85. package/dist/jsx/components/Copyable.mjs.map +1 -1
  86. package/dist/jsx/components/Divider.cjs +1 -0
  87. package/dist/jsx/components/Divider.cjs.map +1 -1
  88. package/dist/jsx/components/Divider.d.cts +3 -1
  89. package/dist/jsx/components/Divider.d.cts.map +1 -1
  90. package/dist/jsx/components/Divider.d.mts +3 -1
  91. package/dist/jsx/components/Divider.d.mts.map +1 -1
  92. package/dist/jsx/components/Divider.mjs +1 -0
  93. package/dist/jsx/components/Divider.mjs.map +1 -1
  94. package/dist/jsx/components/Footer.cjs +1 -0
  95. package/dist/jsx/components/Footer.cjs.map +1 -1
  96. package/dist/jsx/components/Footer.d.cts +4 -1
  97. package/dist/jsx/components/Footer.d.cts.map +1 -1
  98. package/dist/jsx/components/Footer.d.mts +4 -1
  99. package/dist/jsx/components/Footer.d.mts.map +1 -1
  100. package/dist/jsx/components/Footer.mjs +1 -0
  101. package/dist/jsx/components/Footer.mjs.map +1 -1
  102. package/dist/jsx/components/Heading.cjs +1 -0
  103. package/dist/jsx/components/Heading.cjs.map +1 -1
  104. package/dist/jsx/components/Heading.d.cts +4 -1
  105. package/dist/jsx/components/Heading.d.cts.map +1 -1
  106. package/dist/jsx/components/Heading.d.mts +4 -1
  107. package/dist/jsx/components/Heading.d.mts.map +1 -1
  108. package/dist/jsx/components/Heading.mjs +1 -0
  109. package/dist/jsx/components/Heading.mjs.map +1 -1
  110. package/dist/jsx/components/Icon.cjs +1 -0
  111. package/dist/jsx/components/Icon.cjs.map +1 -1
  112. package/dist/jsx/components/Icon.d.cts +9 -2
  113. package/dist/jsx/components/Icon.d.cts.map +1 -1
  114. package/dist/jsx/components/Icon.d.mts +9 -2
  115. package/dist/jsx/components/Icon.d.mts.map +1 -1
  116. package/dist/jsx/components/Icon.mjs +1 -0
  117. package/dist/jsx/components/Icon.mjs.map +1 -1
  118. package/dist/jsx/components/Image.cjs +1 -0
  119. package/dist/jsx/components/Image.cjs.map +1 -1
  120. package/dist/jsx/components/Image.d.cts +4 -1
  121. package/dist/jsx/components/Image.d.cts.map +1 -1
  122. package/dist/jsx/components/Image.d.mts +4 -1
  123. package/dist/jsx/components/Image.d.mts.map +1 -1
  124. package/dist/jsx/components/Image.mjs +1 -0
  125. package/dist/jsx/components/Image.mjs.map +1 -1
  126. package/dist/jsx/components/Link.cjs +1 -0
  127. package/dist/jsx/components/Link.cjs.map +1 -1
  128. package/dist/jsx/components/Link.d.cts +4 -1
  129. package/dist/jsx/components/Link.d.cts.map +1 -1
  130. package/dist/jsx/components/Link.d.mts +4 -1
  131. package/dist/jsx/components/Link.d.mts.map +1 -1
  132. package/dist/jsx/components/Link.mjs +1 -0
  133. package/dist/jsx/components/Link.mjs.map +1 -1
  134. package/dist/jsx/components/Row.cjs +1 -0
  135. package/dist/jsx/components/Row.cjs.map +1 -1
  136. package/dist/jsx/components/Row.d.cts +4 -1
  137. package/dist/jsx/components/Row.d.cts.map +1 -1
  138. package/dist/jsx/components/Row.d.mts +4 -1
  139. package/dist/jsx/components/Row.d.mts.map +1 -1
  140. package/dist/jsx/components/Row.mjs +1 -0
  141. package/dist/jsx/components/Row.mjs.map +1 -1
  142. package/dist/jsx/components/Section.cjs +1 -0
  143. package/dist/jsx/components/Section.cjs.map +1 -1
  144. package/dist/jsx/components/Section.d.cts +4 -1
  145. package/dist/jsx/components/Section.d.cts.map +1 -1
  146. package/dist/jsx/components/Section.d.mts +4 -1
  147. package/dist/jsx/components/Section.d.mts.map +1 -1
  148. package/dist/jsx/components/Section.mjs +1 -0
  149. package/dist/jsx/components/Section.mjs.map +1 -1
  150. package/dist/jsx/components/Skeleton.cjs +1 -0
  151. package/dist/jsx/components/Skeleton.cjs.map +1 -1
  152. package/dist/jsx/components/Skeleton.d.cts +4 -1
  153. package/dist/jsx/components/Skeleton.d.cts.map +1 -1
  154. package/dist/jsx/components/Skeleton.d.mts +4 -1
  155. package/dist/jsx/components/Skeleton.d.mts.map +1 -1
  156. package/dist/jsx/components/Skeleton.mjs +1 -0
  157. package/dist/jsx/components/Skeleton.mjs.map +1 -1
  158. package/dist/jsx/components/Spinner.cjs +1 -0
  159. package/dist/jsx/components/Spinner.cjs.map +1 -1
  160. package/dist/jsx/components/Spinner.d.cts +3 -1
  161. package/dist/jsx/components/Spinner.d.cts.map +1 -1
  162. package/dist/jsx/components/Spinner.d.mts +3 -1
  163. package/dist/jsx/components/Spinner.d.mts.map +1 -1
  164. package/dist/jsx/components/Spinner.mjs +1 -0
  165. package/dist/jsx/components/Spinner.mjs.map +1 -1
  166. package/dist/jsx/components/Text.cjs +1 -0
  167. package/dist/jsx/components/Text.cjs.map +1 -1
  168. package/dist/jsx/components/Text.d.cts +4 -1
  169. package/dist/jsx/components/Text.d.cts.map +1 -1
  170. package/dist/jsx/components/Text.d.mts +4 -1
  171. package/dist/jsx/components/Text.d.mts.map +1 -1
  172. package/dist/jsx/components/Text.mjs +1 -0
  173. package/dist/jsx/components/Text.mjs.map +1 -1
  174. package/dist/jsx/components/Tooltip.cjs +1 -0
  175. package/dist/jsx/components/Tooltip.cjs.map +1 -1
  176. package/dist/jsx/components/Tooltip.d.cts +4 -1
  177. package/dist/jsx/components/Tooltip.d.cts.map +1 -1
  178. package/dist/jsx/components/Tooltip.d.mts +4 -1
  179. package/dist/jsx/components/Tooltip.d.mts.map +1 -1
  180. package/dist/jsx/components/Tooltip.mjs +1 -0
  181. package/dist/jsx/components/Tooltip.mjs.map +1 -1
  182. package/dist/jsx/components/Value.cjs +1 -0
  183. package/dist/jsx/components/Value.cjs.map +1 -1
  184. package/dist/jsx/components/Value.d.cts +4 -1
  185. package/dist/jsx/components/Value.d.cts.map +1 -1
  186. package/dist/jsx/components/Value.d.mts +4 -1
  187. package/dist/jsx/components/Value.d.mts.map +1 -1
  188. package/dist/jsx/components/Value.mjs +1 -0
  189. package/dist/jsx/components/Value.mjs.map +1 -1
  190. package/dist/jsx/components/form/AccountSelector.cjs +1 -0
  191. package/dist/jsx/components/form/AccountSelector.cjs.map +1 -1
  192. package/dist/jsx/components/form/AccountSelector.d.cts +4 -1
  193. package/dist/jsx/components/form/AccountSelector.d.cts.map +1 -1
  194. package/dist/jsx/components/form/AccountSelector.d.mts +4 -1
  195. package/dist/jsx/components/form/AccountSelector.d.mts.map +1 -1
  196. package/dist/jsx/components/form/AccountSelector.mjs +1 -0
  197. package/dist/jsx/components/form/AccountSelector.mjs.map +1 -1
  198. package/dist/jsx/components/form/AddressInput.cjs +1 -0
  199. package/dist/jsx/components/form/AddressInput.cjs.map +1 -1
  200. package/dist/jsx/components/form/AddressInput.d.cts +18 -0
  201. package/dist/jsx/components/form/AddressInput.d.cts.map +1 -1
  202. package/dist/jsx/components/form/AddressInput.d.mts +18 -0
  203. package/dist/jsx/components/form/AddressInput.d.mts.map +1 -1
  204. package/dist/jsx/components/form/AddressInput.mjs +1 -0
  205. package/dist/jsx/components/form/AddressInput.mjs.map +1 -1
  206. package/dist/jsx/components/form/AssetSelector.cjs +1 -0
  207. package/dist/jsx/components/form/AssetSelector.cjs.map +1 -1
  208. package/dist/jsx/components/form/AssetSelector.d.cts +8 -0
  209. package/dist/jsx/components/form/AssetSelector.d.cts.map +1 -1
  210. package/dist/jsx/components/form/AssetSelector.d.mts +8 -0
  211. package/dist/jsx/components/form/AssetSelector.d.mts.map +1 -1
  212. package/dist/jsx/components/form/AssetSelector.mjs +1 -0
  213. package/dist/jsx/components/form/AssetSelector.mjs.map +1 -1
  214. package/dist/jsx/components/form/Button.cjs +1 -0
  215. package/dist/jsx/components/form/Button.cjs.map +1 -1
  216. package/dist/jsx/components/form/Button.d.cts +4 -1
  217. package/dist/jsx/components/form/Button.d.cts.map +1 -1
  218. package/dist/jsx/components/form/Button.d.mts +4 -1
  219. package/dist/jsx/components/form/Button.d.mts.map +1 -1
  220. package/dist/jsx/components/form/Button.mjs +1 -0
  221. package/dist/jsx/components/form/Button.mjs.map +1 -1
  222. package/dist/jsx/components/form/Checkbox.cjs +1 -0
  223. package/dist/jsx/components/form/Checkbox.cjs.map +1 -1
  224. package/dist/jsx/components/form/Checkbox.d.cts +4 -1
  225. package/dist/jsx/components/form/Checkbox.d.cts.map +1 -1
  226. package/dist/jsx/components/form/Checkbox.d.mts +4 -1
  227. package/dist/jsx/components/form/Checkbox.d.mts.map +1 -1
  228. package/dist/jsx/components/form/Checkbox.mjs +1 -0
  229. package/dist/jsx/components/form/Checkbox.mjs.map +1 -1
  230. package/dist/jsx/components/form/DateTimePicker.cjs +1 -0
  231. package/dist/jsx/components/form/DateTimePicker.cjs.map +1 -1
  232. package/dist/jsx/components/form/DateTimePicker.d.cts +4 -1
  233. package/dist/jsx/components/form/DateTimePicker.d.cts.map +1 -1
  234. package/dist/jsx/components/form/DateTimePicker.d.mts +4 -1
  235. package/dist/jsx/components/form/DateTimePicker.d.mts.map +1 -1
  236. package/dist/jsx/components/form/DateTimePicker.mjs +1 -0
  237. package/dist/jsx/components/form/DateTimePicker.mjs.map +1 -1
  238. package/dist/jsx/components/form/Dropdown.cjs +1 -0
  239. package/dist/jsx/components/form/Dropdown.cjs.map +1 -1
  240. package/dist/jsx/components/form/Dropdown.d.cts +4 -1
  241. package/dist/jsx/components/form/Dropdown.d.cts.map +1 -1
  242. package/dist/jsx/components/form/Dropdown.d.mts +4 -1
  243. package/dist/jsx/components/form/Dropdown.d.mts.map +1 -1
  244. package/dist/jsx/components/form/Dropdown.mjs +1 -0
  245. package/dist/jsx/components/form/Dropdown.mjs.map +1 -1
  246. package/dist/jsx/components/form/Field.cjs +1 -0
  247. package/dist/jsx/components/form/Field.cjs.map +1 -1
  248. package/dist/jsx/components/form/Field.d.cts +4 -1
  249. package/dist/jsx/components/form/Field.d.cts.map +1 -1
  250. package/dist/jsx/components/form/Field.d.mts +4 -1
  251. package/dist/jsx/components/form/Field.d.mts.map +1 -1
  252. package/dist/jsx/components/form/Field.mjs +1 -0
  253. package/dist/jsx/components/form/Field.mjs.map +1 -1
  254. package/dist/jsx/components/form/FileInput.cjs +1 -0
  255. package/dist/jsx/components/form/FileInput.cjs.map +1 -1
  256. package/dist/jsx/components/form/FileInput.d.cts +4 -1
  257. package/dist/jsx/components/form/FileInput.d.cts.map +1 -1
  258. package/dist/jsx/components/form/FileInput.d.mts +4 -1
  259. package/dist/jsx/components/form/FileInput.d.mts.map +1 -1
  260. package/dist/jsx/components/form/FileInput.mjs +1 -0
  261. package/dist/jsx/components/form/FileInput.mjs.map +1 -1
  262. package/dist/jsx/components/form/Form.cjs +1 -0
  263. package/dist/jsx/components/form/Form.cjs.map +1 -1
  264. package/dist/jsx/components/form/Form.d.cts +4 -1
  265. package/dist/jsx/components/form/Form.d.cts.map +1 -1
  266. package/dist/jsx/components/form/Form.d.mts +4 -1
  267. package/dist/jsx/components/form/Form.d.mts.map +1 -1
  268. package/dist/jsx/components/form/Form.mjs +1 -0
  269. package/dist/jsx/components/form/Form.mjs.map +1 -1
  270. package/dist/jsx/components/form/Input.cjs +1 -0
  271. package/dist/jsx/components/form/Input.cjs.map +1 -1
  272. package/dist/jsx/components/form/Input.d.cts +16 -1
  273. package/dist/jsx/components/form/Input.d.cts.map +1 -1
  274. package/dist/jsx/components/form/Input.d.mts +16 -1
  275. package/dist/jsx/components/form/Input.d.mts.map +1 -1
  276. package/dist/jsx/components/form/Input.mjs +1 -0
  277. package/dist/jsx/components/form/Input.mjs.map +1 -1
  278. package/dist/jsx/components/form/Option.cjs +1 -0
  279. package/dist/jsx/components/form/Option.cjs.map +1 -1
  280. package/dist/jsx/components/form/Option.d.cts +4 -1
  281. package/dist/jsx/components/form/Option.d.cts.map +1 -1
  282. package/dist/jsx/components/form/Option.d.mts +4 -1
  283. package/dist/jsx/components/form/Option.d.mts.map +1 -1
  284. package/dist/jsx/components/form/Option.mjs +1 -0
  285. package/dist/jsx/components/form/Option.mjs.map +1 -1
  286. package/dist/jsx/components/form/Radio.cjs +1 -0
  287. package/dist/jsx/components/form/Radio.cjs.map +1 -1
  288. package/dist/jsx/components/form/Radio.d.cts +4 -1
  289. package/dist/jsx/components/form/Radio.d.cts.map +1 -1
  290. package/dist/jsx/components/form/Radio.d.mts +4 -1
  291. package/dist/jsx/components/form/Radio.d.mts.map +1 -1
  292. package/dist/jsx/components/form/Radio.mjs +1 -0
  293. package/dist/jsx/components/form/Radio.mjs.map +1 -1
  294. package/dist/jsx/components/form/RadioGroup.cjs +1 -0
  295. package/dist/jsx/components/form/RadioGroup.cjs.map +1 -1
  296. package/dist/jsx/components/form/RadioGroup.d.cts +4 -1
  297. package/dist/jsx/components/form/RadioGroup.d.cts.map +1 -1
  298. package/dist/jsx/components/form/RadioGroup.d.mts +4 -1
  299. package/dist/jsx/components/form/RadioGroup.d.mts.map +1 -1
  300. package/dist/jsx/components/form/RadioGroup.mjs +1 -0
  301. package/dist/jsx/components/form/RadioGroup.mjs.map +1 -1
  302. package/dist/jsx/components/form/Selector.cjs +1 -0
  303. package/dist/jsx/components/form/Selector.cjs.map +1 -1
  304. package/dist/jsx/components/form/Selector.d.cts +4 -1
  305. package/dist/jsx/components/form/Selector.d.cts.map +1 -1
  306. package/dist/jsx/components/form/Selector.d.mts +4 -1
  307. package/dist/jsx/components/form/Selector.d.mts.map +1 -1
  308. package/dist/jsx/components/form/Selector.mjs +1 -0
  309. package/dist/jsx/components/form/Selector.mjs.map +1 -1
  310. package/dist/jsx/components/form/SelectorOption.cjs +1 -0
  311. package/dist/jsx/components/form/SelectorOption.cjs.map +1 -1
  312. package/dist/jsx/components/form/SelectorOption.d.cts +4 -1
  313. package/dist/jsx/components/form/SelectorOption.d.cts.map +1 -1
  314. package/dist/jsx/components/form/SelectorOption.d.mts +4 -1
  315. package/dist/jsx/components/form/SelectorOption.d.mts.map +1 -1
  316. package/dist/jsx/components/form/SelectorOption.mjs +1 -0
  317. package/dist/jsx/components/form/SelectorOption.mjs.map +1 -1
  318. package/dist/jsx/components/formatting/Bold.cjs +1 -0
  319. package/dist/jsx/components/formatting/Bold.cjs.map +1 -1
  320. package/dist/jsx/components/formatting/Bold.d.cts +4 -1
  321. package/dist/jsx/components/formatting/Bold.d.cts.map +1 -1
  322. package/dist/jsx/components/formatting/Bold.d.mts +4 -1
  323. package/dist/jsx/components/formatting/Bold.d.mts.map +1 -1
  324. package/dist/jsx/components/formatting/Bold.mjs +1 -0
  325. package/dist/jsx/components/formatting/Bold.mjs.map +1 -1
  326. package/dist/jsx/components/formatting/Italic.cjs +1 -0
  327. package/dist/jsx/components/formatting/Italic.cjs.map +1 -1
  328. package/dist/jsx/components/formatting/Italic.d.cts +4 -1
  329. package/dist/jsx/components/formatting/Italic.d.cts.map +1 -1
  330. package/dist/jsx/components/formatting/Italic.d.mts +4 -1
  331. package/dist/jsx/components/formatting/Italic.d.mts.map +1 -1
  332. package/dist/jsx/components/formatting/Italic.mjs +1 -0
  333. package/dist/jsx/components/formatting/Italic.mjs.map +1 -1
  334. package/dist/jsx/index.cjs +22 -0
  335. package/dist/jsx/index.cjs.map +1 -1
  336. package/dist/jsx/index.d.cts +22 -0
  337. package/dist/jsx/index.d.cts.map +1 -1
  338. package/dist/jsx/index.d.mts +22 -0
  339. package/dist/jsx/index.d.mts.map +1 -1
  340. package/dist/jsx/index.mjs +22 -0
  341. package/dist/jsx/index.mjs.map +1 -1
  342. package/dist/jsx/validation.cjs +8 -1
  343. package/dist/jsx/validation.cjs.map +1 -1
  344. package/dist/jsx/validation.d.cts.map +1 -1
  345. package/dist/jsx/validation.d.mts.map +1 -1
  346. package/dist/jsx/validation.mjs +8 -1
  347. package/dist/jsx/validation.mjs.map +1 -1
  348. package/dist/types/handlers/assets-market-data.cjs.map +1 -1
  349. package/dist/types/handlers/assets-market-data.d.cts +1 -1
  350. package/dist/types/handlers/assets-market-data.d.mts +1 -1
  351. package/dist/types/handlers/assets-market-data.mjs.map +1 -1
  352. package/dist/types/methods/cancel-background-event.cjs.map +1 -1
  353. package/dist/types/methods/cancel-background-event.d.cts +6 -6
  354. package/dist/types/methods/cancel-background-event.d.cts.map +1 -1
  355. package/dist/types/methods/cancel-background-event.d.mts +6 -6
  356. package/dist/types/methods/cancel-background-event.d.mts.map +1 -1
  357. package/dist/types/methods/cancel-background-event.mjs.map +1 -1
  358. package/dist/types/methods/clear-state.cjs.map +1 -1
  359. package/dist/types/methods/clear-state.d.cts +8 -4
  360. package/dist/types/methods/clear-state.d.cts.map +1 -1
  361. package/dist/types/methods/clear-state.d.mts +8 -4
  362. package/dist/types/methods/clear-state.d.mts.map +1 -1
  363. package/dist/types/methods/clear-state.mjs.map +1 -1
  364. package/dist/types/methods/close-web-socket.cjs.map +1 -1
  365. package/dist/types/methods/close-web-socket.d.cts +3 -3
  366. package/dist/types/methods/close-web-socket.d.mts +3 -3
  367. package/dist/types/methods/close-web-socket.mjs.map +1 -1
  368. package/dist/types/methods/create-interface.cjs.map +1 -1
  369. package/dist/types/methods/create-interface.d.cts +14 -4
  370. package/dist/types/methods/create-interface.d.cts.map +1 -1
  371. package/dist/types/methods/create-interface.d.mts +14 -4
  372. package/dist/types/methods/create-interface.d.mts.map +1 -1
  373. package/dist/types/methods/create-interface.mjs.map +1 -1
  374. package/dist/types/methods/dialog.cjs.map +1 -1
  375. package/dist/types/methods/dialog.d.cts +49 -18
  376. package/dist/types/methods/dialog.d.cts.map +1 -1
  377. package/dist/types/methods/dialog.d.mts +49 -18
  378. package/dist/types/methods/dialog.d.mts.map +1 -1
  379. package/dist/types/methods/dialog.mjs.map +1 -1
  380. package/dist/types/methods/get-background-events.cjs.map +1 -1
  381. package/dist/types/methods/get-background-events.d.cts +17 -8
  382. package/dist/types/methods/get-background-events.d.cts.map +1 -1
  383. package/dist/types/methods/get-background-events.d.mts +17 -8
  384. package/dist/types/methods/get-background-events.d.mts.map +1 -1
  385. package/dist/types/methods/get-background-events.mjs.map +1 -1
  386. package/dist/types/methods/get-bip32-entropy.cjs.map +1 -1
  387. package/dist/types/methods/get-bip32-entropy.d.cts +2 -4
  388. package/dist/types/methods/get-bip32-entropy.d.cts.map +1 -1
  389. package/dist/types/methods/get-bip32-entropy.d.mts +2 -4
  390. package/dist/types/methods/get-bip32-entropy.d.mts.map +1 -1
  391. package/dist/types/methods/get-bip32-entropy.mjs.map +1 -1
  392. package/dist/types/methods/get-bip32-public-key.cjs.map +1 -1
  393. package/dist/types/methods/get-bip32-public-key.d.cts +3 -5
  394. package/dist/types/methods/get-bip32-public-key.d.cts.map +1 -1
  395. package/dist/types/methods/get-bip32-public-key.d.mts +3 -5
  396. package/dist/types/methods/get-bip32-public-key.d.mts.map +1 -1
  397. package/dist/types/methods/get-bip32-public-key.mjs.map +1 -1
  398. package/dist/types/methods/get-bip44-entropy.cjs.map +1 -1
  399. package/dist/types/methods/get-bip44-entropy.d.cts +3 -4
  400. package/dist/types/methods/get-bip44-entropy.d.cts.map +1 -1
  401. package/dist/types/methods/get-bip44-entropy.d.mts +3 -4
  402. package/dist/types/methods/get-bip44-entropy.d.mts.map +1 -1
  403. package/dist/types/methods/get-bip44-entropy.mjs.map +1 -1
  404. package/dist/types/methods/get-client-status.cjs.map +1 -1
  405. package/dist/types/methods/get-client-status.d.cts +5 -7
  406. package/dist/types/methods/get-client-status.d.cts.map +1 -1
  407. package/dist/types/methods/get-client-status.d.mts +5 -7
  408. package/dist/types/methods/get-client-status.d.mts.map +1 -1
  409. package/dist/types/methods/get-client-status.mjs.map +1 -1
  410. package/dist/types/methods/get-entropy.cjs.map +1 -1
  411. package/dist/types/methods/get-entropy.d.cts +6 -5
  412. package/dist/types/methods/get-entropy.d.cts.map +1 -1
  413. package/dist/types/methods/get-entropy.d.mts +6 -5
  414. package/dist/types/methods/get-entropy.d.mts.map +1 -1
  415. package/dist/types/methods/get-entropy.mjs.map +1 -1
  416. package/dist/types/methods/get-file.cjs.map +1 -1
  417. package/dist/types/methods/get-file.d.cts +9 -5
  418. package/dist/types/methods/get-file.d.cts.map +1 -1
  419. package/dist/types/methods/get-file.d.mts +9 -5
  420. package/dist/types/methods/get-file.d.mts.map +1 -1
  421. package/dist/types/methods/get-file.mjs.map +1 -1
  422. package/dist/types/methods/get-interface-context.cjs.map +1 -1
  423. package/dist/types/methods/get-interface-context.d.cts +5 -3
  424. package/dist/types/methods/get-interface-context.d.cts.map +1 -1
  425. package/dist/types/methods/get-interface-context.d.mts +5 -3
  426. package/dist/types/methods/get-interface-context.d.mts.map +1 -1
  427. package/dist/types/methods/get-interface-context.mjs.map +1 -1
  428. package/dist/types/methods/get-interface-state.cjs.map +1 -1
  429. package/dist/types/methods/get-interface-state.d.cts +10 -3
  430. package/dist/types/methods/get-interface-state.d.cts.map +1 -1
  431. package/dist/types/methods/get-interface-state.d.mts +10 -3
  432. package/dist/types/methods/get-interface-state.d.mts.map +1 -1
  433. package/dist/types/methods/get-interface-state.mjs.map +1 -1
  434. package/dist/types/methods/get-locale.cjs.map +1 -1
  435. package/dist/types/methods/get-locale.d.cts +1 -5
  436. package/dist/types/methods/get-locale.d.cts.map +1 -1
  437. package/dist/types/methods/get-locale.d.mts +1 -5
  438. package/dist/types/methods/get-locale.d.mts.map +1 -1
  439. package/dist/types/methods/get-locale.mjs.map +1 -1
  440. package/dist/types/methods/get-preferences.cjs.map +1 -1
  441. package/dist/types/methods/get-preferences.d.cts +39 -17
  442. package/dist/types/methods/get-preferences.d.cts.map +1 -1
  443. package/dist/types/methods/get-preferences.d.mts +39 -17
  444. package/dist/types/methods/get-preferences.d.mts.map +1 -1
  445. package/dist/types/methods/get-preferences.mjs.map +1 -1
  446. package/dist/types/methods/get-snaps.cjs.map +1 -1
  447. package/dist/types/methods/get-snaps.d.cts +1 -5
  448. package/dist/types/methods/get-snaps.d.cts.map +1 -1
  449. package/dist/types/methods/get-snaps.d.mts +1 -5
  450. package/dist/types/methods/get-snaps.d.mts.map +1 -1
  451. package/dist/types/methods/get-snaps.mjs.map +1 -1
  452. package/dist/types/methods/get-state.cjs.map +1 -1
  453. package/dist/types/methods/get-state.d.cts +8 -3
  454. package/dist/types/methods/get-state.d.cts.map +1 -1
  455. package/dist/types/methods/get-state.d.mts +8 -3
  456. package/dist/types/methods/get-state.d.mts.map +1 -1
  457. package/dist/types/methods/get-state.mjs.map +1 -1
  458. package/dist/types/methods/get-web-sockets.cjs.map +1 -1
  459. package/dist/types/methods/get-web-sockets.d.cts +10 -3
  460. package/dist/types/methods/get-web-sockets.d.cts.map +1 -1
  461. package/dist/types/methods/get-web-sockets.d.mts +10 -3
  462. package/dist/types/methods/get-web-sockets.d.mts.map +1 -1
  463. package/dist/types/methods/get-web-sockets.mjs.map +1 -1
  464. package/dist/types/methods/index.cjs.map +1 -1
  465. package/dist/types/methods/index.d.cts +1 -2
  466. package/dist/types/methods/index.d.cts.map +1 -1
  467. package/dist/types/methods/index.d.mts +1 -2
  468. package/dist/types/methods/index.d.mts.map +1 -1
  469. package/dist/types/methods/index.mjs.map +1 -1
  470. package/dist/types/methods/invoke-keyring.cjs.map +1 -1
  471. package/dist/types/methods/invoke-keyring.d.cts +5 -4
  472. package/dist/types/methods/invoke-keyring.d.cts.map +1 -1
  473. package/dist/types/methods/invoke-keyring.d.mts +5 -4
  474. package/dist/types/methods/invoke-keyring.d.mts.map +1 -1
  475. package/dist/types/methods/invoke-keyring.mjs.map +1 -1
  476. package/dist/types/methods/invoke-snap.cjs.map +1 -1
  477. package/dist/types/methods/invoke-snap.d.cts +10 -6
  478. package/dist/types/methods/invoke-snap.d.cts.map +1 -1
  479. package/dist/types/methods/invoke-snap.d.mts +10 -6
  480. package/dist/types/methods/invoke-snap.d.mts.map +1 -1
  481. package/dist/types/methods/invoke-snap.mjs.map +1 -1
  482. package/dist/types/methods/list-entropy-sources.cjs.map +1 -1
  483. package/dist/types/methods/list-entropy-sources.d.cts +2 -2
  484. package/dist/types/methods/list-entropy-sources.d.mts +2 -2
  485. package/dist/types/methods/list-entropy-sources.mjs.map +1 -1
  486. package/dist/types/methods/manage-accounts.cjs.map +1 -1
  487. package/dist/types/methods/manage-accounts.d.cts +10 -9
  488. package/dist/types/methods/manage-accounts.d.cts.map +1 -1
  489. package/dist/types/methods/manage-accounts.d.mts +10 -9
  490. package/dist/types/methods/manage-accounts.d.mts.map +1 -1
  491. package/dist/types/methods/manage-accounts.mjs.map +1 -1
  492. package/dist/types/methods/manage-state.cjs.map +1 -1
  493. package/dist/types/methods/manage-state.d.cts +35 -32
  494. package/dist/types/methods/manage-state.d.cts.map +1 -1
  495. package/dist/types/methods/manage-state.d.mts +35 -32
  496. package/dist/types/methods/manage-state.d.mts.map +1 -1
  497. package/dist/types/methods/manage-state.mjs.map +1 -1
  498. package/dist/types/methods/methods.cjs.map +1 -1
  499. package/dist/types/methods/methods.d.cts +5 -2
  500. package/dist/types/methods/methods.d.cts.map +1 -1
  501. package/dist/types/methods/methods.d.mts +5 -2
  502. package/dist/types/methods/methods.d.mts.map +1 -1
  503. package/dist/types/methods/methods.mjs.map +1 -1
  504. package/dist/types/methods/{provider-request.cjs → multichain/create-session.cjs} +1 -1
  505. package/dist/types/methods/multichain/create-session.cjs.map +1 -0
  506. package/dist/types/methods/multichain/create-session.d.cts +34 -0
  507. package/dist/types/methods/multichain/create-session.d.cts.map +1 -0
  508. package/dist/types/methods/multichain/create-session.d.mts +34 -0
  509. package/dist/types/methods/multichain/create-session.d.mts.map +1 -0
  510. package/dist/types/methods/multichain/create-session.mjs +2 -0
  511. package/dist/types/methods/multichain/create-session.mjs.map +1 -0
  512. package/dist/types/methods/{get-currency-rate.cjs → multichain/get-session.cjs} +1 -1
  513. package/dist/types/methods/multichain/get-session.cjs.map +1 -0
  514. package/dist/types/methods/multichain/get-session.d.cts +14 -0
  515. package/dist/types/methods/multichain/get-session.d.cts.map +1 -0
  516. package/dist/types/methods/multichain/get-session.d.mts +14 -0
  517. package/dist/types/methods/multichain/get-session.d.mts.map +1 -0
  518. package/dist/types/methods/multichain/get-session.mjs +2 -0
  519. package/dist/types/methods/multichain/get-session.mjs.map +1 -0
  520. package/dist/types/methods/multichain/index.cjs +3 -0
  521. package/dist/types/methods/multichain/index.cjs.map +1 -0
  522. package/dist/types/methods/multichain/index.d.cts +5 -0
  523. package/dist/types/methods/multichain/index.d.cts.map +1 -0
  524. package/dist/types/methods/multichain/index.d.mts +5 -0
  525. package/dist/types/methods/multichain/index.d.mts.map +1 -0
  526. package/dist/types/methods/multichain/index.mjs +2 -0
  527. package/dist/types/methods/multichain/index.mjs.map +1 -0
  528. package/dist/types/methods/multichain/invoke-method.cjs +3 -0
  529. package/dist/types/methods/multichain/invoke-method.cjs.map +1 -0
  530. package/dist/types/methods/multichain/invoke-method.d.cts +18 -0
  531. package/dist/types/methods/multichain/invoke-method.d.cts.map +1 -0
  532. package/dist/types/methods/multichain/invoke-method.d.mts +18 -0
  533. package/dist/types/methods/multichain/invoke-method.d.mts.map +1 -0
  534. package/dist/types/methods/multichain/invoke-method.mjs +2 -0
  535. package/dist/types/methods/multichain/invoke-method.mjs.map +1 -0
  536. package/dist/types/methods/multichain/revoke-session.cjs +3 -0
  537. package/dist/types/methods/multichain/revoke-session.cjs.map +1 -0
  538. package/dist/types/methods/multichain/revoke-session.d.cts +13 -0
  539. package/dist/types/methods/multichain/revoke-session.d.cts.map +1 -0
  540. package/dist/types/methods/multichain/revoke-session.d.mts +13 -0
  541. package/dist/types/methods/multichain/revoke-session.d.mts.map +1 -0
  542. package/dist/types/methods/multichain/revoke-session.mjs +2 -0
  543. package/dist/types/methods/multichain/revoke-session.mjs.map +1 -0
  544. package/dist/types/methods/notify.cjs.map +1 -1
  545. package/dist/types/methods/notify.d.cts +39 -7
  546. package/dist/types/methods/notify.d.cts.map +1 -1
  547. package/dist/types/methods/notify.d.mts +39 -7
  548. package/dist/types/methods/notify.d.mts.map +1 -1
  549. package/dist/types/methods/notify.mjs.map +1 -1
  550. package/dist/types/methods/open-web-socket.cjs.map +1 -1
  551. package/dist/types/methods/open-web-socket.d.cts +6 -3
  552. package/dist/types/methods/open-web-socket.d.cts.map +1 -1
  553. package/dist/types/methods/open-web-socket.d.mts +6 -3
  554. package/dist/types/methods/open-web-socket.d.mts.map +1 -1
  555. package/dist/types/methods/open-web-socket.mjs.map +1 -1
  556. package/dist/types/methods/request-snaps.cjs.map +1 -1
  557. package/dist/types/methods/request-snaps.d.cts +5 -6
  558. package/dist/types/methods/request-snaps.d.cts.map +1 -1
  559. package/dist/types/methods/request-snaps.d.mts +5 -6
  560. package/dist/types/methods/request-snaps.d.mts.map +1 -1
  561. package/dist/types/methods/request-snaps.mjs.map +1 -1
  562. package/dist/types/methods/resolve-interface.cjs.map +1 -1
  563. package/dist/types/methods/resolve-interface.d.cts +1 -1
  564. package/dist/types/methods/resolve-interface.d.mts +1 -1
  565. package/dist/types/methods/resolve-interface.mjs.map +1 -1
  566. package/dist/types/methods/schedule-background-event.cjs.map +1 -1
  567. package/dist/types/methods/schedule-background-event.d.cts +18 -8
  568. package/dist/types/methods/schedule-background-event.d.cts.map +1 -1
  569. package/dist/types/methods/schedule-background-event.d.mts +18 -8
  570. package/dist/types/methods/schedule-background-event.d.mts.map +1 -1
  571. package/dist/types/methods/schedule-background-event.mjs.map +1 -1
  572. package/dist/types/methods/send-web-socket-message.cjs.map +1 -1
  573. package/dist/types/methods/send-web-socket-message.d.cts +9 -5
  574. package/dist/types/methods/send-web-socket-message.d.cts.map +1 -1
  575. package/dist/types/methods/send-web-socket-message.d.mts +9 -5
  576. package/dist/types/methods/send-web-socket-message.d.mts.map +1 -1
  577. package/dist/types/methods/send-web-socket-message.mjs.map +1 -1
  578. package/dist/types/methods/set-state.cjs.map +1 -1
  579. package/dist/types/methods/set-state.d.cts +6 -2
  580. package/dist/types/methods/set-state.d.cts.map +1 -1
  581. package/dist/types/methods/set-state.d.mts +6 -2
  582. package/dist/types/methods/set-state.d.mts.map +1 -1
  583. package/dist/types/methods/set-state.mjs.map +1 -1
  584. package/dist/types/methods/update-interface.cjs.map +1 -1
  585. package/dist/types/methods/update-interface.d.cts +13 -5
  586. package/dist/types/methods/update-interface.d.cts.map +1 -1
  587. package/dist/types/methods/update-interface.d.mts +13 -5
  588. package/dist/types/methods/update-interface.d.mts.map +1 -1
  589. package/dist/types/methods/update-interface.mjs.map +1 -1
  590. package/dist/types/permissions.cjs.map +1 -1
  591. package/dist/types/permissions.d.cts +32 -2
  592. package/dist/types/permissions.d.cts.map +1 -1
  593. package/dist/types/permissions.d.mts +32 -2
  594. package/dist/types/permissions.d.mts.map +1 -1
  595. package/dist/types/permissions.mjs.map +1 -1
  596. package/dist/ui/components/address.cjs +1 -18
  597. package/dist/ui/components/address.cjs.map +1 -1
  598. package/dist/ui/components/address.d.cts +0 -28
  599. package/dist/ui/components/address.d.cts.map +1 -1
  600. package/dist/ui/components/address.d.mts +0 -28
  601. package/dist/ui/components/address.d.mts.map +1 -1
  602. package/dist/ui/components/address.mjs +0 -17
  603. package/dist/ui/components/address.mjs.map +1 -1
  604. package/dist/ui/components/button.cjs +1 -26
  605. package/dist/ui/components/button.cjs.map +1 -1
  606. package/dist/ui/components/button.d.cts +0 -42
  607. package/dist/ui/components/button.d.cts.map +1 -1
  608. package/dist/ui/components/button.d.mts +0 -42
  609. package/dist/ui/components/button.d.mts.map +1 -1
  610. package/dist/ui/components/button.mjs +0 -25
  611. package/dist/ui/components/button.mjs.map +1 -1
  612. package/dist/ui/components/copyable.cjs +1 -22
  613. package/dist/ui/components/copyable.cjs.map +1 -1
  614. package/dist/ui/components/copyable.d.cts +0 -38
  615. package/dist/ui/components/copyable.d.cts.map +1 -1
  616. package/dist/ui/components/copyable.d.mts +0 -38
  617. package/dist/ui/components/copyable.d.mts.map +1 -1
  618. package/dist/ui/components/copyable.mjs +0 -21
  619. package/dist/ui/components/copyable.mjs.map +1 -1
  620. package/dist/ui/components/divider.cjs +1 -12
  621. package/dist/ui/components/divider.cjs.map +1 -1
  622. package/dist/ui/components/divider.d.cts +0 -17
  623. package/dist/ui/components/divider.d.cts.map +1 -1
  624. package/dist/ui/components/divider.d.mts +0 -17
  625. package/dist/ui/components/divider.d.mts.map +1 -1
  626. package/dist/ui/components/divider.mjs +0 -11
  627. package/dist/ui/components/divider.mjs.map +1 -1
  628. package/dist/ui/components/form.cjs +1 -28
  629. package/dist/ui/components/form.cjs.map +1 -1
  630. package/dist/ui/components/form.d.cts +0 -86
  631. package/dist/ui/components/form.d.cts.map +1 -1
  632. package/dist/ui/components/form.d.mts +0 -86
  633. package/dist/ui/components/form.d.mts.map +1 -1
  634. package/dist/ui/components/form.mjs +0 -27
  635. package/dist/ui/components/form.mjs.map +1 -1
  636. package/dist/ui/components/heading.cjs +1 -18
  637. package/dist/ui/components/heading.cjs.map +1 -1
  638. package/dist/ui/components/heading.d.cts +0 -30
  639. package/dist/ui/components/heading.d.cts.map +1 -1
  640. package/dist/ui/components/heading.d.mts +0 -30
  641. package/dist/ui/components/heading.d.mts.map +1 -1
  642. package/dist/ui/components/heading.mjs +0 -17
  643. package/dist/ui/components/heading.mjs.map +1 -1
  644. package/dist/ui/components/image.cjs +1 -17
  645. package/dist/ui/components/image.cjs.map +1 -1
  646. package/dist/ui/components/image.d.cts +0 -29
  647. package/dist/ui/components/image.d.cts.map +1 -1
  648. package/dist/ui/components/image.d.mts +0 -29
  649. package/dist/ui/components/image.d.mts.map +1 -1
  650. package/dist/ui/components/image.mjs +0 -16
  651. package/dist/ui/components/image.mjs.map +1 -1
  652. package/dist/ui/components/index.cjs +2 -5
  653. package/dist/ui/components/index.cjs.map +1 -1
  654. package/dist/ui/components/index.d.cts +2 -3
  655. package/dist/ui/components/index.d.cts.map +1 -1
  656. package/dist/ui/components/index.d.mts +2 -3
  657. package/dist/ui/components/index.d.mts.map +1 -1
  658. package/dist/ui/components/index.mjs +2 -2
  659. package/dist/ui/components/index.mjs.map +1 -1
  660. package/dist/ui/components/input.cjs +1 -29
  661. package/dist/ui/components/input.cjs.map +1 -1
  662. package/dist/ui/components/input.d.cts +0 -50
  663. package/dist/ui/components/input.d.cts.map +1 -1
  664. package/dist/ui/components/input.d.mts +0 -50
  665. package/dist/ui/components/input.d.mts.map +1 -1
  666. package/dist/ui/components/input.mjs +0 -28
  667. package/dist/ui/components/input.mjs.map +1 -1
  668. package/dist/ui/components/panel.cjs +5 -27
  669. package/dist/ui/components/panel.cjs.map +1 -1
  670. package/dist/ui/components/panel.d.cts +0 -108
  671. package/dist/ui/components/panel.d.cts.map +1 -1
  672. package/dist/ui/components/panel.d.mts +0 -108
  673. package/dist/ui/components/panel.d.mts.map +1 -1
  674. package/dist/ui/components/panel.mjs +4 -26
  675. package/dist/ui/components/panel.mjs.map +1 -1
  676. package/dist/ui/components/row.cjs +1 -24
  677. package/dist/ui/components/row.cjs.map +1 -1
  678. package/dist/ui/components/row.d.cts +0 -69
  679. package/dist/ui/components/row.d.cts.map +1 -1
  680. package/dist/ui/components/row.d.mts +0 -69
  681. package/dist/ui/components/row.d.mts.map +1 -1
  682. package/dist/ui/components/row.mjs +0 -23
  683. package/dist/ui/components/row.mjs.map +1 -1
  684. package/dist/ui/components/spinner.cjs +1 -12
  685. package/dist/ui/components/spinner.cjs.map +1 -1
  686. package/dist/ui/components/spinner.d.cts +0 -18
  687. package/dist/ui/components/spinner.d.cts.map +1 -1
  688. package/dist/ui/components/spinner.d.mts +0 -18
  689. package/dist/ui/components/spinner.d.mts.map +1 -1
  690. package/dist/ui/components/spinner.mjs +0 -11
  691. package/dist/ui/components/spinner.mjs.map +1 -1
  692. package/dist/ui/components/text.cjs +1 -24
  693. package/dist/ui/components/text.cjs.map +1 -1
  694. package/dist/ui/components/text.d.cts +0 -38
  695. package/dist/ui/components/text.d.cts.map +1 -1
  696. package/dist/ui/components/text.d.mts +0 -38
  697. package/dist/ui/components/text.d.mts.map +1 -1
  698. package/dist/ui/components/text.mjs +0 -23
  699. package/dist/ui/components/text.mjs.map +1 -1
  700. package/dist/ui/index.cjs +0 -1
  701. package/dist/ui/index.cjs.map +1 -1
  702. package/dist/ui/index.d.cts +0 -1
  703. package/dist/ui/index.d.cts.map +1 -1
  704. package/dist/ui/index.d.mts +0 -1
  705. package/dist/ui/index.d.mts.map +1 -1
  706. package/dist/ui/index.mjs +0 -1
  707. package/dist/ui/index.mjs.map +1 -1
  708. package/package.json +7 -4
  709. package/dist/types/methods/get-currency-rate.cjs.map +0 -1
  710. package/dist/types/methods/get-currency-rate.d.cts +0 -29
  711. package/dist/types/methods/get-currency-rate.d.cts.map +0 -1
  712. package/dist/types/methods/get-currency-rate.d.mts +0 -29
  713. package/dist/types/methods/get-currency-rate.d.mts.map +0 -1
  714. package/dist/types/methods/get-currency-rate.mjs +0 -2
  715. package/dist/types/methods/get-currency-rate.mjs.map +0 -1
  716. package/dist/types/methods/provider-request.cjs.map +0 -1
  717. package/dist/types/methods/provider-request.d.cts +0 -25
  718. package/dist/types/methods/provider-request.d.cts.map +0 -1
  719. package/dist/types/methods/provider-request.d.mts +0 -25
  720. package/dist/types/methods/provider-request.d.mts.map +0 -1
  721. package/dist/types/methods/provider-request.mjs +0 -2
  722. package/dist/types/methods/provider-request.mjs.map +0 -1
  723. package/dist/ui/builder.cjs +0 -49
  724. package/dist/ui/builder.cjs.map +0 -1
  725. package/dist/ui/builder.d.cts +0 -43
  726. package/dist/ui/builder.d.cts.map +0 -1
  727. package/dist/ui/builder.d.mts +0 -43
  728. package/dist/ui/builder.d.mts.map +0 -1
  729. package/dist/ui/builder.mjs +0 -45
  730. package/dist/ui/builder.mjs.map +0 -1
  731. package/dist/ui/component.cjs +0 -29
  732. package/dist/ui/component.cjs.map +0 -1
  733. package/dist/ui/component.d.cts +0 -18
  734. package/dist/ui/component.d.cts.map +0 -1
  735. package/dist/ui/component.d.mts +0 -18
  736. package/dist/ui/component.d.mts.map +0 -1
  737. package/dist/ui/component.mjs +0 -24
  738. package/dist/ui/component.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validation.cjs","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AnyStruct,\n Infer,\n InferStructTuple,\n ObjectSchema,\n Struct,\n} from '@metamask/superstruct';\nimport {\n is,\n boolean,\n optional,\n array,\n lazy,\n nullable,\n number,\n object,\n record,\n string,\n tuple,\n refine,\n assign,\n union,\n} from '@metamask/superstruct';\nimport {\n CaipAccountIdStruct,\n CaipChainIdStruct,\n hasProperty,\n HexChecksumAddressStruct,\n isPlainObject,\n JsonStruct,\n} from '@metamask/utils';\n\nimport type {\n GenericSnapChildren,\n GenericSnapElement,\n JsonObject,\n Key,\n Nestable,\n SnapElement,\n SnapsChildren,\n StringElement,\n} from './component';\nimport type {\n AssetSelectorElement,\n AvatarElement,\n AccountSelectorElement,\n SkeletonElement,\n AddressElement,\n AddressInputElement,\n BoldElement,\n BoxElement,\n ButtonElement,\n CheckboxElement,\n CardElement,\n CopyableElement,\n DividerElement,\n DropdownElement,\n OptionElement,\n RadioElement,\n RadioGroupElement,\n FieldElement,\n FormElement,\n HeadingElement,\n ImageElement,\n InputElement,\n ItalicElement,\n JSXElement,\n LinkElement,\n RowElement,\n SpinnerElement,\n StandardFormattingElement,\n TextElement,\n TooltipElement,\n ValueElement,\n FileInputElement,\n ContainerElement,\n FooterElement,\n IconElement,\n SectionElement,\n SelectorElement,\n SelectorOptionElement,\n BannerElement,\n DateTimePickerElement,\n} from './components';\nimport { IconName } from './components';\nimport type { Describe } from '../internals';\nimport {\n literal,\n nullUnion,\n selectiveUnion,\n svg,\n typedUnion,\n ISO8601DateStruct,\n uri,\n} from '../internals';\nimport {\n NonEip155AssetTypeStruct,\n NonEip155ChainIdStruct,\n NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n type EmptyObject,\n} from '../types';\n\n/**\n * A struct for the {@link Key} type.\n */\nexport const KeyStruct: Describe<Key> = nullUnion([string(), number()]);\n\n/**\n * A struct for the {@link StringElement} type.\n */\nexport const StringElementStruct: Describe<StringElement> = children([\n string(),\n]);\n\n/**\n * A struct for the {@link GenericSnapElement} type.\n */\nexport const ElementStruct: Describe<GenericSnapElement> = object({\n type: string(),\n props: record(string(), JsonStruct),\n key: nullable(KeyStruct),\n});\n\n/**\n * A helper function for creating a struct for a {@link Nestable} type.\n *\n * @param struct - The struct for the type to test.\n * @returns The struct for the nestable type.\n */\nfunction nestable<Type, Schema>(\n struct: Struct<Type, Schema>,\n): Struct<Nestable<Type>, any> {\n const nestableStruct: Struct<Nestable<Type>> = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return array(lazy(() => nestableStruct));\n }\n return struct;\n });\n\n return nestableStruct;\n}\n\n/**\n * A helper function for creating a struct which allows children of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param structs - The structs to allow as children.\n * @returns The struct for the children.\n */\nfunction children<Head extends AnyStruct, Tail extends AnyStruct[]>(\n structs: [head: Head, ...tail: Tail],\n): Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n> {\n const potentialUnion = structs.length === 1 ? structs[0] : nullUnion(structs);\n return nestable(\n nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return potentialUnion;\n }),\n ),\n ) as unknown as Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n >;\n}\n\n/**\n * A helper function for creating a struct which allows a single child of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param struct - The struct to allow as a single child.\n * @returns The struct for the children.\n */\nfunction singleChild<Type extends AnyStruct>(\n struct: Type,\n): Struct<Infer<Type> | boolean | null, null> {\n return nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n\n return struct;\n }),\n ) as unknown as Struct<Infer<Type> | boolean | null, null>;\n}\n\n/**\n * A helper function for creating a struct for a JSX element.\n *\n * @param name - The name of the element.\n * @param props - The props of the element.\n * @returns The struct for the element.\n */\nfunction element<Name extends string, Props extends ObjectSchema = EmptyObject>(\n name: Name,\n props: Props = {} as Props,\n) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: object(props),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * A helper function for creating a struct for a JSX element with selective props.\n *\n * @param name - The name of the element.\n * @param selector - The selector function choosing the struct to validate with.\n * @returns The struct for the element.\n */\nfunction elementWithSelectiveProps<\n Name extends string,\n Selector extends (value: any) => AnyStruct,\n>(name: Name, selector: Selector) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: selectiveUnion(selector),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * Shared struct used to validate border radius values used by various Snaps components.\n */\nexport const BorderRadiusStruct = nullUnion([\n literal('none'),\n literal('medium'),\n literal('full'),\n]);\n\n/**\n * A struct for the {@link ImageElement} type.\n */\nexport const ImageStruct: Describe<ImageElement> = element('Image', {\n src: nullUnion([svg(), uri({ protocol: literal('https:') })]),\n alt: optional(string()),\n borderRadius: optional(BorderRadiusStruct),\n width: optional(number()),\n height: optional(number()),\n});\n\nconst IconNameStruct: Struct<`${IconName}`, null> = nullUnion(\n Object.values(IconName).map((name) => literal(name)) as any,\n);\n\n/**\n * A struct for the {@link IconElement} type.\n */\nexport const IconStruct: Describe<IconElement> = element('Icon', {\n name: IconNameStruct,\n color: optional(\n nullUnion([literal('default'), literal('primary'), literal('muted')]),\n ),\n size: optional(nullUnion([literal('md'), literal('inherit')])),\n});\n\n/**\n * A struct for the {@link ButtonElement} type.\n */\nexport const ButtonStruct: Describe<ButtonElement> = element('Button', {\n children: children([StringElementStruct, ImageStruct, IconStruct]),\n name: optional(string()),\n type: optional(nullUnion([literal('button'), literal('submit')])),\n variant: optional(nullUnion([literal('primary'), literal('destructive')])),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n disabled: optional(boolean()),\n loading: optional(boolean()),\n form: optional(string()),\n});\n\n/**\n * A struct for the {@link CheckboxElement} type.\n */\nexport const CheckboxStruct: Describe<CheckboxElement> = element('Checkbox', {\n name: string(),\n checked: optional(boolean()),\n label: optional(string()),\n variant: optional(nullUnion([literal('default'), literal('toggle')])),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the generic input element props.\n */\nexport const GenericInputPropsStruct = object({\n name: string(),\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the text type input props.\n */\nexport const TextInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('text'),\n }),\n);\n\n/**\n * A struct for the password type input props.\n */\nexport const PasswordInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('password'),\n }),\n);\n\n/**\n * A struct for the number type input props.\n */\nexport const NumberInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('number'),\n min: optional(number()),\n max: optional(number()),\n step: optional(number()),\n }),\n);\n\n/**\n * A struct for the {@link InputElement} type.\n */\nexport const InputStruct: Describe<InputElement> = elementWithSelectiveProps(\n 'Input',\n (value) => {\n if (isPlainObject(value) && hasProperty(value, 'type')) {\n switch (value.type) {\n case 'text':\n return TextInputPropsStruct;\n case 'password':\n return PasswordInputPropsStruct;\n case 'number':\n return NumberInputPropsStruct;\n default:\n return GenericInputPropsStruct;\n }\n }\n return GenericInputPropsStruct;\n },\n);\n\n/**\n * A struct for the {@link AddressInputElement} type.\n */\nexport const AddressInputStruct: Describe<AddressInputElement> = element(\n 'AddressInput',\n {\n name: string(),\n chainId: CaipChainIdStruct,\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n displayAvatar: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link OptionElement} type.\n */\nexport const OptionStruct: Describe<OptionElement> = element('Option', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DropdownElement} type.\n */\nexport const DropdownStruct: Describe<DropdownElement> = element('Dropdown', {\n name: string(),\n value: optional(string()),\n children: children([OptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DateTimePickerElement} type.\n */\nexport const DateTimePickerStruct: Describe<DateTimePickerElement> = element(\n 'DateTimePicker',\n {\n name: string(),\n type: optional(\n nullUnion([literal('date'), literal('time'), literal('datetime')]),\n ),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n disablePast: optional(boolean()),\n disableFuture: optional(boolean()),\n value: optional(ISO8601DateStruct),\n },\n);\n\n/**\n * A struct for the {@link AddressElement} type.\n */\nexport const AddressStruct: Describe<AddressElement> = element('Address', {\n address: selectiveUnion((value) => {\n if (typeof value === 'string' && value.startsWith('0x')) {\n return HexChecksumAddressStruct;\n }\n return CaipAccountIdStruct;\n }),\n truncate: optional(boolean()),\n displayName: optional(boolean()),\n avatar: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AccountSelectorElement} type.\n */\nexport const AccountSelectorStruct: Describe<AccountSelectorElement> = element(\n 'AccountSelector',\n {\n name: string(),\n hideExternalAccounts: optional(boolean()),\n chainIds: optional(array(CaipChainIdStruct)) as unknown as Struct<\n Infer<typeof CaipChainIdStruct>[] | undefined,\n null\n >,\n switchGlobalAccount: optional(boolean()),\n value: optional(CaipAccountIdStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link CardElement} type.\n */\nexport const CardStruct: Describe<CardElement> = element('Card', {\n image: optional(string()),\n title: selectiveUnion((value) => {\n if (typeof value === 'object') {\n return AddressStruct;\n }\n return string();\n }),\n description: optional(string()),\n value: string(),\n extra: optional(string()),\n});\n\n/**\n * A struct for the {@link SelectorOptionElement} type.\n */\nexport const SelectorOptionStruct: Describe<SelectorOptionElement> = element(\n 'SelectorOption',\n {\n value: string(),\n children: CardStruct,\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link SelectorElement} type.\n */\nexport const SelectorStruct: Describe<SelectorElement> = element('Selector', {\n name: string(),\n title: string(),\n value: optional(string()),\n children: children([SelectorOptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AssetSelectorElement} type.\n */\nexport const AssetSelectorStruct: Describe<AssetSelectorElement> = element(\n 'AssetSelector',\n {\n name: string(),\n addresses: NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n chainIds: optional(array(NonEip155ChainIdStruct)) as unknown as Struct<\n Infer<typeof NonEip155ChainIdStruct>[] | undefined,\n null\n >,\n value: optional(NonEip155AssetTypeStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link RadioElement} type.\n */\nexport const RadioStruct: Describe<RadioElement> = element('Radio', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link RadioGroupElement} type.\n */\nexport const RadioGroupStruct: Describe<RadioGroupElement> = element(\n 'RadioGroup',\n {\n name: string(),\n value: optional(string()),\n children: children([RadioStruct]),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link FileInputElement} type.\n */\nexport const FileInputStruct: Describe<FileInputElement> = element(\n 'FileInput',\n {\n name: string(),\n accept: nullUnion([optional(array(string()))]),\n compact: optional(boolean()),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input of the Field children.\n */\nconst BOX_INPUT_LEFT = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n] as [typeof BoxChildStruct, typeof InputStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Input + Box of the Field children.\n */\nconst BOX_INPUT_RIGHT = [\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input + Box of the Field children.\n */\nconst BOX_INPUT_BOTH = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof BoxChildStruct, typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that are allowed as single children of the Field component.\n */\nconst FIELD_CHILDREN_ARRAY = [\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n InputStruct,\n DropdownStruct,\n RadioGroupStruct,\n FileInputStruct,\n CheckboxStruct,\n SelectorStruct,\n DateTimePickerStruct,\n] as [\n typeof AssetSelectorStruct,\n typeof AddressInputStruct,\n typeof AccountSelectorStruct,\n typeof InputStruct,\n typeof DropdownStruct,\n typeof RadioGroupStruct,\n typeof FileInputStruct,\n typeof CheckboxStruct,\n typeof SelectorStruct,\n typeof DateTimePickerStruct,\n];\n\n/**\n * A union of the allowed children of the Field component.\n * This is mainly used in the simulator for validation purposes.\n */\nexport const FieldChildUnionStruct = nullUnion([\n ...FIELD_CHILDREN_ARRAY,\n ...BOX_INPUT_LEFT,\n ...BOX_INPUT_RIGHT,\n ...BOX_INPUT_BOTH,\n]);\n\n/**\n * A subset of JSX elements that are allowed as children of the Field component.\n */\nconst FieldChildStruct = selectiveUnion((value) => {\n const isArray = Array.isArray(value);\n if (isArray && value.length === 3) {\n return tuple(BOX_INPUT_BOTH);\n }\n\n if (isArray && value.length === 2) {\n return value[0]?.type === 'Box'\n ? tuple(BOX_INPUT_LEFT)\n : tuple(BOX_INPUT_RIGHT);\n }\n\n return typedUnion(FIELD_CHILDREN_ARRAY);\n}) as unknown as Struct<\n | [InputElement, GenericSnapChildren]\n | [GenericSnapChildren, InputElement]\n | [GenericSnapChildren, InputElement, GenericSnapChildren]\n | DropdownElement\n | RadioGroupElement\n | FileInputElement\n | InputElement\n | CheckboxElement\n | SelectorElement\n | DateTimePickerElement\n | AssetSelectorElement\n | AddressInputElement\n | AccountSelectorElement,\n null\n>;\n\n/**\n * A struct for the {@link FieldElement} type.\n */\nexport const FieldStruct: Describe<FieldElement> = element('Field', {\n label: optional(string()),\n error: optional(string()),\n children: FieldChildStruct,\n});\n\n/**\n * A struct for the {@link BoldElement} type.\n */\nexport const BoldStruct: Describe<BoldElement> = element('Bold', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return ItalicStruct as unknown as Struct<\n SnapElement<JsonObject, 'Italic'>\n >;\n }),\n ]),\n});\n\n/**\n * A struct for the {@link ItalicElement} type.\n */\nexport const ItalicStruct: Describe<ItalicElement> = element('Italic', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return BoldStruct as unknown as Struct<SnapElement<JsonObject, 'Bold'>>;\n }),\n ]),\n});\n\nexport const FormattingStruct: Describe<StandardFormattingElement> = typedUnion(\n [BoldStruct, ItalicStruct],\n);\n\n/**\n * A struct for the {@link AvatarElement} type.\n */\nexport const AvatarStruct = element('Avatar', {\n address: CaipAccountIdStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n}) as unknown as Struct<AvatarElement, null>;\n\nexport const BoxChildrenStruct = children(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n [lazy(() => BoxChildStruct)],\n) as unknown as Struct<SnapsChildren<GenericSnapElement>, null>;\n\n/**\n * A struct for the {@link BoxElement} type.\n */\nexport const BoxStruct: Describe<BoxElement> = element('Box', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n crossAlignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n center: optional(boolean()),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Form component.\n */\nexport const FormChildStruct = BoxChildrenStruct;\n\n/**\n * A struct for the {@link FormElement} type.\n */\nexport const FormStruct: Describe<FormElement> = element('Form', {\n children: FormChildStruct,\n name: string(),\n});\n\nconst FooterButtonStruct = refine(ButtonStruct, 'FooterButton', (value) => {\n if (\n typeof value.props.children === 'string' ||\n typeof value.props.children === 'boolean' ||\n value.props.children === null\n ) {\n return true;\n }\n\n if (Array.isArray(value.props.children)) {\n const hasNonTextElements = value.props.children.some(\n (child) =>\n typeof child !== 'string' &&\n typeof child !== 'boolean' &&\n child !== null,\n );\n\n if (!hasNonTextElements) {\n return true;\n }\n }\n\n return 'Footer buttons may only contain text.';\n});\n\n/**\n * A struct for the {@link SectionElement} type.\n */\nexport const SectionStruct: Describe<SectionElement> = element('Section', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Footer component.\n * This set should include a single button or a tuple of two buttons.\n */\n\nexport const FooterChildStruct = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([FooterButtonStruct, FooterButtonStruct]);\n }\n return FooterButtonStruct;\n});\n\n/**\n * A struct for the {@link FooterElement} type.\n */\nexport const FooterStruct: Describe<FooterElement> = element('Footer', {\n children: FooterChildStruct,\n});\n\n/**\n * A struct for the {@link CopyableElement} type.\n */\nexport const CopyableStruct: Describe<CopyableElement> = element('Copyable', {\n value: string(),\n sensitive: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DividerElement} type.\n */\nexport const DividerStruct: Describe<DividerElement> = element('Divider');\n\n/**\n * A struct for the {@link HeadingElement} type.\n */\nexport const HeadingStruct: Describe<HeadingElement> = element('Heading', {\n children: StringElementStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n});\n\n/**\n * A struct for the {@link LinkElement} type.\n */\nexport const LinkStruct: Describe<LinkElement> = element('Link', {\n href: string(),\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return typedUnion([\n FormattingStruct,\n IconStruct,\n ImageStruct,\n AddressStruct,\n ]);\n }),\n ]),\n});\n\n/**\n * A struct for the {@link SkeletonElement} type.\n */\nexport const SkeletonStruct: Describe<SkeletonElement> = element('Skeleton', {\n width: optional(union([number(), string()])),\n height: optional(union([number(), string()])),\n borderRadius: optional(BorderRadiusStruct),\n});\n\n/**\n * A struct for the {@link TextElement} type.\n */\nexport const TextStruct: Describe<TextElement> = element('Text', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n SkeletonStruct,\n ]);\n }),\n ]),\n alignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n color: optional(\n nullUnion([\n literal('default'),\n literal('alternative'),\n literal('muted'),\n literal('error'),\n literal('success'),\n literal('warning'),\n ]),\n ),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n fontWeight: optional(\n nullUnion([literal('regular'), literal('medium'), literal('bold')]),\n ),\n});\n\n/**\n * A struct for the {@link ValueElement} type.\n */\nexport const ValueStruct: Describe<ValueElement> = element('Value', {\n value: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n extra: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Tooltip component.\n * This set should include all text components and the Image.\n */\nexport const TooltipChildStruct = selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n ImageStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A subset of JSX elements that are allowed as content of the Tooltip component.\n * This set should include all text components.\n */\nexport const TooltipContentStruct = selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A struct for the {@link TooltipElement} type.\n */\nexport const TooltipStruct: Describe<TooltipElement> = element('Tooltip', {\n children: nullable(TooltipChildStruct),\n content: TooltipContentStruct,\n});\n\n/**\n * A struct for the {@link BannerElement} type.\n */\nexport const BannerStruct: Describe<BannerElement> = element('Banner', {\n children: children([\n typedUnion([\n TextStruct,\n LinkStruct,\n IconStruct,\n ButtonStruct,\n BoldStruct,\n ItalicStruct,\n SkeletonStruct,\n ]),\n ]),\n title: string(),\n severity: union([\n literal('danger'),\n literal('info'),\n literal('success'),\n literal('warning'),\n ]),\n});\n\n/**\n * A struct for the {@link RowElement} type.\n */\nexport const RowStruct: Describe<RowElement> = element('Row', {\n label: string(),\n children: lazy(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n typedUnion([ValueStruct, BoxChildStruct]),\n ) as unknown as Describe<GenericSnapElement>,\n variant: optional(\n nullUnion([literal('default'), literal('warning'), literal('critical')]),\n ),\n tooltip: optional(string()),\n});\n\n/**\n * A struct for the {@link SpinnerElement} type.\n */\nexport const SpinnerStruct: Describe<SpinnerElement> = element('Spinner');\n\n/**\n * A subset of JSX elements that are allowed as children of the Box component.\n * This set includes all components, except components that need to be nested in\n * another component (e.g., Field must be contained in a Form).\n */\nexport const BoxChildStruct = typedUnion([\n AccountSelectorStruct,\n AddressStruct,\n AssetSelectorStruct,\n AddressInputStruct,\n BoldStruct,\n BoxStruct,\n ButtonStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n DropdownStruct,\n RadioGroupStruct,\n FieldStruct,\n FileInputStruct,\n FormStruct,\n HeadingStruct,\n InputStruct,\n ImageStruct,\n ItalicStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n TooltipStruct,\n CheckboxStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * A struct for the {@link ContainerElement} type.\n */\nexport const ContainerStruct: Describe<ContainerElement> = element(\n 'Container',\n {\n children: selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([BoxChildStruct, FooterStruct]);\n }\n return BoxChildStruct;\n }) as unknown as Struct<\n [GenericSnapElement, FooterElement] | GenericSnapElement,\n null\n >,\n backgroundColor: optional(\n nullUnion([literal('default'), literal('alternative')]),\n ),\n },\n);\n\n/**\n * For now, the allowed JSX elements at the root are the same as the allowed\n * children of the Box component.\n */\nexport const RootJSXElementStruct = typedUnion([\n BoxChildStruct,\n ContainerStruct,\n]);\n\n/**\n * A struct for the {@link JSXElement} type.\n */\nexport const JSXElementStruct: Describe<JSXElement> = typedUnion([\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n ButtonStruct,\n InputStruct,\n FileInputStruct,\n FieldStruct,\n FormStruct,\n BoldStruct,\n ItalicStruct,\n AddressStruct,\n BoxStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n HeadingStruct,\n ImageStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n DropdownStruct,\n OptionStruct,\n RadioGroupStruct,\n RadioStruct,\n ValueStruct,\n TooltipStruct,\n CheckboxStruct,\n FooterStruct,\n ContainerStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SelectorOptionStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * Check if a value is a JSX element.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElement(value: unknown): value is JSXElement {\n return is(value, JSXElementStruct);\n}\n\n/**\n * Check if a value is a JSX element, without validating all of its contents.\n * This is useful when you want to validate the structure of a value, but not\n * all the children.\n *\n * This should only be used when you are sure that the value is safe to use,\n * i.e., after using {@link isJSXElement}.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElementUnsafe(value: unknown): value is JSXElement {\n return (\n isPlainObject(value) &&\n hasProperty(value, 'type') &&\n hasProperty(value, 'props') &&\n hasProperty(value, 'key')\n );\n}\n\n/**\n * Assert that a value is a JSX element.\n *\n * @param value - The value to check.\n * @throws If the value is not a JSX element.\n */\nexport function assertJSXElement(value: unknown): asserts value is JSXElement {\n // TODO: We should use the error parsing utils from `snaps-utils` to improve\n // the error messages. It currently includes colours and potentially other\n // formatting that we might not want to include in the SDK.\n if (!isJSXElement(value)) {\n throw new Error(\n `Expected a JSX element, but received ${JSON.stringify(\n value,\n )}. Please refer to the documentation for the supported JSX elements and their props.`,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"validation.cjs","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AnyStruct,\n Infer,\n InferStructTuple,\n ObjectSchema,\n Struct,\n} from '@metamask/superstruct';\nimport {\n is,\n boolean,\n optional,\n array,\n lazy,\n nullable,\n number,\n object,\n record,\n string,\n tuple,\n refine,\n assign,\n union,\n} from '@metamask/superstruct';\nimport {\n CaipAccountIdStruct,\n CaipChainIdStruct,\n hasProperty,\n HexChecksumAddressStruct,\n isPlainObject,\n JsonStruct,\n} from '@metamask/utils';\n\nimport type {\n GenericSnapChildren,\n GenericSnapElement,\n JsonObject,\n Key,\n Nestable,\n SnapElement,\n SnapsChildren,\n StringElement,\n} from './component';\nimport type {\n AssetSelectorElement,\n AvatarElement,\n AccountSelectorElement,\n SkeletonElement,\n AddressElement,\n AddressInputElement,\n BoldElement,\n BoxElement,\n ButtonElement,\n CheckboxElement,\n CardElement,\n CopyableElement,\n DividerElement,\n DropdownElement,\n OptionElement,\n RadioElement,\n RadioGroupElement,\n FieldElement,\n FormElement,\n HeadingElement,\n ImageElement,\n InputElement,\n ItalicElement,\n JSXElement,\n LinkElement,\n RowElement,\n SpinnerElement,\n StandardFormattingElement,\n TextElement,\n TooltipElement,\n ValueElement,\n FileInputElement,\n ContainerElement,\n FooterElement,\n IconElement,\n SectionElement,\n SelectorElement,\n SelectorOptionElement,\n BannerElement,\n DateTimePickerElement,\n} from './components';\nimport { IconName } from './components';\nimport type { Describe } from '../internals';\nimport {\n literal,\n nullUnion,\n selectiveUnion,\n svg,\n typedUnion,\n ISO8601DateStruct,\n uri,\n} from '../internals';\nimport {\n NonEip155AssetTypeStruct,\n NonEip155ChainIdStruct,\n NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n type EmptyObject,\n} from '../types';\n\n/**\n * A struct for the {@link Key} type.\n */\nexport const KeyStruct: Describe<Key> = nullUnion([string(), number()]);\n\n/**\n * A struct for the {@link StringElement} type.\n */\nexport const StringElementStruct: Describe<StringElement> = children([\n string(),\n]);\n\n/**\n * A struct for the {@link GenericSnapElement} type.\n */\nexport const ElementStruct: Describe<GenericSnapElement> = object({\n type: string(),\n props: record(string(), JsonStruct),\n key: nullable(KeyStruct),\n});\n\n/**\n * A helper function for creating a struct for a {@link Nestable} type.\n *\n * @param struct - The struct for the type to test.\n * @returns The struct for the nestable type.\n */\nfunction nestable<Type, Schema>(\n struct: Struct<Type, Schema>,\n): Struct<Nestable<Type>, any> {\n const nestableStruct: Struct<Nestable<Type>> = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return array(lazy(() => nestableStruct));\n }\n return struct;\n });\n\n return nestableStruct;\n}\n\n/**\n * A helper function for creating a struct which allows children of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param structs - The structs to allow as children.\n * @returns The struct for the children.\n */\nfunction children<Head extends AnyStruct, Tail extends AnyStruct[]>(\n structs: [head: Head, ...tail: Tail],\n): Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n> {\n const potentialUnion = structs.length === 1 ? structs[0] : nullUnion(structs);\n return nestable(\n nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return potentialUnion;\n }),\n ),\n ) as unknown as Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n >;\n}\n\n/**\n * A helper function for creating a struct which allows a single child of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param struct - The struct to allow as a single child.\n * @returns The struct for the children.\n */\nfunction singleChild<Type extends AnyStruct>(\n struct: Type,\n): Struct<Infer<Type> | boolean | null, null> {\n return nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n\n return struct;\n }),\n ) as unknown as Struct<Infer<Type> | boolean | null, null>;\n}\n\n/**\n * A helper function for creating a struct for a JSX element.\n *\n * @param name - The name of the element.\n * @param props - The props of the element.\n * @returns The struct for the element.\n */\nfunction element<Name extends string, Props extends ObjectSchema = EmptyObject>(\n name: Name,\n props: Props = {} as Props,\n) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: object(props),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * A helper function for creating a struct for a JSX element with selective props.\n *\n * @param name - The name of the element.\n * @param selector - The selector function choosing the struct to validate with.\n * @returns The struct for the element.\n */\nfunction elementWithSelectiveProps<\n Name extends string,\n Selector extends (value: any) => AnyStruct,\n>(name: Name, selector: Selector) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: selectiveUnion(selector),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * Shared struct used to validate border radius values used by various Snaps components.\n */\nexport const BorderRadiusStruct = nullUnion([\n literal('none'),\n literal('medium'),\n literal('full'),\n]);\n\n/**\n * A struct for the {@link ImageElement} type.\n */\nexport const ImageStruct: Describe<ImageElement> = element('Image', {\n src: nullUnion([svg(), uri({ protocol: literal('https:') })]),\n alt: optional(string()),\n borderRadius: optional(BorderRadiusStruct),\n width: optional(number()),\n height: optional(number()),\n});\n\nconst IconNameStruct: Struct<`${IconName}`, null> = nullUnion(\n Object.values(IconName).map((name) => literal(name)) as any,\n);\n\n/**\n * A struct for the {@link IconElement} type.\n */\nexport const IconStruct: Describe<IconElement> = element('Icon', {\n name: IconNameStruct,\n color: optional(\n nullUnion([\n literal('default'),\n literal('primary'),\n literal('muted'),\n literal('error'),\n literal('success'),\n literal('warning'),\n ]),\n ),\n size: optional(nullUnion([literal('md'), literal('inherit')])),\n});\n\n/**\n * A struct for the {@link ButtonElement} type.\n */\nexport const ButtonStruct: Describe<ButtonElement> = element('Button', {\n children: children([StringElementStruct, ImageStruct, IconStruct]),\n name: optional(string()),\n type: optional(nullUnion([literal('button'), literal('submit')])),\n variant: optional(nullUnion([literal('primary'), literal('destructive')])),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n disabled: optional(boolean()),\n loading: optional(boolean()),\n form: optional(string()),\n});\n\n/**\n * A struct for the {@link CheckboxElement} type.\n */\nexport const CheckboxStruct: Describe<CheckboxElement> = element('Checkbox', {\n name: string(),\n checked: optional(boolean()),\n label: optional(string()),\n variant: optional(nullUnion([literal('default'), literal('toggle')])),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the generic input element props.\n */\nexport const GenericInputPropsStruct = object({\n name: string(),\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the text type input props.\n */\nexport const TextInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('text'),\n }),\n);\n\n/**\n * A struct for the password type input props.\n */\nexport const PasswordInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('password'),\n }),\n);\n\n/**\n * A struct for the number type input props.\n */\nexport const NumberInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('number'),\n min: optional(number()),\n max: optional(number()),\n step: optional(number()),\n }),\n);\n\n/**\n * A struct for the {@link InputElement} type.\n */\nexport const InputStruct: Describe<InputElement> = elementWithSelectiveProps(\n 'Input',\n (value) => {\n if (isPlainObject(value) && hasProperty(value, 'type')) {\n switch (value.type) {\n case 'text':\n return TextInputPropsStruct;\n case 'password':\n return PasswordInputPropsStruct;\n case 'number':\n return NumberInputPropsStruct;\n default:\n return GenericInputPropsStruct;\n }\n }\n return GenericInputPropsStruct;\n },\n);\n\n/**\n * A struct for the {@link AddressInputElement} type.\n */\nexport const AddressInputStruct: Describe<AddressInputElement> = element(\n 'AddressInput',\n {\n name: string(),\n chainId: CaipChainIdStruct,\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n displayAvatar: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link OptionElement} type.\n */\nexport const OptionStruct: Describe<OptionElement> = element('Option', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DropdownElement} type.\n */\nexport const DropdownStruct: Describe<DropdownElement> = element('Dropdown', {\n name: string(),\n value: optional(string()),\n children: children([OptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DateTimePickerElement} type.\n */\nexport const DateTimePickerStruct: Describe<DateTimePickerElement> = element(\n 'DateTimePicker',\n {\n name: string(),\n type: optional(\n nullUnion([literal('date'), literal('time'), literal('datetime')]),\n ),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n disablePast: optional(boolean()),\n disableFuture: optional(boolean()),\n value: optional(ISO8601DateStruct),\n },\n);\n\n/**\n * A struct for the {@link AddressElement} type.\n */\nexport const AddressStruct: Describe<AddressElement> = element('Address', {\n address: selectiveUnion((value) => {\n if (typeof value === 'string' && value.startsWith('0x')) {\n return HexChecksumAddressStruct;\n }\n return CaipAccountIdStruct;\n }),\n truncate: optional(boolean()),\n displayName: optional(boolean()),\n avatar: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AccountSelectorElement} type.\n */\nexport const AccountSelectorStruct: Describe<AccountSelectorElement> = element(\n 'AccountSelector',\n {\n name: string(),\n hideExternalAccounts: optional(boolean()),\n chainIds: optional(array(CaipChainIdStruct)) as unknown as Struct<\n Infer<typeof CaipChainIdStruct>[] | undefined,\n null\n >,\n switchGlobalAccount: optional(boolean()),\n value: optional(CaipAccountIdStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link CardElement} type.\n */\nexport const CardStruct: Describe<CardElement> = element('Card', {\n image: optional(string()),\n title: selectiveUnion((value) => {\n if (typeof value === 'object') {\n return AddressStruct;\n }\n return string();\n }),\n description: optional(string()),\n value: string(),\n extra: optional(string()),\n});\n\n/**\n * A struct for the {@link SelectorOptionElement} type.\n */\nexport const SelectorOptionStruct: Describe<SelectorOptionElement> = element(\n 'SelectorOption',\n {\n value: string(),\n children: CardStruct,\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link SelectorElement} type.\n */\nexport const SelectorStruct: Describe<SelectorElement> = element('Selector', {\n name: string(),\n title: string(),\n value: optional(string()),\n children: children([SelectorOptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AssetSelectorElement} type.\n */\nexport const AssetSelectorStruct: Describe<AssetSelectorElement> = element(\n 'AssetSelector',\n {\n name: string(),\n addresses: NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n chainIds: optional(array(NonEip155ChainIdStruct)) as unknown as Struct<\n Infer<typeof NonEip155ChainIdStruct>[] | undefined,\n null\n >,\n value: optional(NonEip155AssetTypeStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link RadioElement} type.\n */\nexport const RadioStruct: Describe<RadioElement> = element('Radio', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link RadioGroupElement} type.\n */\nexport const RadioGroupStruct: Describe<RadioGroupElement> = element(\n 'RadioGroup',\n {\n name: string(),\n value: optional(string()),\n children: children([RadioStruct]),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link FileInputElement} type.\n */\nexport const FileInputStruct: Describe<FileInputElement> = element(\n 'FileInput',\n {\n name: string(),\n accept: nullUnion([optional(array(string()))]),\n compact: optional(boolean()),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input of the Field children.\n */\nconst BOX_INPUT_LEFT = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n] as [typeof BoxChildStruct, typeof InputStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Input + Box of the Field children.\n */\nconst BOX_INPUT_RIGHT = [\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input + Box of the Field children.\n */\nconst BOX_INPUT_BOTH = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof BoxChildStruct, typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that are allowed as single children of the Field component.\n */\nconst FIELD_CHILDREN_ARRAY = [\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n InputStruct,\n DropdownStruct,\n RadioGroupStruct,\n FileInputStruct,\n CheckboxStruct,\n SelectorStruct,\n DateTimePickerStruct,\n] as [\n typeof AssetSelectorStruct,\n typeof AddressInputStruct,\n typeof AccountSelectorStruct,\n typeof InputStruct,\n typeof DropdownStruct,\n typeof RadioGroupStruct,\n typeof FileInputStruct,\n typeof CheckboxStruct,\n typeof SelectorStruct,\n typeof DateTimePickerStruct,\n];\n\n/**\n * A union of the allowed children of the Field component.\n * This is mainly used in the simulator for validation purposes.\n */\nexport const FieldChildUnionStruct = nullUnion([\n ...FIELD_CHILDREN_ARRAY,\n ...BOX_INPUT_LEFT,\n ...BOX_INPUT_RIGHT,\n ...BOX_INPUT_BOTH,\n]);\n\n/**\n * A subset of JSX elements that are allowed as children of the Field component.\n */\nconst FieldChildStruct = selectiveUnion((value) => {\n const isArray = Array.isArray(value);\n if (isArray && value.length === 3) {\n return tuple(BOX_INPUT_BOTH);\n }\n\n if (isArray && value.length === 2) {\n return value[0]?.type === 'Box'\n ? tuple(BOX_INPUT_LEFT)\n : tuple(BOX_INPUT_RIGHT);\n }\n\n return typedUnion(FIELD_CHILDREN_ARRAY);\n}) as unknown as Struct<\n | [InputElement, GenericSnapChildren]\n | [GenericSnapChildren, InputElement]\n | [GenericSnapChildren, InputElement, GenericSnapChildren]\n | DropdownElement\n | RadioGroupElement\n | FileInputElement\n | InputElement\n | CheckboxElement\n | SelectorElement\n | DateTimePickerElement\n | AssetSelectorElement\n | AddressInputElement\n | AccountSelectorElement,\n null\n>;\n\n/**\n * A struct for the {@link FieldElement} type.\n */\nexport const FieldStruct: Describe<FieldElement> = element('Field', {\n label: optional(string()),\n error: optional(string()),\n children: FieldChildStruct,\n});\n\n/**\n * A struct for the {@link BoldElement} type.\n */\nexport const BoldStruct: Describe<BoldElement> = element('Bold', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return ItalicStruct as unknown as Struct<\n SnapElement<JsonObject, 'Italic'>\n >;\n }),\n ]),\n});\n\n/**\n * A struct for the {@link ItalicElement} type.\n */\nexport const ItalicStruct: Describe<ItalicElement> = element('Italic', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return BoldStruct as unknown as Struct<SnapElement<JsonObject, 'Bold'>>;\n }),\n ]),\n});\n\nexport const FormattingStruct: Describe<StandardFormattingElement> = typedUnion(\n [BoldStruct, ItalicStruct],\n);\n\n/**\n * A struct for the {@link AvatarElement} type.\n */\nexport const AvatarStruct = element('Avatar', {\n address: CaipAccountIdStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n}) as unknown as Struct<AvatarElement, null>;\n\nexport const BoxChildrenStruct = children(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n [lazy(() => BoxChildStruct)],\n) as unknown as Struct<SnapsChildren<GenericSnapElement>, null>;\n\n/**\n * A struct for the {@link BoxElement} type.\n */\nexport const BoxStruct: Describe<BoxElement> = element('Box', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n crossAlignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n center: optional(boolean()),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Form component.\n */\nexport const FormChildStruct = BoxChildrenStruct;\n\n/**\n * A struct for the {@link FormElement} type.\n */\nexport const FormStruct: Describe<FormElement> = element('Form', {\n children: FormChildStruct,\n name: string(),\n});\n\nconst FooterButtonStruct = refine(ButtonStruct, 'FooterButton', (value) => {\n if (\n typeof value.props.children === 'string' ||\n typeof value.props.children === 'boolean' ||\n value.props.children === null\n ) {\n return true;\n }\n\n if (Array.isArray(value.props.children)) {\n const hasNonTextElements = value.props.children.some(\n (child) =>\n typeof child !== 'string' &&\n typeof child !== 'boolean' &&\n child !== null,\n );\n\n if (!hasNonTextElements) {\n return true;\n }\n }\n\n return 'Footer buttons may only contain text.';\n});\n\n/**\n * A struct for the {@link SectionElement} type.\n */\nexport const SectionStruct: Describe<SectionElement> = element('Section', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Footer component.\n * This set should include a single button or a tuple of two buttons.\n */\n\nexport const FooterChildStruct = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([FooterButtonStruct, FooterButtonStruct]);\n }\n return FooterButtonStruct;\n});\n\n/**\n * A struct for the {@link FooterElement} type.\n */\nexport const FooterStruct: Describe<FooterElement> = element('Footer', {\n children: FooterChildStruct,\n});\n\n/**\n * A struct for the {@link CopyableElement} type.\n */\nexport const CopyableStruct: Describe<CopyableElement> = element('Copyable', {\n value: string(),\n sensitive: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DividerElement} type.\n */\nexport const DividerStruct: Describe<DividerElement> = element('Divider');\n\n/**\n * A struct for the {@link HeadingElement} type.\n */\nexport const HeadingStruct: Describe<HeadingElement> = element('Heading', {\n children: StringElementStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n});\n\n/**\n * A struct for the {@link LinkElement} type.\n */\nexport const LinkStruct: Describe<LinkElement> = element('Link', {\n href: string(),\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return typedUnion([\n FormattingStruct,\n IconStruct,\n ImageStruct,\n AddressStruct,\n ]);\n }),\n ]),\n});\n\n/**\n * A struct for the {@link SkeletonElement} type.\n */\nexport const SkeletonStruct: Describe<SkeletonElement> = element('Skeleton', {\n width: optional(union([number(), string()])),\n height: optional(union([number(), string()])),\n borderRadius: optional(BorderRadiusStruct),\n});\n\n/**\n * A struct for the {@link TextElement} type.\n */\nexport const TextStruct: Describe<TextElement> = element('Text', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n SkeletonStruct,\n ]);\n }),\n ]),\n alignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n color: optional(\n nullUnion([\n literal('default'),\n literal('alternative'),\n literal('muted'),\n literal('error'),\n literal('success'),\n literal('warning'),\n ]),\n ),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n fontWeight: optional(\n nullUnion([literal('regular'), literal('medium'), literal('bold')]),\n ),\n});\n\n/**\n * A struct for the {@link ValueElement} type.\n */\nexport const ValueStruct: Describe<ValueElement> = element('Value', {\n value: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n extra: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Tooltip component.\n * This set should include all text components and the Image.\n */\nexport const TooltipChildStruct = selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n ImageStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A subset of JSX elements that are allowed as content of the Tooltip component.\n * This set should include all text components.\n */\nexport const TooltipContentStruct = selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A struct for the {@link TooltipElement} type.\n */\nexport const TooltipStruct: Describe<TooltipElement> = element('Tooltip', {\n children: nullable(TooltipChildStruct),\n content: TooltipContentStruct,\n});\n\n/**\n * A struct for the {@link BannerElement} type.\n */\nexport const BannerStruct: Describe<BannerElement> = element('Banner', {\n children: children([\n typedUnion([\n TextStruct,\n LinkStruct,\n IconStruct,\n ButtonStruct,\n BoldStruct,\n ItalicStruct,\n SkeletonStruct,\n ]),\n ]),\n title: string(),\n severity: union([\n literal('danger'),\n literal('info'),\n literal('success'),\n literal('warning'),\n ]),\n});\n\n/**\n * A struct for the {@link RowElement} type.\n */\nexport const RowStruct: Describe<RowElement> = element('Row', {\n label: string(),\n children: lazy(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n typedUnion([ValueStruct, BoxChildStruct]),\n ) as unknown as Describe<GenericSnapElement>,\n variant: optional(\n nullUnion([literal('default'), literal('warning'), literal('critical')]),\n ),\n tooltip: optional(string()),\n});\n\n/**\n * A struct for the {@link SpinnerElement} type.\n */\nexport const SpinnerStruct: Describe<SpinnerElement> = element('Spinner');\n\n/**\n * A subset of JSX elements that are allowed as children of the Box component.\n * This set includes all components, except components that need to be nested in\n * another component (e.g., Field must be contained in a Form).\n */\nexport const BoxChildStruct = typedUnion([\n AccountSelectorStruct,\n AddressStruct,\n AssetSelectorStruct,\n AddressInputStruct,\n BoldStruct,\n BoxStruct,\n ButtonStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n DropdownStruct,\n RadioGroupStruct,\n FieldStruct,\n FileInputStruct,\n FormStruct,\n HeadingStruct,\n InputStruct,\n ImageStruct,\n ItalicStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n TooltipStruct,\n CheckboxStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * A struct for the {@link ContainerElement} type.\n */\nexport const ContainerStruct: Describe<ContainerElement> = element(\n 'Container',\n {\n children: selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([BoxChildStruct, FooterStruct]);\n }\n return BoxChildStruct;\n }) as unknown as Struct<\n [GenericSnapElement, FooterElement] | GenericSnapElement,\n null\n >,\n backgroundColor: optional(\n nullUnion([literal('default'), literal('alternative')]),\n ),\n },\n);\n\n/**\n * For now, the allowed JSX elements at the root are the same as the allowed\n * children of the Box component.\n */\nexport const RootJSXElementStruct = typedUnion([\n BoxChildStruct,\n ContainerStruct,\n]);\n\n/**\n * A struct for the {@link JSXElement} type.\n */\nexport const JSXElementStruct: Describe<JSXElement> = typedUnion([\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n ButtonStruct,\n InputStruct,\n FileInputStruct,\n FieldStruct,\n FormStruct,\n BoldStruct,\n ItalicStruct,\n AddressStruct,\n BoxStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n HeadingStruct,\n ImageStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n DropdownStruct,\n OptionStruct,\n RadioGroupStruct,\n RadioStruct,\n ValueStruct,\n TooltipStruct,\n CheckboxStruct,\n FooterStruct,\n ContainerStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SelectorOptionStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * Check if a value is a JSX element.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElement(value: unknown): value is JSXElement {\n return is(value, JSXElementStruct);\n}\n\n/**\n * Check if a value is a JSX element, without validating all of its contents.\n * This is useful when you want to validate the structure of a value, but not\n * all the children.\n *\n * This should only be used when you are sure that the value is safe to use,\n * i.e., after using {@link isJSXElement}.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElementUnsafe(value: unknown): value is JSXElement {\n return (\n isPlainObject(value) &&\n hasProperty(value, 'type') &&\n hasProperty(value, 'props') &&\n hasProperty(value, 'key')\n );\n}\n\n/**\n * Assert that a value is a JSX element.\n *\n * @param value - The value to check.\n * @throws If the value is not a JSX element.\n */\nexport function assertJSXElement(value: unknown): asserts value is JSXElement {\n // TODO: We should use the error parsing utils from `snaps-utils` to improve\n // the error messages. It currently includes colours and potentially other\n // formatting that we might not want to include in the SDK.\n if (!isJSXElement(value)) {\n throw new Error(\n `Expected a JSX element, but received ${JSON.stringify(\n value,\n )}. Please refer to the documentation for the supported JSX elements and their props.`,\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.cts","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.d.cts","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,MAAM,EACP,8BAA8B;AA0B/B,OAAO,KAAK,EAEV,kBAAkB,EAElB,GAAG,EAEH,WAAW,EACX,aAAa,EACb,aAAa,EACd,wBAAoB;AACrB,OAAO,KAAK,EACV,oBAAoB,EAEpB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACtB,+BAAqB;AAEtB,OAAO,KAAK,EAAE,QAAQ,EAAE,+BAAqB;AAiB7C;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAmC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,aAAa,CAEtD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,kBAAkB,CAIrD,CAAC;AA2GH;;GAEG;AACH,eAAO,MAAM,kBAAkB,0CAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAM7C,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAa3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAS/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAMnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;EAKlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAKhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAKpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAiB9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,mBAAmB,CAU5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAI/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAKnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,CAahE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAUjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,sBAAsB,CAalE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAW3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,CAOhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAMnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,oBAAoB,CAY9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAI7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAQxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAQtD,CAAC;AA0DF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;kTAKhC,CAAC;AAmCH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAI7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAY3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAU/C,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,yBAAyB,CAEhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,yEAGmB,CAAC;AAE7C,eAAO,MAAM,iBAAiB,iDAGiC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,CAgBzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,iDAAoB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAG3C,CAAC;AA2BH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAYjD,CAAC;AAEH;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,kMAK5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAE/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAGnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAsB,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAGjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAgB3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAInD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAgC3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAe7C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;sPAY7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,kTAW/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAGjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAmB/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,CAUzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAsB,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;kTAiCzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAgBtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;kTAG/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAuChD,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAOtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAW5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.mts","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,MAAM,EACP,8BAA8B;AA0B/B,OAAO,KAAK,EAEV,kBAAkB,EAElB,GAAG,EAEH,WAAW,EACX,aAAa,EACb,aAAa,EACd,wBAAoB;AACrB,OAAO,KAAK,EACV,oBAAoB,EAEpB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACtB,+BAAqB;AAEtB,OAAO,KAAK,EAAE,QAAQ,EAAE,+BAAqB;AAiB7C;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAmC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,aAAa,CAEtD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,kBAAkB,CAIrD,CAAC;AA2GH;;GAEG;AACH,eAAO,MAAM,kBAAkB,0CAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAM7C,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAM3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAS/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAMnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;EAKlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAKhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAKpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAiB9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,mBAAmB,CAU5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAI/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAKnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,CAahE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAUjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,sBAAsB,CAalE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAW3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,CAOhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAMnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,oBAAoB,CAY9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAI7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAQxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAQtD,CAAC;AA0DF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;kTAKhC,CAAC;AAmCH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAI7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAY3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAU/C,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,yBAAyB,CAEhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,yEAGmB,CAAC;AAE7C,eAAO,MAAM,iBAAiB,iDAGiC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,CAgBzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,iDAAoB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAG3C,CAAC;AA2BH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAYjD,CAAC;AAEH;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,kMAK5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAE/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAGnD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAsB,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAGjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAgB3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAInD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,WAAW,CAgC3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,YAAY,CAe7C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;sPAY7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,kTAW/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAGjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,aAAa,CAmB/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,CAUzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAsB,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;kTAiCzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAgBtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;kTAG/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAuChD,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAOtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAW5E"}
1
+ {"version":3,"file":"validation.d.mts","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,14 @@ const IconNameStruct = nullUnion(Object.values(IconName).map((name) => literal(n
119
119
  */
120
120
  export const IconStruct = element('Icon', {
121
121
  name: IconNameStruct,
122
- color: optional(nullUnion([literal('default'), literal('primary'), literal('muted')])),
122
+ color: optional(nullUnion([
123
+ literal('default'),
124
+ literal('primary'),
125
+ literal('muted'),
126
+ literal('error'),
127
+ literal('success'),
128
+ literal('warning'),
129
+ ])),
123
130
  size: optional(nullUnion([literal('md'), literal('inherit')])),
124
131
  });
125
132
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AnyStruct,\n Infer,\n InferStructTuple,\n ObjectSchema,\n Struct,\n} from '@metamask/superstruct';\nimport {\n is,\n boolean,\n optional,\n array,\n lazy,\n nullable,\n number,\n object,\n record,\n string,\n tuple,\n refine,\n assign,\n union,\n} from '@metamask/superstruct';\nimport {\n CaipAccountIdStruct,\n CaipChainIdStruct,\n hasProperty,\n HexChecksumAddressStruct,\n isPlainObject,\n JsonStruct,\n} from '@metamask/utils';\n\nimport type {\n GenericSnapChildren,\n GenericSnapElement,\n JsonObject,\n Key,\n Nestable,\n SnapElement,\n SnapsChildren,\n StringElement,\n} from './component';\nimport type {\n AssetSelectorElement,\n AvatarElement,\n AccountSelectorElement,\n SkeletonElement,\n AddressElement,\n AddressInputElement,\n BoldElement,\n BoxElement,\n ButtonElement,\n CheckboxElement,\n CardElement,\n CopyableElement,\n DividerElement,\n DropdownElement,\n OptionElement,\n RadioElement,\n RadioGroupElement,\n FieldElement,\n FormElement,\n HeadingElement,\n ImageElement,\n InputElement,\n ItalicElement,\n JSXElement,\n LinkElement,\n RowElement,\n SpinnerElement,\n StandardFormattingElement,\n TextElement,\n TooltipElement,\n ValueElement,\n FileInputElement,\n ContainerElement,\n FooterElement,\n IconElement,\n SectionElement,\n SelectorElement,\n SelectorOptionElement,\n BannerElement,\n DateTimePickerElement,\n} from './components';\nimport { IconName } from './components';\nimport type { Describe } from '../internals';\nimport {\n literal,\n nullUnion,\n selectiveUnion,\n svg,\n typedUnion,\n ISO8601DateStruct,\n uri,\n} from '../internals';\nimport {\n NonEip155AssetTypeStruct,\n NonEip155ChainIdStruct,\n NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n type EmptyObject,\n} from '../types';\n\n/**\n * A struct for the {@link Key} type.\n */\nexport const KeyStruct: Describe<Key> = nullUnion([string(), number()]);\n\n/**\n * A struct for the {@link StringElement} type.\n */\nexport const StringElementStruct: Describe<StringElement> = children([\n string(),\n]);\n\n/**\n * A struct for the {@link GenericSnapElement} type.\n */\nexport const ElementStruct: Describe<GenericSnapElement> = object({\n type: string(),\n props: record(string(), JsonStruct),\n key: nullable(KeyStruct),\n});\n\n/**\n * A helper function for creating a struct for a {@link Nestable} type.\n *\n * @param struct - The struct for the type to test.\n * @returns The struct for the nestable type.\n */\nfunction nestable<Type, Schema>(\n struct: Struct<Type, Schema>,\n): Struct<Nestable<Type>, any> {\n const nestableStruct: Struct<Nestable<Type>> = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return array(lazy(() => nestableStruct));\n }\n return struct;\n });\n\n return nestableStruct;\n}\n\n/**\n * A helper function for creating a struct which allows children of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param structs - The structs to allow as children.\n * @returns The struct for the children.\n */\nfunction children<Head extends AnyStruct, Tail extends AnyStruct[]>(\n structs: [head: Head, ...tail: Tail],\n): Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n> {\n const potentialUnion = structs.length === 1 ? structs[0] : nullUnion(structs);\n return nestable(\n nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return potentialUnion;\n }),\n ),\n ) as unknown as Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n >;\n}\n\n/**\n * A helper function for creating a struct which allows a single child of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param struct - The struct to allow as a single child.\n * @returns The struct for the children.\n */\nfunction singleChild<Type extends AnyStruct>(\n struct: Type,\n): Struct<Infer<Type> | boolean | null, null> {\n return nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n\n return struct;\n }),\n ) as unknown as Struct<Infer<Type> | boolean | null, null>;\n}\n\n/**\n * A helper function for creating a struct for a JSX element.\n *\n * @param name - The name of the element.\n * @param props - The props of the element.\n * @returns The struct for the element.\n */\nfunction element<Name extends string, Props extends ObjectSchema = EmptyObject>(\n name: Name,\n props: Props = {} as Props,\n) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: object(props),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * A helper function for creating a struct for a JSX element with selective props.\n *\n * @param name - The name of the element.\n * @param selector - The selector function choosing the struct to validate with.\n * @returns The struct for the element.\n */\nfunction elementWithSelectiveProps<\n Name extends string,\n Selector extends (value: any) => AnyStruct,\n>(name: Name, selector: Selector) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: selectiveUnion(selector),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * Shared struct used to validate border radius values used by various Snaps components.\n */\nexport const BorderRadiusStruct = nullUnion([\n literal('none'),\n literal('medium'),\n literal('full'),\n]);\n\n/**\n * A struct for the {@link ImageElement} type.\n */\nexport const ImageStruct: Describe<ImageElement> = element('Image', {\n src: nullUnion([svg(), uri({ protocol: literal('https:') })]),\n alt: optional(string()),\n borderRadius: optional(BorderRadiusStruct),\n width: optional(number()),\n height: optional(number()),\n});\n\nconst IconNameStruct: Struct<`${IconName}`, null> = nullUnion(\n Object.values(IconName).map((name) => literal(name)) as any,\n);\n\n/**\n * A struct for the {@link IconElement} type.\n */\nexport const IconStruct: Describe<IconElement> = element('Icon', {\n name: IconNameStruct,\n color: optional(\n nullUnion([literal('default'), literal('primary'), literal('muted')]),\n ),\n size: optional(nullUnion([literal('md'), literal('inherit')])),\n});\n\n/**\n * A struct for the {@link ButtonElement} type.\n */\nexport const ButtonStruct: Describe<ButtonElement> = element('Button', {\n children: children([StringElementStruct, ImageStruct, IconStruct]),\n name: optional(string()),\n type: optional(nullUnion([literal('button'), literal('submit')])),\n variant: optional(nullUnion([literal('primary'), literal('destructive')])),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n disabled: optional(boolean()),\n loading: optional(boolean()),\n form: optional(string()),\n});\n\n/**\n * A struct for the {@link CheckboxElement} type.\n */\nexport const CheckboxStruct: Describe<CheckboxElement> = element('Checkbox', {\n name: string(),\n checked: optional(boolean()),\n label: optional(string()),\n variant: optional(nullUnion([literal('default'), literal('toggle')])),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the generic input element props.\n */\nexport const GenericInputPropsStruct = object({\n name: string(),\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the text type input props.\n */\nexport const TextInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('text'),\n }),\n);\n\n/**\n * A struct for the password type input props.\n */\nexport const PasswordInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('password'),\n }),\n);\n\n/**\n * A struct for the number type input props.\n */\nexport const NumberInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('number'),\n min: optional(number()),\n max: optional(number()),\n step: optional(number()),\n }),\n);\n\n/**\n * A struct for the {@link InputElement} type.\n */\nexport const InputStruct: Describe<InputElement> = elementWithSelectiveProps(\n 'Input',\n (value) => {\n if (isPlainObject(value) && hasProperty(value, 'type')) {\n switch (value.type) {\n case 'text':\n return TextInputPropsStruct;\n case 'password':\n return PasswordInputPropsStruct;\n case 'number':\n return NumberInputPropsStruct;\n default:\n return GenericInputPropsStruct;\n }\n }\n return GenericInputPropsStruct;\n },\n);\n\n/**\n * A struct for the {@link AddressInputElement} type.\n */\nexport const AddressInputStruct: Describe<AddressInputElement> = element(\n 'AddressInput',\n {\n name: string(),\n chainId: CaipChainIdStruct,\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n displayAvatar: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link OptionElement} type.\n */\nexport const OptionStruct: Describe<OptionElement> = element('Option', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DropdownElement} type.\n */\nexport const DropdownStruct: Describe<DropdownElement> = element('Dropdown', {\n name: string(),\n value: optional(string()),\n children: children([OptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DateTimePickerElement} type.\n */\nexport const DateTimePickerStruct: Describe<DateTimePickerElement> = element(\n 'DateTimePicker',\n {\n name: string(),\n type: optional(\n nullUnion([literal('date'), literal('time'), literal('datetime')]),\n ),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n disablePast: optional(boolean()),\n disableFuture: optional(boolean()),\n value: optional(ISO8601DateStruct),\n },\n);\n\n/**\n * A struct for the {@link AddressElement} type.\n */\nexport const AddressStruct: Describe<AddressElement> = element('Address', {\n address: selectiveUnion((value) => {\n if (typeof value === 'string' && value.startsWith('0x')) {\n return HexChecksumAddressStruct;\n }\n return CaipAccountIdStruct;\n }),\n truncate: optional(boolean()),\n displayName: optional(boolean()),\n avatar: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AccountSelectorElement} type.\n */\nexport const AccountSelectorStruct: Describe<AccountSelectorElement> = element(\n 'AccountSelector',\n {\n name: string(),\n hideExternalAccounts: optional(boolean()),\n chainIds: optional(array(CaipChainIdStruct)) as unknown as Struct<\n Infer<typeof CaipChainIdStruct>[] | undefined,\n null\n >,\n switchGlobalAccount: optional(boolean()),\n value: optional(CaipAccountIdStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link CardElement} type.\n */\nexport const CardStruct: Describe<CardElement> = element('Card', {\n image: optional(string()),\n title: selectiveUnion((value) => {\n if (typeof value === 'object') {\n return AddressStruct;\n }\n return string();\n }),\n description: optional(string()),\n value: string(),\n extra: optional(string()),\n});\n\n/**\n * A struct for the {@link SelectorOptionElement} type.\n */\nexport const SelectorOptionStruct: Describe<SelectorOptionElement> = element(\n 'SelectorOption',\n {\n value: string(),\n children: CardStruct,\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link SelectorElement} type.\n */\nexport const SelectorStruct: Describe<SelectorElement> = element('Selector', {\n name: string(),\n title: string(),\n value: optional(string()),\n children: children([SelectorOptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AssetSelectorElement} type.\n */\nexport const AssetSelectorStruct: Describe<AssetSelectorElement> = element(\n 'AssetSelector',\n {\n name: string(),\n addresses: NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n chainIds: optional(array(NonEip155ChainIdStruct)) as unknown as Struct<\n Infer<typeof NonEip155ChainIdStruct>[] | undefined,\n null\n >,\n value: optional(NonEip155AssetTypeStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link RadioElement} type.\n */\nexport const RadioStruct: Describe<RadioElement> = element('Radio', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link RadioGroupElement} type.\n */\nexport const RadioGroupStruct: Describe<RadioGroupElement> = element(\n 'RadioGroup',\n {\n name: string(),\n value: optional(string()),\n children: children([RadioStruct]),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link FileInputElement} type.\n */\nexport const FileInputStruct: Describe<FileInputElement> = element(\n 'FileInput',\n {\n name: string(),\n accept: nullUnion([optional(array(string()))]),\n compact: optional(boolean()),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input of the Field children.\n */\nconst BOX_INPUT_LEFT = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n] as [typeof BoxChildStruct, typeof InputStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Input + Box of the Field children.\n */\nconst BOX_INPUT_RIGHT = [\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input + Box of the Field children.\n */\nconst BOX_INPUT_BOTH = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof BoxChildStruct, typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that are allowed as single children of the Field component.\n */\nconst FIELD_CHILDREN_ARRAY = [\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n InputStruct,\n DropdownStruct,\n RadioGroupStruct,\n FileInputStruct,\n CheckboxStruct,\n SelectorStruct,\n DateTimePickerStruct,\n] as [\n typeof AssetSelectorStruct,\n typeof AddressInputStruct,\n typeof AccountSelectorStruct,\n typeof InputStruct,\n typeof DropdownStruct,\n typeof RadioGroupStruct,\n typeof FileInputStruct,\n typeof CheckboxStruct,\n typeof SelectorStruct,\n typeof DateTimePickerStruct,\n];\n\n/**\n * A union of the allowed children of the Field component.\n * This is mainly used in the simulator for validation purposes.\n */\nexport const FieldChildUnionStruct = nullUnion([\n ...FIELD_CHILDREN_ARRAY,\n ...BOX_INPUT_LEFT,\n ...BOX_INPUT_RIGHT,\n ...BOX_INPUT_BOTH,\n]);\n\n/**\n * A subset of JSX elements that are allowed as children of the Field component.\n */\nconst FieldChildStruct = selectiveUnion((value) => {\n const isArray = Array.isArray(value);\n if (isArray && value.length === 3) {\n return tuple(BOX_INPUT_BOTH);\n }\n\n if (isArray && value.length === 2) {\n return value[0]?.type === 'Box'\n ? tuple(BOX_INPUT_LEFT)\n : tuple(BOX_INPUT_RIGHT);\n }\n\n return typedUnion(FIELD_CHILDREN_ARRAY);\n}) as unknown as Struct<\n | [InputElement, GenericSnapChildren]\n | [GenericSnapChildren, InputElement]\n | [GenericSnapChildren, InputElement, GenericSnapChildren]\n | DropdownElement\n | RadioGroupElement\n | FileInputElement\n | InputElement\n | CheckboxElement\n | SelectorElement\n | DateTimePickerElement\n | AssetSelectorElement\n | AddressInputElement\n | AccountSelectorElement,\n null\n>;\n\n/**\n * A struct for the {@link FieldElement} type.\n */\nexport const FieldStruct: Describe<FieldElement> = element('Field', {\n label: optional(string()),\n error: optional(string()),\n children: FieldChildStruct,\n});\n\n/**\n * A struct for the {@link BoldElement} type.\n */\nexport const BoldStruct: Describe<BoldElement> = element('Bold', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return ItalicStruct as unknown as Struct<\n SnapElement<JsonObject, 'Italic'>\n >;\n }),\n ]),\n});\n\n/**\n * A struct for the {@link ItalicElement} type.\n */\nexport const ItalicStruct: Describe<ItalicElement> = element('Italic', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return BoldStruct as unknown as Struct<SnapElement<JsonObject, 'Bold'>>;\n }),\n ]),\n});\n\nexport const FormattingStruct: Describe<StandardFormattingElement> = typedUnion(\n [BoldStruct, ItalicStruct],\n);\n\n/**\n * A struct for the {@link AvatarElement} type.\n */\nexport const AvatarStruct = element('Avatar', {\n address: CaipAccountIdStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n}) as unknown as Struct<AvatarElement, null>;\n\nexport const BoxChildrenStruct = children(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n [lazy(() => BoxChildStruct)],\n) as unknown as Struct<SnapsChildren<GenericSnapElement>, null>;\n\n/**\n * A struct for the {@link BoxElement} type.\n */\nexport const BoxStruct: Describe<BoxElement> = element('Box', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n crossAlignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n center: optional(boolean()),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Form component.\n */\nexport const FormChildStruct = BoxChildrenStruct;\n\n/**\n * A struct for the {@link FormElement} type.\n */\nexport const FormStruct: Describe<FormElement> = element('Form', {\n children: FormChildStruct,\n name: string(),\n});\n\nconst FooterButtonStruct = refine(ButtonStruct, 'FooterButton', (value) => {\n if (\n typeof value.props.children === 'string' ||\n typeof value.props.children === 'boolean' ||\n value.props.children === null\n ) {\n return true;\n }\n\n if (Array.isArray(value.props.children)) {\n const hasNonTextElements = value.props.children.some(\n (child) =>\n typeof child !== 'string' &&\n typeof child !== 'boolean' &&\n child !== null,\n );\n\n if (!hasNonTextElements) {\n return true;\n }\n }\n\n return 'Footer buttons may only contain text.';\n});\n\n/**\n * A struct for the {@link SectionElement} type.\n */\nexport const SectionStruct: Describe<SectionElement> = element('Section', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Footer component.\n * This set should include a single button or a tuple of two buttons.\n */\n\nexport const FooterChildStruct = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([FooterButtonStruct, FooterButtonStruct]);\n }\n return FooterButtonStruct;\n});\n\n/**\n * A struct for the {@link FooterElement} type.\n */\nexport const FooterStruct: Describe<FooterElement> = element('Footer', {\n children: FooterChildStruct,\n});\n\n/**\n * A struct for the {@link CopyableElement} type.\n */\nexport const CopyableStruct: Describe<CopyableElement> = element('Copyable', {\n value: string(),\n sensitive: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DividerElement} type.\n */\nexport const DividerStruct: Describe<DividerElement> = element('Divider');\n\n/**\n * A struct for the {@link HeadingElement} type.\n */\nexport const HeadingStruct: Describe<HeadingElement> = element('Heading', {\n children: StringElementStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n});\n\n/**\n * A struct for the {@link LinkElement} type.\n */\nexport const LinkStruct: Describe<LinkElement> = element('Link', {\n href: string(),\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return typedUnion([\n FormattingStruct,\n IconStruct,\n ImageStruct,\n AddressStruct,\n ]);\n }),\n ]),\n});\n\n/**\n * A struct for the {@link SkeletonElement} type.\n */\nexport const SkeletonStruct: Describe<SkeletonElement> = element('Skeleton', {\n width: optional(union([number(), string()])),\n height: optional(union([number(), string()])),\n borderRadius: optional(BorderRadiusStruct),\n});\n\n/**\n * A struct for the {@link TextElement} type.\n */\nexport const TextStruct: Describe<TextElement> = element('Text', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n SkeletonStruct,\n ]);\n }),\n ]),\n alignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n color: optional(\n nullUnion([\n literal('default'),\n literal('alternative'),\n literal('muted'),\n literal('error'),\n literal('success'),\n literal('warning'),\n ]),\n ),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n fontWeight: optional(\n nullUnion([literal('regular'), literal('medium'), literal('bold')]),\n ),\n});\n\n/**\n * A struct for the {@link ValueElement} type.\n */\nexport const ValueStruct: Describe<ValueElement> = element('Value', {\n value: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n extra: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Tooltip component.\n * This set should include all text components and the Image.\n */\nexport const TooltipChildStruct = selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n ImageStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A subset of JSX elements that are allowed as content of the Tooltip component.\n * This set should include all text components.\n */\nexport const TooltipContentStruct = selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A struct for the {@link TooltipElement} type.\n */\nexport const TooltipStruct: Describe<TooltipElement> = element('Tooltip', {\n children: nullable(TooltipChildStruct),\n content: TooltipContentStruct,\n});\n\n/**\n * A struct for the {@link BannerElement} type.\n */\nexport const BannerStruct: Describe<BannerElement> = element('Banner', {\n children: children([\n typedUnion([\n TextStruct,\n LinkStruct,\n IconStruct,\n ButtonStruct,\n BoldStruct,\n ItalicStruct,\n SkeletonStruct,\n ]),\n ]),\n title: string(),\n severity: union([\n literal('danger'),\n literal('info'),\n literal('success'),\n literal('warning'),\n ]),\n});\n\n/**\n * A struct for the {@link RowElement} type.\n */\nexport const RowStruct: Describe<RowElement> = element('Row', {\n label: string(),\n children: lazy(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n typedUnion([ValueStruct, BoxChildStruct]),\n ) as unknown as Describe<GenericSnapElement>,\n variant: optional(\n nullUnion([literal('default'), literal('warning'), literal('critical')]),\n ),\n tooltip: optional(string()),\n});\n\n/**\n * A struct for the {@link SpinnerElement} type.\n */\nexport const SpinnerStruct: Describe<SpinnerElement> = element('Spinner');\n\n/**\n * A subset of JSX elements that are allowed as children of the Box component.\n * This set includes all components, except components that need to be nested in\n * another component (e.g., Field must be contained in a Form).\n */\nexport const BoxChildStruct = typedUnion([\n AccountSelectorStruct,\n AddressStruct,\n AssetSelectorStruct,\n AddressInputStruct,\n BoldStruct,\n BoxStruct,\n ButtonStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n DropdownStruct,\n RadioGroupStruct,\n FieldStruct,\n FileInputStruct,\n FormStruct,\n HeadingStruct,\n InputStruct,\n ImageStruct,\n ItalicStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n TooltipStruct,\n CheckboxStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * A struct for the {@link ContainerElement} type.\n */\nexport const ContainerStruct: Describe<ContainerElement> = element(\n 'Container',\n {\n children: selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([BoxChildStruct, FooterStruct]);\n }\n return BoxChildStruct;\n }) as unknown as Struct<\n [GenericSnapElement, FooterElement] | GenericSnapElement,\n null\n >,\n backgroundColor: optional(\n nullUnion([literal('default'), literal('alternative')]),\n ),\n },\n);\n\n/**\n * For now, the allowed JSX elements at the root are the same as the allowed\n * children of the Box component.\n */\nexport const RootJSXElementStruct = typedUnion([\n BoxChildStruct,\n ContainerStruct,\n]);\n\n/**\n * A struct for the {@link JSXElement} type.\n */\nexport const JSXElementStruct: Describe<JSXElement> = typedUnion([\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n ButtonStruct,\n InputStruct,\n FileInputStruct,\n FieldStruct,\n FormStruct,\n BoldStruct,\n ItalicStruct,\n AddressStruct,\n BoxStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n HeadingStruct,\n ImageStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n DropdownStruct,\n OptionStruct,\n RadioGroupStruct,\n RadioStruct,\n ValueStruct,\n TooltipStruct,\n CheckboxStruct,\n FooterStruct,\n ContainerStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SelectorOptionStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * Check if a value is a JSX element.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElement(value: unknown): value is JSXElement {\n return is(value, JSXElementStruct);\n}\n\n/**\n * Check if a value is a JSX element, without validating all of its contents.\n * This is useful when you want to validate the structure of a value, but not\n * all the children.\n *\n * This should only be used when you are sure that the value is safe to use,\n * i.e., after using {@link isJSXElement}.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElementUnsafe(value: unknown): value is JSXElement {\n return (\n isPlainObject(value) &&\n hasProperty(value, 'type') &&\n hasProperty(value, 'props') &&\n hasProperty(value, 'key')\n );\n}\n\n/**\n * Assert that a value is a JSX element.\n *\n * @param value - The value to check.\n * @throws If the value is not a JSX element.\n */\nexport function assertJSXElement(value: unknown): asserts value is JSXElement {\n // TODO: We should use the error parsing utils from `snaps-utils` to improve\n // the error messages. It currently includes colours and potentially other\n // formatting that we might not want to include in the SDK.\n if (!isJSXElement(value)) {\n throw new Error(\n `Expected a JSX element, but received ${JSON.stringify(\n value,\n )}. Please refer to the documentation for the supported JSX elements and their props.`,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"validation.mjs","sourceRoot":"","sources":["../../src/jsx/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AnyStruct,\n Infer,\n InferStructTuple,\n ObjectSchema,\n Struct,\n} from '@metamask/superstruct';\nimport {\n is,\n boolean,\n optional,\n array,\n lazy,\n nullable,\n number,\n object,\n record,\n string,\n tuple,\n refine,\n assign,\n union,\n} from '@metamask/superstruct';\nimport {\n CaipAccountIdStruct,\n CaipChainIdStruct,\n hasProperty,\n HexChecksumAddressStruct,\n isPlainObject,\n JsonStruct,\n} from '@metamask/utils';\n\nimport type {\n GenericSnapChildren,\n GenericSnapElement,\n JsonObject,\n Key,\n Nestable,\n SnapElement,\n SnapsChildren,\n StringElement,\n} from './component';\nimport type {\n AssetSelectorElement,\n AvatarElement,\n AccountSelectorElement,\n SkeletonElement,\n AddressElement,\n AddressInputElement,\n BoldElement,\n BoxElement,\n ButtonElement,\n CheckboxElement,\n CardElement,\n CopyableElement,\n DividerElement,\n DropdownElement,\n OptionElement,\n RadioElement,\n RadioGroupElement,\n FieldElement,\n FormElement,\n HeadingElement,\n ImageElement,\n InputElement,\n ItalicElement,\n JSXElement,\n LinkElement,\n RowElement,\n SpinnerElement,\n StandardFormattingElement,\n TextElement,\n TooltipElement,\n ValueElement,\n FileInputElement,\n ContainerElement,\n FooterElement,\n IconElement,\n SectionElement,\n SelectorElement,\n SelectorOptionElement,\n BannerElement,\n DateTimePickerElement,\n} from './components';\nimport { IconName } from './components';\nimport type { Describe } from '../internals';\nimport {\n literal,\n nullUnion,\n selectiveUnion,\n svg,\n typedUnion,\n ISO8601DateStruct,\n uri,\n} from '../internals';\nimport {\n NonEip155AssetTypeStruct,\n NonEip155ChainIdStruct,\n NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n type EmptyObject,\n} from '../types';\n\n/**\n * A struct for the {@link Key} type.\n */\nexport const KeyStruct: Describe<Key> = nullUnion([string(), number()]);\n\n/**\n * A struct for the {@link StringElement} type.\n */\nexport const StringElementStruct: Describe<StringElement> = children([\n string(),\n]);\n\n/**\n * A struct for the {@link GenericSnapElement} type.\n */\nexport const ElementStruct: Describe<GenericSnapElement> = object({\n type: string(),\n props: record(string(), JsonStruct),\n key: nullable(KeyStruct),\n});\n\n/**\n * A helper function for creating a struct for a {@link Nestable} type.\n *\n * @param struct - The struct for the type to test.\n * @returns The struct for the nestable type.\n */\nfunction nestable<Type, Schema>(\n struct: Struct<Type, Schema>,\n): Struct<Nestable<Type>, any> {\n const nestableStruct: Struct<Nestable<Type>> = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return array(lazy(() => nestableStruct));\n }\n return struct;\n });\n\n return nestableStruct;\n}\n\n/**\n * A helper function for creating a struct which allows children of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param structs - The structs to allow as children.\n * @returns The struct for the children.\n */\nfunction children<Head extends AnyStruct, Tail extends AnyStruct[]>(\n structs: [head: Head, ...tail: Tail],\n): Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n> {\n const potentialUnion = structs.length === 1 ? structs[0] : nullUnion(structs);\n return nestable(\n nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return potentialUnion;\n }),\n ),\n ) as unknown as Struct<\n Nestable<Infer<Head> | InferStructTuple<Tail>[number] | boolean | null>,\n null\n >;\n}\n\n/**\n * A helper function for creating a struct which allows a single child of a specific\n * type, as well as `null` and `boolean`.\n *\n * @param struct - The struct to allow as a single child.\n * @returns The struct for the children.\n */\nfunction singleChild<Type extends AnyStruct>(\n struct: Type,\n): Struct<Infer<Type> | boolean | null, null> {\n return nullable(\n selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n\n return struct;\n }),\n ) as unknown as Struct<Infer<Type> | boolean | null, null>;\n}\n\n/**\n * A helper function for creating a struct for a JSX element.\n *\n * @param name - The name of the element.\n * @param props - The props of the element.\n * @returns The struct for the element.\n */\nfunction element<Name extends string, Props extends ObjectSchema = EmptyObject>(\n name: Name,\n props: Props = {} as Props,\n) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: object(props),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * A helper function for creating a struct for a JSX element with selective props.\n *\n * @param name - The name of the element.\n * @param selector - The selector function choosing the struct to validate with.\n * @returns The struct for the element.\n */\nfunction elementWithSelectiveProps<\n Name extends string,\n Selector extends (value: any) => AnyStruct,\n>(name: Name, selector: Selector) {\n return object({\n type: literal(name) as unknown as Struct<Name, Name>,\n props: selectiveUnion(selector),\n key: nullable(KeyStruct),\n });\n}\n\n/**\n * Shared struct used to validate border radius values used by various Snaps components.\n */\nexport const BorderRadiusStruct = nullUnion([\n literal('none'),\n literal('medium'),\n literal('full'),\n]);\n\n/**\n * A struct for the {@link ImageElement} type.\n */\nexport const ImageStruct: Describe<ImageElement> = element('Image', {\n src: nullUnion([svg(), uri({ protocol: literal('https:') })]),\n alt: optional(string()),\n borderRadius: optional(BorderRadiusStruct),\n width: optional(number()),\n height: optional(number()),\n});\n\nconst IconNameStruct: Struct<`${IconName}`, null> = nullUnion(\n Object.values(IconName).map((name) => literal(name)) as any,\n);\n\n/**\n * A struct for the {@link IconElement} type.\n */\nexport const IconStruct: Describe<IconElement> = element('Icon', {\n name: IconNameStruct,\n color: optional(\n nullUnion([\n literal('default'),\n literal('primary'),\n literal('muted'),\n literal('error'),\n literal('success'),\n literal('warning'),\n ]),\n ),\n size: optional(nullUnion([literal('md'), literal('inherit')])),\n});\n\n/**\n * A struct for the {@link ButtonElement} type.\n */\nexport const ButtonStruct: Describe<ButtonElement> = element('Button', {\n children: children([StringElementStruct, ImageStruct, IconStruct]),\n name: optional(string()),\n type: optional(nullUnion([literal('button'), literal('submit')])),\n variant: optional(nullUnion([literal('primary'), literal('destructive')])),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n disabled: optional(boolean()),\n loading: optional(boolean()),\n form: optional(string()),\n});\n\n/**\n * A struct for the {@link CheckboxElement} type.\n */\nexport const CheckboxStruct: Describe<CheckboxElement> = element('Checkbox', {\n name: string(),\n checked: optional(boolean()),\n label: optional(string()),\n variant: optional(nullUnion([literal('default'), literal('toggle')])),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the generic input element props.\n */\nexport const GenericInputPropsStruct = object({\n name: string(),\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the text type input props.\n */\nexport const TextInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('text'),\n }),\n);\n\n/**\n * A struct for the password type input props.\n */\nexport const PasswordInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('password'),\n }),\n);\n\n/**\n * A struct for the number type input props.\n */\nexport const NumberInputPropsStruct = assign(\n GenericInputPropsStruct,\n object({\n type: literal('number'),\n min: optional(number()),\n max: optional(number()),\n step: optional(number()),\n }),\n);\n\n/**\n * A struct for the {@link InputElement} type.\n */\nexport const InputStruct: Describe<InputElement> = elementWithSelectiveProps(\n 'Input',\n (value) => {\n if (isPlainObject(value) && hasProperty(value, 'type')) {\n switch (value.type) {\n case 'text':\n return TextInputPropsStruct;\n case 'password':\n return PasswordInputPropsStruct;\n case 'number':\n return NumberInputPropsStruct;\n default:\n return GenericInputPropsStruct;\n }\n }\n return GenericInputPropsStruct;\n },\n);\n\n/**\n * A struct for the {@link AddressInputElement} type.\n */\nexport const AddressInputStruct: Describe<AddressInputElement> = element(\n 'AddressInput',\n {\n name: string(),\n chainId: CaipChainIdStruct,\n value: optional(string()),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n displayAvatar: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link OptionElement} type.\n */\nexport const OptionStruct: Describe<OptionElement> = element('Option', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DropdownElement} type.\n */\nexport const DropdownStruct: Describe<DropdownElement> = element('Dropdown', {\n name: string(),\n value: optional(string()),\n children: children([OptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DateTimePickerElement} type.\n */\nexport const DateTimePickerStruct: Describe<DateTimePickerElement> = element(\n 'DateTimePicker',\n {\n name: string(),\n type: optional(\n nullUnion([literal('date'), literal('time'), literal('datetime')]),\n ),\n placeholder: optional(string()),\n disabled: optional(boolean()),\n disablePast: optional(boolean()),\n disableFuture: optional(boolean()),\n value: optional(ISO8601DateStruct),\n },\n);\n\n/**\n * A struct for the {@link AddressElement} type.\n */\nexport const AddressStruct: Describe<AddressElement> = element('Address', {\n address: selectiveUnion((value) => {\n if (typeof value === 'string' && value.startsWith('0x')) {\n return HexChecksumAddressStruct;\n }\n return CaipAccountIdStruct;\n }),\n truncate: optional(boolean()),\n displayName: optional(boolean()),\n avatar: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AccountSelectorElement} type.\n */\nexport const AccountSelectorStruct: Describe<AccountSelectorElement> = element(\n 'AccountSelector',\n {\n name: string(),\n hideExternalAccounts: optional(boolean()),\n chainIds: optional(array(CaipChainIdStruct)) as unknown as Struct<\n Infer<typeof CaipChainIdStruct>[] | undefined,\n null\n >,\n switchGlobalAccount: optional(boolean()),\n value: optional(CaipAccountIdStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link CardElement} type.\n */\nexport const CardStruct: Describe<CardElement> = element('Card', {\n image: optional(string()),\n title: selectiveUnion((value) => {\n if (typeof value === 'object') {\n return AddressStruct;\n }\n return string();\n }),\n description: optional(string()),\n value: string(),\n extra: optional(string()),\n});\n\n/**\n * A struct for the {@link SelectorOptionElement} type.\n */\nexport const SelectorOptionStruct: Describe<SelectorOptionElement> = element(\n 'SelectorOption',\n {\n value: string(),\n children: CardStruct,\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link SelectorElement} type.\n */\nexport const SelectorStruct: Describe<SelectorElement> = element('Selector', {\n name: string(),\n title: string(),\n value: optional(string()),\n children: children([SelectorOptionStruct]),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link AssetSelectorElement} type.\n */\nexport const AssetSelectorStruct: Describe<AssetSelectorElement> = element(\n 'AssetSelector',\n {\n name: string(),\n addresses: NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct,\n chainIds: optional(array(NonEip155ChainIdStruct)) as unknown as Struct<\n Infer<typeof NonEip155ChainIdStruct>[] | undefined,\n null\n >,\n value: optional(NonEip155AssetTypeStruct),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link RadioElement} type.\n */\nexport const RadioStruct: Describe<RadioElement> = element('Radio', {\n value: string(),\n children: string(),\n disabled: optional(boolean()),\n});\n\n/**\n * A struct for the {@link RadioGroupElement} type.\n */\nexport const RadioGroupStruct: Describe<RadioGroupElement> = element(\n 'RadioGroup',\n {\n name: string(),\n value: optional(string()),\n children: children([RadioStruct]),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A struct for the {@link FileInputElement} type.\n */\nexport const FileInputStruct: Describe<FileInputElement> = element(\n 'FileInput',\n {\n name: string(),\n accept: nullUnion([optional(array(string()))]),\n compact: optional(boolean()),\n disabled: optional(boolean()),\n },\n);\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input of the Field children.\n */\nconst BOX_INPUT_LEFT = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n] as [typeof BoxChildStruct, typeof InputStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Input + Box of the Field children.\n */\nconst BOX_INPUT_RIGHT = [\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that represent the tuple Box + Input + Box of the Field children.\n */\nconst BOX_INPUT_BOTH = [\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n InputStruct,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n singleChild(lazy(() => BoxChildStruct)),\n] as [typeof BoxChildStruct, typeof InputStruct, typeof BoxChildStruct];\n\n/**\n * A subset of JSX elements that are allowed as single children of the Field component.\n */\nconst FIELD_CHILDREN_ARRAY = [\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n InputStruct,\n DropdownStruct,\n RadioGroupStruct,\n FileInputStruct,\n CheckboxStruct,\n SelectorStruct,\n DateTimePickerStruct,\n] as [\n typeof AssetSelectorStruct,\n typeof AddressInputStruct,\n typeof AccountSelectorStruct,\n typeof InputStruct,\n typeof DropdownStruct,\n typeof RadioGroupStruct,\n typeof FileInputStruct,\n typeof CheckboxStruct,\n typeof SelectorStruct,\n typeof DateTimePickerStruct,\n];\n\n/**\n * A union of the allowed children of the Field component.\n * This is mainly used in the simulator for validation purposes.\n */\nexport const FieldChildUnionStruct = nullUnion([\n ...FIELD_CHILDREN_ARRAY,\n ...BOX_INPUT_LEFT,\n ...BOX_INPUT_RIGHT,\n ...BOX_INPUT_BOTH,\n]);\n\n/**\n * A subset of JSX elements that are allowed as children of the Field component.\n */\nconst FieldChildStruct = selectiveUnion((value) => {\n const isArray = Array.isArray(value);\n if (isArray && value.length === 3) {\n return tuple(BOX_INPUT_BOTH);\n }\n\n if (isArray && value.length === 2) {\n return value[0]?.type === 'Box'\n ? tuple(BOX_INPUT_LEFT)\n : tuple(BOX_INPUT_RIGHT);\n }\n\n return typedUnion(FIELD_CHILDREN_ARRAY);\n}) as unknown as Struct<\n | [InputElement, GenericSnapChildren]\n | [GenericSnapChildren, InputElement]\n | [GenericSnapChildren, InputElement, GenericSnapChildren]\n | DropdownElement\n | RadioGroupElement\n | FileInputElement\n | InputElement\n | CheckboxElement\n | SelectorElement\n | DateTimePickerElement\n | AssetSelectorElement\n | AddressInputElement\n | AccountSelectorElement,\n null\n>;\n\n/**\n * A struct for the {@link FieldElement} type.\n */\nexport const FieldStruct: Describe<FieldElement> = element('Field', {\n label: optional(string()),\n error: optional(string()),\n children: FieldChildStruct,\n});\n\n/**\n * A struct for the {@link BoldElement} type.\n */\nexport const BoldStruct: Describe<BoldElement> = element('Bold', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return ItalicStruct as unknown as Struct<\n SnapElement<JsonObject, 'Italic'>\n >;\n }),\n ]),\n});\n\n/**\n * A struct for the {@link ItalicElement} type.\n */\nexport const ItalicStruct: Describe<ItalicElement> = element('Italic', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return BoldStruct as unknown as Struct<SnapElement<JsonObject, 'Bold'>>;\n }),\n ]),\n});\n\nexport const FormattingStruct: Describe<StandardFormattingElement> = typedUnion(\n [BoldStruct, ItalicStruct],\n);\n\n/**\n * A struct for the {@link AvatarElement} type.\n */\nexport const AvatarStruct = element('Avatar', {\n address: CaipAccountIdStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n}) as unknown as Struct<AvatarElement, null>;\n\nexport const BoxChildrenStruct = children(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n [lazy(() => BoxChildStruct)],\n) as unknown as Struct<SnapsChildren<GenericSnapElement>, null>;\n\n/**\n * A struct for the {@link BoxElement} type.\n */\nexport const BoxStruct: Describe<BoxElement> = element('Box', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n crossAlignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n center: optional(boolean()),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Form component.\n */\nexport const FormChildStruct = BoxChildrenStruct;\n\n/**\n * A struct for the {@link FormElement} type.\n */\nexport const FormStruct: Describe<FormElement> = element('Form', {\n children: FormChildStruct,\n name: string(),\n});\n\nconst FooterButtonStruct = refine(ButtonStruct, 'FooterButton', (value) => {\n if (\n typeof value.props.children === 'string' ||\n typeof value.props.children === 'boolean' ||\n value.props.children === null\n ) {\n return true;\n }\n\n if (Array.isArray(value.props.children)) {\n const hasNonTextElements = value.props.children.some(\n (child) =>\n typeof child !== 'string' &&\n typeof child !== 'boolean' &&\n child !== null,\n );\n\n if (!hasNonTextElements) {\n return true;\n }\n }\n\n return 'Footer buttons may only contain text.';\n});\n\n/**\n * A struct for the {@link SectionElement} type.\n */\nexport const SectionStruct: Describe<SectionElement> = element('Section', {\n children: BoxChildrenStruct,\n direction: optional(nullUnion([literal('horizontal'), literal('vertical')])),\n alignment: optional(\n nullUnion([\n literal('start'),\n literal('center'),\n literal('end'),\n literal('space-between'),\n literal('space-around'),\n ]),\n ),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Footer component.\n * This set should include a single button or a tuple of two buttons.\n */\n\nexport const FooterChildStruct = selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([FooterButtonStruct, FooterButtonStruct]);\n }\n return FooterButtonStruct;\n});\n\n/**\n * A struct for the {@link FooterElement} type.\n */\nexport const FooterStruct: Describe<FooterElement> = element('Footer', {\n children: FooterChildStruct,\n});\n\n/**\n * A struct for the {@link CopyableElement} type.\n */\nexport const CopyableStruct: Describe<CopyableElement> = element('Copyable', {\n value: string(),\n sensitive: optional(boolean()),\n});\n\n/**\n * A struct for the {@link DividerElement} type.\n */\nexport const DividerStruct: Describe<DividerElement> = element('Divider');\n\n/**\n * A struct for the {@link HeadingElement} type.\n */\nexport const HeadingStruct: Describe<HeadingElement> = element('Heading', {\n children: StringElementStruct,\n size: optional(nullUnion([literal('sm'), literal('md'), literal('lg')])),\n});\n\n/**\n * A struct for the {@link LinkElement} type.\n */\nexport const LinkStruct: Describe<LinkElement> = element('Link', {\n href: string(),\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return typedUnion([\n FormattingStruct,\n IconStruct,\n ImageStruct,\n AddressStruct,\n ]);\n }),\n ]),\n});\n\n/**\n * A struct for the {@link SkeletonElement} type.\n */\nexport const SkeletonStruct: Describe<SkeletonElement> = element('Skeleton', {\n width: optional(union([number(), string()])),\n height: optional(union([number(), string()])),\n borderRadius: optional(BorderRadiusStruct),\n});\n\n/**\n * A struct for the {@link TextElement} type.\n */\nexport const TextStruct: Describe<TextElement> = element('Text', {\n children: children([\n selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n SkeletonStruct,\n ]);\n }),\n ]),\n alignment: optional(\n nullUnion([literal('start'), literal('center'), literal('end')]),\n ),\n color: optional(\n nullUnion([\n literal('default'),\n literal('alternative'),\n literal('muted'),\n literal('error'),\n literal('success'),\n literal('warning'),\n ]),\n ),\n size: optional(nullUnion([literal('sm'), literal('md')])),\n fontWeight: optional(\n nullUnion([literal('regular'), literal('medium'), literal('bold')]),\n ),\n});\n\n/**\n * A struct for the {@link ValueElement} type.\n */\nexport const ValueStruct: Describe<ValueElement> = element('Value', {\n value: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n extra: selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n\n return TextStruct;\n }),\n});\n\n/**\n * A subset of JSX elements that are allowed as children of the Tooltip component.\n * This set should include all text components and the Image.\n */\nexport const TooltipChildStruct = selectiveUnion((value) => {\n if (typeof value === 'boolean') {\n return boolean();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n ImageStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A subset of JSX elements that are allowed as content of the Tooltip component.\n * This set should include all text components.\n */\nexport const TooltipContentStruct = selectiveUnion((value) => {\n if (typeof value === 'string') {\n return string();\n }\n return typedUnion([\n TextStruct,\n BoldStruct,\n ItalicStruct,\n LinkStruct,\n IconStruct,\n ]);\n});\n\n/**\n * A struct for the {@link TooltipElement} type.\n */\nexport const TooltipStruct: Describe<TooltipElement> = element('Tooltip', {\n children: nullable(TooltipChildStruct),\n content: TooltipContentStruct,\n});\n\n/**\n * A struct for the {@link BannerElement} type.\n */\nexport const BannerStruct: Describe<BannerElement> = element('Banner', {\n children: children([\n typedUnion([\n TextStruct,\n LinkStruct,\n IconStruct,\n ButtonStruct,\n BoldStruct,\n ItalicStruct,\n SkeletonStruct,\n ]),\n ]),\n title: string(),\n severity: union([\n literal('danger'),\n literal('info'),\n literal('success'),\n literal('warning'),\n ]),\n});\n\n/**\n * A struct for the {@link RowElement} type.\n */\nexport const RowStruct: Describe<RowElement> = element('Row', {\n label: string(),\n children: lazy(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n typedUnion([ValueStruct, BoxChildStruct]),\n ) as unknown as Describe<GenericSnapElement>,\n variant: optional(\n nullUnion([literal('default'), literal('warning'), literal('critical')]),\n ),\n tooltip: optional(string()),\n});\n\n/**\n * A struct for the {@link SpinnerElement} type.\n */\nexport const SpinnerStruct: Describe<SpinnerElement> = element('Spinner');\n\n/**\n * A subset of JSX elements that are allowed as children of the Box component.\n * This set includes all components, except components that need to be nested in\n * another component (e.g., Field must be contained in a Form).\n */\nexport const BoxChildStruct = typedUnion([\n AccountSelectorStruct,\n AddressStruct,\n AssetSelectorStruct,\n AddressInputStruct,\n BoldStruct,\n BoxStruct,\n ButtonStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n DropdownStruct,\n RadioGroupStruct,\n FieldStruct,\n FileInputStruct,\n FormStruct,\n HeadingStruct,\n InputStruct,\n ImageStruct,\n ItalicStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n TooltipStruct,\n CheckboxStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * A struct for the {@link ContainerElement} type.\n */\nexport const ContainerStruct: Describe<ContainerElement> = element(\n 'Container',\n {\n children: selectiveUnion((value) => {\n if (Array.isArray(value)) {\n return tuple([BoxChildStruct, FooterStruct]);\n }\n return BoxChildStruct;\n }) as unknown as Struct<\n [GenericSnapElement, FooterElement] | GenericSnapElement,\n null\n >,\n backgroundColor: optional(\n nullUnion([literal('default'), literal('alternative')]),\n ),\n },\n);\n\n/**\n * For now, the allowed JSX elements at the root are the same as the allowed\n * children of the Box component.\n */\nexport const RootJSXElementStruct = typedUnion([\n BoxChildStruct,\n ContainerStruct,\n]);\n\n/**\n * A struct for the {@link JSXElement} type.\n */\nexport const JSXElementStruct: Describe<JSXElement> = typedUnion([\n AssetSelectorStruct,\n AddressInputStruct,\n AccountSelectorStruct,\n ButtonStruct,\n InputStruct,\n FileInputStruct,\n FieldStruct,\n FormStruct,\n BoldStruct,\n ItalicStruct,\n AddressStruct,\n BoxStruct,\n CopyableStruct,\n DateTimePickerStruct,\n DividerStruct,\n HeadingStruct,\n ImageStruct,\n LinkStruct,\n RowStruct,\n SpinnerStruct,\n TextStruct,\n DropdownStruct,\n OptionStruct,\n RadioGroupStruct,\n RadioStruct,\n ValueStruct,\n TooltipStruct,\n CheckboxStruct,\n FooterStruct,\n ContainerStruct,\n CardStruct,\n IconStruct,\n SelectorStruct,\n SelectorOptionStruct,\n SectionStruct,\n AvatarStruct,\n BannerStruct,\n SkeletonStruct,\n]);\n\n/**\n * Check if a value is a JSX element.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElement(value: unknown): value is JSXElement {\n return is(value, JSXElementStruct);\n}\n\n/**\n * Check if a value is a JSX element, without validating all of its contents.\n * This is useful when you want to validate the structure of a value, but not\n * all the children.\n *\n * This should only be used when you are sure that the value is safe to use,\n * i.e., after using {@link isJSXElement}.\n *\n * @param value - The value to check.\n * @returns True if the value is a JSX element, false otherwise.\n */\nexport function isJSXElementUnsafe(value: unknown): value is JSXElement {\n return (\n isPlainObject(value) &&\n hasProperty(value, 'type') &&\n hasProperty(value, 'props') &&\n hasProperty(value, 'key')\n );\n}\n\n/**\n * Assert that a value is a JSX element.\n *\n * @param value - The value to check.\n * @throws If the value is not a JSX element.\n */\nexport function assertJSXElement(value: unknown): asserts value is JSXElement {\n // TODO: We should use the error parsing utils from `snaps-utils` to improve\n // the error messages. It currently includes colours and potentially other\n // formatting that we might not want to include in the SDK.\n if (!isJSXElement(value)) {\n throw new Error(\n `Expected a JSX element, but received ${JSON.stringify(\n value,\n )}. Please refer to the documentation for the supported JSX elements and their props.`,\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"assets-market-data.cjs","sourceRoot":"","sources":["../../../src/types/handlers/assets-market-data.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, CaipAssetTypeOrId } from '@metamask/utils';\n\n/**\n * The market data for a fungible asset.\n *\n * @property fungible - Indicates that this is a fungible asset.\n * This is always `true` for fungible assets.\n * @property marketCap - The market capitalization of the asset.\n * @property totalVolume - The total volume of the asset.\n * @property circulatingSupply - The circulating supply of the asset.\n * @property allTimeHigh - The all-time high price of the asset.\n * @property allTimeLow - The all-time low price of the asset.\n * @property pricePercentChange - The percentage change in price over different intervals.\n * @property pricePercentChange.interval - The time interval for the price change as a ISO 8601 duration\n * or the string \"all\" to represent the all-time change.\n */\nexport type FungibleAssetMarketData = {\n fungible: true;\n marketCap?: string;\n totalVolume?: string;\n circulatingSupply?: string;\n allTimeHigh?: string;\n allTimeLow?: string;\n pricePercentChange?: {\n [interval: string]: number;\n };\n};\n\n/**\n * An asset value, which includes the asset type and the amount.\n *\n * @property asset - The CAIP-19 asset type or ID of the asset.\n * @property amount - The pice represented as a number in string format.\n */\nexport type AssetValue = {\n asset: CaipAssetTypeOrId;\n amount: string;\n};\n\n/**\n * The market data for a non-fungible asset.\n *\n * @property fungible - Indicates that this is a non-fungible asset.\n * This is always `false` for non-fungible assets.\n * @property lastSale - The last sale price of the asset, if available. See {@link AssetValue}.\n * @property topBid - The top bid price for the asset, if available. See {@link AssetValue}.\n * @property floorPrice - The floor price of the asset, if available. See {@link AssetValue}.\n * @property rarity - The rarity information for the asset, if available.\n * @property rarity.ranking - The ranking of the asset's rarity, if available.\n * @property rarity.ranking.source - The source of the rarity ranking.\n * @property rarity.ranking.rank - The rank of the asset in the rarity ranking.\n * @property rarity.metadata - Additional metadata about the asset's rarity, if available.\n * This is a record of string keys and number values.\n */\nexport type NonFungibleAssetMarketData = {\n fungible: false;\n lastSale?: AssetValue;\n topBid?: AssetValue;\n floorPrice?: AssetValue;\n rarity?: {\n ranking?: {\n source: string;\n rank: number;\n };\n metadata?: Record<string, number>;\n };\n};\n\n/**\n * The market data for an asset, which can be either {@link FungibleAssetMarketData} or {@link NonFungibleAssetMarketData}.\n */\nexport type AssetMarketData =\n | FungibleAssetMarketData\n | NonFungibleAssetMarketData;\n\n/**\n * The arguments for the `onAssetsMarketData` handler.\n *\n * @property assets - An array of objects containing the asset and unit types.\n * @property assets.asset - The CAIP-19 asset type or ID of the asset.\n * @property assets.unit - The CAIP-19 asset type of the unit to use.\n */\nexport type OnAssetsMarketDataArguments = {\n assets: {\n asset: CaipAssetTypeOrId;\n unit: CaipAssetType;\n }[];\n};\n\n/**\n * The `onAssetsMarketData` handler. This is called by MetaMask when querying about market data for a specific asset.\n *\n * @param args - The arguments for the handler.\n * see {@link OnAssetsMarketDataArguments}.\n * @returns The market data for the asset. See {@link OnAssetsMarketDataResponse}.\n */\nexport type OnAssetsMarketDataHandler = (\n args: OnAssetsMarketDataArguments,\n) => Promise<OnAssetsMarketDataResponse>;\n\n/**\n * The response from the market data query, containing market data for the requested assets.\n *\n * @property marketData - A nested object with two CAIP-19 keys that contains a {@link AssetMarketData} object or null.\n */\nexport type OnAssetsMarketDataResponse = {\n marketData: Record<\n CaipAssetTypeOrId,\n Record<CaipAssetType, AssetMarketData | null>\n >;\n};\n"]}
1
+ {"version":3,"file":"assets-market-data.cjs","sourceRoot":"","sources":["../../../src/types/handlers/assets-market-data.ts"],"names":[],"mappings":"","sourcesContent":["import type { CaipAssetType, CaipAssetTypeOrId } from '@metamask/utils';\n\n/**\n * The market data for a fungible asset.\n *\n * @property fungible - Indicates that this is a fungible asset.\n * This is always `true` for fungible assets.\n * @property marketCap - The market capitalization of the asset.\n * @property totalVolume - The total volume of the asset.\n * @property circulatingSupply - The circulating supply of the asset.\n * @property allTimeHigh - The all-time high price of the asset.\n * @property allTimeLow - The all-time low price of the asset.\n * @property pricePercentChange - The percentage change in price over different intervals.\n * @property pricePercentChange.interval - The time interval for the price change as a ISO 8601 duration\n * or the string \"all\" to represent the all-time change.\n */\nexport type FungibleAssetMarketData = {\n fungible: true;\n marketCap?: string;\n totalVolume?: string;\n circulatingSupply?: string;\n allTimeHigh?: string;\n allTimeLow?: string;\n pricePercentChange?: {\n [interval: string]: number;\n };\n};\n\n/**\n * An asset value, which includes the asset type and the amount.\n *\n * @property asset - The CAIP-19 asset type or ID of the asset.\n * @property amount - The price represented as a number in string format.\n */\nexport type AssetValue = {\n asset: CaipAssetTypeOrId;\n amount: string;\n};\n\n/**\n * The market data for a non-fungible asset.\n *\n * @property fungible - Indicates that this is a non-fungible asset.\n * This is always `false` for non-fungible assets.\n * @property lastSale - The last sale price of the asset, if available. See {@link AssetValue}.\n * @property topBid - The top bid price for the asset, if available. See {@link AssetValue}.\n * @property floorPrice - The floor price of the asset, if available. See {@link AssetValue}.\n * @property rarity - The rarity information for the asset, if available.\n * @property rarity.ranking - The ranking of the asset's rarity, if available.\n * @property rarity.ranking.source - The source of the rarity ranking.\n * @property rarity.ranking.rank - The rank of the asset in the rarity ranking.\n * @property rarity.metadata - Additional metadata about the asset's rarity, if available.\n * This is a record of string keys and number values.\n */\nexport type NonFungibleAssetMarketData = {\n fungible: false;\n lastSale?: AssetValue;\n topBid?: AssetValue;\n floorPrice?: AssetValue;\n rarity?: {\n ranking?: {\n source: string;\n rank: number;\n };\n metadata?: Record<string, number>;\n };\n};\n\n/**\n * The market data for an asset, which can be either {@link FungibleAssetMarketData} or {@link NonFungibleAssetMarketData}.\n */\nexport type AssetMarketData =\n | FungibleAssetMarketData\n | NonFungibleAssetMarketData;\n\n/**\n * The arguments for the `onAssetsMarketData` handler.\n *\n * @property assets - An array of objects containing the asset and unit types.\n * @property assets.asset - The CAIP-19 asset type or ID of the asset.\n * @property assets.unit - The CAIP-19 asset type of the unit to use.\n */\nexport type OnAssetsMarketDataArguments = {\n assets: {\n asset: CaipAssetTypeOrId;\n unit: CaipAssetType;\n }[];\n};\n\n/**\n * The `onAssetsMarketData` handler. This is called by MetaMask when querying about market data for a specific asset.\n *\n * @param args - The arguments for the handler.\n * see {@link OnAssetsMarketDataArguments}.\n * @returns The market data for the asset. See {@link OnAssetsMarketDataResponse}.\n */\nexport type OnAssetsMarketDataHandler = (\n args: OnAssetsMarketDataArguments,\n) => Promise<OnAssetsMarketDataResponse>;\n\n/**\n * The response from the market data query, containing market data for the requested assets.\n *\n * @property marketData - A nested object with two CAIP-19 keys that contains a {@link AssetMarketData} object or null.\n */\nexport type OnAssetsMarketDataResponse = {\n marketData: Record<\n CaipAssetTypeOrId,\n Record<CaipAssetType, AssetMarketData | null>\n >;\n};\n"]}
@@ -28,7 +28,7 @@ export type FungibleAssetMarketData = {
28
28
  * An asset value, which includes the asset type and the amount.
29
29
  *
30
30
  * @property asset - The CAIP-19 asset type or ID of the asset.
31
- * @property amount - The pice represented as a number in string format.
31
+ * @property amount - The price represented as a number in string format.
32
32
  */
33
33
  export type AssetValue = {
34
34
  asset: CaipAssetTypeOrId;
@@ -28,7 +28,7 @@ export type FungibleAssetMarketData = {
28
28
  * An asset value, which includes the asset type and the amount.
29
29
  *
30
30
  * @property asset - The CAIP-19 asset type or ID of the asset.
31
- * @property amount - The pice represented as a number in string format.
31
+ * @property amount - The price represented as a number in string format.
32
32
  */
33
33
  export type AssetValue = {
34
34
  asset: CaipAssetTypeOrId;