@mdigital_ui/ui 0.2.6 → 0.2.7

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 (257) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1023 -341
  3. package/dist/accordion/index.js +3 -3
  4. package/dist/avatar/index.js +4 -0
  5. package/dist/avatar/index.js.map +1 -0
  6. package/dist/badge/index.js +3 -3
  7. package/dist/breadcrumbs/index.js +5 -5
  8. package/dist/button/index.js +4 -4
  9. package/dist/button-group/index.js +2 -2
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.js +2 -2
  12. package/dist/cascader/index.js +2 -2
  13. package/dist/chart/index.js +2 -2
  14. package/dist/checkbox/index.js +3 -3
  15. package/dist/checkbox-group/index.js +2 -2
  16. package/dist/{chunk-23BPDLT4.js → chunk-27QEPVKU.js} +42 -22
  17. package/dist/chunk-27QEPVKU.js.map +1 -0
  18. package/dist/{chunk-IRNJZ754.js → chunk-2J57G7XG.js} +76 -18
  19. package/dist/chunk-2J57G7XG.js.map +1 -0
  20. package/dist/{chunk-SOIF4SHB.js → chunk-2NYVRAG4.js} +24 -15
  21. package/dist/chunk-2NYVRAG4.js.map +1 -0
  22. package/dist/{chunk-3WVJE5MF.js → chunk-2OUGJBXK.js} +19 -12
  23. package/dist/chunk-2OUGJBXK.js.map +1 -0
  24. package/dist/{chunk-YII4K64U.js → chunk-2WZVD7P3.js} +36 -10
  25. package/dist/chunk-2WZVD7P3.js.map +1 -0
  26. package/dist/{chunk-7ODPSHIQ.js → chunk-3UCZ4GMN.js} +10 -4
  27. package/dist/chunk-3UCZ4GMN.js.map +1 -0
  28. package/dist/{chunk-7YPX6NJK.js → chunk-4LSKRZOT.js} +12 -7
  29. package/dist/chunk-4LSKRZOT.js.map +1 -0
  30. package/dist/{chunk-R2FZO7AM.js → chunk-4SQOFZ3N.js} +26 -9
  31. package/dist/chunk-4SQOFZ3N.js.map +1 -0
  32. package/dist/chunk-5PUATOLR.js +127 -0
  33. package/dist/chunk-5PUATOLR.js.map +1 -0
  34. package/dist/{chunk-555KXZRK.js → chunk-6TMOKYR7.js} +6 -4
  35. package/dist/chunk-6TMOKYR7.js.map +1 -0
  36. package/dist/{chunk-6IPISGTP.js → chunk-7UCNBMCV.js} +102 -27
  37. package/dist/chunk-7UCNBMCV.js.map +1 -0
  38. package/dist/{chunk-JFGLDCAK.js → chunk-AQYOVYPS.js} +19 -7
  39. package/dist/chunk-AQYOVYPS.js.map +1 -0
  40. package/dist/{chunk-Y2CXG3PT.js → chunk-C5YO5VZS.js} +8 -8
  41. package/dist/chunk-C5YO5VZS.js.map +1 -0
  42. package/dist/{chunk-7TN4PGYF.js → chunk-CHGJX5F2.js} +49 -33
  43. package/dist/chunk-CHGJX5F2.js.map +1 -0
  44. package/dist/{chunk-22FIGRGO.js → chunk-CK6A2R66.js} +31 -7
  45. package/dist/chunk-CK6A2R66.js.map +1 -0
  46. package/dist/{chunk-INH7KYCK.js → chunk-CMGCJXE5.js} +275 -95
  47. package/dist/chunk-CMGCJXE5.js.map +1 -0
  48. package/dist/{chunk-6MYKJE6A.js → chunk-CSRMVLPR.js} +109 -27
  49. package/dist/chunk-CSRMVLPR.js.map +1 -0
  50. package/dist/{chunk-EFMKUCGX.js → chunk-DH7R6NBG.js} +8 -5
  51. package/dist/chunk-DH7R6NBG.js.map +1 -0
  52. package/dist/{chunk-7BUNJYZO.js → chunk-FEMHXG2P.js} +22 -6
  53. package/dist/chunk-FEMHXG2P.js.map +1 -0
  54. package/dist/chunk-FIGSNRWY.js +382 -0
  55. package/dist/chunk-FIGSNRWY.js.map +1 -0
  56. package/dist/{chunk-JGQOEAWL.js → chunk-FVTMKQUE.js} +5 -3
  57. package/dist/chunk-FVTMKQUE.js.map +1 -0
  58. package/dist/{chunk-QVCGNOBE.js → chunk-GBVIACYQ.js} +78 -31
  59. package/dist/chunk-GBVIACYQ.js.map +1 -0
  60. package/dist/chunk-H47C2ENJ.js +215 -0
  61. package/dist/chunk-H47C2ENJ.js.map +1 -0
  62. package/dist/chunk-HWFI4GJE.js +130 -0
  63. package/dist/chunk-HWFI4GJE.js.map +1 -0
  64. package/dist/chunk-IA42ELUP.js +72 -0
  65. package/dist/chunk-IA42ELUP.js.map +1 -0
  66. package/dist/{chunk-SGMIDNPI.js → chunk-INQI3UUI.js} +73 -19
  67. package/dist/chunk-INQI3UUI.js.map +1 -0
  68. package/dist/{chunk-IHKPZOE5.js → chunk-J525ROGL.js} +6 -4
  69. package/dist/chunk-J525ROGL.js.map +1 -0
  70. package/dist/{chunk-AVPPV5OM.js → chunk-JLS4MBHN.js} +6 -4
  71. package/dist/chunk-JLS4MBHN.js.map +1 -0
  72. package/dist/{chunk-GGREAJO5.js → chunk-KTHWXHDN.js} +10 -5
  73. package/dist/chunk-KTHWXHDN.js.map +1 -0
  74. package/dist/{chunk-35K7N4JT.js → chunk-LMR7TKDJ.js} +17 -6
  75. package/dist/chunk-LMR7TKDJ.js.map +1 -0
  76. package/dist/{chunk-BYWYC7RC.js → chunk-MRFCITKK.js} +19 -10
  77. package/dist/chunk-MRFCITKK.js.map +1 -0
  78. package/dist/{chunk-TG2AECIN.js → chunk-MXDTUN3V.js} +22 -9
  79. package/dist/chunk-MXDTUN3V.js.map +1 -0
  80. package/dist/{chunk-2OGZENFC.js → chunk-NGYLRX6F.js} +2 -16
  81. package/dist/chunk-NGYLRX6F.js.map +1 -0
  82. package/dist/{chunk-TUTOU4X6.js → chunk-NTPWR57C.js} +6 -135
  83. package/dist/chunk-NTPWR57C.js.map +1 -0
  84. package/dist/{chunk-GFQXGLFD.js → chunk-OWXQ45GS.js} +82 -62
  85. package/dist/chunk-OWXQ45GS.js.map +1 -0
  86. package/dist/{chunk-L6EVOPWH.js → chunk-P6A75RAH.js} +6 -4
  87. package/dist/chunk-P6A75RAH.js.map +1 -0
  88. package/dist/{chunk-SYDNDYZJ.js → chunk-PXOHJJBE.js} +22 -9
  89. package/dist/chunk-PXOHJJBE.js.map +1 -0
  90. package/dist/{chunk-HWSLJGT7.js → chunk-Q57THXIU.js} +28 -10
  91. package/dist/chunk-Q57THXIU.js.map +1 -0
  92. package/dist/{chunk-NQB4V5P7.js → chunk-QDHGE7IF.js} +5 -5
  93. package/dist/chunk-QDHGE7IF.js.map +1 -0
  94. package/dist/{chunk-CPPFXCNB.js → chunk-QKSDVYKF.js} +4 -4
  95. package/dist/chunk-QKSDVYKF.js.map +1 -0
  96. package/dist/{chunk-DP6AWUH5.js → chunk-ROA7BYGB.js} +49 -19
  97. package/dist/chunk-ROA7BYGB.js.map +1 -0
  98. package/dist/{chunk-XG3KLPPS.js → chunk-RPIJ2KY7.js} +9 -4
  99. package/dist/chunk-RPIJ2KY7.js.map +1 -0
  100. package/dist/{chunk-C2MZL644.js → chunk-RW4RW4DV.js} +80 -30
  101. package/dist/chunk-RW4RW4DV.js.map +1 -0
  102. package/dist/chunk-RYKVZFGB.js +607 -0
  103. package/dist/chunk-RYKVZFGB.js.map +1 -0
  104. package/dist/chunk-SAVEKACZ.js +552 -0
  105. package/dist/chunk-SAVEKACZ.js.map +1 -0
  106. package/dist/chunk-SDNT2JGC.js +143 -0
  107. package/dist/chunk-SDNT2JGC.js.map +1 -0
  108. package/dist/{chunk-SMVVCZNM.js → chunk-SGRACNBP.js} +12 -7
  109. package/dist/chunk-SGRACNBP.js.map +1 -0
  110. package/dist/{chunk-PQZB43VJ.js → chunk-TTEBZZ3T.js} +28 -11
  111. package/dist/chunk-TTEBZZ3T.js.map +1 -0
  112. package/dist/{chunk-HBEJ4S2Y.js → chunk-US4ZCMNU.js} +19 -13
  113. package/dist/chunk-US4ZCMNU.js.map +1 -0
  114. package/dist/chunk-UUP7YGOS.js +299 -0
  115. package/dist/chunk-UUP7YGOS.js.map +1 -0
  116. package/dist/{chunk-MDY3HCRC.js → chunk-VUBU7Y4F.js} +47 -18
  117. package/dist/chunk-VUBU7Y4F.js.map +1 -0
  118. package/dist/chunk-WUBMNJGC.js +141 -0
  119. package/dist/chunk-WUBMNJGC.js.map +1 -0
  120. package/dist/{chunk-TWZ5LXLL.js → chunk-WVG3QQDN.js} +45 -16
  121. package/dist/chunk-WVG3QQDN.js.map +1 -0
  122. package/dist/{chunk-NZA526GC.js → chunk-WZ2KDHFP.js} +16 -13
  123. package/dist/chunk-WZ2KDHFP.js.map +1 -0
  124. package/dist/{chunk-O2VJ6KP4.js → chunk-X5SCI7KH.js} +190 -142
  125. package/dist/chunk-X5SCI7KH.js.map +1 -0
  126. package/dist/{chunk-DV5J5NLI.js → chunk-XJCWPPMM.js} +8 -5
  127. package/dist/chunk-XJCWPPMM.js.map +1 -0
  128. package/dist/{chunk-ARK3EROZ.js → chunk-YAAV7FQG.js} +20 -12
  129. package/dist/chunk-YAAV7FQG.js.map +1 -0
  130. package/dist/{chunk-MLNIKNLI.js → chunk-YOG5GXIC.js} +57 -11
  131. package/dist/chunk-YOG5GXIC.js.map +1 -0
  132. package/dist/chunk-Z5VJ6MJP.js +234 -0
  133. package/dist/chunk-Z5VJ6MJP.js.map +1 -0
  134. package/dist/{chunk-77YTCM7G.js → chunk-ZC3E3PWH.js} +75 -32
  135. package/dist/chunk-ZC3E3PWH.js.map +1 -0
  136. package/dist/clipboard/index.js +2 -2
  137. package/dist/collapse/index.js +2 -2
  138. package/dist/command/index.js +3 -3
  139. package/dist/context-menu/index.js +4 -0
  140. package/dist/context-menu/index.js.map +1 -0
  141. package/dist/date-picker/index.js +4 -4
  142. package/dist/descriptions/index.js +2 -2
  143. package/dist/divider/index.js +4 -0
  144. package/dist/divider/index.js.map +1 -0
  145. package/dist/drawer/index.js +2 -2
  146. package/dist/dropdown/index.js +4 -4
  147. package/dist/empty/index.js +2 -2
  148. package/dist/fetching-overlay/index.js +4 -4
  149. package/dist/grid/index.js +2 -2
  150. package/dist/image/index.js +2 -2
  151. package/dist/index.d.ts +1242 -161
  152. package/dist/index.js +63 -883
  153. package/dist/index.js.map +1 -1
  154. package/dist/input/index.js +4 -4
  155. package/dist/input-group/index.js +2 -2
  156. package/dist/input-otp/index.js +2 -2
  157. package/dist/input-password/index.js +5 -5
  158. package/dist/kbd/index.js +3 -3
  159. package/dist/modal/index.js +2 -2
  160. package/dist/multi-select/index.js +4 -4
  161. package/dist/notification/index.js +3 -3
  162. package/dist/pagination/index.js +2 -2
  163. package/dist/popover/index.js +3 -3
  164. package/dist/progress/index.js +2 -2
  165. package/dist/radio/index.js +3 -3
  166. package/dist/radio-group/index.js +2 -2
  167. package/dist/rating/index.js +2 -2
  168. package/dist/ribbon/index.js +2 -2
  169. package/dist/select/index.js +5 -5
  170. package/dist/skeleton/index.js +3 -3
  171. package/dist/slider/index.js +2 -2
  172. package/dist/spinner/index.js +3 -3
  173. package/dist/stepper/index.js +2 -2
  174. package/dist/styles/base.css +169 -99
  175. package/dist/styles/global.css +1295 -721
  176. package/dist/styles/themes/dark.css +3 -1
  177. package/dist/styles/themes/light.css +3 -1
  178. package/dist/styles/themes/presets/corporate.css +126 -0
  179. package/dist/styles/themes/presets/minimal.css +126 -0
  180. package/dist/styles/themes/presets/vibrant.css +126 -0
  181. package/dist/switch/index.js +3 -3
  182. package/dist/table/index.js +10 -10
  183. package/dist/tabs/index.js +3 -3
  184. package/dist/tag/index.js +5 -0
  185. package/dist/tag/index.js.map +1 -0
  186. package/dist/textarea/index.js +2 -2
  187. package/dist/theme/index.js +3 -0
  188. package/dist/theme/index.js.map +1 -0
  189. package/dist/toggle/index.js +2 -2
  190. package/dist/toggle-group/index.js +2 -2
  191. package/dist/tooltip/index.js +3 -3
  192. package/dist/transfer/index.js +4 -4
  193. package/dist/tree/index.js +2 -2
  194. package/dist/tree-select/index.js +5 -5
  195. package/dist/upload/index.js +2 -2
  196. package/package.json +460 -72
  197. package/dist/chunk-22FIGRGO.js.map +0 -1
  198. package/dist/chunk-23BPDLT4.js.map +0 -1
  199. package/dist/chunk-2OGZENFC.js.map +0 -1
  200. package/dist/chunk-35K7N4JT.js.map +0 -1
  201. package/dist/chunk-3QKPSJTV.js +0 -120
  202. package/dist/chunk-3QKPSJTV.js.map +0 -1
  203. package/dist/chunk-3WVJE5MF.js.map +0 -1
  204. package/dist/chunk-555KXZRK.js.map +0 -1
  205. package/dist/chunk-6IPISGTP.js.map +0 -1
  206. package/dist/chunk-6MYKJE6A.js.map +0 -1
  207. package/dist/chunk-6PFBSVLK.js +0 -39
  208. package/dist/chunk-6PFBSVLK.js.map +0 -1
  209. package/dist/chunk-77YTCM7G.js.map +0 -1
  210. package/dist/chunk-7BUNJYZO.js.map +0 -1
  211. package/dist/chunk-7ODPSHIQ.js.map +0 -1
  212. package/dist/chunk-7TN4PGYF.js.map +0 -1
  213. package/dist/chunk-7YPX6NJK.js.map +0 -1
  214. package/dist/chunk-ARK3EROZ.js.map +0 -1
  215. package/dist/chunk-AVPPV5OM.js.map +0 -1
  216. package/dist/chunk-BYWYC7RC.js.map +0 -1
  217. package/dist/chunk-C2MZL644.js.map +0 -1
  218. package/dist/chunk-CPPFXCNB.js.map +0 -1
  219. package/dist/chunk-DP6AWUH5.js.map +0 -1
  220. package/dist/chunk-DV5J5NLI.js.map +0 -1
  221. package/dist/chunk-EFMKUCGX.js.map +0 -1
  222. package/dist/chunk-GFQXGLFD.js.map +0 -1
  223. package/dist/chunk-GGREAJO5.js.map +0 -1
  224. package/dist/chunk-GH3CNX5N.js +0 -178
  225. package/dist/chunk-GH3CNX5N.js.map +0 -1
  226. package/dist/chunk-HBEJ4S2Y.js.map +0 -1
  227. package/dist/chunk-HWSLJGT7.js.map +0 -1
  228. package/dist/chunk-IHKPZOE5.js.map +0 -1
  229. package/dist/chunk-INH7KYCK.js.map +0 -1
  230. package/dist/chunk-IRNJZ754.js.map +0 -1
  231. package/dist/chunk-IUUEYOMN.js +0 -470
  232. package/dist/chunk-IUUEYOMN.js.map +0 -1
  233. package/dist/chunk-JFGLDCAK.js.map +0 -1
  234. package/dist/chunk-JGQOEAWL.js.map +0 -1
  235. package/dist/chunk-L6EVOPWH.js.map +0 -1
  236. package/dist/chunk-LSQLUYTD.js +0 -192
  237. package/dist/chunk-LSQLUYTD.js.map +0 -1
  238. package/dist/chunk-MDY3HCRC.js.map +0 -1
  239. package/dist/chunk-MLNIKNLI.js.map +0 -1
  240. package/dist/chunk-NQB4V5P7.js.map +0 -1
  241. package/dist/chunk-NZA526GC.js.map +0 -1
  242. package/dist/chunk-O2VJ6KP4.js.map +0 -1
  243. package/dist/chunk-PQZB43VJ.js.map +0 -1
  244. package/dist/chunk-QVCGNOBE.js.map +0 -1
  245. package/dist/chunk-R2FZO7AM.js.map +0 -1
  246. package/dist/chunk-SGMIDNPI.js.map +0 -1
  247. package/dist/chunk-SMVVCZNM.js.map +0 -1
  248. package/dist/chunk-SOIF4SHB.js.map +0 -1
  249. package/dist/chunk-SYDNDYZJ.js.map +0 -1
  250. package/dist/chunk-TG2AECIN.js.map +0 -1
  251. package/dist/chunk-TIMRHEKH.js +0 -452
  252. package/dist/chunk-TIMRHEKH.js.map +0 -1
  253. package/dist/chunk-TUTOU4X6.js.map +0 -1
  254. package/dist/chunk-TWZ5LXLL.js.map +0 -1
  255. package/dist/chunk-XG3KLPPS.js.map +0 -1
  256. package/dist/chunk-Y2CXG3PT.js.map +0 -1
  257. package/dist/chunk-YII4K64U.js.map +0 -1
