@metamask-previews/design-system-react-native 0.18.0-preview.ba86146 → 0.22.0-preview.f515a62

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 (452) hide show
  1. package/CHANGELOG.md +76 -18
  2. package/dist/components/AvatarIcon/AvatarIcon.cjs +2 -1
  3. package/dist/components/AvatarIcon/AvatarIcon.cjs.map +1 -1
  4. package/dist/components/AvatarIcon/AvatarIcon.constants.cjs +16 -16
  5. package/dist/components/AvatarIcon/AvatarIcon.constants.cjs.map +1 -1
  6. package/dist/components/AvatarIcon/AvatarIcon.constants.d.cts +1 -1
  7. package/dist/components/AvatarIcon/AvatarIcon.constants.d.cts.map +1 -1
  8. package/dist/components/AvatarIcon/AvatarIcon.constants.d.mts +1 -1
  9. package/dist/components/AvatarIcon/AvatarIcon.constants.d.mts.map +1 -1
  10. package/dist/components/AvatarIcon/AvatarIcon.constants.mjs +1 -1
  11. package/dist/components/AvatarIcon/AvatarIcon.constants.mjs.map +1 -1
  12. package/dist/components/AvatarIcon/AvatarIcon.d.cts.map +1 -1
  13. package/dist/components/AvatarIcon/AvatarIcon.d.mts.map +1 -1
  14. package/dist/components/AvatarIcon/AvatarIcon.mjs +2 -1
  15. package/dist/components/AvatarIcon/AvatarIcon.mjs.map +1 -1
  16. package/dist/components/AvatarIcon/AvatarIcon.types.cjs.map +1 -1
  17. package/dist/components/AvatarIcon/AvatarIcon.types.d.cts +3 -13
  18. package/dist/components/AvatarIcon/AvatarIcon.types.d.cts.map +1 -1
  19. package/dist/components/AvatarIcon/AvatarIcon.types.d.mts +3 -13
  20. package/dist/components/AvatarIcon/AvatarIcon.types.d.mts.map +1 -1
  21. package/dist/components/AvatarIcon/AvatarIcon.types.mjs.map +1 -1
  22. package/dist/components/AvatarIcon/index.cjs +4 -4
  23. package/dist/components/AvatarIcon/index.cjs.map +1 -1
  24. package/dist/components/AvatarIcon/index.d.cts +1 -1
  25. package/dist/components/AvatarIcon/index.d.cts.map +1 -1
  26. package/dist/components/AvatarIcon/index.d.mts +1 -1
  27. package/dist/components/AvatarIcon/index.d.mts.map +1 -1
  28. package/dist/components/AvatarIcon/index.mjs +1 -1
  29. package/dist/components/AvatarIcon/index.mjs.map +1 -1
  30. package/dist/components/BadgeIcon/BadgeIcon.cjs +2 -1
  31. package/dist/components/BadgeIcon/BadgeIcon.cjs.map +1 -1
  32. package/dist/components/BadgeIcon/BadgeIcon.d.cts.map +1 -1
  33. package/dist/components/BadgeIcon/BadgeIcon.d.mts.map +1 -1
  34. package/dist/components/BadgeIcon/BadgeIcon.mjs +2 -1
  35. package/dist/components/BadgeIcon/BadgeIcon.mjs.map +1 -1
  36. package/dist/components/BadgeIcon/BadgeIcon.types.cjs.map +1 -1
  37. package/dist/components/BadgeIcon/BadgeIcon.types.d.cts +5 -7
  38. package/dist/components/BadgeIcon/BadgeIcon.types.d.cts.map +1 -1
  39. package/dist/components/BadgeIcon/BadgeIcon.types.d.mts +5 -7
  40. package/dist/components/BadgeIcon/BadgeIcon.types.d.mts.map +1 -1
  41. package/dist/components/BadgeIcon/BadgeIcon.types.mjs.map +1 -1
  42. package/dist/components/BannerAlert/BannerAlert.constants.cjs +8 -8
  43. package/dist/components/BannerAlert/BannerAlert.constants.cjs.map +1 -1
  44. package/dist/components/BannerAlert/BannerAlert.constants.d.cts +2 -2
  45. package/dist/components/BannerAlert/BannerAlert.constants.d.cts.map +1 -1
  46. package/dist/components/BannerAlert/BannerAlert.constants.d.mts +2 -2
  47. package/dist/components/BannerAlert/BannerAlert.constants.d.mts.map +1 -1
  48. package/dist/components/BannerAlert/BannerAlert.constants.mjs +2 -2
  49. package/dist/components/BannerAlert/BannerAlert.constants.mjs.map +1 -1
  50. package/dist/components/BannerBase/BannerBase.cjs +3 -4
  51. package/dist/components/BannerBase/BannerBase.cjs.map +1 -1
  52. package/dist/components/BannerBase/BannerBase.d.cts.map +1 -1
  53. package/dist/components/BannerBase/BannerBase.d.mts.map +1 -1
  54. package/dist/components/BannerBase/BannerBase.mjs +1 -2
  55. package/dist/components/BannerBase/BannerBase.mjs.map +1 -1
  56. package/dist/components/BottomSheetDialog/BottomSheetDialog.cjs +1 -1
  57. package/dist/components/BottomSheetDialog/BottomSheetDialog.cjs.map +1 -1
  58. package/dist/components/BottomSheetDialog/BottomSheetDialog.mjs +1 -1
  59. package/dist/components/BottomSheetDialog/BottomSheetDialog.mjs.map +1 -1
  60. package/dist/components/Box/Box.cjs +35 -12
  61. package/dist/components/Box/Box.cjs.map +1 -1
  62. package/dist/components/Box/Box.constants.cjs.map +1 -1
  63. package/dist/components/Box/Box.constants.d.cts +1 -1
  64. package/dist/components/Box/Box.constants.d.cts.map +1 -1
  65. package/dist/components/Box/Box.constants.d.mts +1 -1
  66. package/dist/components/Box/Box.constants.d.mts.map +1 -1
  67. package/dist/components/Box/Box.constants.mjs.map +1 -1
  68. package/dist/components/Box/Box.d.cts +4 -2
  69. package/dist/components/Box/Box.d.cts.map +1 -1
  70. package/dist/components/Box/Box.d.mts +4 -2
  71. package/dist/components/Box/Box.d.mts.map +1 -1
  72. package/dist/components/Box/Box.mjs +13 -9
  73. package/dist/components/Box/Box.mjs.map +1 -1
  74. package/dist/components/Box/Box.types.cjs.map +1 -1
  75. package/dist/components/Box/Box.types.d.cts +3 -107
  76. package/dist/components/Box/Box.types.d.cts.map +1 -1
  77. package/dist/components/Box/Box.types.d.mts +3 -107
  78. package/dist/components/Box/Box.types.d.mts.map +1 -1
  79. package/dist/components/Box/Box.types.mjs.map +1 -1
  80. package/dist/components/Box/index.cjs +7 -7
  81. package/dist/components/Box/index.cjs.map +1 -1
  82. package/dist/components/Box/index.d.cts +1 -2
  83. package/dist/components/Box/index.d.cts.map +1 -1
  84. package/dist/components/Box/index.d.mts +1 -2
  85. package/dist/components/Box/index.d.mts.map +1 -1
  86. package/dist/components/Box/index.mjs +1 -1
  87. package/dist/components/Box/index.mjs.map +1 -1
  88. package/dist/components/BoxColumn/BoxColumn.cjs +2 -2
  89. package/dist/components/BoxColumn/BoxColumn.cjs.map +1 -1
  90. package/dist/components/BoxColumn/BoxColumn.d.cts.map +1 -1
  91. package/dist/components/BoxColumn/BoxColumn.d.mts.map +1 -1
  92. package/dist/components/BoxColumn/BoxColumn.mjs +1 -1
  93. package/dist/components/BoxColumn/BoxColumn.mjs.map +1 -1
  94. package/dist/components/BoxRow/BoxRow.cjs +2 -2
  95. package/dist/components/BoxRow/BoxRow.cjs.map +1 -1
  96. package/dist/components/BoxRow/BoxRow.d.cts.map +1 -1
  97. package/dist/components/BoxRow/BoxRow.d.mts.map +1 -1
  98. package/dist/components/BoxRow/BoxRow.mjs +1 -1
  99. package/dist/components/BoxRow/BoxRow.mjs.map +1 -1
  100. package/dist/components/Button/Button.cjs +6 -6
  101. package/dist/components/Button/Button.cjs.map +1 -1
  102. package/dist/components/Button/Button.d.cts.map +1 -1
  103. package/dist/components/Button/Button.d.mts.map +1 -1
  104. package/dist/components/Button/Button.mjs +1 -1
  105. package/dist/components/Button/Button.mjs.map +1 -1
  106. package/dist/components/Button/Button.types.cjs.map +1 -1
  107. package/dist/components/Button/Button.types.d.cts +2 -7
  108. package/dist/components/Button/Button.types.d.cts.map +1 -1
  109. package/dist/components/Button/Button.types.d.mts +2 -7
  110. package/dist/components/Button/Button.types.d.mts.map +1 -1
  111. package/dist/components/Button/Button.types.mjs.map +1 -1
  112. package/dist/components/Button/index.cjs +3 -3
  113. package/dist/components/Button/index.cjs.map +1 -1
  114. package/dist/components/Button/index.d.cts +1 -1
  115. package/dist/components/Button/index.d.cts.map +1 -1
  116. package/dist/components/Button/index.d.mts +1 -1
  117. package/dist/components/Button/index.d.mts.map +1 -1
  118. package/dist/components/Button/index.mjs +1 -1
  119. package/dist/components/Button/index.mjs.map +1 -1
  120. package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.cjs +2 -0
  121. package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.cjs.map +1 -1
  122. package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.d.cts.map +1 -1
  123. package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.d.mts.map +1 -1
  124. package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.mjs +2 -0
  125. package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.mjs.map +1 -1
  126. package/dist/components/Button/variants/ButtonPrimary/index.cjs +1 -3
  127. package/dist/components/Button/variants/ButtonPrimary/index.cjs.map +1 -1
  128. package/dist/components/Button/variants/ButtonPrimary/index.d.cts +0 -1
  129. package/dist/components/Button/variants/ButtonPrimary/index.d.cts.map +1 -1
  130. package/dist/components/Button/variants/ButtonPrimary/index.d.mts +0 -1
  131. package/dist/components/Button/variants/ButtonPrimary/index.d.mts.map +1 -1
  132. package/dist/components/Button/variants/ButtonPrimary/index.mjs +0 -1
  133. package/dist/components/Button/variants/ButtonPrimary/index.mjs.map +1 -1
  134. package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.cjs +2 -0
  135. package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.cjs.map +1 -1
  136. package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.d.cts.map +1 -1
  137. package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.d.mts.map +1 -1
  138. package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.mjs +2 -0
  139. package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.mjs.map +1 -1
  140. package/dist/components/Button/variants/ButtonSecondary/index.cjs +1 -3
  141. package/dist/components/Button/variants/ButtonSecondary/index.cjs.map +1 -1
  142. package/dist/components/Button/variants/ButtonSecondary/index.d.cts +0 -1
  143. package/dist/components/Button/variants/ButtonSecondary/index.d.cts.map +1 -1
  144. package/dist/components/Button/variants/ButtonSecondary/index.d.mts +0 -1
  145. package/dist/components/Button/variants/ButtonSecondary/index.d.mts.map +1 -1
  146. package/dist/components/Button/variants/ButtonSecondary/index.mjs +0 -1
  147. package/dist/components/Button/variants/ButtonSecondary/index.mjs.map +1 -1
  148. package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.cjs +4 -3
  149. package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.cjs.map +1 -1
  150. package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.d.cts.map +1 -1
  151. package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.d.mts.map +1 -1
  152. package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.mjs +4 -3
  153. package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.mjs.map +1 -1
  154. package/dist/components/Button/variants/ButtonTertiary/index.cjs +1 -3
  155. package/dist/components/Button/variants/ButtonTertiary/index.cjs.map +1 -1
  156. package/dist/components/Button/variants/ButtonTertiary/index.d.cts +0 -1
  157. package/dist/components/Button/variants/ButtonTertiary/index.d.cts.map +1 -1
  158. package/dist/components/Button/variants/ButtonTertiary/index.d.mts +0 -1
  159. package/dist/components/Button/variants/ButtonTertiary/index.d.mts.map +1 -1
  160. package/dist/components/Button/variants/ButtonTertiary/index.mjs +0 -1
  161. package/dist/components/Button/variants/ButtonTertiary/index.mjs.map +1 -1
  162. package/dist/components/ButtonBase/ButtonBase.cjs +2 -2
  163. package/dist/components/ButtonBase/ButtonBase.cjs.map +1 -1
  164. package/dist/components/ButtonBase/ButtonBase.constants.cjs +4 -4
  165. package/dist/components/ButtonBase/ButtonBase.constants.cjs.map +1 -1
  166. package/dist/components/ButtonBase/ButtonBase.constants.d.cts +1 -1
  167. package/dist/components/ButtonBase/ButtonBase.constants.d.cts.map +1 -1
  168. package/dist/components/ButtonBase/ButtonBase.constants.d.mts +1 -1
  169. package/dist/components/ButtonBase/ButtonBase.constants.d.mts.map +1 -1
  170. package/dist/components/ButtonBase/ButtonBase.constants.mjs +1 -1
  171. package/dist/components/ButtonBase/ButtonBase.constants.mjs.map +1 -1
  172. package/dist/components/ButtonBase/ButtonBase.d.cts.map +1 -1
  173. package/dist/components/ButtonBase/ButtonBase.d.mts.map +1 -1
  174. package/dist/components/ButtonBase/ButtonBase.mjs +1 -1
  175. package/dist/components/ButtonBase/ButtonBase.mjs.map +1 -1
  176. package/dist/components/ButtonBase/ButtonBase.types.cjs.map +1 -1
  177. package/dist/components/ButtonBase/ButtonBase.types.d.cts +3 -32
  178. package/dist/components/ButtonBase/ButtonBase.types.d.cts.map +1 -1
  179. package/dist/components/ButtonBase/ButtonBase.types.d.mts +3 -32
  180. package/dist/components/ButtonBase/ButtonBase.types.d.mts.map +1 -1
  181. package/dist/components/ButtonBase/ButtonBase.types.mjs.map +1 -1
  182. package/dist/components/ButtonBase/index.cjs +2 -2
  183. package/dist/components/ButtonBase/index.cjs.map +1 -1
  184. package/dist/components/ButtonBase/index.d.cts +1 -1
  185. package/dist/components/ButtonBase/index.d.cts.map +1 -1
  186. package/dist/components/ButtonBase/index.d.mts +1 -1
  187. package/dist/components/ButtonBase/index.d.mts.map +1 -1
  188. package/dist/components/ButtonBase/index.mjs +1 -1
  189. package/dist/components/ButtonBase/index.mjs.map +1 -1
  190. package/dist/components/ButtonHero/index.cjs +2 -2
  191. package/dist/components/ButtonHero/index.cjs.map +1 -1
  192. package/dist/components/ButtonHero/index.d.cts +1 -1
  193. package/dist/components/ButtonHero/index.d.cts.map +1 -1
  194. package/dist/components/ButtonHero/index.d.mts +1 -1
  195. package/dist/components/ButtonHero/index.d.mts.map +1 -1
  196. package/dist/components/ButtonHero/index.mjs +1 -1
  197. package/dist/components/ButtonHero/index.mjs.map +1 -1
  198. package/dist/components/ButtonIcon/ButtonIcon.cjs +6 -6
  199. package/dist/components/ButtonIcon/ButtonIcon.cjs.map +1 -1
  200. package/dist/components/ButtonIcon/ButtonIcon.constants.cjs +7 -8
  201. package/dist/components/ButtonIcon/ButtonIcon.constants.cjs.map +1 -1
  202. package/dist/components/ButtonIcon/ButtonIcon.constants.d.cts +1 -2
  203. package/dist/components/ButtonIcon/ButtonIcon.constants.d.cts.map +1 -1
  204. package/dist/components/ButtonIcon/ButtonIcon.constants.d.mts +1 -2
  205. package/dist/components/ButtonIcon/ButtonIcon.constants.d.mts.map +1 -1
  206. package/dist/components/ButtonIcon/ButtonIcon.constants.mjs +1 -2
  207. package/dist/components/ButtonIcon/ButtonIcon.constants.mjs.map +1 -1
  208. package/dist/components/ButtonIcon/ButtonIcon.d.cts.map +1 -1
  209. package/dist/components/ButtonIcon/ButtonIcon.d.mts.map +1 -1
  210. package/dist/components/ButtonIcon/ButtonIcon.mjs +1 -1
  211. package/dist/components/ButtonIcon/ButtonIcon.mjs.map +1 -1
  212. package/dist/components/ButtonIcon/ButtonIcon.types.cjs.map +1 -1
  213. package/dist/components/ButtonIcon/ButtonIcon.types.d.cts +3 -26
  214. package/dist/components/ButtonIcon/ButtonIcon.types.d.cts.map +1 -1
  215. package/dist/components/ButtonIcon/ButtonIcon.types.d.mts +3 -26
  216. package/dist/components/ButtonIcon/ButtonIcon.types.d.mts.map +1 -1
  217. package/dist/components/ButtonIcon/ButtonIcon.types.mjs.map +1 -1
  218. package/dist/components/ButtonIcon/index.cjs +3 -3
  219. package/dist/components/ButtonIcon/index.cjs.map +1 -1
  220. package/dist/components/ButtonIcon/index.d.cts +1 -1
  221. package/dist/components/ButtonIcon/index.d.cts.map +1 -1
  222. package/dist/components/ButtonIcon/index.d.mts +1 -1
  223. package/dist/components/ButtonIcon/index.d.mts.map +1 -1
  224. package/dist/components/ButtonIcon/index.mjs +1 -1
  225. package/dist/components/ButtonIcon/index.mjs.map +1 -1
  226. package/dist/components/Icon/Icon.assets.cjs +284 -283
  227. package/dist/components/Icon/Icon.assets.cjs.map +1 -1
  228. package/dist/components/Icon/Icon.assets.d.cts.map +1 -1
  229. package/dist/components/Icon/Icon.assets.d.mts.map +1 -1
  230. package/dist/components/Icon/Icon.assets.mjs +284 -283
  231. package/dist/components/Icon/Icon.assets.mjs.map +1 -1
  232. package/dist/components/Icon/Icon.cjs +1 -2
  233. package/dist/components/Icon/Icon.cjs.map +1 -1
  234. package/dist/components/Icon/Icon.d.cts.map +1 -1
  235. package/dist/components/Icon/Icon.d.mts.map +1 -1
  236. package/dist/components/Icon/Icon.mjs +1 -2
  237. package/dist/components/Icon/Icon.mjs.map +1 -1
  238. package/dist/components/Icon/Icon.types.cjs.map +1 -1
  239. package/dist/components/Icon/Icon.types.d.cts +2 -19
  240. package/dist/components/Icon/Icon.types.d.cts.map +1 -1
  241. package/dist/components/Icon/Icon.types.d.mts +2 -19
  242. package/dist/components/Icon/Icon.types.d.mts.map +1 -1
  243. package/dist/components/Icon/Icon.types.mjs.map +1 -1
  244. package/dist/components/Icon/assets/after-hours.svg +1 -1
  245. package/dist/components/Icon/assets/telegram.svg +3 -0
  246. package/dist/components/Input/Input.cjs +2 -2
  247. package/dist/components/Input/Input.cjs.map +1 -1
  248. package/dist/components/Input/Input.d.cts +1 -1
  249. package/dist/components/Input/Input.d.mts +1 -1
  250. package/dist/components/Input/Input.mjs +2 -2
  251. package/dist/components/Input/Input.mjs.map +1 -1
  252. package/dist/components/Input/Input.types.cjs.map +1 -1
  253. package/dist/components/Input/Input.types.d.cts +1 -1
  254. package/dist/components/Input/Input.types.d.mts +1 -1
  255. package/dist/components/Input/Input.types.mjs.map +1 -1
  256. package/dist/components/KeyValueColumn/KeyValueColumn.cjs +2 -2
  257. package/dist/components/KeyValueColumn/KeyValueColumn.cjs.map +1 -1
  258. package/dist/components/KeyValueColumn/KeyValueColumn.d.cts.map +1 -1
  259. package/dist/components/KeyValueColumn/KeyValueColumn.d.mts.map +1 -1
  260. package/dist/components/KeyValueColumn/KeyValueColumn.mjs +2 -2
  261. package/dist/components/KeyValueColumn/KeyValueColumn.mjs.map +1 -1
  262. package/dist/components/KeyValueRow/KeyValueRow.cjs +2 -2
  263. package/dist/components/KeyValueRow/KeyValueRow.cjs.map +1 -1
  264. package/dist/components/KeyValueRow/KeyValueRow.d.cts.map +1 -1
  265. package/dist/components/KeyValueRow/KeyValueRow.d.mts.map +1 -1
  266. package/dist/components/KeyValueRow/KeyValueRow.mjs +2 -2
  267. package/dist/components/KeyValueRow/KeyValueRow.mjs.map +1 -1
  268. package/dist/components/TabEmptyState/TabEmptyState.cjs +1 -1
  269. package/dist/components/TabEmptyState/TabEmptyState.cjs.map +1 -1
  270. package/dist/components/TabEmptyState/TabEmptyState.d.cts.map +1 -1
  271. package/dist/components/TabEmptyState/TabEmptyState.d.mts.map +1 -1
  272. package/dist/components/TabEmptyState/TabEmptyState.mjs +1 -1
  273. package/dist/components/TabEmptyState/TabEmptyState.mjs.map +1 -1
  274. package/dist/components/Tag/Tag.cjs +45 -0
  275. package/dist/components/Tag/Tag.cjs.map +1 -0
  276. package/dist/components/Tag/Tag.constants.cjs +27 -0
  277. package/dist/components/Tag/Tag.constants.cjs.map +1 -0
  278. package/dist/components/Tag/Tag.constants.d.cts +6 -0
  279. package/dist/components/Tag/Tag.constants.d.cts.map +1 -0
  280. package/dist/components/Tag/Tag.constants.d.mts +6 -0
  281. package/dist/components/Tag/Tag.constants.d.mts.map +1 -0
  282. package/dist/components/Tag/Tag.constants.mjs +24 -0
  283. package/dist/components/Tag/Tag.constants.mjs.map +1 -0
  284. package/dist/components/Tag/Tag.d.cts +4 -0
  285. package/dist/components/Tag/Tag.d.cts.map +1 -0
  286. package/dist/components/Tag/Tag.d.mts +4 -0
  287. package/dist/components/Tag/Tag.d.mts.map +1 -0
  288. package/dist/components/Tag/Tag.mjs +45 -0
  289. package/dist/components/Tag/Tag.mjs.map +1 -0
  290. package/dist/components/Tag/Tag.types.cjs +3 -0
  291. package/dist/components/Tag/Tag.types.cjs.map +1 -0
  292. package/dist/components/Tag/Tag.types.d.cts +38 -0
  293. package/dist/components/Tag/Tag.types.d.cts.map +1 -0
  294. package/dist/components/Tag/Tag.types.d.mts +38 -0
  295. package/dist/components/Tag/Tag.types.d.mts.map +1 -0
  296. package/dist/components/Tag/Tag.types.mjs +2 -0
  297. package/dist/components/Tag/Tag.types.mjs.map +1 -0
  298. package/dist/components/Tag/index.cjs +8 -0
  299. package/dist/components/Tag/index.cjs.map +1 -0
  300. package/dist/components/Tag/index.d.cts +4 -0
  301. package/dist/components/Tag/index.d.cts.map +1 -0
  302. package/dist/components/Tag/index.d.mts +4 -0
  303. package/dist/components/Tag/index.d.mts.map +1 -0
  304. package/dist/components/Tag/index.mjs +3 -0
  305. package/dist/components/Tag/index.mjs.map +1 -0
  306. package/dist/components/TextField/TextField.cjs +10 -30
  307. package/dist/components/TextField/TextField.cjs.map +1 -1
  308. package/dist/components/TextField/TextField.d.cts +159 -7
  309. package/dist/components/TextField/TextField.d.cts.map +1 -1
  310. package/dist/components/TextField/TextField.d.mts +159 -7
  311. package/dist/components/TextField/TextField.d.mts.map +1 -1
  312. package/dist/components/TextField/TextField.mjs +12 -32
  313. package/dist/components/TextField/TextField.mjs.map +1 -1
  314. package/dist/components/TextField/TextField.types.cjs.map +1 -1
  315. package/dist/components/TextField/TextField.types.d.cts +41 -16
  316. package/dist/components/TextField/TextField.types.d.cts.map +1 -1
  317. package/dist/components/TextField/TextField.types.d.mts +41 -16
  318. package/dist/components/TextField/TextField.types.d.mts.map +1 -1
  319. package/dist/components/TextField/TextField.types.mjs.map +1 -1
  320. package/dist/components/TextFieldSearch/TextFieldSearch.cjs.map +1 -1
  321. package/dist/components/TextFieldSearch/TextFieldSearch.d.cts +160 -8
  322. package/dist/components/TextFieldSearch/TextFieldSearch.d.cts.map +1 -1
  323. package/dist/components/TextFieldSearch/TextFieldSearch.d.mts +160 -8
  324. package/dist/components/TextFieldSearch/TextFieldSearch.d.mts.map +1 -1
  325. package/dist/components/TextFieldSearch/TextFieldSearch.mjs.map +1 -1
  326. package/dist/components/TitleHub/TitleHub.cjs +65 -0
  327. package/dist/components/TitleHub/TitleHub.cjs.map +1 -0
  328. package/dist/components/TitleHub/TitleHub.d.cts +26 -0
  329. package/dist/components/TitleHub/TitleHub.d.cts.map +1 -0
  330. package/dist/components/TitleHub/TitleHub.d.mts +26 -0
  331. package/dist/components/TitleHub/TitleHub.d.mts.map +1 -0
  332. package/dist/components/TitleHub/TitleHub.mjs +65 -0
  333. package/dist/components/TitleHub/TitleHub.mjs.map +1 -0
  334. package/dist/components/TitleHub/TitleHub.types.cjs +3 -0
  335. package/dist/components/TitleHub/TitleHub.types.cjs.map +1 -0
  336. package/dist/components/TitleHub/TitleHub.types.d.cts +39 -0
  337. package/dist/components/TitleHub/TitleHub.types.d.cts.map +1 -0
  338. package/dist/components/TitleHub/TitleHub.types.d.mts +39 -0
  339. package/dist/components/TitleHub/TitleHub.types.d.mts.map +1 -0
  340. package/dist/components/TitleHub/TitleHub.types.mjs +2 -0
  341. package/dist/components/TitleHub/TitleHub.types.mjs.map +1 -0
  342. package/dist/components/TitleHub/index.cjs +6 -0
  343. package/dist/components/TitleHub/index.cjs.map +1 -0
  344. package/dist/components/TitleHub/index.d.cts +4 -0
  345. package/dist/components/TitleHub/index.d.cts.map +1 -0
  346. package/dist/components/TitleHub/index.d.mts +4 -0
  347. package/dist/components/TitleHub/index.d.mts.map +1 -0
  348. package/dist/components/TitleHub/index.mjs +2 -0
  349. package/dist/components/TitleHub/index.mjs.map +1 -0
  350. package/dist/components/TitleStandard/TitleStandard.cjs +58 -0
  351. package/dist/components/TitleStandard/TitleStandard.cjs.map +1 -0
  352. package/dist/components/TitleStandard/TitleStandard.d.cts +23 -0
  353. package/dist/components/TitleStandard/TitleStandard.d.cts.map +1 -0
  354. package/dist/components/TitleStandard/TitleStandard.d.mts +23 -0
  355. package/dist/components/TitleStandard/TitleStandard.d.mts.map +1 -0
  356. package/dist/components/TitleStandard/TitleStandard.mjs +58 -0
  357. package/dist/components/TitleStandard/TitleStandard.mjs.map +1 -0
  358. package/dist/components/TitleStandard/TitleStandard.types.cjs +3 -0
  359. package/dist/components/TitleStandard/TitleStandard.types.cjs.map +1 -0
  360. package/dist/components/TitleStandard/TitleStandard.types.d.cts +31 -0
  361. package/dist/components/TitleStandard/TitleStandard.types.d.cts.map +1 -0
  362. package/dist/components/TitleStandard/TitleStandard.types.d.mts +31 -0
  363. package/dist/components/TitleStandard/TitleStandard.types.d.mts.map +1 -0
  364. package/dist/components/TitleStandard/TitleStandard.types.mjs +2 -0
  365. package/dist/components/TitleStandard/TitleStandard.types.mjs.map +1 -0
  366. package/dist/components/TitleStandard/index.cjs +6 -0
  367. package/dist/components/TitleStandard/index.cjs.map +1 -0
  368. package/dist/components/TitleStandard/index.d.cts +3 -0
  369. package/dist/components/TitleStandard/index.d.cts.map +1 -0
  370. package/dist/components/TitleStandard/index.d.mts +3 -0
  371. package/dist/components/TitleStandard/index.d.mts.map +1 -0
  372. package/dist/components/TitleStandard/index.mjs +2 -0
  373. package/dist/components/TitleStandard/index.mjs.map +1 -0
  374. package/dist/components/TitleSubpage/TitleSubpage.cjs +85 -0
  375. package/dist/components/TitleSubpage/TitleSubpage.cjs.map +1 -0
  376. package/dist/components/TitleSubpage/TitleSubpage.d.cts +30 -0
  377. package/dist/components/TitleSubpage/TitleSubpage.d.cts.map +1 -0
  378. package/dist/components/TitleSubpage/TitleSubpage.d.mts +30 -0
  379. package/dist/components/TitleSubpage/TitleSubpage.d.mts.map +1 -0
  380. package/dist/components/TitleSubpage/TitleSubpage.mjs +85 -0
  381. package/dist/components/TitleSubpage/TitleSubpage.mjs.map +1 -0
  382. package/dist/components/TitleSubpage/TitleSubpage.types.cjs +3 -0
  383. package/dist/components/TitleSubpage/TitleSubpage.types.cjs.map +1 -0
  384. package/dist/components/TitleSubpage/TitleSubpage.types.d.cts +44 -0
  385. package/dist/components/TitleSubpage/TitleSubpage.types.d.cts.map +1 -0
  386. package/dist/components/TitleSubpage/TitleSubpage.types.d.mts +44 -0
  387. package/dist/components/TitleSubpage/TitleSubpage.types.d.mts.map +1 -0
  388. package/dist/components/TitleSubpage/TitleSubpage.types.mjs +2 -0
  389. package/dist/components/TitleSubpage/TitleSubpage.types.mjs.map +1 -0
  390. package/dist/components/TitleSubpage/index.cjs +6 -0
  391. package/dist/components/TitleSubpage/index.cjs.map +1 -0
  392. package/dist/components/TitleSubpage/index.d.cts +3 -0
  393. package/dist/components/TitleSubpage/index.d.cts.map +1 -0
  394. package/dist/components/TitleSubpage/index.d.mts +3 -0
  395. package/dist/components/TitleSubpage/index.d.mts.map +1 -0
  396. package/dist/components/TitleSubpage/index.mjs +2 -0
  397. package/dist/components/TitleSubpage/index.mjs.map +1 -0
  398. package/dist/components/Toast/Toast.cjs +29 -142
  399. package/dist/components/Toast/Toast.cjs.map +1 -1
  400. package/dist/components/Toast/Toast.d.cts +15 -3
  401. package/dist/components/Toast/Toast.d.cts.map +1 -1
  402. package/dist/components/Toast/Toast.d.mts +15 -3
  403. package/dist/components/Toast/Toast.d.mts.map +1 -1
  404. package/dist/components/Toast/Toast.mjs +30 -143
  405. package/dist/components/Toast/Toast.mjs.map +1 -1
  406. package/dist/components/Toast/Toast.types.cjs.map +1 -1
  407. package/dist/components/Toast/Toast.types.d.cts +1 -8
  408. package/dist/components/Toast/Toast.types.d.cts.map +1 -1
  409. package/dist/components/Toast/Toast.types.d.mts +1 -8
  410. package/dist/components/Toast/Toast.types.d.mts.map +1 -1
  411. package/dist/components/Toast/Toast.types.mjs.map +1 -1
  412. package/dist/components/Toast/ToastView.cjs +174 -0
  413. package/dist/components/Toast/ToastView.cjs.map +1 -0
  414. package/dist/components/Toast/ToastView.d.cts +7 -0
  415. package/dist/components/Toast/ToastView.d.cts.map +1 -0
  416. package/dist/components/Toast/ToastView.d.mts +7 -0
  417. package/dist/components/Toast/ToastView.d.mts.map +1 -0
  418. package/dist/components/Toast/ToastView.mjs +155 -0
  419. package/dist/components/Toast/ToastView.mjs.map +1 -0
  420. package/dist/components/Toast/index.cjs +1 -4
  421. package/dist/components/Toast/index.cjs.map +1 -1
  422. package/dist/components/Toast/index.d.cts +1 -2
  423. package/dist/components/Toast/index.d.cts.map +1 -1
  424. package/dist/components/Toast/index.d.mts +1 -2
  425. package/dist/components/Toast/index.d.mts.map +1 -1
  426. package/dist/components/Toast/index.mjs +0 -1
  427. package/dist/components/Toast/index.mjs.map +1 -1
  428. package/dist/components/index.cjs +11 -4
  429. package/dist/components/index.cjs.map +1 -1
  430. package/dist/components/index.d.cts +10 -2
  431. package/dist/components/index.d.cts.map +1 -1
  432. package/dist/components/index.d.mts +10 -2
  433. package/dist/components/index.d.mts.map +1 -1
  434. package/dist/components/index.mjs +5 -1
  435. package/dist/components/index.mjs.map +1 -1
  436. package/dist/types/index.cjs +8 -596
  437. package/dist/types/index.cjs.map +1 -1
  438. package/dist/types/index.d.cts +4 -586
  439. package/dist/types/index.d.cts.map +1 -1
  440. package/dist/types/index.d.mts +4 -586
  441. package/dist/types/index.d.mts.map +1 -1
  442. package/dist/types/index.mjs +4 -599
  443. package/dist/types/index.mjs.map +1 -1
  444. package/package.json +6 -7
  445. package/dist/components/Toast/Toast.context.cjs +0 -40
  446. package/dist/components/Toast/Toast.context.cjs.map +0 -1
  447. package/dist/components/Toast/Toast.context.d.cts +0 -7
  448. package/dist/components/Toast/Toast.context.d.cts.map +0 -1
  449. package/dist/components/Toast/Toast.context.d.mts +0 -7
  450. package/dist/components/Toast/Toast.context.d.mts.map +0 -1
  451. package/dist/components/Toast/Toast.context.mjs +0 -20
  452. package/dist/components/Toast/Toast.context.mjs.map +0 -1
