@zentauri-ui/zentauri-components 1.7.3 → 1.7.5

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 (323) hide show
  1. package/README.md +10 -6
  2. package/cli/registry.json +2 -0
  3. package/dist/{chunk-CL55KGDF.js → chunk-3W224B3M.js} +22 -22
  4. package/dist/chunk-3W224B3M.js.map +1 -0
  5. package/dist/{chunk-NZDHSIIC.js → chunk-4OCTFG3W.js} +3 -3
  6. package/dist/chunk-4OCTFG3W.js.map +1 -0
  7. package/dist/{chunk-4ZKBLVQX.js → chunk-5565GZ4T.js} +19 -19
  8. package/dist/chunk-5565GZ4T.js.map +1 -0
  9. package/dist/{chunk-BTJYXKCW.js → chunk-6HPS3ZOP.js} +15 -15
  10. package/dist/chunk-6HPS3ZOP.js.map +1 -0
  11. package/dist/chunk-7XCUMSCJ.mjs +80 -0
  12. package/dist/chunk-7XCUMSCJ.mjs.map +1 -0
  13. package/dist/{chunk-QAJOE3HJ.js → chunk-BU2MPXPZ.js} +6 -6
  14. package/dist/chunk-BU2MPXPZ.js.map +1 -0
  15. package/dist/{chunk-BC6M42HQ.mjs → chunk-CL3VH223.mjs} +21 -21
  16. package/dist/chunk-CL3VH223.mjs.map +1 -0
  17. package/dist/{chunk-QXHS3HHZ.mjs → chunk-D3VZKUMH.mjs} +15 -15
  18. package/dist/chunk-D3VZKUMH.mjs.map +1 -0
  19. package/dist/{chunk-EDARAO7X.js → chunk-DFCDLVZA.js} +7 -7
  20. package/dist/chunk-DFCDLVZA.js.map +1 -0
  21. package/dist/{chunk-ACGVDY5J.mjs → chunk-EZCYSFML.mjs} +4 -4
  22. package/dist/chunk-EZCYSFML.mjs.map +1 -0
  23. package/dist/{chunk-ZYKJC5HH.js → chunk-G66SXATZ.js} +15 -15
  24. package/dist/chunk-G66SXATZ.js.map +1 -0
  25. package/dist/{chunk-QBPVJH4P.mjs → chunk-H7WDA6U6.mjs} +5 -5
  26. package/dist/chunk-H7WDA6U6.mjs.map +1 -0
  27. package/dist/{chunk-OZMSE44N.mjs → chunk-HLG2YJFZ.mjs} +19 -19
  28. package/dist/chunk-HLG2YJFZ.mjs.map +1 -0
  29. package/dist/{chunk-QYLTKBH7.js → chunk-INXWZ4DS.js} +3 -3
  30. package/dist/chunk-INXWZ4DS.js.map +1 -0
  31. package/dist/{chunk-QSPXPU72.js → chunk-KTLJEPLF.js} +21 -21
  32. package/dist/chunk-KTLJEPLF.js.map +1 -0
  33. package/dist/chunk-LMIL2R4R.js +197 -0
  34. package/dist/chunk-LMIL2R4R.js.map +1 -0
  35. package/dist/{chunk-PR4QXFJT.js → chunk-LNYCEPW5.js} +5 -5
  36. package/dist/chunk-LNYCEPW5.js.map +1 -0
  37. package/dist/chunk-MEAVYU2Y.mjs +192 -0
  38. package/dist/chunk-MEAVYU2Y.mjs.map +1 -0
  39. package/dist/{chunk-P5WLYJ2C.mjs → chunk-NNZXBL7R.mjs} +6 -6
  40. package/dist/chunk-NNZXBL7R.mjs.map +1 -0
  41. package/dist/{chunk-HMNIH3KJ.mjs → chunk-ORFI4BCJ.mjs} +3 -3
  42. package/dist/chunk-ORFI4BCJ.mjs.map +1 -0
  43. package/dist/{chunk-K7TCW5PJ.js → chunk-PMALYOPA.js} +3 -3
  44. package/dist/chunk-PMALYOPA.js.map +1 -0
  45. package/dist/{chunk-WPXQHWPV.js → chunk-PYUZOVLY.js} +4 -4
  46. package/dist/chunk-PYUZOVLY.js.map +1 -0
  47. package/dist/{chunk-ITVMSCOJ.mjs → chunk-R2JJTREQ.mjs} +22 -22
  48. package/dist/chunk-R2JJTREQ.mjs.map +1 -0
  49. package/dist/chunk-RIHJAEOL.js +107 -0
  50. package/dist/chunk-RIHJAEOL.js.map +1 -0
  51. package/dist/{chunk-FHLZH3PB.mjs → chunk-SFRS4EZ5.mjs} +3 -3
  52. package/dist/chunk-SFRS4EZ5.mjs.map +1 -0
  53. package/dist/{chunk-KTGV76M3.mjs → chunk-SSJXWD2M.mjs} +3 -3
  54. package/dist/chunk-SSJXWD2M.mjs.map +1 -0
  55. package/dist/{chunk-YAO62VH2.js → chunk-UGH23TAH.js} +15 -15
  56. package/dist/chunk-UGH23TAH.js.map +1 -0
  57. package/dist/chunk-UPZ5XGUD.mjs +100 -0
  58. package/dist/chunk-UPZ5XGUD.mjs.map +1 -0
  59. package/dist/{chunk-4XVNQ7IY.mjs → chunk-UR7TNW45.mjs} +15 -15
  60. package/dist/chunk-UR7TNW45.mjs.map +1 -0
  61. package/dist/{chunk-HCGSEPOD.mjs → chunk-UROKWFPX.mjs} +7 -7
  62. package/dist/chunk-UROKWFPX.mjs.map +1 -0
  63. package/dist/{chunk-XRDVD2EN.js → chunk-X3O45MPI.js} +3 -3
  64. package/dist/{chunk-XRDVD2EN.js.map → chunk-X3O45MPI.js.map} +1 -1
  65. package/dist/{chunk-KEKMMNL5.mjs → chunk-XXRDLZW7.mjs} +3 -3
  66. package/dist/chunk-XXRDLZW7.mjs.map +1 -0
  67. package/dist/{chunk-NHQ3S4Y6.mjs → chunk-ZIFMIS7D.mjs} +15 -15
  68. package/dist/chunk-ZIFMIS7D.mjs.map +1 -0
  69. package/dist/chunk-ZUT7ZUM7.js +84 -0
  70. package/dist/chunk-ZUT7ZUM7.js.map +1 -0
  71. package/dist/design-system/accordion.d.ts +1 -1
  72. package/dist/design-system/alert.d.ts +5 -5
  73. package/dist/design-system/badge.d.ts +3 -3
  74. package/dist/design-system/card.d.ts +2 -2
  75. package/dist/design-system/checkbox.d.ts +10 -10
  76. package/dist/design-system/checkbox.d.ts.map +1 -1
  77. package/dist/design-system/command.d.ts +1 -1
  78. package/dist/design-system/command.d.ts.map +1 -1
  79. package/dist/design-system/drawer.d.ts +1 -1
  80. package/dist/design-system/dropdown.d.ts +31 -31
  81. package/dist/design-system/dropdown.d.ts.map +1 -1
  82. package/dist/design-system/file-upload.d.ts +15 -15
  83. package/dist/design-system/file-upload.d.ts.map +1 -1
  84. package/dist/design-system/index.d.ts +2 -0
  85. package/dist/design-system/index.d.ts.map +1 -1
  86. package/dist/design-system/inputs.d.ts +13 -13
  87. package/dist/design-system/inputs.d.ts.map +1 -1
  88. package/dist/design-system/modal.d.ts +1 -1
  89. package/dist/design-system/modal.d.ts.map +1 -1
  90. package/dist/design-system/otp-input.d.ts +27 -0
  91. package/dist/design-system/otp-input.d.ts.map +1 -0
  92. package/dist/design-system/pagination.d.ts +25 -25
  93. package/dist/design-system/popover.d.ts +19 -19
  94. package/dist/design-system/popover.d.ts.map +1 -1
  95. package/dist/design-system/radio-group.d.ts +10 -10
  96. package/dist/design-system/radio-group.d.ts.map +1 -1
  97. package/dist/design-system/scroll-area.d.ts +33 -0
  98. package/dist/design-system/scroll-area.d.ts.map +1 -0
  99. package/dist/design-system/select.d.ts +35 -35
  100. package/dist/design-system/select.d.ts.map +1 -1
  101. package/dist/design-system/skeleton.d.ts +13 -13
  102. package/dist/design-system/skeleton.d.ts.map +1 -1
  103. package/dist/design-system/slider.d.ts +23 -23
  104. package/dist/design-system/slider.d.ts.map +1 -1
  105. package/dist/design-system/stepper.d.ts +22 -22
  106. package/dist/design-system/table.d.ts +13 -13
  107. package/dist/design-system/tabs.d.ts +4 -4
  108. package/dist/design-system/tabs.d.ts.map +1 -1
  109. package/dist/design-system/toast.d.ts +17 -17
  110. package/dist/design-system/toast.d.ts.map +1 -1
  111. package/dist/design-system/toggle.d.ts +54 -54
  112. package/dist/design-system/toggle.d.ts.map +1 -1
  113. package/dist/design-system/tooltip.d.ts +20 -20
  114. package/dist/design-system/typography.d.ts +15 -15
  115. package/dist/ui/accordion/animated.js +7 -7
  116. package/dist/ui/accordion/animated.mjs +2 -2
  117. package/dist/ui/accordion.js +9 -9
  118. package/dist/ui/accordion.mjs +2 -2
  119. package/dist/ui/alert/animated/alert-animated.d.ts.map +1 -1
  120. package/dist/ui/alert/animated.js +2 -2
  121. package/dist/ui/alert/animated.js.map +1 -1
  122. package/dist/ui/alert/animated.mjs +1 -1
  123. package/dist/ui/alert/animated.mjs.map +1 -1
  124. package/dist/ui/alert.js +10 -10
  125. package/dist/ui/alert.mjs +2 -2
  126. package/dist/ui/badge/animated.js +2 -2
  127. package/dist/ui/badge/animated.mjs +1 -1
  128. package/dist/ui/badge/variants.d.ts +1 -1
  129. package/dist/ui/badge.js +4 -4
  130. package/dist/ui/badge.mjs +2 -2
  131. package/dist/ui/card/animated.js +7 -7
  132. package/dist/ui/card/animated.mjs +2 -2
  133. package/dist/ui/card.js +12 -12
  134. package/dist/ui/card.mjs +2 -2
  135. package/dist/ui/checkbox/animated.js +4 -4
  136. package/dist/ui/checkbox/animated.mjs +1 -1
  137. package/dist/ui/checkbox.js +8 -8
  138. package/dist/ui/checkbox.mjs +2 -2
  139. package/dist/ui/command/animated.js +2 -2
  140. package/dist/ui/command/animated.mjs +1 -1
  141. package/dist/ui/command.js +15 -15
  142. package/dist/ui/command.mjs +2 -2
  143. package/dist/ui/drawer/animated.js +11 -11
  144. package/dist/ui/drawer/animated.mjs +2 -2
  145. package/dist/ui/drawer.js +11 -11
  146. package/dist/ui/drawer.mjs +1 -1
  147. package/dist/ui/dropdown.js +31 -31
  148. package/dist/ui/dropdown.js.map +1 -1
  149. package/dist/ui/dropdown.mjs +31 -31
  150. package/dist/ui/dropdown.mjs.map +1 -1
  151. package/dist/ui/dynamic-stepper.js +47 -47
  152. package/dist/ui/dynamic-stepper.js.map +1 -1
  153. package/dist/ui/dynamic-stepper.mjs +47 -47
  154. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  155. package/dist/ui/file-upload.js +15 -15
  156. package/dist/ui/file-upload.js.map +1 -1
  157. package/dist/ui/file-upload.mjs +15 -15
  158. package/dist/ui/file-upload.mjs.map +1 -1
  159. package/dist/ui/inputs/animated.js +3 -3
  160. package/dist/ui/inputs/animated.mjs +1 -1
  161. package/dist/ui/inputs.js +4 -4
  162. package/dist/ui/inputs.mjs +2 -2
  163. package/dist/ui/modal/animated.js +4 -4
  164. package/dist/ui/modal/animated.mjs +1 -1
  165. package/dist/ui/modal.js +12 -12
  166. package/dist/ui/modal.mjs +2 -2
  167. package/dist/ui/otp-input/index.d.ts +4 -0
  168. package/dist/ui/otp-input/index.d.ts.map +1 -0
  169. package/dist/ui/otp-input/otp-input.d.ts +6 -0
  170. package/dist/ui/otp-input/otp-input.d.ts.map +1 -0
  171. package/dist/ui/otp-input/types.d.ts +23 -0
  172. package/dist/ui/otp-input/types.d.ts.map +1 -0
  173. package/dist/ui/otp-input/variants.d.ts +5 -0
  174. package/dist/ui/otp-input/variants.d.ts.map +1 -0
  175. package/dist/ui/otp-input.js +302 -0
  176. package/dist/ui/otp-input.js.map +1 -0
  177. package/dist/ui/otp-input.mjs +299 -0
  178. package/dist/ui/otp-input.mjs.map +1 -0
  179. package/dist/ui/pagination.js +25 -25
  180. package/dist/ui/pagination.js.map +1 -1
  181. package/dist/ui/pagination.mjs +25 -25
  182. package/dist/ui/pagination.mjs.map +1 -1
  183. package/dist/ui/popover/animated.js +4 -4
  184. package/dist/ui/popover/animated.mjs +1 -1
  185. package/dist/ui/popover.js +7 -7
  186. package/dist/ui/popover.mjs +1 -1
  187. package/dist/ui/radio-group/animated.js +7 -7
  188. package/dist/ui/radio-group/animated.mjs +1 -1
  189. package/dist/ui/radio-group.js +11 -11
  190. package/dist/ui/radio-group.mjs +2 -2
  191. package/dist/ui/scroll-area/index.d.ts +4 -0
  192. package/dist/ui/scroll-area/index.d.ts.map +1 -0
  193. package/dist/ui/scroll-area/scroll-area.d.ts +6 -0
  194. package/dist/ui/scroll-area/scroll-area.d.ts.map +1 -0
  195. package/dist/ui/scroll-area/types.d.ts +8 -0
  196. package/dist/ui/scroll-area/types.d.ts.map +1 -0
  197. package/dist/ui/scroll-area/variants.d.ts +8 -0
  198. package/dist/ui/scroll-area/variants.d.ts.map +1 -0
  199. package/dist/ui/scroll-area.js +123 -0
  200. package/dist/ui/scroll-area.js.map +1 -0
  201. package/dist/ui/scroll-area.mjs +120 -0
  202. package/dist/ui/scroll-area.mjs.map +1 -0
  203. package/dist/ui/search.js +2 -2
  204. package/dist/ui/search.mjs +1 -1
  205. package/dist/ui/select.js +35 -35
  206. package/dist/ui/select.js.map +1 -1
  207. package/dist/ui/select.mjs +35 -35
  208. package/dist/ui/select.mjs.map +1 -1
  209. package/dist/ui/skeleton/animated.js +8 -8
  210. package/dist/ui/skeleton/animated.mjs +1 -1
  211. package/dist/ui/skeleton.js +9 -9
  212. package/dist/ui/skeleton.mjs +1 -1
  213. package/dist/ui/slider.js +23 -23
  214. package/dist/ui/slider.js.map +1 -1
  215. package/dist/ui/slider.mjs +23 -23
  216. package/dist/ui/slider.mjs.map +1 -1
  217. package/dist/ui/stepper.js +22 -22
  218. package/dist/ui/stepper.js.map +1 -1
  219. package/dist/ui/stepper.mjs +22 -22
  220. package/dist/ui/stepper.mjs.map +1 -1
  221. package/dist/ui/table/animated.js +8 -8
  222. package/dist/ui/table/animated.mjs +2 -2
  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.js +9 -9
  228. package/dist/ui/tabs.mjs +1 -1
  229. package/dist/ui/toast/animated.js +7 -7
  230. package/dist/ui/toast/animated.mjs +1 -1
  231. package/dist/ui/toast.js +12 -12
  232. package/dist/ui/toast.mjs +1 -1
  233. package/dist/ui/toggle/animated.js +4 -4
  234. package/dist/ui/toggle/animated.mjs +1 -1
  235. package/dist/ui/toggle.js +4 -4
  236. package/dist/ui/toggle.mjs +2 -2
  237. package/dist/ui/tooltip/animated.js +3 -3
  238. package/dist/ui/tooltip/animated.mjs +1 -1
  239. package/dist/ui/tooltip.js +7 -7
  240. package/dist/ui/tooltip.mjs +1 -1
  241. package/dist/ui/typography.js +15 -15
  242. package/dist/ui/typography.js.map +1 -1
  243. package/dist/ui/typography.mjs +15 -15
  244. package/dist/ui/typography.mjs.map +1 -1
  245. package/package.json +1 -1
  246. package/src/design-system/accordion.ts +1 -1
  247. package/src/design-system/alert.ts +5 -5
  248. package/src/design-system/badge.ts +3 -3
  249. package/src/design-system/card.ts +2 -2
  250. package/src/design-system/checkbox.ts +10 -12
  251. package/src/design-system/command.ts +1 -1
  252. package/src/design-system/drawer.ts +1 -1
  253. package/src/design-system/dropdown.ts +31 -31
  254. package/src/design-system/dynamic-stepper.ts +47 -47
  255. package/src/design-system/file-upload.ts +15 -15
  256. package/src/design-system/index.ts +2 -0
  257. package/src/design-system/inputs.ts +13 -13
  258. package/src/design-system/modal.ts +1 -1
  259. package/src/design-system/otp-input.ts +50 -0
  260. package/src/design-system/pagination.ts +25 -25
  261. package/src/design-system/popover.ts +19 -23
  262. package/src/design-system/radio-group.ts +10 -12
  263. package/src/design-system/scroll-area.ts +47 -0
  264. package/src/design-system/select.ts +36 -35
  265. package/src/design-system/skeleton.ts +20 -13
  266. package/src/design-system/slider.ts +23 -23
  267. package/src/design-system/stepper.ts +22 -22
  268. package/src/design-system/table.ts +13 -13
  269. package/src/design-system/tabs.ts +5 -4
  270. package/src/design-system/toast.ts +17 -17
  271. package/src/design-system/toggle.ts +55 -54
  272. package/src/design-system/tooltip.ts +20 -20
  273. package/src/design-system/typography.ts +15 -15
  274. package/src/ui/alert/animated/alert-animated.tsx +1 -0
  275. package/src/ui/otp-input/index.ts +9 -0
  276. package/src/ui/otp-input/otp-input.test.tsx +99 -0
  277. package/src/ui/otp-input/otp-input.tsx +327 -0
  278. package/src/ui/otp-input/types.ts +32 -0
  279. package/src/ui/otp-input/variants.ts +18 -0
  280. package/src/ui/scroll-area/index.ts +5 -0
  281. package/src/ui/scroll-area/scroll-area.test.tsx +116 -0
  282. package/src/ui/scroll-area/scroll-area.tsx +64 -0
  283. package/src/ui/scroll-area/types.ts +11 -0
  284. package/src/ui/scroll-area/variants.ts +44 -0
  285. package/dist/chunk-4XVNQ7IY.mjs.map +0 -1
  286. package/dist/chunk-4ZKBLVQX.js.map +0 -1
  287. package/dist/chunk-6QQUQLPB.js +0 -107
  288. package/dist/chunk-6QQUQLPB.js.map +0 -1
  289. package/dist/chunk-ACGVDY5J.mjs.map +0 -1
  290. package/dist/chunk-BC6M42HQ.mjs.map +0 -1
  291. package/dist/chunk-BTJYXKCW.js.map +0 -1
  292. package/dist/chunk-CL55KGDF.js.map +0 -1
  293. package/dist/chunk-EDARAO7X.js.map +0 -1
  294. package/dist/chunk-EN4VLNBF.js +0 -197
  295. package/dist/chunk-EN4VLNBF.js.map +0 -1
  296. package/dist/chunk-FHLZH3PB.mjs.map +0 -1
  297. package/dist/chunk-HCGSEPOD.mjs.map +0 -1
  298. package/dist/chunk-HMNIH3KJ.mjs.map +0 -1
  299. package/dist/chunk-ITVMSCOJ.mjs.map +0 -1
  300. package/dist/chunk-K6IZANTI.mjs +0 -80
  301. package/dist/chunk-K6IZANTI.mjs.map +0 -1
  302. package/dist/chunk-K7TCW5PJ.js.map +0 -1
  303. package/dist/chunk-KEKMMNL5.mjs.map +0 -1
  304. package/dist/chunk-KTGV76M3.mjs.map +0 -1
  305. package/dist/chunk-MTTXLC2V.mjs +0 -100
  306. package/dist/chunk-MTTXLC2V.mjs.map +0 -1
  307. package/dist/chunk-NHQ3S4Y6.mjs.map +0 -1
  308. package/dist/chunk-NZDHSIIC.js.map +0 -1
  309. package/dist/chunk-OZMSE44N.mjs.map +0 -1
  310. package/dist/chunk-P5WLYJ2C.mjs.map +0 -1
  311. package/dist/chunk-PHEUJ4EF.js +0 -84
  312. package/dist/chunk-PHEUJ4EF.js.map +0 -1
  313. package/dist/chunk-PMWRJ2KS.mjs +0 -192
  314. package/dist/chunk-PMWRJ2KS.mjs.map +0 -1
  315. package/dist/chunk-PR4QXFJT.js.map +0 -1
  316. package/dist/chunk-QAJOE3HJ.js.map +0 -1
  317. package/dist/chunk-QBPVJH4P.mjs.map +0 -1
  318. package/dist/chunk-QSPXPU72.js.map +0 -1
  319. package/dist/chunk-QXHS3HHZ.mjs.map +0 -1
  320. package/dist/chunk-QYLTKBH7.js.map +0 -1
  321. package/dist/chunk-WPXQHWPV.js.map +0 -1
  322. package/dist/chunk-YAO62VH2.js.map +0 -1
  323. package/dist/chunk-ZYKJC5HH.js.map +0 -1
