@mdigital_ui/ui 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1023 -341
  3. package/dist/accordion/index.js +3 -3
  4. package/dist/avatar/index.js +4 -0
  5. package/dist/avatar/index.js.map +1 -0
  6. package/dist/badge/index.js +3 -3
  7. package/dist/breadcrumbs/index.js +5 -5
  8. package/dist/button/index.js +4 -4
  9. package/dist/button-group/index.js +2 -2
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.js +2 -1
  12. package/dist/cascader/index.js +2 -2
  13. package/dist/chart/index.js +2 -2
  14. package/dist/checkbox/index.js +3 -3
  15. package/dist/checkbox-group/index.js +2 -2
  16. package/dist/chunk-27QEPVKU.js +115 -0
  17. package/dist/chunk-27QEPVKU.js.map +1 -0
  18. package/dist/{chunk-Y5A26EGR.js → chunk-2J57G7XG.js} +82 -24
  19. package/dist/chunk-2J57G7XG.js.map +1 -0
  20. package/dist/{chunk-FPOXTCYV.js → chunk-2NYVRAG4.js} +29 -20
  21. package/dist/chunk-2NYVRAG4.js.map +1 -0
  22. package/dist/chunk-2OUGJBXK.js +742 -0
  23. package/dist/chunk-2OUGJBXK.js.map +1 -0
  24. package/dist/{chunk-ROR4E6IE.js → chunk-2WZVD7P3.js} +38 -12
  25. package/dist/chunk-2WZVD7P3.js.map +1 -0
  26. package/dist/chunk-3UCZ4GMN.js +84 -0
  27. package/dist/chunk-3UCZ4GMN.js.map +1 -0
  28. package/dist/{chunk-RPAQAZTI.js → chunk-4LSKRZOT.js} +12 -7
  29. package/dist/chunk-4LSKRZOT.js.map +1 -0
  30. package/dist/{chunk-ASW7TEAN.js → chunk-4SQOFZ3N.js} +35 -18
  31. package/dist/chunk-4SQOFZ3N.js.map +1 -0
  32. package/dist/chunk-5PUATOLR.js +127 -0
  33. package/dist/chunk-5PUATOLR.js.map +1 -0
  34. package/dist/chunk-6TMOKYR7.js +75 -0
  35. package/dist/chunk-6TMOKYR7.js.map +1 -0
  36. package/dist/chunk-7UCNBMCV.js +261 -0
  37. package/dist/chunk-7UCNBMCV.js.map +1 -0
  38. package/dist/chunk-AQYOVYPS.js +237 -0
  39. package/dist/chunk-AQYOVYPS.js.map +1 -0
  40. package/dist/{chunk-BP434VYV.js → chunk-C5YO5VZS.js} +17 -17
  41. package/dist/chunk-C5YO5VZS.js.map +1 -0
  42. package/dist/{chunk-ZNJ7M5QK.js → chunk-CHGJX5F2.js} +69 -46
  43. package/dist/chunk-CHGJX5F2.js.map +1 -0
  44. package/dist/chunk-CK6A2R66.js +336 -0
  45. package/dist/chunk-CK6A2R66.js.map +1 -0
  46. package/dist/{chunk-I5ANSIDK.js → chunk-CMGCJXE5.js} +280 -100
  47. package/dist/chunk-CMGCJXE5.js.map +1 -0
  48. package/dist/chunk-CSRMVLPR.js +394 -0
  49. package/dist/chunk-CSRMVLPR.js.map +1 -0
  50. package/dist/chunk-DH7R6NBG.js +107 -0
  51. package/dist/chunk-DH7R6NBG.js.map +1 -0
  52. package/dist/{chunk-XMAH5PDW.js → chunk-FEMHXG2P.js} +28 -11
  53. package/dist/chunk-FEMHXG2P.js.map +1 -0
  54. package/dist/chunk-FIGSNRWY.js +382 -0
  55. package/dist/chunk-FIGSNRWY.js.map +1 -0
  56. package/dist/{chunk-C7SXY3ZV.js → chunk-FVTMKQUE.js} +5 -3
  57. package/dist/chunk-FVTMKQUE.js.map +1 -0
  58. package/dist/{chunk-UAMFKX6L.js → chunk-GBVIACYQ.js} +103 -42
  59. package/dist/chunk-GBVIACYQ.js.map +1 -0
  60. package/dist/chunk-H47C2ENJ.js +215 -0
  61. package/dist/chunk-H47C2ENJ.js.map +1 -0
  62. package/dist/chunk-HWFI4GJE.js +130 -0
  63. package/dist/chunk-HWFI4GJE.js.map +1 -0
  64. package/dist/chunk-IA42ELUP.js +72 -0
  65. package/dist/chunk-IA42ELUP.js.map +1 -0
  66. package/dist/{chunk-HUVXKOJC.js → chunk-INQI3UUI.js} +80 -22
  67. package/dist/chunk-INQI3UUI.js.map +1 -0
  68. package/dist/{chunk-BNILRB4T.js → chunk-J525ROGL.js} +12 -7
  69. package/dist/chunk-J525ROGL.js.map +1 -0
  70. package/dist/chunk-JLS4MBHN.js +205 -0
  71. package/dist/chunk-JLS4MBHN.js.map +1 -0
  72. package/dist/{chunk-SK5ECBBK.js → chunk-KTHWXHDN.js} +15 -6
  73. package/dist/chunk-KTHWXHDN.js.map +1 -0
  74. package/dist/{chunk-SOV4PE3P.js → chunk-LMR7TKDJ.js} +25 -7
  75. package/dist/chunk-LMR7TKDJ.js.map +1 -0
  76. package/dist/{chunk-NNSS366W.js → chunk-MRFCITKK.js} +53 -11
  77. package/dist/chunk-MRFCITKK.js.map +1 -0
  78. package/dist/chunk-MXDTUN3V.js +459 -0
  79. package/dist/chunk-MXDTUN3V.js.map +1 -0
  80. package/dist/{chunk-YNNAOXU5.js → chunk-NGYLRX6F.js} +3 -18
  81. package/dist/chunk-NGYLRX6F.js.map +1 -0
  82. package/dist/chunk-NTPWR57C.js +445 -0
  83. package/dist/chunk-NTPWR57C.js.map +1 -0
  84. package/dist/chunk-OWXQ45GS.js +276 -0
  85. package/dist/chunk-OWXQ45GS.js.map +1 -0
  86. package/dist/{chunk-75XESYGN.js → chunk-P6A75RAH.js} +7 -13
  87. package/dist/chunk-P6A75RAH.js.map +1 -0
  88. package/dist/{chunk-RMGIO27V.js → chunk-PXOHJJBE.js} +39 -10
  89. package/dist/chunk-PXOHJJBE.js.map +1 -0
  90. package/dist/{chunk-SAVE5ACL.js → chunk-Q57THXIU.js} +28 -10
  91. package/dist/chunk-Q57THXIU.js.map +1 -0
  92. package/dist/{chunk-J3G5WWGR.js → chunk-QDHGE7IF.js} +7 -15
  93. package/dist/chunk-QDHGE7IF.js.map +1 -0
  94. package/dist/{chunk-7PKVBUGL.js → chunk-QKSDVYKF.js} +4 -4
  95. package/dist/chunk-QKSDVYKF.js.map +1 -0
  96. package/dist/chunk-ROA7BYGB.js +123 -0
  97. package/dist/chunk-ROA7BYGB.js.map +1 -0
  98. package/dist/{chunk-DPOSWW22.js → chunk-RPIJ2KY7.js} +11 -4
  99. package/dist/chunk-RPIJ2KY7.js.map +1 -0
  100. package/dist/{chunk-R225A5II.js → chunk-RW4RW4DV.js} +80 -30
  101. package/dist/chunk-RW4RW4DV.js.map +1 -0
  102. package/dist/chunk-RYKVZFGB.js +607 -0
  103. package/dist/chunk-RYKVZFGB.js.map +1 -0
  104. package/dist/chunk-SAVEKACZ.js +552 -0
  105. package/dist/chunk-SAVEKACZ.js.map +1 -0
  106. package/dist/chunk-SDNT2JGC.js +143 -0
  107. package/dist/chunk-SDNT2JGC.js.map +1 -0
  108. package/dist/{chunk-DOKTHDG3.js → chunk-SGRACNBP.js} +12 -7
  109. package/dist/chunk-SGRACNBP.js.map +1 -0
  110. package/dist/{chunk-OALOWWO7.js → chunk-TTEBZZ3T.js} +55 -42
  111. package/dist/chunk-TTEBZZ3T.js.map +1 -0
  112. package/dist/{chunk-FCMVKFVV.js → chunk-US4ZCMNU.js} +26 -20
  113. package/dist/chunk-US4ZCMNU.js.map +1 -0
  114. package/dist/chunk-UUP7YGOS.js +299 -0
  115. package/dist/chunk-UUP7YGOS.js.map +1 -0
  116. package/dist/{chunk-QPJL66S7.js → chunk-VUBU7Y4F.js} +123 -55
  117. package/dist/chunk-VUBU7Y4F.js.map +1 -0
  118. package/dist/chunk-WUBMNJGC.js +141 -0
  119. package/dist/chunk-WUBMNJGC.js.map +1 -0
  120. package/dist/chunk-WVG3QQDN.js +283 -0
  121. package/dist/chunk-WVG3QQDN.js.map +1 -0
  122. package/dist/chunk-WZ2KDHFP.js +109 -0
  123. package/dist/chunk-WZ2KDHFP.js.map +1 -0
  124. package/dist/{chunk-FGWSUPVW.js → chunk-X5SCI7KH.js} +190 -137
  125. package/dist/chunk-X5SCI7KH.js.map +1 -0
  126. package/dist/{chunk-D3JWPGCA.js → chunk-XJCWPPMM.js} +10 -56
  127. package/dist/chunk-XJCWPPMM.js.map +1 -0
  128. package/dist/{chunk-LEKLQR4I.js → chunk-YAAV7FQG.js} +70 -45
  129. package/dist/chunk-YAAV7FQG.js.map +1 -0
  130. package/dist/chunk-YOG5GXIC.js +196 -0
  131. package/dist/chunk-YOG5GXIC.js.map +1 -0
  132. package/dist/chunk-Z5VJ6MJP.js +234 -0
  133. package/dist/chunk-Z5VJ6MJP.js.map +1 -0
  134. package/dist/{chunk-267WNY3E.js → chunk-ZC3E3PWH.js} +109 -73
  135. package/dist/chunk-ZC3E3PWH.js.map +1 -0
  136. package/dist/clipboard/index.js +2 -2
  137. package/dist/collapse/index.js +2 -2
  138. package/dist/command/index.js +3 -3
  139. package/dist/context-menu/index.js +4 -0
  140. package/dist/context-menu/index.js.map +1 -0
  141. package/dist/date-picker/index.js +4 -3
  142. package/dist/descriptions/index.js +2 -2
  143. package/dist/divider/index.js +4 -0
  144. package/dist/divider/index.js.map +1 -0
  145. package/dist/drawer/index.js +2 -2
  146. package/dist/dropdown/index.js +4 -3
  147. package/dist/empty/index.js +2 -2
  148. package/dist/fetching-overlay/index.js +4 -3
  149. package/dist/grid/index.js +2 -2
  150. package/dist/image/index.js +2 -2
  151. package/dist/index.d.ts +2494 -211
  152. package/dist/index.js +63 -186
  153. package/dist/index.js.map +1 -1
  154. package/dist/input/index.js +4 -3
  155. package/dist/input-group/index.js +2 -2
  156. package/dist/input-otp/index.js +2 -2
  157. package/dist/input-password/index.js +5 -4
  158. package/dist/kbd/index.js +3 -2
  159. package/dist/modal/index.js +2 -2
  160. package/dist/multi-select/index.js +4 -3
  161. package/dist/notification/index.js +3 -2
  162. package/dist/pagination/index.js +2 -2
  163. package/dist/popover/index.js +3 -2
  164. package/dist/progress/index.js +2 -2
  165. package/dist/radio/index.js +3 -2
  166. package/dist/radio-group/index.js +2 -2
  167. package/dist/rating/index.js +2 -2
  168. package/dist/ribbon/index.js +2 -2
  169. package/dist/select/index.js +5 -4
  170. package/dist/skeleton/index.js +3 -2
  171. package/dist/slider/index.js +2 -2
  172. package/dist/spinner/index.js +3 -2
  173. package/dist/stepper/index.js +2 -2
  174. package/dist/styles/base.css +2165 -1375
  175. package/dist/styles/global.css +2393 -1036
  176. package/dist/styles/themes/dark.css +3 -1
  177. package/dist/styles/themes/light.css +3 -1
  178. package/dist/styles/themes/presets/corporate.css +126 -0
  179. package/dist/styles/themes/presets/minimal.css +126 -0
  180. package/dist/styles/themes/presets/vibrant.css +126 -0
  181. package/dist/switch/index.js +3 -2
  182. package/dist/table/index.js +10 -10
  183. package/dist/tabs/index.js +3 -3
  184. package/dist/tag/index.js +5 -0
  185. package/dist/tag/index.js.map +1 -0
  186. package/dist/textarea/index.js +2 -2
  187. package/dist/theme/index.js +3 -0
  188. package/dist/theme/index.js.map +1 -0
  189. package/dist/toggle/index.js +2 -2
  190. package/dist/toggle-group/index.js +2 -2
  191. package/dist/tooltip/index.js +3 -2
  192. package/dist/transfer/index.js +4 -4
  193. package/dist/tree/index.js +2 -2
  194. package/dist/tree-select/index.js +5 -4
  195. package/dist/upload/index.js +2 -2
  196. package/package.json +460 -70
  197. package/dist/chunk-267WNY3E.js.map +0 -1
  198. package/dist/chunk-2EKAF6EJ.js +0 -128
  199. package/dist/chunk-2EKAF6EJ.js.map +0 -1
  200. package/dist/chunk-3PFA3YG6.js +0 -228
  201. package/dist/chunk-3PFA3YG6.js.map +0 -1
  202. package/dist/chunk-56IXGP5C.js +0 -56
  203. package/dist/chunk-56IXGP5C.js.map +0 -1
  204. package/dist/chunk-5UEWVFF6.js +0 -212
  205. package/dist/chunk-5UEWVFF6.js.map +0 -1
  206. package/dist/chunk-6V5I5HJ2.js +0 -39
  207. package/dist/chunk-6V5I5HJ2.js.map +0 -1
  208. package/dist/chunk-75XESYGN.js.map +0 -1
  209. package/dist/chunk-7PKVBUGL.js.map +0 -1
  210. package/dist/chunk-ASW7TEAN.js.map +0 -1
  211. package/dist/chunk-AWPKZYHT.js +0 -152
  212. package/dist/chunk-AWPKZYHT.js.map +0 -1
  213. package/dist/chunk-BFO3ARVJ.js +0 -104
  214. package/dist/chunk-BFO3ARVJ.js.map +0 -1
  215. package/dist/chunk-BNILRB4T.js.map +0 -1
  216. package/dist/chunk-BP434VYV.js.map +0 -1
  217. package/dist/chunk-C3MX5EXL.js +0 -95
  218. package/dist/chunk-C3MX5EXL.js.map +0 -1
  219. package/dist/chunk-C7SXY3ZV.js.map +0 -1
  220. package/dist/chunk-D3JWPGCA.js.map +0 -1
  221. package/dist/chunk-DOKTHDG3.js.map +0 -1
  222. package/dist/chunk-DPOSWW22.js.map +0 -1
  223. package/dist/chunk-FCMVKFVV.js.map +0 -1
  224. package/dist/chunk-FGWSUPVW.js.map +0 -1
  225. package/dist/chunk-FPOXTCYV.js.map +0 -1
  226. package/dist/chunk-FYHQDFKE.js +0 -164
  227. package/dist/chunk-FYHQDFKE.js.map +0 -1
  228. package/dist/chunk-G6TAVRTJ.js +0 -640
  229. package/dist/chunk-G6TAVRTJ.js.map +0 -1
  230. package/dist/chunk-GEWR5ROK.js +0 -102
  231. package/dist/chunk-GEWR5ROK.js.map +0 -1
  232. package/dist/chunk-HUVXKOJC.js.map +0 -1
  233. package/dist/chunk-I5ANSIDK.js.map +0 -1
  234. package/dist/chunk-J3G5WWGR.js.map +0 -1
  235. package/dist/chunk-JLTDJ3VZ.js +0 -452
  236. package/dist/chunk-JLTDJ3VZ.js.map +0 -1
  237. package/dist/chunk-KBCBVH7B.js +0 -51
  238. package/dist/chunk-KBCBVH7B.js.map +0 -1
  239. package/dist/chunk-KNQ7UQ2W.js +0 -143
  240. package/dist/chunk-KNQ7UQ2W.js.map +0 -1
  241. package/dist/chunk-KTAIRCOL.js +0 -100
  242. package/dist/chunk-KTAIRCOL.js.map +0 -1
  243. package/dist/chunk-LEKLQR4I.js.map +0 -1
  244. package/dist/chunk-MLDX3Z67.js +0 -470
  245. package/dist/chunk-MLDX3Z67.js.map +0 -1
  246. package/dist/chunk-NNSS366W.js.map +0 -1
  247. package/dist/chunk-OALOWWO7.js.map +0 -1
  248. package/dist/chunk-OOS3B7YZ.js +0 -94
  249. package/dist/chunk-OOS3B7YZ.js.map +0 -1
  250. package/dist/chunk-OQANRZPV.js +0 -197
  251. package/dist/chunk-OQANRZPV.js.map +0 -1
  252. package/dist/chunk-OW5A5IIF.js +0 -175
  253. package/dist/chunk-OW5A5IIF.js.map +0 -1
  254. package/dist/chunk-QPJL66S7.js.map +0 -1
  255. package/dist/chunk-R225A5II.js.map +0 -1
  256. package/dist/chunk-RMGIO27V.js.map +0 -1
  257. package/dist/chunk-ROR4E6IE.js.map +0 -1
  258. package/dist/chunk-RPAQAZTI.js.map +0 -1
  259. package/dist/chunk-S5XJXU52.js +0 -178
  260. package/dist/chunk-S5XJXU52.js.map +0 -1
  261. package/dist/chunk-SAVE5ACL.js.map +0 -1
  262. package/dist/chunk-SK5ECBBK.js.map +0 -1
  263. package/dist/chunk-SOV4PE3P.js.map +0 -1
  264. package/dist/chunk-UAMFKX6L.js.map +0 -1
  265. package/dist/chunk-XMAH5PDW.js.map +0 -1
  266. package/dist/chunk-XMKNYG7I.js +0 -181
  267. package/dist/chunk-XMKNYG7I.js.map +0 -1
  268. package/dist/chunk-Y5A26EGR.js.map +0 -1
  269. package/dist/chunk-YNNAOXU5.js.map +0 -1
  270. package/dist/chunk-YZ6V6BQ7.js +0 -134
  271. package/dist/chunk-YZ6V6BQ7.js.map +0 -1
  272. package/dist/chunk-YZVSDRJD.js +0 -253
  273. package/dist/chunk-YZVSDRJD.js.map +0 -1
  274. package/dist/chunk-ZNJ7M5QK.js.map +0 -1
