@zentauri-ui/zentauri-components 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +66 -38
  2. package/dist/accordion-base-qVomr7f_.d.mts +66 -0
  3. package/dist/accordion-base-qVomr7f_.d.ts +66 -0
  4. package/dist/avatar-base-s4dYg-24.d.mts +49 -0
  5. package/dist/avatar-base-s4dYg-24.d.ts +49 -0
  6. package/dist/card-base-CIGac8D_.d.mts +70 -0
  7. package/dist/card-base-CIGac8D_.d.ts +70 -0
  8. package/dist/chunk-2P3UU2J3.mjs +510 -0
  9. package/dist/chunk-2P3UU2J3.mjs.map +1 -0
  10. package/dist/chunk-2PQEXQVR.js +223 -0
  11. package/dist/chunk-2PQEXQVR.js.map +1 -0
  12. package/dist/chunk-3OR47XMY.js +273 -0
  13. package/dist/chunk-3OR47XMY.js.map +1 -0
  14. package/dist/chunk-4B7KGBQB.js +206 -0
  15. package/dist/chunk-4B7KGBQB.js.map +1 -0
  16. package/dist/chunk-5QB2KNZQ.js +148 -0
  17. package/dist/chunk-5QB2KNZQ.js.map +1 -0
  18. package/dist/chunk-6I7X5BF2.js +520 -0
  19. package/dist/chunk-6I7X5BF2.js.map +1 -0
  20. package/dist/chunk-7HL3A4YF.mjs +214 -0
  21. package/dist/chunk-7HL3A4YF.mjs.map +1 -0
  22. package/dist/chunk-AOEI4V3W.mjs +286 -0
  23. package/dist/chunk-AOEI4V3W.mjs.map +1 -0
  24. package/dist/chunk-BVXTOEBI.mjs +259 -0
  25. package/dist/chunk-BVXTOEBI.mjs.map +1 -0
  26. package/dist/chunk-C2FCPQTO.js +279 -0
  27. package/dist/chunk-C2FCPQTO.js.map +1 -0
  28. package/dist/chunk-E3DZNJAD.js +128 -0
  29. package/dist/chunk-E3DZNJAD.js.map +1 -0
  30. package/dist/chunk-FLILFCQE.mjs +197 -0
  31. package/dist/chunk-FLILFCQE.mjs.map +1 -0
  32. package/dist/chunk-IXDJ3IPG.mjs +315 -0
  33. package/dist/chunk-IXDJ3IPG.mjs.map +1 -0
  34. package/dist/chunk-JQ5TIJ4F.mjs +68 -0
  35. package/dist/chunk-JQ5TIJ4F.mjs.map +1 -0
  36. package/dist/chunk-LVUPECBT.mjs +217 -0
  37. package/dist/chunk-LVUPECBT.mjs.map +1 -0
  38. package/dist/chunk-N4NO3SYL.js +328 -0
  39. package/dist/chunk-N4NO3SYL.js.map +1 -0
  40. package/dist/chunk-OJ67PZ6N.js +175 -0
  41. package/dist/chunk-OJ67PZ6N.js.map +1 -0
  42. package/dist/chunk-P5HUBXUX.js +231 -0
  43. package/dist/chunk-P5HUBXUX.js.map +1 -0
  44. package/dist/chunk-PCK6LX3K.js +253 -0
  45. package/dist/chunk-PCK6LX3K.js.map +1 -0
  46. package/dist/chunk-PGH27VTL.mjs +316 -0
  47. package/dist/chunk-PGH27VTL.mjs.map +1 -0
  48. package/dist/chunk-QZKMFSH5.js +288 -0
  49. package/dist/chunk-QZKMFSH5.js.map +1 -0
  50. package/dist/chunk-RDSPHBHK.mjs +221 -0
  51. package/dist/chunk-RDSPHBHK.mjs.map +1 -0
  52. package/dist/chunk-U4YQCAXW.js +204 -0
  53. package/dist/chunk-U4YQCAXW.js.map +1 -0
  54. package/dist/chunk-UBFKTC2P.mjs +268 -0
  55. package/dist/chunk-UBFKTC2P.mjs.map +1 -0
  56. package/dist/chunk-UOFTZKMM.js +229 -0
  57. package/dist/chunk-UOFTZKMM.js.map +1 -0
  58. package/dist/chunk-UXGHUBNJ.mjs +240 -0
  59. package/dist/chunk-UXGHUBNJ.mjs.map +1 -0
  60. package/dist/chunk-W6PRMYUC.mjs +169 -0
  61. package/dist/chunk-W6PRMYUC.mjs.map +1 -0
  62. package/dist/chunk-WDCIZHXY.mjs +139 -0
  63. package/dist/chunk-WDCIZHXY.mjs.map +1 -0
  64. package/dist/chunk-WZKGRU3U.js +182 -0
  65. package/dist/chunk-WZKGRU3U.js.map +1 -0
  66. package/dist/chunk-X22LLJL6.js +71 -0
  67. package/dist/chunk-X22LLJL6.js.map +1 -0
  68. package/dist/chunk-XIXF7UVM.mjs +194 -0
  69. package/dist/chunk-XIXF7UVM.mjs.map +1 -0
  70. package/dist/chunk-XLAFQ24R.js +328 -0
  71. package/dist/chunk-XLAFQ24R.js.map +1 -0
  72. package/dist/chunk-XWM2S6VV.mjs +124 -0
  73. package/dist/chunk-XWM2S6VV.mjs.map +1 -0
  74. package/dist/chunk-YNCD6TKE.mjs +175 -0
  75. package/dist/chunk-YNCD6TKE.mjs.map +1 -0
  76. package/dist/progress-base-Cm1JODYA.d.mts +66 -0
  77. package/dist/progress-base-Cm1JODYA.d.ts +66 -0
  78. package/dist/types-C7N9UvRm.d.mts +38 -0
  79. package/dist/types-C7N9UvRm.d.ts +38 -0
  80. package/dist/types-CFpwSbpK.d.mts +27 -0
  81. package/dist/types-CFpwSbpK.d.ts +27 -0
  82. package/dist/types-CK_vNRIb.d.mts +63 -0
  83. package/dist/types-CK_vNRIb.d.ts +63 -0
  84. package/dist/types-Ca3t5aC_.d.mts +31 -0
  85. package/dist/types-Ca3t5aC_.d.ts +31 -0
  86. package/dist/types-Cn7IcgkH.d.mts +32 -0
  87. package/dist/types-Cn7IcgkH.d.ts +32 -0
  88. package/dist/types-CtFK7mFE.d.mts +34 -0
  89. package/dist/types-CtFK7mFE.d.ts +34 -0
  90. package/dist/types-DMkTQsWg.d.mts +46 -0
  91. package/dist/types-DMkTQsWg.d.ts +46 -0
  92. package/dist/types-DN400jNg.d.mts +28 -0
  93. package/dist/types-DN400jNg.d.ts +28 -0
  94. package/dist/types-vcZcRc6w.d.mts +24 -0
  95. package/dist/types-vcZcRc6w.d.ts +24 -0
  96. package/dist/types-zHcMUtKK.d.mts +42 -0
  97. package/dist/types-zHcMUtKK.d.ts +42 -0
  98. package/dist/ui/accordion/animated.d.mts +24 -0
  99. package/dist/ui/accordion/animated.d.ts +24 -0
  100. package/dist/ui/accordion/animated.js +67 -0
  101. package/dist/ui/accordion/animated.js.map +1 -0
  102. package/dist/ui/accordion/animated.mjs +56 -0
  103. package/dist/ui/accordion/animated.mjs.map +1 -0
  104. package/dist/ui/accordion.d.mts +9 -65
  105. package/dist/ui/accordion.d.ts +9 -65
  106. package/dist/ui/accordion.js +32 -288
  107. package/dist/ui/accordion.js.map +1 -1
  108. package/dist/ui/accordion.mjs +6 -281
  109. package/dist/ui/accordion.mjs.map +1 -1
  110. package/dist/ui/alert/animated.d.mts +18 -0
  111. package/dist/ui/alert/animated.d.ts +18 -0
  112. package/dist/ui/alert/animated.js +47 -0
  113. package/dist/ui/alert/animated.js.map +1 -0
  114. package/dist/ui/alert/animated.mjs +44 -0
  115. package/dist/ui/alert/animated.mjs.map +1 -0
  116. package/dist/ui/alert.d.mts +10 -40
  117. package/dist/ui/alert.d.ts +10 -40
  118. package/dist/ui/alert.js +36 -218
  119. package/dist/ui/alert.js.map +1 -1
  120. package/dist/ui/alert.mjs +7 -211
  121. package/dist/ui/alert.mjs.map +1 -1
  122. package/dist/ui/avatar/animated.d.mts +22 -0
  123. package/dist/ui/avatar/animated.d.ts +22 -0
  124. package/dist/ui/avatar/animated.js +51 -0
  125. package/dist/ui/avatar/animated.js.map +1 -0
  126. package/dist/ui/avatar/animated.mjs +37 -0
  127. package/dist/ui/avatar/animated.mjs.map +1 -0
  128. package/dist/ui/avatar.d.mts +7 -53
  129. package/dist/ui/avatar.d.ts +7 -53
  130. package/dist/ui/avatar.js +32 -210
  131. package/dist/ui/avatar.js.map +1 -1
  132. package/dist/ui/avatar.mjs +7 -204
  133. package/dist/ui/avatar.mjs.map +1 -1
  134. package/dist/ui/badge/animated.d.mts +22 -0
  135. package/dist/ui/badge/animated.d.ts +22 -0
  136. package/dist/ui/badge/animated.js +50 -0
  137. package/dist/ui/badge/animated.js.map +1 -0
  138. package/dist/ui/badge/animated.mjs +47 -0
  139. package/dist/ui/badge/animated.mjs.map +1 -0
  140. package/dist/ui/badge.d.mts +6 -30
  141. package/dist/ui/badge.d.ts +6 -30
  142. package/dist/ui/badge.js +11 -142
  143. package/dist/ui/badge.js.map +1 -1
  144. package/dist/ui/badge.mjs +6 -141
  145. package/dist/ui/badge.mjs.map +1 -1
  146. package/dist/ui/buttons/animated.d.mts +27 -0
  147. package/dist/ui/buttons/animated.d.ts +27 -0
  148. package/dist/ui/buttons/animated.js +101 -0
  149. package/dist/ui/buttons/animated.js.map +1 -0
  150. package/dist/ui/buttons/animated.mjs +98 -0
  151. package/dist/ui/buttons/animated.mjs.map +1 -0
  152. package/dist/ui/buttons.d.mts +5 -13
  153. package/dist/ui/buttons.d.ts +5 -13
  154. package/dist/ui/buttons.js +7 -45
  155. package/dist/ui/buttons.js.map +1 -1
  156. package/dist/ui/buttons.mjs +8 -45
  157. package/dist/ui/buttons.mjs.map +1 -1
  158. package/dist/ui/card/animated.d.mts +23 -0
  159. package/dist/ui/card/animated.d.ts +23 -0
  160. package/dist/ui/card/animated.js +72 -0
  161. package/dist/ui/card/animated.js.map +1 -0
  162. package/dist/ui/card/animated.mjs +50 -0
  163. package/dist/ui/card/animated.mjs.map +1 -0
  164. package/dist/ui/card.d.mts +6 -70
  165. package/dist/ui/card.d.ts +6 -70
  166. package/dist/ui/card.js +43 -245
  167. package/dist/ui/card.js.map +1 -1
  168. package/dist/ui/card.mjs +5 -235
  169. package/dist/ui/card.mjs.map +1 -1
  170. package/dist/ui/divider/animated.d.mts +19 -0
  171. package/dist/ui/divider/animated.d.ts +19 -0
  172. package/dist/ui/divider/animated.js +41 -0
  173. package/dist/ui/divider/animated.js.map +1 -0
  174. package/dist/ui/divider/animated.mjs +39 -0
  175. package/dist/ui/divider/animated.mjs.map +1 -0
  176. package/dist/ui/divider.d.mts +6 -32
  177. package/dist/ui/divider.d.ts +6 -32
  178. package/dist/ui/divider.js +19 -186
  179. package/dist/ui/divider.js.map +1 -1
  180. package/dist/ui/divider.mjs +6 -183
  181. package/dist/ui/divider.mjs.map +1 -1
  182. package/dist/ui/drawer/animated.d.mts +23 -0
  183. package/dist/ui/drawer/animated.d.ts +23 -0
  184. package/dist/ui/drawer/animated.js +143 -0
  185. package/dist/ui/drawer/animated.js.map +1 -0
  186. package/dist/ui/drawer/animated.mjs +113 -0
  187. package/dist/ui/drawer/animated.mjs.map +1 -0
  188. package/dist/ui/drawer.d.mts +10 -11
  189. package/dist/ui/drawer.d.ts +10 -11
  190. package/dist/ui/drawer.js +44 -357
  191. package/dist/ui/drawer.js.map +1 -1
  192. package/dist/ui/drawer.mjs +3 -349
  193. package/dist/ui/drawer.mjs.map +1 -1
  194. package/dist/ui/empty-state/animated.d.mts +24 -0
  195. package/dist/ui/empty-state/animated.d.ts +24 -0
  196. package/dist/ui/empty-state/animated.js +45 -0
  197. package/dist/ui/empty-state/animated.js.map +1 -0
  198. package/dist/ui/empty-state/animated.mjs +42 -0
  199. package/dist/ui/empty-state/animated.mjs.map +1 -0
  200. package/dist/ui/empty-state.d.mts +11 -32
  201. package/dist/ui/empty-state.d.ts +11 -32
  202. package/dist/ui/empty-state.js +35 -160
  203. package/dist/ui/empty-state.js.map +1 -1
  204. package/dist/ui/empty-state.mjs +5 -153
  205. package/dist/ui/empty-state.mjs.map +1 -1
  206. package/dist/ui/inputs/animated.d.mts +27 -0
  207. package/dist/ui/inputs/animated.d.ts +27 -0
  208. package/dist/ui/inputs/animated.js +141 -0
  209. package/dist/ui/inputs/animated.js.map +1 -0
  210. package/dist/ui/inputs/animated.mjs +138 -0
  211. package/dist/ui/inputs/animated.mjs.map +1 -0
  212. package/dist/ui/inputs.d.mts +7 -21
  213. package/dist/ui/inputs.d.ts +7 -21
  214. package/dist/ui/inputs.js +16 -331
  215. package/dist/ui/inputs.js.map +1 -1
  216. package/dist/ui/inputs.mjs +13 -329
  217. package/dist/ui/inputs.mjs.map +1 -1
  218. package/dist/ui/modal/animated.d.mts +21 -0
  219. package/dist/ui/modal/animated.d.ts +21 -0
  220. package/dist/ui/modal/animated.js +120 -0
  221. package/dist/ui/modal/animated.js.map +1 -0
  222. package/dist/ui/modal/animated.mjs +117 -0
  223. package/dist/ui/modal/animated.mjs.map +1 -0
  224. package/dist/ui/modal.d.mts +10 -48
  225. package/dist/ui/modal.d.ts +10 -48
  226. package/dist/ui/modal.js +47 -361
  227. package/dist/ui/modal.js.map +1 -1
  228. package/dist/ui/modal.mjs +9 -351
  229. package/dist/ui/modal.mjs.map +1 -1
  230. package/dist/ui/progress/animated.d.mts +41 -0
  231. package/dist/ui/progress/animated.d.ts +41 -0
  232. package/dist/ui/progress/animated.js +123 -0
  233. package/dist/ui/progress/animated.js.map +1 -0
  234. package/dist/ui/progress/animated.mjs +112 -0
  235. package/dist/ui/progress/animated.mjs.map +1 -0
  236. package/dist/ui/progress.d.mts +10 -58
  237. package/dist/ui/progress.d.ts +10 -58
  238. package/dist/ui/progress.js +35 -227
  239. package/dist/ui/progress.js.map +1 -1
  240. package/dist/ui/progress.mjs +10 -222
  241. package/dist/ui/progress.mjs.map +1 -1
  242. package/dist/ui/skeleton/animated.d.mts +56 -0
  243. package/dist/ui/skeleton/animated.d.ts +56 -0
  244. package/dist/ui/skeleton/animated.js +126 -0
  245. package/dist/ui/skeleton/animated.js.map +1 -0
  246. package/dist/ui/skeleton/animated.mjs +119 -0
  247. package/dist/ui/skeleton/animated.mjs.map +1 -0
  248. package/dist/ui/skeleton.d.mts +16 -77
  249. package/dist/ui/skeleton.d.ts +16 -77
  250. package/dist/ui/skeleton.js +35 -526
  251. package/dist/ui/skeleton.js.map +1 -1
  252. package/dist/ui/skeleton.mjs +2 -520
  253. package/dist/ui/skeleton.mjs.map +1 -1
  254. package/dist/ui/{spinner.d.mts → spinner/animated.d.mts} +1 -6
  255. package/dist/ui/{spinner.d.ts → spinner/animated.d.ts} +1 -6
  256. package/dist/ui/{spinner.js → spinner/animated.js} +3 -9
  257. package/dist/ui/spinner/animated.js.map +1 -0
  258. package/dist/ui/{spinner.mjs → spinner/animated.mjs} +4 -9
  259. package/dist/ui/spinner/animated.mjs.map +1 -0
  260. package/dist/ui/table/animated.d.mts +21 -0
  261. package/dist/ui/table/animated.d.ts +21 -0
  262. package/dist/ui/table/animated.js +50 -0
  263. package/dist/ui/table/animated.js.map +1 -0
  264. package/dist/ui/table/animated.mjs +24 -0
  265. package/dist/ui/table/animated.mjs.map +1 -0
  266. package/dist/ui/table.d.mts +17 -11
  267. package/dist/ui/table.d.ts +17 -11
  268. package/dist/ui/table.js +55 -278
  269. package/dist/ui/table.js.map +1 -1
  270. package/dist/ui/table.mjs +2 -269
  271. package/dist/ui/table.mjs.map +1 -1
  272. package/dist/ui/tabs/animated.d.mts +25 -0
  273. package/dist/ui/tabs/animated.d.ts +25 -0
  274. package/dist/ui/tabs/animated.js +83 -0
  275. package/dist/ui/tabs/animated.js.map +1 -0
  276. package/dist/ui/tabs/animated.mjs +79 -0
  277. package/dist/ui/tabs/animated.mjs.map +1 -0
  278. package/dist/ui/tabs.d.mts +7 -41
  279. package/dist/ui/tabs.d.ts +7 -41
  280. package/dist/ui/tabs.js +35 -261
  281. package/dist/ui/tabs.js.map +1 -1
  282. package/dist/ui/tabs.mjs +2 -256
  283. package/dist/ui/tabs.mjs.map +1 -1
  284. package/dist/ui/toast/animated.d.mts +23 -0
  285. package/dist/ui/toast/animated.d.ts +23 -0
  286. package/dist/ui/toast/animated.js +103 -0
  287. package/dist/ui/toast/animated.js.map +1 -0
  288. package/dist/ui/toast/animated.mjs +99 -0
  289. package/dist/ui/toast/animated.mjs.map +1 -0
  290. package/dist/ui/toast.d.mts +7 -52
  291. package/dist/ui/toast.d.ts +7 -52
  292. package/dist/ui/toast.js +47 -268
  293. package/dist/ui/toast.js.map +1 -1
  294. package/dist/ui/toast.mjs +2 -259
  295. package/dist/ui/toast.mjs.map +1 -1
  296. package/dist/ui/toggle/animated.d.mts +22 -0
  297. package/dist/ui/toggle/animated.d.ts +22 -0
  298. package/dist/ui/toggle/animated.js +88 -0
  299. package/dist/ui/toggle/animated.js.map +1 -0
  300. package/dist/ui/toggle/animated.mjs +85 -0
  301. package/dist/ui/toggle/animated.mjs.map +1 -0
  302. package/dist/ui/toggle.d.mts +6 -30
  303. package/dist/ui/toggle.d.ts +6 -30
  304. package/dist/ui/toggle.js +19 -83
  305. package/dist/ui/toggle.js.map +1 -1
  306. package/dist/ui/toggle.mjs +12 -80
  307. package/dist/ui/toggle.mjs.map +1 -1
  308. package/dist/ui/tooltip/animated.d.mts +17 -0
  309. package/dist/ui/tooltip/animated.d.ts +17 -0
  310. package/dist/ui/tooltip/animated.js +59 -0
  311. package/dist/ui/tooltip/animated.js.map +1 -0
  312. package/dist/ui/tooltip/animated.mjs +56 -0
  313. package/dist/ui/tooltip/animated.mjs.map +1 -0
  314. package/dist/ui/tooltip.d.mts +6 -33
  315. package/dist/ui/tooltip.d.ts +6 -33
  316. package/dist/ui/tooltip.js +26 -193
  317. package/dist/ui/tooltip.js.map +1 -1
  318. package/dist/ui/tooltip.mjs +2 -192
  319. package/dist/ui/tooltip.mjs.map +1 -1
  320. package/dist/variants-CYODHI8b.d.mts +10 -0
  321. package/dist/variants-CYODHI8b.d.ts +10 -0
  322. package/package.json +7 -4
  323. package/dist/ui/spinner.js.map +0 -1
  324. package/dist/ui/spinner.mjs.map +0 -1
