@mdigital_ui/ui 0.3.1 → 0.3.2

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 (470) hide show
  1. package/dist/accordion/index.d.ts +6 -0
  2. package/dist/accordion/index.d.ts.map +1 -0
  3. package/dist/accordion/index.js +1 -1
  4. package/dist/accordion/types.d.ts +125 -0
  5. package/dist/accordion/types.d.ts.map +1 -0
  6. package/dist/avatar/index.d.ts +14 -0
  7. package/dist/avatar/index.d.ts.map +1 -0
  8. package/dist/avatar/types.d.ts +147 -0
  9. package/dist/avatar/types.d.ts.map +1 -0
  10. package/dist/badge/index.d.ts +28 -0
  11. package/dist/badge/index.d.ts.map +1 -0
  12. package/dist/badge/index.js +1 -1
  13. package/dist/badge/types.d.ts +97 -0
  14. package/dist/badge/types.d.ts.map +1 -0
  15. package/dist/breadcrumbs/index.d.ts +13 -0
  16. package/dist/breadcrumbs/index.d.ts.map +1 -0
  17. package/dist/breadcrumbs/index.js +3 -3
  18. package/dist/breadcrumbs/types.d.ts +118 -0
  19. package/dist/breadcrumbs/types.d.ts.map +1 -0
  20. package/dist/button/index.d.ts +6 -0
  21. package/dist/button/index.d.ts.map +1 -0
  22. package/dist/button/index.js +1 -1
  23. package/dist/button/types.d.ts +86 -0
  24. package/dist/button/types.d.ts.map +1 -0
  25. package/dist/button-group/index.d.ts +34 -0
  26. package/dist/button-group/index.d.ts.map +1 -0
  27. package/dist/button-group/types.d.ts +75 -0
  28. package/dist/button-group/types.d.ts.map +1 -0
  29. package/dist/card/index.d.ts +71 -0
  30. package/dist/card/index.d.ts.map +1 -0
  31. package/dist/card/index.js +1 -1
  32. package/dist/card/types.d.ts +136 -0
  33. package/dist/card/types.d.ts.map +1 -0
  34. package/dist/carousel/carousel-navigation.d.ts +9 -0
  35. package/dist/carousel/carousel-navigation.d.ts.map +1 -0
  36. package/dist/carousel/index.d.ts +50 -0
  37. package/dist/carousel/index.d.ts.map +1 -0
  38. package/dist/carousel/index.js +1 -1
  39. package/dist/cascader/index.d.ts +27 -0
  40. package/dist/cascader/index.d.ts.map +1 -0
  41. package/dist/cascader/index.js +1 -1
  42. package/dist/cascader/types.d.ts +220 -0
  43. package/dist/cascader/types.d.ts.map +1 -0
  44. package/dist/checkbox/index.d.ts +6 -0
  45. package/dist/checkbox/index.d.ts.map +1 -0
  46. package/dist/checkbox/types.d.ts +21 -0
  47. package/dist/checkbox/types.d.ts.map +1 -0
  48. package/dist/checkbox-group/index.d.ts +6 -0
  49. package/dist/checkbox-group/index.d.ts.map +1 -0
  50. package/dist/checkbox-group/types.d.ts +43 -0
  51. package/dist/checkbox-group/types.d.ts.map +1 -0
  52. package/dist/{chunk-5JOJBDET.js → chunk-2K7MDR7K.js} +3 -3
  53. package/dist/chunk-2K7MDR7K.js.map +1 -0
  54. package/dist/{chunk-VY3X4SDU.js → chunk-2SYAIIJE.js} +3 -3
  55. package/dist/{chunk-VY3X4SDU.js.map → chunk-2SYAIIJE.js.map} +1 -1
  56. package/dist/{chunk-3HBMVZF5.js → chunk-623OVNLC.js} +4 -4
  57. package/dist/{chunk-3HBMVZF5.js.map → chunk-623OVNLC.js.map} +1 -1
  58. package/dist/{chunk-2NYVRAG4.js → chunk-6JGNJI5T.js} +2 -3
  59. package/dist/chunk-6JGNJI5T.js.map +1 -0
  60. package/dist/{chunk-UHVPOGNC.js → chunk-6QZFWSN7.js} +4 -4
  61. package/dist/chunk-6QZFWSN7.js.map +1 -0
  62. package/dist/{chunk-5VORB55Y.js → chunk-7P3Q6H2V.js} +3 -3
  63. package/dist/{chunk-5VORB55Y.js.map → chunk-7P3Q6H2V.js.map} +1 -1
  64. package/dist/{chunk-YWGWFGCY.js → chunk-BVO2BNFG.js} +129 -24
  65. package/dist/chunk-BVO2BNFG.js.map +1 -0
  66. package/dist/{chunk-CO766H7F.js → chunk-D53OQERO.js} +3 -4
  67. package/dist/chunk-D53OQERO.js.map +1 -0
  68. package/dist/{chunk-HWFI4GJE.js → chunk-DRCT6VZ7.js} +5 -5
  69. package/dist/{chunk-HWFI4GJE.js.map → chunk-DRCT6VZ7.js.map} +1 -1
  70. package/dist/{chunk-RPIJ2KY7.js → chunk-DUNER5Q3.js} +3 -3
  71. package/dist/{chunk-RPIJ2KY7.js.map → chunk-DUNER5Q3.js.map} +1 -1
  72. package/dist/{chunk-KTHWXHDN.js → chunk-E222IQHF.js} +3 -3
  73. package/dist/chunk-E222IQHF.js.map +1 -0
  74. package/dist/{chunk-CLLNXRYZ.js → chunk-GIWG6BCT.js} +26 -5
  75. package/dist/chunk-GIWG6BCT.js.map +1 -0
  76. package/dist/{chunk-FZLFCT6Q.js → chunk-HQVTIFXN.js} +4 -4
  77. package/dist/chunk-HQVTIFXN.js.map +1 -0
  78. package/dist/{chunk-Q57THXIU.js → chunk-HXPMYGSR.js} +16 -5
  79. package/dist/chunk-HXPMYGSR.js.map +1 -0
  80. package/dist/{chunk-OL2GU2O3.js → chunk-I75ZSXD6.js} +3 -3
  81. package/dist/{chunk-OL2GU2O3.js.map → chunk-I75ZSXD6.js.map} +1 -1
  82. package/dist/{chunk-XQJ6HZ4Q.js → chunk-I7MESP7F.js} +12 -12
  83. package/dist/chunk-I7MESP7F.js.map +1 -0
  84. package/dist/{chunk-UTKVWE76.js → chunk-ITCXCSUS.js} +7 -6
  85. package/dist/chunk-ITCXCSUS.js.map +1 -0
  86. package/dist/{chunk-7KA7JSRX.js → chunk-KJRKPYYZ.js} +88 -105
  87. package/dist/chunk-KJRKPYYZ.js.map +1 -0
  88. package/dist/{chunk-RZVEKAFR.js → chunk-M3AALH7G.js} +3 -3
  89. package/dist/chunk-M3AALH7G.js.map +1 -0
  90. package/dist/{chunk-HLY4VDIX.js → chunk-MBAZ7OW5.js} +7 -7
  91. package/dist/chunk-MBAZ7OW5.js.map +1 -0
  92. package/dist/{chunk-ILQQTKD4.js → chunk-MOQDO4XZ.js} +3 -3
  93. package/dist/chunk-MOQDO4XZ.js.map +1 -0
  94. package/dist/{chunk-L572AMB3.js → chunk-OKCKLIFP.js} +3 -3
  95. package/dist/{chunk-L572AMB3.js.map → chunk-OKCKLIFP.js.map} +1 -1
  96. package/dist/{chunk-J6IJBRYT.js → chunk-OSHJYIHC.js} +11 -11
  97. package/dist/{chunk-J6IJBRYT.js.map → chunk-OSHJYIHC.js.map} +1 -1
  98. package/dist/{chunk-ZRSSFP52.js → chunk-OV6K6GML.js} +3 -3
  99. package/dist/{chunk-ZRSSFP52.js.map → chunk-OV6K6GML.js.map} +1 -1
  100. package/dist/{chunk-4TQ4BZ3S.js → chunk-QC7XNMM7.js} +7 -7
  101. package/dist/chunk-QC7XNMM7.js.map +1 -0
  102. package/dist/{chunk-YTUB2Q7P.js → chunk-QLUGKHAA.js} +4 -5
  103. package/dist/chunk-QLUGKHAA.js.map +1 -0
  104. package/dist/{chunk-22MY7IWD.js → chunk-SJHNFRXG.js} +3 -3
  105. package/dist/{chunk-22MY7IWD.js.map → chunk-SJHNFRXG.js.map} +1 -1
  106. package/dist/{chunk-FJPMIXWU.js → chunk-SX5UNM6C.js} +3 -3
  107. package/dist/{chunk-FJPMIXWU.js.map → chunk-SX5UNM6C.js.map} +1 -1
  108. package/dist/{chunk-TBMY5EQC.js → chunk-TBH7QF26.js} +5 -4
  109. package/dist/chunk-TBH7QF26.js.map +1 -0
  110. package/dist/{chunk-HEV27FUK.js → chunk-UK4RHCMM.js} +3 -4
  111. package/dist/chunk-UK4RHCMM.js.map +1 -0
  112. package/dist/{chunk-2J57G7XG.js → chunk-UN3EW2PL.js} +13 -22
  113. package/dist/chunk-UN3EW2PL.js.map +1 -0
  114. package/dist/{chunk-ITZBSE5F.js → chunk-VKLDLJXG.js} +3 -3
  115. package/dist/chunk-VKLDLJXG.js.map +1 -0
  116. package/dist/{chunk-WUBMNJGC.js → chunk-VOODO2ZE.js} +64 -25
  117. package/dist/chunk-VOODO2ZE.js.map +1 -0
  118. package/dist/{chunk-FEMHXG2P.js → chunk-WAPZ4QAN.js} +3 -3
  119. package/dist/{chunk-FEMHXG2P.js.map → chunk-WAPZ4QAN.js.map} +1 -1
  120. package/dist/{chunk-KPM72QBO.js → chunk-X5XIBIEF.js} +4 -4
  121. package/dist/chunk-X5XIBIEF.js.map +1 -0
  122. package/dist/{chunk-IVOMN6DV.js → chunk-XHDUO3UW.js} +3 -4
  123. package/dist/chunk-XHDUO3UW.js.map +1 -0
  124. package/dist/{chunk-RW4RW4DV.js → chunk-XOIX5WIL.js} +5 -3
  125. package/dist/chunk-XOIX5WIL.js.map +1 -0
  126. package/dist/{chunk-CSRMVLPR.js → chunk-XWEI3MES.js} +32 -12
  127. package/dist/chunk-XWEI3MES.js.map +1 -0
  128. package/dist/{chunk-SAVEKACZ.js → chunk-YPHVSPWM.js} +4 -4
  129. package/dist/chunk-YPHVSPWM.js.map +1 -0
  130. package/dist/{chunk-ZFYEAPEL.js → chunk-ZHPYJTWP.js} +4 -4
  131. package/dist/{chunk-ZFYEAPEL.js.map → chunk-ZHPYJTWP.js.map} +1 -1
  132. package/dist/{chunk-DQQLJ5C5.js → chunk-ZPVBIQ2R.js} +3 -3
  133. package/dist/{chunk-DQQLJ5C5.js.map → chunk-ZPVBIQ2R.js.map} +1 -1
  134. package/dist/{chunk-WTGCXWNX.js → chunk-ZQTJBYKO.js} +3 -3
  135. package/dist/chunk-ZQTJBYKO.js.map +1 -0
  136. package/dist/{chunk-KPI7MN5V.js → chunk-ZSS6E4T2.js} +39 -14
  137. package/dist/chunk-ZSS6E4T2.js.map +1 -0
  138. package/dist/{chunk-N3ZVPIFC.js → chunk-ZYWDJMHF.js} +4 -4
  139. package/dist/chunk-ZYWDJMHF.js.map +1 -0
  140. package/dist/clipboard/index.d.ts +6 -0
  141. package/dist/clipboard/index.d.ts.map +1 -0
  142. package/dist/clipboard/index.js +1 -1
  143. package/dist/clipboard/types.d.ts +65 -0
  144. package/dist/clipboard/types.d.ts.map +1 -0
  145. package/dist/collapse/index.d.ts +6 -0
  146. package/dist/collapse/index.d.ts.map +1 -0
  147. package/dist/collapse/index.js +1 -1
  148. package/dist/collapse/types.d.ts +60 -0
  149. package/dist/collapse/types.d.ts.map +1 -0
  150. package/dist/command/index.d.ts +74 -0
  151. package/dist/command/index.d.ts.map +1 -0
  152. package/dist/command/index.js +2 -2
  153. package/dist/command/types.d.ts +24 -0
  154. package/dist/command/types.d.ts.map +1 -0
  155. package/dist/context-menu/index.d.ts +63 -0
  156. package/dist/context-menu/index.d.ts.map +1 -0
  157. package/dist/context-menu/index.js +1 -1
  158. package/dist/context-menu/types.d.ts +109 -0
  159. package/dist/context-menu/types.d.ts.map +1 -0
  160. package/dist/date-picker/index.d.ts +12 -0
  161. package/dist/date-picker/index.d.ts.map +1 -0
  162. package/dist/date-picker/index.js +2 -2
  163. package/dist/date-picker/types.d.ts +66 -0
  164. package/dist/date-picker/types.d.ts.map +1 -0
  165. package/dist/date-picker/utils.d.ts +10 -0
  166. package/dist/date-picker/utils.d.ts.map +1 -0
  167. package/dist/descriptions/index.d.ts +6 -0
  168. package/dist/descriptions/index.d.ts.map +1 -0
  169. package/dist/descriptions/index.js +1 -1
  170. package/dist/descriptions/types.d.ts +34 -0
  171. package/dist/descriptions/types.d.ts.map +1 -0
  172. package/dist/divider/index.d.ts +39 -0
  173. package/dist/divider/index.d.ts.map +1 -0
  174. package/dist/divider/index.js +1 -1
  175. package/dist/divider/types.d.ts +63 -0
  176. package/dist/divider/types.d.ts.map +1 -0
  177. package/dist/drawer/index.d.ts +23 -0
  178. package/dist/drawer/index.d.ts.map +1 -0
  179. package/dist/drawer/index.js +1 -1
  180. package/dist/drawer/types.d.ts +309 -0
  181. package/dist/drawer/types.d.ts.map +1 -0
  182. package/dist/dropdown/index.d.ts +6 -0
  183. package/dist/dropdown/index.d.ts.map +1 -0
  184. package/dist/dropdown/index.js +2 -2
  185. package/dist/dropdown/types.d.ts +116 -0
  186. package/dist/dropdown/types.d.ts.map +1 -0
  187. package/dist/empty/index.d.ts +6 -0
  188. package/dist/empty/index.d.ts.map +1 -0
  189. package/dist/empty/types.d.ts +62 -0
  190. package/dist/empty/types.d.ts.map +1 -0
  191. package/dist/fetching-overlay/index.d.ts +10 -0
  192. package/dist/fetching-overlay/index.d.ts.map +1 -0
  193. package/dist/fetching-overlay/index.js +1 -1
  194. package/dist/float-input/index.d.ts +6 -0
  195. package/dist/float-input/index.d.ts.map +1 -0
  196. package/dist/float-input/index.js +1 -1
  197. package/dist/float-input/types.d.ts +23 -0
  198. package/dist/float-input/types.d.ts.map +1 -0
  199. package/dist/form/index.d.ts +31 -0
  200. package/dist/form/index.d.ts.map +1 -0
  201. package/dist/form/types.d.ts +45 -0
  202. package/dist/form/types.d.ts.map +1 -0
  203. package/dist/grid/index.d.ts +6 -0
  204. package/dist/grid/index.d.ts.map +1 -0
  205. package/dist/grid/types.d.ts +21 -0
  206. package/dist/grid/types.d.ts.map +1 -0
  207. package/dist/image/index.d.ts +6 -0
  208. package/dist/image/index.d.ts.map +1 -0
  209. package/dist/image/index.js +1 -1
  210. package/dist/image/types.d.ts +53 -0
  211. package/dist/image/types.d.ts.map +1 -0
  212. package/dist/index.d.ts +139 -0
  213. package/dist/index.d.ts.map +1 -0
  214. package/dist/index.js +46 -46
  215. package/dist/input/index.d.ts +6 -0
  216. package/dist/input/index.d.ts.map +1 -0
  217. package/dist/input/index.js +1 -1
  218. package/dist/input/types.d.ts +28 -0
  219. package/dist/input/types.d.ts.map +1 -0
  220. package/dist/input-group/index.d.ts +9 -0
  221. package/dist/input-group/index.d.ts.map +1 -0
  222. package/dist/input-group/types.d.ts +68 -0
  223. package/dist/input-group/types.d.ts.map +1 -0
  224. package/dist/input-otp/index.d.ts +7 -0
  225. package/dist/input-otp/index.d.ts.map +1 -0
  226. package/dist/input-otp/index.js +1 -1
  227. package/dist/input-otp/types.d.ts +111 -0
  228. package/dist/input-otp/types.d.ts.map +1 -0
  229. package/dist/input-password/index.d.ts +7 -0
  230. package/dist/input-password/index.d.ts.map +1 -0
  231. package/dist/input-password/index.js +2 -2
  232. package/dist/input-password/types.d.ts +34 -0
  233. package/dist/input-password/types.d.ts.map +1 -0
  234. package/dist/kbd/index.d.ts +6 -0
  235. package/dist/kbd/index.d.ts.map +1 -0
  236. package/dist/kbd/types.d.ts +26 -0
  237. package/dist/kbd/types.d.ts.map +1 -0
  238. package/dist/link/index.d.ts +9 -0
  239. package/dist/link/index.d.ts.map +1 -0
  240. package/dist/link/types.d.ts +30 -0
  241. package/dist/link/types.d.ts.map +1 -0
  242. package/dist/menubar/index.d.ts +6 -0
  243. package/dist/menubar/index.d.ts.map +1 -0
  244. package/dist/menubar/index.js +2 -2
  245. package/dist/menubar/types.d.ts +40 -0
  246. package/dist/menubar/types.d.ts.map +1 -0
  247. package/dist/modal/index.d.ts +39 -0
  248. package/dist/modal/index.d.ts.map +1 -0
  249. package/dist/modal/index.js +1 -1
  250. package/dist/modal/types.d.ts +77 -0
  251. package/dist/modal/types.d.ts.map +1 -0
  252. package/dist/multi-select/index.d.ts +6 -0
  253. package/dist/multi-select/index.d.ts.map +1 -0
  254. package/dist/multi-select/index.js +2 -2
  255. package/dist/multi-select/types.d.ts +81 -0
  256. package/dist/multi-select/types.d.ts.map +1 -0
  257. package/dist/multi-select/utils.d.ts +12 -0
  258. package/dist/multi-select/utils.d.ts.map +1 -0
  259. package/dist/navigation-menu/index.d.ts +5 -0
  260. package/dist/navigation-menu/index.d.ts.map +1 -0
  261. package/dist/navigation-menu/index.js +1 -1
  262. package/dist/navigation-menu/types.d.ts +37 -0
  263. package/dist/navigation-menu/types.d.ts.map +1 -0
  264. package/dist/notification/index.d.ts +6 -0
  265. package/dist/notification/index.d.ts.map +1 -0
  266. package/dist/notification/index.js +1 -1
  267. package/dist/notification/types.d.ts +90 -0
  268. package/dist/notification/types.d.ts.map +1 -0
  269. package/dist/number-input/index.d.ts +6 -0
  270. package/dist/number-input/index.d.ts.map +1 -0
  271. package/dist/number-input/index.js +1 -1
  272. package/dist/number-input/types.d.ts +28 -0
  273. package/dist/number-input/types.d.ts.map +1 -0
  274. package/dist/pagination/index.d.ts +6 -0
  275. package/dist/pagination/index.d.ts.map +1 -0
  276. package/dist/pagination/index.js +1 -1
  277. package/dist/pagination/types.d.ts +87 -0
  278. package/dist/pagination/types.d.ts.map +1 -0
  279. package/dist/popover/index.d.ts +19 -0
  280. package/dist/popover/index.d.ts.map +1 -0
  281. package/dist/popover/index.js +1 -1
  282. package/dist/popover/types.d.ts +31 -0
  283. package/dist/popover/types.d.ts.map +1 -0
  284. package/dist/progress/index.d.ts +6 -0
  285. package/dist/progress/index.d.ts.map +1 -0
  286. package/dist/progress/index.js +1 -1
  287. package/dist/progress/types.d.ts +100 -0
  288. package/dist/progress/types.d.ts.map +1 -0
  289. package/dist/radio/index.d.ts +6 -0
  290. package/dist/radio/index.d.ts.map +1 -0
  291. package/dist/radio/index.js +1 -1
  292. package/dist/radio/types.d.ts +20 -0
  293. package/dist/radio/types.d.ts.map +1 -0
  294. package/dist/radio-group/index.d.ts +6 -0
  295. package/dist/radio-group/index.d.ts.map +1 -0
  296. package/dist/radio-group/types.d.ts +43 -0
  297. package/dist/radio-group/types.d.ts.map +1 -0
  298. package/dist/rating/index.d.ts +6 -0
  299. package/dist/rating/index.d.ts.map +1 -0
  300. package/dist/rating/types.d.ts +64 -0
  301. package/dist/rating/types.d.ts.map +1 -0
  302. package/dist/ribbon/index.d.ts +6 -0
  303. package/dist/ribbon/index.d.ts.map +1 -0
  304. package/dist/ribbon/types.d.ts +26 -0
  305. package/dist/ribbon/types.d.ts.map +1 -0
  306. package/dist/scroll-area/index.d.ts +10 -0
  307. package/dist/scroll-area/index.d.ts.map +1 -0
  308. package/dist/scroll-area/types.d.ts +24 -0
  309. package/dist/scroll-area/types.d.ts.map +1 -0
  310. package/dist/select/index.d.ts +6 -0
  311. package/dist/select/index.d.ts.map +1 -0
  312. package/dist/select/index.js +2 -2
  313. package/dist/select/types.d.ts +34 -0
  314. package/dist/select/types.d.ts.map +1 -0
  315. package/dist/skeleton/index.d.ts +6 -0
  316. package/dist/skeleton/index.d.ts.map +1 -0
  317. package/dist/skeleton/types.d.ts +10 -0
  318. package/dist/skeleton/types.d.ts.map +1 -0
  319. package/dist/slider/index.d.ts +6 -0
  320. package/dist/slider/index.d.ts.map +1 -0
  321. package/dist/slider/types.d.ts +70 -0
  322. package/dist/slider/types.d.ts.map +1 -0
  323. package/dist/spinner/index.d.ts +6 -0
  324. package/dist/spinner/index.d.ts.map +1 -0
  325. package/dist/spinner/types.d.ts +10 -0
  326. package/dist/spinner/types.d.ts.map +1 -0
  327. package/dist/stepper/index.d.ts +6 -0
  328. package/dist/stepper/index.d.ts.map +1 -0
  329. package/dist/stepper/index.js +1 -1
  330. package/dist/stepper/types.d.ts +86 -0
  331. package/dist/stepper/types.d.ts.map +1 -0
  332. package/dist/styles/global.css +7651 -0
  333. package/dist/styles/themes/dark.css +93 -0
  334. package/dist/styles/themes/index.d.ts +9 -0
  335. package/dist/styles/themes/index.d.ts.map +1 -0
  336. package/dist/styles/themes/light.css +89 -0
  337. package/dist/styles/themes/presets/corporate.css +126 -0
  338. package/dist/styles/themes/presets/index.d.ts +21 -0
  339. package/dist/styles/themes/presets/index.d.ts.map +1 -0
  340. package/dist/styles/themes/presets/minimal.css +126 -0
  341. package/dist/styles/themes/presets/vibrant.css +126 -0
  342. package/dist/styles/tokens.d.ts +428 -0
  343. package/dist/styles/tokens.d.ts.map +1 -0
  344. package/dist/switch/index.d.ts +6 -0
  345. package/dist/switch/index.d.ts.map +1 -0
  346. package/dist/switch/types.d.ts +80 -0
  347. package/dist/switch/types.d.ts.map +1 -0
  348. package/dist/table/EditableCell.d.ts +13 -0
  349. package/dist/table/EditableCell.d.ts.map +1 -0
  350. package/dist/table/TableActions.d.ts +21 -0
  351. package/dist/table/TableActions.d.ts.map +1 -0
  352. package/dist/table/TableCell.d.ts +12 -0
  353. package/dist/table/TableCell.d.ts.map +1 -0
  354. package/dist/table/TableHeaderCell.d.ts +16 -0
  355. package/dist/table/TableHeaderCell.d.ts.map +1 -0
  356. package/dist/table/TableRow.d.ts +16 -0
  357. package/dist/table/TableRow.d.ts.map +1 -0
  358. package/dist/table/TableSkeleton.d.ts +13 -0
  359. package/dist/table/TableSkeleton.d.ts.map +1 -0
  360. package/dist/table/index.d.ts +15 -0
  361. package/dist/table/index.d.ts.map +1 -0
  362. package/dist/table/index.js +6 -6
  363. package/dist/table/types.d.ts +110 -0
  364. package/dist/table/types.d.ts.map +1 -0
  365. package/dist/table/variants.d.ts +8 -0
  366. package/dist/table/variants.d.ts.map +1 -0
  367. package/dist/tabs/index.d.ts +7 -0
  368. package/dist/tabs/index.d.ts.map +1 -0
  369. package/dist/tabs/index.js +1 -1
  370. package/dist/tabs/types.d.ts +86 -0
  371. package/dist/tabs/types.d.ts.map +1 -0
  372. package/dist/tag/index.d.ts +49 -0
  373. package/dist/tag/index.d.ts.map +1 -0
  374. package/dist/tag/index.js +1 -1
  375. package/dist/tag/types.d.ts +23 -0
  376. package/dist/tag/types.d.ts.map +1 -0
  377. package/dist/textarea/index.d.ts +6 -0
  378. package/dist/textarea/index.d.ts.map +1 -0
  379. package/dist/textarea/index.js +1 -1
  380. package/dist/textarea/types.d.ts +84 -0
  381. package/dist/textarea/types.d.ts.map +1 -0
  382. package/dist/theme/ThemeProvider.d.ts +44 -0
  383. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  384. package/dist/theme/index.d.ts +7 -0
  385. package/dist/theme/index.d.ts.map +1 -0
  386. package/dist/theme/types.d.ts +47 -0
  387. package/dist/theme/types.d.ts.map +1 -0
  388. package/dist/timeline/index.d.ts +13 -0
  389. package/dist/timeline/index.d.ts.map +1 -0
  390. package/dist/timeline/types.d.ts +25 -0
  391. package/dist/timeline/types.d.ts.map +1 -0
  392. package/dist/toast/index.d.ts +12 -0
  393. package/dist/toast/index.d.ts.map +1 -0
  394. package/dist/toast/types.d.ts +49 -0
  395. package/dist/toast/types.d.ts.map +1 -0
  396. package/dist/toggle/index.d.ts +6 -0
  397. package/dist/toggle/index.d.ts.map +1 -0
  398. package/dist/toggle/index.js +1 -1
  399. package/dist/toggle/types.d.ts +57 -0
  400. package/dist/toggle/types.d.ts.map +1 -0
  401. package/dist/toggle-group/index.d.ts +6 -0
  402. package/dist/toggle-group/index.d.ts.map +1 -0
  403. package/dist/toggle-group/index.js +1 -1
  404. package/dist/toggle-group/types.d.ts +80 -0
  405. package/dist/toggle-group/types.d.ts.map +1 -0
  406. package/dist/tooltip/index.d.ts +9 -0
  407. package/dist/tooltip/index.d.ts.map +1 -0
  408. package/dist/tooltip/index.js +1 -1
  409. package/dist/tooltip/types.d.ts +72 -0
  410. package/dist/tooltip/types.d.ts.map +1 -0
  411. package/dist/transfer/index.d.ts +6 -0
  412. package/dist/transfer/index.d.ts.map +1 -0
  413. package/dist/transfer/types.d.ts +83 -0
  414. package/dist/transfer/types.d.ts.map +1 -0
  415. package/dist/transfer/utils.d.ts +13 -0
  416. package/dist/transfer/utils.d.ts.map +1 -0
  417. package/dist/tree/index.d.ts +6 -0
  418. package/dist/tree/index.d.ts.map +1 -0
  419. package/dist/tree/index.js +1 -1
  420. package/dist/tree/types.d.ts +143 -0
  421. package/dist/tree/types.d.ts.map +1 -0
  422. package/dist/tree-select/index.d.ts +6 -0
  423. package/dist/tree-select/index.d.ts.map +1 -0
  424. package/dist/tree-select/index.js +3 -3
  425. package/dist/tree-select/types.d.ts +147 -0
  426. package/dist/tree-select/types.d.ts.map +1 -0
  427. package/dist/types.d.ts +53 -0
  428. package/dist/types.d.ts.map +1 -0
  429. package/dist/upload/index.d.ts +7 -0
  430. package/dist/upload/index.d.ts.map +1 -0
  431. package/dist/upload/index.js +1 -1
  432. package/dist/upload/types.d.ts +94 -0
  433. package/dist/upload/types.d.ts.map +1 -0
  434. package/dist/upload/utils.d.ts +26 -0
  435. package/dist/upload/utils.d.ts.map +1 -0
  436. package/dist/utils.d.ts +63 -0
  437. package/dist/utils.d.ts.map +1 -0
  438. package/dist/variants.d.ts +434 -0
  439. package/dist/variants.d.ts.map +1 -0
  440. package/package.json +157 -143
  441. package/dist/chunk-2J57G7XG.js.map +0 -1
  442. package/dist/chunk-2NYVRAG4.js.map +0 -1
  443. package/dist/chunk-4TQ4BZ3S.js.map +0 -1
  444. package/dist/chunk-5JOJBDET.js.map +0 -1
  445. package/dist/chunk-7KA7JSRX.js.map +0 -1
  446. package/dist/chunk-CLLNXRYZ.js.map +0 -1
  447. package/dist/chunk-CO766H7F.js.map +0 -1
  448. package/dist/chunk-CSRMVLPR.js.map +0 -1
  449. package/dist/chunk-FZLFCT6Q.js.map +0 -1
  450. package/dist/chunk-HEV27FUK.js.map +0 -1
  451. package/dist/chunk-HLY4VDIX.js.map +0 -1
  452. package/dist/chunk-ILQQTKD4.js.map +0 -1
  453. package/dist/chunk-ITZBSE5F.js.map +0 -1
  454. package/dist/chunk-IVOMN6DV.js.map +0 -1
  455. package/dist/chunk-KPI7MN5V.js.map +0 -1
  456. package/dist/chunk-KPM72QBO.js.map +0 -1
  457. package/dist/chunk-KTHWXHDN.js.map +0 -1
  458. package/dist/chunk-N3ZVPIFC.js.map +0 -1
  459. package/dist/chunk-Q57THXIU.js.map +0 -1
  460. package/dist/chunk-RW4RW4DV.js.map +0 -1
  461. package/dist/chunk-RZVEKAFR.js.map +0 -1
  462. package/dist/chunk-SAVEKACZ.js.map +0 -1
  463. package/dist/chunk-TBMY5EQC.js.map +0 -1
  464. package/dist/chunk-UHVPOGNC.js.map +0 -1
  465. package/dist/chunk-UTKVWE76.js.map +0 -1
  466. package/dist/chunk-WTGCXWNX.js.map +0 -1
  467. package/dist/chunk-WUBMNJGC.js.map +0 -1
  468. package/dist/chunk-XQJ6HZ4Q.js.map +0 -1
  469. package/dist/chunk-YTUB2Q7P.js.map +0 -1
  470. package/dist/chunk-YWGWFGCY.js.map +0 -1
