@definable/ui 0.1.12 → 0.1.14

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 (41) hide show
  1. package/dist/badge.d.ts +1 -1
  2. package/dist/command.d.ts +7 -7
  3. package/dist/components/badge.d.ts +1 -1
  4. package/dist/components/command.d.ts +7 -7
  5. package/dist/components/dialog.esm.js +23 -23
  6. package/dist/components/dialog.esm.js.map +1 -1
  7. package/dist/components/dialog.js +1 -1
  8. package/dist/components/dialog.js.map +1 -1
  9. package/dist/components/image-cropper.esm.js +1 -1
  10. package/dist/components/image-cropper.esm.js.map +1 -1
  11. package/dist/components/image-cropper.js +1 -1
  12. package/dist/components/image-cropper.js.map +1 -1
  13. package/dist/components/input.esm.js +1 -1
  14. package/dist/components/input.esm.js.map +1 -1
  15. package/dist/components/input.js +1 -1
  16. package/dist/components/input.js.map +1 -1
  17. package/dist/components/modal.d.ts +5 -1
  18. package/dist/components/modal.esm.js +72 -46
  19. package/dist/components/modal.esm.js.map +1 -1
  20. package/dist/components/modal.js +1 -1
  21. package/dist/components/modal.js.map +1 -1
  22. package/dist/components/table-mobile.esm.js +1 -1
  23. package/dist/components/table-mobile.esm.js.map +1 -1
  24. package/dist/components/table-mobile.js +1 -1
  25. package/dist/components/table-mobile.js.map +1 -1
  26. package/dist/components/table.d.ts +2 -2
  27. package/dist/components/table.esm.js +103 -89
  28. package/dist/components/table.esm.js.map +1 -1
  29. package/dist/components/table.js +1 -1
  30. package/dist/components/table.js.map +1 -1
  31. package/dist/components/use-toast.esm.js +1 -1
  32. package/dist/components/use-toast.esm.js.map +1 -1
  33. package/dist/components/use-toast.js +1 -1
  34. package/dist/components/use-toast.js.map +1 -1
  35. package/dist/index.d.ts +15 -11
  36. package/dist/modal.d.ts +6 -2
  37. package/dist/stepper.d.ts +4 -0
  38. package/dist/styles.css +1 -1
  39. package/dist/table-mobile.d.ts +1 -1
  40. package/dist/table.d.ts +2 -2
  41. package/package.json +1 -1
package/dist/badge.d.ts CHANGED
@@ -9,7 +9,7 @@ export declare interface BadgeProps extends React_2.HTMLAttributes<HTMLDivElemen
9
9
  }
10
10
 
11
11
  export declare const badgeVariants: (props?: ({
12
- variant?: "default" | "outline" | "secondary" | "destructive" | null | undefined;
12
+ variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
13
13
  } & ClassProp) | undefined) => string;
14
14
 
15
15
  export { }
package/dist/command.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare const Command: React_2.ForwardRefExoticComponent<Omit<{
7
7
  ref?: React_2.Ref<HTMLDivElement>;
8
8
  } & {
9
9
  asChild?: boolean;
10
- }, "key" | keyof React_2.HTMLAttributes<HTMLDivElement> | "asChild"> & {
10
+ }, "asChild" | "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
11
11
  label?: string;
12
12
  shouldFilter?: boolean;
13
13
  filter?: (value: string, search: string, keywords?: string[]) => number;
@@ -31,7 +31,7 @@ export declare const CommandEmpty: React_2.ForwardRefExoticComponent<Omit<{
31
31
  ref?: React_2.Ref<HTMLDivElement>;
32
32
  } & {
33
33
  asChild?: boolean;
34
- }, "key" | keyof React_2.HTMLAttributes<HTMLDivElement> | "asChild"> & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
34
+ }, "asChild" | "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
35
35
 
36
36
  export declare const CommandGroup: React_2.ForwardRefExoticComponent<Omit<{
37
37
  children?: React_2.ReactNode;
@@ -39,7 +39,7 @@ export declare const CommandGroup: React_2.ForwardRefExoticComponent<Omit<{
39
39
  ref?: React_2.Ref<HTMLDivElement>;
40
40
  } & {
41
41
  asChild?: boolean;
42
- }, "key" | keyof React_2.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
42
+ }, "asChild" | "key" | keyof React_2.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
43
43
  heading?: React_2.ReactNode;
44
44
  value?: string;
45
45
  forceMount?: boolean;
@@ -49,7 +49,7 @@ export declare const CommandInput: React_2.ForwardRefExoticComponent<Omit<Omit<P
49
49
  ref?: React_2.Ref<HTMLInputElement>;
50
50
  } & {
51
51
  asChild?: boolean;
52
- }, "key" | "asChild" | keyof React_2.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
52
+ }, "asChild" | "key" | keyof React_2.InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
53
53
  value?: string;
54
54
  onValueChange?: (search: string) => void;
55
55
  } & React_2.RefAttributes<HTMLInputElement>, "ref"> & React_2.RefAttributes<HTMLInputElement>>;
@@ -60,7 +60,7 @@ export declare const CommandItem: React_2.ForwardRefExoticComponent<Omit<{
60
60
  ref?: React_2.Ref<HTMLDivElement>;
61
61
  } & {
62
62
  asChild?: boolean;
63
- }, "key" | keyof React_2.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
63
+ }, "asChild" | "key" | keyof React_2.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
64
64
  disabled?: boolean;
65
65
  onSelect?: (value: string) => void;
66
66
  value?: string;
@@ -74,7 +74,7 @@ export declare const CommandList: React_2.ForwardRefExoticComponent<Omit<{
74
74
  ref?: React_2.Ref<HTMLDivElement>;
75
75
  } & {
76
76
  asChild?: boolean;
77
- }, "key" | keyof React_2.HTMLAttributes<HTMLDivElement> | "asChild"> & {
77
+ }, "asChild" | "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
78
78
  label?: string;
79
79
  } & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
80
80
 
@@ -82,7 +82,7 @@ export declare const CommandSeparator: React_2.ForwardRefExoticComponent<Omit<Pi
82
82
  ref?: React_2.Ref<HTMLDivElement>;