package/dist/ui/badge.js CHANGED
@@ -1,154 +1,23 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkUOZYPWDZ_js = require('../chunk-UOZYPWDZ.js');
5
- var framerMotion = require('framer-motion');
6
- var hi2 = require('react-icons/hi2');
7
- var classVarianceAuthority = require('class-variance-authority');
4
+ var chunkE3DZNJAD_js = require('../chunk-E3DZNJAD.js');
5
+ require('../chunk-UOZYPWDZ.js');
8
6
  var jsxRuntime = require('react/jsx-runtime');
9
7
 
10
- // src/ui/badge/animations.ts
11
- var badgeAnimationPresets = {
12
- none: {},
13
- pop: {
14
- initial: { scale: 0.92, opacity: 0 },
15
- animate: { scale: 1, opacity: 1 },
16
- transition: { type: "spring", stiffness: 520, damping: 28 }
17
- },
18
- bounce: {
19
- whileHover: { y: -2, scale: 1.04 },
20
- whileTap: { scale: 0.96 },
21
- transition: { type: "spring", bounce: 0.45, stiffness: 420, damping: 18 }
22
- },
23
- fade: {
24
- initial: { opacity: 0 },
25
- animate: { opacity: 1 },
26
- transition: { duration: 0.2 }
27
- }
28
- };
29
- var buttonLikeSolidAppearances = {
30
- default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]",
31
- secondary: "bg-slate-800 text-slate-50",
32
- destructive: "bg-rose-600 text-white",
33
- outline: "border border-white/10 bg-white/5 text-slate-50",
34
- ghost: "bg-transparent text-slate-200",
35
- glass: "border border-white/15 bg-white/10 text-white backdrop-blur-md",
36
- emerald: "bg-emerald-600 text-white",
37
- indigo: "bg-indigo-600 text-white",
38
- purple: "bg-purple-600 text-white",
39
- pink: "bg-pink-600 text-white",
40
- rose: "bg-rose-600 text-white",
41
- sky: "bg-sky-600 text-white",
42
- teal: "bg-teal-600 text-white",
43
- yellow: "bg-yellow-600 text-white",
44
- orange: "bg-orange-600 text-white",
45
- "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600 text-white",
46
- "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600 text-white",
47
- "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600 text-white",
48
- "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600 text-white",
49
- "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600 text-white",
50
- "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600 text-white",
51
- "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600 text-white",
52
- "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600 text-white",
53
- "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600 text-white"
54
- };
55
- var badgeAppearances = {
56
- ...buttonLikeSolidAppearances,
57
- outline: "border border-white/15 bg-transparent text-slate-200 shadow-none",
58
- ghost: "bg-transparent text-slate-300 shadow-none"
59
- };
60
- var badgeVariants = classVarianceAuthority.cva(
61
- [
62
- "inline-flex max-w-full items-center justify-center gap-1 font-medium",
63
- "whitespace-nowrap ring-offset-slate-950 transition-colors",
64
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2",
65
- "select-none"
66
- ],
67
- {
68
- variants: {
69
- appearance: badgeAppearances,
70
- size: {
71
- sm: "h-6 min-h-6 px-2 text-[0.65rem] leading-none",
72
- md: "h-7 min-h-7 px-2.5 text-xs leading-none",
73
- lg: "h-8 min-h-8 px-3 text-sm leading-none"
74
- },
75
- shape: {
76
- pill: "rounded-full",
77
- square: "rounded-md",
78
- dot: "h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]"
79
- }
80
- },
81
- defaultVariants: {
82
- appearance: "default",
83
- size: "md",
84
- shape: "pill"
85
- }
86
- }
87
- );
88
- var badgeCloseButtonVariants = classVarianceAuthority.cva(
89
- "inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40",
90
- {
91
- variants: {
92
- size: {
93
- sm: "size-4",
94
- md: "size-5",
95
- lg: "size-6"
96
- }
97
- },
98
- defaultVariants: { size: "md" }
99
- }
100
- );
101
8
  function Badge(props) {
102
- const {
103
- className,
104
- appearance,
105
- size,
106
- shape,
107
- animation = "none",
108
- closable = false,
109
- onClose,
110
- closeLabel = "Remove",
111
- children,
112
- ref,
113
- "aria-label": ariaLabel,
114
- ...rest
115
- } = props;
116
- const motionProps = badgeAnimationPresets[animation];
117
- const isDot = shape === "dot";
118
- const resolvedAriaLabel = ariaLabel ?? (isDot ? "Status indicator" : void 0);
119
- return /* @__PURE__ */ jsxRuntime.jsxs(
120
- framerMotion.motion.span,
121
- {
122
- ref,
123
- role: "status",
124
- "data-slot": "badge",
125
- "aria-label": resolvedAriaLabel,
126
- className: chunkUOZYPWDZ_js.cn(badgeVariants({ appearance, size, shape }), className),
127
- initial: animation === "none" ? false : void 0,
128
- ...motionProps,
129
- ...rest,
130
- children: [
131
- !isDot ? children : null,
132
- closable ? /* @__PURE__ */ jsxRuntime.jsx(
133
- "button",
134
- {
135
- type: "button",
136
- "data-slot": "badge-close",
137
- "aria-label": closeLabel,
138
- onClick: onClose,
139
- className: badgeCloseButtonVariants({ size }),
140
- children: /* @__PURE__ */ jsxRuntime.jsx(hi2.HiXMark, { className: "size-3.5", "aria-hidden": true })
141
- }
142
- ) : null
143
- ]
144
- }
145
- );
9
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkE3DZNJAD_js.BadgeBase, { ...props });
146
10
  }
