@zentauri-ui/zentauri-components 1.5.31 → 1.6.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 (359) hide show
  1. package/README.md +78 -69
  2. package/dist/charts/area.js.map +1 -1
  3. package/dist/charts/area.mjs.map +1 -1
  4. package/dist/charts/bubble/Bubble.d.ts.map +1 -1
  5. package/dist/charts/bubble.js.map +1 -1
  6. package/dist/charts/bubble.mjs.map +1 -1
  7. package/dist/charts/pie/Pie.d.ts.map +1 -1
  8. package/dist/charts/pie.js +20 -2
  9. package/dist/charts/pie.js.map +1 -1
  10. package/dist/charts/pie.mjs +20 -2
  11. package/dist/charts/pie.mjs.map +1 -1
  12. package/dist/charts/shared/types.d.ts.map +1 -1
  13. package/dist/{chunk-G3LEYBRV.mjs → chunk-25EAVVGS.mjs} +61 -58
  14. package/dist/chunk-25EAVVGS.mjs.map +1 -0
  15. package/dist/{chunk-BCZIYH53.js → chunk-3OXIZ4ZO.js} +28 -28
  16. package/dist/chunk-3OXIZ4ZO.js.map +1 -0
  17. package/dist/chunk-3PC7XLJX.js +102 -0
  18. package/dist/chunk-3PC7XLJX.js.map +1 -0
  19. package/dist/chunk-4ECCMHAX.mjs +323 -0
  20. package/dist/chunk-4ECCMHAX.mjs.map +1 -0
  21. package/dist/{chunk-JJDANNNL.mjs → chunk-4MPNRGUA.mjs} +3 -9
  22. package/dist/chunk-4MPNRGUA.mjs.map +1 -0
  23. package/dist/{chunk-Y745GQR2.js → chunk-4PZIDDC6.js} +45 -45
  24. package/dist/chunk-4PZIDDC6.js.map +1 -0
  25. package/dist/{chunk-PWL5WD34.js → chunk-662PJBZD.js} +27 -26
  26. package/dist/chunk-662PJBZD.js.map +1 -0
  27. package/dist/{chunk-TINHLHCN.mjs → chunk-73RHHGIA.mjs} +39 -36
  28. package/dist/chunk-73RHHGIA.mjs.map +1 -0
  29. package/dist/{chunk-OLEMP2HL.js → chunk-746CV3AN.js} +29 -36
  30. package/dist/chunk-746CV3AN.js.map +1 -0
  31. package/dist/{chunk-AUGLZ3AN.js → chunk-BMFPUQZC.js} +50 -50
  32. package/dist/chunk-BMFPUQZC.js.map +1 -0
  33. package/dist/chunk-CFTDAGKD.js +130 -0
  34. package/dist/chunk-CFTDAGKD.js.map +1 -0
  35. package/dist/{chunk-N2OAI2HN.js → chunk-D55YIHBN.js} +15 -15
  36. package/dist/chunk-D55YIHBN.js.map +1 -0
  37. package/dist/{chunk-KXUG4WVW.js → chunk-DO2LEXUY.js} +5 -5
  38. package/dist/{chunk-KXUG4WVW.js.map → chunk-DO2LEXUY.js.map} +1 -1
  39. package/dist/chunk-EU63V22F.mjs +126 -0
  40. package/dist/chunk-EU63V22F.mjs.map +1 -0
  41. package/dist/chunk-EZS47EZW.mjs +70 -0
  42. package/dist/chunk-EZS47EZW.mjs.map +1 -0
  43. package/dist/{chunk-E4FZY7O2.js → chunk-GHJN3Z3V.js} +48 -48
  44. package/dist/chunk-GHJN3Z3V.js.map +1 -0
  45. package/dist/{chunk-MTLLJFUI.mjs → chunk-GIC3J6HR.mjs} +28 -28
  46. package/dist/chunk-GIC3J6HR.mjs.map +1 -0
  47. package/dist/{chunk-C5L465FW.mjs → chunk-HARD4NMB.mjs} +45 -45
  48. package/dist/chunk-HARD4NMB.mjs.map +1 -0
  49. package/dist/{chunk-YTRGRHEB.js → chunk-HV7LVRK3.js} +61 -58
  50. package/dist/chunk-HV7LVRK3.js.map +1 -0
  51. package/dist/{chunk-Q5B44QW7.js → chunk-J4LG43O2.js} +51 -51
  52. package/dist/chunk-J4LG43O2.js.map +1 -0
  53. package/dist/{chunk-ZYZJ74XB.mjs → chunk-J5QJEKY2.mjs} +28 -28
  54. package/dist/chunk-J5QJEKY2.mjs.map +1 -0
  55. package/dist/{chunk-7TLKLMBM.js → chunk-JOMSI4WH.js} +18 -15
  56. package/dist/chunk-JOMSI4WH.js.map +1 -0
  57. package/dist/{chunk-ZBBFOMSJ.mjs → chunk-M6FS7X54.mjs} +22 -22
  58. package/dist/chunk-M6FS7X54.mjs.map +1 -0
  59. package/dist/{chunk-JUDMPOCI.js → chunk-MM3P52WS.js} +22 -22
  60. package/dist/chunk-MM3P52WS.js.map +1 -0
  61. package/dist/{chunk-UWA23DUC.js → chunk-OB6TYS5Q.js} +28 -28
  62. package/dist/chunk-OB6TYS5Q.js.map +1 -0
  63. package/dist/{chunk-QZTEFGZF.mjs → chunk-OVTWPGMW.mjs} +18 -15
  64. package/dist/chunk-OVTWPGMW.mjs.map +1 -0
  65. package/dist/{chunk-7OHC4ERB.mjs → chunk-PPVJ4INP.mjs} +3 -3
  66. package/dist/{chunk-7OHC4ERB.mjs.map → chunk-PPVJ4INP.mjs.map} +1 -1
  67. package/dist/{chunk-LN77JJTY.mjs → chunk-PSIAOIXJ.mjs} +48 -48
  68. package/dist/chunk-PSIAOIXJ.mjs.map +1 -0
  69. package/dist/chunk-QNF4JPFP.js +339 -0
  70. package/dist/chunk-QNF4JPFP.js.map +1 -0
  71. package/dist/{chunk-A6KMZ5ZS.mjs → chunk-QSIJKHC5.mjs} +15 -15
  72. package/dist/chunk-QSIJKHC5.mjs.map +1 -0
  73. package/dist/chunk-RFFGQYDQ.mjs +337 -0
  74. package/dist/chunk-RFFGQYDQ.mjs.map +1 -0
  75. package/dist/{chunk-INMNX3HQ.mjs → chunk-S5H2OMTZ.mjs} +29 -36
  76. package/dist/chunk-S5H2OMTZ.mjs.map +1 -0
  77. package/dist/{chunk-JBAUEGYD.mjs → chunk-TFWKF3DR.mjs} +51 -51
  78. package/dist/chunk-TFWKF3DR.mjs.map +1 -0
  79. package/dist/chunk-VGWA26BN.js +72 -0
  80. package/dist/chunk-VGWA26BN.js.map +1 -0
  81. package/dist/{chunk-MEJMX4QI.js → chunk-VMCOX3Z2.js} +3 -9
  82. package/dist/chunk-VMCOX3Z2.js.map +1 -0
  83. package/dist/chunk-Y3AHRRNM.mjs +99 -0
  84. package/dist/chunk-Y3AHRRNM.mjs.map +1 -0
  85. package/dist/{chunk-TJUNN2PT.mjs → chunk-YD3LVW7V.mjs} +27 -26
  86. package/dist/chunk-YD3LVW7V.mjs.map +1 -0
  87. package/dist/{chunk-AD2LA3XN.js → chunk-YIO7DFUA.js} +39 -36
  88. package/dist/chunk-YIO7DFUA.js.map +1 -0
  89. package/dist/chunk-YRTGORVB.js +232 -0
  90. package/dist/chunk-YRTGORVB.js.map +1 -0
  91. package/dist/chunk-Z7QK472J.mjs +220 -0
  92. package/dist/chunk-Z7QK472J.mjs.map +1 -0
  93. package/dist/hooks/useDynamicStepper/index.d.ts +1 -1
  94. package/dist/hooks/useDynamicStepper/index.d.ts.map +1 -1
  95. package/dist/hooks/useDynamicStepper/useDynamicStepper.d.ts.map +1 -1
  96. package/dist/hooks/useDynamicStepper.js +2 -2
  97. package/dist/hooks/useDynamicStepper.mjs +1 -1
  98. package/dist/ui/accordion/animated.js +7 -7
  99. package/dist/ui/accordion/animated.mjs +2 -2
  100. package/dist/ui/accordion/variants.d.ts.map +1 -1
  101. package/dist/ui/accordion.js +9 -9
  102. package/dist/ui/accordion.mjs +2 -2
  103. package/dist/ui/alert/animated.js +2 -2
  104. package/dist/ui/alert/animated.mjs +1 -1
  105. package/dist/ui/alert/variants.d.ts.map +1 -1
  106. package/dist/ui/alert.js +10 -10
  107. package/dist/ui/alert.mjs +2 -2
  108. package/dist/ui/avatar/animated.js +5 -5
  109. package/dist/ui/avatar/animated.mjs +2 -2
  110. package/dist/ui/avatar/variants.d.ts.map +1 -1
  111. package/dist/ui/avatar.js +9 -9
  112. package/dist/ui/avatar.mjs +2 -2
  113. package/dist/ui/badge/animated.js +2 -2
  114. package/dist/ui/badge/animated.mjs +1 -1
  115. package/dist/ui/badge/variants.d.ts +24 -24
  116. package/dist/ui/badge/variants.d.ts.map +1 -1
  117. package/dist/ui/badge.js +4 -4
  118. package/dist/ui/badge.mjs +2 -2
  119. package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
  120. package/dist/ui/breadcrumb.js +30 -25
  121. package/dist/ui/breadcrumb.js.map +1 -1
  122. package/dist/ui/breadcrumb.mjs +30 -25
  123. package/dist/ui/breadcrumb.mjs.map +1 -1
  124. package/dist/ui/buttons/animated.js +3 -3
  125. package/dist/ui/buttons/animated.mjs +1 -1
  126. package/dist/ui/buttons/variants.d.ts.map +1 -1
  127. package/dist/ui/buttons.js +4 -4
  128. package/dist/ui/buttons.mjs +2 -2
  129. package/dist/ui/card/animated.js +7 -7
  130. package/dist/ui/card/animated.mjs +2 -2
  131. package/dist/ui/card/variants.d.ts.map +1 -1
  132. package/dist/ui/card.js +12 -12
  133. package/dist/ui/card.mjs +2 -2
  134. package/dist/ui/divider/animated.js +2 -2
  135. package/dist/ui/divider/animated.mjs +1 -1
  136. package/dist/ui/divider.js +6 -6
  137. package/dist/ui/divider.mjs +2 -2
  138. package/dist/ui/drawer/animated.js +11 -11
  139. package/dist/ui/drawer/animated.mjs +2 -2
  140. package/dist/ui/drawer/variants.d.ts.map +1 -1
  141. package/dist/ui/drawer.js +11 -11
  142. package/dist/ui/drawer.mjs +1 -1
  143. package/dist/ui/dropdown/variants.d.ts.map +1 -1
  144. package/dist/ui/dropdown.js +52 -52
  145. package/dist/ui/dropdown.js.map +1 -1
  146. package/dist/ui/dropdown.mjs +52 -52
  147. package/dist/ui/dropdown.mjs.map +1 -1
  148. package/dist/ui/dynamic-stepper/index.d.ts +1 -1
  149. package/dist/ui/dynamic-stepper/index.d.ts.map +1 -1
  150. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -1
  151. package/dist/ui/dynamic-stepper.js +75 -72
  152. package/dist/ui/dynamic-stepper.js.map +1 -1
  153. package/dist/ui/dynamic-stepper.mjs +72 -69
  154. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  155. package/dist/ui/empty-state/animated.js +2 -2
  156. package/dist/ui/empty-state/animated.mjs +1 -1
  157. package/dist/ui/empty-state/variants.d.ts.map +1 -1
  158. package/dist/ui/empty-state.js +10 -10
  159. package/dist/ui/empty-state.mjs +2 -2
  160. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  161. package/dist/ui/file-upload/variants.d.ts.map +1 -1
  162. package/dist/ui/file-upload.js +18 -18
  163. package/dist/ui/file-upload.js.map +1 -1
  164. package/dist/ui/file-upload.mjs +18 -18
  165. package/dist/ui/file-upload.mjs.map +1 -1
  166. package/dist/ui/inputs/animated.js +3 -3
  167. package/dist/ui/inputs/animated.mjs +1 -1
  168. package/dist/ui/inputs/types.d.ts +1 -1
  169. package/dist/ui/inputs/types.d.ts.map +1 -1
  170. package/dist/ui/inputs/variants.d.ts +1 -1
  171. package/dist/ui/inputs/variants.d.ts.map +1 -1
  172. package/dist/ui/inputs.js +4 -4
  173. package/dist/ui/inputs.mjs +2 -2
  174. package/dist/ui/modal/animated.js +4 -4
  175. package/dist/ui/modal/animated.mjs +1 -1
  176. package/dist/ui/modal/variants.d.ts.map +1 -1
  177. package/dist/ui/modal.js +12 -12
  178. package/dist/ui/modal.mjs +2 -2
  179. package/dist/ui/pagination/types.d.ts.map +1 -1
  180. package/dist/ui/pagination/variants.d.ts.map +1 -1
  181. package/dist/ui/pagination.js +33 -33
  182. package/dist/ui/pagination.js.map +1 -1
  183. package/dist/ui/pagination.mjs +30 -30
  184. package/dist/ui/pagination.mjs.map +1 -1
  185. package/dist/ui/progress/animated.js +8 -8
  186. package/dist/ui/progress/animated.mjs +2 -2
  187. package/dist/ui/progress/variants.d.ts.map +1 -1
  188. package/dist/ui/progress.js +9 -9
  189. package/dist/ui/progress.mjs +2 -2
  190. package/dist/ui/search/search-bar.d.ts.map +1 -1
  191. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  192. package/dist/ui/search.js +10 -9
  193. package/dist/ui/search.js.map +1 -1
  194. package/dist/ui/search.mjs +9 -8
  195. package/dist/ui/search.mjs.map +1 -1
  196. package/dist/ui/select/variants.d.ts.map +1 -1
  197. package/dist/ui/select.js +66 -66
  198. package/dist/ui/select.js.map +1 -1
  199. package/dist/ui/select.mjs +66 -66
  200. package/dist/ui/select.mjs.map +1 -1
  201. package/dist/ui/skeleton/animated.js +8 -8
  202. package/dist/ui/skeleton/animated.mjs +1 -1
  203. package/dist/ui/skeleton/variants.d.ts.map +1 -1
  204. package/dist/ui/skeleton.js +9 -9
  205. package/dist/ui/skeleton.mjs +1 -1
  206. package/dist/ui/slider.js +25 -25
  207. package/dist/ui/slider.js.map +1 -1
  208. package/dist/ui/slider.mjs +25 -25
  209. package/dist/ui/slider.mjs.map +1 -1
  210. package/dist/ui/spinner/animated.js +22 -22
  211. package/dist/ui/spinner/animated.js.map +1 -1
  212. package/dist/ui/spinner/animated.mjs +22 -22
  213. package/dist/ui/spinner/animated.mjs.map +1 -1
  214. package/dist/ui/stepper/stepper.d.ts.map +1 -1
  215. package/dist/ui/stepper/variants.d.ts.map +1 -1
  216. package/dist/ui/stepper.js +29 -26
  217. package/dist/ui/stepper.js.map +1 -1
  218. package/dist/ui/stepper.mjs +29 -26
  219. package/dist/ui/stepper.mjs.map +1 -1
  220. package/dist/ui/table/animated.js +8 -8
  221. package/dist/ui/table/animated.mjs +2 -2
  222. package/dist/ui/table/variants.d.ts.map +1 -1
  223. package/dist/ui/table.js +14 -14
  224. package/dist/ui/table.mjs +1 -1
  225. package/dist/ui/tabs/animated.js +2 -2
  226. package/dist/ui/tabs/animated.mjs +1 -1
  227. package/dist/ui/tabs/variants.d.ts.map +1 -1
  228. package/dist/ui/tabs.js +9 -9
  229. package/dist/ui/tabs.mjs +1 -1
  230. package/dist/ui/toast/animated.js +7 -7
  231. package/dist/ui/toast/animated.mjs +1 -1
  232. package/dist/ui/toast/toast-base.d.ts.map +1 -1
  233. package/dist/ui/toast/variants.d.ts.map +1 -1
  234. package/dist/ui/toast.js +12 -12
  235. package/dist/ui/toast.mjs +1 -1
  236. package/dist/ui/toggle/animated/toggle-animated.d.ts.map +1 -1
  237. package/dist/ui/toggle/animated.js +5 -4
  238. package/dist/ui/toggle/animated.js.map +1 -1
  239. package/dist/ui/toggle/animated.mjs +4 -3
  240. package/dist/ui/toggle/animated.mjs.map +1 -1
  241. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  242. package/dist/ui/toggle/variants.d.ts +1 -0
  243. package/dist/ui/toggle/variants.d.ts.map +1 -1
  244. package/dist/ui/toggle.js +8 -7
  245. package/dist/ui/toggle.js.map +1 -1
  246. package/dist/ui/toggle.mjs +6 -5
  247. package/dist/ui/toggle.mjs.map +1 -1
  248. package/dist/ui/tooltip/animated.js +3 -3
  249. package/dist/ui/tooltip/animated.mjs +1 -1
  250. package/dist/ui/tooltip/variants.d.ts.map +1 -1
  251. package/dist/ui/tooltip.js +7 -7
  252. package/dist/ui/tooltip.mjs +1 -1
  253. package/dist/ui/typography/variants.d.ts.map +1 -1
  254. package/dist/ui/typography.js +19 -19
  255. package/dist/ui/typography.js.map +1 -1
  256. package/dist/ui/typography.mjs +19 -19
  257. package/dist/ui/typography.mjs.map +1 -1
  258. package/package.json +4 -3
  259. package/src/charts/area/Area.tsx +1 -1
  260. package/src/charts/bubble/Bubble.tsx +10 -2
  261. package/src/charts/pie/Pie.tsx +22 -3
  262. package/src/charts/shared/types.ts +1 -1
  263. package/src/hooks/useDynamicStepper/index.ts +1 -3
  264. package/src/hooks/useDynamicStepper/useDynamicStepper.ts +1 -7
  265. package/src/ui/accordion/variants.ts +55 -43
  266. package/src/ui/alert/variants.ts +45 -32
  267. package/src/ui/avatar/variants.ts +34 -26
  268. package/src/ui/badge/variants.ts +42 -29
  269. package/src/ui/breadcrumb/variants.ts +30 -25
  270. package/src/ui/buttons/variants.ts +40 -30
  271. package/src/ui/card/variants.ts +49 -39
  272. package/src/ui/divider/variants.ts +26 -26
  273. package/src/ui/drawer/drawer-base.tsx +1 -1
  274. package/src/ui/drawer/variants.ts +64 -48
  275. package/src/ui/dropdown/dropdown.tsx +1 -1
  276. package/src/ui/dropdown/variants.ts +63 -52
  277. package/src/ui/dynamic-stepper/dynamic-stepper.test.tsx +6 -2
  278. package/src/ui/dynamic-stepper/dynamic-stepper.tsx +2 -2
  279. package/src/ui/dynamic-stepper/index.ts +1 -3
  280. package/src/ui/dynamic-stepper/variants.ts +73 -64
  281. package/src/ui/empty-state/variants.ts +14 -11
  282. package/src/ui/file-upload/file-upload.tsx +5 -3
  283. package/src/ui/file-upload/variants.ts +16 -15
  284. package/src/ui/inputs/types.ts +1 -1
  285. package/src/ui/inputs/variants.ts +106 -47
  286. package/src/ui/modal/modal-base.tsx +1 -1
  287. package/src/ui/modal/variants.ts +64 -47
  288. package/src/ui/pagination/pagination.tsx +1 -1
  289. package/src/ui/pagination/types.ts +1 -4
  290. package/src/ui/pagination/variants.ts +31 -28
  291. package/src/ui/progress/variants.ts +79 -65
  292. package/src/ui/search/search-bar.tsx +2 -1
  293. package/src/ui/search/search-suggestion-list.tsx +7 -5
  294. package/src/ui/select/variants.ts +72 -66
  295. package/src/ui/skeleton/variants.ts +22 -13
  296. package/src/ui/slider/variants.ts +25 -25
  297. package/src/ui/spinner/animated/variants.ts +22 -22
  298. package/src/ui/stepper/stepper.tsx +5 -2
  299. package/src/ui/stepper/variants.ts +25 -24
  300. package/src/ui/table/table-base.tsx +1 -1
  301. package/src/ui/table/variants.ts +53 -45
  302. package/src/ui/tabs/variants.ts +38 -23
  303. package/src/ui/toast/toast-base.tsx +1 -4
  304. package/src/ui/toast/variants.ts +33 -26
  305. package/src/ui/toggle/animated/toggle-animated.tsx +3 -2
  306. package/src/ui/toggle/toggle-base.tsx +4 -3
  307. package/src/ui/toggle/variants.ts +60 -28
  308. package/src/ui/tooltip/variants.ts +21 -20
  309. package/src/ui/typography/code-block-base.tsx +1 -1
  310. package/src/ui/typography/variants.ts +21 -18
  311. package/dist/chunk-2BAMNRAL.mjs +0 -323
  312. package/dist/chunk-2BAMNRAL.mjs.map +0 -1
  313. package/dist/chunk-5TV7EL3H.mjs +0 -70
  314. package/dist/chunk-5TV7EL3H.mjs.map +0 -1
  315. package/dist/chunk-7TLKLMBM.js.map +0 -1
  316. package/dist/chunk-A6KMZ5ZS.mjs.map +0 -1
  317. package/dist/chunk-AD2LA3XN.js.map +0 -1
  318. package/dist/chunk-AOEI4V3W.mjs +0 -286
  319. package/dist/chunk-AOEI4V3W.mjs.map +0 -1
  320. package/dist/chunk-AUGLZ3AN.js.map +0 -1
  321. package/dist/chunk-BCZIYH53.js.map +0 -1
  322. package/dist/chunk-C5L465FW.mjs.map +0 -1
  323. package/dist/chunk-E4FZY7O2.js.map +0 -1
  324. package/dist/chunk-FQBMIZH2.mjs +0 -217
  325. package/dist/chunk-FQBMIZH2.mjs.map +0 -1
  326. package/dist/chunk-G3LEYBRV.mjs.map +0 -1
  327. package/dist/chunk-I6GR234Z.mjs +0 -126
  328. package/dist/chunk-I6GR234Z.mjs.map +0 -1
  329. package/dist/chunk-INMNX3HQ.mjs.map +0 -1
  330. package/dist/chunk-JBAUEGYD.mjs.map +0 -1
  331. package/dist/chunk-JJDANNNL.mjs.map +0 -1
  332. package/dist/chunk-JQ5TIJ4F.mjs +0 -68
  333. package/dist/chunk-JQ5TIJ4F.mjs.map +0 -1
  334. package/dist/chunk-JUDMPOCI.js.map +0 -1
  335. package/dist/chunk-LN77JJTY.mjs.map +0 -1
  336. package/dist/chunk-MCOQHXRW.js +0 -130
  337. package/dist/chunk-MCOQHXRW.js.map +0 -1
  338. package/dist/chunk-MEJMX4QI.js.map +0 -1
  339. package/dist/chunk-MTLLJFUI.mjs.map +0 -1
  340. package/dist/chunk-N2OAI2HN.js.map +0 -1
  341. package/dist/chunk-OB4KJZK2.js +0 -72
  342. package/dist/chunk-OB4KJZK2.js.map +0 -1
  343. package/dist/chunk-OLEMP2HL.js.map +0 -1
  344. package/dist/chunk-PWL5WD34.js.map +0 -1
  345. package/dist/chunk-Q5B44QW7.js.map +0 -1
  346. package/dist/chunk-QZKMFSH5.js +0 -288
  347. package/dist/chunk-QZKMFSH5.js.map +0 -1
  348. package/dist/chunk-QZTEFGZF.mjs.map +0 -1
  349. package/dist/chunk-S7WKFNPT.js +0 -229
  350. package/dist/chunk-S7WKFNPT.js.map +0 -1
  351. package/dist/chunk-TINHLHCN.mjs.map +0 -1
  352. package/dist/chunk-TJUNN2PT.mjs.map +0 -1
  353. package/dist/chunk-UWA23DUC.js.map +0 -1
  354. package/dist/chunk-X22LLJL6.js +0 -71
  355. package/dist/chunk-X22LLJL6.js.map +0 -1
  356. package/dist/chunk-Y745GQR2.js.map +0 -1
  357. package/dist/chunk-YTRGRHEB.js.map +0 -1
  358. package/dist/chunk-ZBBFOMSJ.mjs.map +0 -1
  359. package/dist/chunk-ZYZJ74XB.mjs.map +0 -1