83
83
  } & {
84
84
  asChild?: boolean;
85
- }, "key" | keyof React_2.HTMLAttributes<HTMLDivElement> | "asChild"> & {
85
+ }, "asChild" | "key" | keyof React_2.HTMLAttributes<HTMLDivElement>> & {
86
86
  alwaysRender?: boolean;
87
87
  } & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
88
88
 
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "outline" | "secondary" | "destructive" | null | undefined;
4
+ variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
5
5
  } & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -5,7 +5,7 @@ declare const Command: React.ForwardRefExoticComponent<Omit<{
5
5
  ref?: React.Ref<HTMLDivElement>;
6
6
  } & {
7
7
  asChild?: boolean;
8
- }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
8
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
9
9
  label?: string;
10
10
  shouldFilter?: boolean;
11
11
  filter?: (value: string, search: string, keywords?: string[]) => number;
@@ -25,7 +25,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
25
25
  ref?: React.Ref<HTMLInputElement>;
26
26
  } & {
27
27
  asChild?: boolean;
28
- }, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
28
+ }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
29
29
  value?: string;
30
30
  onValueChange?: (search: string) => void;
31
31
  } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -35,7 +35,7 @@ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
35
35
  ref?: React.Ref<HTMLDivElement>;
36
36
  } & {
37
37
  asChild?: boolean;
38
- }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
38
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
39
39
  label?: string;
40
40
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
41
41
  declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
@@ -44,14 +44,14 @@ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
44
44
  ref?: React.Ref<HTMLDivElement>;
45
45
  } & {
46
46
  asChild?: boolean;
47
- }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
47
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
48
48
  declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
49
49
  children?: React.ReactNode;
50
50
  } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
51
51
  ref?: React.Ref<HTMLDivElement>;
52
52
  } & {
53
53
  asChild?: boolean;
54
- }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
54
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
55
55
  heading?: React.ReactNode;
56
56
  value?: string;
57
57
  forceMount?: boolean;
@@ -60,7 +60,7 @@ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<R
60
60
  ref?: React.Ref<HTMLDivElement>;
61
61
  } & {
62
62
  asChild?: boolean;
63
- }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
63
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
64
64
  alwaysRender?: boolean;
65
65
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
66
66
  declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
@@ -69,7 +69,7 @@ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
69
69
  ref?: React.Ref<HTMLDivElement>;
70
70
  } & {
71
71
  asChild?: boolean;
72
- }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
72
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
73
73
  disabled?: boolean;
74
74
  onSelect?: (value: string) => void;
75
75
  value?: string;
@@ -1,19 +1,19 @@
1
1
  import { j as e } from "../jsx-runtime-DGlMoOmv.js";
2
2
  import * as r from "react";
3
3
  import * as o from "@radix-ui/react-dialog";
4
- import { c as i } from "../utils-qaFjX9_3.js";
4
+ import { c as t } from "../utils-qaFjX9_3.js";
5
5
  import { X as d } from "lucide-react";
6
6
  import { motion as l, AnimatePresence as m } from "framer-motion";