@@ -0,0 +1,220 @@
1
+ import type { ComponentColor, MessagePosition } from '../types';
2
+ export type CascaderSize = 'xs' | 'sm' | 'md' | 'lg';
3
+ export type CascaderExpandTrigger = 'click' | 'hover';
4
+ export type CascaderPlacement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
5
+ export interface CascaderClassNames {
6
+ /**
7
+ * Class for root container
8
+ */
9
+ root?: string;
10
+ /**
11
+ * Class for trigger element
12
+ */
13
+ trigger?: string;
14
+ /**
15
+ * Class for dropdown container
16
+ */
17
+ dropdown?: string;
18
+ /**
19
+ * Class for menu panel
20
+ */
21
+ menu?: string;
22
+ /**
23
+ * Class for individual option
24
+ */
25
+ option?: string;
26
+ }
27
+ export interface CascaderOption {
28
+ /**
29
+ * Display label for the option
30
+ */
31
+ label: string;
32
+ /**
33
+ * Unique value for the option
34
+ */
35
+ value: string;
36
+ /**
37
+ * Child options for nested cascading
38
+ */
39
+ children?: CascaderOption[];
40
+ /**
41
+ * Whether the option is disabled
42
+ */
43
+ disabled?: boolean;
44
+ /**
45
+ * Whether this node is a leaf (no children to load)
46
+ * Used with loadData for async loading
47
+ */
48
+ isLeaf?: boolean;
49
+ /**
50
+ * Whether children are currently loading
51
+ * @internal
52
+ */
53
+ loading?: boolean;
54
+ }
55
+ export interface CascaderProps {
56
+ /**
57
+ * Cascader options with nested structure
58
+ */
59
+ options: CascaderOption[];
60
+ /**
61
+ * Current value (controlled) - single path or array of paths for multiple
62
+ */
63
+ value?: string[] | string[][];
64
+ /**
65
+ * Default initial value (uncontrolled)
66
+ */
67
+ defaultValue?: string[] | string[][];
68
+ /**
69
+ * Callback when value changes
70
+ */
71
+ onChange?: (value: string[] | string[][], selectedOptions: CascaderOption[] | CascaderOption[][]) => void;
72
+ /**
73
+ * Callback when selection is complete (after closing in single mode)
74
+ */
75
+ onSelect?: (value: string[], selectedOptions: CascaderOption[]) => void;
76
+ /**
77
+ * Placeholder text
78
+ * @default 'Please select'
79
+ */
80
+ placeholder?: string;
81
+ /**
82
+ * Label text
83
+ */
84
+ label?: string;
85
+ /**
86
+ * Helper text
87
+ */
88
+ helperText?: string;
89
+ /**
90
+ * Position of validation/helper messages
91
+ * @default 'bottom'
92
+ */
93
+ messagePosition?: MessagePosition;
94
+ /**
95
+ * Theme color
96
+ * @default 'default'
97
+ */
98
+ color?: ComponentColor;
99
+ /**
100
+ * Size variant
101
+ * @default 'md'
102
+ */
103
+ size?: CascaderSize;
104
+ /**
105
+ * Dropdown placement relative to trigger
106
+ * @default 'bottomLeft'
107
+ */
108
+ placement?: CascaderPlacement;
109
+ /**
110
+ * Whether cascader is disabled
111
+ * @default false
112
+ */
113
+ disabled?: boolean;
114
+ /**
115
+ * Whether cascader is in loading state
116
+ * @default false
117
+ */
118
+ loading?: boolean;
119
+ /**
120
+ * Error message
121
+ */
122
+ error?: string;
123
+ /**
124
+ * Warning message
125
+ */
126
+ warning?: string;
127
+ /**
128
+ * Info message
129
+ */
130
+ info?: string;
131
+ /**
132
+ * Success message
133
+ */
134
+ success?: string;
135
+ /**
136
+ * Whether cascader should take full width
137
+ * @default true
138
+ */
139
+ fullWidth?: boolean;
140
+ /**
141
+ * How to expand child options
142
+ * @default 'click'
143
+ */
144
+ expandTrigger?: CascaderExpandTrigger;
145
+ /**
146
+ * Enable multiple selection mode
147
+ * @default false
148
+ */
149
+ multiple?: boolean;
150
+ /**
151
+ * Maximum number of tags visible in multiple mode
152
+ * @default 3
153
+ */
154
+ maxTagCount?: number;
155
+ /**
156
+ * Show clear button when value is selected
157
+ * @default true
158
+ */
159
+ clearable?: boolean;
160
+ /**
161
+ * Show full path in selection display
162
+ * @default true
163
+ */
164
+ showPath?: boolean;
165
+ /**
166
+ * Path separator for display
167
+ * @default ' / '
168
+ */
169
+ pathSeparator?: string;
170
+ /**
171
+ * Allow selecting parent nodes (not just leaves)
172
+ * @default false
173
+ */
174
+ changeOnSelect?: boolean;
175
+ /**
176
+ * Load data asynchronously
177
+ * Called when expanding a node that has no children and isLeaf is not true
178
+ */
179
+ loadData?: (selectedOptions: CascaderOption[]) => Promise<void>;
180
+ /**
181
+ * Custom render function for display value
182
+ */
183
+ displayRender?: (labels: string[] | string[][], selectedOptions?: CascaderOption[] | CascaderOption[][]) => React.ReactNode;
184
+ /**
185
+ * Custom render function for tags in multiple mode
186
+ */
187
+ tagRender?: (props: {
188
+ label: string;
189
+ value: string[];
190
+ closable: boolean;
191
+ onClose: () => void;
192
+ }) => React.ReactNode;
193
+ /**
194
+ * Content to show when options array is empty
195
+ * @default 'No options'
196
+ */
197
+ emptyContent?: React.ReactNode;
198
+ /**
199
+ * Additional CSS class
200
+ */
201
+ className?: string;
202
+ /**
203
+ * Custom classes for different parts of the cascader
204
+ */
205
+ classNames?: CascaderClassNames;
206
+ /**
207
+ * Whether the field is required
208
+ * @default false
209
+ */
210
+ required?: boolean;
211
+ /**
212
+ * Reference to the cascader container element
213
+ */
214
+ ref?: React.Ref<HTMLDivElement>;
215
+ /**
216
+ * Callback when dropdown open state changes
217
+ */
218
+ onOpenChange?: (open: boolean) => void;
219
+ }
220
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cascader/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import type { CheckboxProps } from "./types";
3
+ declare const Checkbox: React.NamedExoticComponent<CheckboxProps>;
4
+ export type * from "./types";
5
+ export default Checkbox;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkbox/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+C7C,QAAA,MAAM,QAAQ,2CAwIb,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ButtonColor } from '../types';
2
+ export type CheckboxColor = ButtonColor;
3
+ export type CheckboxSize = 'xs' | 'sm' | 'md' | 'lg';
4
+ export interface CheckboxClassNames {
5
+ root?: string;
6
+ checkbox?: string;
7
+ indicator?: string;
8
+ label?: string;
9
+ description?: string;
10
+ }
11
+ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
12
+ color?: CheckboxColor;
13
+ size?: CheckboxSize;
14
+ label?: React.ReactNode;
15
+ helperText?: string;
16
+ error?: string | boolean;
17
+ indeterminate?: boolean;
18
+ ref?: React.Ref<HTMLInputElement>;
19
+ classNames?: CheckboxClassNames;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checkbox/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,MAAM,aAAa,GAAG,WAAW,CAAA;AAEvC,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEpD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1E,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { CheckboxGroupProps } from './types';
3
+ declare const CheckboxGroup: React.NamedExoticComponent<CheckboxGroupProps>;
4
+ export type * from './types';
5
+ export default CheckboxGroup;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkbox-group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAA;AAGpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,QAAA,MAAM,aAAa,gDAkElB,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,aAAa,CAAA"}
@@ -0,0 +1,43 @@
1
+ export interface CheckboxGroupClassNames {
2
+ root?: string;
3
+ label?: string;
4
+ group?: string;
5
+ item?: string;
6
+ helper?: string;
7
+ error?: string;
8
+ }
9
+ export interface CheckboxGroupProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ /**
11
+ * Children elements (typically Checkbox components)
12
+ */
13
+ children: React.ReactNode;
14
+ /**
15
+ * Label text for the checkbox group
16
+ */
17
+ label?: string;
18
+ /**
19
+ * Helper text or instructions
20
+ */
21
+ helperText?: string;
22
+ /**
23
+ * Error message
24
+ */
25
+ error?: string;
26
+ /**
27
+ * Layout orientation
28
+ */
29
+ orientation?: 'vertical' | 'horizontal';
30
+ /**
31
+ * Additional CSS class
32
+ */
33
+ className?: string;
34
+ /**
35
+ * Custom class names for different parts of the component
36
+ */
37
+ classNames?: CheckboxGroupClassNames;
38
+ /**
39
+ * Reference to the div element
40
+ */
41
+ ref?: React.Ref<HTMLDivElement>;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checkbox-group/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IAEvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAA;IAEpC;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAChC"}
@@ -15,7 +15,7 @@ var processingRingClasses = {
15
15
  info: "bg-info/50"
16
16
  };
