@metamask-previews/design-system-react 0.0.0-preview.bf69b6b → 0.0.0-preview.fbd1fe9

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 (310) hide show
  1. package/dist/components/avatar-base/AvatarBase.cjs +28 -0
  2. package/dist/components/avatar-base/AvatarBase.cjs.map +1 -0
  3. package/dist/components/avatar-base/AvatarBase.constants.cjs +19 -0
  4. package/dist/components/avatar-base/AvatarBase.constants.cjs.map +1 -0
  5. package/dist/components/avatar-base/AvatarBase.constants.d.cts +4 -0
  6. package/dist/components/avatar-base/AvatarBase.constants.d.cts.map +1 -0
  7. package/dist/components/avatar-base/AvatarBase.constants.d.mts +4 -0
  8. package/dist/components/avatar-base/AvatarBase.constants.d.mts.map +1 -0
  9. package/dist/components/avatar-base/AvatarBase.constants.mjs +16 -0
  10. package/dist/components/avatar-base/AvatarBase.constants.mjs.map +1 -0
  11. package/dist/components/avatar-base/AvatarBase.d.cts +4 -0
  12. package/dist/components/avatar-base/AvatarBase.d.cts.map +1 -0
  13. package/dist/components/avatar-base/AvatarBase.d.mts +4 -0
  14. package/dist/components/avatar-base/AvatarBase.d.mts.map +1 -0
  15. package/dist/components/avatar-base/AvatarBase.mjs +29 -0
  16. package/dist/components/avatar-base/AvatarBase.mjs.map +1 -0
  17. package/dist/components/avatar-base/AvatarBase.types.cjs +38 -0
  18. package/dist/components/avatar-base/AvatarBase.types.cjs.map +1 -0
  19. package/dist/components/avatar-base/AvatarBase.types.d.cts +77 -0
  20. package/dist/components/avatar-base/AvatarBase.types.d.cts.map +1 -0
  21. package/dist/components/avatar-base/AvatarBase.types.d.mts +77 -0
  22. package/dist/components/avatar-base/AvatarBase.types.d.mts.map +1 -0
  23. package/dist/components/avatar-base/AvatarBase.types.mjs +35 -0
  24. package/dist/components/avatar-base/AvatarBase.types.mjs.map +1 -0
  25. package/dist/components/avatar-base/index.cjs +9 -0
  26. package/dist/components/avatar-base/index.cjs.map +1 -0
  27. package/dist/components/avatar-base/index.d.cts +4 -0
  28. package/dist/components/{button-link → avatar-base}/index.d.cts.map +1 -1
  29. package/dist/components/avatar-base/index.d.mts +4 -0
  30. package/dist/components/{button-link → avatar-base}/index.d.mts.map +1 -1
  31. package/dist/components/avatar-base/index.mjs +3 -0
  32. package/dist/components/avatar-base/index.mjs.map +1 -0
  33. package/dist/components/avatar-favicon/AvatarFavicon.cjs +16 -0
  34. package/dist/components/avatar-favicon/AvatarFavicon.cjs.map +1 -0
  35. package/dist/components/avatar-favicon/AvatarFavicon.constants.cjs +13 -0
  36. package/dist/components/avatar-favicon/AvatarFavicon.constants.cjs.map +1 -0
  37. package/dist/components/avatar-favicon/AvatarFavicon.constants.d.cts +4 -0
  38. package/dist/components/avatar-favicon/AvatarFavicon.constants.d.cts.map +1 -0
  39. package/dist/components/avatar-favicon/AvatarFavicon.constants.d.mts +4 -0
  40. package/dist/components/avatar-favicon/AvatarFavicon.constants.d.mts.map +1 -0
  41. package/dist/components/avatar-favicon/AvatarFavicon.constants.mjs +10 -0
  42. package/dist/components/avatar-favicon/AvatarFavicon.constants.mjs.map +1 -0
  43. package/dist/components/avatar-favicon/AvatarFavicon.d.cts +4 -0
  44. package/dist/components/avatar-favicon/AvatarFavicon.d.cts.map +1 -0
  45. package/dist/components/avatar-favicon/AvatarFavicon.d.mts +4 -0
  46. package/dist/components/avatar-favicon/AvatarFavicon.d.mts.map +1 -0
  47. package/dist/components/avatar-favicon/AvatarFavicon.mjs +17 -0
  48. package/dist/components/avatar-favicon/AvatarFavicon.mjs.map +1 -0
  49. package/dist/components/avatar-favicon/AvatarFavicon.types.cjs +27 -0
  50. package/dist/components/avatar-favicon/AvatarFavicon.types.cjs.map +1 -0
  51. package/dist/components/avatar-favicon/AvatarFavicon.types.d.cts +62 -0
  52. package/dist/components/avatar-favicon/AvatarFavicon.types.d.cts.map +1 -0
  53. package/dist/components/avatar-favicon/AvatarFavicon.types.d.mts +62 -0
  54. package/dist/components/avatar-favicon/AvatarFavicon.types.d.mts.map +1 -0
  55. package/dist/components/avatar-favicon/AvatarFavicon.types.mjs +24 -0
  56. package/dist/components/avatar-favicon/AvatarFavicon.types.mjs.map +1 -0
  57. package/dist/components/avatar-favicon/index.cjs +8 -0
  58. package/dist/components/avatar-favicon/index.cjs.map +1 -0
  59. package/dist/components/avatar-favicon/index.d.cts +4 -0
  60. package/dist/components/avatar-favicon/index.d.cts.map +1 -0
  61. package/dist/components/avatar-favicon/index.d.mts +4 -0
  62. package/dist/components/avatar-favicon/index.d.mts.map +1 -0
  63. package/dist/components/avatar-favicon/index.mjs +3 -0
  64. package/dist/components/avatar-favicon/index.mjs.map +1 -0
  65. package/dist/components/avatar-icon/AvatarIcon.cjs +19 -0
  66. package/dist/components/avatar-icon/AvatarIcon.cjs.map +1 -0
  67. package/dist/components/avatar-icon/AvatarIcon.constants.cjs +44 -0
  68. package/dist/components/avatar-icon/AvatarIcon.constants.cjs.map +1 -0
  69. package/dist/components/avatar-icon/AvatarIcon.constants.d.cts +11 -0
  70. package/dist/components/avatar-icon/AvatarIcon.constants.d.cts.map +1 -0
  71. package/dist/components/avatar-icon/AvatarIcon.constants.d.mts +11 -0
  72. package/dist/components/avatar-icon/AvatarIcon.constants.d.mts.map +1 -0
  73. package/dist/components/avatar-icon/AvatarIcon.constants.mjs +41 -0
  74. package/dist/components/avatar-icon/AvatarIcon.constants.mjs.map +1 -0
  75. package/dist/components/avatar-icon/AvatarIcon.d.cts +4 -0
  76. package/dist/components/avatar-icon/AvatarIcon.d.cts.map +1 -0
  77. package/dist/components/avatar-icon/AvatarIcon.d.mts +4 -0
  78. package/dist/components/avatar-icon/AvatarIcon.d.mts.map +1 -0
  79. package/dist/components/avatar-icon/AvatarIcon.mjs +20 -0
  80. package/dist/components/avatar-icon/AvatarIcon.mjs.map +1 -0
  81. package/dist/components/avatar-icon/AvatarIcon.types.cjs +36 -0
  82. package/dist/components/avatar-icon/AvatarIcon.types.cjs.map +1 -0
  83. package/dist/components/avatar-icon/AvatarIcon.types.d.cts +57 -0
  84. package/dist/components/avatar-icon/AvatarIcon.types.d.cts.map +1 -0
  85. package/dist/components/avatar-icon/AvatarIcon.types.d.mts +57 -0
  86. package/dist/components/avatar-icon/AvatarIcon.types.d.mts.map +1 -0
  87. package/dist/components/avatar-icon/AvatarIcon.types.mjs +33 -0
  88. package/dist/components/avatar-icon/AvatarIcon.types.mjs.map +1 -0
  89. package/dist/components/avatar-icon/index.cjs +9 -0
  90. package/dist/components/avatar-icon/index.cjs.map +1 -0
  91. package/dist/components/avatar-icon/index.d.cts +4 -0
  92. package/dist/components/avatar-icon/index.d.cts.map +1 -0
  93. package/dist/components/avatar-icon/index.d.mts +4 -0
  94. package/dist/components/avatar-icon/index.d.mts.map +1 -0
  95. package/dist/components/avatar-icon/index.mjs +3 -0
  96. package/dist/components/avatar-icon/index.mjs.map +1 -0
  97. package/dist/components/avatar-network/AvatarNetwork.cjs +15 -0
  98. package/dist/components/avatar-network/AvatarNetwork.cjs.map +1 -0
  99. package/dist/components/avatar-network/AvatarNetwork.d.cts +4 -0
  100. package/dist/components/avatar-network/AvatarNetwork.d.cts.map +1 -0
  101. package/dist/components/avatar-network/AvatarNetwork.d.mts +4 -0
  102. package/dist/components/avatar-network/AvatarNetwork.d.mts.map +1 -0
  103. package/dist/components/avatar-network/AvatarNetwork.mjs +16 -0
  104. package/dist/components/avatar-network/AvatarNetwork.mjs.map +1 -0
  105. package/dist/components/avatar-network/AvatarNetwork.types.cjs +4 -0
  106. package/dist/components/avatar-network/AvatarNetwork.types.cjs.map +1 -0
  107. package/dist/components/avatar-network/AvatarNetwork.types.d.cts +40 -0
  108. package/dist/components/avatar-network/AvatarNetwork.types.d.cts.map +1 -0
  109. package/dist/components/avatar-network/AvatarNetwork.types.d.mts +40 -0
  110. package/dist/components/avatar-network/AvatarNetwork.types.d.mts.map +1 -0
  111. package/dist/components/avatar-network/AvatarNetwork.types.mjs +2 -0
  112. package/dist/components/avatar-network/AvatarNetwork.types.mjs.map +1 -0
  113. package/dist/components/avatar-network/index.cjs +8 -0
  114. package/dist/components/avatar-network/index.cjs.map +1 -0
  115. package/dist/components/avatar-network/index.d.cts +4 -0
  116. package/dist/components/avatar-network/index.d.cts.map +1 -0
  117. package/dist/components/avatar-network/index.d.mts +4 -0
  118. package/dist/components/avatar-network/index.d.mts.map +1 -0
  119. package/dist/components/avatar-network/index.mjs +3 -0
  120. package/dist/components/avatar-network/index.mjs.map +1 -0
  121. package/dist/components/avatar-token/AvatarToken.cjs +15 -0
  122. package/dist/components/avatar-token/AvatarToken.cjs.map +1 -0
  123. package/dist/components/avatar-token/AvatarToken.d.cts +4 -0
  124. package/dist/components/avatar-token/AvatarToken.d.cts.map +1 -0
  125. package/dist/components/avatar-token/AvatarToken.d.mts +4 -0
  126. package/dist/components/avatar-token/AvatarToken.d.mts.map +1 -0
  127. package/dist/components/avatar-token/AvatarToken.mjs +16 -0
  128. package/dist/components/avatar-token/AvatarToken.mjs.map +1 -0
  129. package/dist/components/avatar-token/AvatarToken.types.cjs +4 -0
  130. package/dist/components/avatar-token/AvatarToken.types.cjs.map +1 -0
  131. package/dist/components/avatar-token/AvatarToken.types.d.cts +40 -0
  132. package/dist/components/avatar-token/AvatarToken.types.d.cts.map +1 -0
  133. package/dist/components/avatar-token/AvatarToken.types.d.mts +40 -0
  134. package/dist/components/avatar-token/AvatarToken.types.d.mts.map +1 -0
  135. package/dist/components/avatar-token/AvatarToken.types.mjs +2 -0
  136. package/dist/components/avatar-token/AvatarToken.types.mjs.map +1 -0
  137. package/dist/components/avatar-token/index.cjs +8 -0
  138. package/dist/components/avatar-token/index.cjs.map +1 -0
  139. package/dist/components/avatar-token/index.d.cts +4 -0
  140. package/dist/components/avatar-token/index.d.cts.map +1 -0
  141. package/dist/components/avatar-token/index.d.mts +4 -0
  142. package/dist/components/avatar-token/index.d.mts.map +1 -0
  143. package/dist/components/avatar-token/index.mjs +3 -0
  144. package/dist/components/avatar-token/index.mjs.map +1 -0
  145. package/dist/components/button/Button.cjs +25 -0
  146. package/dist/components/button/Button.cjs.map +1 -0
  147. package/dist/components/button/Button.d.cts +4 -0
  148. package/dist/components/button/Button.d.cts.map +1 -0
  149. package/dist/components/button/Button.d.mts +4 -0
  150. package/dist/components/button/Button.d.mts.map +1 -0
  151. package/dist/components/button/Button.mjs +26 -0
  152. package/dist/components/button/Button.mjs.map +1 -0
  153. package/dist/components/button/Button.types.cjs +19 -0
  154. package/dist/components/button/Button.types.cjs.map +1 -0
  155. package/dist/components/button/Button.types.d.cts +31 -0
  156. package/dist/components/button/Button.types.d.cts.map +1 -0
  157. package/dist/components/button/Button.types.d.mts +31 -0
  158. package/dist/components/button/Button.types.d.mts.map +1 -0
  159. package/dist/components/button/Button.types.mjs +16 -0
  160. package/dist/components/button/Button.types.mjs.map +1 -0
  161. package/dist/components/button/index.cjs +10 -0
  162. package/dist/components/button/index.cjs.map +1 -0
  163. package/dist/components/button/index.d.cts +5 -0
  164. package/dist/components/button/index.d.cts.map +1 -0
  165. package/dist/components/button/index.d.mts +5 -0
  166. package/dist/components/button/index.d.mts.map +1 -0
  167. package/dist/components/button/index.mjs +4 -0
  168. package/dist/components/button/index.mjs.map +1 -0
  169. package/dist/components/button-base/ButtonBase.cjs +24 -10
  170. package/dist/components/button-base/ButtonBase.cjs.map +1 -1
  171. package/dist/components/button-base/ButtonBase.d.cts.map +1 -1
  172. package/dist/components/button-base/ButtonBase.d.mts.map +1 -1
  173. package/dist/components/button-base/ButtonBase.mjs +22 -8
  174. package/dist/components/button-base/ButtonBase.mjs.map +1 -1
  175. package/dist/components/button-base/ButtonBase.types.cjs.map +1 -1
  176. package/dist/components/button-base/ButtonBase.types.d.cts +1 -1
  177. package/dist/components/button-base/ButtonBase.types.d.mts +1 -1
  178. package/dist/components/button-base/ButtonBase.types.mjs.map +1 -1
  179. package/dist/components/button-icon/ButtonIcon.cjs +38 -0
  180. package/dist/components/button-icon/ButtonIcon.cjs.map +1 -0
  181. package/dist/components/button-icon/ButtonIcon.constants.cjs +16 -0
  182. package/dist/components/button-icon/ButtonIcon.constants.cjs.map +1 -0
  183. package/dist/components/button-icon/ButtonIcon.constants.d.cts +12 -0
  184. package/dist/components/button-icon/ButtonIcon.constants.d.cts.map +1 -0
  185. package/dist/components/button-icon/ButtonIcon.constants.d.mts +12 -0
  186. package/dist/components/button-icon/ButtonIcon.constants.d.mts.map +1 -0
  187. package/dist/components/button-icon/ButtonIcon.constants.mjs +13 -0
  188. package/dist/components/button-icon/ButtonIcon.constants.mjs.map +1 -0
  189. package/dist/components/button-icon/ButtonIcon.d.cts +4 -0
  190. package/dist/components/button-icon/ButtonIcon.d.cts.map +1 -0
  191. package/dist/components/button-icon/ButtonIcon.d.mts +4 -0
  192. package/dist/components/button-icon/ButtonIcon.d.mts.map +1 -0
  193. package/dist/components/button-icon/ButtonIcon.mjs +39 -0
  194. package/dist/components/button-icon/ButtonIcon.mjs.map +1 -0
  195. package/dist/components/button-icon/ButtonIcon.types.cjs +19 -0
  196. package/dist/components/button-icon/ButtonIcon.types.cjs.map +1 -0
  197. package/dist/components/button-icon/ButtonIcon.types.d.cts +61 -0
  198. package/dist/components/button-icon/ButtonIcon.types.d.cts.map +1 -0
  199. package/dist/components/button-icon/ButtonIcon.types.d.mts +61 -0
  200. package/dist/components/button-icon/ButtonIcon.types.d.mts.map +1 -0
  201. package/dist/components/button-icon/ButtonIcon.types.mjs +16 -0
  202. package/dist/components/button-icon/ButtonIcon.types.mjs.map +1 -0
  203. package/dist/components/button-icon/index.cjs +8 -0
  204. package/dist/components/button-icon/index.cjs.map +1 -0
  205. package/dist/components/button-icon/index.d.cts +4 -0
  206. package/dist/components/button-icon/index.d.cts.map +1 -0
  207. package/dist/components/button-icon/index.d.mts +4 -0
  208. package/dist/components/button-icon/index.d.mts.map +1 -0
  209. package/dist/components/button-icon/index.mjs +3 -0
  210. package/dist/components/button-icon/index.mjs.map +1 -0
  211. package/dist/components/button-primary/ButtonPrimary.cjs +45 -23
  212. package/dist/components/button-primary/ButtonPrimary.cjs.map +1 -1
  213. package/dist/components/button-primary/ButtonPrimary.d.cts.map +1 -1
  214. package/dist/components/button-primary/ButtonPrimary.d.mts.map +1 -1
  215. package/dist/components/button-primary/ButtonPrimary.mjs +45 -23
  216. package/dist/components/button-primary/ButtonPrimary.mjs.map +1 -1
  217. package/dist/components/button-secondary/ButtonSecondary.cjs +26 -25
  218. package/dist/components/button-secondary/ButtonSecondary.cjs.map +1 -1
  219. package/dist/components/button-secondary/ButtonSecondary.d.cts.map +1 -1
  220. package/dist/components/button-secondary/ButtonSecondary.d.mts.map +1 -1
  221. package/dist/components/button-secondary/ButtonSecondary.mjs +26 -25
  222. package/dist/components/button-secondary/ButtonSecondary.mjs.map +1 -1
  223. package/dist/components/button-tertiary/ButtonTertiary.cjs +60 -0
  224. package/dist/components/button-tertiary/ButtonTertiary.cjs.map +1 -0
  225. package/dist/components/button-tertiary/ButtonTertiary.d.cts +4 -0
  226. package/dist/components/button-tertiary/ButtonTertiary.d.cts.map +1 -0
  227. package/dist/components/button-tertiary/ButtonTertiary.d.mts +4 -0
  228. package/dist/components/button-tertiary/ButtonTertiary.d.mts.map +1 -0
  229. package/dist/components/button-tertiary/ButtonTertiary.mjs +61 -0
  230. package/dist/components/button-tertiary/ButtonTertiary.mjs.map +1 -0
  231. package/dist/components/button-tertiary/ButtonTertiary.types.cjs +3 -0
  232. package/dist/components/button-tertiary/ButtonTertiary.types.cjs.map +1 -0
  233. package/dist/components/{button-link/ButtonLink.types.d.cts → button-tertiary/ButtonTertiary.types.d.cts} +8 -3
  234. package/dist/components/button-tertiary/ButtonTertiary.types.d.cts.map +1 -0
  235. package/dist/components/{button-link/ButtonLink.types.d.mts → button-tertiary/ButtonTertiary.types.d.mts} +8 -3
  236. package/dist/components/button-tertiary/ButtonTertiary.types.d.mts.map +1 -0
  237. package/dist/components/button-tertiary/ButtonTertiary.types.mjs +2 -0
  238. package/dist/components/button-tertiary/ButtonTertiary.types.mjs.map +1 -0
  239. package/dist/components/button-tertiary/index.cjs +8 -0
  240. package/dist/components/button-tertiary/index.cjs.map +1 -0
  241. package/dist/components/button-tertiary/index.d.cts +4 -0
  242. package/dist/components/button-tertiary/index.d.cts.map +1 -0
  243. package/dist/components/button-tertiary/index.d.mts +4 -0
  244. package/dist/components/button-tertiary/index.d.mts.map +1 -0
  245. package/dist/components/button-tertiary/index.mjs +3 -0
  246. package/dist/components/button-tertiary/index.mjs.map +1 -0
  247. package/dist/components/index.cjs +30 -9
  248. package/dist/components/index.cjs.map +1 -1
  249. package/dist/components/index.d.cts +20 -7
  250. package/dist/components/index.d.cts.map +1 -1
  251. package/dist/components/index.d.mts +20 -7
  252. package/dist/components/index.d.mts.map +1 -1
  253. package/dist/components/index.mjs +11 -6
  254. package/dist/components/index.mjs.map +1 -1
  255. package/dist/components/text/Text.cjs +2 -2
  256. package/dist/components/text/Text.cjs.map +1 -1
  257. package/dist/components/text/Text.d.cts.map +1 -1
  258. package/dist/components/text/Text.d.mts.map +1 -1
  259. package/dist/components/text/Text.mjs +2 -2
  260. package/dist/components/text/Text.mjs.map +1 -1
  261. package/dist/components/text/Text.types.cjs.map +1 -1
  262. package/dist/components/text/Text.types.d.cts +4 -0
  263. package/dist/components/text/Text.types.d.cts.map +1 -1
  264. package/dist/components/text/Text.types.d.mts +4 -0
  265. package/dist/components/text/Text.types.d.mts.map +1 -1
  266. package/dist/components/text/Text.types.mjs.map +1 -1
  267. package/dist/components/text-button/TextButton.cjs +49 -0
  268. package/dist/components/text-button/TextButton.cjs.map +1 -0
  269. package/dist/components/text-button/TextButton.d.cts +4 -0
  270. package/dist/components/text-button/TextButton.d.cts.map +1 -0
  271. package/dist/components/text-button/TextButton.d.mts +4 -0
  272. package/dist/components/text-button/TextButton.d.mts.map +1 -0
  273. package/dist/components/text-button/TextButton.mjs +50 -0
  274. package/dist/components/text-button/TextButton.mjs.map +1 -0
  275. package/dist/components/{button-link/ButtonLink.types.cjs → text-button/TextButton.types.cjs} +1 -1
  276. package/dist/components/text-button/TextButton.types.cjs.map +1 -0
  277. package/dist/components/text-button/TextButton.types.d.cts +35 -0
  278. package/dist/components/text-button/TextButton.types.d.cts.map +1 -0
  279. package/dist/components/text-button/TextButton.types.d.mts +35 -0
  280. package/dist/components/text-button/TextButton.types.d.mts.map +1 -0
  281. package/dist/components/text-button/TextButton.types.mjs +2 -0
  282. package/dist/components/text-button/TextButton.types.mjs.map +1 -0
  283. package/dist/components/text-button/index.cjs +6 -0
  284. package/dist/components/text-button/index.cjs.map +1 -0
  285. package/dist/components/text-button/index.d.cts +3 -0
  286. package/dist/components/text-button/index.d.cts.map +1 -0
  287. package/dist/components/text-button/index.d.mts +3 -0
  288. package/dist/components/text-button/index.d.mts.map +1 -0
  289. package/dist/components/text-button/index.mjs +2 -0
  290. package/dist/components/text-button/index.mjs.map +1 -0
  291. package/package.json +6 -6
  292. package/dist/components/button-link/ButtonLink.cjs +0 -32
  293. package/dist/components/button-link/ButtonLink.cjs.map +0 -1
  294. package/dist/components/button-link/ButtonLink.d.cts +0 -4
  295. package/dist/components/button-link/ButtonLink.d.cts.map +0 -1
  296. package/dist/components/button-link/ButtonLink.d.mts +0 -4
  297. package/dist/components/button-link/ButtonLink.d.mts.map +0 -1
  298. package/dist/components/button-link/ButtonLink.mjs +0 -33
  299. package/dist/components/button-link/ButtonLink.mjs.map +0 -1
  300. package/dist/components/button-link/ButtonLink.types.cjs.map +0 -1
  301. package/dist/components/button-link/ButtonLink.types.d.cts.map +0 -1
  302. package/dist/components/button-link/ButtonLink.types.d.mts.map +0 -1
  303. package/dist/components/button-link/ButtonLink.types.mjs +0 -2
  304. package/dist/components/button-link/ButtonLink.types.mjs.map +0 -1
  305. package/dist/components/button-link/index.cjs +0 -8
  306. package/dist/components/button-link/index.cjs.map +0 -1
  307. package/dist/components/button-link/index.d.cts +0 -4
  308. package/dist/components/button-link/index.d.mts +0 -4
  309. package/dist/components/button-link/index.mjs +0 -3
  310. package/dist/components/button-link/index.mjs.map +0 -1
