@zentauri-ui/zentauri-components 1.2.0 → 1.3.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 (324) hide show
  1. package/README.md +66 -38
  2. package/dist/accordion-base-qVomr7f_.d.mts +66 -0
  3. package/dist/accordion-base-qVomr7f_.d.ts +66 -0
  4. package/dist/avatar-base-s4dYg-24.d.mts +49 -0
  5. package/dist/avatar-base-s4dYg-24.d.ts +49 -0
  6. package/dist/card-base-CIGac8D_.d.mts +70 -0
  7. package/dist/card-base-CIGac8D_.d.ts +70 -0
  8. package/dist/chunk-2P3UU2J3.mjs +510 -0
  9. package/dist/chunk-2P3UU2J3.mjs.map +1 -0
  10. package/dist/chunk-2PQEXQVR.js +223 -0
  11. package/dist/chunk-2PQEXQVR.js.map +1 -0
  12. package/dist/chunk-3OR47XMY.js +273 -0
  13. package/dist/chunk-3OR47XMY.js.map +1 -0
  14. package/dist/chunk-4B7KGBQB.js +206 -0
  15. package/dist/chunk-4B7KGBQB.js.map +1 -0
  16. package/dist/chunk-5QB2KNZQ.js +148 -0
  17. package/dist/chunk-5QB2KNZQ.js.map +1 -0
  18. package/dist/chunk-6I7X5BF2.js +520 -0
  19. package/dist/chunk-6I7X5BF2.js.map +1 -0
  20. package/dist/chunk-7HL3A4YF.mjs +214 -0
  21. package/dist/chunk-7HL3A4YF.mjs.map +1 -0
  22. package/dist/chunk-AOEI4V3W.mjs +286 -0
  23. package/dist/chunk-AOEI4V3W.mjs.map +1 -0
  24. package/dist/chunk-BVXTOEBI.mjs +259 -0
  25. package/dist/chunk-BVXTOEBI.mjs.map +1 -0
  26. package/dist/chunk-C2FCPQTO.js +279 -0
  27. package/dist/chunk-C2FCPQTO.js.map +1 -0
  28. package/dist/chunk-E3DZNJAD.js +128 -0
  29. package/dist/chunk-E3DZNJAD.js.map +1 -0
  30. package/dist/chunk-FLILFCQE.mjs +197 -0
  31. package/dist/chunk-FLILFCQE.mjs.map +1 -0
  32. package/dist/chunk-IXDJ3IPG.mjs +315 -0
  33. package/dist/chunk-IXDJ3IPG.mjs.map +1 -0
  34. package/dist/chunk-JQ5TIJ4F.mjs +68 -0
  35. package/dist/chunk-JQ5TIJ4F.mjs.map +1 -0
  36. package/dist/chunk-LVUPECBT.mjs +217 -0
  37. package/dist/chunk-LVUPECBT.mjs.map +1 -0
  38. package/dist/chunk-N4NO3SYL.js +328 -0
  39. package/dist/chunk-N4NO3SYL.js.map +1 -0
  40. package/dist/chunk-OJ67PZ6N.js +175 -0
  41. package/dist/chunk-OJ67PZ6N.js.map +1 -0
  42. package/dist/chunk-P5HUBXUX.js +231 -0
  43. package/dist/chunk-P5HUBXUX.js.map +1 -0
  44. package/dist/chunk-PCK6LX3K.js +253 -0
  45. package/dist/chunk-PCK6LX3K.js.map +1 -0
  46. package/dist/chunk-PGH27VTL.mjs +316 -0
  47. package/dist/chunk-PGH27VTL.mjs.map +1 -0
  48. package/dist/chunk-QZKMFSH5.js +288 -0
  49. package/dist/chunk-QZKMFSH5.js.map +1 -0
  50. package/dist/chunk-RDSPHBHK.mjs +221 -0
  51. package/dist/chunk-RDSPHBHK.mjs.map +1 -0
  52. package/dist/chunk-U4YQCAXW.js +204 -0
  53. package/dist/chunk-U4YQCAXW.js.map +1 -0
  54. package/dist/chunk-UBFKTC2P.mjs +268 -0
  55. package/dist/chunk-UBFKTC2P.mjs.map +1 -0
  56. package/dist/chunk-UOFTZKMM.js +229 -0
  57. package/dist/chunk-UOFTZKMM.js.map +1 -0
  58. package/dist/chunk-UXGHUBNJ.mjs +240 -0
  59. package/dist/chunk-UXGHUBNJ.mjs.map +1 -0
  60. package/dist/chunk-W6PRMYUC.mjs +169 -0
  61. package/dist/chunk-W6PRMYUC.mjs.map +1 -0
  62. package/dist/chunk-WDCIZHXY.mjs +139 -0
  63. package/dist/chunk-WDCIZHXY.mjs.map +1 -0
  64. package/dist/chunk-WZKGRU3U.js +182 -0
  65. package/dist/chunk-WZKGRU3U.js.map +1 -0
  66. package/dist/chunk-X22LLJL6.js +71 -0
  67. package/dist/chunk-X22LLJL6.js.map +1 -0
  68. package/dist/chunk-XIXF7UVM.mjs +194 -0
  69. package/dist/chunk-XIXF7UVM.mjs.map +1 -0
  70. package/dist/chunk-XLAFQ24R.js +328 -0
  71. package/dist/chunk-XLAFQ24R.js.map +1 -0
  72. package/dist/chunk-XWM2S6VV.mjs +124 -0
  73. package/dist/chunk-XWM2S6VV.mjs.map +1 -0
  74. package/dist/chunk-YNCD6TKE.mjs +175 -0
  75. package/dist/chunk-YNCD6TKE.mjs.map +1 -0
  76. package/dist/progress-base-Cm1JODYA.d.mts +66 -0
  77. package/dist/progress-base-Cm1JODYA.d.ts +66 -0
  78. package/dist/types-C7N9UvRm.d.mts +38 -0
  79. package/dist/types-C7N9UvRm.d.ts +38 -0
  80. package/dist/types-CFpwSbpK.d.mts +27 -0
  81. package/dist/types-CFpwSbpK.d.ts +27 -0
  82. package/dist/types-CK_vNRIb.d.mts +63 -0
  83. package/dist/types-CK_vNRIb.d.ts +63 -0
  84. package/dist/types-Ca3t5aC_.d.mts +31 -0
  85. package/dist/types-Ca3t5aC_.d.ts +31 -0
  86. package/dist/types-Cn7IcgkH.d.mts +32 -0
  87. package/dist/types-Cn7IcgkH.d.ts +32 -0
  88. package/dist/types-CtFK7mFE.d.mts +34 -0
  89. package/dist/types-CtFK7mFE.d.ts +34 -0
  90. package/dist/types-DMkTQsWg.d.mts +46 -0
  91. package/dist/types-DMkTQsWg.d.ts +46 -0
  92. package/dist/types-DN400jNg.d.mts +28 -0
  93. package/dist/types-DN400jNg.d.ts +28 -0
  94. package/dist/types-vcZcRc6w.d.mts +24 -0
  95. package/dist/types-vcZcRc6w.d.ts +24 -0
  96. package/dist/types-zHcMUtKK.d.mts +42 -0
  97. package/dist/types-zHcMUtKK.d.ts +42 -0
  98. package/dist/ui/accordion/animated.d.mts +24 -0
  99. package/dist/ui/accordion/animated.d.ts +24 -0
  100. package/dist/ui/accordion/animated.js +67 -0
  101. package/dist/ui/accordion/animated.js.map +1 -0
  102. package/dist/ui/accordion/animated.mjs +56 -0
  103. package/dist/ui/accordion/animated.mjs.map +1 -0
  104. package/dist/ui/accordion.d.mts +9 -65
  105. package/dist/ui/accordion.d.ts +9 -65
  106. package/dist/ui/accordion.js +32 -288
  107. package/dist/ui/accordion.js.map +1 -1
  108. package/dist/ui/accordion.mjs +6 -281
  109. package/dist/ui/accordion.mjs.map +1 -1
  110. package/dist/ui/alert/animated.d.mts +18 -0
  111. package/dist/ui/alert/animated.d.ts +18 -0
  112. package/dist/ui/alert/animated.js +47 -0
  113. package/dist/ui/alert/animated.js.map +1 -0
  114. package/dist/ui/alert/animated.mjs +44 -0
  115. package/dist/ui/alert/animated.mjs.map +1 -0
  116. package/dist/ui/alert.d.mts +10 -40
  117. package/dist/ui/alert.d.ts +10 -40
  118. package/dist/ui/alert.js +36 -218
  119. package/dist/ui/alert.js.map +1 -1
  120. package/dist/ui/alert.mjs +7 -211
  121. package/dist/ui/alert.mjs.map +1 -1
  122. package/dist/ui/avatar/animated.d.mts +22 -0
  123. package/dist/ui/avatar/animated.d.ts +22 -0
  124. package/dist/ui/avatar/animated.js +51 -0
  125. package/dist/ui/avatar/animated.js.map +1 -0
  126. package/dist/ui/avatar/animated.mjs +37 -0
  127. package/dist/ui/avatar/animated.mjs.map +1 -0
  128. package/dist/ui/avatar.d.mts +7 -53
  129. package/dist/ui/avatar.d.ts +7 -53
  130. package/dist/ui/avatar.js +32 -210
  131. package/dist/ui/avatar.js.map +1 -1
  132. package/dist/ui/avatar.mjs +7 -204
  133. package/dist/ui/avatar.mjs.map +1 -1
  134. package/dist/ui/badge/animated.d.mts +22 -0
  135. package/dist/ui/badge/animated.d.ts +22 -0
  136. package/dist/ui/badge/animated.js +50 -0
  137. package/dist/ui/badge/animated.js.map +1 -0
  138. package/dist/ui/badge/animated.mjs +47 -0
  139. package/dist/ui/badge/animated.mjs.map +1 -0
  140. package/dist/ui/badge.d.mts +6 -30
  141. package/dist/ui/badge.d.ts +6 -30
  142. package/dist/ui/badge.js +11 -142
  143. package/dist/ui/badge.js.map +1 -1
  144. package/dist/ui/badge.mjs +6 -141
  145. package/dist/ui/badge.mjs.map +1 -1
  146. package/dist/ui/buttons/animated.d.mts +27 -0
  147. package/dist/ui/buttons/animated.d.ts +27 -0
  148. package/dist/ui/buttons/animated.js +101 -0
  149. package/dist/ui/buttons/animated.js.map +1 -0
  150. package/dist/ui/buttons/animated.mjs +98 -0
  151. package/dist/ui/buttons/animated.mjs.map +1 -0
  152. package/dist/ui/buttons.d.mts +5 -13
  153. package/dist/ui/buttons.d.ts +5 -13
  154. package/dist/ui/buttons.js +7 -45
  155. package/dist/ui/buttons.js.map +1 -1
  156. package/dist/ui/buttons.mjs +8 -45
  157. package/dist/ui/buttons.mjs.map +1 -1
  158. package/dist/ui/card/animated.d.mts +23 -0
  159. package/dist/ui/card/animated.d.ts +23 -0
  160. package/dist/ui/card/animated.js +72 -0
  161. package/dist/ui/card/animated.js.map +1 -0
  162. package/dist/ui/card/animated.mjs +50 -0
  163. package/dist/ui/card/animated.mjs.map +1 -0
  164. package/dist/ui/card.d.mts +6 -70
  165. package/dist/ui/card.d.ts +6 -70
  166. package/dist/ui/card.js +43 -245
  167. package/dist/ui/card.js.map +1 -1
  168. package/dist/ui/card.mjs +5 -235
  169. package/dist/ui/card.mjs.map +1 -1
  170. package/dist/ui/divider/animated.d.mts +19 -0
  171. package/dist/ui/divider/animated.d.ts +19 -0
  172. package/dist/ui/divider/animated.js +41 -0
  173. package/dist/ui/divider/animated.js.map +1 -0
  174. package/dist/ui/divider/animated.mjs +39 -0
  175. package/dist/ui/divider/animated.mjs.map +1 -0
  176. package/dist/ui/divider.d.mts +6 -32
  177. package/dist/ui/divider.d.ts +6 -32
  178. package/dist/ui/divider.js +19 -186
  179. package/dist/ui/divider.js.map +1 -1
  180. package/dist/ui/divider.mjs +6 -183
  181. package/dist/ui/divider.mjs.map +1 -1
  182. package/dist/ui/drawer/animated.d.mts +23 -0
  183. package/dist/ui/drawer/animated.d.ts +23 -0
  184. package/dist/ui/drawer/animated.js +143 -0
  185. package/dist/ui/drawer/animated.js.map +1 -0
  186. package/dist/ui/drawer/animated.mjs +113 -0
  187. package/dist/ui/drawer/animated.mjs.map +1 -0
  188. package/dist/ui/drawer.d.mts +10 -11
  189. package/dist/ui/drawer.d.ts +10 -11
  190. package/dist/ui/drawer.js +44 -357
  191. package/dist/ui/drawer.js.map +1 -1
  192. package/dist/ui/drawer.mjs +3 -349
  193. package/dist/ui/drawer.mjs.map +1 -1
  194. package/dist/ui/empty-state/animated.d.mts +24 -0
  195. package/dist/ui/empty-state/animated.d.ts +24 -0
  196. package/dist/ui/empty-state/animated.js +45 -0
  197. package/dist/ui/empty-state/animated.js.map +1 -0
  198. package/dist/ui/empty-state/animated.mjs +42 -0
  199. package/dist/ui/empty-state/animated.mjs.map +1 -0
  200. package/dist/ui/empty-state.d.mts +11 -32
  201. package/dist/ui/empty-state.d.ts +11 -32
  202. package/dist/ui/empty-state.js +35 -160
  203. package/dist/ui/empty-state.js.map +1 -1
  204. package/dist/ui/empty-state.mjs +5 -153
  205. package/dist/ui/empty-state.mjs.map +1 -1
  206. package/dist/ui/inputs/animated.d.mts +27 -0
  207. package/dist/ui/inputs/animated.d.ts +27 -0
  208. package/dist/ui/inputs/animated.js +141 -0
  209. package/dist/ui/inputs/animated.js.map +1 -0
  210. package/dist/ui/inputs/animated.mjs +138 -0
  211. package/dist/ui/inputs/animated.mjs.map +1 -0
  212. package/dist/ui/inputs.d.mts +7 -21
  213. package/dist/ui/inputs.d.ts +7 -21
  214. package/dist/ui/inputs.js +16 -331
  215. package/dist/ui/inputs.js.map +1 -1
  216. package/dist/ui/inputs.mjs +13 -329
  217. package/dist/ui/inputs.mjs.map +1 -1
  218. package/dist/ui/modal/animated.d.mts +21 -0
  219. package/dist/ui/modal/animated.d.ts +21 -0
  220. package/dist/ui/modal/animated.js +120 -0
  221. package/dist/ui/modal/animated.js.map +1 -0
  222. package/dist/ui/modal/animated.mjs +117 -0
  223. package/dist/ui/modal/animated.mjs.map +1 -0
  224. package/dist/ui/modal.d.mts +10 -48
  225. package/dist/ui/modal.d.ts +10 -48
  226. package/dist/ui/modal.js +47 -361
  227. package/dist/ui/modal.js.map +1 -1
  228. package/dist/ui/modal.mjs +9 -351
  229. package/dist/ui/modal.mjs.map +1 -1
  230. package/dist/ui/progress/animated.d.mts +41 -0
  231. package/dist/ui/progress/animated.d.ts +41 -0
  232. package/dist/ui/progress/animated.js +123 -0
  233. package/dist/ui/progress/animated.js.map +1 -0
  234. package/dist/ui/progress/animated.mjs +112 -0
  235. package/dist/ui/progress/animated.mjs.map +1 -0
  236. package/dist/ui/progress.d.mts +10 -58
  237. package/dist/ui/progress.d.ts +10 -58
  238. package/dist/ui/progress.js +35 -227
  239. package/dist/ui/progress.js.map +1 -1
  240. package/dist/ui/progress.mjs +10 -222
  241. package/dist/ui/progress.mjs.map +1 -1
  242. package/dist/ui/skeleton/animated.d.mts +56 -0
  243. package/dist/ui/skeleton/animated.d.ts +56 -0
  244. package/dist/ui/skeleton/animated.js +126 -0
  245. package/dist/ui/skeleton/animated.js.map +1 -0
  246. package/dist/ui/skeleton/animated.mjs +119 -0
  247. package/dist/ui/skeleton/animated.mjs.map +1 -0
  248. package/dist/ui/skeleton.d.mts +16 -77
  249. package/dist/ui/skeleton.d.ts +16 -77
  250. package/dist/ui/skeleton.js +35 -526
  251. package/dist/ui/skeleton.js.map +1 -1
  252. package/dist/ui/skeleton.mjs +2 -520
  253. package/dist/ui/skeleton.mjs.map +1 -1
  254. package/dist/ui/{spinner.d.mts → spinner/animated.d.mts} +1 -6
  255. package/dist/ui/{spinner.d.ts → spinner/animated.d.ts} +1 -6
  256. package/dist/ui/{spinner.js → spinner/animated.js} +3 -9
  257. package/dist/ui/spinner/animated.js.map +1 -0
  258. package/dist/ui/{spinner.mjs → spinner/animated.mjs} +4 -9
  259. package/dist/ui/spinner/animated.mjs.map +1 -0
  260. package/dist/ui/table/animated.d.mts +21 -0
  261. package/dist/ui/table/animated.d.ts +21 -0
  262. package/dist/ui/table/animated.js +50 -0
  263. package/dist/ui/table/animated.js.map +1 -0
  264. package/dist/ui/table/animated.mjs +24 -0
  265. package/dist/ui/table/animated.mjs.map +1 -0
  266. package/dist/ui/table.d.mts +17 -11
  267. package/dist/ui/table.d.ts +17 -11
  268. package/dist/ui/table.js +55 -278
  269. package/dist/ui/table.js.map +1 -1
  270. package/dist/ui/table.mjs +2 -269
  271. package/dist/ui/table.mjs.map +1 -1
  272. package/dist/ui/tabs/animated.d.mts +25 -0
  273. package/dist/ui/tabs/animated.d.ts +25 -0
  274. package/dist/ui/tabs/animated.js +83 -0
  275. package/dist/ui/tabs/animated.js.map +1 -0
  276. package/dist/ui/tabs/animated.mjs +79 -0
  277. package/dist/ui/tabs/animated.mjs.map +1 -0
  278. package/dist/ui/tabs.d.mts +7 -41
  279. package/dist/ui/tabs.d.ts +7 -41
  280. package/dist/ui/tabs.js +35 -261
  281. package/dist/ui/tabs.js.map +1 -1
  282. package/dist/ui/tabs.mjs +2 -256
  283. package/dist/ui/tabs.mjs.map +1 -1
  284. package/dist/ui/toast/animated.d.mts +23 -0
  285. package/dist/ui/toast/animated.d.ts +23 -0
  286. package/dist/ui/toast/animated.js +103 -0
  287. package/dist/ui/toast/animated.js.map +1 -0
  288. package/dist/ui/toast/animated.mjs +99 -0
  289. package/dist/ui/toast/animated.mjs.map +1 -0
  290. package/dist/ui/toast.d.mts +7 -52
  291. package/dist/ui/toast.d.ts +7 -52
  292. package/dist/ui/toast.js +47 -268
  293. package/dist/ui/toast.js.map +1 -1
  294. package/dist/ui/toast.mjs +2 -259
  295. package/dist/ui/toast.mjs.map +1 -1
  296. package/dist/ui/toggle/animated.d.mts +22 -0
  297. package/dist/ui/toggle/animated.d.ts +22 -0
  298. package/dist/ui/toggle/animated.js +88 -0
  299. package/dist/ui/toggle/animated.js.map +1 -0
  300. package/dist/ui/toggle/animated.mjs +85 -0
  301. package/dist/ui/toggle/animated.mjs.map +1 -0
  302. package/dist/ui/toggle.d.mts +6 -30
  303. package/dist/ui/toggle.d.ts +6 -30
  304. package/dist/ui/toggle.js +19 -83
  305. package/dist/ui/toggle.js.map +1 -1
  306. package/dist/ui/toggle.mjs +12 -80
  307. package/dist/ui/toggle.mjs.map +1 -1
  308. package/dist/ui/tooltip/animated.d.mts +17 -0
  309. package/dist/ui/tooltip/animated.d.ts +17 -0
  310. package/dist/ui/tooltip/animated.js +59 -0
  311. package/dist/ui/tooltip/animated.js.map +1 -0
  312. package/dist/ui/tooltip/animated.mjs +56 -0
  313. package/dist/ui/tooltip/animated.mjs.map +1 -0
  314. package/dist/ui/tooltip.d.mts +6 -33
  315. package/dist/ui/tooltip.d.ts +6 -33
  316. package/dist/ui/tooltip.js +26 -193
  317. package/dist/ui/tooltip.js.map +1 -1
  318. package/dist/ui/tooltip.mjs +2 -192
  319. package/dist/ui/tooltip.mjs.map +1 -1
  320. package/dist/variants-CYODHI8b.d.mts +10 -0
  321. package/dist/variants-CYODHI8b.d.ts +10 -0
  322. package/package.json +7 -4
  323. package/dist/ui/spinner.js.map +0 -1
  324. package/dist/ui/spinner.mjs.map +0 -1
