@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.
- package/README.md +6 -6
- package/dist/alert-dialog.d.ts +18 -0
- package/dist/alert.d.ts +18 -0
- package/dist/avatar.d.ts +9 -0
- package/dist/badge.d.ts +15 -0
- package/dist/button.d.ts +16 -0
- package/dist/calendar.d.ts +21 -0
- package/dist/card.d.ts +15 -0
- package/dist/carousel.d.ts +18 -0
- package/dist/charts.d.ts +26 -0
- package/dist/checkbox.d.ts +6 -0
- package/dist/collapse.d.ts +15 -0
- package/dist/command-menu.d.ts +12 -0
- package/dist/command.d.ts +89 -0
- package/dist/components/alert-dialog.d.ts +15 -0
- package/dist/components/alert-dialog.esm.js +59 -0
- package/dist/components/alert-dialog.esm.js.map +1 -0
- package/dist/components/alert-dialog.js +2 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +11 -0
- package/dist/components/alert.esm.js +51 -0
- package/dist/components/alert.esm.js.map +1 -0
- package/dist/components/alert.js +2 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/avatar.d.ts +5 -0
- package/dist/components/avatar.esm.js +42 -0
- package/dist/components/avatar.esm.js.map +1 -0
- package/dist/components/avatar.js +2 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +9 -0
- package/dist/components/badge.esm.js +27 -0
- package/dist/components/badge.esm.js.map +1 -0
- package/dist/components/badge.js +2 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/button.d.ts +13 -0
- package/dist/components/button.esm.js +48 -0
- package/dist/components/button.esm.js.map +1 -0
- package/dist/components/button.js +2 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +18 -0
- package/dist/components/calendar.esm.js +5562 -0
- package/dist/components/calendar.esm.js.map +1 -0
- package/dist/components/calendar.js +2 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +8 -0
- package/dist/components/card.esm.js +62 -0
- package/dist/components/card.esm.js.map +1 -0
- package/dist/components/card.js +2 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +13 -0
- package/dist/components/carousel.esm.js +101 -0
- package/dist/components/carousel.esm.js.map +1 -0
- package/dist/components/carousel.js +2 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/charts.d.ts +17 -0
- package/dist/components/charts.esm.js +48 -0
- package/dist/components/charts.esm.js.map +1 -0
- package/dist/components/charts.js +2 -0
- package/dist/components/charts.js.map +1 -0
- package/dist/components/checkbox.d.ts +4 -0
- package/dist/components/checkbox.esm.js +32 -0
- package/dist/components/checkbox.esm.js.map +1 -0
- package/dist/components/checkbox.js +2 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapse.d.ts +11 -0
- package/dist/components/collapse.esm.js +50 -0
- package/dist/components/collapse.esm.js.map +1 -0
- package/dist/components/collapse.js +2 -0
- package/dist/components/collapse.js.map +1 -0
- package/dist/components/command-menu.d.ts +7 -0
- package/dist/components/command-menu.esm.js +90 -0
- package/dist/components/command-menu.esm.js.map +1 -0
- package/dist/components/command-menu.js +2 -0
- package/dist/components/command-menu.js.map +1 -0
- package/dist/components/command.d.ts +79 -0
- package/dist/components/command.esm.js +425 -0
- package/dist/components/command.esm.js.map +1 -0
- package/dist/components/command.js +2 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/confirmation-modal.d.ts +12 -0
- package/dist/components/confirmation-modal.esm.js +46 -0
- package/dist/components/confirmation-modal.esm.js.map +1 -0
- package/dist/components/confirmation-modal.js +2 -0
- package/dist/components/confirmation-modal.js.map +1 -0
- package/dist/components/context-menu.d.ts +26 -0
- package/dist/components/context-menu.esm.js +186 -0
- package/dist/components/context-menu.esm.js.map +1 -0
- package/dist/components/context-menu.js +2 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.d.ts +21 -0
- package/dist/components/dialog.esm.js +122 -0
- package/dist/components/dialog.esm.js.map +1 -0
- package/dist/components/dialog.js +2 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +9 -0
- package/dist/components/dropdown-menu.esm.js +49 -0
- package/dist/components/dropdown-menu.esm.js.map +1 -0
- package/dist/components/dropdown-menu.js +2 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/dropzone.d.ts +12 -0
- package/dist/components/dropzone.esm.js +45 -0
- package/dist/components/dropzone.esm.js.map +1 -0
- package/dist/components/dropzone.js +2 -0
- package/dist/components/dropzone.js.map +1 -0
- package/dist/components/image-cropper-modal.d.ts +10 -0
- package/dist/components/image-cropper-modal.esm.js +251 -0
- package/dist/components/image-cropper-modal.esm.js.map +1 -0
- package/dist/components/image-cropper-modal.js +2 -0
- package/dist/components/image-cropper-modal.js.map +1 -0
- package/dist/components/image-cropper.d.ts +11 -0
- package/dist/components/image-cropper.esm.js +131 -0
- package/dist/components/image-cropper.esm.js.map +1 -0
- package/dist/components/image-cropper.js +2 -0
- package/dist/components/image-cropper.js.map +1 -0
- package/dist/components/input.d.ts +5 -0
- package/dist/components/input.esm.js +22 -0
- package/dist/components/input.esm.js.map +1 -0
- package/dist/components/input.js +2 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +4 -0
- package/dist/components/label.esm.js +20 -0
- package/dist/components/label.esm.js.map +1 -0
- package/dist/components/label.js +2 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/loader.d.ts +10 -0
- package/dist/components/loader.esm.js +70 -0
- package/dist/components/loader.esm.js.map +1 -0
- package/dist/components/loader.js +2 -0
- package/dist/components/loader.js.map +1 -0
- package/dist/components/loading-placeholder.d.ts +8 -0
- package/dist/components/loading-placeholder.esm.js +25 -0
- package/dist/components/loading-placeholder.esm.js.map +1 -0
- package/dist/components/loading-placeholder.js +2 -0
- package/dist/components/loading-placeholder.js.map +1 -0
- package/dist/components/markdown.d.ts +2 -0
- package/dist/components/markdown.esm.js +12066 -0
- package/dist/components/markdown.esm.js.map +1 -0
- package/dist/components/markdown.js +18 -0
- package/dist/components/markdown.js.map +1 -0
- package/dist/components/mention.d.ts +25 -0
- package/dist/components/mention.esm.js +154 -0
- package/dist/components/mention.esm.js.map +1 -0
- package/dist/components/mention.js +2 -0
- package/dist/components/mention.js.map +1 -0
- package/dist/components/modal.d.ts +19 -0
- package/dist/components/modal.esm.js +92 -0
- package/dist/components/modal.esm.js.map +1 -0
- package/dist/components/modal.js +2 -0
- package/dist/components/modal.js.map +1 -0
- package/dist/components/monaco-editor.d.ts +2 -0
- package/dist/components/monaco-editor.esm.js +295 -0
- package/dist/components/monaco-editor.esm.js.map +1 -0
- package/dist/components/monaco-editor.js +8 -0
- package/dist/components/monaco-editor.js.map +1 -0
- package/dist/components/notification.d.ts +5 -0
- package/dist/components/notification.esm.js +26 -0
- package/dist/components/notification.esm.js.map +1 -0
- package/dist/components/notification.js +2 -0
- package/dist/components/notification.js.map +1 -0
- package/dist/components/popover.d.ts +6 -0
- package/dist/components/popover.esm.js +24 -0
- package/dist/components/popover.esm.js.map +1 -0
- package/dist/components/popover.js +2 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +4 -0
- package/dist/components/progress.esm.js +35 -0
- package/dist/components/progress.esm.js.map +1 -0
- package/dist/components/progress.js +2 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +5 -0
- package/dist/components/radio-group.esm.js +48 -0
- package/dist/components/radio-group.esm.js.map +1 -0
- package/dist/components/radio-group.js +2 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/scroll-area.d.ts +5 -0
- package/dist/components/scroll-area.esm.js +47 -0
- package/dist/components/scroll-area.esm.js.map +1 -0
- package/dist/components/scroll-area.js +2 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +20 -0
- package/dist/components/select.esm.js +131 -0
- package/dist/components/select.esm.js.map +1 -0
- package/dist/components/select.js +2 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/selection-bar.d.ts +11 -0
- package/dist/components/selection-bar.esm.js +54 -0
- package/dist/components/selection-bar.esm.js.map +1 -0
- package/dist/components/selection-bar.js +2 -0
- package/dist/components/selection-bar.js.map +1 -0
- package/dist/components/separator.d.ts +4 -0
- package/dist/components/separator.esm.js +25 -0
- package/dist/components/separator.esm.js.map +1 -0
- package/dist/components/separator.js +2 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +13 -0
- package/dist/components/sheet.esm.js +129 -0
- package/dist/components/sheet.esm.js.map +1 -0
- package/dist/components/sheet.js +2 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/skeleton.d.ts +2 -0
- package/dist/components/skeleton.esm.js +18 -0
- package/dist/components/skeleton.esm.js.map +1 -0
- package/dist/components/skeleton.js +2 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +4 -0
- package/dist/components/slider.esm.js +33 -0
- package/dist/components/slider.esm.js.map +1 -0
- package/dist/components/slider.js +2 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/stepper.d.ts +2 -0
- package/dist/components/stepper.esm.js +214 -0
- package/dist/components/stepper.esm.js.map +1 -0
- package/dist/components/stepper.js +2 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.d.ts +4 -0
- package/dist/components/switch.esm.js +36 -0
- package/dist/components/switch.esm.js.map +1 -0
- package/dist/components/switch.js +2 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table-empty.d.ts +9 -0
- package/dist/components/table-empty.esm.js +23 -0
- package/dist/components/table-empty.esm.js.map +1 -0
- package/dist/components/table-empty.js +2 -0
- package/dist/components/table-empty.js.map +1 -0
- package/dist/components/table-mobile.d.ts +4 -0
- package/dist/components/table-mobile.esm.js +92 -0
- package/dist/components/table-mobile.esm.js.map +1 -0
- package/dist/components/table-mobile.js +2 -0
- package/dist/components/table-mobile.js.map +1 -0
- package/dist/components/table.d.ts +31 -0
- package/dist/components/table.esm.js +143 -0
- package/dist/components/table.esm.js.map +1 -0
- package/dist/components/table.js +2 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +7 -0
- package/dist/components/tabs.esm.js +47 -0
- package/dist/components/tabs.esm.js.map +1 -0
- package/dist/components/tabs.js +2 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/terminal.d.ts +43 -0
- package/dist/components/terminal.esm.js +50 -0
- package/dist/components/terminal.esm.js.map +1 -0
- package/dist/components/terminal.js +2 -0
- package/dist/components/terminal.js.map +1 -0
- package/dist/components/textarea.d.ts +5 -0
- package/dist/components/textarea.esm.js +21 -0
- package/dist/components/textarea.esm.js.map +1 -0
- package/dist/components/textarea.js +2 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/tooltip.d.ts +8 -0
- package/dist/components/tooltip.esm.js +100 -0
- package/dist/components/tooltip.esm.js.map +1 -0
- package/dist/components/tooltip.js +2 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/use-toast.d.ts +21 -0
- package/dist/components/use-toast.esm.js +65 -0
- package/dist/components/use-toast.esm.js.map +1 -0
- package/dist/components/use-toast.js +2 -0
- package/dist/components/use-toast.js.map +1 -0
- package/dist/confirmation-modal.d.ts +16 -0
- package/dist/context-menu.d.ts +41 -0
- package/dist/dialog.d.ts +33 -0
- package/dist/dropdown-menu.d.ts +16 -0
- package/dist/dropzone.d.ts +16 -0
- package/dist/image-cropper-modal.d.ts +14 -0
- package/dist/image-cropper.d.ts +15 -0
- package/dist/index-DACAHwoB.js +35 -0
- package/dist/index-DACAHwoB.js.map +1 -0
- package/dist/index-Deooizx8.cjs +2 -0
- package/dist/index-Deooizx8.cjs.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.esm.js +111 -75430
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/input.d.ts +8 -0
- package/dist/jsx-runtime-BYECrxsp.cjs +31 -0
- package/dist/jsx-runtime-BYECrxsp.cjs.map +1 -0
- package/dist/jsx-runtime-DGlMoOmv.js +631 -0
- package/dist/jsx-runtime-DGlMoOmv.js.map +1 -0
- package/dist/label.d.ts +6 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.esm.js +5 -0
- package/dist/lib/utils.esm.js.map +1 -0
- package/dist/lib/utils.js +2 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/loader.d.ts +14 -0
- package/dist/loading-placeholder.d.ts +12 -0
- package/dist/markdown.d.ts +122 -0
- package/dist/mention.d.ts +29 -0
- package/dist/modal.d.ts +24 -0
- package/dist/monaco-editor.d.ts +76 -0
- package/dist/notification.d.ts +9 -0
- package/dist/popover.d.ts +10 -0
- package/dist/progress.d.ts +6 -0
- package/dist/radio-group.d.ts +8 -0
- package/dist/scroll-area.d.ts +8 -0
- package/dist/select.d.ts +31 -0
- package/dist/selection-bar.d.ts +15 -0
- package/dist/separator.d.ts +6 -0
- package/dist/sheet.d.ts +17 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/slider.d.ts +6 -0
- package/dist/stepper.d.ts +71 -0
- package/dist/styles.css +1 -1
- package/dist/switch.d.ts +6 -0
- package/dist/table-empty.d.ts +13 -0
- package/dist/table-mobile.d.ts +37 -0
- package/dist/table.d.ts +37 -0
- package/dist/tabs.d.ts +12 -0
- package/dist/terminal.d.ts +47 -0
- package/dist/textarea.d.ts +8 -0
- package/dist/tooltip.d.ts +12 -0
- package/dist/use-toast.d.ts +28 -0
- package/dist/utils-DSKoFOjv.cjs +2 -0
- package/dist/utils-DSKoFOjv.cjs.map +1 -0
- package/dist/utils-qaFjX9_3.js +2279 -0
- package/dist/utils-qaFjX9_3.js.map +1 -0
- package/dist/utils.d.ts +5 -0
- package/package.json +259 -1
- package/dist/index.cjs.js +0 -315
- 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":"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"}
|
|
@@ -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
|