@zentauri-ui/zentauri-components 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. package/README.md +105 -0
  2. package/cli/cli.integration.test.ts +8 -0
  3. package/cli/index.mjs +46 -1
  4. package/dist/charts/area.js +11 -10
  5. package/dist/charts/area.js.map +1 -1
  6. package/dist/charts/area.mjs +4 -3
  7. package/dist/charts/area.mjs.map +1 -1
  8. package/dist/charts/bar.js +10 -9
  9. package/dist/charts/bar.js.map +1 -1
  10. package/dist/charts/bar.mjs +4 -3
  11. package/dist/charts/bar.mjs.map +1 -1
  12. package/dist/charts/bubble.js +10 -9
  13. package/dist/charts/bubble.js.map +1 -1
  14. package/dist/charts/bubble.mjs +4 -3
  15. package/dist/charts/bubble.mjs.map +1 -1
  16. package/dist/charts/line.js +10 -9
  17. package/dist/charts/line.js.map +1 -1
  18. package/dist/charts/line.mjs +4 -3
  19. package/dist/charts/line.mjs.map +1 -1
  20. package/dist/charts/pie.js +6 -5
  21. package/dist/charts/pie.js.map +1 -1
  22. package/dist/charts/pie.mjs +3 -2
  23. package/dist/charts/pie.mjs.map +1 -1
  24. package/dist/charts/shared/chart-frame.d.ts.map +1 -1
  25. package/dist/{chunk-QSIJKHC5.mjs → chunk-4XVNQ7IY.mjs} +223 -214
  26. package/dist/chunk-4XVNQ7IY.mjs.map +1 -0
  27. package/dist/chunk-4ZKBLVQX.js +248 -0
  28. package/dist/chunk-4ZKBLVQX.js.map +1 -0
  29. package/dist/chunk-ABOZ5QIX.js +84 -0
  30. package/dist/chunk-ABOZ5QIX.js.map +1 -0
  31. package/dist/chunk-ACGVDY5J.mjs +220 -0
  32. package/dist/chunk-ACGVDY5J.mjs.map +1 -0
  33. package/dist/{chunk-PPVJ4INP.mjs → chunk-ASJQP53L.mjs} +3 -3
  34. package/dist/{chunk-PPVJ4INP.mjs.map → chunk-ASJQP53L.mjs.map} +1 -1
  35. package/dist/{chunk-D55YIHBN.js → chunk-BTJYXKCW.js} +223 -214
  36. package/dist/chunk-BTJYXKCW.js.map +1 -0
  37. package/dist/{chunk-MM3P52WS.js → chunk-CL55KGDF.js} +56 -52
  38. package/dist/chunk-CL55KGDF.js.map +1 -0
  39. package/dist/chunk-CSFLMMAT.mjs +198 -0
  40. package/dist/chunk-CSFLMMAT.mjs.map +1 -0
  41. package/dist/chunk-EDARAO7X.js +206 -0
  42. package/dist/chunk-EDARAO7X.js.map +1 -0
  43. package/dist/chunk-EIRCCTNA.js +175 -0
  44. package/dist/chunk-EIRCCTNA.js.map +1 -0
  45. package/dist/chunk-EN4VLNBF.js +197 -0
  46. package/dist/chunk-EN4VLNBF.js.map +1 -0
  47. package/dist/chunk-FHLZH3PB.mjs +326 -0
  48. package/dist/chunk-FHLZH3PB.mjs.map +1 -0
  49. package/dist/chunk-FXYPRPAT.mjs +35 -0
  50. package/dist/chunk-FXYPRPAT.mjs.map +1 -0
  51. package/dist/{chunk-SPX2QDIB.mjs → chunk-G2WARVAM.mjs} +8 -4
  52. package/dist/chunk-G2WARVAM.mjs.map +1 -0
  53. package/dist/chunk-HCGSEPOD.mjs +196 -0
  54. package/dist/chunk-HCGSEPOD.mjs.map +1 -0
  55. package/dist/chunk-HDO5ZM2S.mjs +82 -0
  56. package/dist/chunk-HDO5ZM2S.mjs.map +1 -0
  57. package/dist/chunk-HMNIH3KJ.mjs +277 -0
  58. package/dist/chunk-HMNIH3KJ.mjs.map +1 -0
  59. package/dist/chunk-HNLQXHSQ.mjs +263 -0
  60. package/dist/chunk-HNLQXHSQ.mjs.map +1 -0
  61. package/dist/{chunk-M6FS7X54.mjs → chunk-ITVMSCOJ.mjs} +56 -52
  62. package/dist/chunk-ITVMSCOJ.mjs.map +1 -0
  63. package/dist/chunk-K7TCW5PJ.js +338 -0
  64. package/dist/chunk-K7TCW5PJ.js.map +1 -0
  65. package/dist/chunk-KTGV76M3.mjs +325 -0
  66. package/dist/chunk-KTGV76M3.mjs.map +1 -0
  67. package/dist/{chunk-JOMSI4WH.js → chunk-NFEA5TN2.js} +52 -47
  68. package/dist/chunk-NFEA5TN2.js.map +1 -0
  69. package/dist/chunk-NHQ3S4Y6.mjs +282 -0
  70. package/dist/chunk-NHQ3S4Y6.mjs.map +1 -0
  71. package/dist/{chunk-OVTWPGMW.mjs → chunk-NMQAHUYA.mjs} +52 -47
  72. package/dist/chunk-NMQAHUYA.mjs.map +1 -0
  73. package/dist/{chunk-MWR5DIA5.mjs → chunk-OULU7OC4.mjs} +3 -3
  74. package/dist/{chunk-MWR5DIA5.mjs.map → chunk-OULU7OC4.mjs.map} +1 -1
  75. package/dist/chunk-OZHETX4J.mjs +169 -0
  76. package/dist/chunk-OZHETX4J.mjs.map +1 -0
  77. package/dist/chunk-OZMSE44N.mjs +235 -0
  78. package/dist/chunk-OZMSE44N.mjs.map +1 -0
  79. package/dist/chunk-P5WLYJ2C.mjs +272 -0
  80. package/dist/chunk-P5WLYJ2C.mjs.map +1 -0
  81. package/dist/chunk-PMWRJ2KS.mjs +192 -0
  82. package/dist/chunk-PMWRJ2KS.mjs.map +1 -0
  83. package/dist/chunk-PR4QXFJT.js +132 -0
  84. package/dist/chunk-PR4QXFJT.js.map +1 -0
  85. package/dist/chunk-QAJOE3HJ.js +281 -0
  86. package/dist/chunk-QAJOE3HJ.js.map +1 -0
  87. package/dist/chunk-QBPVJH4P.mjs +128 -0
  88. package/dist/chunk-QBPVJH4P.mjs.map +1 -0
  89. package/dist/{chunk-MTJRPLMG.js → chunk-QNUDODDX.js} +8 -4
  90. package/dist/chunk-QNUDODDX.js.map +1 -0
  91. package/dist/{chunk-DO2LEXUY.js → chunk-QQ6F4LZK.js} +5 -5
  92. package/dist/{chunk-DO2LEXUY.js.map → chunk-QQ6F4LZK.js.map} +1 -1
  93. package/dist/chunk-QXHS3HHZ.mjs +340 -0
  94. package/dist/chunk-QXHS3HHZ.mjs.map +1 -0
  95. package/dist/chunk-QYLTKBH7.js +338 -0
  96. package/dist/chunk-QYLTKBH7.js.map +1 -0
  97. package/dist/chunk-TTTYW3TR.js +207 -0
  98. package/dist/chunk-TTTYW3TR.js.map +1 -0
  99. package/dist/chunk-W3QRRWQX.js +37 -0
  100. package/dist/chunk-W3QRRWQX.js.map +1 -0
  101. package/dist/chunk-WPXQHWPV.js +232 -0
  102. package/dist/chunk-WPXQHWPV.js.map +1 -0
  103. package/dist/chunk-XRDVD2EN.js +288 -0
  104. package/dist/chunk-XRDVD2EN.js.map +1 -0
  105. package/dist/chunk-XYEMP4K7.js +273 -0
  106. package/dist/chunk-XYEMP4K7.js.map +1 -0
  107. package/dist/chunk-YAO62VH2.js +342 -0
  108. package/dist/chunk-YAO62VH2.js.map +1 -0
  109. package/dist/{chunk-PVTTWOYV.js → chunk-Z6S36PDD.js} +7 -7
  110. package/dist/{chunk-PVTTWOYV.js.map → chunk-Z6S36PDD.js.map} +1 -1
  111. package/dist/chunk-ZYKJC5HH.js +296 -0
  112. package/dist/chunk-ZYKJC5HH.js.map +1 -0
  113. package/dist/design-system/accordion.d.ts +70 -0
  114. package/dist/design-system/accordion.d.ts.map +1 -0
  115. package/dist/design-system/alert.d.ts +39 -0
  116. package/dist/design-system/alert.d.ts.map +1 -0
  117. package/dist/design-system/avatar.d.ts +36 -0
  118. package/dist/design-system/avatar.d.ts.map +1 -0
  119. package/dist/design-system/badge.d.ts +71 -0
  120. package/dist/design-system/badge.d.ts.map +1 -0
  121. package/dist/design-system/breadcrumb.d.ts +27 -0
  122. package/dist/design-system/breadcrumb.d.ts.map +1 -0
  123. package/dist/design-system/button.d.ts +48 -0
  124. package/dist/design-system/button.d.ts.map +1 -0
  125. package/dist/design-system/card.d.ts +65 -0
  126. package/dist/design-system/card.d.ts.map +1 -0
  127. package/dist/design-system/divider.d.ts +45 -0
  128. package/dist/design-system/divider.d.ts.map +1 -0
  129. package/dist/design-system/drawer.d.ts +67 -0
  130. package/dist/design-system/drawer.d.ts.map +1 -0
  131. package/dist/design-system/dropdown.d.ts +79 -0
  132. package/dist/design-system/dropdown.d.ts.map +1 -0
  133. package/dist/design-system/dynamic-stepper.d.ts +29 -0
  134. package/dist/design-system/dynamic-stepper.d.ts.map +1 -0
  135. package/dist/design-system/empty-state.d.ts +29 -0
  136. package/dist/design-system/empty-state.d.ts.map +1 -0
  137. package/dist/design-system/file-upload.d.ts +19 -0
  138. package/dist/design-system/file-upload.d.ts.map +1 -0
  139. package/dist/design-system/index.d.ts +30 -0
  140. package/dist/design-system/index.d.ts.map +1 -0
  141. package/dist/design-system/inputs.d.ts +31 -0
  142. package/dist/design-system/inputs.d.ts.map +1 -0
  143. package/dist/design-system/modal.d.ts +66 -0
  144. package/dist/design-system/modal.d.ts.map +1 -0
  145. package/dist/design-system/pagination.d.ts +65 -0
  146. package/dist/design-system/pagination.d.ts.map +1 -0
  147. package/dist/design-system/progress.d.ts +57 -0
  148. package/dist/design-system/progress.d.ts.map +1 -0
  149. package/dist/design-system/select.d.ts +92 -0
  150. package/dist/design-system/select.d.ts.map +1 -0
  151. package/dist/design-system/skeleton.d.ts +104 -0
  152. package/dist/design-system/skeleton.d.ts.map +1 -0
  153. package/dist/design-system/slider.d.ts +44 -0
  154. package/dist/design-system/slider.d.ts.map +1 -0
  155. package/dist/design-system/spinner.d.ts +39 -0
  156. package/dist/design-system/spinner.d.ts.map +1 -0
  157. package/dist/design-system/stepper.d.ts +42 -0
  158. package/dist/design-system/stepper.d.ts.map +1 -0
  159. package/dist/design-system/table.d.ts +77 -0
  160. package/dist/design-system/table.d.ts.map +1 -0
  161. package/dist/design-system/tabs.d.ts +49 -0
  162. package/dist/design-system/tabs.d.ts.map +1 -0
  163. package/dist/design-system/toast.d.ts +43 -0
  164. package/dist/design-system/toast.d.ts.map +1 -0
  165. package/dist/design-system/toggle.d.ts +73 -0
  166. package/dist/design-system/toggle.d.ts.map +1 -0
  167. package/dist/design-system/tokens.d.ts +15 -0
  168. package/dist/design-system/tokens.d.ts.map +1 -0
  169. package/dist/design-system/tooltip.d.ts +41 -0
  170. package/dist/design-system/tooltip.d.ts.map +1 -0
  171. package/dist/design-system/typography.d.ts +42 -0
  172. package/dist/design-system/typography.d.ts.map +1 -0
  173. package/dist/hooks/useResizeObserver.js +6 -31
  174. package/dist/hooks/useResizeObserver.js.map +1 -1
  175. package/dist/hooks/useResizeObserver.mjs +1 -33
  176. package/dist/hooks/useResizeObserver.mjs.map +1 -1
  177. package/dist/ui/accordion/animated.js +7 -7
  178. package/dist/ui/accordion/animated.mjs +2 -2
  179. package/dist/ui/accordion/variants.d.ts +5 -5
  180. package/dist/ui/accordion/variants.d.ts.map +1 -1
  181. package/dist/ui/accordion.js +9 -9
  182. package/dist/ui/accordion.mjs +2 -2
  183. package/dist/ui/alert/animated.js +2 -2
  184. package/dist/ui/alert/animated.mjs +1 -1
  185. package/dist/ui/alert/variants.d.ts +4 -4
  186. package/dist/ui/alert/variants.d.ts.map +1 -1
  187. package/dist/ui/alert.js +10 -10
  188. package/dist/ui/alert.mjs +2 -2
  189. package/dist/ui/avatar/animated.js +5 -5
  190. package/dist/ui/avatar/animated.mjs +2 -2
  191. package/dist/ui/avatar/variants.d.ts +1 -1
  192. package/dist/ui/avatar/variants.d.ts.map +1 -1
  193. package/dist/ui/avatar.js +9 -9
  194. package/dist/ui/avatar.mjs +2 -2
  195. package/dist/ui/badge/animated.js +2 -2
  196. package/dist/ui/badge/animated.mjs +1 -1
  197. package/dist/ui/badge/variants.d.ts +29 -32
  198. package/dist/ui/badge/variants.d.ts.map +1 -1
  199. package/dist/ui/badge.js +4 -4
  200. package/dist/ui/badge.mjs +2 -2
  201. package/dist/ui/breadcrumb/variants.d.ts +1 -1
  202. package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
  203. package/dist/ui/breadcrumb.js +42 -40
  204. package/dist/ui/breadcrumb.js.map +1 -1
  205. package/dist/ui/breadcrumb.mjs +42 -40
  206. package/dist/ui/breadcrumb.mjs.map +1 -1
  207. package/dist/ui/buttons/animated.js +3 -3
  208. package/dist/ui/buttons/animated.mjs +1 -1
  209. package/dist/ui/buttons/variants.d.ts +2 -2
  210. package/dist/ui/buttons/variants.d.ts.map +1 -1
  211. package/dist/ui/buttons.js +4 -4
  212. package/dist/ui/buttons.mjs +2 -2
  213. package/dist/ui/card/animated.js +7 -7
  214. package/dist/ui/card/animated.mjs +2 -2
  215. package/dist/ui/card/variants.d.ts +7 -7
  216. package/dist/ui/card/variants.d.ts.map +1 -1
  217. package/dist/ui/card.js +12 -12
  218. package/dist/ui/card.mjs +2 -2
  219. package/dist/ui/divider/animated.js +2 -2
  220. package/dist/ui/divider/animated.mjs +1 -1
  221. package/dist/ui/divider/variants.d.ts +4 -4
  222. package/dist/ui/divider/variants.d.ts.map +1 -1
  223. package/dist/ui/divider.js +6 -6
  224. package/dist/ui/divider.mjs +2 -2
  225. package/dist/ui/drawer/animated.js +11 -11
  226. package/dist/ui/drawer/animated.mjs +2 -2
  227. package/dist/ui/drawer/variants.d.ts +1 -1
  228. package/dist/ui/drawer/variants.d.ts.map +1 -1
  229. package/dist/ui/drawer.js +11 -11
  230. package/dist/ui/drawer.mjs +1 -1
  231. package/dist/ui/dropdown/variants.d.ts +4 -4
  232. package/dist/ui/dropdown/variants.d.ts.map +1 -1
  233. package/dist/ui/dropdown.js +106 -104
  234. package/dist/ui/dropdown.js.map +1 -1
  235. package/dist/ui/dropdown.mjs +106 -104
  236. package/dist/ui/dropdown.mjs.map +1 -1
  237. package/dist/ui/dynamic-stepper/variants.d.ts +5 -9
  238. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -1
  239. package/dist/ui/dynamic-stepper.js +100 -93
  240. package/dist/ui/dynamic-stepper.js.map +1 -1
  241. package/dist/ui/dynamic-stepper.mjs +98 -91
  242. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  243. package/dist/ui/empty-state/animated.js +2 -2
  244. package/dist/ui/empty-state/animated.mjs +1 -1
  245. package/dist/ui/empty-state/variants.d.ts +3 -3
  246. package/dist/ui/empty-state/variants.d.ts.map +1 -1
  247. package/dist/ui/empty-state.js +10 -10
  248. package/dist/ui/empty-state.mjs +2 -2
  249. package/dist/ui/file-upload/variants.d.ts.map +1 -1
  250. package/dist/ui/file-upload.js +28 -26
  251. package/dist/ui/file-upload.js.map +1 -1
  252. package/dist/ui/file-upload.mjs +28 -26
  253. package/dist/ui/file-upload.mjs.map +1 -1
  254. package/dist/ui/inputs/animated.js +3 -3
  255. package/dist/ui/inputs/animated.mjs +1 -1
  256. package/dist/ui/inputs/variants.d.ts +1 -1
  257. package/dist/ui/inputs/variants.d.ts.map +1 -1
  258. package/dist/ui/inputs.js +4 -4
  259. package/dist/ui/inputs.mjs +2 -2
  260. package/dist/ui/modal/animated.js +4 -4
  261. package/dist/ui/modal/animated.mjs +1 -1
  262. package/dist/ui/modal/variants.d.ts +1 -1
  263. package/dist/ui/modal/variants.d.ts.map +1 -1
  264. package/dist/ui/modal.js +12 -12
  265. package/dist/ui/modal.mjs +2 -2
  266. package/dist/ui/pagination/variants.d.ts +3 -7
  267. package/dist/ui/pagination/variants.d.ts.map +1 -1
  268. package/dist/ui/pagination.js +84 -84
  269. package/dist/ui/pagination.js.map +1 -1
  270. package/dist/ui/pagination.mjs +81 -81
  271. package/dist/ui/pagination.mjs.map +1 -1
  272. package/dist/ui/progress/animated.js +8 -8
  273. package/dist/ui/progress/animated.mjs +2 -2
  274. package/dist/ui/progress/variants.d.ts +3 -3
  275. package/dist/ui/progress/variants.d.ts.map +1 -1
  276. package/dist/ui/progress.js +9 -9
  277. package/dist/ui/progress.mjs +2 -2
  278. package/dist/ui/search.js +2 -2
  279. package/dist/ui/search.mjs +1 -1
  280. package/dist/ui/select/variants.d.ts +6 -6
  281. package/dist/ui/select/variants.d.ts.map +1 -1
  282. package/dist/ui/select.js +122 -123
  283. package/dist/ui/select.js.map +1 -1
  284. package/dist/ui/select.mjs +122 -123
  285. package/dist/ui/select.mjs.map +1 -1
  286. package/dist/ui/skeleton/animated.js +8 -8
  287. package/dist/ui/skeleton/animated.mjs +1 -1
  288. package/dist/ui/skeleton/variants.d.ts +5 -4
  289. package/dist/ui/skeleton/variants.d.ts.map +1 -1
  290. package/dist/ui/skeleton.js +9 -9
  291. package/dist/ui/skeleton.mjs +1 -1
  292. package/dist/ui/slider/variants.d.ts +3 -3
  293. package/dist/ui/slider/variants.d.ts.map +1 -1
  294. package/dist/ui/slider.js +69 -67
  295. package/dist/ui/slider.js.map +1 -1
  296. package/dist/ui/slider.mjs +69 -67
  297. package/dist/ui/slider.mjs.map +1 -1
  298. package/dist/ui/spinner/animated/variants.d.ts +2 -2
  299. package/dist/ui/spinner/animated/variants.d.ts.map +1 -1
  300. package/dist/ui/spinner/animated.js +44 -38
  301. package/dist/ui/spinner/animated.js.map +1 -1
  302. package/dist/ui/spinner/animated.mjs +44 -38
  303. package/dist/ui/spinner/animated.mjs.map +1 -1
  304. package/dist/ui/stepper/variants.d.ts +1 -1
  305. package/dist/ui/stepper/variants.d.ts.map +1 -1
  306. package/dist/ui/stepper.js +57 -50
  307. package/dist/ui/stepper.js.map +1 -1
  308. package/dist/ui/stepper.mjs +57 -50
  309. package/dist/ui/stepper.mjs.map +1 -1
  310. package/dist/ui/table/animated.js +8 -8
  311. package/dist/ui/table/animated.mjs +2 -2
  312. package/dist/ui/table/variants.d.ts +2 -2
  313. package/dist/ui/table/variants.d.ts.map +1 -1
  314. package/dist/ui/table.js +14 -14
  315. package/dist/ui/table.mjs +1 -1
  316. package/dist/ui/tabs/animated.js +2 -2
  317. package/dist/ui/tabs/animated.mjs +1 -1
  318. package/dist/ui/tabs/variants.d.ts +2 -2
  319. package/dist/ui/tabs/variants.d.ts.map +1 -1
  320. package/dist/ui/tabs.js +9 -9
  321. package/dist/ui/tabs.mjs +1 -1
  322. package/dist/ui/toast/animated.js +7 -7
  323. package/dist/ui/toast/animated.mjs +1 -1
  324. package/dist/ui/toast/variants.d.ts +3 -3
  325. package/dist/ui/toast/variants.d.ts.map +1 -1
  326. package/dist/ui/toast.js +12 -12
  327. package/dist/ui/toast.mjs +1 -1
  328. package/dist/ui/toggle/animated/toggle-animated.d.ts.map +1 -1
  329. package/dist/ui/toggle/animated.js +13 -6
  330. package/dist/ui/toggle/animated.js.map +1 -1
  331. package/dist/ui/toggle/animated.mjs +12 -5
  332. package/dist/ui/toggle/animated.mjs.map +1 -1
  333. package/dist/ui/toggle/toggle-base.d.ts +2 -0
  334. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  335. package/dist/ui/toggle/variants.d.ts +4 -4
  336. package/dist/ui/toggle/variants.d.ts.map +1 -1
  337. package/dist/ui/toggle.js +5 -94
  338. package/dist/ui/toggle.js.map +1 -1
  339. package/dist/ui/toggle.mjs +4 -93
  340. package/dist/ui/toggle.mjs.map +1 -1
  341. package/dist/ui/tooltip/animated.js +3 -3
  342. package/dist/ui/tooltip/animated.mjs +1 -1
  343. package/dist/ui/tooltip/variants.d.ts +3 -3
  344. package/dist/ui/tooltip/variants.d.ts.map +1 -1
  345. package/dist/ui/tooltip.js +7 -7
  346. package/dist/ui/tooltip.mjs +1 -1
  347. package/dist/ui/typography/variants.d.ts +1 -3
  348. package/dist/ui/typography/variants.d.ts.map +1 -1
  349. package/dist/ui/typography.js +51 -41
  350. package/dist/ui/typography.js.map +1 -1
  351. package/dist/ui/typography.mjs +51 -41
  352. package/dist/ui/typography.mjs.map +1 -1
  353. package/package.json +2 -1
  354. package/src/charts/shared/chart-frame.tsx +19 -8
  355. package/src/design-system/accordion.ts +111 -0
  356. package/src/design-system/alert.ts +64 -0
  357. package/src/design-system/avatar.ts +61 -0
  358. package/src/design-system/badge.ts +85 -0
  359. package/src/design-system/breadcrumb.ts +45 -0
  360. package/src/design-system/button.ts +81 -0
  361. package/src/design-system/card.ts +104 -0
  362. package/src/design-system/divider.ts +73 -0
  363. package/src/design-system/drawer.ts +111 -0
  364. package/src/design-system/dropdown.ts +130 -0
  365. package/src/design-system/dynamic-stepper.ts +218 -0
  366. package/src/design-system/empty-state.ts +39 -0
  367. package/src/design-system/file-upload.ts +30 -0
  368. package/src/design-system/index.ts +29 -0
  369. package/src/design-system/inputs.ts +74 -0
  370. package/src/design-system/modal.ts +110 -0
  371. package/src/design-system/pagination.ts +92 -0
  372. package/src/design-system/progress.ts +86 -0
  373. package/src/design-system/select.ts +155 -0
  374. package/src/design-system/skeleton.ts +129 -0
  375. package/src/design-system/slider.ts +70 -0
  376. package/src/design-system/spinner.ts +59 -0
  377. package/src/design-system/stepper.ts +66 -0
  378. package/src/design-system/table.ts +115 -0
  379. package/src/design-system/tabs.ts +73 -0
  380. package/src/design-system/toast.ts +69 -0
  381. package/src/design-system/toggle.ts +120 -0
  382. package/src/design-system/tokens.ts +22 -0
  383. package/src/design-system/tooltip.ts +63 -0
  384. package/src/design-system/typography.ts +64 -0
  385. package/src/ui/accordion/variants.ts +24 -106
  386. package/src/ui/alert/alert.test.tsx +1 -1
  387. package/src/ui/alert/variants.ts +25 -77
  388. package/src/ui/avatar/variants.ts +21 -66
  389. package/src/ui/badge/badge.test.tsx +1 -1
  390. package/src/ui/badge/variants.ts +28 -89
  391. package/src/ui/breadcrumb/variants.ts +24 -40
  392. package/src/ui/buttons/button.test.tsx +25 -5
  393. package/src/ui/buttons/variants.ts +15 -84
  394. package/src/ui/card/card.test.tsx +1 -1
  395. package/src/ui/card/variants.ts +46 -121
  396. package/src/ui/divider/divider-base.tsx +1 -1
  397. package/src/ui/divider/variants.ts +32 -70
  398. package/src/ui/drawer/drawer-base.tsx +1 -1
  399. package/src/ui/drawer/variants.ts +41 -132
  400. package/src/ui/dropdown/variants.ts +36 -142
  401. package/src/ui/dynamic-stepper/variants.ts +32 -216
  402. package/src/ui/empty-state/variants.ts +29 -44
  403. package/src/ui/file-upload/variants.ts +12 -36
  404. package/src/ui/inputs/input.test.tsx +11 -11
  405. package/src/ui/inputs/variants.ts +308 -371
  406. package/src/ui/modal/variants.ts +29 -120
  407. package/src/ui/pagination/pagination.test.tsx +1 -1
  408. package/src/ui/pagination/variants.ts +22 -95
  409. package/src/ui/progress/variants.ts +41 -112
  410. package/src/ui/select/variants.ts +40 -165
  411. package/src/ui/skeleton/variants.ts +154 -250
  412. package/src/ui/slider/variants.ts +34 -67
  413. package/src/ui/spinner/animated/variants.ts +10 -39
  414. package/src/ui/stepper/stepper.test.tsx +12 -4
  415. package/src/ui/stepper/variants.ts +23 -68
  416. package/src/ui/table/variants.ts +36 -106
  417. package/src/ui/tabs/variants.ts +26 -73
  418. package/src/ui/toast/variants.ts +24 -75
  419. package/src/ui/toggle/animated/toggle-animated.tsx +14 -4
  420. package/src/ui/toggle/toggle-base.tsx +3 -7
  421. package/src/ui/toggle/variants.ts +27 -111
  422. package/src/ui/tooltip/variants.ts +18 -57
  423. package/src/ui/typography/typography.test.tsx +1 -1
  424. package/src/ui/typography/variants.ts +17 -54
  425. package/dist/chunk-25EAVVGS.mjs +0 -267
  426. package/dist/chunk-25EAVVGS.mjs.map +0 -1
  427. package/dist/chunk-3OXIZ4ZO.js +0 -175
  428. package/dist/chunk-3OXIZ4ZO.js.map +0 -1
  429. package/dist/chunk-3Z73M5TW.js +0 -273
  430. package/dist/chunk-3Z73M5TW.js.map +0 -1
  431. package/dist/chunk-4F56BLZQ.js +0 -336
  432. package/dist/chunk-4F56BLZQ.js.map +0 -1
  433. package/dist/chunk-4PZIDDC6.js +0 -279
  434. package/dist/chunk-4PZIDDC6.js.map +0 -1
  435. package/dist/chunk-73RHHGIA.mjs +0 -197
  436. package/dist/chunk-73RHHGIA.mjs.map +0 -1
  437. package/dist/chunk-746CV3AN.js +0 -246
  438. package/dist/chunk-746CV3AN.js.map +0 -1
  439. package/dist/chunk-CFTDAGKD.js +0 -130
  440. package/dist/chunk-CFTDAGKD.js.map +0 -1
  441. package/dist/chunk-D55YIHBN.js.map +0 -1
  442. package/dist/chunk-EU63V22F.mjs +0 -126
  443. package/dist/chunk-EU63V22F.mjs.map +0 -1
  444. package/dist/chunk-EZS47EZW.mjs +0 -70
  445. package/dist/chunk-EZS47EZW.mjs.map +0 -1
  446. package/dist/chunk-GHJN3Z3V.js +0 -292
  447. package/dist/chunk-GHJN3Z3V.js.map +0 -1
  448. package/dist/chunk-GIC3J6HR.mjs +0 -196
  449. package/dist/chunk-GIC3J6HR.mjs.map +0 -1
  450. package/dist/chunk-GPAUYUM3.js +0 -232
  451. package/dist/chunk-GPAUYUM3.js.map +0 -1
  452. package/dist/chunk-HARD4NMB.mjs +0 -268
  453. package/dist/chunk-HARD4NMB.mjs.map +0 -1
  454. package/dist/chunk-HV7LVRK3.js +0 -277
  455. package/dist/chunk-HV7LVRK3.js.map +0 -1
  456. package/dist/chunk-J5QJEKY2.mjs +0 -169
  457. package/dist/chunk-J5QJEKY2.mjs.map +0 -1
  458. package/dist/chunk-JE6B3DHW.mjs +0 -220
  459. package/dist/chunk-JE6B3DHW.mjs.map +0 -1
  460. package/dist/chunk-JOMSI4WH.js.map +0 -1
  461. package/dist/chunk-KA5MORDC.js +0 -336
  462. package/dist/chunk-KA5MORDC.js.map +0 -1
  463. package/dist/chunk-LPL6NJ5Q.mjs +0 -264
  464. package/dist/chunk-LPL6NJ5Q.mjs.map +0 -1
  465. package/dist/chunk-M6FS7X54.mjs.map +0 -1
  466. package/dist/chunk-MM3P52WS.js.map +0 -1
  467. package/dist/chunk-MTJRPLMG.js.map +0 -1
  468. package/dist/chunk-OB6TYS5Q.js +0 -205
  469. package/dist/chunk-OB6TYS5Q.js.map +0 -1
  470. package/dist/chunk-OHST7AHC.mjs +0 -99
  471. package/dist/chunk-OHST7AHC.mjs.map +0 -1
  472. package/dist/chunk-OVTWPGMW.mjs.map +0 -1
  473. package/dist/chunk-PSIAOIXJ.mjs +0 -278
  474. package/dist/chunk-PSIAOIXJ.mjs.map +0 -1
  475. package/dist/chunk-QNF4JPFP.js +0 -339
  476. package/dist/chunk-QNF4JPFP.js.map +0 -1
  477. package/dist/chunk-QSIJKHC5.mjs.map +0 -1
  478. package/dist/chunk-RFFGQYDQ.mjs +0 -337
  479. package/dist/chunk-RFFGQYDQ.mjs.map +0 -1
  480. package/dist/chunk-S5H2OMTZ.mjs +0 -233
  481. package/dist/chunk-S5H2OMTZ.mjs.map +0 -1
  482. package/dist/chunk-SPX2QDIB.mjs.map +0 -1
  483. package/dist/chunk-TIPNRH26.js +0 -102
  484. package/dist/chunk-TIPNRH26.js.map +0 -1
  485. package/dist/chunk-V2PEOBAT.mjs +0 -324
  486. package/dist/chunk-V2PEOBAT.mjs.map +0 -1
  487. package/dist/chunk-VGWA26BN.js +0 -72
  488. package/dist/chunk-VGWA26BN.js.map +0 -1
  489. package/dist/chunk-WNLDXBS6.mjs +0 -323
  490. package/dist/chunk-WNLDXBS6.mjs.map +0 -1
  491. package/dist/chunk-YIO7DFUA.js +0 -207
  492. package/dist/chunk-YIO7DFUA.js.map +0 -1