7
- const b = ({ ...a }) => /* @__PURE__ */ e.jsx(o.Root, { ...a }), v = o.Trigger, p = o.Portal, w = o.Close, n = r.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ e.jsx(
7
+ const b = ({ ...a }) => /* @__PURE__ */ e.jsx(o.Root, { ...a }), v = o.Trigger, p = o.Portal, w = o.Close, n = r.forwardRef(({ className: a, ...i }, s) => /* @__PURE__ */ e.jsx(
8
8
  o.Overlay,
9
9
  {
10
10
  ref: s,
11
11
  asChild: !0,
12
- ...t,
12
+ ...i,
13
13
  children: /* @__PURE__ */ e.jsx(
14
14
  l.div,
15
15
  {
16
- className: i(
16
+ className: t(
17
17
  "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",
18
18
  a
19
19
  ),
@@ -26,7 +26,7 @@ const b = ({ ...a }) => /* @__PURE__ */ e.jsx(o.Root, { ...a }), v = o.Trigger,
26
26
  }
27
27
  ));
28
28
  n.displayName = o.Overlay.displayName;
29
- const g = r.forwardRef(({ className: a, children: t, ...s }, c) => /* @__PURE__ */ e.jsx(p, { children: /* @__PURE__ */ e.jsxs(m, { mode: "wait", children: [
29
+ const g = r.forwardRef(({ className: a, children: i, ...s }, c) => /* @__PURE__ */ e.jsx(p, { children: /* @__PURE__ */ e.jsxs(m, { mode: "wait", children: [
30
30
  /* @__PURE__ */ e.jsx(n, {}),
31
31
  /* @__PURE__ */ e.jsx(
32
32
  o.Content,
@@ -37,16 +37,16 @@ const g = r.forwardRef(({ className: a, children: t, ...s }, c) => /* @__PURE__
37
37
  children: /* @__PURE__ */ e.jsxs(
38
38
  l.div,
39
39
  {
40
- className: i(
41
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg rounded-lg",
40
+ className: t(
41
+ "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg gap-4 border-border/50 bg-background p-6 shadow-lg rounded-lg",
42
42
  a
43
43
  ),
44
- initial: { opacity: 0, scale: 0.95, y: "-48%", x: "-50%" },
45
- animate: { opacity: 1, scale: 1, y: "-50%", x: "-50%" },
46
- exit: { opacity: 0, scale: 0.95, y: "-48%", x: "-50%" },
44
+ initial: { opacity: 0, scale: 0.95, x: "-50%", y: "-50%" },
45
+ animate: { opacity: 1, scale: 1, x: "-50%", y: "-50%" },
46
+ exit: { opacity: 0, scale: 0.95, x: "-50%", y: "-50%" },
47
47
  transition: { duration: 0.2 },
48
48
  children: [
49
- t,
49
+ i,
50
50
  /* @__PURE__ */ e.jsxs(o.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
51
51
  /* @__PURE__ */ e.jsx(d, { className: "h-4 w-4" }),
52
52
  /* @__PURE__ */ e.jsx("span", { className: "sr-only", children: "Close" })
@@ -60,50 +60,50 @@ const g = r.forwardRef(({ className: a, children: t, ...s }, c) => /* @__PURE__
60
60
  g.displayName = o.Content.displayName;
61
61
  const x = ({
62
62
  className: a,
63
- ...t
63
+ ...i
64
64
  }) => /* @__PURE__ */ e.jsx(
65
65
  "div",
66
66
  {
67
- className: i(
67
+ className: t(
68
68
  "flex flex-col space-y-1.5 text-center sm:text-left",
69
69
  a
70
70
  ),
71
- ...t
71
+ ...i
72
72
  }
73
73
  );
74
74
  x.displayName = "DialogHeader";
75
75
  const f = ({
76
76
  className: a,
77
- ...t
77
+ ...i
78
78
  }) => /* @__PURE__ */ e.jsx(
79
79
  "div",
80
80
  {
81
- className: i(
81
+ className: t(
82
82
  "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
83
83
  a
84
84
  ),
85
- ...t
85
+ ...i
86
86
  }
87
87
  );
88
88
  f.displayName = "DialogFooter";
89
- const y = r.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ e.jsx(
89
+ const y = r.forwardRef(({ className: a, ...i }, s) => /* @__PURE__ */ e.jsx(
90
90
  o.Title,
91
91
  {
92
92
  ref: s,
93
- className: i(
93
+ className: t(
94
94
  "text-lg font-semibold leading-none tracking-tight",
95
95
  a
96
96
  ),
97
- ...t
97
+ ...i
98
98
  }
99
99
  ));
100
100
  y.displayName = o.Title.displayName;
101
- const u = r.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ e.jsx(
101
+ const u = r.forwardRef(({ className: a, ...i }, s) => /* @__PURE__ */ e.jsx(
102
102
  o.Description,
103
103
  {
104
104
  ref: s,
105
- className: i("text-sm text-muted-foreground", a),
106
- ...t
105
+ className: t("text-sm text-muted-foreground", a),
106
+ ...i
107
107
  }
108
108
  ));
109
109
  u.displayName = o.Description.displayName;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.esm.js","sources":["../../src/components/dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cn } from \"@/lib/utils\"\nimport { X } from \"lucide-react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\n\nconst Dialog = ({ ...props }) => (\n <DialogPrimitive.Root {...props} />\n)\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\",\n className\n )}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <AnimatePresence mode=\"wait\">\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg rounded-lg\",\n className\n )}\n initial={{ opacity: 0, scale: 0.95, y: '-48%', x: '-50%' }}\n animate={{ opacity: 1, scale: 1, y: '-50%', x: '-50%' }}\n exit={{ opacity: 0, scale: 0.95, y: '-48%', x: '-50%' }}\n transition={{ duration: 0.2 }}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </motion.div>\n </DialogPrimitive.Content>\n </AnimatePresence>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} "],"names":["Dialog","props","jsx","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","ref","motion","cn","DialogContent","children","jsxs","AnimatePresence","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.esm.js","sources":["../../src/components/dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cn } from \"@/lib/utils\"\nimport { X } from \"lucide-react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\n\nconst Dialog = ({ ...props }) => (\n <DialogPrimitive.Root {...props} />\n)\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\",\n className\n )}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <AnimatePresence mode=\"wait\">\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg gap-4 border-border/50 bg-background p-6 shadow-lg rounded-lg\",\n className\n )}\n initial={{ opacity: 0, scale: 0.95, x: '-50%', y: '-50%' }}\n animate={{ opacity: 1, scale: 1, x: '-50%', y: '-50%' }}\n exit={{ opacity: 0, scale: 0.95, x: '-50%', y: '-50%' }}\n transition={{ duration: 0.2 }}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </motion.div>\n </DialogPrimitive.Content>\n </AnimatePresence>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} "],"names":["Dialog","props","jsx","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","ref","motion","cn","DialogContent","children","jsxs","AnimatePresence","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../jsx-runtime-BYECrxsp.cjs"),j=require("react"),y=require("@radix-ui/react-dialog"),a=require("../utils-DSKoFOjv.cjs"),D=require("lucide-react"),l=require("framer-motion");function x(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const r=x(j),i=x(y),R=({...e})=>o.jsxRuntimeExports.jsx(i.Root,{...e}),b=i.Trigger,d=i.Portal,N=i.Close,c=r.forwardRef(({className:e,...t},s)=>o.jsxRuntimeExports.jsx(i.Overlay,{ref:s,asChild:!0,...t,children:o.jsxRuntimeExports.jsx(l.motion.div,{className:a.cn("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2}})}));c.displayName=i.Overlay.displayName;const m=r.forwardRef(({className:e,children:t,...s},n)=>o.jsxRuntimeExports.jsx(d,{children:o.jsxRuntimeExports.jsxs(l.AnimatePresence,{mode:"wait",children:[o.jsxRuntimeExports.jsx(c,{}),o.jsxRuntimeExports.jsx(i.Content,{ref:n,asChild:!0,...s,children:o.jsxRuntimeExports.jsxs(l.motion.div,{className:a.cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg rounded-lg",e),initial:{opacity:0,scale:.95,y:"-48%",x:"-50%"},animate:{opacity:1,scale:1,y:"-50%",x:"-50%"},exit:{opacity:0,scale:.95,y:"-48%",x:"-50%"},transition:{duration:.2},children:[t,o.jsxRuntimeExports.jsxs(i.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[o.jsxRuntimeExports.jsx(D.X,{className:"h-4 w-4"}),o.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})})]})}));m.displayName=i.Content.displayName;const g=({className:e,...t})=>o.jsxRuntimeExports.jsx("div",{className:a.cn("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});g.displayName="DialogHeader";const u=({className:e,...t})=>o.jsxRuntimeExports.jsx("div",{className:a.cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});u.displayName="DialogFooter";const p=r.forwardRef(({className:e,...t},s)=>o.jsxRuntimeExports.jsx(i.Title,{ref:s,className:a.cn("text-lg font-semibold leading-none tracking-tight",e),...t}));p.displayName=i.Title.displayName;const f=r.forwardRef(({className:e,...t},s)=>o.jsxRuntimeExports.jsx(i.Description,{ref:s,className:a.cn("text-sm text-muted-foreground",e),...t}));f.displayName=i.Description.displayName;exports.Dialog=R;exports.DialogClose=N;exports.DialogContent=m;exports.DialogDescription=f;exports.DialogFooter=u;exports.DialogHeader=g;exports.DialogOverlay=c;exports.DialogPortal=d;exports.DialogTitle=p;exports.DialogTrigger=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../jsx-runtime-BYECrxsp.cjs"),j=require("react"),y=require("@radix-ui/react-dialog"),a=require("../utils-DSKoFOjv.cjs"),D=require("lucide-react"),l=require("framer-motion");function d(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const r=d(j),i=d(y),R=({...e})=>o.jsxRuntimeExports.jsx(i.Root,{...e}),b=i.Trigger,x=i.Portal,N=i.Close,c=r.forwardRef(({className:e,...t},s)=>o.jsxRuntimeExports.jsx(i.Overlay,{ref:s,asChild:!0,...t,children:o.jsxRuntimeExports.jsx(l.motion.div,{className:a.cn("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2}})}));c.displayName=i.Overlay.displayName;const m=r.forwardRef(({className:e,children:t,...s},n)=>o.jsxRuntimeExports.jsx(x,{children:o.jsxRuntimeExports.jsxs(l.AnimatePresence,{mode:"wait",children:[o.jsxRuntimeExports.jsx(c,{}),o.jsxRuntimeExports.jsx(i.Content,{ref:n,asChild:!0,...s,children:o.jsxRuntimeExports.jsxs(l.motion.div,{className:a.cn("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg gap-4 border-border/50 bg-background p-6 shadow-lg rounded-lg",e),initial:{opacity:0,scale:.95,x:"-50%",y:"-50%"},animate:{opacity:1,scale:1,x:"-50%",y:"-50%"},exit:{opacity:0,scale:.95,x:"-50%",y:"-50%"},transition:{duration:.2},children:[t,o.jsxRuntimeExports.jsxs(i.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[o.jsxRuntimeExports.jsx(D.X,{className:"h-4 w-4"}),o.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})})]})}));m.displayName=i.Content.displayName;const g=({className:e,...t})=>o.jsxRuntimeExports.jsx("div",{className:a.cn("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});g.displayName="DialogHeader";const u=({className:e,...t})=>o.jsxRuntimeExports.jsx("div",{className:a.cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});u.displayName="DialogFooter";const p=r.forwardRef(({className:e,...t},s)=>o.jsxRuntimeExports.jsx(i.Title,{ref:s,className:a.cn("text-lg font-semibold leading-none tracking-tight",e),...t}));p.displayName=i.Title.displayName;const f=r.forwardRef(({className:e,...t},s)=>o.jsxRuntimeExports.jsx(i.Description,{ref:s,className:a.cn("text-sm text-muted-foreground",e),...t}));f.displayName=i.Description.displayName;exports.Dialog=R;exports.DialogClose=N;exports.DialogContent=m;exports.DialogDescription=f;exports.DialogFooter=u;exports.DialogHeader=g;exports.DialogOverlay=c;exports.DialogPortal=x;exports.DialogTitle=p;exports.DialogTrigger=b;
2
2
  //# sourceMappingURL=dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sources":["../../src/components/dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cn } from \"@/lib/utils\"\nimport { X } from \"lucide-react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\n\nconst Dialog = ({ ...props }) => (\n <DialogPrimitive.Root {...props} />\n)\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\",\n className\n )}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <AnimatePresence mode=\"wait\">\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg rounded-lg\",\n className\n )}\n initial={{ opacity: 0, scale: 0.95, y: '-48%', x: '-50%' }}\n animate={{ opacity: 1, scale: 1, y: '-50%', x: '-50%' }}\n exit={{ opacity: 0, scale: 0.95, y: '-48%', x: '-50%' }}\n transition={{ duration: 0.2 }}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </motion.div>\n </DialogPrimitive.Content>\n </AnimatePresence>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} "],"names":["Dialog","props","jsx","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","ref","motion","cn","DialogContent","children","jsxs","AnimatePresence","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sources":["../../src/components/dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cn } from \"@/lib/utils\"\nimport { X } from \"lucide-react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\n\nconst Dialog = ({ ...props }) => (\n <DialogPrimitive.Root {...props} />\n)\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\",\n className\n )}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <AnimatePresence mode=\"wait\">\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n asChild\n {...props}\n >\n <motion.div\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg gap-4 border-border/50 bg-background p-6 shadow-lg rounded-lg\",\n className\n )}\n initial={{ opacity: 0, scale: 0.95, x: '-50%', y: '-50%' }}\n animate={{ opacity: 1, scale: 1, x: '-50%', y: '-50%' }}\n exit={{ opacity: 0, scale: 0.95, x: '-50%', y: '-50%' }}\n transition={{ duration: 0.2 }}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </motion.div>\n </DialogPrimitive.Content>\n </AnimatePresence>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} "],"names":["Dialog","props","jsx","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","ref","motion","cn","DialogContent","children","jsxs","AnimatePresence","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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"}
@@ -38,7 +38,7 @@ function L({
38
38
  /* @__PURE__ */ e.jsx(
39
39
  "div",
40
40
  {
41
- className: "rounded-full border-2 border-border overflow-hidden bg-background",
41
+ className: "rounded-full border-2 border-border/50 overflow-hidden bg-background",
42
42
  style: { width: a, height: a },
43
43
  children: /* @__PURE__ */ e.jsx(
44
44
  "img",
@@ -1 +1 @@
1
- {"version":3,"file":"image-cropper.esm.js","sources":["../../src/components/image-cropper.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport { Button } from './button';\nimport { Upload, RotateCw, X } from 'lucide-react';\nimport { ImageCropperModal } from './image-cropper-modal';\nimport { cn } from '@/lib/utils';\n\ninterface ImageCropperProps {\n value?: string | null;\n onChange: (croppedImage: string | null) => void;\n size?: number;\n className?: string;\n placeholder?: string;\n title?: string;\n outputSize?: number;\n}\n\nexport function ImageCropper({ \n value, \n onChange, \n size = 120, \n className,\n placeholder = \"Upload Image\",\n title = \"Crop Your Image\",\n outputSize = 200\n}: ImageCropperProps) {\n const [isCropModalOpen, setIsCropModalOpen] = useState(false);\n const [imageToEdit, setImageToEdit] = useState<string | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleFileSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = (event) => {\n const imageSrc = event.target?.result as string;\n setImageToEdit(imageSrc);\n setIsCropModalOpen(true);\n };\n reader.readAsDataURL(file);\n }\n // Reset the input value so the same file can be selected again\n e.target.value = '';\n }, []);\n\n const handleCrop = useCallback((croppedImage: string) => {\n onChange(croppedImage);\n setImageToEdit(null);\n }, [onChange]);\n\n const handleCloseCropModal = useCallback(() => {\n setIsCropModalOpen(false);\n setImageToEdit(null);\n // Reset file input to ensure it can be used again\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n }, []);\n\n const handleRemoveImage = useCallback(() => {\n onChange(null);\n }, [onChange]);\n\n return (\n <>\n <div className={cn(\"space-y-3\", className)}>\n {value ? (\n <div className=\"flex flex-col items-center gap-3\">\n <div \n className=\"rounded-full border-2 border-border overflow-hidden bg-background\"\n style={{ width: size, height: size }}\n >\n <img \n src={value} \n alt=\"Agent avatar\" \n className=\"w-full h-full object-cover\"\n />\n </div>\n \n <div className=\"flex gap-2\">\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n >\n <RotateCw className=\"h-3 w-3 mr-1\" />\n Replace\n </Button>\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={handleRemoveImage}\n >\n <X className=\"h-3 w-3 mr-1\" />\n Remove\n </Button>\n </div>\n </div>\n ) : (\n <button\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n className=\"w-full border-2 border-dashed border-border/50 rounded-lg p-6 hover:border-primary/50 hover:bg-primary/2 transition-colors group\"\n >\n <div \n className=\"mx-auto rounded-full bg-primary/10 flex items-center justify-center group-hover:bg-primary/15 transition-colors mb-3\"\n style={{ width: Math.min(size / 2, 60), height: Math.min(size / 2, 60) }}\n >\n <Upload className=\"h-6 w-6 text-primary\" />\n </div>\n <p className=\"text-sm font-medium text-foreground mb-1\">{placeholder}</p>\n <p className=\"text-xs text-muted-foreground\">Click to browse</p>\n </button>\n )}\n \n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={handleFileSelect}\n className=\"hidden\"\n />\n </div>\n\n <ImageCropperModal\n isOpen={isCropModalOpen}\n onClose={handleCloseCropModal}\n imageSrc={imageToEdit}\n onCrop={handleCrop}\n title={title}\n outputSize={outputSize}\n />\n </>\n );\n} "],"names":["ImageCropper","value","onChange","size","className","placeholder","title","outputSize","isCropModalOpen","setIsCropModalOpen","useState","imageToEdit","setImageToEdit","fileInputRef","useRef","handleFileSelect","useCallback","e","file","_a","reader","event","imageSrc","handleCrop","croppedImage","handleCloseCropModal","handleRemoveImage","jsxs","Fragment","cn","jsx","Button","RotateCw","X","Upload","ImageCropperModal"],"mappings":"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"}
1
+ {"version":3,"file":"image-cropper.esm.js","sources":["../../src/components/image-cropper.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport { Button } from './button';\nimport { Upload, RotateCw, X } from 'lucide-react';\nimport { ImageCropperModal } from './image-cropper-modal';\nimport { cn } from '@/lib/utils';\n\ninterface ImageCropperProps {\n value?: string | null;\n onChange: (croppedImage: string | null) => void;\n size?: number;\n className?: string;\n placeholder?: string;\n title?: string;\n outputSize?: number;\n}\n\nexport function ImageCropper({ \n value, \n onChange, \n size = 120, \n className,\n placeholder = \"Upload Image\",\n title = \"Crop Your Image\",\n outputSize = 200\n}: ImageCropperProps) {\n const [isCropModalOpen, setIsCropModalOpen] = useState(false);\n const [imageToEdit, setImageToEdit] = useState<string | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleFileSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = (event) => {\n const imageSrc = event.target?.result as string;\n setImageToEdit(imageSrc);\n setIsCropModalOpen(true);\n };\n reader.readAsDataURL(file);\n }\n // Reset the input value so the same file can be selected again\n e.target.value = '';\n }, []);\n\n const handleCrop = useCallback((croppedImage: string) => {\n onChange(croppedImage);\n setImageToEdit(null);\n }, [onChange]);\n\n const handleCloseCropModal = useCallback(() => {\n setIsCropModalOpen(false);\n setImageToEdit(null);\n // Reset file input to ensure it can be used again\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n }, []);\n\n const handleRemoveImage = useCallback(() => {\n onChange(null);\n }, [onChange]);\n\n return (\n <>\n <div className={cn(\"space-y-3\", className)}>\n {value ? (\n <div className=\"flex flex-col items-center gap-3\">\n <div \n className=\"rounded-full border-2 border-border/50 overflow-hidden bg-background\"\n style={{ width: size, height: size }}\n >\n <img \n src={value} \n alt=\"Agent avatar\" \n className=\"w-full h-full object-cover\"\n />\n </div>\n \n <div className=\"flex gap-2\">\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n >\n <RotateCw className=\"h-3 w-3 mr-1\" />\n Replace\n </Button>\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={handleRemoveImage}\n >\n <X className=\"h-3 w-3 mr-1\" />\n Remove\n </Button>\n </div>\n </div>\n ) : (\n <button\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n className=\"w-full border-2 border-dashed border-border/50 rounded-lg p-6 hover:border-primary/50 hover:bg-primary/2 transition-colors group\"\n >\n <div \n className=\"mx-auto rounded-full bg-primary/10 flex items-center justify-center group-hover:bg-primary/15 transition-colors mb-3\"\n style={{ width: Math.min(size / 2, 60), height: Math.min(size / 2, 60) }}\n >\n <Upload className=\"h-6 w-6 text-primary\" />\n </div>\n <p className=\"text-sm font-medium text-foreground mb-1\">{placeholder}</p>\n <p className=\"text-xs text-muted-foreground\">Click to browse</p>\n </button>\n )}\n \n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={handleFileSelect}\n className=\"hidden\"\n />\n </div>\n\n <ImageCropperModal\n isOpen={isCropModalOpen}\n onClose={handleCloseCropModal}\n imageSrc={imageToEdit}\n onCrop={handleCrop}\n title={title}\n outputSize={outputSize}\n />\n </>\n );\n} "],"names":["ImageCropper","value","onChange","size","className","placeholder","title","outputSize","isCropModalOpen","setIsCropModalOpen","useState","imageToEdit","setImageToEdit","fileInputRef","useRef","handleFileSelect","useCallback","e","file","_a","reader","event","imageSrc","handleCrop","croppedImage","handleCloseCropModal","handleRemoveImage","jsxs","Fragment","cn","jsx","Button","RotateCw","X","Upload","ImageCropperModal"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../jsx-runtime-BYECrxsp.cjs"),r=require("react"),p=require("./button.js"),i=require("lucide-react"),w=require("./image-cropper-modal.js"),I=require("../utils-DSKoFOjv.cjs");function M({value:c,onChange:n,size:a=120,className:j,placeholder:g="Upload Image",title:h="Crop Your Image",outputSize:R=200}){const[f,u]=r.useState(!1),[b,l]=r.useState(null),o=r.useRef(null),E=r.useCallback(t=>{var m;const s=(m=t.target.files)==null?void 0:m[0];if(s){const x=new FileReader;x.onload=y=>{var d;const k=(d=y.target)==null?void 0:d.result;l(k),u(!0)},x.readAsDataURL(s)}t.target.value=""},[]),C=r.useCallback(t=>{n(t),l(null)},[n]),v=r.useCallback(()=>{u(!1),l(null),o.current&&(o.current.value="")},[]),N=r.useCallback(()=>{n(null)},[n]);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs("div",{className:I.cn("space-y-3",j),children:[c?e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsxRuntimeExports.jsx("div",{className:"rounded-full border-2 border-border overflow-hidden bg-background",style:{width:a,height:a},children:e.jsxRuntimeExports.jsx("img",{src:c,alt:"Agent avatar",className:"w-full h-full object-cover"})}),e.jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[e.jsxRuntimeExports.jsxs(p.Button,{variant:"outline",size:"sm",onClick:t=>{var s;t.stopPropagation(),(s=o.current)==null||s.click()},children:[e.jsxRuntimeExports.jsx(i.RotateCw,{className:"h-3 w-3 mr-1"}),"Replace"]}),e.jsxRuntimeExports.jsxs(p.Button,{variant:"outline",size:"sm",onClick:N,children:[e.jsxRuntimeExports.jsx(i.X,{className:"h-3 w-3 mr-1"}),"Remove"]})]})]}):e.jsxRuntimeExports.jsxs("button",{onClick:t=>{var s;t.stopPropagation(),(s=o.current)==null||s.click()},className:"w-full border-2 border-dashed border-border/50 rounded-lg p-6 hover:border-primary/50 hover:bg-primary/2 transition-colors group",children:[e.jsxRuntimeExports.jsx("div",{className:"mx-auto rounded-full bg-primary/10 flex items-center justify-center group-hover:bg-primary/15 transition-colors mb-3",style:{width:Math.min(a/2,60),height:Math.min(a/2,60)},children:e.jsxRuntimeExports.jsx(i.Upload,{className:"h-6 w-6 text-primary"})}),e.jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-foreground mb-1",children:g}),e.jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Click to browse"})]}),e.jsxRuntimeExports.jsx("input",{ref:o,type:"file",accept:"image/*",onChange:E,className:"hidden"})]}),e.jsxRuntimeExports.jsx(w.ImageCropperModal,{isOpen:f,onClose:v,imageSrc:b,onCrop:C,title:h,outputSize:R})]})}exports.ImageCropper=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../jsx-runtime-BYECrxsp.cjs"),r=require("react"),p=require("./button.js"),i=require("lucide-react"),w=require("./image-cropper-modal.js"),I=require("../utils-DSKoFOjv.cjs");function M({value:c,onChange:n,size:a=120,className:j,placeholder:g="Upload Image",title:h="Crop Your Image",outputSize:R=200}){const[f,u]=r.useState(!1),[b,l]=r.useState(null),o=r.useRef(null),E=r.useCallback(t=>{var m;const s=(m=t.target.files)==null?void 0:m[0];if(s){const x=new FileReader;x.onload=y=>{var d;const k=(d=y.target)==null?void 0:d.result;l(k),u(!0)},x.readAsDataURL(s)}t.target.value=""},[]),C=r.useCallback(t=>{n(t),l(null)},[n]),v=r.useCallback(()=>{u(!1),l(null),o.current&&(o.current.value="")},[]),N=r.useCallback(()=>{n(null)},[n]);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs("div",{className:I.cn("space-y-3",j),children:[c?e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsxRuntimeExports.jsx("div",{className:"rounded-full border-2 border-border/50 overflow-hidden bg-background",style:{width:a,height:a},children:e.jsxRuntimeExports.jsx("img",{src:c,alt:"Agent avatar",className:"w-full h-full object-cover"})}),e.jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[e.jsxRuntimeExports.jsxs(p.Button,{variant:"outline",size:"sm",onClick:t=>{var s;t.stopPropagation(),(s=o.current)==null||s.click()},children:[e.jsxRuntimeExports.jsx(i.RotateCw,{className:"h-3 w-3 mr-1"}),"Replace"]}),e.jsxRuntimeExports.jsxs(p.Button,{variant:"outline",size:"sm",onClick:N,children:[e.jsxRuntimeExports.jsx(i.X,{className:"h-3 w-3 mr-1"}),"Remove"]})]})]}):e.jsxRuntimeExports.jsxs("button",{onClick:t=>{var s;t.stopPropagation(),(s=o.current)==null||s.click()},className:"w-full border-2 border-dashed border-border/50 rounded-lg p-6 hover:border-primary/50 hover:bg-primary/2 transition-colors group",children:[e.jsxRuntimeExports.jsx("div",{className:"mx-auto rounded-full bg-primary/10 flex items-center justify-center group-hover:bg-primary/15 transition-colors mb-3",style:{width:Math.min(a/2,60),height:Math.min(a/2,60)},children:e.jsxRuntimeExports.jsx(i.Upload,{className:"h-6 w-6 text-primary"})}),e.jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-foreground mb-1",children:g}),e.jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Click to browse"})]}),e.jsxRuntimeExports.jsx("input",{ref:o,type:"file",accept:"image/*",onChange:E,className:"hidden"})]}),e.jsxRuntimeExports.jsx(w.ImageCropperModal,{isOpen:f,onClose:v,imageSrc:b,onCrop:C,title:h,outputSize:R})]})}exports.ImageCropper=M;
2
2
  //# sourceMappingURL=image-cropper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-cropper.js","sources":["../../src/components/image-cropper.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport { Button } from './button';\nimport { Upload, RotateCw, X } from 'lucide-react';\nimport { ImageCropperModal } from './image-cropper-modal';\nimport { cn } from '@/lib/utils';\n\ninterface ImageCropperProps {\n value?: string | null;\n onChange: (croppedImage: string | null) => void;\n size?: number;\n className?: string;\n placeholder?: string;\n title?: string;\n outputSize?: number;\n}\n\nexport function ImageCropper({ \n value, \n onChange, \n size = 120, \n className,\n placeholder = \"Upload Image\",\n title = \"Crop Your Image\",\n outputSize = 200\n}: ImageCropperProps) {\n const [isCropModalOpen, setIsCropModalOpen] = useState(false);\n const [imageToEdit, setImageToEdit] = useState<string | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleFileSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = (event) => {\n const imageSrc = event.target?.result as string;\n setImageToEdit(imageSrc);\n setIsCropModalOpen(true);\n };\n reader.readAsDataURL(file);\n }\n // Reset the input value so the same file can be selected again\n e.target.value = '';\n }, []);\n\n const handleCrop = useCallback((croppedImage: string) => {\n onChange(croppedImage);\n setImageToEdit(null);\n }, [onChange]);\n\n const handleCloseCropModal = useCallback(() => {\n setIsCropModalOpen(false);\n setImageToEdit(null);\n // Reset file input to ensure it can be used again\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n }, []);\n\n const handleRemoveImage = useCallback(() => {\n onChange(null);\n }, [onChange]);\n\n return (\n <>\n <div className={cn(\"space-y-3\", className)}>\n {value ? (\n <div className=\"flex flex-col items-center gap-3\">\n <div \n className=\"rounded-full border-2 border-border overflow-hidden bg-background\"\n style={{ width: size, height: size }}\n >\n <img \n src={value} \n alt=\"Agent avatar\" \n className=\"w-full h-full object-cover\"\n />\n </div>\n \n <div className=\"flex gap-2\">\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n >\n <RotateCw className=\"h-3 w-3 mr-1\" />\n Replace\n </Button>\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={handleRemoveImage}\n >\n <X className=\"h-3 w-3 mr-1\" />\n Remove\n </Button>\n </div>\n </div>\n ) : (\n <button\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n className=\"w-full border-2 border-dashed border-border/50 rounded-lg p-6 hover:border-primary/50 hover:bg-primary/2 transition-colors group\"\n >\n <div \n className=\"mx-auto rounded-full bg-primary/10 flex items-center justify-center group-hover:bg-primary/15 transition-colors mb-3\"\n style={{ width: Math.min(size / 2, 60), height: Math.min(size / 2, 60) }}\n >\n <Upload className=\"h-6 w-6 text-primary\" />\n </div>\n <p className=\"text-sm font-medium text-foreground mb-1\">{placeholder}</p>\n <p className=\"text-xs text-muted-foreground\">Click to browse</p>\n </button>\n )}\n \n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={handleFileSelect}\n className=\"hidden\"\n />\n </div>\n\n <ImageCropperModal\n isOpen={isCropModalOpen}\n onClose={handleCloseCropModal}\n imageSrc={imageToEdit}\n onCrop={handleCrop}\n title={title}\n outputSize={outputSize}\n />\n </>\n );\n} "],"names":["ImageCropper","value","onChange","size","className","placeholder","title","outputSize","isCropModalOpen","setIsCropModalOpen","useState","imageToEdit","setImageToEdit","fileInputRef","useRef","handleFileSelect","useCallback","e","file","_a","reader","event","imageSrc","handleCrop","croppedImage","handleCloseCropModal","handleRemoveImage","jsxs","Fragment","cn","jsx","Button","RotateCw","X","Upload","ImageCropperModal"],"mappings":"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"}
1
+ {"version":3,"file":"image-cropper.js","sources":["../../src/components/image-cropper.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport { Button } from './button';\nimport { Upload, RotateCw, X } from 'lucide-react';\nimport { ImageCropperModal } from './image-cropper-modal';\nimport { cn } from '@/lib/utils';\n\ninterface ImageCropperProps {\n value?: string | null;\n onChange: (croppedImage: string | null) => void;\n size?: number;\n className?: string;\n placeholder?: string;\n title?: string;\n outputSize?: number;\n}\n\nexport function ImageCropper({ \n value, \n onChange, \n size = 120, \n className,\n placeholder = \"Upload Image\",\n title = \"Crop Your Image\",\n outputSize = 200\n}: ImageCropperProps) {\n const [isCropModalOpen, setIsCropModalOpen] = useState(false);\n const [imageToEdit, setImageToEdit] = useState<string | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleFileSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = (event) => {\n const imageSrc = event.target?.result as string;\n setImageToEdit(imageSrc);\n setIsCropModalOpen(true);\n };\n reader.readAsDataURL(file);\n }\n // Reset the input value so the same file can be selected again\n e.target.value = '';\n }, []);\n\n const handleCrop = useCallback((croppedImage: string) => {\n onChange(croppedImage);\n setImageToEdit(null);\n }, [onChange]);\n\n const handleCloseCropModal = useCallback(() => {\n setIsCropModalOpen(false);\n setImageToEdit(null);\n // Reset file input to ensure it can be used again\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n }, []);\n\n const handleRemoveImage = useCallback(() => {\n onChange(null);\n }, [onChange]);\n\n return (\n <>\n <div className={cn(\"space-y-3\", className)}>\n {value ? (\n <div className=\"flex flex-col items-center gap-3\">\n <div \n className=\"rounded-full border-2 border-border/50 overflow-hidden bg-background\"\n style={{ width: size, height: size }}\n >\n <img \n src={value} \n alt=\"Agent avatar\" \n className=\"w-full h-full object-cover\"\n />\n </div>\n \n <div className=\"flex gap-2\">\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n >\n <RotateCw className=\"h-3 w-3 mr-1\" />\n Replace\n </Button>\n <Button \n variant=\"outline\" \n size=\"sm\"\n onClick={handleRemoveImage}\n >\n <X className=\"h-3 w-3 mr-1\" />\n Remove\n </Button>\n </div>\n </div>\n ) : (\n <button\n onClick={(e) => {\n e.stopPropagation();\n fileInputRef.current?.click();\n }}\n className=\"w-full border-2 border-dashed border-border/50 rounded-lg p-6 hover:border-primary/50 hover:bg-primary/2 transition-colors group\"\n >\n <div \n className=\"mx-auto rounded-full bg-primary/10 flex items-center justify-center group-hover:bg-primary/15 transition-colors mb-3\"\n style={{ width: Math.min(size / 2, 60), height: Math.min(size / 2, 60) }}\n >\n <Upload className=\"h-6 w-6 text-primary\" />\n </div>\n <p className=\"text-sm font-medium text-foreground mb-1\">{placeholder}</p>\n <p className=\"text-xs text-muted-foreground\">Click to browse</p>\n </button>\n )}\n \n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={handleFileSelect}\n className=\"hidden\"\n />\n </div>\n\n <ImageCropperModal\n isOpen={isCropModalOpen}\n onClose={handleCloseCropModal}\n imageSrc={imageToEdit}\n onCrop={handleCrop}\n title={title}\n outputSize={outputSize}\n />\n </>\n );\n} "],"names":["ImageCropper","value","onChange","size","className","placeholder","title","outputSize","isCropModalOpen","setIsCropModalOpen","useState","imageToEdit","setImageToEdit","fileInputRef","useRef","handleFileSelect","useCallback","e","file","_a","reader","event","imageSrc","handleCrop","croppedImage","handleCloseCropModal","handleRemoveImage","jsxs","Fragment","cn","jsx","Button","RotateCw","X","Upload","ImageCropperModal"],"mappings":"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"}
@@ -7,7 +7,7 @@ const f = s.forwardRef(
7
7
  {
8
8
  type: r,
9
9
  className: n(
10
- "flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
10
+ "flex h-10 w-full rounded-md border border-border/50 bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
11
11
  e
12
12
  ),
13
13
  ref: i,
@@ -1 +1 @@
1
- {"version":3,"file":"input.esm.js","sources":["../../src/components/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input }; "],"names":["Input","React","className","type","props","ref","jsx","cn"],"mappings":";;;AAMA,MAAMA,IAAQC,EAAM;AAAA,EAClB,CAAC,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAE5BC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAH;AAAA,MACA,WAAWI;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,KAAAG;AAAA,MACC,GAAGD;AAAA,IAAA;AAAA,EAAA;AAIZ;AACAJ,EAAM,cAAc;"}
1
+ {"version":3,"file":"input.esm.js","sources":["../../src/components/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-border/50 bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input }; "],"names":["Input","React","className","type","props","ref","jsx","cn"],"mappings":";;;AAMA,MAAMA,IAAQC,EAAM;AAAA,EAClB,CAAC,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAE5BC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAH;AAAA,MACA,WAAWI;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,KAAAG;AAAA,MACC,GAAGD;AAAA,IAAA;AAAA,EAAA;AAIZ;AACAJ,EAAM,cAAc;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../jsx-runtime-BYECrxsp.cjs"),s=require("react"),u=require("../utils-DSKoFOjv.cjs");function l(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 c=l(s),o=c.forwardRef(({className:e,type:r,...t},n)=>i.jsxRuntimeExports.jsx("input",{type:r,className:u.cn("flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));o.displayName="Input";exports.Input=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../jsx-runtime-BYECrxsp.cjs"),s=require("react"),u=require("../utils-DSKoFOjv.cjs");function l(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 c=l(s),o=c.forwardRef(({className:e,type:r,...t},n)=>i.jsxRuntimeExports.jsx("input",{type:r,className:u.cn("flex h-10 w-full rounded-md border border-border/50 bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));o.displayName="Input";exports.Input=o;
2
2
  //# sourceMappingURL=input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../src/components/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input }; "],"names":["Input","React","className","type","props","ref","jsx","cn"],"mappings":"+cAMMA,EAAQC,EAAM,WAClB,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAM,GAAGC,CAAA,EAASC,IAE5BC,EAAAA,kBAAAA,IAAC,QAAA,CACC,KAAAH,EACA,UAAWI,EAAAA,GACT,gWACAL,CAAA,EAEF,IAAAG,EACC,GAAGD,CAAA,CAAA,CAIZ,EACAJ,EAAM,YAAc"}
1
+ {"version":3,"file":"input.js","sources":["../../src/components/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-border/50 bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input }; "],"names":["Input","React","className","type","props","ref","jsx","cn"],"mappings":"+cAMMA,EAAQC,EAAM,WAClB,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAM,GAAGC,CAAA,EAASC,IAE5BC,EAAAA,kBAAAA,IAAC,QAAA,CACC,KAAAH,EACA,UAAWI,EAAAA,GACT,mWACAL,CAAA,EAEF,IAAAG,EACC,GAAGD,CAAA,CAAA,CAIZ,EACAJ,EAAM,YAAc"}
@@ -15,5 +15,9 @@ export interface ModalProps {
15
15
  headerClassName?: string;
16
16
  contentClassName?: string;
17
17
  zIndexClassName?: string;
18
+ mobileSheet?: {
19
+ enable: boolean;
20
+ position?: 'left' | 'right' | 'bottom';
21
+ };
18
22
  }
19
- export declare function Modal({ isOpen, onClose, title, description, icon, children, footer, size, showClose, className, isContentScrollable, mainClassName, contentClassName, header, zIndexClassName }: ModalProps): import('react').ReactPortal;
23
+ export declare function Modal({ isOpen, onClose, title, description, icon, children, footer, size, showClose, className, isContentScrollable, mainClassName, contentClassName, header, headerClassName, zIndexClassName, mobileSheet, }: ModalProps): import("react/jsx-runtime").JSX.Element;