@definable/ui 0.1.0 → 0.1.8

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 (322) hide show
  1. package/README.md +6 -6
  2. package/dist/alert-dialog.d.ts +18 -0
  3. package/dist/alert.d.ts +18 -0
  4. package/dist/avatar.d.ts +9 -0
  5. package/dist/badge.d.ts +15 -0
  6. package/dist/button.d.ts +16 -0
  7. package/dist/calendar.d.ts +21 -0
  8. package/dist/card.d.ts +15 -0
  9. package/dist/carousel.d.ts +18 -0
  10. package/dist/charts.d.ts +26 -0
  11. package/dist/checkbox.d.ts +6 -0
  12. package/dist/collapse.d.ts +15 -0
  13. package/dist/command-menu.d.ts +12 -0
  14. package/dist/command.d.ts +89 -0
  15. package/dist/components/alert-dialog.d.ts +15 -0
  16. package/dist/components/alert-dialog.esm.js +59 -0
  17. package/dist/components/alert-dialog.esm.js.map +1 -0
  18. package/dist/components/alert-dialog.js +2 -0
  19. package/dist/components/alert-dialog.js.map +1 -0
  20. package/dist/components/alert.d.ts +11 -0
  21. package/dist/components/alert.esm.js +51 -0
  22. package/dist/components/alert.esm.js.map +1 -0
  23. package/dist/components/alert.js +2 -0
  24. package/dist/components/alert.js.map +1 -0
  25. package/dist/components/avatar.d.ts +5 -0
  26. package/dist/components/avatar.esm.js +42 -0
  27. package/dist/components/avatar.esm.js.map +1 -0
  28. package/dist/components/avatar.js +2 -0
  29. package/dist/components/avatar.js.map +1 -0
  30. package/dist/components/badge.d.ts +9 -0
  31. package/dist/components/badge.esm.js +27 -0
  32. package/dist/components/badge.esm.js.map +1 -0
  33. package/dist/components/badge.js +2 -0
  34. package/dist/components/badge.js.map +1 -0
  35. package/dist/components/button.d.ts +13 -0
  36. package/dist/components/button.esm.js +48 -0
  37. package/dist/components/button.esm.js.map +1 -0
  38. package/dist/components/button.js +2 -0
  39. package/dist/components/button.js.map +1 -0
  40. package/dist/components/calendar.d.ts +18 -0
  41. package/dist/components/calendar.esm.js +5562 -0
  42. package/dist/components/calendar.esm.js.map +1 -0
  43. package/dist/components/calendar.js +2 -0
  44. package/dist/components/calendar.js.map +1 -0
  45. package/dist/components/card.d.ts +8 -0
  46. package/dist/components/card.esm.js +62 -0
  47. package/dist/components/card.esm.js.map +1 -0
  48. package/dist/components/card.js +2 -0
  49. package/dist/components/card.js.map +1 -0
  50. package/dist/components/carousel.d.ts +13 -0
  51. package/dist/components/carousel.esm.js +101 -0
  52. package/dist/components/carousel.esm.js.map +1 -0
  53. package/dist/components/carousel.js +2 -0
  54. package/dist/components/carousel.js.map +1 -0
  55. package/dist/components/charts.d.ts +17 -0
  56. package/dist/components/charts.esm.js +48 -0
  57. package/dist/components/charts.esm.js.map +1 -0
  58. package/dist/components/charts.js +2 -0
  59. package/dist/components/charts.js.map +1 -0
  60. package/dist/components/checkbox.d.ts +4 -0
  61. package/dist/components/checkbox.esm.js +32 -0
  62. package/dist/components/checkbox.esm.js.map +1 -0
  63. package/dist/components/checkbox.js +2 -0
  64. package/dist/components/checkbox.js.map +1 -0
  65. package/dist/components/collapse.d.ts +11 -0
  66. package/dist/components/collapse.esm.js +50 -0
  67. package/dist/components/collapse.esm.js.map +1 -0
  68. package/dist/components/collapse.js +2 -0
  69. package/dist/components/collapse.js.map +1 -0
  70. package/dist/components/command-menu.d.ts +7 -0
  71. package/dist/components/command-menu.esm.js +90 -0
  72. package/dist/components/command-menu.esm.js.map +1 -0
  73. package/dist/components/command-menu.js +2 -0
  74. package/dist/components/command-menu.js.map +1 -0
  75. package/dist/components/command.d.ts +79 -0
  76. package/dist/components/command.esm.js +425 -0
  77. package/dist/components/command.esm.js.map +1 -0
  78. package/dist/components/command.js +2 -0
  79. package/dist/components/command.js.map +1 -0
  80. package/dist/components/confirmation-modal.d.ts +12 -0
  81. package/dist/components/confirmation-modal.esm.js +46 -0
  82. package/dist/components/confirmation-modal.esm.js.map +1 -0
  83. package/dist/components/confirmation-modal.js +2 -0
  84. package/dist/components/confirmation-modal.js.map +1 -0
  85. package/dist/components/context-menu.d.ts +26 -0
  86. package/dist/components/context-menu.esm.js +186 -0
  87. package/dist/components/context-menu.esm.js.map +1 -0
  88. package/dist/components/context-menu.js +2 -0
  89. package/dist/components/context-menu.js.map +1 -0
  90. package/dist/components/dialog.d.ts +21 -0
  91. package/dist/components/dialog.esm.js +122 -0
  92. package/dist/components/dialog.esm.js.map +1 -0
  93. package/dist/components/dialog.js +2 -0
  94. package/dist/components/dialog.js.map +1 -0
  95. package/dist/components/dropdown-menu.d.ts +9 -0
  96. package/dist/components/dropdown-menu.esm.js +49 -0
  97. package/dist/components/dropdown-menu.esm.js.map +1 -0
  98. package/dist/components/dropdown-menu.js +2 -0
  99. package/dist/components/dropdown-menu.js.map +1 -0
  100. package/dist/components/dropzone.d.ts +12 -0
  101. package/dist/components/dropzone.esm.js +45 -0
  102. package/dist/components/dropzone.esm.js.map +1 -0
  103. package/dist/components/dropzone.js +2 -0
  104. package/dist/components/dropzone.js.map +1 -0
  105. package/dist/components/image-cropper-modal.d.ts +10 -0
  106. package/dist/components/image-cropper-modal.esm.js +251 -0
  107. package/dist/components/image-cropper-modal.esm.js.map +1 -0
  108. package/dist/components/image-cropper-modal.js +2 -0
  109. package/dist/components/image-cropper-modal.js.map +1 -0
  110. package/dist/components/image-cropper.d.ts +11 -0
  111. package/dist/components/image-cropper.esm.js +131 -0
  112. package/dist/components/image-cropper.esm.js.map +1 -0
  113. package/dist/components/image-cropper.js +2 -0
  114. package/dist/components/image-cropper.js.map +1 -0
  115. package/dist/components/input.d.ts +5 -0
  116. package/dist/components/input.esm.js +22 -0
  117. package/dist/components/input.esm.js.map +1 -0
  118. package/dist/components/input.js +2 -0
  119. package/dist/components/input.js.map +1 -0
  120. package/dist/components/label.d.ts +4 -0
  121. package/dist/components/label.esm.js +20 -0
  122. package/dist/components/label.esm.js.map +1 -0
  123. package/dist/components/label.js +2 -0
  124. package/dist/components/label.js.map +1 -0
  125. package/dist/components/loader.d.ts +10 -0
  126. package/dist/components/loader.esm.js +70 -0
  127. package/dist/components/loader.esm.js.map +1 -0
  128. package/dist/components/loader.js +2 -0
  129. package/dist/components/loader.js.map +1 -0
  130. package/dist/components/loading-placeholder.d.ts +8 -0
  131. package/dist/components/loading-placeholder.esm.js +25 -0
  132. package/dist/components/loading-placeholder.esm.js.map +1 -0
  133. package/dist/components/loading-placeholder.js +2 -0
  134. package/dist/components/loading-placeholder.js.map +1 -0
  135. package/dist/components/markdown.d.ts +2 -0
  136. package/dist/components/markdown.esm.js +12066 -0
  137. package/dist/components/markdown.esm.js.map +1 -0
  138. package/dist/components/markdown.js +18 -0
  139. package/dist/components/markdown.js.map +1 -0
  140. package/dist/components/mention.d.ts +25 -0
  141. package/dist/components/mention.esm.js +154 -0
  142. package/dist/components/mention.esm.js.map +1 -0
  143. package/dist/components/mention.js +2 -0
  144. package/dist/components/mention.js.map +1 -0
  145. package/dist/components/modal.d.ts +19 -0
  146. package/dist/components/modal.esm.js +92 -0
  147. package/dist/components/modal.esm.js.map +1 -0
  148. package/dist/components/modal.js +2 -0
  149. package/dist/components/modal.js.map +1 -0
  150. package/dist/components/monaco-editor.d.ts +2 -0
  151. package/dist/components/monaco-editor.esm.js +295 -0
  152. package/dist/components/monaco-editor.esm.js.map +1 -0
  153. package/dist/components/monaco-editor.js +8 -0
  154. package/dist/components/monaco-editor.js.map +1 -0
  155. package/dist/components/notification.d.ts +5 -0
  156. package/dist/components/notification.esm.js +26 -0
  157. package/dist/components/notification.esm.js.map +1 -0
  158. package/dist/components/notification.js +2 -0
  159. package/dist/components/notification.js.map +1 -0
  160. package/dist/components/popover.d.ts +6 -0
  161. package/dist/components/popover.esm.js +24 -0
  162. package/dist/components/popover.esm.js.map +1 -0
  163. package/dist/components/popover.js +2 -0
  164. package/dist/components/popover.js.map +1 -0
  165. package/dist/components/progress.d.ts +4 -0
  166. package/dist/components/progress.esm.js +35 -0
  167. package/dist/components/progress.esm.js.map +1 -0
  168. package/dist/components/progress.js +2 -0
  169. package/dist/components/progress.js.map +1 -0
  170. package/dist/components/radio-group.d.ts +5 -0
  171. package/dist/components/radio-group.esm.js +48 -0
  172. package/dist/components/radio-group.esm.js.map +1 -0
  173. package/dist/components/radio-group.js +2 -0
  174. package/dist/components/radio-group.js.map +1 -0
  175. package/dist/components/scroll-area.d.ts +5 -0
  176. package/dist/components/scroll-area.esm.js +47 -0
  177. package/dist/components/scroll-area.esm.js.map +1 -0
  178. package/dist/components/scroll-area.js +2 -0
  179. package/dist/components/scroll-area.js.map +1 -0
  180. package/dist/components/select.d.ts +20 -0
  181. package/dist/components/select.esm.js +131 -0
  182. package/dist/components/select.esm.js.map +1 -0
  183. package/dist/components/select.js +2 -0
  184. package/dist/components/select.js.map +1 -0
  185. package/dist/components/selection-bar.d.ts +11 -0
  186. package/dist/components/selection-bar.esm.js +54 -0
  187. package/dist/components/selection-bar.esm.js.map +1 -0
  188. package/dist/components/selection-bar.js +2 -0
  189. package/dist/components/selection-bar.js.map +1 -0
  190. package/dist/components/separator.d.ts +4 -0
  191. package/dist/components/separator.esm.js +25 -0
  192. package/dist/components/separator.esm.js.map +1 -0
  193. package/dist/components/separator.js +2 -0
  194. package/dist/components/separator.js.map +1 -0
  195. package/dist/components/sheet.d.ts +13 -0
  196. package/dist/components/sheet.esm.js +129 -0
  197. package/dist/components/sheet.esm.js.map +1 -0
  198. package/dist/components/sheet.js +2 -0
  199. package/dist/components/sheet.js.map +1 -0
  200. package/dist/components/skeleton.d.ts +2 -0
  201. package/dist/components/skeleton.esm.js +18 -0
  202. package/dist/components/skeleton.esm.js.map +1 -0
  203. package/dist/components/skeleton.js +2 -0
  204. package/dist/components/skeleton.js.map +1 -0
  205. package/dist/components/slider.d.ts +4 -0
  206. package/dist/components/slider.esm.js +33 -0
  207. package/dist/components/slider.esm.js.map +1 -0
  208. package/dist/components/slider.js +2 -0
  209. package/dist/components/slider.js.map +1 -0
  210. package/dist/components/stepper.d.ts +2 -0
  211. package/dist/components/stepper.esm.js +214 -0
  212. package/dist/components/stepper.esm.js.map +1 -0
  213. package/dist/components/stepper.js +2 -0
  214. package/dist/components/stepper.js.map +1 -0
  215. package/dist/components/switch.d.ts +4 -0
  216. package/dist/components/switch.esm.js +36 -0
  217. package/dist/components/switch.esm.js.map +1 -0
  218. package/dist/components/switch.js +2 -0
  219. package/dist/components/switch.js.map +1 -0
  220. package/dist/components/table-empty.d.ts +9 -0
  221. package/dist/components/table-empty.esm.js +23 -0
  222. package/dist/components/table-empty.esm.js.map +1 -0
  223. package/dist/components/table-empty.js +2 -0
  224. package/dist/components/table-empty.js.map +1 -0
  225. package/dist/components/table-mobile.d.ts +4 -0
  226. package/dist/components/table-mobile.esm.js +92 -0
  227. package/dist/components/table-mobile.esm.js.map +1 -0
  228. package/dist/components/table-mobile.js +2 -0
  229. package/dist/components/table-mobile.js.map +1 -0
  230. package/dist/components/table.d.ts +31 -0
  231. package/dist/components/table.esm.js +143 -0
  232. package/dist/components/table.esm.js.map +1 -0
  233. package/dist/components/table.js +2 -0
  234. package/dist/components/table.js.map +1 -0
  235. package/dist/components/tabs.d.ts +7 -0
  236. package/dist/components/tabs.esm.js +47 -0
  237. package/dist/components/tabs.esm.js.map +1 -0
  238. package/dist/components/tabs.js +2 -0
  239. package/dist/components/tabs.js.map +1 -0
  240. package/dist/components/terminal.d.ts +43 -0
  241. package/dist/components/terminal.esm.js +50 -0
  242. package/dist/components/terminal.esm.js.map +1 -0
  243. package/dist/components/terminal.js +2 -0
  244. package/dist/components/terminal.js.map +1 -0
  245. package/dist/components/textarea.d.ts +5 -0
  246. package/dist/components/textarea.esm.js +21 -0
  247. package/dist/components/textarea.esm.js.map +1 -0
  248. package/dist/components/textarea.js +2 -0
  249. package/dist/components/textarea.js.map +1 -0
  250. package/dist/components/tooltip.d.ts +8 -0
  251. package/dist/components/tooltip.esm.js +100 -0
  252. package/dist/components/tooltip.esm.js.map +1 -0
  253. package/dist/components/tooltip.js +2 -0
  254. package/dist/components/tooltip.js.map +1 -0
  255. package/dist/components/use-toast.d.ts +21 -0
  256. package/dist/components/use-toast.esm.js +65 -0
  257. package/dist/components/use-toast.esm.js.map +1 -0
  258. package/dist/components/use-toast.js +2 -0
  259. package/dist/components/use-toast.js.map +1 -0
  260. package/dist/confirmation-modal.d.ts +16 -0
  261. package/dist/context-menu.d.ts +41 -0
  262. package/dist/dialog.d.ts +33 -0
  263. package/dist/dropdown-menu.d.ts +16 -0
  264. package/dist/dropzone.d.ts +16 -0
  265. package/dist/image-cropper-modal.d.ts +14 -0
  266. package/dist/image-cropper.d.ts +15 -0
  267. package/dist/index-DACAHwoB.js +35 -0
  268. package/dist/index-DACAHwoB.js.map +1 -0
  269. package/dist/index-Deooizx8.cjs +2 -0
  270. package/dist/index-Deooizx8.cjs.map +1 -0
  271. package/dist/index.d.ts +8 -2
  272. package/dist/index.esm.js +111 -75430
  273. package/dist/index.esm.js.map +1 -1
  274. package/dist/index.js +2 -0
  275. package/dist/index.js.map +1 -0
  276. package/dist/input.d.ts +8 -0
  277. package/dist/jsx-runtime-BYECrxsp.cjs +31 -0
  278. package/dist/jsx-runtime-BYECrxsp.cjs.map +1 -0
  279. package/dist/jsx-runtime-DGlMoOmv.js +631 -0
  280. package/dist/jsx-runtime-DGlMoOmv.js.map +1 -0
  281. package/dist/label.d.ts +6 -0
  282. package/dist/lib/utils.d.ts +2 -0
  283. package/dist/lib/utils.esm.js +5 -0
  284. package/dist/lib/utils.esm.js.map +1 -0
  285. package/dist/lib/utils.js +2 -0
  286. package/dist/lib/utils.js.map +1 -0
  287. package/dist/loader.d.ts +14 -0
  288. package/dist/loading-placeholder.d.ts +12 -0
  289. package/dist/markdown.d.ts +122 -0
  290. package/dist/mention.d.ts +29 -0
  291. package/dist/modal.d.ts +24 -0
  292. package/dist/monaco-editor.d.ts +76 -0
  293. package/dist/notification.d.ts +9 -0
  294. package/dist/popover.d.ts +10 -0
  295. package/dist/progress.d.ts +6 -0
  296. package/dist/radio-group.d.ts +8 -0
  297. package/dist/scroll-area.d.ts +8 -0
  298. package/dist/select.d.ts +31 -0
  299. package/dist/selection-bar.d.ts +15 -0
  300. package/dist/separator.d.ts +6 -0
  301. package/dist/sheet.d.ts +17 -0
  302. package/dist/skeleton.d.ts +5 -0
  303. package/dist/slider.d.ts +6 -0
  304. package/dist/stepper.d.ts +71 -0
  305. package/dist/styles.css +1 -1
  306. package/dist/switch.d.ts +6 -0
  307. package/dist/table-empty.d.ts +13 -0
  308. package/dist/table-mobile.d.ts +37 -0
  309. package/dist/table.d.ts +37 -0
  310. package/dist/tabs.d.ts +12 -0
  311. package/dist/terminal.d.ts +47 -0
  312. package/dist/textarea.d.ts +8 -0
  313. package/dist/tooltip.d.ts +12 -0
  314. package/dist/use-toast.d.ts +28 -0
  315. package/dist/utils-DSKoFOjv.cjs +2 -0
  316. package/dist/utils-DSKoFOjv.cjs.map +1 -0
  317. package/dist/utils-qaFjX9_3.js +2279 -0
  318. package/dist/utils-qaFjX9_3.js.map +1 -0
  319. package/dist/utils.d.ts +5 -0
  320. package/package.json +259 -1
  321. package/dist/index.cjs.js +0 -315
  322. package/dist/index.cjs.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
