@definable/ui 0.1.12 → 0.1.13
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/dist/badge.d.ts +1 -1
- package/dist/command.d.ts +7 -7
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/command.d.ts +7 -7
- package/dist/components/dialog.esm.js +23 -23
- package/dist/components/dialog.esm.js.map +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/modal.d.ts +5 -1
- package/dist/components/modal.esm.js +72 -46
- package/dist/components/modal.esm.js.map +1 -1
- package/dist/components/modal.js +1 -1
- package/dist/components/modal.js.map +1 -1
- package/dist/components/table.d.ts +2 -2
- package/dist/components/table.esm.js +103 -89
- package/dist/components/table.esm.js.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/index.d.ts +15 -11
- package/dist/modal.d.ts +6 -2
- package/dist/stepper.d.ts +4 -0
- package/dist/styles.css +1 -1
- package/dist/table-mobile.d.ts +1 -1
- package/dist/table.d.ts +2 -2
- 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" | "
|
|
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
|
|
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
|
|
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
|
|
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
|
-
}, "
|
|
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
|
|
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
|
|
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
|
|
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" | "
|
|
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
|
|
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
|
-
}, "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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, ...
|
|
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
|
-
...
|
|
12
|
+
...i,
|
|
13
13
|
children: /* @__PURE__ */ e.jsx(
|
|
14
14
|
l.div,
|
|
15
15
|
{
|
|
16
|
-
className:
|
|
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:
|
|
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:
|
|
41
|
-
"fixed left-
|
|
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,
|
|
45
|
-
animate: { opacity: 1, scale: 1,
|
|
46
|
-
exit: { opacity: 0, scale: 0.95,
|
|
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
|
-
|
|
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
|
-
...
|
|
63
|
+
...i
|
|
64
64
|
}) => /* @__PURE__ */ e.jsx(
|
|
65
65
|
"div",
|
|
66
66
|
{
|
|
67
|
-
className:
|
|
67
|
+
className: t(
|
|
68
68
|
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
69
69
|
a
|
|
70
70
|
),
|
|
71
|
-
...
|
|
71
|
+
...i
|
|
72
72
|
}
|
|
73
73
|
);
|
|
74
74
|
x.displayName = "DialogHeader";
|
|
75
75
|
const f = ({
|
|
76
76
|
className: a,
|
|
77
|
-
...
|
|
77
|
+
...i
|
|
78
78
|
}) => /* @__PURE__ */ e.jsx(
|
|
79
79
|
"div",
|
|
80
80
|
{
|
|
81
|
-
className:
|
|
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
|
-
...
|
|
85
|
+
...i
|
|
86
86
|
}
|
|
87
87
|
);
|
|
88
88
|
f.displayName = "DialogFooter";
|
|
89
|
-
const y = r.forwardRef(({ className: a, ...
|
|
89
|
+
const y = r.forwardRef(({ className: a, ...i }, s) => /* @__PURE__ */ e.jsx(
|
|
90
90
|
o.Title,
|
|
91
91
|
{
|
|
92
92
|
ref: s,
|
|
93
|
-
className:
|
|
93
|
+
className: t(
|
|
94
94
|
"text-lg font-semibold leading-none tracking-tight",
|
|
95
95
|
a
|
|
96
96
|
),
|
|
97
|
-
...
|
|
97
|
+
...i
|
|
98
98
|
}
|
|
99
99
|
));
|
|
100
100
|
y.displayName = o.Title.displayName;
|
|
101
|
-
const u = r.forwardRef(({ className: a, ...
|
|
101
|
+
const u = r.forwardRef(({ className: a, ...i }, s) => /* @__PURE__ */ e.jsx(
|
|
102
102
|
o.Description,
|
|
103
103
|
{
|
|
104
104
|
ref: s,
|
|
105
|
-
className:
|
|
106
|
-
...
|
|
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
|
|
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":";;;;;;AAMA,MAAMA,IAAS,CAAC,EAAE,GAAGC,EAAA,MACnBC,gBAAAA,EAAAA,IAACC,EAAgB,MAAhB,EAAsB,GAAGF,EAAA,CAAO,GAG7BG,IAAgBD,EAAgB,SAEhCE,IAAeF,EAAgB,QAE/BG,IAAcH,EAAgB,OAE9BI,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGR,EAAA,GAASS,MAC1BR,gBAAAA,EAAAA;AAAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAO;AAAA,IACA,SAAO;AAAA,IACN,GAAGT;AAAA,IAEJ,UAAAC,gBAAAA,EAAAA;AAAAA,MAACS,EAAO;AAAA,MAAP;AAAA,QACD,WAAWC;AAAA,UACP;AAAA,UACFH;AAAA,QAAA;AAAA,QAEA,SAAS,EAAE,SAAS,EAAA;AAAA,QACpB,SAAS,EAAE,SAAS,EAAA;AAAA,QACpB,MAAM,EAAE,SAAS,EAAA;AAAA,QACjB,YAAY,EAAE,UAAU,IAAA;AAAA,MAAI;AAAA,IAAA;AAAA,EAChC;AACA,CACD;AACDF,EAAc,cAAcJ,EAAgB,QAAQ;AAEpD,MAAMU,IAAgBL,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,UAAAK,GAAU,GAAGb,KAASS,MACpCR,gBAAAA,EAAAA,IAACG,GAAA,EACC,UAAAU,gBAAAA,EAAAA,KAACC,GAAA,EAAgB,MAAK,QACpB,UAAA;AAAA,EAAAd,gBAAAA,EAAAA,IAACK,GAAA,EAAc;AAAA,EACfL,gBAAAA,EAAAA;AAAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAAO;AAAA,MACA,SAAO;AAAA,MACN,GAAGT;AAAA,MAEJ,UAAAc,gBAAAA,EAAAA;AAAAA,QAACJ,EAAO;AAAA,QAAP;AAAA,UACC,WAAWC;AAAA,YACT;AAAA,YACAH;AAAA,UAAA;AAAA,UAEF,SAAS,EAAE,SAAS,GAAG,OAAO,MAAM,GAAG,QAAQ,GAAG,OAAA;AAAA,UAClD,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,GAAG,QAAQ,GAAG,OAAA;AAAA,UAC/C,MAAM,EAAE,SAAS,GAAG,OAAO,MAAM,GAAG,QAAQ,GAAG,OAAA;AAAA,UAC/C,YAAY,EAAE,UAAU,IAAA;AAAA,UAEvB,UAAA;AAAA,YAAAK;AAAA,YACDC,gBAAAA,EAAAA,KAACZ,EAAgB,OAAhB,EAAsB,WAAU,iRAC/B,UAAA;AAAA,cAAAD,gBAAAA,EAAAA,IAACe,GAAA,EAAE,WAAU,UAAA,CAAU;AAAA,cACvBf,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,YAAA,EAAA,CACjC;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AACF,EAAA,CACF,GACF,CACD;AACDW,EAAc,cAAcV,EAAgB,QAAQ;AAEpD,MAAMe,IAAe,CAAC;AAAA,EACpB,WAAAT;AAAA,EACA,GAAGR;AACL,MACEC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWU;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGR;AAAA,EAAA;AACN;AAEFiB,EAAa,cAAc;AAE3B,MAAMC,IAAe,CAAC;AAAA,EACpB,WAAAV;AAAA,EACA,GAAGR;AACL,MACEC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWU;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGR;AAAA,EAAA;AACN;AAEFkB,EAAa,cAAc;AAE3B,MAAMC,IAAcZ,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGR,EAAA,GAASS,MAC1BR,gBAAAA,EAAAA;AAAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAO;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGR;AAAA,EAAA;AACN,CACD;AACDmB,EAAY,cAAcjB,EAAgB,MAAM;AAEhD,MAAMkB,IAAoBb,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGR,EAAA,GAASS,MAC1BR,gBAAAA,EAAAA;AAAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAO;AAAA,IACA,WAAWE,EAAG,iCAAiCH,CAAS;AAAA,IACvD,GAAGR;AAAA,EAAA;AACN,CACD;AACDoB,EAAkB,cAAclB,EAAgB,YAAY;"}
|
|
@@ -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
|
|
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
|
|
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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"}
|
|
@@ -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(
|
|
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;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { j as e } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import { createPortal as
|
|
3
|
-
import { AnimatePresence as
|
|
4
|
-
import { X as
|
|
5
|
-
import { c as
|
|
6
|
-
import { useCallback as
|
|
7
|
-
|
|
2
|
+
import { createPortal as E } from "react-dom";
|
|
3
|
+
import { AnimatePresence as z, motion as h } from "framer-motion";
|
|
4
|
+
import { X as F } from "lucide-react";
|
|
5
|
+
import { c as n } from "../utils-qaFjX9_3.js";
|
|
6
|
+
import { useCallback as H, useEffect as L } from "react";
|
|
7
|
+
import { Sheet as P } from "./sheet.esm.js";
|
|
8
|
+
const A = (t) => {
|
|
8
9
|
switch (t) {
|
|
9
10
|
case "sm":
|
|
10
11
|
return { width: "100%", maxWidth: "384px" };
|
|
@@ -24,87 +25,112 @@ const z = (t) => {
|
|
|
24
25
|
return { width: "100%", maxWidth: "448px" };
|
|
25
26
|
}
|
|
26
27
|
};
|
|
27
|
-
function
|
|
28
|
+
function B({
|
|
28
29
|
isOpen: t,
|
|
29
|
-
onClose:
|
|
30
|
-
title:
|
|
31
|
-
description:
|
|
32
|
-
icon:
|
|
33
|
-
children:
|
|
34
|
-
footer:
|
|
35
|
-
size:
|
|
36
|
-
showClose:
|
|
30
|
+
onClose: i,
|
|
31
|
+
title: s,
|
|
32
|
+
description: r,
|
|
33
|
+
icon: d,
|
|
34
|
+
children: u,
|
|
35
|
+
footer: a,
|
|
36
|
+
size: j = "md",
|
|
37
|
+
showClose: p = !0,
|
|
37
38
|
className: f,
|
|
38
|
-
isContentScrollable:
|
|
39
|
-
mainClassName:
|
|
40
|
-
contentClassName:
|
|
39
|
+
isContentScrollable: g = !0,
|
|
40
|
+
mainClassName: w,
|
|
41
|
+
contentClassName: b,
|
|
41
42
|
header: l,
|
|
42
|
-
|
|
43
|
+
headerClassName: v,
|
|
44
|
+
zIndexClassName: y = "z-[50]",
|
|
45
|
+
mobileSheet: c
|
|
43
46
|
}) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
if (c != null && c.enable && t && window.innerWidth < 768) {
|
|
48
|
+
const { position: o } = c, k = l || (s || r || d ? /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
49
|
+
d && /* @__PURE__ */ e.jsx("div", { className: "h-8 w-8 rounded-lg flex items-center justify-center", children: d }),
|
|
50
|
+
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
51
|
+
s && /* @__PURE__ */ e.jsx("h2", { className: "text-sm font-medium", children: s }),
|
|
52
|
+
r && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted-foreground", children: r })
|
|
53
|
+
] })
|
|
54
|
+
] }) : void 0), W = /* @__PURE__ */ e.jsx("div", { className: "flex gap-2 justify-end", children: a });
|
|
55
|
+
return /* @__PURE__ */ e.jsx(
|
|
56
|
+
P,
|
|
57
|
+
{
|
|
58
|
+
isOpen: t,
|
|
59
|
+
onClose: i,
|
|
60
|
+
header: k,
|
|
61
|
+
footer: W,
|
|
62
|
+
className: n(f, "w-full max-w-full"),
|
|
63
|
+
position: o || "bottom",
|
|
64
|
+
headerClassName: n(v, "w-full max-w-full"),
|
|
65
|
+
enableFullscreen: !1,
|
|
66
|
+
children: u
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
const x = H((o) => {
|
|
71
|
+
o.key === "Escape" && t && i();
|
|
72
|
+
}, [t, i]);
|
|
73
|
+
L(() => (document.addEventListener("keydown", x), () => document.removeEventListener("keydown", x)), [x]);
|
|
74
|
+
const m = s || r || d || l, N = /* @__PURE__ */ e.jsx(z, { children: t && /* @__PURE__ */ e.jsx("div", { className: n("fixed inset-0 z-50 overflow-hidden", y), children: /* @__PURE__ */ e.jsxs("div", { className: n("min-h-full flex items-center justify-center p-4", w), children: [
|
|
49
75
|
/* @__PURE__ */ e.jsx(
|
|
50
|
-
|
|
76
|
+
h.div,
|
|
51
77
|
{
|
|
52
78
|
initial: { opacity: 0 },
|
|
53
79
|
animate: { opacity: 1 },
|
|
54
80
|
exit: { opacity: 0 },
|
|
55
81
|
className: "fixed inset-0 bg-background/80 backdrop-blur-sm",
|
|
56
|
-
onClick:
|
|
82
|
+
onClick: i
|
|
57
83
|
}
|
|
58
84
|
),
|
|
59
85
|
/* @__PURE__ */ e.jsxs(
|
|
60
|
-
|
|
86
|
+
h.div,
|
|
61
87
|
{
|
|
62
88
|
initial: { opacity: 0, scale: 0.95 },
|
|
63
89
|
animate: { opacity: 1, scale: 1 },
|
|
64
90
|
exit: { opacity: 0, scale: 0.95 },
|
|
65
91
|
transition: { duration: 0.1, ease: "easeOut" },
|
|
66
|
-
className:
|
|
92
|
+
className: n(
|
|
67
93
|
"relative transform rounded-lg bg-background shadow-xl border border-border/50 flex flex-col max-h-[85vh] overflow-hidden",
|
|
68
94
|
f
|
|
69
95
|
),
|
|
70
|
-
style:
|
|
96
|
+
style: A(j),
|
|
71
97
|
children: [
|
|
72
|
-
|
|
98
|
+
m && /* @__PURE__ */ e.jsxs("div", { className: "flex-shrink-0 rounded-t-lg bg-card flex items-center justify-between p-2 border-b border-border/50", children: [
|
|
73
99
|
l || /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
74
|
-
|
|
100
|
+
d && /* @__PURE__ */ e.jsx("div", { className: "h-8 w-8 rounded-lg flex items-center justify-center", children: d }),
|
|
75
101
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
76
|
-
|
|
77
|
-
|
|
102
|
+
s && /* @__PURE__ */ e.jsx("h2", { className: "text-sm font-small", children: s }),
|
|
103
|
+
r && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted-foreground", children: r })
|
|
78
104
|
] })
|
|
79
105
|
] }),
|
|
80
|
-
|
|
106
|
+
p && /* @__PURE__ */ e.jsx(
|
|
81
107
|
"button",
|
|
82
108
|
{
|
|
83
|
-
onClick:
|
|
109
|
+
onClick: i,
|
|
84
110
|
className: "p-1.5 rounded-md hover:bg-muted text-muted-foreground",
|
|
85
111
|
children: /* @__PURE__ */ e.jsxs("div", { className: "flex justify-center items-center", children: [
|
|
86
|
-
/* @__PURE__ */ e.jsx(
|
|
112
|
+
/* @__PURE__ */ e.jsx(F, { className: "h-4 w-4" }),
|
|
87
113
|
/* @__PURE__ */ e.jsx("kbd", { className: "ml-2 text-[10px] text-muted-foreground bg-muted px-1.5 py-0.5 rounded", children: "ESC" })
|
|
88
114
|
] })
|
|
89
115
|
}
|
|
90
116
|
)
|
|
91
117
|
] }),
|
|
92
|
-
/* @__PURE__ */ e.jsx("div", { className:
|
|
118
|
+
/* @__PURE__ */ e.jsx("div", { className: n(
|
|
93
119
|
"flex-1 min-h-0",
|
|
94
|
-
|
|
95
|
-
!
|
|
96
|
-
!
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
), children:
|
|
100
|
-
|
|
120
|
+
g ? "overflow-y-auto" : "",
|
|
121
|
+
!a && !m ? "rounded-lg" : "",
|
|
122
|
+
!a && m ? "rounded-b-lg" : "",
|
|
123
|
+
a && !m ? "rounded-t-lg" : "",
|
|
124
|
+
b
|
|
125
|
+
), children: u }),
|
|
126
|
+
a && /* @__PURE__ */ e.jsx("div", { className: "flex-shrink-0 flex items-center justify-end gap-2 px-4 py-3 border-t border-border/50 bg-card rounded-b-lg", children: a })
|
|
101
127
|
]
|
|
102
128
|
}
|
|
103
129
|
)
|
|
104
130
|
] }) }) });
|
|
105
|
-
return
|
|
131
|
+
return E(N, document.body);
|
|
106
132
|
}
|
|
107
133
|
export {
|
|
108
|
-
|
|
134
|
+
B as Modal
|
|
109
135
|
};
|
|
110
136
|
//# sourceMappingURL=modal.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.esm.js","sources":["../../src/components/modal.tsx"],"sourcesContent":["import { createPortal } from 'react-dom';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { useEffect, useCallback } from 'react';\n\nexport interface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n description?: string | React.ReactNode;\n icon?: React.ReactNode;\n children: React.ReactNode;\n footer?: React.ReactNode;\n size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | '3xl';\n showClose?: boolean;\n className?: string;\n mainClassName?: string;\n isContentScrollable?: boolean;\n header?: React.ReactNode;\n headerClassName?: string;\n contentClassName?: string;\n zIndexClassName?: string;\n}\n\nconst getSizeStyles = (size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | '3xl') => {\n switch (size) {\n case 'sm':\n return { width: '100%', maxWidth: '384px' }; // max-w-sm equivalent\n case 'md':\n return { width: '100%', maxWidth: '448px' }; // max-w-md equivalent\n case 'lg':\n return { width: '100%', maxWidth: '512px' }; // max-w-lg equivalent\n case 'xl':\n return { width: '100%', maxWidth: '70%' };\n case '2xl':\n return { width: '80%', maxWidth: '1200px' };\n case '3xl':\n return { width: '90%', maxWidth: '1600px' };\n case 'full':\n return { width: '100%' };\n default:\n return { width: '100%', maxWidth: '448px' };\n }\n};\n\nexport function Modal({\n isOpen,\n onClose,\n title,\n description,\n icon,\n children,\n footer,\n size = 'md',\n showClose = true,\n className,\n isContentScrollable = true,\n mainClassName,\n contentClassName,\n header,\n zIndexClassName = 'z-[50]'\n}: ModalProps) {\n const handleKeyDown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen) {\n onClose();\n }\n }, [isOpen, onClose]);\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [handleKeyDown]);\n \n const isHeader = title || description || icon || header;\n const content = (\n <AnimatePresence>\n {isOpen && (\n <div className={cn(\"fixed inset-0 z-50 overflow-hidden\", zIndexClassName)}>\n <div className={cn(\"min-h-full flex items-center justify-center p-4\", mainClassName)}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className=\"fixed inset-0 bg-background/80 backdrop-blur-sm\"\n onClick={onClose}\n />\n \n <motion.div\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ duration: 0.1, ease: \"easeOut\" }}\n className={cn(\n \"relative transform rounded-lg bg-background shadow-xl border border-border/50 flex flex-col max-h-[85vh] overflow-hidden\",\n className\n )}\n style={getSizeStyles(size)}\n >\n {/* Header - Fixed */}\n {isHeader && (\n <div className=\"flex-shrink-0 rounded-t-lg bg-card flex items-center justify-between p-2 border-b border-border/50\">\n \n {header ? header: (\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div className=\"h-8 w-8 rounded-lg flex items-center justify-center\">\n {icon}\n </div>\n )}\n <div>\n {title && <h2 className=\"text-sm font-small\">{title}</h2>}\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n </div>\n )}\n {showClose && (\n <button\n onClick={onClose}\n className=\"p-1.5 rounded-md hover:bg-muted text-muted-foreground\"\n >\n <div className=\"flex justify-center items-center\">\n <X className=\"h-4 w-4\" />\n <kbd className=\"ml-2 text-[10px] text-muted-foreground bg-muted px-1.5 py-0.5 rounded\">\n ESC\n </kbd>\n </div>\n </button>\n )}\n </div>\n )}\n\n {/* Content - Scrollable */}\n <div className={cn(\n \"flex-1 min-h-0\", \n isContentScrollable ? 'overflow-y-auto' : '', \n !footer && !isHeader ? 'rounded-lg' : '',\n !footer && isHeader ? 'rounded-b-lg' : '', \n footer && !isHeader ? 'rounded-t-lg' : '',\n contentClassName \n )}>\n {children}\n </div>\n\n {/* Footer - Fixed */}\n {footer && (\n <div className=\"flex-shrink-0 flex items-center justify-end gap-2 px-4 py-3 border-t border-border/50 bg-card rounded-b-lg\">\n {footer}\n </div>\n )}\n </motion.div>\n </div>\n </div>\n )}\n </AnimatePresence>\n );\n\n return createPortal(content, document.body);\n}"],"names":["getSizeStyles","size","Modal","isOpen","onClose","title","description","icon","children","footer","showClose","className","isContentScrollable","mainClassName","contentClassName","header","zIndexClassName","handleKeyDown","useCallback","e","useEffect","isHeader","content","jsx","AnimatePresence","cn","jsxs","motion","X","createPortal"],"mappings":";;;;;;AAyBA,MAAMA,IAAgB,CAACC,MAA6D;AAClF,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,IACpC,KAAK;AACH,aAAO,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,IACpC,KAAK;AACH,aAAO,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,IACpC,KAAK;AACH,aAAO,EAAE,OAAO,QAAQ,UAAU,MAAA;AAAA,IACpC,KAAK;AACH,aAAO,EAAE,OAAO,OAAO,UAAU,SAAA;AAAA,IACnC,KAAK;AACH,aAAO,EAAE,OAAO,OAAO,UAAU,SAAA;AAAA,IACnC,KAAK;AACH,aAAO,EAAE,OAAO,OAAA;AAAA,IAClB;AACE,aAAO,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,EAAQ;AAEhD;AAEO,SAASC,EAAM;AAAA,EACpB,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAR,IAAO;AAAA,EACP,WAAAS,IAAY;AAAA,EACZ,WAAAC;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,eAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC,IAAkB;AACpB,GAAe;AACb,QAAMC,IAAgBC,EAAY,CAACC,MAAqB;AACtD,IAAIA,EAAE,QAAQ,YAAYhB,KACxBC,EAAA;AAAA,EAEJ,GAAG,CAACD,GAAQC,CAAO,CAAC;AAEpB,EAAAgB,EAAU,OACR,SAAS,iBAAiB,WAAWH,CAAa,GAC3C,MAAM,SAAS,oBAAoB,WAAWA,CAAa,IACjE,CAACA,CAAa,CAAC;AAElB,QAAMI,IAAWhB,KAASC,KAAeC,KAAQQ,GAC3CO,IACJC,gBAAAA,MAACC,GAAA,EACE,UAAArB,KACCoB,gBAAAA,MAAC,SAAI,WAAWE,EAAG,sCAAsCT,CAAe,GACtE,UAAAU,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWD,EAAG,mDAAmDZ,CAAa,GACjF,UAAA;AAAA,IAAAU,gBAAAA,EAAAA;AAAAA,MAACI,EAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,SAAS,EAAA;AAAA,QACpB,SAAS,EAAE,SAAS,EAAA;AAAA,QACpB,MAAM,EAAE,SAAS,EAAA;AAAA,QACjB,WAAU;AAAA,QACV,SAASvB;AAAA,MAAA;AAAA,IAAA;AAAA,IAGXsB,gBAAAA,EAAAA;AAAAA,MAACC,EAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,SAAS,GAAG,OAAO,KAAA;AAAA,QAC9B,SAAS,EAAE,SAAS,GAAG,OAAO,EAAA;AAAA,QAC9B,MAAM,EAAE,SAAS,GAAG,OAAO,KAAA;AAAA,QAC3B,YAAY,EAAE,UAAU,KAAK,MAAM,UAAA;AAAA,QACnC,WAAWF;AAAA,UACT;AAAA,UACAd;AAAA,QAAA;AAAA,QAEF,OAAOX,EAAcC,CAAI;AAAA,QAGxB,UAAA;AAAA,UAAAoB,KACCK,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,sGAEZ,UAAA;AAAA,YAAAX,KACCW,gBAAAA,OAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,cAAAnB,KACCgB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,uDACZ,UAAAhB,GACH;AAAA,qCAED,OAAA,EACE,UAAA;AAAA,gBAAAF,KAASkB,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAU,sBAAsB,UAAAlB,GAAM;AAAA,gBACnDC,KAAeiB,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAU,iCAAiC,UAAAjB,EAAA,CAAY;AAAA,cAAA,EAAA,CAC5E;AAAA,YAAA,GACF;AAAA,YAEDI,KACCa,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAASnB;AAAA,gBACT,WAAU;AAAA,gBAEV,UAAAsB,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,oCACb,UAAA;AAAA,kBAAAH,gBAAAA,EAAAA,IAACK,GAAA,EAAE,WAAU,UAAA,CAAU;AAAA,kBACvBL,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,yEAAwE,UAAA,MAAA,CAEvF;AAAA,gBAAA,EAAA,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,GAEJ;AAAA,UAIFA,gBAAAA,MAAC,SAAI,WAAWE;AAAA,YACd;AAAA,YACAb,IAAsB,oBAAoB;AAAA,YAC1C,CAACH,KAAU,CAACY,IAAW,eAAe;AAAA,YACtC,CAACZ,KAAUY,IAAW,iBAAiB;AAAA,YACvCZ,KAAU,CAACY,IAAW,iBAAiB;AAAA,YACvCP;AAAA,UAAA,GAEC,UAAAN,EAAA,CACH;AAAA,UAGCC,KACCc,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,8GACZ,UAAAd,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,EAAA,CACF,GACF,GAEJ;AAGF,SAAOoB,EAAaP,GAAS,SAAS,IAAI;AAC5C;"}
|
|
1
|
+
{"version":3,"file":"modal.esm.js","sources":["../../src/components/modal.tsx"],"sourcesContent":["import { createPortal } from 'react-dom';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { useEffect, useCallback } from 'react';\nimport { Sheet } from './sheet';\n\nexport interface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n description?: string | React.ReactNode;\n icon?: React.ReactNode;\n children: React.ReactNode;\n footer?: React.ReactNode;\n size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | '3xl';\n showClose?: boolean;\n className?: string;\n mainClassName?: string;\n isContentScrollable?: boolean;\n header?: React.ReactNode;\n headerClassName?: string;\n contentClassName?: string;\n zIndexClassName?: string;\n mobileSheet?: {\n enable: boolean;\n position?: 'left' | 'right' | 'bottom';\n };\n}\n\nconst getSizeStyles = (size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | '3xl') => {\n switch (size) {\n case 'sm':\n return { width: '100%', maxWidth: '384px' }; // max-w-sm equivalent\n case 'md':\n return { width: '100%', maxWidth: '448px' }; // max-w-md equivalent\n case 'lg':\n return { width: '100%', maxWidth: '512px' }; // max-w-lg equivalent\n case 'xl':\n return { width: '100%', maxWidth: '70%' };\n case '2xl':\n return { width: '80%', maxWidth: '1200px' };\n case '3xl':\n return { width: '90%', maxWidth: '1600px' };\n case 'full':\n return { width: '100%' };\n default:\n return { width: '100%', maxWidth: '448px' };\n }\n};\n\nexport function Modal({\n isOpen,\n onClose,\n title,\n description,\n icon,\n children,\n footer,\n size = 'md',\n showClose = true,\n className,\n isContentScrollable = true,\n mainClassName,\n contentClassName,\n header,\n headerClassName,\n zIndexClassName = 'z-[50]',\n mobileSheet,\n}: ModalProps) {\n\n // If mobileSheet is true, render Sheet instead\n if (mobileSheet?.enable && isOpen && window.innerWidth < 768) {\n const { position } = mobileSheet;\n\n // Create header content for sheet if we have title, description, or icon\n const sheetHeader = header || (title || description || icon ? (\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div className=\"h-8 w-8 rounded-lg flex items-center justify-center\">\n {icon}\n </div>\n )}\n <div>\n {title && <h2 className=\"text-sm font-medium\">{title}</h2>}\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n </div>\n ) : undefined);\n\n const sheetFooter = (\n <div className=\"flex gap-2 justify-end\">\n {footer}\n </div>\n );\n\n return (\n <Sheet\n isOpen={isOpen}\n onClose={onClose}\n header={sheetHeader}\n footer={sheetFooter}\n className={cn(className, 'w-full max-w-full')}\n position={position || 'bottom'}\n headerClassName={cn(headerClassName, 'w-full max-w-full')}\n enableFullscreen={false}\n >\n {children}\n </Sheet>\n );\n }\n\n const handleKeyDown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen) {\n onClose();\n }\n }, [isOpen, onClose]);\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [handleKeyDown]);\n \n const isHeader = title || description || icon || header;\n const content = (\n <AnimatePresence>\n {isOpen && (\n <div className={cn(\"fixed inset-0 z-50 overflow-hidden\", zIndexClassName)}>\n <div className={cn(\"min-h-full flex items-center justify-center p-4\", mainClassName)}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className=\"fixed inset-0 bg-background/80 backdrop-blur-sm\"\n onClick={onClose}\n />\n \n <motion.div\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ duration: 0.1, ease: \"easeOut\" }}\n className={cn(\n \"relative transform rounded-lg bg-background shadow-xl border border-border/50 flex flex-col max-h-[85vh] overflow-hidden\",\n className\n )}\n style={getSizeStyles(size)}\n >\n {/* Header - Fixed */}\n {isHeader && (\n <div className=\"flex-shrink-0 rounded-t-lg bg-card flex items-center justify-between p-2 border-b border-border/50\">\n \n {header ? header: (\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div className=\"h-8 w-8 rounded-lg flex items-center justify-center\">\n {icon}\n </div>\n )}\n <div>\n {title && <h2 className=\"text-sm font-small\">{title}</h2>}\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n </div>\n )}\n {showClose && (\n <button\n onClick={onClose}\n className=\"p-1.5 rounded-md hover:bg-muted text-muted-foreground\"\n >\n <div className=\"flex justify-center items-center\">\n <X className=\"h-4 w-4\" />\n <kbd className=\"ml-2 text-[10px] text-muted-foreground bg-muted px-1.5 py-0.5 rounded\">\n ESC\n </kbd>\n </div>\n </button>\n )}\n </div>\n )}\n\n {/* Content - Scrollable */}\n <div className={cn(\n \"flex-1 min-h-0\", \n isContentScrollable ? 'overflow-y-auto' : '', \n !footer && !isHeader ? 'rounded-lg' : '',\n !footer && isHeader ? 'rounded-b-lg' : '', \n footer && !isHeader ? 'rounded-t-lg' : '',\n contentClassName \n )}>\n {children}\n </div>\n\n {/* Footer - Fixed */}\n {footer && (\n <div className=\"flex-shrink-0 flex items-center justify-end gap-2 px-4 py-3 border-t border-border/50 bg-card rounded-b-lg\">\n {footer}\n </div>\n )}\n </motion.div>\n </div>\n </div>\n )}\n </AnimatePresence>\n );\n\n return createPortal(content, document.body);\n}"],"names":["getSizeStyles","size","Modal","isOpen","onClose","title","description","icon","children","footer","showClose","className","isContentScrollable","mainClassName","contentClassName","header","headerClassName","zIndexClassName","mobileSheet","position","sheetHeader","jsxs","jsx","sheetFooter","Sheet","cn","handleKeyDown","useCallback","e","useEffect","isHeader","content","AnimatePresence","motion","X","createPortal"],"mappings":"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"}
|