147
11
  Badge.displayName = "Badge";
148
12
 
13
+ Object.defineProperty(exports, "badgeCloseButtonVariants", {
14
+ enumerable: true,
15
+ get: function () { return chunkE3DZNJAD_js.badgeCloseButtonVariants; }
16
+ });
17
+ Object.defineProperty(exports, "badgeVariants", {
18
+ enumerable: true,
19
+ get: function () { return chunkE3DZNJAD_js.badgeVariants; }
20
+ });
149
21
  exports.Badge = Badge;
150
- exports.badgeAnimationPresets = badgeAnimationPresets;
151
- exports.badgeCloseButtonVariants = badgeCloseButtonVariants;
152
- exports.badgeVariants = badgeVariants;
153
22
  //# sourceMappingURL=badge.js.map
154
23
  //# sourceMappingURL=badge.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/badge/animations.ts","../../src/ui/badge/variants.ts","../../src/ui/badge/badge.tsx"],"names":["cva","jsxs","motion","cn","jsx","HiXMark"],"mappings":"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","file":"badge.js","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { BadgeAnimation } from \"./types\";\n\ntype BadgePresetMotionProps = Pick<\n HTMLMotionProps<\"span\">,\n \"style\" | \"transition\" | \"whileHover\" | \"whileTap\" | \"animate\" | \"initial\"\n>;\n\nexport type BadgeAnimationPresets = Record<\n BadgeAnimation,\n BadgePresetMotionProps\n>;\n\nexport const badgeAnimationPresets: BadgeAnimationPresets = {\n none: {},\n pop: {\n initial: { scale: 0.92, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n bounce: {\n whileHover: { y: -2, scale: 1.04 },\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", bounce: 0.45, stiffness: 420, damping: 18 },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.2 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\n/**\n * Tailwind class maps mirroring `buttons/variants.ts` appearance tokens.\n * Reused by primitives that should stay visually aligned with Button.\n */\nexport const buttonLikeSolidAppearances = {\n default: \"bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]\",\n secondary: \"bg-slate-800 text-slate-50\",\n destructive: \"bg-rose-600 text-white\",\n outline: \"border border-white/10 bg-white/5 text-slate-50\",\n ghost: \"bg-transparent text-slate-200\",\n glass: \"border border-white/15 bg-white/10 text-white backdrop-blur-md\",\n emerald: \"bg-emerald-600 text-white\",\n indigo: \"bg-indigo-600 text-white\",\n purple: \"bg-purple-600 text-white\",\n pink: \"bg-pink-600 text-white\",\n rose: \"bg-rose-600 text-white\",\n sky: \"bg-sky-600 text-white\",\n teal: \"bg-teal-600 text-white\",\n yellow: \"bg-yellow-600 text-white\",\n orange: \"bg-orange-600 text-white\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 text-white\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 text-white\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 text-white\",\n \"gradient-yellow\":\n \"bg-gradient-to-r from-yellow-600 to-orange-600 text-white\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 text-white\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 text-white\",\n \"gradient-indigo\":\n \"bg-gradient-to-r from-indigo-600 to-purple-600 text-white\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 text-white\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 text-white\",\n} as const;\n\nexport type ButtonLikeSolidAppearance = keyof typeof buttonLikeSolidAppearances;\n\nconst badgeAppearances = {\n ...buttonLikeSolidAppearances,\n outline: \"border border-white/15 bg-transparent text-slate-200 shadow-none\",\n ghost: \"bg-transparent text-slate-300 shadow-none\",\n} as const;\n\nexport const badgeVariants = cva(\n [\n \"inline-flex max-w-full items-center justify-center gap-1 font-medium\",\n \"whitespace-nowrap ring-offset-slate-950 transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2\",\n \"select-none\",\n ],\n {\n variants: {\n appearance: badgeAppearances,\n size: {\n sm: \"h-6 min-h-6 px-2 text-[0.65rem] leading-none\",\n md: \"h-7 min-h-7 px-2.5 text-xs leading-none\",\n lg: \"h-8 min-h-8 px-3 text-sm leading-none\",\n },\n shape: {\n pill: \"rounded-full\",\n square: \"rounded-md\",\n dot: \"h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"pill\",\n },\n },\n);\n\nexport const badgeCloseButtonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { HiXMark } from \"react-icons/hi2\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { badgeAnimationPresets } from \"./animations\";\nimport type { BadgeProps } from \"./types\";\nimport { badgeCloseButtonVariants, badgeVariants } from \"./variants\";\n\nexport function Badge(props: BadgeProps) {\n const {\n className,\n appearance,\n size,\n shape,\n animation = \"none\",\n closable = false,\n onClose,\n closeLabel = \"Remove\",\n children,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const motionProps = badgeAnimationPresets[animation];\n const isDot = shape === \"dot\";\n const resolvedAriaLabel =\n ariaLabel ?? (isDot ? \"Status indicator\" : undefined);\n\n return (\n <motion.span\n ref={ref}\n role=\"status\"\n data-slot=\"badge\"\n aria-label={resolvedAriaLabel}\n className={cn(badgeVariants({ appearance, size, shape }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {!isDot ? children : null}\n {closable ? (\n <button\n type=\"button\"\n data-slot=\"badge-close\"\n aria-label={closeLabel}\n onClick={onClose}\n className={badgeCloseButtonVariants({ size })}\n >\n <HiXMark className=\"size-3.5\" aria-hidden />\n </button>\n ) : null}\n </motion.span>\n );\n}\n\nBadge.displayName = \"Badge\";\n"]}