@@ -0,0 +1,323 @@
1
+ import { useFocusManagement } from './chunk-K6YI4FJO.mjs';
2
+ import { cn } from './chunk-4D54YOL6.mjs';
3
+ import { cva } from 'class-variance-authority';
4
+ import { createContext, useContext, useState, useCallback, useId, useRef, useMemo } from 'react';
5
+ import { createPortal } from 'react-dom';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ var modalOverlayVariants = cva(
9
+ "fixed inset-0 z-50 bg-slate-950/70 backdrop-blur-sm data-[state=open]:animate-in"
10
+ );
11
+ var modalTriggerVariants = cva(
12
+ "relative inline-flex shrink-0 cursor-pointer rounded-md border",
13
+ {
14
+ variants: {
15
+ appearance: {
16
+ default: "bg-slate-50 dark:bg-slate-950 text-slate-900 dark:text-slate-50",
17
+ glass: "border-black/15 dark:border-white/15 bg-slate-50/70 dark:bg-slate-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
18
+ sky: "border-sky-800 dark:border-sky-600 bg-sky-50 dark:bg-sky-950/70 backdrop-blur-xl text-sky-800 dark:text-sky-50",
19
+ rose: "border-rose-800 dark:border-rose-600 bg-rose-50 dark:bg-rose-950/70 backdrop-blur-xl text-rose-800 dark:text-rose-50",
20
+ purple: "border-purple-800 dark:border-purple-600 bg-purple-50 dark:bg-purple-950/70 backdrop-blur-xl text-purple-800 dark:text-purple-50",
21
+ pink: "border-pink-800 dark:border-pink-600 bg-pink-50 dark:bg-pink-950/70 backdrop-blur-xl text-pink-800 dark:text-pink-50",
22
+ orange: "border-orange-800 dark:border-orange-600 bg-orange-50 dark:bg-orange-950/70 backdrop-blur-xl text-orange-800 dark:text-orange-50",
23
+ yellow: "border-yellow-800 dark:border-yellow-600 bg-yellow-50 dark:bg-yellow-950/70 backdrop-blur-xl text-yellow-800 dark:text-yellow-50",
24
+ teal: "border-teal-800 dark:border-teal-600 bg-teal-50 dark:bg-teal-950/70 backdrop-blur-xl text-teal-800 dark:text-teal-50",
25
+ indigo: "border-indigo-800 dark:border-indigo-600 bg-indigo-50 dark:bg-indigo-950/70 backdrop-blur-xl text-indigo-800 dark:text-indigo-50",
26
+ emerald: "border-emerald-800 dark:border-emerald-600 bg-emerald-50 dark:bg-emerald-950/70 backdrop-blur-xl text-emerald-800 dark:text-emerald-50",
27
+ gray: "border-gray-800 dark:border-gray-600 bg-gray-50 dark:bg-gray-950/70 backdrop-blur-xl text-gray-800 dark:text-gray-50",
28
+ amber: "border-amber-800 dark:border-amber-600 bg-amber-50 dark:bg-amber-950/70 backdrop-blur-xl text-amber-800 dark:text-amber-50",
29
+ violet: "border-violet-800 dark:border-violet-600 bg-violet-50 dark:bg-violet-950/70 backdrop-blur-xl text-violet-800 dark:text-violet-50",
30
+ "gradient-blue": "border-blue-800 dark:border-blue-600 bg-linear-to-r from-blue-50 dark:from-blue-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl text-blue-800 dark:text-blue-50",
31
+ "gradient-green": "border-green-800 dark:border-green-600 bg-linear-to-r from-green-50 dark:from-green-950/70 to-lime-50 dark:to-lime-950/70 backdrop-blur-xl text-green-800 dark:text-green-50",
32
+ "gradient-red": "border-red-800 dark:border-red-600 bg-linear-to-r from-red-50 dark:from-red-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl text-red-800 dark:text-red-50",
33
+ "gradient-yellow": "border-yellow-800 dark:border-yellow-600 bg-linear-to-r from-yellow-50 dark:from-yellow-950/70 to-orange-50 dark:to-orange-950/70 backdrop-blur-xl text-yellow-800 dark:text-yellow-50",
34
+ "gradient-purple": "border-purple-800 dark:border-purple-600 bg-linear-to-r from-purple-50 dark:from-purple-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl text-purple-800 dark:text-purple-50",
35
+ "gradient-teal": "border-teal-800 dark:border-teal-600 bg-linear-to-r from-teal-50 dark:from-teal-950/70 to-cyan-50 dark:to-cyan-950/70 backdrop-blur-xl text-teal-800 dark:text-teal-50",
36
+ "gradient-indigo": "border-indigo-800 dark:border-indigo-600 bg-linear-to-r from-indigo-50 dark:from-indigo-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl text-indigo-800 dark:text-indigo-50",
37
+ "gradient-pink": "border-pink-800 dark:border-pink-600 bg-linear-to-r from-pink-50 dark:from-pink-950/70 to-rose-50 dark:to-rose-950/70 backdrop-blur-xl text-pink-800 dark:text-pink-50",
38
+ "gradient-orange": "border-orange-800 dark:border-orange-600 bg-linear-to-r from-orange-50 dark:from-orange-950/70 to-red-50 dark:to-red-950/70 backdrop-blur-xl text-orange-800 dark:text-orange-50"
39
+ }
40
+ },
41
+ defaultVariants: {
42
+ appearance: "default"
43
+ }
44
+ }
45
+ );
46
+ var modalContentVariants = cva(
47
+ "fixed left-1/2 z-50 w-[calc(100%-2rem)] max-h-[min(90vh,720px)] translate-x-[-50%] overflow-y-auto border border-black/10 dark:border-white/10 bg-slate-50 dark:bg-slate-950 p-6 text-slate-900 dark:text-slate-50 shadow-[0_12px_40px_rgba(15,23,42,0.14)] dark:shadow-[0_24px_80px_rgba(15,23,42,0.55)] focus:outline-none",
48
+ {
49
+ variants: {
50
+ size: {
51
+ sm: "max-w-md",
52
+ md: "max-w-lg",
53
+ lg: "max-w-2xl",
54
+ xl: "max-w-4xl",
55
+ full: "max-w-[calc(100%-2rem)]"
56
+ },
57
+ position: {
58
+ center: "top-1/2 translate-y-[-50%]",
59
+ top: "top-10 translate-y-0",
60
+ bottom: "bottom-10 translate-y-0"
61
+ },
62
+ appearance: {
63
+ default: "bg-slate-50 dark:bg-slate-950",
64
+ glass: "border-black/15 dark:border-white/15 bg-slate-50/70 dark:bg-slate-950/70 backdrop-blur-xl",
65
+ sky: "border-sky-800 dark:border-sky-600 bg-sky-50 dark:bg-sky-950/70 backdrop-blur-xl",
66
+ rose: "border-rose-800 dark:border-rose-600 bg-rose-50 dark:bg-rose-950/70 backdrop-blur-xl",
67
+ purple: "border-purple-800 dark:border-purple-600 bg-purple-50 dark:bg-purple-950/70 backdrop-blur-xl",
68
+ pink: "border-pink-800 dark:border-pink-600 bg-pink-50 dark:bg-pink-950/70 backdrop-blur-xl",
69
+ orange: "border-orange-800 dark:border-orange-600 bg-orange-50 dark:bg-orange-950/70 backdrop-blur-xl",
70
+ yellow: "border-yellow-800 dark:border-yellow-600 bg-yellow-50 dark:bg-yellow-950/70 backdrop-blur-xl",
71
+ teal: "border-teal-800 dark:border-teal-600 bg-teal-50 dark:bg-teal-950/70 backdrop-blur-xl",
72
+ indigo: "border-indigo-800 dark:border-indigo-600 bg-indigo-50 dark:bg-indigo-950/70 backdrop-blur-xl",
73
+ emerald: "border-emerald-800 dark:border-emerald-600 bg-emerald-50 dark:bg-emerald-950/70 backdrop-blur-xl",
74
+ gray: "border-gray-800 dark:border-gray-600 bg-gray-50 dark:bg-gray-950/70 backdrop-blur-xl",
75
+ amber: "border-amber-800 dark:border-amber-600 bg-amber-50 dark:bg-amber-950/70 backdrop-blur-xl",
76
+ violet: "border-violet-800 dark:border-violet-600 bg-violet-50 dark:bg-violet-950/70 backdrop-blur-xl",
77
+ "gradient-blue": "border-blue-800 dark:border-blue-600 bg-linear-to-r from-blue-50 dark:from-blue-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl",
78
+ "gradient-green": "border-green-800 dark:border-green-600 bg-linear-to-r from-green-50 dark:from-green-950/70 to-lime-50 dark:to-lime-950/70 backdrop-blur-xl",
79
+ "gradient-red": "border-red-800 dark:border-red-600 bg-linear-to-r from-red-50 dark:from-red-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl",
80
+ "gradient-yellow": "border-yellow-800 dark:border-yellow-600 bg-linear-to-r from-yellow-50 dark:from-yellow-950/70 to-orange-50 dark:to-orange-950/70 backdrop-blur-xl",
81
+ "gradient-purple": "border-purple-800 dark:border-purple-600 bg-linear-to-r from-purple-50 dark:from-purple-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl",
82
+ "gradient-teal": "border-teal-800 dark:border-teal-600 bg-linear-to-r from-teal-50 dark:from-teal-950/70 to-cyan-50 dark:to-cyan-950/70 backdrop-blur-xl",
83
+ "gradient-indigo": "border-indigo-800 dark:border-indigo-600 bg-linear-to-r from-indigo-50 dark:from-indigo-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl",
84
+ "gradient-pink": "border-pink-800 dark:border-pink-600 bg-linear-to-r from-pink-50 dark:from-pink-950/70 to-rose-50 dark:to-rose-950/70 backdrop-blur-xl",
85
+ "gradient-orange": "border-orange-800 dark:border-orange-600 bg-linear-to-r from-orange-50 dark:from-orange-950/70 to-red-50 dark:to-red-950/70 backdrop-blur-xl"
86
+ }
87
+ },
88
+ defaultVariants: {
89
+ size: "md",
90
+ position: "center",
91
+ appearance: "default"
92
+ }
93
+ }
94
+ );
95
+ var ModalContext = createContext(null);
96
+ function useModalContext(component) {
97
+ const ctx = useContext(ModalContext);
98
+ if (!ctx) {
99
+ throw new Error(`${component} must be used within <Modal>`);
100
+ }
101
+ return ctx;
102
+ }
103
+ function Modal({
104
+ open,
105
+ defaultOpen = false,
106
+ onOpenChange,
107
+ children
108
+ }) {
109
+ const isControlled = open !== void 0;
110
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
111
+ const resolvedOpen = isControlled ? Boolean(open) : uncontrolledOpen;
112
+ const setOpen = useCallback(
113
+ (next) => {
114
+ if (!isControlled) {
115
+ setUncontrolledOpen(next);
116
+ }
117
+ onOpenChange?.(next);
118
+ },
119
+ [isControlled, onOpenChange]
120
+ );
121
+ const baseId = useId();
122
+ const titleId = `${baseId}-title`;
123
+ const descriptionId = `${baseId}-description`;
124
+ const contentRef = useRef(null);
125
+ const triggerRef = useRef(null);
126
+ const ctx = useMemo(
127
+ () => ({
128
+ open: resolvedOpen,
129
+ setOpen,
130
+ titleId,
131
+ descriptionId,
132
+ contentRef,
133
+ triggerRef
134
+ }),
135
+ [descriptionId, resolvedOpen, setOpen, titleId]
136
+ );
137
+ return /* @__PURE__ */ jsx(ModalContext.Provider, { value: ctx, children });
138
+ }
139
+ Modal.displayName = "Modal";
140
+ function ModalTrigger({
141
+ className,
142
+ children,
143
+ appearance,
144
+ onClick,
145
+ ref: refProp,
146
+ ...rest
147
+ }) {
148
+ const { setOpen, triggerRef } = useModalContext("ModalTrigger");
149
+ return /* @__PURE__ */ jsx(
150
+ "button",
151
+ {
152
+ ref: (node) => {
153
+ triggerRef.current = node;
154
+ if (typeof refProp === "function") {
155
+ refProp(node);
156
+ } else if (refProp) {
157
+ refProp.current = node;
158
+ }
159
+ },
160
+ type: "button",
161
+ "data-slot": "modal-trigger",
162
+ className: cn(modalTriggerVariants({ appearance }), className),
163
+ onClick: (event) => {
164
+ onClick?.(event);
165
+ if (!event.defaultPrevented) {
166
+ setOpen(true);
167
+ }
168
+ },
169
+ ...rest,
170
+ children
171
+ }
172
+ );
173
+ }
174
+ ModalTrigger.displayName = "ModalTrigger";
175
+ function ModalContent({
176
+ className,
177
+ size,
178
+ position,
179
+ appearance,
180
+ children,
181
+ ref,
182
+ id,
183
+ style
184
+ }) {
185
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = useModalContext("ModalContent");
186
+ useFocusManagement({
187
+ open,
188
+ setOpen,
189
+ contentRef,
190
+ triggerRef
191
+ });
192
+ const portalTarget = typeof document !== "undefined" ? document.body : null;
193
+ if (!portalTarget) {
194
+ return null;
195
+ }
196
+ return createPortal(
197
+ open ? /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50", "data-slot": "modal-portal", children: [
198
+ /* @__PURE__ */ jsx(
199
+ "div",
200
+ {
201
+ role: "presentation",
202
+ "data-slot": "modal-overlay",
203
+ className: modalOverlayVariants(),
204
+ onClick: () => setOpen(false)
205
+ }
206
+ ),
207
+ /* @__PURE__ */ jsx(
208
+ "div",
209
+ {
210
+ ref: (node) => {
211
+ contentRef.current = node;
212
+ if (typeof ref === "function") {
213
+ ref(node);
214
+ } else if (ref) {
215
+ ref.current = node;
216
+ }
217
+ },
218
+ role: "dialog",
219
+ "aria-modal": "true",
220
+ "aria-labelledby": titleId,
221
+ "aria-describedby": descriptionId,
222
+ "data-slot": "modal-content",
223
+ tabIndex: -1,
224
+ className: cn(
225
+ modalContentVariants({ size, position, appearance }),
226
+ className
227
+ ),
228
+ id,
229
+ style,
230
+ children
231
+ }
232
+ )
233
+ ] }) : null,
234
+ portalTarget
235
+ );
236
+ }
237
+ ModalContent.displayName = "ModalContent";
238
+ function ModalHeader({ className, children }) {
239
+ return /* @__PURE__ */ jsx(
240
+ "header",
241
+ {
242
+ "data-slot": "modal-header",
243
+ className: cn("mb-4 flex flex-col gap-2", className),
244
+ children
245
+ }
246
+ );
247
+ }
248
+ ModalHeader.displayName = "ModalHeader";
249
+ function ModalBody({ className, children }) {
250
+ return /* @__PURE__ */ jsx(
251
+ "div",
252
+ {
253
+ "data-slot": "modal-body",
254
+ className: cn("text-sm text-slate-300", className),
255
+ children
256
+ }
257
+ );
258
+ }
259
+ ModalBody.displayName = "ModalBody";
260
+ function ModalFooter({ className, children }) {
261
+ return /* @__PURE__ */ jsx(
262
+ "footer",
263
+ {
264
+ "data-slot": "modal-footer",
265
+ className: cn("mt-6 flex justify-end gap-2", className),
266
+ children
267
+ }
268
+ );
269
+ }
270
+ ModalFooter.displayName = "ModalFooter";
271
+ function ModalTitle({ className, children }) {
272
+ const { titleId } = useModalContext("ModalTitle");
273
+ return /* @__PURE__ */ jsx(
274
+ "h2",
275
+ {
276
+ id: titleId,
277
+ "data-slot": "modal-title",
278
+ className: cn("text-lg font-semibold", className),
279
+ children
280
+ }
281
+ );
282
+ }
283
+ ModalTitle.displayName = "ModalTitle";
284
+ function ModalDescription({ className, children }) {
285
+ const { descriptionId } = useModalContext("ModalDescription");
286
+ return /* @__PURE__ */ jsx(
287
+ "p",
288
+ {
289
+ id: descriptionId,
290
+ "data-slot": "modal-description",
291
+ className: cn("text-sm text-slate-400", className),
292
+ children
293
+ }
294
+ );
295
+ }
296
+ ModalDescription.displayName = "ModalDescription";
297
+ function ModalClose({
298
+ className,
299
+ children,
300
+ ...rest
301
+ }) {
302
+ const { setOpen } = useModalContext("ModalClose");
303
+ return /* @__PURE__ */ jsx(
304
+ "button",
305
+ {
306
+ type: "button",
307
+ "data-slot": "modal-close",
308
+ className: cn(
309
+ "absolute right-4 top-4 inline-flex size-14 items-center cursor-pointer justify-center rounded-md text-slate-800 dark:text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30",
310
+ className
311
+ ),
312
+ "aria-label": "Close dialog",
313
+ onClick: () => setOpen(false),
314
+ ...rest,
315
+ children: children ?? "\xD7"
316
+ }
317
+ );
318
+ }
319
+ ModalClose.displayName = "ModalClose";
320
+
321
+ export { Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants, modalOverlayVariants, useModalContext };
322
+ //# sourceMappingURL=chunk-4ECCMHAX.mjs.map
323
+ //# sourceMappingURL=chunk-4ECCMHAX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/modal/variants.ts","../src/ui/modal/modal-base.tsx"],"names":[],"mappings":"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","file":"chunk-4ECCMHAX.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const modalOverlayVariants = cva(\n \"fixed inset-0 z-50 bg-slate-950/70 backdrop-blur-sm data-[state=open]:animate-in\",\n);\n\nexport const modalTriggerVariants = cva(\n \"relative inline-flex shrink-0 cursor-pointer rounded-md border\",\n {\n variants: {\n appearance: {\n default:\n \"bg-slate-50 dark:bg-slate-950 text-slate-900 dark:text-slate-50\",\n glass:\n \"border-black/15 dark:border-white/15 bg-slate-50/70 dark:bg-slate-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50\",\n sky: \"border-sky-800 dark:border-sky-600 bg-sky-50 dark:bg-sky-950/70 backdrop-blur-xl text-sky-800 dark:text-sky-50\",\n rose: \"border-rose-800 dark:border-rose-600 bg-rose-50 dark:bg-rose-950/70 backdrop-blur-xl text-rose-800 dark:text-rose-50\",\n purple:\n \"border-purple-800 dark:border-purple-600 bg-purple-50 dark:bg-purple-950/70 backdrop-blur-xl text-purple-800 dark:text-purple-50\",\n pink: \"border-pink-800 dark:border-pink-600 bg-pink-50 dark:bg-pink-950/70 backdrop-blur-xl text-pink-800 dark:text-pink-50\",\n orange:\n \"border-orange-800 dark:border-orange-600 bg-orange-50 dark:bg-orange-950/70 backdrop-blur-xl text-orange-800 dark:text-orange-50\",\n yellow:\n \"border-yellow-800 dark:border-yellow-600 bg-yellow-50 dark:bg-yellow-950/70 backdrop-blur-xl text-yellow-800 dark:text-yellow-50\",\n teal: \"border-teal-800 dark:border-teal-600 bg-teal-50 dark:bg-teal-950/70 backdrop-blur-xl text-teal-800 dark:text-teal-50\",\n indigo:\n \"border-indigo-800 dark:border-indigo-600 bg-indigo-50 dark:bg-indigo-950/70 backdrop-blur-xl text-indigo-800 dark:text-indigo-50\",\n emerald:\n \"border-emerald-800 dark:border-emerald-600 bg-emerald-50 dark:bg-emerald-950/70 backdrop-blur-xl text-emerald-800 dark:text-emerald-50\",\n gray: \"border-gray-800 dark:border-gray-600 bg-gray-50 dark:bg-gray-950/70 backdrop-blur-xl text-gray-800 dark:text-gray-50\",\n amber:\n \"border-amber-800 dark:border-amber-600 bg-amber-50 dark:bg-amber-950/70 backdrop-blur-xl text-amber-800 dark:text-amber-50\",\n violet:\n \"border-violet-800 dark:border-violet-600 bg-violet-50 dark:bg-violet-950/70 backdrop-blur-xl text-violet-800 dark:text-violet-50\",\n \"gradient-blue\":\n \"border-blue-800 dark:border-blue-600 bg-linear-to-r from-blue-50 dark:from-blue-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl text-blue-800 dark:text-blue-50\",\n \"gradient-green\":\n \"border-green-800 dark:border-green-600 bg-linear-to-r from-green-50 dark:from-green-950/70 to-lime-50 dark:to-lime-950/70 backdrop-blur-xl text-green-800 dark:text-green-50\",\n \"gradient-red\":\n \"border-red-800 dark:border-red-600 bg-linear-to-r from-red-50 dark:from-red-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl text-red-800 dark:text-red-50\",\n \"gradient-yellow\":\n \"border-yellow-800 dark:border-yellow-600 bg-linear-to-r from-yellow-50 dark:from-yellow-950/70 to-orange-50 dark:to-orange-950/70 backdrop-blur-xl text-yellow-800 dark:text-yellow-50\",\n \"gradient-purple\":\n \"border-purple-800 dark:border-purple-600 bg-linear-to-r from-purple-50 dark:from-purple-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl text-purple-800 dark:text-purple-50\",\n \"gradient-teal\":\n \"border-teal-800 dark:border-teal-600 bg-linear-to-r from-teal-50 dark:from-teal-950/70 to-cyan-50 dark:to-cyan-950/70 backdrop-blur-xl text-teal-800 dark:text-teal-50\",\n \"gradient-indigo\":\n \"border-indigo-800 dark:border-indigo-600 bg-linear-to-r from-indigo-50 dark:from-indigo-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl text-indigo-800 dark:text-indigo-50\",\n \"gradient-pink\":\n \"border-pink-800 dark:border-pink-600 bg-linear-to-r from-pink-50 dark:from-pink-950/70 to-rose-50 dark:to-rose-950/70 backdrop-blur-xl text-pink-800 dark:text-pink-50\",\n \"gradient-orange\":\n \"border-orange-800 dark:border-orange-600 bg-linear-to-r from-orange-50 dark:from-orange-950/70 to-red-50 dark:to-red-950/70 backdrop-blur-xl text-orange-800 dark:text-orange-50\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const modalContentVariants = cva(\n \"fixed left-1/2 z-50 w-[calc(100%-2rem)] max-h-[min(90vh,720px)] translate-x-[-50%] overflow-y-auto border border-black/10 dark:border-white/10 bg-slate-50 dark:bg-slate-950 p-6 text-slate-900 dark:text-slate-50 shadow-[0_12px_40px_rgba(15,23,42,0.14)] dark:shadow-[0_24px_80px_rgba(15,23,42,0.55)] focus:outline-none\",\n {\n variants: {\n size: {\n sm: \"max-w-md\",\n md: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n full: \"max-w-[calc(100%-2rem)]\",\n },\n position: {\n center: \"top-1/2 translate-y-[-50%]\",\n top: \"top-10 translate-y-0\",\n bottom: \"bottom-10 translate-y-0\",\n },\n appearance: {\n default: \"bg-slate-50 dark:bg-slate-950\",\n glass:\n \"border-black/15 dark:border-white/15 bg-slate-50/70 dark:bg-slate-950/70 backdrop-blur-xl\",\n sky: \"border-sky-800 dark:border-sky-600 bg-sky-50 dark:bg-sky-950/70 backdrop-blur-xl\",\n rose: \"border-rose-800 dark:border-rose-600 bg-rose-50 dark:bg-rose-950/70 backdrop-blur-xl\",\n purple:\n \"border-purple-800 dark:border-purple-600 bg-purple-50 dark:bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-800 dark:border-pink-600 bg-pink-50 dark:bg-pink-950/70 backdrop-blur-xl\",\n orange:\n \"border-orange-800 dark:border-orange-600 bg-orange-50 dark:bg-orange-950/70 backdrop-blur-xl\",\n yellow:\n \"border-yellow-800 dark:border-yellow-600 bg-yellow-50 dark:bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-800 dark:border-teal-600 bg-teal-50 dark:bg-teal-950/70 backdrop-blur-xl\",\n indigo:\n \"border-indigo-800 dark:border-indigo-600 bg-indigo-50 dark:bg-indigo-950/70 backdrop-blur-xl\",\n emerald:\n \"border-emerald-800 dark:border-emerald-600 bg-emerald-50 dark:bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-800 dark:border-gray-600 bg-gray-50 dark:bg-gray-950/70 backdrop-blur-xl\",\n amber:\n \"border-amber-800 dark:border-amber-600 bg-amber-50 dark:bg-amber-950/70 backdrop-blur-xl\",\n violet:\n \"border-violet-800 dark:border-violet-600 bg-violet-50 dark:bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\":\n \"border-blue-800 dark:border-blue-600 bg-linear-to-r from-blue-50 dark:from-blue-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"border-green-800 dark:border-green-600 bg-linear-to-r from-green-50 dark:from-green-950/70 to-lime-50 dark:to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"border-red-800 dark:border-red-600 bg-linear-to-r from-red-50 dark:from-red-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-yellow-800 dark:border-yellow-600 bg-linear-to-r from-yellow-50 dark:from-yellow-950/70 to-orange-50 dark:to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-purple-800 dark:border-purple-600 bg-linear-to-r from-purple-50 dark:from-purple-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-teal-800 dark:border-teal-600 bg-linear-to-r from-teal-50 dark:from-teal-950/70 to-cyan-50 dark:to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-indigo-800 dark:border-indigo-600 bg-linear-to-r from-indigo-50 dark:from-indigo-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-pink-800 dark:border-pink-600 bg-linear-to-r from-pink-50 dark:from-pink-950/70 to-rose-50 dark:to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-orange-800 dark:border-orange-600 bg-linear-to-r from-orange-50 dark:from-orange-950/70 to-red-50 dark:to-red-950/70 backdrop-blur-xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n position: \"center\",\n appearance: \"default\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useId,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useFocusManagement } from \"../../hooks/useFocusManagement\";\n\nimport type {\n ModalContentProps,\n ModalProps,\n ModalSectionProps,\n ModalTriggerProps,\n} from \"./types\";\nimport {\n modalContentVariants,\n modalOverlayVariants,\n modalTriggerVariants,\n} from \"./variants\";\n\ntype ModalCtx = {\n open: boolean;\n setOpen: (next: boolean) => void;\n titleId: string;\n descriptionId: string;\n contentRef: RefObject<HTMLDivElement | null>;\n triggerRef: RefObject<HTMLElement | null>;\n};\n\nconst ModalContext = createContext<ModalCtx | null>(null);\n\nexport function useModalContext(component: string): ModalCtx {\n const ctx = useContext(ModalContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Modal>`);\n }\n return ctx;\n}\n\nexport function Modal({\n open,\n defaultOpen = false,\n onOpenChange,\n children,\n}: ModalProps) {\n const isControlled = open !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const resolvedOpen = isControlled ? Boolean(open) : uncontrolledOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n const baseId = useId();\n const titleId = `${baseId}-title`;\n const descriptionId = `${baseId}-description`;\n const contentRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n\n const ctx = useMemo(\n () => ({\n open: resolvedOpen,\n setOpen,\n titleId,\n descriptionId,\n contentRef,\n triggerRef,\n }),\n [descriptionId, resolvedOpen, setOpen, titleId],\n );\n\n return <ModalContext.Provider value={ctx}>{children}</ModalContext.Provider>;\n}\n\nModal.displayName = \"Modal\";\n\nexport function ModalTrigger({\n className,\n children,\n appearance,\n onClick,\n ref: refProp,\n ...rest\n}: ModalTriggerProps) {\n const { setOpen, triggerRef } = useModalContext(\"ModalTrigger\");\n return (\n <button\n ref={(node) => {\n triggerRef.current = node;\n if (typeof refProp === \"function\") {\n refProp(node);\n } else if (refProp) {\n (refProp as RefObject<HTMLButtonElement | null>).current = node;\n }\n }}\n type=\"button\"\n data-slot=\"modal-trigger\"\n className={cn(modalTriggerVariants({ appearance }), className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(true);\n }\n }}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\nModalTrigger.displayName = \"ModalTrigger\";\n\nexport function ModalContent({\n className,\n size,\n position,\n appearance,\n children,\n ref,\n id,\n style,\n}: ModalContentProps) {\n const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } =\n useModalContext(\"ModalContent\");\n\n useFocusManagement({\n open,\n setOpen,\n contentRef,\n triggerRef,\n });\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n open ? (\n <div className=\"fixed inset-0 z-50\" data-slot=\"modal-portal\">\n <div\n role=\"presentation\"\n data-slot=\"modal-overlay\"\n className={modalOverlayVariants()}\n onClick={() => setOpen(false)}\n />\n <div\n ref={(node) => {\n contentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-slot=\"modal-content\"\n tabIndex={-1}\n className={cn(\n modalContentVariants({ size, position, appearance }),\n className,\n )}\n id={id}\n style={style}\n >\n {children}\n </div>\n </div>\n ) : null,\n portalTarget,\n );\n}\n\nModalContent.displayName = \"ModalContent\";\n\nexport function ModalHeader({ className, children }: ModalSectionProps) {\n return (\n <header\n data-slot=\"modal-header\"\n className={cn(\"mb-4 flex flex-col gap-2\", className)}\n >\n {children}\n </header>\n );\n}\n\nModalHeader.displayName = \"ModalHeader\";\n\nexport function ModalBody({ className, children }: ModalSectionProps) {\n return (\n <div\n data-slot=\"modal-body\"\n className={cn(\"text-sm text-slate-300\", className)}\n >\n {children}\n </div>\n );\n}\n\nModalBody.displayName = \"ModalBody\";\n\nexport function ModalFooter({ className, children }: ModalSectionProps) {\n return (\n <footer\n data-slot=\"modal-footer\"\n className={cn(\"mt-6 flex justify-end gap-2\", className)}\n >\n {children}\n </footer>\n );\n}\n\nModalFooter.displayName = \"ModalFooter\";\n\nexport function ModalTitle({ className, children }: ModalSectionProps) {\n const { titleId } = useModalContext(\"ModalTitle\");\n return (\n <h2\n id={titleId}\n data-slot=\"modal-title\"\n className={cn(\"text-lg font-semibold\", className)}\n >\n {children}\n </h2>\n );\n}\n\nModalTitle.displayName = \"ModalTitle\";\n\nexport function ModalDescription({ className, children }: ModalSectionProps) {\n const { descriptionId } = useModalContext(\"ModalDescription\");\n return (\n <p\n id={descriptionId}\n data-slot=\"modal-description\"\n className={cn(\"text-sm text-slate-400\", className)}\n >\n {children}\n </p>\n );\n}\n\nModalDescription.displayName = \"ModalDescription\";\n\nexport function ModalClose({\n className,\n children,\n ...rest\n}: ModalSectionProps) {\n const { setOpen } = useModalContext(\"ModalClose\");\n return (\n <button\n type=\"button\"\n data-slot=\"modal-close\"\n className={cn(\n \"absolute right-4 top-4 inline-flex size-14 items-center cursor-pointer justify-center rounded-md text-slate-800 dark:text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30\",\n className,\n )}\n aria-label=\"Close dialog\"\n onClick={() => setOpen(false)}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nModalClose.displayName = \"ModalClose\";\n"]}
@@ -40,13 +40,7 @@ function useDynamicStepper({
40
40
  const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);
41
41
  setStoredStep(nextStep);
42
42
  onPrevious?.(nextStep);
43
- }, [
44
- activeStep,
45
- canGoPrevious,
46
- onPrevious,
47
- setStoredStep,
48
- stepCount
49
- ]);
43
+ }, [activeStep, canGoPrevious, onPrevious, setStoredStep, stepCount]);
50
44
  const goNext = useCallback(() => {
51
45
  if (!canGoNext) {
52
46
  return;
@@ -67,5 +61,5 @@ function useDynamicStepper({
67
61
  }
68
62
 
69
63
  export { useDynamicStepper };
70
- //# sourceMappingURL=chunk-JJDANNNL.mjs.map
71
- //# sourceMappingURL=chunk-JJDANNNL.mjs.map
64
+ //# sourceMappingURL=chunk-4MPNRGUA.mjs.map
65
+ //# sourceMappingURL=chunk-4MPNRGUA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useDynamicStepper/useDynamicStepper.ts"],"names":[],"mappings":";;;AAWA,SAAS,wBAAA,CAAyB,OAAe,SAAA,EAA2B;AAC1E,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,IAAI,IAAA,CAAK,GAAA,CAAI,OAAO,CAAC,CAAA,EAAG,YAAY,CAAC,CAAA;AACnD;AAQO,SAAS,iBAAA,CAAkB;AAAA,EAChC,SAAA;AAAA,EACA,UAAA,EAAY,cAAA;AAAA,EACZ,iBAAA,GAAoB,CAAA;AAAA,EACpB,kBAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAqD;AACnD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,oBAAA,CAA6B;AAAA,IAC/D,KAAA,EAAO,cAAA;AAAA,IACP,YAAA,EAAc,wBAAA,CAAyB,iBAAA,EAAmB,SAAS,CAAA;AAAA,IACnE,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MAAM,wBAAA,CAAyB,UAAA,EAAY,SAAS,CAAA;AAAA,IACpD,CAAC,YAAY,SAAS;AAAA,GACxB;AAEA,EAAA,MAAM,aAAA,GAAgB,SAAA,GAAY,CAAA,IAAK,UAAA,GAAa,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,SAAA,GAAY,CAAA,IAAK,UAAA,GAAa,SAAA,GAAY,CAAA;AAE5D,EAAA,MAAM,aAAA,GAAgB,WAAA;AAAA,IACpB,CAAC,IAAA,KAA8C;AAC7C,MAAA,MAAM,WACJ,OAAO,IAAA,KAAS,UAAA,GACX,IAAA,CAAkC,UAAU,CAAA,GAC7C,IAAA;AACN,MAAA,aAAA,CAAc,wBAAA,CAAyB,QAAA,EAAU,SAAS,CAAC,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,aAAA,EAAe,SAAS;AAAA,GACvC;AAEA,EAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,wBAAA,CAAyB,UAAA,GAAa,CAAA,EAAG,SAAS,CAAA;AACnE,IAAA,aAAA,CAAc,QAAQ,CAAA;AACtB,IAAA,UAAA,GAAa,QAAQ,CAAA;AAAA,EACvB,GAAG,CAAC,UAAA,EAAY,eAAe,UAAA,EAAY,aAAA,EAAe,SAAS,CAAC,CAAA;AAEpE,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,wBAAA,CAAyB,UAAA,GAAa,CAAA,EAAG,SAAS,CAAA;AACnE,IAAA,aAAA,CAAc,QAAQ,CAAA;AACtB,IAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,EACnB,GAAG,CAAC,UAAA,EAAY,WAAW,MAAA,EAAQ,aAAA,EAAe,SAAS,CAAC,CAAA;AAE5D,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-4MPNRGUA.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport { useControllableState } from \"../useControllableState/useControllableState\";\n\nimport type {\n UseDynamicStepperParams,\n UseDynamicStepperResult,\n} from \"../../ui/dynamic-stepper/types\";\n\nfunction clampDynamicStepperIndex(index: number, stepCount: number): number {\n if (stepCount <= 0) {\n return 0;\n }\n return Math.min(Math.max(index, 0), stepCount - 1);\n}\n\n/**\n * Headless multi-step index with prev/next navigation.\n *\n * @param params.stepCount - Number of steps (0-based count semantics via indices).\n * @returns Active step, setter, navigation helpers, and boundary flags.\n */\nexport function useDynamicStepper({\n stepCount,\n activeStep: activeStepProp,\n defaultActiveStep = 0,\n onActiveStepChange,\n onPrevious,\n onNext,\n}: UseDynamicStepperParams): UseDynamicStepperResult {\n const [storedStep, setStoredStep] = useControllableState<number>({\n value: activeStepProp,\n defaultValue: clampDynamicStepperIndex(defaultActiveStep, stepCount),\n onChange: onActiveStepChange,\n });\n\n const activeStep = useMemo(\n () => clampDynamicStepperIndex(storedStep, stepCount),\n [storedStep, stepCount],\n );\n\n const canGoPrevious = stepCount > 0 && activeStep > 0;\n const canGoNext = stepCount > 0 && activeStep < stepCount - 1;\n\n const setActiveStep = useCallback(\n (next: number | ((prev: number) => number)) => {\n const resolved =\n typeof next === \"function\"\n ? (next as (prev: number) => number)(activeStep)\n : next;\n setStoredStep(clampDynamicStepperIndex(resolved, stepCount));\n },\n [activeStep, setStoredStep, stepCount],\n );\n\n const goPrevious = useCallback(() => {\n if (!canGoPrevious) {\n return;\n }\n const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);\n setStoredStep(nextStep);\n onPrevious?.(nextStep);\n }, [activeStep, canGoPrevious, onPrevious, setStoredStep, stepCount]);\n\n const goNext = useCallback(() => {\n if (!canGoNext) {\n return;\n }\n const nextStep = clampDynamicStepperIndex(activeStep + 1, stepCount);\n setStoredStep(nextStep);\n onNext?.(nextStep);\n }, [activeStep, canGoNext, onNext, setStoredStep, stepCount]);\n\n return {\n activeStep,\n setActiveStep,\n goPrevious,\n goNext,\n canGoPrevious,\n canGoNext,\n stepCount,\n };\n}\n"]}
@@ -8,29 +8,29 @@ var jsxRuntime = require('react/jsx-runtime');
8
8
  var accordionVariants = classVarianceAuthority.cva("w-full", {
9
9
  variants: {
10
10
  appearance: {
11
- default: "divide-y divide-white/10 rounded-xl border border-white/10",
12
- outline: "divide-y divide-white/10 rounded-xl border border-white/15",
13
- ghost: "divide-y divide-white/5",
11
+ default: "divide-y divide-black/10 dark:divide-white/10 rounded-xl border border-black/10 dark:border-white/10",
12
+ outline: "divide-y divide-black/10 dark:divide-white/10 rounded-xl border border-black/15 dark:border-white/15",
13
+ ghost: "divide-y divide-black/5 dark:divide-white/5",
14
14
  card: "space-y-2",
15
15
  separated: "space-y-3",
16
- sky: "divide-y divide-sky-600 rounded-xl border border-sky-600",
17
- rose: "divide-y divide-rose-600 rounded-xl border border-rose-600",
18
- purple: "divide-y divide-purple-600 rounded-xl border border-purple-600",
19
- pink: "divide-y divide-pink-600 rounded-xl border border-pink-600",
20
- orange: "divide-y divide-orange-600 rounded-xl border border-orange-600",
21
- yellow: "divide-y divide-yellow-600 rounded-xl border border-yellow-600",
22
- teal: "divide-y divide-teal-600 rounded-xl border border-teal-600",
23
- indigo: "divide-y divide-indigo-600 rounded-xl border border-indigo-600",
24
- emerald: "divide-y divide-emerald-600 rounded-xl border border-emerald-600",
25
- "gradient-blue": "divide-y divide-blue-600 rounded-xl border border-blue-600",
26
- "gradient-green": "divide-y divide-green-600 rounded-xl border border-green-600",
27
- "gradient-red": "divide-y divide-red-600 rounded-xl border border-red-600",
28
- "gradient-yellow": "divide-y divide-yellow-600 rounded-xl border border-yellow-600",
29
- "gradient-purple": "divide-y divide-purple-600 rounded-xl border border-purple-600",
30
- "gradient-teal": "divide-y divide-teal-600 rounded-xl border border-teal-600",
31
- "gradient-indigo": "divide-y divide-indigo-600 rounded-xl border border-indigo-600",
32
- "gradient-pink": "divide-y divide-pink-600 rounded-xl border border-pink-600",
33
- "gradient-orange": "divide-y divide-orange-600 rounded-xl border border-orange-600"
16
+ sky: "divide-y divide-sky-800 dark:divide-sky-600 rounded-xl border border-sky-800 dark:border-sky-600",
17
+ rose: "divide-y divide-rose-800 dark:divide-rose-600 rounded-xl border border-rose-800 dark:border-rose-600",
18
+ purple: "divide-y divide-purple-800 dark:divide-purple-600 rounded-xl border border-purple-800 dark:border-purple-600",
19
+ pink: "divide-y divide-pink-800 dark:divide-pink-600 rounded-xl border border-pink-800 dark:border-pink-600",
20
+ orange: "divide-y divide-orange-800 dark:divide-orange-600 rounded-xl border border-orange-800 dark:border-orange-600",
21
+ yellow: "divide-y divide-yellow-800 dark:divide-yellow-600 rounded-xl border border-yellow-800 dark:border-yellow-600",
22
+ teal: "divide-y divide-teal-800 dark:divide-teal-600 rounded-xl border border-teal-800 dark:border-teal-600",
23
+ indigo: "divide-y divide-indigo-800 dark:divide-indigo-600 rounded-xl border border-indigo-800 dark:border-indigo-600",
24
+ emerald: "divide-y divide-emerald-800 dark:divide-emerald-600 rounded-xl border border-emerald-800 dark:border-emerald-600",
25
+ "gradient-blue": "divide-y divide-blue-800 dark:divide-blue-600 rounded-xl border border-blue-800 dark:border-blue-600",
26
+ "gradient-green": "divide-y divide-green-800 dark:divide-green-600 rounded-xl border border-green-800 dark:border-green-600",
27
+ "gradient-red": "divide-y divide-red-800 dark:divide-red-600 rounded-xl border border-red-800 dark:border-red-600",
28
+ "gradient-yellow": "divide-y divide-yellow-800 dark:divide-yellow-600 rounded-xl border border-yellow-800 dark:border-yellow-600",
29
+ "gradient-purple": "divide-y divide-purple-800 dark:divide-purple-600 rounded-xl border border-purple-800 dark:border-purple-600",
30
+ "gradient-teal": "divide-y divide-teal-800 dark:divide-teal-600 rounded-xl border border-teal-800 dark:border-teal-600",
31
+ "gradient-indigo": "divide-y divide-indigo-800 dark:divide-indigo-600 rounded-xl border border-indigo-800 dark:border-indigo-600",
32
+ "gradient-pink": "divide-y divide-pink-800 dark:divide-pink-600 rounded-xl border border-pink-800 dark:border-pink-600",
33
+ "gradient-orange": "divide-y divide-orange-800 dark:divide-orange-600 rounded-xl border border-orange-800 dark:border-orange-600"
34
34
  },
35
35
  size: {
36
36
  sm: "px-3 py-2 text-sm",
@@ -43,38 +43,38 @@ var accordionVariants = classVarianceAuthority.cva("w-full", {
43
43
  size: "md"
44
44
  }
45
45
  });
46
- var accordionItemVariants = classVarianceAuthority.cva("", {
46
+ var accordionItemVariants = classVarianceAuthority.cva("text-slate-900 dark:text-slate-200", {
47
47
  variants: {
48
48
  appearance: {
49
49
  default: "",
50
50
  outline: "",
51
51
  ghost: "",
52
- card: "rounded-xl border border-white/10 bg-white/[0.03] p-2",
53
- separated: "rounded-xl border border-white/10 bg-slate-950/40 p-2",
54
- sky: "rounded-xl border border-sky-600 bg-sky-600/[0.03] p-2",
55
- rose: "rounded-xl border border-rose-600 bg-rose-600/[0.03] p-2",
56
- purple: "rounded-xl border border-purple-600 bg-purple-600/[0.03] p-2",
57
- pink: "rounded-xl border border-pink-600 bg-pink-600/[0.03] p-2",
58
- orange: "rounded-xl border border-orange-600 bg-orange-600/[0.03] p-2",
59
- yellow: "rounded-xl border border-yellow-600 bg-yellow-600/[0.03] p-2",
60
- teal: "rounded-xl border border-teal-600 bg-teal-600/[0.03] p-2",
61
- indigo: "rounded-xl border border-indigo-600 bg-indigo-600/[0.03] p-2",
62
- emerald: "rounded-xl border border-emerald-600 bg-emerald-600/[0.03] p-2",
63
- "gradient-blue": "rounded-xl bg-linear-to-r from-blue-600 to-purple-600/[0.03] p-2 text-white",
64
- "gradient-green": "rounded-xl bg-linear-to-r from-green-600 to-lime-600/[0.03] p-2 text-white",
65
- "gradient-red": "rounded-xl bg-linear-to-r from-red-600 to-pink-600/[0.03] p-2 text-white",
66
- "gradient-yellow": "rounded-xl bg-linear-to-r from-yellow-600 to-orange-600/[0.03] p-2 text-white",
67
- "gradient-purple": "rounded-xl bg-linear-to-r from-purple-600 to-pink-600/[0.03] p-2 text-white",
68
- "gradient-teal": "rounded-xl bg-linear-to-r from-teal-600 to-cyan-600/[0.03] p-2 text-white",
69
- "gradient-indigo": "rounded-xl bg-linear-to-r from-indigo-600 to-purple-600/[0.03] p-2 text-white",
70
- "gradient-pink": "rounded-xl bg-linear-to-r from-pink-600 to-rose-600/[0.03] p-2 text-white",
71
- "gradient-orange": "rounded-xl bg-linear-to-r from-orange-600 to-red-600/[0.03] p-2 text-white"
52
+ card: "rounded-xl border border-black/10 bg-black/5 p-2",
53
+ separated: "rounded-xl border border-black/10 dark:border-white/10 bg-slate-50/40 dark:bg-slate-950/40 p-2",
54
+ sky: "rounded-xl border border-sky-800 dark:border-sky-600 bg-sky-100/50 dark:bg-sky-600/[0.03] p-2",
55
+ rose: "rounded-xl border border-rose-800 dark:border-rose-600 bg-rose-100/50 dark:bg-rose-600/[0.03] p-2",
56
+ purple: "rounded-xl border border-purple-800 dark:border-purple-600 bg-purple-100/50 dark:bg-purple-600/[0.03] p-2",
57
+ pink: "rounded-xl border border-pink-800 dark:border-pink-600 bg-pink-100/50 dark:bg-pink-600/[0.03] p-2",
58
+ orange: "rounded-xl border border-orange-800 dark:border-orange-600 bg-orange-100/50 dark:bg-orange-600/[0.03] p-2",
59
+ yellow: "rounded-xl border border-yellow-800 dark:border-yellow-600 bg-yellow-100/50 dark:bg-yellow-600/[0.03] p-2",
60
+ teal: "rounded-xl border border-teal-800 dark:border-teal-600 bg-teal-100/50 dark:bg-teal-600/[0.03] p-2",
61
+ indigo: "rounded-xl border border-indigo-800 dark:border-indigo-600 bg-indigo-100/50 dark:bg-indigo-600/[0.03] p-2",
62
+ emerald: "rounded-xl border border-emerald-800 dark:border-emerald-600 bg-emerald-100/50 dark:bg-emerald-600/[0.03] p-2",
63
+ "gradient-blue": "rounded-xl bg-linear-to-r from-blue-300 dark:from-blue-600 to-purple-300 dark:to-purple-600 p-2",
64
+ "gradient-green": "rounded-xl bg-linear-to-r from-green-300 dark:from-green-600 to-lime-300 dark:to-lime-600 p-2",
65
+ "gradient-red": "rounded-xl bg-linear-to-r from-red-300 dark:from-red-600 to-pink-300 dark:to-pink-600 p-2",
66
+ "gradient-yellow": "rounded-xl bg-linear-to-r from-yellow-300 dark:from-yellow-600 to-orange-300 dark:to-orange-600 p-2",
67
+ "gradient-purple": "rounded-xl bg-linear-to-r from-purple-300 dark:from-purple-600 to-pink-300 dark:to-pink-600 p-2",
68
+ "gradient-teal": "rounded-xl bg-linear-to-r from-teal-300 dark:from-teal-600 to-cyan-300 dark:to-cyan-600 p-2",
69
+ "gradient-indigo": "rounded-xl bg-linear-to-r from-indigo-300 dark:from-indigo-600 to-purple-300 dark:to-purple-600 p-2",
70
+ "gradient-pink": "rounded-xl bg-linear-to-r from-pink-300 dark:from-pink-600 to-rose-300 dark:to-rose-600 p-2",
71
+ "gradient-orange": "rounded-xl bg-linear-to-r from-orange-300 dark:from-orange-600 to-red-300 dark:to-red-600 p-2"
72
72
  }
73
73
  },
74
74
  defaultVariants: { appearance: "default" }
75
75
  });
76
76
  var accordionTriggerVariants = classVarianceAuthority.cva(
77
- "flex w-full items-center justify-between gap-3 py-3 text-left font-medium text-slate-50 outline-none transition hover:text-white focus-visible:ring-2 focus-visible:ring-white/30",
77
+ "flex w-full items-center justify-between gap-3 py-3 text-left font-medium text-slate-800 dark:text-slate-200 outline-none transition hover:text-slate-900 dark:hover:text-white focus-visible:ring-2 focus-visible:ring-black/30 dark:focus-visible:ring-white/30",
78
78
  {
79
79
  variants: {
80
80
  size: {
@@ -275,5 +275,5 @@ exports.accordionTriggerVariants = accordionTriggerVariants;
275
275
  exports.accordionVariants = accordionVariants;
276
276
  exports.useAccordionContext = useAccordionContext;
277
277
  exports.useAccordionItemValue = useAccordionItemValue;
278
- //# sourceMappingURL=chunk-Y745GQR2.js.map
279
- //# sourceMappingURL=chunk-Y745GQR2.js.map
278
+ //# sourceMappingURL=chunk-4PZIDDC6.js.map
279
+ //# sourceMappingURL=chunk-4PZIDDC6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/accordion/variants.ts","../src/ui/accordion/accordion-base.tsx"],"names":["cva","createContext","useContext","useState","useMemo","useCallback","next","jsx","cn","useId"],"mappings":"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","file":"chunk-4PZIDDC6.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const accordionVariants = cva(\"w-full\", {\n variants: {\n appearance: {\n default:\n \"divide-y divide-black/10 dark:divide-white/10 rounded-xl border border-black/10 dark:border-white/10\",\n outline:\n \"divide-y divide-black/10 dark:divide-white/10 rounded-xl border border-black/15 dark:border-white/15\",\n ghost: \"divide-y divide-black/5 dark:divide-white/5\",\n card: \"space-y-2\",\n separated: \"space-y-3\",\n sky: \"divide-y divide-sky-800 dark:divide-sky-600 rounded-xl border border-sky-800 dark:border-sky-600\",\n rose: \"divide-y divide-rose-800 dark:divide-rose-600 rounded-xl border border-rose-800 dark:border-rose-600\",\n purple:\n \"divide-y divide-purple-800 dark:divide-purple-600 rounded-xl border border-purple-800 dark:border-purple-600\",\n pink: \"divide-y divide-pink-800 dark:divide-pink-600 rounded-xl border border-pink-800 dark:border-pink-600\",\n orange:\n \"divide-y divide-orange-800 dark:divide-orange-600 rounded-xl border border-orange-800 dark:border-orange-600\",\n yellow:\n \"divide-y divide-yellow-800 dark:divide-yellow-600 rounded-xl border border-yellow-800 dark:border-yellow-600\",\n teal: \"divide-y divide-teal-800 dark:divide-teal-600 rounded-xl border border-teal-800 dark:border-teal-600\",\n indigo:\n \"divide-y divide-indigo-800 dark:divide-indigo-600 rounded-xl border border-indigo-800 dark:border-indigo-600\",\n emerald:\n \"divide-y divide-emerald-800 dark:divide-emerald-600 rounded-xl border border-emerald-800 dark:border-emerald-600\",\n \"gradient-blue\":\n \"divide-y divide-blue-800 dark:divide-blue-600 rounded-xl border border-blue-800 dark:border-blue-600\",\n \"gradient-green\":\n \"divide-y divide-green-800 dark:divide-green-600 rounded-xl border border-green-800 dark:border-green-600\",\n \"gradient-red\":\n \"divide-y divide-red-800 dark:divide-red-600 rounded-xl border border-red-800 dark:border-red-600\",\n \"gradient-yellow\":\n \"divide-y divide-yellow-800 dark:divide-yellow-600 rounded-xl border border-yellow-800 dark:border-yellow-600\",\n \"gradient-purple\":\n \"divide-y divide-purple-800 dark:divide-purple-600 rounded-xl border border-purple-800 dark:border-purple-600\",\n \"gradient-teal\":\n \"divide-y divide-teal-800 dark:divide-teal-600 rounded-xl border border-teal-800 dark:border-teal-600\",\n \"gradient-indigo\":\n \"divide-y divide-indigo-800 dark:divide-indigo-600 rounded-xl border border-indigo-800 dark:border-indigo-600\",\n \"gradient-pink\":\n \"divide-y divide-pink-800 dark:divide-pink-600 rounded-xl border border-pink-800 dark:border-pink-600\",\n \"gradient-orange\":\n \"divide-y divide-orange-800 dark:divide-orange-600 rounded-xl border border-orange-800 dark:border-orange-600\",\n },\n size: {\n sm: \"px-3 py-2 text-sm\",\n md: \"px-4 py-3 text-sm\",\n lg: \"px-5 py-4 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n\nexport const accordionItemVariants = cva(\"text-slate-900 dark:text-slate-200\", {\n variants: {\n appearance: {\n default: \"\",\n outline: \"\",\n ghost: \"\",\n card: \"rounded-xl border border-black/10 bg-black/5 p-2\",\n separated:\n \"rounded-xl border border-black/10 dark:border-white/10 bg-slate-50/40 dark:bg-slate-950/40 p-2\",\n sky: \"rounded-xl border border-sky-800 dark:border-sky-600 bg-sky-100/50 dark:bg-sky-600/[0.03] p-2\",\n rose: \"rounded-xl border border-rose-800 dark:border-rose-600 bg-rose-100/50 dark:bg-rose-600/[0.03] p-2\",\n purple:\n \"rounded-xl border border-purple-800 dark:border-purple-600 bg-purple-100/50 dark:bg-purple-600/[0.03] p-2\",\n pink: \"rounded-xl border border-pink-800 dark:border-pink-600 bg-pink-100/50 dark:bg-pink-600/[0.03] p-2\",\n orange:\n \"rounded-xl border border-orange-800 dark:border-orange-600 bg-orange-100/50 dark:bg-orange-600/[0.03] p-2\",\n yellow:\n \"rounded-xl border border-yellow-800 dark:border-yellow-600 bg-yellow-100/50 dark:bg-yellow-600/[0.03] p-2\",\n teal: \"rounded-xl border border-teal-800 dark:border-teal-600 bg-teal-100/50 dark:bg-teal-600/[0.03] p-2\",\n indigo:\n \"rounded-xl border border-indigo-800 dark:border-indigo-600 bg-indigo-100/50 dark:bg-indigo-600/[0.03] p-2\",\n emerald:\n \"rounded-xl border border-emerald-800 dark:border-emerald-600 bg-emerald-100/50 dark:bg-emerald-600/[0.03] p-2\",\n \"gradient-blue\":\n \"rounded-xl bg-linear-to-r from-blue-300 dark:from-blue-600 to-purple-300 dark:to-purple-600 p-2\",\n \"gradient-green\":\n \"rounded-xl bg-linear-to-r from-green-300 dark:from-green-600 to-lime-300 dark:to-lime-600 p-2\",\n \"gradient-red\":\n \"rounded-xl bg-linear-to-r from-red-300 dark:from-red-600 to-pink-300 dark:to-pink-600 p-2\",\n \"gradient-yellow\":\n \"rounded-xl bg-linear-to-r from-yellow-300 dark:from-yellow-600 to-orange-300 dark:to-orange-600 p-2\",\n \"gradient-purple\":\n \"rounded-xl bg-linear-to-r from-purple-300 dark:from-purple-600 to-pink-300 dark:to-pink-600 p-2\",\n \"gradient-teal\":\n \"rounded-xl bg-linear-to-r from-teal-300 dark:from-teal-600 to-cyan-300 dark:to-cyan-600 p-2\",\n \"gradient-indigo\":\n \"rounded-xl bg-linear-to-r from-indigo-300 dark:from-indigo-600 to-purple-300 dark:to-purple-600 p-2\",\n \"gradient-pink\":\n \"rounded-xl bg-linear-to-r from-pink-300 dark:from-pink-600 to-rose-300 dark:to-rose-600 p-2\",\n \"gradient-orange\":\n \"rounded-xl bg-linear-to-r from-orange-300 dark:from-orange-600 to-red-300 dark:to-red-600 p-2\",\n },\n },\n defaultVariants: { appearance: \"default\" },\n});\n\nexport const accordionTriggerVariants = cva(\n \"flex w-full items-center justify-between gap-3 py-3 text-left font-medium text-slate-800 dark:text-slate-200 outline-none transition hover:text-slate-900 dark:hover:text-white focus-visible:ring-2 focus-visible:ring-black/30 dark:focus-visible:ring-white/30\",\n {\n variants: {\n size: {\n sm: \"py-2 text-sm\",\n md: \"py-3 text-sm\",\n lg: \"py-4 text-base\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n\nexport const accordionContentVariants = cva(\"pb-3 text-sm\", {\n variants: {\n size: {\n sm: \"pb-2 text-xs\",\n md: \"pb-3 text-sm\",\n lg: \"pb-4 text-base\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useId,\n useMemo,\n useState,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n AccordionBaseProps,\n AccordionContentProps,\n AccordionCtx,\n AccordionItemProps,\n AccordionTriggerProps,\n} from \"./types\";\nimport {\n accordionContentVariants,\n accordionItemVariants,\n accordionTriggerVariants,\n accordionVariants,\n} from \"./variants\";\n\nconst AccordionContext = createContext<AccordionCtx | null>(null);\n\nconst AccordionItemValueContext = createContext<string | null>(null);\n\nexport function useAccordionContext(component: string): AccordionCtx {\n const ctx = useContext(AccordionContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Accordion>`);\n }\n return ctx;\n}\n\nexport function useAccordionItemValue(component: string): string {\n const value = useContext(AccordionItemValueContext);\n if (!value) {\n throw new Error(`${component} must be used within <AccordionItem>`);\n }\n return value;\n}\n\nexport function AccordionBase({\n type = \"single\",\n value,\n values,\n defaultValue,\n defaultValues,\n onValueChange,\n onValuesChange,\n appearance = \"default\",\n size = \"md\",\n className,\n children,\n}: AccordionBaseProps) {\n const isSingleControlled = value !== undefined;\n const isMultipleControlled = values !== undefined;\n const [singleUncontrolled, setSingleUncontrolled] = useState<\n string | undefined\n >(defaultValue);\n const [multipleUncontrolled, setMultipleUncontrolled] = useState<string[]>(\n defaultValues ?? [],\n );\n\n const singleValue = isSingleControlled ? value : singleUncontrolled;\n const multipleValues = useMemo(\n () => (isMultipleControlled ? (values ?? []) : multipleUncontrolled),\n [isMultipleControlled, values, multipleUncontrolled],\n );\n\n const isOpen = useCallback(\n (itemValue: string) => {\n if (type === \"single\") {\n return singleValue === itemValue;\n }\n return multipleValues.includes(itemValue);\n },\n [multipleValues, singleValue, type],\n );\n\n const toggle = useCallback(\n (itemValue: string) => {\n if (type === \"single\") {\n const next = singleValue === itemValue ? undefined : itemValue;\n if (!isSingleControlled) {\n setSingleUncontrolled(next);\n }\n onValueChange?.(next);\n return;\n }\n const exists = multipleValues.includes(itemValue);\n const next = exists\n ? multipleValues.filter((entry) => entry !== itemValue)\n : [...multipleValues, itemValue];\n if (!isMultipleControlled) {\n setMultipleUncontrolled(next);\n }\n onValuesChange?.(next);\n },\n [\n isMultipleControlled,\n isSingleControlled,\n multipleValues,\n onValueChange,\n onValuesChange,\n singleValue,\n type,\n ],\n );\n\n const ctx = useMemo(\n () => ({\n type,\n appearance: appearance ?? \"default\",\n size: size ?? \"md\",\n isOpen,\n toggle,\n }),\n [appearance, isOpen, size, toggle, type],\n );\n\n return (\n <AccordionContext.Provider value={ctx}>\n <div\n data-slot=\"accordion\"\n className={cn(accordionVariants({ appearance, size }), className)}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nAccordionBase.displayName = \"Accordion\";\n\nexport function AccordionItem({\n className,\n value,\n children,\n ref,\n ...rest\n}: AccordionItemProps) {\n const { appearance } = useAccordionContext(\"AccordionItem\");\n return (\n <AccordionItemValueContext.Provider value={value}>\n <div\n ref={ref}\n data-slot=\"accordion-item\"\n data-value={value}\n className={cn(accordionItemVariants({ appearance }), className)}\n {...rest}\n >\n {children}\n </div>\n </AccordionItemValueContext.Provider>\n );\n}\n\nAccordionItem.displayName = \"AccordionItem\";\n\nexport function AccordionTrigger({\n className,\n children,\n ref,\n ...rest\n}: AccordionTriggerProps) {\n const itemValue = useAccordionItemValue(\"AccordionTrigger\");\n const { isOpen, toggle, size } = useAccordionContext(\"AccordionTrigger\");\n const open = isOpen(itemValue);\n const panelId = `${itemValue}-panel`;\n const baseId = useId();\n\n return (\n <h3 className=\"m-0\">\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"accordion-trigger\"\n id={`${baseId}-trigger-${itemValue}`}\n aria-expanded={open}\n aria-controls={panelId}\n className={cn(accordionTriggerVariants({ size }), className)}\n onClick={() => toggle(itemValue)}\n {...rest}\n >\n {children}\n </button>\n </h3>\n );\n}\n\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nexport function AccordionContent({\n className,\n children,\n ref,\n}: AccordionContentProps) {\n const itemValue = useAccordionItemValue(\"AccordionContent\");\n const { isOpen, size } = useAccordionContext(\"AccordionContent\");\n const open = isOpen(itemValue);\n const panelId = `${itemValue}-panel`;\n\n return open ? (\n <div\n key={itemValue}\n ref={ref}\n id={panelId}\n role=\"region\"\n data-slot=\"accordion-content\"\n className={cn(accordionContentVariants({ size }), className)}\n >\n {children}\n </div>\n ) : null;\n}\n\nAccordionContent.displayName = \"AccordionContent\";\n"]}