@@ -0,0 +1,26 @@
1
+ function $importDefault(module) {
2
+ if (module?.__esModule) {
3
+ return module.default;
4
+ }
5
+ return module;
6
+ }
7
+ import $React from "react";
8
+ const React = $importDefault($React);
9
+ import { ButtonTertiary } from "../button-tertiary/index.mjs";
10
+ import { ButtonPrimary } from "../button-primary/index.mjs";
11
+ import { ButtonSecondary } from "../button-secondary/index.mjs";
12
+ import { ButtonVariant } from "./Button.types.mjs";
13
+ export const Button = React.forwardRef(({ variant = ButtonVariant.Primary, ...props }, ref) => {
14
+ switch (variant) {
15
+ case ButtonVariant.Primary:
16
+ return React.createElement(ButtonPrimary, { ref: ref, ...props });
17
+ case ButtonVariant.Secondary:
18
+ return (React.createElement(ButtonSecondary, { ref: ref, ...props }));
19
+ case ButtonVariant.Tertiary:
20
+ return React.createElement(ButtonTertiary, { ref: ref, ...props });
21
+ default:
22
+ return React.createElement(ButtonPrimary, { ref: ref, ...props });
23
+ }
24
+ });
25
+ Button.displayName = 'Button';
26
+ //# sourceMappingURL=Button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.mjs","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAK,cAAc;;AAE1B,OAAO,EAAE,cAAc,EAAE,qCAA2B;AACpD,OAAO,EAAE,aAAa,EAAE,oCAA0B;AAClD,OAAO,EAAE,eAAe,EAAE,sCAA4B;AAKtD,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACrD,QAAQ,OAAO,EAAE;QACf,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,oBAAC,aAAa,IAAC,GAAG,EAAE,GAAG,KAAO,KAA4B,GAAI,CAAC;QACxE,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,CACL,oBAAC,eAAe,IAAC,GAAG,EAAE,GAAG,KAAO,KAA8B,GAAI,CACnE,CAAC;QACJ,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,oBAAC,cAAc,IAAC,GAAG,EAAE,GAAG,KAAO,KAA6B,GAAI,CAAC;QAC1E;YACE,OAAO,oBAAC,aAAa,IAAC,GAAG,EAAE,GAAG,KAAO,KAA4B,GAAI,CAAC;KACzE;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC","sourcesContent":["import React from 'react';\n\nimport { ButtonTertiary } from '../button-tertiary';\nimport { ButtonPrimary } from '../button-primary';\nimport { ButtonSecondary } from '../button-secondary';\nimport type { ButtonTertiaryProps } from '../button-tertiary';\nimport type { ButtonPrimaryProps } from '../button-primary';\nimport type { ButtonSecondaryProps } from '../button-secondary';\nimport type { ButtonProps } from './Button.types';\nimport { ButtonVariant } from './Button.types';\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ variant = ButtonVariant.Primary, ...props }, ref) => {\n switch (variant) {\n case ButtonVariant.Primary:\n return <ButtonPrimary ref={ref} {...(props as ButtonPrimaryProps)} />;\n case ButtonVariant.Secondary:\n return (\n <ButtonSecondary ref={ref} {...(props as ButtonSecondaryProps)} />\n );\n case ButtonVariant.Tertiary:\n return <ButtonTertiary ref={ref} {...(props as ButtonTertiaryProps)} />;\n default:\n return <ButtonPrimary ref={ref} {...(props as ButtonPrimaryProps)} />;\n }\n },\n);\n\nButton.displayName = 'Button';\n"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ButtonVariant = void 0;
4
+ var ButtonVariant;
5
+ (function (ButtonVariant) {
6
+ /**
7
+ * Primary button variant - used for primary actions
8
+ */
9
+ ButtonVariant["Primary"] = "primary";
10
+ /**
11
+ * Secondary button variant - used for secondary actions
12
+ */
13
+ ButtonVariant["Secondary"] = "secondary";
14
+ /**
15
+ * Tertiary button variant - used for tertiary-like actions
16
+ */
17
+ ButtonVariant["Tertiary"] = "tertiary";
18
+ })(ButtonVariant || (exports.ButtonVariant = ButtonVariant = {}));
19
+ //# sourceMappingURL=Button.types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.types.cjs","sourceRoot":"","sources":["../../../src/components/button/Button.types.ts"],"names":[],"mappings":";;;AAIA,IAAY,aAaX;AAbD,WAAY,aAAa;IACvB;;OAEG;IACH,oCAAmB,CAAA;IACnB;;OAEG;IACH,wCAAuB,CAAA;IACvB;;OAEG;IACH,sCAAqB,CAAA;AACvB,CAAC,EAbW,aAAa,6BAAb,aAAa,QAaxB","sourcesContent":["import type { ButtonPrimaryProps } from '../button-primary';\nimport type { ButtonSecondaryProps } from '../button-secondary';\nimport type { ButtonTertiaryProps } from '../button-tertiary';\n\nexport enum ButtonVariant {\n /**\n * Primary button variant - used for primary actions\n */\n Primary = 'primary',\n /**\n * Secondary button variant - used for secondary actions\n */\n Secondary = 'secondary',\n /**\n * Tertiary button variant - used for tertiary-like actions\n */\n Tertiary = 'tertiary',\n}\n\nexport type ButtonProps = {\n /**\n * Optional prop to control the variant of the Button\n * @default ButtonVariant.Primary\n */\n variant?: ButtonVariant;\n} & (\n | (Omit<ButtonPrimaryProps, 'ref'> & {\n variant?: ButtonVariant.Primary;\n })\n | (Omit<ButtonSecondaryProps, 'ref'> & {\n variant?: ButtonVariant.Secondary;\n })\n | (Omit<ButtonTertiaryProps, 'ref'> & {\n variant?: ButtonVariant.Tertiary;\n })\n);\n"]}
@@ -0,0 +1,31 @@
1
+ import type { ButtonPrimaryProps } from "../button-primary/index.cjs";
2
+ import type { ButtonSecondaryProps } from "../button-secondary/index.cjs";
3
+ import type { ButtonTertiaryProps } from "../button-tertiary/index.cjs";
4
+ export declare enum ButtonVariant {
5
+ /**
6
+ * Primary button variant - used for primary actions
7
+ */
8
+ Primary = "primary",
9
+ /**
10
+ * Secondary button variant - used for secondary actions
11
+ */
12
+ Secondary = "secondary",
13
+ /**
14
+ * Tertiary button variant - used for tertiary-like actions
15
+ */
16
+ Tertiary = "tertiary"
17
+ }
18
+ export type ButtonProps = {
19
+ /**
20
+ * Optional prop to control the variant of the Button
21
+ * @default ButtonVariant.Primary
22
+ */
23
+ variant?: ButtonVariant;
24
+ } & ((Omit<ButtonPrimaryProps, 'ref'> & {
25
+ variant?: ButtonVariant.Primary;
26
+ }) | (Omit<ButtonSecondaryProps, 'ref'> & {
27
+ variant?: ButtonVariant.Secondary;
28
+ }) | (Omit<ButtonTertiaryProps, 'ref'> & {
29
+ variant?: ButtonVariant.Tertiary;
30
+ }));
31
+ //# sourceMappingURL=Button.types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.types.d.cts","sourceRoot":"","sources":["../../../src/components/button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oCAA0B;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,sCAA4B;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,qCAA2B;AAE9D,oBAAY,aAAa;IACvB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,GAAG,CACA,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;CACjC,CAAC,GACF,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC;CACnC,CAAC,GACF,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;CAClC,CAAC,CACL,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { ButtonPrimaryProps } from "../button-primary/index.mjs";
2
+ import type { ButtonSecondaryProps } from "../button-secondary/index.mjs";
3
+ import type { ButtonTertiaryProps } from "../button-tertiary/index.mjs";
4
+ export declare enum ButtonVariant {
5
+ /**
6
+ * Primary button variant - used for primary actions
7
+ */
8
+ Primary = "primary",
9
+ /**
10
+ * Secondary button variant - used for secondary actions
11
+ */
12
+ Secondary = "secondary",
13
+ /**
14
+ * Tertiary button variant - used for tertiary-like actions
15
+ */
16
+ Tertiary = "tertiary"
17
+ }
18
+ export type ButtonProps = {
19
+ /**
20
+ * Optional prop to control the variant of the Button
21
+ * @default ButtonVariant.Primary
22
+ */
23
+ variant?: ButtonVariant;
24
+ } & ((Omit<ButtonPrimaryProps, 'ref'> & {
25
+ variant?: ButtonVariant.Primary;
26
+ }) | (Omit<ButtonSecondaryProps, 'ref'> & {
27
+ variant?: ButtonVariant.Secondary;
28
+ }) | (Omit<ButtonTertiaryProps, 'ref'> & {
29
+ variant?: ButtonVariant.Tertiary;
30
+ }));
31
+ //# sourceMappingURL=Button.types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.types.d.mts","sourceRoot":"","sources":["../../../src/components/button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oCAA0B;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,sCAA4B;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,qCAA2B;AAE9D,oBAAY,aAAa;IACvB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,GAAG,CACA,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;CACjC,CAAC,GACF,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC;CACnC,CAAC,GACF,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;CAClC,CAAC,CACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ export var ButtonVariant;
2
+ (function (ButtonVariant) {
3
+ /**
4
+ * Primary button variant - used for primary actions
5
+ */
6
+ ButtonVariant["Primary"] = "primary";
7
+ /**
8
+ * Secondary button variant - used for secondary actions
9
+ */
10
+ ButtonVariant["Secondary"] = "secondary";
11
+ /**
12
+ * Tertiary button variant - used for tertiary-like actions
13
+ */
14
+ ButtonVariant["Tertiary"] = "tertiary";
15
+ })(ButtonVariant || (ButtonVariant = {}));
16
+ //# sourceMappingURL=Button.types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.types.mjs","sourceRoot":"","sources":["../../../src/components/button/Button.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,aAaX;AAbD,WAAY,aAAa;IACvB;;OAEG;IACH,oCAAmB,CAAA;IACnB;;OAEG;IACH,wCAAuB,CAAA;IACvB;;OAEG;IACH,sCAAqB,CAAA;AACvB,CAAC,EAbW,aAAa,KAAb,aAAa,QAaxB","sourcesContent":["import type { ButtonPrimaryProps } from '../button-primary';\nimport type { ButtonSecondaryProps } from '../button-secondary';\nimport type { ButtonTertiaryProps } from '../button-tertiary';\n\nexport enum ButtonVariant {\n /**\n * Primary button variant - used for primary actions\n */\n Primary = 'primary',\n /**\n * Secondary button variant - used for secondary actions\n */\n Secondary = 'secondary',\n /**\n * Tertiary button variant - used for tertiary-like actions\n */\n Tertiary = 'tertiary',\n}\n\nexport type ButtonProps = {\n /**\n * Optional prop to control the variant of the Button\n * @default ButtonVariant.Primary\n */\n variant?: ButtonVariant;\n} & (\n | (Omit<ButtonPrimaryProps, 'ref'> & {\n variant?: ButtonVariant.Primary;\n })\n | (Omit<ButtonSecondaryProps, 'ref'> & {\n variant?: ButtonVariant.Secondary;\n })\n | (Omit<ButtonTertiaryProps, 'ref'> & {\n variant?: ButtonVariant.Tertiary;\n })\n);\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ButtonSize = exports.ButtonVariant = exports.Button = void 0;
4
+ var Button_1 = require("./Button.cjs");
5
+ Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } });
6
+ var Button_types_1 = require("./Button.types.cjs");
7
+ Object.defineProperty(exports, "ButtonVariant", { enumerable: true, get: function () { return Button_types_1.ButtonVariant; } });
8
+ var button_base_1 = require("../button-base/index.cjs");
9
+ Object.defineProperty(exports, "ButtonSize", { enumerable: true, get: function () { return button_base_1.ButtonBaseSize; } });
10
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,mDAA+C;AAAtC,6GAAA,aAAa,OAAA;AACtB,wDAA8D;AAArD,yGAAA,cAAc,OAAc","sourcesContent":["export { Button } from './Button';\nexport type { ButtonProps } from './Button.types';\nexport { ButtonVariant } from './Button.types';\nexport { ButtonBaseSize as ButtonSize } from '../button-base';\n"]}
@@ -0,0 +1,5 @@
1
+ export { Button } from "./Button.cjs";
2
+ export type { ButtonProps } from "./Button.types.cjs";
3
+ export { ButtonVariant } from "./Button.types.cjs";
4
+ export { ButtonBaseSize as ButtonSize } from "../button-base/index.cjs";
5
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,YAAY,EAAE,WAAW,EAAE,2BAAuB;AAClD,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAC/C,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,iCAAuB"}
@@ -0,0 +1,5 @@
1
+ export { Button } from "./Button.mjs";
2
+ export type { ButtonProps } from "./Button.types.mjs";
3
+ export { ButtonVariant } from "./Button.types.mjs";
4
+ export { ButtonBaseSize as ButtonSize } from "../button-base/index.mjs";
5
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,YAAY,EAAE,WAAW,EAAE,2BAAuB;AAClD,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAC/C,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,iCAAuB"}
@@ -0,0 +1,4 @@
1
+ export { Button } from "./Button.mjs";
2
+ export { ButtonVariant } from "./Button.types.mjs";
3
+ export { ButtonBaseSize as ButtonSize } from "../button-base/index.mjs";
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAElC,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAC/C,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,iCAAuB","sourcesContent":["export { Button } from './Button';\nexport type { ButtonProps } from './Button.types';\nexport { ButtonVariant } from './Button.types';\nexport { ButtonBaseSize as ButtonSize } from '../button-base';\n"]}
@@ -6,18 +6,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ButtonBase = void 0;
7
7
  const react_slot_1 = require("@radix-ui/react-slot");