@@ -1,46 +1,46 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkJOMSI4WH_js = require('../chunk-JOMSI4WH.js');
4
+ var chunkNFEA5TN2_js = require('../chunk-NFEA5TN2.js');
5
5
  require('../chunk-ZS5756ZC.js');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
8
8
  function EmptyState(props) {
9
- return /* @__PURE__ */ jsxRuntime.jsx(chunkJOMSI4WH_js.EmptyStateBase, { ...props });
9
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkNFEA5TN2_js.EmptyStateBase, { ...props });
10
10
  }
11
11
  EmptyState.displayName = "EmptyState";
12
12
 
13
13
  Object.defineProperty(exports, "EmptyStateAction", {
14
14
  enumerable: true,
15
- get: function () { return chunkJOMSI4WH_js.EmptyStateAction; }
15
+ get: function () { return chunkNFEA5TN2_js.EmptyStateAction; }
16
16
  });
17
17
  Object.defineProperty(exports, "EmptyStateBase", {
18
18
  enumerable: true,
19
- get: function () { return chunkJOMSI4WH_js.EmptyStateBase; }
19
+ get: function () { return chunkNFEA5TN2_js.EmptyStateBase; }
20
20
  });
21
21
  Object.defineProperty(exports, "EmptyStateDescription", {
22
22
  enumerable: true,
23
- get: function () { return chunkJOMSI4WH_js.EmptyStateDescription; }
23
+ get: function () { return chunkNFEA5TN2_js.EmptyStateDescription; }
24
24
  });
