@metamask-previews/design-system-react 0.20.0-preview.f515a62 → 0.23.1-preview.047f96c

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 (472) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/dist/components/AvatarGroup/AvatarGroup.cjs +18 -13
  3. package/dist/components/AvatarGroup/AvatarGroup.cjs.map +1 -1
  4. package/dist/components/AvatarGroup/AvatarGroup.constants.cjs +16 -17
  5. package/dist/components/AvatarGroup/AvatarGroup.constants.cjs.map +1 -1
  6. package/dist/components/AvatarGroup/AvatarGroup.constants.d.cts +1 -2
  7. package/dist/components/AvatarGroup/AvatarGroup.constants.d.cts.map +1 -1
  8. package/dist/components/AvatarGroup/AvatarGroup.constants.d.mts +1 -2
  9. package/dist/components/AvatarGroup/AvatarGroup.constants.d.mts.map +1 -1
  10. package/dist/components/AvatarGroup/AvatarGroup.constants.mjs +1 -2
  11. package/dist/components/AvatarGroup/AvatarGroup.constants.mjs.map +1 -1
  12. package/dist/components/AvatarGroup/AvatarGroup.d.cts +8 -21
  13. package/dist/components/AvatarGroup/AvatarGroup.d.cts.map +1 -1
  14. package/dist/components/AvatarGroup/AvatarGroup.d.mts +8 -21
  15. package/dist/components/AvatarGroup/AvatarGroup.d.mts.map +1 -1
  16. package/dist/components/AvatarGroup/AvatarGroup.mjs +9 -4
  17. package/dist/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
  18. package/dist/components/AvatarGroup/AvatarGroup.types.cjs.map +1 -1
  19. package/dist/components/AvatarGroup/AvatarGroup.types.d.cts +7 -24
  20. package/dist/components/AvatarGroup/AvatarGroup.types.d.cts.map +1 -1
  21. package/dist/components/AvatarGroup/AvatarGroup.types.d.mts +7 -24
  22. package/dist/components/AvatarGroup/AvatarGroup.types.d.mts.map +1 -1
  23. package/dist/components/AvatarGroup/AvatarGroup.types.mjs.map +1 -1
  24. package/dist/components/AvatarGroup/index.cjs +3 -3
  25. package/dist/components/AvatarGroup/index.cjs.map +1 -1
  26. package/dist/components/AvatarGroup/index.d.cts +1 -1
  27. package/dist/components/AvatarGroup/index.d.cts.map +1 -1
  28. package/dist/components/AvatarGroup/index.d.mts +1 -1
  29. package/dist/components/AvatarGroup/index.d.mts.map +1 -1
  30. package/dist/components/AvatarGroup/index.mjs +1 -1
  31. package/dist/components/AvatarGroup/index.mjs.map +1 -1
  32. package/dist/components/BannerAlert/BannerAlert.d.cts +60 -34
  33. package/dist/components/BannerAlert/BannerAlert.d.cts.map +1 -1
  34. package/dist/components/BannerAlert/BannerAlert.d.mts +60 -34
  35. package/dist/components/BannerAlert/BannerAlert.d.mts.map +1 -1
  36. package/dist/components/BannerBase/BannerBase.cjs +3 -3
  37. package/dist/components/BannerBase/BannerBase.cjs.map +1 -1
  38. package/dist/components/BannerBase/BannerBase.d.cts +60 -34
  39. package/dist/components/BannerBase/BannerBase.d.cts.map +1 -1
  40. package/dist/components/BannerBase/BannerBase.d.mts +60 -34
  41. package/dist/components/BannerBase/BannerBase.d.mts.map +1 -1
  42. package/dist/components/BannerBase/BannerBase.mjs +3 -3
  43. package/dist/components/BannerBase/BannerBase.mjs.map +1 -1
  44. package/dist/components/BannerBase/BannerBase.types.cjs.map +1 -1
  45. package/dist/components/BannerBase/BannerBase.types.d.cts +1 -5
  46. package/dist/components/BannerBase/BannerBase.types.d.cts.map +1 -1
  47. package/dist/components/BannerBase/BannerBase.types.d.mts +1 -5
  48. package/dist/components/BannerBase/BannerBase.types.d.mts.map +1 -1
  49. package/dist/components/BannerBase/BannerBase.types.mjs.map +1 -1
  50. package/dist/components/ButtonBase/ButtonBase.cjs +26 -18
  51. package/dist/components/ButtonBase/ButtonBase.cjs.map +1 -1
  52. package/dist/components/ButtonBase/ButtonBase.constants.cjs +31 -1
  53. package/dist/components/ButtonBase/ButtonBase.constants.cjs.map +1 -1
  54. package/dist/components/ButtonBase/ButtonBase.constants.d.cts +6 -1
  55. package/dist/components/ButtonBase/ButtonBase.constants.d.cts.map +1 -1
  56. package/dist/components/ButtonBase/ButtonBase.constants.d.mts +6 -1
  57. package/dist/components/ButtonBase/ButtonBase.constants.d.mts.map +1 -1
  58. package/dist/components/ButtonBase/ButtonBase.constants.mjs +29 -1
  59. package/dist/components/ButtonBase/ButtonBase.constants.mjs.map +1 -1
  60. package/dist/components/ButtonBase/ButtonBase.d.cts.map +1 -1
  61. package/dist/components/ButtonBase/ButtonBase.d.mts.map +1 -1
  62. package/dist/components/ButtonBase/ButtonBase.mjs +28 -20
  63. package/dist/components/ButtonBase/ButtonBase.mjs.map +1 -1
  64. package/dist/components/HeaderBase/HeaderBase.cjs +43 -0
  65. package/dist/components/HeaderBase/HeaderBase.cjs.map +1 -0
  66. package/dist/components/HeaderBase/HeaderBase.d.cts +4 -0
  67. package/dist/components/HeaderBase/HeaderBase.d.cts.map +1 -0
  68. package/dist/components/HeaderBase/HeaderBase.d.mts +4 -0
  69. package/dist/components/HeaderBase/HeaderBase.d.mts.map +1 -0
  70. package/dist/components/HeaderBase/HeaderBase.mjs +24 -0
  71. package/dist/components/HeaderBase/HeaderBase.mjs.map +1 -0
  72. package/dist/components/HeaderBase/HeaderBase.types.cjs +3 -0
  73. package/dist/components/HeaderBase/HeaderBase.types.cjs.map +1 -0
  74. package/dist/components/HeaderBase/HeaderBase.types.d.cts +51 -0
  75. package/dist/components/HeaderBase/HeaderBase.types.d.cts.map +1 -0
  76. package/dist/components/HeaderBase/HeaderBase.types.d.mts +51 -0
  77. package/dist/components/HeaderBase/HeaderBase.types.d.mts.map +1 -0
  78. package/dist/components/HeaderBase/HeaderBase.types.mjs +2 -0
  79. package/dist/components/HeaderBase/HeaderBase.types.mjs.map +1 -0
  80. package/dist/components/HeaderBase/index.cjs +6 -0
  81. package/dist/components/HeaderBase/index.cjs.map +1 -0
  82. package/dist/components/HeaderBase/index.d.cts +3 -0
  83. package/dist/components/HeaderBase/index.d.cts.map +1 -0
  84. package/dist/components/HeaderBase/index.d.mts +3 -0
  85. package/dist/components/HeaderBase/index.d.mts.map +1 -0
  86. package/dist/components/HeaderBase/index.mjs +2 -0
  87. package/dist/components/HeaderBase/index.mjs.map +1 -0
  88. package/dist/components/HelpText/HelpText.cjs +13 -0
  89. package/dist/components/HelpText/HelpText.cjs.map +1 -0
  90. package/dist/components/HelpText/HelpText.constants.cjs +11 -0
  91. package/dist/components/HelpText/HelpText.constants.cjs.map +1 -0
  92. package/dist/components/HelpText/HelpText.constants.d.cts +3 -0
  93. package/dist/components/HelpText/HelpText.constants.d.cts.map +1 -0
  94. package/dist/components/HelpText/HelpText.constants.d.mts +3 -0
  95. package/dist/components/HelpText/HelpText.constants.d.mts.map +1 -0
  96. package/dist/components/HelpText/HelpText.constants.mjs +8 -0
  97. package/dist/components/HelpText/HelpText.constants.mjs.map +1 -0
  98. package/dist/components/HelpText/HelpText.d.cts +4 -0
  99. package/dist/components/HelpText/HelpText.d.cts.map +1 -0
  100. package/dist/components/HelpText/HelpText.d.mts +4 -0
  101. package/dist/components/HelpText/HelpText.d.mts.map +1 -0
  102. package/dist/components/HelpText/HelpText.mjs +13 -0
  103. package/dist/components/HelpText/HelpText.mjs.map +1 -0
  104. package/dist/components/HelpText/HelpText.types.cjs +3 -0
  105. package/dist/components/HelpText/HelpText.types.cjs.map +1 -0
  106. package/dist/components/HelpText/HelpText.types.d.cts +9 -0
  107. package/dist/components/HelpText/HelpText.types.d.cts.map +1 -0
  108. package/dist/components/HelpText/HelpText.types.d.mts +9 -0
  109. package/dist/components/HelpText/HelpText.types.d.mts.map +1 -0
  110. package/dist/components/HelpText/HelpText.types.mjs +2 -0
  111. package/dist/components/HelpText/HelpText.types.mjs.map +1 -0
  112. package/dist/components/HelpText/index.cjs +8 -0
  113. package/dist/components/HelpText/index.cjs.map +1 -0
  114. package/dist/components/HelpText/index.d.cts +4 -0
  115. package/dist/components/HelpText/index.d.cts.map +1 -0
  116. package/dist/components/HelpText/index.d.mts +4 -0
  117. package/dist/components/HelpText/index.d.mts.map +1 -0
  118. package/dist/components/HelpText/index.mjs +3 -0
  119. package/dist/components/HelpText/index.mjs.map +1 -0
  120. package/dist/components/Icon/icons/Candlestick.cjs +1 -1
  121. package/dist/components/Icon/icons/Candlestick.cjs.map +1 -1
  122. package/dist/components/Icon/icons/Candlestick.mjs +1 -1
  123. package/dist/components/Icon/icons/Candlestick.mjs.map +1 -1
  124. package/dist/components/Icon/icons/Group.cjs +32 -0
  125. package/dist/components/Icon/icons/Group.cjs.map +1 -0
  126. package/dist/components/Icon/icons/Group.d.cts +4 -0
  127. package/dist/components/Icon/icons/Group.d.cts.map +1 -0
  128. package/dist/components/Icon/icons/Group.d.mts +4 -0
  129. package/dist/components/Icon/icons/Group.d.mts.map +1 -0
  130. package/dist/components/Icon/icons/Group.mjs +7 -0
  131. package/dist/components/Icon/icons/Group.mjs.map +1 -0
  132. package/dist/components/Icon/icons/ListArrow.cjs +32 -0
  133. package/dist/components/Icon/icons/ListArrow.cjs.map +1 -0
  134. package/dist/components/Icon/icons/ListArrow.d.cts +4 -0
  135. package/dist/components/Icon/icons/ListArrow.d.cts.map +1 -0
  136. package/dist/components/Icon/icons/ListArrow.d.mts +4 -0
  137. package/dist/components/Icon/icons/ListArrow.d.mts.map +1 -0
  138. package/dist/components/Icon/icons/ListArrow.mjs +7 -0
  139. package/dist/components/Icon/icons/ListArrow.mjs.map +1 -0
  140. package/dist/components/Icon/icons/Merge.cjs +32 -0
  141. package/dist/components/Icon/icons/Merge.cjs.map +1 -0
  142. package/dist/components/Icon/icons/Merge.d.cts +4 -0
  143. package/dist/components/Icon/icons/Merge.d.cts.map +1 -0
  144. package/dist/components/Icon/icons/Merge.d.mts +4 -0
  145. package/dist/components/Icon/icons/Merge.d.mts.map +1 -0
  146. package/dist/components/Icon/icons/Merge.mjs +7 -0
  147. package/dist/components/Icon/icons/Merge.mjs.map +1 -0
  148. package/dist/components/Icon/icons/Musd.cjs +32 -0
  149. package/dist/components/Icon/icons/Musd.cjs.map +1 -0
  150. package/dist/components/Icon/icons/Musd.d.cts +4 -0
  151. package/dist/components/Icon/icons/Musd.d.cts.map +1 -0
  152. package/dist/components/Icon/icons/Musd.d.mts +4 -0
  153. package/dist/components/Icon/icons/Musd.d.mts.map +1 -0
  154. package/dist/components/Icon/icons/Musd.mjs +7 -0
  155. package/dist/components/Icon/icons/Musd.mjs.map +1 -0
  156. package/dist/components/Icon/icons/MusdFilled.cjs +32 -0
  157. package/dist/components/Icon/icons/MusdFilled.cjs.map +1 -0
  158. package/dist/components/Icon/icons/MusdFilled.d.cts +4 -0
  159. package/dist/components/Icon/icons/MusdFilled.d.cts.map +1 -0
  160. package/dist/components/Icon/icons/MusdFilled.d.mts +4 -0
  161. package/dist/components/Icon/icons/MusdFilled.d.mts.map +1 -0
  162. package/dist/components/Icon/icons/MusdFilled.mjs +7 -0
  163. package/dist/components/Icon/icons/MusdFilled.mjs.map +1 -0
  164. package/dist/components/Icon/icons/PieChart.cjs +32 -0
  165. package/dist/components/Icon/icons/PieChart.cjs.map +1 -0
  166. package/dist/components/Icon/icons/PieChart.d.cts +4 -0
  167. package/dist/components/Icon/icons/PieChart.d.cts.map +1 -0
  168. package/dist/components/Icon/icons/PieChart.d.mts +4 -0
  169. package/dist/components/Icon/icons/PieChart.d.mts.map +1 -0
  170. package/dist/components/Icon/icons/PieChart.mjs +7 -0
  171. package/dist/components/Icon/icons/PieChart.mjs.map +1 -0
  172. package/dist/components/Icon/icons/Predictions.cjs +32 -0
  173. package/dist/components/Icon/icons/Predictions.cjs.map +1 -0
  174. package/dist/components/Icon/icons/Predictions.d.cts +4 -0
  175. package/dist/components/Icon/icons/Predictions.d.cts.map +1 -0
  176. package/dist/components/Icon/icons/Predictions.d.mts +4 -0
  177. package/dist/components/Icon/icons/Predictions.d.mts.map +1 -0
  178. package/dist/components/Icon/icons/Predictions.mjs +7 -0
  179. package/dist/components/Icon/icons/Predictions.mjs.map +1 -0
  180. package/dist/components/Icon/icons/Telegram.cjs +1 -1
  181. package/dist/components/Icon/icons/Telegram.cjs.map +1 -1
  182. package/dist/components/Icon/icons/Telegram.mjs +1 -1
  183. package/dist/components/Icon/icons/Telegram.mjs.map +1 -1
  184. package/dist/components/Icon/icons/index.cjs +14 -0
  185. package/dist/components/Icon/icons/index.cjs.map +1 -1
  186. package/dist/components/Icon/icons/index.d.cts +7 -0
  187. package/dist/components/Icon/icons/index.d.cts.map +1 -1
  188. package/dist/components/Icon/icons/index.d.mts +7 -0
  189. package/dist/components/Icon/icons/index.d.mts.map +1 -1
  190. package/dist/components/Icon/icons/index.mjs +14 -0
  191. package/dist/components/Icon/icons/index.mjs.map +1 -1
  192. package/dist/components/Input/Input.cjs +4 -3
  193. package/dist/components/Input/Input.cjs.map +1 -1
  194. package/dist/components/Input/Input.d.cts +1 -5
  195. package/dist/components/Input/Input.d.cts.map +1 -1
  196. package/dist/components/Input/Input.d.mts +1 -5
  197. package/dist/components/Input/Input.d.mts.map +1 -1
  198. package/dist/components/Input/Input.mjs +4 -3
  199. package/dist/components/Input/Input.mjs.map +1 -1
  200. package/dist/components/Input/Input.types.cjs.map +1 -1
  201. package/dist/components/Input/Input.types.d.cts +2 -20
  202. package/dist/components/Input/Input.types.d.cts.map +1 -1
  203. package/dist/components/Input/Input.types.d.mts +2 -20
  204. package/dist/components/Input/Input.types.d.mts.map +1 -1
  205. package/dist/components/Input/Input.types.mjs.map +1 -1
  206. package/dist/components/Label/Label.cjs +38 -0
  207. package/dist/components/Label/Label.cjs.map +1 -0
  208. package/dist/components/Label/Label.d.cts +4 -0
  209. package/dist/components/Label/Label.d.cts.map +1 -0
  210. package/dist/components/Label/Label.d.mts +4 -0
  211. package/dist/components/Label/Label.d.mts.map +1 -0
  212. package/dist/components/Label/Label.mjs +19 -0
  213. package/dist/components/Label/Label.mjs.map +1 -0
  214. package/dist/components/Label/Label.types.cjs +3 -0
  215. package/dist/components/Label/Label.types.cjs.map +1 -0
  216. package/dist/components/Label/Label.types.d.cts +27 -0
  217. package/dist/components/Label/Label.types.d.cts.map +1 -0
  218. package/dist/components/Label/Label.types.d.mts +27 -0
  219. package/dist/components/Label/Label.types.d.mts.map +1 -0
  220. package/dist/components/Label/Label.types.mjs +2 -0
  221. package/dist/components/Label/Label.types.mjs.map +1 -0
  222. package/dist/components/Label/index.cjs +6 -0
  223. package/dist/components/Label/index.cjs.map +1 -0
  224. package/dist/components/Label/index.d.cts +3 -0
  225. package/dist/components/Label/index.d.cts.map +1 -0
  226. package/dist/components/Label/index.d.mts +3 -0
  227. package/dist/components/Label/index.d.mts.map +1 -0
  228. package/dist/components/Label/index.mjs +2 -0
  229. package/dist/components/Label/index.mjs.map +1 -0
  230. package/dist/components/Modal/Modal.cjs +49 -0
  231. package/dist/components/Modal/Modal.cjs.map +1 -0
  232. package/dist/components/Modal/Modal.context.cjs +14 -0
  233. package/dist/components/Modal/Modal.context.cjs.map +1 -0
  234. package/dist/components/Modal/Modal.context.d.cts +6 -0
  235. package/dist/components/Modal/Modal.context.d.cts.map +1 -0
  236. package/dist/components/Modal/Modal.context.d.mts +6 -0
  237. package/dist/components/Modal/Modal.context.d.mts.map +1 -0
  238. package/dist/components/Modal/Modal.context.mjs +10 -0
  239. package/dist/components/Modal/Modal.context.mjs.map +1 -0
  240. package/dist/components/Modal/Modal.d.cts +4 -0
  241. package/dist/components/Modal/Modal.d.cts.map +1 -0
  242. package/dist/components/Modal/Modal.d.mts +4 -0
  243. package/dist/components/Modal/Modal.d.mts.map +1 -0
  244. package/dist/components/Modal/Modal.mjs +30 -0
  245. package/dist/components/Modal/Modal.mjs.map +1 -0
  246. package/dist/components/Modal/Modal.types.cjs +3 -0
  247. package/dist/components/Modal/Modal.types.cjs.map +1 -0
  248. package/dist/components/Modal/Modal.types.d.cts +64 -0
  249. package/dist/components/Modal/Modal.types.d.cts.map +1 -0
  250. package/dist/components/Modal/Modal.types.d.mts +64 -0
  251. package/dist/components/Modal/Modal.types.d.mts.map +1 -0
  252. package/dist/components/Modal/Modal.types.mjs +2 -0
  253. package/dist/components/Modal/Modal.types.mjs.map +1 -0
  254. package/dist/components/Modal/index.cjs +8 -0
  255. package/dist/components/Modal/index.cjs.map +1 -0
  256. package/dist/components/Modal/index.d.cts +5 -0
  257. package/dist/components/Modal/index.d.cts.map +1 -0
  258. package/dist/components/Modal/index.d.mts +5 -0
  259. package/dist/components/Modal/index.d.mts.map +1 -0
  260. package/dist/components/Modal/index.mjs +3 -0
  261. package/dist/components/Modal/index.mjs.map +1 -0
  262. package/dist/components/ModalContent/ModalContent.cjs +73 -0
  263. package/dist/components/ModalContent/ModalContent.cjs.map +1 -0
  264. package/dist/components/ModalContent/ModalContent.constants.cjs +34 -0
  265. package/dist/components/ModalContent/ModalContent.constants.cjs.map +1 -0
  266. package/dist/components/ModalContent/ModalContent.constants.d.cts +31 -0
  267. package/dist/components/ModalContent/ModalContent.constants.d.cts.map +1 -0
  268. package/dist/components/ModalContent/ModalContent.constants.d.mts +31 -0
  269. package/dist/components/ModalContent/ModalContent.constants.d.mts.map +1 -0
  270. package/dist/components/ModalContent/ModalContent.constants.mjs +31 -0
  271. package/dist/components/ModalContent/ModalContent.constants.mjs.map +1 -0
  272. package/dist/components/ModalContent/ModalContent.d.cts +4 -0
  273. package/dist/components/ModalContent/ModalContent.d.cts.map +1 -0
  274. package/dist/components/ModalContent/ModalContent.d.mts +4 -0
  275. package/dist/components/ModalContent/ModalContent.d.mts.map +1 -0
  276. package/dist/components/ModalContent/ModalContent.mjs +54 -0
  277. package/dist/components/ModalContent/ModalContent.mjs.map +1 -0
  278. package/dist/components/ModalContent/ModalContent.types.cjs +15 -0
  279. package/dist/components/ModalContent/ModalContent.types.cjs.map +1 -0
  280. package/dist/components/ModalContent/ModalContent.types.d.cts +51 -0
  281. package/dist/components/ModalContent/ModalContent.types.d.cts.map +1 -0
  282. package/dist/components/ModalContent/ModalContent.types.d.mts +51 -0
  283. package/dist/components/ModalContent/ModalContent.types.d.mts.map +1 -0
  284. package/dist/components/ModalContent/ModalContent.types.mjs +12 -0
  285. package/dist/components/ModalContent/ModalContent.types.mjs.map +1 -0
  286. package/dist/components/ModalContent/index.cjs +10 -0
  287. package/dist/components/ModalContent/index.cjs.map +1 -0
  288. package/dist/components/ModalContent/index.d.cts +5 -0
  289. package/dist/components/ModalContent/index.d.cts.map +1 -0
  290. package/dist/components/ModalContent/index.d.mts +5 -0
  291. package/dist/components/ModalContent/index.d.mts.map +1 -0
  292. package/dist/components/ModalContent/index.mjs +4 -0
  293. package/dist/components/ModalContent/index.mjs.map +1 -0
  294. package/dist/components/ModalFocus/ModalFocus.cjs +56 -0
  295. package/dist/components/ModalFocus/ModalFocus.cjs.map +1 -0
  296. package/dist/components/ModalFocus/ModalFocus.d.cts +4 -0
  297. package/dist/components/ModalFocus/ModalFocus.d.cts.map +1 -0
  298. package/dist/components/ModalFocus/ModalFocus.d.mts +4 -0
  299. package/dist/components/ModalFocus/ModalFocus.d.mts.map +1 -0
  300. package/dist/components/ModalFocus/ModalFocus.mjs +34 -0
  301. package/dist/components/ModalFocus/ModalFocus.mjs.map +1 -0
  302. package/dist/components/ModalFocus/ModalFocus.types.cjs +3 -0
  303. package/dist/components/ModalFocus/ModalFocus.types.cjs.map +1 -0
  304. package/dist/components/ModalFocus/ModalFocus.types.d.cts +36 -0
  305. package/dist/components/ModalFocus/ModalFocus.types.d.cts.map +1 -0
  306. package/dist/components/ModalFocus/ModalFocus.types.d.mts +36 -0
  307. package/dist/components/ModalFocus/ModalFocus.types.d.mts.map +1 -0
  308. package/dist/components/ModalFocus/ModalFocus.types.mjs +2 -0
  309. package/dist/components/ModalFocus/ModalFocus.types.mjs.map +1 -0
  310. package/dist/components/ModalFocus/index.cjs +6 -0
  311. package/dist/components/ModalFocus/index.cjs.map +1 -0
  312. package/dist/components/ModalFocus/index.d.cts +3 -0
  313. package/dist/components/ModalFocus/index.d.cts.map +1 -0
  314. package/dist/components/ModalFocus/index.d.mts +3 -0
  315. package/dist/components/ModalFocus/index.d.mts.map +1 -0
  316. package/dist/components/ModalFocus/index.mjs +2 -0
  317. package/dist/components/ModalFocus/index.mjs.map +1 -0
  318. package/dist/components/ModalFooter/ModalFooter.cjs +44 -0
  319. package/dist/components/ModalFooter/ModalFooter.cjs.map +1 -0
  320. package/dist/components/ModalFooter/ModalFooter.d.cts +4 -0
  321. package/dist/components/ModalFooter/ModalFooter.d.cts.map +1 -0
  322. package/dist/components/ModalFooter/ModalFooter.d.mts +4 -0
  323. package/dist/components/ModalFooter/ModalFooter.d.mts.map +1 -0
  324. package/dist/components/ModalFooter/ModalFooter.mjs +25 -0
  325. package/dist/components/ModalFooter/ModalFooter.mjs.map +1 -0
  326. package/dist/components/ModalFooter/ModalFooter.types.cjs +14 -0
  327. package/dist/components/ModalFooter/ModalFooter.types.cjs.map +1 -0
  328. package/dist/components/ModalFooter/ModalFooter.types.d.cts +63 -0
  329. package/dist/components/ModalFooter/ModalFooter.types.d.cts.map +1 -0
  330. package/dist/components/ModalFooter/ModalFooter.types.d.mts +63 -0
  331. package/dist/components/ModalFooter/ModalFooter.types.d.mts.map +1 -0
  332. package/dist/components/ModalFooter/ModalFooter.types.mjs +11 -0
  333. package/dist/components/ModalFooter/ModalFooter.types.mjs.map +1 -0
  334. package/dist/components/ModalFooter/index.cjs +8 -0
  335. package/dist/components/ModalFooter/index.cjs.map +1 -0
  336. package/dist/components/ModalFooter/index.d.cts +4 -0
  337. package/dist/components/ModalFooter/index.d.cts.map +1 -0
  338. package/dist/components/ModalFooter/index.d.mts +4 -0
  339. package/dist/components/ModalFooter/index.d.mts.map +1 -0
  340. package/dist/components/ModalFooter/index.mjs +3 -0
  341. package/dist/components/ModalFooter/index.mjs.map +1 -0
  342. package/dist/components/ModalHeader/ModalHeader.cjs +55 -0
  343. package/dist/components/ModalHeader/ModalHeader.cjs.map +1 -0
  344. package/dist/components/ModalHeader/ModalHeader.d.cts +55 -0
  345. package/dist/components/ModalHeader/ModalHeader.d.cts.map +1 -0
  346. package/dist/components/ModalHeader/ModalHeader.d.mts +55 -0
  347. package/dist/components/ModalHeader/ModalHeader.d.mts.map +1 -0
  348. package/dist/components/ModalHeader/ModalHeader.mjs +36 -0
  349. package/dist/components/ModalHeader/ModalHeader.mjs.map +1 -0
  350. package/dist/components/ModalHeader/ModalHeader.types.cjs +3 -0
  351. package/dist/components/ModalHeader/ModalHeader.types.cjs.map +1 -0
  352. package/dist/components/ModalHeader/ModalHeader.types.d.cts +69 -0
  353. package/dist/components/ModalHeader/ModalHeader.types.d.cts.map +1 -0
  354. package/dist/components/ModalHeader/ModalHeader.types.d.mts +69 -0
  355. package/dist/components/ModalHeader/ModalHeader.types.d.mts.map +1 -0
  356. package/dist/components/ModalHeader/ModalHeader.types.mjs +2 -0
  357. package/dist/components/ModalHeader/ModalHeader.types.mjs.map +1 -0
  358. package/dist/components/ModalHeader/index.cjs +6 -0
  359. package/dist/components/ModalHeader/index.cjs.map +1 -0
  360. package/dist/components/ModalHeader/index.d.cts +3 -0
  361. package/dist/components/ModalHeader/index.d.cts.map +1 -0
  362. package/dist/components/ModalHeader/index.d.mts +3 -0
  363. package/dist/components/ModalHeader/index.d.mts.map +1 -0
  364. package/dist/components/ModalHeader/index.mjs +2 -0
  365. package/dist/components/ModalHeader/index.mjs.map +1 -0
  366. package/dist/components/PopoverHeader/PopoverHeader.cjs +60 -0
  367. package/dist/components/PopoverHeader/PopoverHeader.cjs.map +1 -0
  368. package/dist/components/PopoverHeader/PopoverHeader.d.cts +55 -0
  369. package/dist/components/PopoverHeader/PopoverHeader.d.cts.map +1 -0
  370. package/dist/components/PopoverHeader/PopoverHeader.d.mts +55 -0
  371. package/dist/components/PopoverHeader/PopoverHeader.d.mts.map +1 -0
  372. package/dist/components/PopoverHeader/PopoverHeader.mjs +41 -0
  373. package/dist/components/PopoverHeader/PopoverHeader.mjs.map +1 -0
  374. package/dist/components/PopoverHeader/PopoverHeader.types.cjs +3 -0
  375. package/dist/components/PopoverHeader/PopoverHeader.types.cjs.map +1 -0
  376. package/dist/components/PopoverHeader/PopoverHeader.types.d.cts +70 -0
  377. package/dist/components/PopoverHeader/PopoverHeader.types.d.cts.map +1 -0
  378. package/dist/components/PopoverHeader/PopoverHeader.types.d.mts +70 -0
  379. package/dist/components/PopoverHeader/PopoverHeader.types.d.mts.map +1 -0
  380. package/dist/components/PopoverHeader/PopoverHeader.types.mjs +2 -0
  381. package/dist/components/PopoverHeader/PopoverHeader.types.mjs.map +1 -0
  382. package/dist/components/PopoverHeader/index.cjs +6 -0
  383. package/dist/components/PopoverHeader/index.cjs.map +1 -0
  384. package/dist/components/PopoverHeader/index.d.cts +3 -0
  385. package/dist/components/PopoverHeader/index.d.cts.map +1 -0
  386. package/dist/components/PopoverHeader/index.d.mts +3 -0
  387. package/dist/components/PopoverHeader/index.d.mts.map +1 -0
  388. package/dist/components/PopoverHeader/index.mjs +2 -0
  389. package/dist/components/PopoverHeader/index.mjs.map +1 -0
  390. package/dist/components/SensitiveText/SensitiveText.cjs +47 -0
  391. package/dist/components/SensitiveText/SensitiveText.cjs.map +1 -0
  392. package/dist/components/SensitiveText/SensitiveText.d.cts +4 -0
  393. package/dist/components/SensitiveText/SensitiveText.d.cts.map +1 -0
  394. package/dist/components/SensitiveText/SensitiveText.d.mts +4 -0
  395. package/dist/components/SensitiveText/SensitiveText.d.mts.map +1 -0
  396. package/dist/components/SensitiveText/SensitiveText.mjs +27 -0
  397. package/dist/components/SensitiveText/SensitiveText.mjs.map +1 -0
  398. package/dist/components/SensitiveText/SensitiveText.types.cjs +3 -0
  399. package/dist/components/SensitiveText/SensitiveText.types.cjs.map +1 -0
  400. package/dist/components/SensitiveText/SensitiveText.types.d.cts +11 -0
  401. package/dist/components/SensitiveText/SensitiveText.types.d.cts.map +1 -0
  402. package/dist/components/SensitiveText/SensitiveText.types.d.mts +11 -0
  403. package/dist/components/SensitiveText/SensitiveText.types.d.mts.map +1 -0
  404. package/dist/components/SensitiveText/SensitiveText.types.mjs +2 -0
  405. package/dist/components/SensitiveText/SensitiveText.types.mjs.map +1 -0
  406. package/dist/components/SensitiveText/index.cjs +8 -0
  407. package/dist/components/SensitiveText/index.cjs.map +1 -0
  408. package/dist/components/SensitiveText/index.d.cts +4 -0
  409. package/dist/components/SensitiveText/index.d.cts.map +1 -0
  410. package/dist/components/SensitiveText/index.d.mts +4 -0
  411. package/dist/components/SensitiveText/index.d.mts.map +1 -0
  412. package/dist/components/SensitiveText/index.mjs +3 -0
  413. package/dist/components/SensitiveText/index.mjs.map +1 -0
  414. package/dist/components/Skeleton/Skeleton.cjs +46 -0
  415. package/dist/components/Skeleton/Skeleton.cjs.map +1 -0
  416. package/dist/components/Skeleton/Skeleton.d.cts +4 -0
  417. package/dist/components/Skeleton/Skeleton.d.cts.map +1 -0
  418. package/dist/components/Skeleton/Skeleton.d.mts +4 -0
  419. package/dist/components/Skeleton/Skeleton.d.mts.map +1 -0
  420. package/dist/components/Skeleton/Skeleton.mjs +27 -0
  421. package/dist/components/Skeleton/Skeleton.mjs.map +1 -0
  422. package/dist/components/Skeleton/Skeleton.types.cjs +3 -0
  423. package/dist/components/Skeleton/Skeleton.types.cjs.map +1 -0
  424. package/dist/components/Skeleton/Skeleton.types.d.cts +38 -0
  425. package/dist/components/Skeleton/Skeleton.types.d.cts.map +1 -0
  426. package/dist/components/Skeleton/Skeleton.types.d.mts +38 -0
  427. package/dist/components/Skeleton/Skeleton.types.d.mts.map +1 -0
  428. package/dist/components/Skeleton/Skeleton.types.mjs +2 -0
  429. package/dist/components/Skeleton/Skeleton.types.mjs.map +1 -0
  430. package/dist/components/Skeleton/index.cjs +6 -0
  431. package/dist/components/Skeleton/index.cjs.map +1 -0
  432. package/dist/components/Skeleton/index.d.cts +3 -0
  433. package/dist/components/Skeleton/index.d.cts.map +1 -0
  434. package/dist/components/Skeleton/index.d.mts +3 -0
  435. package/dist/components/Skeleton/index.d.mts.map +1 -0
  436. package/dist/components/Skeleton/index.mjs +2 -0
  437. package/dist/components/Skeleton/index.mjs.map +1 -0
  438. package/dist/components/Text/Text.cjs +3 -1
  439. package/dist/components/Text/Text.cjs.map +1 -1
  440. package/dist/components/Text/Text.constants.cjs.map +1 -1
  441. package/dist/components/Text/Text.constants.d.cts +1 -1
  442. package/dist/components/Text/Text.constants.d.cts.map +1 -1
  443. package/dist/components/Text/Text.constants.d.mts +1 -1
  444. package/dist/components/Text/Text.constants.d.mts.map +1 -1
  445. package/dist/components/Text/Text.constants.mjs.map +1 -1
  446. package/dist/components/Text/Text.d.cts.map +1 -1
  447. package/dist/components/Text/Text.d.mts.map +1 -1
  448. package/dist/components/Text/Text.mjs +3 -1
  449. package/dist/components/Text/Text.mjs.map +1 -1
  450. package/dist/components/Text/Text.types.cjs.map +1 -1
  451. package/dist/components/Text/Text.types.d.cts +2 -2
  452. package/dist/components/Text/Text.types.d.cts.map +1 -1
  453. package/dist/components/Text/Text.types.d.mts +2 -2
  454. package/dist/components/Text/Text.types.d.mts.map +1 -1
  455. package/dist/components/Text/Text.types.mjs.map +1 -1
  456. package/dist/components/index.cjs +30 -2
  457. package/dist/components/index.cjs.map +1 -1
  458. package/dist/components/index.d.cts +22 -0
  459. package/dist/components/index.d.cts.map +1 -1
  460. package/dist/components/index.d.mts +22 -0
  461. package/dist/components/index.d.mts.map +1 -1
  462. package/dist/components/index.mjs +11 -0
  463. package/dist/components/index.mjs.map +1 -1
  464. package/dist/types/index.cjs +3 -15
  465. package/dist/types/index.cjs.map +1 -1
  466. package/dist/types/index.d.cts +0 -10
  467. package/dist/types/index.d.cts.map +1 -1
  468. package/dist/types/index.d.mts +0 -10
  469. package/dist/types/index.d.mts.map +1 -1
  470. package/dist/types/index.mjs +0 -11
  471. package/dist/types/index.mjs.map +1 -1
  472. package/package.json +10 -7
