lizaui 7.0.7 → 7.0.9
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/calendar/index.cjs.js +1 -1
- package/dist/calendar/index.cjs.js.map +1 -1
- package/dist/calendar/index.es.js +1 -1
- package/dist/calendar/index.es.js.map +1 -1
- package/dist/chunks/index-BydcKEwP.js.map +1 -1
- package/dist/chunks/index-ybbFyaIJ.js.map +1 -1
- package/dist/chunks/scroll-area-B0mWCpSW.js.map +1 -1
- package/dist/chunks/scroll-area-CNrVfRxh.js.map +1 -1
- package/dist/chunks/select-DET3MySD.js.map +1 -1
- package/dist/chunks/select-DGSPwoy8.js.map +1 -1
- package/dist/chunks/tv-CGkrzbji.js.map +1 -1
- package/dist/chunks/tv-DQO4decF.js.map +1 -1
- package/dist/chunks/v4-BysszJq8.js.map +1 -1
- package/dist/chunks/v4-CqdK_b8Y.js.map +1 -1
- package/dist/components/modal/modal.d.ts.map +1 -1
- package/dist/components/modal/modal.type.d.ts +2 -0
- package/dist/components/modal/modal.type.d.ts.map +1 -1
- package/dist/modal/index.cjs.js +1 -1
- package/dist/modal/index.cjs.js.map +1 -1
- package/dist/modal/index.es.js +54 -41
- package/dist/modal/index.es.js.map +1 -1
- package/dist/ui/index.cjs.js.map +1 -1
- package/dist/ui/index.es.js.map +1 -1
- package/package.json +6 -6
package/dist/modal/index.es.js
CHANGED
|
@@ -3,10 +3,10 @@ import R from "react-dom";
|
|
|
3
3
|
import { forwardRef as y, useRef as z, useEffect as p } from "react";
|
|
4
4
|
import { c as n } from "../chunks/utils-CvyT6Z0O.js";
|
|
5
5
|
import { B as A } from "../chunks/button-uo4_Xad_.js";
|
|
6
|
-
import { c as
|
|
7
|
-
import { A as
|
|
6
|
+
import { c as i } from "../chunks/index-D29mdTf5.js";
|
|
7
|
+
import { A as E, L as _ } from "../chunks/index-DC9BfnBH.js";
|
|
8
8
|
import { m as h } from "../chunks/features-animation-BRAvwYFN.js";
|
|
9
|
-
const
|
|
9
|
+
const m = {
|
|
10
10
|
ease: [0.36, 0.66, 0.4, 1]
|
|
11
11
|
}, v = {
|
|
12
12
|
scaleInOut: {
|
|
@@ -15,7 +15,7 @@ const i = {
|
|
|
15
15
|
opacity: 1,
|
|
16
16
|
transition: {
|
|
17
17
|
duration: 0.4,
|
|
18
|
-
ease:
|
|
18
|
+
ease: m.ease
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
exit: {
|
|
@@ -23,7 +23,7 @@ const i = {
|
|
|
23
23
|
opacity: 0,
|
|
24
24
|
transition: {
|
|
25
25
|
duration: 0.3,
|
|
26
|
-
ease:
|
|
26
|
+
ease: m.ease
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
},
|
|
@@ -32,18 +32,18 @@ const i = {
|
|
|
32
32
|
opacity: 1,
|
|
33
33
|
transition: {
|
|
34
34
|
duration: 0.4,
|
|
35
|
-
ease:
|
|
35
|
+
ease: m.ease
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
exit: {
|
|
39
39
|
opacity: 0,
|
|
40
40
|
transition: {
|
|
41
41
|
duration: 0.3,
|
|
42
|
-
ease:
|
|
42
|
+
ease: m.ease
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
},
|
|
46
|
+
}, B = i("", {
|
|
47
47
|
variants: {
|
|
48
48
|
backdrop: {
|
|
49
49
|
transparent: "bg-transparent",
|
|
@@ -54,7 +54,7 @@ const i = {
|
|
|
54
54
|
defaultVariants: {
|
|
55
55
|
backdrop: "opaque"
|
|
56
56
|
}
|
|
57
|
-
}),
|
|
57
|
+
}), C = i("", {
|
|
58
58
|
variants: {
|
|
59
59
|
size: {
|
|
60
60
|
xs: "max-w-xs",
|
|
@@ -72,7 +72,7 @@ const i = {
|
|
|
72
72
|
defaultVariants: {
|
|
73
73
|
size: "md"
|
|
74
74
|
}
|
|
75
|
-
}),
|
|
75
|
+
}), O = i("", {
|
|
76
76
|
variants: {
|
|
77
77
|
radius: {
|
|
78
78
|
none: "rounded-none",
|
|
@@ -84,7 +84,18 @@ const i = {
|
|
|
84
84
|
defaultVariants: {
|
|
85
85
|
radius: "lg"
|
|
86
86
|
}
|
|
87
|
-
}),
|
|
87
|
+
}), P = i("", {
|
|
88
|
+
variants: {
|
|
89
|
+
placement: {
|
|
90
|
+
center: "fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]",
|
|
91
|
+
top: "fixed top-0 left-[50%] translate-x-[-50%] sm:mt-8",
|
|
92
|
+
bottom: "fixed bottom-0 left-[50%] translate-x-[-50%] sm:mb-8"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
defaultVariants: {
|
|
96
|
+
placement: "center"
|
|
97
|
+
}
|
|
98
|
+
}), T = i("", {
|
|
88
99
|
variants: {
|
|
89
100
|
shadow: {
|
|
90
101
|
none: "shadow-none",
|
|
@@ -96,38 +107,39 @@ const i = {
|
|
|
96
107
|
defaultVariants: {
|
|
97
108
|
shadow: "md"
|
|
98
109
|
}
|
|
99
|
-
}),
|
|
110
|
+
}), q = y(
|
|
100
111
|
({
|
|
101
112
|
modalId: o,
|
|
102
113
|
isShow: a,
|
|
103
114
|
isVisible: t,
|
|
104
115
|
children: l,
|
|
105
|
-
style:
|
|
116
|
+
style: r,
|
|
106
117
|
classNameOverlay: c = "",
|
|
107
|
-
styleContainer:
|
|
108
|
-
onClickOutside:
|
|
118
|
+
styleContainer: x,
|
|
119
|
+
onClickOutside: d,
|
|
109
120
|
classNameDialog: w = "modal-custom-dialog",
|
|
110
121
|
classNameContent: g = "",
|
|
111
122
|
backdrop: b = "opaque",
|
|
112
123
|
size: j = "md",
|
|
113
|
-
isKeyboardDismissDisabled:
|
|
124
|
+
isKeyboardDismissDisabled: u = !1,
|
|
114
125
|
shadow: N = "md",
|
|
115
|
-
radius: k = "lg"
|
|
116
|
-
|
|
126
|
+
radius: k = "lg",
|
|
127
|
+
placement: I = "center"
|
|
128
|
+
}, V) => {
|
|
117
129
|
const L = z(null);
|
|
118
130
|
if (p(() => (typeof window < "u" && t && document.body.classList.add("modal-open"), () => {
|
|
119
131
|
typeof window < "u" && document.body.classList.remove("modal-open");
|
|
120
132
|
}), [t]), p(() => {
|
|
121
133
|
const s = (M) => {
|
|
122
|
-
M.key === "Escape" && !
|
|
134
|
+
M.key === "Escape" && !u && d?.();
|
|
123
135
|
};
|
|
124
136
|
return a && document.addEventListener("keydown", s), () => {
|
|
125
137
|
document.removeEventListener("keydown", s);
|
|
126
138
|
};
|
|
127
|
-
}, [a,
|
|
139
|
+
}, [a, u, d]), typeof window > "u") return null;
|
|
128
140
|
const f = document.getElementById("modal-root");
|
|
129
141
|
return f ? R.createPortal(
|
|
130
|
-
/* @__PURE__ */ e.jsx(
|
|
142
|
+
/* @__PURE__ */ e.jsx(E, { children: a && /* @__PURE__ */ e.jsx(_, { features: () => import("../chunks/index-BbDfYVLO.js").then((s) => s.domAnimation), children: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
131
143
|
/* @__PURE__ */ e.jsx(
|
|
132
144
|
h.div,
|
|
133
145
|
{
|
|
@@ -135,8 +147,8 @@ const i = {
|
|
|
135
147
|
animate: "enter",
|
|
136
148
|
exit: "exit",
|
|
137
149
|
variants: v.fade,
|
|
138
|
-
className: n("fixed inset-0 z-50",
|
|
139
|
-
onClick:
|
|
150
|
+
className: n("fixed inset-0 z-50", B({ backdrop: b }), c),
|
|
151
|
+
onClick: d,
|
|
140
152
|
"aria-hidden": !a,
|
|
141
153
|
role: "dialog",
|
|
142
154
|
"aria-modal": "true",
|
|
@@ -152,18 +164,19 @@ const i = {
|
|
|
152
164
|
animate: "enter",
|
|
153
165
|
exit: "exit",
|
|
154
166
|
variants: v.scaleInOut,
|
|
155
|
-
ref:
|
|
167
|
+
ref: V,
|
|
156
168
|
id: o,
|
|
157
169
|
onClick: (s) => s.stopPropagation(),
|
|
158
170
|
className: n(
|
|
159
|
-
"
|
|
160
|
-
|
|
161
|
-
C({
|
|
162
|
-
O({
|
|
171
|
+
" z-50 w-full rounded-lg shadow-lg bg-content1",
|
|
172
|
+
P({ placement: I }),
|
|
173
|
+
C({ size: j }),
|
|
174
|
+
O({ radius: k }),
|
|
175
|
+
T({ shadow: N }),
|
|
163
176
|
w
|
|
164
177
|
),
|
|
165
|
-
style:
|
|
166
|
-
children: /* @__PURE__ */ e.jsx("div", { className: n("modal-custom-content w-full flex flex-col max-h-[calc(100vh_-_4rem)]", g), style:
|
|
178
|
+
style: r,
|
|
179
|
+
children: /* @__PURE__ */ e.jsx("div", { className: n("modal-custom-content w-full flex flex-col max-h-[calc(100vh_-_4rem)]", g), style: x, children: l })
|
|
167
180
|
},
|
|
168
181
|
"modal-content"
|
|
169
182
|
)
|
|
@@ -172,9 +185,9 @@ const i = {
|
|
|
172
185
|
) : null;
|
|
173
186
|
}
|
|
174
187
|
);
|
|
175
|
-
|
|
176
|
-
const
|
|
177
|
-
/* @__PURE__ */ e.jsx("div", { className: n("w-full flex py-4 px-6 flex-initial text-large font-semibold",
|
|
188
|
+
q.displayName = "ModalPortalComponent";
|
|
189
|
+
const Q = ({ title: o, showCloseButton: a = !0, disabled: t = !1, onClick: l, className: r, styled: c, children: x, ...d }) => /* @__PURE__ */ e.jsxs("div", { className: n("modal-custom-header-container w-full"), style: c, children: [
|
|
190
|
+
/* @__PURE__ */ e.jsx("div", { className: n("w-full flex py-4 px-6 flex-initial text-large font-semibold", r), ...d, children: x || /* @__PURE__ */ e.jsx("header", { className: "modal-custom-title text-lg leading-none font-semibold", children: o }) }),
|
|
178
191
|
a && /* @__PURE__ */ e.jsx("div", { className: "absolute top-2.5 right-2.5 disabled:pointer-events-none z-10", children: /* @__PURE__ */ e.jsxs(
|
|
179
192
|
A,
|
|
180
193
|
{
|
|
@@ -194,17 +207,17 @@ const J = ({ title: o, showCloseButton: a = !0, disabled: t = !1, onClick: l, cl
|
|
|
194
207
|
]
|
|
195
208
|
}
|
|
196
209
|
) })
|
|
197
|
-
] }),
|
|
210
|
+
] }), F = y(({ children: o, className: a = "", styled: t, height: l }, r) => /* @__PURE__ */ e.jsx(
|
|
198
211
|
"div",
|
|
199
212
|
{
|
|
200
213
|
className: n("modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto", a),
|
|
201
|
-
ref:
|
|
214
|
+
ref: r,
|
|
202
215
|
style: { ...t, height: l ? `${l}px` : "auto" },
|
|
203
216
|
children: o
|
|
204
217
|
}
|
|
205
218
|
));
|
|
206
|
-
|
|
207
|
-
const
|
|
219
|
+
F.displayName = "ModalBodyPortalComponent";
|
|
220
|
+
const U = ({ children: o, className: a, styled: t }) => /* @__PURE__ */ e.jsx(
|
|
208
221
|
"div",
|
|
209
222
|
{
|
|
210
223
|
className: n("modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto", a),
|
|
@@ -213,9 +226,9 @@ const K = ({ children: o, className: a, styled: t }) => /* @__PURE__ */ e.jsx(
|
|
|
213
226
|
}
|
|
214
227
|
);
|
|
215
228
|
export {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
229
|
+
q as Modal,
|
|
230
|
+
F as ModalBody,
|
|
231
|
+
U as ModalFooter,
|
|
232
|
+
Q as ModalHeader
|
|
220
233
|
};
|
|
221
234
|
//# sourceMappingURL=index.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/components/transition/transition-utils.ts","../../src/components/modal/modal.tsx"],"sourcesContent":["import type { Target, TargetAndTransition, Transition } from \"framer-motion\";\n\ntype WithMotionState<P> = Partial<Record<\"enter\" | \"exit\", P>>;\n\nexport type TransitionConfig = WithMotionState<Transition>;\n\nexport type TransitionEndConfig = WithMotionState<Target>;\n\nexport type TransitionProperties = {\n\t/**\n\t * Custom `transition` definition for `enter` and `exit`\n\t */\n\ttransition?: TransitionConfig;\n\t/**\n\t * Custom `transitionEnd` definition for `enter` and `exit`\n\t */\n\ttransitionEnd?: TransitionEndConfig;\n};\n\ntype TargetResolver<P = {}> = (props: P & TransitionProperties) => TargetAndTransition;\n\ntype Variant<P = {}> = TargetAndTransition | TargetResolver<P>;\n\nexport type Variants<P = {}> = Record<\n\tstring,\n\t{\n\t\tenter: Variant<P>;\n\t\texit: Variant<P>;\n\t\tinitial?: Variant<P>;\n\t}\n>;\n\nexport const TRANSITION_EASINGS = {\n\tease: [0.36, 0.66, 0.4, 1],\n\teaseIn: [0.4, 0, 1, 1],\n\teaseOut: [0, 0, 0.2, 1],\n\teaseInOut: [0.4, 0, 0.2, 1],\n\tspring: [0.155, 1.105, 0.295, 1.12],\n\tspringOut: [0.57, -0.15, 0.62, 0.07],\n\tsoftSpring: [0.16, 1.11, 0.3, 1.02],\n} as const;\n\nexport const TRANSITION_DEFAULTS = {\n\tenter: {\n\t\tduration: 0.2,\n\t\tease: TRANSITION_EASINGS.easeOut,\n\t},\n\texit: {\n\t\tduration: 0.1,\n\t\tease: TRANSITION_EASINGS.easeIn,\n\t},\n} as const;\n\nexport const TRANSITION_VARIANTS: Variants = {\n\tscaleSpring: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.2,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.85)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscaleSpringOpacity: {\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.8)\",\n\t\t},\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransform: \"scale(1)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.96)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscale: {\n\t\tenter: { scale: 1 },\n\t\texit: { scale: 0.95 },\n\t},\n\tscaleFadeIn: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.25,\n\t\t\t\tease: TRANSITION_EASINGS.easeIn,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.95)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.2,\n\t\t\t\tease: TRANSITION_EASINGS.easeOut,\n\t\t\t},\n\t\t},\n\t},\n\tscaleInOut: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(1.03)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tfade: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tcollapse: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\theight: \"auto\",\n\t\t\ttransition: {\n\t\t\t\theight: {\n\t\t\t\t\ttype: \"spring\",\n\t\t\t\t\tbounce: 0,\n\t\t\t\t\tduration: 0.3,\n\t\t\t\t},\n\t\t\t\topacity: {\n\t\t\t\t\tease: \"ease\" as any,\n\t\t\t\t\tduration: 0.4,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\theight: 0,\n\t\t\ttransition: {\n\t\t\t\tease: \"ease\" as any,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t},\n};\n","\"use client\";\n\nimport ReactDOM from \"react-dom\";\nimport { forwardRef, type Ref, useEffect, useRef } from \"react\";\nimport type { ModalBodyType, ModalFooterType, ModalHeaderType, ModalType } from \"./modal.type\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../button\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { LazyMotion, m } from \"framer-motion\";\nimport { TRANSITION_VARIANTS } from \"../transition/transition-utils\";\nimport { cva } from \"class-variance-authority\";\n\nconst backdropVariants = cva(\"\", {\n\tvariants: {\n\t\tbackdrop: {\n\t\t\ttransparent: \"bg-transparent\",\n\t\t\topaque: \"bg-black/50\",\n\t\t\tblur: \"backdrop-blur-md backdrop-saturate-150 bg-overlay/30\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tbackdrop: \"opaque\",\n\t},\n});\n\nconst sizeVariants = cva(\"\", {\n\tvariants: {\n\t\tsize: {\n\t\t\t\"xs\": \"max-w-xs\",\n\t\t\t\"sm\": \"max-w-sm\",\n\t\t\t\"md\": \"max-w-md\",\n\t\t\t\"lg\": \"max-w-lg\",\n\t\t\t\"xl\": \"max-w-xl\",\n\t\t\t\"2xl\": \"max-w-2xl\",\n\t\t\t\"3xl\": \"max-w-3xl\",\n\t\t\t\"4xl\": \"max-w-4xl\",\n\t\t\t\"5xl\": \"max-w-5xl\",\n\t\t\t\"full\": \"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst radiusVariants = cva(\"\", {\n\tvariants: {\n\t\tradius: {\n\t\t\tnone: \"rounded-none\",\n\t\t\tsm: \"rounded-sm\",\n\t\t\tmd: \"rounded-md\",\n\t\t\tlg: \"rounded-lg\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tradius: \"lg\",\n\t},\n});\n\nconst shadowVariants = cva(\"\", {\n\tvariants: {\n\t\tshadow: {\n\t\t\tnone: \"shadow-none\",\n\t\t\tsm: \"shadow-sm\",\n\t\t\tmd: \"shadow-md\",\n\t\t\tlg: \"shadow-lg\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tshadow: \"md\",\n\t},\n});\n\nexport const Modal = forwardRef(\n\t(\n\t\t{\n\t\t\tmodalId,\n\t\t\tisShow,\n\t\t\tisVisible,\n\t\t\tchildren,\n\t\t\tstyle,\n\t\t\tclassNameOverlay = \"\",\n\t\t\tstyleContainer,\n\t\t\tonClickOutside,\n\t\t\tclassNameDialog = \"modal-custom-dialog\",\n\t\t\tclassNameContent = \"\",\n\t\t\tbackdrop = \"opaque\",\n\t\t\tsize = \"md\",\n\t\t\tisKeyboardDismissDisabled = false,\n\t\t\tshadow = \"md\",\n\t\t\tradius = \"lg\",\n\t\t}: ModalType,\n\t\tref: Ref<HTMLDivElement>,\n\t) => {\n\t\tconst modalOverlayRef = useRef<HTMLDivElement>(null);\n\t\tuseEffect(() => {\n\t\t\tif (typeof window !== \"undefined\" && isVisible) {\n\t\t\t\tdocument.body.classList.add(\"modal-open\");\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\t\tdocument.body.classList.remove(\"modal-open\");\n\t\t\t\t}\n\t\t\t};\n\t\t}, [isVisible]);\n\n\t\tuseEffect(() => {\n\t\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\t\tif (e.key === \"Escape\" && !isKeyboardDismissDisabled) {\n\t\t\t\t\tonClickOutside?.();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (isShow) {\n\t\t\t\tdocument.addEventListener(\"keydown\", handleKeyDown);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener(\"keydown\", handleKeyDown);\n\t\t\t};\n\t\t}, [isShow, isKeyboardDismissDisabled, onClickOutside]);\n\n\t\tif (typeof window === \"undefined\") return null;\n\n\t\tconst modalRoot = document.getElementById(\"modal-root\");\n\t\tif (!modalRoot) return null;\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<AnimatePresence>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={() => import(\"framer-motion\").then((res) => res.domAnimation)}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\"fixed inset-0 z-50\", backdropVariants({ backdrop }), classNameOverlay)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden={!isShow}\n\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\tref={modalOverlayRef}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.scaleInOut}\n\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] z-50 w-full rounded-lg shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh_-_4rem)]\", classNameContent)} style={styleContainer}>\n\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>,\n\t\t\tmodalRoot,\n\t\t);\n\t},\n);\nModal.displayName = \"ModalPortalComponent\";\n\nexport const ModalHeader = ({ title, showCloseButton = true, disabled = false, onClick, className, styled, children, ...props }: ModalHeaderType) => {\n\treturn (\n\t\t<div className={cn(\"modal-custom-header-container w-full\")} style={styled}>\n\t\t\t<div className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>\n\n\t\t\t{showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-[36px] h-[36px] min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const ModalBody = forwardRef(({ children, className = \"\", styled, height }: ModalBodyType, ref: Ref<HTMLDivElement>) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\"modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)}\n\t\t\tref={ref}\n\t\t\tstyle={{ ...styled, height: height ? `${height}px` : \"auto\" }}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n});\nModalBody.displayName = \"ModalBodyPortalComponent\";\n\nexport const ModalFooter = ({ children, className, styled }: ModalFooterType) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)}\n\t\t\tstyle={styled}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"],"names":["TRANSITION_EASINGS","TRANSITION_VARIANTS","backdropVariants","cva","sizeVariants","radiusVariants","shadowVariants","Modal","forwardRef","modalId","isShow","isVisible","children","style","classNameOverlay","styleContainer","onClickOutside","classNameDialog","classNameContent","backdrop","size","isKeyboardDismissDisabled","shadow","radius","ref","modalOverlayRef","useRef","useEffect","handleKeyDown","e","modalRoot","ReactDOM","AnimatePresence","jsx","LazyMotion","res","jsxs","Fragment","m","cn","ModalHeader","title","showCloseButton","disabled","onClick","className","styled","props","Button","ModalBody","height","ModalFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../src/components/transition/transition-utils.ts","../../src/components/modal/modal.tsx"],"sourcesContent":["import type { Target, TargetAndTransition, Transition } from \"framer-motion\";\n\ntype WithMotionState<P> = Partial<Record<\"enter\" | \"exit\", P>>;\n\nexport type TransitionConfig = WithMotionState<Transition>;\n\nexport type TransitionEndConfig = WithMotionState<Target>;\n\nexport type TransitionProperties = {\n\t/**\n\t * Custom `transition` definition for `enter` and `exit`\n\t */\n\ttransition?: TransitionConfig;\n\t/**\n\t * Custom `transitionEnd` definition for `enter` and `exit`\n\t */\n\ttransitionEnd?: TransitionEndConfig;\n};\n\ntype TargetResolver<P = {}> = (props: P & TransitionProperties) => TargetAndTransition;\n\ntype Variant<P = {}> = TargetAndTransition | TargetResolver<P>;\n\nexport type Variants<P = {}> = Record<\n\tstring,\n\t{\n\t\tenter: Variant<P>;\n\t\texit: Variant<P>;\n\t\tinitial?: Variant<P>;\n\t}\n>;\n\nexport const TRANSITION_EASINGS = {\n\tease: [0.36, 0.66, 0.4, 1],\n\teaseIn: [0.4, 0, 1, 1],\n\teaseOut: [0, 0, 0.2, 1],\n\teaseInOut: [0.4, 0, 0.2, 1],\n\tspring: [0.155, 1.105, 0.295, 1.12],\n\tspringOut: [0.57, -0.15, 0.62, 0.07],\n\tsoftSpring: [0.16, 1.11, 0.3, 1.02],\n} as const;\n\nexport const TRANSITION_DEFAULTS = {\n\tenter: {\n\t\tduration: 0.2,\n\t\tease: TRANSITION_EASINGS.easeOut,\n\t},\n\texit: {\n\t\tduration: 0.1,\n\t\tease: TRANSITION_EASINGS.easeIn,\n\t},\n} as const;\n\nexport const TRANSITION_VARIANTS: Variants = {\n\tscaleSpring: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.2,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.85)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscaleSpringOpacity: {\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.8)\",\n\t\t},\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransform: \"scale(1)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.96)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscale: {\n\t\tenter: { scale: 1 },\n\t\texit: { scale: 0.95 },\n\t},\n\tscaleFadeIn: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.25,\n\t\t\t\tease: TRANSITION_EASINGS.easeIn,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.95)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.2,\n\t\t\t\tease: TRANSITION_EASINGS.easeOut,\n\t\t\t},\n\t\t},\n\t},\n\tscaleInOut: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(1.03)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tfade: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tcollapse: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\theight: \"auto\",\n\t\t\ttransition: {\n\t\t\t\theight: {\n\t\t\t\t\ttype: \"spring\",\n\t\t\t\t\tbounce: 0,\n\t\t\t\t\tduration: 0.3,\n\t\t\t\t},\n\t\t\t\topacity: {\n\t\t\t\t\tease: \"ease\" as any,\n\t\t\t\t\tduration: 0.4,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\theight: 0,\n\t\t\ttransition: {\n\t\t\t\tease: \"ease\" as any,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t},\n};\n","\"use client\";\n\nimport ReactDOM from \"react-dom\";\nimport { forwardRef, type Ref, useEffect, useRef } from \"react\";\nimport type { ModalBodyType, ModalFooterType, ModalHeaderType, ModalType } from \"./modal.type\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"../button\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { LazyMotion, m } from \"framer-motion\";\nimport { TRANSITION_VARIANTS } from \"../transition/transition-utils\";\nimport { cva } from \"class-variance-authority\";\n\nconst backdropVariants = cva(\"\", {\n\tvariants: {\n\t\tbackdrop: {\n\t\t\ttransparent: \"bg-transparent\",\n\t\t\topaque: \"bg-black/50\",\n\t\t\tblur: \"backdrop-blur-md backdrop-saturate-150 bg-overlay/30\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tbackdrop: \"opaque\",\n\t},\n});\n\nconst sizeVariants = cva(\"\", {\n\tvariants: {\n\t\tsize: {\n\t\t\t\"xs\": \"max-w-xs\",\n\t\t\t\"sm\": \"max-w-sm\",\n\t\t\t\"md\": \"max-w-md\",\n\t\t\t\"lg\": \"max-w-lg\",\n\t\t\t\"xl\": \"max-w-xl\",\n\t\t\t\"2xl\": \"max-w-2xl\",\n\t\t\t\"3xl\": \"max-w-3xl\",\n\t\t\t\"4xl\": \"max-w-4xl\",\n\t\t\t\"5xl\": \"max-w-5xl\",\n\t\t\t\"full\": \"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst radiusVariants = cva(\"\", {\n\tvariants: {\n\t\tradius: {\n\t\t\tnone: \"rounded-none\",\n\t\t\tsm: \"rounded-sm\",\n\t\t\tmd: \"rounded-md\",\n\t\t\tlg: \"rounded-lg\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tradius: \"lg\",\n\t},\n});\n\nconst placementVariants = cva(\"\", {\n\tvariants: {\n\t\tplacement: {\n\t\t\tcenter: \"fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]\",\n\t\t\ttop: \"fixed top-0 left-[50%] translate-x-[-50%] sm:mt-8\",\n bottom: \"fixed bottom-0 left-[50%] translate-x-[-50%] sm:mb-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tplacement: \"center\",\n\t},\n});\n\nconst shadowVariants = cva(\"\", {\n\tvariants: {\n\t\tshadow: {\n\t\t\tnone: \"shadow-none\",\n\t\t\tsm: \"shadow-sm\",\n\t\t\tmd: \"shadow-md\",\n\t\t\tlg: \"shadow-lg\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tshadow: \"md\",\n\t},\n});\n\nexport const Modal = forwardRef(\n\t(\n\t\t{\n\t\t\tmodalId,\n\t\t\tisShow,\n\t\t\tisVisible,\n\t\t\tchildren,\n\t\t\tstyle,\n\t\t\tclassNameOverlay = \"\",\n\t\t\tstyleContainer,\n\t\t\tonClickOutside,\n\t\t\tclassNameDialog = \"modal-custom-dialog\",\n\t\t\tclassNameContent = \"\",\n\t\t\tbackdrop = \"opaque\",\n\t\t\tsize = \"md\",\n\t\t\tisKeyboardDismissDisabled = false,\n\t\t\tshadow = \"md\",\n\t\t\tradius = \"lg\",\n placement = \"center\",\n\t\t}: ModalType,\n\t\tref: Ref<HTMLDivElement>,\n\t) => {\n\t\tconst modalOverlayRef = useRef<HTMLDivElement>(null);\n\t\tuseEffect(() => {\n\t\t\tif (typeof window !== \"undefined\" && isVisible) {\n\t\t\t\tdocument.body.classList.add(\"modal-open\");\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\t\tdocument.body.classList.remove(\"modal-open\");\n\t\t\t\t}\n\t\t\t};\n\t\t}, [isVisible]);\n\n\t\tuseEffect(() => {\n\t\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\t\tif (e.key === \"Escape\" && !isKeyboardDismissDisabled) {\n\t\t\t\t\tonClickOutside?.();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (isShow) {\n\t\t\t\tdocument.addEventListener(\"keydown\", handleKeyDown);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener(\"keydown\", handleKeyDown);\n\t\t\t};\n\t\t}, [isShow, isKeyboardDismissDisabled, onClickOutside]);\n\n\t\tif (typeof window === \"undefined\") return null;\n\n\t\tconst modalRoot = document.getElementById(\"modal-root\");\n\t\tif (!modalRoot) return null;\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<AnimatePresence>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={() => import(\"framer-motion\").then((res) => res.domAnimation)}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\"fixed inset-0 z-50\", backdropVariants({ backdrop }), classNameOverlay)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden={!isShow}\n\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\tref={modalOverlayRef}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.scaleInOut}\n\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\" z-50 w-full rounded-lg shadow-lg bg-content1\",\n placementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh_-_4rem)]\", classNameContent)} style={styleContainer}>\n\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>,\n\t\t\tmodalRoot,\n\t\t);\n\t},\n);\nModal.displayName = \"ModalPortalComponent\";\n\nexport const ModalHeader = ({ title, showCloseButton = true, disabled = false, onClick, className, styled, children, ...props }: ModalHeaderType) => {\n\treturn (\n\t\t<div className={cn(\"modal-custom-header-container w-full\")} style={styled}>\n\t\t\t<div className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>\n\n\t\t\t{showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-[36px] h-[36px] min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const ModalBody = forwardRef(({ children, className = \"\", styled, height }: ModalBodyType, ref: Ref<HTMLDivElement>) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\"modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)}\n\t\t\tref={ref}\n\t\t\tstyle={{ ...styled, height: height ? `${height}px` : \"auto\" }}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n});\nModalBody.displayName = \"ModalBodyPortalComponent\";\n\nexport const ModalFooter = ({ children, className, styled }: ModalFooterType) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)}\n\t\t\tstyle={styled}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"],"names":["TRANSITION_EASINGS","TRANSITION_VARIANTS","backdropVariants","cva","sizeVariants","radiusVariants","placementVariants","shadowVariants","Modal","forwardRef","modalId","isShow","isVisible","children","style","classNameOverlay","styleContainer","onClickOutside","classNameDialog","classNameContent","backdrop","size","isKeyboardDismissDisabled","shadow","radius","placement","ref","modalOverlayRef","useRef","useEffect","handleKeyDown","e","modalRoot","ReactDOM","AnimatePresence","jsx","LazyMotion","res","jsxs","Fragment","m","cn","ModalHeader","title","showCloseButton","disabled","onClick","className","styled","props","Button","ModalBody","height","ModalFooter"],"mappings":"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"}
|