@mieweb/ui 0.2.4 → 0.3.0-dev.61

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 (326) hide show
  1. package/dist/ag-grid.cjs +6 -5
  2. package/dist/ag-grid.cjs.map +1 -1
  3. package/dist/ag-grid.js +2 -1
  4. package/dist/ag-grid.js.map +1 -1
  5. package/dist/brands/index.cjs +20 -20
  6. package/dist/brands/index.js +3 -3
  7. package/dist/brands/types.cjs +4 -4
  8. package/dist/brands/types.d.cts +14 -8
  9. package/dist/brands/types.d.ts +14 -8
  10. package/dist/brands/types.js +1 -1
  11. package/dist/{chunk-B7YGVKTE.cjs → chunk-2YFJ6A5V.cjs} +51 -24
  12. package/dist/chunk-2YFJ6A5V.cjs.map +1 -0
  13. package/dist/{chunk-2J2V4TMJ.cjs → chunk-35J4B3ZK.cjs} +41 -31
  14. package/dist/chunk-35J4B3ZK.cjs.map +1 -0
  15. package/dist/{chunk-B5364UWR.cjs → chunk-3DBRHYTN.cjs} +2 -2
  16. package/dist/{chunk-B5364UWR.cjs.map → chunk-3DBRHYTN.cjs.map} +1 -1
  17. package/dist/{chunk-JFAXLE2J.js → chunk-3DM6LMZG.js} +7 -4
  18. package/dist/chunk-3DM6LMZG.js.map +1 -0
  19. package/dist/{chunk-N3QTYHRZ.cjs → chunk-3GGET5LK.cjs} +40 -22
  20. package/dist/chunk-3GGET5LK.cjs.map +1 -0
  21. package/dist/{chunk-VV4N4WY6.cjs → chunk-3XK5GENF.cjs} +61 -35
  22. package/dist/chunk-3XK5GENF.cjs.map +1 -0
  23. package/dist/{chunk-OW2BWGST.js → chunk-4ASPCSWT.js} +48 -31
  24. package/dist/chunk-4ASPCSWT.js.map +1 -0
  25. package/dist/{chunk-EKIQE524.cjs → chunk-4FALCEJI.cjs} +3 -2
  26. package/dist/chunk-4FALCEJI.cjs.map +1 -0
  27. package/dist/{chunk-6OCIIIAI.js → chunk-4Z6ZZKIY.js} +40 -22
  28. package/dist/chunk-4Z6ZZKIY.js.map +1 -0
  29. package/dist/{chunk-QIOM5ZV2.cjs → chunk-4ZU53GNR.cjs} +6 -2
  30. package/dist/{chunk-QIOM5ZV2.cjs.map → chunk-4ZU53GNR.cjs.map} +1 -1
  31. package/dist/{chunk-6Q4SU72T.js → chunk-5NSURWMM.js} +49 -10
  32. package/dist/chunk-5NSURWMM.js.map +1 -0
  33. package/dist/{chunk-4MHTSFPX.js → chunk-6EN6ZIW3.js} +43 -18
  34. package/dist/chunk-6EN6ZIW3.js.map +1 -0
  35. package/dist/chunk-7CLHYU4Q.cjs +270 -0
  36. package/dist/chunk-7CLHYU4Q.cjs.map +1 -0
  37. package/dist/{chunk-RYQ5NEKH.js → chunk-7MX7MGSA.js} +2 -2
  38. package/dist/{chunk-RYQ5NEKH.js.map → chunk-7MX7MGSA.js.map} +1 -1
  39. package/dist/chunk-7XWPUWSL.js +328 -0
  40. package/dist/chunk-7XWPUWSL.js.map +1 -0
  41. package/dist/{chunk-PEH4ZOEM.cjs → chunk-A2QVQF54.cjs} +12 -6
  42. package/dist/chunk-A2QVQF54.cjs.map +1 -0
  43. package/dist/{chunk-4AWW5WPF.js → chunk-ATALZYST.js} +51 -24
  44. package/dist/chunk-ATALZYST.js.map +1 -0
  45. package/dist/{chunk-HRA4FUO6.cjs → chunk-AUXHRAID.cjs} +71 -44
  46. package/dist/chunk-AUXHRAID.cjs.map +1 -0
  47. package/dist/{chunk-377KAB4C.cjs → chunk-AWUADXYI.cjs} +8 -2
  48. package/dist/chunk-AWUADXYI.cjs.map +1 -0
  49. package/dist/chunk-B43FRU5R.js +247 -0
  50. package/dist/chunk-B43FRU5R.js.map +1 -0
  51. package/dist/{chunk-XXOBTAKA.js → chunk-BBQZNIB4.js} +71 -44
  52. package/dist/chunk-BBQZNIB4.js.map +1 -0
  53. package/dist/{chunk-PEFJAWNR.cjs → chunk-BWYYA3LQ.cjs} +26 -10
  54. package/dist/chunk-BWYYA3LQ.cjs.map +1 -0
  55. package/dist/{chunk-WH6I7CMP.cjs → chunk-CW75IKA6.cjs} +27 -2
  56. package/dist/chunk-CW75IKA6.cjs.map +1 -0
  57. package/dist/{chunk-QSMMFATL.js → chunk-DCDXOT3A.js} +178 -127
  58. package/dist/chunk-DCDXOT3A.js.map +1 -0
  59. package/dist/{chunk-3NJ72QU6.js → chunk-DCER2QQB.js} +3 -2
  60. package/dist/chunk-DCER2QQB.js.map +1 -0
  61. package/dist/{chunk-AWIULTJW.js → chunk-DNPRRYPQ.js} +18 -3
  62. package/dist/chunk-DNPRRYPQ.js.map +1 -0
  63. package/dist/{chunk-NAATBUHR.cjs → chunk-EMMQPDOY.cjs} +43 -18
  64. package/dist/chunk-EMMQPDOY.cjs.map +1 -0
  65. package/dist/{chunk-GHRQ3ZJH.js → chunk-EUHPVNWD.js} +51 -12
  66. package/dist/chunk-EUHPVNWD.js.map +1 -0
  67. package/dist/{chunk-UZUBLXVC.js → chunk-FZJBFJJR.js} +3 -2
  68. package/dist/chunk-FZJBFJJR.js.map +1 -0
  69. package/dist/{chunk-SSKI6VTW.cjs → chunk-G7ZHQA4O.cjs} +2 -2
  70. package/dist/chunk-G7ZHQA4O.cjs.map +1 -0
  71. package/dist/{chunk-B3L43JGH.js → chunk-HEH3QXOQ.js} +26 -10
  72. package/dist/chunk-HEH3QXOQ.js.map +1 -0
  73. package/dist/{chunk-TA6FVVCM.js → chunk-I56VBDSC.js} +3 -3
  74. package/dist/{chunk-TA6FVVCM.js.map → chunk-I56VBDSC.js.map} +1 -1
  75. package/dist/{chunk-SWMRCGL4.cjs → chunk-IKMR2ADM.cjs} +5 -4
  76. package/dist/chunk-IKMR2ADM.cjs.map +1 -0
  77. package/dist/{chunk-53K3KWXQ.cjs → chunk-IMNLYVXJ.cjs} +166 -136
  78. package/dist/chunk-IMNLYVXJ.cjs.map +1 -0
  79. package/dist/{chunk-FFJVCQ5R.cjs → chunk-J644FU54.cjs} +49 -19
  80. package/dist/chunk-J644FU54.cjs.map +1 -0
  81. package/dist/{chunk-KWDTTGH2.js → chunk-JDI45GEY.js} +4 -4
  82. package/dist/{chunk-KWDTTGH2.js.map → chunk-JDI45GEY.js.map} +1 -1
  83. package/dist/{chunk-EF46XW4Z.cjs → chunk-JE4AH2TZ.cjs} +160 -66
  84. package/dist/chunk-JE4AH2TZ.cjs.map +1 -0
  85. package/dist/{chunk-VDMQCSXT.cjs → chunk-JHPFOG2N.cjs} +4 -4
  86. package/dist/{chunk-VDMQCSXT.cjs.map → chunk-JHPFOG2N.cjs.map} +1 -1
  87. package/dist/{chunk-5T3AWNHG.cjs → chunk-K7IGBNZA.cjs} +70 -39
  88. package/dist/chunk-K7IGBNZA.cjs.map +1 -0
  89. package/dist/chunk-LEMY57MI.js +3 -0
  90. package/dist/{chunk-3K7QCDSV.js.map → chunk-LEMY57MI.js.map} +1 -1
  91. package/dist/{chunk-EYH7OUX5.js → chunk-LUVSO5LK.js} +2 -2
  92. package/dist/chunk-LUVSO5LK.js.map +1 -0
  93. package/dist/chunk-LXHPW2ZF.cjs +353 -0
  94. package/dist/chunk-LXHPW2ZF.cjs.map +1 -0
  95. package/dist/chunk-MOULJE34.js +334 -0
  96. package/dist/chunk-MOULJE34.js.map +1 -0
  97. package/dist/{chunk-B26RIQ5R.js → chunk-MV3MTHWQ.js} +6 -2
  98. package/dist/chunk-MV3MTHWQ.js.map +1 -0
  99. package/dist/{chunk-AU5ADTYD.cjs → chunk-ND75VHB7.cjs} +49 -10
  100. package/dist/chunk-ND75VHB7.cjs.map +1 -0
  101. package/dist/{chunk-GV5JQBPX.js → chunk-NDHW3ZRF.js} +8 -4
  102. package/dist/chunk-NDHW3ZRF.js.map +1 -0
  103. package/dist/{chunk-QL2YTVTR.js → chunk-O43QBXRX.js} +7 -2
  104. package/dist/chunk-O43QBXRX.js.map +1 -0
  105. package/dist/{chunk-4T2ZNPTC.js → chunk-OJ64Q3A5.js} +104 -62
  106. package/dist/chunk-OJ64Q3A5.js.map +1 -0
  107. package/dist/{chunk-OT36EMM5.js → chunk-OKBR6PX4.js} +5 -4
  108. package/dist/chunk-OKBR6PX4.js.map +1 -0
  109. package/dist/{chunk-LZEY55QZ.cjs → chunk-OYKS2JBB.cjs} +18 -3
  110. package/dist/chunk-OYKS2JBB.cjs.map +1 -0
  111. package/dist/{chunk-ORUPC5TV.cjs → chunk-PLIK3DN6.cjs} +7 -4
  112. package/dist/chunk-PLIK3DN6.cjs.map +1 -0
  113. package/dist/{chunk-PF3XWKE5.cjs → chunk-QEAIFTUL.cjs} +26 -9
  114. package/dist/chunk-QEAIFTUL.cjs.map +1 -0
  115. package/dist/chunk-QMQE4PDD.cjs +615 -0
  116. package/dist/chunk-QMQE4PDD.cjs.map +1 -0
  117. package/dist/{chunk-XVZ4SLQB.js → chunk-QVJBUWJQ.js} +70 -39
  118. package/dist/chunk-QVJBUWJQ.js.map +1 -0
  119. package/dist/{chunk-XHJGYBYG.cjs → chunk-QXJMKJJV.cjs} +48 -31
  120. package/dist/chunk-QXJMKJJV.cjs.map +1 -0
  121. package/dist/{chunk-TPGT236K.js → chunk-RC2YMOMS.js} +26 -3
  122. package/dist/chunk-RC2YMOMS.js.map +1 -0
  123. package/dist/{chunk-BXK5TNJE.cjs → chunk-RH43XBNV.cjs} +3 -2
  124. package/dist/chunk-RH43XBNV.cjs.map +1 -0
  125. package/dist/{chunk-NIHESA7O.js → chunk-T4AO7KYK.js} +41 -31
  126. package/dist/chunk-T4AO7KYK.js.map +1 -0
  127. package/dist/chunk-TF5OZDFU.js +588 -0
  128. package/dist/chunk-TF5OZDFU.js.map +1 -0
  129. package/dist/{chunk-BV75DAKO.cjs → chunk-TSZRR2ZK.cjs} +104 -62
  130. package/dist/chunk-TSZRR2ZK.cjs.map +1 -0
  131. package/dist/{chunk-ONWOB76P.js → chunk-V2O636JO.js} +26 -9
  132. package/dist/chunk-V2O636JO.js.map +1 -0
  133. package/dist/{chunk-G2DOD34H.js → chunk-VKTQQOUH.js} +82 -36
  134. package/dist/chunk-VKTQQOUH.js.map +1 -0
  135. package/dist/{chunk-RRQGH7C5.cjs → chunk-VQW36LLX.cjs} +7 -2
  136. package/dist/chunk-VQW36LLX.cjs.map +1 -0
  137. package/dist/{chunk-IY7UQPDO.cjs → chunk-WGPMTW36.cjs} +6 -2
  138. package/dist/chunk-WGPMTW36.cjs.map +1 -0
  139. package/dist/{chunk-SOFX4T7M.js → chunk-WOYUQ4AT.js} +49 -19
  140. package/dist/chunk-WOYUQ4AT.js.map +1 -0
  141. package/dist/{chunk-TCQ27C5M.js → chunk-WTDCNXZO.js} +8 -2
  142. package/dist/chunk-WTDCNXZO.js.map +1 -0
  143. package/dist/chunk-XHESCAUE.js +124 -0
  144. package/dist/chunk-XHESCAUE.js.map +1 -0
  145. package/dist/{chunk-QZLRB3UG.js → chunk-YN3ZIUYC.js} +166 -136
  146. package/dist/chunk-YN3ZIUYC.js.map +1 -0
  147. package/dist/{chunk-VZUVYJFU.cjs → chunk-YR365F2H.cjs} +16 -16
  148. package/dist/{chunk-VZUVYJFU.cjs.map → chunk-YR365F2H.cjs.map} +1 -1
  149. package/dist/{chunk-5UUL5EEO.cjs → chunk-Z2ABQA5Z.cjs} +178 -127
  150. package/dist/chunk-Z2ABQA5Z.cjs.map +1 -0
  151. package/dist/{chunk-JYMQJ32S.cjs → chunk-Z4HZ35KX.cjs} +8 -4
  152. package/dist/chunk-Z4HZ35KX.cjs.map +1 -0
  153. package/dist/{chunk-INFSKLXE.cjs → chunk-ZAHQU7PQ.cjs} +51 -12
  154. package/dist/chunk-ZAHQU7PQ.cjs.map +1 -0
  155. package/dist/{chunk-QYJ7RQJ2.cjs → chunk-ZGSPFVGL.cjs} +82 -36
  156. package/dist/chunk-ZGSPFVGL.cjs.map +1 -0
  157. package/dist/{chunk-VBHPXSCV.js → chunk-ZVSW2KS6.js} +12 -6
  158. package/dist/chunk-ZVSW2KS6.js.map +1 -0
  159. package/dist/components/Alert/index.cjs +5 -5
  160. package/dist/components/Alert/index.js +1 -1
  161. package/dist/components/AudioPlayer/index.cjs +6 -6
  162. package/dist/components/AudioPlayer/index.js +1 -1
  163. package/dist/components/AudioRecorder/index.cjs +6 -6
  164. package/dist/components/AudioRecorder/index.js +1 -1
  165. package/dist/components/Avatar/index.cjs +5 -5
  166. package/dist/components/Avatar/index.js +1 -1
  167. package/dist/components/Badge/index.cjs +3 -3
  168. package/dist/components/Badge/index.js +1 -1
  169. package/dist/components/Breadcrumb/index.cjs +3 -3
  170. package/dist/components/Breadcrumb/index.js +1 -1
  171. package/dist/components/Button/index.cjs +3 -3
  172. package/dist/components/Button/index.js +1 -1
  173. package/dist/components/Card/index.cjs +15 -15
  174. package/dist/components/Card/index.js +1 -1
  175. package/dist/components/Checkbox/index.cjs +4 -4
  176. package/dist/components/Checkbox/index.js +1 -1
  177. package/dist/components/CountryCodeDropdown/index.cjs +23 -0
  178. package/dist/components/CountryCodeDropdown/index.cjs.map +1 -0
  179. package/dist/components/CountryCodeDropdown/index.d.cts +69 -0
  180. package/dist/components/CountryCodeDropdown/index.d.ts +69 -0
  181. package/dist/components/CountryCodeDropdown/index.js +6 -0
  182. package/dist/components/CountryCodeDropdown/index.js.map +1 -0
  183. package/dist/components/DateInput/index.cjs +4 -4
  184. package/dist/components/DateInput/index.js +3 -3
  185. package/dist/components/Dropdown/index.cjs +9 -8
  186. package/dist/components/Dropdown/index.d.cts +29 -1
  187. package/dist/components/Dropdown/index.d.ts +29 -1
  188. package/dist/components/Dropdown/index.js +3 -2
  189. package/dist/components/Input/index.cjs +3 -3
  190. package/dist/components/Input/index.js +1 -1
  191. package/dist/components/Modal/index.cjs +9 -9
  192. package/dist/components/Modal/index.js +1 -1
  193. package/dist/components/Pagination/index.cjs +4 -4
  194. package/dist/components/Pagination/index.js +1 -1
  195. package/dist/components/PhoneInput/index.cjs +4 -4
  196. package/dist/components/PhoneInput/index.js +2 -2
  197. package/dist/components/Progress/index.cjs +6 -6
  198. package/dist/components/Progress/index.js +1 -1
  199. package/dist/components/QuickAction/index.cjs +6 -6
  200. package/dist/components/QuickAction/index.js +1 -1
  201. package/dist/components/Radio/index.cjs +4 -4
  202. package/dist/components/Radio/index.js +1 -1
  203. package/dist/components/RecordButton/index.cjs +4 -4
  204. package/dist/components/RecordButton/index.js +1 -1
  205. package/dist/components/SchedulePicker/index.cjs +10 -10
  206. package/dist/components/SchedulePicker/index.js +1 -1
  207. package/dist/components/Select/index.cjs +3 -3
  208. package/dist/components/Select/index.js +1 -1
  209. package/dist/components/Skeleton/index.cjs +6 -6
  210. package/dist/components/Skeleton/index.d.cts +1 -1
  211. package/dist/components/Skeleton/index.d.ts +1 -1
  212. package/dist/components/Skeleton/index.js +1 -1
  213. package/dist/components/Slider/index.cjs +5 -5
  214. package/dist/components/Slider/index.js +1 -1
  215. package/dist/components/Spinner/index.cjs +5 -5
  216. package/dist/components/Spinner/index.js +1 -1
  217. package/dist/components/Switch/index.cjs +4 -4
  218. package/dist/components/Switch/index.js +1 -1
  219. package/dist/components/Table/index.cjs +9 -9
  220. package/dist/components/Table/index.js +1 -1
  221. package/dist/components/Tabs/index.cjs +7 -7
  222. package/dist/components/Tabs/index.js +1 -1
  223. package/dist/components/Textarea/index.cjs +3 -3
  224. package/dist/components/Textarea/index.js +1 -1
  225. package/dist/components/ThemeProvider/index.cjs +8 -8
  226. package/dist/components/ThemeProvider/index.js +2 -2
  227. package/dist/components/Tooltip/index.cjs +2 -2
  228. package/dist/components/Tooltip/index.js +1 -1
  229. package/dist/datavis.cjs +251 -0
  230. package/dist/datavis.cjs.map +1 -0
  231. package/dist/datavis.d.cts +47 -0
  232. package/dist/datavis.d.ts +47 -0
  233. package/dist/datavis.js +247 -0
  234. package/dist/datavis.js.map +1 -0
  235. package/dist/hooks/index.cjs +2 -2
  236. package/dist/hooks/index.d.cts +2 -2
  237. package/dist/hooks/index.d.ts +2 -2
  238. package/dist/hooks/index.js +1 -1
  239. package/dist/index.cjs +12727 -8704
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +35 -43
  242. package/dist/index.d.ts +35 -43
  243. package/dist/index.js +11959 -7955
  244. package/dist/index.js.map +1 -1
  245. package/dist/styles/init.css +326 -0
  246. package/dist/styles.css +1 -1
  247. package/dist/tailwind-preset.cjs +4 -4
  248. package/dist/tailwind-preset.d.cts +13 -2
  249. package/dist/tailwind-preset.d.ts +13 -2
  250. package/dist/tailwind-preset.js +1 -1
  251. package/dist/utils/index.cjs +30 -22
  252. package/dist/utils/index.d.cts +12 -1
  253. package/dist/utils/index.d.ts +12 -1
  254. package/dist/utils/index.js +1 -1
  255. package/package.json +24 -3
  256. package/dist/chunk-265CFCCX.js +0 -173
  257. package/dist/chunk-265CFCCX.js.map +0 -1
  258. package/dist/chunk-2J2V4TMJ.cjs.map +0 -1
  259. package/dist/chunk-377KAB4C.cjs.map +0 -1
  260. package/dist/chunk-3K7QCDSV.js +0 -3
  261. package/dist/chunk-3NJ72QU6.js.map +0 -1
  262. package/dist/chunk-4AWW5WPF.js.map +0 -1
  263. package/dist/chunk-4MHTSFPX.js.map +0 -1
  264. package/dist/chunk-4T2ZNPTC.js.map +0 -1
  265. package/dist/chunk-4YRAEFYW.js +0 -233
  266. package/dist/chunk-4YRAEFYW.js.map +0 -1
  267. package/dist/chunk-53K3KWXQ.cjs.map +0 -1
  268. package/dist/chunk-5T3AWNHG.cjs.map +0 -1
  269. package/dist/chunk-5UUL5EEO.cjs.map +0 -1
  270. package/dist/chunk-6OCIIIAI.js.map +0 -1
  271. package/dist/chunk-6Q4SU72T.js.map +0 -1
  272. package/dist/chunk-AU5ADTYD.cjs.map +0 -1
  273. package/dist/chunk-AWIULTJW.js.map +0 -1
  274. package/dist/chunk-B26RIQ5R.js.map +0 -1
  275. package/dist/chunk-B3L43JGH.js.map +0 -1
  276. package/dist/chunk-B7YGVKTE.cjs.map +0 -1
  277. package/dist/chunk-BV75DAKO.cjs.map +0 -1
  278. package/dist/chunk-BXK5TNJE.cjs.map +0 -1
  279. package/dist/chunk-CQCYXHCU.cjs +0 -256
  280. package/dist/chunk-CQCYXHCU.cjs.map +0 -1
  281. package/dist/chunk-DMA74PZ7.js +0 -240
  282. package/dist/chunk-DMA74PZ7.js.map +0 -1
  283. package/dist/chunk-EF46XW4Z.cjs.map +0 -1
  284. package/dist/chunk-EKIQE524.cjs.map +0 -1
  285. package/dist/chunk-EYH7OUX5.js.map +0 -1
  286. package/dist/chunk-FFJVCQ5R.cjs.map +0 -1
  287. package/dist/chunk-FIXAVBUA.cjs +0 -200
  288. package/dist/chunk-FIXAVBUA.cjs.map +0 -1
  289. package/dist/chunk-G2DOD34H.js.map +0 -1
  290. package/dist/chunk-GHRQ3ZJH.js.map +0 -1
  291. package/dist/chunk-GV5JQBPX.js.map +0 -1
  292. package/dist/chunk-HRA4FUO6.cjs.map +0 -1
  293. package/dist/chunk-INFSKLXE.cjs.map +0 -1
  294. package/dist/chunk-IY7UQPDO.cjs.map +0 -1
  295. package/dist/chunk-JFAXLE2J.js.map +0 -1
  296. package/dist/chunk-JYMQJ32S.cjs.map +0 -1
  297. package/dist/chunk-LZEY55QZ.cjs.map +0 -1
  298. package/dist/chunk-N3QTYHRZ.cjs.map +0 -1
  299. package/dist/chunk-NAATBUHR.cjs.map +0 -1
  300. package/dist/chunk-NIHESA7O.js.map +0 -1
  301. package/dist/chunk-NXRLGHEC.js +0 -98
  302. package/dist/chunk-NXRLGHEC.js.map +0 -1
  303. package/dist/chunk-ONWOB76P.js.map +0 -1
  304. package/dist/chunk-ORUPC5TV.cjs.map +0 -1
  305. package/dist/chunk-OT36EMM5.js.map +0 -1
  306. package/dist/chunk-OW2BWGST.js.map +0 -1
  307. package/dist/chunk-PEFJAWNR.cjs.map +0 -1
  308. package/dist/chunk-PEH4ZOEM.cjs.map +0 -1
  309. package/dist/chunk-PF3XWKE5.cjs.map +0 -1
  310. package/dist/chunk-QL2YTVTR.js.map +0 -1
  311. package/dist/chunk-QSMMFATL.js.map +0 -1
  312. package/dist/chunk-QYJ7RQJ2.cjs.map +0 -1
  313. package/dist/chunk-QZLRB3UG.js.map +0 -1
  314. package/dist/chunk-RRQGH7C5.cjs.map +0 -1
  315. package/dist/chunk-SOFX4T7M.js.map +0 -1
  316. package/dist/chunk-SSKI6VTW.cjs.map +0 -1
  317. package/dist/chunk-SWMRCGL4.cjs.map +0 -1
  318. package/dist/chunk-TCQ27C5M.js.map +0 -1
  319. package/dist/chunk-TPGT236K.js.map +0 -1
  320. package/dist/chunk-UZUBLXVC.js.map +0 -1
  321. package/dist/chunk-VBHPXSCV.js.map +0 -1
  322. package/dist/chunk-VV4N4WY6.cjs.map +0 -1
  323. package/dist/chunk-WH6I7CMP.cjs.map +0 -1
  324. package/dist/chunk-XHJGYBYG.cjs.map +0 -1
  325. package/dist/chunk-XVZ4SLQB.js.map +0 -1
  326. package/dist/chunk-XXOBTAKA.js.map +0 -1
