@mdigital_ui/ui 0.4.2 → 0.4.3

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 (481) hide show
  1. package/dist/accordion/index.d.ts.map +1 -1
  2. package/dist/accordion/index.js +3 -3
  3. package/dist/accordion/types.d.ts +2 -42
  4. package/dist/accordion/types.d.ts.map +1 -1
  5. package/dist/avatar/index.d.ts +0 -6
  6. package/dist/avatar/index.d.ts.map +1 -1
  7. package/dist/avatar/index.js +2 -2
  8. package/dist/avatar/types.d.ts +0 -48
  9. package/dist/avatar/types.d.ts.map +1 -1
  10. package/dist/badge/index.d.ts +1 -23
  11. package/dist/badge/index.d.ts.map +1 -1
  12. package/dist/badge/index.js +3 -3
  13. package/dist/badge/types.d.ts +1 -20
  14. package/dist/badge/types.d.ts.map +1 -1
  15. package/dist/breadcrumbs/index.d.ts.map +1 -1
  16. package/dist/breadcrumbs/index.js +7 -6
  17. package/dist/breadcrumbs/types.d.ts +3 -38
  18. package/dist/breadcrumbs/types.d.ts.map +1 -1
  19. package/dist/button/index.d.ts +1 -1
  20. package/dist/button/index.d.ts.map +1 -1
  21. package/dist/button/index.js +5 -5
  22. package/dist/button/types.d.ts +2 -8
  23. package/dist/button/types.d.ts.map +1 -1
  24. package/dist/button-group/index.d.ts +0 -28
  25. package/dist/button-group/index.d.ts.map +1 -1
  26. package/dist/button-group/index.js +2 -2
  27. package/dist/button-group/types.d.ts +0 -19
  28. package/dist/button-group/types.d.ts.map +1 -1
  29. package/dist/card/index.d.ts +0 -40
  30. package/dist/card/index.d.ts.map +1 -1
  31. package/dist/card/index.js +3 -3
  32. package/dist/card/types.d.ts +3 -29
  33. package/dist/card/types.d.ts.map +1 -1
  34. package/dist/carousel/index.d.ts +4 -0
  35. package/dist/carousel/index.d.ts.map +1 -1
  36. package/dist/carousel/index.js +2 -2
  37. package/dist/cascader/index.d.ts +0 -21
  38. package/dist/cascader/index.d.ts.map +1 -1
  39. package/dist/cascader/index.js +3 -3
  40. package/dist/cascader/types.d.ts +3 -89
  41. package/dist/cascader/types.d.ts.map +1 -1
  42. package/dist/checkbox/index.d.ts.map +1 -1
  43. package/dist/checkbox/index.js +3 -3
  44. package/dist/checkbox/types.d.ts +2 -2
  45. package/dist/checkbox/types.d.ts.map +1 -1
  46. package/dist/checkbox-group/index.d.ts.map +1 -1
  47. package/dist/checkbox-group/index.js +2 -2
  48. package/dist/checkbox-group/types.d.ts +0 -24
  49. package/dist/checkbox-group/types.d.ts.map +1 -1
  50. package/dist/{chunk-H6G4BUPA.js → chunk-2FYXBW4S.js} +201 -161
  51. package/dist/chunk-2FYXBW4S.js.map +1 -0
  52. package/dist/{chunk-KH577UDI.js → chunk-2OBMSB5S.js} +9 -6
  53. package/dist/chunk-2OBMSB5S.js.map +1 -0
  54. package/dist/{chunk-3BIV3QE2.js → chunk-3FXOQC6P.js} +60 -28
  55. package/dist/chunk-3FXOQC6P.js.map +1 -0
  56. package/dist/{chunk-YXLIGJTN.js → chunk-3KISIZGP.js} +6 -6
  57. package/dist/chunk-3KISIZGP.js.map +1 -0
  58. package/dist/{chunk-6G3BMY4N.js → chunk-3QD7AQX7.js} +76 -85
  59. package/dist/chunk-3QD7AQX7.js.map +1 -0
  60. package/dist/{chunk-ROA7BYGB.js → chunk-3YP7HY3Y.js} +7 -5
  61. package/dist/chunk-3YP7HY3Y.js.map +1 -0
  62. package/dist/{chunk-OLTQAMV2.js → chunk-442OQLPK.js} +9 -24
  63. package/dist/chunk-442OQLPK.js.map +1 -0
  64. package/dist/{chunk-OFUPJH35.js → chunk-4TEZWGX7.js} +3 -3
  65. package/dist/{chunk-OFUPJH35.js.map → chunk-4TEZWGX7.js.map} +1 -1
  66. package/dist/chunk-4WZDQI22.js +378 -0
  67. package/dist/chunk-4WZDQI22.js.map +1 -0
  68. package/dist/{chunk-TLNHWOQQ.js → chunk-54Z7XTJA.js} +30 -19
  69. package/dist/chunk-54Z7XTJA.js.map +1 -0
  70. package/dist/{chunk-64NHVOZS.js → chunk-5CIJ7UCP.js} +25 -15
  71. package/dist/chunk-5CIJ7UCP.js.map +1 -0
  72. package/dist/{chunk-ON2CMF6J.js → chunk-5XLCUGLQ.js} +14 -10
  73. package/dist/chunk-5XLCUGLQ.js.map +1 -0
  74. package/dist/{chunk-DUIL5BYS.js → chunk-62LTLXVG.js} +72 -48
  75. package/dist/chunk-62LTLXVG.js.map +1 -0
  76. package/dist/{chunk-G6NVGBYZ.js → chunk-6ZPCKFRS.js} +23 -22
  77. package/dist/chunk-6ZPCKFRS.js.map +1 -0
  78. package/dist/{chunk-N2WHJ3FI.js → chunk-7OYMEXY3.js} +7 -5
  79. package/dist/chunk-7OYMEXY3.js.map +1 -0
  80. package/dist/{chunk-ONGJXAYQ.js → chunk-AEPBQO7U.js} +6 -5
  81. package/dist/chunk-AEPBQO7U.js.map +1 -0
  82. package/dist/{chunk-UTWQ2FZK.js → chunk-AOXTD7QZ.js} +47 -93
  83. package/dist/chunk-AOXTD7QZ.js.map +1 -0
  84. package/dist/{chunk-ZJNGZCRB.js → chunk-BLFXVSZU.js} +54 -153
  85. package/dist/chunk-BLFXVSZU.js.map +1 -0
  86. package/dist/{chunk-VOODO2ZE.js → chunk-BMA4E3T6.js} +6 -14
  87. package/dist/chunk-BMA4E3T6.js.map +1 -0
  88. package/dist/{chunk-4FFVNUTK.js → chunk-BNHRUHI4.js} +7 -6
  89. package/dist/chunk-BNHRUHI4.js.map +1 -0
  90. package/dist/{chunk-3BZE6BBJ.js → chunk-C46VTIW7.js} +41 -23
  91. package/dist/chunk-C46VTIW7.js.map +1 -0
  92. package/dist/{chunk-BVO2BNFG.js → chunk-CHGABWIV.js} +3 -3
  93. package/dist/chunk-CHGABWIV.js.map +1 -0
  94. package/dist/chunk-DF2ICSNI.js +99 -0
  95. package/dist/chunk-DF2ICSNI.js.map +1 -0
  96. package/dist/chunk-DOI7OTYV.js +81 -0
  97. package/dist/chunk-DOI7OTYV.js.map +1 -0
  98. package/dist/{chunk-2TLOWZE4.js → chunk-DPIXBBXK.js} +40 -179
  99. package/dist/chunk-DPIXBBXK.js.map +1 -0
  100. package/dist/{chunk-OQFYIKWR.js → chunk-EC5DXYME.js} +21 -12
  101. package/dist/chunk-EC5DXYME.js.map +1 -0
  102. package/dist/{chunk-KJTMZJ7V.js → chunk-EHNWVQBL.js} +65 -48
  103. package/dist/chunk-EHNWVQBL.js.map +1 -0
  104. package/dist/{chunk-I32ZQUYY.js → chunk-F4GLUQOF.js} +9 -8
  105. package/dist/chunk-F4GLUQOF.js.map +1 -0
  106. package/dist/{chunk-GJPZOMFE.js → chunk-FCU2ENQQ.js} +63 -31
  107. package/dist/chunk-FCU2ENQQ.js.map +1 -0
  108. package/dist/{chunk-JWTWPZ32.js → chunk-FZXMRXWE.js} +10 -9
  109. package/dist/chunk-FZXMRXWE.js.map +1 -0
  110. package/dist/{chunk-LOYLJRCF.js → chunk-G27HGKWO.js} +15 -5
  111. package/dist/chunk-G27HGKWO.js.map +1 -0
  112. package/dist/{chunk-Y4XAXZHB.js → chunk-GGQF5PQN.js} +9 -8
  113. package/dist/chunk-GGQF5PQN.js.map +1 -0
  114. package/dist/chunk-GLJDHW73.js +24 -0
  115. package/dist/chunk-GLJDHW73.js.map +1 -0
  116. package/dist/{chunk-LX4FDH4J.js → chunk-GPSZJWU3.js} +10 -11
  117. package/dist/chunk-GPSZJWU3.js.map +1 -0
  118. package/dist/{chunk-6LYRMQOI.js → chunk-H6PCGSIT.js} +21 -16
  119. package/dist/chunk-H6PCGSIT.js.map +1 -0
  120. package/dist/{chunk-WRSG7WU5.js → chunk-HJITFPBT.js} +78 -94
  121. package/dist/chunk-HJITFPBT.js.map +1 -0
  122. package/dist/{chunk-HECAAILV.js → chunk-HRVOTFU4.js} +24 -16
  123. package/dist/chunk-HRVOTFU4.js.map +1 -0
  124. package/dist/{chunk-O3V3BTIJ.js → chunk-HSW64H23.js} +54 -87
  125. package/dist/chunk-HSW64H23.js.map +1 -0
  126. package/dist/{chunk-YS5AIY4A.js → chunk-K5RV3GF4.js} +6 -5
  127. package/dist/chunk-K5RV3GF4.js.map +1 -0
  128. package/dist/{chunk-2WZVD7P3.js → chunk-KZZJAZ5M.js} +6 -5
  129. package/dist/chunk-KZZJAZ5M.js.map +1 -0
  130. package/dist/{chunk-6HGUDHHE.js → chunk-L5BU2QTI.js} +3 -5
  131. package/dist/chunk-L5BU2QTI.js.map +1 -0
  132. package/dist/{chunk-C5IGZLIT.js → chunk-LM6CJZX5.js} +8 -22
  133. package/dist/chunk-LM6CJZX5.js.map +1 -0
  134. package/dist/{chunk-RFHTC6AH.js → chunk-LXHOS74B.js} +16 -38
  135. package/dist/chunk-LXHOS74B.js.map +1 -0
  136. package/dist/{chunk-674JC24S.js → chunk-MZDAQSI4.js} +27 -28
  137. package/dist/chunk-MZDAQSI4.js.map +1 -0
  138. package/dist/{chunk-3PWILVOE.js → chunk-NHM6DZOF.js} +35 -50
  139. package/dist/chunk-NHM6DZOF.js.map +1 -0
  140. package/dist/chunk-NZHKNUGE.js +96 -0
  141. package/dist/chunk-NZHKNUGE.js.map +1 -0
  142. package/dist/{chunk-2PNLIQYM.js → chunk-ON76IMMI.js} +3 -3
  143. package/dist/chunk-ON76IMMI.js.map +1 -0
  144. package/dist/{chunk-POLVJ36Y.js → chunk-QNLTSHMB.js} +13 -38
  145. package/dist/chunk-QNLTSHMB.js.map +1 -0
  146. package/dist/{chunk-7UCNBMCV.js → chunk-QZ67UOPR.js} +13 -19
  147. package/dist/chunk-QZ67UOPR.js.map +1 -0
  148. package/dist/{chunk-NGYLRX6F.js → chunk-RAS6HUEI.js} +2 -2
  149. package/dist/chunk-RAS6HUEI.js.map +1 -0
  150. package/dist/{chunk-R3TLU26W.js → chunk-S7R4NTOI.js} +9 -7
  151. package/dist/chunk-S7R4NTOI.js.map +1 -0
  152. package/dist/{chunk-L5UYN5LX.js → chunk-SHUHAORE.js} +78 -44
  153. package/dist/chunk-SHUHAORE.js.map +1 -0
  154. package/dist/{chunk-SGRACNBP.js → chunk-STAYOHDI.js} +13 -5
  155. package/dist/chunk-STAYOHDI.js.map +1 -0
  156. package/dist/{chunk-ERRZ2CSG.js → chunk-SUNCSPDF.js} +45 -74
  157. package/dist/chunk-SUNCSPDF.js.map +1 -0
  158. package/dist/{chunk-YJOLLSHH.js → chunk-TS2PG6Z4.js} +42 -34
  159. package/dist/chunk-TS2PG6Z4.js.map +1 -0
  160. package/dist/{chunk-X3YNHX77.js → chunk-U3RHF7QF.js} +32 -33
  161. package/dist/chunk-U3RHF7QF.js.map +1 -0
  162. package/dist/{chunk-GVVP5TZM.js → chunk-UIVOI7HE.js} +231 -197
  163. package/dist/chunk-UIVOI7HE.js.map +1 -0
  164. package/dist/{chunk-D4SUSZDN.js → chunk-USHR3MWQ.js} +13 -13
  165. package/dist/chunk-USHR3MWQ.js.map +1 -0
  166. package/dist/{chunk-764UKE6X.js → chunk-VIK6UTVN.js} +7 -6
  167. package/dist/chunk-VIK6UTVN.js.map +1 -0
  168. package/dist/{chunk-HUXODBIO.js → chunk-VKY3JXAQ.js} +42 -101
  169. package/dist/chunk-VKY3JXAQ.js.map +1 -0
  170. package/dist/{chunk-FZSCLZF6.js → chunk-VV3VO5TS.js} +64 -101
  171. package/dist/chunk-VV3VO5TS.js.map +1 -0
  172. package/dist/{chunk-ZIYA7TGX.js → chunk-W5L7C7WS.js} +12 -22
  173. package/dist/chunk-W5L7C7WS.js.map +1 -0
  174. package/dist/{chunk-GOLARX5K.js → chunk-X3CNTOKQ.js} +13 -10
  175. package/dist/chunk-X3CNTOKQ.js.map +1 -0
  176. package/dist/{chunk-EHWXPH76.js → chunk-XKDN5PWJ.js} +8 -6
  177. package/dist/chunk-XKDN5PWJ.js.map +1 -0
  178. package/dist/{chunk-HCOTO5WX.js → chunk-XWCWTPEM.js} +7 -8
  179. package/dist/chunk-XWCWTPEM.js.map +1 -0
  180. package/dist/{chunk-BPRCBPVJ.js → chunk-YSV5GQS7.js} +55 -17
  181. package/dist/chunk-YSV5GQS7.js.map +1 -0
  182. package/dist/{chunk-6JGNJI5T.js → chunk-ZNNIXMJZ.js} +35 -21
  183. package/dist/chunk-ZNNIXMJZ.js.map +1 -0
  184. package/dist/{chunk-CN74CNAN.js → chunk-ZZZGD5EF.js} +8 -22
  185. package/dist/chunk-ZZZGD5EF.js.map +1 -0
  186. package/dist/clipboard/index.d.ts.map +1 -1
  187. package/dist/clipboard/index.js +4 -4
  188. package/dist/clipboard/types.d.ts +2 -35
  189. package/dist/clipboard/types.d.ts.map +1 -1
  190. package/dist/collapse/index.d.ts.map +1 -1
  191. package/dist/collapse/index.js +3 -3
  192. package/dist/collapse/types.d.ts +2 -35
  193. package/dist/collapse/types.d.ts.map +1 -1
  194. package/dist/command/index.d.ts +39 -66
  195. package/dist/command/index.d.ts.map +1 -1
  196. package/dist/command/index.js +3 -3
  197. package/dist/command/types.d.ts +2 -2
  198. package/dist/command/types.d.ts.map +1 -1
  199. package/dist/context-menu/index.d.ts +1 -45
  200. package/dist/context-menu/index.d.ts.map +1 -1
  201. package/dist/context-menu/index.js +4 -3
  202. package/dist/context-menu/types.d.ts +9 -63
  203. package/dist/context-menu/types.d.ts.map +1 -1
  204. package/dist/date-picker/index.d.ts.map +1 -1
  205. package/dist/date-picker/index.js +4 -4
  206. package/dist/date-picker/types.d.ts +2 -2
  207. package/dist/date-picker/types.d.ts.map +1 -1
  208. package/dist/descriptions/index.d.ts.map +1 -1
  209. package/dist/descriptions/index.js +2 -2
  210. package/dist/divider/index.d.ts.map +1 -1
  211. package/dist/divider/index.js +3 -2
  212. package/dist/divider/types.d.ts +0 -12
  213. package/dist/divider/types.d.ts.map +1 -1
  214. package/dist/drawer/index.d.ts +4 -1
  215. package/dist/drawer/index.d.ts.map +1 -1
  216. package/dist/drawer/index.js +2 -2
  217. package/dist/drawer/types.d.ts +2 -145
  218. package/dist/drawer/types.d.ts.map +1 -1
  219. package/dist/dropdown/index.d.ts.map +1 -1
  220. package/dist/dropdown/index.js +6 -5
  221. package/dist/dropdown/types.d.ts +2 -71
  222. package/dist/dropdown/types.d.ts.map +1 -1
  223. package/dist/empty/index.d.ts.map +1 -1
  224. package/dist/empty/index.js +2 -2
  225. package/dist/empty/types.d.ts +3 -40
  226. package/dist/empty/types.d.ts.map +1 -1
  227. package/dist/fetching-overlay/index.d.ts.map +1 -1
  228. package/dist/fetching-overlay/index.js +4 -4
  229. package/dist/float-input/index.d.ts.map +1 -1
  230. package/dist/float-input/index.js +4 -4
  231. package/dist/float-input/types.d.ts +5 -10
  232. package/dist/float-input/types.d.ts.map +1 -1
  233. package/dist/grid/index.d.ts +1 -1
  234. package/dist/grid/index.d.ts.map +1 -1
  235. package/dist/grid/index.js +2 -2
  236. package/dist/grid/types.d.ts +1 -9
  237. package/dist/grid/types.d.ts.map +1 -1
  238. package/dist/hooks/index.d.ts +1 -0
  239. package/dist/hooks/index.d.ts.map +1 -1
  240. package/dist/hooks/useMenuNavigation.d.ts +18 -0
  241. package/dist/hooks/useMenuNavigation.d.ts.map +1 -0
  242. package/dist/image/index.d.ts.map +1 -1
  243. package/dist/image/index.js +2 -2
  244. package/dist/image/types.d.ts +2 -34
  245. package/dist/image/types.d.ts.map +1 -1
  246. package/dist/index.d.ts +2 -1
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +68 -67
  249. package/dist/index.js.map +1 -1
  250. package/dist/input/index.d.ts.map +1 -1
  251. package/dist/input/index.js +4 -4
  252. package/dist/input/types.d.ts +9 -4
  253. package/dist/input/types.d.ts.map +1 -1
  254. package/dist/input-group/index.d.ts.map +1 -1
  255. package/dist/input-group/index.js +2 -2
  256. package/dist/input-group/types.d.ts +7 -19
  257. package/dist/input-group/types.d.ts.map +1 -1
  258. package/dist/input-otp/index.d.ts.map +1 -1
  259. package/dist/input-otp/index.js +2 -2
  260. package/dist/input-otp/types.d.ts +3 -81
  261. package/dist/input-otp/types.d.ts.map +1 -1
  262. package/dist/input-password/index.d.ts.map +1 -1
  263. package/dist/input-password/index.js +5 -5
  264. package/dist/input-password/types.d.ts +0 -6
  265. package/dist/input-password/types.d.ts.map +1 -1
  266. package/dist/kbd/index.d.ts.map +1 -1
  267. package/dist/kbd/index.js +3 -3
  268. package/dist/kbd/types.d.ts +2 -17
  269. package/dist/kbd/types.d.ts.map +1 -1
  270. package/dist/link/index.d.ts +1 -1
  271. package/dist/link/index.d.ts.map +1 -1
  272. package/dist/link/index.js +2 -2
  273. package/dist/menubar/index.d.ts.map +1 -1
  274. package/dist/menubar/index.js +5 -4
  275. package/dist/modal/index.d.ts.map +1 -1
  276. package/dist/modal/index.js +2 -2
  277. package/dist/modal/types.d.ts +2 -44
  278. package/dist/modal/types.d.ts.map +1 -1
  279. package/dist/multi-select/index.d.ts.map +1 -1
  280. package/dist/multi-select/index.js +7 -6
  281. package/dist/multi-select/types.d.ts +2 -34
  282. package/dist/multi-select/types.d.ts.map +1 -1
  283. package/dist/navigation-menu/index.js +2 -2
  284. package/dist/notification/index.d.ts.map +1 -1
  285. package/dist/notification/index.js +3 -3
  286. package/dist/notification/types.d.ts +2 -62
  287. package/dist/notification/types.d.ts.map +1 -1
  288. package/dist/number-input/index.d.ts.map +1 -1
  289. package/dist/number-input/index.js +5 -5
  290. package/dist/number-input/types.d.ts +5 -2
  291. package/dist/number-input/types.d.ts.map +1 -1
  292. package/dist/pagination/index.d.ts.map +1 -1
  293. package/dist/pagination/index.js +4 -3
  294. package/dist/pagination/types.d.ts +3 -53
  295. package/dist/pagination/types.d.ts.map +1 -1
  296. package/dist/popover/index.d.ts +1 -1
  297. package/dist/popover/index.d.ts.map +1 -1
  298. package/dist/popover/index.js +3 -3
  299. package/dist/popover/types.d.ts +3 -17
  300. package/dist/popover/types.d.ts.map +1 -1
  301. package/dist/progress/index.d.ts.map +1 -1
  302. package/dist/progress/index.js +3 -2
  303. package/dist/progress/styles.d.ts +4 -5
  304. package/dist/progress/styles.d.ts.map +1 -1
  305. package/dist/progress/types.d.ts +2 -44
  306. package/dist/progress/types.d.ts.map +1 -1
  307. package/dist/radio/index.d.ts.map +1 -1
  308. package/dist/radio/index.js +3 -3
  309. package/dist/radio/types.d.ts +2 -2
  310. package/dist/radio/types.d.ts.map +1 -1
  311. package/dist/radio-group/index.d.ts.map +1 -1
  312. package/dist/radio-group/index.js +2 -2
  313. package/dist/radio-group/types.d.ts +0 -24
  314. package/dist/radio-group/types.d.ts.map +1 -1
  315. package/dist/rating/index.d.ts.map +1 -1
  316. package/dist/rating/index.js +2 -2
  317. package/dist/rating/types.d.ts +2 -2
  318. package/dist/rating/types.d.ts.map +1 -1
  319. package/dist/scroll-area/index.d.ts.map +1 -1
  320. package/dist/scroll-area/index.js +2 -2
  321. package/dist/select/index.d.ts.map +1 -1
  322. package/dist/select/index.js +7 -6
  323. package/dist/select/types.d.ts +8 -3
  324. package/dist/select/types.d.ts.map +1 -1
  325. package/dist/shared/useSelectBase.d.ts +4 -2
  326. package/dist/shared/useSelectBase.d.ts.map +1 -1
  327. package/dist/skeleton/index.d.ts.map +1 -1
  328. package/dist/skeleton/index.js +3 -3
  329. package/dist/skeleton/types.d.ts +1 -1
  330. package/dist/skeleton/types.d.ts.map +1 -1
  331. package/dist/slider/index.d.ts.map +1 -1
  332. package/dist/slider/index.js +3 -2
  333. package/dist/slider/types.d.ts +2 -36
  334. package/dist/slider/types.d.ts.map +1 -1
  335. package/dist/spinner/index.d.ts +2 -1
  336. package/dist/spinner/index.d.ts.map +1 -1
  337. package/dist/spinner/index.js +3 -3
  338. package/dist/spinner/types.d.ts +1 -1
  339. package/dist/spinner/types.d.ts.map +1 -1
  340. package/dist/stepper/index.d.ts.map +1 -1
  341. package/dist/stepper/index.js +3 -2
  342. package/dist/stepper/types.d.ts +3 -2
  343. package/dist/stepper/types.d.ts.map +1 -1
  344. package/dist/switch/index.d.ts.map +1 -1
  345. package/dist/switch/index.js +3 -3
  346. package/dist/switch/types.d.ts +2 -31
  347. package/dist/switch/types.d.ts.map +1 -1
  348. package/dist/table/index.d.ts.map +1 -1
  349. package/dist/table/index.js +11 -11
  350. package/dist/table/types.d.ts +2 -2
  351. package/dist/table/types.d.ts.map +1 -1
  352. package/dist/tabs/index.d.ts.map +1 -1
  353. package/dist/tabs/index.js +3 -3
  354. package/dist/tabs/types.d.ts +3 -53
  355. package/dist/tabs/types.d.ts.map +1 -1
  356. package/dist/tag/index.d.ts +1 -1
  357. package/dist/tag/index.d.ts.map +1 -1
  358. package/dist/tag/index.js +3 -3
  359. package/dist/tag/types.d.ts +1 -1
  360. package/dist/tag/types.d.ts.map +1 -1
  361. package/dist/textarea/index.d.ts.map +1 -1
  362. package/dist/textarea/index.js +2 -2
  363. package/dist/textarea/types.d.ts +3 -54
  364. package/dist/textarea/types.d.ts.map +1 -1
  365. package/dist/theme/types.d.ts +0 -12
  366. package/dist/theme/types.d.ts.map +1 -1
  367. package/dist/timeline/index.d.ts.map +1 -1
  368. package/dist/timeline/index.js +2 -2
  369. package/dist/toast/index.d.ts.map +1 -1
  370. package/dist/toast/index.js +3 -3
  371. package/dist/toast/types.d.ts +0 -6
  372. package/dist/toast/types.d.ts.map +1 -1
  373. package/dist/toggle/index.d.ts.map +1 -1
  374. package/dist/toggle/index.js +4 -3
  375. package/dist/toggle/types.d.ts +3 -26
  376. package/dist/toggle/types.d.ts.map +1 -1
  377. package/dist/toggle-group/index.d.ts.map +1 -1
  378. package/dist/toggle-group/index.js +4 -3
  379. package/dist/toggle-group/types.d.ts +3 -44
  380. package/dist/toggle-group/types.d.ts.map +1 -1
  381. package/dist/tooltip/index.d.ts.map +1 -1
  382. package/dist/tooltip/index.js +3 -3
  383. package/dist/tooltip/types.d.ts +2 -44
  384. package/dist/tooltip/types.d.ts.map +1 -1
  385. package/dist/transfer/index.d.ts.map +1 -1
  386. package/dist/transfer/index.js +4 -4
  387. package/dist/transfer/types.d.ts +0 -20
  388. package/dist/transfer/types.d.ts.map +1 -1
  389. package/dist/transfer/utils.d.ts.map +1 -1
  390. package/dist/tree/index.d.ts.map +1 -1
  391. package/dist/tree/index.js +2 -2
  392. package/dist/tree/types.d.ts +2 -73
  393. package/dist/tree/types.d.ts.map +1 -1
  394. package/dist/tree-select/index.d.ts.map +1 -1
  395. package/dist/tree-select/index.js +5 -5
  396. package/dist/tree-select/types.d.ts +3 -91
  397. package/dist/tree-select/types.d.ts.map +1 -1
  398. package/dist/types.d.ts +1 -35
  399. package/dist/types.d.ts.map +1 -1
  400. package/dist/upload/index.d.ts.map +1 -1
  401. package/dist/upload/index.js +3 -3
  402. package/dist/upload/types.d.ts +5 -32
  403. package/dist/upload/types.d.ts.map +1 -1
  404. package/dist/upload/utils.d.ts +1 -0
  405. package/dist/upload/utils.d.ts.map +1 -1
  406. package/dist/utils.d.ts +0 -39
  407. package/dist/utils.d.ts.map +1 -1
  408. package/dist/variants.d.ts +3 -314
  409. package/dist/variants.d.ts.map +1 -1
  410. package/package.json +1 -1
  411. package/styles/global.css +300 -977
  412. package/dist/chunk-2PNLIQYM.js.map +0 -1
  413. package/dist/chunk-2TLOWZE4.js.map +0 -1
  414. package/dist/chunk-2WZVD7P3.js.map +0 -1
  415. package/dist/chunk-3BIV3QE2.js.map +0 -1
  416. package/dist/chunk-3BZE6BBJ.js.map +0 -1
  417. package/dist/chunk-3PWILVOE.js.map +0 -1
  418. package/dist/chunk-4FFVNUTK.js.map +0 -1
  419. package/dist/chunk-64NHVOZS.js.map +0 -1
  420. package/dist/chunk-674JC24S.js.map +0 -1
  421. package/dist/chunk-6BAP6QUT.js +0 -72
  422. package/dist/chunk-6BAP6QUT.js.map +0 -1
  423. package/dist/chunk-6G3BMY4N.js.map +0 -1
  424. package/dist/chunk-6HGUDHHE.js.map +0 -1
  425. package/dist/chunk-6JGNJI5T.js.map +0 -1
  426. package/dist/chunk-6LYRMQOI.js.map +0 -1
  427. package/dist/chunk-6YOOKE6C.js +0 -138
  428. package/dist/chunk-6YOOKE6C.js.map +0 -1
  429. package/dist/chunk-764UKE6X.js.map +0 -1
  430. package/dist/chunk-7UCNBMCV.js.map +0 -1
  431. package/dist/chunk-BPRCBPVJ.js.map +0 -1
  432. package/dist/chunk-BVO2BNFG.js.map +0 -1
  433. package/dist/chunk-C5IGZLIT.js.map +0 -1
  434. package/dist/chunk-CN74CNAN.js.map +0 -1
  435. package/dist/chunk-D4SUSZDN.js.map +0 -1
  436. package/dist/chunk-DUIL5BYS.js.map +0 -1
  437. package/dist/chunk-EHWXPH76.js.map +0 -1
  438. package/dist/chunk-ERRZ2CSG.js.map +0 -1
  439. package/dist/chunk-EZGK67T6.js +0 -383
  440. package/dist/chunk-EZGK67T6.js.map +0 -1
  441. package/dist/chunk-FZSCLZF6.js.map +0 -1
  442. package/dist/chunk-G6NVGBYZ.js.map +0 -1
  443. package/dist/chunk-GJPZOMFE.js.map +0 -1
  444. package/dist/chunk-GOLARX5K.js.map +0 -1
  445. package/dist/chunk-GVVP5TZM.js.map +0 -1
  446. package/dist/chunk-H6G4BUPA.js.map +0 -1
  447. package/dist/chunk-HCOTO5WX.js.map +0 -1
  448. package/dist/chunk-HECAAILV.js.map +0 -1
  449. package/dist/chunk-HUXODBIO.js.map +0 -1
  450. package/dist/chunk-I32ZQUYY.js.map +0 -1
  451. package/dist/chunk-JWTWPZ32.js.map +0 -1
  452. package/dist/chunk-KH577UDI.js.map +0 -1
  453. package/dist/chunk-KJTMZJ7V.js.map +0 -1
  454. package/dist/chunk-L5UYN5LX.js.map +0 -1
  455. package/dist/chunk-LOYLJRCF.js.map +0 -1
  456. package/dist/chunk-LX4FDH4J.js.map +0 -1
  457. package/dist/chunk-N2WHJ3FI.js.map +0 -1
  458. package/dist/chunk-NGYLRX6F.js.map +0 -1
  459. package/dist/chunk-O3V3BTIJ.js.map +0 -1
  460. package/dist/chunk-OLTQAMV2.js.map +0 -1
  461. package/dist/chunk-ON2CMF6J.js.map +0 -1
  462. package/dist/chunk-ONGJXAYQ.js.map +0 -1
  463. package/dist/chunk-OQFYIKWR.js.map +0 -1
  464. package/dist/chunk-POLVJ36Y.js.map +0 -1
  465. package/dist/chunk-POXI7JJ4.js +0 -351
  466. package/dist/chunk-POXI7JJ4.js.map +0 -1
  467. package/dist/chunk-R3TLU26W.js.map +0 -1
  468. package/dist/chunk-RFHTC6AH.js.map +0 -1
  469. package/dist/chunk-ROA7BYGB.js.map +0 -1
  470. package/dist/chunk-SGRACNBP.js.map +0 -1
  471. package/dist/chunk-TLNHWOQQ.js.map +0 -1
  472. package/dist/chunk-UTWQ2FZK.js.map +0 -1
  473. package/dist/chunk-VOODO2ZE.js.map +0 -1
  474. package/dist/chunk-WRSG7WU5.js.map +0 -1
  475. package/dist/chunk-X3YNHX77.js.map +0 -1
  476. package/dist/chunk-Y4XAXZHB.js.map +0 -1
  477. package/dist/chunk-YJOLLSHH.js.map +0 -1
  478. package/dist/chunk-YS5AIY4A.js.map +0 -1
  479. package/dist/chunk-YXLIGJTN.js.map +0 -1
  480. package/dist/chunk-ZIYA7TGX.js.map +0 -1
  481. package/dist/chunk-ZJNGZCRB.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/checkbox-group/index.tsx"],"names":[],"mappings":";;;;AAKA,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EAC1B,CAAC;AAAA,IACC,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,GAAc,UAAA;AAAA,IACd,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,WAAW,KAAA,EAAM;AACvB,IAAA,MAAM,OAAA,GAAU,KAAA,GAAQ,CAAA,oBAAA,EAAuB,QAAQ,CAAA,CAAA,GAAK,MAAA;AAC5D,IAAA,MAAM,SAAA,GAAa,UAAA,IAAc,KAAA,GAAS,CAAA,sBAAA,EAAyB,QAAQ,CAAA,CAAA,GAAK,MAAA;AAEhF,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,iBAAA,EAAiB,OAAA;AAAA,QACjB,kBAAA,EAAkB,SAAA;AAAA,QAClB,WAAW,EAAA,CAAG,oBAAA,EAAsB,QAAA,EAAU,SAAA,EAAW,YAAY,IAAI,CAAA;AAAA,QACzE,WAAA,EAAU,MAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAO,aAAU,OAAA,EAC9B,QAAA,kBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,OAAA;AAAA,cACJ,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,yCAAA,EAA2C,YAAY,KAAK,CAAA;AAAA,cAEhG,QAAA,EAAA;AAAA;AAAA,WACH,EACF,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,qBAAA;AAAA,gBACA,MAAA;AAAA,gBACA,WAAA,KAAgB,aACZ,gBAAA,GACA,0BAAA;AAAA,gBACJ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,WAAA,EAAU,OAAA;AAAA,cAET;AAAA;AAAA,WACH;AAAA,UAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,SAAA;AAAA,cACJ,SAAA,EAAW,EAAA;AAAA,gBACT,QAAQ,qBAAA,GAAwB,sBAAA;AAAA,gBAChC,cAAA;AAAA,gBACA,QAAQ,YAAA,GAAe,qBAAA;AAAA,gBACvB,KAAA,GAAQ,UAAA,EAAY,KAAA,GAAQ,UAAA,EAAY;AAAA,eAC1C;AAAA,cACA,WAAA,EAAW,QAAQ,OAAA,GAAU,QAAA;AAAA,cAE5B,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-2PNLIQYM.js","sourcesContent":["import React, { useId } from 'react'\n\nimport { cn } from '../utils'\nimport type { CheckboxGroupProps } from './types'\n\nconst CheckboxGroup = React.memo<CheckboxGroupProps>(\n ({\n label,\n helperText,\n error,\n orientation = 'vertical',\n className,\n classNames,\n children,\n ref,\n ...props\n }) => {\n const uniqueId = useId()\n const labelId = label ? `checkboxgroup-label-${uniqueId}` : undefined\n const messageId = (helperText || error) ? `checkboxgroup-message-${uniqueId}` : undefined\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-labelledby={labelId}\n aria-describedby={messageId}\n className={cn('checkboxGroup_root', 'w-full', className, classNames?.root)}\n data-slot=\"root\"\n {...props}\n >\n {label && (\n <div className=\"mb-2\" data-slot=\"label\">\n <span\n id={labelId}\n className={cn('checkboxGroup_label', 'text-sm font-medium text-text-secondary', classNames?.label)}\n >\n {label}\n </span>\n </div>\n )}\n <div\n className={cn(\n 'checkboxGroup_group',\n 'flex',\n orientation === 'vertical'\n ? 'flex-col gap-2'\n : 'flex-row flex-wrap gap-4',\n classNames?.group,\n )}\n data-slot=\"group\"\n >\n {children}\n </div>\n {(helperText || error) && (\n <p\n id={messageId}\n className={cn(\n error ? 'checkboxGroup_error' : 'checkboxGroup_helper',\n 'mt-2 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n error ? classNames?.error : classNames?.helper,\n )}\n data-slot={error ? 'error' : 'helper'}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n\nexport type * from './types'\nexport default CheckboxGroup\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/progress/styles.ts","../src/progress/index.tsx"],"names":[],"mappings":"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","file":"chunk-2TLOWZE4.js","sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { ComponentColor } from \"../types\";\nimport type { ProgressVariant, ProgressSize } from \"./types\";\n\nexport const circleSizes = {\n xs: { size: 60, strokeWidth: 4 },\n sm: { size: 80, strokeWidth: 6 },\n md: { size: 120, strokeWidth: 8 },\n lg: { size: 160, strokeWidth: 10 },\n};\n\nexport const progressContainerVariants = cva(\"w-full rounded-full overflow-hidden\", {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const progressBarVariants = cva(\n \"h-full transition-[width,height] duration-300 ease-in-out rounded-full\",\n {\n variants: {\n size: {\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport const backgroundColorStyles: Record<ComponentColor, Record<ProgressVariant, string>> = {\n default: {\n default: \"bg-surface\",\n solid: \"bg-surface\",\n soft: \"bg-surface/50\",\n },\n primary: {\n default: \"bg-primary/10\",\n solid: \"bg-primary/20\",\n soft: \"bg-primary/10\",\n },\n secondary: {\n default: \"bg-secondary/10\",\n solid: \"bg-secondary/20\",\n soft: \"bg-secondary/10\",\n },\n accent: {\n default: \"bg-accent/10\",\n solid: \"bg-accent/20\",\n soft: \"bg-accent/10\",\n },\n success: {\n default: \"bg-success/10\",\n solid: \"bg-success/20\",\n soft: \"bg-success/10\",\n },\n error: {\n default: \"bg-error/10\",\n solid: \"bg-error/20\",\n soft: \"bg-error/10\",\n },\n warning: {\n default: \"bg-warning/10\",\n solid: \"bg-warning/20\",\n soft: \"bg-warning/10\",\n },\n info: {\n default: \"bg-info/10\",\n solid: \"bg-info/20\",\n soft: \"bg-info/10\",\n },\n};\n\nexport const barColorStyles: Record<ComponentColor, Record<ProgressVariant, string>> = {\n default: {\n default: \"bg-surface border border-border\",\n solid: \"bg-surface\",\n soft: \"bg-surface/80\",\n },\n primary: {\n default: \"bg-primary/20 border border-primary\",\n solid: \"bg-primary\",\n soft: \"bg-primary/60\",\n },\n secondary: {\n default: \"bg-secondary/20 border border-secondary\",\n solid: \"bg-secondary\",\n soft: \"bg-secondary/60\",\n },\n accent: {\n default: \"bg-accent/20 border border-accent\",\n solid: \"bg-accent\",\n soft: \"bg-accent/60\",\n },\n success: {\n default: \"bg-success/20 border border-success\",\n solid: \"bg-success\",\n soft: \"bg-success/60\",\n },\n error: {\n default: \"bg-error/20 border border-error\",\n solid: \"bg-error\",\n soft: \"bg-error/60\",\n },\n warning: {\n default: \"bg-warning/20 border border-warning\",\n solid: \"bg-warning\",\n soft: \"bg-warning/60\",\n },\n info: {\n default: \"bg-info/20 border border-info\",\n solid: \"bg-info\",\n soft: \"bg-info/60\",\n },\n};\n\nexport const circleStrokeColors: Record<ComponentColor, Record<ProgressVariant, string>> = {\n default: {\n default: \"stroke-surface\",\n solid: \"stroke-surface\",\n soft: \"stroke-surface/80\",\n },\n primary: {\n default: \"stroke-primary\",\n solid: \"stroke-primary\",\n soft: \"stroke-primary/60\",\n },\n secondary: {\n default: \"stroke-secondary\",\n solid: \"stroke-secondary\",\n soft: \"stroke-secondary/60\",\n },\n accent: {\n default: \"stroke-accent\",\n solid: \"stroke-accent\",\n soft: \"stroke-accent/60\",\n },\n success: {\n default: \"stroke-success\",\n solid: \"stroke-success\",\n soft: \"stroke-success/60\",\n },\n error: {\n default: \"stroke-error\",\n solid: \"stroke-error\",\n soft: \"stroke-error/60\",\n },\n warning: {\n default: \"stroke-warning\",\n solid: \"stroke-warning\",\n soft: \"stroke-warning/60\",\n },\n info: {\n default: \"stroke-info\",\n solid: \"stroke-info\",\n soft: \"stroke-info/60\",\n },\n};\n\nexport const circleTrailColors: Record<ComponentColor, Record<ProgressVariant, string>> = {\n default: {\n default: \"stroke-surface\",\n solid: \"stroke-surface\",\n soft: \"stroke-surface/50\",\n },\n primary: {\n default: \"stroke-primary/10\",\n solid: \"stroke-primary/20\",\n soft: \"stroke-primary/10\",\n },\n secondary: {\n default: \"stroke-secondary/10\",\n solid: \"stroke-secondary/20\",\n soft: \"stroke-secondary/10\",\n },\n accent: {\n default: \"stroke-accent/10\",\n solid: \"stroke-accent/20\",\n soft: \"stroke-accent/10\",\n },\n success: {\n default: \"stroke-success/10\",\n solid: \"stroke-success/20\",\n soft: \"stroke-success/10\",\n },\n error: {\n default: \"stroke-error/10\",\n solid: \"stroke-error/20\",\n soft: \"stroke-error/10\",\n },\n warning: {\n default: \"stroke-warning/10\",\n solid: \"stroke-warning/20\",\n soft: \"stroke-warning/10\",\n },\n info: {\n default: \"stroke-info/10\",\n solid: \"stroke-info/20\",\n soft: \"stroke-info/10\",\n },\n};\n\nexport function getVerticalWidthClass(size: ProgressSize): string {\n switch (size) {\n case \"xs\":\n return \"w-1\";\n case \"sm\":\n return \"w-2\";\n case \"md\":\n return \"w-3\";\n case \"lg\":\n return \"w-4\";\n default:\n return \"w-3\";\n }\n}\n\nexport function getStripedStyle(striped: boolean, isCompleted: boolean = true) {\n if (!striped || !isCompleted) return {};\n return {\n backgroundImage:\n \"linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)\",\n backgroundSize: \"1rem 1rem\",\n };\n}\n","'use client'\n\nimport React from \"react\";\n\nimport { cn } from \"../utils\";\nimport type { ProgressProps } from \"./types\";\nimport {\n circleSizes,\n progressContainerVariants,\n progressBarVariants,\n backgroundColorStyles,\n barColorStyles,\n circleStrokeColors,\n circleTrailColors,\n getVerticalWidthClass,\n getStripedStyle,\n} from \"./styles\";\n\n// Shared label and progress percentage component\ninterface ProgressLabelProps {\n label?: string;\n showProgress: boolean;\n clampedValue: number;\n classNames?: ProgressProps[\"classNames\"];\n}\n\nconst ProgressLabel: React.FC<ProgressLabelProps> = ({\n label,\n showProgress,\n clampedValue,\n classNames,\n}) => {\n if (!label) return null;\n\n return (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span className={cn(\"progress_label\", classNames?.label)}>{label}</span>\n {showProgress && (\n <span className={cn(\"font-medium\", \"progress_value\", classNames?.value)}>\n {clampedValue}%\n </span>\n )}\n </div>\n );\n};\n\n// Circle progress component\ninterface CircleProgressProps extends Pick<ProgressProps, \"size\" | \"circleSize\" | \"strokeWidth\" | \"color\" | \"variant\" | \"label\" | \"className\" | \"classNames\"> {\n clampedValue: number;\n progressLabel: string;\n}\n\nconst CircleProgress: React.FC<CircleProgressProps> = ({\n size = \"md\",\n circleSize: customCircleSize,\n strokeWidth: customStrokeWidth,\n color = \"primary\",\n variant = \"default\",\n label,\n className,\n classNames,\n clampedValue,\n progressLabel,\n}) => {\n const preset = circleSizes[size];\n const circleSize = customCircleSize ?? preset.size;\n const strokeWidth = customStrokeWidth ?? preset.strokeWidth;\n const radius = (circleSize - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - (clampedValue / 100) * circumference;\n\n return (\n <div\n className={cn(\n \"inline-flex flex-col items-center\",\n \"progress_root\",\n className,\n classNames?.root,\n )}\n >\n <div\n className=\"relative\"\n style={{ width: circleSize, height: circleSize }}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={progressLabel}\n >\n <svg\n width={circleSize}\n height={circleSize}\n className=\"transform -rotate-90\"\n aria-hidden=\"true\"\n >\n {/* Background circle */}\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n className={cn(\n circleTrailColors[color][variant],\n \"progress_track\",\n classNames?.track,\n )}\n />\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className={cn(\n circleStrokeColors[color][variant],\n \"transition-[width,height] duration-300 ease-in-out\",\n \"progress_fill\",\n classNames?.fill,\n )}\n />\n </svg>\n {/* Center text */}\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n {label ? (\n <div\n className={cn(\n \"p-2 text-text-secondary\",\n \"progress_label\",\n classNames?.label,\n )}\n style={{ fontSize: `${circleSize / Math.floor(label.length * 1.5)}px` }}\n >\n {label}\n </div>\n ) : (\n <span\n className={cn(\n \"text-text-primary font-semibold\",\n \"progress_value\",\n classNames?.value,\n )}\n style={{ fontSize: circleSize / 5 }}\n >\n {clampedValue}%\n </span>\n )}\n </div>\n </div>\n </div>\n );\n};\n\n// Step progress component\ninterface StepProgressProps extends Pick<ProgressProps, \"orientation\" | \"size\" | \"color\" | \"variant\" | \"label\" | \"showProgress\" | \"striped\" | \"animated\" | \"className\" | \"classNames\" | \"totalSteps\"> {\n clampedValue: number;\n progressLabel: string;\n}\n\nconst StepProgress: React.FC<StepProgressProps> = ({\n orientation = \"horizontal\",\n size = \"md\",\n color = \"primary\",\n variant = \"default\",\n label,\n showProgress = false,\n striped = false,\n animated = false,\n className,\n classNames,\n totalSteps = 5,\n clampedValue,\n progressLabel,\n}) => {\n const currentStep = Math.ceil((clampedValue / 100) * totalSteps);\n\n if (orientation === \"vertical\") {\n return (\n <div\n className={cn(\n \"h-full flex flex-col\",\n \"progress_root\",\n className,\n classNames?.root,\n )}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={progressLabel}\n >\n <ProgressLabel\n label={label}\n showProgress={showProgress}\n clampedValue={clampedValue}\n classNames={classNames}\n />\n <div\n className={cn(\n \"flex-1 rounded-full overflow-hidden flex flex-col-reverse gap-1\",\n getVerticalWidthClass(size),\n \"progress_track\",\n classNames?.track,\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1;\n const isCompleted = stepNumber <= currentStep;\n\n return (\n <div\n key={index}\n className={cn(\n \"w-full rounded-full transition-[width,height] flex-1\",\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && \"progress-shimmer\",\n \"progress_fill\",\n classNames?.fill,\n )}\n style={getStripedStyle(striped, isCompleted)}\n />\n );\n })}\n </div>\n </div>\n );\n }\n\n // Horizontal step progress\n return (\n <div\n className={cn(\"w-full\", \"progress_root\", className, classNames?.root)}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={progressLabel}\n >\n <ProgressLabel\n label={label}\n showProgress={showProgress}\n clampedValue={clampedValue}\n classNames={classNames}\n />\n <div\n className={cn(\n \"w-full rounded-full overflow-hidden flex gap-1\",\n progressContainerVariants({ size }),\n \"progress_track\",\n classNames?.track,\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1;\n const isCompleted = stepNumber <= currentStep;\n\n return (\n <div\n key={index}\n className={cn(\n \"h-full rounded-full transition-[width,height] flex-1\",\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && \"progress-shimmer\",\n \"progress_fill\",\n classNames?.fill,\n )}\n style={getStripedStyle(striped, isCompleted)}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\n// Line progress component\ninterface LineProgressProps extends Pick<ProgressProps, \"orientation\" | \"size\" | \"color\" | \"variant\" | \"label\" | \"showProgress\" | \"striped\" | \"animated\" | \"className\" | \"classNames\"> {\n clampedValue: number;\n progressLabel: string;\n}\n\nconst LineProgress: React.FC<LineProgressProps> = ({\n orientation = \"horizontal\",\n size = \"md\",\n color = \"primary\",\n variant = \"default\",\n label,\n showProgress = false,\n striped = false,\n animated = false,\n className,\n classNames,\n clampedValue,\n progressLabel,\n}) => {\n if (orientation === \"vertical\") {\n return (\n <div\n className={cn(\n \"h-full flex flex-col\",\n \"progress_root\",\n className,\n classNames?.root,\n )}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={progressLabel}\n >\n <ProgressLabel\n label={label}\n showProgress={showProgress}\n clampedValue={clampedValue}\n classNames={classNames}\n />\n <div\n className={cn(\n \"flex-1 rounded-full overflow-hidden flex flex-col justify-end\",\n getVerticalWidthClass(size),\n backgroundColorStyles[color][variant],\n \"progress_track\",\n classNames?.track,\n )}\n >\n <div\n className={cn(\n \"w-full transition-[width,height] duration-300 ease-in-out rounded-full\",\n barColorStyles[color][variant],\n animated && striped && \"progress-shimmer\",\n \"progress_fill\",\n classNames?.fill,\n )}\n style={{\n height: `${clampedValue}%`,\n ...getStripedStyle(striped),\n }}\n />\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={cn(\"w-full\", \"progress_root\", className, classNames?.root)}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={progressLabel}\n >\n <ProgressLabel\n label={label}\n showProgress={showProgress}\n clampedValue={clampedValue}\n classNames={classNames}\n />\n <div\n className={cn(\n progressContainerVariants({ size }),\n backgroundColorStyles[color][variant],\n \"progress_track\",\n classNames?.track,\n )}\n >\n <div\n className={cn(\n progressBarVariants({ size }),\n barColorStyles[color][variant],\n animated && striped && \"progress-shimmer\",\n \"progress_fill\",\n classNames?.fill,\n )}\n style={{\n width: `${clampedValue}%`,\n ...getStripedStyle(striped),\n }}\n />\n </div>\n </div>\n );\n};\n\n// Main Progress component - thin wrapper that delegates to sub-components\nconst Progress = React.memo<ProgressProps>(\n ({\n value,\n color = \"primary\",\n size = \"md\",\n circleSize: customCircleSize,\n strokeWidth: customStrokeWidth,\n variant = \"default\",\n type = \"line\",\n orientation = \"horizontal\",\n showProgress = false,\n label,\n striped = false,\n animated = false,\n className,\n classNames,\n totalSteps = 5,\n \"aria-label\": ariaLabel,\n }) => {\n const clampedValue = Math.min(Math.max(value, 0), 100);\n const progressLabel = ariaLabel || label || \"Progress\";\n\n if (type === \"circle\") {\n return (\n <CircleProgress\n size={size}\n circleSize={customCircleSize}\n strokeWidth={customStrokeWidth}\n color={color}\n variant={variant}\n label={label}\n className={className}\n classNames={classNames}\n clampedValue={clampedValue}\n progressLabel={progressLabel}\n />\n );\n }\n\n if (type === \"step\") {\n return (\n <StepProgress\n orientation={orientation}\n size={size}\n color={color}\n variant={variant}\n label={label}\n showProgress={showProgress}\n striped={striped}\n animated={animated}\n className={className}\n classNames={classNames}\n totalSteps={totalSteps}\n clampedValue={clampedValue}\n progressLabel={progressLabel}\n />\n );\n }\n\n return (\n <LineProgress\n orientation={orientation}\n size={size}\n color={color}\n variant={variant}\n label={label}\n showProgress={showProgress}\n striped={striped}\n animated={animated}\n className={className}\n classNames={classNames}\n clampedValue={clampedValue}\n progressLabel={progressLabel}\n />\n );\n },\n);\n\nProgress.displayName = \"Progress\";\n\nexport type * from \"./types\";\nexport default Progress;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/empty/index.tsx"],"names":[],"mappings":"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","file":"chunk-2WZVD7P3.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { InboxIcon } from 'lucide-react'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { EmptyProps } from './types'\n\nconst emptyContainerVariants = cva(\n 'flex flex-col items-center justify-center text-center',\n {\n variants: {\n size: {\n xs: 'py-4 px-2',\n sm: 'py-6 px-4',\n md: 'py-12 px-6',\n lg: 'py-16 px-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst emptyIconVariants = cva('text-text-secondary mb-4', {\n variants: {\n size: {\n xs: 'w-8 h-8',\n sm: 'w-12 h-12',\n md: 'w-16 h-16',\n lg: 'w-24 h-24',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyImageVariants = cva('mb-4 object-contain', {\n variants: {\n size: {\n xs: 'w-16 h-16',\n sm: 'w-24 h-24',\n md: 'w-32 h-32',\n lg: 'w-48 h-48',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyTitleVariants = cva('font-semibold text-text-primary mb-2', {\n variants: {\n size: {\n xs: 'text-sm',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyDescriptionVariants = cva('text-text-secondary', {\n variants: {\n size: {\n xs: 'text-[10px] max-w-[200px]',\n sm: 'text-xs max-w-xs',\n md: 'text-sm max-w-sm',\n lg: 'text-base max-w-md',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyActionsVariants = cva('mt-6 flex gap-2 flex-wrap justify-center', {\n variants: {\n size: {\n xs: 'mt-2',\n sm: 'mt-4',\n md: 'mt-6',\n lg: 'mt-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst Empty = React.memo<EmptyProps>(\n ({\n icon,\n image,\n imageAlt = 'Empty',\n title = 'No Data',\n description = 'There is no data to display',\n children,\n size = 'md',\n className,\n classNames,\n }) => {\n return (\n <div className={cn(\n 'empty_root',\n emptyContainerVariants({ size }),\n classNames?.root,\n className\n )}>\n {/* Image or Icon */}\n {image ? (\n <img\n src={image}\n alt={imageAlt}\n className={cn(\n 'empty_icon',\n emptyImageVariants({ size }),\n classNames?.icon\n )}\n />\n ) : (\n <div className={cn(\n 'empty_icon',\n emptyIconVariants({ size }),\n classNames?.icon\n )}>\n {icon || <InboxIcon className=\"size-full\" />}\n </div>\n )}\n\n {/* Title */}\n {title && (\n <h3 className={cn(\n 'empty_title',\n emptyTitleVariants({ size }),\n classNames?.title\n )}>\n {title}\n </h3>\n )}\n\n {/* Description */}\n {description && (\n <p className={cn(\n 'empty_description',\n emptyDescriptionVariants({ size }),\n classNames?.description\n )}>\n {description}\n </p>\n )}\n\n {/* Actions or Custom Content */}\n {children && (\n <div className={cn(\n 'empty_action',\n emptyActionsVariants({ size }),\n classNames?.action\n )}>\n {children}\n </div>\n )}\n </div>\n )\n },\n)\n\nEmpty.displayName = 'Empty'\n\nexport type * from './types'\nexport default Empty\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tree/index.tsx"],"names":[],"mappings":"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","file":"chunk-3BIV3QE2.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { Check, ChevronRight, Minus } from 'lucide-react'\nimport React from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport type { TreeNode, TreeProps } from './types'\n\nconst treeItemVariants = cva(\n 'flex items-center gap-2 px-2 rounded cursor-pointer select-none transition-colors duration-200 ease-out',\n {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'hover:bg-surface',\n },\n selected: {\n true: 'bg-primary/10 text-primary',\n false: 'text-text-primary',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n selected: false,\n },\n },\n)\n\nconst Tree = React.memo<TreeProps>(\n ({\n data,\n defaultExpandedKeys = [],\n expandedKeys,\n onExpand,\n checkable = false,\n checkedKeys,\n defaultCheckedKeys = [],\n onCheck,\n selectable = true,\n selectedKeys,\n defaultSelectedKeys = [],\n onSelect,\n disabled = false,\n size = 'md',\n showLine = false,\n showIcon = true,\n defaultExpandAll = false,\n className,\n classNames,\n }) => {\n const [internalExpandedKeys, setInternalExpandedKeys] = React.useState<\n string[]\n >(defaultExpandAll ? getAllKeys(data) : defaultExpandedKeys)\n const [internalCheckedKeys, setInternalCheckedKeys] =\n React.useState<string[]>(defaultCheckedKeys)\n const [internalSelectedKeys, setInternalSelectedKeys] =\n React.useState<string[]>(defaultSelectedKeys)\n\n const currentExpandedKeys =\n expandedKeys !== undefined ? expandedKeys : internalExpandedKeys\n const currentCheckedKeys =\n checkedKeys !== undefined ? checkedKeys : internalCheckedKeys\n const currentSelectedKeys =\n selectedKeys !== undefined ? selectedKeys : internalSelectedKeys\n\n function getAllKeys(nodes: TreeNode[]): string[] {\n const keys: string[] = []\n const traverse = (items: TreeNode[]) => {\n items.forEach((item) => {\n keys.push(item.key)\n if (item.children) {\n traverse(item.children)\n }\n })\n }\n traverse(nodes)\n return keys\n }\n\n const getAllLeafKeys = React.useCallback((node: TreeNode): string[] => {\n const keys: string[] = []\n\n const traverse = (n: TreeNode) => {\n if (!n.children || n.children.length === 0 || n.isLeaf) {\n keys.push(n.key)\n } else {\n n.children.forEach((child) => traverse(child))\n }\n }\n\n traverse(node)\n return keys\n }, [])\n\n const getNodeByKey = React.useCallback(\n (key: string): TreeNode | null => {\n const traverse = (nodes: TreeNode[]): TreeNode | null => {\n for (const node of nodes) {\n if (node.key === key) return node\n if (node.children) {\n const found = traverse(node.children)\n if (found) return found\n }\n }\n return null\n }\n return traverse(data)\n },\n [data],\n )\n\n const getCheckedNodes = React.useCallback(\n (keys: string[]): TreeNode[] => {\n return keys\n .map((key) => getNodeByKey(key))\n .filter((node): node is TreeNode => node !== null)\n },\n [getNodeByKey],\n )\n\n const getCheckState = React.useCallback(\n (node: TreeNode): { checked: boolean; indeterminate: boolean } => {\n if (!node.children || node.children.length === 0 || node.isLeaf) {\n return {\n checked: currentCheckedKeys.includes(node.key),\n indeterminate: false,\n }\n }\n\n const leafKeys = getAllLeafKeys(node)\n const checkedCount = leafKeys.filter((key) =>\n currentCheckedKeys.includes(key),\n ).length\n\n return {\n checked: checkedCount === leafKeys.length && leafKeys.length > 0,\n indeterminate: checkedCount > 0 && checkedCount < leafKeys.length,\n }\n },\n [currentCheckedKeys, getAllLeafKeys],\n )\n\n const handleExpand = React.useCallback(\n (key: string) => {\n const newExpandedKeys = currentExpandedKeys.includes(key)\n ? currentExpandedKeys.filter((k) => k !== key)\n : [...currentExpandedKeys, key]\n\n if (expandedKeys === undefined) {\n setInternalExpandedKeys(newExpandedKeys)\n }\n onExpand?.(newExpandedKeys)\n },\n [currentExpandedKeys, expandedKeys, onExpand],\n )\n\n const handleCheck = React.useCallback(\n (node: TreeNode, checked: boolean) => {\n if (disabled || node.disabled) return\n\n const leafKeys = getAllLeafKeys(node)\n let newCheckedKeys: string[]\n\n if (checked) {\n // Add all leaf keys that aren't already checked\n const keysToAdd = leafKeys.filter(\n (key) => !currentCheckedKeys.includes(key),\n )\n newCheckedKeys = [...currentCheckedKeys, ...keysToAdd]\n } else {\n // Remove all leaf keys\n newCheckedKeys = currentCheckedKeys.filter(\n (key) => !leafKeys.includes(key),\n )\n }\n\n if (checkedKeys === undefined) {\n setInternalCheckedKeys(newCheckedKeys)\n }\n\n const checkedNodes = getCheckedNodes(newCheckedKeys)\n onCheck?.(newCheckedKeys, {\n checked,\n node,\n checkedNodes,\n })\n },\n [\n disabled,\n getAllLeafKeys,\n currentCheckedKeys,\n checkedKeys,\n onCheck,\n getCheckedNodes,\n ],\n )\n\n const handleSelect = React.useCallback(\n (node: TreeNode) => {\n if (disabled || node.disabled || !selectable) return\n\n const isSelected = currentSelectedKeys.includes(node.key)\n const newSelectedKeys = isSelected\n ? currentSelectedKeys.filter((k) => k !== node.key)\n : [...currentSelectedKeys, node.key]\n\n if (selectedKeys === undefined) {\n setInternalSelectedKeys(newSelectedKeys)\n }\n\n onSelect?.(newSelectedKeys, {\n selected: !isSelected,\n node,\n })\n },\n [disabled, selectable, currentSelectedKeys, selectedKeys, onSelect],\n )\n\n const flattenTree = React.useCallback(\n (\n nodes: TreeNode[],\n level: number = 0,\n ): Array<{ node: TreeNode; level: number }> => {\n const result: Array<{ node: TreeNode; level: number }> = []\n\n nodes.forEach((node) => {\n result.push({ node, level })\n\n const hasChildren =\n node.children && node.children.length > 0 && !node.isLeaf\n const isExpanded = currentExpandedKeys.includes(node.key)\n\n if (hasChildren && isExpanded) {\n result.push(...flattenTree(node.children!, level + 1))\n }\n })\n\n return result\n },\n [currentExpandedKeys],\n )\n\n const flatNodes = React.useMemo(\n () => flattenTree(data),\n [data, flattenTree],\n )\n\n const renderNode = React.useCallback(\n (\n item: { node: TreeNode; level: number },\n index: number,\n ): React.ReactNode => {\n const { node, level } = item\n const hasChildren =\n node.children && node.children.length > 0 && !node.isLeaf\n const isExpanded = currentExpandedKeys.includes(node.key)\n const isSelected = currentSelectedKeys.includes(node.key)\n const checkState = checkable ? getCheckState(node) : null\n\n return (\n <div\n key={node.key}\n className={cn(\n 'tree_node',\n 'relative animate-in fade-in slide-in-from-top-1 duration-200',\n classNames?.node,\n )}\n >\n <div\n className={cn(\n 'tree_nodeContent',\n treeItemVariants({\n size,\n disabled: !!node.disabled,\n selected: checkable ? false : isSelected,\n }),\n className,\n classNames?.nodeContent,\n )}\n >\n {/* Indentation units with vertical lines */}\n {Array.from({ length: level }).map((_, i) => {\n // Check if this indent level should have a vertical line\n const shouldDrawLine =\n showLine &&\n flatNodes.slice(index + 1).some((n) => n.level === i)\n\n return (\n <span\n key={i}\n className=\"relative inline-block w-4 h-6 shrink-0\"\n >\n {/* Vertical line connecting siblings */}\n {shouldDrawLine && (\n <span className=\"absolute top-0 left-1/2 bottom-0 h-full border-l border-border -translate-x-px\" />\n )}\n </span>\n )\n })}\n\n {/* Expand/Collapse Icon */}\n {hasChildren ? (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n handleExpand(node.key)\n }}\n className={cn(\n 'tree_expandIcon',\n 'shrink-0 hover:text-primary transition-colors duration-200',\n classNames?.expandIcon,\n )}\n disabled={disabled || node.disabled}\n >\n <ChevronRight\n className={cn(\n iconSizes[size],\n 'transition-transform duration-300 ease-out',\n isExpanded && 'rotate-90',\n )}\n />\n </button>\n ) : (\n <span className={cn('shrink-0', iconSizes[size])} />\n )}\n\n {/* Checkbox */}\n {checkable && (\n <div\n role=\"checkbox\"\n tabIndex={disabled || node.disabled ? -1 : 0}\n aria-checked={checkState?.indeterminate ? 'mixed' : checkState?.checked}\n onClick={(e) => {\n e.stopPropagation()\n handleCheck(node, !checkState?.checked)\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n e.stopPropagation()\n handleCheck(node, !checkState?.checked)\n }\n }}\n className={cn(\n 'w-4 h-4 border rounded flex items-center justify-center shrink-0 cursor-pointer transition-[colors,transform] duration-200',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1',\n checkState?.checked\n ? 'bg-primary border-primary'\n : 'border-border',\n (disabled || node.disabled) &&\n 'opacity-50 cursor-not-allowed',\n )}\n >\n {checkState?.checked && (\n <Check className=\"h-3 w-3 text-background animate-in zoom-in-50 duration-200\" />\n )}\n {checkState?.indeterminate && !checkState?.checked && (\n <Minus className=\"h-3 w-3 text-primary animate-in zoom-in-50 duration-200\" />\n )}\n </div>\n )}\n\n {/* Icon */}\n {showIcon && node.icon && (\n <span\n className={cn('tree_icon', 'shrink-0', classNames?.icon)}\n >\n {node.icon}\n </span>\n )}\n\n {/* Label */}\n <span\n onClick={() => {\n if (checkable) {\n handleCheck(node, !checkState?.checked)\n } else {\n handleSelect(node)\n }\n }}\n className={cn('tree_label', 'flex-1 truncate', classNames?.label)}\n >\n {node.label}\n </span>\n </div>\n </div>\n )\n },\n [\n currentExpandedKeys,\n currentSelectedKeys,\n checkable,\n getCheckState,\n size,\n className,\n classNames,\n disabled,\n handleExpand,\n handleCheck,\n handleSelect,\n showIcon,\n showLine,\n flatNodes,\n ],\n )\n\n return (\n <div className={cn('tree_root', 'w-full', className, classNames?.root)}>\n {flatNodes.map((item, index) => renderNode(item, index))}\n </div>\n )\n },\n)\n\nTree.displayName = 'Tree'\n\nexport type * from './types'\nexport default Tree\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/upload/utils.ts","../src/upload/index.tsx"],"names":["UploadIcon","ImageIcon"],"mappings":"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","file":"chunk-3BZE6BBJ.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { UploadFile } from './types'\n\nexport const uploadButtonVariants = cva(\n 'inline-flex cursor-pointer outline-none border items-center justify-center gap-2 font-medium rounded-md disabled:opacity-50 disabled:cursor-not-allowed transition-colors',\n {\n variants: {\n color: {\n primary: 'border-primary text-white bg-primary hover:bg-primary/90',\n secondary:\n 'border-secondary text-white bg-secondary hover:bg-secondary/90',\n success: 'border-success text-white bg-success hover:bg-success/90',\n error: 'border-error text-white bg-error hover:bg-error/90',\n accent: 'border-accent text-white bg-accent hover:bg-accent/90',\n warning: 'border-warning text-white bg-warning hover:bg-warning/90',\n info: 'border-info text-white bg-info hover:bg-info/90',\n },\n size: {\n xs: 'h-(--button-height-xs) px-(--button-padding-x-xs) text-xs',\n sm: 'h-(--button-height-sm) px-(--button-padding-x-sm) text-sm',\n md: 'h-(--button-height-md) px-(--button-padding-x-md) text-base',\n lg: 'h-(--button-height-lg) px-(--button-padding-x-lg) text-lg',\n },\n },\n defaultVariants: {\n color: 'primary',\n size: 'md',\n },\n },\n)\n\nexport const uploadDropzoneVariants = cva(\n 'relative border-2 border-dashed rounded-lg transition-[colors,border-color] duration-200 cursor-pointer',\n {\n variants: {\n status: {\n default:\n 'border-border bg-surface/50 hover:border-primary hover:bg-primary/5',\n dragActive: 'border-primary bg-primary/10',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'p-2',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const uploadDraggerVariants = cva(\n 'relative border-2 border-dashed rounded-lg transition-[colors,border-color] duration-200 cursor-pointer flex flex-col items-center justify-center gap-2',\n {\n variants: {\n status: {\n default:\n 'border-border bg-surface/50 hover:border-primary hover:bg-primary/5',\n dragActive: 'border-primary bg-primary/10 scale-[1.02]',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'min-h-[100px] p-3',\n sm: 'min-h-[120px] p-4',\n md: 'min-h-[160px] p-6',\n lg: 'min-h-[200px] p-8',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const uploadAvatarVariants = cva(\n 'relative overflow-hidden rounded-full border-2 border-dashed cursor-pointer transition-[colors,border-color] duration-200 flex items-center justify-center',\n {\n variants: {\n status: {\n default: 'border-border bg-surface/50 hover:border-primary',\n dragActive: 'border-primary bg-primary/10',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'w-12 h-12',\n sm: 'w-16 h-16',\n md: 'w-24 h-24',\n lg: 'w-32 h-32',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const uploadPictureVariants = cva(\n 'relative overflow-hidden rounded-md border-2 border-dashed cursor-pointer transition-[colors,border-color] duration-200 flex items-center justify-center',\n {\n variants: {\n status: {\n default: 'border-border bg-surface/50 hover:border-primary',\n dragActive: 'border-primary bg-primary/10',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'w-16 h-16',\n sm: 'w-24 h-24',\n md: 'w-32 h-32',\n lg: 'w-40 h-40',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const formatFileSize = (bytes: number): string => {\n if (bytes === 0) return '0 Bytes'\n const k = 1024\n const sizes = ['Bytes', 'KB', 'MB', 'GB']\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i]\n}\n\nexport const getFileExtension = (filename: string): string => {\n return filename.slice(((filename.lastIndexOf('.') - 1) >>> 0) + 2)\n}\n\nexport const isImageFile = (file: File | UploadFile): boolean => {\n const type = file.type || ''\n return type.startsWith('image/')\n}\n\nexport const generateUID = (): string => {\n return `upload-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`\n}\n","'use client'\n\nimport {\n AlertCircle,\n CheckCircle,\n File,\n Image as ImageIcon,\n Loader2,\n Upload as UploadIcon,\n X,\n} from 'lucide-react'\nimport React from 'react'\n\nimport { useRipple, RippleContainer } from '../hooks/useRipple'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { UploadFile, UploadProps } from './types'\nimport {\n formatFileSize,\n generateUID,\n isImageFile,\n uploadAvatarVariants,\n uploadButtonVariants,\n uploadDraggerVariants,\n uploadDropzoneVariants,\n uploadPictureVariants,\n} from './utils'\n\nconst Upload = React.memo<UploadProps>(\n ({\n variant = 'button',\n size = 'md',\n color = 'primary',\n label,\n helperText,\n error,\n warning,\n info,\n success,\n accept,\n multiple = false,\n maxSize,\n maxCount,\n fileList,\n defaultFileList = [],\n showUploadList = true,\n listType = 'text',\n disabled = false,\n buttonText = 'Upload File',\n dragText = 'Click or drag file to this area to upload',\n dragHint = 'Support for a single or bulk upload',\n onChange,\n onRemove,\n beforeUpload,\n customRequest,\n onError,\n className,\n classNames,\n ref,\n ...props\n }) => {\n const [internalFileList, setInternalFileList] =\n React.useState<UploadFile[]>(defaultFileList)\n const [dragActive, setDragActive] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const prevFileListRef = React.useRef<UploadFile[]>([])\n const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled)\n\n const currentFileList = fileList !== undefined ? fileList : internalFileList\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const validateFile = React.useCallback(\n (file: File): string | null => {\n if (maxSize && file.size > maxSize) {\n return `File size exceeds ${formatFileSize(maxSize)}`\n }\n if (maxCount && currentFileList.length >= maxCount) {\n return `Maximum ${maxCount} file${maxCount > 1 ? 's' : ''} allowed`\n }\n return null\n },\n [maxSize, maxCount, currentFileList.length],\n )\n\n const handleFiles = React.useCallback(\n async (files: FileList | null) => {\n if (!files || files.length === 0) return\n\n const newFiles: UploadFile[] = []\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i]\n if (!file) continue\n\n // Validate file\n const validationError = validateFile(file)\n if (validationError) {\n onError?.(validationError, file)\n continue\n }\n\n // Check beforeUpload\n if (beforeUpload) {\n const shouldUpload = await beforeUpload(file)\n if (!shouldUpload) continue\n }\n\n const uploadFile: UploadFile = {\n uid: generateUID(),\n name: file.name,\n size: file.size,\n type: file.type,\n status: 'uploading',\n percent: 0,\n }\n\n // Add to list\n newFiles.push(uploadFile)\n\n // Handle upload\n if (customRequest) {\n customRequest({\n file,\n onProgress: (percent) => {\n setInternalFileList((prev) =>\n prev.map((f) =>\n f.uid === uploadFile.uid ? { ...f, percent } : f,\n ),\n )\n },\n onSuccess: (response) => {\n setInternalFileList((prev) =>\n prev.map((f) =>\n f.uid === uploadFile.uid\n ? {\n ...f,\n status: 'done' as const,\n percent: 100,\n response,\n }\n : f,\n ),\n )\n },\n onError: (err) => {\n setInternalFileList((prev) =>\n prev.map((f) =>\n f.uid === uploadFile.uid\n ? { ...f, status: 'error' as const, error: err }\n : f,\n ),\n )\n },\n })\n } else {\n // Create preview URL for images\n if (file && isImageFile(file)) {\n uploadFile.thumbUrl = URL.createObjectURL(file)\n }\n uploadFile.status = 'done'\n uploadFile.percent = 100\n }\n }\n\n const updatedList = multiple\n ? [...currentFileList, ...newFiles]\n : newFiles\n\n if (fileList === undefined) {\n setInternalFileList(updatedList)\n }\n onChange?.(updatedList)\n },\n [\n validateFile,\n beforeUpload,\n customRequest,\n onError,\n multiple,\n currentFileList,\n fileList,\n onChange,\n ],\n )\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files)\n // Reset input value to allow uploading the same file again\n e.target.value = ''\n },\n [handleFiles],\n )\n\n const handleRemove = React.useCallback(\n (file: UploadFile) => {\n // Revoke object URL to prevent memory leak\n if (file.thumbUrl?.startsWith('blob:')) {\n URL.revokeObjectURL(file.thumbUrl)\n }\n const updatedList = currentFileList.filter((f) => f.uid !== file.uid)\n if (fileList === undefined) {\n setInternalFileList(updatedList)\n }\n onRemove?.(file)\n onChange?.(updatedList)\n },\n [currentFileList, fileList, onRemove, onChange],\n )\n\n /**\n * Track fileList changes and revoke blob URLs for removed files.\n * This handles the case where a controlled fileList prop is updated\n * externally without calling handleRemove.\n */\n React.useEffect(() => {\n const prevFileList = prevFileListRef.current\n\n // Find files that were removed (existed in prev but not in current)\n prevFileList.forEach((prevFile) => {\n const stillExists = currentFileList.some((file) => file.uid === prevFile.uid)\n if (!stillExists && prevFile.thumbUrl?.startsWith('blob:')) {\n URL.revokeObjectURL(prevFile.thumbUrl)\n }\n })\n\n // Update ref for next comparison\n prevFileListRef.current = currentFileList\n }, [currentFileList])\n\n /**\n * Cleanup object URLs on component unmount to prevent memory leaks.\n */\n React.useEffect(() => {\n return () => {\n // Use ref to get the latest fileList at unmount time\n prevFileListRef.current.forEach((file) => {\n if (file.thumbUrl?.startsWith('blob:')) {\n URL.revokeObjectURL(file.thumbUrl)\n }\n })\n }\n }, [])\n\n const handleClick = React.useCallback(() => {\n if (!disabled) {\n inputRef.current?.click()\n }\n }, [disabled])\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n inputRef.current?.click()\n }\n },\n [disabled],\n )\n\n const handleDragEnter = React.useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(true)\n }, [])\n\n const handleDragLeave = React.useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(false)\n }, [])\n\n const handleDragOver = React.useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }, [])\n\n const handleDrop = React.useCallback(\n (e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(false)\n\n if (!disabled) {\n handleFiles(e.dataTransfer.files)\n }\n },\n [disabled, handleFiles],\n )\n\n const renderFileList = () => {\n if (!showUploadList || currentFileList.length === 0) return null\n\n if (listType === 'picture-card') {\n return (\n <div\n data-slot=\"upload_fileList\"\n className={cn('upload_fileList', 'flex flex-wrap gap-2 mt-2', classNames?.fileList)}\n >\n {currentFileList.map((file) => (\n <div\n key={file.uid}\n data-slot=\"upload_fileItem\"\n className={cn(\n 'upload_fileItem',\n 'relative w-24 h-24 rounded-md border border-border overflow-hidden group',\n classNames?.fileItem,\n )}\n >\n {file.thumbUrl ? (\n <img\n src={file.thumbUrl}\n alt={file.name}\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <div className=\"w-full h-full flex items-center justify-center bg-surface\">\n <File className=\"w-8 h-8 text-text-secondary\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center\">\n <button\n type=\"button\"\n onClick={() => handleRemove(file)}\n className=\"text-white hover:text-error transition-colors\"\n >\n <X className={iconSizes[size]} />\n </button>\n </div>\n {file.status === 'uploading' && (\n <div className=\"absolute inset-0 bg-black/30 flex items-center justify-center\">\n <Loader2 className=\"w-6 h-6 text-white animate-spin\" />\n </div>\n )}\n </div>\n ))}\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"upload_fileList\"\n className={cn('upload_fileList', 'mt-2 space-y-1', classNames?.fileList)}\n >\n {currentFileList.map((file) => (\n <div\n key={file.uid}\n data-slot=\"upload_fileItem\"\n className={cn(\n 'upload_fileItem',\n 'flex items-center justify-between p-2 rounded-md bg-surface hover:bg-surface/80 transition-colors',\n classNames?.fileItem,\n )}\n >\n <div className=\"flex items-center gap-2 flex-1 min-w-0\">\n {listType === 'picture' && file.thumbUrl ? (\n <img\n src={file.thumbUrl}\n alt={file.name}\n className=\"w-8 h-8 rounded object-cover\"\n />\n ) : (\n <File\n className={cn('text-text-secondary shrink-0', iconSizes[size])}\n />\n )}\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm text-text-primary truncate\">\n {file.name}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {formatFileSize(file.size)}\n {file.status === 'uploading' &&\n file.percent !== undefined && (\n <span> - {file.percent}%</span>\n )}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n {file.status === 'uploading' && (\n <Loader2\n className={cn('text-primary animate-spin', iconSizes[size])}\n />\n )}\n {file.status === 'done' && (\n <CheckCircle\n className={cn('text-success', iconSizes[size])}\n />\n )}\n {file.status === 'error' && (\n <AlertCircle className={cn('text-error', iconSizes[size])} />\n )}\n <button\n type=\"button\"\n onClick={() => handleRemove(file)}\n className=\"text-text-secondary hover:text-error transition-colors\"\n >\n <X className={iconSizes[size]} />\n </button>\n </div>\n </div>\n ))}\n </div>\n )\n }\n\n const currentFile = currentFileList[0]\n\n const renderUploadArea = () => {\n const dragStatus = dragActive\n ? 'dragActive'\n : disabled\n ? 'disabled'\n : status === 'error'\n ? 'error'\n : 'default'\n\n switch (variant) {\n case 'button':\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n onPointerDown={ripplePointerDown}\n onKeyDown={rippleKeyDown}\n disabled={disabled}\n data-slot=\"upload_dropzone\"\n className={cn(\n 'upload_dropzone',\n uploadButtonVariants({ color, size }),\n 'relative overflow-hidden',\n classNames?.dropzone,\n className,\n )}\n >\n <UploadIcon\n data-slot=\"upload_icon\"\n className={cn('upload_icon', iconSizes[size], classNames?.icon)}\n />\n <span\n data-slot=\"upload_text\"\n className={cn('upload_text', classNames?.text)}\n >\n {buttonText}\n </span>\n <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </button>\n )\n\n case 'dropzone':\n return (\n <div\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label={`Upload file${multiple ? 's' : ''}`}\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n data-slot=\"upload_dropzone\"\n className={cn(\n 'upload_dropzone',\n uploadDropzoneVariants({ status: dragStatus, size }),\n 'focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none',\n classNames?.dropzone,\n className,\n )}\n >\n <div className=\"flex items-center gap-3\">\n <UploadIcon\n data-slot=\"upload_icon\"\n className={cn(\n 'upload_icon',\n 'text-text-secondary',\n iconSizes[size],\n classNames?.icon,\n )}\n />\n <div>\n <p\n data-slot=\"upload_text\"\n className={cn(\n 'upload_text',\n 'text-sm text-text-primary font-medium',\n classNames?.text,\n )}\n >\n {dragText}\n </p>\n {dragHint && (\n <p\n data-slot=\"upload_hint\"\n className={cn(\n 'upload_hint',\n 'text-xs text-text-secondary mt-0.5',\n classNames?.hint,\n )}\n >\n {dragHint}\n </p>\n )}\n </div>\n </div>\n </div>\n )\n\n case 'dragger':\n return (\n <div\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label={`Upload file${multiple ? 's' : ''}`}\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n data-slot=\"upload_dropzone\"\n className={cn(\n 'upload_dropzone',\n uploadDraggerVariants({ status: dragStatus, size }),\n 'focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none',\n classNames?.dropzone,\n className,\n )}\n >\n <UploadIcon\n data-slot=\"upload_icon\"\n className={cn('upload_icon', 'w-10 h-10 text-primary', classNames?.icon)}\n />\n <p\n data-slot=\"upload_text\"\n className={cn(\n 'upload_text',\n 'text-base font-medium text-text-primary',\n classNames?.text,\n )}\n >\n {dragText}\n </p>\n {dragHint && (\n <p\n data-slot=\"upload_hint\"\n className={cn(\n 'upload_hint',\n 'text-sm text-text-secondary',\n classNames?.hint,\n )}\n >\n {dragHint}\n </p>\n )}\n </div>\n )\n\n case 'avatar':\n return (\n <div\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"Upload avatar image\"\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n data-slot=\"upload_dropzone\"\n className={cn(\n 'upload_dropzone',\n uploadAvatarVariants({ status: dragStatus, size }),\n 'focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none',\n classNames?.dropzone,\n className,\n )}\n >\n {currentFile?.thumbUrl ? (\n <img\n src={currentFile.thumbUrl}\n alt=\"avatar\"\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <ImageIcon\n data-slot=\"upload_icon\"\n className={cn(\n 'upload_icon',\n 'w-8 h-8 text-text-secondary',\n classNames?.icon,\n )}\n />\n )}\n </div>\n )\n\n case 'picture':\n return (\n <div\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"Upload picture\"\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n data-slot=\"upload_dropzone\"\n className={cn(\n 'upload_dropzone',\n uploadPictureVariants({ status: dragStatus, size }),\n 'focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none',\n classNames?.dropzone,\n className,\n )}\n >\n {currentFile?.thumbUrl ? (\n <img\n src={currentFile.thumbUrl}\n alt=\"preview\"\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <ImageIcon\n data-slot=\"upload_icon\"\n className={cn(\n 'upload_icon',\n 'w-8 h-8 text-text-secondary',\n classNames?.icon,\n )}\n />\n )}\n </div>\n )\n\n default:\n return null\n }\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"upload_root\"\n className={cn('upload_root', 'w-full', classNames?.root)}\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleInputChange}\n disabled={disabled}\n data-slot=\"upload_input\"\n className={cn('upload_input', 'hidden', classNames?.input)}\n {...props}\n />\n\n {label && (\n <label className=\"block mb-1\">\n <span className=\"text-sm font-medium text-text-secondary\">{label}</span>\n </label>\n )}\n\n {renderUploadArea()}\n {renderFileList()}\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nUpload.displayName = 'Upload'\n\nexport type { UploadClassNames } from './types'\nexport type * from './types'\nexport default Upload\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/clipboard/index.tsx"],"names":[],"mappings":";;;;;;;;AAWA,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,iPAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gEAAA;AAAA,IACT,KAAA,EAAO,gEAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,+DAAA;AAAA,IACT,KAAA,EAAO,+DAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EACE,qEAAA;AAAA,IACF,KAAA,EACE,qEAAA;AAAA,IACF,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,4DAAA;AAAA,IACT,KAAA,EAAO,4DAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,+DAAA;AAAA,IACT,KAAA,EAAO,+DAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,yDAAA;AAAA,IACT,KAAA,EAAO,yDAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,+DAAA;AAAA,IACT,KAAA,EAAO,+DAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,sDAAA;AAAA,IACT,KAAA,EAAO,sDAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,YAAY,KAAA,CAAM,IAAA;AAAA,EACtB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,SAAA,GAAY,IAAA;AAAA,IACZ,eAAA,GAAkB,GAAA;AAAA,IAClB,QAAA,GAAW,KAAA;AAAA,IACX,MAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,IAAA,MAAM,QAAA,GAAW,OAA6C,IAAI,CAAA;AAClE,IAAA,MAAM,EAAE,OAAA,EAAS,aAAA,EAAe,iBAAA,EAAmB,SAAA,EAAW,aAAA,EAAe,cAAA,EAAgB,kBAAA,EAAmB,GAAI,SAAA,CAAU,CAAC,QAAQ,CAAA;AAGvI,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,SAAS,OAAA,EAAS;AACpB,UAAA,YAAA,CAAa,SAAS,OAAO,CAAA;AAAA,QAC/B;AAAA,MACF,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,aAAa,YAAY;AAC7B,MAAA,IAAI,QAAA,EAAU;AAEd,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,KAAK,CAAA;AACzC,QAAA,SAAA,CAAU,IAAI,CAAA;AACd,QAAA,MAAA,IAAS;AAGT,QAAA,IAAI,SAAS,OAAA,EAAS;AACpB,UAAA,YAAA,CAAa,SAAS,OAAO,CAAA;AAAA,QAC/B;AAEA,QAAA,QAAA,CAAS,OAAA,GAAU,WAAW,MAAM;AAClC,UAAA,SAAA,CAAU,KAAK,CAAA;AAAA,QACjB,GAAG,eAAe,CAAA;AAAA,MACpB,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA2B;AAChD,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,UAAA,EAAW;AAAA,MACb;AAAA,IACF,CAAA;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,WAAW,EAAA,GAAK,CAAA;AAAA,QAC1B,OAAA,EAAS,UAAA;AAAA,QACT,aAAA,EAAe,iBAAA;AAAA,QACf,SAAA,EAAW,CAAC,CAAA,KAAM;AAAE,UAAA,aAAA,CAAc,CAAC,CAAA;AAAG,UAAA,aAAA,CAAc,CAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QACxD,cACE,MAAA,GACI,qBAAA,GACA,CAAA,KAAA,EAAQ,SAAA,GAAY,QAAQ,cAAc,CAAA,CAAA;AAAA,QAEhD,eAAA,EAAe,QAAA;AAAA,QACf,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,UAC1B,WAAA,CAAY,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,UAC1B,sBAAsB,KAAK,CAAA;AAAA,UAC3B,QAAA,IAAY,+BAAA;AAAA,UACZ,CAAC,SAAA,IAAa,8BAAA;AAAA,UACd,gBAAA;AAAA,UACA,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,WAAA,EAAU,MAAA;AAAA,QAET,QAAA,EAAA;AAAA,UAAA,SAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,oCAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,WAAA,EAAU,OAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,MAAA,mBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,UAAU,IAAI,CAAA;AAAA,gBACd,8DAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,WAAA,EAAU;AAAA;AAAA,WACZ,mBAEA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,UAAU,IAAI,CAAA;AAAA,gBACd,2BAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,WAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BAEF,GAAA,CAAC,eAAA,EAAA,EAAgB,OAAA,EAAkB,cAAA,EAAgB,kBAAA,EAAoB;AAAA;AAAA;AAAA,KACzE;AAAA,EAEJ;AACF,CAAA;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AAGxB,IAAO,iBAAA,GAAQ","file":"chunk-3PWILVOE.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 { useRipple, RippleContainer } from \"../hooks/useRipple\";\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 cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background relative overflow-hidden\",\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 const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled);\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 onPointerDown={ripplePointerDown}\n onKeyDown={(e) => { rippleKeyDown(e); handleKeyDown(e); }}\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 <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </div>\n );\n },\n);\n\nClipboard.displayName = \"Clipboard\";\n\nexport type * from \"./types\";\nexport default Clipboard;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/grid/index.tsx"],"names":[],"mappings":";;;;AAMA,IAAM,YAAA,GAAe,IAAI,aAAA,EAAe;AAAA,EACtC,QAAA,EAAU;AAAA,IACR,GAAA,EAAK;AAAA,MACH,EAAA,EAAI,OAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,OAAA,EAAS;AAAA,MACP,CAAA,EAAG,aAAA;AAAA,MACH,CAAA,EAAG,4BAAA;AAAA,MACH,CAAA,EAAG,2CAAA;AAAA,MACH,CAAA,EAAG,2CAAA;AAAA,MACH,CAAA,EAAG,2CAAA;AAAA,MACH,CAAA,EAAG;AAAA;AACL,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,GAAA,EAAK,IAAA;AAAA,IACL,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAED,IAAM,IAAA,GAA4B,CAAC,EAAE,QAAA,EAAU,UAAU,CAAA,EAAG,GAAA,GAAM,IAAA,EAAM,SAAA,EAAU,KAAM;AACtF,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,MAAA,EAAO,WAAW,EAAA,CAAG,WAAA,EAAa,YAAA,CAAa,EAAE,KAAK,OAAA,EAAS,CAAA,EAAG,SAAS,GACvF,QAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAGnB,IAAO,YAAA,GAAQ","file":"chunk-4FFVNUTK.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { GridProps } from './types'\n\nconst gridVariants = cva('w-full grid', {\n variants: {\n gap: {\n xs: 'gap-2',\n sm: 'gap-4',\n md: 'gap-6',\n lg: 'gap-8',\n },\n columns: {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n 5: 'grid-cols-1 md:grid-cols-3 lg:grid-cols-5',\n 6: 'grid-cols-1 md:grid-cols-3 lg:grid-cols-6',\n },\n },\n defaultVariants: {\n gap: 'md',\n columns: 3,\n },\n})\n\nconst Grid: React.FC<GridProps> = ({ children, columns = 3, gap = 'md', className }) => {\n return (\n <div data-slot=\"root\" className={cn('grid_root', gridVariants({ gap, columns }), className)}>\n {children}\n </div>\n )\n}\n\nGrid.displayName = 'Grid'\n\nexport type * from './types'\nexport default Grid\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/breadcrumbs/index.tsx"],"names":[],"mappings":"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","file":"chunk-64NHVOZS.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { ChevronRight, MoreHorizontal, MoreVertical } from 'lucide-react'\nimport React from 'react'\n\nimport Dropdown from '../dropdown'\nimport { cn, iconSizes } from '../utils'\nimport { textColorVariants } from '../variants'\nimport type {\n BreadcrumbEllipsisProps,\n BreadcrumbItemProps,\n BreadcrumbLinkProps,\n BreadcrumbListProps,\n BreadcrumbPageProps,\n BreadcrumbProps,\n BreadcrumbsColor,\n BreadcrumbSeparatorProps,\n BreadcrumbsSize,\n} from './types'\n\nexport type { BreadcrumbItemData } from './types'\n\ninterface BreadcrumbContextValue {\n color?: BreadcrumbsColor\n size?: BreadcrumbsSize\n classNames?: {\n list?: string\n item?: string\n link?: string\n separator?: string\n current?: string\n }\n}\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValue>({})\n\nconst breadcrumbVariants = cva('', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst Breadcrumb = React.memo<BreadcrumbProps>(\n ({\n children,\n items,\n color = 'default',\n size = 'md',\n separator,\n className,\n classNames,\n }) => {\n const content = items?.length ? (\n <BreadcrumbList>\n {items.map((item, index) => {\n const isLast = index === items.length - 1\n return (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n {item.ellipsis ? (\n <BreadcrumbEllipsis\n orientation={item.ellipsisOrientation || 'horizontal'}\n items={item.ellipsisItems || []}\n size={size}\n />\n ) : isLast ? (\n <BreadcrumbPage\n leftIcon={item.leftIcon}\n rightIcon={item.rightIcon}\n >\n {item.label}\n </BreadcrumbPage>\n ) : (\n <BreadcrumbLink\n href={item.href || ''}\n onClick={item.onClick}\n leftIcon={item.leftIcon}\n rightIcon={item.rightIcon}\n >\n {item.label}\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {!isLast && (\n <BreadcrumbSeparator size={size}>\n {separator}\n </BreadcrumbSeparator>\n )}\n </React.Fragment>\n )\n })}\n </BreadcrumbList>\n ) : (\n children\n )\n\n return (\n <BreadcrumbContext.Provider value={{ color, size, classNames }}>\n <nav\n aria-label=\"breadcrumb\"\n className={cn(\n 'breadcrumbs_root',\n breadcrumbVariants({ size }),\n textColorVariants({ color }),\n classNames?.root,\n className,\n )}\n >\n {content}\n </nav>\n </BreadcrumbContext.Provider>\n )\n },\n)\n\nBreadcrumb.displayName = 'Breadcrumb'\n\nexport const BreadcrumbList = React.memo<BreadcrumbListProps>(\n ({ children, className }) => {\n const { classNames } = React.useContext(BreadcrumbContext)\n\n return (\n <ol\n className={cn(\n 'breadcrumbs_list',\n 'flex items-center gap-1.5',\n classNames?.list,\n className,\n )}\n >\n {children}\n </ol>\n )\n },\n)\n\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nexport const BreadcrumbItem = React.memo<BreadcrumbItemProps>(\n ({ children, className }) => {\n const { classNames } = React.useContext(BreadcrumbContext)\n\n return (\n <li\n className={cn(\n 'breadcrumbs_item',\n 'inline-flex items-center gap-1.5',\n classNames?.item,\n className,\n )}\n >\n {children}\n </li>\n )\n },\n)\n\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nexport const BreadcrumbLink = React.memo<BreadcrumbLinkProps>(\n ({ children, href, onClick, leftIcon, rightIcon, className }) => {\n const { classNames } = React.useContext(BreadcrumbContext)\n\n const handleClick = (e: React.MouseEvent) => {\n if (onClick) {\n e.preventDefault()\n onClick()\n }\n }\n\n const content = (\n <>\n {leftIcon && (\n <span className=\"inline-flex items-center\">{leftIcon}</span>\n )}\n {children}\n {rightIcon && (\n <span className=\"inline-flex items-center\">{rightIcon}</span>\n )}\n </>\n )\n\n const linkClasses = cn(\n 'breadcrumbs_link',\n 'inline-flex items-center gap-1.5 transition-colors hover:underline cursor-pointer',\n classNames?.link,\n className,\n )\n\n if (href) {\n return (\n <a\n href={href}\n onClick={handleClick}\n className={linkClasses}\n >\n {content}\n </a>\n )\n }\n\n if (onClick) {\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n className={linkClasses}\n >\n {content}\n </button>\n )\n }\n\n return (\n <span\n className={cn(\n 'breadcrumbs_link',\n 'inline-flex items-center gap-1.5',\n classNames?.link,\n className,\n )}\n >\n {content}\n </span>\n )\n },\n)\n\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nexport const BreadcrumbPage = React.memo<BreadcrumbPageProps>(\n ({ children, leftIcon, rightIcon, className }) => {\n const { classNames } = React.useContext(BreadcrumbContext)\n\n return (\n <span\n aria-current=\"page\"\n className={cn(\n 'breadcrumbs_current',\n 'inline-flex items-center gap-1.5 font-medium',\n classNames?.current,\n className,\n )}\n >\n {leftIcon && (\n <span className=\"inline-flex items-center\">{leftIcon}</span>\n )}\n {children}\n {rightIcon && (\n <span className=\"inline-flex items-center\">{rightIcon}</span>\n )}\n </span>\n )\n },\n)\n\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nexport const BreadcrumbSeparator = React.memo<BreadcrumbSeparatorProps>(\n ({ children, className, size = 'md' }) => {\n const { classNames } = React.useContext(BreadcrumbContext)\n\n return (\n <span\n className={cn(\n 'breadcrumbs_separator',\n 'text-text-secondary',\n classNames?.separator,\n className,\n )}\n >\n {children ?? <ChevronRight className={iconSizes[size]} />}\n </span>\n )\n },\n)\n\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\n/**\n * Validates URL to prevent open redirect vulnerabilities\n * Only allows relative URLs or same-origin URLs\n */\nconst isValidNavigationUrl = (href: string): boolean => {\n // Allow relative URLs starting with / or #\n if (href.startsWith('/') || href.startsWith('#') || href.startsWith('?')) {\n return true\n }\n\n // Block javascript: and other dangerous protocols\n const dangerousProtocols = ['javascript:', 'data:', 'vbscript:']\n const lowerHref = href.toLowerCase()\n if (dangerousProtocols.some(protocol => lowerHref.startsWith(protocol))) {\n return false\n }\n\n // For absolute URLs, verify same origin\n try {\n const url = new URL(href, window.location.origin)\n return url.origin === window.location.origin\n } catch {\n // If URL parsing fails, allow it (likely a relative URL)\n return true\n }\n}\n\nexport const BreadcrumbEllipsis = React.memo<BreadcrumbEllipsisProps>(\n ({ orientation = 'horizontal', items, children, className, size = 'md' }) => {\n const Icon = orientation === 'horizontal' ? MoreHorizontal : MoreVertical\n const isInteractive = !!(items?.length || children)\n\n const ellipsisButton = (\n <span\n role={isInteractive ? 'button' : 'presentation'}\n aria-hidden={isInteractive ? undefined : true}\n aria-label={isInteractive ? 'Show more breadcrumbs' : undefined}\n tabIndex={isInteractive ? 0 : undefined}\n className={cn(\n 'flex items-center justify-center',\n isInteractive && 'cursor-pointer',\n className,\n )}\n >\n <Icon className={iconSizes[size]} />\n <span className=\"sr-only\">More</span>\n </span>\n )\n\n // If items or children are provided, wrap in Dropdown\n if (items || children) {\n const dropdownItems = (items || []).map((item) => ({\n label: item.label || '',\n value: item.label || '',\n onClick:\n item.onClick ||\n (() => {\n // Validate URL before navigation to prevent open redirect\n if (item.href && isValidNavigationUrl(item.href)) {\n window.location.href = item.href\n }\n }),\n }))\n\n return <Dropdown items={dropdownItems}>{ellipsisButton}</Dropdown>\n }\n\n return ellipsisButton\n },\n)\n\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\nexport type * from './types'\nexport default Breadcrumb\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/drawer/index.tsx"],"names":["DrawerPrimitive"],"mappings":"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","file":"chunk-674JC24S.js","sourcesContent":["'use client'\n\nimport { cva } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport React, { createContext, useContext } from \"react\";\n\nimport { cn } from \"../utils\";\nimport type {\n ComposedDrawerProps,\n DrawerBodyProps,\n DrawerCloseProps,\n DrawerContentProps,\n DrawerDescriptionProps,\n DrawerDirection,\n DrawerFooterProps,\n DrawerHeaderProps,\n DrawerOverlayProps,\n DrawerProps,\n DrawerSize,\n DrawerTitleProps,\n DrawerTriggerProps,\n} from \"./types\";\n\n// Context to pass direction from Drawer to DrawerContent\nconst DrawerContext = createContext<{\n direction: DrawerDirection;\n}>({ direction: \"bottom\" });\n\nconst drawerContentVariants = cva(\n \"fixed bg-background border-border flex flex-col outline-none\",\n {\n variants: {\n direction: {\n bottom: \"bottom-0 left-0 right-0 border-t rounded-t-xl max-h-[96vh]\",\n top: \"top-0 left-0 right-0 border-b rounded-b-xl max-h-[96vh]\",\n left: \"left-0 top-0 bottom-0 border-r max-w-[96vw]\",\n right: \"right-0 top-0 bottom-0 border-l max-w-[96vw]\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n // Bottom/Top - height based\n { direction: \"bottom\", size: \"xs\", class: \"h-1/4\" },\n { direction: \"bottom\", size: \"sm\", class: \"h-1/3\" },\n { direction: \"bottom\", size: \"md\", class: \"h-1/2\" },\n { direction: \"bottom\", size: \"lg\", class: \"h-3/4\" },\n { direction: \"bottom\", size: \"full\", class: \"h-[96vh]\" },\n { direction: \"top\", size: \"xs\", class: \"h-1/4\" },\n { direction: \"top\", size: \"sm\", class: \"h-1/3\" },\n { direction: \"top\", size: \"md\", class: \"h-1/2\" },\n { direction: \"top\", size: \"lg\", class: \"h-3/4\" },\n { direction: \"top\", size: \"full\", class: \"h-[96vh]\" },\n // Left/Right - width based\n { direction: \"left\", size: \"xs\", class: \"w-64\" },\n { direction: \"left\", size: \"sm\", class: \"w-80\" },\n { direction: \"left\", size: \"md\", class: \"w-96\" },\n { direction: \"left\", size: \"lg\", class: \"w-[480px]\" },\n { direction: \"left\", size: \"full\", class: \"w-[96vw]\" },\n { direction: \"right\", size: \"xs\", class: \"w-64\" },\n { direction: \"right\", size: \"sm\", class: \"w-80\" },\n { direction: \"right\", size: \"md\", class: \"w-96\" },\n { direction: \"right\", size: \"lg\", class: \"w-[480px]\" },\n { direction: \"right\", size: \"full\", class: \"w-[96vw]\" },\n ],\n defaultVariants: {\n direction: \"bottom\",\n size: \"md\",\n },\n },\n);\n\n/**\n * Close button size classes\n */\nconst closeButtonSizeClasses: Record<DrawerSize, string> = {\n xs: \"top-2 right-2 p-1 [&_svg]:size-3.5\",\n sm: \"top-3 right-3 p-1.5 [&_svg]:size-4\",\n md: \"top-4 right-4 p-1.5 [&_svg]:size-4\",\n lg: \"top-4 right-4 p-2 [&_svg]:size-5\",\n full: \"top-5 right-5 p-2 [&_svg]:size-5\",\n};\n\n/**\n * Padding classes based on size\n */\nconst paddingClasses: Record<DrawerSize, string> = {\n xs: \"p-3\",\n sm: \"p-4\",\n md: \"p-5\",\n lg: \"p-6\",\n full: \"p-6\",\n};\n\nexport const Drawer = React.memo<DrawerProps>(\n ({\n open,\n onOpenChange,\n direction = \"bottom\",\n modal = true,\n dismissible = true,\n snapPoints,\n children,\n }) => {\n return (\n <DrawerContext.Provider value={{ direction }}>\n <DrawerPrimitive.Root\n open={open}\n onOpenChange={onOpenChange}\n direction={direction}\n modal={modal}\n dismissible={dismissible}\n snapPoints={snapPoints}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n },\n);\n\nDrawer.displayName = \"Drawer\";\n\nexport const DrawerTrigger = React.memo<DrawerTriggerProps>(\n ({ children, asChild = false, className, ref, ...props }) => {\n return (\n <DrawerPrimitive.Trigger\n ref={ref}\n asChild={asChild}\n className={className}\n data-slot=\"drawer-trigger\"\n {...props}\n >\n {children}\n </DrawerPrimitive.Trigger>\n );\n },\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n\nexport const DrawerPortal = DrawerPrimitive.Portal;\n\nexport const DrawerOverlay = React.memo<DrawerOverlayProps>(\n ({ className, ref, classNames, ...props }) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\n \"drawer_overlay\",\n \"fixed inset-0 z-50 bg-black/20 backdrop-blur-sm data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 duration-200\",\n classNames?.overlay,\n className,\n )}\n data-slot=\"drawer-overlay\"\n {...props}\n />\n ),\n);\n\nDrawerOverlay.displayName = \"DrawerOverlay\";\n\nexport const DrawerContent = React.memo<DrawerContentProps>(\n ({\n children,\n direction: directionProp,\n size = \"md\",\n showCloseButton = false,\n showHandle,\n className,\n ref,\n classNames,\n }) => {\n const { direction: contextDirection } = useContext(DrawerContext);\n const direction = directionProp ?? contextDirection;\n\n // Default showHandle based on direction\n const shouldShowHandle =\n showHandle ?? (direction === \"bottom\" || direction === \"top\");\n\n const isHorizontal = direction === \"left\" || direction === \"right\";\n\n return (\n <DrawerPortal>\n <DrawerOverlay classNames={classNames} />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"drawer_content\",\n drawerContentVariants({ direction, size }),\n paddingClasses[size],\n \"z-50\",\n classNames?.content,\n className,\n )}\n data-slot=\"drawer-content\"\n >\n {/* Handle for bottom drawer */}\n {shouldShowHandle && direction === \"bottom\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Handle for top drawer */}\n {shouldShowHandle && direction === \"top\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4 order-last mt-auto\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Handle for left drawer */}\n {shouldShowHandle && direction === \"left\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"absolute right-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Handle for right drawer */}\n {shouldShowHandle && direction === \"right\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"absolute left-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Close button */}\n {showCloseButton && (\n <DrawerPrimitive.Close\n className={cn(\n \"drawer_closeButton\",\n \"absolute rounded-md opacity-70 transition-opacity hover:opacity-100\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2\",\n \"text-text-secondary hover:text-text-primary hover:bg-surface\",\n closeButtonSizeClasses[size],\n classNames?.closeButton,\n )}\n data-slot=\"drawer-closeButton\"\n >\n <X />\n <span className=\"sr-only\">Close</span>\n </DrawerPrimitive.Close>\n )}\n\n {/* Content wrapper */}\n <div\n className={cn(\n \"drawer_wrapper\",\n \"flex flex-col flex-1 min-h-0\",\n isHorizontal && \"overflow-y-auto\",\n showCloseButton && \"pt-6\",\n classNames?.wrapper,\n )}\n data-slot=\"drawer-wrapper\"\n >\n {children}\n </div>\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n },\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nexport const DrawerHeader = React.memo<DrawerHeaderProps>(\n ({ children, className, ref, classNames, ...props }) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"drawer_header\",\n \"flex flex-col gap-1.5 mb-4 shrink-0\",\n classNames?.header,\n className\n )}\n data-slot=\"drawer-header\"\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n\nexport const DrawerBody = React.memo<DrawerBodyProps>(\n ({ children, className, ref, classNames, ...props }) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"drawer_body\",\n \"flex-1 overflow-y-auto min-h-0\",\n classNames?.body,\n className\n )}\n data-slot=\"drawer-body\"\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerBody.displayName = \"DrawerBody\";\n\nexport const DrawerFooter = React.memo<DrawerFooterProps>(\n ({ children, className, ref, classNames, ...props }) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"drawer_footer\",\n \"flex gap-2 mt-auto pt-4 shrink-0\",\n classNames?.footer,\n className\n )}\n data-slot=\"drawer-footer\"\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n\nexport const DrawerTitle = React.memo<DrawerTitleProps>(\n ({ children, className, ref, classNames, ...props }) => {\n return (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"drawer_title\",\n \"text-lg font-semibold text-text-primary\",\n classNames?.title,\n className\n )}\n data-slot=\"drawer-title\"\n {...props}\n >\n {children}\n </DrawerPrimitive.Title>\n );\n },\n);\n\nDrawerTitle.displayName = \"DrawerTitle\";\n\nexport const DrawerDescription = React.memo<DrawerDescriptionProps>(\n ({ children, className, ref, classNames, ...props }) => {\n return (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\n \"drawer_description\",\n \"text-sm text-text-secondary\",\n classNames?.description,\n className\n )}\n data-slot=\"drawer-description\"\n {...props}\n >\n {children}\n </DrawerPrimitive.Description>\n );\n },\n);\n\nDrawerDescription.displayName = \"DrawerDescription\";\n\nexport const DrawerClose = React.memo<DrawerCloseProps>(\n ({ children, asChild = false, className, ref, ...props }) => {\n return (\n <DrawerPrimitive.Close\n ref={ref}\n asChild={asChild}\n className={className}\n data-slot=\"drawer-close\"\n {...props}\n >\n {children}\n </DrawerPrimitive.Close>\n );\n },\n);\n\nDrawerClose.displayName = \"DrawerClose\";\n\n/**\n * ComposedDrawer - A convenience component that combines all drawer parts\n */\nexport function ComposedDrawer({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n direction = \"right\",\n size = \"md\",\n modal = true,\n showCloseButton = true,\n showHandle,\n dismissible = true,\n hideHeader = false,\n hideFooter = false,\n className,\n contentClassName,\n classNames,\n}: ComposedDrawerProps) {\n return (\n <Drawer\n open={open}\n onOpenChange={onOpenChange}\n direction={direction}\n modal={modal}\n dismissible={dismissible}\n >\n <DrawerContent\n direction={direction}\n size={size}\n showCloseButton={showCloseButton}\n showHandle={showHandle}\n className={contentClassName}\n classNames={classNames}\n >\n {!hideHeader && (title || description) && (\n <DrawerHeader className={className} classNames={classNames}>\n {title && <DrawerTitle classNames={classNames}>{title}</DrawerTitle>}\n {description && (\n <DrawerDescription classNames={classNames}>{description}</DrawerDescription>\n )}\n </DrawerHeader>\n )}\n <DrawerBody classNames={classNames}>{children}</DrawerBody>\n {!hideFooter && footer && <DrawerFooter classNames={classNames}>{footer}</DrawerFooter>}\n </DrawerContent>\n </Drawer>\n );\n}\n\nComposedDrawer.displayName = \"ComposedDrawer\";\n\nexport type * from \"./types\";\nexport default ComposedDrawer;\n"]}
@@ -1,72 +0,0 @@
1
- import { input_default } from './chunk-KH577UDI.js';
2
- import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
- import { Eye, EyeOff } from 'lucide-react';
4
- import React from 'react';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- var PasswordInput = React.memo(
8
- ({ visibilityToggle = true, size = "md", ref, classNames, ...props }) => {
9
- const [showPassword, setShowPassword] = React.useState(false);
10
- const toggleVisibility = React.useCallback(() => {
11
- setShowPassword((prev) => !prev);
12
- }, []);
13
- return /* @__PURE__ */ jsx(
14
- input_default,
15
- {
16
- ...props,
17
- size,
18
- ref,
19
- type: showPassword ? "text" : "password",
20
- classNames: {
21
- root: cn("inputPassword_root", classNames?.root),
22
- wrapper: cn("inputPassword_wrapper", classNames?.wrapper),
23
- label: cn("inputPassword_label", classNames?.label),
24
- input: cn("inputPassword_input", classNames?.input),
25
- helper: cn("inputPassword_helper", classNames?.helper),
26
- error: cn("inputPassword_error", classNames?.error)
27
- },
28
- rightIcon: visibilityToggle ? /* @__PURE__ */ jsx(
29
- "button",
30
- {
31
- type: "button",
32
- onClick: toggleVisibility,
33
- "data-slot": "toggleButton",
34
- className: cn(
35
- "inputPassword_toggleButton",
36
- "cursor-pointer hover:text-text-primary transition-colors",
37
- classNames?.toggleButton
38
- ),
39
- "aria-label": showPassword ? "Hide password" : "Show password",
40
- children: showPassword ? /* @__PURE__ */ jsx(
41
- Eye,
42
- {
43
- "data-slot": "toggleIcon",
44
- className: cn(
45
- "inputPassword_toggleIcon",
46
- iconSizes[size],
47
- classNames?.toggleIcon
48
- )
49
- }
50
- ) : /* @__PURE__ */ jsx(
51
- EyeOff,
52
- {
53
- "data-slot": "toggleIcon",
54
- className: cn(
55
- "inputPassword_toggleIcon",
56
- iconSizes[size],
57
- classNames?.toggleIcon
58
- )
59
- }
60
- )
61
- }
62
- ) : void 0
63
- }
64
- );
65
- }
66
- );
67
- PasswordInput.displayName = "PasswordInput";
68
- var input_password_default = PasswordInput;
69
-
70
- export { PasswordInput, input_password_default };
71
- //# sourceMappingURL=chunk-6BAP6QUT.js.map
72
- //# sourceMappingURL=chunk-6BAP6QUT.js.map
@@ -1 +0,0 @@
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-6BAP6QUT.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 PasswordInput\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tabs/index.tsx"],"names":["isPill"],"mappings":"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","file":"chunk-6G3BMY4N.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport React, {\n useState,\n useId,\n useCallback,\n useRef,\n useLayoutEffect,\n useEffect,\n} from \"react\";\n\nimport { cn } from \"../utils\";\nimport { componentColors } from \"../variants\";\nimport type { TabsColor, TabsProps, TabsVariant } from \"./types\";\n\n// Use useLayoutEffect on client, useEffect on server (SSR safe)\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// Static class mappings for Tailwind JIT compatibility\nconst pillActiveClasses: Record<string, string> = {\n default: \"text-text-primary\",\n primary: \"text-white\",\n secondary: \"text-white\",\n accent: \"text-white\",\n success: \"text-white\",\n error: \"text-white\",\n warning: \"text-white\",\n info: \"text-white\",\n};\n\nconst defaultActiveClasses: Record<string, string> = {\n default: \"text-text-primary\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n accent: \"text-accent\",\n success: \"text-success\",\n error: \"text-error\",\n warning: \"text-warning\",\n info: \"text-info\",\n};\n\nconst softActiveClasses: Record<string, string> = {\n default: \"text-text-primary\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n accent: \"text-accent\",\n success: \"text-success\",\n error: \"text-error\",\n warning: \"text-warning\",\n info: \"text-info\",\n};\n\n// Sliding indicator background colors for pill variant\nconst pillIndicatorClasses: Record<string, string> = {\n default: \"bg-background\",\n primary: \"bg-primary\",\n secondary: \"bg-secondary\",\n accent: \"bg-accent\",\n success: \"bg-success\",\n error: \"bg-error\",\n warning: \"bg-warning\",\n info: \"bg-info\",\n};\n\n// Sliding indicator colors for underline variants\nconst underlineIndicatorClasses: Record<string, string> = {\n default: \"bg-border\",\n primary: \"bg-primary\",\n secondary: \"bg-secondary\",\n accent: \"bg-accent\",\n success: \"bg-success\",\n error: \"bg-error\",\n warning: \"bg-warning\",\n info: \"bg-info\",\n};\n\n// Tab-specific variant generators for DRY\nconst createActiveTabVariants = (\n variant: TabsVariant,\n classMap: Record<string, string>,\n) => {\n return componentColors.map((color) => ({\n variant,\n color: color as TabsColor,\n active: true as const,\n className: classMap[color] || classMap.default,\n }));\n};\n\nconst tabListVariants = cva(\"flex relative\", {\n variants: {\n size: {\n xs: \"gap-(--tabs-gap-xs)\",\n sm: \"gap-(--tabs-gap-sm)\",\n md: \"gap-(--tabs-gap-md)\",\n lg: \"gap-(--tabs-gap-lg)\",\n },\n variant: {\n default: \"border-b\",\n solid: \"border-b\",\n soft: \"border-b\",\n pill: \"bg-surface p-0.5 rounded-lg border border-border gap-0 w-fit\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n});\n\nconst tabItemVariants = cva(\n \"relative z-[1] font-medium transition-colors duration-200 ease-out cursor-pointer flex items-center gap-2\",\n {\n variants: {\n size: {\n xs: \"text-xs px-(--tabs-padding-x-xs) py-(--tabs-padding-y-xs)\",\n sm: \"text-sm px-(--tabs-padding-x-sm) py-(--tabs-padding-y-sm)\",\n md: \"text-base px-(--tabs-padding-x-md) py-(--tabs-padding-y-md)\",\n lg: \"text-lg px-(--tabs-padding-x-lg) py-(--tabs-padding-y-lg)\",\n },\n variant: {\n default: \"pb-2 -mb-px\",\n solid: \"pb-2 -mb-px\",\n soft: \"pb-2 -mb-px\",\n pill: \"rounded-md\",\n },\n color: {\n default: \"\",\n primary: \"\",\n secondary: \"\",\n accent: \"\",\n success: \"\",\n error: \"\",\n warning: \"\",\n info: \"\",\n },\n active: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Inactive states (all variants)\n ...componentColors.map((color) => ({\n color: color as TabsColor,\n active: false as const,\n className: \"text-text-secondary hover:text-text-primary\",\n })),\n\n // Active pill variant\n ...createActiveTabVariants(\"pill\", pillActiveClasses),\n\n // Active default variant\n ...createActiveTabVariants(\"default\", defaultActiveClasses),\n\n // Active solid variant\n ...createActiveTabVariants(\"solid\", defaultActiveClasses),\n\n // Active soft variant\n ...createActiveTabVariants(\"soft\", softActiveClasses),\n\n // Inactive pill variant hover\n ...componentColors.map((color) => ({\n variant: \"pill\" as const,\n color: color as TabsColor,\n active: false as const,\n className: \"bg-transparent hover:bg-background/50\",\n })),\n ],\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n color: \"primary\",\n active: false,\n },\n },\n);\n\nconst Tabs = React.memo<TabsProps>(\n ({\n items,\n defaultActiveKey,\n activeKey: controlledActiveKey,\n color = \"primary\",\n size = \"md\",\n variant = \"default\",\n onChange,\n className,\n classNames,\n }) => {\n const [internalActiveKey, setInternalActiveKey] = useState(\n defaultActiveKey || items[0]?.key || \"\",\n );\n const tabListRef = useRef<HTMLDivElement>(null);\n const tabRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n const [indicatorStyle, setIndicatorStyle] = useState<React.CSSProperties>(\n {},\n );\n const [hasInitialized, setHasInitialized] = useState(false);\n\n // Generate unique IDs for accessibility\n const uniqueId = useId();\n\n const activeKey =\n controlledActiveKey !== undefined\n ? controlledActiveKey\n : internalActiveKey;\n\n // Measure and position the sliding indicator\n useIsomorphicLayoutEffect(() => {\n const activeTab = tabRefs.current.get(activeKey);\n const tabList = tabListRef.current;\n if (!activeTab || !tabList) return;\n\n const listRect = tabList.getBoundingClientRect();\n const tabRect = activeTab.getBoundingClientRect();\n\n const isPill = variant === \"pill\";\n\n if (isPill) {\n setIndicatorStyle({\n transform: `translateX(${tabRect.left - listRect.left - 2}px)`,\n width: `${tabRect.width}px`,\n height: `${tabRect.height}px`,\n opacity: 1,\n });\n } else {\n setIndicatorStyle({\n transform: `translateX(${tabRect.left - listRect.left - 2}px)`,\n width: `${tabRect.width}px`,\n opacity: 1,\n });\n }\n\n // Enable transitions after initial positioning\n if (!hasInitialized) {\n requestAnimationFrame(() => setHasInitialized(true));\n }\n }, [activeKey, items, variant, size, hasInitialized]);\n\n const handleTabClick = useCallback(\n (key: string, disabled?: boolean) => {\n if (disabled) return;\n\n if (controlledActiveKey === undefined) {\n setInternalActiveKey(key);\n }\n onChange?.(key);\n },\n [controlledActiveKey, onChange],\n );\n\n // Handle keyboard navigation (arrow keys, Home, End)\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>, currentIndex: number) => {\n const enabledIndices = items\n .map((item, i) => (!item.disabled ? i : -1))\n .filter((i): i is number => i !== -1);\n const currentEnabledIndex = enabledIndices.indexOf(currentIndex);\n\n let newIndex: number | undefined;\n\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n newIndex =\n enabledIndices[\n currentEnabledIndex > 0\n ? currentEnabledIndex - 1\n : enabledIndices.length - 1\n ];\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n newIndex =\n enabledIndices[\n currentEnabledIndex < enabledIndices.length - 1\n ? currentEnabledIndex + 1\n : 0\n ];\n break;\n case \"Home\":\n event.preventDefault();\n newIndex = enabledIndices[0];\n break;\n case \"End\":\n event.preventDefault();\n newIndex = enabledIndices[enabledIndices.length - 1];\n break;\n }\n\n if (newIndex !== undefined) {\n const newItem = items[newIndex];\n if (newItem) {\n handleTabClick(newItem.key);\n // Focus the new tab\n const btn = tabRefs.current.get(newItem.key);\n btn?.focus();\n }\n }\n },\n [items, handleTabClick],\n );\n\n const activeItem = items.find((item) => item.key === activeKey);\n const isPill = variant === \"pill\";\n\n // Indicator element class based on variant + color\n const indicatorColorClass = isPill\n ? pillIndicatorClasses[color] || pillIndicatorClasses.default\n : underlineIndicatorClasses[color] || underlineIndicatorClasses.default;\n\n return (\n <div\n data-slot=\"tabs_root\"\n className={cn(\"tabs_root w-full\", classNames?.root, className)}\n >\n <div\n ref={tabListRef}\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n data-slot=\"tabs_list\"\n className={cn(\n \"tabs_list\",\n tabListVariants({ size, variant }),\n variant !== \"pill\" && \"border-border\",\n classNames?.list,\n )}\n >\n {/* Sliding indicator */}\n <span\n data-slot=\"tabs_indicator\"\n className={cn(\n \"tabs_indicator absolute pointer-events-none\",\n isPill\n ? cn(\"rounded-md shadow-sm top-0.5\", indicatorColorClass)\n : cn(\"bottom-0 h-0.5 rounded-full\", indicatorColorClass),\n hasInitialized\n ? \"transition-[transform,width] duration-300 ease-out\"\n : \"\",\n classNames?.indicator,\n )}\n style={indicatorStyle}\n aria-hidden=\"true\"\n />\n\n {items.map((item, index) => {\n const isActive = item.key === activeKey;\n const tabId = `tab-${uniqueId}-${item.key}`;\n const panelId = `panel-${uniqueId}-${item.key}`;\n\n return (\n <button\n key={item.key}\n ref={(el) => {\n if (el) tabRefs.current.set(item.key, el);\n else tabRefs.current.delete(item.key);\n }}\n id={tabId}\n role=\"tab\"\n type=\"button\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n data-slot=\"tabs_tab\"\n className={cn(\n \"tabs_tab\",\n tabItemVariants({\n size,\n variant,\n color,\n active: isActive,\n }),\n item.disabled && \"opacity-50 cursor-not-allowed\",\n classNames?.tab,\n isActive && classNames?.tabActive,\n )}\n onClick={() => handleTabClick(item.key, item.disabled)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n disabled={item.disabled}\n >\n {item.icon && <span aria-hidden=\"true\">{item.icon}</span>}\n {item.label}\n </button>\n );\n })}\n </div>\n\n {activeItem?.content && (\n <div\n id={`panel-${uniqueId}-${activeItem.key}`}\n role=\"tabpanel\"\n aria-labelledby={`tab-${uniqueId}-${activeItem.key}`}\n tabIndex={0}\n data-slot=\"tabs_panel\"\n className={cn(\n \"tabs_panel\",\n \"py-4 animate-in fade-in slide-in-from-bottom-2 duration-300\",\n classNames?.panel,\n )}\n >\n {activeItem?.content}\n </div>\n )}\n </div>\n );\n },\n);\n\nTabs.displayName = \"Tabs\";\n\nexport type { TabsClassNames } from \"./types\";\nexport type * from \"./types\";\nexport default Tabs;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/button-group/index.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,mBAAA,GAAsB,IAAI,aAAA,EAAe;AAAA,EAC7C,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA,MACR,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,SAAA,EAAW;AAAA;AAEf,CAAC,CAAA;AAKD,IAAM,yBAAA,GACJ,gHAAA;AAEF,IAAM,uBAAA,GACJ,gHAAA;AAKF,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AA8BA,IAAM,cAAc,KAAA,CAAM,IAAA;AAAA,EACxB,CAAC;AAAA,IACC,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,IAAA;AAAA,IACX,GAAA,GAAM,IAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AAEJ,IAAA,MAAM,mBAAmB,KAAA,CAAM,QAAA,CAAS,GAAA,CAAI,QAAA,EAAU,CAAC,KAAA,KAAU;AAC/D,MAAA,IAAI,KAAA,CAAM,cAAA,CAA4B,KAAK,CAAA,EAAG;AAC5C,QAAA,OAAO,KAAA,CAAM,aAAa,KAAA,EAAO;AAAA;AAAA,UAE/B,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,IAAA;AAAA,UAC1B,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,OAAA;AAAA,UAChC,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA,UAC5B,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA;AAAA,UAE5B,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY,QAAA;AAAA;AAAA,UAElC,WAAW,EAAA,CAAG,UAAA,EAAY,MAAA,EAAQ,KAAA,CAAM,MAAM,SAAS;AAAA,SACxD,CAAA;AAAA,MACH;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,kBAAA;AAAA,UACA,mBAAA,CAAoB,EAAE,QAAA,EAAU,SAAA,EAAW,CAAA;AAAA,UAC3C,QAAA,GACI,QAAA,GACE,uBAAA,GACA,yBAAA,GACF,WAAW,GAAG,CAAA;AAAA,UAClB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,WAAA,EAAU,MAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAG1B,IAAO,oBAAA,GAAQ","file":"chunk-6HGUDHHE.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport type { ButtonProps } from '../button/types'\nimport { cn } from '../utils'\nimport type { ButtonGroupProps } from './types'\n\nconst buttonGroupVariants = cva('inline-flex', {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n fullWidth: {\n true: 'w-full [&>*]:flex-1',\n false: '',\n },\n },\n defaultVariants: {\n vertical: false,\n fullWidth: false,\n },\n})\n\n/**\n * Attached button styling - removes inner borders and rounds only outer corners\n */\nconst attachedHorizontalClasses =\n '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none'\n\nconst attachedVerticalClasses =\n '[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:border-b-0 [&>*:not(:last-child)]:rounded-b-none'\n\n/**\n * Gap size classes\n */\nconst gapClasses = {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n}\n\n/**\n * ButtonGroup Component\n *\n * Groups multiple buttons together with consistent styling and spacing.\n * Can propagate common props (size, variant, color, disabled) to all child buttons.\n *\n * @example\n * // Basic horizontal group\n * <ButtonGroup>\n * <Button>Save</Button>\n * <Button>Cancel</Button>\n * </ButtonGroup>\n *\n * @example\n * // Vertical group with uniform styling\n * <ButtonGroup vertical variant=\"outline\" size=\"sm\">\n * <Button>Option 1</Button>\n * <Button>Option 2</Button>\n * </ButtonGroup>\n *\n * @example\n * // Separated buttons with gap\n * <ButtonGroup attached={false} gap=\"md\">\n * <Button>A</Button>\n * <Button>B</Button>\n * <Button>C</Button>\n * </ButtonGroup>\n */\nconst ButtonGroup = React.memo<ButtonGroupProps>(\n ({\n vertical = false,\n attached = true,\n gap = 'md',\n fullWidth = false,\n size,\n variant,\n color,\n shape,\n disabled = false,\n className,\n classNames,\n children,\n ref,\n ...props\n }) => {\n // Clone children and inject group props\n const enhancedChildren = React.Children.map(children, (child) => {\n if (React.isValidElement<ButtonProps>(child)) {\n return React.cloneElement(child, {\n // Group props are defaults - child props take precedence\n size: child.props.size ?? size,\n variant: child.props.variant ?? variant,\n color: child.props.color ?? color,\n shape: child.props.shape ?? shape,\n // Disabled is additive - if group is disabled, all children are disabled\n disabled: child.props.disabled || disabled,\n // Apply button classNames from ButtonGroup\n className: cn(classNames?.button, child.props.className),\n })\n }\n return child\n })\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n 'buttonGroup_root',\n buttonGroupVariants({ vertical, fullWidth }),\n attached\n ? vertical\n ? attachedVerticalClasses\n : attachedHorizontalClasses\n : gapClasses[gap],\n classNames?.root,\n className,\n )}\n data-slot=\"root\"\n {...props}\n >\n {enhancedChildren}\n </div>\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\nexport type * from './types'\nexport default ButtonGroup\n"]}