25
25
  Object.defineProperty(exports, "EmptyStateIcon", {
26
26
  enumerable: true,
27
- get: function () { return chunkJOMSI4WH_js.EmptyStateIcon; }
27
+ get: function () { return chunkNFEA5TN2_js.EmptyStateIcon; }
28
28
  });
29
29
  Object.defineProperty(exports, "EmptyStateTitle", {
30
30
  enumerable: true,
31
- get: function () { return chunkJOMSI4WH_js.EmptyStateTitle; }
31
+ get: function () { return chunkNFEA5TN2_js.EmptyStateTitle; }
32
32
  });
33
33
  Object.defineProperty(exports, "emptyStateDescriptionVariants", {
34
34
  enumerable: true,
35
- get: function () { return chunkJOMSI4WH_js.emptyStateDescriptionVariants; }
35
+ get: function () { return chunkNFEA5TN2_js.emptyStateDescriptionVariants; }
36
36
  });
37
37
  Object.defineProperty(exports, "emptyStateTitleVariants", {
38
38
  enumerable: true,
39
- get: function () { return chunkJOMSI4WH_js.emptyStateTitleVariants; }
39
+ get: function () { return chunkNFEA5TN2_js.emptyStateTitleVariants; }
40
40
  });
41
41
  Object.defineProperty(exports, "emptyStateVariants", {
42
42
  enumerable: true,
43
- get: function () { return chunkJOMSI4WH_js.emptyStateVariants; }
43
+ get: function () { return chunkNFEA5TN2_js.emptyStateVariants; }
44
44
  });
45
45
  exports.EmptyState = EmptyState;
46
46
  //# sourceMappingURL=empty-state.js.map
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { EmptyStateBase } from '../chunk-OVTWPGMW.mjs';
3
- export { EmptyStateAction, EmptyStateBase, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, emptyStateDescriptionVariants, emptyStateTitleVariants, emptyStateVariants } from '../chunk-OVTWPGMW.mjs';
2
+ import { EmptyStateBase } from '../chunk-NMQAHUYA.mjs';
3
+ export { EmptyStateAction, EmptyStateBase, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, emptyStateDescriptionVariants, emptyStateTitleVariants, emptyStateVariants } from '../chunk-NMQAHUYA.mjs';
4
4
  import '../chunk-4D54YOL6.mjs';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/file-upload/variants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;8EAoC9B,CAAC"}
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/file-upload/variants.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB;;8EAO7B,CAAC"}
@@ -6,33 +6,35 @@ var react = require('react');
6
6
  var classVarianceAuthority = require('class-variance-authority');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