@@ -66,6 +66,7 @@ var Avatar = React__namespace.forwardRef(
66
66
  "div",
67
67
  {
68
68
  ref,
69
+ "data-slot": "avatar",
69
70
  className: chunkOR5DRJCW_cjs.cn(avatarVariants({ size, ring }), className),
70
71
  ...props,
71
72
  children: showImage ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -95,38 +96,47 @@ var AvatarGroup = React__namespace.forwardRef(
95
96
  const childrenArray = React__namespace.Children.toArray(children);
96
97
  const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;
97
98
  const remainingCount = max ? Math.max(0, childrenArray.length - max) : 0;
98
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: chunkOR5DRJCW_cjs.cn("flex -space-x-2", className), ...props, children: [
99
- visibleChildren.map((child, index) => {
100
- if (React__namespace.isValidElement(child)) {
101
- return React__namespace.cloneElement(
102
- child,
99
+ return /* @__PURE__ */ jsxRuntime.jsxs(
100
+ "div",
101
+ {
102
+ ref,
103
+ "data-slot": "avatar-group",
104
+ className: chunkOR5DRJCW_cjs.cn("flex -space-x-2", className),
105
+ ...props,
106
+ children: [
107
+ visibleChildren.map((child, index) => {
108
+ if (React__namespace.isValidElement(child)) {
109
+ return React__namespace.cloneElement(
110
+ child,
111
+ {
112
+ key: index,
113
+ size,
114
+ className: chunkOR5DRJCW_cjs.cn(
115
+ "ring-2 ring-white dark:ring-neutral-900",
116
+ child.props.className
117
+ )
118
+ }
119
+ );
120
+ }
121
+ return child;
122
+ }),
123
+ remainingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
124
+ "div",
103
125
  {
104
- key: index,
105
- size,
106
126
  className: chunkOR5DRJCW_cjs.cn(
107
- "ring-2 ring-white dark:ring-neutral-900",
108
- child.props.className
109
- )
127
+ avatarVariants({ size }),
128
+ "bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300",
129
+ "ring-2 ring-white dark:ring-neutral-900"
130
+ ),
131
+ children: [
132
+ "+",
133
+ remainingCount
134
+ ]
110
135
  }
111
- );
112
- }
113
- return child;
114
- }),
115
- remainingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
116
- "div",
117
- {
118
- className: chunkOR5DRJCW_cjs.cn(
119
- avatarVariants({ size }),
120
- "bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300",
121
- "ring-2 ring-white dark:ring-neutral-900"
122
- ),
123
- children: [
124
- "+",
125
- remainingCount
126
- ]
127
- }
128
- )
129
- ] });
136
+ )
137
+ ]
138
+ }
139
+ );
130
140
  }