@@ -0,0 +1,116 @@
1
+ import { render, screen } from "@testing-library/react";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ import { ScrollArea } from "./scroll-area";
5
+
6
+ describe("ScrollArea", () => {
7
+ it("exposes a display name", () => {
8
+ expect(ScrollArea.displayName).toBe("ScrollArea");
9
+ });
10
+
11
+ it("renders children in the viewport slot", () => {
12
+ render(
13
+ <ScrollArea>
14
+ <p>Scrollable content</p>
15
+ </ScrollArea>,
16
+ );
17
+
18
+ expect(document.querySelector('[data-slot="scroll-area"]')).toBeTruthy();
19
+ expect(
20
+ document.querySelector('[data-slot="scroll-area-viewport"]'),
21
+ ).toBeTruthy();
22
+ expect(screen.getByText("Scrollable content")).toBeInTheDocument();
23
+ });
24
+
25
+ it("applies horizontal orientation metadata and overflow classes", () => {
26
+ render(
27
+ <ScrollArea orientation="horizontal" data-testid="scroll-area">
28
+ Wide content
29
+ </ScrollArea>,
30
+ );
31
+
32
+ const area = screen.getByTestId("scroll-area");
33
+ expect(area).toHaveAttribute("data-orientation", "horizontal");
34
+ expect(area.className).toContain("overflow-x-auto");
35
+ expect(area.className).toContain("overflow-y-hidden");
36
+ });
37
+
38
+ it("applies both-axis orientation metadata and overflow classes", () => {
39
+ render(
40
+ <ScrollArea orientation="both" data-testid="scroll-area">
41
+ Wide and tall content
42
+ </ScrollArea>,
43
+ );
44
+
45
+ const area = screen.getByTestId("scroll-area");
46
+ expect(area).toHaveAttribute("data-orientation", "both");
47
+ expect(area.className).toContain("overflow-auto");
48
+ });
49
+
50
+ it("uses named regions as keyboard-focusable scroll containers", () => {
51
+ render(
52
+ <ScrollArea aria-label="Notifications" data-testid="scroll-area">
53
+ Notifications
54
+ </ScrollArea>,
55
+ );
56
+
57
+ const area = screen.getByTestId("scroll-area");
58
+ expect(area).toHaveAttribute("role", "region");
59
+ expect(area).toHaveAttribute("tabindex", "0");
60
+ });
61
+
62
+ it("respects explicit role and tabIndex values", () => {
63
+ render(
64
+ <ScrollArea
65
+ aria-label="Activity"
66
+ data-testid="scroll-area"
67
+ role="group"
68
+ tabIndex={-1}
69
+ >
70
+ Activity
71
+ </ScrollArea>,
72
+ );
73
+
74
+ const area = screen.getByTestId("scroll-area");
75
+ expect(area).toHaveAttribute("role", "group");
76
+ expect(area).toHaveAttribute("tabindex", "-1");
77
+ });
78
+
79
+ it("applies viewport class names", () => {
80
+ render(
81
+ <ScrollArea viewportClassName="min-w-max" data-testid="scroll-area">
82
+ Content
83
+ </ScrollArea>,
84
+ );
85
+
86
+ expect(
87
+ document.querySelector('[data-slot="scroll-area-viewport"]'),
88
+ ).toHaveClass("min-w-max");
89
+ });
90
+
91
+ it("applies appearance, size, scrollbar, shadow, and className variants", () => {
92
+ render(
93
+ <ScrollArea
94
+ appearance="sky"
95
+ className="h-32"
96
+ data-testid="scroll-area"
97
+ scrollbar="hover"
98
+ shadow
99
+ size="lg"
100
+ >
101
+ Content
102
+ </ScrollArea>,
103
+ );
104
+
105
+ const area = screen.getByTestId("scroll-area");
106
+ expect(area).toHaveAttribute("data-scrollbar", "hover");
107
+ expect(area.className).toContain("h-32");
108
+ expect(area.className).toContain("[--zui-scroll-area-size:0.875rem]");
109
+ expect(area.className).toContain(
110
+ "[box-shadow:inset_0_2px_12px_rgb(15_23_42_/_0.08)]",
111
+ );
112
+ expect(area.className).toContain(
113
+ "[--zui-scroll-area-thumb:oklch(54.6%_0.245_262.881)]",
114
+ );
115
+ });
116
+ });
@@ -0,0 +1,64 @@
1
+ "use client";
2
+
3
+ import { forwardRef } from "react";
4
+
5
+ import { cn } from "../../lib/utils";
6
+
7
+ import type { ScrollAreaProps } from "./types";
8
+ import { scrollAreaVariants } from "./variants";
9
+
10
+ export function ScrollArea(props: ScrollAreaProps) {
11
+ const {
12
+ appearance,
13
+ children,
14
+ className,
15
+ orientation,
16
+ ref,
17
+ role,
18
+ scrollbar,
19
+ shadow,
20
+ size,
21
+ tabIndex,
22
+ viewportClassName,
23
+ ...rest
24
+ } = props;
25
+ const ariaLabel = rest["aria-label"];
26
+ const ariaLabelledBy = rest["aria-labelledby"];
27
+ const isNamedRegion =
28
+ role === "region" ||
29
+ ariaLabel !== undefined ||
30
+ ariaLabelledBy !== undefined;
31
+
32
+ return (
33
+ <div
34
+ ref={ref}
35
+ data-orientation={orientation ?? "vertical"}
36
+ data-scrollbar={scrollbar ?? "auto"}
37
+ data-slot="scroll-area"
38
+ role={
39
+ role ??
40
+ (ariaLabel !== undefined || ariaLabelledBy !== undefined
41
+ ? "region"
42
+ : undefined)
43
+ }
44
+ tabIndex={tabIndex ?? (isNamedRegion ? 0 : undefined)}
45
+ className={cn(
46
+ scrollAreaVariants({
47
+ appearance,
48
+ orientation,
49
+ scrollbar,
50
+ shadow,
51
+ size,
52
+ }),
53
+ className,
54
+ )}
55
+ {...rest}
56
+ >
57
+ <div data-slot="scroll-area-viewport" className={viewportClassName}>
58
+ {children}
59
+ </div>
60
+ </div>
61
+ );
62
+ }
63
+
64
+ ScrollArea.displayName = "ScrollArea";
@@ -0,0 +1,11 @@
1
+ import type { VariantProps } from "class-variance-authority";
2
+ import type { ComponentPropsWithRef } from "react";
3
+
4
+ import type { scrollAreaVariants } from "./variants";
5
+
6
+ export type ScrollAreaVariantProps = VariantProps<typeof scrollAreaVariants>;
7
+
8
+ export type ScrollAreaProps = ScrollAreaVariantProps &
9
+ ComponentPropsWithRef<"div"> & {
10
+ viewportClassName?: string;
11
+ };
@@ -0,0 +1,44 @@
1
+ import { cva } from "class-variance-authority";
2
+
3
+ import {
4
+ zuiScrollAreaAppearances,
5
+ zuiScrollAreaBase,
6
+ zuiScrollAreaOrientations,
7
+ zuiScrollAreaShadows,
8
+ zuiScrollAreaSizes,
9
+ zuiScrollAreaVisibility,
10
+ } from "../../design-system/scroll-area";
11
+
12
+ export const scrollAreaVariants = cva(zuiScrollAreaBase, {
13
+ variants: {
14
+ appearance: zuiScrollAreaAppearances,
15
+ orientation: zuiScrollAreaOrientations,
16
+ scrollbar: zuiScrollAreaVisibility,
17
+ shadow: zuiScrollAreaShadows,
18
+ size: zuiScrollAreaSizes,
19
+ },
20
+ compoundVariants: [
21
+ {
22
+ scrollbar: "always",
23
+ orientation: "vertical",
24
+ class: "overflow-x-hidden overflow-y-scroll",
25
+ },
26
+ {
27
+ scrollbar: "always",
28
+ orientation: "horizontal",
29
+ class: "overflow-x-scroll overflow-y-hidden",
30
+ },
31
+ {
32
+ scrollbar: "always",
33
+ orientation: "both",
34
+ class: "overflow-scroll",
35
+ },
36
+ ],
37
+ defaultVariants: {
38
+ appearance: "default",
39
+ orientation: "vertical",
40
+ scrollbar: "auto",
41
+ shadow: false,
42
+ size: "md",
43
+ },
44
+ });
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/design-system/skeleton.ts","../src/ui/skeleton/variants.ts","../src/ui/skeleton/skeleton-base.tsx"],"names":[],"mappings":"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","file":"chunk-4XVNQ7IY.mjs","sourcesContent":["const shimmerLayer =\n \"[background-size:220%_100%] [background-repeat:no-repeat] [background-position:100%_0%]\";\n\nexport const zuiSkeletonShimmerGradientClasses = {\n default: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.04),rgba(255,255,255,0.22),rgba(255,255,255,0.04))]`,\n subtle: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.03),rgba(255,255,255,0.14),rgba(255,255,255,0.03))]`,\n muted: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.02),rgba(255,255,255,0.1),rgba(255,255,255,0.02))]`,\n sky: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(56,189,248,0.1),rgba(56,189,248,0.42),rgba(56,189,248,0.1))]`,\n rose: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,113,133,0.1),rgba(251,113,133,0.42),rgba(251,113,133,0.1))]`,\n purple: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(192,132,252,0.1),rgba(192,132,252,0.42),rgba(192,132,252,0.1))]`,\n pink: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(244,114,182,0.1),rgba(244,114,182,0.42),rgba(244,114,182,0.1))]`,\n orange: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,146,60,0.1),rgba(251,146,60,0.42),rgba(251,146,60,0.1))]`,\n yellow: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(250,204,21,0.12),rgba(250,204,21,0.4),rgba(250,204,21,0.12))]`,\n teal: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(45,212,191,0.1),rgba(45,212,191,0.42),rgba(45,212,191,0.1))]`,\n indigo: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(129,140,248,0.1),rgba(129,140,248,0.42),rgba(129,140,248,0.1))]`,\n emerald: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(52,211,153,0.1),rgba(52,211,153,0.42),rgba(52,211,153,0.1))]`,\n gray: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(161,161,170,0.1),rgba(161,161,170,0.38),rgba(161,161,170,0.1))]`,\n amber: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,191,36,0.12),rgba(251,191,36,0.42),rgba(251,191,36,0.12))]`,\n violet: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(167,139,250,0.1),rgba(167,139,250,0.42),rgba(167,139,250,0.1))]`,\n \"gradient-blue\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(100,149,237,0.1),rgba(100,149,237,0.42),rgba(100,149,237,0.1))]`,\n \"gradient-green\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(52,211,153,0.1),rgba(52,211,153,0.42),rgba(52,211,153,0.1))]`,\n \"gradient-red\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(239,68,68,0.1),rgba(239,68,68,0.42),rgba(239,68,68,0.1))]`,\n \"gradient-yellow\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(250,204,21,0.12),rgba(250,204,21,0.42),rgba(250,204,21,0.12))]`,\n \"gradient-purple\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(167,139,250,0.1),rgba(167,139,250,0.42),rgba(167,139,250,0.1))]`,\n \"gradient-teal\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(45,212,191,0.1),rgba(45,212,191,0.42),rgba(45,212,191,0.1))]`,\n \"gradient-indigo\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(129,140,248,0.1),rgba(129,140,248,0.42),rgba(129,140,248,0.1))]`,\n \"gradient-pink\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(244,114,182,0.1),rgba(244,114,182,0.42),rgba(244,114,182,0.1))]`,\n \"gradient-orange\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,146,60,0.1),rgba(251,146,60,0.42),rgba(251,146,60,0.1))]`,\n} as const;\n\nexport type ZuiSkeletonShimmerTone =\n keyof typeof zuiSkeletonShimmerGradientClasses;\n\nexport const zuiSkeletonBase =\n \"relative overflow-hidden bg-[var(--zui-skeleton-bg,#0000001a)] dark:bg-[var(--zui-skeleton-bg-dark,#ffffff1a)] text-[color:var(--zui-skeleton-fg,transparent)]\";\n\nexport const zuiSkeletonAppearances = {\n default:\n \"bg-[var(--zui-skeleton-default-bg,#0000001a)] dark:bg-[var(--zui-skeleton-default-bg-dark,#ffffff1a)]\",\n subtle:\n \"bg-[var(--zui-skeleton-subtle-bg,#00000012)] dark:bg-[var(--zui-skeleton-subtle-bg-dark,#ffffff12)]\",\n muted:\n \"bg-[var(--zui-skeleton-muted-bg,oklch(92.9%_0.013_255.508_/_0.8))] dark:bg-[var(--zui-skeleton-muted-bg-dark,oklch(27.9%_0.041_260.031_/_0.8))]\",\n sky: \"bg-[var(--zui-skeleton-sky-bg,oklch(68.5%_0.169_237.323_/_0.1))]\",\n rose: \"bg-[var(--zui-skeleton-rose-bg,oklch(64.5%_0.246_16.439_/_0.1))]\",\n purple: \"bg-[var(--zui-skeleton-purple-bg,oklch(62.7%_0.265_303.9_/_0.1))]\",\n pink: \"bg-[var(--zui-skeleton-pink-bg,oklch(65.6%_0.241_354.308_/_0.1))]\",\n orange: \"bg-[var(--zui-skeleton-orange-bg,oklch(70.5%_0.213_47.604_/_0.1))]\",\n yellow: \"bg-[var(--zui-skeleton-yellow-bg,oklch(79.5%_0.184_86.047_/_0.1))]\",\n teal: \"bg-[var(--zui-skeleton-teal-bg,oklch(70.4%_0.14_182.503_/_0.1))]\",\n indigo: \"bg-[var(--zui-skeleton-indigo-bg,oklch(58.5%_0.233_277.117_/_0.1))]\",\n emerald: \"bg-[var(--zui-skeleton-emerald-bg,oklch(69.6%_0.17_162.48_/_0.1))]\",\n gray: \"bg-[var(--zui-skeleton-gray-bg,oklch(55.1%_0.027_264.364_/_0.1))]\",\n amber: \"bg-[var(--zui-skeleton-amber-bg,oklch(76.9%_0.188_70.08_/_0.1))]\",\n violet: \"bg-[var(--zui-skeleton-violet-bg,oklch(60.6%_0.25_292.717_/_0.1))]\",\n \"gradient-blue\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-blue-from,oklch(42.4%_0.199_265.638))] dark:from-[var(--zui-skeleton-gradient-blue-from-dark,oklch(54.6%_0.245_262.881))] to-[var(--zui-skeleton-gradient-blue-to,oklch(43.8%_0.218_303.724))] dark:to-[var(--zui-skeleton-gradient-blue-to-dark,oklch(55.8%_0.288_302.321))]\",\n \"gradient-green\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-green-from,oklch(44.8%_0.119_151.328))] dark:from-[var(--zui-skeleton-gradient-green-from-dark,oklch(62.7%_0.194_149.214))] to-[var(--zui-skeleton-gradient-green-to,oklch(45.3%_0.124_130.933))] dark:to-[var(--zui-skeleton-gradient-green-to-dark,oklch(64.8%_0.2_131.684))]\",\n \"gradient-red\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-red-from,oklch(44.4%_0.177_26.899))] dark:from-[var(--zui-skeleton-gradient-red-from-dark,oklch(57.7%_0.245_27.325))] to-[var(--zui-skeleton-gradient-red-to,oklch(45.9%_0.187_3.815))] dark:to-[var(--zui-skeleton-gradient-red-to-dark,oklch(59.2%_0.249_0.584))]\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-yellow-from,oklch(47.6%_0.114_61.907))] dark:from-[var(--zui-skeleton-gradient-yellow-from-dark,oklch(68.1%_0.162_75.834))] to-[var(--zui-skeleton-gradient-yellow-to,oklch(47%_0.157_37.304))] dark:to-[var(--zui-skeleton-gradient-yellow-to-dark,oklch(64.6%_0.222_41.116))]\",\n \"gradient-purple\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-purple-from,oklch(43.8%_0.218_303.724))] dark:from-[var(--zui-skeleton-gradient-purple-from-dark,oklch(55.8%_0.288_302.321))] to-[var(--zui-skeleton-gradient-purple-to,oklch(45.9%_0.187_3.815))] dark:to-[var(--zui-skeleton-gradient-purple-to-dark,oklch(59.2%_0.249_0.584))]\",\n \"gradient-teal\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-teal-from,oklch(43.7%_0.078_188.216))] dark:from-[var(--zui-skeleton-gradient-teal-from-dark,oklch(60%_0.118_184.704))] to-[var(--zui-skeleton-gradient-teal-to,oklch(45%_0.085_224.283))] dark:to-[var(--zui-skeleton-gradient-teal-to-dark,oklch(60.9%_0.126_221.723))]\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-indigo-from,oklch(39.8%_0.195_277.366))] dark:from-[var(--zui-skeleton-gradient-indigo-from-dark,oklch(51.1%_0.262_276.966))] to-[var(--zui-skeleton-gradient-indigo-to,oklch(43.8%_0.218_303.724))] dark:to-[var(--zui-skeleton-gradient-indigo-to-dark,oklch(55.8%_0.288_302.321))]\",\n \"gradient-pink\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-pink-from,oklch(45.9%_0.187_3.815))] dark:from-[var(--zui-skeleton-gradient-pink-from-dark,oklch(59.2%_0.249_0.584))] to-[var(--zui-skeleton-gradient-pink-to,oklch(45.5%_0.188_13.697))] dark:to-[var(--zui-skeleton-gradient-pink-to-dark,oklch(58.6%_0.253_17.585))]\",\n \"gradient-orange\":\n \"bg-linear-to-r from-[var(--zui-skeleton-gradient-orange-from,oklch(47%_0.157_37.304))] dark:from-[var(--zui-skeleton-gradient-orange-from-dark,oklch(64.6%_0.222_41.116))] to-[var(--zui-skeleton-gradient-orange-to,oklch(44.4%_0.177_26.899))] dark:to-[var(--zui-skeleton-gradient-orange-to-dark,oklch(57.7%_0.245_27.325))]\",\n} as const;\n\nexport const zuiSkeletonSizes = {\n sm: \"min-h-3\",\n md: \"min-h-4\",\n lg: \"min-h-6\",\n} as const;\n\nexport const zuiSkeletonRounded = {\n none: \"rounded-none\",\n sm: \"rounded-md\",\n md: \"rounded-lg\",\n lg: \"rounded-xl\",\n full: \"rounded-full\",\n} as const;\n\nexport const zuiSkeletonAnimations = {\n none: \"\",\n shimmer: \"\",\n pulse: \"\",\n} as const;\n\nexport const zuiSkeletonShimmerTones = {\n default: \"\",\n subtle: \"\",\n muted: \"\",\n sky: \"\",\n rose: \"\",\n purple: \"\",\n pink: \"\",\n orange: \"\",\n yellow: \"\",\n teal: \"\",\n indigo: \"\",\n emerald: \"\",\n gray: \"\",\n amber: \"\",\n violet: \"\",\n \"gradient-blue\": \"\",\n \"gradient-green\": \"\",\n \"gradient-red\": \"\",\n \"gradient-yellow\": \"\",\n \"gradient-purple\": \"\",\n \"gradient-teal\": \"\",\n \"gradient-indigo\": \"\",\n \"gradient-pink\": \"\",\n \"gradient-orange\": \"\",\n} as const;\n\nexport const zuiSkeletonTextLineBase = \"block w-full\";\n\nexport const zuiSkeletonTextLineSizes = {\n sm: \"h-2.5\",\n md: \"h-3\",\n lg: \"h-4\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiSkeletonAnimations,\n zuiSkeletonAppearances,\n zuiSkeletonBase,\n zuiSkeletonRounded,\n zuiSkeletonShimmerGradientClasses,\n zuiSkeletonShimmerTones,\n zuiSkeletonSizes,\n zuiSkeletonTextLineBase,\n zuiSkeletonTextLineSizes,\n type ZuiSkeletonShimmerTone,\n} from \"../../design-system/skeleton\";\n\nexport const skeletonShimmerGradientClasses = zuiSkeletonShimmerGradientClasses;\nexport type SkeletonShimmerTone = ZuiSkeletonShimmerTone;\n\nexport const skeletonVariants = cva(zuiSkeletonBase, {\n variants: {\n appearance: zuiSkeletonAppearances,\n size: zuiSkeletonSizes,\n rounded: zuiSkeletonRounded,\n animation: zuiSkeletonAnimations,\n shimmerTone: zuiSkeletonShimmerTones,\n },\n compoundVariants: [\n {\n animation: \"shimmer\",\n shimmerTone: \"default\",\n class: skeletonShimmerGradientClasses.default,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"muted\",\n class: skeletonShimmerGradientClasses.subtle,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"subtle\",\n class: skeletonShimmerGradientClasses.subtle,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"sky\",\n class: skeletonShimmerGradientClasses.sky,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"rose\",\n class: skeletonShimmerGradientClasses.rose,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"purple\",\n class: skeletonShimmerGradientClasses.purple,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"pink\",\n class: skeletonShimmerGradientClasses.pink,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"orange\",\n class: skeletonShimmerGradientClasses.orange,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"yellow\",\n class: skeletonShimmerGradientClasses.yellow,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"teal\",\n class: skeletonShimmerGradientClasses.teal,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"indigo\",\n class: skeletonShimmerGradientClasses.indigo,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"emerald\",\n class: skeletonShimmerGradientClasses.emerald,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gray\",\n class: skeletonShimmerGradientClasses.gray,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"amber\",\n class: skeletonShimmerGradientClasses.amber,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"violet\",\n class: skeletonShimmerGradientClasses.violet,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-blue\",\n class: skeletonShimmerGradientClasses[\"gradient-blue\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-green\",\n class: skeletonShimmerGradientClasses[\"gradient-green\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-red\",\n class: skeletonShimmerGradientClasses[\"gradient-red\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-yellow\",\n class: skeletonShimmerGradientClasses[\"gradient-yellow\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-purple\",\n class: skeletonShimmerGradientClasses[\"gradient-purple\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-teal\",\n class: skeletonShimmerGradientClasses[\"gradient-teal\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-indigo\",\n class: skeletonShimmerGradientClasses[\"gradient-indigo\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-pink\",\n class: skeletonShimmerGradientClasses[\"gradient-pink\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-orange\",\n class: skeletonShimmerGradientClasses[\"gradient-orange\"],\n },\n {\n animation: \"pulse\",\n class: \"\",\n },\n ],\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n rounded: \"md\",\n animation: \"shimmer\",\n shimmerTone: \"default\",\n },\n});\n\nexport const skeletonTextLineVariants = cva(zuiSkeletonTextLineBase, {\n variants: {\n size: zuiSkeletonTextLineSizes,\n },\n defaultVariants: { size: \"md\" },\n});\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n SkeletonAnimation,\n SkeletonAvatarProps,\n SkeletonButtonProps,\n SkeletonCardProps,\n SkeletonProps,\n SkeletonTextProps,\n} from \"./types\";\nimport { skeletonTextLineVariants, skeletonVariants } from \"./variants\";\n\nexport const SkeletonAnimationContext = createContext<\n SkeletonAnimation | undefined\n>(undefined);\n\nexport function useSkeletonAnimation(\n fallback: SkeletonAnimation,\n): SkeletonAnimation {\n const value = useContext(SkeletonAnimationContext);\n return value ?? fallback;\n}\n\nfunction skeletonMotionClass(animation: SkeletonAnimation): string {\n if (animation === \"none\") {\n return \"\";\n }\n return \"animate-pulse\";\n}\n\nexport function SkeletonBase(props: SkeletonProps) {\n const {\n className,\n appearance,\n size,\n rounded,\n animation = \"shimmer\",\n shimmerTone,\n busy,\n children,\n ref,\n as: Wrapper = \"div\",\n ...rest\n } = props;\n const ctx = useMemo(() => animation, [animation]);\n\n return (\n <SkeletonAnimationContext.Provider value={ctx}>\n <Wrapper\n ref={ref}\n data-slot=\"skeleton\"\n aria-hidden\n aria-busy={busy ? true : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation,\n shimmerTone,\n }),\n skeletonMotionClass(animation),\n className,\n )}\n {...rest}\n >\n {children}\n </Wrapper>\n </SkeletonAnimationContext.Provider>\n );\n}\n\nSkeletonBase.displayName = \"Skeleton\";\n\nexport function SkeletonTextBase(props: SkeletonTextProps) {\n const {\n lines = 3,\n className,\n appearance,\n size,\n rounded,\n animation = \"shimmer\",\n shimmerTone,\n busy,\n ref,\n as: Wrapper = \"div\",\n } = props;\n const effectiveAnimation = useSkeletonAnimation(animation);\n const motionClass = skeletonMotionClass(effectiveAnimation);\n\n return (\n <div\n data-slot=\"skeleton-text\"\n className={cn(\"flex w-full flex-col gap-2\", className)}\n aria-hidden\n aria-busy={busy ? true : undefined}\n >\n {Array.from({ length: lines }).map((_, index) => (\n <Wrapper\n key={index}\n ref={index === 0 ? ref : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation: effectiveAnimation,\n shimmerTone,\n }),\n skeletonTextLineVariants({ size }),\n index === lines - 1 ? \"w-3/5\" : \"w-full\",\n motionClass,\n )}\n />\n ))}\n </div>\n );\n}\n\nSkeletonTextBase.displayName = \"SkeletonText\";\n\nconst avatarSizeClass: Record<\n NonNullable<SkeletonAvatarProps[\"avatarSize\"]>,\n string\n> = {\n xs: \"size-6\",\n sm: \"size-8\",\n md: \"size-10\",\n lg: \"size-12\",\n xl: \"size-14\",\n \"2xl\": \"size-16\",\n};\n\nexport function SkeletonAvatarBase(props: SkeletonAvatarProps) {\n const {\n avatarSize = \"md\",\n className,\n appearance,\n size,\n rounded = \"full\",\n animation,\n shimmerTone,\n busy,\n ref,\n as: Wrapper = \"div\",\n ...rest\n } = props;\n const effectiveAnimation = useSkeletonAnimation(animation ?? \"shimmer\");\n const motionClass = skeletonMotionClass(effectiveAnimation);\n\n return (\n <Wrapper\n ref={ref}\n data-slot=\"skeleton-avatar\"\n aria-hidden\n aria-busy={busy ? true : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation: effectiveAnimation,\n shimmerTone,\n }),\n avatarSizeClass[avatarSize],\n motionClass,\n className,\n )}\n {...rest}\n />\n );\n}\n\nSkeletonAvatarBase.displayName = \"SkeletonAvatar\";\n\nexport function SkeletonCardBase(props: SkeletonCardProps) {\n const {\n className,\n busy,\n animation = \"shimmer\",\n shimmerTone,\n appearance,\n size,\n rounded,\n ref,\n } = props;\n\n return (\n <div\n ref={ref as never}\n data-slot=\"skeleton-card\"\n className={cn(\"w-full max-w-sm\", className)}\n aria-busy={busy ? true : undefined}\n >\n <SkeletonBase\n rounded=\"lg\"\n animation={animation}\n shimmerTone={shimmerTone}\n appearance={appearance}\n size={size}\n busy={busy}\n className=\"flex flex-col gap-4 p-4\"\n >\n <div className=\"flex items-center gap-3\">\n <SkeletonAvatarBase\n appearance={appearance}\n size={size}\n animation={animation}\n shimmerTone={shimmerTone}\n rounded={rounded}\n />\n <div className=\"flex flex-1 flex-col gap-2\">\n <SkeletonTextBase\n lines={2}\n appearance={appearance}\n size={size}\n animation={animation}\n shimmerTone={shimmerTone}\n />\n </div>\n </div>\n <SkeletonTextBase\n lines={4}\n appearance={appearance}\n size={size}\n animation={animation}\n shimmerTone={shimmerTone}\n />\n </SkeletonBase>\n </div>\n );\n}\n\nSkeletonCardBase.displayName = \"SkeletonCard\";\n\nconst buttonHeight: Record<\n NonNullable<SkeletonButtonProps[\"buttonSize\"]>,\n string\n> = {\n sm: \"h-8 w-24\",\n md: \"h-10 w-32\",\n lg: \"h-12 w-40\",\n};\n\nexport function SkeletonButtonBase(props: SkeletonButtonProps) {\n const {\n buttonSize = \"md\",\n className,\n appearance,\n size,\n rounded = \"md\",\n animation,\n shimmerTone,\n busy,\n ref,\n ...rest\n } = props;\n const effectiveAnimation = useSkeletonAnimation(animation ?? \"shimmer\");\n const motionClass = skeletonMotionClass(effectiveAnimation);\n\n return (\n <div\n ref={ref}\n data-slot=\"skeleton-button\"\n aria-hidden\n aria-busy={busy ? true : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation: effectiveAnimation,\n shimmerTone,\n }),\n buttonHeight[buttonSize],\n motionClass,\n className,\n )}\n {...rest}\n />\n );\n}\n\nSkeletonButtonBase.displayName = \"SkeletonButton\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/design-system/toast.ts","../src/ui/toast/variants.ts","../src/ui/toast/toast-base.tsx"],"names":["cva","createContext","useContext","useState","useRef","useCallback","useMemo","useEffect","createPortal","jsx","cn","jsxs"],"mappings":"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","file":"chunk-4ZKBLVQX.js","sourcesContent":["export const zuiToastViewportBase =\n \"fixed z-[60] flex max-h-screen flex-col gap-2 p-4\";\n\nexport const zuiToastViewportPositions = {\n \"top-left\": \"left-0 top-0 items-start\",\n \"top-center\": \"left-1/2 top-0 -translate-x-1/2 items-center\",\n \"top-right\": \"right-0 top-0 items-end\",\n \"bottom-left\": \"bottom-0 left-0 items-start\",\n \"bottom-center\": \"bottom-0 left-1/2 -translate-x-1/2 items-center\",\n \"bottom-right\": \"bottom-0 right-0 items-end\",\n} as const;\n\nexport const zuiToastRootBase =\n \"pointer-events-auto w-[min(100vw-2rem,380px)] rounded-xl border bg-[var(--zui-toast-root-bg,oklch(98.4%_0.003_247.858))] p-4 text-[color:var(--zui-toast-root-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-toast-root-fg-dark,oklch(98.4%_0.003_247.858))] shadow-[var(--zui-toast-root-shadow,0_8px_24px_rgba(15,23,42,0.12))] dark:shadow-[var(--zui-toast-root-shadow-dark,0_18px_48px_rgba(15,23,42,0.45))]\";\n\nexport const zuiToastRootAppearances = {\n default:\n \"bg-[var(--zui-toast-root-default-bg,oklch(12.9%_0.042_264.695))] text-[color:var(--zui-toast-root-default-fg,oklch(98.4%_0.003_247.858))]\",\n success:\n \"border-[color:var(--zui-toast-root-success-border,oklch(69.6%_0.17_162.48_/_0.4))] bg-[var(--zui-toast-root-success-bg,oklch(26.2%_0.051_172.552))] text-[color:var(--zui-toast-root-success-fg,oklch(97.9%_0.021_166.113))]\",\n warning:\n \"border-[color:var(--zui-toast-root-warning-border,oklch(76.9%_0.188_70.08_/_0.4))] bg-[var(--zui-toast-root-warning-bg,oklch(27.9%_0.077_45.635))] text-[color:var(--zui-toast-root-warning-fg,oklch(98.7%_0.022_95.277))]\",\n error:\n \"border-[color:var(--zui-toast-root-error-border,oklch(64.5%_0.246_16.439_/_0.5))] bg-[var(--zui-toast-root-error-bg,oklch(27.1%_0.105_12.094))] text-[color:var(--zui-toast-root-error-fg,oklch(96.9%_0.015_12.422))]\",\n info: \"border-[color:var(--zui-toast-root-info-border,oklch(68.5%_0.169_237.323_/_0.4))] bg-[var(--zui-toast-root-info-bg,oklch(29.3%_0.066_243.157))] text-[color:var(--zui-toast-root-info-fg,oklch(97.7%_0.013_236.62))]\",\n ghost:\n \"border-[color:var(--zui-toast-root-ghost-border,transparent)] bg-[var(--zui-toast-root-ghost-bg,transparent)] text-[color:var(--zui-toast-root-ghost-fg,oklch(20.8%_0.042_265.755))]\",\n purple:\n \"border-[color:var(--zui-toast-root-purple-border,oklch(43.8%_0.218_303.724))] dark:border-[color:var(--zui-toast-root-purple-border-dark,oklch(55.8%_0.288_302.321))] bg-[var(--zui-toast-root-purple-bg,oklch(29.1%_0.149_302.717))] backdrop-blur-xl text-[color:var(--zui-toast-root-purple-fg,oklch(97.7%_0.014_308.299))]\",\n pink: \"border-[color:var(--zui-toast-root-pink-border,oklch(45.9%_0.187_3.815))] dark:border-[color:var(--zui-toast-root-pink-border-dark,oklch(59.2%_0.249_0.584))] bg-[var(--zui-toast-root-pink-bg,oklch(28.4%_0.109_3.907))] backdrop-blur-xl text-[color:var(--zui-toast-root-pink-fg,oklch(97.1%_0.014_343.198))]\",\n orange:\n \"border-[color:var(--zui-toast-root-orange-border,oklch(47%_0.157_37.304))] dark:border-[color:var(--zui-toast-root-orange-border-dark,oklch(64.6%_0.222_41.116))] bg-[var(--zui-toast-root-orange-bg,oklch(26.6%_0.079_36.259))] backdrop-blur-xl text-[color:var(--zui-toast-root-orange-fg,oklch(98%_0.016_73.684))]\",\n yellow:\n \"border-[color:var(--zui-toast-root-yellow-border,oklch(47.6%_0.114_61.907))] dark:border-[color:var(--zui-toast-root-yellow-border-dark,oklch(68.1%_0.162_75.834))] bg-[var(--zui-toast-root-yellow-bg,oklch(28.6%_0.066_53.813))] backdrop-blur-xl text-[color:var(--zui-toast-root-yellow-fg,oklch(98.7%_0.026_102.212))]\",\n teal: \"border-[color:var(--zui-toast-root-teal-border,oklch(43.7%_0.078_188.216))] dark:border-[color:var(--zui-toast-root-teal-border-dark,oklch(60%_0.118_184.704))] bg-[var(--zui-toast-root-teal-bg,oklch(27.7%_0.046_192.524))] backdrop-blur-xl text-[color:var(--zui-toast-root-teal-fg,oklch(98.4%_0.014_180.72))]\",\n indigo:\n \"border-[color:var(--zui-toast-root-indigo-border,oklch(39.8%_0.195_277.366))] dark:border-[color:var(--zui-toast-root-indigo-border-dark,oklch(51.1%_0.262_276.966))] bg-[var(--zui-toast-root-indigo-bg,oklch(25.7%_0.09_281.288))] backdrop-blur-xl text-[color:var(--zui-toast-root-indigo-fg,oklch(96.2%_0.018_272.314))]\",\n emerald:\n \"border-[color:var(--zui-toast-root-emerald-border,oklch(43.2%_0.095_166.913))] dark:border-[color:var(--zui-toast-root-emerald-border-dark,oklch(59.6%_0.145_163.225))] bg-[var(--zui-toast-root-emerald-bg,oklch(26.2%_0.051_172.552))] backdrop-blur-xl text-[color:var(--zui-toast-root-emerald-fg,oklch(97.9%_0.021_166.113))]\",\n gray: \"border-[color:var(--zui-toast-root-gray-border,oklch(27.8%_0.033_256.848))] dark:border-[color:var(--zui-toast-root-gray-border-dark,oklch(44.6%_0.03_256.802))] bg-[var(--zui-toast-root-gray-bg,oklch(13%_0.028_261.692))] backdrop-blur-xl text-[color:var(--zui-toast-root-gray-fg,oklch(98.5%_0.002_247.839))]\",\n amber:\n \"border-[color:var(--zui-toast-root-amber-border,oklch(47.3%_0.137_46.201))] dark:border-[color:var(--zui-toast-root-amber-border-dark,oklch(66.6%_0.179_58.318))] bg-[var(--zui-toast-root-amber-bg,oklch(27.9%_0.077_45.635))] backdrop-blur-xl text-[color:var(--zui-toast-root-amber-fg,oklch(98.7%_0.022_95.277))]\",\n violet:\n \"border-[color:var(--zui-toast-root-violet-border,oklch(43.2%_0.232_292.759))] dark:border-[color:var(--zui-toast-root-violet-border-dark,oklch(54.1%_0.281_293.009))] bg-[var(--zui-toast-root-violet-bg,oklch(28.3%_0.141_291.089))] backdrop-blur-xl text-[color:var(--zui-toast-root-violet-fg,oklch(96.9%_0.016_293.756))]\",\n \"gradient-blue\":\n \"border-[color:var(--zui-toast-root-gradient-blue-border,oklch(42.4%_0.199_265.638))] dark:border-[color:var(--zui-toast-root-gradient-blue-border-dark,oklch(54.6%_0.245_262.881))] bg-linear-to-r from-[var(--zui-toast-root-gradient-blue-from,oklch(97%_0.014_254.604))] dark:from-[var(--zui-toast-root-gradient-blue-from-dark,oklch(28.2%_0.091_267.935_/_0.7))] to-[var(--zui-toast-root-gradient-blue-to,oklch(97.7%_0.014_308.299))] dark:to-[var(--zui-toast-root-gradient-blue-to-dark,oklch(29.1%_0.149_302.717_/_0.7))] backdrop-blur-xl\",\n \"gradient-green\":\n \"border-[color:var(--zui-toast-root-gradient-green-border,oklch(44.8%_0.119_151.328))] dark:border-[color:var(--zui-toast-root-gradient-green-border-dark,oklch(62.7%_0.194_149.214))] bg-linear-to-r from-[var(--zui-toast-root-gradient-green-from,oklch(98.2%_0.018_155.826))] dark:from-[var(--zui-toast-root-gradient-green-from-dark,oklch(26.6%_0.065_152.934_/_0.7))] to-[var(--zui-toast-root-gradient-green-to,oklch(98.6%_0.031_120.757))] dark:to-[var(--zui-toast-root-gradient-green-to-dark,oklch(27.4%_0.072_132.109_/_0.7))] backdrop-blur-xl\",\n \"gradient-red\":\n \"border-[color:var(--zui-toast-root-gradient-red-border,oklch(44.4%_0.177_26.899))] dark:border-[color:var(--zui-toast-root-gradient-red-border-dark,oklch(57.7%_0.245_27.325))] bg-linear-to-r from-[var(--zui-toast-root-gradient-red-from,oklch(97.1%_0.013_17.38))] dark:from-[var(--zui-toast-root-gradient-red-from-dark,oklch(25.8%_0.092_26.042_/_0.7))] to-[var(--zui-toast-root-gradient-red-to,oklch(97.1%_0.014_343.198))] dark:to-[var(--zui-toast-root-gradient-red-to-dark,oklch(28.4%_0.109_3.907_/_0.7))] backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-[color:var(--zui-toast-root-gradient-yellow-border,oklch(47.6%_0.114_61.907))] dark:border-[color:var(--zui-toast-root-gradient-yellow-border-dark,oklch(68.1%_0.162_75.834))] bg-linear-to-r from-[var(--zui-toast-root-gradient-yellow-from,oklch(98.7%_0.026_102.212))] dark:from-[var(--zui-toast-root-gradient-yellow-from-dark,oklch(28.6%_0.066_53.813_/_0.7))] to-[var(--zui-toast-root-gradient-yellow-to,oklch(98%_0.016_73.684))] dark:to-[var(--zui-toast-root-gradient-yellow-to-dark,oklch(26.6%_0.079_36.259_/_0.7))] backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-[color:var(--zui-toast-root-gradient-purple-border,oklch(43.8%_0.218_303.724))] dark:border-[color:var(--zui-toast-root-gradient-purple-border-dark,oklch(55.8%_0.288_302.321))] bg-linear-to-r from-[var(--zui-toast-root-gradient-purple-from,oklch(97.7%_0.014_308.299))] dark:from-[var(--zui-toast-root-gradient-purple-from-dark,oklch(29.1%_0.149_302.717_/_0.7))] to-[var(--zui-toast-root-gradient-purple-to,oklch(97.1%_0.014_343.198))] dark:to-[var(--zui-toast-root-gradient-purple-to-dark,oklch(28.4%_0.109_3.907_/_0.7))] backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-[color:var(--zui-toast-root-gradient-teal-border,oklch(43.7%_0.078_188.216))] dark:border-[color:var(--zui-toast-root-gradient-teal-border-dark,oklch(60%_0.118_184.704))] bg-linear-to-r from-[var(--zui-toast-root-gradient-teal-from,oklch(98.4%_0.014_180.72))] dark:from-[var(--zui-toast-root-gradient-teal-from-dark,oklch(27.7%_0.046_192.524_/_0.7))] to-[var(--zui-toast-root-gradient-teal-to,oklch(98.4%_0.019_200.873))] dark:to-[var(--zui-toast-root-gradient-teal-to-dark,oklch(30.2%_0.056_229.695_/_0.7))] backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-[color:var(--zui-toast-root-gradient-indigo-border,oklch(39.8%_0.195_277.366))] dark:border-[color:var(--zui-toast-root-gradient-indigo-border-dark,oklch(51.1%_0.262_276.966))] bg-linear-to-r from-[var(--zui-toast-root-gradient-indigo-from,oklch(96.2%_0.018_272.314))] dark:from-[var(--zui-toast-root-gradient-indigo-from-dark,oklch(25.7%_0.09_281.288_/_0.7))] to-[var(--zui-toast-root-gradient-indigo-to,oklch(97.7%_0.014_308.299))] dark:to-[var(--zui-toast-root-gradient-indigo-to-dark,oklch(29.1%_0.149_302.717_/_0.7))] backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-[color:var(--zui-toast-root-gradient-pink-border,oklch(45.9%_0.187_3.815))] dark:border-[color:var(--zui-toast-root-gradient-pink-border-dark,oklch(59.2%_0.249_0.584))] bg-linear-to-r from-[var(--zui-toast-root-gradient-pink-from,oklch(97.1%_0.014_343.198))] dark:from-[var(--zui-toast-root-gradient-pink-from-dark,oklch(28.4%_0.109_3.907_/_0.7))] to-[var(--zui-toast-root-gradient-pink-to,oklch(96.9%_0.015_12.422))] dark:to-[var(--zui-toast-root-gradient-pink-to-dark,oklch(27.1%_0.105_12.094_/_0.7))] backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-[color:var(--zui-toast-root-gradient-orange-border,oklch(47%_0.157_37.304))] dark:border-[color:var(--zui-toast-root-gradient-orange-border-dark,oklch(64.6%_0.222_41.116))] bg-linear-to-r from-[var(--zui-toast-root-gradient-orange-from,oklch(98%_0.016_73.684))] dark:from-[var(--zui-toast-root-gradient-orange-from-dark,oklch(26.6%_0.079_36.259_/_0.7))] to-[var(--zui-toast-root-gradient-orange-to,oklch(97.1%_0.013_17.38))] dark:to-[var(--zui-toast-root-gradient-orange-to-dark,oklch(25.8%_0.092_26.042_/_0.7))] backdrop-blur-xl\",\n} as const;\n\nexport const zuiToastRootSizes = {\n sm: \"p-3 text-xs\",\n md: \"p-4 text-sm\",\n lg: \"p-5 text-base\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiToastRootAppearances,\n zuiToastRootBase,\n zuiToastRootSizes,\n zuiToastViewportBase,\n zuiToastViewportPositions,\n} from \"../../design-system/toast\";\n\nexport const toastViewportVariants = cva(zuiToastViewportBase, {\n variants: {\n position: zuiToastViewportPositions,\n },\n defaultVariants: {\n position: \"bottom-right\",\n },\n});\n\nexport const toastRootVariants = cva(zuiToastRootBase, {\n variants: {\n appearance: zuiToastRootAppearances,\n size: zuiToastRootSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n ToastContextValue,\n ToastStoreContextValue,\n InternalToast,\n ToastInput,\n ToastProps,\n ToastProviderProps,\n ToastSectionProps,\n ToastViewportProps,\n} from \"./types\";\nimport { toastRootVariants, toastViewportVariants } from \"./variants\";\n\nexport const ToastStoreContext = createContext<ToastStoreContextValue | null>(\n null,\n);\n\nlet toastDispatcher: ToastStoreContextValue[\"push\"] | null = null;\n\nexport function toast(input: ToastInput) {\n if (!toastDispatcher) {\n return \"\";\n }\n return toastDispatcher(input);\n}\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"useToast must be used within <ToastProvider>\");\n }\n return { toast: ctx.push, dismiss: ctx.dismiss };\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toasts, setToasts] = useState<InternalToast[]>([]);\n const timers = useRef<Map<string, number>>(new Map());\n\n const dismiss = useCallback((id: string) => {\n const timerId = timers.current.get(id);\n if (timerId) {\n window.clearTimeout(timerId);\n timers.current.delete(id);\n }\n setToasts((prev) => prev.filter((toastItem) => toastItem.id !== id));\n }, []);\n\n const push = useCallback(\n (input: ToastInput) => {\n const id = input.id ?? `toast-${Math.random().toString(16).slice(2)}`;\n const durationMs = input.durationMs ?? 4500;\n const record: InternalToast = {\n ...input,\n id,\n durationMs,\n animation: input.animation ?? \"slide\",\n };\n setToasts((prev) => [...prev, record]);\n const timerId = window.setTimeout(() => dismiss(id), durationMs);\n timers.current.set(id, timerId);\n return id;\n },\n [dismiss],\n );\n\n const ctx = useMemo(\n () => ({\n toasts,\n push,\n dismiss,\n }),\n [dismiss, push, toasts],\n );\n\n useEffect(() => {\n toastDispatcher = push;\n return () => {\n toastDispatcher = null;\n };\n }, [push]);\n\n return (\n <ToastStoreContext.Provider value={ctx}>\n {children}\n </ToastStoreContext.Provider>\n );\n}\n\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport({\n position = \"bottom-right\",\n className,\n}: ToastViewportProps) {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"ToastViewport must be used within <ToastProvider>\");\n }\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <div\n className={cn(toastViewportVariants({ position }), className)}\n data-slot=\"toast-viewport\"\n >\n {ctx.toasts.map((item) => (\n <Toast\n key={item.id}\n toastId={item.id}\n appearance={item.appearance}\n size={item.size}\n animation={item.animation}\n >\n <ToastTitle>{item.title}</ToastTitle>\n {item.description ? (\n <ToastDescription>{item.description}</ToastDescription>\n ) : null}\n <ToastClose onClick={() => ctx.dismiss(item.id)} />\n </Toast>\n ))}\n </div>,\n portalTarget,\n );\n}\n\nToastViewport.displayName = \"ToastViewport\";\n\nexport function Toast({\n toastId: _toastId,\n appearance,\n size,\n animation: _animation = \"slide\",\n className,\n children,\n}: ToastProps) {\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n return (\n <div\n data-slot=\"toast\"\n role={appearance === \"error\" ? \"alert\" : \"status\"}\n aria-live={live}\n aria-atomic=\"true\"\n className={cn(\n \"relative\",\n toastRootVariants({ appearance, size }),\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nToast.displayName = \"Toast\";\n\nexport function ToastTitle({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-title\" className={cn(\"font-semibold\", className)}>\n {children}\n </div>\n );\n}\n\nToastTitle.displayName = \"ToastTitle\";\n\nexport function ToastDescription({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-description\" className={cn(\"text-sm\", className)}>\n {children}\n </div>\n );\n}\n\nToastDescription.displayName = \"ToastDescription\";\n\nexport function ToastAction({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-action\" className={cn(\"mt-3\", className)}>\n {children}\n </div>\n );\n}\n\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose({\n className,\n children,\n onClick,\n ...rest\n}: ToastSectionProps & { onClick?: () => void }) {\n return (\n <button\n type=\"button\"\n data-slot=\"toast-close\"\n aria-label=\"Dismiss notification\"\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-950\",\n className,\n )}\n onClick={onClick}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nToastClose.displayName = \"ToastClose\";\n"]}
@@ -1,107 +0,0 @@
1
- 'use strict';
2
-
3
- var classVarianceAuthority = require('class-variance-authority');
4
- var react = require('react');
5
-
6
- // src/ui/radio-group/variants.ts
7
-
8
- // src/design-system/radio-group.ts
9
- var zuiRadioGroupRootBase = "grid gap-2";
10
- var zuiRadioGroupItemBase = "group inline-flex w-fit items-start gap-2.5 text-sm font-medium text-[color:var(--zui-radio-label-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-radio-label-fg-dark,oklch(98.4%_0.003_247.858))] data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50";
11
- var zuiRadioGroupControlBase = "grid shrink-0 place-items-center rounded-full border-2 border-[color:var(--zui-radio-border,#0000004d)] bg-[var(--zui-radio-bg,transparent)] transition-[background-color,border-color,box-shadow] peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--zui-radio-ring-focus,oklch(44.6%_0.043_257.281_/_0.7))] peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-[var(--zui-radio-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:border-[color:var(--zui-radio-border-dark,#ffffff4d)] dark:peer-focus-visible:ring-[var(--zui-radio-ring-focus-dark,oklch(86.9%_0.022_252.894_/_0.7))] dark:peer-focus-visible:ring-offset-[var(--zui-radio-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))] group-data-[disabled=true]:cursor-not-allowed";
12
- var zuiRadioGroupIndicatorBase = "pointer-events-none block rounded-full opacity-0 transition-opacity duration-150 group-data-[state=checked]:opacity-100";
13
- var zuiRadioGroupSizes = {
14
- sm: {
15
- item: "text-xs",
16
- control: "mt-0.5 size-4",
17
- indicator: "size-1.5"
18
- },
19
- md: {
20
- item: "text-sm",
21
- control: "mt-0.5 size-5",
22
- indicator: "size-2"
23
- },
24
- lg: {
25
- item: "text-base",
26
- control: "mt-0.5 size-6",
27
- indicator: "size-2.5"
28
- }
29
- };
30
- var zuiRadioGroupAppearances = {
31
- default: "group-data-[state=checked]:border-[color:var(--zui-radio-default-border-checked,oklch(44.6%_0.043_257.281))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-default-indicator-bg,oklch(44.6%_0.043_257.281))]",
32
- success: "group-data-[state=checked]:border-[color:var(--zui-radio-success-border-checked,oklch(59.6%_0.145_163.225))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-success-indicator-bg,oklch(59.6%_0.145_163.225))]",
33
- warning: "group-data-[state=checked]:border-[color:var(--zui-radio-warning-border-checked,oklch(68.1%_0.162_75.834))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-warning-indicator-bg,oklch(68.1%_0.162_75.834))]",
34
- error: "group-data-[state=checked]:border-[color:var(--zui-radio-error-border-checked,oklch(58.6%_0.253_17.585))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-error-indicator-bg,oklch(58.6%_0.253_17.585))]",
35
- info: "group-data-[state=checked]:border-[color:var(--zui-radio-info-border-checked,oklch(54.6%_0.245_262.881))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-info-indicator-bg,oklch(54.6%_0.245_262.881))]",
36
- violet: "group-data-[state=checked]:border-[color:var(--zui-radio-violet-border-checked,oklch(54.1%_0.281_293.009))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-violet-indicator-bg,oklch(54.1%_0.281_293.009))]",
37
- amber: "group-data-[state=checked]:border-[color:var(--zui-radio-amber-border-checked,oklch(66.6%_0.179_58.318))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-amber-indicator-bg,oklch(66.6%_0.179_58.318))]",
38
- pink: "group-data-[state=checked]:border-[color:var(--zui-radio-pink-border-checked,oklch(59.2%_0.249_0.584))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-pink-indicator-bg,oklch(59.2%_0.249_0.584))]",
39
- indigo: "group-data-[state=checked]:border-[color:var(--zui-radio-indigo-border-checked,oklch(51.1%_0.262_276.966))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-indigo-indicator-bg,oklch(51.1%_0.262_276.966))]"
40
- };
41
- var zuiRadioGroupOrientations = {
42
- vertical: "grid gap-2",
43
- horizontal: "flex flex-wrap gap-x-5 gap-y-2"
44
- };
45
-
46
- // src/ui/radio-group/variants.ts
47
- var radioGroupRootVariants = classVarianceAuthority.cva(zuiRadioGroupRootBase, {
48
- variants: {
49
- orientation: zuiRadioGroupOrientations
50
- },
51
- defaultVariants: {
52
- orientation: "vertical"
53
- }
54
- });
55
- var radioGroupItemVariants = classVarianceAuthority.cva(zuiRadioGroupItemBase, {
56
- variants: {
57
- size: {
58
- sm: zuiRadioGroupSizes.sm.item,
59
- md: zuiRadioGroupSizes.md.item,
60
- lg: zuiRadioGroupSizes.lg.item
61
- }
62
- },
63
- defaultVariants: {
64
- size: "md"
65
- }
66
- });
67
- var radioGroupControlVariants = classVarianceAuthority.cva(zuiRadioGroupControlBase, {
68
- variants: {
69
- appearance: zuiRadioGroupAppearances,
70
- size: {
71
- sm: zuiRadioGroupSizes.sm.control,
72
- md: zuiRadioGroupSizes.md.control,
73
- lg: zuiRadioGroupSizes.lg.control
74
- }
75
- },
76
- defaultVariants: {
77
- appearance: "default",
78
- size: "md"
79
- }
80
- });
81
- var radioGroupIndicatorVariants = classVarianceAuthority.cva(zuiRadioGroupIndicatorBase, {
82
- variants: {
83
- size: {
84
- sm: zuiRadioGroupSizes.sm.indicator,
85
- md: zuiRadioGroupSizes.md.indicator,
86
- lg: zuiRadioGroupSizes.lg.indicator
87
- }
88
- },
89
- defaultVariants: {
90
- size: "md"
91
- }
92
- });
93
- var RadioGroupContext = react.createContext(
94
- null
95
- );
96
- function useRadioGroupContext() {
97
- return react.useContext(RadioGroupContext);
98
- }
99
-
100
- exports.RadioGroupContext = RadioGroupContext;
101
- exports.radioGroupControlVariants = radioGroupControlVariants;
102
- exports.radioGroupIndicatorVariants = radioGroupIndicatorVariants;
103
- exports.radioGroupItemVariants = radioGroupItemVariants;
104
- exports.radioGroupRootVariants = radioGroupRootVariants;
105
- exports.useRadioGroupContext = useRadioGroupContext;
106
- //# sourceMappingURL=chunk-6QQUQLPB.js.map
107
- //# sourceMappingURL=chunk-6QQUQLPB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/design-system/radio-group.ts","../src/ui/radio-group/variants.ts","../src/ui/radio-group/radio-group-context.ts"],"names":["cva","createContext","useContext"],"mappings":";;;;;;;;AAAO,IAAM,qBAAA,GAAwB,YAAA;AAE9B,IAAM,qBAAA,GACX,uRAAA;AAEK,IAAM,wBAAA,GACX,wwBAAA;AAEK,IAAM,0BAAA,GACX,yHAAA;AAEK,IAAM,kBAAA,GAAqB;AAAA,EAChC,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,SAAA;AAAA,IACN,OAAA,EAAS,eAAA;AAAA,IACT,SAAA,EAAW;AAAA,GACb;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,SAAA;AAAA,IACN,OAAA,EAAS,eAAA;AAAA,IACT,SAAA,EAAW;AAAA,GACb;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,WAAA;AAAA,IACN,OAAA,EAAS,eAAA;AAAA,IACT,SAAA,EAAW;AAAA;AAEf,CAAA;AAEO,IAAM,wBAAA,GAA2B;AAAA,EACtC,OAAA,EACE,0NAAA;AAAA,EACF,OAAA,EACE,0NAAA;AAAA,EACF,OAAA,EACE,wNAAA;AAAA,EACF,KAAA,EACE,oNAAA;AAAA,EACF,IAAA,EACE,oNAAA;AAAA,EACF,MAAA,EACE,wNAAA;AAAA,EACF,KAAA,EACE,oNAAA;AAAA,EACF,IAAA,EACE,gNAAA;AAAA,EACF,MAAA,EACE;AACJ,CAAA;AAEO,IAAM,yBAAA,GAA4B;AAAA,EACvC,QAAA,EAAU,YAAA;AAAA,EACV,UAAA,EAAY;AACd,CAAA;;;ACzCO,IAAM,sBAAA,GAAyBA,2BAAI,qBAAA,EAAuB;AAAA,EAC/D,QAAA,EAAU;AAAA,IACR,WAAA,EAAa;AAAA,GACf;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,WAAA,EAAa;AAAA;AAEjB,CAAC;AAEM,IAAM,sBAAA,GAAyBA,2BAAI,qBAAA,EAAuB;AAAA,EAC/D,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,mBAAmB,EAAA,CAAG,IAAA;AAAA,MAC1B,EAAA,EAAI,mBAAmB,EAAA,CAAG,IAAA;AAAA,MAC1B,EAAA,EAAI,mBAAmB,EAAA,CAAG;AAAA;AAC5B,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AAEM,IAAM,yBAAA,GAA4BA,2BAAI,wBAAA,EAA0B;AAAA,EACrE,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,wBAAA;AAAA,IACZ,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,mBAAmB,EAAA,CAAG,OAAA;AAAA,MAC1B,EAAA,EAAI,mBAAmB,EAAA,CAAG,OAAA;AAAA,MAC1B,EAAA,EAAI,mBAAmB,EAAA,CAAG;AAAA;AAC5B,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,IAAA,EAAM;AAAA;AAEV,CAAC;AAEM,IAAM,2BAAA,GAA8BA,2BAAI,0BAAA,EAA4B;AAAA,EACzE,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,mBAAmB,EAAA,CAAG,SAAA;AAAA,MAC1B,EAAA,EAAI,mBAAmB,EAAA,CAAG,SAAA;AAAA,MAC1B,EAAA,EAAI,mBAAmB,EAAA,CAAG;AAAA;AAC5B,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AC5CM,IAAM,iBAAA,GAAoBC,mBAAA;AAAA,EAC/B;AACF;AAEO,SAAS,oBAAA,GAAuB;AACrC,EAAA,OAAOC,iBAAW,iBAAiB,CAAA;AACrC","file":"chunk-6QQUQLPB.js","sourcesContent":["export const zuiRadioGroupRootBase = \"grid gap-2\";\n\nexport const zuiRadioGroupItemBase =\n \"group inline-flex w-fit items-start gap-2.5 text-sm font-medium text-[color:var(--zui-radio-label-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-radio-label-fg-dark,oklch(98.4%_0.003_247.858))] data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50\";\n\nexport const zuiRadioGroupControlBase =\n \"grid shrink-0 place-items-center rounded-full border-2 border-[color:var(--zui-radio-border,#0000004d)] bg-[var(--zui-radio-bg,transparent)] transition-[background-color,border-color,box-shadow] peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--zui-radio-ring-focus,oklch(44.6%_0.043_257.281_/_0.7))] peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-[var(--zui-radio-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:border-[color:var(--zui-radio-border-dark,#ffffff4d)] dark:peer-focus-visible:ring-[var(--zui-radio-ring-focus-dark,oklch(86.9%_0.022_252.894_/_0.7))] dark:peer-focus-visible:ring-offset-[var(--zui-radio-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))] group-data-[disabled=true]:cursor-not-allowed\";\n\nexport const zuiRadioGroupIndicatorBase =\n \"pointer-events-none block rounded-full opacity-0 transition-opacity duration-150 group-data-[state=checked]:opacity-100\";\n\nexport const zuiRadioGroupSizes = {\n sm: {\n item: \"text-xs\",\n control: \"mt-0.5 size-4\",\n indicator: \"size-1.5\",\n },\n md: {\n item: \"text-sm\",\n control: \"mt-0.5 size-5\",\n indicator: \"size-2\",\n },\n lg: {\n item: \"text-base\",\n control: \"mt-0.5 size-6\",\n indicator: \"size-2.5\",\n },\n} as const;\n\nexport const zuiRadioGroupAppearances = {\n default:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-default-border-checked,oklch(44.6%_0.043_257.281))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-default-indicator-bg,oklch(44.6%_0.043_257.281))]\",\n success:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-success-border-checked,oklch(59.6%_0.145_163.225))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-success-indicator-bg,oklch(59.6%_0.145_163.225))]\",\n warning:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-warning-border-checked,oklch(68.1%_0.162_75.834))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-warning-indicator-bg,oklch(68.1%_0.162_75.834))]\",\n error:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-error-border-checked,oklch(58.6%_0.253_17.585))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-error-indicator-bg,oklch(58.6%_0.253_17.585))]\",\n info:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-info-border-checked,oklch(54.6%_0.245_262.881))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-info-indicator-bg,oklch(54.6%_0.245_262.881))]\",\n violet:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-violet-border-checked,oklch(54.1%_0.281_293.009))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-violet-indicator-bg,oklch(54.1%_0.281_293.009))]\",\n amber:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-amber-border-checked,oklch(66.6%_0.179_58.318))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-amber-indicator-bg,oklch(66.6%_0.179_58.318))]\",\n pink:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-pink-border-checked,oklch(59.2%_0.249_0.584))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-pink-indicator-bg,oklch(59.2%_0.249_0.584))]\",\n indigo:\n \"group-data-[state=checked]:border-[color:var(--zui-radio-indigo-border-checked,oklch(51.1%_0.262_276.966))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-indigo-indicator-bg,oklch(51.1%_0.262_276.966))]\",\n} as const;\n\nexport const zuiRadioGroupOrientations = {\n vertical: \"grid gap-2\",\n horizontal: \"flex flex-wrap gap-x-5 gap-y-2\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiRadioGroupAppearances,\n zuiRadioGroupControlBase,\n zuiRadioGroupIndicatorBase,\n zuiRadioGroupItemBase,\n zuiRadioGroupOrientations,\n zuiRadioGroupRootBase,\n zuiRadioGroupSizes,\n} from \"../../design-system/radio-group\";\n\nexport const radioGroupRootVariants = cva(zuiRadioGroupRootBase, {\n variants: {\n orientation: zuiRadioGroupOrientations,\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n});\n\nexport const radioGroupItemVariants = cva(zuiRadioGroupItemBase, {\n variants: {\n size: {\n sm: zuiRadioGroupSizes.sm.item,\n md: zuiRadioGroupSizes.md.item,\n lg: zuiRadioGroupSizes.lg.item,\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const radioGroupControlVariants = cva(zuiRadioGroupControlBase, {\n variants: {\n appearance: zuiRadioGroupAppearances,\n size: {\n sm: zuiRadioGroupSizes.sm.control,\n md: zuiRadioGroupSizes.md.control,\n lg: zuiRadioGroupSizes.lg.control,\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n\nexport const radioGroupIndicatorVariants = cva(zuiRadioGroupIndicatorBase, {\n variants: {\n size: {\n sm: zuiRadioGroupSizes.sm.indicator,\n md: zuiRadioGroupSizes.md.indicator,\n lg: zuiRadioGroupSizes.lg.indicator,\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n","\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nimport type { RadioGroupAppearance, RadioGroupSize } from \"./types\";\n\nexport type RadioGroupContextValue = {\n value: string | undefined;\n name: string;\n disabled?: boolean;\n required?: boolean;\n appearance?: RadioGroupAppearance;\n size?: RadioGroupSize;\n onValueChange: (value: string) => void;\n};\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(\n null,\n);\n\nexport function useRadioGroupContext() {\n return useContext(RadioGroupContext);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/design-system/card.ts","../src/ui/card/variants.ts","../src/ui/card/card-base.tsx"],"names":[],"mappings":"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","file":"chunk-ACGVDY5J.mjs","sourcesContent":["export const zuiCardBase = [\n \"relative flex w-full flex-col overflow-hidden text-[color:var(--zui-card-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-card-fg-dark,oklch(98.4%_0.003_247.858))]\",\n \"ring-offset-[var(--zui-card-ring-offset,oklch(98.4%_0.003_247.858))] dark:ring-offset-[var(--zui-card-ring-offset-dark,oklch(12.9%_0.042_264.695))] transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-card-ring-focus,oklch(44.6%_0.043_257.281))] dark:focus-visible:ring-[var(--zui-card-ring-focus-dark,oklch(86.9%_0.022_252.894))] focus-visible:ring-offset-2\",\n] as const;\n\nexport const zuiCardAppearances = {\n default:\n \"border border-[color:var(--zui-card-default-border,#0000001a)] dark:border-[color:var(--zui-card-default-border-dark,#ffffff1a)] bg-[var(--zui-card-default-bg,#0000000d)] dark:bg-[var(--zui-card-default-bg-dark,#ffffff0d)] shadow-[var(--zui-card-default-shadow,0_1px_2px_rgba(15,23,42,0.08))] dark:shadow-[var(--zui-card-default-shadow-dark,0_1px_2px_rgba(15,23,42,0.12))]\",\n glass:\n \"border border-[color:var(--zui-card-glass-border,#00000026)] dark:border-[color:var(--zui-card-glass-border-dark,#ffffff26)] bg-[var(--zui-card-glass-bg,#0000001a)] dark:bg-[var(--zui-card-glass-bg-dark,#ffffff1a)] backdrop-blur-md shadow-[var(--zui-card-glass-shadow,0_8px_24px_rgba(15,23,42,0.12))] dark:shadow-[var(--zui-card-glass-shadow-dark,0_18px_48px_rgba(15,23,42,0.35))]\",\n outline:\n \"border border-[color:var(--zui-card-outline-border,#00000026)] dark:border-[color:var(--zui-card-outline-border-dark,#ffffff26)] bg-[var(--zui-card-outline-bg,transparent)]\",\n ghost:\n \"border border-[color:var(--zui-card-ghost-border,transparent)] bg-[var(--zui-card-ghost-bg,transparent)]\",\n elevated:\n \"border border-[color:var(--zui-card-elevated-border,#0000001a)] dark:border-[color:var(--zui-card-elevated-border-dark,#ffffff1a)] bg-[var(--zui-card-elevated-bg,oklch(96.8%_0.007_247.896_/_0.8))] dark:bg-[var(--zui-card-elevated-bg-dark,oklch(20.8%_0.042_265.755_/_0.8))] shadow-[var(--zui-card-elevated-shadow,0_12px_32px_rgba(15,23,42,0.12))] dark:shadow-[var(--zui-card-elevated-shadow-dark,0_24px_64px_rgba(15,23,42,0.45))]\",\n sky: \"border border-[color:var(--zui-card-sky-border,oklch(44.3%_0.11_240.79))] dark:border-[color:var(--zui-card-sky-border-dark,oklch(58.8%_0.158_241.966))] bg-[var(--zui-card-sky-bg,oklch(97.7%_0.013_236.62))] dark:bg-[var(--zui-card-sky-bg-dark,oklch(29.3%_0.066_243.157_/_0.7))] backdrop-blur-xl\",\n rose: \"border border-[color:var(--zui-card-rose-border,oklch(45.5%_0.188_13.697))] dark:border-[color:var(--zui-card-rose-border-dark,oklch(58.6%_0.253_17.585))] bg-[var(--zui-card-rose-bg,oklch(96.9%_0.015_12.422))] dark:bg-[var(--zui-card-rose-bg-dark,oklch(27.1%_0.105_12.094_/_0.7))] backdrop-blur-xl\",\n purple:\n \"border border-[color:var(--zui-card-purple-border,oklch(43.8%_0.218_303.724))] dark:border-[color:var(--zui-card-purple-border-dark,oklch(55.8%_0.288_302.321))] bg-[var(--zui-card-purple-bg,oklch(97.7%_0.014_308.299))] dark:bg-[var(--zui-card-purple-bg-dark,oklch(29.1%_0.149_302.717_/_0.7))] backdrop-blur-xl\",\n pink: \"border border-[color:var(--zui-card-pink-border,oklch(45.9%_0.187_3.815))] dark:border-[color:var(--zui-card-pink-border-dark,oklch(59.2%_0.249_0.584))] bg-[var(--zui-card-pink-bg,oklch(97.1%_0.014_343.198))] dark:bg-[var(--zui-card-pink-bg-dark,oklch(28.4%_0.109_3.907_/_0.7))] backdrop-blur-xl\",\n orange:\n \"border border-[color:var(--zui-card-orange-border,oklch(47%_0.157_37.304))] dark:border-[color:var(--zui-card-orange-border-dark,oklch(64.6%_0.222_41.116))] bg-[var(--zui-card-orange-bg,oklch(98%_0.016_73.684))] dark:bg-[var(--zui-card-orange-bg-dark,oklch(26.6%_0.079_36.259_/_0.7))] backdrop-blur-xl\",\n yellow:\n \"border border-[color:var(--zui-card-yellow-border,oklch(47.6%_0.114_61.907))] dark:border-[color:var(--zui-card-yellow-border-dark,oklch(68.1%_0.162_75.834))] bg-[var(--zui-card-yellow-bg,oklch(98.7%_0.026_102.212))] dark:bg-[var(--zui-card-yellow-bg-dark,oklch(28.6%_0.066_53.813_/_0.7))] backdrop-blur-xl\",\n teal: \"border border-[color:var(--zui-card-teal-border,oklch(43.7%_0.078_188.216))] dark:border-[color:var(--zui-card-teal-border-dark,oklch(60%_0.118_184.704))] bg-[var(--zui-card-teal-bg,oklch(98.4%_0.014_180.72))] dark:bg-[var(--zui-card-teal-bg-dark,oklch(27.7%_0.046_192.524_/_0.7))] backdrop-blur-xl\",\n indigo:\n \"border border-[color:var(--zui-card-indigo-border,oklch(39.8%_0.195_277.366))] dark:border-[color:var(--zui-card-indigo-border-dark,oklch(51.1%_0.262_276.966))] bg-[var(--zui-card-indigo-bg,oklch(96.2%_0.018_272.314))] dark:bg-[var(--zui-card-indigo-bg-dark,oklch(25.7%_0.09_281.288_/_0.7))] backdrop-blur-xl\",\n emerald:\n \"border border-[color:var(--zui-card-emerald-border,oklch(43.2%_0.095_166.913))] dark:border-[color:var(--zui-card-emerald-border-dark,oklch(59.6%_0.145_163.225))] bg-[var(--zui-card-emerald-bg,oklch(97.9%_0.021_166.113))] dark:bg-[var(--zui-card-emerald-bg-dark,oklch(26.2%_0.051_172.552_/_0.7))] backdrop-blur-xl\",\n gray: \"border border-[color:var(--zui-card-gray-border,oklch(27.8%_0.033_256.848))] dark:border-[color:var(--zui-card-gray-border-dark,oklch(44.6%_0.03_256.802))] bg-[var(--zui-card-gray-bg,oklch(98.5%_0.002_247.839))] dark:bg-[var(--zui-card-gray-bg-dark,oklch(13%_0.028_261.692_/_0.7))] backdrop-blur-xl\",\n amber:\n \"border border-[color:var(--zui-card-amber-border,oklch(47.3%_0.137_46.201))] dark:border-[color:var(--zui-card-amber-border-dark,oklch(66.6%_0.179_58.318))] bg-[var(--zui-card-amber-bg,oklch(98.7%_0.022_95.277))] dark:bg-[var(--zui-card-amber-bg-dark,oklch(27.9%_0.077_45.635_/_0.7))] backdrop-blur-xl\",\n violet:\n \"border border-[color:var(--zui-card-violet-border,oklch(43.2%_0.232_292.759))] dark:border-[color:var(--zui-card-violet-border-dark,oklch(54.1%_0.281_293.009))] bg-[var(--zui-card-violet-bg,oklch(96.9%_0.016_293.756))] dark:bg-[var(--zui-card-violet-bg-dark,oklch(28.3%_0.141_291.089_/_0.7))] backdrop-blur-xl\",\n \"gradient-blue\":\n \"border border-[color:var(--zui-card-gradient-blue-border,oklch(42.4%_0.199_265.638))] dark:border-[color:var(--zui-card-gradient-blue-border-dark,oklch(54.6%_0.245_262.881))] bg-linear-to-r from-[var(--zui-card-gradient-blue-from,oklch(97%_0.014_254.604))] dark:from-[var(--zui-card-gradient-blue-from-dark,oklch(28.2%_0.091_267.935_/_0.7))] to-[var(--zui-card-gradient-blue-to,oklch(97.7%_0.014_308.299))] dark:to-[var(--zui-card-gradient-blue-to-dark,oklch(29.1%_0.149_302.717_/_0.7))] backdrop-blur-xl\",\n \"gradient-green\":\n \"border border-[color:var(--zui-card-gradient-green-border,oklch(44.8%_0.119_151.328))] dark:border-[color:var(--zui-card-gradient-green-border-dark,oklch(62.7%_0.194_149.214))] bg-linear-to-r from-[var(--zui-card-gradient-green-from,oklch(98.2%_0.018_155.826))] dark:from-[var(--zui-card-gradient-green-from-dark,oklch(26.6%_0.065_152.934_/_0.7))] to-[var(--zui-card-gradient-green-to,oklch(98.6%_0.031_120.757))] dark:to-[var(--zui-card-gradient-green-to-dark,oklch(27.4%_0.072_132.109_/_0.7))] backdrop-blur-xl\",\n \"gradient-red\":\n \"border border-[color:var(--zui-card-gradient-red-border,oklch(44.4%_0.177_26.899))] dark:border-[color:var(--zui-card-gradient-red-border-dark,oklch(57.7%_0.245_27.325))] bg-linear-to-r from-[var(--zui-card-gradient-red-from,oklch(97.1%_0.013_17.38))] dark:from-[var(--zui-card-gradient-red-from-dark,oklch(25.8%_0.092_26.042_/_0.7))] to-[var(--zui-card-gradient-red-to,oklch(97.1%_0.014_343.198))] dark:to-[var(--zui-card-gradient-red-to-dark,oklch(28.4%_0.109_3.907_/_0.7))] backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border border-[color:var(--zui-card-gradient-yellow-border,oklch(47.6%_0.114_61.907))] dark:border-[color:var(--zui-card-gradient-yellow-border-dark,oklch(68.1%_0.162_75.834))] bg-linear-to-r from-[var(--zui-card-gradient-yellow-from,oklch(98.7%_0.026_102.212))] dark:from-[var(--zui-card-gradient-yellow-from-dark,oklch(28.6%_0.066_53.813_/_0.7))] to-[var(--zui-card-gradient-yellow-to,oklch(98%_0.016_73.684))] dark:to-[var(--zui-card-gradient-yellow-to-dark,oklch(26.6%_0.079_36.259_/_0.7))] backdrop-blur-xl\",\n \"gradient-purple\":\n \"border border-[color:var(--zui-card-gradient-purple-border,oklch(43.8%_0.218_303.724))] dark:border-[color:var(--zui-card-gradient-purple-border-dark,oklch(55.8%_0.288_302.321))] bg-linear-to-r from-[var(--zui-card-gradient-purple-from,oklch(97.7%_0.014_308.299))] dark:from-[var(--zui-card-gradient-purple-from-dark,oklch(29.1%_0.149_302.717_/_0.7))] to-[var(--zui-card-gradient-purple-to,oklch(97.1%_0.014_343.198))] dark:to-[var(--zui-card-gradient-purple-to-dark,oklch(28.4%_0.109_3.907_/_0.7))] backdrop-blur-xl\",\n \"gradient-teal\":\n \"border border-[color:var(--zui-card-gradient-teal-border,oklch(43.7%_0.078_188.216))] dark:border-[color:var(--zui-card-gradient-teal-border-dark,oklch(60%_0.118_184.704))] bg-linear-to-r from-[var(--zui-card-gradient-teal-from,oklch(98.4%_0.014_180.72))] dark:from-[var(--zui-card-gradient-teal-from-dark,oklch(27.7%_0.046_192.524_/_0.7))] to-[var(--zui-card-gradient-teal-to,oklch(98.4%_0.019_200.873))] dark:to-[var(--zui-card-gradient-teal-to-dark,oklch(30.2%_0.056_229.695_/_0.7))] backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border border-[color:var(--zui-card-gradient-indigo-border,oklch(39.8%_0.195_277.366))] dark:border-[color:var(--zui-card-gradient-indigo-border-dark,oklch(51.1%_0.262_276.966))] bg-linear-to-r from-[var(--zui-card-gradient-indigo-from,oklch(96.2%_0.018_272.314))] dark:from-[var(--zui-card-gradient-indigo-from-dark,oklch(25.7%_0.09_281.288_/_0.7))] to-[var(--zui-card-gradient-indigo-to,oklch(97.7%_0.014_308.299))] dark:to-[var(--zui-card-gradient-indigo-to-dark,oklch(29.1%_0.149_302.717_/_0.7))] backdrop-blur-xl\",\n \"gradient-pink\":\n \"border border-[color:var(--zui-card-gradient-pink-border,oklch(45.9%_0.187_3.815))] dark:border-[color:var(--zui-card-gradient-pink-border-dark,oklch(59.2%_0.249_0.584))] bg-linear-to-r from-[var(--zui-card-gradient-pink-from,oklch(97.1%_0.014_343.198))] dark:from-[var(--zui-card-gradient-pink-from-dark,oklch(28.4%_0.109_3.907_/_0.7))] to-[var(--zui-card-gradient-pink-to,oklch(96.9%_0.015_12.422))] dark:to-[var(--zui-card-gradient-pink-to-dark,oklch(27.1%_0.105_12.094_/_0.7))] backdrop-blur-xl\",\n \"gradient-orange\":\n \"border border-[color:var(--zui-card-gradient-orange-border,oklch(47%_0.157_37.304))] dark:border-[color:var(--zui-card-gradient-orange-border-dark,oklch(64.6%_0.222_41.116))] bg-linear-to-r from-[var(--zui-card-gradient-orange-from,oklch(98%_0.016_73.684))] dark:from-[var(--zui-card-gradient-orange-from-dark,oklch(26.6%_0.079_36.259_/_0.7))] to-[var(--zui-card-gradient-orange-to,oklch(97.1%_0.013_17.38))] dark:to-[var(--zui-card-gradient-orange-to-dark,oklch(25.8%_0.092_26.042_/_0.7))] backdrop-blur-xl\",\n} as const;\n\nexport const zuiCardSizes = {\n sm: \"gap-2 p-3 text-sm\",\n md: \"gap-3 p-4 text-sm\",\n lg: \"gap-4 p-6 text-base\",\n} as const;\n\nexport const zuiCardRounded = {\n sm: \"rounded-lg\",\n md: \"rounded-xl\",\n lg: \"rounded-2xl\",\n full: \"rounded-3xl\",\n} as const;\n\nexport const zuiCardHeaderBase =\n \"flex flex-col gap-1 border-b border-[color:var(--zui-card-header-border,#0000001a)] dark:border-[color:var(--zui-card-header-border-dark,#ffffff1a)] pb-3\";\n\nexport const zuiCardHeaderSizes = {\n sm: \"pb-2\",\n md: \"pb-3\",\n lg: \"pb-4\",\n} as const;\n\nexport const zuiCardFooterBase =\n \"flex flex-col gap-2 border-t border-[color:var(--zui-card-footer-border,#0000001a)] dark:border-[color:var(--zui-card-footer-border-dark,#ffffff1a)] pt-3\";\n\nexport const zuiCardFooterSizes = {\n sm: \"pt-2\",\n md: \"pt-3\",\n lg: \"pt-4\",\n} as const;\n\nexport const zuiCardTitleBase =\n \"font-semibold tracking-tight text-[color:var(--zui-card-title-fg,oklch(12.9%_0.042_264.695))] dark:text-[color:var(--zui-card-title-fg-dark,#ffffff)]\";\n\nexport const zuiCardTitleSizes = {\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n} as const;\n\nexport const zuiCardDescriptionBase =\n \"text-[color:var(--zui-card-description-fg,oklch(55.4%_0.046_257.417))] dark:text-[color:var(--zui-card-description-fg-dark,oklch(98.4%_0.003_247.858))]\";\n\nexport const zuiCardDescriptionSizes = {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiCardAppearances,\n zuiCardBase,\n zuiCardDescriptionBase,\n zuiCardDescriptionSizes,\n zuiCardFooterBase,\n zuiCardFooterSizes,\n zuiCardHeaderBase,\n zuiCardHeaderSizes,\n zuiCardRounded,\n zuiCardSizes,\n zuiCardTitleBase,\n zuiCardTitleSizes,\n} from \"../../design-system/card\";\n\nexport const cardVariants = cva(zuiCardBase, {\n variants: {\n appearance: zuiCardAppearances,\n size: zuiCardSizes,\n rounded: zuiCardRounded,\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n rounded: \"md\",\n },\n});\n\nexport const cardHeaderVariants = cva(zuiCardHeaderBase, {\n variants: {\n size: zuiCardHeaderSizes,\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const cardFooterVariants = cva(zuiCardFooterBase, {\n variants: {\n size: zuiCardFooterSizes,\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const cardTitleVariants = cva(zuiCardTitleBase, {\n variants: {\n size: zuiCardTitleSizes,\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const cardDescriptionVariants = cva(zuiCardDescriptionBase, {\n variants: {\n size: zuiCardDescriptionSizes,\n },\n defaultVariants: { size: \"md\" },\n});\n","\"use client\";\n\nimport { createContext, useContext, useMemo, type ElementType } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n CardBaseProps,\n CardDescriptionProps,\n CardSectionProps,\n CardSize,\n CardTitleProps,\n} from \"./types\";\nimport {\n cardDescriptionVariants,\n cardFooterVariants,\n cardHeaderVariants,\n cardTitleVariants,\n cardVariants,\n} from \"./variants\";\n\nconst CardSizeContext = createContext<CardSize>(\"md\");\n\nfunction useCardSize(): CardSize {\n return useContext(CardSizeContext);\n}\n\nexport function CardBase({\n className,\n appearance,\n size = \"md\",\n rounded,\n children,\n ref,\n as: Wrapper = \"article\",\n ...rest\n}: CardBaseProps) {\n const ctx = useMemo(() => size ?? \"md\", [size]);\n\n return (\n <CardSizeContext.Provider value={ctx}>\n <Wrapper\n ref={ref}\n data-slot=\"card\"\n className={cn(cardVariants({ appearance, size, rounded }), className)}\n {...rest}\n >\n {children}\n </Wrapper>\n </CardSizeContext.Provider>\n );\n}\n\nCardBase.displayName = \"Card\";\n\nexport function CardHeader({ className, children }: CardSectionProps) {\n const size = useCardSize();\n return (\n <header\n data-slot=\"card-header\"\n className={cn(cardHeaderVariants({ size }), className)}\n >\n {children}\n </header>\n );\n}\n\nCardHeader.displayName = \"CardHeader\";\n\nexport function CardBody({ className, children }: CardSectionProps) {\n return (\n <div\n data-slot=\"card-body\"\n className={cn(\"flex flex-1 flex-col gap-2\", className)}\n >\n {children}\n </div>\n );\n}\n\nCardBody.displayName = \"CardBody\";\n\nexport function CardFooter({ className, children }: CardSectionProps) {\n const size = useCardSize();\n return (\n <footer\n data-slot=\"card-footer\"\n className={cn(cardFooterVariants({ size }), className)}\n >\n {children}\n </footer>\n );\n}\n\nCardFooter.displayName = \"CardFooter\";\n\nexport function CardTitle({\n className,\n children,\n as = \"h3\",\n ref,\n ...rest\n}: CardTitleProps) {\n const size = useCardSize();\n const Tag = as as ElementType;\n return (\n <Tag\n ref={ref as never}\n data-slot=\"card-title\"\n className={cn(cardTitleVariants({ size }), className)}\n {...rest}\n >\n {children}\n </Tag>\n );\n}\n\nCardTitle.displayName = \"CardTitle\";\n\nexport function CardDescription({\n className,\n children,\n as = \"p\",\n ref,\n ...rest\n}: CardDescriptionProps) {\n const size = useCardSize();\n const Tag = as as ElementType;\n return (\n <Tag\n ref={ref as never}\n data-slot=\"card-description\"\n className={cn(cardDescriptionVariants({ size }), className)}\n {...rest}\n >\n {children}\n </Tag>\n );\n}\n\nCardDescription.displayName = \"CardDescription\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/design-system/popover.ts","../src/ui/popover/variants.ts","../src/ui/popover/popover-base.tsx"],"names":[],"mappings":"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","file":"chunk-BC6M42HQ.mjs","sourcesContent":["export const zuiPopoverContentBase =\n \"absolute z-50 rounded-lg border shadow-lg transition-all duration-200 outline-none\";\n\nexport const zuiPopoverContentVariants = {\n default:\n \"border-[color:var(--zui-popover-default-border,oklch(20.8%_0.042_265.755_/_0.1))] dark:border-[color:var(--zui-popover-default-border-dark,#ffffff1a)] bg-[var(--zui-popover-default-bg,#ffffff)] dark:bg-[var(--zui-popover-default-bg-dark,oklch(20.8%_0.042_265.755))] text-[color:var(--zui-popover-default-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-popover-default-fg-dark,oklch(96.8%_0.007_247.896))]\",\n outline:\n \"border-[color:var(--zui-popover-outline-border,oklch(37.3%_0.034_259.733))] dark:border-[color:var(--zui-popover-outline-border-dark,oklch(87.2%_0.01_258.338))] bg-[var(--zui-popover-outline-bg,#ffffff)] dark:bg-[var(--zui-popover-outline-bg-dark,#000000)] text-[color:var(--zui-popover-outline-fg,oklch(21%_0.034_264.665))] dark:text-[color:var(--zui-popover-outline-fg-dark,#ffffff)]\",\n ghost:\n \"border-transparent bg-[var(--zui-popover-ghost-bg,oklch(96.7%_0.003_264.542))] dark:bg-[var(--zui-popover-ghost-bg-dark,oklch(27.8%_0.033_256.848))] text-[color:var(--zui-popover-ghost-fg,oklch(21%_0.034_264.665))] dark:text-[color:var(--zui-popover-ghost-fg-dark,#ffffffe6)]\",\n glass:\n \"border-[color:var(--zui-popover-glass-border,#00000026)] dark:border-[color:var(--zui-popover-glass-border-dark,#ffffff26)] bg-[var(--zui-popover-glass-bg,#ffffffb3)] dark:bg-[var(--zui-popover-glass-bg-dark,#020617b3)] text-[color:var(--zui-popover-glass-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-popover-glass-fg-dark,#ffffff)] backdrop-blur-md\",\n emerald:\n \"border-[color:var(--zui-popover-emerald-border,oklch(43.2%_0.095_166.913_/_0.35))] bg-[var(--zui-popover-emerald-bg,oklch(90.5%_0.093_164.15))] text-[color:var(--zui-popover-emerald-fg,oklch(37.8%_0.077_168.94))] dark:bg-[var(--zui-popover-emerald-bg-dark,oklch(26.2%_0.051_172.552))] dark:text-[color:var(--zui-popover-emerald-fg-dark,oklch(90.5%_0.093_164.15))]\",\n indigo:\n \"border-[color:var(--zui-popover-indigo-border,oklch(39.8%_0.195_277.366_/_0.35))] bg-[var(--zui-popover-indigo-bg,oklch(87%_0.065_274.039))] text-[color:var(--zui-popover-indigo-fg,oklch(35.9%_0.144_278.697))] dark:bg-[var(--zui-popover-indigo-bg-dark,oklch(25.7%_0.09_281.288))] dark:text-[color:var(--zui-popover-indigo-fg-dark,oklch(87%_0.065_274.039))]\",\n purple:\n \"border-[color:var(--zui-popover-purple-border,oklch(43.8%_0.218_303.724_/_0.35))] bg-[var(--zui-popover-purple-bg,oklch(90.2%_0.063_306.703))] text-[color:var(--zui-popover-purple-fg,oklch(38.1%_0.176_304.987))] dark:bg-[var(--zui-popover-purple-bg-dark,oklch(29.1%_0.149_302.717))] dark:text-[color:var(--zui-popover-purple-fg-dark,oklch(90.2%_0.063_306.703))]\",\n pink:\n \"border-[color:var(--zui-popover-pink-border,oklch(45.9%_0.187_3.815_/_0.35))] bg-[var(--zui-popover-pink-bg,oklch(89.9%_0.061_343.231))] text-[color:var(--zui-popover-pink-fg,oklch(40.8%_0.153_2.432))] dark:bg-[var(--zui-popover-pink-bg-dark,oklch(28.4%_0.109_3.907))] dark:text-[color:var(--zui-popover-pink-fg-dark,oklch(89.9%_0.061_343.231))]\",\n rose:\n \"border-[color:var(--zui-popover-rose-border,oklch(45.5%_0.188_13.697_/_0.35))] bg-[var(--zui-popover-rose-bg,oklch(89.2%_0.058_10.001))] text-[color:var(--zui-popover-rose-fg,oklch(41%_0.159_10.272))] dark:bg-[var(--zui-popover-rose-bg-dark,oklch(27.1%_0.105_12.094))] dark:text-[color:var(--zui-popover-rose-fg-dark,oklch(89.2%_0.058_10.001))]\",\n sky:\n \"border-[color:var(--zui-popover-sky-border,oklch(44.3%_0.11_240.79_/_0.35))] bg-[var(--zui-popover-sky-bg,oklch(90.1%_0.058_230.902))] text-[color:var(--zui-popover-sky-fg,oklch(39.1%_0.09_240.876))] dark:bg-[var(--zui-popover-sky-bg-dark,oklch(29.3%_0.066_243.157))] dark:text-[color:var(--zui-popover-sky-fg-dark,oklch(90.1%_0.058_230.902))]\",\n teal:\n \"border-[color:var(--zui-popover-teal-border,oklch(43.7%_0.078_188.216_/_0.35))] bg-[var(--zui-popover-teal-bg,oklch(91%_0.096_180.426))] text-[color:var(--zui-popover-teal-fg,oklch(38.6%_0.063_188.416))] dark:bg-[var(--zui-popover-teal-bg-dark,oklch(27.7%_0.046_192.524))] dark:text-[color:var(--zui-popover-teal-fg-dark,oklch(91%_0.096_180.426))]\",\n yellow:\n \"border-[color:var(--zui-popover-yellow-border,oklch(47.6%_0.114_61.907_/_0.35))] bg-[var(--zui-popover-yellow-bg,oklch(94.5%_0.129_101.54))] text-[color:var(--zui-popover-yellow-fg,oklch(42.1%_0.095_57.708))] dark:bg-[var(--zui-popover-yellow-bg-dark,oklch(28.6%_0.066_53.813))] dark:text-[color:var(--zui-popover-yellow-fg-dark,oklch(94.5%_0.129_101.54))]\",\n orange:\n \"border-[color:var(--zui-popover-orange-border,oklch(47%_0.157_37.304_/_0.35))] bg-[var(--zui-popover-orange-bg,oklch(90.1%_0.076_70.697))] text-[color:var(--zui-popover-orange-fg,oklch(40.8%_0.123_38.172))] dark:bg-[var(--zui-popover-orange-bg-dark,oklch(26.6%_0.079_36.259))] dark:text-[color:var(--zui-popover-orange-fg-dark,oklch(90.1%_0.076_70.697))]\",\n green:\n \"border-[color:var(--zui-popover-green-border,oklch(44.8%_0.119_151.328_/_0.35))] bg-[var(--zui-popover-green-bg,oklch(92.5%_0.084_155.995))] text-[color:var(--zui-popover-green-fg,oklch(39.3%_0.095_152.535))] dark:bg-[var(--zui-popover-green-bg-dark,oklch(26.6%_0.065_152.934))] dark:text-[color:var(--zui-popover-green-fg-dark,oklch(92.5%_0.084_155.995))]\",\n \"gradient-blue\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-blue-from,oklch(42.4%_0.199_265.638))] to-[var(--zui-popover-gradient-blue-to,oklch(43.8%_0.218_303.724))] text-[color:var(--zui-popover-gradient-blue-fg,#ffffff)]\",\n \"gradient-green\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-green-from,oklch(44.8%_0.119_151.328))] to-[var(--zui-popover-gradient-green-to,oklch(45.3%_0.124_130.933))] text-[color:var(--zui-popover-gradient-green-fg,#ffffff)]\",\n \"gradient-red\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-red-from,oklch(44.4%_0.177_26.899))] to-[var(--zui-popover-gradient-red-to,oklch(45.9%_0.187_3.815))] text-[color:var(--zui-popover-gradient-red-fg,#ffffff)]\",\n \"gradient-yellow\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-yellow-from,oklch(47.6%_0.114_61.907))] to-[var(--zui-popover-gradient-yellow-to,oklch(47%_0.157_37.304))] text-[color:var(--zui-popover-gradient-yellow-fg,#ffffff)]\",\n \"gradient-purple\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-purple-from,oklch(43.8%_0.218_303.724))] to-[var(--zui-popover-gradient-purple-to,oklch(45.9%_0.187_3.815))] text-[color:var(--zui-popover-gradient-purple-fg,#ffffff)]\",\n \"gradient-teal\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-teal-from,oklch(43.7%_0.078_188.216))] to-[var(--zui-popover-gradient-teal-to,oklch(45%_0.085_224.283))] text-[color:var(--zui-popover-gradient-teal-fg,#ffffff)]\",\n \"gradient-indigo\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-indigo-from,oklch(39.8%_0.195_277.366))] to-[var(--zui-popover-gradient-indigo-to,oklch(43.8%_0.218_303.724))] text-[color:var(--zui-popover-gradient-indigo-fg,#ffffff)]\",\n \"gradient-pink\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-pink-from,oklch(45.9%_0.187_3.815))] to-[var(--zui-popover-gradient-pink-to,oklch(45.5%_0.188_13.697))] text-[color:var(--zui-popover-gradient-pink-fg,#ffffff)]\",\n \"gradient-orange\":\n \"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-orange-from,oklch(47%_0.157_37.304))] to-[var(--zui-popover-gradient-orange-to,oklch(44.4%_0.177_26.899))] text-[color:var(--zui-popover-gradient-orange-fg,#ffffff)]\",\n} as const;\n\nexport const zuiPopoverContentSizes = {\n sm: \"p-3 text-sm\",\n md: \"p-4 text-sm\",\n lg: \"p-5 text-base\",\n} as const;\n\nexport const zuiPopoverContentWidths = {\n xs: \"min-w-50 md:min-w-xs\",\n sm: \"min-w-50 md:min-w-sm\",\n md: \"min-w-50 md:min-w-md\",\n lg: \"min-w-50 md:min-w-lg\",\n xl: \"min-w-50 md:min-w-xl\",\n \"2xl\": \"min-w-50 md:min-w-2xl\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiPopoverContentBase,\n zuiPopoverContentSizes,\n zuiPopoverContentVariants,\n zuiPopoverContentWidths,\n} from \"../../design-system/popover\";\n\nexport const popoverContentVariants = cva(zuiPopoverContentBase, {\n variants: {\n variant: zuiPopoverContentVariants,\n size: zuiPopoverContentSizes,\n width: zuiPopoverContentWidths,\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n width: \"xs\",\n },\n});\n","\"use client\";\n\nimport {\n Children,\n cloneElement,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type RefObject,\n type KeyboardEventHandler,\n type MouseEventHandler,\n type ReactElement,\n type Ref,\n useMemo,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n PopoverAlign,\n PopoverContentProps,\n PopoverContextType,\n PopoverProps,\n PopoverSide,\n PopoverTriggerProps,\n} from \"./types\";\nimport { popoverContentVariants } from \"./variants\";\n\nexport const PopoverContext = createContext<PopoverContextType | null>(null);\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext);\n if (!context) {\n throw new Error(\"Popover components must be used within Popover\");\n }\n return context;\n};\n\nfunction mergeRefs<T>(...refs: Array<Ref<T> | undefined>) {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as RefObject<T | null>).current = node;\n }\n }\n };\n}\n\nexport function sideAlignClass(side: PopoverSide, align: PopoverAlign) {\n const sideClasses = {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n } satisfies Record<PopoverSide, string>;\n\n const verticalAlign = {\n start: \"left-0\",\n center: \"left-1/2 -translate-x-1/2\",\n end: \"right-0\",\n } satisfies Record<PopoverAlign, string>;\n\n const horizontalAlign = {\n start: \"top-0\",\n center: \"top-1/2 -translate-y-1/2\",\n end: \"bottom-0\",\n } satisfies Record<PopoverAlign, string>;\n\n return cn(\n sideClasses[side],\n side === \"top\" || side === \"bottom\"\n ? verticalAlign[align]\n : horizontalAlign[align],\n );\n}\n\nexport const Popover = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n closeOnEscape = true,\n closeOnOutsideClick = true,\n}: PopoverProps) => {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const contentId = `${useId()}-popover`;\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(value);\n }\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n const toggleOpen = useCallback(() => setOpen(!open), [open, setOpen]);\n\n useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n const onPointerDown = (event: PointerEvent) => {\n if (!closeOnOutsideClick) {\n return;\n }\n const target = event.target as Node;\n if (\n contentRef.current?.contains(target) ||\n triggerRef.current?.contains(target)\n ) {\n return;\n }\n setOpen(false);\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && closeOnEscape) {\n setOpen(false);\n triggerRef.current?.focus();\n }\n };\n\n document.addEventListener(\"pointerdown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n document.removeEventListener(\"pointerdown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [closeOnEscape, closeOnOutsideClick, open, setOpen]);\n\n const contextValue = useMemo(\n () => ({\n open,\n setOpen,\n toggleOpen,\n contentId,\n triggerRef,\n contentRef,\n }),\n [open, setOpen, toggleOpen, contentId],\n );\n\n return (\n <PopoverContext.Provider\n value={contextValue}\n >\n <div className=\"relative inline-block\">{children}</div>\n </PopoverContext.Provider>\n );\n};\n\nexport const PopoverTrigger = ({\n children,\n className,\n}: PopoverTriggerProps) => {\n const { open, toggleOpen, contentId, triggerRef } = usePopover();\n const childList = Children.toArray(children).filter(\n (node) => node !== null && node !== undefined && typeof node !== \"boolean\",\n );\n\n const soleCandidate =\n childList.length === 1 && isValidElement(childList[0])\n ? (childList[0] as ReactElement<{\n className?: string;\n ref?: Ref<HTMLElement>;\n onClick?: MouseEventHandler;\n onKeyDown?: KeyboardEventHandler;\n \"aria-expanded\"?: boolean;\n \"aria-haspopup\"?: string;\n \"aria-controls\"?: string;\n }>)\n : undefined;\n\n if (soleCandidate) {\n return cloneElement(soleCandidate, {\n ref: mergeRefs(triggerRef, soleCandidate.props.ref),\n onClick: (event) => {\n soleCandidate.props.onClick?.(event);\n if (!event.defaultPrevented) {\n toggleOpen();\n }\n },\n onKeyDown: (event) => {\n soleCandidate.props.onKeyDown?.(event);\n if (event.key === \"Escape\") {\n event.preventDefault();\n }\n },\n className: cn(className, soleCandidate.props.className),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n \"aria-controls\": open ? contentId : undefined,\n });\n }\n\n return (\n <button\n ref={triggerRef as Ref<HTMLButtonElement>}\n type=\"button\"\n className={className}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-controls={open ? contentId : undefined}\n onClick={toggleOpen}\n >\n {children}\n </button>\n );\n};\n\nexport const PopoverContent = ({\n children,\n className,\n variant,\n size,\n width,\n side = \"bottom\",\n align = \"center\",\n role = \"dialog\",\n ...props\n}: PopoverContentProps) => {\n const { open, contentId, contentRef } = usePopover();\n\n if (!open) {\n return null;\n }\n\n return (\n <div\n ref={contentRef}\n id={contentId}\n data-open={open}\n role={role}\n tabIndex={-1}\n className={cn(\n popoverContentVariants({ variant, size, width }),\n sideAlignClass(side, align),\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n"]}