9
- var fileUploadVariants = classVarianceAuthority.cva(
10
- "relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-violet-400/60 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-50 dark:focus-visible:ring-offset-slate-950",
11
- {
12
- variants: {
13
- appearance: {
14
- idle: "border-black/15 dark:border-white/15 bg-black/5 dark:bg-white/5 text-slate-600 dark:text-slate-300 hover:border-black/25 dark:hover:border-white/25 hover:bg-black/[0.07] dark:bg-white/[0.07]",
15
- active: "border-violet-400/70 bg-violet-500/10 text-slate-900 dark:text-white",
16
- disabled: "cursor-not-allowed opacity-50",
17
- error: "border-red-400/70 bg-red-500/10 text-red-600 dark:text-red-400 hover:border-red-400/80 hover:bg-red-500/15",
18
- success: "border-green-400/70 bg-green-500/10 text-green-600 dark:text-green-400 hover:border-green-400/80 hover:bg-green-500/15",
19
- warning: "border-yellow-400/70 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 hover:border-yellow-400/80 hover:bg-yellow-500/15",
20
- info: "border-blue-400/70 bg-blue-500/10 text-blue-600 dark:text-blue-400 hover:border-blue-400/80 hover:bg-blue-500/15",
21
- neutral: "border-gray-400/70 bg-gray-500/10 text-gray-600 dark:text-gray-400 hover:border-gray-400/80 hover:bg-gray-500/15",
22
- purple: "border-purple-400/70 bg-purple-500/10 text-purple-600 dark:text-purple-400 hover:border-purple-400/80 hover:bg-purple-500/15",
23
- indigo: "border-indigo-400/70 bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:border-indigo-400/80 hover:bg-indigo-500/15",
24
- emerald: "border-emerald-400/70 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:border-emerald-400/80 hover:bg-emerald-500/15",
25
- amber: "border-amber-400/70 bg-amber-500/10 text-amber-600 dark:text-amber-400 hover:border-amber-400/80 hover:bg-amber-500/15",
26
- pink: "border-pink-400/70 bg-pink-500/10 text-pink-600 dark:text-pink-400 hover:border-pink-400/80 hover:bg-pink-500/15",
27
- orange: "border-orange-400/70 bg-orange-500/10 text-orange-600 dark:text-orange-400 hover:border-orange-400/80 hover:bg-orange-500/15",
28
- teal: "border-teal-400/70 bg-teal-500/10 text-teal-600 dark:text-teal-400 hover:border-teal-400/80 hover:bg-teal-500/15"
29
- }
30
- },
31
- defaultVariants: {
32
- appearance: "idle"
33
- }
9
+ // src/design-system/file-upload.ts
10
+ var zuiFileUploadBase = "relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-file-upload-ring-focus,oklch(70.2%_0.183_293.541_/_0.6))] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))]";
11
+ var zuiFileUploadAppearances = {
12
+ idle: "border-[color:var(--zui-file-upload-idle-border,#00000026)] dark:border-[color:var(--zui-file-upload-idle-border-dark,#ffffff26)] bg-[var(--zui-file-upload-idle-bg,#0000000d)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff0d)] text-[color:var(--zui-file-upload-idle-fg,oklch(44.6%_0.043_257.281))] dark:text-[color:var(--zui-file-upload-idle-fg-dark,oklch(86.9%_0.022_252.894))] hover:border-[color:var(--zui-file-upload-idle-border-hover,#00000040)] dark:hover:border-[color:var(--zui-file-upload-idle-border-hover-dark,#ffffff40)] hover:bg-[var(--zui-file-upload-idle-bg-hover,#00000012)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff12)]",
13
+ active: "border-[color:var(--zui-file-upload-active-border,oklch(70.2%_0.183_293.541_/_0.7))] bg-[var(--zui-file-upload-active-bg,oklch(60.6%_0.25_292.717_/_0.1))] text-[color:var(--zui-file-upload-active-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-file-upload-active-fg-dark,#ffffff)]",
14
+ disabled: "cursor-not-allowed opacity-50",
15
+ error: "border-[color:var(--zui-file-upload-error-border,oklch(70.4%_0.191_22.216_/_0.7))] bg-[var(--zui-file-upload-error-bg,oklch(63.7%_0.237_25.331_/_0.1))] text-[color:var(--zui-file-upload-error-fg,oklch(57.7%_0.245_27.325))] dark:text-[color:var(--zui-file-upload-error-fg-dark,oklch(70.4%_0.191_22.216))] hover:border-[color:var(--zui-file-upload-error-border-hover,oklch(70.4%_0.191_22.216_/_0.8))] hover:bg-[var(--zui-file-upload-error-bg-hover,oklch(63.7%_0.237_25.331_/_0.15))]",
16
+ success: "border-[color:var(--zui-file-upload-success-border,oklch(79.2%_0.209_151.711_/_0.7))] bg-[var(--zui-file-upload-success-bg,oklch(72.3%_0.219_149.579_/_0.1))] text-[color:var(--zui-file-upload-success-fg,oklch(62.7%_0.194_149.214))] dark:text-[color:var(--zui-file-upload-success-fg-dark,oklch(79.2%_0.209_151.711))] hover:border-[color:var(--zui-file-upload-success-border-hover,oklch(79.2%_0.209_151.711_/_0.8))] hover:bg-[var(--zui-file-upload-success-bg-hover,oklch(72.3%_0.219_149.579_/_0.15))]",
17
+ warning: "border-[color:var(--zui-file-upload-warning-border,oklch(85.2%_0.199_91.936_/_0.7))] bg-[var(--zui-file-upload-warning-bg,oklch(79.5%_0.184_86.047_/_0.1))] text-[color:var(--zui-file-upload-warning-fg,oklch(68.1%_0.162_75.834))] dark:text-[color:var(--zui-file-upload-warning-fg-dark,oklch(85.2%_0.199_91.936))] hover:border-[color:var(--zui-file-upload-warning-border-hover,oklch(85.2%_0.199_91.936_/_0.8))] hover:bg-[var(--zui-file-upload-warning-bg-hover,oklch(79.5%_0.184_86.047_/_0.15))]",
18
+ info: "border-[color:var(--zui-file-upload-info-border,oklch(70.7%_0.165_254.624_/_0.7))] bg-[var(--zui-file-upload-info-bg,oklch(62.3%_0.214_259.815_/_0.1))] text-[color:var(--zui-file-upload-info-fg,oklch(54.6%_0.245_262.881))] dark:text-[color:var(--zui-file-upload-info-fg-dark,oklch(70.7%_0.165_254.624))] hover:border-[color:var(--zui-file-upload-info-border-hover,oklch(70.7%_0.165_254.624_/_0.8))] hover:bg-[var(--zui-file-upload-info-bg-hover,oklch(62.3%_0.214_259.815_/_0.15))]",
19
+ neutral: "border-[color:var(--zui-file-upload-neutral-border,oklch(70.7%_0.022_261.325_/_0.7))] bg-[var(--zui-file-upload-neutral-bg,oklch(55.1%_0.027_264.364_/_0.1))] text-[color:var(--zui-file-upload-neutral-fg,oklch(44.6%_0.03_256.802))] dark:text-[color:var(--zui-file-upload-neutral-fg-dark,oklch(70.7%_0.022_261.325))] hover:border-[color:var(--zui-file-upload-neutral-border-hover,oklch(70.7%_0.022_261.325_/_0.8))] hover:bg-[var(--zui-file-upload-neutral-bg-hover,oklch(55.1%_0.027_264.364_/_0.15))]",
20
+ purple: "border-[color:var(--zui-file-upload-purple-border,oklch(71.4%_0.203_305.504_/_0.7))] bg-[var(--zui-file-upload-purple-bg,oklch(62.7%_0.265_303.9_/_0.1))] text-[color:var(--zui-file-upload-purple-fg,oklch(55.8%_0.288_302.321))] dark:text-[color:var(--zui-file-upload-purple-fg-dark,oklch(71.4%_0.203_305.504))] hover:border-[color:var(--zui-file-upload-purple-border-hover,oklch(71.4%_0.203_305.504_/_0.8))] hover:bg-[var(--zui-file-upload-purple-bg-hover,oklch(62.7%_0.265_303.9_/_0.15))]",
21
+ indigo: "border-[color:var(--zui-file-upload-indigo-border,oklch(67.3%_0.182_276.935_/_0.7))] bg-[var(--zui-file-upload-indigo-bg,oklch(58.5%_0.233_277.117_/_0.1))] text-[color:var(--zui-file-upload-indigo-fg,oklch(51.1%_0.262_276.966))] dark:text-[color:var(--zui-file-upload-indigo-fg-dark,oklch(67.3%_0.182_276.935))] hover:border-[color:var(--zui-file-upload-indigo-border-hover,oklch(67.3%_0.182_276.935_/_0.8))] hover:bg-[var(--zui-file-upload-indigo-bg-hover,oklch(58.5%_0.233_277.117_/_0.15))]",
22
+ emerald: "border-[color:var(--zui-file-upload-emerald-border,oklch(76.5%_0.177_163.223_/_0.7))] bg-[var(--zui-file-upload-emerald-bg,oklch(69.6%_0.17_162.48_/_0.1))] text-[color:var(--zui-file-upload-emerald-fg,oklch(59.6%_0.145_163.225))] dark:text-[color:var(--zui-file-upload-emerald-fg-dark,oklch(76.5%_0.177_163.223))] hover:border-[color:var(--zui-file-upload-emerald-border-hover,oklch(76.5%_0.177_163.223_/_0.8))] hover:bg-[var(--zui-file-upload-emerald-bg-hover,oklch(69.6%_0.17_162.48_/_0.15))]",
23
+ amber: "border-[color:var(--zui-file-upload-amber-border,oklch(82.8%_0.189_84.429_/_0.7))] bg-[var(--zui-file-upload-amber-bg,oklch(76.9%_0.188_70.08_/_0.1))] text-[color:var(--zui-file-upload-amber-fg,oklch(66.6%_0.179_58.318))] dark:text-[color:var(--zui-file-upload-amber-fg-dark,oklch(82.8%_0.189_84.429))] hover:border-[color:var(--zui-file-upload-amber-border-hover,oklch(82.8%_0.189_84.429_/_0.8))] hover:bg-[var(--zui-file-upload-amber-bg-hover,oklch(76.9%_0.188_70.08_/_0.15))]",
24
+ pink: "border-[color:var(--zui-file-upload-pink-border,oklch(71.8%_0.202_349.761_/_0.7))] bg-[var(--zui-file-upload-pink-bg,oklch(65.6%_0.241_354.308_/_0.1))] text-[color:var(--zui-file-upload-pink-fg,oklch(59.2%_0.249_0.584))] dark:text-[color:var(--zui-file-upload-pink-fg-dark,oklch(71.8%_0.202_349.761))] hover:border-[color:var(--zui-file-upload-pink-border-hover,oklch(71.8%_0.202_349.761_/_0.8))] hover:bg-[var(--zui-file-upload-pink-bg-hover,oklch(65.6%_0.241_354.308_/_0.15))]",
25
+ orange: "border-[color:var(--zui-file-upload-orange-border,oklch(75%_0.183_55.934_/_0.7))] bg-[var(--zui-file-upload-orange-bg,oklch(70.5%_0.213_47.604_/_0.1))] text-[color:var(--zui-file-upload-orange-fg,oklch(64.6%_0.222_41.116))] dark:text-[color:var(--zui-file-upload-orange-fg-dark,oklch(75%_0.183_55.934))] hover:border-[color:var(--zui-file-upload-orange-border-hover,oklch(75%_0.183_55.934_/_0.8))] hover:bg-[var(--zui-file-upload-orange-bg-hover,oklch(70.5%_0.213_47.604_/_0.15))]",
26
+ teal: "border-[color:var(--zui-file-upload-teal-border,oklch(77.7%_0.152_181.912_/_0.7))] bg-[var(--zui-file-upload-teal-bg,oklch(70.4%_0.14_182.503_/_0.1))] text-[color:var(--zui-file-upload-teal-fg,oklch(60%_0.118_184.704))] dark:text-[color:var(--zui-file-upload-teal-fg-dark,oklch(77.7%_0.152_181.912))] hover:border-[color:var(--zui-file-upload-teal-border-hover,oklch(77.7%_0.152_181.912_/_0.8))] hover:bg-[var(--zui-file-upload-teal-bg-hover,oklch(70.4%_0.14_182.503_/_0.15))]"
27
+ };
28
+
29
+ // src/ui/file-upload/variants.ts
30
+ var fileUploadVariants = classVarianceAuthority.cva(zuiFileUploadBase, {
31
+ variants: {
32
+ appearance: zuiFileUploadAppearances
33
+ },
34
+ defaultVariants: {
35
+ appearance: "idle"
34
36
  }
35
- );
37
+ });
36
38
  function FileUpload({
37
39
  className,
38
40
  onFiles,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/file-upload/variants.ts","../../src/ui/file-upload/file-upload.tsx"],"names":["cva","useId","useState","useCallback","jsxs","cn","jsx","Fragment"],"mappings":";;;;;;;AAEO,IAAM,kBAAA,GAAqBA,0BAAA;AAAA,EAChC,sUAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,gMAAA;AAAA,QACN,MAAA,EACE,sEAAA;AAAA,QACF,QAAA,EAAU,+BAAA;AAAA,QACV,KAAA,EACE,4GAAA;AAAA,QACF,OAAA,EACE,wHAAA;AAAA,QACF,OAAA,EACE,8HAAA;AAAA,QACF,IAAA,EAAM,kHAAA;AAAA,QACN,OAAA,EACE,kHAAA;AAAA,QACF,MAAA,EACE,8HAAA;AAAA,QACF,MAAA,EACE,8HAAA;AAAA,QACF,OAAA,EACE,oIAAA;AAAA,QACF,KAAA,EACE,wHAAA;AAAA,QACF,IAAA,EAAM,kHAAA;AAAA,QACN,MAAA,EACE,8HAAA;AAAA,QACF,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY;AAAA;AACd;AAEJ;AC7BO,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA,GAAa,MAAA;AAAA,EACb,GAAG;AACL,CAAA,EAA0D;AACxD,EAAA,MAAM,UAAUC,WAAA,EAAM;AACtB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAS,KAAK,CAAA;AAE9C,EAAA,MAAM,SAAA,GAAYC,iBAAA;AAAA,IAChB,CAAC,QAAA,KAA8B;AAC7B,MAAA,IAAI,CAAC,UAAU,MAAA,EAAQ;AACrB,QAAA;AAAA,MACF;AACA,MAAA,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,OAAO;AAAA,GACV;AAEA,EAAA,MAAM,YAAA,GAAeA,iBAAA;AAAA,IACnB,CAAC,KAAA,KAA+C;AAC9C,MAAA,QAAA,GAAW,KAAK,CAAA;AAChB,MAAA,SAAA,CAAU,KAAA,CAAM,OAAO,KAAK,CAAA;AAC5B,MAAA,KAAA,CAAM,OAAO,KAAA,GAAQ,EAAA;AAAA,IACvB,CAAA;AAAA,IACA,CAAC,WAAW,QAAQ;AAAA,GACtB;AAEA,EAAA,MAAM,UAAA,GAAaA,iBAAA;AAAA,IACjB,CAAC,KAAA,KAA6C;AAC5C,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,WAAA,CAAY,KAAK,CAAA;AACjB,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA;AAAA,MACF;AACA,MAAA,SAAA,CAAU,KAAA,CAAM,aAAa,KAAK,CAAA;AAAA,IACpC,CAAA;AAAA,IACA,CAAC,UAAU,SAAS;AAAA,GACtB;AAEA,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,WAAWC,mBAAA,CAAG,kBAAA,CAAmB,EAAE,UAAA,EAAY,GAAG,SAAS,CAAA;AAAA,MAC1D,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,OAAA;AAAA,YACJ,IAAA;AAAA,YACA,IAAA,EAAK,MAAA;AAAA,YACL,SAAA,EAAU,SAAA;AAAA,YACV,MAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACAF,eAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,OAAA;AAAA,YACT,SAAA,EAAWC,mBAAA;AAAA,cACT,wDAAA;AAAA,cACA,QAAA,IAAY;AAAA,aACd;AAAA,YACA,WAAA,EAAa,CAAC,CAAA,KAAM;AAClB,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,IAAI,CAAC,QAAA,EAAU;AACb,gBAAA,WAAA,CAAY,IAAI,CAAA;AAAA,cAClB;AAAA,YACF,CAAA;AAAA,YACA,UAAA,EAAY,CAAC,CAAA,KAAM;AACjB,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,IAAI,CAAC,QAAA,EAAU;AACb,gBAAA,WAAA,CAAY,IAAI,CAAA;AAAA,cAClB;AAAA,YACF,CAAA;AAAA,YACA,WAAA,EAAa,MAAM,WAAA,CAAY,KAAK,CAAA;AAAA,YACpC,MAAA,EAAQ,UAAA;AAAA,YAEP,QAAA,EAAA;AAAA,cAAA,QAAA,oBACCD,eAAA,CAAAG,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,gCAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4DAAA,EAA6D,QAAA,EAAA,iBAAA,EAE7E,CAAA;AAAA,gCACAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CAAA,EAA6C,QAAA,EAAA,qCAAA,EAE7D;AAAA,eAAA,EACF,CAAA;AAAA,cAED,QAAA,oBACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8CAA6C,QAAA,EAAA,iBAAA,EAE7D;AAAA;AAAA;AAAA;AAEJ;AAAA;AAAA,GACF;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"file-upload.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const fileUploadVariants = cva(\n \"relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-violet-400/60 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-50 dark:focus-visible:ring-offset-slate-950\",\n {\n variants: {\n appearance: {\n idle: \"border-black/15 dark:border-white/15 bg-black/5 dark:bg-white/5 text-slate-600 dark:text-slate-300 hover:border-black/25 dark:hover:border-white/25 hover:bg-black/[0.07] dark:bg-white/[0.07]\",\n active:\n \"border-violet-400/70 bg-violet-500/10 text-slate-900 dark:text-white\",\n disabled: \"cursor-not-allowed opacity-50\",\n error:\n \"border-red-400/70 bg-red-500/10 text-red-600 dark:text-red-400 hover:border-red-400/80 hover:bg-red-500/15\",\n success:\n \"border-green-400/70 bg-green-500/10 text-green-600 dark:text-green-400 hover:border-green-400/80 hover:bg-green-500/15\",\n warning:\n \"border-yellow-400/70 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 hover:border-yellow-400/80 hover:bg-yellow-500/15\",\n info: \"border-blue-400/70 bg-blue-500/10 text-blue-600 dark:text-blue-400 hover:border-blue-400/80 hover:bg-blue-500/15\",\n neutral:\n \"border-gray-400/70 bg-gray-500/10 text-gray-600 dark:text-gray-400 hover:border-gray-400/80 hover:bg-gray-500/15\",\n purple:\n \"border-purple-400/70 bg-purple-500/10 text-purple-600 dark:text-purple-400 hover:border-purple-400/80 hover:bg-purple-500/15\",\n indigo:\n \"border-indigo-400/70 bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:border-indigo-400/80 hover:bg-indigo-500/15\",\n emerald:\n \"border-emerald-400/70 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:border-emerald-400/80 hover:bg-emerald-500/15\",\n amber:\n \"border-amber-400/70 bg-amber-500/10 text-amber-600 dark:text-amber-400 hover:border-amber-400/80 hover:bg-amber-500/15\",\n pink: \"border-pink-400/70 bg-pink-500/10 text-pink-600 dark:text-pink-400 hover:border-pink-400/80 hover:bg-pink-500/15\",\n orange:\n \"border-orange-400/70 bg-orange-500/10 text-orange-600 dark:text-orange-400 hover:border-orange-400/80 hover:bg-orange-500/15\",\n teal: \"border-teal-400/70 bg-teal-500/10 text-teal-600 dark:text-teal-400 hover:border-teal-400/80 hover:bg-teal-500/15\",\n },\n },\n defaultVariants: {\n appearance: \"idle\",\n },\n },\n);\n","\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { FileUploadProps } from \"./types\";\nimport { fileUploadVariants } from \"./variants\";\n\nexport function FileUpload({\n className,\n onFiles,\n accept,\n multiple = false,\n disabled = false,\n name,\n children,\n onChange,\n ref,\n appearance = \"idle\",\n ...rest\n}: FileUploadProps & { ref?: React.Ref<HTMLDivElement> }) {\n const inputId = useId();\n const [dragOver, setDragOver] = useState(false);\n\n const emitFiles = useCallback(\n (fileList: FileList | null) => {\n if (!fileList?.length) {\n return;\n }\n onFiles?.(Array.from(fileList));\n },\n [onFiles],\n );\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n emitFiles(event.target.files);\n event.target.value = \"\";\n },\n [emitFiles, onChange],\n );\n\n const handleDrop = useCallback(\n (event: React.DragEvent<HTMLLabelElement>) => {\n event.preventDefault();\n setDragOver(false);\n if (disabled) {\n return;\n }\n emitFiles(event.dataTransfer.files);\n },\n [disabled, emitFiles],\n );\n\n return (\n <div\n ref={ref}\n data-slot=\"file-upload\"\n className={cn(fileUploadVariants({ appearance }), className)}\n {...rest}\n >\n <input\n id={inputId}\n name={name}\n type=\"file\"\n className=\"sr-only\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n onChange={handleChange}\n />\n <label\n htmlFor={inputId}\n className={cn(\n \"flex w-full cursor-pointer flex-col items-center gap-2\",\n disabled && \"cursor-not-allowed\",\n )}\n onDragEnter={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragOver={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={handleDrop}\n >\n {children ?? (\n <>\n <span className=\"text-base font-semibold text-slate-900 dark:text-slate-100\">\n Drop files here\n </span>\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n or click to browse from your device\n </span>\n </>\n )}\n {dragOver && (\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n Drop files here\n </span>\n )}\n </label>\n </div>\n );\n}\n\nFileUpload.displayName = \"FileUpload\";\n"]}
1
+ {"version":3,"sources":["../../src/design-system/file-upload.ts","../../src/ui/file-upload/variants.ts","../../src/ui/file-upload/file-upload.tsx"],"names":["cva","useId","useState","useCallback","jsxs","cn","jsx","Fragment"],"mappings":"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","file":"file-upload.js","sourcesContent":["export const zuiFileUploadBase =\n \"relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-file-upload-ring-focus,oklch(70.2%_0.183_293.541_/_0.6))] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))]\";\n\nexport const zuiFileUploadAppearances = {\n idle: \"border-[color:var(--zui-file-upload-idle-border,#00000026)] dark:border-[color:var(--zui-file-upload-idle-border-dark,#ffffff26)] bg-[var(--zui-file-upload-idle-bg,#0000000d)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff0d)] text-[color:var(--zui-file-upload-idle-fg,oklch(44.6%_0.043_257.281))] dark:text-[color:var(--zui-file-upload-idle-fg-dark,oklch(86.9%_0.022_252.894))] hover:border-[color:var(--zui-file-upload-idle-border-hover,#00000040)] dark:hover:border-[color:var(--zui-file-upload-idle-border-hover-dark,#ffffff40)] hover:bg-[var(--zui-file-upload-idle-bg-hover,#00000012)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff12)]\",\n active:\n \"border-[color:var(--zui-file-upload-active-border,oklch(70.2%_0.183_293.541_/_0.7))] bg-[var(--zui-file-upload-active-bg,oklch(60.6%_0.25_292.717_/_0.1))] text-[color:var(--zui-file-upload-active-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-file-upload-active-fg-dark,#ffffff)]\",\n disabled: \"cursor-not-allowed opacity-50\",\n error:\n \"border-[color:var(--zui-file-upload-error-border,oklch(70.4%_0.191_22.216_/_0.7))] bg-[var(--zui-file-upload-error-bg,oklch(63.7%_0.237_25.331_/_0.1))] text-[color:var(--zui-file-upload-error-fg,oklch(57.7%_0.245_27.325))] dark:text-[color:var(--zui-file-upload-error-fg-dark,oklch(70.4%_0.191_22.216))] hover:border-[color:var(--zui-file-upload-error-border-hover,oklch(70.4%_0.191_22.216_/_0.8))] hover:bg-[var(--zui-file-upload-error-bg-hover,oklch(63.7%_0.237_25.331_/_0.15))]\",\n success:\n \"border-[color:var(--zui-file-upload-success-border,oklch(79.2%_0.209_151.711_/_0.7))] bg-[var(--zui-file-upload-success-bg,oklch(72.3%_0.219_149.579_/_0.1))] text-[color:var(--zui-file-upload-success-fg,oklch(62.7%_0.194_149.214))] dark:text-[color:var(--zui-file-upload-success-fg-dark,oklch(79.2%_0.209_151.711))] hover:border-[color:var(--zui-file-upload-success-border-hover,oklch(79.2%_0.209_151.711_/_0.8))] hover:bg-[var(--zui-file-upload-success-bg-hover,oklch(72.3%_0.219_149.579_/_0.15))]\",\n warning:\n \"border-[color:var(--zui-file-upload-warning-border,oklch(85.2%_0.199_91.936_/_0.7))] bg-[var(--zui-file-upload-warning-bg,oklch(79.5%_0.184_86.047_/_0.1))] text-[color:var(--zui-file-upload-warning-fg,oklch(68.1%_0.162_75.834))] dark:text-[color:var(--zui-file-upload-warning-fg-dark,oklch(85.2%_0.199_91.936))] hover:border-[color:var(--zui-file-upload-warning-border-hover,oklch(85.2%_0.199_91.936_/_0.8))] hover:bg-[var(--zui-file-upload-warning-bg-hover,oklch(79.5%_0.184_86.047_/_0.15))]\",\n info: \"border-[color:var(--zui-file-upload-info-border,oklch(70.7%_0.165_254.624_/_0.7))] bg-[var(--zui-file-upload-info-bg,oklch(62.3%_0.214_259.815_/_0.1))] text-[color:var(--zui-file-upload-info-fg,oklch(54.6%_0.245_262.881))] dark:text-[color:var(--zui-file-upload-info-fg-dark,oklch(70.7%_0.165_254.624))] hover:border-[color:var(--zui-file-upload-info-border-hover,oklch(70.7%_0.165_254.624_/_0.8))] hover:bg-[var(--zui-file-upload-info-bg-hover,oklch(62.3%_0.214_259.815_/_0.15))]\",\n neutral:\n \"border-[color:var(--zui-file-upload-neutral-border,oklch(70.7%_0.022_261.325_/_0.7))] bg-[var(--zui-file-upload-neutral-bg,oklch(55.1%_0.027_264.364_/_0.1))] text-[color:var(--zui-file-upload-neutral-fg,oklch(44.6%_0.03_256.802))] dark:text-[color:var(--zui-file-upload-neutral-fg-dark,oklch(70.7%_0.022_261.325))] hover:border-[color:var(--zui-file-upload-neutral-border-hover,oklch(70.7%_0.022_261.325_/_0.8))] hover:bg-[var(--zui-file-upload-neutral-bg-hover,oklch(55.1%_0.027_264.364_/_0.15))]\",\n purple:\n \"border-[color:var(--zui-file-upload-purple-border,oklch(71.4%_0.203_305.504_/_0.7))] bg-[var(--zui-file-upload-purple-bg,oklch(62.7%_0.265_303.9_/_0.1))] text-[color:var(--zui-file-upload-purple-fg,oklch(55.8%_0.288_302.321))] dark:text-[color:var(--zui-file-upload-purple-fg-dark,oklch(71.4%_0.203_305.504))] hover:border-[color:var(--zui-file-upload-purple-border-hover,oklch(71.4%_0.203_305.504_/_0.8))] hover:bg-[var(--zui-file-upload-purple-bg-hover,oklch(62.7%_0.265_303.9_/_0.15))]\",\n indigo:\n \"border-[color:var(--zui-file-upload-indigo-border,oklch(67.3%_0.182_276.935_/_0.7))] bg-[var(--zui-file-upload-indigo-bg,oklch(58.5%_0.233_277.117_/_0.1))] text-[color:var(--zui-file-upload-indigo-fg,oklch(51.1%_0.262_276.966))] dark:text-[color:var(--zui-file-upload-indigo-fg-dark,oklch(67.3%_0.182_276.935))] hover:border-[color:var(--zui-file-upload-indigo-border-hover,oklch(67.3%_0.182_276.935_/_0.8))] hover:bg-[var(--zui-file-upload-indigo-bg-hover,oklch(58.5%_0.233_277.117_/_0.15))]\",\n emerald:\n \"border-[color:var(--zui-file-upload-emerald-border,oklch(76.5%_0.177_163.223_/_0.7))] bg-[var(--zui-file-upload-emerald-bg,oklch(69.6%_0.17_162.48_/_0.1))] text-[color:var(--zui-file-upload-emerald-fg,oklch(59.6%_0.145_163.225))] dark:text-[color:var(--zui-file-upload-emerald-fg-dark,oklch(76.5%_0.177_163.223))] hover:border-[color:var(--zui-file-upload-emerald-border-hover,oklch(76.5%_0.177_163.223_/_0.8))] hover:bg-[var(--zui-file-upload-emerald-bg-hover,oklch(69.6%_0.17_162.48_/_0.15))]\",\n amber:\n \"border-[color:var(--zui-file-upload-amber-border,oklch(82.8%_0.189_84.429_/_0.7))] bg-[var(--zui-file-upload-amber-bg,oklch(76.9%_0.188_70.08_/_0.1))] text-[color:var(--zui-file-upload-amber-fg,oklch(66.6%_0.179_58.318))] dark:text-[color:var(--zui-file-upload-amber-fg-dark,oklch(82.8%_0.189_84.429))] hover:border-[color:var(--zui-file-upload-amber-border-hover,oklch(82.8%_0.189_84.429_/_0.8))] hover:bg-[var(--zui-file-upload-amber-bg-hover,oklch(76.9%_0.188_70.08_/_0.15))]\",\n pink: \"border-[color:var(--zui-file-upload-pink-border,oklch(71.8%_0.202_349.761_/_0.7))] bg-[var(--zui-file-upload-pink-bg,oklch(65.6%_0.241_354.308_/_0.1))] text-[color:var(--zui-file-upload-pink-fg,oklch(59.2%_0.249_0.584))] dark:text-[color:var(--zui-file-upload-pink-fg-dark,oklch(71.8%_0.202_349.761))] hover:border-[color:var(--zui-file-upload-pink-border-hover,oklch(71.8%_0.202_349.761_/_0.8))] hover:bg-[var(--zui-file-upload-pink-bg-hover,oklch(65.6%_0.241_354.308_/_0.15))]\",\n orange:\n \"border-[color:var(--zui-file-upload-orange-border,oklch(75%_0.183_55.934_/_0.7))] bg-[var(--zui-file-upload-orange-bg,oklch(70.5%_0.213_47.604_/_0.1))] text-[color:var(--zui-file-upload-orange-fg,oklch(64.6%_0.222_41.116))] dark:text-[color:var(--zui-file-upload-orange-fg-dark,oklch(75%_0.183_55.934))] hover:border-[color:var(--zui-file-upload-orange-border-hover,oklch(75%_0.183_55.934_/_0.8))] hover:bg-[var(--zui-file-upload-orange-bg-hover,oklch(70.5%_0.213_47.604_/_0.15))]\",\n teal: \"border-[color:var(--zui-file-upload-teal-border,oklch(77.7%_0.152_181.912_/_0.7))] bg-[var(--zui-file-upload-teal-bg,oklch(70.4%_0.14_182.503_/_0.1))] text-[color:var(--zui-file-upload-teal-fg,oklch(60%_0.118_184.704))] dark:text-[color:var(--zui-file-upload-teal-fg-dark,oklch(77.7%_0.152_181.912))] hover:border-[color:var(--zui-file-upload-teal-border-hover,oklch(77.7%_0.152_181.912_/_0.8))] hover:bg-[var(--zui-file-upload-teal-bg-hover,oklch(70.4%_0.14_182.503_/_0.15))]\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiFileUploadAppearances,\n zuiFileUploadBase,\n} from \"../../design-system/file-upload\";\n\nexport const fileUploadVariants = cva(zuiFileUploadBase, {\n variants: {\n appearance: zuiFileUploadAppearances,\n },\n defaultVariants: {\n appearance: \"idle\",\n },\n});\n","\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { FileUploadProps } from \"./types\";\nimport { fileUploadVariants } from \"./variants\";\n\nexport function FileUpload({\n className,\n onFiles,\n accept,\n multiple = false,\n disabled = false,\n name,\n children,\n onChange,\n ref,\n appearance = \"idle\",\n ...rest\n}: FileUploadProps & { ref?: React.Ref<HTMLDivElement> }) {\n const inputId = useId();\n const [dragOver, setDragOver] = useState(false);\n\n const emitFiles = useCallback(\n (fileList: FileList | null) => {\n if (!fileList?.length) {\n return;\n }\n onFiles?.(Array.from(fileList));\n },\n [onFiles],\n );\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n emitFiles(event.target.files);\n event.target.value = \"\";\n },\n [emitFiles, onChange],\n );\n\n const handleDrop = useCallback(\n (event: React.DragEvent<HTMLLabelElement>) => {\n event.preventDefault();\n setDragOver(false);\n if (disabled) {\n return;\n }\n emitFiles(event.dataTransfer.files);\n },\n [disabled, emitFiles],\n );\n\n return (\n <div\n ref={ref}\n data-slot=\"file-upload\"\n className={cn(fileUploadVariants({ appearance }), className)}\n {...rest}\n >\n <input\n id={inputId}\n name={name}\n type=\"file\"\n className=\"sr-only\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n onChange={handleChange}\n />\n <label\n htmlFor={inputId}\n className={cn(\n \"flex w-full cursor-pointer flex-col items-center gap-2\",\n disabled && \"cursor-not-allowed\",\n )}\n onDragEnter={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragOver={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={handleDrop}\n >\n {children ?? (\n <>\n <span className=\"text-base font-semibold text-slate-900 dark:text-slate-100\">\n Drop files here\n </span>\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n or click to browse from your device\n </span>\n </>\n )}\n {dragOver && (\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n Drop files here\n </span>\n )}\n </label>\n </div>\n );\n}\n\nFileUpload.displayName = \"FileUpload\";\n"]}
@@ -4,33 +4,35 @@ import { useId, useState, useCallback } from 'react';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
6
 
7
- var fileUploadVariants = cva(
8
- "relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-violet-400/60 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-50 dark:focus-visible:ring-offset-slate-950",
9
- {
10
- variants: {
11
- appearance: {
12
- idle: "border-black/15 dark:border-white/15 bg-black/5 dark:bg-white/5 text-slate-600 dark:text-slate-300 hover:border-black/25 dark:hover:border-white/25 hover:bg-black/[0.07] dark:bg-white/[0.07]",
13
- active: "border-violet-400/70 bg-violet-500/10 text-slate-900 dark:text-white",
14
- disabled: "cursor-not-allowed opacity-50",
15
- error: "border-red-400/70 bg-red-500/10 text-red-600 dark:text-red-400 hover:border-red-400/80 hover:bg-red-500/15",
16
- success: "border-green-400/70 bg-green-500/10 text-green-600 dark:text-green-400 hover:border-green-400/80 hover:bg-green-500/15",
17
- warning: "border-yellow-400/70 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 hover:border-yellow-400/80 hover:bg-yellow-500/15",
18
- info: "border-blue-400/70 bg-blue-500/10 text-blue-600 dark:text-blue-400 hover:border-blue-400/80 hover:bg-blue-500/15",
19
- neutral: "border-gray-400/70 bg-gray-500/10 text-gray-600 dark:text-gray-400 hover:border-gray-400/80 hover:bg-gray-500/15",
20
- purple: "border-purple-400/70 bg-purple-500/10 text-purple-600 dark:text-purple-400 hover:border-purple-400/80 hover:bg-purple-500/15",
21
- indigo: "border-indigo-400/70 bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:border-indigo-400/80 hover:bg-indigo-500/15",
22
- emerald: "border-emerald-400/70 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:border-emerald-400/80 hover:bg-emerald-500/15",
23
- amber: "border-amber-400/70 bg-amber-500/10 text-amber-600 dark:text-amber-400 hover:border-amber-400/80 hover:bg-amber-500/15",
24
- pink: "border-pink-400/70 bg-pink-500/10 text-pink-600 dark:text-pink-400 hover:border-pink-400/80 hover:bg-pink-500/15",
25
- orange: "border-orange-400/70 bg-orange-500/10 text-orange-600 dark:text-orange-400 hover:border-orange-400/80 hover:bg-orange-500/15",
26
- teal: "border-teal-400/70 bg-teal-500/10 text-teal-600 dark:text-teal-400 hover:border-teal-400/80 hover:bg-teal-500/15"
27
- }
28
- },
29
- defaultVariants: {
30
- appearance: "idle"
31
- }
7
+ // src/design-system/file-upload.ts
8
+ var zuiFileUploadBase = "relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-file-upload-ring-focus,oklch(70.2%_0.183_293.541_/_0.6))] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))]";
9
+ var zuiFileUploadAppearances = {
10
+ idle: "border-[color:var(--zui-file-upload-idle-border,#00000026)] dark:border-[color:var(--zui-file-upload-idle-border-dark,#ffffff26)] bg-[var(--zui-file-upload-idle-bg,#0000000d)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff0d)] text-[color:var(--zui-file-upload-idle-fg,oklch(44.6%_0.043_257.281))] dark:text-[color:var(--zui-file-upload-idle-fg-dark,oklch(86.9%_0.022_252.894))] hover:border-[color:var(--zui-file-upload-idle-border-hover,#00000040)] dark:hover:border-[color:var(--zui-file-upload-idle-border-hover-dark,#ffffff40)] hover:bg-[var(--zui-file-upload-idle-bg-hover,#00000012)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff12)]",
11
+ active: "border-[color:var(--zui-file-upload-active-border,oklch(70.2%_0.183_293.541_/_0.7))] bg-[var(--zui-file-upload-active-bg,oklch(60.6%_0.25_292.717_/_0.1))] text-[color:var(--zui-file-upload-active-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-file-upload-active-fg-dark,#ffffff)]",
12
+ disabled: "cursor-not-allowed opacity-50",
13
+ error: "border-[color:var(--zui-file-upload-error-border,oklch(70.4%_0.191_22.216_/_0.7))] bg-[var(--zui-file-upload-error-bg,oklch(63.7%_0.237_25.331_/_0.1))] text-[color:var(--zui-file-upload-error-fg,oklch(57.7%_0.245_27.325))] dark:text-[color:var(--zui-file-upload-error-fg-dark,oklch(70.4%_0.191_22.216))] hover:border-[color:var(--zui-file-upload-error-border-hover,oklch(70.4%_0.191_22.216_/_0.8))] hover:bg-[var(--zui-file-upload-error-bg-hover,oklch(63.7%_0.237_25.331_/_0.15))]",
14
+ success: "border-[color:var(--zui-file-upload-success-border,oklch(79.2%_0.209_151.711_/_0.7))] bg-[var(--zui-file-upload-success-bg,oklch(72.3%_0.219_149.579_/_0.1))] text-[color:var(--zui-file-upload-success-fg,oklch(62.7%_0.194_149.214))] dark:text-[color:var(--zui-file-upload-success-fg-dark,oklch(79.2%_0.209_151.711))] hover:border-[color:var(--zui-file-upload-success-border-hover,oklch(79.2%_0.209_151.711_/_0.8))] hover:bg-[var(--zui-file-upload-success-bg-hover,oklch(72.3%_0.219_149.579_/_0.15))]",
15
+ warning: "border-[color:var(--zui-file-upload-warning-border,oklch(85.2%_0.199_91.936_/_0.7))] bg-[var(--zui-file-upload-warning-bg,oklch(79.5%_0.184_86.047_/_0.1))] text-[color:var(--zui-file-upload-warning-fg,oklch(68.1%_0.162_75.834))] dark:text-[color:var(--zui-file-upload-warning-fg-dark,oklch(85.2%_0.199_91.936))] hover:border-[color:var(--zui-file-upload-warning-border-hover,oklch(85.2%_0.199_91.936_/_0.8))] hover:bg-[var(--zui-file-upload-warning-bg-hover,oklch(79.5%_0.184_86.047_/_0.15))]",
16
+ info: "border-[color:var(--zui-file-upload-info-border,oklch(70.7%_0.165_254.624_/_0.7))] bg-[var(--zui-file-upload-info-bg,oklch(62.3%_0.214_259.815_/_0.1))] text-[color:var(--zui-file-upload-info-fg,oklch(54.6%_0.245_262.881))] dark:text-[color:var(--zui-file-upload-info-fg-dark,oklch(70.7%_0.165_254.624))] hover:border-[color:var(--zui-file-upload-info-border-hover,oklch(70.7%_0.165_254.624_/_0.8))] hover:bg-[var(--zui-file-upload-info-bg-hover,oklch(62.3%_0.214_259.815_/_0.15))]",
17
+ neutral: "border-[color:var(--zui-file-upload-neutral-border,oklch(70.7%_0.022_261.325_/_0.7))] bg-[var(--zui-file-upload-neutral-bg,oklch(55.1%_0.027_264.364_/_0.1))] text-[color:var(--zui-file-upload-neutral-fg,oklch(44.6%_0.03_256.802))] dark:text-[color:var(--zui-file-upload-neutral-fg-dark,oklch(70.7%_0.022_261.325))] hover:border-[color:var(--zui-file-upload-neutral-border-hover,oklch(70.7%_0.022_261.325_/_0.8))] hover:bg-[var(--zui-file-upload-neutral-bg-hover,oklch(55.1%_0.027_264.364_/_0.15))]",
18
+ purple: "border-[color:var(--zui-file-upload-purple-border,oklch(71.4%_0.203_305.504_/_0.7))] bg-[var(--zui-file-upload-purple-bg,oklch(62.7%_0.265_303.9_/_0.1))] text-[color:var(--zui-file-upload-purple-fg,oklch(55.8%_0.288_302.321))] dark:text-[color:var(--zui-file-upload-purple-fg-dark,oklch(71.4%_0.203_305.504))] hover:border-[color:var(--zui-file-upload-purple-border-hover,oklch(71.4%_0.203_305.504_/_0.8))] hover:bg-[var(--zui-file-upload-purple-bg-hover,oklch(62.7%_0.265_303.9_/_0.15))]",
19
+ indigo: "border-[color:var(--zui-file-upload-indigo-border,oklch(67.3%_0.182_276.935_/_0.7))] bg-[var(--zui-file-upload-indigo-bg,oklch(58.5%_0.233_277.117_/_0.1))] text-[color:var(--zui-file-upload-indigo-fg,oklch(51.1%_0.262_276.966))] dark:text-[color:var(--zui-file-upload-indigo-fg-dark,oklch(67.3%_0.182_276.935))] hover:border-[color:var(--zui-file-upload-indigo-border-hover,oklch(67.3%_0.182_276.935_/_0.8))] hover:bg-[var(--zui-file-upload-indigo-bg-hover,oklch(58.5%_0.233_277.117_/_0.15))]",
20
+ emerald: "border-[color:var(--zui-file-upload-emerald-border,oklch(76.5%_0.177_163.223_/_0.7))] bg-[var(--zui-file-upload-emerald-bg,oklch(69.6%_0.17_162.48_/_0.1))] text-[color:var(--zui-file-upload-emerald-fg,oklch(59.6%_0.145_163.225))] dark:text-[color:var(--zui-file-upload-emerald-fg-dark,oklch(76.5%_0.177_163.223))] hover:border-[color:var(--zui-file-upload-emerald-border-hover,oklch(76.5%_0.177_163.223_/_0.8))] hover:bg-[var(--zui-file-upload-emerald-bg-hover,oklch(69.6%_0.17_162.48_/_0.15))]",
21
+ amber: "border-[color:var(--zui-file-upload-amber-border,oklch(82.8%_0.189_84.429_/_0.7))] bg-[var(--zui-file-upload-amber-bg,oklch(76.9%_0.188_70.08_/_0.1))] text-[color:var(--zui-file-upload-amber-fg,oklch(66.6%_0.179_58.318))] dark:text-[color:var(--zui-file-upload-amber-fg-dark,oklch(82.8%_0.189_84.429))] hover:border-[color:var(--zui-file-upload-amber-border-hover,oklch(82.8%_0.189_84.429_/_0.8))] hover:bg-[var(--zui-file-upload-amber-bg-hover,oklch(76.9%_0.188_70.08_/_0.15))]",
22
+ pink: "border-[color:var(--zui-file-upload-pink-border,oklch(71.8%_0.202_349.761_/_0.7))] bg-[var(--zui-file-upload-pink-bg,oklch(65.6%_0.241_354.308_/_0.1))] text-[color:var(--zui-file-upload-pink-fg,oklch(59.2%_0.249_0.584))] dark:text-[color:var(--zui-file-upload-pink-fg-dark,oklch(71.8%_0.202_349.761))] hover:border-[color:var(--zui-file-upload-pink-border-hover,oklch(71.8%_0.202_349.761_/_0.8))] hover:bg-[var(--zui-file-upload-pink-bg-hover,oklch(65.6%_0.241_354.308_/_0.15))]",
23
+ orange: "border-[color:var(--zui-file-upload-orange-border,oklch(75%_0.183_55.934_/_0.7))] bg-[var(--zui-file-upload-orange-bg,oklch(70.5%_0.213_47.604_/_0.1))] text-[color:var(--zui-file-upload-orange-fg,oklch(64.6%_0.222_41.116))] dark:text-[color:var(--zui-file-upload-orange-fg-dark,oklch(75%_0.183_55.934))] hover:border-[color:var(--zui-file-upload-orange-border-hover,oklch(75%_0.183_55.934_/_0.8))] hover:bg-[var(--zui-file-upload-orange-bg-hover,oklch(70.5%_0.213_47.604_/_0.15))]",
24
+ teal: "border-[color:var(--zui-file-upload-teal-border,oklch(77.7%_0.152_181.912_/_0.7))] bg-[var(--zui-file-upload-teal-bg,oklch(70.4%_0.14_182.503_/_0.1))] text-[color:var(--zui-file-upload-teal-fg,oklch(60%_0.118_184.704))] dark:text-[color:var(--zui-file-upload-teal-fg-dark,oklch(77.7%_0.152_181.912))] hover:border-[color:var(--zui-file-upload-teal-border-hover,oklch(77.7%_0.152_181.912_/_0.8))] hover:bg-[var(--zui-file-upload-teal-bg-hover,oklch(70.4%_0.14_182.503_/_0.15))]"
25
+ };
26
+
27
+ // src/ui/file-upload/variants.ts
28
+ var fileUploadVariants = cva(zuiFileUploadBase, {
29
+ variants: {
30
+ appearance: zuiFileUploadAppearances
31
+ },
32
+ defaultVariants: {
33
+ appearance: "idle"
32
34
  }
33
- );
35
+ });
34
36
  function FileUpload({
35
37
  className,
36
38
  onFiles,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/file-upload/variants.ts","../../src/ui/file-upload/file-upload.tsx"],"names":[],"mappings":"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","file":"file-upload.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const fileUploadVariants = cva(\n \"relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-violet-400/60 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-50 dark:focus-visible:ring-offset-slate-950\",\n {\n variants: {\n appearance: {\n idle: \"border-black/15 dark:border-white/15 bg-black/5 dark:bg-white/5 text-slate-600 dark:text-slate-300 hover:border-black/25 dark:hover:border-white/25 hover:bg-black/[0.07] dark:bg-white/[0.07]\",\n active:\n \"border-violet-400/70 bg-violet-500/10 text-slate-900 dark:text-white\",\n disabled: \"cursor-not-allowed opacity-50\",\n error:\n \"border-red-400/70 bg-red-500/10 text-red-600 dark:text-red-400 hover:border-red-400/80 hover:bg-red-500/15\",\n success:\n \"border-green-400/70 bg-green-500/10 text-green-600 dark:text-green-400 hover:border-green-400/80 hover:bg-green-500/15\",\n warning:\n \"border-yellow-400/70 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 hover:border-yellow-400/80 hover:bg-yellow-500/15\",\n info: \"border-blue-400/70 bg-blue-500/10 text-blue-600 dark:text-blue-400 hover:border-blue-400/80 hover:bg-blue-500/15\",\n neutral:\n \"border-gray-400/70 bg-gray-500/10 text-gray-600 dark:text-gray-400 hover:border-gray-400/80 hover:bg-gray-500/15\",\n purple:\n \"border-purple-400/70 bg-purple-500/10 text-purple-600 dark:text-purple-400 hover:border-purple-400/80 hover:bg-purple-500/15\",\n indigo:\n \"border-indigo-400/70 bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:border-indigo-400/80 hover:bg-indigo-500/15\",\n emerald:\n \"border-emerald-400/70 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:border-emerald-400/80 hover:bg-emerald-500/15\",\n amber:\n \"border-amber-400/70 bg-amber-500/10 text-amber-600 dark:text-amber-400 hover:border-amber-400/80 hover:bg-amber-500/15\",\n pink: \"border-pink-400/70 bg-pink-500/10 text-pink-600 dark:text-pink-400 hover:border-pink-400/80 hover:bg-pink-500/15\",\n orange:\n \"border-orange-400/70 bg-orange-500/10 text-orange-600 dark:text-orange-400 hover:border-orange-400/80 hover:bg-orange-500/15\",\n teal: \"border-teal-400/70 bg-teal-500/10 text-teal-600 dark:text-teal-400 hover:border-teal-400/80 hover:bg-teal-500/15\",\n },\n },\n defaultVariants: {\n appearance: \"idle\",\n },\n },\n);\n","\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { FileUploadProps } from \"./types\";\nimport { fileUploadVariants } from \"./variants\";\n\nexport function FileUpload({\n className,\n onFiles,\n accept,\n multiple = false,\n disabled = false,\n name,\n children,\n onChange,\n ref,\n appearance = \"idle\",\n ...rest\n}: FileUploadProps & { ref?: React.Ref<HTMLDivElement> }) {\n const inputId = useId();\n const [dragOver, setDragOver] = useState(false);\n\n const emitFiles = useCallback(\n (fileList: FileList | null) => {\n if (!fileList?.length) {\n return;\n }\n onFiles?.(Array.from(fileList));\n },\n [onFiles],\n );\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n emitFiles(event.target.files);\n event.target.value = \"\";\n },\n [emitFiles, onChange],\n );\n\n const handleDrop = useCallback(\n (event: React.DragEvent<HTMLLabelElement>) => {\n event.preventDefault();\n setDragOver(false);\n if (disabled) {\n return;\n }\n emitFiles(event.dataTransfer.files);\n },\n [disabled, emitFiles],\n );\n\n return (\n <div\n ref={ref}\n data-slot=\"file-upload\"\n className={cn(fileUploadVariants({ appearance }), className)}\n {...rest}\n >\n <input\n id={inputId}\n name={name}\n type=\"file\"\n className=\"sr-only\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n onChange={handleChange}\n />\n <label\n htmlFor={inputId}\n className={cn(\n \"flex w-full cursor-pointer flex-col items-center gap-2\",\n disabled && \"cursor-not-allowed\",\n )}\n onDragEnter={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragOver={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={handleDrop}\n >\n {children ?? (\n <>\n <span className=\"text-base font-semibold text-slate-900 dark:text-slate-100\">\n Drop files here\n </span>\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n or click to browse from your device\n </span>\n </>\n )}\n {dragOver && (\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n Drop files here\n </span>\n )}\n </label>\n </div>\n );\n}\n\nFileUpload.displayName = \"FileUpload\";\n"]}
1
+ {"version":3,"sources":["../../src/design-system/file-upload.ts","../../src/ui/file-upload/variants.ts","../../src/ui/file-upload/file-upload.tsx"],"names":[],"mappings":"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","file":"file-upload.mjs","sourcesContent":["export const zuiFileUploadBase =\n \"relative flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed px-6 py-10 text-center text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-file-upload-ring-focus,oklch(70.2%_0.183_293.541_/_0.6))] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:focus-visible:ring-offset-[var(--zui-file-upload-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))]\";\n\nexport const zuiFileUploadAppearances = {\n idle: \"border-[color:var(--zui-file-upload-idle-border,#00000026)] dark:border-[color:var(--zui-file-upload-idle-border-dark,#ffffff26)] bg-[var(--zui-file-upload-idle-bg,#0000000d)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff0d)] text-[color:var(--zui-file-upload-idle-fg,oklch(44.6%_0.043_257.281))] dark:text-[color:var(--zui-file-upload-idle-fg-dark,oklch(86.9%_0.022_252.894))] hover:border-[color:var(--zui-file-upload-idle-border-hover,#00000040)] dark:hover:border-[color:var(--zui-file-upload-idle-border-hover-dark,#ffffff40)] hover:bg-[var(--zui-file-upload-idle-bg-hover,#00000012)] dark:bg-[var(--zui-file-upload-idle-bg-dark,#ffffff12)]\",\n active:\n \"border-[color:var(--zui-file-upload-active-border,oklch(70.2%_0.183_293.541_/_0.7))] bg-[var(--zui-file-upload-active-bg,oklch(60.6%_0.25_292.717_/_0.1))] text-[color:var(--zui-file-upload-active-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-file-upload-active-fg-dark,#ffffff)]\",\n disabled: \"cursor-not-allowed opacity-50\",\n error:\n \"border-[color:var(--zui-file-upload-error-border,oklch(70.4%_0.191_22.216_/_0.7))] bg-[var(--zui-file-upload-error-bg,oklch(63.7%_0.237_25.331_/_0.1))] text-[color:var(--zui-file-upload-error-fg,oklch(57.7%_0.245_27.325))] dark:text-[color:var(--zui-file-upload-error-fg-dark,oklch(70.4%_0.191_22.216))] hover:border-[color:var(--zui-file-upload-error-border-hover,oklch(70.4%_0.191_22.216_/_0.8))] hover:bg-[var(--zui-file-upload-error-bg-hover,oklch(63.7%_0.237_25.331_/_0.15))]\",\n success:\n \"border-[color:var(--zui-file-upload-success-border,oklch(79.2%_0.209_151.711_/_0.7))] bg-[var(--zui-file-upload-success-bg,oklch(72.3%_0.219_149.579_/_0.1))] text-[color:var(--zui-file-upload-success-fg,oklch(62.7%_0.194_149.214))] dark:text-[color:var(--zui-file-upload-success-fg-dark,oklch(79.2%_0.209_151.711))] hover:border-[color:var(--zui-file-upload-success-border-hover,oklch(79.2%_0.209_151.711_/_0.8))] hover:bg-[var(--zui-file-upload-success-bg-hover,oklch(72.3%_0.219_149.579_/_0.15))]\",\n warning:\n \"border-[color:var(--zui-file-upload-warning-border,oklch(85.2%_0.199_91.936_/_0.7))] bg-[var(--zui-file-upload-warning-bg,oklch(79.5%_0.184_86.047_/_0.1))] text-[color:var(--zui-file-upload-warning-fg,oklch(68.1%_0.162_75.834))] dark:text-[color:var(--zui-file-upload-warning-fg-dark,oklch(85.2%_0.199_91.936))] hover:border-[color:var(--zui-file-upload-warning-border-hover,oklch(85.2%_0.199_91.936_/_0.8))] hover:bg-[var(--zui-file-upload-warning-bg-hover,oklch(79.5%_0.184_86.047_/_0.15))]\",\n info: \"border-[color:var(--zui-file-upload-info-border,oklch(70.7%_0.165_254.624_/_0.7))] bg-[var(--zui-file-upload-info-bg,oklch(62.3%_0.214_259.815_/_0.1))] text-[color:var(--zui-file-upload-info-fg,oklch(54.6%_0.245_262.881))] dark:text-[color:var(--zui-file-upload-info-fg-dark,oklch(70.7%_0.165_254.624))] hover:border-[color:var(--zui-file-upload-info-border-hover,oklch(70.7%_0.165_254.624_/_0.8))] hover:bg-[var(--zui-file-upload-info-bg-hover,oklch(62.3%_0.214_259.815_/_0.15))]\",\n neutral:\n \"border-[color:var(--zui-file-upload-neutral-border,oklch(70.7%_0.022_261.325_/_0.7))] bg-[var(--zui-file-upload-neutral-bg,oklch(55.1%_0.027_264.364_/_0.1))] text-[color:var(--zui-file-upload-neutral-fg,oklch(44.6%_0.03_256.802))] dark:text-[color:var(--zui-file-upload-neutral-fg-dark,oklch(70.7%_0.022_261.325))] hover:border-[color:var(--zui-file-upload-neutral-border-hover,oklch(70.7%_0.022_261.325_/_0.8))] hover:bg-[var(--zui-file-upload-neutral-bg-hover,oklch(55.1%_0.027_264.364_/_0.15))]\",\n purple:\n \"border-[color:var(--zui-file-upload-purple-border,oklch(71.4%_0.203_305.504_/_0.7))] bg-[var(--zui-file-upload-purple-bg,oklch(62.7%_0.265_303.9_/_0.1))] text-[color:var(--zui-file-upload-purple-fg,oklch(55.8%_0.288_302.321))] dark:text-[color:var(--zui-file-upload-purple-fg-dark,oklch(71.4%_0.203_305.504))] hover:border-[color:var(--zui-file-upload-purple-border-hover,oklch(71.4%_0.203_305.504_/_0.8))] hover:bg-[var(--zui-file-upload-purple-bg-hover,oklch(62.7%_0.265_303.9_/_0.15))]\",\n indigo:\n \"border-[color:var(--zui-file-upload-indigo-border,oklch(67.3%_0.182_276.935_/_0.7))] bg-[var(--zui-file-upload-indigo-bg,oklch(58.5%_0.233_277.117_/_0.1))] text-[color:var(--zui-file-upload-indigo-fg,oklch(51.1%_0.262_276.966))] dark:text-[color:var(--zui-file-upload-indigo-fg-dark,oklch(67.3%_0.182_276.935))] hover:border-[color:var(--zui-file-upload-indigo-border-hover,oklch(67.3%_0.182_276.935_/_0.8))] hover:bg-[var(--zui-file-upload-indigo-bg-hover,oklch(58.5%_0.233_277.117_/_0.15))]\",\n emerald:\n \"border-[color:var(--zui-file-upload-emerald-border,oklch(76.5%_0.177_163.223_/_0.7))] bg-[var(--zui-file-upload-emerald-bg,oklch(69.6%_0.17_162.48_/_0.1))] text-[color:var(--zui-file-upload-emerald-fg,oklch(59.6%_0.145_163.225))] dark:text-[color:var(--zui-file-upload-emerald-fg-dark,oklch(76.5%_0.177_163.223))] hover:border-[color:var(--zui-file-upload-emerald-border-hover,oklch(76.5%_0.177_163.223_/_0.8))] hover:bg-[var(--zui-file-upload-emerald-bg-hover,oklch(69.6%_0.17_162.48_/_0.15))]\",\n amber:\n \"border-[color:var(--zui-file-upload-amber-border,oklch(82.8%_0.189_84.429_/_0.7))] bg-[var(--zui-file-upload-amber-bg,oklch(76.9%_0.188_70.08_/_0.1))] text-[color:var(--zui-file-upload-amber-fg,oklch(66.6%_0.179_58.318))] dark:text-[color:var(--zui-file-upload-amber-fg-dark,oklch(82.8%_0.189_84.429))] hover:border-[color:var(--zui-file-upload-amber-border-hover,oklch(82.8%_0.189_84.429_/_0.8))] hover:bg-[var(--zui-file-upload-amber-bg-hover,oklch(76.9%_0.188_70.08_/_0.15))]\",\n pink: \"border-[color:var(--zui-file-upload-pink-border,oklch(71.8%_0.202_349.761_/_0.7))] bg-[var(--zui-file-upload-pink-bg,oklch(65.6%_0.241_354.308_/_0.1))] text-[color:var(--zui-file-upload-pink-fg,oklch(59.2%_0.249_0.584))] dark:text-[color:var(--zui-file-upload-pink-fg-dark,oklch(71.8%_0.202_349.761))] hover:border-[color:var(--zui-file-upload-pink-border-hover,oklch(71.8%_0.202_349.761_/_0.8))] hover:bg-[var(--zui-file-upload-pink-bg-hover,oklch(65.6%_0.241_354.308_/_0.15))]\",\n orange:\n \"border-[color:var(--zui-file-upload-orange-border,oklch(75%_0.183_55.934_/_0.7))] bg-[var(--zui-file-upload-orange-bg,oklch(70.5%_0.213_47.604_/_0.1))] text-[color:var(--zui-file-upload-orange-fg,oklch(64.6%_0.222_41.116))] dark:text-[color:var(--zui-file-upload-orange-fg-dark,oklch(75%_0.183_55.934))] hover:border-[color:var(--zui-file-upload-orange-border-hover,oklch(75%_0.183_55.934_/_0.8))] hover:bg-[var(--zui-file-upload-orange-bg-hover,oklch(70.5%_0.213_47.604_/_0.15))]\",\n teal: \"border-[color:var(--zui-file-upload-teal-border,oklch(77.7%_0.152_181.912_/_0.7))] bg-[var(--zui-file-upload-teal-bg,oklch(70.4%_0.14_182.503_/_0.1))] text-[color:var(--zui-file-upload-teal-fg,oklch(60%_0.118_184.704))] dark:text-[color:var(--zui-file-upload-teal-fg-dark,oklch(77.7%_0.152_181.912))] hover:border-[color:var(--zui-file-upload-teal-border-hover,oklch(77.7%_0.152_181.912_/_0.8))] hover:bg-[var(--zui-file-upload-teal-bg-hover,oklch(70.4%_0.14_182.503_/_0.15))]\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiFileUploadAppearances,\n zuiFileUploadBase,\n} from \"../../design-system/file-upload\";\n\nexport const fileUploadVariants = cva(zuiFileUploadBase, {\n variants: {\n appearance: zuiFileUploadAppearances,\n },\n defaultVariants: {\n appearance: \"idle\",\n },\n});\n","\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { FileUploadProps } from \"./types\";\nimport { fileUploadVariants } from \"./variants\";\n\nexport function FileUpload({\n className,\n onFiles,\n accept,\n multiple = false,\n disabled = false,\n name,\n children,\n onChange,\n ref,\n appearance = \"idle\",\n ...rest\n}: FileUploadProps & { ref?: React.Ref<HTMLDivElement> }) {\n const inputId = useId();\n const [dragOver, setDragOver] = useState(false);\n\n const emitFiles = useCallback(\n (fileList: FileList | null) => {\n if (!fileList?.length) {\n return;\n }\n onFiles?.(Array.from(fileList));\n },\n [onFiles],\n );\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n emitFiles(event.target.files);\n event.target.value = \"\";\n },\n [emitFiles, onChange],\n );\n\n const handleDrop = useCallback(\n (event: React.DragEvent<HTMLLabelElement>) => {\n event.preventDefault();\n setDragOver(false);\n if (disabled) {\n return;\n }\n emitFiles(event.dataTransfer.files);\n },\n [disabled, emitFiles],\n );\n\n return (\n <div\n ref={ref}\n data-slot=\"file-upload\"\n className={cn(fileUploadVariants({ appearance }), className)}\n {...rest}\n >\n <input\n id={inputId}\n name={name}\n type=\"file\"\n className=\"sr-only\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n onChange={handleChange}\n />\n <label\n htmlFor={inputId}\n className={cn(\n \"flex w-full cursor-pointer flex-col items-center gap-2\",\n disabled && \"cursor-not-allowed\",\n )}\n onDragEnter={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragOver={(e) => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(true);\n }\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={handleDrop}\n >\n {children ?? (\n <>\n <span className=\"text-base font-semibold text-slate-900 dark:text-slate-100\">\n Drop files here\n </span>\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n or click to browse from your device\n </span>\n </>\n )}\n {dragOver && (\n <span className=\"text-xs text-slate-600 dark:text-slate-400\">\n Drop files here\n </span>\n )}\n </label>\n </div>\n );\n}\n\nFileUpload.displayName = \"FileUpload\";\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkQNF4JPFP_js = require('../../chunk-QNF4JPFP.js');
4
+ var chunkYAO62VH2_js = require('../../chunk-YAO62VH2.js');
5
5
  var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
6
6
  var react = require('react');
7
7
  var framerMotion = require('framer-motion');
@@ -68,7 +68,7 @@ var InputAnimated = (props) => {
68
68
  id: controlId2,
69
69
  "data-slot": "input",
70
70
  className: chunkZS5756ZC_js.cn(
71
- chunkQNF4JPFP_js.inputVariants({ appearance: appearance2, size: size2, ring: ring2, as: as2 }),
71
+ chunkYAO62VH2_js.inputVariants({ appearance: appearance2, size: size2, ring: ring2, as: as2 }),
72
72
  className2
73
73
  ),
74
74
  initial: false,
@@ -113,7 +113,7 @@ var InputAnimated = (props) => {
113
113
  id: controlId,
114
114
  "data-slot": "input",
115
115
  className: chunkZS5756ZC_js.cn(
116
- chunkQNF4JPFP_js.inputVariants({ appearance, size, ring, as: as ?? "input" }),
116
+ chunkYAO62VH2_js.inputVariants({ appearance, size, ring, as: as ?? "input" }),
117
117
  className
118
118
  ),
119
119
  initial: false,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { inputVariants } from '../../chunk-RFFGQYDQ.mjs';
2
+ import { inputVariants } from '../../chunk-QXHS3HHZ.mjs';
3
3
  import { cn } from '../../chunk-4D54YOL6.mjs';
4
4
  import { useId } from 'react';
5
5
  import { motion } from 'framer-motion';
@@ -1,7 +1,7 @@
1
1
  export declare const inputVariants: (props?: ({
2
2
  as?: "checkbox" | "radio" | "textarea" | "date" | "input" | "file" | null | undefined;
3
3
  appearance?: "default" | "violet" | "amber" | "indigo" | "orange" | "pink" | "error" | "success" | "warning" | "info" | null | undefined;
4
- size?: "sm" | "md" | "lg" | null | undefined;
4
+ size?: "md" | "sm" | "lg" | null | undefined;
5
5
  ring?: boolean | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  //# sourceMappingURL=variants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/inputs/variants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;8EAoXzB,CAAC"}
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/inputs/variants.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa;;;;;8EA6SxB,CAAC"}
package/dist/ui/inputs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkQNF4JPFP_js = require('../chunk-QNF4JPFP.js');
4
+ var chunkYAO62VH2_js = require('../chunk-YAO62VH2.js');
5
5
  var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -58,7 +58,7 @@ var InputBase = (props) => {
58
58
  id: controlId2,
59
59
  "data-slot": "input",
60
60
  className: chunkZS5756ZC_js.cn(
61
- chunkQNF4JPFP_js.inputVariants({ appearance: appearance2, size: size2, ring: ring2, as: as2 }),
61
+ chunkYAO62VH2_js.inputVariants({ appearance: appearance2, size: size2, ring: ring2, as: as2 }),
62
62
  className2
63
63
  ),
64
64
  "aria-invalid": ariaInvalid2,
@@ -117,7 +117,7 @@ var InputBase = (props) => {
117
117
  id: controlId,
118
118
  "data-slot": "input",
119
119
  className: chunkZS5756ZC_js.cn(
120
- chunkQNF4JPFP_js.inputVariants({ appearance, size, ring, as: as ?? "input" }),
120
+ chunkYAO62VH2_js.inputVariants({ appearance, size, ring, as: as ?? "input" }),
121
121
  className
122
122
  ),
123
123
  "aria-invalid": ariaInvalid,
@@ -143,7 +143,7 @@ Input.displayName = "Input";
143
143
 
144
144
  Object.defineProperty(exports, "inputVariants", {
145
145
  enumerable: true,
146
- get: function () { return chunkQNF4JPFP_js.inputVariants; }
146
+ get: function () { return chunkYAO62VH2_js.inputVariants; }
147
147
  });
148
148
  exports.Input = Input;
149
149
  //# sourceMappingURL=inputs.js.map
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { inputVariants } from '../chunk-RFFGQYDQ.mjs';
3
- export { inputVariants } from '../chunk-RFFGQYDQ.mjs';
2
+ import { inputVariants } from '../chunk-QXHS3HHZ.mjs';
3
+ export { inputVariants } from '../chunk-QXHS3HHZ.mjs';
4
4
  import { cn } from '../chunk-4D54YOL6.mjs';
5
5
  import { useId } from 'react';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk4F56BLZQ_js = require('../../chunk-4F56BLZQ.js');
4
+ var chunkQYLTKBH7_js = require('../../chunk-QYLTKBH7.js');
5
5
  var chunkGBWGVNDA_js = require('../../chunk-GBWGVNDA.js');
6
6
  require('../../chunk-UIYFEP3I.js');
7
7
  var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
@@ -48,7 +48,7 @@ function ModalContentAnimated({
48
48
  id,
49
49
  style
50
50
  }) {
51
- const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = chunk4F56BLZQ_js.useModalContext("ModalContent");
51
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = chunkQYLTKBH7_js.useModalContext("ModalContent");
52
52
  const reduceMotion = framerMotion.useReducedMotion();
53
53
  const overlayMotion = modalOverlayAnimationPresets[reduceMotion ? "fade" : animation];
54
54
  const panelMotion = modalOverlayAnimationPresets[reduceMotion ? "fade" : animation];
@@ -69,7 +69,7 @@ function ModalContentAnimated({
69
69
  {
70
70
  role: "presentation",
71
71
  "data-slot": "modal-overlay",
72
- className: chunk4F56BLZQ_js.modalOverlayVariants(),
72
+ className: chunkQYLTKBH7_js.modalOverlayVariants(),
73
73
  onClick: () => setOpen(false),
74
74
  initial: animation === "none" ? false : overlayMotion.initial,
75
75
  animate: animation === "none" ? void 0 : overlayMotion.animate,
@@ -95,7 +95,7 @@ function ModalContentAnimated({
95
95
  "data-slot": "modal-content",
96
96
  tabIndex: -1,
97
97
  className: chunkZS5756ZC_js.cn(
98
- chunk4F56BLZQ_js.modalContentVariants({ size, position, appearance }),
98
+ chunkQYLTKBH7_js.modalContentVariants({ size, position, appearance }),
99
99
  className
100
100
  ),
101
101
  initial: animation === "none" ? false : panelMotion.initial,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useModalContext, modalOverlayVariants, modalContentVariants } from '../../chunk-WNLDXBS6.mjs';
2
+ import { useModalContext, modalOverlayVariants, modalContentVariants } from '../../chunk-KTGV76M3.mjs';
3
3
  import { useFocusManagement } from '../../chunk-K6YI4FJO.mjs';
4
4
  import '../../chunk-PMAF6FBF.mjs';
5
5
  import { cn } from '../../chunk-4D54YOL6.mjs';
@@ -3,7 +3,7 @@ export declare const modalTriggerVariants: (props?: ({
3
3
  appearance?: "default" | "glass" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const modalContentVariants: (props?: ({
6
- size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
6
+ size?: "md" | "sm" | "lg" | "xl" | "full" | null | undefined;
7
7
  position?: "center" | "bottom" | "top" | null | undefined;
8
8
  appearance?: "default" | "glass" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
9
9
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/modal/variants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,oFAEhC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;8EAoDhC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;8EAiEhC,CAAC"}
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/modal/variants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,oBAAoB,oFAA2B,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;8EAO/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;8EAW/B,CAAC"}
package/dist/ui/modal.js CHANGED
@@ -1,56 +1,56 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk4F56BLZQ_js = require('../chunk-4F56BLZQ.js');
4
+ var chunkQYLTKBH7_js = require('../chunk-QYLTKBH7.js');
5
5
  require('../chunk-GBWGVNDA.js');
6
6
  require('../chunk-UIYFEP3I.js');
7
7
  require('../chunk-ZS5756ZC.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  var Modal2 = (props) => {
11
- return /* @__PURE__ */ jsxRuntime.jsx(chunk4F56BLZQ_js.Modal, { ...props });
11
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkQYLTKBH7_js.Modal, { ...props });
12
12
  };
13
13
  Modal2.displayName = "Modal";
14
14
 
15
15
  Object.defineProperty(exports, "ModalBody", {
16
16
  enumerable: true,
17
- get: function () { return chunk4F56BLZQ_js.ModalBody; }
17
+ get: function () { return chunkQYLTKBH7_js.ModalBody; }
18
18
  });
19
19
  Object.defineProperty(exports, "ModalClose", {
20
20
  enumerable: true,
21
- get: function () { return chunk4F56BLZQ_js.ModalClose; }
21
+ get: function () { return chunkQYLTKBH7_js.ModalClose; }
22
22
  });
23
23
  Object.defineProperty(exports, "ModalContent", {
24
24
  enumerable: true,
25
- get: function () { return chunk4F56BLZQ_js.ModalContent; }
25
+ get: function () { return chunkQYLTKBH7_js.ModalContent; }
26
26
  });
27
27
  Object.defineProperty(exports, "ModalDescription", {
28
28
  enumerable: true,
29
- get: function () { return chunk4F56BLZQ_js.ModalDescription; }
29
+ get: function () { return chunkQYLTKBH7_js.ModalDescription; }
30
30
  });
31
31
  Object.defineProperty(exports, "ModalFooter", {
32
32
  enumerable: true,
33
- get: function () { return chunk4F56BLZQ_js.ModalFooter; }
33
+ get: function () { return chunkQYLTKBH7_js.ModalFooter; }
34
34
  });
35
35
  Object.defineProperty(exports, "ModalHeader", {
36
36
  enumerable: true,
37
- get: function () { return chunk4F56BLZQ_js.ModalHeader; }
37
+ get: function () { return chunkQYLTKBH7_js.ModalHeader; }
38
38
  });
39
39
  Object.defineProperty(exports, "ModalTitle", {
40
40
  enumerable: true,
41
- get: function () { return chunk4F56BLZQ_js.ModalTitle; }
41
+ get: function () { return chunkQYLTKBH7_js.ModalTitle; }
42
42
  });
43
43
  Object.defineProperty(exports, "ModalTrigger", {
44
44
  enumerable: true,
45
- get: function () { return chunk4F56BLZQ_js.ModalTrigger; }
45
+ get: function () { return chunkQYLTKBH7_js.ModalTrigger; }
46
46
  });
47
47
  Object.defineProperty(exports, "modalContentVariants", {
48
48
  enumerable: true,
49
- get: function () { return chunk4F56BLZQ_js.modalContentVariants; }
49
+ get: function () { return chunkQYLTKBH7_js.modalContentVariants; }
50
50
  });
51
51
  Object.defineProperty(exports, "modalOverlayVariants", {
52
52
  enumerable: true,
53
- get: function () { return chunk4F56BLZQ_js.modalOverlayVariants; }
53
+ get: function () { return chunkQYLTKBH7_js.modalOverlayVariants; }
54
54
  });
55
55
  exports.Modal = Modal2;
56
56
  //# sourceMappingURL=modal.js.map
package/dist/ui/modal.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { Modal } from '../chunk-WNLDXBS6.mjs';
3
- export { ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants, modalOverlayVariants } from '../chunk-WNLDXBS6.mjs';
2
+ import { Modal } from '../chunk-KTGV76M3.mjs';
3
+ export { ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants, modalOverlayVariants } from '../chunk-KTGV76M3.mjs';
4
4
  import '../chunk-K6YI4FJO.mjs';
5
5
  import '../chunk-PMAF6FBF.mjs';
6
6
  import '../chunk-4D54YOL6.mjs';