131
141
  );
132
142
  AvatarGroup.displayName = "AvatarGroup";
@@ -135,5 +145,5 @@ exports.Avatar = Avatar;
135
145
  exports.AvatarGroup = AvatarGroup;
136
146
  exports.avatarVariants = avatarVariants;
137
147
  exports.getInitials = getInitials;
138
- //# sourceMappingURL=chunk-2J2V4TMJ.cjs.map
139
- //# sourceMappingURL=chunk-2J2V4TMJ.cjs.map
148
+ //# sourceMappingURL=chunk-35J4B3ZK.cjs.map
149
+ //# sourceMappingURL=chunk-35J4B3ZK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":["cva","React","jsx","cn","jsxs"],"mappings":"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","file":"chunk-35J4B3ZK.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Avatar Component\n// ============================================================================\n\nconst avatarVariants = cva(\n [\n 'relative inline-flex items-center justify-center',\n 'rounded-full overflow-hidden',\n 'bg-primary-800 text-white font-semibold',\n ],\n {\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-sm',\n lg: 'h-12 w-12 text-base',\n xl: 'h-16 w-16 text-lg',\n },\n ring: {\n true: 'ring-2 ring-primary-400/30',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n ring: false,\n },\n }\n);\n\nexport interface AvatarProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof avatarVariants> {\n /** Image URL for the avatar */\n src?: string | null;\n /** Alt text for the avatar image */\n alt?: string;\n /** Name to generate initials from (used as fallback when no src) */\n name?: string;\n /** Custom fallback content (overrides name initials) */\n fallback?: React.ReactElement | null;\n}\n\n/**\n * Get initials from a name string.\n */\nfunction getInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n}\n\n/**\n * An avatar component for displaying user profile images with fallback to initials.\n *\n * @example\n * ```tsx\n * // With image\n * <Avatar src=\"/user.jpg\" alt=\"John Doe\" />\n *\n * // With initials fallback\n * <Avatar name=\"John Doe\" />\n *\n * // With custom fallback\n * <Avatar fallback={<UserIcon />} />\n * ```\n */\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, src, alt, name, fallback, size, ring, ...props }, ref) => {\n const [imageError, setImageError] = React.useState(false);\n\n // Reset error state when src changes\n React.useEffect(() => {\n setImageError(false);\n }, [src]);\n\n const showImage = src && !imageError;\n const initials = name ? getInitials(name) : null;\n\n return (\n <div\n ref={ref}\n data-slot=\"avatar\"\n className={cn(avatarVariants({ size, ring }), className)}\n {...props}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt || name || 'Avatar'}\n className=\"h-full w-full object-cover\"\n onError={() => setImageError(true)}\n />\n ) : React.isValidElement(fallback) ? (\n fallback\n ) : initials ? (\n initials\n ) : (\n <svg\n className=\"h-[60%] w-[60%] text-white/80\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\n// ============================================================================\n// Avatar Group Component\n// ============================================================================\n\nexport interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Maximum number of avatars to show before +N indicator */\n max?: number;\n /** Size of avatars in the group */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** Children should be Avatar components */\n children: React.ReactNode;\n}\n\n/**\n * A component for displaying a group of overlapping avatars.\n *\n * @example\n * ```tsx\n * <AvatarGroup max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Wilson\" />\n * <Avatar name=\"Alice Brown\" />\n * </AvatarGroup>\n * ```\n */\nconst AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, max, size = 'md', children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;\n const remainingCount = max ? Math.max(0, childrenArray.length - max) : 0;\n\n return (\n <div\n ref={ref}\n data-slot=\"avatar-group\"\n className={cn('flex -space-x-2', className)}\n {...props}\n >\n {visibleChildren.map((child, index) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(\n child as React.ReactElement<AvatarProps>,\n {\n key: index,\n size,\n className: cn(\n 'ring-2 ring-white dark:ring-neutral-900',\n (child as React.ReactElement<AvatarProps>).props.className\n ),\n }\n );\n }\n return child;\n })}\n {remainingCount > 0 && (\n <div\n className={cn(\n avatarVariants({ size }),\n 'bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300',\n 'ring-2 ring-white dark:ring-neutral-900'\n )}\n >\n +{remainingCount}\n </div>\n )}\n </div>\n );\n }\n);\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nexport { Avatar, AvatarGroup, avatarVariants, getInitials };\n"]}
@@ -12,5 +12,5 @@ var brands = {
12
12
  };