@@ -5,151 +5,38 @@ function $importDefault(module) {
5
5
  return module;
6
6
  }
7
7
  // Third party dependencies.
8
- import { useTailwind } from "@metamask-previews/design-system-twrnc-preset";
9
- import $React, { forwardRef, isValidElement, useImperativeHandle, useMemo, useRef, useState } from "react";
8
+ import $React, { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
10
9
  const React = $importDefault($React);
11
- import { Dimensions, View } from "react-native/index.js";
12
- import Animated, { cancelAnimation, runOnJS, useAnimatedStyle, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
13
- import { useSafeAreaInsets } from "react-native-safe-area-context";
14
- // External dependencies.
15
- import { AvatarAccount, AvatarAccountSize } from "../AvatarAccount/index.mjs";
16
- import { AvatarFavicon, AvatarFaviconSize } from "../AvatarFavicon/index.mjs";
17
- import { AvatarIcon, AvatarIconSize } from "../AvatarIcon/index.mjs";
18
- import { AvatarNetwork, AvatarNetworkSize } from "../AvatarNetwork/index.mjs";
19
- import { Button, ButtonVariant } from "../Button/index.mjs";
20
- import { ButtonIcon } from "../ButtonIcon/index.mjs";
21
- import { Text, TextVariant, TextColor, FontWeight } from "../Text/index.mjs";
22
- // Internal dependencies.
23
- import { TOAST_VISIBILITY_DURATION, TOAST_ANIMATION_DURATION, TOAST_BOTTOM_PADDING } from "./Toast.constants.mjs";
24
- import { ToastVariant } from "./Toast.types.mjs";
25
- const screenHeight = Dimensions.get('window').height;
26
- export const Toast = forwardRef(({ twClassName, labelsContainerProps, ...props }, ref) => {
27
- const tw = useTailwind();
28
- const [toastOptions, setToastOptions] = useState(undefined);
29
- const replacementTimerRef = useRef(null);
30
- const { bottom: bottomNotchSpacing } = useSafeAreaInsets();
31
- const translateYProgress = useSharedValue(screenHeight);
32
- const bottomOffset = toastOptions?.bottomOffset ?? 0;
33
- const animatedStyle = useAnimatedStyle(() => ({
34
- transform: [{ translateY: translateYProgress.value - bottomOffset }],
35
- }));
36
- const baseStyle = useMemo(() => [
37
- tw.style('absolute left-4 right-4 bottom-0 bg-background-section border border-border-muted rounded-xl p-3 flex-row items-center', twClassName),
38
- animatedStyle,
39
- ], [tw, animatedStyle, twClassName]);
40
- const resetState = () => setToastOptions(undefined);
41
- const showToast = (options) => {
42
- let timeoutDuration = 0;
43
- if (toastOptions) {
44
- cancelAnimation(translateYProgress);
45
- timeoutDuration = 100;
46
- // Clear existing toast state to prevent animation conflicts when showing rapid successive toasts
47
- setToastOptions(undefined);
48
- }
49
- if (replacementTimerRef.current !== null) {
50
- clearTimeout(replacementTimerRef.current);
51
- }
52
- replacementTimerRef.current = setTimeout(() => {
53
- replacementTimerRef.current = null;
54
- setToastOptions(options);
55
- }, timeoutDuration);
56
- };
57
- const closeToast = () => {
58
- if (replacementTimerRef.current !== null) {
59
- clearTimeout(replacementTimerRef.current);
60
- replacementTimerRef.current = null;
61
- }
62
- translateYProgress.value = withTiming(screenHeight, { duration: TOAST_ANIMATION_DURATION }, () => {
63
- runOnJS(resetState)();
64
- });
65
- };
10
+ import { ToastView } from "./ToastView.mjs";
11
+ let registeredRef = null;
12
+ const assertRegisteredRef = (method) => {
13
+ if (!registeredRef?.current) {
14
+ throw new Error(`Toast.${method}() called before <Toast /> mounted. Render <Toast /> once at the root of your app.`);
15
+ }
16
+ return registeredRef.current;
17
+ };
18
+ const ToastComponent = forwardRef((props, ref) => {
19
+ const innerRef = useRef(null);
66
20
  useImperativeHandle(ref, () => ({
67
- showToast,
68
- closeToast,
69
- }));
70
- const onAnimatedViewLayout = (e) => {
71
- /* istanbul ignore next - guard only; layout fires when toastOptions is set */
72
- if (toastOptions) {
73
- const { height } = e.nativeEvent.layout;
74
- const translateYToValue = -(TOAST_BOTTOM_PADDING + bottomNotchSpacing);
75
- translateYProgress.value = height;
76
- if (toastOptions.hasNoTimeout) {
77
- translateYProgress.value = withTiming(translateYToValue, {
78
- duration: TOAST_ANIMATION_DURATION,
79
- });
80
- }
81
- else {
82
- translateYProgress.value = withTiming(translateYToValue, { duration: TOAST_ANIMATION_DURATION }, () => {
83
- translateYProgress.value = withDelay(TOAST_VISIBILITY_DURATION, withTiming(height, { duration: TOAST_ANIMATION_DURATION }, runOnJS(resetState)));
84
- });
85
- }
86
- }
87
- };
88
- const renderLabel = (labelOptions) => (<Text variant={TextVariant.BodyMd}>
89
- {labelOptions.map(({ label, isBold }, index) => (<Text key={`toast-label-${index}`} variant={TextVariant.BodyMd} fontWeight={isBold ? FontWeight.Bold : undefined} color={TextColor.TextDefault}>
90
- {label}
91
- </Text>))}
92
- </Text>);
93
- const renderDescription = (descriptionOptions) => descriptionOptions && (<Text variant={TextVariant.BodySm} color={TextColor.TextAlternative} style={tw.style('mt-1')}>
94
- {descriptionOptions.description}
95
- </Text>);
96
- const renderActionButton = (linkButtonOptions) => linkButtonOptions && (<Button variant={ButtonVariant.Secondary} onPress={linkButtonOptions.onPress} style={tw.style('mt-2')}>
97
- {linkButtonOptions.label}
98
- </Button>);
99
- const renderCloseButton = (closeButtonOptions) => {
100
- if (closeButtonOptions && 'iconName' in closeButtonOptions) {
101
- const iconOptions = closeButtonOptions;
102
- return (<ButtonIcon iconName={iconOptions.iconName} onPress={(e) => iconOptions.onPress?.(e)} size={iconOptions.size} isDisabled={iconOptions.isDisabled} twClassName={iconOptions.twClassName} style={iconOptions.style} iconProps={iconOptions.iconProps}/>);
103
- }
104
- return (<Button variant={ButtonVariant.Primary} onPress={(e) => closeButtonOptions?.onPress?.(e)} startIconName={closeButtonOptions?.startIconName} endIconName={closeButtonOptions?.endIconName} style={closeButtonOptions?.style}>
105
- {closeButtonOptions?.children}
106
- </Button>);
107
- };
108
- const renderAvatar = () => {
109
- switch (toastOptions?.variant) {
110
- case ToastVariant.Plain:
111
- return null;
112
- case ToastVariant.Account: {
113
- const { accountAddress, accountAvatarType } = toastOptions;
114
- return (<AvatarAccount address={accountAddress} variant={accountAvatarType} size={AvatarAccountSize.Md} style={tw.style('mr-4')}/>);
115
- }
116
- case ToastVariant.Network: {
117
- const { networkImageSource, networkName } = toastOptions;
118
- return (<AvatarNetwork name={networkName} src={networkImageSource} size={AvatarNetworkSize.Md} style={tw.style('mr-4')}/>);
21
+ showToast: (options) => innerRef.current?.showToast(options),
22
+ closeToast: () => innerRef.current?.closeToast(),
23
+ }), []);
24
+ useEffect(() => {
25
+ registeredRef = innerRef;
26
+ return () => {
27
+ if (registeredRef === innerRef) {
28
+ registeredRef = null;
119
29
  }
120
- case ToastVariant.App: {
121
- const { appIconSource } = toastOptions;
122
- return (<AvatarFavicon src={appIconSource} size={AvatarFaviconSize.Md} style={tw.style('mr-4')}/>);
123
- }
124
- case ToastVariant.Icon: {
125
- const { iconName, severity } = toastOptions;
126
- return (<AvatarIcon iconName={iconName} severity={severity} size={AvatarIconSize.Md} style={tw.style('mr-4')}/>);
127
- }
128
- /* istanbul ignore next - all variants handled above */
129
- default:
130
- return null;
131
- }
132
- };
133
- const renderToastContent = (options) => {
134
- const { labelOptions, descriptionOptions, linkButtonOptions, closeButtonOptions, startAccessory, } = options;
135
- const isStartAccessoryValid = startAccessory !== null &&
136
- startAccessory !== undefined &&
137
- isValidElement(startAccessory);
138
- return (<>
139
- {isStartAccessoryValid ? startAccessory : renderAvatar()}
140
- <View style={tw.style('flex-1 justify-center')} {...labelsContainerProps}>
141
- {renderLabel(labelOptions)}
142
- {renderDescription(descriptionOptions)}
143
- {renderActionButton(linkButtonOptions)}
144
- </View>
145
- {closeButtonOptions ? renderCloseButton(closeButtonOptions) : null}
146
- </>);
147
- };
148
- if (!toastOptions) {
149
- return null;
150
- }
151
- return (<Animated.View onLayout={onAnimatedViewLayout} style={baseStyle} {...props}>
152
- {renderToastContent(toastOptions)}
153
- </Animated.View>);
30
+ };
31
+ }, []);
32
+ return <ToastView ref={innerRef} {...props}/>;
154
33
  });
34
+ ToastComponent.displayName = 'Toast';
35
+ export const Toast = ToastComponent;
36
+ Toast.show = (options) => {
37
+ assertRegisteredRef('show').showToast(options);
38
+ };
39
+ Toast.hide = () => {
40
+ assertRegisteredRef('hide').closeToast();
41
+ };
155
42
  //# sourceMappingURL=Toast.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.mjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"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","sourcesContent":["// Third party dependencies.\nimport { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, {\n forwardRef,\n isValidElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type { LayoutChangeEvent, StyleProp, ViewStyle } from 'react-native';\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedStyle,\n useSharedValue,\n withDelay,\n withTiming,\n} from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\n// External dependencies.\nimport { AvatarAccount, AvatarAccountSize } from '../AvatarAccount';\nimport { AvatarFavicon, AvatarFaviconSize } from '../AvatarFavicon';\nimport { AvatarIcon, AvatarIconSize } from '../AvatarIcon';\nimport { AvatarNetwork, AvatarNetworkSize } from '../AvatarNetwork';\nimport { Button, ButtonVariant } from '../Button';\nimport { ButtonIcon } from '../ButtonIcon';\nimport { Text, TextVariant, TextColor, FontWeight } from '../Text';\n\n// Internal dependencies.\nimport {\n TOAST_VISIBILITY_DURATION,\n TOAST_ANIMATION_DURATION,\n TOAST_BOTTOM_PADDING,\n} from './Toast.constants';\nimport type {\n ToastCloseButtonIconOptions,\n ToastCloseButtonOptions,\n ToastDescriptionOptions,\n ToastLabelOptions,\n ToastLinkButtonOptions,\n ToastOptions,\n ToastProps,\n ToastRef,\n} from './Toast.types';\nimport { ToastVariant } from './Toast.types';\n\nconst screenHeight = Dimensions.get('window').height;\n\nexport const Toast = forwardRef<ToastRef, ToastProps>(\n ({ twClassName, labelsContainerProps, ...props }, ref) => {\n const tw = useTailwind();\n const [toastOptions, setToastOptions] = useState<ToastOptions | undefined>(\n undefined,\n );\n const replacementTimerRef = useRef<ReturnType<typeof setTimeout> | null>(\n null,\n );\n const { bottom: bottomNotchSpacing } = useSafeAreaInsets();\n const translateYProgress = useSharedValue(screenHeight);\n const bottomOffset = toastOptions?.bottomOffset ?? 0;\n const animatedStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: translateYProgress.value - bottomOffset }],\n }));\n const baseStyle: StyleProp<ViewStyle> = useMemo(\n () => [\n tw.style(\n 'absolute left-4 right-4 bottom-0 bg-background-section border border-border-muted rounded-xl p-3 flex-row items-center',\n twClassName,\n ),\n animatedStyle,\n ],\n [tw, animatedStyle, twClassName],\n );\n\n const resetState = () => setToastOptions(undefined);\n\n const showToast = (options: ToastOptions) => {\n let timeoutDuration = 0;\n if (toastOptions) {\n cancelAnimation(translateYProgress);\n timeoutDuration = 100;\n // Clear existing toast state to prevent animation conflicts when showing rapid successive toasts\n setToastOptions(undefined);\n }\n if (replacementTimerRef.current !== null) {\n clearTimeout(replacementTimerRef.current);\n }\n replacementTimerRef.current = setTimeout(() => {\n replacementTimerRef.current = null;\n setToastOptions(options);\n }, timeoutDuration);\n };\n\n const closeToast = () => {\n if (replacementTimerRef.current !== null) {\n clearTimeout(replacementTimerRef.current);\n replacementTimerRef.current = null;\n }\n translateYProgress.value = withTiming(\n screenHeight,\n { duration: TOAST_ANIMATION_DURATION },\n () => {\n runOnJS(resetState)();\n },\n );\n };\n\n useImperativeHandle(ref, () => ({\n showToast,\n closeToast,\n }));\n\n const onAnimatedViewLayout = (e: LayoutChangeEvent) => {\n /* istanbul ignore next - guard only; layout fires when toastOptions is set */\n if (toastOptions) {\n const { height } = e.nativeEvent.layout;\n const translateYToValue = -(TOAST_BOTTOM_PADDING + bottomNotchSpacing);\n\n translateYProgress.value = height;\n\n if (toastOptions.hasNoTimeout) {\n translateYProgress.value = withTiming(translateYToValue, {\n duration: TOAST_ANIMATION_DURATION,\n });\n } else {\n translateYProgress.value = withTiming(\n translateYToValue,\n { duration: TOAST_ANIMATION_DURATION },\n () => {\n translateYProgress.value = withDelay(\n TOAST_VISIBILITY_DURATION,\n withTiming(\n height,\n { duration: TOAST_ANIMATION_DURATION },\n runOnJS(resetState),\n ),\n );\n },\n );\n }\n }\n };\n\n const renderLabel = (labelOptions: ToastLabelOptions) => (\n <Text variant={TextVariant.BodyMd}>\n {labelOptions.map(({ label, isBold }, index) => (\n <Text\n key={`toast-label-${index}`}\n variant={TextVariant.BodyMd}\n fontWeight={isBold ? FontWeight.Bold : undefined}\n color={TextColor.TextDefault}\n >\n {label}\n </Text>\n ))}\n </Text>\n );\n\n const renderDescription = (descriptionOptions?: ToastDescriptionOptions) =>\n descriptionOptions && (\n <Text\n variant={TextVariant.BodySm}\n color={TextColor.TextAlternative}\n style={tw.style('mt-1')}\n >\n {descriptionOptions.description}\n </Text>\n );\n\n const renderActionButton = (linkButtonOptions?: ToastLinkButtonOptions) =>\n linkButtonOptions && (\n <Button\n variant={ButtonVariant.Secondary}\n onPress={linkButtonOptions.onPress}\n style={tw.style('mt-2')}\n >\n {linkButtonOptions.label}\n </Button>\n );\n\n const renderCloseButton = (\n closeButtonOptions?: ToastCloseButtonOptions,\n ) => {\n if (closeButtonOptions && 'iconName' in closeButtonOptions) {\n const iconOptions = closeButtonOptions as ToastCloseButtonIconOptions;\n return (\n <ButtonIcon\n iconName={iconOptions.iconName}\n onPress={(e) => iconOptions.onPress?.(e)}\n size={iconOptions.size}\n isDisabled={iconOptions.isDisabled}\n twClassName={iconOptions.twClassName}\n style={iconOptions.style}\n iconProps={iconOptions.iconProps}\n />\n );\n }\n return (\n <Button\n variant={ButtonVariant.Primary}\n onPress={(e) => closeButtonOptions?.onPress?.(e)}\n startIconName={closeButtonOptions?.startIconName}\n endIconName={closeButtonOptions?.endIconName}\n style={closeButtonOptions?.style}\n >\n {closeButtonOptions?.children}\n </Button>\n );\n };\n\n const renderAvatar = () => {\n switch (toastOptions?.variant) {\n case ToastVariant.Plain:\n return null;\n case ToastVariant.Account: {\n const { accountAddress, accountAvatarType } = toastOptions;\n return (\n <AvatarAccount\n address={accountAddress}\n variant={accountAvatarType}\n size={AvatarAccountSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.Network: {\n const { networkImageSource, networkName } = toastOptions;\n return (\n <AvatarNetwork\n name={networkName}\n src={networkImageSource}\n size={AvatarNetworkSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.App: {\n const { appIconSource } = toastOptions;\n return (\n <AvatarFavicon\n src={appIconSource}\n size={AvatarFaviconSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.Icon: {\n const { iconName, severity } = toastOptions;\n return (\n <AvatarIcon\n iconName={iconName}\n severity={severity}\n size={AvatarIconSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n /* istanbul ignore next - all variants handled above */\n default:\n return null;\n }\n };\n\n const renderToastContent = (options: ToastOptions) => {\n const {\n labelOptions,\n descriptionOptions,\n linkButtonOptions,\n closeButtonOptions,\n startAccessory,\n } = options;\n\n const isStartAccessoryValid =\n startAccessory !== null &&\n startAccessory !== undefined &&\n isValidElement(startAccessory);\n\n return (\n <>\n {isStartAccessoryValid ? startAccessory : renderAvatar()}\n <View\n style={tw.style('flex-1 justify-center')}\n {...labelsContainerProps}\n >\n {renderLabel(labelOptions)}\n {renderDescription(descriptionOptions)}\n {renderActionButton(linkButtonOptions)}\n </View>\n {closeButtonOptions ? renderCloseButton(closeButtonOptions) : null}\n </>\n );\n };\n\n if (!toastOptions) {\n return null;\n }\n\n return (\n <Animated.View\n onLayout={onAnimatedViewLayout}\n style={baseStyle}\n {...props}\n >\n {renderToastContent(toastOptions)}\n </Animated.View>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"Toast.mjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":";;;;;;AAAA,4BAA4B;AAC5B,OAAO,QAAO,EACZ,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,MAAM,EACP,cAAc;;AAKf,OAAO,EAAE,SAAS,EAAE,wBAAoB;AAExC,IAAI,aAAa,GAA+B,IAAI,CAAC;AAErD,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAY,EAAE;IACvD,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,oFAAoF,CACpG,CAAC;KACH;IACD,OAAO,aAAa,CAAC,OAAO,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,UAAU,CAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAW,IAAI,CAAC,CAAC;IAExC,mBAAmB,CACjB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;QAC5D,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE;KACjD,CAAC,EACF,EAAE,CACH,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,GAAG,QAAQ,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,IAAI,aAAa,KAAK,QAAQ,EAAE;gBAC9B,aAAa,GAAG,IAAI,CAAC;aACtB;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC;AAarC,MAAM,CAAC,MAAM,KAAK,GAAG,cAAkC,CAAC;AAExD,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;IACvB,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE;IAChB,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;AAC3C,CAAC,CAAC","sourcesContent":["// Third party dependencies.\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport type { RefObject } from 'react';\n\n// Internal dependencies.\nimport type { ToastOptions, ToastProps, ToastRef } from './Toast.types';\nimport { ToastView } from './ToastView';\n\nlet registeredRef: RefObject<ToastRef> | null = null;\n\nconst assertRegisteredRef = (method: string): ToastRef => {\n if (!registeredRef?.current) {\n throw new Error(\n `Toast.${method}() called before <Toast /> mounted. Render <Toast /> once at the root of your app.`,\n );\n }\n return registeredRef.current;\n};\n\nconst ToastComponent = forwardRef<ToastRef, ToastProps>((props, ref) => {\n const innerRef = useRef<ToastRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n showToast: (options) => innerRef.current?.showToast(options),\n closeToast: () => innerRef.current?.closeToast(),\n }),\n [],\n );\n\n useEffect(() => {\n registeredRef = innerRef;\n return () => {\n if (registeredRef === innerRef) {\n registeredRef = null;\n }\n };\n }, []);\n\n return <ToastView ref={innerRef} {...props} />;\n});\n\nToastComponent.displayName = 'Toast';\n\ntype ToastWithStatics = typeof ToastComponent & {\n /**\n * Show a toast notification. Requires `<Toast />` to be mounted.\n */\n show: (options: ToastOptions) => void;\n /**\n * Hide the currently visible toast, if any.\n */\n hide: () => void;\n};\n\nexport const Toast = ToastComponent as ToastWithStatics;\n\nToast.show = (options) => {\n assertRegisteredRef('show').showToast(options);\n};\n\nToast.hide = () => {\n assertRegisteredRef('hide').closeToast();\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.cjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":";;;AAYA;;GAEG;AACH,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,2BAAW,CAAA;IACX,6BAAa,CAAA;AACf,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB;AA4CD,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;AACf,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC","sourcesContent":["// Third party dependencies.\nimport type { ReactElement } from 'react';\nimport type { ViewProps } from 'react-native';\n\n// External Dependencies.\nimport type { AvatarIconSeverity } from '../../types';\nimport type { AvatarAccountVariant } from '../AvatarAccount';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { IconName } from '../Icon';\nimport type { ImageOrSvgSrc } from '../temp-components/ImageOrSvg';\n\n/**\n * Toast variants.\n */\nexport enum ToastVariant {\n Plain = 'Plain',\n Account = 'Account',\n Network = 'Network',\n App = 'App',\n Icon = 'Icon',\n}\n\n/**\n * Options for the main text in the toast.\n */\nexport type ToastLabelOptions = {\n label: string;\n isBold?: boolean;\n}[];\n\n/**\n * Options for the description text in the toast.\n */\nexport type ToastDescriptionOptions = {\n description: string;\n};\n\n/**\n * Options for displaying a Link in the toast.\n */\nexport type ToastLinkButtonOptions = {\n label: string;\n onPress: () => void;\n};\n\n/**\n * Common toast option shared between all other options.\n */\ntype BaseToastVariants = {\n hasNoTimeout: boolean;\n labelOptions: ToastLabelOptions;\n descriptionOptions?: ToastDescriptionOptions;\n linkButtonOptions?: ToastLinkButtonOptions;\n closeButtonOptions?: ToastCloseButtonOptions;\n startAccessory?: ReactElement;\n bottomOffset?: number;\n};\n\nexport type ToastCloseButtonIconOptions = Omit<ButtonIconProps, 'variant'> & {\n variant: ToastCloseButtonVariant;\n};\n\nexport type ToastCloseButtonOptions = ButtonProps | ToastCloseButtonIconOptions;\n\nexport enum ToastCloseButtonVariant {\n Icon = 'Icon',\n}\n\n/**\n * Plain toast option.\n */\ntype PlainToastOption = {\n variant: ToastVariant.Plain;\n} & BaseToastVariants;\n\n/**\n * Account toast option.\n */\ntype AccountToastOption = {\n variant: ToastVariant.Account;\n accountAddress: string;\n accountAvatarType: AvatarAccountVariant;\n} & BaseToastVariants;\n\n/**\n * Network toast option.\n */\ntype NetworkToastOption = {\n variant: ToastVariant.Network;\n networkName?: string;\n networkImageSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\n/**\n * App toast option.\n */\ntype AppToastOption = {\n variant: ToastVariant.App;\n appIconSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\ntype IconToastOption = {\n variant: ToastVariant.Icon;\n iconName: IconName;\n severity?: AvatarIconSeverity;\n} & BaseToastVariants;\n\n/**\n * Different toast options combined in a union type.\n */\nexport type ToastOptions =\n | PlainToastOption\n | AccountToastOption\n | NetworkToastOption\n | AppToastOption\n | IconToastOption;\n\n/**\n * Toast component reference.\n */\nexport type ToastRef = {\n showToast: (toastOptions: ToastOptions) => void;\n closeToast: () => void;\n};\n\n/**\n * Toast component props.\n * Extends ViewProps to inherit standard React Native props such as testID and accessibilityLabel.\n */\nexport type ToastProps = {\n /**\n * Optional Tailwind CSS classes for the toast container.\n */\n twClassName?: string;\n /**\n * Props spread to the labels container View (e.g., testID for testing).\n */\n labelsContainerProps?: Omit<ViewProps, 'children' | 'style'>;\n} & Omit<ViewProps, 'style'>;\n\n/**\n * Toast context parameters.\n */\nexport type ToastContextParams = {\n toastRef: React.RefObject<ToastRef> | undefined;\n};\n"]}
1
+ {"version":3,"file":"Toast.types.cjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":";;;AAcA;;GAEG;AACH,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,2BAAW,CAAA;IACX,6BAAa,CAAA;AACf,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB;AA4CD,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;AACf,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC","sourcesContent":["// Third party dependencies.\nimport type {\n AvatarIconSeverity,\n IconName,\n} from '@metamask-previews/design-system-shared';\nimport type { ReactElement } from 'react';\nimport type { ViewProps } from 'react-native';\n\n// External Dependencies.\nimport type { AvatarAccountVariant } from '../AvatarAccount';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { ImageOrSvgSrc } from '../temp-components/ImageOrSvg';\n\n/**\n * Toast variants.\n */\nexport enum ToastVariant {\n Plain = 'Plain',\n Account = 'Account',\n Network = 'Network',\n App = 'App',\n Icon = 'Icon',\n}\n\n/**\n * Options for the main text in the toast.\n */\nexport type ToastLabelOptions = {\n label: string;\n isBold?: boolean;\n}[];\n\n/**\n * Options for the description text in the toast.\n */\nexport type ToastDescriptionOptions = {\n description: string;\n};\n\n/**\n * Options for displaying a Link in the toast.\n */\nexport type ToastLinkButtonOptions = {\n label: string;\n onPress: () => void;\n};\n\n/**\n * Common toast option shared between all other options.\n */\ntype BaseToastVariants = {\n hasNoTimeout: boolean;\n labelOptions: ToastLabelOptions;\n descriptionOptions?: ToastDescriptionOptions;\n linkButtonOptions?: ToastLinkButtonOptions;\n closeButtonOptions?: ToastCloseButtonOptions;\n startAccessory?: ReactElement;\n bottomOffset?: number;\n};\n\nexport type ToastCloseButtonIconOptions = Omit<ButtonIconProps, 'variant'> & {\n variant: ToastCloseButtonVariant;\n};\n\nexport type ToastCloseButtonOptions = ButtonProps | ToastCloseButtonIconOptions;\n\nexport enum ToastCloseButtonVariant {\n Icon = 'Icon',\n}\n\n/**\n * Plain toast option.\n */\ntype PlainToastOption = {\n variant: ToastVariant.Plain;\n} & BaseToastVariants;\n\n/**\n * Account toast option.\n */\ntype AccountToastOption = {\n variant: ToastVariant.Account;\n accountAddress: string;\n accountAvatarType: AvatarAccountVariant;\n} & BaseToastVariants;\n\n/**\n * Network toast option.\n */\ntype NetworkToastOption = {\n variant: ToastVariant.Network;\n networkName?: string;\n networkImageSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\n/**\n * App toast option.\n */\ntype AppToastOption = {\n variant: ToastVariant.App;\n appIconSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\ntype IconToastOption = {\n variant: ToastVariant.Icon;\n iconName: IconName;\n severity?: AvatarIconSeverity;\n} & BaseToastVariants;\n\n/**\n * Different toast options combined in a union type.\n */\nexport type ToastOptions =\n | PlainToastOption\n | AccountToastOption\n | NetworkToastOption\n | AppToastOption\n | IconToastOption;\n\n/**\n * Toast component reference.\n */\nexport type ToastRef = {\n showToast: (toastOptions: ToastOptions) => void;\n closeToast: () => void;\n};\n\n/**\n * Toast component props.\n * Extends ViewProps to inherit standard React Native props such as testID and accessibilityLabel.\n */\nexport type ToastProps = {\n /**\n * Optional Tailwind CSS classes for the toast container.\n */\n twClassName?: string;\n /**\n * Props spread to the labels container View (e.g., testID for testing).\n */\n labelsContainerProps?: Omit<ViewProps, 'children' | 'style'>;\n} & Omit<ViewProps, 'style'>;\n"]}
@@ -1,10 +1,9 @@
1
+ import type { AvatarIconSeverity, IconName } from "@metamask-previews/design-system-shared";
1
2
  import type { ReactElement } from "react";
2
3
  import type { ViewProps } from "react-native/index.js";
3
- import type { AvatarIconSeverity } from "../../types/index.cjs";
4
4
  import type { AvatarAccountVariant } from "../AvatarAccount/index.cjs";
5
5
  import type { ButtonProps } from "../Button/index.cjs";
6
6
  import type { ButtonIconProps } from "../ButtonIcon/index.cjs";
7
- import type { IconName } from "../Icon/index.cjs";
8
7
  import type { ImageOrSvgSrc } from "../temp-components/ImageOrSvg/index.cjs";
9
8
  /**
10
9
  * Toast variants.
@@ -114,11 +113,5 @@ export type ToastProps = {
114
113
  */
115
114
  labelsContainerProps?: Omit<ViewProps, 'children' | 'style'>;
116
115
  } & Omit<ViewProps, 'style'>;
117
- /**
118
- * Toast context parameters.
119
- */
120
- export type ToastContextParams = {
121
- toastRef: React.RefObject<ToastRef> | undefined;
122
- };
123
116
  export {};
124
117
  //# sourceMappingURL=Toast.types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.d.cts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toast.types.d.cts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
+ import type { AvatarIconSeverity, IconName } from "@metamask-previews/design-system-shared";
1
2
  import type { ReactElement } from "react";
2
3
  import type { ViewProps } from "react-native/index.js";
3
- import type { AvatarIconSeverity } from "../../types/index.mjs";
4
4
  import type { AvatarAccountVariant } from "../AvatarAccount/index.mjs";
5
5
  import type { ButtonProps } from "../Button/index.mjs";
6
6
  import type { ButtonIconProps } from "../ButtonIcon/index.mjs";
7
- import type { IconName } from "../Icon/index.mjs";
8
7
  import type { ImageOrSvgSrc } from "../temp-components/ImageOrSvg/index.mjs";
9
8
  /**
10
9
  * Toast variants.
@@ -114,11 +113,5 @@ export type ToastProps = {
114
113
  */
115
114
  labelsContainerProps?: Omit<ViewProps, 'children' | 'style'>;
116
115
  } & Omit<ViewProps, 'style'>;