1
+ {"version":3,"sources":["../../src/ui/badge/badge.tsx"],"names":["jsx","BadgeBase"],"mappings":";;;;;;AAIO,SAAS,MAAM,KAAA,EAAmB;AACvC,EAAA,uBAAOA,cAAA,CAACC,0BAAA,EAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAC/B;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"badge.js","sourcesContent":["// badge.tsx default static entry (no framer-motion)\nimport { BadgeBase } from \"./badge-base\";\nimport type { BadgeProps } from \"./types\";\n\nexport function Badge(props: BadgeProps) {\n return <BadgeBase {...props} />;\n}\n\nBadge.displayName = \"Badge\";\n"]}
package/dist/ui/badge.mjs CHANGED
@@ -1,149 +1,14 @@
1
1
  "use client";
2
- import { cn } from '../chunk-DFEZH7TC.mjs';
3
- import { motion } from 'framer-motion';
4
- import { HiXMark } from 'react-icons/hi2';
5
- import { cva } from 'class-variance-authority';
6
- import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { BadgeBase } from '../chunk-XWM2S6VV.mjs';
3
+ export { badgeCloseButtonVariants, badgeVariants } from '../chunk-XWM2S6VV.mjs';
4
+ import '../chunk-DFEZH7TC.mjs';
5
+ import { jsx } from 'react/jsx-runtime';
7
6
 
8
- // src/ui/badge/animations.ts
9
- var badgeAnimationPresets = {
10
- none: {},
11
- pop: {
12
- initial: { scale: 0.92, opacity: 0 },
13
- animate: { scale: 1, opacity: 1 },
14
- transition: { type: "spring", stiffness: 520, damping: 28 }
15
- },
16
- bounce: {
17
- whileHover: { y: -2, scale: 1.04 },
18
- whileTap: { scale: 0.96 },
19
- transition: { type: "spring", bounce: 0.45, stiffness: 420, damping: 18 }
20
- },
21
- fade: {
22
- initial: { opacity: 0 },
23
- animate: { opacity: 1 },
24
- transition: { duration: 0.2 }
25
- }
26
- };
27
- var buttonLikeSolidAppearances = {
28
- default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]",
29
- secondary: "bg-slate-800 text-slate-50",
30
- destructive: "bg-rose-600 text-white",
31
- outline: "border border-white/10 bg-white/5 text-slate-50",
32
- ghost: "bg-transparent text-slate-200",
33
- glass: "border border-white/15 bg-white/10 text-white backdrop-blur-md",
34
- emerald: "bg-emerald-600 text-white",
35
- indigo: "bg-indigo-600 text-white",
36
- purple: "bg-purple-600 text-white",
37
- pink: "bg-pink-600 text-white",
38
- rose: "bg-rose-600 text-white",
39
- sky: "bg-sky-600 text-white",
40
- teal: "bg-teal-600 text-white",
41
- yellow: "bg-yellow-600 text-white",
42
- orange: "bg-orange-600 text-white",
43
- "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600 text-white",
44
- "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600 text-white",
45
- "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600 text-white",
46
- "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600 text-white",
47
- "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600 text-white",
48
- "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600 text-white",
49
- "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600 text-white",
50
- "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600 text-white",
51
- "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600 text-white"
52
- };
53
- var badgeAppearances = {
54
- ...buttonLikeSolidAppearances,
55
- outline: "border border-white/15 bg-transparent text-slate-200 shadow-none",
56
- ghost: "bg-transparent text-slate-300 shadow-none"
57
- };
58
- var badgeVariants = cva(
59
- [
60
- "inline-flex max-w-full items-center justify-center gap-1 font-medium",
61
- "whitespace-nowrap ring-offset-slate-950 transition-colors",
62
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2",
63
- "select-none"
64
- ],
65
- {
66
- variants: {
67
- appearance: badgeAppearances,
68
- size: {
69
- sm: "h-6 min-h-6 px-2 text-[0.65rem] leading-none",
70
- md: "h-7 min-h-7 px-2.5 text-xs leading-none",
71
- lg: "h-8 min-h-8 px-3 text-sm leading-none"
72
- },
73
- shape: {
74
- pill: "rounded-full",
75
- square: "rounded-md",
76
- dot: "h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]"
77
- }
78
- },
79
- defaultVariants: {
80
- appearance: "default",
81
- size: "md",
82
- shape: "pill"
83
- }
84
- }
85
- );
86
- var badgeCloseButtonVariants = cva(
87
- "inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40",
88
- {
89
- variants: {
90
- size: {
91
- sm: "size-4",
92
- md: "size-5",
93
- lg: "size-6"
94
- }
95
- },
96
- defaultVariants: { size: "md" }
97
- }
98
- );
99
7
  function Badge(props) {
100
- const {
101
- className,
102
- appearance,
103
- size,
104
- shape,
105
- animation = "none",
106
- closable = false,
107
- onClose,
108
- closeLabel = "Remove",
109
- children,
110
- ref,
111
- "aria-label": ariaLabel,
112
- ...rest
113
- } = props;
114
- const motionProps = badgeAnimationPresets[animation];
115
- const isDot = shape === "dot";
116
- const resolvedAriaLabel = ariaLabel ?? (isDot ? "Status indicator" : void 0);
117
- return /* @__PURE__ */ jsxs(
118
- motion.span,
119
- {
120
- ref,
121
- role: "status",
122
- "data-slot": "badge",
123
- "aria-label": resolvedAriaLabel,
124
- className: cn(badgeVariants({ appearance, size, shape }), className),
125
- initial: animation === "none" ? false : void 0,
126
- ...motionProps,
127
- ...rest,
128
- children: [
129
- !isDot ? children : null,
130
- closable ? /* @__PURE__ */ jsx(
131
- "button",
132
- {
133
- type: "button",
134
- "data-slot": "badge-close",
135
- "aria-label": closeLabel,
136
- onClick: onClose,
137
- className: badgeCloseButtonVariants({ size }),
138
- children: /* @__PURE__ */ jsx(HiXMark, { className: "size-3.5", "aria-hidden": true })
139
- }
140
- ) : null
141
- ]
142
- }
143
- );
8
+ return /* @__PURE__ */ jsx(BadgeBase, { ...props });
144
9
  }