13
13
 
14
14
  exports.brands = brands;
15
- //# sourceMappingURL=chunk-B5364UWR.cjs.map
16
- //# sourceMappingURL=chunk-B5364UWR.cjs.map
15
+ //# sourceMappingURL=chunk-3DBRHYTN.cjs.map
16
+ //# sourceMappingURL=chunk-3DBRHYTN.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/brands/index.ts"],"names":[],"mappings":";;;AAiCO,IAAM,MAAA,GAAS;AAAA,EACpB,QAAA,EAAU,MAAM,OAAO,uBAAY,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,CAAA;AAAA,EAChE,OAAA,EAAS,MAAM,OAAO,wBAAW,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,YAAY,CAAA;AAAA,EAC7D,mBAAA,EAAqB,MACnB,OAAO,kCAAqB,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,qBAAqB,CAAA;AAAA,EACnE,MAAA,EAAQ,MAAM,OAAO,uBAAU,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AAAA,EAC1D,MAAA,EAAQ,MAAM,OAAO,qBAAU,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AAAA,EAC1D,UAAA,EAAY,MAAM,OAAO,2BAAc,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,CAAA;AAAA,EACtE,QAAA,EAAU,MAAM,OAAO,yBAAY,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa;AAClE","file":"chunk-B5364UWR.cjs","sourcesContent":["/**\n * @mieweb/ui Brand System\n *\n * Export all brand-related types, utilities, and configurations.\n */\n\n// Types and utilities\nexport type {\n BrandConfig,\n BrandColors,\n BrandTypography,\n BrandBorderRadius,\n BrandBoxShadow,\n ColorScale,\n SemanticColors,\n} from './types';\n\nexport {\n generateBrandCSS,\n generateTailwindTheme,\n createBrandPreset,\n} from './types';\n\n// Brand configurations\nexport { bluehiveBrand } from './bluehive';\nexport { defaultBrand } from './default';\nexport { enterpriseHealthBrand } from './enterprise-health';\nexport { miewebBrand } from './mieweb';\nexport { ozwellBrand } from './ozwell';\nexport { wagglelineBrand } from './waggleline';\nexport { webchartBrand } from './webchart';\n\n// All brands for iteration\nexport const brands = {\n bluehive: () => import('./bluehive').then((m) => m.bluehiveBrand),\n default: () => import('./default').then((m) => m.defaultBrand),\n 'enterprise-health': () =>\n import('./enterprise-health').then((m) => m.enterpriseHealthBrand),\n mieweb: () => import('./mieweb').then((m) => m.miewebBrand),\n ozwell: () => import('./ozwell').then((m) => m.ozwellBrand),\n waggleline: () => import('./waggleline').then((m) => m.wagglelineBrand),\n webchart: () => import('./webchart').then((m) => m.webchartBrand),\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/brands/index.ts"],"names":[],"mappings":";;;AAiCO,IAAM,MAAA,GAAS;AAAA,EACpB,QAAA,EAAU,MAAM,OAAO,uBAAY,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,CAAA;AAAA,EAChE,OAAA,EAAS,MAAM,OAAO,wBAAW,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,YAAY,CAAA;AAAA,EAC7D,mBAAA,EAAqB,MACnB,OAAO,kCAAqB,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,qBAAqB,CAAA;AAAA,EACnE,MAAA,EAAQ,MAAM,OAAO,uBAAU,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AAAA,EAC1D,MAAA,EAAQ,MAAM,OAAO,qBAAU,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AAAA,EAC1D,UAAA,EAAY,MAAM,OAAO,2BAAc,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,CAAA;AAAA,EACtE,QAAA,EAAU,MAAM,OAAO,yBAAY,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa;AAClE","file":"chunk-3DBRHYTN.cjs","sourcesContent":["/**\n * @mieweb/ui Brand System\n *\n * Export all brand-related types, utilities, and configurations.\n */\n\n// Types and utilities\nexport type {\n BrandConfig,\n BrandColors,\n BrandTypography,\n BrandBorderRadius,\n BrandBoxShadow,\n ColorScale,\n SemanticColors,\n} from './types';\n\nexport {\n generateBrandCSS,\n generateTailwindTheme,\n createBrandPreset,\n} from './types';\n\n// Brand configurations\nexport { bluehiveBrand } from './bluehive';\nexport { defaultBrand } from './default';\nexport { enterpriseHealthBrand } from './enterprise-health';\nexport { miewebBrand } from './mieweb';\nexport { ozwellBrand } from './ozwell';\nexport { wagglelineBrand } from './waggleline';\nexport { webchartBrand } from './webchart';\n\n// All brands for iteration\nexport const brands = {\n bluehive: () => import('./bluehive').then((m) => m.bluehiveBrand),\n default: () => import('./default').then((m) => m.defaultBrand),\n 'enterprise-health': () =>\n import('./enterprise-health').then((m) => m.enterpriseHealthBrand),\n mieweb: () => import('./mieweb').then((m) => m.miewebBrand),\n ozwell: () => import('./ozwell').then((m) => m.ozwellBrand),\n waggleline: () => import('./waggleline').then((m) => m.wagglelineBrand),\n webchart: () => import('./webchart').then((m) => m.webchartBrand),\n} as const;\n"]}
@@ -39,7 +39,7 @@ function Tabs({
39
39
  TabsContext.Provider,
40
40
  {
41
41
  value: { value, onValueChange: handleValueChange, variant },
42
- children: /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children })
42
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "tabs", className: cn("w-full", className), children })
43
43
  }