@@ -1,5 +1,5 @@
1
- export { accordion_default as default } from '../chunk-22FIGRGO.js';
2
- import '../chunk-TUTOU4X6.js';
3
- import '../chunk-2OGZENFC.js';
1
+ export { accordion_default as default } from '../chunk-CK6A2R66.js';
2
+ import '../chunk-NTPWR57C.js';
3
+ import '../chunk-NGYLRX6F.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ export { Avatar, AvatarGroup, avatar_default as default } from '../chunk-UUP7YGOS.js';
2
+ import '../chunk-NGYLRX6F.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,5 +1,5 @@
1
- export { badge_default as default } from '../chunk-AVPPV5OM.js';
2
- import '../chunk-TUTOU4X6.js';
3
- import '../chunk-2OGZENFC.js';
1
+ export { badge_default as default } from '../chunk-JLS4MBHN.js';
2
+ import '../chunk-NTPWR57C.js';
3
+ import '../chunk-NGYLRX6F.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default as default } from '../chunk-SGMIDNPI.js';
2
- import '../chunk-TWZ5LXLL.js';
3
- import '../chunk-EFMKUCGX.js';
4
- import '../chunk-TUTOU4X6.js';
5
- import '../chunk-2OGZENFC.js';
1
+ export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default as default } from '../chunk-INQI3UUI.js';
2
+ import '../chunk-WVG3QQDN.js';
3
+ import '../chunk-DH7R6NBG.js';
4
+ import '../chunk-NTPWR57C.js';
5
+ import '../chunk-NGYLRX6F.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { button_default as default } from '../chunk-MLNIKNLI.js';
2
- import '../chunk-NQB4V5P7.js';
3
- import '../chunk-TUTOU4X6.js';
4
- import '../chunk-2OGZENFC.js';
1
+ export { button_default as default } from '../chunk-YOG5GXIC.js';
2
+ import '../chunk-QDHGE7IF.js';
3
+ import '../chunk-NTPWR57C.js';
4
+ import '../chunk-NGYLRX6F.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { button_group_default as default } from '../chunk-7ODPSHIQ.js';
2
- import '../chunk-2OGZENFC.js';
1
+ export { button_group_default as default } from '../chunk-3UCZ4GMN.js';
2
+ import '../chunk-NGYLRX6F.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, cardVariants, card_default as default } from '../chunk-TG2AECIN.js';
2
- import '../chunk-2OGZENFC.js';
1
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, cardVariants, card_default as default } from '../chunk-MXDTUN3V.js';
2
+ import '../chunk-NGYLRX6F.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { carousel_default as default } from '../chunk-3QKPSJTV.js';
2
- import '../chunk-2OGZENFC.js';
1
+ export { carousel_default as default } from '../chunk-HWFI4GJE.js';
2
+ import '../chunk-NGYLRX6F.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { cascader_default as default } from '../chunk-3WVJE5MF.js';
2
- import '../chunk-2OGZENFC.js';
1
+ export { cascader_default as default } from '../chunk-2OUGJBXK.js';
2
+ import '../chunk-NGYLRX6F.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { AreaChart, BarChart, ComposedChart, LineChart, PieChart, axisLineStyle, axisTickStyle, chartContainerVariants, cursorStyle, getChartColor, gridStyle, legendStyle, tooltipStyle } from '../chunk-Y2CXG3PT.js';
2
- import '../chunk-2OGZENFC.js';
1
+ export { AreaChart, BarChart, ComposedChart, LineChart, PieChart, axisLineStyle, axisTickStyle, chartContainerVariants, cursorStyle, getChartColor, gridStyle, legendStyle, tooltipStyle } from '../chunk-C5YO5VZS.js';
2
+ import '../chunk-NGYLRX6F.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { checkbox_default as default } from '../chunk-PQZB43VJ.js';
2
- import '../chunk-TUTOU4X6.js';
3
- import '../chunk-2OGZENFC.js';
1
+ export { checkbox_default as default } from '../chunk-TTEBZZ3T.js';
2
+ import '../chunk-NTPWR57C.js';
3
+ import '../chunk-NGYLRX6F.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { checkbox_group_default as default } from '../chunk-7YPX6NJK.js';
2
- import '../chunk-2OGZENFC.js';
1
+ export { checkbox_group_default as default } from '../chunk-4LSKRZOT.js';
2
+ import '../chunk-NGYLRX6F.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
- import { radioCheckedColorClasses } from './chunk-TUTOU4X6.js';
2
- import { cn } from './chunk-2OGZENFC.js';
1
+ import { radioCheckedColorClasses } from './chunk-NTPWR57C.js';
2
+ import { cn } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
- import React from 'react';
5
- import { jsx, jsxs } from 'react/jsx-runtime';
4
+ import React, { useId } from 'react';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
7
7
  var radioVariants = cva(
8
8
  "appearance-none rounded-full border-border border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none",
@@ -35,22 +35,37 @@ var Radio = React.memo(
35
35
  error,
36
36
  className,
37
37
  ref,
38
+ classNames,
38
39
  ...props
39
40
  }) => {
40
- const radioElement = /* @__PURE__ */ jsx(
41
- "input",
42
- {
43
- ref,
44
- type: "radio",
45
- className: cn(
46
- radioVariants({ color, size, error: !!error }),
47
- className
48
- ),
49
- ...props
50
- }
51
- );
41
+ const uniqueId = useId();
42
+ const helperId = `radio-helper-${uniqueId}`;
43
+ const hasHelperText = !!(helperText || error);
44
+ const radioElement = /* @__PURE__ */ jsxs("div", { className: "relative inline-flex", children: [
45
+ /* @__PURE__ */ jsx(
46
+ "input",
47
+ {
48
+ ref,
49
+ type: "radio",
50
+ className: cn(
51
+ "radio_radio",
52
+ radioVariants({ color, size, error: !!error }),
53
+ className,
54
+ classNames?.radio
55
+ ),
56
+ "aria-invalid": !!error || void 0,
57
+ "aria-describedby": hasHelperText ? helperId : void 0,
58
+ ...props
59
+ }
60
+ ),
61
+ /* @__PURE__ */ jsx("div", { className: cn(
62
+ "radio_indicator",
63
+ "absolute inset-0 pointer-events-none",
64
+ classNames?.indicator
65
+ ) })
66
+ ] });
52
67
  if (!label && !helperText && !error) return radioElement;
53
- return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
68
+ return /* @__PURE__ */ jsxs("div", { className: cn("radio_root", "w-full", classNames?.root), children: [
54
69
  /* @__PURE__ */ jsxs(
55
70
  "label",
56
71
  {
@@ -64,9 +79,11 @@ var Radio = React.memo(
64
79
  "span",
65
80
  {
66
81
  className: cn(
82
+ "radio_label",
67
83
  "text-sm text-text-secondary select-none",
68
84
  error && "text-error",
69
- props.disabled && "opacity-50"
85
+ props.disabled && "opacity-50",
86
+ classNames?.label
70
87
  ),
71
88
  children: label
72
89
  }
@@ -77,11 +94,14 @@ var Radio = React.memo(
77
94
  (helperText || error) && /* @__PURE__ */ jsx(
78
95
  "p",
79
96
  {
97
+ id: helperId,
80
98
  className: cn(
99
+ "radio_description",
81
100
  "mt-1 ml-0 text-xs",
82
- error ? "text-error" : "text-text-secondary"
101
+ error ? "text-error" : "text-text-secondary",
102
+ classNames?.description
83
103
  ),
84
- children: error || helperText
104
+ children: typeof error === "string" ? error : helperText
85
105
  }
86
106
  )
87
107
  ] });
@@ -91,5 +111,5 @@ Radio.displayName = "Radio";
91
111
  var radio_default = Radio;
92
112
 
93
113
  export { radio_default };
94
- //# sourceMappingURL=chunk-23BPDLT4.js.map
95
- //# sourceMappingURL=chunk-23BPDLT4.js.map
114
+ //# sourceMappingURL=chunk-27QEPVKU.js.map
115
+ //# sourceMappingURL=chunk-27QEPVKU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/radio/index.tsx"],"names":[],"mappings":"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","file":"chunk-27QEPVKU.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useId } from 'react'\n\nimport { cn } from '../utils'\nimport { radioCheckedColorClasses } from '../variants'\nimport type { RadioProps } from './types'\n\nconst radioVariants = cva(\n 'appearance-none rounded-full border-border border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none',\n {\n variants: {\n color: radioCheckedColorClasses,\n size: {\n xs: 'w-(--checkbox-size-xs) h-(--checkbox-size-xs)',\n sm: 'w-(--checkbox-size-sm) h-(--checkbox-size-sm)',\n md: 'w-(--checkbox-size-md) h-(--checkbox-size-md)',\n lg: 'w-(--checkbox-size-lg) h-(--checkbox-size-lg)',\n },\n error: {\n true: 'border-error checked:border-error',\n false: '',\n },\n },\n defaultVariants: {\n color: 'primary',\n size: 'md',\n },\n },\n)\n\nconst Radio = React.memo<RadioProps>(\n ({\n color = 'primary',\n size = 'md',\n label,\n helperText,\n error,\n className,\n ref,\n classNames,\n ...props\n }) => {\n // Generate unique ID for accessibility\n const uniqueId = useId()\n const helperId = `radio-helper-${uniqueId}`\n const hasHelperText = !!(helperText || error)\n\n const radioElement = (\n <div className=\"relative inline-flex\">\n <input\n ref={ref}\n type=\"radio\"\n className={cn(\n 'radio_radio',\n radioVariants({ color, size, error: !!error }),\n className,\n classNames?.radio,\n )}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n {...props}\n />\n <div className={cn(\n 'radio_indicator',\n 'absolute inset-0 pointer-events-none',\n classNames?.indicator,\n )} />\n </div>\n )\n\n if (!label && !helperText && !error) return radioElement\n\n return (\n <div className={cn('radio_root', 'w-full', classNames?.root)}>\n <label\n className={cn(\n 'flex items-center gap-2',\n !props.disabled && 'cursor-pointer',\n )}\n >\n {radioElement}\n {label && (\n <span\n className={cn(\n 'radio_label',\n 'text-sm text-text-secondary select-none',\n error && 'text-error',\n props.disabled && 'opacity-50',\n classNames?.label,\n )}\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n 'radio_description',\n 'mt-1 ml-0 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n classNames?.description,\n )}\n >\n {typeof error === 'string' ? error : helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nRadio.displayName = 'Radio'\n\nexport type * from './types'\nexport default Radio\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-2OGZENFC.js';
1
+ import { cn } from './chunk-NGYLRX6F.js';
2
2
  import * as DialogPrimitive from '@radix-ui/react-dialog';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { XIcon } from 'lucide-react';
@@ -67,13 +67,19 @@ var modalOverlayVariants = cva(
67
67
  function ModalOverlay({
68
68
  className,
69
69
  opacity = "medium",
70
+ classNames,
70
71
  ...props
71
72
  }) {
72
73
  return /* @__PURE__ */ jsx(
73
74
  DialogPrimitive.Overlay,
74
75
  {
75
76
  "data-slot": "modal-overlay",
76
- className: cn(modalOverlayVariants({ opacity }), className),
77
+ className: cn(
78
+ "modal_overlay",
79
+ modalOverlayVariants({ opacity }),
80
+ classNames?.overlay,
81
+ className
82
+ ),
77
83
  ...props
78
84
  }
79
85
  );
@@ -133,16 +139,19 @@ function ModalContent({
133
139
  size = "md",
134
140
  color = "default",
135
141
  centered = false,
142
+ classNames,
136
143
  ...props
137
144
  }) {
138
145
  return /* @__PURE__ */ jsxs(ModalPortal, { "data-slot": "modal-portal", children: [
139
- /* @__PURE__ */ jsx(ModalOverlay, {}),
146
+ /* @__PURE__ */ jsx(ModalOverlay, { classNames }),
140
147
  /* @__PURE__ */ jsxs(
141
148
  DialogPrimitive.Content,
142
149
  {
143
150
  "data-slot": "modal-content",
144
151
  className: cn(
152
+ "modal_content",
145
153
  modalContentVariants({ size, color, centered }),
154
+ classNames?.content,
146
155
  className
147
156
  ),
148
157
  ...props,
@@ -152,7 +161,11 @@ function ModalContent({
152
161
  DialogPrimitive.Close,
153
162
  {
154
163
  "data-slot": "modal-close",
155
- className: modalCloseVariants({ size }),
164
+ className: cn(
165
+ "modal_closeButton",
166
+ modalCloseVariants({ size }),
167
+ classNames?.closeButton
168
+ ),
156
169
  children: [
157
170
  /* @__PURE__ */ jsx(XIcon, {}),
158
171
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
@@ -192,13 +205,19 @@ var ModalHeader = React.memo(function ModalHeader2({
192
205
  className,
193
206
  size = "md",
194
207
  color = "default",
208
+ classNames,
195
209
  ...props
196
210
  }) {
197
211
  return /* @__PURE__ */ jsx(
198
212
  "div",
199
213
  {
200
214
  "data-slot": "modal-header",
201
- className: cn(modalHeaderVariants({ size, color }), className),
215
+ className: cn(
216
+ "modal_header",
217
+ modalHeaderVariants({ size, color }),
218
+ classNames?.header,
219
+ className
220
+ ),
202
221
  ...props
203
222
  }
204
223
  );
@@ -219,12 +238,17 @@ var modalFooterVariants = cva(
219
238
  }
220
239
  }
221
240
  );
222
- var ModalFooter = React.memo(function ModalFooter2({ className, size = "md", ...props }) {
241
+ var ModalFooter = React.memo(function ModalFooter2({ className, size = "md", classNames, ...props }) {
223
242
  return /* @__PURE__ */ jsx(
224
243
  "div",
225
244
  {
226
245
  "data-slot": "modal-footer",
227
- className: cn(modalFooterVariants({ size }), className),
246
+ className: cn(
247
+ "modal_footer",
248
+ modalFooterVariants({ size }),
249
+ classNames?.footer,
250
+ className
251
+ ),
228
252
  ...props
229
253
  }
230
254
  );
@@ -242,12 +266,17 @@ var modalTitleVariants = cva("leading-none font-semibold text-text-primary", {
242
266
  size: "md"
243
267
  }
244
268
  });
245
- var ModalTitle = React.memo(function ModalTitle2({ className, size = "md", ...props }) {
269
+ var ModalTitle = React.memo(function ModalTitle2({ className, size = "md", classNames, ...props }) {
246
270
  return /* @__PURE__ */ jsx(
247
271
  DialogPrimitive.Title,
248
272
  {
249
273
  "data-slot": "modal-title",
250
- className: cn(modalTitleVariants({ size }), className),
274
+ className: cn(
275
+ "modal_title",
276
+ modalTitleVariants({ size }),
277
+ classNames?.title,
278
+ className
279
+ ),
251
280
  ...props
252
281
  }
253
282
  );
@@ -265,12 +294,17 @@ var modalDescriptionVariants = cva("text-text-secondary", {
265
294
  size: "md"
266
295
  }
267
296
  });
268
- var ModalDescription = React.memo(function ModalDescription2({ className, size = "md", ...props }) {
297
+ var ModalDescription = React.memo(function ModalDescription2({ className, size = "md", classNames, ...props }) {
269
298
  return /* @__PURE__ */ jsx(
270
299
  DialogPrimitive.Description,
271
300
  {
272
301
  "data-slot": "modal-description",
273
- className: cn(modalDescriptionVariants({ size }), className),
302
+ className: cn(
303
+ "modal_description",
304
+ modalDescriptionVariants({ size }),
305
+ classNames?.description,
306
+ className
307
+ ),
274
308
  ...props
275
309
  }
276
310
  );
@@ -289,7 +323,8 @@ function ComposedModal({
289
323
  hideHeader = false,
290
324
  hideFooter = false,
291
325
  className,
292
- contentClassName
326
+ contentClassName,
327
+ classNames
293
328
  }) {
294
329
  return /* @__PURE__ */ jsx(
295
330
  Modal,
@@ -304,6 +339,7 @@ function ComposedModal({
304
339
  centered,
305
340
  showCloseButton,
306
341
  className: contentClassName,
342
+ classNames,
307
343
  children: [
308
344
  !hideHeader && (title || description) && /* @__PURE__ */ jsxs(
309
345
  ModalHeader,
@@ -311,14 +347,36 @@ function ComposedModal({
311
347
  size,
312
348
  color,
313
349
  className,
350
+ classNames,
314
351
  children: [
315
- title && /* @__PURE__ */ jsx(ModalTitle, { size, children: title }),
316
- description && /* @__PURE__ */ jsx(ModalDescription, { size, children: description })
352
+ title && /* @__PURE__ */ jsx(
353
+ ModalTitle,
354
+ {
355
+ size,
356
+ classNames,
357
+ children: title
358
+ }
359
+ ),
360
+ description && /* @__PURE__ */ jsx(
361
+ ModalDescription,
362
+ {
363
+ size,
364
+ classNames,
365
+ children: description
366
+ }
367
+ )
317
368
  ]
318
369
  }
319
370
  ),
320
- children,
321
- !hideFooter && footer && /* @__PURE__ */ jsx(ModalFooter, { size, children: footer })
371
+ /* @__PURE__ */ jsx("div", { className: cn("modal_body", classNames?.body), children }),
372
+ !hideFooter && footer && /* @__PURE__ */ jsx(
373
+ ModalFooter,
374
+ {
375
+ size,
376
+ classNames,
377
+ children: footer
378
+ }
379
+ )
322
380
  ]
323
381
  }
324
382
  )
@@ -328,5 +386,5 @@ function ComposedModal({
328
386
  var modal_default = ComposedModal;
329
387
 
330
388
  export { Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, modal_default };
331
- //# sourceMappingURL=chunk-IRNJZ754.js.map
332
- //# sourceMappingURL=chunk-IRNJZ754.js.map
389
+ //# sourceMappingURL=chunk-2J57G7XG.js.map
390
+ //# sourceMappingURL=chunk-2J57G7XG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/modal/index.tsx"],"names":["ModalHeader","ModalFooter","ModalTitle","ModalDescription"],"mappings":"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","file":"chunk-2J57G7XG.js","sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { cva } from 'class-variance-authority'\nimport { XIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '../utils'\nimport type {\n ComposedModalProps,\n ModalClassNames,\n ModalColor,\n ModalSize,\n} from './types'\n\nfunction Modal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n data-slot=\"modal\"\n {...props}\n />\n )\n}\n\nfunction ModalTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return (\n <DialogPrimitive.Trigger\n data-slot=\"modal-trigger\"\n {...props}\n />\n )\n}\n\nfunction ModalPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return (\n <DialogPrimitive.Portal\n data-slot=\"modal-portal\"\n {...props}\n />\n )\n}\n\nfunction ModalClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return (\n <DialogPrimitive.Close\n data-slot=\"modal-close\"\n {...props}\n />\n )\n}\n\nconst modalOverlayVariants = cva(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/20 backdrop-blur-sm',\n {\n variants: {\n opacity: {\n light: 'bg-opacity-30',\n medium: 'bg-opacity-50',\n heavy: 'bg-opacity-70',\n },\n },\n defaultVariants: {\n opacity: 'medium',\n },\n },\n)\n\nfunction ModalOverlay({\n className,\n opacity = 'medium',\n classNames,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay> & {\n opacity?: 'light' | 'medium' | 'heavy'\n classNames?: ModalClassNames\n}) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"modal-overlay\"\n className={cn(\n 'modal_overlay',\n modalOverlayVariants({ opacity }),\n classNames?.overlay,\n className,\n )}\n {...props}\n />\n )\n}\n\nconst modalContentVariants = cva(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] rounded-md border duration-200',\n {\n variants: {\n size: {\n xs: 'max-w-(--modal-max-width-xs) gap-(--modal-gap-xs) p-(--modal-padding-xs) sm:max-w-(--modal-max-width-xs)',\n sm: 'max-w-(--modal-max-width-sm) gap-(--modal-gap-sm) p-(--modal-padding-sm) sm:max-w-(--modal-max-width-sm)',\n md: 'max-w-(--modal-max-width-md) gap-(--modal-gap-md) p-(--modal-padding-md) sm:max-w-(--modal-max-width-md)',\n lg: 'max-w-(--modal-max-width-lg) gap-(--modal-gap-lg) p-(--modal-padding-lg) sm:max-w-(--modal-max-width-lg)',\n },\n color: {\n default: 'border-border',\n primary: 'border-primary border-l-4',\n secondary: 'border-secondary border-l-4',\n accent: 'border-accent border-l-4',\n success: 'border-success border-l-4',\n error: 'border-error border-l-4',\n warning: 'border-warning border-l-4',\n info: 'border-info border-l-4',\n },\n centered: {\n true: 'text-center',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n centered: false,\n },\n },\n)\n\nconst modalCloseVariants = cva(\n 'absolute right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:pointer-events-none text-text-secondary hover:text-text-primary [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n size: {\n xs: 'top-3 [&_svg]:size-3.5',\n sm: 'top-3 [&_svg]:size-3.5',\n md: 'top-4 [&_svg]:size-4',\n lg: 'top-6 [&_svg]:size-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction ModalContent({\n className,\n children,\n showCloseButton = true,\n size = 'md',\n color = 'default',\n centered = false,\n classNames,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n size?: ModalSize\n color?: ModalColor\n centered?: boolean\n classNames?: ModalClassNames\n}) {\n return (\n <ModalPortal data-slot=\"modal-portal\">\n <ModalOverlay classNames={classNames} />\n <DialogPrimitive.Content\n data-slot=\"modal-content\"\n className={cn(\n 'modal_content',\n modalContentVariants({ size, color, centered }),\n classNames?.content,\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"modal-close\"\n className={cn(\n 'modal_closeButton',\n modalCloseVariants({ size }),\n classNames?.closeButton,\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </ModalPortal>\n )\n}\n\nconst modalHeaderVariants = cva('flex flex-col text-text-primary', {\n variants: {\n size: {\n xs: 'gap-1.5',\n sm: 'gap-1.5',\n md: 'gap-2',\n lg: 'gap-3',\n },\n color: {\n default: '',\n primary: 'border-l-primary',\n secondary: 'border-l-secondary',\n success: 'border-l-success',\n error: 'border-l-error',\n accent: 'border-l-accent',\n warning: 'border-l-warning',\n info: 'border-l-info',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n})\n\n// Performance optimization: Memoize Modal subcomponents to prevent unnecessary\n// re-renders when modal state changes but subcomponent props haven't changed\nconst ModalHeader = React.memo<\n React.ComponentProps<'div'> & {\n size?: ModalSize\n color?: ModalColor\n classNames?: ModalClassNames\n }\n>(function ModalHeader({\n className,\n size = 'md',\n color = 'default',\n classNames,\n ...props\n}) {\n return (\n <div\n data-slot=\"modal-header\"\n className={cn(\n 'modal_header',\n modalHeaderVariants({ size, color }),\n classNames?.header,\n className,\n )}\n {...props}\n />\n )\n})\n\nconst modalFooterVariants = cva(\n 'flex flex-col-reverse sm:flex-row sm:justify-end',\n {\n variants: {\n size: {\n xs: 'gap-1.5',\n sm: 'gap-1.5',\n md: 'gap-2',\n lg: 'gap-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst ModalFooter = React.memo<\n React.ComponentProps<'div'> & {\n size?: ModalSize\n classNames?: ModalClassNames\n }\n>(function ModalFooter({ className, size = 'md', classNames, ...props }) {\n return (\n <div\n data-slot=\"modal-footer\"\n className={cn(\n 'modal_footer',\n modalFooterVariants({ size }),\n classNames?.footer,\n className,\n )}\n {...props}\n />\n )\n})\n\nconst modalTitleVariants = cva('leading-none font-semibold text-text-primary', {\n variants: {\n size: {\n xs: 'text-base',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-2xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst ModalTitle = React.memo<\n React.ComponentProps<typeof DialogPrimitive.Title> & {\n size?: ModalSize\n classNames?: ModalClassNames\n }\n>(function ModalTitle({ className, size = 'md', classNames, ...props }) {\n return (\n <DialogPrimitive.Title\n data-slot=\"modal-title\"\n className={cn(\n 'modal_title',\n modalTitleVariants({ size }),\n classNames?.title,\n className,\n )}\n {...props}\n />\n )\n})\n\nconst modalDescriptionVariants = cva('text-text-secondary', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst ModalDescription = React.memo<\n React.ComponentProps<typeof DialogPrimitive.Description> & {\n size?: ModalSize\n classNames?: ModalClassNames\n }\n>(function ModalDescription({ className, size = 'md', classNames, ...props }) {\n return (\n <DialogPrimitive.Description\n data-slot=\"modal-description\"\n className={cn(\n 'modal_description',\n modalDescriptionVariants({ size }),\n classNames?.description,\n className,\n )}\n {...props}\n />\n )\n})\n\nfunction ComposedModal({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = 'md',\n color = 'default',\n centered = false,\n showCloseButton = true,\n hideHeader = false,\n hideFooter = false,\n className,\n contentClassName,\n classNames,\n}: ComposedModalProps) {\n return (\n <Modal\n open={open}\n onOpenChange={onOpenChange}\n >\n <ModalContent\n size={size}\n color={color}\n centered={centered}\n showCloseButton={showCloseButton}\n className={contentClassName}\n classNames={classNames}\n >\n {!hideHeader && (title || description) && (\n <ModalHeader\n size={size}\n color={color}\n className={className}\n classNames={classNames}\n >\n {title && (\n <ModalTitle\n size={size}\n classNames={classNames}\n >\n {title}\n </ModalTitle>\n )}\n {description && (\n <ModalDescription\n size={size}\n classNames={classNames}\n >\n {description}\n </ModalDescription>\n )}\n </ModalHeader>\n )}\n <div className={cn('modal_body', classNames?.body)}>{children}</div>\n {!hideFooter && footer && (\n <ModalFooter\n size={size}\n classNames={classNames}\n >\n {footer}\n </ModalFooter>\n )}\n </ModalContent>\n </Modal>\n )\n}\n\nexport type * from './types'\nexport {\n Modal,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalHeader,\n ModalOverlay,\n ModalPortal,\n ModalTitle,\n ModalTrigger,\n}\nexport default ComposedModal\n"]}
@@ -1,6 +1,6 @@
1
- import { getValidationStatus, cn, statusMessageVariants } from './chunk-2OGZENFC.js';
1
+ import { getValidationStatus, cn, statusMessageVariants } from './chunk-NGYLRX6F.js';
2
2
  import { cva } from 'class-variance-authority';
3
- import React from 'react';
3
+ import React, { useId } from 'react';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
5
5
 
6
6
  var textareaVariants = cva(
@@ -61,6 +61,7 @@ var Textarea = React.memo(
61
61
  autoResize = false,
62
62
  fullWidth = true,
63
63
  className,
64
+ classNames,
64
65
  value,
65
66
  onChange,
66
67
  ref,
@@ -71,6 +72,9 @@ var Textarea = React.memo(
71
72
  const [internalValue, setInternalValue] = React.useState(value || "");
72
73
  const currentValue = value !== void 0 ? value : internalValue;
73
74
  const currentLength = String(currentValue).length;
75
+ const uniqueId = useId();
76
+ const textareaId = props.id || `textarea-${uniqueId}`;
77
+ const helperId = `textarea-helper-${uniqueId}`;
74
78
  const { status, message: helperMessage } = getValidationStatus({
75
79
  error,
76
80
  warning,
@@ -97,7 +101,9 @@ var Textarea = React.memo(
97
101
  "textarea",
98
102
  {
99
103
  ref: textareaRef,
104
+ id: textareaId,
100
105
  className: cn(
106
+ "textarea_textarea",
101
107
  textareaVariants({
102
108
  variant,
103
109
  status,
@@ -106,13 +112,14 @@ var Textarea = React.memo(
106
112
  fullWidth
107
113
  }),
108
114
  autoResize && "overflow-hidden",
109
- className
115
+ className,
116
+ classNames?.textarea
110
117
  ),
111
118
  maxLength,
112
119
  value: currentValue,
113
120
  onChange: handleChange,
114
121
  "aria-invalid": status === "error",
115
- "aria-describedby": helperMessage ? `textarea-helper-${status}` : void 0,
122
+ "aria-describedby": helperMessage ? helperId : void 0,
116
123
  ...props
117
124
  }
118
125
  );
@@ -121,24 +128,26 @@ var Textarea = React.memo(
121
128
  "div",
122
129
  {
123
130
  className: cn(
131
+ "textarea_root",
124
132
  "w-full flex flex-col relative",
125
- !fullWidth && "inline-block"
133
+ !fullWidth && "inline-block",
134
+ classNames?.root
126
135
  ),
127
136
  children: [
128
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center relative mb-0.5", children: [
129
- label && /* @__PURE__ */ jsxs("p", { className: "text-sm font-medium text-text-secondary", children: [
137
+ /* @__PURE__ */ jsxs("div", { className: cn("textarea_wrapper", "flex gap-2 items-center relative mb-0.5", classNames?.wrapper), children: [
138
+ label && /* @__PURE__ */ jsxs("label", { htmlFor: textareaId, className: cn("textarea_label", "text-sm font-medium text-text-secondary", classNames?.label), children: [
130
139
  label,
131
- props.required && /* @__PURE__ */ jsx("span", { className: "text-error ml-1", children: "*" })
140
+ props.required && /* @__PURE__ */ jsx("span", { className: cn("textarea_error", "text-error ml-1", classNames?.error), children: "*" })
132
141
  ] }),
133
142
  helperMessage && messagePosition === "top" && /* @__PURE__ */ jsx(
134
143
  "p",
135
144
  {
136
- id: `textarea-helper-${status}`,
137
- className: statusMessageVariants({ status }),
145
+ id: helperId,
146
+ className: cn("textarea_helper", statusMessageVariants({ status }), classNames?.helper),
138
147
  children: helperMessage
139
148
  }
140
149
  ),
141
- showCount && maxLength && /* @__PURE__ */ jsxs("span", { className: "text-xs text-text-secondary absolute right-0", children: [
150
+ showCount && maxLength && /* @__PURE__ */ jsxs("span", { className: cn("textarea_counter", "text-xs text-text-secondary absolute right-0", classNames?.counter), children: [
142
151
  currentLength,
143
152
  "/",
144
153
  maxLength
@@ -148,8 +157,8 @@ var Textarea = React.memo(
148
157
  helperMessage && messagePosition === "bottom" && /* @__PURE__ */ jsx(
149
158
  "p",
150
159
  {
151
- id: `textarea-helper-${status}`,
152
- className: cn(statusMessageVariants({ status }), "mt-0.5"),
160
+ id: helperId,
161
+ className: cn("textarea_helper", statusMessageVariants({ status }), "mt-0.5", classNames?.helper),
153
162
  children: helperMessage
154
163
  }
155
164
  )
@@ -162,5 +171,5 @@ Textarea.displayName = "Textarea";
162
171
  var textarea_default = Textarea;
163
172
 
164
173
  export { textarea_default };
165
- //# sourceMappingURL=chunk-SOIF4SHB.js.map
166
- //# sourceMappingURL=chunk-SOIF4SHB.js.map
174
+ //# sourceMappingURL=chunk-2NYVRAG4.js.map
175
+ //# sourceMappingURL=chunk-2NYVRAG4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/textarea/index.tsx"],"names":[],"mappings":"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","file":"chunk-2NYVRAG4.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useId } from 'react'\n\nimport { cn, getValidationStatus, statusMessageVariants } from '../utils'\nimport type { TextareaProps } from './types'\n\nconst textareaVariants = cva(\n 'w-full rounded-md focus:border-primary transition-colors text-text-primary placeholder:text-text-secondary/50 disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none',\n {\n variants: {\n variant: {\n outline: 'bg-background border border-border',\n filled: 'bg-surface border border-transparent',\n },\n status: {\n default: '',\n error: '!border-error focus:!border-error',\n warning: '!border-warning focus:!border-warning',\n info: '!border-info focus:!border-info',\n success: '!border-success focus:!border-success',\n },\n size: {\n xs: 'min-h-(--textarea-min-height-xs) p-(--textarea-padding-xs) text-xs',\n sm: 'min-h-(--textarea-min-height-sm) p-(--textarea-padding-sm) text-sm',\n md: 'min-h-(--textarea-min-height-md) p-(--textarea-padding-md) text-base',\n lg: 'min-h-(--textarea-min-height-lg) p-(--textarea-padding-lg) text-lg',\n },\n resize: {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n resize: 'vertical',\n fullWidth: true,\n },\n },\n)\n\nconst Textarea = React.memo<TextareaProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n helperText,\n messagePosition = 'bottom',\n error,\n warning,\n info,\n success,\n resize = 'vertical',\n showCount = false,\n maxLength,\n autoResize = false,\n fullWidth = true,\n className,\n classNames,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const internalRef = React.useRef<HTMLTextAreaElement>(null)\n const textareaRef =\n (ref as React.RefObject<HTMLTextAreaElement>) || internalRef\n const [internalValue, setInternalValue] = React.useState(value || '')\n const currentValue = value !== undefined ? value : internalValue\n const currentLength = String(currentValue).length\n\n // Generate unique IDs for accessibility\n const uniqueId = useId()\n const textareaId = props.id || `textarea-${uniqueId}`\n const helperId = `textarea-helper-${uniqueId}`\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n },\n [value, onChange],\n )\n\n React.useEffect(() => {\n if (autoResize && textareaRef.current) {\n textareaRef.current.style.height = 'auto'\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`\n }\n }, [currentValue, autoResize, textareaRef])\n\n const textareaElement = (\n <textarea\n ref={textareaRef}\n id={textareaId}\n className={cn(\n 'textarea_textarea',\n textareaVariants({\n variant,\n status,\n size,\n resize: autoResize ? 'none' : resize,\n fullWidth,\n }),\n autoResize && 'overflow-hidden',\n className,\n classNames?.textarea,\n )}\n maxLength={maxLength}\n value={currentValue}\n onChange={handleChange}\n aria-invalid={status === 'error'}\n aria-describedby={helperMessage ? helperId : undefined}\n {...props}\n />\n )\n\n if (!label && !helperMessage && !showCount) return textareaElement\n\n return (\n <div\n className={cn(\n 'textarea_root',\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n classNames?.root,\n )}\n >\n <div className={cn('textarea_wrapper', 'flex gap-2 items-center relative mb-0.5', classNames?.wrapper)}>\n {label && (\n <label htmlFor={textareaId} className={cn('textarea_label', 'text-sm font-medium text-text-secondary', classNames?.label)}>\n {label}\n {props.required && <span className={cn('textarea_error', 'text-error ml-1', classNames?.error)}>*</span>}\n </label>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={helperId}\n className={cn('textarea_helper', statusMessageVariants({ status }), classNames?.helper)}\n >\n {helperMessage}\n </p>\n )}\n {showCount && maxLength && (\n <span className={cn('textarea_counter', 'text-xs text-text-secondary absolute right-0', classNames?.counter)}>\n {currentLength}/{maxLength}\n </span>\n )}\n </div>\n {textareaElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={helperId}\n className={cn('textarea_helper', statusMessageVariants({ status }), 'mt-0.5', classNames?.helper)}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTextarea.displayName = 'Textarea'\n\nexport type * from './types'\nexport default Textarea\n"]}