17
17
  var badgeVariants = cva(
18
- "inline-flex items-center justify-center whitespace-nowrap font-medium transition-all",
18
+ "inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors",
19
19
  {
20
20
  variants: {
21
21
  variant: {
@@ -208,5 +208,5 @@ Badge.displayName = "Badge";
208
208
  var badge_default = Badge;
209
209
 
210
210
  export { badge_default };
211
- //# sourceMappingURL=chunk-5JOJBDET.js.map
212
- //# sourceMappingURL=chunk-5JOJBDET.js.map
211
+ //# sourceMappingURL=chunk-2K7MDR7K.js.map
212
+ //# sourceMappingURL=chunk-2K7MDR7K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/badge/index.tsx"],"names":[],"mappings":"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","file":"chunk-2K7MDR7K.js","sourcesContent":["import { cva } from \"class-variance-authority\";\nimport React from \"react\";\n\nimport { cn } from \"../utils\";\nimport { componentColors, createAllColorVariants } from \"../variants\";\nimport type {\n BadgeColor,\n BadgePlacement,\n BadgeProps,\n BadgeSize,\n} from \"./types\";\n\n/**\n * Processing ring color classes for ping animation\n */\nconst processingRingClasses: Record<BadgeColor, string> = {\n default: \"bg-surface/50\",\n primary: \"bg-primary/50\",\n secondary: \"bg-secondary/50\",\n accent: \"bg-accent/50\",\n success: \"bg-success/50\",\n error: \"bg-error/50\",\n warning: \"bg-warning/50\",\n info: \"bg-info/50\",\n};\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors\",\n {\n variants: {\n variant: {\n default: \"border\",\n solid: \"\",\n outline: \"border\",\n soft: \"\",\n },\n color: {\n default: \"\",\n primary: \"\",\n secondary: \"\",\n accent: \"\",\n success: \"\",\n error: \"\",\n warning: \"\",\n info: \"\",\n },\n size: {\n xs: \"text-(length:--badge-font-size-xs) px-(--badge-padding-x-xs) py-(--badge-padding-y-xs)\",\n sm: \"text-(length:--badge-font-size-sm) px-(--badge-padding-x-sm) py-(--badge-padding-y-sm)\",\n md: \"text-(length:--badge-font-size-md) px-(--badge-padding-x-md) py-(--badge-padding-y-md)\",\n lg: \"text-(length:--badge-font-size-lg) px-(--badge-padding-x-lg) py-(--badge-padding-y-lg)\",\n },\n shape: {\n rounded: \"rounded\",\n pill: \"rounded-full\",\n circle: \"rounded-full aspect-square\",\n },\n },\n compoundVariants: createAllColorVariants(componentColors, [\n \"default\",\n \"solid\",\n \"outline\",\n \"soft\",\n ]),\n defaultVariants: {\n variant: \"solid\",\n color: \"primary\",\n size: \"sm\",\n shape: \"rounded\",\n },\n },\n);\n\n/**\n * Dot size classes based on badge size\n */\nconst dotSizeClasses: Record<BadgeSize, string> = {\n xs: \"size-1.5\",\n sm: \"size-2\",\n md: \"size-2.5\",\n lg: \"size-3\",\n};\n\n/**\n * Icon size classes based on badge size\n */\nconst iconSizeClasses: Record<BadgeSize, string> = {\n xs: \"size-2.5\",\n sm: \"size-3\",\n md: \"size-3.5\",\n lg: \"size-4\",\n};\n\n/**\n * Placement position classes for floating badges\n */\nconst placementClasses: Record<BadgePlacement, string> = {\n \"top-right\": \"top-0 right-0 -translate-y-1/2 translate-x-1/2\",\n \"top-left\": \"top-0 left-0 -translate-y-1/2 -translate-x-1/2\",\n \"bottom-right\": \"bottom-0 right-0 translate-y-1/2 translate-x-1/2\",\n \"bottom-left\": \"bottom-0 left-0 translate-y-1/2 -translate-x-1/2\",\n};\n\n/**\n * Badge Component\n *\n * A versatile badge component for displaying counts, status indicators, or labels.\n * Can be used standalone or as a floating indicator over other elements.\n *\n * @example\n * // Standalone badge\n * <Badge>New</Badge>\n *\n * @example\n * // Badge with count floating over an icon\n * <Badge count={5}>\n * <BellIcon />\n * </Badge>\n *\n * @example\n * // Dot indicator with pulse\n * <Badge dot processing color=\"success\">\n * <Avatar />\n * </Badge>\n */\nconst Badge = React.memo<BadgeProps>(\n ({\n children,\n color = \"primary\",\n variant = \"solid\",\n size = \"sm\",\n shape = \"rounded\",\n dot = false,\n count,\n maxCount = 99,\n showZero = false,\n icon,\n placement = \"top-right\",\n offset,\n processing = false,\n invisible = false,\n standalone = false,\n content,\n className,\n wrapperClassName,\n ref,\n }) => {\n // Calculate display count\n const getDisplayCount = () => {\n if (count === undefined) return null;\n if (count === 0 && !showZero) return null;\n if (count > maxCount) return `${maxCount}+`;\n return count;\n };\n\n const displayCount = getDisplayCount();\n\n // Determine if we're in \"floating\" mode (badge over children) or \"standalone\" mode\n // Floating mode: children + (count OR dot OR content)\n // Standalone mode: just children as badge text, or count/dot without wrapping element\n const isFloatingMode =\n children && (count !== undefined || dot || content) && !standalone;\n\n // Don't render if count is 0 and showZero is false (when no children or content)\n if (\n count !== undefined &&\n count === 0 &&\n !showZero &&\n !children &&\n !content\n ) {\n return null;\n }\n\n // Calculate offset styles\n const offsetStyles = offset\n ? {\n \"--badge-offset-x\": `${offset[0]}px`,\n \"--badge-offset-y\": `${offset[1]}px`,\n }\n : undefined;\n\n // Render the badge element itself\n const renderBadge = (badgeContent: React.ReactNode) => {\n const isIconOnly = !!icon && badgeContent == null && !dot;\n\n return (\n <span\n ref={ref}\n data-slot=\"root\"\n className={cn(\n \"badge_root\",\n badgeVariants({ variant, color, size, shape }),\n dot && [dotSizeClasses[size], \"min-w-0\", \"rounded-full\"],\n isIconOnly && \"aspect-square\",\n processing && \"animate-pulse\",\n invisible && \"opacity-0 scale-0\",\n \"z-10\",\n className,\n )}\n style={{\n ...(dot ? { padding: 0 } : undefined),\n ...(offsetStyles as React.CSSProperties),\n }}\n >\n {!dot && (\n <>\n {icon && (\n <span\n className={cn(\n \"inline-flex items-center justify-center shrink-0\",\n iconSizeClasses[size],\n badgeContent && \"mr-1\",\n )}\n >\n {React.isValidElement(icon)\n ? React.cloneElement(\n icon as React.ReactElement<{ className?: string }>,\n {\n className: cn(\n \"w-full h-full\",\n (icon as React.ReactElement<{ className?: string }>)\n .props.className,\n ),\n },\n )\n : icon}\n </span>\n )}\n {badgeContent}\n </>\n )}\n </span>\n );\n };\n\n // Processing animation ring (for dot badges)\n const renderProcessingRing = () =>\n processing &&\n dot &&\n !invisible && (\n <span\n className={cn(\n \"absolute inset-0 rounded-full animate-ping\",\n processingRingClasses[color],\n )}\n />\n );\n\n // FLOATING MODE: Badge positioned over children\n if (isFloatingMode) {\n const floatingContent = content ?? displayCount;\n\n // Hide badge if count is 0 and showZero is false\n if (count !== undefined && count === 0 && !showZero && !dot && !content) {\n return (\n <span className={cn(\"relative inline-flex\", wrapperClassName)}>\n {children}\n </span>\n );\n }\n\n return (\n <span className={cn(\"relative inline-flex\", wrapperClassName)}>\n {children}\n <span\n className={cn(\n \"absolute\",\n placementClasses[placement],\n offset &&\n \"translate-x-[calc(var(--tw-translate-x)+var(--badge-offset-x,0px))] translate-y-[calc(var(--tw-translate-y)+var(--badge-offset-y,0px))]\",\n )}\n style={offsetStyles as React.CSSProperties}\n >\n <span className=\"relative inline-flex\">\n {renderBadge(floatingContent)}\n {renderProcessingRing()}\n </span>\n </span>\n </span>\n );\n }\n\n // STANDALONE MODE: Badge as inline element\n // Content priority: content prop > count > children\n const standaloneContent =\n content ?? (count !== undefined ? displayCount : children);\n\n if (dot && processing) {\n return (\n <span className={cn(\"relative inline-flex\", wrapperClassName)}>\n {renderBadge(null)}\n {renderProcessingRing()}\n </span>\n );\n }\n\n return renderBadge(standaloneContent);\n },\n);\n\nBadge.displayName = \"Badge\";\n\nexport type * from \"./types\";\nexport default Badge;\n"]}
@@ -120,7 +120,7 @@ var Tag = React.memo(
120
120
  onKeyDown: handleCloseKeyDown,
121
121
  className: cn(
122
122
  "tag_closeButton",
123
- "inline-flex items-center justify-center flex-shrink-0 cursor-pointer rounded-sm opacity-70 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1",
123
+ "inline-flex items-center justify-center flex-shrink-0 cursor-pointer rounded-sm opacity-70 hover:opacity-100 transition-[opacity,transform] active:scale-[0.85] focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1",
124
124
  iconSizeClasses[size],
125
125
  classNames?.closeButton
126
126
  ),
@@ -139,5 +139,5 @@ Tag.displayName = "Tag";
139
139
  var tag_default = Tag;
140
140
 
141
141
  export { tag_default };
142
- //# sourceMappingURL=chunk-VY3X4SDU.js.map
143
- //# sourceMappingURL=chunk-VY3X4SDU.js.map
142
+ //# sourceMappingURL=chunk-2SYAIIJE.js.map
143
+ //# sourceMappingURL=chunk-2SYAIIJE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tag/index.tsx"],"names":[],"mappings":"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","file":"chunk-VY3X4SDU.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport React from 'react';\n\nimport { cn } from '../utils';\nimport { componentColors, createAllColorVariants } from '../variants';\nimport type { TagProps } from './types';\n\n/**\n * Class variance authority configuration for the Tag component\n * Defines style variants for color, variant, and size\n */\nconst tagVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded font-medium transition-colors', {\n variants: {\n variant: {\n default: 'border',\n solid: '',\n outline: 'border',\n soft: '',\n },\n color: {\n default: '',\n primary: '',\n secondary: '',\n accent: '',\n success: '',\n error: '',\n warning: '',\n info: '',\n },\n size: {\n xs: 'text-[10px] px-1.5 py-0.5',\n sm: 'text-xs px-2 py-1',\n md: 'text-sm px-2.5 py-1',\n lg: 'text-base px-3 py-1.5',\n },\n },\n compoundVariants: createAllColorVariants(componentColors, ['default', 'solid', 'outline', 'soft']),\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'sm',\n },\n});\n\n/**\n * Icon and close button size variants for different tag sizes\n */\nconst iconSizeClasses = {\n xs: 'size-2.5',\n sm: 'size-3',\n md: 'size-3.5',\n lg: 'size-4',\n};\n\n/**\n * Tag Component\n *\n * An interactive badge variant that can be used for labels, categories, or removable items.\n * Supports multiple variants, colors, sizes, icons, and close functionality.\n *\n * @component\n * @example\n * // Basic tag\n * <Tag>Label</Tag>\n *\n * @example\n * // Tag with close button\n * <Tag closable onClose={(e) => console.log('Tag removed')}>\n * Removable Tag\n * </Tag>\n *\n * @example\n * // Tag with icon\n * <Tag icon={<Star />} color=\"warning\">\n * Featured\n * </Tag>\n *\n * @example\n * // Different variants\n * <Tag variant=\"outline\" color=\"success\">Outline Tag</Tag>\n * <Tag variant=\"soft\" color=\"info\">Soft Tag</Tag>\n *\n * @example\n * // Disable keyboard removal (Backspace/Delete on tag)\n * <Tag closable disableKeyboardRemoval onClose={(e) => console.log('Tag removed')}>\n * No keyboard removal\n * </Tag>\n *\n * @example\n * // Tag with keyboard removal enabled (focus on tag and press Delete/Backspace)\n * <Tag closable onClose={(e) => console.log('Tag removed')}>\n * Press Delete or Backspace to remove\n * </Tag>\n *\n * @param {TagProps} props - Component props\n * @returns {JSX.Element} Rendered tag component\n */\nconst Tag = React.memo<TagProps>(\n ({\n children,\n color = 'primary',\n variant = 'solid',\n size = 'sm',\n closable = false,\n onClose,\n icon,\n className,\n classNames,\n onClick,\n disableKeyboardRemoval = false,\n ...props\n }) => {\n /**\n * Handles the close button click event\n * Stops event propagation to prevent triggering parent onClick handlers\n *\n * @param {React.MouseEvent<HTMLButtonElement>} e - Mouse event\n */\n const handleClose = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onClose?.(e);\n };\n\n /**\n * Handles keyboard events for the close button\n * Always responds to Enter/Space for activation (accessibility requirement)\n *\n * @param {React.KeyboardEvent<HTMLButtonElement>} e - Keyboard event\n */\n const handleCloseKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n // Always allow Enter/Space for activation (accessibility requirement)\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n onClose?.(e);\n }\n };\n\n /**\n * Handles keyboard events for the tag\n * Removes tag when Delete or Backspace is pressed (takes priority)\n * Activates onClick when Enter or Space is pressed\n *\n * @param {React.KeyboardEvent<HTMLSpanElement>} e - Keyboard event\n */\n const handleTagKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>) => {\n // Handle deletion for closable tags (takes priority over onClick)\n if (!disableKeyboardRemoval && closable && (e.key === 'Delete' || e.key === 'Backspace')) {\n e.preventDefault();\n e.stopPropagation();\n onClose?.(e);\n return;\n }\n\n // Handle activation for clickable tags\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.stopPropagation();\n onClick(e);\n }\n };\n\n return (\n <span\n className={cn(\n 'tag_root',\n tagVariants({ variant, color, size }),\n (onClick || closable) && 'cursor-pointer',\n (onClick || (!disableKeyboardRemoval && closable)) &&\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary',\n classNames?.root,\n className\n )}\n onClick={onClick}\n onKeyDown={onClick || (!disableKeyboardRemoval && closable) ? handleTagKeyDown : undefined}\n role={onClick || (!disableKeyboardRemoval && closable) ? 'button' : undefined}\n tabIndex={onClick || (!disableKeyboardRemoval && closable) ? 0 : undefined}\n aria-label={\n (onClick || (!disableKeyboardRemoval && closable)) && typeof children === 'string' ? children : undefined\n }\n data-slot='root'\n {...props}\n >\n {icon && (\n <span className={cn('inline-flex items-center justify-center flex-shrink-0', iconSizeClasses[size])}>\n {React.isValidElement(icon)\n ? React.cloneElement(icon, {\n className: cn('w-full h-full', (icon.props as { className?: string }).className),\n } as React.HTMLAttributes<HTMLElement>)\n : icon}\n </span>\n )}\n <span\n className={cn('tag_content', classNames?.content)}\n data-slot='content'\n >\n {children}\n </span>\n {closable && (\n <button\n type='button'\n onClick={handleClose}\n onKeyDown={handleCloseKeyDown}\n className={cn(\n 'tag_closeButton',\n 'inline-flex items-center justify-center flex-shrink-0 cursor-pointer rounded-sm opacity-70 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1',\n iconSizeClasses[size],\n classNames?.closeButton\n )}\n aria-label={typeof children === 'string' ? `Remove ${children}` : 'Remove tag'}\n tabIndex={disableKeyboardRemoval ? 0 : -1}\n data-slot='closeButton'\n >\n <X className='w-full h-full' />\n </button>\n )}\n </span>\n );\n }\n);\n\nTag.displayName = 'Tag';\n\nexport type * from './types';\nexport default Tag;\n"]}
1
+ {"version":3,"sources":["../src/tag/index.tsx"],"names":[],"mappings":";;;;;;;AAcA,IAAM,WAAA,GAAc,IAAI,0FAAA,EAA4F;AAAA,EAClH,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,QAAA;AAAA,MACT,KAAA,EAAO,EAAA;AAAA,MACP,OAAA,EAAS,QAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,EAAA;AAAA,MACT,OAAA,EAAS,EAAA;AAAA,MACT,SAAA,EAAW,EAAA;AAAA,MACX,MAAA,EAAQ,EAAA;AAAA,MACR,OAAA,EAAS,EAAA;AAAA,MACT,KAAA,EAAO,EAAA;AAAA,MACP,OAAA,EAAS,EAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,2BAAA;AAAA,MACJ,EAAA,EAAI,mBAAA;AAAA,MACJ,EAAA,EAAI,qBAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,gBAAA,EAAkB,uBAAuB,eAAA,EAAiB,CAAC,WAAW,OAAA,EAAS,SAAA,EAAW,MAAM,CAAC,CAAA;AAAA,EACjG,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,OAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAKD,IAAM,eAAA,GAAkB;AAAA,EACtB,EAAA,EAAI,UAAA;AAAA,EACJ,EAAA,EAAI,QAAA;AAAA,EACJ,EAAA,EAAI,UAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AA6CA,IAAM,MAAM,KAAA,CAAM,IAAA;AAAA,EAChB,CAAC;AAAA,IACC,QAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,OAAA,GAAU,OAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,OAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,sBAAA,GAAyB,KAAA;AAAA,IACzB,GAAG;AAAA,GACL,KAAM;AAOJ,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAQA,IAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAA8C;AAExE,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,OAAA,GAAU,CAAC,CAAA;AAAA,MACb;AAAA,IACF,CAAA;AASA,IAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAA4C;AAEpE,MAAA,IAAI,CAAC,0BAA0B,QAAA,KAAa,CAAA,CAAE,QAAQ,QAAA,IAAY,CAAA,CAAE,QAAQ,WAAA,CAAA,EAAc;AACxF,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,YAAY,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,CAAA,EAAM;AACnD,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,MACX;AAAA,IACF,CAAA;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,UAAA;AAAA,UACA,WAAA,CAAY,EAAE,OAAA,EAAS,KAAA,EAAO,MAAM,CAAA;AAAA,UAAA,CACnC,WAAW,QAAA,KAAa,gBAAA;AAAA,UAAA,CACxB,OAAA,IAAY,CAAC,sBAAA,IAA0B,QAAA,KACtC,wEAAA;AAAA,UACF,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,OAAA;AAAA,QACA,SAAA,EAAW,OAAA,IAAY,CAAC,sBAAA,IAA0B,WAAY,gBAAA,GAAmB,MAAA;AAAA,QACjF,IAAA,EAAM,OAAA,IAAY,CAAC,sBAAA,IAA0B,WAAY,QAAA,GAAW,MAAA;AAAA,QACpE,QAAA,EAAU,OAAA,IAAY,CAAC,sBAAA,IAA0B,WAAY,CAAA,GAAI,MAAA;AAAA,QACjE,YAAA,EAAA,CACG,WAAY,CAAC,sBAAA,IAA0B,aAAc,OAAO,QAAA,KAAa,WAAW,QAAA,GAAW,MAAA;AAAA,QAElG,WAAA,EAAU,MAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,IAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,yDAAyD,eAAA,CAAgB,IAAI,CAAC,CAAA,EAC/F,gBAAM,cAAA,CAAe,IAAI,CAAA,GACtB,KAAA,CAAM,aAAa,IAAA,EAAM;AAAA,YACvB,SAAA,EAAW,EAAA,CAAG,eAAA,EAAkB,IAAA,CAAK,MAAiC,SAAS;AAAA,WAC3C,IACtC,IAAA,EACN,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,UAAA,EAAY,OAAO,CAAA;AAAA,cAChD,WAAA,EAAU,SAAA;AAAA,cAET;AAAA;AAAA,WACH;AAAA,UACC,QAAA,oBACC,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,WAAA;AAAA,cACT,SAAA,EAAW,kBAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA;AAAA,gBACA,wOAAA;AAAA,gBACA,gBAAgB,IAAI,CAAA;AAAA,gBACpB,UAAA,EAAY;AAAA,eACd;AAAA,cACA,cAAY,OAAO,QAAA,KAAa,QAAA,GAAW,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,GAAK,YAAA;AAAA,cAClE,QAAA,EAAU,yBAAyB,CAAA,GAAI,EAAA;AAAA,cACvC,WAAA,EAAU,aAAA;AAAA,cAEV,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,eAAA,EAAgB;AAAA;AAAA;AAC/B;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA;AAGlB,IAAO,WAAA,GAAQ","file":"chunk-2SYAIIJE.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport React from 'react';\n\nimport { cn } from '../utils';\nimport { componentColors, createAllColorVariants } from '../variants';\nimport type { TagProps } from './types';\n\n/**\n * Class variance authority configuration for the Tag component\n * Defines style variants for color, variant, and size\n */\nconst tagVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded font-medium transition-colors', {\n variants: {\n variant: {\n default: 'border',\n solid: '',\n outline: 'border',\n soft: '',\n },\n color: {\n default: '',\n primary: '',\n secondary: '',\n accent: '',\n success: '',\n error: '',\n warning: '',\n info: '',\n },\n size: {\n xs: 'text-[10px] px-1.5 py-0.5',\n sm: 'text-xs px-2 py-1',\n md: 'text-sm px-2.5 py-1',\n lg: 'text-base px-3 py-1.5',\n },\n },\n compoundVariants: createAllColorVariants(componentColors, ['default', 'solid', 'outline', 'soft']),\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'sm',\n },\n});\n\n/**\n * Icon and close button size variants for different tag sizes\n */\nconst iconSizeClasses = {\n xs: 'size-2.5',\n sm: 'size-3',\n md: 'size-3.5',\n lg: 'size-4',\n};\n\n/**\n * Tag Component\n *\n * An interactive badge variant that can be used for labels, categories, or removable items.\n * Supports multiple variants, colors, sizes, icons, and close functionality.\n *\n * @component\n * @example\n * // Basic tag\n * <Tag>Label</Tag>\n *\n * @example\n * // Tag with close button\n * <Tag closable onClose={(e) => console.log('Tag removed')}>\n * Removable Tag\n * </Tag>\n *\n * @example\n * // Tag with icon\n * <Tag icon={<Star />} color=\"warning\">\n * Featured\n * </Tag>\n *\n * @example\n * // Different variants\n * <Tag variant=\"outline\" color=\"success\">Outline Tag</Tag>\n * <Tag variant=\"soft\" color=\"info\">Soft Tag</Tag>\n *\n * @example\n * // Disable keyboard removal (Backspace/Delete on tag)\n * <Tag closable disableKeyboardRemoval onClose={(e) => console.log('Tag removed')}>\n * No keyboard removal\n * </Tag>\n *\n * @example\n * // Tag with keyboard removal enabled (focus on tag and press Delete/Backspace)\n * <Tag closable onClose={(e) => console.log('Tag removed')}>\n * Press Delete or Backspace to remove\n * </Tag>\n *\n * @param {TagProps} props - Component props\n * @returns {JSX.Element} Rendered tag component\n */\nconst Tag = React.memo<TagProps>(\n ({\n children,\n color = 'primary',\n variant = 'solid',\n size = 'sm',\n closable = false,\n onClose,\n icon,\n className,\n classNames,\n onClick,\n disableKeyboardRemoval = false,\n ...props\n }) => {\n /**\n * Handles the close button click event\n * Stops event propagation to prevent triggering parent onClick handlers\n *\n * @param {React.MouseEvent<HTMLButtonElement>} e - Mouse event\n */\n const handleClose = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onClose?.(e);\n };\n\n /**\n * Handles keyboard events for the close button\n * Always responds to Enter/Space for activation (accessibility requirement)\n *\n * @param {React.KeyboardEvent<HTMLButtonElement>} e - Keyboard event\n */\n const handleCloseKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n // Always allow Enter/Space for activation (accessibility requirement)\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n onClose?.(e);\n }\n };\n\n /**\n * Handles keyboard events for the tag\n * Removes tag when Delete or Backspace is pressed (takes priority)\n * Activates onClick when Enter or Space is pressed\n *\n * @param {React.KeyboardEvent<HTMLSpanElement>} e - Keyboard event\n */\n const handleTagKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>) => {\n // Handle deletion for closable tags (takes priority over onClick)\n if (!disableKeyboardRemoval && closable && (e.key === 'Delete' || e.key === 'Backspace')) {\n e.preventDefault();\n e.stopPropagation();\n onClose?.(e);\n return;\n }\n\n // Handle activation for clickable tags\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.stopPropagation();\n onClick(e);\n }\n };\n\n return (\n <span\n className={cn(\n 'tag_root',\n tagVariants({ variant, color, size }),\n (onClick || closable) && 'cursor-pointer',\n (onClick || (!disableKeyboardRemoval && closable)) &&\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary',\n classNames?.root,\n className\n )}\n onClick={onClick}\n onKeyDown={onClick || (!disableKeyboardRemoval && closable) ? handleTagKeyDown : undefined}\n role={onClick || (!disableKeyboardRemoval && closable) ? 'button' : undefined}\n tabIndex={onClick || (!disableKeyboardRemoval && closable) ? 0 : undefined}\n aria-label={\n (onClick || (!disableKeyboardRemoval && closable)) && typeof children === 'string' ? children : undefined\n }\n data-slot='root'\n {...props}\n >\n {icon && (\n <span className={cn('inline-flex items-center justify-center flex-shrink-0', iconSizeClasses[size])}>\n {React.isValidElement(icon)\n ? React.cloneElement(icon, {\n className: cn('w-full h-full', (icon.props as { className?: string }).className),\n } as React.HTMLAttributes<HTMLElement>)\n : icon}\n </span>\n )}\n <span\n className={cn('tag_content', classNames?.content)}\n data-slot='content'\n >\n {children}\n </span>\n {closable && (\n <button\n type='button'\n onClick={handleClose}\n onKeyDown={handleCloseKeyDown}\n className={cn(\n 'tag_closeButton',\n 'inline-flex items-center justify-center flex-shrink-0 cursor-pointer rounded-sm opacity-70 hover:opacity-100 transition-[opacity,transform] active:scale-[0.85] focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1',\n iconSizeClasses[size],\n classNames?.closeButton\n )}\n aria-label={typeof children === 'string' ? `Remove ${children}` : 'Remove tag'}\n tabIndex={disableKeyboardRemoval ? 0 : -1}\n data-slot='closeButton'\n >\n <X className='w-full h-full' />\n </button>\n )}\n </span>\n );\n }\n);\n\nTag.displayName = 'Tag';\n\nexport type * from './types';\nexport default Tag;\n"]}
@@ -1,4 +1,4 @@
1
- import { input_default } from './chunk-CLLNXRYZ.js';
1
+ import { input_default } from './chunk-GIWG6BCT.js';
2
2
  import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
3
  import { Eye, EyeOff } from 'lucide-react';
4
4
  import React from 'react';
@@ -33,7 +33,7 @@ var PasswordInput = React.memo(
33
33
  "data-slot": "toggleButton",
34
34
  className: cn(
35
35
  "inputPassword_toggleButton",
36
- "cursor-pointer hover:text-text-primary",
36
+ "cursor-pointer hover:text-text-primary transition-colors",
37
37
  classNames?.toggleButton
38
38
  ),
39
39
  "aria-label": showPassword ? "Hide password" : "Show password",
@@ -68,5 +68,5 @@ PasswordInput.displayName = "PasswordInput";
68
68
  var input_password_default = input_default;
69
69
 
70
70
  export { PasswordInput, input_password_default };
71
- //# sourceMappingURL=chunk-3HBMVZF5.js.map
72
- //# sourceMappingURL=chunk-3HBMVZF5.js.map
71
+ //# sourceMappingURL=chunk-623OVNLC.js.map
72
+ //# sourceMappingURL=chunk-623OVNLC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AASO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,IAAA,GAAO,MAAM,GAAA,EAAK,UAAA,EAAY,GAAG,KAAA,EAAM,KAAM;AACvE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,IAAI,CAAA;AAAA,UAC/C,OAAA,EAAS,EAAA,CAAG,uBAAA,EAAyB,UAAA,EAAY,OAAO,CAAA;AAAA,UACxD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,MAAA,EAAQ,EAAA,CAAG,sBAAA,EAAwB,UAAA,EAAY,MAAM,CAAA;AAAA,UACrD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK;AAAA,SACpD;AAAA,QACA,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,WAAA,EAAU,cAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,4BAAA;AAAA,cACA,wCAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YACA,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA,aACF,mBAEA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA,SAEJ,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-3HBMVZF5.js","sourcesContent":["'use client'\n\nimport { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { cn, iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, classNames, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n classNames={{\n root: cn('inputPassword_root', classNames?.root),\n wrapper: cn('inputPassword_wrapper', classNames?.wrapper),\n label: cn('inputPassword_label', classNames?.label),\n input: cn('inputPassword_input', classNames?.input),\n helper: cn('inputPassword_helper', classNames?.helper),\n error: cn('inputPassword_error', classNames?.error),\n }}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n data-slot=\"toggleButton\"\n className={cn(\n 'inputPassword_toggleButton',\n 'cursor-pointer hover:text-text-primary',\n classNames?.toggleButton,\n )}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n ) : (\n <EyeOff\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}
1
+ {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AASO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,IAAA,GAAO,MAAM,GAAA,EAAK,UAAA,EAAY,GAAG,KAAA,EAAM,KAAM;AACvE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,IAAI,CAAA;AAAA,UAC/C,OAAA,EAAS,EAAA,CAAG,uBAAA,EAAyB,UAAA,EAAY,OAAO,CAAA;AAAA,UACxD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,MAAA,EAAQ,EAAA,CAAG,sBAAA,EAAwB,UAAA,EAAY,MAAM,CAAA;AAAA,UACrD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK;AAAA,SACpD;AAAA,QACA,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,WAAA,EAAU,cAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,4BAAA;AAAA,cACA,0DAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YACA,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA,aACF,mBAEA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA,SAEJ,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-623OVNLC.js","sourcesContent":["'use client'\n\nimport { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { cn, iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, classNames, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n classNames={{\n root: cn('inputPassword_root', classNames?.root),\n wrapper: cn('inputPassword_wrapper', classNames?.wrapper),\n label: cn('inputPassword_label', classNames?.label),\n input: cn('inputPassword_input', classNames?.input),\n helper: cn('inputPassword_helper', classNames?.helper),\n error: cn('inputPassword_error', classNames?.error),\n }}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n data-slot=\"toggleButton\"\n className={cn(\n 'inputPassword_toggleButton',\n 'cursor-pointer hover:text-text-primary transition-colors',\n classNames?.toggleButton,\n )}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n ) : (\n <EyeOff\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}
@@ -123,7 +123,6 @@ var Textarea = React.memo(
123
123
  ...props
124
124
  }
125
125
  );
126
- if (!label && !helperMessage && !showCount) return textareaElement;
127
126
  return /* @__PURE__ */ jsxs(
128
127
  "div",
129
128
  {
@@ -171,5 +170,5 @@ Textarea.displayName = "Textarea";
171
170
  var textarea_default = Textarea;
172
171
 
173
172
  export { textarea_default };
174
- //# sourceMappingURL=chunk-2NYVRAG4.js.map
175
- //# sourceMappingURL=chunk-2NYVRAG4.js.map
173
+ //# sourceMappingURL=chunk-6JGNJI5T.js.map
174
+ //# sourceMappingURL=chunk-6JGNJI5T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/textarea/index.tsx"],"names":[],"mappings":"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","file":"chunk-6JGNJI5T.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useId } from 'react'\n\nimport { cn, getValidationStatus, statusMessageVariants } from '../utils'\nimport type { TextareaProps } from './types'\n\nconst textareaVariants = cva(\n 'w-full rounded-md focus:border-primary transition-colors text-text-primary placeholder:text-text-secondary/50 disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none',\n {\n variants: {\n variant: {\n outline: 'bg-background border border-border',\n filled: 'bg-surface border border-transparent',\n },\n status: {\n default: '',\n error: '!border-error focus:!border-error',\n warning: '!border-warning focus:!border-warning',\n info: '!border-info focus:!border-info',\n success: '!border-success focus:!border-success',\n },\n size: {\n xs: 'min-h-(--textarea-min-height-xs) p-(--textarea-padding-xs) text-xs',\n sm: 'min-h-(--textarea-min-height-sm) p-(--textarea-padding-sm) text-sm',\n md: 'min-h-(--textarea-min-height-md) p-(--textarea-padding-md) text-base',\n lg: 'min-h-(--textarea-min-height-lg) p-(--textarea-padding-lg) text-lg',\n },\n resize: {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n resize: 'vertical',\n fullWidth: true,\n },\n },\n)\n\nconst Textarea = React.memo<TextareaProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n helperText,\n messagePosition = 'bottom',\n error,\n warning,\n info,\n success,\n resize = 'vertical',\n showCount = false,\n maxLength,\n autoResize = false,\n fullWidth = true,\n className,\n classNames,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const internalRef = React.useRef<HTMLTextAreaElement>(null)\n const textareaRef =\n (ref as React.RefObject<HTMLTextAreaElement>) || internalRef\n const [internalValue, setInternalValue] = React.useState(value || '')\n const currentValue = value !== undefined ? value : internalValue\n const currentLength = String(currentValue).length\n\n // Generate unique IDs for accessibility\n const uniqueId = useId()\n const textareaId = props.id || `textarea-${uniqueId}`\n const helperId = `textarea-helper-${uniqueId}`\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n },\n [value, onChange],\n )\n\n React.useEffect(() => {\n if (autoResize && textareaRef.current) {\n textareaRef.current.style.height = 'auto'\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`\n }\n }, [currentValue, autoResize, textareaRef])\n\n const textareaElement = (\n <textarea\n ref={textareaRef}\n id={textareaId}\n className={cn(\n 'textarea_textarea',\n textareaVariants({\n variant,\n status,\n size,\n resize: autoResize ? 'none' : resize,\n fullWidth,\n }),\n autoResize && 'overflow-hidden',\n className,\n classNames?.textarea,\n )}\n maxLength={maxLength}\n value={currentValue}\n onChange={handleChange}\n aria-invalid={status === 'error'}\n aria-describedby={helperMessage ? helperId : undefined}\n {...props}\n />\n )\n\n return (\n <div\n className={cn(\n 'textarea_root',\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n classNames?.root,\n )}\n >\n <div className={cn('textarea_wrapper', 'flex gap-2 items-center relative mb-0.5', classNames?.wrapper)}>\n {label && (\n <label htmlFor={textareaId} className={cn('textarea_label', 'text-sm font-medium text-text-secondary', classNames?.label)}>\n {label}\n {props.required && <span className={cn('textarea_error', 'text-error ml-1', classNames?.error)}>*</span>}\n </label>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={helperId}\n className={cn('textarea_helper', statusMessageVariants({ status }), classNames?.helper)}\n >\n {helperMessage}\n </p>\n )}\n {showCount && maxLength && (\n <span className={cn('textarea_counter', 'text-xs text-text-secondary absolute right-0', classNames?.counter)}>\n {currentLength}/{maxLength}\n </span>\n )}\n </div>\n {textareaElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={helperId}\n className={cn('textarea_helper', statusMessageVariants({ status }), 'mt-0.5', classNames?.helper)}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTextarea.displayName = 'Textarea'\n\nexport type * from './types'\nexport default Textarea\n"]}
@@ -6,7 +6,7 @@ import React, { useState, useRef, useEffect } from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var clipboardVariants = cva(
9
- "inline-flex items-center justify-between gap-2 rounded-md font-medium transition-all cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
9
+ "inline-flex items-center justify-between gap-2 rounded-md font-medium transition-[colors,transform] cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background active:scale-[0.97]",
10
10
  {
11
11
  variants: {
12
12
  size: {
@@ -146,7 +146,7 @@ var Clipboard = React.memo(
146
146
  {
147
147
  className: cn(
148
148
  iconSizes[size],
149
- "shrink-0 clipboard_button",
149
+ "shrink-0 clipboard_button animate-in zoom-in-75 duration-200",
150
150
  classNames?.button
151
151
  ),
152
152
  "data-slot": "icon"
@@ -171,5 +171,5 @@ Clipboard.displayName = "Clipboard";
171
171
  var clipboard_default = Clipboard;
172
172
 
173
173
  export { clipboard_default };
174
- //# sourceMappingURL=chunk-UHVPOGNC.js.map
175
- //# sourceMappingURL=chunk-UHVPOGNC.js.map
174
+ //# sourceMappingURL=chunk-6QZFWSN7.js.map
175
+ //# sourceMappingURL=chunk-6QZFWSN7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/clipboard/index.tsx"],"names":[],"mappings":"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","file":"chunk-6QZFWSN7.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, Copy } from \"lucide-react\";\nimport React, { useState, useRef, useEffect } from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport { focusRingColorClasses } from \"../variants\";\nimport type { ClipboardProps } from \"./types\";\n\nconst clipboardVariants = cva(\n \"inline-flex items-center justify-between gap-2 rounded-md font-medium transition-[colors,transform] cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background active:scale-[0.97]\",\n {\n variants: {\n size: {\n xs: \"px-1.5 py-1 text-xs\",\n sm: \"px-2 py-1.5 text-xs\",\n md: \"px-2.5 py-2 text-sm\",\n lg: \"px-3.5 py-2 text-lg\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst colorStyles = {\n default: {\n default: \"bg-background border-border text-text-primary hover:bg-surface\",\n solid: \"bg-surface border-border text-text-primary hover:bg-surface/80\",\n soft: \"bg-surface/50 border-border text-text-primary hover:bg-surface\",\n },\n primary: {\n default: \"bg-background border-primary text-primary hover:bg-primary/10\",\n solid: \"bg-primary border-primary text-background hover:bg-primary/90\",\n soft: \"bg-primary/10 border-primary/30 text-primary hover:bg-primary/20\",\n },\n secondary: {\n default:\n \"bg-background border-secondary text-secondary hover:bg-secondary/10\",\n solid:\n \"bg-secondary border-secondary text-background hover:bg-secondary/90\",\n soft: \"bg-secondary/10 border-secondary/30 text-secondary hover:bg-secondary/20\",\n },\n accent: {\n default: \"bg-background border-accent text-accent hover:bg-accent/10\",\n solid: \"bg-accent border-accent text-background hover:bg-accent/90\",\n soft: \"bg-accent/10 border-accent/30 text-accent hover:bg-accent/20\",\n },\n success: {\n default: \"bg-background border-success text-success hover:bg-success/10\",\n solid: \"bg-success border-success text-background hover:bg-success/90\",\n soft: \"bg-success/10 border-success/30 text-success hover:bg-success/20\",\n },\n error: {\n default: \"bg-background border-error text-error hover:bg-error/10\",\n solid: \"bg-error border-error text-background hover:bg-error/90\",\n soft: \"bg-error/10 border-error/30 text-error hover:bg-error/20\",\n },\n warning: {\n default: \"bg-background border-warning text-warning hover:bg-warning/10\",\n solid: \"bg-warning border-warning text-background hover:bg-warning/90\",\n soft: \"bg-warning/10 border-warning/30 text-warning hover:bg-warning/20\",\n },\n info: {\n default: \"bg-background border-info text-info hover:bg-info/10\",\n solid: \"bg-info border-info text-background hover:bg-info/90\",\n soft: \"bg-info/10 border-info/30 text-info hover:bg-info/20\",\n },\n};\n\nconst Clipboard = React.memo<ClipboardProps>(\n ({\n value,\n color = \"default\",\n size = \"md\",\n variant = \"default\",\n showValue = true,\n successDuration = 2000,\n disabled = false,\n onCopy,\n className,\n classNames,\n ref,\n }) => {\n const [copied, setCopied] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Cleanup timeout on unmount to prevent memory leak\n useEffect(() => {\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, []);\n\n const handleCopy = async () => {\n if (disabled) return;\n\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n onCopy?.();\n\n // Clear any existing timer before setting a new one\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n setCopied(false);\n }, successDuration);\n } catch {\n // Copy failed - user can try again\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleCopy();\n }\n };\n\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onClick={handleCopy}\n onKeyDown={handleKeyDown}\n aria-label={\n copied\n ? \"Copied to clipboard\"\n : `Copy ${showValue ? value : \"to clipboard\"}`\n }\n aria-disabled={disabled}\n aria-live=\"polite\"\n className={cn(\n clipboardVariants({ size }),\n colorStyles[color][variant],\n focusRingColorClasses[color],\n disabled && \"opacity-50 cursor-not-allowed\",\n !showValue && \"aspect-square justify-center\",\n \"clipboard_root\",\n classNames?.root,\n className,\n )}\n data-slot=\"root\"\n >\n {showValue && (\n <span\n className={cn(\n \"font-mono truncate clipboard_input\",\n classNames?.input,\n )}\n data-slot=\"input\"\n >\n {value}\n </span>\n )}\n {copied ? (\n <Check\n className={cn(\n iconSizes[size],\n \"shrink-0 clipboard_button animate-in zoom-in-75 duration-200\",\n classNames?.button,\n )}\n data-slot=\"icon\"\n />\n ) : (\n <Copy\n className={cn(\n iconSizes[size],\n \"shrink-0 clipboard_button\",\n classNames?.button,\n )}\n data-slot=\"icon\"\n />\n )}\n </div>\n );\n },\n);\n\nClipboard.displayName = \"Clipboard\";\n\nexport type * from \"./types\";\nexport default Clipboard;\n"]}
@@ -1,4 +1,4 @@
1
- import { dropdown_default } from './chunk-KPI7MN5V.js';
1
+ import { dropdown_default } from './chunk-ZSS6E4T2.js';
2
2
  import { textColorVariants } from './chunk-LK4EPTNG.js';
3
3
  import { cn, iconSizes } from './chunk-NGYLRX6F.js';
4
4
  import { cva } from 'class-variance-authority';
@@ -268,5 +268,5 @@ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
268
268
  var breadcrumbs_default = Breadcrumb;
269
269
 
270
270
  export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default };
271
- //# sourceMappingURL=chunk-5VORB55Y.js.map
272
- //# sourceMappingURL=chunk-5VORB55Y.js.map
271
+ //# sourceMappingURL=chunk-7P3Q6H2V.js.map
272
+ //# sourceMappingURL=chunk-7P3Q6H2V.js.map