44
44
  );
45
45
  }
@@ -110,6 +110,7 @@ var TabsList = React.forwardRef(
110
110
  }
111
111
  },
112
112
  role: "tablist",
113
+ "data-slot": "tabs-list",
113
114
  tabIndex: 0,
114
115
  onKeyDown: handleKeyDown,
115
116
  className: cn(tabsListVariants({ variant }), className),
@@ -164,6 +165,7 @@ var TabsTrigger = React.forwardRef(
164
165
  ref,
165
166
  type: "button",
166
167
  role: "tab",
168
+ "data-slot": "tabs-trigger",
167
169
  "aria-selected": isSelected,
168
170
  "aria-controls": `tabpanel-${value}`,
169
171
  id: `tab-${value}`,
@@ -174,7 +176,7 @@ var TabsTrigger = React.forwardRef(
174
176
  className: cn(tabsTriggerVariants({ variant }), className),
175
177
  ...props,
176
178
  children: [
177
- icon && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: icon }),
179
+ icon && /* @__PURE__ */ jsx("span", { "data-slot": "tabs-trigger-icon", className: "shrink-0", children: icon }),
178
180
  children
179
181
  ]
180
182
  }
@@ -194,6 +196,7 @@ var TabsContent = React.forwardRef(
194
196
  {
195
197
  ref,
196
198
  role: "tabpanel",
199
+ "data-slot": "tabs-content",
197
200
  id: `tabpanel-${value}`,
198
201
  "aria-labelledby": `tab-${value}`,
199
202
  tabIndex: 0,
@@ -213,5 +216,5 @@ var TabsContent = React.forwardRef(
213
216
  TabsContent.displayName = "TabsContent";
214
217
 
215
218
  export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants };
216
- //# sourceMappingURL=chunk-JFAXLE2J.js.map
217
- //# sourceMappingURL=chunk-JFAXLE2J.js.map
219
+ //# sourceMappingURL=chunk-3DM6LMZG.js.map
220
+ //# sourceMappingURL=chunk-3DM6LMZG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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","file":"chunk-3DM6LMZG.js","sourcesContent":["import * as React from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Tabs Context\n// ============================================================================\n\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n variant: 'underline' | 'pills' | 'enclosed';\n}\n\nconst TabsContext = React.createContext<TabsContextValue | undefined>(\n undefined\n);\n\nfunction useTabsContext() {\n const context = React.useContext(TabsContext);\n if (!context) {\n throw new Error('Tabs components must be used within a Tabs provider');\n }\n return context;\n}\n\n// ============================================================================\n// Tabs Root\n// ============================================================================\n\nexport interface TabsProps {\n /** The controlled value of the selected tab */\n value?: string;\n /** The default value of the selected tab (uncontrolled) */\n defaultValue?: string;\n /** Callback when the selected tab changes */\n onValueChange?: (value: string) => void;\n /** Visual variant of the tabs */\n variant?: 'underline' | 'pills' | 'enclosed';\n /** Tab content */\n children: React.ReactNode;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * Accessible tabs component with keyboard navigation.\n *\n * @example\n * ```tsx\n * <Tabs defaultValue=\"tab1\">\n * <TabsList>\n * <TabsTrigger value=\"tab1\">Tab 1</TabsTrigger>\n * <TabsTrigger value=\"tab2\">Tab 2</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"tab1\">Content 1</TabsContent>\n * <TabsContent value=\"tab2\">Content 2</TabsContent>\n * </Tabs>\n * ```\n */\nfunction Tabs({\n value: controlledValue,\n defaultValue,\n onValueChange,\n variant = 'underline',\n children,\n className,\n}: TabsProps) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(\n defaultValue || ''\n );\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange]\n );\n\n return (\n <TabsContext.Provider\n value={{ value, onValueChange: handleValueChange, variant }}\n >\n <div data-slot=\"tabs\" className={cn('w-full', className)}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nTabs.displayName = 'Tabs';\n\n// ============================================================================\n// Tabs List\n// ============================================================================\n\nconst tabsListVariants = cva(['flex items-center'], {\n variants: {\n variant: {\n underline: 'border-b border-border gap-0',\n pills: 'gap-1 p-1 rounded-lg bg-muted',\n enclosed: 'gap-0 border-b border-border',\n },\n },\n defaultVariants: {\n variant: 'underline',\n },\n});\n\nexport type TabsListProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Container for tab triggers.\n */\nconst TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const { variant } = useTabsContext();\n const listRef = React.useRef<HTMLDivElement>(null);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const list = listRef.current;\n if (!list) return;\n\n const triggers = Array.from(\n list.querySelectorAll<HTMLButtonElement>(\n '[role=\"tab\"]:not([disabled])'\n )\n );\n const currentIndex = triggers.findIndex(\n (trigger) => trigger === document.activeElement\n );\n\n let nextIndex: number;\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n e.preventDefault();\n nextIndex =\n currentIndex === triggers.length - 1 ? 0 : currentIndex + 1;\n triggers[nextIndex]?.focus();\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n e.preventDefault();\n nextIndex =\n currentIndex === 0 ? triggers.length - 1 : currentIndex - 1;\n triggers[nextIndex]?.focus();\n break;\n case 'Home':\n e.preventDefault();\n triggers[0]?.focus();\n break;\n case 'End':\n e.preventDefault();\n triggers[triggers.length - 1]?.focus();\n break;\n }\n },\n []\n );\n\n return (\n <div\n ref={(node) => {\n // Combine refs\n (listRef as React.MutableRefObject<HTMLDivElement | null>).current =\n node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n role=\"tablist\"\n data-slot=\"tabs-list\"\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\n\nTabsList.displayName = 'TabsList';\n\n// ============================================================================\n// Tabs Trigger\n// ============================================================================\n\nconst tabsTriggerVariants = cva(\n [\n 'inline-flex items-center justify-center gap-2',\n 'font-medium transition-all duration-200',\n 'whitespace-nowrap',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n {\n variants: {\n variant: {\n underline: [\n 'px-4 py-2 -mb-px',\n 'border-b-2 border-transparent',\n 'text-muted-foreground hover:text-foreground',\n 'data-[state=active]:border-primary-700 data-[state=active]:text-primary-800',\n ],\n pills: [\n 'px-3 py-1.5 rounded-md text-sm',\n 'text-muted-foreground hover:text-foreground',\n 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',\n ],\n enclosed: [\n 'px-4 py-2 -mb-px',\n 'border border-transparent rounded-t-lg',\n 'text-muted-foreground hover:text-foreground',\n 'data-[state=active]:border-border data-[state=active]:border-b-background data-[state=active]:bg-background data-[state=active]:text-foreground',\n ],\n },\n },\n defaultVariants: {\n variant: 'underline',\n },\n }\n);\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** The value that identifies this tab */\n value: string;\n /** Icon to show before the label */\n icon?: React.ReactNode;\n}\n\n/**\n * A tab trigger button.\n */\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, icon, children, disabled, ...props }, ref) => {\n const { value: selectedValue, onValueChange, variant } = useTabsContext();\n const isSelected = selectedValue === value;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"tab\"\n data-slot=\"tabs-trigger\"\n aria-selected={isSelected}\n aria-controls={`tabpanel-${value}`}\n id={`tab-${value}`}\n tabIndex={isSelected ? 0 : -1}\n data-state={isSelected ? 'active' : 'inactive'}\n disabled={disabled}\n onClick={() => onValueChange(value)}\n className={cn(tabsTriggerVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <span data-slot=\"tabs-trigger-icon\" className=\"shrink-0\">\n {icon}\n </span>\n )}\n {children}\n </button>\n );\n }\n);\n\nTabsTrigger.displayName = 'TabsTrigger';\n\n// ============================================================================\n// Tabs Content\n// ============================================================================\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The value that identifies this content panel */\n value: string;\n /** Force mount the content (useful for animations) */\n forceMount?: boolean;\n}\n\n/**\n * Content panel for a tab.\n */\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, forceMount = false, children, ...props }, ref) => {\n const { value: selectedValue } = useTabsContext();\n const isSelected = selectedValue === value;\n\n if (!isSelected && !forceMount) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n data-slot=\"tabs-content\"\n id={`tabpanel-${value}`}\n aria-labelledby={`tab-${value}`}\n tabIndex={0}\n hidden={!isSelected}\n data-state={isSelected ? 'active' : 'inactive'}\n className={cn(\n 'focus-visible:ring-ring mt-4 rounded-lg focus-visible:ring-2 focus-visible:outline-none',\n !isSelected && 'hidden',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nTabsContent.displayName = 'TabsContent';\n\nexport {\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n tabsListVariants,\n tabsTriggerVariants,\n};\n"]}
@@ -35,6 +35,7 @@ function Skeleton({
35
35
  return /* @__PURE__ */ jsxRuntime.jsx(
36
36
  "div",
37
37
  {
38
+ "data-slot": "skeleton",
38
39
  className: chunkOR5DRJCW_cjs.cn(
39
40
  skeletonVariants({ variant }),
40
41
  circle && "rounded-full",
@@ -62,16 +63,24 @@ function SkeletonText({
62
63
  md: "space-y-3",
63
64
  lg: "space-y-4"
64
65
  };
65
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkOR5DRJCW_cjs.cn(gapClasses[gap], className), "aria-hidden": "true", children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
66
- Skeleton,
66
+ return /* @__PURE__ */ jsxRuntime.jsx(
67
+ "div",
67
68
  {
68
- variant: "text",
69
- style: {
70
- width: index === lines - 1 ? lastLineWidth : "100%"
71
- }
72
- },
73
- index
74
- )) });
69
+ "data-slot": "skeleton-text",
70
+ className: chunkOR5DRJCW_cjs.cn(gapClasses[gap], className),
71
+ "aria-hidden": "true",
72
+ children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
73
+ Skeleton,
74
+ {
75
+ variant: "text",
76
+ style: {
77
+ width: index === lines - 1 ? lastLineWidth : "100%"
78
+ }
79
+ },
80
+ index
81
+ ))
82
+ }
83
+ );
75
84
  }