@@ -0,0 +1,394 @@
1
+ import { cn } from './chunk-NGYLRX6F.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import { X } from 'lucide-react';
4
+ import { Drawer as Drawer$1 } from 'vaul';
5
+ import React, { createContext, useContext } from 'react';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ var DrawerContext = createContext({ direction: "bottom" });
9
+ var drawerContentVariants = cva(
10
+ "fixed bg-background border-border flex flex-col outline-none",
11
+ {
12
+ variants: {
13
+ direction: {
14
+ bottom: "bottom-0 left-0 right-0 border-t rounded-t-xl max-h-[96vh]",
15
+ top: "top-0 left-0 right-0 border-b rounded-b-xl max-h-[96vh]",
16
+ left: "left-0 top-0 bottom-0 border-r rounded-r-xl max-w-[96vw]",
17
+ right: "right-0 top-0 bottom-0 border-l rounded-l-xl max-w-[96vw]"
18
+ },
19
+ size: {
20
+ xs: "",
21
+ sm: "",
22
+ md: "",
23
+ lg: "",
24
+ full: ""
25
+ }
26
+ },
27
+ compoundVariants: [
28
+ // Bottom/Top - height based
29
+ { direction: "bottom", size: "xs", class: "h-1/4" },
30
+ { direction: "bottom", size: "sm", class: "h-1/3" },
31
+ { direction: "bottom", size: "md", class: "h-1/2" },
32
+ { direction: "bottom", size: "lg", class: "h-3/4" },
33
+ { direction: "bottom", size: "full", class: "h-[96vh]" },
34
+ { direction: "top", size: "xs", class: "h-1/4" },
35
+ { direction: "top", size: "sm", class: "h-1/3" },
36
+ { direction: "top", size: "md", class: "h-1/2" },
37
+ { direction: "top", size: "lg", class: "h-3/4" },
38
+ { direction: "top", size: "full", class: "h-[96vh]" },
39
+ // Left/Right - width based
40
+ { direction: "left", size: "xs", class: "w-64" },
41
+ { direction: "left", size: "sm", class: "w-80" },
42
+ { direction: "left", size: "md", class: "w-96" },
43
+ { direction: "left", size: "lg", class: "w-[480px]" },
44
+ { direction: "left", size: "full", class: "w-[96vw]" },
45
+ { direction: "right", size: "xs", class: "w-64" },
46
+ { direction: "right", size: "sm", class: "w-80" },
47
+ { direction: "right", size: "md", class: "w-96" },
48
+ { direction: "right", size: "lg", class: "w-[480px]" },
49
+ { direction: "right", size: "full", class: "w-[96vw]" }
50
+ ],
51
+ defaultVariants: {
52
+ direction: "bottom",
53
+ size: "md"
54
+ }
55
+ }
56
+ );
57
+ var closeButtonSizeClasses = {
58
+ xs: "top-2 right-2 p-1 [&_svg]:size-3.5",
59
+ sm: "top-3 right-3 p-1.5 [&_svg]:size-4",
60
+ md: "top-4 right-4 p-1.5 [&_svg]:size-4",
61
+ lg: "top-4 right-4 p-2 [&_svg]:size-5",
62
+ full: "top-5 right-5 p-2 [&_svg]:size-5"
63
+ };
64
+ var paddingClasses = {
65
+ xs: "p-3",
66
+ sm: "p-4",
67
+ md: "p-5",
68
+ lg: "p-6",
69
+ full: "p-6"
70
+ };
71
+ var Drawer = React.memo(
72
+ ({
73
+ open,
74
+ onOpenChange,
75
+ direction = "bottom",
76
+ modal = true,
77
+ dismissible = true,
78
+ snapPoints,
79
+ children
80
+ }) => {
81
+ return /* @__PURE__ */ jsx(DrawerContext.Provider, { value: { direction }, children: /* @__PURE__ */ jsx(
82
+ Drawer$1.Root,
83
+ {
84
+ open,
85
+ onOpenChange,
86
+ direction,
87
+ modal,
88
+ dismissible,
89
+ snapPoints,
90
+ children
91
+ }
92
+ ) });
93
+ }
94
+ );
95
+ Drawer.displayName = "Drawer";
96
+ var DrawerTrigger = React.memo(
97
+ ({ children, asChild = false, className, ref }) => {
98
+ return /* @__PURE__ */ jsx(
99
+ Drawer$1.Trigger,
100
+ {
101
+ ref,
102
+ asChild,
103
+ className,
104
+ children
105
+ }
106
+ );
107
+ }
108
+ );
109
+ DrawerTrigger.displayName = "DrawerTrigger";
110
+ var DrawerPortal = Drawer$1.Portal;
111
+ var DrawerOverlay = React.memo(
112
+ ({ className, ref, classNames, ...props }) => /* @__PURE__ */ jsx(
113
+ Drawer$1.Overlay,
114
+ {
115
+ ref,
116
+ className: cn(
117
+ "drawer_overlay",
118
+ "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",
119
+ classNames?.overlay,
120
+ className
121
+ ),
122
+ "data-slot": "drawer-overlay",
123
+ ...props
124
+ }
125
+ )
126
+ );
127
+ DrawerOverlay.displayName = "DrawerOverlay";
128
+ var DrawerContent = React.memo(
129
+ ({
130
+ children,
131
+ direction: directionProp,
132
+ size = "md",
133
+ showCloseButton = false,
134
+ showHandle,
135
+ className,
136
+ ref,
137
+ classNames
138
+ }) => {
139
+ const { direction: contextDirection } = useContext(DrawerContext);
140
+ const direction = directionProp ?? contextDirection;
141
+ const shouldShowHandle = showHandle ?? (direction === "bottom" || direction === "top");
142
+ const isHorizontal = direction === "left" || direction === "right";
143
+ return /* @__PURE__ */ jsxs(DrawerPortal, { children: [
144
+ /* @__PURE__ */ jsx(DrawerOverlay, { classNames }),
145
+ /* @__PURE__ */ jsxs(
146
+ Drawer$1.Content,
147
+ {
148
+ ref,
149
+ className: cn(
150
+ "drawer_content",
151
+ drawerContentVariants({ direction, size }),
152
+ paddingClasses[size],
153
+ "z-50",
154
+ classNames?.content,
155
+ className
156
+ ),
157
+ "data-slot": "drawer-content",
158
+ children: [
159
+ shouldShowHandle && direction === "bottom" && /* @__PURE__ */ jsx(
160
+ "div",
161
+ {
162
+ className: cn(
163
+ "drawer_handle",
164
+ "mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4",
165
+ classNames?.handle
166
+ ),
167
+ "data-slot": "drawer-handle"
168
+ }
169
+ ),
170
+ shouldShowHandle && direction === "top" && /* @__PURE__ */ jsx(
171
+ "div",
172
+ {
173
+ className: cn(
174
+ "drawer_handle",
175
+ "mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4 order-last mt-auto",
176
+ classNames?.handle
177
+ ),
178
+ "data-slot": "drawer-handle"
179
+ }
180
+ ),
181
+ shouldShowHandle && direction === "left" && /* @__PURE__ */ jsx(
182
+ "div",
183
+ {
184
+ className: cn(
185
+ "drawer_handle",
186
+ "absolute right-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border",
187
+ classNames?.handle
188
+ ),
189
+ "data-slot": "drawer-handle"
190
+ }
191
+ ),
192
+ shouldShowHandle && direction === "right" && /* @__PURE__ */ jsx(
193
+ "div",
194
+ {
195
+ className: cn(
196
+ "drawer_handle",
197
+ "absolute left-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border",
198
+ classNames?.handle
199
+ ),
200
+ "data-slot": "drawer-handle"
201
+ }
202
+ ),
203
+ showCloseButton && /* @__PURE__ */ jsxs(
204
+ Drawer$1.Close,
205
+ {
206
+ className: cn(
207
+ "drawer_closeButton",
208
+ "absolute rounded-md opacity-70 transition-opacity hover:opacity-100",
209
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
210
+ "text-text-secondary hover:text-text-primary hover:bg-surface",
211
+ closeButtonSizeClasses[size],
212
+ classNames?.closeButton
213
+ ),
214
+ "data-slot": "drawer-closeButton",
215
+ children: [
216
+ /* @__PURE__ */ jsx(X, {}),
217
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
218
+ ]
219
+ }
220
+ ),
221
+ /* @__PURE__ */ jsx(
222
+ "div",
223
+ {
224
+ className: cn(
225
+ "flex flex-col flex-1 min-h-0",
226
+ isHorizontal && "overflow-y-auto",
227
+ showCloseButton && "pt-6"
228
+ ),
229
+ children
230
+ }
231
+ )
232
+ ]
233
+ }
234
+ )
235
+ ] });
236
+ }
237
+ );
238
+ DrawerContent.displayName = "DrawerContent";
239
+ var DrawerHeader = React.memo(
240
+ ({ children, className, ref, classNames }) => {
241
+ return /* @__PURE__ */ jsx(
242
+ "div",
243
+ {
244
+ ref,
245
+ className: cn(
246
+ "drawer_header",
247
+ "flex flex-col gap-1.5 mb-4 shrink-0",
248
+ classNames?.header,
249
+ className
250
+ ),
251
+ "data-slot": "drawer-header",
252
+ children
253
+ }
254
+ );
255
+ }
256
+ );
257
+ DrawerHeader.displayName = "DrawerHeader";
258
+ var DrawerBody = React.memo(
259
+ ({ children, className, ref, classNames }) => {
260
+ return /* @__PURE__ */ jsx(
261
+ "div",
262
+ {
263
+ ref,
264
+ className: cn(
265
+ "drawer_body",
266
+ "flex-1 overflow-y-auto min-h-0",
267
+ classNames?.body,
268
+ className
269
+ ),
270
+ "data-slot": "drawer-body",
271
+ children
272
+ }
273
+ );
274
+ }
275
+ );
276
+ DrawerBody.displayName = "DrawerBody";
277
+ var DrawerFooter = React.memo(
278
+ ({ children, className, ref, classNames }) => {
279
+ return /* @__PURE__ */ jsx(
280
+ "div",
281
+ {
282
+ ref,
283
+ className: cn(
284
+ "drawer_footer",
285
+ "flex gap-2 mt-auto pt-4 shrink-0",
286
+ classNames?.footer,
287
+ className
288
+ ),
289
+ "data-slot": "drawer-footer",
290
+ children
291
+ }
292
+ );
293
+ }
294
+ );
295
+ DrawerFooter.displayName = "DrawerFooter";
296
+ var DrawerTitle = React.memo(
297
+ ({ children, className, ref, classNames }) => {
298
+ return /* @__PURE__ */ jsx(
299
+ Drawer$1.Title,
300
+ {
301
+ ref,
302
+ className: cn(
303
+ "drawer_title",
304
+ "text-lg font-semibold text-text-primary",
305
+ classNames?.title,
306
+ className
307
+ ),
308
+ "data-slot": "drawer-title",
309
+ children
310
+ }
311
+ );
312
+ }
313
+ );
314
+ DrawerTitle.displayName = "DrawerTitle";
315
+ var DrawerDescription = React.memo(
316
+ ({ children, className, ref, classNames }) => {
317
+ return /* @__PURE__ */ jsx(
318
+ Drawer$1.Description,
319
+ {
320
+ ref,
321
+ className: cn(
322
+ "drawer_description",
323
+ "text-sm text-text-secondary",
324
+ classNames?.description,
325
+ className
326
+ ),
327
+ "data-slot": "drawer-description",
328
+ children
329
+ }
330
+ );
331
+ }
332
+ );
333
+ DrawerDescription.displayName = "DrawerDescription";
334
+ var DrawerClose = React.memo(
335
+ ({ children, asChild = false, className, ref }) => {
336
+ return /* @__PURE__ */ jsx(Drawer$1.Close, { ref, asChild, className, children });
337
+ }
338
+ );
339
+ DrawerClose.displayName = "DrawerClose";
340
+ function ComposedDrawer({
341
+ open,
342
+ onOpenChange,
343
+ title,
344
+ description,
345
+ children,
346
+ footer,
347
+ direction = "right",
348
+ size = "md",
349
+ modal = true,
350
+ showCloseButton = true,
351
+ showHandle,
352
+ dismissible = true,
353
+ hideHeader = false,
354
+ hideFooter = false,
355
+ className,
356
+ contentClassName,
357
+ classNames
358
+ }) {
359
+ return /* @__PURE__ */ jsx(
360
+ Drawer,
361
+ {
362
+ open,
363
+ onOpenChange,
364
+ direction,
365
+ modal,
366
+ dismissible,
367
+ children: /* @__PURE__ */ jsxs(
368
+ DrawerContent,
369
+ {
370
+ direction,
371
+ size,
372
+ showCloseButton,
373
+ showHandle,
374
+ className: contentClassName,
375
+ classNames,
376
+ children: [
377
+ !hideHeader && (title || description) && /* @__PURE__ */ jsxs(DrawerHeader, { className, classNames, children: [
378
+ title && /* @__PURE__ */ jsx(DrawerTitle, { classNames, children: title }),
379
+ description && /* @__PURE__ */ jsx(DrawerDescription, { classNames, children: description })
380
+ ] }),
381
+ /* @__PURE__ */ jsx(DrawerBody, { classNames, children }),
382
+ !hideFooter && footer && /* @__PURE__ */ jsx(DrawerFooter, { classNames, children: footer })
383
+ ]
384
+ }
385
+ )
386
+ }
387
+ );
388
+ }
389
+ ComposedDrawer.displayName = "ComposedDrawer";
390
+ var drawer_default = ComposedDrawer;
391
+
392
+ export { ComposedDrawer, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, drawer_default };
393
+ //# sourceMappingURL=chunk-CSRMVLPR.js.map
394
+ //# sourceMappingURL=chunk-CSRMVLPR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/drawer/index.tsx"],"names":["DrawerPrimitive"],"mappings":"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","file":"chunk-CSRMVLPR.js","sourcesContent":["'use client'\n\nimport { cva } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport React, { createContext, useContext } from \"react\";\n\nimport { cn } from \"../utils\";\nimport type {\n ComposedDrawerProps,\n DrawerBodyProps,\n DrawerCloseProps,\n DrawerContentProps,\n DrawerDescriptionProps,\n DrawerDirection,\n DrawerFooterProps,\n DrawerHeaderProps,\n DrawerOverlayProps,\n DrawerProps,\n DrawerSize,\n DrawerTitleProps,\n DrawerTriggerProps,\n} from \"./types\";\n\n// Context to pass direction from Drawer to DrawerContent\nconst DrawerContext = createContext<{\n direction: DrawerDirection;\n}>({ direction: \"bottom\" });\n\nconst drawerContentVariants = cva(\n \"fixed bg-background border-border flex flex-col outline-none\",\n {\n variants: {\n direction: {\n bottom: \"bottom-0 left-0 right-0 border-t rounded-t-xl max-h-[96vh]\",\n top: \"top-0 left-0 right-0 border-b rounded-b-xl max-h-[96vh]\",\n left: \"left-0 top-0 bottom-0 border-r rounded-r-xl max-w-[96vw]\",\n right: \"right-0 top-0 bottom-0 border-l rounded-l-xl max-w-[96vw]\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n // Bottom/Top - height based\n { direction: \"bottom\", size: \"xs\", class: \"h-1/4\" },\n { direction: \"bottom\", size: \"sm\", class: \"h-1/3\" },\n { direction: \"bottom\", size: \"md\", class: \"h-1/2\" },\n { direction: \"bottom\", size: \"lg\", class: \"h-3/4\" },\n { direction: \"bottom\", size: \"full\", class: \"h-[96vh]\" },\n { direction: \"top\", size: \"xs\", class: \"h-1/4\" },\n { direction: \"top\", size: \"sm\", class: \"h-1/3\" },\n { direction: \"top\", size: \"md\", class: \"h-1/2\" },\n { direction: \"top\", size: \"lg\", class: \"h-3/4\" },\n { direction: \"top\", size: \"full\", class: \"h-[96vh]\" },\n // Left/Right - width based\n { direction: \"left\", size: \"xs\", class: \"w-64\" },\n { direction: \"left\", size: \"sm\", class: \"w-80\" },\n { direction: \"left\", size: \"md\", class: \"w-96\" },\n { direction: \"left\", size: \"lg\", class: \"w-[480px]\" },\n { direction: \"left\", size: \"full\", class: \"w-[96vw]\" },\n { direction: \"right\", size: \"xs\", class: \"w-64\" },\n { direction: \"right\", size: \"sm\", class: \"w-80\" },\n { direction: \"right\", size: \"md\", class: \"w-96\" },\n { direction: \"right\", size: \"lg\", class: \"w-[480px]\" },\n { direction: \"right\", size: \"full\", class: \"w-[96vw]\" },\n ],\n defaultVariants: {\n direction: \"bottom\",\n size: \"md\",\n },\n },\n);\n\n/**\n * Close button size classes\n */\nconst closeButtonSizeClasses: Record<DrawerSize, string> = {\n xs: \"top-2 right-2 p-1 [&_svg]:size-3.5\",\n sm: \"top-3 right-3 p-1.5 [&_svg]:size-4\",\n md: \"top-4 right-4 p-1.5 [&_svg]:size-4\",\n lg: \"top-4 right-4 p-2 [&_svg]:size-5\",\n full: \"top-5 right-5 p-2 [&_svg]:size-5\",\n};\n\n/**\n * Padding classes based on size\n */\nconst paddingClasses: Record<DrawerSize, string> = {\n xs: \"p-3\",\n sm: \"p-4\",\n md: \"p-5\",\n lg: \"p-6\",\n full: \"p-6\",\n};\n\nexport const Drawer = React.memo<DrawerProps>(\n ({\n open,\n onOpenChange,\n direction = \"bottom\",\n modal = true,\n dismissible = true,\n snapPoints,\n children,\n }) => {\n return (\n <DrawerContext.Provider value={{ direction }}>\n <DrawerPrimitive.Root\n open={open}\n onOpenChange={onOpenChange}\n direction={direction}\n modal={modal}\n dismissible={dismissible}\n snapPoints={snapPoints}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n },\n);\n\nDrawer.displayName = \"Drawer\";\n\nexport const DrawerTrigger = React.memo<DrawerTriggerProps>(\n ({ children, asChild = false, className, ref }) => {\n return (\n <DrawerPrimitive.Trigger\n ref={ref}\n asChild={asChild}\n className={className}\n >\n {children}\n </DrawerPrimitive.Trigger>\n );\n },\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n\nexport const DrawerPortal = DrawerPrimitive.Portal;\n\nexport const DrawerOverlay = React.memo<DrawerOverlayProps>(\n ({ className, ref, classNames, ...props }) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\n \"drawer_overlay\",\n \"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm\",\n classNames?.overlay,\n className,\n )}\n data-slot=\"drawer-overlay\"\n {...props}\n />\n ),\n);\n\nDrawerOverlay.displayName = \"DrawerOverlay\";\n\nexport const DrawerContent = React.memo<DrawerContentProps>(\n ({\n children,\n direction: directionProp,\n size = \"md\",\n showCloseButton = false,\n showHandle,\n className,\n ref,\n classNames,\n }) => {\n const { direction: contextDirection } = useContext(DrawerContext);\n const direction = directionProp ?? contextDirection;\n\n // Default showHandle based on direction\n const shouldShowHandle =\n showHandle ?? (direction === \"bottom\" || direction === \"top\");\n\n const isHorizontal = direction === \"left\" || direction === \"right\";\n\n return (\n <DrawerPortal>\n <DrawerOverlay classNames={classNames} />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"drawer_content\",\n drawerContentVariants({ direction, size }),\n paddingClasses[size],\n \"z-50\",\n classNames?.content,\n className,\n )}\n data-slot=\"drawer-content\"\n >\n {/* Handle for bottom drawer */}\n {shouldShowHandle && direction === \"bottom\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Handle for top drawer */}\n {shouldShowHandle && direction === \"top\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4 order-last mt-auto\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Handle for left drawer */}\n {shouldShowHandle && direction === \"left\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"absolute right-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Handle for right drawer */}\n {shouldShowHandle && direction === \"right\" && (\n <div\n className={cn(\n \"drawer_handle\",\n \"absolute left-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border\",\n classNames?.handle\n )}\n data-slot=\"drawer-handle\"\n />\n )}\n\n {/* Close button */}\n {showCloseButton && (\n <DrawerPrimitive.Close\n className={cn(\n \"drawer_closeButton\",\n \"absolute rounded-md opacity-70 transition-opacity hover:opacity-100\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2\",\n \"text-text-secondary hover:text-text-primary hover:bg-surface\",\n closeButtonSizeClasses[size],\n classNames?.closeButton,\n )}\n data-slot=\"drawer-closeButton\"\n >\n <X />\n <span className=\"sr-only\">Close</span>\n </DrawerPrimitive.Close>\n )}\n\n {/* Content wrapper */}\n <div\n className={cn(\n \"flex flex-col flex-1 min-h-0\",\n isHorizontal && \"overflow-y-auto\",\n showCloseButton && \"pt-6\",\n )}\n >\n {children}\n </div>\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n },\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nexport const DrawerHeader = React.memo<DrawerHeaderProps>(\n ({ children, className, ref, classNames }) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"drawer_header\",\n \"flex flex-col gap-1.5 mb-4 shrink-0\",\n classNames?.header,\n className\n )}\n data-slot=\"drawer-header\"\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n\nexport const DrawerBody = React.memo<DrawerBodyProps>(\n ({ children, className, ref, classNames }) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"drawer_body\",\n \"flex-1 overflow-y-auto min-h-0\",\n classNames?.body,\n className\n )}\n data-slot=\"drawer-body\"\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerBody.displayName = \"DrawerBody\";\n\nexport const DrawerFooter = React.memo<DrawerFooterProps>(\n ({ children, className, ref, classNames }) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"drawer_footer\",\n \"flex gap-2 mt-auto pt-4 shrink-0\",\n classNames?.footer,\n className\n )}\n data-slot=\"drawer-footer\"\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n\nexport const DrawerTitle = React.memo<DrawerTitleProps>(\n ({ children, className, ref, classNames }) => {\n return (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"drawer_title\",\n \"text-lg font-semibold text-text-primary\",\n classNames?.title,\n className\n )}\n data-slot=\"drawer-title\"\n >\n {children}\n </DrawerPrimitive.Title>\n );\n },\n);\n\nDrawerTitle.displayName = \"DrawerTitle\";\n\nexport const DrawerDescription = React.memo<DrawerDescriptionProps>(\n ({ children, className, ref, classNames }) => {\n return (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\n \"drawer_description\",\n \"text-sm text-text-secondary\",\n classNames?.description,\n className\n )}\n data-slot=\"drawer-description\"\n >\n {children}\n </DrawerPrimitive.Description>\n );\n },\n);\n\nDrawerDescription.displayName = \"DrawerDescription\";\n\nexport const DrawerClose = React.memo<DrawerCloseProps>(\n ({ children, asChild = false, className, ref }) => {\n return (\n <DrawerPrimitive.Close ref={ref} asChild={asChild} className={className}>\n {children}\n </DrawerPrimitive.Close>\n );\n },\n);\n\nDrawerClose.displayName = \"DrawerClose\";\n\n/**\n * ComposedDrawer - A convenience component that combines all drawer parts\n */\nexport function ComposedDrawer({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n direction = \"right\",\n size = \"md\",\n modal = true,\n showCloseButton = true,\n showHandle,\n dismissible = true,\n hideHeader = false,\n hideFooter = false,\n className,\n contentClassName,\n classNames,\n}: ComposedDrawerProps) {\n return (\n <Drawer\n open={open}\n onOpenChange={onOpenChange}\n direction={direction}\n modal={modal}\n dismissible={dismissible}\n >\n <DrawerContent\n direction={direction}\n size={size}\n showCloseButton={showCloseButton}\n showHandle={showHandle}\n className={contentClassName}\n classNames={classNames}\n >\n {!hideHeader && (title || description) && (\n <DrawerHeader className={className} classNames={classNames}>\n {title && <DrawerTitle classNames={classNames}>{title}</DrawerTitle>}\n {description && (\n <DrawerDescription classNames={classNames}>{description}</DrawerDescription>\n )}\n </DrawerHeader>\n )}\n <DrawerBody classNames={classNames}>{children}</DrawerBody>\n {!hideFooter && footer && <DrawerFooter classNames={classNames}>{footer}</DrawerFooter>}\n </DrawerContent>\n </Drawer>\n );\n}\n\nComposedDrawer.displayName = \"ComposedDrawer\";\n\nexport type * from \"./types\";\nexport default ComposedDrawer;\n"]}
@@ -0,0 +1,107 @@
1
+ import { createPopoverColorVariants, componentColors } from './chunk-NTPWR57C.js';
2
+ import { cn } from './chunk-NGYLRX6F.js';
3
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
4
+ import { cva } from 'class-variance-authority';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function Popover({
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsx(
11
+ PopoverPrimitive.Root,
12
+ {
13
+ "data-slot": "popover",
14
+ ...props
15
+ }
16
+ );
17
+ }
18
+ function PopoverTrigger({
19
+ ...props
20
+ }) {
21
+ return /* @__PURE__ */ jsx(
22
+ PopoverPrimitive.Trigger,
23
+ {
24
+ "data-slot": "popover-trigger",
25
+ ...props
26
+ }
27
+ );
28
+ }
29
+ var popoverContentVariants = cva(
30
+ "overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border outline-none",
31
+ {
32
+ variants: {
33
+ size: {
34
+ xs: "p-2 text-xs",
35
+ sm: "p-3 text-sm",
36
+ md: "p-4 text-base",
37
+ lg: "p-5 text-lg"
38
+ },
39
+ variant: {
40
+ default: "",
41
+ solid: "",
42
+ soft: ""
43
+ },
44
+ color: {
45
+ default: "",
46
+ primary: "",
47
+ secondary: "",
48
+ accent: "",
49
+ success: "",
50
+ error: "",
51
+ warning: "",
52
+ info: ""
53
+ }
54
+ },
55
+ compoundVariants: createPopoverColorVariants(componentColors, [
56
+ "default",
57
+ "solid",
58
+ "soft"
59
+ ]),
60
+ defaultVariants: {
61
+ size: "md",
62
+ variant: "default",
63
+ color: "default"
64
+ }
65
+ }
66
+ );
67
+ function PopoverContent({
68
+ className,
69
+ align = "center",
70
+ sideOffset = 4,
71
+ size = "md",
72
+ variant = "default",
73
+ color = "default",
74
+ classNames,
75
+ ...props
76
+ }) {
77
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
78
+ PopoverPrimitive.Content,
79
+ {
80
+ "data-slot": "popover-content",
81
+ align,
82
+ sideOffset,
83
+ className: cn(
84
+ "popover_content",
85
+ popoverContentVariants({ size, variant, color }),
86
+ className,
87
+ classNames?.content
88
+ ),
89
+ ...props
90
+ }
91
+ ) });
92
+ }
93
+ function PopoverAnchor({
94
+ ...props
95
+ }) {
96
+ return /* @__PURE__ */ jsx(
97
+ PopoverPrimitive.Anchor,
98
+ {
99
+ "data-slot": "popover-anchor",
100
+ ...props
101
+ }
102
+ );
103
+ }
104
+
105
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
106
+ //# sourceMappingURL=chunk-DH7R6NBG.js.map
107
+ //# sourceMappingURL=chunk-DH7R6NBG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/popover/index.tsx"],"names":[],"mappings":";;;;;;AAUA,SAAS,OAAA,CAAQ;AAAA,EACf,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,IAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,GAAG;AACL,CAAA,EAA0D;AACxD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,sBAAA,GAAyB,GAAA;AAAA,EAC7B,6bAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,eAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,EAAA;AAAA,QACT,OAAA,EAAS,EAAA;AAAA,QACT,SAAA,EAAW,EAAA;AAAA,QACX,MAAA,EAAQ,EAAA;AAAA,QACR,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,gBAAA,EAAkB,2BAA2B,eAAA,EAAiB;AAAA,MAC5D,SAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,IACD,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAQA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,KAAA,GAAQ,QAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,KAAA,GAAQ,SAAA;AAAA,EACR,UAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA;AAAA,QACA,sBAAA,CAAuB,EAAE,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,QAC/C,SAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,GAAG;AACL,CAAA,EAAyD;AACvD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,MAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-DH7R6NBG.js","sourcesContent":["'use client'\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../utils'\nimport { componentColors, createPopoverColorVariants } from '../variants'\nimport type { PopoverClassNames } from './types'\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return (\n <PopoverPrimitive.Root\n data-slot=\"popover\"\n {...props}\n />\n )\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return (\n <PopoverPrimitive.Trigger\n data-slot=\"popover-trigger\"\n {...props}\n />\n )\n}\n\nconst popoverContentVariants = cva(\n 'overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border outline-none',\n {\n variants: {\n size: {\n xs: 'p-2 text-xs',\n sm: 'p-3 text-sm',\n md: 'p-4 text-base',\n lg: 'p-5 text-lg',\n },\n variant: {\n default: '',\n solid: '',\n soft: '',\n },\n color: {\n default: '',\n primary: '',\n secondary: '',\n accent: '',\n success: '',\n error: '',\n warning: '',\n info: '',\n },\n },\n compoundVariants: createPopoverColorVariants(componentColors, [\n 'default',\n 'solid',\n 'soft',\n ]),\n defaultVariants: {\n size: 'md',\n variant: 'default',\n color: 'default',\n },\n },\n)\n\nexport interface PopoverContentProps\n extends Omit<React.ComponentProps<typeof PopoverPrimitive.Content>, 'color'>,\n VariantProps<typeof popoverContentVariants> {\n classNames?: PopoverClassNames\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n size = 'md',\n variant = 'default',\n color = 'default',\n classNames,\n ...props\n}: PopoverContentProps) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'popover_content',\n popoverContentVariants({ size, variant, color }),\n className,\n classNames?.content,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return (\n <PopoverPrimitive.Anchor\n data-slot=\"popover-anchor\"\n {...props}\n />\n )\n}\n\nexport type * from './types'\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n"]}
@@ -1,14 +1,15 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
2
- import { useState, useRef, useEffect } from 'react';
1
+ import { cn } from './chunk-NGYLRX6F.js';
2
+ import React, { useState, useRef, useEffect } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
- function Image({
5
+ var Image = React.memo(({
6
6
  src,
7
7
  withBlur,
8
- className = "",
8
+ className,
9
+ classNames,
9
10
  fetchPriority = "auto",
10
11
  ...props
11
- }) {
12
+ }) => {
12
13
  const [imageError, setImageError] = useState(false);
13
14
  const [isLoaded, setIsLoaded] = useState(false);
14
15
  const imageRef = useRef(null);
@@ -26,7 +27,12 @@ function Image({
26
27
  }
27
28
  return () => img?.removeEventListener("load", handleLoad);
28
29
  }, []);
29
- return /* @__PURE__ */ jsxs("div", { className: `relative inline-block ${className || ""}`, children: [
30
+ return /* @__PURE__ */ jsxs("div", { className: cn(
31
+ "image_root",
32
+ "relative inline-block",
33
+ classNames?.root,
34
+ className
35
+ ), children: [
30
36
  withBlur && !isLoaded && /* @__PURE__ */ jsx(
31
37
  "div",
32
38
  {
@@ -34,7 +40,11 @@ function Image({
34
40
  width: props.width ? `${props.width}px` : void 0,
35
41
  height: props.height ? `${props.height}px` : void 0
36
42
  },
37
- className: "\n absolute top-0 left-0 w-full h-full\n rounded-md\n animate-pulse\n bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200\n "
43
+ className: cn(
44
+ "image_placeholder",
45
+ "absolute top-0 left-0 w-full h-full rounded-md animate-pulse bg-gradient-to-r from-surface via-background to-surface",
46
+ classNames?.placeholder
47
+ )
38
48
  }
39
49
  ),
40
50
  /* @__PURE__ */ jsx(
@@ -43,7 +53,13 @@ function Image({
43
53
  ref: imageRef,
44
54
  onError: () => setImageError(true),
45
55
  src: imageError || !src ? "/static/png/empty.png" : src,
46
- className: cn("transition-all duration-500 ease-in-out", className),
56
+ className: cn(
57
+ "image_image",
58
+ "transition-all duration-500 ease-in-out",
59
+ imageError && "image_error",
60
+ imageError && classNames?.error,
61
+ classNames?.image
62
+ ),
47
63
  ...props,
48
64
  alt: props.alt,
49
65
  loading: "lazy",
@@ -51,9 +67,10 @@ function Image({
51
67
  }
52
68
  )
53
69
  ] });
54
- }
70
+ });
71
+ Image.displayName = "Image";
55
72
  var image_default = Image;
56
73
 
57
74
  export { image_default };
58
- //# sourceMappingURL=chunk-XMAH5PDW.js.map
59
- //# sourceMappingURL=chunk-XMAH5PDW.js.map
75
+ //# sourceMappingURL=chunk-FEMHXG2P.js.map
76
+ //# sourceMappingURL=chunk-FEMHXG2P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/image/index.tsx"],"names":[],"mappings":";;;;AAQA,IAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAiB,CAAC;AAAA,EACpC,GAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAClD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,WAAA,CAAY,IAAI,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,MAAM,QAAA,CAAS,OAAA;AACrB,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,UAAA,EAAW;AAAA,IACb,CAAA,MAAO;AACL,MAAA,GAAA,EAAK,gBAAA,CAAiB,QAAQ,UAAU,CAAA;AAAA,IAC1C;AAEA,IAAA,OAAO,MAAM,GAAA,EAAK,mBAAA,CAAoB,MAAA,EAAQ,UAAU,CAAA;AAAA,EAC1D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA;AAAA,IACd,YAAA;AAAA,IACA,uBAAA;AAAA,IACA,UAAA,EAAY,IAAA;AAAA,IACZ;AAAA,GACF,EACG,QAAA,EAAA;AAAA,IAAA,QAAA,IAAY,CAAC,QAAA,oBACZ,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,OAAO,KAAA,CAAM,KAAA,GAAQ,CAAA,EAAG,KAAA,CAAM,KAAK,CAAA,EAAA,CAAA,GAAO,MAAA;AAAA,UAC1C,QAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,KAAA,CAAM,MAAM,CAAA,EAAA,CAAA,GAAO;AAAA,SAC/C;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,mBAAA;AAAA,UACA,sHAAA;AAAA,UACA,UAAA,EAAY;AAAA;AACd;AAAA,KACF;AAAA,oBAEF,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,QACjC,GAAA,EAAK,UAAA,IAAc,CAAC,GAAA,GAAM,uBAAA,GAA0B,GAAA;AAAA,QACpD,SAAA,EAAW,EAAA;AAAA,UACT,aAAA;AAAA,UACA,yCAAA;AAAA,UACA,UAAA,IAAc,aAAA;AAAA,UACd,cAAc,UAAA,EAAY,KAAA;AAAA,UAC1B,UAAA,EAAY;AAAA,SACd;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,KAAK,KAAA,CAAM,GAAA;AAAA,QACX,OAAA,EAAQ,MAAA;AAAA,QACR;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAO,aAAA,GAAQ","file":"chunk-FEMHXG2P.js","sourcesContent":["'use client'\n\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { cn } from '../utils'\n\nimport { ImageProps } from './types'\n\nconst Image = React.memo<ImageProps>(({\n src,\n withBlur,\n className,\n classNames,\n fetchPriority = 'auto',\n ...props\n}) => {\n const [imageError, setImageError] = useState(false)\n const [isLoaded, setIsLoaded] = useState(false)\n const imageRef = useRef<HTMLImageElement>(null)\n\n useEffect(() => {\n const handleLoad = () => {\n if (imageRef.current) {\n setIsLoaded(true)\n }\n }\n\n const img = imageRef.current\n if (img?.complete) {\n handleLoad()\n } else {\n img?.addEventListener('load', handleLoad)\n }\n\n return () => img?.removeEventListener('load', handleLoad)\n }, [])\n\n return (\n <div className={cn(\n 'image_root',\n 'relative inline-block',\n classNames?.root,\n className\n )}>\n {withBlur && !isLoaded && (\n <div\n style={{\n width: props.width ? `${props.width}px` : undefined,\n height: props.height ? `${props.height}px` : undefined,\n }}\n className={cn(\n 'image_placeholder',\n 'absolute top-0 left-0 w-full h-full rounded-md animate-pulse bg-gradient-to-r from-surface via-background to-surface',\n classNames?.placeholder\n )}\n />\n )}\n <img\n ref={imageRef}\n onError={() => setImageError(true)}\n src={imageError || !src ? '/static/png/empty.png' : src}\n className={cn(\n 'image_image',\n 'transition-all duration-500 ease-in-out',\n imageError && 'image_error',\n imageError && classNames?.error,\n classNames?.image\n )}\n {...props}\n alt={props.alt}\n loading=\"lazy\"\n fetchPriority={fetchPriority}\n />\n </div>\n )\n})\n\nImage.displayName = 'Image'\n\nexport type * from './types'\nexport default Image\n"]}