@@ -10,10 +10,6 @@ type BannerBaseCloseButtonProps = Omit<Partial<ButtonIconProps>, 'iconName' | 'o
10
10
  * Optional test id for the close button element.
11
11
  */
12
12
  'data-testid'?: string;
13
- /**
14
- * Optional click handler for the close button.
15
- */
16
- onClick?: MouseEventHandler<HTMLButtonElement>;
17
13
  };
18
14
  type BannerBasePropsBase = BannerBasePropsShared & Omit<BoxProps, 'children'> & {
19
15
  /**
@@ -35,7 +31,7 @@ type BannerBasePropsBase = BannerBasePropsShared & Omit<BoxProps, 'children'> &
35
31
  onClose?: MouseEventHandler<HTMLButtonElement>;
36
32
  /**
37
33
  * Optional props for the close `ButtonIcon`.
38
- * Providing this also shows a close button.
34
+ * Only used when `onClose` is provided.
39
35
  */
40
36
  closeButtonProps?: BannerBaseCloseButtonProps;
41
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BannerBase.types.d.cts","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gDAAgD;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAe;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,4BAAkB;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,gCAAsB;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,0BAAgB;AAEzC,KAAK,2BAA2B,GAAG,IAAI,CACrC,OAAO,CAAC,WAAW,CAAC,EACpB,UAAU,GAAG,SAAS,GAAG,SAAS,CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG,IAAI,CACpC,OAAO,CAAC,eAAe,CAAC,EACxB,UAAU,GAAG,SAAS,CACvB,GAAG;IACF;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,mBAAmB,GAAG,qBAAqB,GAC9C,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC/C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAEJ,KAAK,gCAAgC,GAAG;IACtC,mBAAmB,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,CAAC,gCAAgC,GAAG,mCAAmC,CAAC,CAAC"}
1
+ {"version":3,"file":"BannerBase.types.d.cts","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gDAAgD;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAe;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,4BAAkB;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,gCAAsB;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,0BAAgB;AAEzC,KAAK,2BAA2B,GAAG,IAAI,CACrC,OAAO,CAAC,WAAW,CAAC,EACpB,UAAU,GAAG,SAAS,GAAG,SAAS,CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG,IAAI,CACpC,OAAO,CAAC,eAAe,CAAC,EACxB,UAAU,GAAG,SAAS,CACvB,GAAG;IACF;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,qBAAqB,GAC9C,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC/C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAEJ,KAAK,gCAAgC,GAAG;IACtC,mBAAmB,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,CAAC,gCAAgC,GAAG,mCAAmC,CAAC,CAAC"}
@@ -10,10 +10,6 @@ type BannerBaseCloseButtonProps = Omit<Partial<ButtonIconProps>, 'iconName' | 'o
10
10
  * Optional test id for the close button element.
11
11
  */
12
12
  'data-testid'?: string;
13
- /**
14
- * Optional click handler for the close button.
15
- */
16
- onClick?: MouseEventHandler<HTMLButtonElement>;
17
13
  };