76
85
  SkeletonText.displayName = "SkeletonText";
77
86
  function SkeletonCard({
@@ -83,6 +92,7 @@ function SkeletonCard({
83
92
  return /* @__PURE__ */ jsxRuntime.jsxs(
84
93
  "div",
85
94
  {
95
+ "data-slot": "skeleton-card",
86
96
  className: chunkOR5DRJCW_cjs.cn(
87
97
  "border-border bg-card space-y-4 rounded-xl border p-4",
88
98
  className
@@ -111,17 +121,25 @@ function SkeletonTable({
111
121
  columns = 4,
112
122
  className
113
123
  }) {
114
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkOR5DRJCW_cjs.cn("space-y-3", className), "aria-hidden": "true", children: [
115
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { variant: "text", className: "h-5 flex-1" }, `header-${i}`)) }),
116
- Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsxRuntime.jsx(
117
- Skeleton,
118
- {
119
- variant: "text",
120
- className: "flex-1"
121
- },
122
- `cell-${rowIndex}-${colIndex}`
123
- )) }, `row-${rowIndex}`))
124
- ] });
124
+ return /* @__PURE__ */ jsxRuntime.jsxs(
125
+ "div",
126
+ {
127
+ "data-slot": "skeleton-table",
128
+ className: chunkOR5DRJCW_cjs.cn("space-y-3", className),
129
+ "aria-hidden": "true",
130
+ children: [
131
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { variant: "text", className: "h-5 flex-1" }, `header-${i}`)) }),
132
+ Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsxRuntime.jsx(
133
+ Skeleton,
134
+ {
135
+ variant: "text",
136
+ className: "flex-1"
137
+ },
138
+ `cell-${rowIndex}-${colIndex}`
139
+ )) }, `row-${rowIndex}`))
140
+ ]
141
+ }
142
+ );
125
143
  }
126
144
  SkeletonTable.displayName = "SkeletonTable";
127
145
 
@@ -130,5 +148,5 @@ exports.SkeletonCard = SkeletonCard;
130
148
  exports.SkeletonTable = SkeletonTable;
131
149
  exports.SkeletonText = SkeletonText;
132
150
  exports.skeletonVariants = skeletonVariants;