8
8
  const react_1 = __importDefault(require("react"));
9
- const __1 = require("../index.cjs");
9
+ const text_1 = require("../text/index.cjs");
10
+ const icon_1 = require("../icon/index.cjs");
10
11
  const tw_merge_1 = require("../../utils/tw-merge.cjs");
11
12
  const ButtonBase_constants_1 = require("./ButtonBase.constants.cjs");
12
13
  const ButtonBase_types_1 = require("./ButtonBase.types.cjs");
13
- exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = ButtonBase_types_1.ButtonBaseSize.Md, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, ...props }, ref) => {
14
+ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = ButtonBase_types_1.ButtonBaseSize.Lg, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, ...props }, ref) => {
14
15
  const Component = asChild ? react_slot_1.Slot : 'button';
15
- const renderLoadingState = () => (react_1.default.createElement("span", { className: "inline-flex items-center" },
16
- react_1.default.createElement(__1.Icon, { name: __1.IconName.Loading, size: __1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('animate-spin mr-2 text-inherit', loadingIconProps?.className), ...loadingIconProps }),
17
- loadingText ?? children));
16
+ const isInteractive = !(isDisabled ?? isLoading);
17
+ const renderLoadingState = () => (react_1.default.createElement(react_1.default.Fragment, null,
18
+ react_1.default.createElement("span", { className: "absolute inline-flex items-center" },
19
+ react_1.default.createElement(icon_1.Icon, { name: icon_1.IconName.Loading, size: icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('animate-spin mr-2 text-inherit', loadingIconProps?.className), ...loadingIconProps }),
20
+ loadingText),
21
+ react_1.default.createElement("span", { className: "invisible inline-flex items-center" }, children)));
18
22
  const renderStartContent = () => {
19
23
  if (startIconName) {
20
- return (react_1.default.createElement(__1.Icon, { name: startIconName, size: __1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('mr-2 text-inherit', startIconProps?.className), ...startIconProps }));
24
+ return (react_1.default.createElement(icon_1.Icon, { name: startIconName, size: icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('mr-2 text-inherit', startIconProps?.className), ...startIconProps }));
21
25
  }
22
26
  if (startAccessory) {
23
27
  return react_1.default.createElement("span", { className: "mr-2" }, startAccessory);
@@ -26,7 +30,7 @@ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = B
26
30
  };
27
31
  const renderEndContent = () => {
28
32
  if (endIconName) {
29
- return (react_1.default.createElement(__1.Icon, { name: endIconName, size: __1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('ml-2 text-inherit', endIconProps?.className), ...endIconProps }));
33
+ return (react_1.default.createElement(icon_1.Icon, { name: endIconName, size: icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('ml-2 text-inherit', endIconProps?.className), ...endIconProps }));
30
34
  }
31
35
  if (endAccessory) {
32
36
  return react_1.default.createElement("span", { className: "ml-2" }, endAccessory);
@@ -35,7 +39,7 @@ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = B
35
39
  };
36
40
  const renderContent = () => {
37
41
  if (children && typeof children === 'string') {
38
- return (react_1.default.createElement(__1.Text, { color: __1.TextColor.Inherit, asChild: true, ...textProps },
42
+ return (react_1.default.createElement(text_1.Text, { fontWeight: text_1.FontWeight.Medium, color: text_1.TextColor.Inherit, asChild: true, ...textProps },
39
43
  react_1.default.createElement("span", null, children)));
40
44
  }
41
45
  return children;
@@ -43,15 +47,25 @@ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = B
43
47
  const mergedClassName = (0, tw_merge_1.twMerge)(
44
48
  // Base styles
45
49
  'inline-flex items-center justify-center', 'rounded-full px-4', 'text-default font-medium', 'bg-muted',
50
+ // Add relative positioning for loading state
51
+ 'relative',
46
52
  // Size
47
53
  ButtonBase_constants_1.BUTTON_BASE_SIZE_CLASS_MAP[size],
48
54
  // Full width
49
55
  isFullWidth && 'w-full',
56
+ // Animation classes - only applied when interactive
57
+ isInteractive && [
58
+ 'transition-[transform,colors,opacity]',
59
+ 'duration-100',
60
+ 'ease-linear',
61
+ 'active:scale-[0.97]',
62
+ 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',
63
+ ],
50
64
  // Disabled state - apply to both isDisabled and isLoading
51
- (isDisabled || isLoading) && 'opacity-50 cursor-not-allowed',
65
+ (isDisabled || isLoading) && 'cursor-not-allowed', isDisabled && 'opacity-50',
52
66
  // Custom classes
53
67
  className);
54
- return (react_1.default.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : isDisabled ?? isLoading, style: style, ...props },
68
+ return (react_1.default.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : (isDisabled ?? isLoading), style: style, ...props },
55
69
  renderStartContent(),
56
70
  react_1.default.createElement(react_slot_1.Slottable, null, isLoading ? renderLoadingState() : renderContent()),
57
71
  renderEndContent()));
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { Icon, IconName, IconSize, Text, TextColor } from '..';\nimport { twMerge } from '../../utils/tw-merge';\nimport { BUTTON_BASE_SIZE_CLASS_MAP } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\nimport { ButtonBaseSize } from './ButtonBase.types';\n\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Md,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n\n const renderLoadingState = () => (\n <span className=\"inline-flex items-center\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'animate-spin mr-2 text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n {loadingText ?? children}\n </span>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge('mr-2 text-inherit', startIconProps?.className)}\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span className=\"mr-2\">{startAccessory}</span>;\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('ml-2 text-inherit', endIconProps?.className)}\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span className=\"ml-2\">{endAccessory}</span>;\n }\n return null;\n };\n\n const renderContent = () => {\n if (children && typeof children === 'string') {\n return (\n <Text color={TextColor.Inherit} asChild {...textProps}>\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-full px-4',\n 'text-default font-medium',\n 'bg-muted',\n // Size\n BUTTON_BASE_SIZE_CLASS_MAP[size],\n // Full width\n isFullWidth && 'w-full',\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'opacity-50 cursor-not-allowed',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : isDisabled ?? isLoading}\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/button-base/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { Text, FontWeight, TextColor } from '../text';\nimport { Icon, IconName, IconSize } from '../icon';\nimport { twMerge } from '../../utils/tw-merge';\nimport { BUTTON_BASE_SIZE_CLASS_MAP } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\nimport { ButtonBaseSize } from './ButtonBase.types';\n\nexport const ButtonBase = React.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 startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n const renderLoadingState = () => (\n <>\n <span className=\"absolute inline-flex items-center\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'animate-spin mr-2 text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n {loadingText}\n </span>\n <span className=\"invisible inline-flex items-center\">{children}</span>\n </>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge('mr-2 text-inherit', startIconProps?.className)}\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span className=\"mr-2\">{startAccessory}</span>;\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('ml-2 text-inherit', endIconProps?.className)}\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span className=\"ml-2\">{endAccessory}</span>;\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-full px-4',\n 'text-default font-medium',\n 'bg-muted',\n // Add relative positioning for loading state\n 'relative',\n // Size\n BUTTON_BASE_SIZE_CLASS_MAP[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-[transform,colors,opacity]',\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 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 +1 @@
1
- {"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAK1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGAsHtB,CAAC"}
1
+ {"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAM1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGA0ItB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAK1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGAsHtB,CAAC"}
1
+ {"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAM1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGA0ItB,CAAC"}
@@ -7,15 +7,19 @@ function $importDefault(module) {
7
7
  import { Slot, Slottable } from "@radix-ui/react-slot";
8
8
  import $React from "react";
9
9
  const React = $importDefault($React);
10
- import { Icon, IconName, IconSize, Text, TextColor } from "../index.mjs";
10
+ import { Text, FontWeight, TextColor } from "../text/index.mjs";
11
+ import { Icon, IconName, IconSize } from "../icon/index.mjs";
11
12
  import { twMerge } from "../../utils/tw-merge.mjs";
12
13
  import { BUTTON_BASE_SIZE_CLASS_MAP } from "./ButtonBase.constants.mjs";
13
14
  import { ButtonBaseSize } from "./ButtonBase.types.mjs";
14
- export const ButtonBase = React.forwardRef(({ children, className, size = ButtonBaseSize.Md, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, ...props }, ref) => {
15
+ export const ButtonBase = React.forwardRef(({ children, className, size = ButtonBaseSize.Lg, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, ...props }, ref) => {
15
16
  const Component = asChild ? Slot : 'button';
16
- const renderLoadingState = () => (React.createElement("span", { className: "inline-flex items-center" },
17
- React.createElement(Icon, { name: IconName.Loading, size: IconSize.Sm, className: twMerge('animate-spin mr-2 text-inherit', loadingIconProps?.className), ...loadingIconProps }),
18
- loadingText ?? children));
17
+ const isInteractive = !(isDisabled ?? isLoading);
18
+ const renderLoadingState = () => (React.createElement(React.Fragment, null,
19
+ React.createElement("span", { className: "absolute inline-flex items-center" },
20
+ React.createElement(Icon, { name: IconName.Loading, size: IconSize.Sm, className: twMerge('animate-spin mr-2 text-inherit', loadingIconProps?.className), ...loadingIconProps }),
21
+ loadingText),
22
+ React.createElement("span", { className: "invisible inline-flex items-center" }, children)));
19
23
  const renderStartContent = () => {
20
24
  if (startIconName) {
21
25
  return (React.createElement(Icon, { name: startIconName, size: IconSize.Sm, className: twMerge('mr-2 text-inherit', startIconProps?.className), ...startIconProps }));
@@ -36,7 +40,7 @@ export const ButtonBase = React.forwardRef(({ children, className, size = Button
36
40
  };
37
41
  const renderContent = () => {
38
42
  if (children && typeof children === 'string') {
39
- return (React.createElement(Text, { color: TextColor.Inherit, asChild: true, ...textProps },
43
+ return (React.createElement(Text, { fontWeight: FontWeight.Medium, color: TextColor.Inherit, asChild: true, ...textProps },
40
44
  React.createElement("span", null, children)));
41
45
  }
42
46
  return children;
@@ -44,15 +48,25 @@ export const ButtonBase = React.forwardRef(({ children, className, size = Button
44
48
  const mergedClassName = twMerge(
45
49
  // Base styles
46
50
  'inline-flex items-center justify-center', 'rounded-full px-4', 'text-default font-medium', 'bg-muted',
51
+ // Add relative positioning for loading state
52
+ 'relative',
47
53
  // Size
48
54
  BUTTON_BASE_SIZE_CLASS_MAP[size],
49
55
  // Full width
50
56
  isFullWidth && 'w-full',
57
+ // Animation classes - only applied when interactive
58
+ isInteractive && [
59
+ 'transition-[transform,colors,opacity]',
60
+ 'duration-100',
61
+ 'ease-linear',
62
+ 'active:scale-[0.97]',
63
+ 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',
64
+ ],
51
65
  // Disabled state - apply to both isDisabled and isLoading
52
- (isDisabled || isLoading) && 'opacity-50 cursor-not-allowed',
66
+ (isDisabled || isLoading) && 'cursor-not-allowed', isDisabled && 'opacity-50',
53
67
  // Custom classes
54
68
  className);
55
- return (React.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : isDisabled ?? isLoading, style: style, ...props },
69
+ return (React.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : (isDisabled ?? isLoading), style: style, ...props },
56
70
  renderStartContent(),
57
71
  React.createElement(Slottable, null, isLoading ? renderLoadingState() : renderContent()),
58
72
  renderEndContent()));
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { Icon, IconName, IconSize, Text, TextColor } from '..';\nimport { twMerge } from '../../utils/tw-merge';\nimport { BUTTON_BASE_SIZE_CLASS_MAP } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\nimport { ButtonBaseSize } from './ButtonBase.types';\n\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Md,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n\n const renderLoadingState = () => (\n <span className=\"inline-flex items-center\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'animate-spin mr-2 text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n {loadingText ?? children}\n </span>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge('mr-2 text-inherit', startIconProps?.className)}\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span className=\"mr-2\">{startAccessory}</span>;\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('ml-2 text-inherit', endIconProps?.className)}\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span className=\"ml-2\">{endAccessory}</span>;\n }\n return null;\n };\n\n const renderContent = () => {\n if (children && typeof children === 'string') {\n return (\n <Text color={TextColor.Inherit} asChild {...textProps}>\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-full px-4',\n 'text-default font-medium',\n 'bg-muted',\n // Size\n BUTTON_BASE_SIZE_CLASS_MAP[size],\n // Full width\n isFullWidth && 'w-full',\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'opacity-50 cursor-not-allowed',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : isDisabled ?? isLoading}\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/button-base/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { Text, FontWeight, TextColor } from '../text';\nimport { Icon, IconName, IconSize } from '../icon';\nimport { twMerge } from '../../utils/tw-merge';\nimport { BUTTON_BASE_SIZE_CLASS_MAP } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\nimport { ButtonBaseSize } from './ButtonBase.types';\n\nexport const ButtonBase = React.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 startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n const renderLoadingState = () => (\n <>\n <span className=\"absolute inline-flex items-center\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'animate-spin mr-2 text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n {loadingText}\n </span>\n <span className=\"invisible inline-flex items-center\">{children}</span>\n </>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge('mr-2 text-inherit', startIconProps?.className)}\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span className=\"mr-2\">{startAccessory}</span>;\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('ml-2 text-inherit', endIconProps?.className)}\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span className=\"ml-2\">{endAccessory}</span>;\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-full px-4',\n 'text-default font-medium',\n 'bg-muted',\n // Add relative positioning for loading state\n 'relative',\n // Size\n BUTTON_BASE_SIZE_CLASS_MAP[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-[transform,colors,opacity]',\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 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 +1 @@
1
- {"version":3,"file":"ButtonBase.types.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,8BAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.Md\n */\n size?: ButtonBaseSize;\n /**\n * Optional props to be passed to the Text component when children is a string\n */\n textProps?: Partial<TextProps>;\n /**\n * Optional prop that when true, makes the button take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n /**\n * Optional boolean that determines if the component should merge its props onto its immediate child\n * instead of rendering a button element\n * @default false\n */\n asChild?: boolean;\n /**\n * Optional prop that when true, shows a loading spinner\n * @default false\n */\n isLoading?: boolean;\n /**\n * Optional prop for text to display when button is in loading state\n */\n loadingText?: string;\n /**\n * Optional prop to specify an icon to show at the start of the button\n */\n startIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the start icon\n */\n startIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the start of the button\n */\n startAccessory?: React.ReactNode;\n /**\n * Optional prop to specify an icon to show at the end of the button\n */\n endIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the end icon\n */\n endIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the end of the button\n */\n endAccessory?: React.ReactNode;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop to pass additional properties to the loading icon\n */\n loadingIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
1
+ {"version":3,"file":"ButtonBase.types.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,8BAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.Lg\n */\n size?: ButtonBaseSize;\n /**\n * Optional props to be passed to the Text component when children is a string\n */\n textProps?: Partial<TextProps>;\n /**\n * Optional prop that when true, makes the button take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n /**\n * Optional boolean that determines if the component should merge its props onto its immediate child\n * instead of rendering a button element\n * @default false\n */\n asChild?: boolean;\n /**\n * Optional prop that when true, shows a loading spinner\n * @default false\n */\n isLoading?: boolean;\n /**\n * Optional prop for text to display when button is in loading state\n */\n loadingText?: string;\n /**\n * Optional prop to specify an icon to show at the start of the button\n */\n startIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the start icon\n */\n startIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the start of the button\n */\n startAccessory?: React.ReactNode;\n /**\n * Optional prop to specify an icon to show at the end of the button\n */\n endIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the end icon\n */\n endIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the end of the button\n */\n endAccessory?: React.ReactNode;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop to pass additional properties to the loading icon\n */\n loadingIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
@@ -28,7 +28,7 @@ export type ButtonBaseProps = ComponentProps<'button'> & {
28
28
  className?: string;
29
29
  /**
30
30
  * Optional prop to control the size of the ButtonBase
31
- * @default ButtonBaseSize.Md
31
+ * @default ButtonBaseSize.Lg
32
32
  */
33
33
  size?: ButtonBaseSize;
34
34
  /**
@@ -28,7 +28,7 @@ export type ButtonBaseProps = ComponentProps<'button'> & {
28
28
  className?: string;
29
29
  /**
30
30
  * Optional prop to control the size of the ButtonBase
31
- * @default ButtonBaseSize.Md
31
+ * @default ButtonBaseSize.Lg
32
32
  */
33
33
  size?: ButtonBaseSize;
34
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.types.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.Md\n */\n size?: ButtonBaseSize;\n /**\n * Optional props to be passed to the Text component when children is a string\n */\n textProps?: Partial<TextProps>;\n /**\n * Optional prop that when true, makes the button take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n /**\n * Optional boolean that determines if the component should merge its props onto its immediate child\n * instead of rendering a button element\n * @default false\n */\n asChild?: boolean;\n /**\n * Optional prop that when true, shows a loading spinner\n * @default false\n */\n isLoading?: boolean;\n /**\n * Optional prop for text to display when button is in loading state\n */\n loadingText?: string;\n /**\n * Optional prop to specify an icon to show at the start of the button\n */\n startIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the start icon\n */\n startIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the start of the button\n */\n startAccessory?: React.ReactNode;\n /**\n * Optional prop to specify an icon to show at the end of the button\n */\n endIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the end icon\n */\n endIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the end of the button\n */\n endAccessory?: React.ReactNode;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop to pass additional properties to the loading icon\n */\n loadingIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
1
+ {"version":3,"file":"ButtonBase.types.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.Lg\n */\n size?: ButtonBaseSize;\n /**\n * Optional props to be passed to the Text component when children is a string\n */\n textProps?: Partial<TextProps>;\n /**\n * Optional prop that when true, makes the button take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n /**\n * Optional boolean that determines if the component should merge its props onto its immediate child\n * instead of rendering a button element\n * @default false\n */\n asChild?: boolean;\n /**\n * Optional prop that when true, shows a loading spinner\n * @default false\n */\n isLoading?: boolean;\n /**\n * Optional prop for text to display when button is in loading state\n */\n loadingText?: string;\n /**\n * Optional prop to specify an icon to show at the start of the button\n */\n startIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the start icon\n */\n startIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the start of the button\n */\n startAccessory?: React.ReactNode;\n /**\n * Optional prop to specify an icon to show at the end of the button\n */\n endIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the end icon\n */\n endIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the end of the button\n */\n endAccessory?: React.ReactNode;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop to pass additional properties to the loading icon\n */\n loadingIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ButtonIcon = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const tw_merge_1 = require("../../utils/tw-merge.cjs");
9
+ const button_base_1 = require("../button-base/index.cjs");
10
+ const icon_1 = require("../icon/index.cjs");
11
+ const ButtonIcon_constants_1 = require("./ButtonIcon.constants.cjs");
12
+ const ButtonIcon_types_1 = require("./ButtonIcon.types.cjs");
13
+ exports.ButtonIcon = react_1.default.forwardRef(({ className, iconName, iconProps, ariaLabel, isDisabled = false, isInverse = false, isFloating = false, size = ButtonIcon_types_1.ButtonIconSize.Md, style, ...props }, ref) => {
14
+ const isInteractive = !isDisabled;
15
+ const mergedClassName = (0, tw_merge_1.twMerge)(
16
+ // Base styles
17
+ 'p-0',
18
+ // Size styles
19
+ ButtonIcon_constants_1.BUTTON_ICON_SIZE_CLASS_MAP[size],
20
+ // Floating styles
21
+ isFloating && [
22
+ 'rounded-full',
23
+ !isInverse && 'bg-icon-default text-background-default',
24
+ isInverse && 'bg-icon-default text-background-default',
25
+ ],
26
+ // Non-floating styles
27
+ !isFloating && [
28
+ 'rounded bg-transparent ',
29
+ // Only apply hover/active styles when interactive
30
+ isInteractive && 'hover:bg-hover active:bg-pressed',
31
+ !isInverse && 'text-icon-default',
32
+ isInverse && 'text-background-default',
33
+ ], className);
34
+ return (react_1.default.createElement(button_base_1.ButtonBase, { ref: ref, className: mergedClassName, isDisabled: isDisabled, "aria-label": ariaLabel, ...props },
35
+ react_1.default.createElement(icon_1.Icon, { name: iconName, size: ButtonIcon_constants_1.BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP[size], className: (0, tw_merge_1.twMerge)('text-inherit', iconProps?.className), ...iconProps })));
36
+ });
37
+ exports.ButtonIcon.displayName = 'ButtonIcon';
38
+ //# sourceMappingURL=ButtonIcon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonIcon.cjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uDAA+C;AAC/C,0DAA4C;AAC5C,4CAA+B;AAC/B,qEAGgC;AAEhC,6DAAoD;AAEvC,QAAA,UAAU,GAAG,eAAK,CAAC,UAAU,CACxC,CACE,EACE,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,iCAAc,CAAC,EAAE,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC;IAElC,MAAM,eAAe,GAAG,IAAA,kBAAO;IAC7B,cAAc;IACd,KAAK;IACL,cAAc;IACd,iDAA0B,CAAC,IAAI,CAAC;IAChC,kBAAkB;IAClB,UAAU,IAAI;QACZ,cAAc;QACd,CAAC,SAAS,IAAI,yCAAyC;QACvD,SAAS,IAAI,yCAAyC;KACvD;IACD,sBAAsB;IACtB,CAAC,UAAU,IAAI;QACb,yBAAyB;QACzB,kDAAkD;QAClD,aAAa,IAAI,kCAAkC;QACnD,CAAC,SAAS,IAAI,mBAAmB;QACjC,SAAS,IAAI,yBAAyB;KACvC,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,wBAAU,IACT,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,UAAU,gBACV,SAAS,KACjB,KAAK;QAET,8BAAC,WAAI,IACH,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,8DAAuC,CAAC,IAAI,CAAC,EACnD,SAAS,EAAE,IAAA,kBAAO,EAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,KACpD,SAAS,GACb,CACS,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAU,CAAC,WAAW,GAAG,YAAY,CAAC","sourcesContent":["import React from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { ButtonBase } from '../button-base';\nimport { Icon } from '../icon';\nimport {\n BUTTON_ICON_SIZE_CLASS_MAP,\n BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP,\n} from './ButtonIcon.constants';\nimport type { ButtonIconProps } from './ButtonIcon.types';\nimport { ButtonIconSize } from './ButtonIcon.types';\n\nexport const ButtonIcon = React.forwardRef<HTMLButtonElement, ButtonIconProps>(\n (\n {\n className,\n iconName,\n iconProps,\n ariaLabel,\n isDisabled = false,\n isInverse = false,\n isFloating = false,\n size = ButtonIconSize.Md,\n style,\n ...props\n },\n ref,\n ) => {\n const isInteractive = !isDisabled;\n\n const mergedClassName = twMerge(\n // Base styles\n 'p-0',\n // Size styles\n BUTTON_ICON_SIZE_CLASS_MAP[size],\n // Floating styles\n isFloating && [\n 'rounded-full',\n !isInverse && 'bg-icon-default text-background-default',\n isInverse && 'bg-icon-default text-background-default',\n ],\n // Non-floating styles\n !isFloating && [\n 'rounded bg-transparent ',\n // Only apply hover/active styles when interactive\n isInteractive && 'hover:bg-hover active:bg-pressed',\n !isInverse && 'text-icon-default',\n isInverse && 'text-background-default',\n ],\n className,\n );\n\n return (\n <ButtonBase\n ref={ref}\n className={mergedClassName}\n isDisabled={isDisabled}\n aria-label={ariaLabel}\n {...props}\n >\n <Icon\n name={iconName}\n size={BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP[size]}\n className={twMerge('text-inherit', iconProps?.className)}\n {...iconProps}\n />\n </ButtonBase>\n );\n },\n);\n\nButtonIcon.displayName = 'ButtonIcon';\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = exports.BUTTON_ICON_SIZE_CLASS_MAP = void 0;
4
+ const icon_1 = require("../icon/index.cjs");
5
+ const ButtonIcon_types_1 = require("./ButtonIcon.types.cjs");
6
+ exports.BUTTON_ICON_SIZE_CLASS_MAP = {
7
+ [ButtonIcon_types_1.ButtonIconSize.Sm]: 'h-6 w-6',
8
+ [ButtonIcon_types_1.ButtonIconSize.Md]: 'h-8 w-8',
9
+ [ButtonIcon_types_1.ButtonIconSize.Lg]: 'h-10 w-10',
10
+ };
11
+ exports.BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = {
12
+ [ButtonIcon_types_1.ButtonIconSize.Sm]: icon_1.IconSize.Sm,
13
+ [ButtonIcon_types_1.ButtonIconSize.Md]: icon_1.IconSize.Md,
14
+ [ButtonIcon_types_1.ButtonIconSize.Lg]: icon_1.IconSize.Lg,
15
+ };
16
+ //# sourceMappingURL=ButtonIcon.constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonIcon.constants.cjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":";;;AAAA,4CAAmC;AACnC,6DAAoD;AAEvC,QAAA,0BAA0B,GAAG;IACxC,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,SAAS;IAC9B,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,SAAS;IAC9B,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,WAAW;CACxB,CAAC;AAEE,QAAA,uCAAuC,GAAG;IACrD,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,eAAQ,CAAC,EAAE;IAChC,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,eAAQ,CAAC,EAAE;IAChC,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,eAAQ,CAAC,EAAE;CACxB,CAAC","sourcesContent":["import { IconSize } from '../icon';\nimport { ButtonIconSize } from './ButtonIcon.types';\n\nexport const BUTTON_ICON_SIZE_CLASS_MAP = {\n [ButtonIconSize.Sm]: 'h-6 w-6',\n [ButtonIconSize.Md]: 'h-8 w-8',\n [ButtonIconSize.Lg]: 'h-10 w-10',\n} as const;\n\nexport const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = {\n [ButtonIconSize.Sm]: IconSize.Sm,\n [ButtonIconSize.Md]: IconSize.Md,\n [ButtonIconSize.Lg]: IconSize.Lg,\n} as const;\n"]}
@@ -0,0 +1,12 @@
1
+ import { IconSize } from "../icon/index.cjs";
2
+ export declare const BUTTON_ICON_SIZE_CLASS_MAP: {
3
+ readonly sm: "h-6 w-6";
4
+ readonly md: "h-8 w-8";
5
+ readonly lg: "h-10 w-10";
6
+ };
7
+ export declare const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP: {
8
+ readonly sm: IconSize.Sm;
9
+ readonly md: IconSize.Md;
10
+ readonly lg: IconSize.Lg;
11
+ };
12
+ //# sourceMappingURL=ButtonIcon.constants.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonIcon.constants.d.cts","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,0BAAgB;AAGnC,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,uCAAuC;;;;CAI1C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { IconSize } from "../icon/index.mjs";
2
+ export declare const BUTTON_ICON_SIZE_CLASS_MAP: {
3
+ readonly sm: "h-6 w-6";
4
+ readonly md: "h-8 w-8";
5
+ readonly lg: "h-10 w-10";
6
+ };
7
+ export declare const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP: {
8
+ readonly sm: IconSize.Sm;
9
+ readonly md: IconSize.Md;
10
+ readonly lg: IconSize.Lg;
11
+ };
12
+ //# sourceMappingURL=ButtonIcon.constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonIcon.constants.d.mts","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,0BAAgB;AAGnC,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,uCAAuC;;;;CAI1C,CAAC"}