18
14
  type BannerBasePropsBase = BannerBasePropsShared & Omit<BoxProps, 'children'> & {
19
15
  /**
@@ -35,7 +31,7 @@ type BannerBasePropsBase = BannerBasePropsShared & Omit<BoxProps, 'children'> &
35
31
  onClose?: MouseEventHandler<HTMLButtonElement>;
36
32
  /**
37
33
  * Optional props for the close `ButtonIcon`.
38
- * Providing this also shows a close button.
34
+ * Only used when `onClose` is provided.
39
35
  */
40
36
  closeButtonProps?: BannerBaseCloseButtonProps;
41
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BannerBase.types.d.mts","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gDAAgD;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAe;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,4BAAkB;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,gCAAsB;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,0BAAgB;AAEzC,KAAK,2BAA2B,GAAG,IAAI,CACrC,OAAO,CAAC,WAAW,CAAC,EACpB,UAAU,GAAG,SAAS,GAAG,SAAS,CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG,IAAI,CACpC,OAAO,CAAC,eAAe,CAAC,EACxB,UAAU,GAAG,SAAS,CACvB,GAAG;IACF;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,mBAAmB,GAAG,qBAAqB,GAC9C,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC/C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAEJ,KAAK,gCAAgC,GAAG;IACtC,mBAAmB,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,CAAC,gCAAgC,GAAG,mCAAmC,CAAC,CAAC"}
1
+ {"version":3,"file":"BannerBase.types.d.mts","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gDAAgD;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAe;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,4BAAkB;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,gCAAsB;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,0BAAgB;AAEzC,KAAK,2BAA2B,GAAG,IAAI,CACrC,OAAO,CAAC,WAAW,CAAC,EACpB,UAAU,GAAG,SAAS,GAAG,SAAS,CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG,IAAI,CACpC,OAAO,CAAC,eAAe,CAAC,EACxB,UAAU,GAAG,SAAS,CACvB,GAAG;IACF;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,qBAAqB,GAC9C,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC/C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAEJ,KAAK,gCAAgC,GAAG;IACtC,mBAAmB,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,CAAC,gCAAgC,GAAG,mCAAmC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BannerBase.types.mjs","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { BannerBasePropsShared } from '@metamask-previews/design-system-shared';\nimport type { MouseEventHandler } from 'react';\n\nimport type { BoxProps } from '../Box';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { TextProps } from '../Text';\n\ntype BannerBaseActionButtonProps = Omit<\n Partial<ButtonProps>,\n 'children' | 'onClick' | 'variant'\n>;\n\ntype BannerBaseCloseButtonProps = Omit<\n Partial<ButtonIconProps>,\n 'iconName' | 'onClick'\n> & {\n /**\n * Optional test id for the close button element.\n */\n 'data-testid'?: string;\n /**\n * Optional click handler for the close button.\n */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n};\n\ntype BannerBasePropsBase = BannerBasePropsShared &\n Omit<BoxProps, 'children'> & {\n /**\n * Optional props for the title `Text` when the title is a string.\n */\n titleProps?: Partial<TextProps>;\n /**\n * Optional props for the description `Text` when description is a string.\n */\n descriptionProps?: Partial<TextProps>;\n /**\n * Optional props for the children wrapper `Text` when children is a string.\n */\n childrenWrapperProps?: Partial<TextProps>;\n /**\n * Optional click handler for the close button.\n * If provided, a close button is shown.\n */\n onClose?: MouseEventHandler<HTMLButtonElement>;\n /**\n * Optional props for the close `ButtonIcon`.\n * Providing this also shows a close button.\n */\n closeButtonProps?: BannerBaseCloseButtonProps;\n };\n\ntype BannerBaseActionPropsWithHandler = {\n actionButtonOnClick: MouseEventHandler<HTMLButtonElement>;\n actionButtonLabel: string;\n actionButtonProps?: BannerBaseActionButtonProps;\n};\n\ntype BannerBaseActionPropsWithoutHandler = {\n actionButtonOnClick?: undefined;\n actionButtonLabel?: string;\n actionButtonProps?: BannerBaseActionButtonProps;\n};\n\nexport type BannerBaseProps = BannerBasePropsBase &\n (BannerBaseActionPropsWithHandler | BannerBaseActionPropsWithoutHandler);\n"]}
1
+ {"version":3,"file":"BannerBase.types.mjs","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { BannerBasePropsShared } from '@metamask-previews/design-system-shared';\nimport type { MouseEventHandler } from 'react';\n\nimport type { BoxProps } from '../Box';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { TextProps } from '../Text';\n\ntype BannerBaseActionButtonProps = Omit<\n Partial<ButtonProps>,\n 'children' | 'onClick' | 'variant'\n>;\n\ntype BannerBaseCloseButtonProps = Omit<\n Partial<ButtonIconProps>,\n 'iconName' | 'onClick'\n> & {\n /**\n * Optional test id for the close button element.\n */\n 'data-testid'?: string;\n};\n\ntype BannerBasePropsBase = BannerBasePropsShared &\n Omit<BoxProps, 'children'> & {\n /**\n * Optional props for the title `Text` when the title is a string.\n */\n titleProps?: Partial<TextProps>;\n /**\n * Optional props for the description `Text` when description is a string.\n */\n descriptionProps?: Partial<TextProps>;\n /**\n * Optional props for the children wrapper `Text` when children is a string.\n */\n childrenWrapperProps?: Partial<TextProps>;\n /**\n * Optional click handler for the close button.\n * If provided, a close button is shown.\n */\n onClose?: MouseEventHandler<HTMLButtonElement>;\n /**\n * Optional props for the close `ButtonIcon`.\n * Only used when `onClose` is provided.\n */\n closeButtonProps?: BannerBaseCloseButtonProps;\n };\n\ntype BannerBaseActionPropsWithHandler = {\n actionButtonOnClick: MouseEventHandler<HTMLButtonElement>;\n actionButtonLabel: string;\n actionButtonProps?: BannerBaseActionButtonProps;\n};\n\ntype BannerBaseActionPropsWithoutHandler = {\n actionButtonOnClick?: undefined;\n actionButtonLabel?: string;\n actionButtonProps?: BannerBaseActionButtonProps;\n};\n\nexport type BannerBaseProps = BannerBasePropsBase &\n (BannerBaseActionPropsWithHandler | BannerBaseActionPropsWithoutHandler);\n"]}
@@ -34,6 +34,13 @@ const ButtonBase_constants_1 = require("./ButtonBase.constants.cjs");
34
34
  exports.ButtonBase = (0, react_1.forwardRef)(({ children, className, size = design_system_shared_1.ButtonBaseSize.Lg, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, loadingTextProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'aria-pressed': ariaPressed, 'aria-expanded': ariaExpanded, 'aria-controls': ariaControls, 'aria-haspopup': ariaHaspopup, ...props }, ref) => {
35
35
  const Component = asChild ? react_slot_1.Slot : 'button';
36
36
  const isInteractive = !(isDisabled ?? isLoading);
37
+ const finalStartIconName = startIconName ?? startIconProps?.name;
38
+ const finalEndIconName = endIconName ?? endIconProps?.name;
39
+ const hasStart = Boolean(finalStartIconName || startAccessory);
40
+ const hasEnd = Boolean(finalEndIconName || endAccessory);
41
+ const hasAccessories = hasStart || hasEnd;
42
+ const iconSize = ButtonBase_constants_1.MAP_BUTTONBASE_SIZE_ICONSIZE[size];
43
+ const labelTextVariant = ButtonBase_constants_1.MAP_BUTTONBASE_SIZE_TEXT_VARIANT[size];
37
44
  // Calculate tabIndex based on asChild and disabled state
38
45
  const getTabIndex = () => {
39
46
  if (asChild) {
@@ -41,41 +48,42 @@ exports.ButtonBase = (0, react_1.forwardRef)(({ children, className, size = desi
41
48
  }
42
49
  return isDisabled ? -1 : undefined;
43
50
  };
51
+ const renderLabel = () => {
52
+ if (children && typeof children === 'string') {
53
+ return (react_1.default.createElement(Text_1.Text, { variant: labelTextVariant, fontWeight: Text_1.FontWeight.Medium, color: Text_1.TextColor.Inherit, asChild: true, ...textProps },
54
+ react_1.default.createElement("span", null, children)));
55
+ }
56
+ return children;
57
+ };
44
58
  const renderLoadingState = () => (react_1.default.createElement(react_1.default.Fragment, null,
45
- react_1.default.createElement("span", { className: "absolute inline-flex items-center", "aria-hidden": "true" },
46
- react_1.default.createElement(Icon_1.Icon, { name: design_system_shared_1.IconName.Loading, size: Icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('mr-2 animate-spin text-inherit', loadingIconProps?.className), ...loadingIconProps }),
47
- react_1.default.createElement(Text_1.Text, { fontWeight: Text_1.FontWeight.Medium, color: Text_1.TextColor.Inherit, asChild: true, ...loadingTextProps },
59
+ react_1.default.createElement("span", { className: "absolute inline-flex items-center gap-x-1", "aria-hidden": "true" },
60
+ react_1.default.createElement(Icon_1.Icon, { name: design_system_shared_1.IconName.Loading, size: iconSize, className: (0, tw_merge_1.twMerge)('animate-spin text-inherit', loadingIconProps?.className), ...loadingIconProps }),
61
+ react_1.default.createElement(Text_1.Text, { variant: labelTextVariant, fontWeight: Text_1.FontWeight.Medium, color: Text_1.TextColor.Inherit, asChild: true, ...loadingTextProps },
48
62
  react_1.default.createElement("span", null, loadingText))),
49
- react_1.default.createElement("span", { className: "invisible inline-flex items-center" }, children),
63
+ react_1.default.createElement("span", { className: "invisible inline-flex items-center", "aria-hidden": "true" }, renderLabel()),
50
64
  react_1.default.createElement("span", { className: "sr-only", "aria-live": "polite", "aria-atomic": "true" }, loadingText || 'Loading')));
51
65
  const renderStartContent = () => {
52
- if (startIconName) {
53
- return (react_1.default.createElement(Icon_1.Icon, { name: startIconName, size: Icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('mr-2 shrink-0 text-inherit', startIconProps?.className), "aria-hidden": "true", ...startIconProps }));
66
+ if (finalStartIconName) {
67
+ return (react_1.default.createElement(Icon_1.Icon, { name: finalStartIconName, size: iconSize, className: (0, tw_merge_1.twMerge)('shrink-0 text-inherit', startIconProps?.className), "aria-hidden": "true", ...startIconProps }));
54
68
  }
55
69
  if (startAccessory) {
56
- return (react_1.default.createElement("span", { className: "mr-2", "aria-hidden": "true" }, startAccessory));
70
+ return react_1.default.createElement("span", { "aria-hidden": "true" }, startAccessory);
57
71
  }
58
72
  return null;
59
73
  };
60
74
  const renderEndContent = () => {
61
- if (endIconName) {
62
- return (react_1.default.createElement(Icon_1.Icon, { name: endIconName, size: Icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('ml-2 shrink-0 text-inherit', endIconProps?.className), "aria-hidden": "true", ...endIconProps }));
75
+ if (finalEndIconName) {
76
+ return (react_1.default.createElement(Icon_1.Icon, { name: finalEndIconName, size: iconSize, className: (0, tw_merge_1.twMerge)('shrink-0 text-inherit', endIconProps?.className), "aria-hidden": "true", ...endIconProps }));
63
77
  }
64
78
  if (endAccessory) {
65
- return (react_1.default.createElement("span", { className: "ml-2", "aria-hidden": "true" }, endAccessory));
79
+ return react_1.default.createElement("span", { "aria-hidden": "true" }, endAccessory);
66
80
  }
67
81
  return null;
68
82
  };
69
- const renderContent = () => {
70
- if (children && typeof children === 'string') {
71
- return (react_1.default.createElement(Text_1.Text, { fontWeight: Text_1.FontWeight.Medium, color: Text_1.TextColor.Inherit, asChild: true, ...textProps },
72
- react_1.default.createElement("span", null, children)));
73
- }
74
- return children;
75
- };
83
+ const renderContent = () => renderLabel();
76
84
  const mergedClassName = (0, tw_merge_1.twMerge)(
77
85
  // Base styles
78
- 'inline-flex items-center justify-center', 'rounded-xl px-4', 'font-medium text-default', 'bg-muted', 'min-w-20 overflow-hidden',
86
+ 'inline-flex items-center justify-center', (0, ButtonBase_constants_1.getButtonBaseBorderRadiusTwClass)(size), (0, ButtonBase_constants_1.getButtonBaseHorizontalPaddingTwClasses)(size, hasStart, hasEnd), hasAccessories && 'gap-x-1', 'font-medium text-default', 'bg-muted', 'overflow-hidden',
79
87
  // Add relative positioning for loading state
80
88
  'relative',
81
89
  // Size
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ButtonBaseSize, IconName } from '@metamask-previews/design-system-shared';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Icon, IconSize } from '../Icon';\nimport { Text, FontWeight, TextColor } from '../Text';\n\nimport { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Lg,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n loadingTextProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-pressed': ariaPressed,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n 'aria-haspopup': ariaHaspopup,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n // Calculate tabIndex based on asChild and disabled state\n const getTabIndex = () => {\n if (asChild) {\n return undefined;\n }\n return isDisabled ? -1 : undefined;\n };\n\n const renderLoadingState = () => (\n <>\n <span className=\"absolute inline-flex items-center\" aria-hidden=\"true\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'mr-2 animate-spin text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n <Text\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...loadingTextProps}\n >\n <span>{loadingText}</span>\n </Text>\n </span>\n <span className=\"invisible inline-flex items-center\">{children}</span>\n {/* Screen reader announcement for loading */}\n <span className=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {loadingText || 'Loading'}\n </span>\n </>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge(\n 'mr-2 shrink-0 text-inherit',\n startIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {startAccessory}\n </span>\n );\n }\n return null;\n };\n\n const renderEndContent = () => {\n if (endIconName) {\n return (\n <Icon\n name={endIconName}\n size={IconSize.Sm}\n className={twMerge(\n 'ml-2 shrink-0 text-inherit',\n endIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return (\n <span className=\"ml-2\" aria-hidden=\"true\">\n {endAccessory}\n </span>\n );\n }\n return null;\n };\n\n const renderContent = () => {\n if (children && typeof children === 'string') {\n return (\n <Text\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...textProps}\n >\n <span>{children}</span>\n </Text>\n );\n }\n return children;\n };\n\n const mergedClassName = twMerge(\n // Base styles\n 'inline-flex items-center justify-center',\n 'rounded-xl px-4',\n 'font-medium text-default',\n 'bg-muted',\n 'min-w-20 overflow-hidden',\n // Add relative positioning for loading state\n 'relative',\n // Size\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-all',\n 'duration-100',\n 'ease-linear',\n 'active:scale-[0.97]',\n 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',\n ],\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'cursor-not-allowed',\n isDisabled && 'opacity-50',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : (isDisabled ?? isLoading)}\n aria-disabled={isDisabled ? 'true' : undefined}\n aria-busy={isLoading ? 'true' : undefined}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n aria-pressed={ariaPressed}\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n aria-haspopup={ariaHaspopup}\n role={asChild ? undefined : 'button'}\n tabIndex={getTabIndex()}\n style={style}\n {...props}\n >\n {renderStartContent()}\n <Slottable>\n {isLoading ? renderLoadingState() : renderContent()}\n </Slottable>\n {renderEndContent()}\n </Component>\n );\n },\n);\n\nButtonBase.displayName = 'ButtonBase';\n"]}
1
+ {"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ButtonBaseSize, IconName } from '@metamask-previews/design-system-shared';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Icon } from '../Icon';\nimport { Text, FontWeight, TextColor } from '../Text';\n\nimport {\n MAP_BUTTONBASE_SIZE_ICONSIZE,\n MAP_BUTTONBASE_SIZE_TEXT_VARIANT,\n getButtonBaseBorderRadiusTwClass,\n getButtonBaseHorizontalPaddingTwClasses,\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION,\n} from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Lg,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n loadingTextProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-pressed': ariaPressed,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n 'aria-haspopup': ariaHaspopup,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n const finalStartIconName = startIconName ?? startIconProps?.name;\n const finalEndIconName = endIconName ?? endIconProps?.name;\n const hasStart = Boolean(finalStartIconName || startAccessory);\n const hasEnd = Boolean(finalEndIconName || endAccessory);\n const hasAccessories = hasStart || hasEnd;\n const iconSize = MAP_BUTTONBASE_SIZE_ICONSIZE[size];\n const labelTextVariant = MAP_BUTTONBASE_SIZE_TEXT_VARIANT[size];\n\n // Calculate tabIndex based on asChild and disabled state\n const getTabIndex = () => {\n if (asChild) {\n return undefined;\n }\n return isDisabled ? -1 : undefined;\n };\n\n const renderLabel = () => {\n if (children && typeof children === 'string') {\n return (\n <Text\n variant={labelTextVariant}\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...textProps}\n >\n <span>{children}</span>\n </Text>\n );\n }\n return children;\n };\n\n const renderLoadingState = () => (\n <>\n <span\n className=\"absolute inline-flex items-center gap-x-1\"\n aria-hidden=\"true\"\n >\n <Icon\n name={IconName.Loading}\n size={iconSize}\n className={twMerge(\n 'animate-spin text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n <Text\n variant={labelTextVariant}\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...loadingTextProps}\n >\n <span>{loadingText}</span>\n </Text>\n </span>\n <span className=\"invisible inline-flex items-center\" aria-hidden=\"true\">\n {renderLabel()}\n </span>\n {/* Screen reader announcement for loading */}\n <span className=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {loadingText || 'Loading'}\n </span>\n </>\n );\n\n const renderStartContent = () => {\n if (finalStartIconName) {\n return (\n <Icon\n name={finalStartIconName}\n size={iconSize}\n className={twMerge(\n 'shrink-0 text-inherit',\n startIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span aria-hidden=\"true\">{startAccessory}</span>;\n }\n return null;\n };\n\n const renderEndContent = () => {\n if (finalEndIconName) {\n return (\n <Icon\n name={finalEndIconName}\n size={iconSize}\n className={twMerge(\n 'shrink-0 text-inherit',\n endIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span aria-hidden=\"true\">{endAccessory}</span>;\n }\n return null;\n };\n\n const renderContent = () => renderLabel();\n\n const mergedClassName = twMerge(\n // Base styles\n 'inline-flex items-center justify-center',\n getButtonBaseBorderRadiusTwClass(size),\n getButtonBaseHorizontalPaddingTwClasses(size, hasStart, hasEnd),\n hasAccessories && 'gap-x-1',\n 'font-medium text-default',\n 'bg-muted',\n 'overflow-hidden',\n // Add relative positioning for loading state\n 'relative',\n // Size\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-all',\n 'duration-100',\n 'ease-linear',\n 'active:scale-[0.97]',\n 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',\n ],\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'cursor-not-allowed',\n isDisabled && 'opacity-50',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : (isDisabled ?? isLoading)}\n aria-disabled={isDisabled ? 'true' : undefined}\n aria-busy={isLoading ? 'true' : undefined}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n aria-pressed={ariaPressed}\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n aria-haspopup={ariaHaspopup}\n role={asChild ? undefined : 'button'}\n tabIndex={getTabIndex()}\n style={style}\n {...props}\n >\n {renderStartContent()}\n <Slottable>\n {isLoading ? renderLoadingState() : renderContent()}\n </Slottable>\n {renderEndContent()}\n </Component>\n );\n },\n);\n\nButtonBase.displayName = 'ButtonBase';\n"]}
@@ -1,10 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION = void 0;
3
+ exports.getButtonBaseHorizontalPaddingTwClasses = exports.getButtonBaseBorderRadiusTwClass = exports.MAP_BUTTONBASE_SIZE_TEXT_VARIANT = exports.MAP_BUTTONBASE_SIZE_ICONSIZE = exports.TWCLASSMAP_BUTTONBASE_BORDER_RADIUS = exports.TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION = void 0;
4
4
  const design_system_shared_1 = require("@metamask-previews/design-system-shared");
5
5
  exports.TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION = {
6
6
  [design_system_shared_1.ButtonBaseSize.Sm]: 'h-8',
7
7
  [design_system_shared_1.ButtonBaseSize.Md]: 'h-10',
8
8
  [design_system_shared_1.ButtonBaseSize.Lg]: 'h-12', // size (48px).
9
9
  };
10
+ exports.TWCLASSMAP_BUTTONBASE_BORDER_RADIUS = {
11
+ [design_system_shared_1.ButtonBaseSize.Sm]: 'rounded-lg',
12
+ [design_system_shared_1.ButtonBaseSize.Md]: 'rounded-xl',
13
+ [design_system_shared_1.ButtonBaseSize.Lg]: 'rounded-xl', // 12px.
14
+ };
15
+ exports.MAP_BUTTONBASE_SIZE_ICONSIZE = {
16
+ [design_system_shared_1.ButtonBaseSize.Sm]: design_system_shared_1.IconSize.Sm,
17
+ [design_system_shared_1.ButtonBaseSize.Md]: design_system_shared_1.IconSize.Sm,
18
+ [design_system_shared_1.ButtonBaseSize.Lg]: design_system_shared_1.IconSize.Md,
19
+ };
20
+ exports.MAP_BUTTONBASE_SIZE_TEXT_VARIANT = {
21
+ [design_system_shared_1.ButtonBaseSize.Sm]: design_system_shared_1.TextVariant.BodySm,
22
+ [design_system_shared_1.ButtonBaseSize.Md]: design_system_shared_1.TextVariant.BodyMd,
23
+ [design_system_shared_1.ButtonBaseSize.Lg]: design_system_shared_1.TextVariant.BodyMd,
24
+ };
25
+ const getButtonBaseBorderRadiusTwClass = (size) => exports.TWCLASSMAP_BUTTONBASE_BORDER_RADIUS[size];
26
+ exports.getButtonBaseBorderRadiusTwClass = getButtonBaseBorderRadiusTwClass;
27
+ const getButtonBaseHorizontalPaddingTwClasses = (buttonSize, hasStart, hasEnd) => {
28
+ if (buttonSize !== design_system_shared_1.ButtonBaseSize.Lg || (hasStart && hasEnd)) {
29
+ return 'px-3';
30
+ }
31
+ if (!hasStart && !hasEnd) {
32
+ return 'px-4';
33
+ }
34
+ if (hasStart) {
35
+ return 'pl-3 pr-4';
36
+ }
37
+ return 'pl-4 pr-3';
38
+ };
39
+ exports.getButtonBaseHorizontalPaddingTwClasses = getButtonBaseHorizontalPaddingTwClasses;
10
40
  //# sourceMappingURL=ButtonBase.constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.constants.cjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":";;;AAAA,kFAAyE;AAE5D,QAAA,oCAAoC,GAG7C;IACF,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,KAAK;IAC1B,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,MAAM;IAC3B,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe;CAC7C,CAAC","sourcesContent":["import { ButtonBaseSize } from '@metamask-previews/design-system-shared';\n\nexport const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION: Record<\n ButtonBaseSize,\n string\n> = {\n [ButtonBaseSize.Sm]: 'h-8', // size (32px).\n [ButtonBaseSize.Md]: 'h-10', // size (40px).\n [ButtonBaseSize.Lg]: 'h-12', // size (48px).\n};\n"]}
1
+ {"version":3,"file":"ButtonBase.constants.cjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":";;;AAAA,kFAIiD;AAEpC,QAAA,oCAAoC,GAG7C;IACF,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,KAAK;IAC1B,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,MAAM;IAC3B,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe;CAC7C,CAAC;AAEW,QAAA,mCAAmC,GAG5C;IACF,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,YAAY;IACjC,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,YAAY;IACjC,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ;CAC5C,CAAC;AAEW,QAAA,4BAA4B,GAAqC;IAC5E,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,+BAAQ,CAAC,EAAE;IAChC,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,+BAAQ,CAAC,EAAE;IAChC,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,+BAAQ,CAAC,EAAE;CACjC,CAAC;AAEW,QAAA,gCAAgC,GAGzC;IACF,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,kCAAW,CAAC,MAAM;IACvC,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,kCAAW,CAAC,MAAM;IACvC,CAAC,qCAAc,CAAC,EAAE,CAAC,EAAE,kCAAW,CAAC,MAAM;CACxC,CAAC;AAEK,MAAM,gCAAgC,GAAG,CAC9C,IAAoB,EACZ,EAAE,CAAC,2CAAmC,CAAC,IAAI,CAAC,CAAC;AAF1C,QAAA,gCAAgC,oCAEU;AAEhD,MAAM,uCAAuC,GAAG,CACrD,UAA0B,EAC1B,QAAiB,EACjB,MAAe,EACP,EAAE;IACV,IAAI,UAAU,KAAK,qCAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;QAC5D,OAAO,MAAM,CAAC;KACf;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;QACxB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,QAAQ,EAAE;QACZ,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAfW,QAAA,uCAAuC,2CAelD","sourcesContent":["import {\n ButtonBaseSize,\n IconSize,\n TextVariant,\n} from '@metamask-previews/design-system-shared';\n\nexport const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION: Record<\n ButtonBaseSize,\n string\n> = {\n [ButtonBaseSize.Sm]: 'h-8', // size (32px).\n [ButtonBaseSize.Md]: 'h-10', // size (40px).\n [ButtonBaseSize.Lg]: 'h-12', // size (48px).\n};\n\nexport const TWCLASSMAP_BUTTONBASE_BORDER_RADIUS: Record<\n ButtonBaseSize,\n string\n> = {\n [ButtonBaseSize.Sm]: 'rounded-lg', // 8px.\n [ButtonBaseSize.Md]: 'rounded-xl', // 12px.\n [ButtonBaseSize.Lg]: 'rounded-xl', // 12px.\n};\n\nexport const MAP_BUTTONBASE_SIZE_ICONSIZE: Record<ButtonBaseSize, IconSize> = {\n [ButtonBaseSize.Sm]: IconSize.Sm,\n [ButtonBaseSize.Md]: IconSize.Sm,\n [ButtonBaseSize.Lg]: IconSize.Md,\n};\n\nexport const MAP_BUTTONBASE_SIZE_TEXT_VARIANT: Record<\n ButtonBaseSize,\n TextVariant\n> = {\n [ButtonBaseSize.Sm]: TextVariant.BodySm,\n [ButtonBaseSize.Md]: TextVariant.BodyMd,\n [ButtonBaseSize.Lg]: TextVariant.BodyMd,\n};\n\nexport const getButtonBaseBorderRadiusTwClass = (\n size: ButtonBaseSize,\n): string => TWCLASSMAP_BUTTONBASE_BORDER_RADIUS[size];\n\nexport const getButtonBaseHorizontalPaddingTwClasses = (\n buttonSize: ButtonBaseSize,\n hasStart: boolean,\n hasEnd: boolean,\n): string => {\n if (buttonSize !== ButtonBaseSize.Lg || (hasStart && hasEnd)) {\n return 'px-3';\n }\n if (!hasStart && !hasEnd) {\n return 'px-4';\n }\n if (hasStart) {\n return 'pl-3 pr-4';\n }\n return 'pl-4 pr-3';\n};\n"]}
@@ -1,3 +1,8 @@
1
- import { ButtonBaseSize } from "@metamask-previews/design-system-shared";
1
+ import { ButtonBaseSize, IconSize, TextVariant } from "@metamask-previews/design-system-shared";
2
2
  export declare const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION: Record<ButtonBaseSize, string>;
3
+ export declare const TWCLASSMAP_BUTTONBASE_BORDER_RADIUS: Record<ButtonBaseSize, string>;
4
+ export declare const MAP_BUTTONBASE_SIZE_ICONSIZE: Record<ButtonBaseSize, IconSize>;
5
+ export declare const MAP_BUTTONBASE_SIZE_TEXT_VARIANT: Record<ButtonBaseSize, TextVariant>;
6
+ export declare const getButtonBaseBorderRadiusTwClass: (size: ButtonBaseSize) => string;
7
+ export declare const getButtonBaseHorizontalPaddingTwClasses: (buttonSize: ButtonBaseSize, hasStart: boolean, hasEnd: boolean) => string;
3
8
  //# sourceMappingURL=ButtonBase.constants.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.constants.d.cts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gDAAgD;AAEzE,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACvD,cAAc,EACd,MAAM,CAKP,CAAC"}
1
+ {"version":3,"file":"ButtonBase.constants.d.cts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,WAAW,EACZ,gDAAgD;AAEjD,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACvD,cAAc,EACd,MAAM,CAKP,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CACtD,cAAc,EACd,MAAM,CAKP,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,cAAc,EAAE,QAAQ,CAIzE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,cAAc,EACd,WAAW,CAKZ,CAAC;AAEF,eAAO,MAAM,gCAAgC,SACrC,cAAc,KACnB,MAAmD,CAAC;AAEvD,eAAO,MAAM,uCAAuC,eACtC,cAAc,YAChB,OAAO,UACT,OAAO,KACd,MAWF,CAAC"}
@@ -1,3 +1,8 @@
1
- import { ButtonBaseSize } from "@metamask-previews/design-system-shared";
1
+ import { ButtonBaseSize, IconSize, TextVariant } from "@metamask-previews/design-system-shared";
2
2
  export declare const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION: Record<ButtonBaseSize, string>;
3
+ export declare const TWCLASSMAP_BUTTONBASE_BORDER_RADIUS: Record<ButtonBaseSize, string>;
4
+ export declare const MAP_BUTTONBASE_SIZE_ICONSIZE: Record<ButtonBaseSize, IconSize>;
5
+ export declare const MAP_BUTTONBASE_SIZE_TEXT_VARIANT: Record<ButtonBaseSize, TextVariant>;
6
+ export declare const getButtonBaseBorderRadiusTwClass: (size: ButtonBaseSize) => string;
7
+ export declare const getButtonBaseHorizontalPaddingTwClasses: (buttonSize: ButtonBaseSize, hasStart: boolean, hasEnd: boolean) => string;
3
8
  //# sourceMappingURL=ButtonBase.constants.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.constants.d.mts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gDAAgD;AAEzE,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACvD,cAAc,EACd,MAAM,CAKP,CAAC"}
1
+ {"version":3,"file":"ButtonBase.constants.d.mts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,WAAW,EACZ,gDAAgD;AAEjD,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACvD,cAAc,EACd,MAAM,CAKP,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CACtD,cAAc,EACd,MAAM,CAKP,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,cAAc,EAAE,QAAQ,CAIzE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,cAAc,EACd,WAAW,CAKZ,CAAC;AAEF,eAAO,MAAM,gCAAgC,SACrC,cAAc,KACnB,MAAmD,CAAC;AAEvD,eAAO,MAAM,uCAAuC,eACtC,cAAc,YAChB,OAAO,UACT,OAAO,KACd,MAWF,CAAC"}
@@ -1,7 +1,35 @@
1
- import { ButtonBaseSize } from "@metamask-previews/design-system-shared";
1
+ import { ButtonBaseSize, IconSize, TextVariant } from "@metamask-previews/design-system-shared";
2
2
  export const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION = {
3
3
  [ButtonBaseSize.Sm]: 'h-8',
4
4
  [ButtonBaseSize.Md]: 'h-10',
5
5
  [ButtonBaseSize.Lg]: 'h-12', // size (48px).
6
6
  };
7
+ export const TWCLASSMAP_BUTTONBASE_BORDER_RADIUS = {
8
+ [ButtonBaseSize.Sm]: 'rounded-lg',
9
+ [ButtonBaseSize.Md]: 'rounded-xl',
10
+ [ButtonBaseSize.Lg]: 'rounded-xl', // 12px.
11
+ };
12
+ export const MAP_BUTTONBASE_SIZE_ICONSIZE = {
13
+ [ButtonBaseSize.Sm]: IconSize.Sm,
14
+ [ButtonBaseSize.Md]: IconSize.Sm,
15
+ [ButtonBaseSize.Lg]: IconSize.Md,
16
+ };
17
+ export const MAP_BUTTONBASE_SIZE_TEXT_VARIANT = {
18
+ [ButtonBaseSize.Sm]: TextVariant.BodySm,
19
+ [ButtonBaseSize.Md]: TextVariant.BodyMd,
20
+ [ButtonBaseSize.Lg]: TextVariant.BodyMd,
21
+ };
22
+ export const getButtonBaseBorderRadiusTwClass = (size) => TWCLASSMAP_BUTTONBASE_BORDER_RADIUS[size];
23
+ export const getButtonBaseHorizontalPaddingTwClasses = (buttonSize, hasStart, hasEnd) => {
24
+ if (buttonSize !== ButtonBaseSize.Lg || (hasStart && hasEnd)) {
25
+ return 'px-3';
26
+ }
27
+ if (!hasStart && !hasEnd) {
28
+ return 'px-4';
29
+ }
30
+ if (hasStart) {
31
+ return 'pl-3 pr-4';
32
+ }
33
+ return 'pl-4 pr-3';
34
+ };
7
35
  //# sourceMappingURL=ButtonBase.constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.constants.mjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gDAAgD;AAEzE,MAAM,CAAC,MAAM,oCAAoC,GAG7C;IACF,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK;IAC1B,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM;IAC3B,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe;CAC7C,CAAC","sourcesContent":["import { ButtonBaseSize } from '@metamask-previews/design-system-shared';\n\nexport const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION: Record<\n ButtonBaseSize,\n string\n> = {\n [ButtonBaseSize.Sm]: 'h-8', // size (32px).\n [ButtonBaseSize.Md]: 'h-10', // size (40px).\n [ButtonBaseSize.Lg]: 'h-12', // size (48px).\n};\n"]}
1
+ {"version":3,"file":"ButtonBase.constants.mjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,WAAW,EACZ,gDAAgD;AAEjD,MAAM,CAAC,MAAM,oCAAoC,GAG7C;IACF,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK;IAC1B,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM;IAC3B,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAG5C;IACF,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,YAAY;IACjC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,YAAY;IACjC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;IAChC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;IAChC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAGzC;IACF,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM;IACvC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM;IACvC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,IAAoB,EACZ,EAAE,CAAC,mCAAmC,CAAC,IAAI,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,uCAAuC,GAAG,CACrD,UAA0B,EAC1B,QAAiB,EACjB,MAAe,EACP,EAAE;IACV,IAAI,UAAU,KAAK,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;QAC5D,OAAO,MAAM,CAAC;KACf;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;QACxB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,QAAQ,EAAE;QACZ,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC","sourcesContent":["import {\n ButtonBaseSize,\n IconSize,\n TextVariant,\n} from '@metamask-previews/design-system-shared';\n\nexport const TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION: Record<\n ButtonBaseSize,\n string\n> = {\n [ButtonBaseSize.Sm]: 'h-8', // size (32px).\n [ButtonBaseSize.Md]: 'h-10', // size (40px).\n [ButtonBaseSize.Lg]: 'h-12', // size (48px).\n};\n\nexport const TWCLASSMAP_BUTTONBASE_BORDER_RADIUS: Record<\n ButtonBaseSize,\n string\n> = {\n [ButtonBaseSize.Sm]: 'rounded-lg', // 8px.\n [ButtonBaseSize.Md]: 'rounded-xl', // 12px.\n [ButtonBaseSize.Lg]: 'rounded-xl', // 12px.\n};\n\nexport const MAP_BUTTONBASE_SIZE_ICONSIZE: Record<ButtonBaseSize, IconSize> = {\n [ButtonBaseSize.Sm]: IconSize.Sm,\n [ButtonBaseSize.Md]: IconSize.Sm,\n [ButtonBaseSize.Lg]: IconSize.Md,\n};\n\nexport const MAP_BUTTONBASE_SIZE_TEXT_VARIANT: Record<\n ButtonBaseSize,\n TextVariant\n> = {\n [ButtonBaseSize.Sm]: TextVariant.BodySm,\n [ButtonBaseSize.Md]: TextVariant.BodyMd,\n [ButtonBaseSize.Lg]: TextVariant.BodyMd,\n};\n\nexport const getButtonBaseBorderRadiusTwClass = (\n size: ButtonBaseSize,\n): string => TWCLASSMAP_BUTTONBASE_BORDER_RADIUS[size];\n\nexport const getButtonBaseHorizontalPaddingTwClasses = (\n buttonSize: ButtonBaseSize,\n hasStart: boolean,\n hasEnd: boolean,\n): string => {\n if (buttonSize !== ButtonBaseSize.Lg || (hasStart && hasEnd)) {\n return 'px-3';\n }\n if (!hasStart && !hasEnd) {\n return 'px-4';\n }\n if (hasStart) {\n return 'pl-3 pr-4';\n }\n return 'pl-4 pr-3';\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,cAAc;AAO1C,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,wGAiMtB,CAAC"}
1
+ {"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,cAAc;AAa1C,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,wGA4MtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,cAAc;AAO1C,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,wGAiMtB,CAAC"}
1
+ {"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,cAAc;AAa1C,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,wGA4MtB,CAAC"}
@@ -9,12 +9,19 @@ import { Slot, Slottable } from "@radix-ui/react-slot";
9
9
  import $React, { forwardRef } from "react";
10
10
  const React = $importDefault($React);
11
11
  import { twMerge } from "../../utils/tw-merge.mjs";
12
- import { Icon, IconSize } from "../Icon/index.mjs";
12
+ import { Icon } from "../Icon/index.mjs";
13
13
  import { Text, FontWeight, TextColor } from "../Text/index.mjs";
14
- import { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from "./ButtonBase.constants.mjs";
14
+ import { MAP_BUTTONBASE_SIZE_ICONSIZE, MAP_BUTTONBASE_SIZE_TEXT_VARIANT, getButtonBaseBorderRadiusTwClass, getButtonBaseHorizontalPaddingTwClasses, TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from "./ButtonBase.constants.mjs";
15
15
  export const ButtonBase = forwardRef(({ children, className, size = ButtonBaseSize.Lg, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, loadingTextProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'aria-pressed': ariaPressed, 'aria-expanded': ariaExpanded, 'aria-controls': ariaControls, 'aria-haspopup': ariaHaspopup, ...props }, ref) => {
16
16
  const Component = asChild ? Slot : 'button';
17
17
  const isInteractive = !(isDisabled ?? isLoading);
18
+ const finalStartIconName = startIconName ?? startIconProps?.name;
19
+ const finalEndIconName = endIconName ?? endIconProps?.name;
20
+ const hasStart = Boolean(finalStartIconName || startAccessory);
21
+ const hasEnd = Boolean(finalEndIconName || endAccessory);
22
+ const hasAccessories = hasStart || hasEnd;
23
+ const iconSize = MAP_BUTTONBASE_SIZE_ICONSIZE[size];
24
+ const labelTextVariant = MAP_BUTTONBASE_SIZE_TEXT_VARIANT[size];
18
25
  // Calculate tabIndex based on asChild and disabled state
19
26
  const getTabIndex = () => {
20
27
  if (asChild) {
@@ -22,41 +29,42 @@ export const ButtonBase = forwardRef(({ children, className, size = ButtonBaseSi
22
29
  }
23
30
  return isDisabled ? -1 : undefined;
24
31
  };
32
+ const renderLabel = () => {
33
+ if (children && typeof children === 'string') {
34
+ return (React.createElement(Text, { variant: labelTextVariant, fontWeight: FontWeight.Medium, color: TextColor.Inherit, asChild: true, ...textProps },
35
+ React.createElement("span", null, children)));
36
+ }
37
+ return children;
38
+ };
25
39
  const renderLoadingState = () => (React.createElement(React.Fragment, null,
26
- React.createElement("span", { className: "absolute inline-flex items-center", "aria-hidden": "true" },
27
- React.createElement(Icon, { name: IconName.Loading, size: IconSize.Sm, className: twMerge('mr-2 animate-spin text-inherit', loadingIconProps?.className), ...loadingIconProps }),
28
- React.createElement(Text, { fontWeight: FontWeight.Medium, color: TextColor.Inherit, asChild: true, ...loadingTextProps },
40
+ React.createElement("span", { className: "absolute inline-flex items-center gap-x-1", "aria-hidden": "true" },
41
+ React.createElement(Icon, { name: IconName.Loading, size: iconSize, className: twMerge('animate-spin text-inherit', loadingIconProps?.className), ...loadingIconProps }),
42
+ React.createElement(Text, { variant: labelTextVariant, fontWeight: FontWeight.Medium, color: TextColor.Inherit, asChild: true, ...loadingTextProps },
29
43
  React.createElement("span", null, loadingText))),
30
- React.createElement("span", { className: "invisible inline-flex items-center" }, children),
44
+ React.createElement("span", { className: "invisible inline-flex items-center", "aria-hidden": "true" }, renderLabel()),
31
45
  React.createElement("span", { className: "sr-only", "aria-live": "polite", "aria-atomic": "true" }, loadingText || 'Loading')));
32
46
  const renderStartContent = () => {
33
- if (startIconName) {
34
- return (React.createElement(Icon, { name: startIconName, size: IconSize.Sm, className: twMerge('mr-2 shrink-0 text-inherit', startIconProps?.className), "aria-hidden": "true", ...startIconProps }));
47
+ if (finalStartIconName) {
48
+ return (React.createElement(Icon, { name: finalStartIconName, size: iconSize, className: twMerge('shrink-0 text-inherit', startIconProps?.className), "aria-hidden": "true", ...startIconProps }));
35
49
  }
36
50
  if (startAccessory) {
37
- return (React.createElement("span", { className: "mr-2", "aria-hidden": "true" }, startAccessory));
51
+ return React.createElement("span", { "aria-hidden": "true" }, startAccessory);
38
52
  }
39
53
  return null;
40
54
  };
41
55
  const renderEndContent = () => {
42
- if (endIconName) {
43
- return (React.createElement(Icon, { name: endIconName, size: IconSize.Sm, className: twMerge('ml-2 shrink-0 text-inherit', endIconProps?.className), "aria-hidden": "true", ...endIconProps }));
56
+ if (finalEndIconName) {
57
+ return (React.createElement(Icon, { name: finalEndIconName, size: iconSize, className: twMerge('shrink-0 text-inherit', endIconProps?.className), "aria-hidden": "true", ...endIconProps }));
44
58
  }
45
59
  if (endAccessory) {
46
- return (React.createElement("span", { className: "ml-2", "aria-hidden": "true" }, endAccessory));
60
+ return React.createElement("span", { "aria-hidden": "true" }, endAccessory);
47
61
  }
48
62
  return null;
49
63
  };
50
- const renderContent = () => {
51
- if (children && typeof children === 'string') {
52
- return (React.createElement(Text, { fontWeight: FontWeight.Medium, color: TextColor.Inherit, asChild: true, ...textProps },
53
- React.createElement("span", null, children)));
54
- }
55
- return children;
56
- };
64
+ const renderContent = () => renderLabel();
57
65
  const mergedClassName = twMerge(
58
66
  // Base styles
59
- 'inline-flex items-center justify-center', 'rounded-xl px-4', 'font-medium text-default', 'bg-muted', 'min-w-20 overflow-hidden',
67
+ 'inline-flex items-center justify-center', getButtonBaseBorderRadiusTwClass(size), getButtonBaseHorizontalPaddingTwClasses(size, hasStart, hasEnd), hasAccessories && 'gap-x-1', 'font-medium text-default', 'bg-muted', 'overflow-hidden',
60
68
  // Add relative positioning for loading state
61
69
  'relative',
62
70
  // Size
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ButtonBaseSize, IconName } from '@metamask-previews/design-system-shared';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Icon, IconSize } from '../Icon';\nimport { Text, FontWeight, TextColor } from '../Text';\n\nimport { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Lg,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n loadingTextProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-pressed': ariaPressed,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n 'aria-haspopup': ariaHaspopup,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n // Calculate tabIndex based on asChild and disabled state\n const getTabIndex = () => {\n if (asChild) {\n return undefined;\n }\n return isDisabled ? -1 : undefined;\n };\n\n const renderLoadingState = () => (\n <>\n <span className=\"absolute inline-flex items-center\" aria-hidden=\"true\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'mr-2 animate-spin text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n <Text\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...loadingTextProps}\n >\n <span>{loadingText}</span>\n </Text>\n </span>\n <span className=\"invisible inline-flex items-center\">{children}</span>\n {/* Screen reader announcement for loading */}\n <span className=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {loadingText || 'Loading'}\n </span>\n </>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge(\n 'mr-2 shrink-0 text-inherit',\n startIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {startAccessory}\n </span>\n );\n }\n return null;\n };\n\n const renderEndContent = () => {\n if (endIconName) {\n return (\n <Icon\n name={endIconName}\n size={IconSize.Sm}\n className={twMerge(\n 'ml-2 shrink-0 text-inherit',\n endIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return (\n <span className=\"ml-2\" aria-hidden=\"true\">\n {endAccessory}\n </span>\n );\n }\n return null;\n };\n\n const renderContent = () => {\n if (children && typeof children === 'string') {\n return (\n <Text\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...textProps}\n >\n <span>{children}</span>\n </Text>\n );\n }\n return children;\n };\n\n const mergedClassName = twMerge(\n // Base styles\n 'inline-flex items-center justify-center',\n 'rounded-xl px-4',\n 'font-medium text-default',\n 'bg-muted',\n 'min-w-20 overflow-hidden',\n // Add relative positioning for loading state\n 'relative',\n // Size\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-all',\n 'duration-100',\n 'ease-linear',\n 'active:scale-[0.97]',\n 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',\n ],\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'cursor-not-allowed',\n isDisabled && 'opacity-50',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : (isDisabled ?? isLoading)}\n aria-disabled={isDisabled ? 'true' : undefined}\n aria-busy={isLoading ? 'true' : undefined}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n aria-pressed={ariaPressed}\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n aria-haspopup={ariaHaspopup}\n role={asChild ? undefined : 'button'}\n tabIndex={getTabIndex()}\n style={style}\n {...props}\n >\n {renderStartContent()}\n <Slottable>\n {isLoading ? renderLoadingState() : renderContent()}\n </Slottable>\n {renderEndContent()}\n </Component>\n );\n },\n);\n\nButtonBase.displayName = 'ButtonBase';\n"]}
1
+ {"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gDAAgD;AACnF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,6BAA6B;AACvD,OAAO,QAAO,EAAE,UAAU,EAAE,cAAc;;AAE1C,OAAO,EAAE,OAAO,EAAE,iCAA6B;AAC/C,OAAO,EAAE,IAAI,EAAE,0BAAgB;AAC/B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,0BAAgB;AAEtD,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,uCAAuC,EACvC,oCAAoC,EACrC,mCAA+B;AAGhC,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAClC,CACE,EACE,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,cAAc,CAAC,EAAE,EACxB,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,kBAAkB,EAAE,eAAe,EACnC,cAAc,EAAE,WAAW,EAC3B,eAAe,EAAE,YAAY,EAC7B,eAAe,EAAE,YAAY,EAC7B,eAAe,EAAE,YAAY,EAC7B,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5C,MAAM,aAAa,GAAG,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;IAEjD,MAAM,kBAAkB,GAAG,aAAa,IAAI,cAAc,EAAE,IAAI,CAAC;IACjE,MAAM,gBAAgB,GAAG,WAAW,IAAI,YAAY,EAAE,IAAI,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,IAAI,cAAc,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,IAAI,YAAY,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,QAAQ,IAAI,MAAM,CAAC;IAC1C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAEhE,yDAAyD;IACzD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,OAAO,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC5C,OAAO,CACL,oBAAC,IAAI,IACH,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,UAAU,CAAC,MAAM,EAC7B,KAAK,EAAE,SAAS,CAAC,OAAO,EACxB,OAAO,WACH,SAAS;gBAEb,kCAAO,QAAQ,CAAQ,CAClB,CACR,CAAC;SACH;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,CAC/B;QACE,8BACE,SAAS,EAAC,2CAA2C,iBACzC,MAAM;YAElB,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,OAAO,CAChB,2BAA2B,EAC3B,gBAAgB,EAAE,SAAS,CAC5B,KACG,gBAAgB,GACpB;YACF,oBAAC,IAAI,IACH,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,UAAU,CAAC,MAAM,EAC7B,KAAK,EAAE,SAAS,CAAC,OAAO,EACxB,OAAO,WACH,gBAAgB;gBAEpB,kCAAO,WAAW,CAAQ,CACrB,CACF;QACP,8BAAM,SAAS,EAAC,oCAAoC,iBAAa,MAAM,IACpE,WAAW,EAAE,CACT;QAEP,8BAAM,SAAS,EAAC,SAAS,eAAW,QAAQ,iBAAa,MAAM,IAC5D,WAAW,IAAI,SAAS,CACpB,CACN,CACJ,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,kBAAkB,EAAE;YACtB,OAAO,CACL,oBAAC,IAAI,IACH,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,OAAO,CAChB,uBAAuB,EACvB,cAAc,EAAE,SAAS,CAC1B,iBACW,MAAM,KACd,cAAc,GAClB,CACH,CAAC;SACH;QACD,IAAI,cAAc,EAAE;YAClB,OAAO,6CAAkB,MAAM,IAAE,cAAc,CAAQ,CAAC;SACzD;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,gBAAgB,EAAE;YACpB,OAAO,CACL,oBAAC,IAAI,IACH,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,OAAO,CAChB,uBAAuB,EACvB,YAAY,EAAE,SAAS,CACxB,iBACW,MAAM,KACd,YAAY,GAChB,CACH,CAAC;SACH;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,6CAAkB,MAAM,IAAE,YAAY,CAAQ,CAAC;SACvD;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAE1C,MAAM,eAAe,GAAG,OAAO;IAC7B,cAAc;IACd,yCAAyC,EACzC,gCAAgC,CAAC,IAAI,CAAC,EACtC,uCAAuC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAC/D,cAAc,IAAI,SAAS,EAC3B,0BAA0B,EAC1B,UAAU,EACV,iBAAiB;IACjB,6CAA6C;IAC7C,UAAU;IACV,OAAO;IACP,oCAAoC,CAAC,IAAI,CAAC;IAC1C,aAAa;IACb,WAAW,IAAI,QAAQ;IACvB,oDAAoD;IACpD,aAAa,IAAI;QACf,gBAAgB;QAChB,cAAc;QACd,aAAa;QACb,qBAAqB;QACrB,2CAA2C;KAC5C;IACD,0DAA0D;IAC1D,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,oBAAoB,EACjD,UAAU,IAAI,YAAY;IAC1B,iBAAiB;IACjB,SAAS,CACV,CAAC;IAEF,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,mBAC1C,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,eACnC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gBAC7B,SAAS,qBACJ,cAAc,sBACb,eAAe,kBACnB,WAAW,mBACV,YAAY,mBACZ,YAAY,mBACZ,YAAY,EAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACpC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,KAAK,KACR,KAAK;QAER,kBAAkB,EAAE;QACrB,oBAAC,SAAS,QACP,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CACzC;QACX,gBAAgB,EAAE,CACT,CACb,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC","sourcesContent":["import { ButtonBaseSize, IconName } from '@metamask-previews/design-system-shared';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Icon } from '../Icon';\nimport { Text, FontWeight, TextColor } from '../Text';\n\nimport {\n MAP_BUTTONBASE_SIZE_ICONSIZE,\n MAP_BUTTONBASE_SIZE_TEXT_VARIANT,\n getButtonBaseBorderRadiusTwClass,\n getButtonBaseHorizontalPaddingTwClasses,\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION,\n} from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Lg,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n loadingTextProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-pressed': ariaPressed,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n 'aria-haspopup': ariaHaspopup,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n const finalStartIconName = startIconName ?? startIconProps?.name;\n const finalEndIconName = endIconName ?? endIconProps?.name;\n const hasStart = Boolean(finalStartIconName || startAccessory);\n const hasEnd = Boolean(finalEndIconName || endAccessory);\n const hasAccessories = hasStart || hasEnd;\n const iconSize = MAP_BUTTONBASE_SIZE_ICONSIZE[size];\n const labelTextVariant = MAP_BUTTONBASE_SIZE_TEXT_VARIANT[size];\n\n // Calculate tabIndex based on asChild and disabled state\n const getTabIndex = () => {\n if (asChild) {\n return undefined;\n }\n return isDisabled ? -1 : undefined;\n };\n\n const renderLabel = () => {\n if (children && typeof children === 'string') {\n return (\n <Text\n variant={labelTextVariant}\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...textProps}\n >\n <span>{children}</span>\n </Text>\n );\n }\n return children;\n };\n\n const renderLoadingState = () => (\n <>\n <span\n className=\"absolute inline-flex items-center gap-x-1\"\n aria-hidden=\"true\"\n >\n <Icon\n name={IconName.Loading}\n size={iconSize}\n className={twMerge(\n 'animate-spin text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n <Text\n variant={labelTextVariant}\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...loadingTextProps}\n >\n <span>{loadingText}</span>\n </Text>\n </span>\n <span className=\"invisible inline-flex items-center\" aria-hidden=\"true\">\n {renderLabel()}\n </span>\n {/* Screen reader announcement for loading */}\n <span className=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {loadingText || 'Loading'}\n </span>\n </>\n );\n\n const renderStartContent = () => {\n if (finalStartIconName) {\n return (\n <Icon\n name={finalStartIconName}\n size={iconSize}\n className={twMerge(\n 'shrink-0 text-inherit',\n startIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span aria-hidden=\"true\">{startAccessory}</span>;\n }\n return null;\n };\n\n const renderEndContent = () => {\n if (finalEndIconName) {\n return (\n <Icon\n name={finalEndIconName}\n size={iconSize}\n className={twMerge(\n 'shrink-0 text-inherit',\n endIconProps?.className,\n )}\n aria-hidden=\"true\"\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span aria-hidden=\"true\">{endAccessory}</span>;\n }\n return null;\n };\n\n const renderContent = () => renderLabel();\n\n const mergedClassName = twMerge(\n // Base styles\n 'inline-flex items-center justify-center',\n getButtonBaseBorderRadiusTwClass(size),\n getButtonBaseHorizontalPaddingTwClasses(size, hasStart, hasEnd),\n hasAccessories && 'gap-x-1',\n 'font-medium text-default',\n 'bg-muted',\n 'overflow-hidden',\n // Add relative positioning for loading state\n 'relative',\n // Size\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-all',\n 'duration-100',\n 'ease-linear',\n 'active:scale-[0.97]',\n 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',\n ],\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'cursor-not-allowed',\n isDisabled && 'opacity-50',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : (isDisabled ?? isLoading)}\n aria-disabled={isDisabled ? 'true' : undefined}\n aria-busy={isLoading ? 'true' : undefined}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n aria-pressed={ariaPressed}\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n aria-haspopup={ariaHaspopup}\n role={asChild ? undefined : 'button'}\n tabIndex={getTabIndex()}\n style={style}\n {...props}\n >\n {renderStartContent()}\n <Slottable>\n {isLoading ? renderLoadingState() : renderContent()}\n </Slottable>\n {renderEndContent()}\n </Component>\n );\n },\n);\n\nButtonBase.displayName = 'ButtonBase';\n"]}
@@ -0,0 +1,43 @@
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.HeaderBase = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const tw_merge_1 = require("../../utils/tw-merge.cjs");
29
+ const Box_1 = require("../Box/index.cjs");
30
+ exports.HeaderBase = (0, react_1.forwardRef)(({ startAccessory, endAccessory, className, children, childrenWrapperProps, startAccessoryWrapperProps, endAccessoryWrapperProps, ...props }, ref) => (react_1.default.createElement("div", { ref: ref, className: (0, tw_merge_1.twMerge)(
31
+ // Three-column grid keeps the title horizontally centered: side
32
+ // columns each take an equal share of the remaining space, the title
33
+ // sits in the auto-sized center column. No JS measurement needed.
34
+ 'grid grid-cols-[1fr_auto_1fr] items-center', className), ...props },
35
+ startAccessory && (react_1.default.createElement(Box_1.Box, { ...startAccessoryWrapperProps, className: (0, tw_merge_1.twMerge)('col-start-1 justify-self-start', startAccessoryWrapperProps?.className) }, startAccessory)),
36
+ children && (react_1.default.createElement(Box_1.Box, { ...childrenWrapperProps, className: (0, tw_merge_1.twMerge)(
37
+ // Always pin the title to column 2 so missing side accessories
38
+ // leave their empty `1fr` track in place and keep the title
39
+ // visually centered.
40
+ 'col-start-2 col-end-3', childrenWrapperProps?.className) }, children)),
41
+ endAccessory && (react_1.default.createElement(Box_1.Box, { ...endAccessoryWrapperProps, className: (0, tw_merge_1.twMerge)('col-start-3 justify-self-end', endAccessoryWrapperProps?.className) }, endAccessory)))));
42
+ exports.HeaderBase.displayName = 'HeaderBase';
43
+ //# sourceMappingURL=HeaderBase.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderBase.cjs","sourceRoot":"","sources":["../../../src/components/HeaderBase/HeaderBase.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAE1C,uDAA+C;AAC/C,0CAA6B;AAIhB,QAAA,UAAU,GAAG,IAAA,kBAAU,EAClC,CACE,EACE,cAAc,EACd,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE,CAAC,CACH,uCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,kBAAO;IAChB,gEAAgE;IAChE,qEAAqE;IACrE,kEAAkE;IAClE,4CAA4C,EAC5C,SAAS,CACV,KACG,KAAK;IAER,cAAc,IAAI,CACjB,8BAAC,SAAG,OACE,0BAA0B,EAC9B,SAAS,EAAE,IAAA,kBAAO,EAChB,gCAAgC,EAChC,0BAA0B,EAAE,SAAS,CACtC,IAEA,cAAc,CACX,CACP;IACA,QAAQ,IAAI,CACX,8BAAC,SAAG,OACE,oBAAoB,EACxB,SAAS,EAAE,IAAA,kBAAO;QAChB,+DAA+D;QAC/D,4DAA4D;QAC5D,qBAAqB;QACrB,uBAAuB,EACvB,oBAAoB,EAAE,SAAS,CAChC,IAEA,QAAQ,CACL,CACP;IACA,YAAY,IAAI,CACf,8BAAC,SAAG,OACE,wBAAwB,EAC5B,SAAS,EAAE,IAAA,kBAAO,EAChB,8BAA8B,EAC9B,wBAAwB,EAAE,SAAS,CACpC,IAEA,YAAY,CACT,CACP,CACG,CACP,CACF,CAAC;AAEF,kBAAU,CAAC,WAAW,GAAG,YAAY,CAAC","sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Box } from '../Box';\n\nimport type { HeaderBaseProps } from './HeaderBase.types';\n\nexport const HeaderBase = forwardRef<HTMLDivElement, HeaderBaseProps>(\n (\n {\n startAccessory,\n endAccessory,\n className,\n children,\n childrenWrapperProps,\n startAccessoryWrapperProps,\n endAccessoryWrapperProps,\n ...props\n },\n ref,\n ) => (\n <div\n ref={ref}\n className={twMerge(\n // Three-column grid keeps the title horizontally centered: side\n // columns each take an equal share of the remaining space, the title\n // sits in the auto-sized center column. No JS measurement needed.\n 'grid grid-cols-[1fr_auto_1fr] items-center',\n className,\n )}\n {...props}\n >\n {startAccessory && (\n <Box\n {...startAccessoryWrapperProps}\n className={twMerge(\n 'col-start-1 justify-self-start',\n startAccessoryWrapperProps?.className,\n )}\n >\n {startAccessory}\n </Box>\n )}\n {children && (\n <Box\n {...childrenWrapperProps}\n className={twMerge(\n // Always pin the title to column 2 so missing side accessories\n // leave their empty `1fr` track in place and keep the title\n // visually centered.\n 'col-start-2 col-end-3',\n childrenWrapperProps?.className,\n )}\n >\n {children}\n </Box>\n )}\n {endAccessory && (\n <Box\n {...endAccessoryWrapperProps}\n className={twMerge(\n 'col-start-3 justify-self-end',\n endAccessoryWrapperProps?.className,\n )}\n >\n {endAccessory}\n </Box>\n )}\n </div>\n ),\n);\n\nHeaderBase.displayName = 'HeaderBase';\n"]}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { HeaderBaseProps } from "./HeaderBase.types.cjs";
3
+ export declare const HeaderBase: React.ForwardRefExoticComponent<Omit<HeaderBaseProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=HeaderBase.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderBase.d.cts","sourceRoot":"","sources":["../../../src/components/HeaderBase/HeaderBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,cAAc;AAK1C,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,qGA+DtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { HeaderBaseProps } from "./HeaderBase.types.mjs";
3
+ export declare const HeaderBase: React.ForwardRefExoticComponent<Omit<HeaderBaseProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=HeaderBase.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderBase.d.mts","sourceRoot":"","sources":["../../../src/components/HeaderBase/HeaderBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,cAAc;AAK1C,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,qGA+DtB,CAAC"}
@@ -0,0 +1,24 @@
1
+ function $importDefault(module) {
2
+ if (module?.__esModule) {
3
+ return module.default;
4
+ }
5
+ return module;
6
+ }
7
+ import $React, { forwardRef } from "react";
8
+ const React = $importDefault($React);
9
+ import { twMerge } from "../../utils/tw-merge.mjs";
10
+ import { Box } from "../Box/index.mjs";
11
+ export const HeaderBase = forwardRef(({ startAccessory, endAccessory, className, children, childrenWrapperProps, startAccessoryWrapperProps, endAccessoryWrapperProps, ...props }, ref) => (React.createElement("div", { ref: ref, className: twMerge(
12
+ // Three-column grid keeps the title horizontally centered: side
13
+ // columns each take an equal share of the remaining space, the title
14
+ // sits in the auto-sized center column. No JS measurement needed.
15
+ 'grid grid-cols-[1fr_auto_1fr] items-center', className), ...props },
16
+ startAccessory && (React.createElement(Box, { ...startAccessoryWrapperProps, className: twMerge('col-start-1 justify-self-start', startAccessoryWrapperProps?.className) }, startAccessory)),
17
+ children && (React.createElement(Box, { ...childrenWrapperProps, className: twMerge(
18
+ // Always pin the title to column 2 so missing side accessories
19
+ // leave their empty `1fr` track in place and keep the title
20
+ // visually centered.
21
+ 'col-start-2 col-end-3', childrenWrapperProps?.className) }, children)),
22
+ endAccessory && (React.createElement(Box, { ...endAccessoryWrapperProps, className: twMerge('col-start-3 justify-self-end', endAccessoryWrapperProps?.className) }, endAccessory)))));
23
+ HeaderBase.displayName = 'HeaderBase';
24
+ //# sourceMappingURL=HeaderBase.mjs.map