133
- //# sourceMappingURL=chunk-N3QTYHRZ.cjs.map
134
- //# sourceMappingURL=chunk-N3QTYHRZ.cjs.map
151
+ //# sourceMappingURL=chunk-3GGET5LK.cjs.map
152
+ //# sourceMappingURL=chunk-3GGET5LK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Skeleton/Skeleton.tsx"],"names":["cva","jsx","cn","jsxs","_"],"mappings":"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","file":"chunk-3GGET5LK.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst skeletonVariants = cva(\n ['animate-pulse rounded-md bg-neutral-200 dark:bg-neutral-700'],\n {\n variants: {\n variant: {\n default: '',\n text: 'h-4',\n title: 'h-6',\n avatar: 'rounded-full',\n button: 'h-10 w-24',\n card: 'h-40',\n image: 'aspect-video',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface SkeletonProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {\n /** Width of the skeleton */\n width?: string | number;\n /** Height of the skeleton */\n height?: string | number;\n /** Whether to render as a circle */\n circle?: boolean;\n}\n\n/**\n * A skeleton loading placeholder component.\n *\n * @example\n * ```tsx\n * <Skeleton variant=\"text\" width=\"60%\" />\n * <Skeleton variant=\"avatar\" width={40} height={40} />\n * <Skeleton variant=\"card\" />\n * ```\n */\nfunction Skeleton({\n className,\n variant,\n width,\n height,\n circle,\n style,\n ...props\n}: SkeletonProps) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\n skeletonVariants({ variant }),\n circle && 'rounded-full',\n className\n )}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n ...style,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n}\n\nSkeleton.displayName = 'Skeleton';\n\n// ============================================================================\n// Skeleton Text\n// ============================================================================\n\nexport interface SkeletonTextProps {\n /** Number of lines to display */\n lines?: number;\n /** Width of the last line (for varying line lengths) */\n lastLineWidth?: string;\n /** Gap between lines */\n gap?: 'sm' | 'md' | 'lg';\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A skeleton for text content with multiple lines.\n *\n * @example\n * ```tsx\n * <SkeletonText lines={3} lastLineWidth=\"60%\" />\n * ```\n */\nfunction SkeletonText({\n lines = 3,\n lastLineWidth = '60%',\n gap = 'sm',\n className,\n}: SkeletonTextProps) {\n const gapClasses = {\n sm: 'space-y-2',\n md: 'space-y-3',\n lg: 'space-y-4',\n };\n\n return (\n <div\n data-slot=\"skeleton-text\"\n className={cn(gapClasses[gap], className)}\n aria-hidden=\"true\"\n >\n {Array.from({ length: lines }).map((_, index) => (\n <Skeleton\n key={index}\n variant=\"text\"\n style={{\n width: index === lines - 1 ? lastLineWidth : '100%',\n }}\n />\n ))}\n </div>\n );\n}\n\nSkeletonText.displayName = 'SkeletonText';\n\n// ============================================================================\n// Skeleton Card\n// ============================================================================\n\nexport interface SkeletonCardProps {\n /** Show image placeholder */\n showImage?: boolean;\n /** Show avatar placeholder */\n showAvatar?: boolean;\n /** Number of text lines */\n textLines?: number;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A skeleton for card-like content.\n *\n * @example\n * ```tsx\n * <SkeletonCard showImage showAvatar textLines={2} />\n * ```\n */\nfunction SkeletonCard({\n showImage = true,\n showAvatar = false,\n textLines = 2,\n className,\n}: SkeletonCardProps) {\n return (\n <div\n data-slot=\"skeleton-card\"\n className={cn(\n 'border-border bg-card space-y-4 rounded-xl border p-4',\n className\n )}\n aria-hidden=\"true\"\n >\n {showImage && <Skeleton variant=\"image\" className=\"rounded-lg\" />}\n <div className=\"space-y-3\">\n {showAvatar && (\n <div className=\"flex items-center gap-3\">\n <Skeleton circle width={40} height={40} />\n <div className=\"flex-1 space-y-2\">\n <Skeleton variant=\"text\" width=\"50%\" />\n <Skeleton variant=\"text\" width=\"30%\" />\n </div>\n </div>\n )}\n <Skeleton variant=\"title\" width=\"80%\" />\n <SkeletonText lines={textLines} />\n </div>\n </div>\n );\n}\n\nSkeletonCard.displayName = 'SkeletonCard';\n\n// ============================================================================\n// Skeleton Table Row\n// ============================================================================\n\nexport interface SkeletonTableProps {\n /** Number of rows */\n rows?: number;\n /** Number of columns */\n columns?: number;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A skeleton for table content.\n *\n * @example\n * ```tsx\n * <SkeletonTable rows={5} columns={4} />\n * ```\n */\nfunction SkeletonTable({\n rows = 5,\n columns = 4,\n className,\n}: SkeletonTableProps) {\n return (\n <div\n data-slot=\"skeleton-table\"\n className={cn('space-y-3', className)}\n aria-hidden=\"true\"\n >\n {/* Header */}\n <div className=\"flex gap-4\">\n {Array.from({ length: columns }).map((_, i) => (\n <Skeleton key={`header-${i}`} variant=\"text\" className=\"h-5 flex-1\" />\n ))}\n </div>\n {/* Rows */}\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <div key={`row-${rowIndex}`} className=\"flex gap-4\">\n {Array.from({ length: columns }).map((_, colIndex) => (\n <Skeleton\n key={`cell-${rowIndex}-${colIndex}`}\n variant=\"text\"\n className=\"flex-1\"\n />\n ))}\n </div>\n ))}\n </div>\n );\n}\n\nSkeletonTable.displayName = 'SkeletonTable';\n\nexport {\n Skeleton,\n SkeletonText,\n SkeletonCard,\n SkeletonTable,\n skeletonVariants,\n};\n"]}
@@ -74,48 +74,74 @@ var Input = React__namespace.forwardRef(
74
74
  const helperId = `${inputId}-helper`;
75
75
  const describedByIds = [
76
76
  error ? errorId : null,
77
- helperText ? helperId : null,
77
+ helperText && !error ? helperId : null,
78
78
  ariaDescribedBy
79
79
  ].filter(Boolean).join(" ");
80
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkOR5DRJCW_cjs.cn("flex flex-col gap-1.5", disabled && "opacity-50"), children: [
81
- label && /* @__PURE__ */ jsxRuntime.jsxs(
82
- "label",
83
- {
84
- htmlFor: inputId,
85
- className: chunkOR5DRJCW_cjs.cn(
86
- "text-foreground text-sm font-medium",
87
- hideLabel && "sr-only"
80
+ return /* @__PURE__ */ jsxRuntime.jsxs(
81
+ "div",
82
+ {
83
+ "data-slot": "input-wrapper",
84
+ className: chunkOR5DRJCW_cjs.cn("flex flex-col gap-1.5", disabled && "opacity-50"),
85
+ children: [
86
+ label && /* @__PURE__ */ jsxRuntime.jsxs(
87
+ "label",
88
+ {
89
+ "data-slot": "input-label",
90
+ htmlFor: inputId,
91
+ className: chunkOR5DRJCW_cjs.cn(
92
+ "text-foreground text-sm font-medium",
93
+ hideLabel && "sr-only"
94
+ ),
95
+ children: [
96
+ label,
97
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", "aria-hidden": "true", children: "*" })
98
+ ]
99
+ }
88
100
  ),
89
- children: [
90
- label,
91
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", "aria-hidden": "true", children: "*" })
92
- ]
93
- }
94
- ),
95
- /* @__PURE__ */ jsxRuntime.jsx(
96
- "input",
97
- {
98
- id: inputId,
99
- ref,
100
- className: chunkOR5DRJCW_cjs.cn(
101
- inputVariants({ size, hasError: hasError || !!error }),
102
- className
101
+ /* @__PURE__ */ jsxRuntime.jsx(
102
+ "input",
103
+ {
104
+ "data-slot": "input",
105
+ id: inputId,
106
+ ref,
107
+ className: chunkOR5DRJCW_cjs.cn(
108
+ inputVariants({ size, hasError: hasError || !!error }),
109
+ className
110
+ ),
111
+ "aria-invalid": hasError || !!error,
112
+ "aria-describedby": describedByIds || void 0,
113
+ required,
114
+ disabled,
115
+ ...props
116
+ }
103
117
  ),
104
- "aria-invalid": hasError || !!error,
105
- "aria-describedby": describedByIds || void 0,
106
- required,
107
- disabled,
108
- ...props
109
- }
110
- ),
111
- error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className: "text-destructive text-sm", role: "alert", children: error }),
112
- helperText && !error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: helperId, className: "text-muted-foreground text-sm", children: helperText })
113
- ] });
118
+ error && /* @__PURE__ */ jsxRuntime.jsx(
119
+ "p",
120
+ {
121
+ id: errorId,
122
+ "data-slot": "input-error",
123
+ className: "text-destructive text-sm",
124
+ role: "alert",
125
+ children: error
126
+ }
127
+ ),
128
+ helperText && !error && /* @__PURE__ */ jsxRuntime.jsx(
129
+ "p",
130
+ {
131
+ id: helperId,
132
+ "data-slot": "input-helper",
133
+ className: "text-muted-foreground text-sm",
134
+ children: helperText
135
+ }
136
+ )
137
+ ]
138
+ }
139
+ );
114
140
  }
115
141
  );
116
142
  Input.displayName = "Input";
117
143
 
118
144
  exports.Input = Input;
119
145
  exports.inputVariants = inputVariants;