145
10
  Badge.displayName = "Badge";
146
11
 
147
- export { Badge, badgeAnimationPresets, badgeCloseButtonVariants, badgeVariants };
12
+ export { Badge };
148
13
  //# sourceMappingURL=badge.mjs.map
149
14
  //# sourceMappingURL=badge.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/badge/animations.ts","../../src/ui/badge/variants.ts","../../src/ui/badge/badge.tsx"],"names":[],"mappings":"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","file":"badge.mjs","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { BadgeAnimation } from \"./types\";\n\ntype BadgePresetMotionProps = Pick<\n HTMLMotionProps<\"span\">,\n \"style\" | \"transition\" | \"whileHover\" | \"whileTap\" | \"animate\" | \"initial\"\n>;\n\nexport type BadgeAnimationPresets = Record<\n BadgeAnimation,\n BadgePresetMotionProps\n>;\n\nexport const badgeAnimationPresets: BadgeAnimationPresets = {\n none: {},\n pop: {\n initial: { scale: 0.92, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n bounce: {\n whileHover: { y: -2, scale: 1.04 },\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", bounce: 0.45, stiffness: 420, damping: 18 },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.2 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\n/**\n * Tailwind class maps mirroring `buttons/variants.ts` appearance tokens.\n * Reused by primitives that should stay visually aligned with Button.\n */\nexport const buttonLikeSolidAppearances = {\n default: \"bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]\",\n secondary: \"bg-slate-800 text-slate-50\",\n destructive: \"bg-rose-600 text-white\",\n outline: \"border border-white/10 bg-white/5 text-slate-50\",\n ghost: \"bg-transparent text-slate-200\",\n glass: \"border border-white/15 bg-white/10 text-white backdrop-blur-md\",\n emerald: \"bg-emerald-600 text-white\",\n indigo: \"bg-indigo-600 text-white\",\n purple: \"bg-purple-600 text-white\",\n pink: \"bg-pink-600 text-white\",\n rose: \"bg-rose-600 text-white\",\n sky: \"bg-sky-600 text-white\",\n teal: \"bg-teal-600 text-white\",\n yellow: \"bg-yellow-600 text-white\",\n orange: \"bg-orange-600 text-white\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 text-white\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 text-white\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 text-white\",\n \"gradient-yellow\":\n \"bg-gradient-to-r from-yellow-600 to-orange-600 text-white\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 text-white\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 text-white\",\n \"gradient-indigo\":\n \"bg-gradient-to-r from-indigo-600 to-purple-600 text-white\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 text-white\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 text-white\",\n} as const;\n\nexport type ButtonLikeSolidAppearance = keyof typeof buttonLikeSolidAppearances;\n\nconst badgeAppearances = {\n ...buttonLikeSolidAppearances,\n outline: \"border border-white/15 bg-transparent text-slate-200 shadow-none\",\n ghost: \"bg-transparent text-slate-300 shadow-none\",\n} as const;\n\nexport const badgeVariants = cva(\n [\n \"inline-flex max-w-full items-center justify-center gap-1 font-medium\",\n \"whitespace-nowrap ring-offset-slate-950 transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2\",\n \"select-none\",\n ],\n {\n variants: {\n appearance: badgeAppearances,\n size: {\n sm: \"h-6 min-h-6 px-2 text-[0.65rem] leading-none\",\n md: \"h-7 min-h-7 px-2.5 text-xs leading-none\",\n lg: \"h-8 min-h-8 px-3 text-sm leading-none\",\n },\n shape: {\n pill: \"rounded-full\",\n square: \"rounded-md\",\n dot: \"h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"pill\",\n },\n },\n);\n\nexport const badgeCloseButtonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { HiXMark } from \"react-icons/hi2\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { badgeAnimationPresets } from \"./animations\";\nimport type { BadgeProps } from \"./types\";\nimport { badgeCloseButtonVariants, badgeVariants } from \"./variants\";\n\nexport function Badge(props: BadgeProps) {\n const {\n className,\n appearance,\n size,\n shape,\n animation = \"none\",\n closable = false,\n onClose,\n closeLabel = \"Remove\",\n children,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const motionProps = badgeAnimationPresets[animation];\n const isDot = shape === \"dot\";\n const resolvedAriaLabel =\n ariaLabel ?? (isDot ? \"Status indicator\" : undefined);\n\n return (\n <motion.span\n ref={ref}\n role=\"status\"\n data-slot=\"badge\"\n aria-label={resolvedAriaLabel}\n className={cn(badgeVariants({ appearance, size, shape }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {!isDot ? children : null}\n {closable ? (\n <button\n type=\"button\"\n data-slot=\"badge-close\"\n aria-label={closeLabel}\n onClick={onClose}\n className={badgeCloseButtonVariants({ size })}\n >\n <HiXMark className=\"size-3.5\" aria-hidden />\n </button>\n ) : null}\n </motion.span>\n );\n}\n\nBadge.displayName = \"Badge\";\n"]}