117
- /**
118
- * Toast context parameters.
119
- */
120
- export type ToastContextParams = {
121
- toastRef: React.RefObject<ToastRef> | undefined;
122
- };
123
116
  export {};
124
117
  //# sourceMappingURL=Toast.types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.d.mts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toast.types.d.mts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.mjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,2BAAW,CAAA;IACX,6BAAa,CAAA;AACf,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AA4CD,MAAM,CAAN,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;AACf,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,QAElC","sourcesContent":["// Third party dependencies.\nimport type { ReactElement } from 'react';\nimport type { ViewProps } from 'react-native';\n\n// External Dependencies.\nimport type { AvatarIconSeverity } from '../../types';\nimport type { AvatarAccountVariant } from '../AvatarAccount';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { IconName } from '../Icon';\nimport type { ImageOrSvgSrc } from '../temp-components/ImageOrSvg';\n\n/**\n * Toast variants.\n */\nexport enum ToastVariant {\n Plain = 'Plain',\n Account = 'Account',\n Network = 'Network',\n App = 'App',\n Icon = 'Icon',\n}\n\n/**\n * Options for the main text in the toast.\n */\nexport type ToastLabelOptions = {\n label: string;\n isBold?: boolean;\n}[];\n\n/**\n * Options for the description text in the toast.\n */\nexport type ToastDescriptionOptions = {\n description: string;\n};\n\n/**\n * Options for displaying a Link in the toast.\n */\nexport type ToastLinkButtonOptions = {\n label: string;\n onPress: () => void;\n};\n\n/**\n * Common toast option shared between all other options.\n */\ntype BaseToastVariants = {\n hasNoTimeout: boolean;\n labelOptions: ToastLabelOptions;\n descriptionOptions?: ToastDescriptionOptions;\n linkButtonOptions?: ToastLinkButtonOptions;\n closeButtonOptions?: ToastCloseButtonOptions;\n startAccessory?: ReactElement;\n bottomOffset?: number;\n};\n\nexport type ToastCloseButtonIconOptions = Omit<ButtonIconProps, 'variant'> & {\n variant: ToastCloseButtonVariant;\n};\n\nexport type ToastCloseButtonOptions = ButtonProps | ToastCloseButtonIconOptions;\n\nexport enum ToastCloseButtonVariant {\n Icon = 'Icon',\n}\n\n/**\n * Plain toast option.\n */\ntype PlainToastOption = {\n variant: ToastVariant.Plain;\n} & BaseToastVariants;\n\n/**\n * Account toast option.\n */\ntype AccountToastOption = {\n variant: ToastVariant.Account;\n accountAddress: string;\n accountAvatarType: AvatarAccountVariant;\n} & BaseToastVariants;\n\n/**\n * Network toast option.\n */\ntype NetworkToastOption = {\n variant: ToastVariant.Network;\n networkName?: string;\n networkImageSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\n/**\n * App toast option.\n */\ntype AppToastOption = {\n variant: ToastVariant.App;\n appIconSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\ntype IconToastOption = {\n variant: ToastVariant.Icon;\n iconName: IconName;\n severity?: AvatarIconSeverity;\n} & BaseToastVariants;\n\n/**\n * Different toast options combined in a union type.\n */\nexport type ToastOptions =\n | PlainToastOption\n | AccountToastOption\n | NetworkToastOption\n | AppToastOption\n | IconToastOption;\n\n/**\n * Toast component reference.\n */\nexport type ToastRef = {\n showToast: (toastOptions: ToastOptions) => void;\n closeToast: () => void;\n};\n\n/**\n * Toast component props.\n * Extends ViewProps to inherit standard React Native props such as testID and accessibilityLabel.\n */\nexport type ToastProps = {\n /**\n * Optional Tailwind CSS classes for the toast container.\n */\n twClassName?: string;\n /**\n * Props spread to the labels container View (e.g., testID for testing).\n */\n labelsContainerProps?: Omit<ViewProps, 'children' | 'style'>;\n} & Omit<ViewProps, 'style'>;\n\n/**\n * Toast context parameters.\n */\nexport type ToastContextParams = {\n toastRef: React.RefObject<ToastRef> | undefined;\n};\n"]}