120
- //# sourceMappingURL=chunk-VV4N4WY6.cjs.map
121
- //# sourceMappingURL=chunk-VV4N4WY6.cjs.map
146
+ //# sourceMappingURL=chunk-3XK5GENF.cjs.map
147
+ //# sourceMappingURL=chunk-3XK5GENF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Input/Input.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-3XK5GENF.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\nconst inputVariants = cva(\n [\n 'w-full px-3 py-2',\n 'border border-input rounded-lg',\n 'bg-background text-foreground',\n 'placeholder:text-muted-foreground',\n 'transition-colors duration-200',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-8 text-sm',\n md: 'h-10 text-base',\n lg: 'h-12 text-lg',\n },\n hasError: {\n true: 'border-destructive focus:ring-destructive',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n hasError: false,\n },\n }\n);\n\nexport interface InputProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n /** Error message to display below the input */\n error?: string;\n /** Helper text to display below the input */\n helperText?: string;\n /** Label for the input */\n label?: string;\n /** Whether the label should be visually hidden (still accessible) */\n hideLabel?: boolean;\n /** Whether the input is required */\n required?: boolean;\n}\n\n/**\n * A styled input component with support for labels, errors, and helper text.\n *\n * @example\n * ```tsx\n * <Input label=\"Email\" type=\"email\" placeholder=\"you@example.com\" />\n * <Input label=\"Password\" type=\"password\" error=\"Password is required\" hasError />\n * ```\n */\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n size,\n hasError,\n error,\n helperText,\n label,\n hideLabel,\n required,\n disabled,\n id,\n 'aria-describedby': ariaDescribedBy,\n ...props\n },\n ref\n ) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n const errorId = `${inputId}-error`;\n const helperId = `${inputId}-helper`;\n\n const describedByIds = [\n error ? errorId : null,\n helperText && !error ? helperId : null,\n ariaDescribedBy,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n data-slot=\"input-wrapper\"\n className={cn('flex flex-col gap-1.5', disabled && 'opacity-50')}\n >\n {label && (\n <label\n data-slot=\"input-label\"\n htmlFor={inputId}\n className={cn(\n 'text-foreground text-sm font-medium',\n hideLabel && 'sr-only'\n )}\n >\n {label}\n {required && (\n <span className=\"text-destructive ml-1\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <input\n data-slot=\"input\"\n id={inputId}\n ref={ref}\n className={cn(\n inputVariants({ size, hasError: hasError || !!error }),\n className\n )}\n aria-invalid={hasError || !!error}\n aria-describedby={describedByIds || undefined}\n required={required}\n disabled={disabled}\n {...props}\n />\n {error && (\n <p\n id={errorId}\n data-slot=\"input-error\"\n className=\"text-destructive text-sm\"\n role=\"alert\"\n >\n {error}\n </p>\n )}\n {helperText && !error && (\n <p\n id={helperId}\n data-slot=\"input-helper\"\n className=\"text-muted-foreground text-sm\"\n >\n {helperText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport { Input, inputVariants };\n"]}
@@ -73,6 +73,7 @@ function RadioGroup({
73
73
  children: /* @__PURE__ */ jsxs(
74
74
  "fieldset",
75
75
  {
76
+ "data-slot": "radio-group",
76
77
  role: "radiogroup",
77
78
  className: cn("flex flex-col gap-2", className),
78
79
  "aria-describedby": [description ? descriptionId : null, error ? errorId : null].filter(Boolean).join(" ") || void 0,
@@ -80,6 +81,7 @@ function RadioGroup({
80
81
  label && /* @__PURE__ */ jsx(
81
82
  "legend",
82
83
  {
84
+ "data-slot": "radio-group-legend",
83
85
  className: cn(
84
86
  "text-foreground font-medium",
85
87
  size === "sm" && "text-xs",
@@ -93,6 +95,7 @@ function RadioGroup({
93
95
  "p",
94
96
  {
95
97
  id: descriptionId,
98
+ "data-slot": "radio-group-description",
96
99
  className: cn(
97
100
  "text-muted-foreground",
98
101
  size === "sm" && "text-[10px]",
@@ -105,6 +108,7 @@ function RadioGroup({
105
108
  /* @__PURE__ */ jsx(
106
109
  "div",
107
110
  {
111
+ "data-slot": "radio-group-items",
108
112
  className: cn(
109
113
  "flex gap-4",
110
114
  orientation === "vertical" && "flex-col gap-3"
@@ -116,6 +120,7 @@ function RadioGroup({
116
120
  "p",
117
121
  {
118
122
  id: errorId,
123
+ "data-slot": "radio-group-error",
119
124
  className: cn(
120
125
  "text-destructive",
121
126
  size === "sm" && "text-xs",
@@ -157,41 +162,51 @@ var Radio = React.forwardRef(
157
162
  context.onChange(value);
158
163
  }
159
164
  }, [isDisabled, context, value]);
160
- const radioElement = /* @__PURE__ */ jsxs("span", { className: "relative inline-flex items-center justify-center", children: [
161
- /* @__PURE__ */ jsx(
162
- "input",
163
- {
164
- ref,
165
- id: radioId,
166
- type: "radio",
167
- name: context.name,
168
- value,
169
- checked: isChecked,
170
- disabled: isDisabled,
171
- onChange: handleChange,
172
- "aria-describedby": description ? descriptionId : void 0,
173
- className: cn(radioVariants({ size }), className),
174
- ...props
175
- }
176
- ),
177
- /* @__PURE__ */ jsx(
178
- "span",
179
- {
180
- className: cn(
181
- "bg-primary-500 pointer-events-none absolute rounded-full transition-transform",
182
- size === "sm" && "h-2 w-2",
183
- size === "md" && "h-2.5 w-2.5",
184
- size === "lg" && "h-3 w-3",
185
- isChecked ? "scale-100" : "scale-0"
165
+ const radioElement = /* @__PURE__ */ jsxs(
166
+ "span",
167
+ {
168
+ "data-slot": "radio-indicator",
169
+ className: "relative inline-flex items-center justify-center",
170
+ children: [
171
+ /* @__PURE__ */ jsx(
172
+ "input",
173
+ {
174
+ ref,
175
+ "data-slot": "radio",
176
+ id: radioId,
177
+ type: "radio",
178
+ name: context.name,
179
+ value,
180
+ checked: isChecked,
181
+ disabled: isDisabled,
182
+ onChange: handleChange,
183
+ "aria-describedby": description ? descriptionId : void 0,
184
+ className: cn(radioVariants({ size }), className),
185
+ ...props
186
+ }
187
+ ),
188
+ /* @__PURE__ */ jsx(
189
+ "span",
190
+ {
191
+ "data-slot": "radio-dot",
192
+ className: cn(
193
+ "bg-primary-500 pointer-events-none absolute rounded-full transition-transform",
194
+ size === "sm" && "h-2 w-2",
195
+ size === "md" && "h-2.5 w-2.5",
196
+ size === "lg" && "h-3 w-3",
197
+ isChecked ? "scale-100" : "scale-0"
198
+ )
199
+ }
186
200
  )
187
- }
188
- )
189
- ] });
201
+ ]
202
+ }
203
+ );
190
204
  const labelElement = label && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
191
205
  /* @__PURE__ */ jsx(
192
206
  "label",
193
207
  {
194
208
  htmlFor: radioId,
209
+ "data-slot": "radio-label",
195
210
  className: cn(
196
211
  "text-foreground cursor-pointer font-medium select-none",
197
212
  size === "sm" && "text-xs",
@@ -206,6 +221,7 @@ var Radio = React.forwardRef(
206
221
  "p",
207
222
  {
208
223
  id: descriptionId,
224
+ "data-slot": "radio-description",
209
225
  className: cn(
210
226
  "text-muted-foreground",
211
227
  size === "sm" && "text-[10px]",
@@ -219,6 +235,7 @@ var Radio = React.forwardRef(
219
235
  return /* @__PURE__ */ jsxs(
220
236
  "div",
221
237
  {
238
+ "data-slot": "radio-wrapper",
222
239
  className: cn(
223
240
  "flex items-start gap-3",
224
241
  labelPosition === "left" && "flex-row-reverse"
@@ -234,5 +251,5 @@ var Radio = React.forwardRef(
234
251
  Radio.displayName = "Radio";
235
252
 
236
253
  export { Radio, RadioGroup, radioVariants };
237
- //# sourceMappingURL=chunk-OW2BWGST.js.map
238
- //# sourceMappingURL=chunk-OW2BWGST.js.map
254
+ //# sourceMappingURL=chunk-4ASPCSWT.js.map
255
+ //# sourceMappingURL=chunk-4ASPCSWT.js.map