5
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
6
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
@@ -0,0 +1,62 @@
1
+ import { j as s } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as d from "react";
3
+ import { c as t } from "../utils-qaFjX9_3.js";
4
+ const o = d.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
5
+ "div",
6
+ {
7
+ ref: r,
8
+ className: t(
9
+ "rounded-lg border bg-card text-card-foreground shadow-sm",
10
+ a
11
+ ),
12
+ ...e
13
+ }
14
+ ));
15
+ o.displayName = "Card";
16
+ const i = d.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
17
+ "div",
18
+ {
19
+ ref: r,
20
+ className: t("flex flex-col space-y-1.5 p-6", a),
21
+ ...e
22
+ }
23
+ ));
24
+ i.displayName = "CardHeader";
25
+ const m = d.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
26
+ "h3",
27
+ {
28
+ ref: r,
29
+ className: t("text-lg font-semibold leading-none tracking-tight", a),
30
+ ...e
31
+ }
32
+ ));
33
+ m.displayName = "CardTitle";
34
+ const c = d.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
35
+ "p",
36
+ {
37
+ ref: r,
38
+ className: t("text-sm text-muted-foreground", a),
39
+ ...e
40
+ }
41
+ ));
42
+ c.displayName = "CardDescription";
43
+ const n = d.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ s.jsx("div", { ref: r, className: t("p-6 pt-0", a), ...e }));
44
+ n.displayName = "CardContent";
45
+ const l = d.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ s.jsx(
46
+ "div",
47
+ {
48
+ ref: r,
49
+ className: t("flex items-center p-6 pt-0", a),
50
+ ...e
51
+ }
52
+ ));
53
+ l.displayName = "CardFooter";
54
+ export {
55
+ o as Card,
56
+ n as CardContent,
57
+ c as CardDescription,
58
+ l as CardFooter,
59
+ i as CardHeader,
60
+ m as CardTitle
61
+ };
62
+ //# sourceMappingURL=card.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.esm.js","sources":["../../src/components/card.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } "],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":";;;AAGA,MAAMA,IAAOC,EAAM,WAGjB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAK,cAAc;AAEnB,MAAMO,IAAaN,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAW,cAAc;AAEzB,MAAMC,IAAYP,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,qDAAqDJ,CAAS;AAAA,IAC3E,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAExB,MAAMC,IAAkBR,EAAM,WAG5B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAgB,cAAc;AAE9B,MAAMC,IAAcT,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,4BACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,YAAYJ,CAAS,GAAI,GAAGC,GAAO,CACjE;AACDO,EAAY,cAAc;AAE1B,MAAMC,IAAaV,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,8BAA8BJ,CAAS;AAAA,IACpD,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAW,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../jsx-runtime-BYECrxsp.cjs"),f=require("react"),s=require("../utils-DSKoFOjv.cjs");function u(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=u(f),d=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("rounded-lg border bg-card text-card-foreground shadow-sm",e),...r}));d.displayName="Card";const c=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("flex flex-col space-y-1.5 p-6",e),...r}));c.displayName="CardHeader";const i=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("h3",{ref:t,className:s.cn("text-lg font-semibold leading-none tracking-tight",e),...r}));i.displayName="CardTitle";const l=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("p",{ref:t,className:s.cn("text-sm text-muted-foreground",e),...r}));l.displayName="CardDescription";const m=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("p-6 pt-0",e),...r}));m.displayName="CardContent";const p=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("flex items-center p-6 pt-0",e),...r}));p.displayName="CardFooter";exports.Card=d;exports.CardContent=m;exports.CardDescription=l;exports.CardFooter=p;exports.CardHeader=c;exports.CardTitle=i;
2
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sources":["../../src/components/card.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } "],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":"+cAGMA,EAAOC,EAAM,WAGjB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAAC,MAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,2DACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDH,EAAK,YAAc,OAEnB,MAAMO,EAAaN,EAAM,WAGvB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAAC,MAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CACN,CACD,EACDI,EAAW,YAAc,aAEzB,MAAMC,EAAYP,EAAM,WAGtB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,oDAAqDJ,CAAS,EAC3E,GAAGC,CAAA,CACN,CACD,EACDK,EAAU,YAAc,YAExB,MAAMC,EAAkBR,EAAM,WAG5B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAAC,IAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CACN,CACD,EACDM,EAAgB,YAAc,kBAE9B,MAAMC,EAAcT,EAAM,WAGxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,4BACzB,MAAA,CAAI,IAAAA,EAAU,UAAWE,EAAAA,GAAG,WAAYJ,CAAS,EAAI,GAAGC,EAAO,CACjE,EACDO,EAAY,YAAc,cAE1B,MAAMC,EAAaV,EAAM,WAGvB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAAC,MAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,6BAA8BJ,CAAS,EACpD,GAAGC,CAAA,CACN,CACD,EACDQ,EAAW,YAAc"}
@@ -0,0 +1,13 @@
1
+ export interface CarouselSlide {
2
+ image: string;
3
+ title: string;
4
+ subtitle: string;
5
+ }
6
+ interface CarouselProps {
7
+ slides: CarouselSlide[];
8
+ interval?: number;
9
+ showIndicators?: boolean;
10
+ className?: string;
11
+ }
12
+ export declare function Carousel({ slides, interval, showIndicators, className }: CarouselProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,101 @@
1
+ import { j as n } from "../jsx-runtime-DGlMoOmv.js";
2
+ import { useState as l, useEffect as N } from "react";
3
+ import { AnimatePresence as w, motion as g } from "framer-motion";
4
+ function P({
5
+ slides: r,
6
+ interval: a = 5e3,
7
+ showIndicators: h = !0,
8
+ className: p = ""
9
+ }) {
10
+ const [s, i] = l(0), [c, o] = l(0), [u, d] = l(!1);
11
+ N(() => {
12
+ if (u) return;
13
+ const e = setInterval(() => {
14
+ o(1), i((t) => (t + 1) % r.length);
15
+ }, a);
16
+ return () => clearInterval(e);
17
+ }, [a, r.length, u]);
18
+ const b = {
19
+ enter: (e) => ({
20
+ x: e > 0 ? 1e3 : -1e3,
21
+ opacity: 0
22
+ }),
23
+ center: {
24
+ zIndex: 1,
25
+ x: 0,
26
+ opacity: 1
27
+ },
28
+ exit: (e) => ({
29
+ zIndex: 0,
30
+ x: e < 0 ? 1e3 : -1e3,
31
+ opacity: 0
32
+ })
33
+ }, m = 1e4, j = (e, t) => Math.abs(e) * t, f = (e) => {
34
+ o(e), i((t) => (t + e + r.length) % r.length);
35
+ }, y = (e) => {
36
+ d(!0);
37
+ const t = e > s ? 1 : -1;
38
+ o(t), i(e), setTimeout(() => d(!1), a);
39
+ };
40
+ return /* @__PURE__ */ n.jsxs("div", { className: `relative overflow-hidden ${p}`, children: [
41
+ /* @__PURE__ */ n.jsx(w, { initial: !1, custom: c, children: /* @__PURE__ */ n.jsxs(
42
+ g.div,
43
+ {
44
+ custom: c,
45
+ variants: b,
46
+ initial: "enter",
47
+ animate: "center",
48
+ exit: "exit",
49
+ transition: {
50
+ x: { type: "spring", stiffness: 300, damping: 30 },
51
+ opacity: { duration: 0.2 }
52
+ },
53
+ drag: "x",
54
+ dragConstraints: { left: 0, right: 0 },
55
+ dragElastic: 1,
56
+ onDragEnd: (e, { offset: t, velocity: v }) => {
57
+ const x = j(t.x, v.x);
58
+ x < -m ? f(1) : x > m && f(-1);
59
+ },
60
+ className: "absolute inset-0",
61
+ children: [
62
+ /* @__PURE__ */ n.jsx("div", { className: "absolute inset-0 bg-gradient-to-b from-primary/20", children: /* @__PURE__ */ n.jsx(
63
+ "img",
64
+ {
65
+ src: r[s].image,
66
+ alt: "carousel",
67
+ className: "w-full h-full object-cover"
68
+ }
69
+ ) }),
70
+ /* @__PURE__ */ n.jsx("div", { className: "absolute bottom-20 left-8 text-foreground", children: /* @__PURE__ */ n.jsxs(
71
+ g.h1,
72
+ {
73
+ className: "text-4xl font-semibold",
74
+ initial: { y: 20, opacity: 0 },
75
+ animate: { y: 0, opacity: 1 },
76
+ transition: { delay: 0.2 },
77
+ children: [
78
+ r[s].title,
79
+ /* @__PURE__ */ n.jsx("br", {}),
80
+ r[s].subtitle
81
+ ]
82
+ }
83
+ ) })
84
+ ]
85
+ },
86
+ s
87
+ ) }),
88
+ h && /* @__PURE__ */ n.jsx("div", { className: "absolute bottom-8 left-8 flex gap-2 z-10", children: r.map((e, t) => /* @__PURE__ */ n.jsx(
89
+ "button",
90
+ {
91
+ onClick: () => y(t),
92
+ className: `w-8 h-1 rounded-full transition-all duration-300 ${t === s ? "bg-foreground" : "bg-foreground/30 hover:bg-foreground/50"}`
93
+ },
94
+ t
95
+ )) })
96
+ ] });
97
+ }
98
+ export {
99
+ P as Carousel
100
+ };
101
+ //# sourceMappingURL=carousel.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.esm.js","sources":["../../src/components/carousel.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nexport interface CarouselSlide {\n image: string;\n title: string;\n subtitle: string;\n}\n\ninterface CarouselProps {\n slides: CarouselSlide[];\n interval?: number;\n showIndicators?: boolean;\n className?: string;\n}\n\nexport function Carousel({ \n slides, \n interval = 5000, \n showIndicators = true,\n className = \"\"\n}: CarouselProps) {\n const [currentSlide, setCurrentSlide] = useState(0);\n const [direction, setDirection] = useState(0);\n const [isPaused, setIsPaused] = useState(false);\n\n useEffect(() => {\n if (isPaused) return;\n \n const timer = setInterval(() => {\n setDirection(1);\n setCurrentSlide((prev) => (prev + 1) % slides.length);\n }, interval);\n\n return () => clearInterval(timer);\n }, [interval, slides.length, isPaused]);\n\n const slideVariants = {\n enter: (direction: number) => ({\n x: direction > 0 ? 1000 : -1000,\n opacity: 0\n }),\n center: {\n zIndex: 1,\n x: 0,\n opacity: 1\n },\n exit: (direction: number) => ({\n zIndex: 0,\n x: direction < 0 ? 1000 : -1000,\n opacity: 0\n })\n };\n\n const swipeConfidenceThreshold = 10000;\n const swipePower = (offset: number, velocity: number) => {\n return Math.abs(offset) * velocity;\n };\n\n const paginate = (newDirection: number) => {\n setDirection(newDirection);\n setCurrentSlide((prev) => (prev + newDirection + slides.length) % slides.length);\n };\n\n const handleIndicatorClick = (index: number) => {\n setIsPaused(true); // Pause auto-rotation when manually clicking\n const newDirection = index > currentSlide ? 1 : -1;\n setDirection(newDirection);\n setCurrentSlide(index);\n \n // Resume auto-rotation after a delay\n setTimeout(() => setIsPaused(false), interval);\n };\n\n return (\n <div className={`relative overflow-hidden ${className}`}>\n <AnimatePresence initial={false} custom={direction}>\n <motion.div\n key={currentSlide}\n custom={direction}\n variants={slideVariants}\n initial=\"enter\"\n animate=\"center\"\n exit=\"exit\"\n transition={{\n x: { type: \"spring\", stiffness: 300, damping: 30 },\n opacity: { duration: 0.2 }\n }}\n drag=\"x\"\n dragConstraints={{ left: 0, right: 0 }}\n dragElastic={1}\n onDragEnd={(e, { offset, velocity }) => {\n const swipe = swipePower(offset.x, velocity.x);\n\n if (swipe < -swipeConfidenceThreshold) {\n paginate(1);\n } else if (swipe > swipeConfidenceThreshold) {\n paginate(-1);\n }\n }}\n className=\"absolute inset-0\"\n >\n <div className=\"absolute inset-0 bg-gradient-to-b from-primary/20\">\n <img\n src={slides[currentSlide].image}\n alt=\"carousel\"\n className=\"w-full h-full object-cover\"\n />\n </div>\n <div className=\"absolute bottom-20 left-8 text-foreground\">\n <motion.h1 \n className=\"text-4xl font-semibold\"\n initial={{ y: 20, opacity: 0 }}\n animate={{ y: 0, opacity: 1 }}\n transition={{ delay: 0.2 }}\n >\n {slides[currentSlide].title}<br />\n {slides[currentSlide].subtitle}\n </motion.h1>\n </div>\n </motion.div>\n </AnimatePresence>\n\n {showIndicators && (\n <div className=\"absolute bottom-8 left-8 flex gap-2 z-10\">\n {slides.map((_, index) => (\n <button\n key={index}\n onClick={() => handleIndicatorClick(index)}\n className={`w-8 h-1 rounded-full transition-all duration-300 ${\n index === currentSlide ? 'bg-foreground' : 'bg-foreground/30 hover:bg-foreground/50'\n }`}\n />\n ))}\n </div>\n )}\n </div>\n );\n} "],"names":["Carousel","slides","interval","showIndicators","className","currentSlide","setCurrentSlide","useState","direction","setDirection","isPaused","setIsPaused","useEffect","timer","prev","slideVariants","swipeConfidenceThreshold","swipePower","offset","velocity","paginate","newDirection","handleIndicatorClick","index","jsxs","jsx","AnimatePresence","motion","swipe","_"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../jsx-runtime-BYECrxsp.cjs"),i=require("react"),l=require("framer-motion");function R({slides:n,interval:o=5e3,showIndicators:g=!0,className:j=""}){const[r,a]=i.useState(0),[u,c]=i.useState(0),[x,m]=i.useState(!1);i.useEffect(()=>{if(x)return;const t=setInterval(()=>{c(1),a(e=>(e+1)%n.length)},o);return()=>clearInterval(t)},[o,n.length,x]);const h={enter:t=>({x:t>0?1e3:-1e3,opacity:0}),center:{zIndex:1,x:0,opacity:1},exit:t=>({zIndex:0,x:t<0?1e3:-1e3,opacity:0})},d=1e4,b=(t,e)=>Math.abs(t)*e,f=t=>{c(t),a(e=>(e+t+n.length)%n.length)},y=t=>{m(!0);const e=t>r?1:-1;c(e),a(t),setTimeout(()=>m(!1),o)};return s.jsxRuntimeExports.jsxs("div",{className:`relative overflow-hidden ${j}`,children:[s.jsxRuntimeExports.jsx(l.AnimatePresence,{initial:!1,custom:u,children:s.jsxRuntimeExports.jsxs(l.motion.div,{custom:u,variants:h,initial:"enter",animate:"center",exit:"exit",transition:{x:{type:"spring",stiffness:300,damping:30},opacity:{duration:.2}},drag:"x",dragConstraints:{left:0,right:0},dragElastic:1,onDragEnd:(t,{offset:e,velocity:E})=>{const p=b(e.x,E.x);p<-d?f(1):p>d&&f(-1)},className:"absolute inset-0",children:[s.jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-primary/20",children:s.jsxRuntimeExports.jsx("img",{src:n[r].image,alt:"carousel",className:"w-full h-full object-cover"})}),s.jsxRuntimeExports.jsx("div",{className:"absolute bottom-20 left-8 text-foreground",children:s.jsxRuntimeExports.jsxs(l.motion.h1,{className:"text-4xl font-semibold",initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.2},children:[n[r].title,s.jsxRuntimeExports.jsx("br",{}),n[r].subtitle]})})]},r)}),g&&s.jsxRuntimeExports.jsx("div",{className:"absolute bottom-8 left-8 flex gap-2 z-10",children:n.map((t,e)=>s.jsxRuntimeExports.jsx("button",{onClick:()=>y(e),className:`w-8 h-1 rounded-full transition-all duration-300 ${e===r?"bg-foreground":"bg-foreground/30 hover:bg-foreground/50"}`},e))})]})}exports.Carousel=R;
2
+ //# sourceMappingURL=carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.js","sources":["../../src/components/carousel.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nexport interface CarouselSlide {\n image: string;\n title: string;\n subtitle: string;\n}\n\ninterface CarouselProps {\n slides: CarouselSlide[];\n interval?: number;\n showIndicators?: boolean;\n className?: string;\n}\n\nexport function Carousel({ \n slides, \n interval = 5000, \n showIndicators = true,\n className = \"\"\n}: CarouselProps) {\n const [currentSlide, setCurrentSlide] = useState(0);\n const [direction, setDirection] = useState(0);\n const [isPaused, setIsPaused] = useState(false);\n\n useEffect(() => {\n if (isPaused) return;\n \n const timer = setInterval(() => {\n setDirection(1);\n setCurrentSlide((prev) => (prev + 1) % slides.length);\n }, interval);\n\n return () => clearInterval(timer);\n }, [interval, slides.length, isPaused]);\n\n const slideVariants = {\n enter: (direction: number) => ({\n x: direction > 0 ? 1000 : -1000,\n opacity: 0\n }),\n center: {\n zIndex: 1,\n x: 0,\n opacity: 1\n },\n exit: (direction: number) => ({\n zIndex: 0,\n x: direction < 0 ? 1000 : -1000,\n opacity: 0\n })\n };\n\n const swipeConfidenceThreshold = 10000;\n const swipePower = (offset: number, velocity: number) => {\n return Math.abs(offset) * velocity;\n };\n\n const paginate = (newDirection: number) => {\n setDirection(newDirection);\n setCurrentSlide((prev) => (prev + newDirection + slides.length) % slides.length);\n };\n\n const handleIndicatorClick = (index: number) => {\n setIsPaused(true); // Pause auto-rotation when manually clicking\n const newDirection = index > currentSlide ? 1 : -1;\n setDirection(newDirection);\n setCurrentSlide(index);\n \n // Resume auto-rotation after a delay\n setTimeout(() => setIsPaused(false), interval);\n };\n\n return (\n <div className={`relative overflow-hidden ${className}`}>\n <AnimatePresence initial={false} custom={direction}>\n <motion.div\n key={currentSlide}\n custom={direction}\n variants={slideVariants}\n initial=\"enter\"\n animate=\"center\"\n exit=\"exit\"\n transition={{\n x: { type: \"spring\", stiffness: 300, damping: 30 },\n opacity: { duration: 0.2 }\n }}\n drag=\"x\"\n dragConstraints={{ left: 0, right: 0 }}\n dragElastic={1}\n onDragEnd={(e, { offset, velocity }) => {\n const swipe = swipePower(offset.x, velocity.x);\n\n if (swipe < -swipeConfidenceThreshold) {\n paginate(1);\n } else if (swipe > swipeConfidenceThreshold) {\n paginate(-1);\n }\n }}\n className=\"absolute inset-0\"\n >\n <div className=\"absolute inset-0 bg-gradient-to-b from-primary/20\">\n <img\n src={slides[currentSlide].image}\n alt=\"carousel\"\n className=\"w-full h-full object-cover\"\n />\n </div>\n <div className=\"absolute bottom-20 left-8 text-foreground\">\n <motion.h1 \n className=\"text-4xl font-semibold\"\n initial={{ y: 20, opacity: 0 }}\n animate={{ y: 0, opacity: 1 }}\n transition={{ delay: 0.2 }}\n >\n {slides[currentSlide].title}<br />\n {slides[currentSlide].subtitle}\n </motion.h1>\n </div>\n </motion.div>\n </AnimatePresence>\n\n {showIndicators && (\n <div className=\"absolute bottom-8 left-8 flex gap-2 z-10\">\n {slides.map((_, index) => (\n <button\n key={index}\n onClick={() => handleIndicatorClick(index)}\n className={`w-8 h-1 rounded-full transition-all duration-300 ${\n index === currentSlide ? 'bg-foreground' : 'bg-foreground/30 hover:bg-foreground/50'\n }`}\n />\n ))}\n </div>\n )}\n </div>\n );\n} "],"names":["Carousel","slides","interval","showIndicators","className","currentSlide","setCurrentSlide","useState","direction","setDirection","isPaused","setIsPaused","useEffect","timer","prev","slideVariants","swipeConfidenceThreshold","swipePower","offset","velocity","paginate","newDirection","handleIndicatorClick","index","jsxs","jsx","AnimatePresence","motion","e","swipe","_"],"mappings":"6KAgBO,SAASA,EAAS,CACvB,OAAAC,EACA,SAAAC,EAAW,IACX,eAAAC,EAAiB,GACjB,UAAAC,EAAY,EACd,EAAkB,CAChB,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAAS,CAAC,EAC5C,CAACC,EAAWC,CAAY,EAAIF,EAAAA,SAAS,CAAC,EACtC,CAACG,EAAUC,CAAW,EAAIJ,EAAAA,SAAS,EAAK,EAE9CK,EAAAA,UAAU,IAAM,CACd,GAAIF,EAAU,OAEd,MAAMG,EAAQ,YAAY,IAAM,CAC9BJ,EAAa,CAAC,EACdH,EAAiBQ,IAAUA,EAAO,GAAKb,EAAO,MAAM,CACtD,EAAGC,CAAQ,EAEX,MAAO,IAAM,cAAcW,CAAK,CAClC,EAAG,CAACX,EAAUD,EAAO,OAAQS,CAAQ,CAAC,EAEtC,MAAMK,EAAgB,CACpB,MAAQP,IAAuB,CAC7B,EAAGA,EAAY,EAAI,IAAO,KAC1B,QAAS,CAAA,GAEX,OAAQ,CACN,OAAQ,EACR,EAAG,EACH,QAAS,CAAA,EAEX,KAAOA,IAAuB,CAC5B,OAAQ,EACR,EAAGA,EAAY,EAAI,IAAO,KAC1B,QAAS,CAAA,EACX,EAGIQ,EAA2B,IAC3BC,EAAa,CAACC,EAAgBC,IAC3B,KAAK,IAAID,CAAM,EAAIC,EAGtBC,EAAYC,GAAyB,CACzCZ,EAAaY,CAAY,EACzBf,EAAiBQ,IAAUA,EAAOO,EAAepB,EAAO,QAAUA,EAAO,MAAM,CACjF,EAEMqB,EAAwBC,GAAkB,CAC9CZ,EAAY,EAAI,EAChB,MAAMU,EAAeE,EAAQlB,EAAe,EAAI,GAChDI,EAAaY,CAAY,EACzBf,EAAgBiB,CAAK,EAGrB,WAAW,IAAMZ,EAAY,EAAK,EAAGT,CAAQ,CAC/C,EAEA,OACEsB,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAW,4BAA4BpB,CAAS,GACnD,SAAA,CAAAqB,EAAAA,kBAAAA,IAACC,EAAAA,gBAAA,CAAgB,QAAS,GAAO,OAAQlB,EACvC,SAAAgB,EAAAA,kBAAAA,KAACG,EAAAA,OAAO,IAAP,CAEC,OAAQnB,EACR,SAAUO,EACV,QAAQ,QACR,QAAQ,SACR,KAAK,OACL,WAAY,CACV,EAAG,CAAE,KAAM,SAAU,UAAW,IAAK,QAAS,EAAA,EAC9C,QAAS,CAAE,SAAU,EAAA,CAAI,EAE3B,KAAK,IACL,gBAAiB,CAAE,KAAM,EAAG,MAAO,CAAA,EACnC,YAAa,EACb,UAAW,CAACa,EAAG,CAAE,OAAAV,EAAQ,SAAAC,KAAe,CACtC,MAAMU,EAAQZ,EAAWC,EAAO,EAAGC,EAAS,CAAC,EAEzCU,EAAQ,CAACb,EACXI,EAAS,CAAC,EACDS,EAAQb,GACjBI,EAAS,EAAE,CAEf,EACA,UAAU,mBAEV,SAAA,CAAAK,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,oDACb,SAAAA,EAAAA,kBAAAA,IAAC,MAAA,CACC,IAAKxB,EAAOI,CAAY,EAAE,MAC1B,IAAI,WACJ,UAAU,4BAAA,CAAA,EAEd,EACAoB,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,4CACb,SAAAD,EAAAA,kBAAAA,KAACG,EAAAA,OAAO,GAAP,CACC,UAAU,yBACV,QAAS,CAAE,EAAG,GAAI,QAAS,CAAA,EAC3B,QAAS,CAAE,EAAG,EAAG,QAAS,CAAA,EAC1B,WAAY,CAAE,MAAO,EAAA,EAEpB,SAAA,CAAA1B,EAAOI,CAAY,EAAE,8BAAO,KAAA,EAAG,EAC/BJ,EAAOI,CAAY,EAAE,QAAA,CAAA,CAAA,CACxB,CACF,CAAA,CAAA,EAzCKA,CAAA,EA2CT,EAECF,2BACE,MAAA,CAAI,UAAU,2CACZ,SAAAF,EAAO,IAAI,CAAC6B,EAAGP,IACdE,EAAAA,kBAAAA,IAAC,SAAA,CAEC,QAAS,IAAMH,EAAqBC,CAAK,EACzC,UAAW,oDACTA,IAAUlB,EAAe,gBAAkB,yCAC7C,EAAA,EAJKkB,CAAA,CAMR,CAAA,CACH,CAAA,EAEJ,CAEJ"}
@@ -0,0 +1,17 @@
1
+ interface ChartDataPoint {
2
+ name: string;
3
+ value: number;
4
+ }
5
+ interface BarChartProps {
6
+ data: ChartDataPoint[];
7
+ }
8
+ export declare function BarChart({ data }: BarChartProps): import("react/jsx-runtime").JSX.Element;
9
+ interface LineChartProps {
10
+ data: ChartDataPoint[];
11
+ }
12
+ export declare function LineChart({ data }: LineChartProps): import("react/jsx-runtime").JSX.Element;
13
+ interface DonutChartProps {
14
+ data: ChartDataPoint[];
15
+ }
16
+ export declare function DonutChart({ data }: DonutChartProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,48 @@
1
+ import { j as t } from "../jsx-runtime-DGlMoOmv.js";
2
+ import { ResponsiveContainer as a, BarChart as d, CartesianGrid as o, XAxis as h, YAxis as l, Tooltip as i, Bar as x, LineChart as j, Line as u, PieChart as c, Pie as m, Cell as C, Legend as g } from "recharts";
3
+ function y({ data: e }) {
4
+ return /* @__PURE__ */ t.jsx(a, { width: "100%", height: "100%", children: /* @__PURE__ */ t.jsxs(d, { data: e, margin: { top: 20, right: 30, left: 20, bottom: 5 }, children: [
5
+ /* @__PURE__ */ t.jsx(o, { strokeDasharray: "3 3" }),
6
+ /* @__PURE__ */ t.jsx(h, { dataKey: "name" }),
7
+ /* @__PURE__ */ t.jsx(l, {}),
8
+ /* @__PURE__ */ t.jsx(i, {}),
9
+ /* @__PURE__ */ t.jsx(x, { dataKey: "value", fill: "#8884d8", radius: [4, 4, 0, 0] })
10
+ ] }) });
11
+ }
12
+ function F({ data: e }) {
13
+ return /* @__PURE__ */ t.jsx(a, { width: "100%", height: "100%", children: /* @__PURE__ */ t.jsxs(j, { data: e, margin: { top: 20, right: 30, left: 20, bottom: 5 }, children: [
14
+ /* @__PURE__ */ t.jsx(o, { strokeDasharray: "3 3" }),
15
+ /* @__PURE__ */ t.jsx(h, { dataKey: "name" }),
16
+ /* @__PURE__ */ t.jsx(l, {}),
17
+ /* @__PURE__ */ t.jsx(i, {}),
18
+ /* @__PURE__ */ t.jsx(u, { type: "monotone", dataKey: "value", stroke: "#8884d8", strokeWidth: 2, dot: { r: 4 } })
19
+ ] }) });
20
+ }
21
+ function B({ data: e }) {
22
+ const s = ["#0088FE", "#00C49F", "#FFBB28", "#FF8042", "#8884D8"];
23
+ return /* @__PURE__ */ t.jsx(a, { width: "100%", height: "100%", children: /* @__PURE__ */ t.jsxs(c, { children: [
24
+ /* @__PURE__ */ t.jsx(
25
+ m,
26
+ {
27
+ data: e,
28
+ cx: "50%",
29
+ cy: "50%",
30
+ innerRadius: 60,
31
+ outerRadius: 80,
32
+ fill: "#8884d8",
33
+ paddingAngle: 5,
34
+ dataKey: "value",
35
+ label: ({ name: n, percent: r }) => `${n} ${((r || 0) * 100).toFixed(0)}%`,
36
+ children: e.map((n, r) => /* @__PURE__ */ t.jsx(C, { fill: s[r % s.length] }, `cell-${r}`))
37
+ }
38
+ ),
39
+ /* @__PURE__ */ t.jsx(i, {}),
40
+ /* @__PURE__ */ t.jsx(g, {})
41
+ ] }) });
42
+ }
43
+ export {
44
+ y as BarChart,
45
+ B as DonutChart,
46
+ F as LineChart
47
+ };
48
+ //# sourceMappingURL=charts.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.esm.js","sources":["../../src/components/charts.tsx"],"sourcesContent":["import { BarChart as RechartsBarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, LineChart as RechartsLineChart, Line, PieChart, Pie, Cell, Legend } from 'recharts';\n\ninterface ChartDataPoint {\n name: string;\n value: number;\n}\n\ninterface BarChartProps {\n data: ChartDataPoint[];\n}\n\nexport function BarChart({ data }: BarChartProps) {\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart data={data} margin={{ top: 20, right: 30, left: 20, bottom: 5 }}>\n <CartesianGrid strokeDasharray=\"3 3\" />\n <XAxis dataKey=\"name\" />\n <YAxis />\n <Tooltip />\n <Bar dataKey=\"value\" fill=\"#8884d8\" radius={[4, 4, 0, 0]} />\n </RechartsBarChart>\n </ResponsiveContainer>\n );\n}\n\ninterface LineChartProps {\n data: ChartDataPoint[];\n}\n\nexport function LineChart({ data }: LineChartProps) {\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsLineChart data={data} margin={{ top: 20, right: 30, left: 20, bottom: 5 }}>\n <CartesianGrid strokeDasharray=\"3 3\" />\n <XAxis dataKey=\"name\" />\n <YAxis />\n <Tooltip />\n <Line type=\"monotone\" dataKey=\"value\" stroke=\"#8884d8\" strokeWidth={2} dot={{ r: 4 }} />\n </RechartsLineChart>\n </ResponsiveContainer>\n );\n}\n\ninterface DonutChartProps {\n data: ChartDataPoint[];\n}\n\nexport function DonutChart({ data }: DonutChartProps) {\n const COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#8884D8'];\n\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <PieChart>\n <Pie\n data={data}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={60}\n outerRadius={80}\n fill=\"#8884d8\"\n paddingAngle={5}\n dataKey=\"value\"\n label={({ name, percent }) => `${name} ${((percent || 0) * 100).toFixed(0)}%`}\n >\n {data.map((entry, index) => (\n <Cell key={`cell-${index}`} fill={COLORS[index % COLORS.length]} />\n ))}\n </Pie>\n <Tooltip />\n <Legend />\n </PieChart>\n </ResponsiveContainer>\n );\n} "],"names":["BarChart","data","ResponsiveContainer","RechartsBarChart","jsx","CartesianGrid","XAxis","YAxis","Tooltip","Bar","LineChart","RechartsLineChart","Line","DonutChart","COLORS","PieChart","Pie","name","percent","entry","index","Cell","Legend"],"mappings":";;AAWO,SAASA,EAAS,EAAE,MAAAC,KAAuB;AAChD,+BACGC,GAAA,EAAoB,OAAM,QAAO,QAAO,QACvC,iCAACC,GAAA,EAAiB,MAAAF,GAAY,QAAQ,EAAE,KAAK,IAAI,OAAO,IAAI,MAAM,IAAI,QAAQ,KAC5E,UAAA;AAAA,IAAAG,gBAAAA,EAAAA,IAACC,GAAA,EAAc,iBAAgB,MAAA,CAAM;AAAA,IACrCD,gBAAAA,EAAAA,IAACE,GAAA,EAAM,SAAQ,OAAA,CAAO;AAAA,0BACrBC,GAAA,EAAM;AAAA,0BACNC,GAAA,EAAQ;AAAA,IACTJ,gBAAAA,EAAAA,IAACK,GAAA,EAAI,SAAQ,SAAQ,MAAK,WAAU,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,EAAA,CAAG;AAAA,EAAA,EAAA,CAC5D,EAAA,CACF;AAEJ;AAMO,SAASC,EAAU,EAAE,MAAAT,KAAwB;AAClD,+BACGC,GAAA,EAAoB,OAAM,QAAO,QAAO,QACvC,iCAACS,GAAA,EAAkB,MAAAV,GAAY,QAAQ,EAAE,KAAK,IAAI,OAAO,IAAI,MAAM,IAAI,QAAQ,KAC7E,UAAA;AAAA,IAAAG,gBAAAA,EAAAA,IAACC,GAAA,EAAc,iBAAgB,MAAA,CAAM;AAAA,IACrCD,gBAAAA,EAAAA,IAACE,GAAA,EAAM,SAAQ,OAAA,CAAO;AAAA,0BACrBC,GAAA,EAAM;AAAA,0BACNC,GAAA,EAAQ;AAAA,IACTJ,gBAAAA,EAAAA,IAACQ,GAAA,EAAK,MAAK,YAAW,SAAQ,SAAQ,QAAO,WAAU,aAAa,GAAG,KAAK,EAAE,GAAG,IAAE,CAAG;AAAA,EAAA,EAAA,CACxF,EAAA,CACF;AAEJ;AAMO,SAASC,EAAW,EAAE,MAAAZ,KAAyB;AACpD,QAAMa,IAAS,CAAC,WAAW,WAAW,WAAW,WAAW,SAAS;AAErE,+BACGZ,GAAA,EAAoB,OAAM,QAAO,QAAO,QACvC,iCAACa,GAAA,EACC,UAAA;AAAA,IAAAX,gBAAAA,EAAAA;AAAAA,MAACY;AAAA,MAAA;AAAA,QACC,MAAAf;AAAA,QACA,IAAG;AAAA,QACH,IAAG;AAAA,QACH,aAAa;AAAA,QACb,aAAa;AAAA,QACb,MAAK;AAAA,QACL,cAAc;AAAA,QACd,SAAQ;AAAA,QACR,OAAO,CAAC,EAAE,MAAAgB,GAAM,SAAAC,QAAc,GAAGD,CAAI,MAAMC,KAAW,KAAK,KAAK,QAAQ,CAAC,CAAC;AAAA,QAEzE,YAAK,IAAI,CAACC,GAAOC,4BACfC,GAAA,EAA2B,MAAMP,EAAOM,IAAQN,EAAO,MAAM,EAAA,GAAnD,QAAQM,CAAK,EAAyC,CAClE;AAAA,MAAA;AAAA,IAAA;AAAA,0BAEFZ,GAAA,EAAQ;AAAA,0BACRc,GAAA,CAAA,CAAO;AAAA,EAAA,EAAA,CACV,EAAA,CACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../jsx-runtime-BYECrxsp.cjs"),e=require("recharts");function x({data:s}){return t.jsxRuntimeExports.jsx(e.ResponsiveContainer,{width:"100%",height:"100%",children:t.jsxRuntimeExports.jsxs(e.BarChart,{data:s,margin:{top:20,right:30,left:20,bottom:5},children:[t.jsxRuntimeExports.jsx(e.CartesianGrid,{strokeDasharray:"3 3"}),t.jsxRuntimeExports.jsx(e.XAxis,{dataKey:"name"}),t.jsxRuntimeExports.jsx(e.YAxis,{}),t.jsxRuntimeExports.jsx(e.Tooltip,{}),t.jsxRuntimeExports.jsx(e.Bar,{dataKey:"value",fill:"#8884d8",radius:[4,4,0,0]})]})})}function o({data:s}){return t.jsxRuntimeExports.jsx(e.ResponsiveContainer,{width:"100%",height:"100%",children:t.jsxRuntimeExports.jsxs(e.LineChart,{data:s,margin:{top:20,right:30,left:20,bottom:5},children:[t.jsxRuntimeExports.jsx(e.CartesianGrid,{strokeDasharray:"3 3"}),t.jsxRuntimeExports.jsx(e.XAxis,{dataKey:"name"}),t.jsxRuntimeExports.jsx(e.YAxis,{}),t.jsxRuntimeExports.jsx(e.Tooltip,{}),t.jsxRuntimeExports.jsx(e.Line,{type:"monotone",dataKey:"value",stroke:"#8884d8",strokeWidth:2,dot:{r:4}})]})})}function a({data:s}){const i=["#0088FE","#00C49F","#FFBB28","#FF8042","#8884D8"];return t.jsxRuntimeExports.jsx(e.ResponsiveContainer,{width:"100%",height:"100%",children:t.jsxRuntimeExports.jsxs(e.PieChart,{children:[t.jsxRuntimeExports.jsx(e.Pie,{data:s,cx:"50%",cy:"50%",innerRadius:60,outerRadius:80,fill:"#8884d8",paddingAngle:5,dataKey:"value",label:({name:n,percent:r})=>`${n} ${((r||0)*100).toFixed(0)}%`,children:s.map((n,r)=>t.jsxRuntimeExports.jsx(e.Cell,{fill:i[r%i.length]},`cell-${r}`))}),t.jsxRuntimeExports.jsx(e.Tooltip,{}),t.jsxRuntimeExports.jsx(e.Legend,{})]})})}exports.BarChart=x;exports.DonutChart=a;exports.LineChart=o;
2
+ //# sourceMappingURL=charts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.js","sources":["../../src/components/charts.tsx"],"sourcesContent":["import { BarChart as RechartsBarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, LineChart as RechartsLineChart, Line, PieChart, Pie, Cell, Legend } from 'recharts';\n\ninterface ChartDataPoint {\n name: string;\n value: number;\n}\n\ninterface BarChartProps {\n data: ChartDataPoint[];\n}\n\nexport function BarChart({ data }: BarChartProps) {\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart data={data} margin={{ top: 20, right: 30, left: 20, bottom: 5 }}>\n <CartesianGrid strokeDasharray=\"3 3\" />\n <XAxis dataKey=\"name\" />\n <YAxis />\n <Tooltip />\n <Bar dataKey=\"value\" fill=\"#8884d8\" radius={[4, 4, 0, 0]} />\n </RechartsBarChart>\n </ResponsiveContainer>\n );\n}\n\ninterface LineChartProps {\n data: ChartDataPoint[];\n}\n\nexport function LineChart({ data }: LineChartProps) {\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsLineChart data={data} margin={{ top: 20, right: 30, left: 20, bottom: 5 }}>\n <CartesianGrid strokeDasharray=\"3 3\" />\n <XAxis dataKey=\"name\" />\n <YAxis />\n <Tooltip />\n <Line type=\"monotone\" dataKey=\"value\" stroke=\"#8884d8\" strokeWidth={2} dot={{ r: 4 }} />\n </RechartsLineChart>\n </ResponsiveContainer>\n );\n}\n\ninterface DonutChartProps {\n data: ChartDataPoint[];\n}\n\nexport function DonutChart({ data }: DonutChartProps) {\n const COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#8884D8'];\n\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <PieChart>\n <Pie\n data={data}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={60}\n outerRadius={80}\n fill=\"#8884d8\"\n paddingAngle={5}\n dataKey=\"value\"\n label={({ name, percent }) => `${name} ${((percent || 0) * 100).toFixed(0)}%`}\n >\n {data.map((entry, index) => (\n <Cell key={`cell-${index}`} fill={COLORS[index % COLORS.length]} />\n ))}\n </Pie>\n <Tooltip />\n <Legend />\n </PieChart>\n </ResponsiveContainer>\n );\n} "],"names":["BarChart","data","ResponsiveContainer","RechartsBarChart","jsx","CartesianGrid","XAxis","YAxis","Tooltip","Bar","LineChart","RechartsLineChart","Line","DonutChart","COLORS","PieChart","Pie","name","percent","entry","index","Cell","Legend"],"mappings":"qJAWO,SAASA,EAAS,CAAE,KAAAC,GAAuB,CAChD,+BACGC,EAAAA,oBAAA,CAAoB,MAAM,OAAO,OAAO,OACvC,kCAACC,EAAAA,SAAA,CAAiB,KAAAF,EAAY,OAAQ,CAAE,IAAK,GAAI,MAAO,GAAI,KAAM,GAAI,OAAQ,GAC5E,SAAA,CAAAG,EAAAA,kBAAAA,IAACC,EAAAA,cAAA,CAAc,gBAAgB,KAAA,CAAM,EACrCD,EAAAA,kBAAAA,IAACE,EAAAA,MAAA,CAAM,QAAQ,MAAA,CAAO,0BACrBC,EAAAA,MAAA,EAAM,0BACNC,EAAAA,QAAA,EAAQ,EACTJ,EAAAA,kBAAAA,IAACK,EAAAA,IAAA,CAAI,QAAQ,QAAQ,KAAK,UAAU,OAAQ,CAAC,EAAG,EAAG,EAAG,CAAC,CAAA,CAAG,CAAA,CAAA,CAC5D,CAAA,CACF,CAEJ,CAMO,SAASC,EAAU,CAAE,KAAAT,GAAwB,CAClD,+BACGC,EAAAA,oBAAA,CAAoB,MAAM,OAAO,OAAO,OACvC,kCAACS,EAAAA,UAAA,CAAkB,KAAAV,EAAY,OAAQ,CAAE,IAAK,GAAI,MAAO,GAAI,KAAM,GAAI,OAAQ,GAC7E,SAAA,CAAAG,EAAAA,kBAAAA,IAACC,EAAAA,cAAA,CAAc,gBAAgB,KAAA,CAAM,EACrCD,EAAAA,kBAAAA,IAACE,EAAAA,MAAA,CAAM,QAAQ,MAAA,CAAO,0BACrBC,EAAAA,MAAA,EAAM,0BACNC,EAAAA,QAAA,EAAQ,EACTJ,EAAAA,kBAAAA,IAACQ,EAAAA,KAAA,CAAK,KAAK,WAAW,QAAQ,QAAQ,OAAO,UAAU,YAAa,EAAG,IAAK,CAAE,EAAG,EAAE,CAAG,CAAA,CAAA,CACxF,CAAA,CACF,CAEJ,CAMO,SAASC,EAAW,CAAE,KAAAZ,GAAyB,CACpD,MAAMa,EAAS,CAAC,UAAW,UAAW,UAAW,UAAW,SAAS,EAErE,+BACGZ,EAAAA,oBAAA,CAAoB,MAAM,OAAO,OAAO,OACvC,kCAACa,EAAAA,SAAA,CACC,SAAA,CAAAX,EAAAA,kBAAAA,IAACY,EAAAA,IAAA,CACC,KAAAf,EACA,GAAG,MACH,GAAG,MACH,YAAa,GACb,YAAa,GACb,KAAK,UACL,aAAc,EACd,QAAQ,QACR,MAAO,CAAC,CAAE,KAAAgB,EAAM,QAAAC,KAAc,GAAGD,CAAI,MAAMC,GAAW,GAAK,KAAK,QAAQ,CAAC,CAAC,IAEzE,WAAK,IAAI,CAACC,EAAOC,4BACfC,EAAAA,KAAA,CAA2B,KAAMP,EAAOM,EAAQN,EAAO,MAAM,CAAA,EAAnD,QAAQM,CAAK,EAAyC,CAClE,CAAA,CAAA,0BAEFZ,EAAAA,QAAA,EAAQ,0BACRc,EAAAA,OAAA,CAAA,CAAO,CAAA,CAAA,CACV,CAAA,CACF,CAEJ"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export { Checkbox };
@@ -0,0 +1,32 @@
1
+ import { j as e } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as s from "react";
3
+ import * as i from "@radix-ui/react-checkbox";
4
+ import { Check as c } from "lucide-react";
5
+ import { c as r } from "../utils-qaFjX9_3.js";
6
+ import { motion as n } from "framer-motion";
7
+ const m = s.forwardRef(({ className: o, ...t }, a) => /* @__PURE__ */ e.jsx(
8
+ i.Root,
9
+ {
10
+ ref: a,
11
+ className: r(
12
+ "peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
13
+ o
14
+ ),
15
+ ...t,
16
+ children: /* @__PURE__ */ e.jsx(i.Indicator, { className: r("flex items-center justify-center text-current"), children: /* @__PURE__ */ e.jsx(
17
+ n.div,
18
+ {
19
+ initial: { scale: 0.5, opacity: 0 },
20
+ animate: { scale: 1, opacity: 1 },
21
+ exit: { scale: 0.5, opacity: 0 },
22
+ transition: { duration: 0.15, ease: "easeOut" },
23
+ children: /* @__PURE__ */ e.jsx(c, { className: "h-4 w-4" })
24
+ }
25
+ ) })
26
+ }
27
+ ));
28
+ m.displayName = i.Root.displayName;
29
+ export {
30
+ m as Checkbox
31
+ };
32
+ //# sourceMappingURL=checkbox.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.esm.js","sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { motion } from \"framer-motion\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn(\"flex items-center justify-center text-current\")}>\n <motion.div\n initial={{ scale: 0.5, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.5, opacity: 0 }}\n transition={{ duration: 0.15, ease: \"easeOut\" }}\n >\n <Check className=\"h-4 w-4\" />\n </motion.div>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox } "],"names":["Checkbox","React","className","props","ref","jsx","CheckboxPrimitive","cn","motion","Check"],"mappings":";;;;;;AAMA,MAAMA,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACC,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEJ,gCAACG,EAAkB,WAAlB,EAA4B,WAAWC,EAAG,+CAA+C,GACxF,UAAAF,gBAAAA,EAAAA;AAAAA,MAACG,EAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,OAAO,KAAK,SAAS,EAAA;AAAA,QAChC,SAAS,EAAE,OAAO,GAAG,SAAS,EAAA;AAAA,QAC9B,MAAM,EAAE,OAAO,KAAK,SAAS,EAAA;AAAA,QAC7B,YAAY,EAAE,UAAU,MAAM,MAAM,UAAA;AAAA,QAEpC,UAAAH,gBAAAA,EAAAA,IAACI,GAAA,EAAM,WAAU,UAAA,CAAU;AAAA,MAAA;AAAA,IAAA,EAC7B,CACF;AAAA,EAAA;AACF,CACD;AACDT,EAAS,cAAcM,EAAkB,KAAK;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../jsx-runtime-BYECrxsp.cjs"),u=require("react"),l=require("@radix-ui/react-checkbox"),d=require("lucide-react"),c=require("../utils-DSKoFOjv.cjs"),m=require("framer-motion");function n(e){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(i,t,s.get?s:{enumerable:!0,get:()=>e[t]})}}return i.default=e,Object.freeze(i)}const f=n(u),o=n(l),a=f.forwardRef(({className:e,...i},t)=>r.jsxRuntimeExports.jsx(o.Root,{ref:t,className:c.cn("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...i,children:r.jsxRuntimeExports.jsx(o.Indicator,{className:c.cn("flex items-center justify-center text-current"),children:r.jsxRuntimeExports.jsx(m.motion.div,{initial:{scale:.5,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.5,opacity:0},transition:{duration:.15,ease:"easeOut"},children:r.jsxRuntimeExports.jsx(d.Check,{className:"h-4 w-4"})})})}));a.displayName=o.Root.displayName;exports.Checkbox=a;
2
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { motion } from \"framer-motion\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn(\"flex items-center justify-center text-current\")}>\n <motion.div\n initial={{ scale: 0.5, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.5, opacity: 0 }}\n transition={{ duration: 0.15, ease: \"easeOut\" }}\n >\n <Check className=\"h-4 w-4\" />\n </motion.div>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox } "],"names":["Checkbox","React","className","props","ref","jsx","CheckboxPrimitive","cn","motion","Check"],"mappings":"ijBAMMA,EAAWC,EAAM,WAGrB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAACC,EAAkB,KAAlB,CACC,IAAAF,EACA,UAAWG,EAAAA,GACT,iTACAL,CAAA,EAED,GAAGC,EAEJ,iCAACG,EAAkB,UAAlB,CAA4B,UAAWC,KAAG,+CAA+C,EACxF,SAAAF,EAAAA,kBAAAA,IAACG,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,MAAO,GAAK,QAAS,CAAA,EAChC,QAAS,CAAE,MAAO,EAAG,QAAS,CAAA,EAC9B,KAAM,CAAE,MAAO,GAAK,QAAS,CAAA,EAC7B,WAAY,CAAE,SAAU,IAAM,KAAM,SAAA,EAEpC,SAAAH,EAAAA,kBAAAA,IAACI,EAAAA,MAAA,CAAM,UAAU,SAAA,CAAU,CAAA,CAAA,CAC7B,CACF,CAAA,CACF,CACD,EACDT,EAAS,YAAcM,EAAkB,KAAK"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ interface CollapseProps {
3
+ title: string | React.ReactNode;
4
+ children: React.ReactNode;
5
+ defaultOpen?: boolean;
6
+ className?: string;
7
+ titleClassName?: string;
8
+ contentClassName?: string;
9
+ }
10
+ export declare function Collapse({ title, children, defaultOpen, className, titleClassName, contentClassName }: CollapseProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,50 @@
1
+ import { j as e } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as d from "react";
3
+ import { motion as s, AnimatePresence as h } from "framer-motion";
4
+ import { ChevronDown as x } from "lucide-react";
5
+ import { c as i } from "../utils-qaFjX9_3.js";
6
+ function v({
7
+ title: n,
8
+ children: o,
9
+ defaultOpen: a = !1,
10
+ className: r,
11
+ titleClassName: l,
12
+ contentClassName: m
13
+ }) {
14
+ const [t, c] = d.useState(a);
15
+ return /* @__PURE__ */ e.jsxs("div", { className: i("border rounded-lg", r), children: [
16
+ /* @__PURE__ */ e.jsxs(
17
+ "button",
18
+ {
19
+ onClick: () => c(!t),
20
+ className: "flex items-center justify-between w-full text-left",
21
+ children: [
22
+ /* @__PURE__ */ e.jsx("h3", { className: i("text-sm font-sm", l), children: n }),
23
+ /* @__PURE__ */ e.jsx(
24
+ s.div,
25
+ {
26
+ animate: { rotate: t ? 180 : 0 },
27
+ transition: { duration: 0.2 },
28
+ children: /* @__PURE__ */ e.jsx(x, { className: "h-5 w-5 text-muted-foreground" })
29
+ }
30
+ )
31
+ ]
32
+ }
33
+ ),
34
+ /* @__PURE__ */ e.jsx(h, { initial: !1, children: t && /* @__PURE__ */ e.jsx(
35
+ s.div,
36
+ {
37
+ initial: { height: 0, opacity: 0 },
38
+ animate: { height: "auto", opacity: 1 },
39
+ exit: { height: 0, opacity: 0 },
40
+ transition: { duration: 0.2 },
41
+ className: "overflow-hidden",
42
+ children: /* @__PURE__ */ e.jsx("div", { className: i("p-4 pt-0", m), children: o })
43
+ }
44
+ ) })
45
+ ] });
46
+ }
47
+ export {
48
+ v as Collapse
49
+ };
50
+ //# sourceMappingURL=collapse.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapse.esm.js","sources":["../../src/components/collapse.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface CollapseProps {\n title: string | React.ReactNode\n children: React.ReactNode\n defaultOpen?: boolean\n className?: string\n titleClassName?: string\n contentClassName?: string\n}\n\nexport function Collapse({ \n title, \n children, \n defaultOpen = false,\n className,\n titleClassName,\n contentClassName\n}: CollapseProps) {\n const [isOpen, setIsOpen] = React.useState(defaultOpen)\n\n return (\n <div className={cn(\"border rounded-lg\", className)}>\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"flex items-center justify-between w-full text-left\"\n >\n <h3 className={cn(\"text-sm font-sm\", titleClassName)}>{title}</h3>\n <motion.div\n animate={{ rotate: isOpen ? 180 : 0 }}\n transition={{ duration: 0.2 }}\n >\n <ChevronDown className=\"h-5 w-5 text-muted-foreground\" />\n </motion.div>\n </button>\n <AnimatePresence initial={false}>\n {isOpen && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: \"auto\", opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"overflow-hidden\"\n >\n <div className={cn(\"p-4 pt-0\", contentClassName)}>\n {children}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n} "],"names":["Collapse","title","children","defaultOpen","className","titleClassName","contentClassName","isOpen","setIsOpen","React","cn","jsxs","jsx","motion","ChevronDown","AnimatePresence"],"mappings":";;;;;AAcO,SAASA,EAAS;AAAA,EACvB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AACF,GAAkB;AAChB,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAM,SAASN,CAAW;AAEtD,gCACG,OAAA,EAAI,WAAWO,EAAG,qBAAqBN,CAAS,GAC/C,UAAA;AAAA,IAAAO,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMH,EAAU,CAACD,CAAM;AAAA,QAChC,WAAU;AAAA,QAEV,UAAA;AAAA,UAAAK,gBAAAA,MAAC,QAAG,WAAWF,EAAG,mBAAmBL,CAAc,GAAI,UAAAJ,GAAM;AAAA,UAC7DW,gBAAAA,EAAAA;AAAAA,YAACC,EAAO;AAAA,YAAP;AAAA,cACC,SAAS,EAAE,QAAQN,IAAS,MAAM,EAAA;AAAA,cAClC,YAAY,EAAE,UAAU,IAAA;AAAA,cAExB,UAAAK,gBAAAA,EAAAA,IAACE,GAAA,EAAY,WAAU,gCAAA,CAAgC;AAAA,YAAA;AAAA,UAAA;AAAA,QACzD;AAAA,MAAA;AAAA,IAAA;AAAA,IAEFF,gBAAAA,EAAAA,IAACG,GAAA,EAAgB,SAAS,IACvB,UAAAR,KACCK,gBAAAA,EAAAA;AAAAA,MAACC,EAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,QAAQ,GAAG,SAAS,EAAA;AAAA,QAC/B,SAAS,EAAE,QAAQ,QAAQ,SAAS,EAAA;AAAA,QACpC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAA;AAAA,QAC5B,YAAY,EAAE,UAAU,IAAA;AAAA,QACxB,WAAU;AAAA,QAEV,gCAAC,OAAA,EAAI,WAAWH,EAAG,YAAYJ,CAAgB,GAC5C,UAAAJ,EAAA,CACH;AAAA,MAAA;AAAA,IAAA,EACF,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../jsx-runtime-BYECrxsp.cjs"),m=require("react"),o=require("framer-motion"),x=require("lucide-react"),a=require("../utils-DSKoFOjv.cjs");function d(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(s,n,i.get?i:{enumerable:!0,get:()=>t[n]})}}return s.default=t,Object.freeze(s)}const p=d(m);function j({title:t,children:s,defaultOpen:n=!1,className:i,titleClassName:c,contentClassName:l}){const[r,u]=p.useState(n);return e.jsxRuntimeExports.jsxs("div",{className:a.cn("border rounded-lg",i),children:[e.jsxRuntimeExports.jsxs("button",{onClick:()=>u(!r),className:"flex items-center justify-between w-full text-left",children:[e.jsxRuntimeExports.jsx("h3",{className:a.cn("text-sm font-sm",c),children:t}),e.jsxRuntimeExports.jsx(o.motion.div,{animate:{rotate:r?180:0},transition:{duration:.2},children:e.jsxRuntimeExports.jsx(x.ChevronDown,{className:"h-5 w-5 text-muted-foreground"})})]}),e.jsxRuntimeExports.jsx(o.AnimatePresence,{initial:!1,children:r&&e.jsxRuntimeExports.jsx(o.motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:e.jsxRuntimeExports.jsx("div",{className:a.cn("p-4 pt-0",l),children:s})})})]})}exports.Collapse=j;
2
+ //# sourceMappingURL=collapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapse.js","sources":["../../src/components/collapse.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface CollapseProps {\n title: string | React.ReactNode\n children: React.ReactNode\n defaultOpen?: boolean\n className?: string\n titleClassName?: string\n contentClassName?: string\n}\n\nexport function Collapse({ \n title, \n children, \n defaultOpen = false,\n className,\n titleClassName,\n contentClassName\n}: CollapseProps) {\n const [isOpen, setIsOpen] = React.useState(defaultOpen)\n\n return (\n <div className={cn(\"border rounded-lg\", className)}>\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"flex items-center justify-between w-full text-left\"\n >\n <h3 className={cn(\"text-sm font-sm\", titleClassName)}>{title}</h3>\n <motion.div\n animate={{ rotate: isOpen ? 180 : 0 }}\n transition={{ duration: 0.2 }}\n >\n <ChevronDown className=\"h-5 w-5 text-muted-foreground\" />\n </motion.div>\n </button>\n <AnimatePresence initial={false}>\n {isOpen && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: \"auto\", opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"overflow-hidden\"\n >\n <div className={cn(\"p-4 pt-0\", contentClassName)}>\n {children}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n} "],"names":["Collapse","title","children","defaultOpen","className","titleClassName","contentClassName","isOpen","setIsOpen","React","cn","jsxs","jsx","motion","ChevronDown","AnimatePresence"],"mappings":"ogBAcO,SAASA,EAAS,CACvB,MAAAC,EACA,SAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EACA,eAAAC,EACA,iBAAAC,CACF,EAAkB,CAChB,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAM,SAASN,CAAW,EAEtD,gCACG,MAAA,CAAI,UAAWO,EAAAA,GAAG,oBAAqBN,CAAS,EAC/C,SAAA,CAAAO,EAAAA,kBAAAA,KAAC,SAAA,CACC,QAAS,IAAMH,EAAU,CAACD,CAAM,EAChC,UAAU,qDAEV,SAAA,CAAAK,wBAAC,MAAG,UAAWF,EAAAA,GAAG,kBAAmBL,CAAc,EAAI,SAAAJ,EAAM,EAC7DW,EAAAA,kBAAAA,IAACC,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,OAAQN,EAAS,IAAM,CAAA,EAClC,WAAY,CAAE,SAAU,EAAA,EAExB,SAAAK,EAAAA,kBAAAA,IAACE,EAAAA,YAAA,CAAY,UAAU,+BAAA,CAAgC,CAAA,CAAA,CACzD,CAAA,CAAA,EAEFF,EAAAA,kBAAAA,IAACG,EAAAA,gBAAA,CAAgB,QAAS,GACvB,SAAAR,GACCK,EAAAA,kBAAAA,IAACC,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,OAAQ,EAAG,QAAS,CAAA,EAC/B,QAAS,CAAE,OAAQ,OAAQ,QAAS,CAAA,EACpC,KAAM,CAAE,OAAQ,EAAG,QAAS,CAAA,EAC5B,WAAY,CAAE,SAAU,EAAA,EACxB,UAAU,kBAEV,iCAAC,MAAA,CAAI,UAAWH,EAAAA,GAAG,WAAYJ,CAAgB,EAC5C,SAAAJ,CAAA,CACH,CAAA,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ"}
@@ -0,0 +1,7 @@
1
+ type CommandMenuProps = {
2
+ open: boolean;
3
+ onOpenChange: (open: boolean) => void;
4
+ };
5
+ export declare function CommandMenu({ open, onOpenChange }: CommandMenuProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function CommandMenuDemo(): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,90 @@
1
+ import { j as e } from "../jsx-runtime-DGlMoOmv.js";
2
+ import { CommandDialog as d, Command as l, CommandInput as a, CommandList as i, CommandEmpty as x, CommandGroup as c, CommandItem as m, CommandSeparator as u } from "./command.esm.js";
3
+ import { useEffect as j, useCallback as h, useState as p } from "react";
4
+ import { Home as f, FileText as g, FolderOpen as S, Settings as b, Search as N } from "lucide-react";
5
+ function C({ open: n, onOpenChange: s }) {
6
+ j(() => {
7
+ const t = (r) => {
8
+ r.key === "k" && (r.metaKey || r.ctrlKey) && (r.preventDefault(), s(!n));
9
+ };
10
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
11
+ }, [n, s]);
12
+ const o = h((t) => {
13
+ s(!1), t();
14
+ }, [s]);
15
+ return /* @__PURE__ */ e.jsx(d, { open: n, onOpenChange: s, children: /* @__PURE__ */ e.jsxs(l, { className: "rounded-lg border shadow-md", children: [
16
+ /* @__PURE__ */ e.jsx(a, { placeholder: "Type a command or search..." }),
17
+ /* @__PURE__ */ e.jsxs(i, { children: [
18
+ /* @__PURE__ */ e.jsx(x, { children: "No results found." }),
19
+ /* @__PURE__ */ e.jsxs(c, { heading: "Suggestions", children: [
20
+ /* @__PURE__ */ e.jsxs(
21
+ m,
22
+ {
23
+ onSelect: () => o(() => console.log("Home")),
24
+ children: [
25
+ /* @__PURE__ */ e.jsx(f, { className: "mr-2 h-4 w-4" }),
26
+ /* @__PURE__ */ e.jsx("span", { children: "Home" })
27
+ ]
28
+ }
29
+ ),
30
+ /* @__PURE__ */ e.jsxs(
31
+ m,
32
+ {
33
+ onSelect: () => o(() => console.log("Documents")),
34
+ children: [
35
+ /* @__PURE__ */ e.jsx(g, { className: "mr-2 h-4 w-4" }),
36
+ /* @__PURE__ */ e.jsx("span", { children: "Documents" })
37
+ ]
38
+ }
39
+ ),
40
+ /* @__PURE__ */ e.jsxs(
41
+ m,
42
+ {
43
+ onSelect: () => o(() => console.log("Projects")),
44
+ children: [
45
+ /* @__PURE__ */ e.jsx(S, { className: "mr-2 h-4 w-4" }),
46
+ /* @__PURE__ */ e.jsx("span", { children: "Projects" })
47
+ ]
48
+ }
49
+ )
50
+ ] }),
51
+ /* @__PURE__ */ e.jsx(u, {}),
52
+ /* @__PURE__ */ e.jsx(c, { heading: "Settings", children: /* @__PURE__ */ e.jsxs(
53
+ m,
54
+ {
55
+ onSelect: () => o(() => console.log("Settings")),
56
+ children: [
57
+ /* @__PURE__ */ e.jsx(b, { className: "mr-2 h-4 w-4" }),
58
+ /* @__PURE__ */ e.jsx("span", { children: "Settings" })
59
+ ]
60
+ }
61
+ ) })
62
+ ] })
63
+ ] }) });
64
+ }
65
+ function D() {
66
+ const [n, s] = p(!1);
67
+ return /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
68
+ /* @__PURE__ */ e.jsxs(
69
+ "button",
70
+ {
71
+ onClick: () => s(!0),
72
+ className: "inline-flex items-center justify-center gap-1 rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground hover:bg-accent hover:text-accent-foreground",
73
+ children: [
74
+ /* @__PURE__ */ e.jsx(N, { className: "h-4 w-4" }),
75
+ /* @__PURE__ */ e.jsx("span", { children: "Search..." }),
76
+ /* @__PURE__ */ e.jsxs("kbd", { className: "pointer-events-none ml-1 inline-flex h-5 select-none items-center gap-1 rounded border border-input bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground", children: [
77
+ /* @__PURE__ */ e.jsx("span", { className: "text-xs", children: "⌘" }),
78
+ "K"
79
+ ] })
80
+ ]
81
+ }
82
+ ),
83
+ /* @__PURE__ */ e.jsx(C, { open: n, onOpenChange: s })
84
+ ] });
85
+ }
86
+ export {
87
+ C as CommandMenu,
88
+ D as CommandMenuDemo
89
+ };
90
+ //# sourceMappingURL=command-menu.esm.js.map