1
+ {"version":3,"file":"Toast.types.mjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,2BAAW,CAAA;IACX,6BAAa,CAAA;AACf,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AA4CD,MAAM,CAAN,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;AACf,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,QAElC","sourcesContent":["// Third party dependencies.\nimport type {\n AvatarIconSeverity,\n IconName,\n} from '@metamask-previews/design-system-shared';\nimport type { ReactElement } from 'react';\nimport type { ViewProps } from 'react-native';\n\n// External Dependencies.\nimport type { AvatarAccountVariant } from '../AvatarAccount';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { ImageOrSvgSrc } from '../temp-components/ImageOrSvg';\n\n/**\n * Toast variants.\n */\nexport enum ToastVariant {\n Plain = 'Plain',\n Account = 'Account',\n Network = 'Network',\n App = 'App',\n Icon = 'Icon',\n}\n\n/**\n * Options for the main text in the toast.\n */\nexport type ToastLabelOptions = {\n label: string;\n isBold?: boolean;\n}[];\n\n/**\n * Options for the description text in the toast.\n */\nexport type ToastDescriptionOptions = {\n description: string;\n};\n\n/**\n * Options for displaying a Link in the toast.\n */\nexport type ToastLinkButtonOptions = {\n label: string;\n onPress: () => void;\n};\n\n/**\n * Common toast option shared between all other options.\n */\ntype BaseToastVariants = {\n hasNoTimeout: boolean;\n labelOptions: ToastLabelOptions;\n descriptionOptions?: ToastDescriptionOptions;\n linkButtonOptions?: ToastLinkButtonOptions;\n closeButtonOptions?: ToastCloseButtonOptions;\n startAccessory?: ReactElement;\n bottomOffset?: number;\n};\n\nexport type ToastCloseButtonIconOptions = Omit<ButtonIconProps, 'variant'> & {\n variant: ToastCloseButtonVariant;\n};\n\nexport type ToastCloseButtonOptions = ButtonProps | ToastCloseButtonIconOptions;\n\nexport enum ToastCloseButtonVariant {\n Icon = 'Icon',\n}\n\n/**\n * Plain toast option.\n */\ntype PlainToastOption = {\n variant: ToastVariant.Plain;\n} & BaseToastVariants;\n\n/**\n * Account toast option.\n */\ntype AccountToastOption = {\n variant: ToastVariant.Account;\n accountAddress: string;\n accountAvatarType: AvatarAccountVariant;\n} & BaseToastVariants;\n\n/**\n * Network toast option.\n */\ntype NetworkToastOption = {\n variant: ToastVariant.Network;\n networkName?: string;\n networkImageSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\n/**\n * App toast option.\n */\ntype AppToastOption = {\n variant: ToastVariant.App;\n appIconSource: ImageOrSvgSrc;\n} & BaseToastVariants;\n\ntype IconToastOption = {\n variant: ToastVariant.Icon;\n iconName: IconName;\n severity?: AvatarIconSeverity;\n} & BaseToastVariants;\n\n/**\n * Different toast options combined in a union type.\n */\nexport type ToastOptions =\n | PlainToastOption\n | AccountToastOption\n | NetworkToastOption\n | AppToastOption\n | IconToastOption;\n\n/**\n * Toast component reference.\n */\nexport type ToastRef = {\n showToast: (toastOptions: ToastOptions) => void;\n closeToast: () => void;\n};\n\n/**\n * Toast component props.\n * Extends ViewProps to inherit standard React Native props such as testID and accessibilityLabel.\n */\nexport type ToastProps = {\n /**\n * Optional Tailwind CSS classes for the toast container.\n */\n twClassName?: string;\n /**\n * Props spread to the labels container View (e.g., testID for testing).\n */\n labelsContainerProps?: Omit<ViewProps, 'children' | 'style'>;\n} & Omit<ViewProps, 'style'>;\n"]}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ToastView = void 0;
27
+ // Third party dependencies.
28
+ const design_system_twrnc_preset_1 = require("@metamask-previews/design-system-twrnc-preset");
29
+ const react_1 = __importStar(require("react"));
30
+ const react_native_1 = require("react-native/index.js");
31
+ const react_native_reanimated_1 = __importStar(require("react-native-reanimated"));
32
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
33
+ // External dependencies.
34
+ const AvatarAccount_1 = require("../AvatarAccount/index.cjs");
35
+ const AvatarFavicon_1 = require("../AvatarFavicon/index.cjs");
36
+ const AvatarIcon_1 = require("../AvatarIcon/index.cjs");
37
+ const AvatarNetwork_1 = require("../AvatarNetwork/index.cjs");
38
+ const Button_1 = require("../Button/index.cjs");
39
+ const ButtonIcon_1 = require("../ButtonIcon/index.cjs");
40
+ const Text_1 = require("../Text/index.cjs");
41
+ // Internal dependencies.
42
+ const Toast_constants_1 = require("./Toast.constants.cjs");
43
+ const Toast_types_1 = require("./Toast.types.cjs");
44
+ const screenHeight = react_native_1.Dimensions.get('window').height;
45
+ exports.ToastView = (0, react_1.forwardRef)(({ twClassName, labelsContainerProps, ...props }, ref) => {
46
+ const tw = (0, design_system_twrnc_preset_1.useTailwind)();
47
+ const [toastOptions, setToastOptions] = (0, react_1.useState)(undefined);
48
+ const replacementTimerRef = (0, react_1.useRef)(null);
49
+ const { bottom: bottomNotchSpacing } = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
50
+ const translateYProgress = (0, react_native_reanimated_1.useSharedValue)(screenHeight);
51
+ const bottomOffset = toastOptions?.bottomOffset ?? 0;
52
+ const animatedStyle = (0, react_native_reanimated_1.useAnimatedStyle)(() => ({
53
+ transform: [{ translateY: translateYProgress.value - bottomOffset }],
54
+ }));
55
+ const baseStyle = (0, react_1.useMemo)(() => [
56
+ tw.style('absolute left-4 right-4 bottom-0 bg-background-section border border-border-muted rounded-xl p-3 flex-row items-center', twClassName),
57
+ animatedStyle,
58
+ ], [tw, animatedStyle, twClassName]);
59
+ const resetState = () => setToastOptions(undefined);
60
+ const showToast = (options) => {
61
+ let timeoutDuration = 0;
62
+ if (toastOptions) {
63
+ (0, react_native_reanimated_1.cancelAnimation)(translateYProgress);
64
+ timeoutDuration = 100;
65
+ // Clear existing toast state to prevent animation conflicts when showing rapid successive toasts
66
+ setToastOptions(undefined);
67
+ }
68
+ if (replacementTimerRef.current !== null) {
69
+ clearTimeout(replacementTimerRef.current);
70
+ }
71
+ replacementTimerRef.current = setTimeout(() => {
72
+ replacementTimerRef.current = null;
73
+ setToastOptions(options);
74
+ }, timeoutDuration);
75
+ };
76
+ const closeToast = () => {
77
+ if (replacementTimerRef.current !== null) {
78
+ clearTimeout(replacementTimerRef.current);
79
+ replacementTimerRef.current = null;
80
+ }
81
+ translateYProgress.value = (0, react_native_reanimated_1.withTiming)(screenHeight, { duration: Toast_constants_1.TOAST_ANIMATION_DURATION }, () => {
82
+ (0, react_native_reanimated_1.runOnJS)(resetState)();
83
+ });
84
+ };
85
+ (0, react_1.useImperativeHandle)(ref, () => ({
86
+ showToast,
87
+ closeToast,
88
+ }));
89
+ const onAnimatedViewLayout = (e) => {
90
+ /* istanbul ignore next - guard only; layout fires when toastOptions is set */
91
+ if (toastOptions) {
92
+ const { height } = e.nativeEvent.layout;
93
+ const translateYToValue = -(Toast_constants_1.TOAST_BOTTOM_PADDING + bottomNotchSpacing);
94
+ translateYProgress.value = height;
95
+ if (toastOptions.hasNoTimeout) {
96
+ translateYProgress.value = (0, react_native_reanimated_1.withTiming)(translateYToValue, {
97
+ duration: Toast_constants_1.TOAST_ANIMATION_DURATION,
98
+ });
99
+ }
100
+ else {
101
+ translateYProgress.value = (0, react_native_reanimated_1.withTiming)(translateYToValue, { duration: Toast_constants_1.TOAST_ANIMATION_DURATION }, () => {
102
+ translateYProgress.value = (0, react_native_reanimated_1.withDelay)(Toast_constants_1.TOAST_VISIBILITY_DURATION, (0, react_native_reanimated_1.withTiming)(height, { duration: Toast_constants_1.TOAST_ANIMATION_DURATION }, (0, react_native_reanimated_1.runOnJS)(resetState)));
103
+ });
104
+ }
105
+ }
106
+ };
107
+ const renderLabel = (labelOptions) => (<Text_1.Text variant={Text_1.TextVariant.BodyMd}>
108
+ {labelOptions.map(({ label, isBold }, index) => (<Text_1.Text key={`toast-label-${index}`} variant={Text_1.TextVariant.BodyMd} fontWeight={isBold ? Text_1.FontWeight.Bold : undefined} color={Text_1.TextColor.TextDefault}>
109
+ {label}
110
+ </Text_1.Text>))}
111
+ </Text_1.Text>);
112
+ const renderDescription = (descriptionOptions) => descriptionOptions && (<Text_1.Text variant={Text_1.TextVariant.BodySm} color={Text_1.TextColor.TextAlternative} style={tw.style('mt-1')}>
113
+ {descriptionOptions.description}
114
+ </Text_1.Text>);
115
+ const renderActionButton = (linkButtonOptions) => linkButtonOptions && (<Button_1.Button variant={Button_1.ButtonVariant.Secondary} onPress={linkButtonOptions.onPress} style={tw.style('mt-2')}>
116
+ {linkButtonOptions.label}
117
+ </Button_1.Button>);
118
+ const renderCloseButton = (closeButtonOptions) => {
119
+ if (closeButtonOptions && 'iconName' in closeButtonOptions) {
120
+ const iconOptions = closeButtonOptions;
121
+ return (<ButtonIcon_1.ButtonIcon iconName={iconOptions.iconName} onPress={(e) => iconOptions.onPress?.(e)} size={iconOptions.size} isDisabled={iconOptions.isDisabled} twClassName={iconOptions.twClassName} style={iconOptions.style} iconProps={iconOptions.iconProps}/>);
122
+ }
123
+ return (<Button_1.Button variant={Button_1.ButtonVariant.Primary} onPress={(e) => closeButtonOptions?.onPress?.(e)} startIconName={closeButtonOptions?.startIconName} endIconName={closeButtonOptions?.endIconName} style={closeButtonOptions?.style}>
124
+ {closeButtonOptions?.children}
125
+ </Button_1.Button>);
126
+ };
127
+ const renderAvatar = () => {
128
+ switch (toastOptions?.variant) {
129
+ case Toast_types_1.ToastVariant.Plain:
130
+ return null;
131
+ case Toast_types_1.ToastVariant.Account: {
132
+ const { accountAddress, accountAvatarType } = toastOptions;
133
+ return (<AvatarAccount_1.AvatarAccount address={accountAddress} variant={accountAvatarType} size={AvatarAccount_1.AvatarAccountSize.Md} style={tw.style('mr-4')}/>);
134
+ }
135
+ case Toast_types_1.ToastVariant.Network: {
136
+ const { networkImageSource, networkName } = toastOptions;
137
+ return (<AvatarNetwork_1.AvatarNetwork name={networkName} src={networkImageSource} size={AvatarNetwork_1.AvatarNetworkSize.Md} style={tw.style('mr-4')}/>);
138
+ }
139
+ case Toast_types_1.ToastVariant.App: {
140
+ const { appIconSource } = toastOptions;
141
+ return (<AvatarFavicon_1.AvatarFavicon src={appIconSource} size={AvatarFavicon_1.AvatarFaviconSize.Md} style={tw.style('mr-4')}/>);
142
+ }
143
+ case Toast_types_1.ToastVariant.Icon: {
144
+ const { iconName, severity } = toastOptions;
145
+ return (<AvatarIcon_1.AvatarIcon iconName={iconName} severity={severity} size={AvatarIcon_1.AvatarIconSize.Md} style={tw.style('mr-4')}/>);
146
+ }
147
+ /* istanbul ignore next - all variants handled above */
148
+ default:
149
+ return null;
150
+ }
151
+ };
152
+ const renderToastContent = (options) => {
153
+ const { labelOptions, descriptionOptions, linkButtonOptions, closeButtonOptions, startAccessory, } = options;
154
+ const isStartAccessoryValid = startAccessory !== null &&
155
+ startAccessory !== undefined &&
156
+ (0, react_1.isValidElement)(startAccessory);
157
+ return (<>
158
+ {isStartAccessoryValid ? startAccessory : renderAvatar()}
159
+ <react_native_1.View style={tw.style('flex-1 justify-center')} {...labelsContainerProps}>
160
+ {renderLabel(labelOptions)}
161
+ {renderDescription(descriptionOptions)}
162
+ {renderActionButton(linkButtonOptions)}
163
+ </react_native_1.View>
164
+ {closeButtonOptions ? renderCloseButton(closeButtonOptions) : null}
165
+ </>);
166
+ };
167
+ if (!toastOptions) {
168
+ return null;
169
+ }
170
+ return (<react_native_reanimated_1.default.View onLayout={onAnimatedViewLayout} style={baseStyle} {...props}>
171
+ {renderToastContent(toastOptions)}
172
+ </react_native_reanimated_1.default.View>);
173
+ });
174
+ //# sourceMappingURL=ToastView.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastView.cjs","sourceRoot":"","sources":["../../../src/components/Toast/ToastView.tsx"],"names":[],"mappings":"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","sourcesContent":["// Third party dependencies.\nimport { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, {\n forwardRef,\n isValidElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type { LayoutChangeEvent, StyleProp, ViewStyle } from 'react-native';\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedStyle,\n useSharedValue,\n withDelay,\n withTiming,\n} from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\n// External dependencies.\nimport { AvatarAccount, AvatarAccountSize } from '../AvatarAccount';\nimport { AvatarFavicon, AvatarFaviconSize } from '../AvatarFavicon';\nimport { AvatarIcon, AvatarIconSize } from '../AvatarIcon';\nimport { AvatarNetwork, AvatarNetworkSize } from '../AvatarNetwork';\nimport { Button, ButtonVariant } from '../Button';\nimport { ButtonIcon } from '../ButtonIcon';\nimport { Text, TextVariant, TextColor, FontWeight } from '../Text';\n\n// Internal dependencies.\nimport {\n TOAST_VISIBILITY_DURATION,\n TOAST_ANIMATION_DURATION,\n TOAST_BOTTOM_PADDING,\n} from './Toast.constants';\nimport type {\n ToastCloseButtonIconOptions,\n ToastCloseButtonOptions,\n ToastDescriptionOptions,\n ToastLabelOptions,\n ToastLinkButtonOptions,\n ToastOptions,\n ToastProps,\n ToastRef,\n} from './Toast.types';\nimport { ToastVariant } from './Toast.types';\n\nconst screenHeight = Dimensions.get('window').height;\n\nexport const ToastView = forwardRef<ToastRef, ToastProps>(\n ({ twClassName, labelsContainerProps, ...props }, ref) => {\n const tw = useTailwind();\n const [toastOptions, setToastOptions] = useState<ToastOptions | undefined>(\n undefined,\n );\n const replacementTimerRef = useRef<ReturnType<typeof setTimeout> | null>(\n null,\n );\n const { bottom: bottomNotchSpacing } = useSafeAreaInsets();\n const translateYProgress = useSharedValue(screenHeight);\n const bottomOffset = toastOptions?.bottomOffset ?? 0;\n const animatedStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: translateYProgress.value - bottomOffset }],\n }));\n const baseStyle: StyleProp<ViewStyle> = useMemo(\n () => [\n tw.style(\n 'absolute left-4 right-4 bottom-0 bg-background-section border border-border-muted rounded-xl p-3 flex-row items-center',\n twClassName,\n ),\n animatedStyle,\n ],\n [tw, animatedStyle, twClassName],\n );\n\n const resetState = () => setToastOptions(undefined);\n\n const showToast = (options: ToastOptions) => {\n let timeoutDuration = 0;\n if (toastOptions) {\n cancelAnimation(translateYProgress);\n timeoutDuration = 100;\n // Clear existing toast state to prevent animation conflicts when showing rapid successive toasts\n setToastOptions(undefined);\n }\n if (replacementTimerRef.current !== null) {\n clearTimeout(replacementTimerRef.current);\n }\n replacementTimerRef.current = setTimeout(() => {\n replacementTimerRef.current = null;\n setToastOptions(options);\n }, timeoutDuration);\n };\n\n const closeToast = () => {\n if (replacementTimerRef.current !== null) {\n clearTimeout(replacementTimerRef.current);\n replacementTimerRef.current = null;\n }\n translateYProgress.value = withTiming(\n screenHeight,\n { duration: TOAST_ANIMATION_DURATION },\n () => {\n runOnJS(resetState)();\n },\n );\n };\n\n useImperativeHandle(ref, () => ({\n showToast,\n closeToast,\n }));\n\n const onAnimatedViewLayout = (e: LayoutChangeEvent) => {\n /* istanbul ignore next - guard only; layout fires when toastOptions is set */\n if (toastOptions) {\n const { height } = e.nativeEvent.layout;\n const translateYToValue = -(TOAST_BOTTOM_PADDING + bottomNotchSpacing);\n\n translateYProgress.value = height;\n\n if (toastOptions.hasNoTimeout) {\n translateYProgress.value = withTiming(translateYToValue, {\n duration: TOAST_ANIMATION_DURATION,\n });\n } else {\n translateYProgress.value = withTiming(\n translateYToValue,\n { duration: TOAST_ANIMATION_DURATION },\n () => {\n translateYProgress.value = withDelay(\n TOAST_VISIBILITY_DURATION,\n withTiming(\n height,\n { duration: TOAST_ANIMATION_DURATION },\n runOnJS(resetState),\n ),\n );\n },\n );\n }\n }\n };\n\n const renderLabel = (labelOptions: ToastLabelOptions) => (\n <Text variant={TextVariant.BodyMd}>\n {labelOptions.map(({ label, isBold }, index) => (\n <Text\n key={`toast-label-${index}`}\n variant={TextVariant.BodyMd}\n fontWeight={isBold ? FontWeight.Bold : undefined}\n color={TextColor.TextDefault}\n >\n {label}\n </Text>\n ))}\n </Text>\n );\n\n const renderDescription = (descriptionOptions?: ToastDescriptionOptions) =>\n descriptionOptions && (\n <Text\n variant={TextVariant.BodySm}\n color={TextColor.TextAlternative}\n style={tw.style('mt-1')}\n >\n {descriptionOptions.description}\n </Text>\n );\n\n const renderActionButton = (linkButtonOptions?: ToastLinkButtonOptions) =>\n linkButtonOptions && (\n <Button\n variant={ButtonVariant.Secondary}\n onPress={linkButtonOptions.onPress}\n style={tw.style('mt-2')}\n >\n {linkButtonOptions.label}\n </Button>\n );\n\n const renderCloseButton = (\n closeButtonOptions?: ToastCloseButtonOptions,\n ) => {\n if (closeButtonOptions && 'iconName' in closeButtonOptions) {\n const iconOptions = closeButtonOptions as ToastCloseButtonIconOptions;\n return (\n <ButtonIcon\n iconName={iconOptions.iconName}\n onPress={(e) => iconOptions.onPress?.(e)}\n size={iconOptions.size}\n isDisabled={iconOptions.isDisabled}\n twClassName={iconOptions.twClassName}\n style={iconOptions.style}\n iconProps={iconOptions.iconProps}\n />\n );\n }\n return (\n <Button\n variant={ButtonVariant.Primary}\n onPress={(e) => closeButtonOptions?.onPress?.(e)}\n startIconName={closeButtonOptions?.startIconName}\n endIconName={closeButtonOptions?.endIconName}\n style={closeButtonOptions?.style}\n >\n {closeButtonOptions?.children}\n </Button>\n );\n };\n\n const renderAvatar = () => {\n switch (toastOptions?.variant) {\n case ToastVariant.Plain:\n return null;\n case ToastVariant.Account: {\n const { accountAddress, accountAvatarType } = toastOptions;\n return (\n <AvatarAccount\n address={accountAddress}\n variant={accountAvatarType}\n size={AvatarAccountSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.Network: {\n const { networkImageSource, networkName } = toastOptions;\n return (\n <AvatarNetwork\n name={networkName}\n src={networkImageSource}\n size={AvatarNetworkSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.App: {\n const { appIconSource } = toastOptions;\n return (\n <AvatarFavicon\n src={appIconSource}\n size={AvatarFaviconSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.Icon: {\n const { iconName, severity } = toastOptions;\n return (\n <AvatarIcon\n iconName={iconName}\n severity={severity}\n size={AvatarIconSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n /* istanbul ignore next - all variants handled above */\n default:\n return null;\n }\n };\n\n const renderToastContent = (options: ToastOptions) => {\n const {\n labelOptions,\n descriptionOptions,\n linkButtonOptions,\n closeButtonOptions,\n startAccessory,\n } = options;\n\n const isStartAccessoryValid =\n startAccessory !== null &&\n startAccessory !== undefined &&\n isValidElement(startAccessory);\n\n return (\n <>\n {isStartAccessoryValid ? startAccessory : renderAvatar()}\n <View\n style={tw.style('flex-1 justify-center')}\n {...labelsContainerProps}\n >\n {renderLabel(labelOptions)}\n {renderDescription(descriptionOptions)}\n {renderActionButton(linkButtonOptions)}\n </View>\n {closeButtonOptions ? renderCloseButton(closeButtonOptions) : null}\n </>\n );\n };\n\n if (!toastOptions) {\n return null;\n }\n\n return (\n <Animated.View\n onLayout={onAnimatedViewLayout}\n style={baseStyle}\n {...props}\n >\n {renderToastContent(toastOptions)}\n </Animated.View>\n );\n },\n);\n"]}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { ToastRef } from "./Toast.types.cjs";
3
+ export declare const ToastView: React.ForwardRefExoticComponent<{
4
+ twClassName?: string | undefined;
5
+ labelsContainerProps?: Omit<import("react-native").ViewProps, "children" | "style"> | undefined;
6
+ } & Omit<import("react-native").ViewProps, "style"> & React.RefAttributes<ToastRef>>;
7
+ //# sourceMappingURL=ToastView.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastView.d.cts","sourceRoot":"","sources":["../../../src/components/Toast/ToastView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,cAAc;AA4Bf,OAAO,KAAK,EAQV,QAAQ,EACT,0BAAsB;AAKvB,eAAO,MAAM,SAAS;;;oFAmQrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { ToastRef } from "./Toast.types.mjs";
3
+ export declare const ToastView: React.ForwardRefExoticComponent<{
4
+ twClassName?: string | undefined;
5
+ labelsContainerProps?: Omit<import("react-native").ViewProps, "children" | "style"> | undefined;
6
+ } & Omit<import("react-native").ViewProps, "style"> & React.RefAttributes<ToastRef>>;
7
+ //# sourceMappingURL=ToastView.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastView.d.mts","sourceRoot":"","sources":["../../../src/components/Toast/ToastView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,cAAc;AA4Bf,OAAO,KAAK,EAQV,QAAQ,EACT,0BAAsB;AAKvB,eAAO,MAAM,SAAS;;;oFAmQrB,CAAC"}