@@ -0,0 +1,259 @@
1
+ import { cn } from './chunk-DFEZH7TC.mjs';
2
+ import { cva } from 'class-variance-authority';
3
+ import { createContext, useContext, useMemo } from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var tableVariants = cva(
7
+ "w-full table-auto border-collapse caption-bottom text-sm text-slate-200 md:table-fixed",
8
+ {
9
+ variants: {
10
+ appearance: {
11
+ default: "",
12
+ striped: "",
13
+ bordered: "border border-white/10",
14
+ ghost: "",
15
+ sky: "border border-sky-600",
16
+ rose: "border border-rose-600",
17
+ purple: "border border-purple-600",
18
+ pink: "border border-pink-600",
19
+ orange: "border border-orange-600",
20
+ yellow: "border border-yellow-600",
21
+ teal: "border border-teal-600",
22
+ indigo: "border border-indigo-600",
23
+ emerald: "border border-emerald-600",
24
+ gray: "border border-gray-600",
25
+ amber: "border border-amber-600",
26
+ violet: "border border-violet-600"
27
+ },
28
+ size: {
29
+ sm: "text-xs",
30
+ md: "text-sm",
31
+ lg: "text-base"
32
+ },
33
+ stickyHeader: {
34
+ true: "",
35
+ false: ""
36
+ }
37
+ },
38
+ defaultVariants: {
39
+ appearance: "default",
40
+ size: "md",
41
+ stickyHeader: false
42
+ }
43
+ }
44
+ );
45
+ var tableRowVariants = cva(
46
+ "border-b border-white/5 transition-colors data-[state=selected]:bg-white/[0.06]",
47
+ {
48
+ variants: {
49
+ appearance: {
50
+ default: "",
51
+ striped: "odd:bg-white/[0.03]",
52
+ bordered: "",
53
+ ghost: "border-transparent hover:bg-white/[0.03]",
54
+ sky: "border-sky-600 hover:bg-sky-600",
55
+ rose: "border-rose-600 hover:bg-rose-900",
56
+ purple: "border-purple-600 hover:bg-purple-900",
57
+ pink: "border-pink-600 hover:bg-pink-900",
58
+ orange: "border-orange-600 hover:bg-orange-900",
59
+ yellow: "border-yellow-600 hover:bg-yellow-900",
60
+ teal: "border-teal-600 hover:bg-teal-900",
61
+ indigo: "border-indigo-600 hover:bg-indigo-900",
62
+ emerald: "border-emerald-600 hover:bg-emerald-900",
63
+ gray: "border-gray-600 hover:bg-gray-900",
64
+ amber: "border-amber-600 hover:bg-amber-900",
65
+ violet: "border-violet-600 hover:bg-violet-900"
66
+ }
67
+ },
68
+ defaultVariants: { appearance: "default" }
69
+ }
70
+ );
71
+ var tableCellVariants = cva(
72
+ "min-w-0 border p-3 align-middle break-words",
73
+ {
74
+ variants: {
75
+ appearance: {
76
+ default: "border-white/10",
77
+ striped: "border-white/10",
78
+ bordered: "border-white/10",
79
+ ghost: "border-white/10",
80
+ sky: "border-sky-600",
81
+ rose: "border-rose-600",
82
+ purple: "border-purple-600",
83
+ pink: "border-pink-600",
84
+ orange: "border-orange-600",
85
+ yellow: "border-yellow-600",
86
+ teal: "border-teal-600",
87
+ indigo: "border-indigo-600",
88
+ emerald: "border-emerald-600",
89
+ gray: "border-gray-600",
90
+ amber: "border-amber-600",
91
+ violet: "border-violet-600"
92
+ },
93
+ size: {
94
+ sm: "p-2",
95
+ md: "p-3",
96
+ lg: "p-4"
97
+ },
98
+ textAlign: {
99
+ left: "text-left",
100
+ center: "text-center",
101
+ right: "text-right"
102
+ }
103
+ },
104
+ defaultVariants: { appearance: "default", size: "md" }
105
+ }
106
+ );
107
+ var TableContext = createContext(null);
108
+ function useTableContext(component) {
109
+ const ctx = useContext(TableContext);
110
+ if (!ctx) {
111
+ throw new Error(`${component} must be used within <Table>`);
112
+ }
113
+ return ctx;
114
+ }
115
+ function TableBase(props) {
116
+ const {
117
+ className,
118
+ appearance = "default",
119
+ size = "md",
120
+ textAlign = "left",
121
+ stickyHeader = false,
122
+ children,
123
+ ref,
124
+ ...rest
125
+ } = props;
126
+ const ctx = useMemo(
127
+ () => ({
128
+ appearance: appearance ?? "default",
129
+ size: size ?? "md",
130
+ stickyHeader: Boolean(stickyHeader),
131
+ rowAnimation: "none",
132
+ textAlign
133
+ }),
134
+ [appearance, size, stickyHeader, textAlign]
135
+ );
136
+ return /* @__PURE__ */ jsx(TableContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx("div", { "data-slot": "table-scroll", className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
137
+ "table",
138
+ {
139
+ ref,
140
+ "data-slot": "table",
141
+ role: "table",
142
+ className: cn(
143
+ tableVariants({ appearance, size, stickyHeader }),
144
+ "w-full min-w-0 table",
145
+ className
146
+ ),
147
+ ...rest,
148
+ children
149
+ }
150
+ ) }) });
151
+ }
152
+ TableBase.displayName = "Table";
153
+ function TableHeader({ className, children }) {
154
+ const { stickyHeader } = useTableContext("TableHeader");
155
+ const stickyClass = stickyHeader ? "sticky top-0 z-10 bg-slate-950/95 backdrop-blur" : "";
156
+ return /* @__PURE__ */ jsx("thead", { "data-slot": "table-header", className: cn(stickyClass, className), children });
157
+ }
158
+ TableHeader.displayName = "TableHeader";
159
+ function TableBody({ className, children }) {
160
+ return /* @__PURE__ */ jsx("tbody", { "data-slot": "table-body", className: cn(className), children });
161
+ }
162
+ TableBody.displayName = "TableBody";
163
+ function TableFooter({ className, children }) {
164
+ return /* @__PURE__ */ jsx(
165
+ "tfoot",
166
+ {
167
+ "data-slot": "table-footer",
168
+ className: cn(
169
+ "border-t border-white/10 bg-white/3 font-medium",
170
+ className
171
+ ),
172
+ children
173
+ }
174
+ );
175
+ }
176
+ TableFooter.displayName = "TableFooter";
177
+ function TableRow({
178
+ className,
179
+ children,
180
+ ref,
181
+ as: Wrapper = "tr",
182
+ ...rest
183
+ }) {
184
+ const { appearance } = useTableContext("TableRow");
185
+ return /* @__PURE__ */ jsx(
186
+ "tr",
187
+ {
188
+ ref,
189
+ "data-slot": "table-row",
190
+ className: cn(tableRowVariants({ appearance }), className),
191
+ ...rest,
192
+ children
193
+ }
194
+ );
195
+ }
196
+ TableRow.displayName = "TableRow";
197
+ function TableHead({
198
+ className,
199
+ children,
200
+ scope = "col",
201
+ sortDirection,
202
+ ref,
203
+ ...rest
204
+ }) {
205
+ const { appearance, size, textAlign } = useTableContext("TableHead");
206
+ return /* @__PURE__ */ jsx(
207
+ "th",
208
+ {
209
+ ref,
210
+ "data-slot": "table-head",
211
+ scope,
212
+ "aria-sort": sortDirection,
213
+ className: cn(
214
+ tableCellVariants({ appearance, size, textAlign }),
215
+ className
216
+ ),
217
+ ...rest,
218
+ children
219
+ }
220
+ );
221
+ }
222
+ TableHead.displayName = "TableHead";
223
+ function TableCell({
224
+ className,
225
+ children,
226
+ ref,
227
+ ...rest
228
+ }) {
229
+ const { appearance, size, textAlign } = useTableContext("TableCell");
230
+ return /* @__PURE__ */ jsx(
231
+ "td",
232
+ {
233
+ ref,
234
+ "data-slot": "table-cell",
235
+ className: cn(
236
+ tableCellVariants({ appearance, size, textAlign }),
237
+ className
238
+ ),
239
+ ...rest,
240
+ children
241
+ }
242
+ );
243
+ }
244
+ TableCell.displayName = "TableCell";
245
+ function TableCaption({ className, children }) {
246
+ return /* @__PURE__ */ jsx(
247
+ "caption",
248
+ {
249
+ "data-slot": "table-caption",
250
+ className: cn("mt-3 text-left text-xs text-slate-500", className),
251
+ children
252
+ }
253
+ );
254
+ }
255
+ TableCaption.displayName = "TableCaption";
256
+
257
+ export { TableBase, TableBody, TableCaption, TableCell, TableContext, TableFooter, TableHead, TableHeader, TableRow, tableCellVariants, tableRowVariants, tableVariants, useTableContext };
258
+ //# sourceMappingURL=chunk-BVXTOEBI.mjs.map
259
+ //# sourceMappingURL=chunk-BVXTOEBI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/table/variants.ts","../src/ui/table/table-base.tsx"],"names":[],"mappings":"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","file":"chunk-BVXTOEBI.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const tableVariants = cva(\n \"w-full table-auto border-collapse caption-bottom text-sm text-slate-200 md:table-fixed\",\n {\n variants: {\n appearance: {\n default: \"\",\n striped: \"\",\n bordered: \"border border-white/10\",\n ghost: \"\",\n sky: \"border border-sky-600\",\n rose: \"border border-rose-600\",\n purple: \"border border-purple-600\",\n pink: \"border border-pink-600\",\n orange: \"border border-orange-600\",\n yellow: \"border border-yellow-600\",\n teal: \"border border-teal-600\",\n indigo: \"border border-indigo-600\",\n emerald: \"border border-emerald-600\",\n gray: \"border border-gray-600\",\n amber: \"border border-amber-600\",\n violet: \"border border-violet-600\",\n },\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n stickyHeader: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n stickyHeader: false,\n },\n },\n);\n\nexport const tableRowVariants = cva(\n \"border-b border-white/5 transition-colors data-[state=selected]:bg-white/[0.06]\",\n {\n variants: {\n appearance: {\n default: \"\",\n striped: \"odd:bg-white/[0.03]\",\n bordered: \"\",\n ghost: \"border-transparent hover:bg-white/[0.03]\",\n sky: \"border-sky-600 hover:bg-sky-600\",\n rose: \"border-rose-600 hover:bg-rose-900\",\n purple: \"border-purple-600 hover:bg-purple-900\",\n pink: \"border-pink-600 hover:bg-pink-900\",\n orange: \"border-orange-600 hover:bg-orange-900\",\n yellow: \"border-yellow-600 hover:bg-yellow-900\",\n teal: \"border-teal-600 hover:bg-teal-900\",\n indigo: \"border-indigo-600 hover:bg-indigo-900\",\n emerald: \"border-emerald-600 hover:bg-emerald-900\",\n gray: \"border-gray-600 hover:bg-gray-900\",\n amber: \"border-amber-600 hover:bg-amber-900\",\n violet: \"border-violet-600 hover:bg-violet-900\",\n },\n },\n defaultVariants: { appearance: \"default\" },\n },\n);\n\nexport const tableCellVariants = cva(\n \"min-w-0 border p-3 align-middle break-words\",\n {\n variants: {\n appearance: {\n default: \"border-white/10\",\n striped: \"border-white/10\",\n bordered: \"border-white/10\",\n ghost: \"border-white/10\",\n sky: \"border-sky-600\",\n rose: \"border-rose-600\",\n purple: \"border-purple-600\",\n pink: \"border-pink-600\",\n orange: \"border-orange-600\",\n yellow: \"border-yellow-600\",\n teal: \"border-teal-600\",\n indigo: \"border-indigo-600\",\n emerald: \"border-emerald-600\",\n gray: \"border-gray-600\",\n amber: \"border-amber-600\",\n violet: \"border-violet-600\",\n },\n size: {\n sm: \"p-2\",\n md: \"p-3\",\n lg: \"p-4\",\n },\n textAlign: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n },\n defaultVariants: { appearance: \"default\", size: \"md\" },\n },\n);\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n TableCtx,\n TableCellProps,\n TableHeadCellProps,\n TableProps,\n TableSectionProps,\n} from \"./types\";\nimport { tableCellVariants, tableRowVariants, tableVariants } from \"./variants\";\n\nexport const TableContext = createContext<TableCtx | null>(null);\n\nexport function useTableContext(component: string): TableCtx {\n const ctx = useContext(TableContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Table>`);\n }\n return ctx;\n}\n\nexport function TableBase(props: TableProps) {\n const {\n className,\n appearance = \"default\",\n size = \"md\",\n textAlign = \"left\",\n stickyHeader = false,\n children,\n ref,\n ...rest\n } = props;\n const ctx = useMemo(\n () => ({\n appearance: appearance ?? \"default\",\n size: size ?? \"md\",\n stickyHeader: Boolean(stickyHeader),\n rowAnimation: \"none\" as const,\n textAlign,\n }),\n [appearance, size, stickyHeader, textAlign],\n );\n\n return (\n <TableContext.Provider value={ctx}>\n <div data-slot=\"table-scroll\" className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n data-slot=\"table\"\n role=\"table\"\n className={cn(\n tableVariants({ appearance, size, stickyHeader }),\n \"w-full min-w-0 table\",\n className,\n )}\n {...rest}\n >\n {children}\n </table>\n </div>\n </TableContext.Provider>\n );\n}\n\nTableBase.displayName = \"Table\";\n\nexport function TableHeader({ className, children }: TableSectionProps) {\n const { stickyHeader } = useTableContext(\"TableHeader\");\n const stickyClass = stickyHeader\n ? \"sticky top-0 z-10 bg-slate-950/95 backdrop-blur\"\n : \"\";\n return (\n <thead data-slot=\"table-header\" className={cn(stickyClass, className)}>\n {children}\n </thead>\n );\n}\n\nTableHeader.displayName = \"TableHeader\";\n\nexport function TableBody({ className, children }: TableSectionProps) {\n return (\n <tbody data-slot=\"table-body\" className={cn(className)}>\n {children}\n </tbody>\n );\n}\n\nTableBody.displayName = \"TableBody\";\n\nexport function TableFooter({ className, children }: TableSectionProps) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"border-t border-white/10 bg-white/3 font-medium\",\n className,\n )}\n >\n {children}\n </tfoot>\n );\n}\n\nTableFooter.displayName = \"TableFooter\";\n\nexport function TableRow({\n className,\n children,\n ref,\n as: Wrapper = \"tr\",\n ...rest\n}: TableSectionProps & { ref?: React.Ref<HTMLTableRowElement> }) {\n const { appearance } = useTableContext(\"TableRow\");\n\n return (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n className={cn(tableRowVariants({ appearance }), className)}\n {...rest}\n >\n {children}\n </tr>\n );\n}\n\nTableRow.displayName = \"TableRow\";\n\nexport function TableHead({\n className,\n children,\n scope = \"col\",\n sortDirection,\n ref,\n ...rest\n}: TableHeadCellProps) {\n const { appearance, size, textAlign } = useTableContext(\"TableHead\");\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n scope={scope}\n aria-sort={sortDirection}\n className={cn(\n tableCellVariants({ appearance, size, textAlign }),\n className,\n )}\n {...rest}\n >\n {children}\n </th>\n );\n}\n\nTableHead.displayName = \"TableHead\";\n\nexport function TableCell({\n className,\n children,\n ref,\n ...rest\n}: TableCellProps) {\n const { appearance, size, textAlign } = useTableContext(\"TableCell\");\n return (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\n tableCellVariants({ appearance, size, textAlign }),\n className,\n )}\n {...rest}\n >\n {children}\n </td>\n );\n}\n\nTableCell.displayName = \"TableCell\";\n\nexport function TableCaption({ className, children }: TableSectionProps) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-3 text-left text-xs text-slate-500\", className)}\n >\n {children}\n </caption>\n );\n}\n\nTableCaption.displayName = \"TableCaption\";\n"]}
@@ -0,0 +1,279 @@
1
+ 'use strict';
2
+
3
+ var chunkUOZYPWDZ_js = require('./chunk-UOZYPWDZ.js');
4
+ var classVarianceAuthority = require('class-variance-authority');
5
+ var react = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ var accordionVariants = classVarianceAuthority.cva("w-full", {
9
+ variants: {
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",
14
+ card: "space-y-2",
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-gradient-to-r from-blue-600 to-purple-600 rounded-xl border border-gradient-to-r from-blue-600 to-purple-600",
26
+ "gradient-green": "divide-y divide-gradient-to-r from-green-600 to-lime-600 rounded-xl border border-gradient-to-r from-green-600 to-lime-600",
27
+ "gradient-red": "divide-y divide-gradient-to-r from-red-600 to-pink-600 rounded-xl border border-gradient-to-r from-red-600 to-pink-600",
28
+ "gradient-yellow": "divide-y divide-gradient-to-r from-yellow-600 to-orange-600 rounded-xl border border-gradient-to-r from-yellow-600 to-orange-600",
29
+ "gradient-purple": "divide-y divide-gradient-to-r from-purple-600 to-pink-600 rounded-xl border border-gradient-to-r from-purple-600 to-pink-600",
30
+ "gradient-teal": "divide-y divide-gradient-to-r from-teal-600 to-cyan-600 rounded-xl border border-gradient-to-r from-teal-600 to-cyan-600",
31
+ "gradient-indigo": "divide-y divide-gradient-to-r from-indigo-600 to-purple-600 rounded-xl border border-gradient-to-r from-indigo-600 to-purple-600",
32
+ "gradient-pink": "divide-y divide-gradient-to-r from-pink-600 to-rose-600 rounded-xl border border-gradient-to-r from-pink-600 to-rose-600",
33
+ "gradient-orange": "divide-y divide-gradient-to-r from-orange-600 to-red-600 rounded-xl border border-gradient-to-r from-orange-600 to-red-600"
34
+ },
35
+ size: {
36
+ sm: "px-3 py-2 text-sm",
37
+ md: "px-4 py-3 text-sm",
38
+ lg: "px-5 py-4 text-base"
39
+ }
40
+ },
41
+ defaultVariants: {
42
+ appearance: "default",
43
+ size: "md"
44
+ }
45
+ });
46
+ var accordionItemVariants = classVarianceAuthority.cva("", {
47
+ variants: {
48
+ appearance: {
49
+ default: "",
50
+ outline: "",
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"
72
+ }
73
+ },
74
+ defaultVariants: { appearance: "default" }
75
+ });
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",
78
+ {
79
+ variants: {
80
+ size: {
81
+ sm: "py-2 text-sm",
82
+ md: "py-3 text-sm",
83
+ lg: "py-4 text-base"
84
+ }
85
+ },
86
+ defaultVariants: { size: "md" }
87
+ }
88
+ );
89
+ var accordionContentVariants = classVarianceAuthority.cva("pb-3 text-sm", {
90
+ variants: {
91
+ size: {
92
+ sm: "pb-2 text-xs",
93
+ md: "pb-3 text-sm",
94
+ lg: "pb-4 text-base"
95
+ }
96
+ },
97
+ defaultVariants: { size: "md" }
98
+ });
99
+ var AccordionContext = react.createContext(null);
100
+ var AccordionItemValueContext = react.createContext(null);
101
+ function useAccordionContext(component) {
102
+ const ctx = react.useContext(AccordionContext);
103
+ if (!ctx) {
104
+ throw new Error(`${component} must be used within <Accordion>`);
105
+ }
106
+ return ctx;
107
+ }
108
+ function useAccordionItemValue(component) {
109
+ const value = react.useContext(AccordionItemValueContext);
110
+ if (!value) {
111
+ throw new Error(`${component} must be used within <AccordionItem>`);
112
+ }
113
+ return value;
114
+ }
115
+ function AccordionBase({
116
+ type = "single",
117
+ value,
118
+ values,
119
+ defaultValue,
120
+ defaultValues,
121
+ onValueChange,
122
+ onValuesChange,
123
+ appearance = "default",
124
+ size = "md",
125
+ className,
126
+ children
127
+ }) {
128
+ const isSingleControlled = value !== void 0;
129
+ const isMultipleControlled = values !== void 0;
130
+ const [singleUncontrolled, setSingleUncontrolled] = react.useState(defaultValue);
131
+ const [multipleUncontrolled, setMultipleUncontrolled] = react.useState(
132
+ defaultValues ?? []
133
+ );
134
+ const singleValue = isSingleControlled ? value : singleUncontrolled;
135
+ const multipleValues = react.useMemo(
136
+ () => isMultipleControlled ? values ?? [] : multipleUncontrolled,
137
+ [isMultipleControlled, values, multipleUncontrolled]
138
+ );
139
+ const isOpen = react.useCallback(
140
+ (itemValue) => {
141
+ if (type === "single") {
142
+ return singleValue === itemValue;
143
+ }
144
+ return multipleValues.includes(itemValue);
145
+ },
146
+ [multipleValues, singleValue, type]
147
+ );
148
+ const toggle = react.useCallback(
149
+ (itemValue) => {
150
+ if (type === "single") {
151
+ const next2 = singleValue === itemValue ? void 0 : itemValue;
152
+ if (!isSingleControlled) {
153
+ setSingleUncontrolled(next2);
154
+ }
155
+ onValueChange?.(next2);
156
+ return;
157
+ }
158
+ const exists = multipleValues.includes(itemValue);
159
+ const next = exists ? multipleValues.filter((entry) => entry !== itemValue) : [...multipleValues, itemValue];
160
+ if (!isMultipleControlled) {
161
+ setMultipleUncontrolled(next);
162
+ }
163
+ onValuesChange?.(next);
164
+ },
165
+ [
166
+ isMultipleControlled,
167
+ isSingleControlled,
168
+ multipleValues,
169
+ onValueChange,
170
+ onValuesChange,
171
+ singleValue,
172
+ type
173
+ ]
174
+ );
175
+ const ctx = react.useMemo(
176
+ () => ({
177
+ type,
178
+ appearance: appearance ?? "default",
179
+ size: size ?? "md",
180
+ isOpen,
181
+ toggle
182
+ }),
183
+ [appearance, isOpen, size, toggle, type]
184
+ );
185
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
186
+ "div",
187
+ {
188
+ "data-slot": "accordion",
189
+ className: chunkUOZYPWDZ_js.cn(accordionVariants({ appearance, size }), className),
190
+ children
191
+ }
192
+ ) });
193
+ }
194
+ AccordionBase.displayName = "Accordion";
195
+ function AccordionItem({
196
+ className,
197
+ value,
198
+ children,
199
+ ref,
200
+ ...rest
201
+ }) {
202
+ const { appearance } = useAccordionContext("AccordionItem");
203
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionItemValueContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(
204
+ "div",
205
+ {
206
+ ref,
207
+ "data-slot": "accordion-item",
208
+ "data-value": value,
209
+ className: chunkUOZYPWDZ_js.cn(accordionItemVariants({ appearance }), className),
210
+ ...rest,
211
+ children
212
+ }
213
+ ) });
214
+ }
215
+ AccordionItem.displayName = "AccordionItem";
216
+ function AccordionTrigger({
217
+ className,
218
+ children,
219
+ ref,
220
+ ...rest
221
+ }) {
222
+ const itemValue = useAccordionItemValue("AccordionTrigger");
223
+ const { isOpen, toggle, size } = useAccordionContext("AccordionTrigger");
224
+ const open = isOpen(itemValue);
225
+ const panelId = `${itemValue}-panel`;
226
+ const baseId = react.useId();
227
+ return /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "m-0", children: /* @__PURE__ */ jsxRuntime.jsx(
228
+ "button",
229
+ {
230
+ ref,
231
+ type: "button",
232
+ "data-slot": "accordion-trigger",
233
+ id: `${baseId}-trigger-${itemValue}`,
234
+ "aria-expanded": open,
235
+ "aria-controls": panelId,
236
+ className: chunkUOZYPWDZ_js.cn(accordionTriggerVariants({ size }), className),
237
+ onClick: () => toggle(itemValue),
238
+ ...rest,
239
+ children
240
+ }
241
+ ) });
242
+ }
243
+ AccordionTrigger.displayName = "AccordionTrigger";
244
+ function AccordionContent({
245
+ className,
246
+ children,
247
+ ref
248
+ }) {
249
+ const itemValue = useAccordionItemValue("AccordionContent");
250
+ const { isOpen, size } = useAccordionContext("AccordionContent");
251
+ const open = isOpen(itemValue);
252
+ const panelId = `${itemValue}-panel`;
253
+ return open ? /* @__PURE__ */ jsxRuntime.jsx(
254
+ "div",
255
+ {
256
+ ref,
257
+ id: panelId,
258
+ role: "region",
259
+ "data-slot": "accordion-content",
260
+ className: chunkUOZYPWDZ_js.cn(accordionContentVariants({ size }), className),
261
+ children
262
+ },
263
+ itemValue
264
+ ) : null;
265
+ }
266
+ AccordionContent.displayName = "AccordionContent";
267
+
268
+ exports.AccordionBase = AccordionBase;
269
+ exports.AccordionContent = AccordionContent;
270
+ exports.AccordionItem = AccordionItem;
271
+ exports.AccordionTrigger = AccordionTrigger;
272
+ exports.accordionContentVariants = accordionContentVariants;
273
+ exports.accordionItemVariants = accordionItemVariants;
274
+ exports.accordionTriggerVariants = accordionTriggerVariants;
275
+ exports.accordionVariants = accordionVariants;
276
+ exports.useAccordionContext = useAccordionContext;
277
+ exports.useAccordionItemValue = useAccordionItemValue;
278
+ //# sourceMappingURL=chunk-C2FCPQTO.js.map
279
+ //# sourceMappingURL=chunk-C2FCPQTO.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-C2FCPQTO.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const accordionVariants = cva(\"w-full\", {\n variants: {\n appearance: {\n default: \"divide-y divide-white/10 rounded-xl border border-white/10\",\n outline: \"divide-y divide-white/10 rounded-xl border border-white/15\",\n ghost: \"divide-y divide-white/5\",\n card: \"space-y-2\",\n separated: \"space-y-3\",\n sky: \"divide-y divide-sky-600 rounded-xl border border-sky-600\",\n rose: \"divide-y divide-rose-600 rounded-xl border border-rose-600\",\n purple: \"divide-y divide-purple-600 rounded-xl border border-purple-600\",\n pink: \"divide-y divide-pink-600 rounded-xl border border-pink-600\",\n orange: \"divide-y divide-orange-600 rounded-xl border border-orange-600\",\n yellow: \"divide-y divide-yellow-600 rounded-xl border border-yellow-600\",\n teal: \"divide-y divide-teal-600 rounded-xl border border-teal-600\",\n indigo: \"divide-y divide-indigo-600 rounded-xl border border-indigo-600\",\n emerald:\n \"divide-y divide-emerald-600 rounded-xl border border-emerald-600\",\n \"gradient-blue\":\n \"divide-y divide-gradient-to-r from-blue-600 to-purple-600 rounded-xl border border-gradient-to-r from-blue-600 to-purple-600\",\n \"gradient-green\":\n \"divide-y divide-gradient-to-r from-green-600 to-lime-600 rounded-xl border border-gradient-to-r from-green-600 to-lime-600\",\n \"gradient-red\":\n \"divide-y divide-gradient-to-r from-red-600 to-pink-600 rounded-xl border border-gradient-to-r from-red-600 to-pink-600\",\n \"gradient-yellow\":\n \"divide-y divide-gradient-to-r from-yellow-600 to-orange-600 rounded-xl border border-gradient-to-r from-yellow-600 to-orange-600\",\n \"gradient-purple\":\n \"divide-y divide-gradient-to-r from-purple-600 to-pink-600 rounded-xl border border-gradient-to-r from-purple-600 to-pink-600\",\n \"gradient-teal\":\n \"divide-y divide-gradient-to-r from-teal-600 to-cyan-600 rounded-xl border border-gradient-to-r from-teal-600 to-cyan-600\",\n \"gradient-indigo\":\n \"divide-y divide-gradient-to-r from-indigo-600 to-purple-600 rounded-xl border border-gradient-to-r from-indigo-600 to-purple-600\",\n \"gradient-pink\":\n \"divide-y divide-gradient-to-r from-pink-600 to-rose-600 rounded-xl border border-gradient-to-r from-pink-600 to-rose-600\",\n \"gradient-orange\":\n \"divide-y divide-gradient-to-r from-orange-600 to-red-600 rounded-xl border border-gradient-to-r from-orange-600 to-red-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(\"\", {\n variants: {\n appearance: {\n default: \"\",\n outline: \"\",\n ghost: \"\",\n card: \"rounded-xl border border-white/10 bg-white/[0.03] p-2\",\n separated: \"rounded-xl border border-white/10 bg-slate-950/40 p-2\",\n sky: \"rounded-xl border border-sky-600 bg-sky-600/[0.03] p-2\",\n rose: \"rounded-xl border border-rose-600 bg-rose-600/[0.03] p-2\",\n purple: \"rounded-xl border border-purple-600 bg-purple-600/[0.03] p-2\",\n pink: \"rounded-xl border border-pink-600 bg-pink-600/[0.03] p-2\",\n orange: \"rounded-xl border border-orange-600 bg-orange-600/[0.03] p-2\",\n yellow: \"rounded-xl border border-yellow-600 bg-yellow-600/[0.03] p-2\",\n teal: \"rounded-xl border border-teal-600 bg-teal-600/[0.03] p-2\",\n indigo: \"rounded-xl border border-indigo-600 bg-indigo-600/[0.03] p-2\",\n emerald: \"rounded-xl border border-emerald-600 bg-emerald-600/[0.03] p-2\",\n \"gradient-blue\":\n \"rounded-xl bg-linear-to-r from-blue-600 to-purple-600/[0.03] p-2 text-white\",\n \"gradient-green\":\n \"rounded-xl bg-linear-to-r from-green-600 to-lime-600/[0.03] p-2 text-white\",\n \"gradient-red\":\n \"rounded-xl bg-linear-to-r from-red-600 to-pink-600/[0.03] p-2 text-white\",\n \"gradient-yellow\":\n \"rounded-xl bg-linear-to-r from-yellow-600 to-orange-600/[0.03] p-2 text-white\",\n \"gradient-purple\":\n \"rounded-xl bg-linear-to-r from-purple-600 to-pink-600/[0.03] p-2 text-white\",\n \"gradient-teal\":\n \"rounded-xl bg-linear-to-r from-teal-600 to-cyan-600/[0.03] p-2 text-white\",\n \"gradient-indigo\":\n \"rounded-xl bg-linear-to-r from-indigo-600 to-purple-600/[0.03] p-2 text-white\",\n \"gradient-pink\":\n \"rounded-xl bg-linear-to-r from-pink-600 to-rose-600/[0.03] p-2 text-white\",\n \"gradient-orange\":\n \"rounded-xl bg-linear-to-r from-orange-600 to-red-600/[0.03] p-2 text-white\",\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-50 outline-none transition hover:text-white focus-visible:ring-2 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"]}