1
+ {"version":3,"sources":["../../src/ui/badge/badge.tsx"],"names":[],"mappings":";;;;;AAIO,SAAS,MAAM,KAAA,EAAmB;AACvC,EAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAC/B;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"badge.mjs","sourcesContent":["// badge.tsx default static entry (no framer-motion)\nimport { BadgeBase } from \"./badge-base\";\nimport type { BadgeProps } from \"./types\";\n\nexport function Badge(props: BadgeProps) {\n return <BadgeBase {...props} />;\n}\n\nBadge.displayName = \"Badge\";\n"]}
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { HTMLMotionProps } from 'framer-motion';
4
+ import { b as buttonVariants } from '../../variants-Dd9pe-ov.mjs';
5
+ import 'class-variance-authority/types';
6
+
7
+ type ButtonAnimation = "none" | "lift" | "press" | "glow" | "tilt" | "bounce";
8
+ type ButtonSharedAnimated = VariantProps<typeof buttonVariants> & {
9
+ animation?: ButtonAnimation;
10
+ };
11
+ type ButtonAnimatedProps = (ButtonSharedAnimated & HTMLMotionProps<"button"> & {
12
+ as?: "button";
13
+ }) | (ButtonSharedAnimated & HTMLMotionProps<"a"> & {
14
+ as: "link";
15
+ });
16
+ /** Motion props applied by presets; valid on both `motion.button` and `motion.a`. */
17
+ type ButtonPresetMotionProps = Pick<HTMLMotionProps<"button">, "style" | "transition" | "whileHover" | "whileTap">;
18
+ type AnimationPresets = Record<ButtonAnimation, ButtonPresetMotionProps>;
19
+
20
+ declare const ButtonAnimated: {
21
+ (props: ButtonAnimatedProps): react_jsx_runtime.JSX.Element;
22
+ displayName: string;
23
+ };
24
+
25
+ declare const buttonAnimationPresets: AnimationPresets;
26
+
27
+ export { type AnimationPresets, ButtonAnimated, type ButtonAnimatedProps, type ButtonAnimation, type ButtonPresetMotionProps, type ButtonSharedAnimated, buttonAnimationPresets };
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { HTMLMotionProps } from 'framer-motion';
4
+ import { b as buttonVariants } from '../../variants-Dd9pe-ov.js';
5
+ import 'class-variance-authority/types';
6
+
7
+ type ButtonAnimation = "none" | "lift" | "press" | "glow" | "tilt" | "bounce";
8
+ type ButtonSharedAnimated = VariantProps<typeof buttonVariants> & {
9
+ animation?: ButtonAnimation;
10
+ };
11
+ type ButtonAnimatedProps = (ButtonSharedAnimated & HTMLMotionProps<"button"> & {
12
+ as?: "button";
13
+ }) | (ButtonSharedAnimated & HTMLMotionProps<"a"> & {
14
+ as: "link";
15
+ });
16
+ /** Motion props applied by presets; valid on both `motion.button` and `motion.a`. */
17
+ type ButtonPresetMotionProps = Pick<HTMLMotionProps<"button">, "style" | "transition" | "whileHover" | "whileTap">;
18
+ type AnimationPresets = Record<ButtonAnimation, ButtonPresetMotionProps>;
19
+
20
+ declare const ButtonAnimated: {
21
+ (props: ButtonAnimatedProps): react_jsx_runtime.JSX.Element;
22
+ displayName: string;
23
+ };
24
+
25
+ declare const buttonAnimationPresets: AnimationPresets;
26
+
27
+ export { type AnimationPresets, ButtonAnimated, type ButtonAnimatedProps, type ButtonAnimation, type ButtonPresetMotionProps, type ButtonSharedAnimated, buttonAnimationPresets };
@@ -0,0 +1,101 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkBITDSQMR_js = require('../../chunk-BITDSQMR.js');
5
+ var chunkUOZYPWDZ_js = require('../../chunk-UOZYPWDZ.js');
6
+ var framerMotion = require('framer-motion');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ // src/ui/buttons/animated/animations.ts
10
+ var buttonAnimationPresets = {
11
+ none: {},
12
+ lift: {
13
+ whileHover: { y: -2, scale: 1.02 },
14
+ whileTap: { y: 0, scale: 0.98 },
15
+ transition: { type: "spring", stiffness: 420, damping: 28 }
16
+ },
17
+ press: {
18
+ whileTap: { scale: 0.96 },
19
+ transition: { type: "spring", stiffness: 520, damping: 30 }
20
+ },
21
+ glow: {
22
+ whileHover: {
23
+ boxShadow: "0 0 0 1px rgba(255,255,255,0.25), 0 18px 42px rgba(15,23,42,0.35)",
24
+ scale: 1.01
25
+ },
26
+ whileTap: { scale: 0.98 },
27
+ transition: { duration: 0.2, ease: "easeOut" }
28
+ },
29
+ tilt: {
30
+ whileHover: { rotateX: 6, rotateY: -6, scale: 1.01 },
31
+ whileTap: { scale: 0.98, rotateX: 0, rotateY: 0 },
32
+ transition: { type: "spring", stiffness: 300, damping: 20 },
33
+ style: { transformStyle: "preserve-3d" }
34
+ },
35
+ bounce: {
36
+ whileHover: { y: -4, scale: 1.03 },
37
+ whileTap: { y: 0, scale: 0.97 },
38
+ transition: { type: "spring", bounce: 0.45, duration: 0.45 }
39
+ }
40
+ };
41
+ var ButtonAnimated = (props) => {
42
+ if (props.as === "link") {
43
+ const {
44
+ className: className2,
45
+ appearance: appearance2,
46
+ size: size2,
47
+ children: children2,
48
+ ref: ref2,
49
+ href,
50
+ target,
51
+ animation: animation2 = "none",
52
+ ...rest2
53
+ } = props;
54
+ const motionProps2 = buttonAnimationPresets[animation2];
55
+ return /* @__PURE__ */ jsxRuntime.jsx(
56
+ framerMotion.motion.a,
57
+ {
58
+ ref: ref2,
59
+ href,
60
+ target,
61
+ rel: target === "_blank" ? "noopener noreferrer" : void 0,
62
+ "data-slot": "button",
63
+ className: chunkUOZYPWDZ_js.cn(chunkBITDSQMR_js.buttonVariants({ appearance: appearance2, size: size2 }), className2),
64
+ initial: false,
65
+ ...motionProps2,
66
+ ...rest2,
67
+ children: children2
68
+ }
69
+ );
70
+ }
71
+ const {
72
+ className,
73
+ appearance,
74
+ size,
75
+ type = "button",
76
+ children,
77
+ ref,
78
+ animation = "none",
79
+ ...rest
80
+ } = props;
81
+ const motionProps = buttonAnimationPresets[animation];
82
+ return /* @__PURE__ */ jsxRuntime.jsx(
83
+ framerMotion.motion.button,
84
+ {
85
+ ref,
86
+ type,
87
+ "data-slot": "button",
88
+ className: chunkUOZYPWDZ_js.cn(chunkBITDSQMR_js.buttonVariants({ appearance, size }), className),
89
+ initial: false,
90
+ ...motionProps,
91
+ ...rest,
92
+ children
93
+ }
94
+ );
95
+ };
96
+ ButtonAnimated.displayName = "ButtonAnimated";
97
+
98
+ exports.ButtonAnimated = ButtonAnimated;
99
+ exports.buttonAnimationPresets = buttonAnimationPresets;
100
+ //# sourceMappingURL=animated.js.map
101
+ //# sourceMappingURL=animated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ui/buttons/animated/animations.ts","../../../src/ui/buttons/animated/button-animated.tsx"],"names":["className","appearance","size","children","ref","animation","rest","motionProps","jsx","motion","cn","buttonVariants"],"mappings":"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","file":"animated.js","sourcesContent":["import type { AnimationPresets } from \"./types\";\n\nexport const buttonAnimationPresets: AnimationPresets = {\n none: {},\n lift: {\n whileHover: { y: -2, scale: 1.02 },\n whileTap: { y: 0, scale: 0.98 },\n transition: { type: \"spring\", stiffness: 420, damping: 28 },\n },\n press: {\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", stiffness: 520, damping: 30 },\n },\n glow: {\n whileHover: {\n boxShadow:\n \"0 0 0 1px rgba(255,255,255,0.25), 0 18px 42px rgba(15,23,42,0.35)\",\n scale: 1.01,\n },\n whileTap: { scale: 0.98 },\n transition: { duration: 0.2, ease: \"easeOut\" },\n },\n tilt: {\n whileHover: { rotateX: 6, rotateY: -6, scale: 1.01 },\n whileTap: { scale: 0.98, rotateX: 0, rotateY: 0 },\n transition: { type: \"spring\", stiffness: 300, damping: 20 },\n style: { transformStyle: \"preserve-3d\" },\n },\n bounce: {\n whileHover: { y: -4, scale: 1.03 },\n whileTap: { y: 0, scale: 0.97 },\n transition: { type: \"spring\", bounce: 0.45, duration: 0.45 },\n },\n};\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../../lib/utils\";\n\nimport { buttonAnimationPresets } from \"./animations\";\nimport type { ButtonAnimatedProps } from \"./types\";\nimport { buttonVariants } from \"../variants\";\n\nexport const ButtonAnimated = (props: ButtonAnimatedProps) => {\n if (props.as === \"link\") {\n const {\n className,\n appearance,\n size,\n children,\n ref,\n href,\n target,\n animation = \"none\",\n ...rest\n } = props;\n const motionProps = buttonAnimationPresets[animation];\n\n return (\n <motion.a\n ref={ref}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.a>\n );\n }\n\n const {\n className,\n appearance,\n size,\n type = \"button\",\n children,\n ref,\n animation = \"none\",\n ...rest\n } = props;\n const motionProps = buttonAnimationPresets[animation];\n\n return (\n <motion.button\n ref={ref}\n type={type}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.button>\n );\n};\n\nButtonAnimated.displayName = \"ButtonAnimated\";\n"]}
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ import { buttonVariants } from '../../chunk-BORK3BJO.mjs';
3
+ import { cn } from '../../chunk-DFEZH7TC.mjs';
4
+ import { motion } from 'framer-motion';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ // src/ui/buttons/animated/animations.ts
8
+ var buttonAnimationPresets = {
9
+ none: {},
10
+ lift: {
11
+ whileHover: { y: -2, scale: 1.02 },
12
+ whileTap: { y: 0, scale: 0.98 },
13
+ transition: { type: "spring", stiffness: 420, damping: 28 }
14
+ },
15
+ press: {
16
+ whileTap: { scale: 0.96 },
17
+ transition: { type: "spring", stiffness: 520, damping: 30 }
18
+ },
19
+ glow: {
20
+ whileHover: {
21
+ boxShadow: "0 0 0 1px rgba(255,255,255,0.25), 0 18px 42px rgba(15,23,42,0.35)",
22
+ scale: 1.01
23
+ },
24
+ whileTap: { scale: 0.98 },
25
+ transition: { duration: 0.2, ease: "easeOut" }
26
+ },
27
+ tilt: {
28
+ whileHover: { rotateX: 6, rotateY: -6, scale: 1.01 },
29
+ whileTap: { scale: 0.98, rotateX: 0, rotateY: 0 },
30
+ transition: { type: "spring", stiffness: 300, damping: 20 },
31
+ style: { transformStyle: "preserve-3d" }
32
+ },
33
+ bounce: {
34
+ whileHover: { y: -4, scale: 1.03 },
35
+ whileTap: { y: 0, scale: 0.97 },
36
+ transition: { type: "spring", bounce: 0.45, duration: 0.45 }
37
+ }
38
+ };
39
+ var ButtonAnimated = (props) => {
40
+ if (props.as === "link") {
41
+ const {
42
+ className: className2,
43
+ appearance: appearance2,
44
+ size: size2,
45
+ children: children2,
46
+ ref: ref2,
47
+ href,
48
+ target,
49
+ animation: animation2 = "none",
50
+ ...rest2
51
+ } = props;
52
+ const motionProps2 = buttonAnimationPresets[animation2];
53
+ return /* @__PURE__ */ jsx(
54
+ motion.a,
55
+ {
56
+ ref: ref2,
57
+ href,
58
+ target,
59
+ rel: target === "_blank" ? "noopener noreferrer" : void 0,
60
+ "data-slot": "button",
61
+ className: cn(buttonVariants({ appearance: appearance2, size: size2 }), className2),
62
+ initial: false,
63
+ ...motionProps2,
64
+ ...rest2,
65
+ children: children2
66
+ }
67
+ );
68
+ }
69
+ const {
70
+ className,
71
+ appearance,
72
+ size,
73
+ type = "button",
74
+ children,
75
+ ref,
76
+ animation = "none",
77
+ ...rest
78
+ } = props;
79
+ const motionProps = buttonAnimationPresets[animation];
80
+ return /* @__PURE__ */ jsx(
81
+ motion.button,
82
+ {
83
+ ref,
84
+ type,
85
+ "data-slot": "button",
86
+ className: cn(buttonVariants({ appearance, size }), className),
87
+ initial: false,
88
+ ...motionProps,
89
+ ...rest,
90
+ children
91
+ }
92
+ );
93
+ };
94
+ ButtonAnimated.displayName = "ButtonAnimated";
95
+
96
+ export { ButtonAnimated, buttonAnimationPresets };
97
+ //# sourceMappingURL=animated.mjs.map
98
+ //# sourceMappingURL=animated.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ui/buttons/animated/animations.ts","../../../src/ui/buttons/animated/button-animated.tsx"],"names":["className","appearance","size","children","ref","animation","rest","motionProps"],"mappings":"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","file":"animated.mjs","sourcesContent":["import type { AnimationPresets } from \"./types\";\n\nexport const buttonAnimationPresets: AnimationPresets = {\n none: {},\n lift: {\n whileHover: { y: -2, scale: 1.02 },\n whileTap: { y: 0, scale: 0.98 },\n transition: { type: \"spring\", stiffness: 420, damping: 28 },\n },\n press: {\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", stiffness: 520, damping: 30 },\n },\n glow: {\n whileHover: {\n boxShadow:\n \"0 0 0 1px rgba(255,255,255,0.25), 0 18px 42px rgba(15,23,42,0.35)\",\n scale: 1.01,\n },\n whileTap: { scale: 0.98 },\n transition: { duration: 0.2, ease: \"easeOut\" },\n },\n tilt: {\n whileHover: { rotateX: 6, rotateY: -6, scale: 1.01 },\n whileTap: { scale: 0.98, rotateX: 0, rotateY: 0 },\n transition: { type: \"spring\", stiffness: 300, damping: 20 },\n style: { transformStyle: \"preserve-3d\" },\n },\n bounce: {\n whileHover: { y: -4, scale: 1.03 },\n whileTap: { y: 0, scale: 0.97 },\n transition: { type: \"spring\", bounce: 0.45, duration: 0.45 },\n },\n};\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../../lib/utils\";\n\nimport { buttonAnimationPresets } from \"./animations\";\nimport type { ButtonAnimatedProps } from \"./types\";\nimport { buttonVariants } from \"../variants\";\n\nexport const ButtonAnimated = (props: ButtonAnimatedProps) => {\n if (props.as === \"link\") {\n const {\n className,\n appearance,\n size,\n children,\n ref,\n href,\n target,\n animation = \"none\",\n ...rest\n } = props;\n const motionProps = buttonAnimationPresets[animation];\n\n return (\n <motion.a\n ref={ref}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.a>\n );\n }\n\n const {\n className,\n appearance,\n size,\n type = \"button\",\n children,\n ref,\n animation = \"none\",\n ...rest\n } = props;\n const motionProps = buttonAnimationPresets[animation];\n\n return (\n <motion.button\n ref={ref}\n type={type}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.button>\n );\n};\n\nButtonAnimated.displayName = \"ButtonAnimated\";\n"]}