lizaui 9.0.54 → 9.0.55
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/components/modal/modal.d.ts +2 -2
- package/dist/components/modal/modal.d.ts.map +1 -1
- package/dist/components/modal/modal.type.d.ts +6 -4
- package/dist/components/modal/modal.type.d.ts.map +1 -1
- package/dist/modal/index.cjs.js +123 -92
- package/dist/modal/index.cjs.js.map +1 -1
- package/dist/modal/index.es.js +124 -93
- package/dist/modal/index.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ModalBodyType, ModalFooterType, ModalHeaderType, ModalType } from './modal.type';
|
|
2
2
|
export declare const Modal: import('react').ForwardRefExoticComponent<Omit<ModalType, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
3
|
-
export declare const ModalHeader: ({ title, showCloseButton, disabled, onClick, className,
|
|
3
|
+
export declare const ModalHeader: ({ title, showCloseButton, disabled, onClick, className, style, children, id, ...props }: ModalHeaderType) => import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export declare const ModalBody: import('react').ForwardRefExoticComponent<ModalBodyType & import('react').RefAttributes<HTMLDivElement>>;
|
|
5
|
-
export declare const ModalFooter: ({ children, className,
|
|
5
|
+
export declare const ModalFooter: ({ children, className, style }: ModalFooterType) => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAoF/F,eAAO,MAAM,KAAK,mHA6HjB,CAAC;AAGF,eAAO,MAAM,WAAW,GAAI,yFAAwG,eAAe,4CAiClJ,CAAC;AAEF,eAAO,MAAM,SAAS,0GAYpB,CAAC;AAGH,eAAO,MAAM,WAAW,GAAI,gCAAgC,eAAe,4CAS1E,CAAC"}
|
|
@@ -15,7 +15,7 @@ export interface useModalInterface<T = any> {
|
|
|
15
15
|
updateParamBody: (value: T) => void;
|
|
16
16
|
}
|
|
17
17
|
export interface ModalType {
|
|
18
|
-
modalId
|
|
18
|
+
modalId?: string;
|
|
19
19
|
ref?: Ref<HTMLDivElement>;
|
|
20
20
|
size?: SizeModalInterface;
|
|
21
21
|
children: React.ReactNode;
|
|
@@ -36,23 +36,25 @@ export interface ModalType {
|
|
|
36
36
|
}
|
|
37
37
|
export interface ModalBodyType {
|
|
38
38
|
className?: string;
|
|
39
|
-
|
|
39
|
+
style?: CSSProperties;
|
|
40
40
|
children: React.ReactNode;
|
|
41
41
|
height?: number | string;
|
|
42
42
|
onClick?: React.MouseEventHandler<HTMLDivElement> | undefined;
|
|
43
|
+
id?: string;
|
|
43
44
|
}
|
|
44
45
|
export interface ModalHeaderType {
|
|
45
46
|
title?: string;
|
|
46
47
|
showCloseButton?: boolean;
|
|
47
48
|
onClick?: () => void;
|
|
48
49
|
className?: string;
|
|
49
|
-
|
|
50
|
+
style?: CSSProperties;
|
|
50
51
|
children?: React.ReactNode;
|
|
51
52
|
disabled?: boolean;
|
|
53
|
+
id?: string;
|
|
52
54
|
}
|
|
53
55
|
export interface ModalFooterType {
|
|
54
56
|
className?: string;
|
|
55
|
-
|
|
57
|
+
style?: CSSProperties;
|
|
56
58
|
children: React.ReactNode;
|
|
57
59
|
height?: number;
|
|
58
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.type.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3G,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAE;AAC3D,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,CAAC,CAAC;IACb,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.type.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.type.ts"],"names":[],"mappings":"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"}
|
package/dist/modal/index.cjs.js
CHANGED
|
@@ -69,6 +69,7 @@ const TRANSITION_VARIANTS = {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
+
const ModalContext = React.createContext(null);
|
|
72
73
|
const backdropVariants = index.cva("", {
|
|
73
74
|
variants: {
|
|
74
75
|
backdrop: {
|
|
@@ -139,7 +140,7 @@ const shadowVariants = index.cva("", {
|
|
|
139
140
|
}
|
|
140
141
|
});
|
|
141
142
|
const Modal = React.forwardRef(({
|
|
142
|
-
modalId,
|
|
143
|
+
modalId: propModalId,
|
|
143
144
|
isShow,
|
|
144
145
|
isVisible,
|
|
145
146
|
children,
|
|
@@ -156,13 +157,30 @@ const Modal = React.forwardRef(({
|
|
|
156
157
|
radius = "lg",
|
|
157
158
|
placement = "center"
|
|
158
159
|
}, ref) => {
|
|
159
|
-
const
|
|
160
|
+
const [mounted, setMounted] = React.useState(false);
|
|
161
|
+
const uniqueId = React.useId();
|
|
162
|
+
const modalId = propModalId || uniqueId;
|
|
163
|
+
const headerId = `${modalId}-header`;
|
|
164
|
+
const bodyId = `${modalId}-body`;
|
|
165
|
+
React.useEffect(() => {
|
|
166
|
+
setMounted(true);
|
|
167
|
+
return () => setMounted(false);
|
|
168
|
+
}, []);
|
|
160
169
|
React.useEffect(() => {
|
|
161
170
|
if (typeof window !== "undefined" && isVisible) {
|
|
171
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
172
|
+
document.body.style.overflow = "hidden";
|
|
173
|
+
document.body.style.paddingRight = `${scrollbarWidth}px`;
|
|
162
174
|
document.body.classList.add("modal-open");
|
|
175
|
+
} else {
|
|
176
|
+
document.body.style.overflow = "";
|
|
177
|
+
document.body.style.paddingRight = "";
|
|
178
|
+
document.body.classList.remove("modal-open");
|
|
163
179
|
}
|
|
164
180
|
return () => {
|
|
165
181
|
if (typeof window !== "undefined") {
|
|
182
|
+
document.body.style.overflow = "";
|
|
183
|
+
document.body.style.paddingRight = "";
|
|
166
184
|
document.body.classList.remove("modal-open");
|
|
167
185
|
}
|
|
168
186
|
};
|
|
@@ -180,14 +198,13 @@ const Modal = React.forwardRef(({
|
|
|
180
198
|
document.removeEventListener("keydown", handleKeyDown);
|
|
181
199
|
};
|
|
182
200
|
}, [isShow, isKeyboardDismissDisabled, onClickOutside]);
|
|
183
|
-
if (
|
|
184
|
-
const modalRoot = document.getElementById("modal-root");
|
|
185
|
-
if (!modalRoot) return null;
|
|
201
|
+
if (!mounted) return null;
|
|
202
|
+
const modalRoot = document.getElementById("modal-root") || document.body;
|
|
186
203
|
return ReactDOM.createPortal(/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: isShow && /* @__PURE__ */ jsxRuntime.jsx(framerMotion.LazyMotion, { features: () => import("framer-motion").then((res) => res.domAnimation), children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
187
204
|
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.m.div, { initial: "exit", animate: "enter", exit: "exit", variants: TRANSITION_VARIANTS.fade, className: utils.cn("fixed inset-0 z-50", backdropVariants({
|
|
188
205
|
backdrop
|
|
189
|
-
}), classNameOverlay), onClick: onClickOutside, "aria-hidden":
|
|
190
|
-
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.m.div, { initial: "exit", animate: "enter", exit: "exit", variants: TRANSITION_VARIANTS.scaleInOut, ref, id: modalId,
|
|
206
|
+
}), classNameOverlay), onClick: onClickOutside, "aria-hidden": "true", tabIndex: -1 }, "modal-overlay"),
|
|
207
|
+
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.m.div, { initial: "exit", animate: "enter", exit: "exit", variants: TRANSITION_VARIANTS.scaleInOut, ref, id: modalId, role: "dialog", "aria-modal": "true", "aria-labelledby": headerId, "aria-describedby": bodyId, className: utils.cn(" z-50 w-full rounded-lg shadow-lg bg-content1", placementVariants({
|
|
191
208
|
placement
|
|
192
209
|
}), sizeVariants({
|
|
193
210
|
size
|
|
@@ -195,17 +212,21 @@ const Modal = React.forwardRef(({
|
|
|
195
212
|
radius
|
|
196
213
|
}), shadowVariants({
|
|
197
214
|
shadow
|
|
198
|
-
}), classNameDialog), style, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
215
|
+
}), classNameDialog), style, children: /* @__PURE__ */ jsxRuntime.jsx(ModalContext.Provider, { value: {
|
|
216
|
+
headerId,
|
|
217
|
+
bodyId
|
|
218
|
+
}, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]", classNameContent), style: styleContainer, children }) }) }, "modal-content")
|
|
199
219
|
] }) }) }), modalRoot);
|
|
200
220
|
});
|
|
201
221
|
Modal.displayName = "ModalPortalComponent";
|
|
202
222
|
const ModalHeader = (t0) => {
|
|
203
|
-
const $ = compilerRuntime.c(
|
|
223
|
+
const $ = compilerRuntime.c(29);
|
|
204
224
|
let children;
|
|
205
225
|
let className;
|
|
226
|
+
let id;
|
|
206
227
|
let onClick;
|
|
207
228
|
let props;
|
|
208
|
-
let
|
|
229
|
+
let style;
|
|
209
230
|
let t1;
|
|
210
231
|
let t2;
|
|
211
232
|
let title;
|
|
@@ -216,138 +237,148 @@ const ModalHeader = (t0) => {
|
|
|
216
237
|
disabled: t2,
|
|
217
238
|
onClick,
|
|
218
239
|
className,
|
|
219
|
-
|
|
240
|
+
style,
|
|
220
241
|
children,
|
|
242
|
+
id,
|
|
221
243
|
...props
|
|
222
244
|
} = t0);
|
|
223
245
|
$[0] = t0;
|
|
224
246
|
$[1] = children;
|
|
225
247
|
$[2] = className;
|
|
226
|
-
$[3] =
|
|
227
|
-
$[4] =
|
|
228
|
-
$[5] =
|
|
229
|
-
$[6] =
|
|
230
|
-
$[7] =
|
|
231
|
-
$[8] =
|
|
248
|
+
$[3] = id;
|
|
249
|
+
$[4] = onClick;
|
|
250
|
+
$[5] = props;
|
|
251
|
+
$[6] = style;
|
|
252
|
+
$[7] = t1;
|
|
253
|
+
$[8] = t2;
|
|
254
|
+
$[9] = title;
|
|
232
255
|
} else {
|
|
233
256
|
children = $[1];
|
|
234
257
|
className = $[2];
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
258
|
+
id = $[3];
|
|
259
|
+
onClick = $[4];
|
|
260
|
+
props = $[5];
|
|
261
|
+
style = $[6];
|
|
262
|
+
t1 = $[7];
|
|
263
|
+
t2 = $[8];
|
|
264
|
+
title = $[9];
|
|
241
265
|
}
|
|
242
266
|
const showCloseButton = t1 === void 0 ? true : t1;
|
|
243
267
|
const disabled = t2 === void 0 ? false : t2;
|
|
268
|
+
const context = React.useContext(ModalContext);
|
|
244
269
|
let t3;
|
|
245
|
-
if ($[
|
|
270
|
+
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
|
|
246
271
|
t3 = utils.cn("modal-custom-header-container w-full");
|
|
247
|
-
$[
|
|
248
|
-
} else {
|
|
249
|
-
t3 = $[9];
|
|
250
|
-
}
|
|
251
|
-
let t4;
|
|
252
|
-
if ($[10] !== className) {
|
|
253
|
-
t4 = utils.cn("w-full flex py-4 px-6 flex-initial text-large font-semibold", className);
|
|
254
|
-
$[10] = className;
|
|
255
|
-
$[11] = t4;
|
|
272
|
+
$[10] = t3;
|
|
256
273
|
} else {
|
|
257
|
-
|
|
274
|
+
t3 = $[10];
|
|
258
275
|
}
|
|
276
|
+
const t4 = id || context?.headerId;
|
|
259
277
|
let t5;
|
|
260
|
-
if ($[
|
|
261
|
-
t5 =
|
|
262
|
-
$[
|
|
263
|
-
$[
|
|
264
|
-
$[14] = t5;
|
|
278
|
+
if ($[11] !== className) {
|
|
279
|
+
t5 = utils.cn("w-full flex py-4 px-6 flex-initial text-large font-semibold", className);
|
|
280
|
+
$[11] = className;
|
|
281
|
+
$[12] = t5;
|
|
265
282
|
} else {
|
|
266
|
-
t5 = $[
|
|
283
|
+
t5 = $[12];
|
|
267
284
|
}
|
|
268
285
|
let t6;
|
|
269
|
-
if ($[
|
|
270
|
-
t6 = /* @__PURE__ */ jsxRuntime.jsx("
|
|
271
|
-
$[
|
|
272
|
-
$[
|
|
273
|
-
$[
|
|
274
|
-
$[18] = t6;
|
|
286
|
+
if ($[13] !== children || $[14] !== title) {
|
|
287
|
+
t6 = children || /* @__PURE__ */ jsxRuntime.jsx("header", { className: "modal-custom-title text-lg leading-none font-semibold", children: title });
|
|
288
|
+
$[13] = children;
|
|
289
|
+
$[14] = title;
|
|
290
|
+
$[15] = t6;
|
|
275
291
|
} else {
|
|
276
|
-
t6 = $[
|
|
292
|
+
t6 = $[15];
|
|
277
293
|
}
|
|
278
294
|
let t7;
|
|
279
|
-
if ($[
|
|
280
|
-
t7 =
|
|
295
|
+
if ($[16] !== props || $[17] !== t4 || $[18] !== t5 || $[19] !== t6) {
|
|
296
|
+
t7 = /* @__PURE__ */ jsxRuntime.jsx("div", { id: t4, className: t5, ...props, children: t6 });
|
|
297
|
+
$[16] = props;
|
|
298
|
+
$[17] = t4;
|
|
299
|
+
$[18] = t5;
|
|
300
|
+
$[19] = t6;
|
|
301
|
+
$[20] = t7;
|
|
302
|
+
} else {
|
|
303
|
+
t7 = $[20];
|
|
304
|
+
}
|
|
305
|
+
let t8;
|
|
306
|
+
if ($[21] !== disabled || $[22] !== onClick || $[23] !== showCloseButton) {
|
|
307
|
+
t8 = showCloseButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-2.5 right-2.5 disabled:pointer-events-none z-10", children: /* @__PURE__ */ jsxRuntime.jsxs(button.Button, { isIconOnly: true, variant: "light", radius: "full", "aria-label": "Close", onClick, disabled, className: "p-0 w-9 h-9 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", children: [
|
|
281
308
|
/* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "20", fill: "currentColor", role: "img", "aria-hidden": "true", children: [
|
|
282
309
|
/* @__PURE__ */ jsxRuntime.jsx("path", { fill: "none", d: "M0 0h21v21H0z" }),
|
|
283
310
|
/* @__PURE__ */ jsxRuntime.jsx("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" })
|
|
284
311
|
] }),
|
|
285
312
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
286
313
|
] }) });
|
|
287
|
-
$[
|
|
288
|
-
$[
|
|
289
|
-
$[
|
|
290
|
-
$[
|
|
314
|
+
$[21] = disabled;
|
|
315
|
+
$[22] = onClick;
|
|
316
|
+
$[23] = showCloseButton;
|
|
317
|
+
$[24] = t8;
|
|
291
318
|
} else {
|
|
292
|
-
|
|
319
|
+
t8 = $[24];
|
|
293
320
|
}
|
|
294
|
-
let
|
|
295
|
-
if ($[
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
321
|
+
let t9;
|
|
322
|
+
if ($[25] !== style || $[26] !== t7 || $[27] !== t8) {
|
|
323
|
+
t9 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t3, style, children: [
|
|
324
|
+
t7,
|
|
325
|
+
t8
|
|
299
326
|
] });
|
|
300
|
-
$[
|
|
301
|
-
$[
|
|
302
|
-
$[
|
|
303
|
-
$[
|
|
327
|
+
$[25] = style;
|
|
328
|
+
$[26] = t7;
|
|
329
|
+
$[27] = t8;
|
|
330
|
+
$[28] = t9;
|
|
304
331
|
} else {
|
|
305
|
-
|
|
332
|
+
t9 = $[28];
|
|
306
333
|
}
|
|
307
|
-
return
|
|
334
|
+
return t9;
|
|
308
335
|
};
|
|
309
336
|
const ModalBody = React.forwardRef((t0, ref) => {
|
|
310
|
-
const $ = compilerRuntime.c(
|
|
337
|
+
const $ = compilerRuntime.c(11);
|
|
311
338
|
const {
|
|
312
339
|
children,
|
|
313
340
|
className: t1,
|
|
314
|
-
|
|
315
|
-
height
|
|
341
|
+
style,
|
|
342
|
+
height,
|
|
343
|
+
id
|
|
316
344
|
} = t0;
|
|
317
345
|
const className = t1 === void 0 ? "" : t1;
|
|
318
|
-
|
|
346
|
+
const context = React.useContext(ModalContext);
|
|
347
|
+
const t2 = id || context?.bodyId;
|
|
348
|
+
let t3;
|
|
319
349
|
if ($[0] !== className) {
|
|
320
|
-
|
|
350
|
+
t3 = utils.cn("modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto", className);
|
|
321
351
|
$[0] = className;
|
|
322
|
-
$[1] =
|
|
352
|
+
$[1] = t3;
|
|
323
353
|
} else {
|
|
324
|
-
|
|
354
|
+
t3 = $[1];
|
|
325
355
|
}
|
|
326
|
-
const
|
|
327
|
-
let
|
|
328
|
-
if ($[2] !==
|
|
329
|
-
|
|
330
|
-
...
|
|
331
|
-
height:
|
|
356
|
+
const t4 = height ? `${height}px` : "auto";
|
|
357
|
+
let t5;
|
|
358
|
+
if ($[2] !== style || $[3] !== t4) {
|
|
359
|
+
t5 = {
|
|
360
|
+
...style,
|
|
361
|
+
height: t4
|
|
332
362
|
};
|
|
333
|
-
$[2] =
|
|
334
|
-
$[3] =
|
|
335
|
-
$[4] =
|
|
363
|
+
$[2] = style;
|
|
364
|
+
$[3] = t4;
|
|
365
|
+
$[4] = t5;
|
|
336
366
|
} else {
|
|
337
|
-
|
|
367
|
+
t5 = $[4];
|
|
338
368
|
}
|
|
339
|
-
let
|
|
340
|
-
if ($[5] !== children || $[6] !== ref || $[7] !== t2 || $[8] !==
|
|
341
|
-
|
|
369
|
+
let t6;
|
|
370
|
+
if ($[5] !== children || $[6] !== ref || $[7] !== t2 || $[8] !== t3 || $[9] !== t5) {
|
|
371
|
+
t6 = /* @__PURE__ */ jsxRuntime.jsx("div", { id: t2, className: t3, ref, style: t5, children });
|
|
342
372
|
$[5] = children;
|
|
343
373
|
$[6] = ref;
|
|
344
374
|
$[7] = t2;
|
|
345
|
-
$[8] =
|
|
375
|
+
$[8] = t3;
|
|
346
376
|
$[9] = t5;
|
|
377
|
+
$[10] = t6;
|
|
347
378
|
} else {
|
|
348
|
-
|
|
379
|
+
t6 = $[10];
|
|
349
380
|
}
|
|
350
|
-
return
|
|
381
|
+
return t6;
|
|
351
382
|
});
|
|
352
383
|
ModalBody.displayName = "ModalBodyPortalComponent";
|
|
353
384
|
const ModalFooter = (t0) => {
|
|
@@ -355,7 +386,7 @@ const ModalFooter = (t0) => {
|
|
|
355
386
|
const {
|
|
356
387
|
children,
|
|
357
388
|
className,
|
|
358
|
-
|
|
389
|
+
style
|
|
359
390
|
} = t0;
|
|
360
391
|
let t1;
|
|
361
392
|
if ($[0] !== className) {
|
|
@@ -366,10 +397,10 @@ const ModalFooter = (t0) => {
|
|
|
366
397
|
t1 = $[1];
|
|
367
398
|
}
|
|
368
399
|
let t2;
|
|
369
|
-
if ($[2] !== children || $[3] !==
|
|
370
|
-
t2 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t1, style
|
|
400
|
+
if ($[2] !== children || $[3] !== style || $[4] !== t1) {
|
|
401
|
+
t2 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t1, style, children });
|
|
371
402
|
$[2] = children;
|
|
372
|
-
$[3] =
|
|
403
|
+
$[3] = style;
|
|
373
404
|
$[4] = t1;
|
|
374
405
|
$[5] = t2;
|
|
375
406
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.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","ease","TRANSITION_VARIANTS","scaleInOut","enter","transform","opacity","transition","duration","exit","fade","backdropVariants","cva","variants","backdrop","transparent","opaque","blur","defaultVariants","sizeVariants","size","radiusVariants","radius","none","sm","md","lg","placementVariants","placement","center","top","bottom","shadowVariants","shadow","Modal","forwardRef","modalId","isShow","isVisible","children","style","classNameOverlay","styleContainer","onClickOutside","classNameDialog","classNameContent","isKeyboardDismissDisabled","ref","modalOverlayRef","useRef","useEffect","window","document","body","classList","add","remove","handleKeyDown","e","key","addEventListener","removeEventListener","modalRoot","getElementById","ReactDOM","createPortal","jsx","AnimatePresence","LazyMotion","then","res","domAnimation","jsxs","Fragment","m","cn","stopPropagation","displayName","ModalHeader","t0","$","_c","className","onClick","props","styled","t1","t2","title","showCloseButton","disabled","undefined","t3","Symbol","for","t4","t5","t6","t7","Button","t8","ModalBody","height","ModalFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.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, useState, createContext, useContext, useId } 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 ModalContext = createContext<{ headerId: string; bodyId: string } | null>(null);\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\t\t\tbottom: \"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: propModalId,\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\tplacement = \"center\",\n\t\t}: ModalType,\n\t\tref: Ref<HTMLDivElement>,\n\t) => {\n\t\tconst [mounted, setMounted] = useState(false);\n\t\tconst uniqueId = useId();\n\t\tconst modalId = propModalId || uniqueId;\n\t\tconst headerId = `${modalId}-header`;\n\t\tconst bodyId = `${modalId}-body`;\n\n\t\tuseEffect(() => {\n\t\t\tsetMounted(true);\n\t\t\treturn () => setMounted(false);\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tif (typeof window !== \"undefined\" && isVisible) {\n\t\t\t\tconst scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t\t\tdocument.body.style.paddingRight = `${scrollbarWidth}px`;\n\t\t\t\tdocument.body.classList.add(\"modal-open\");\n\t\t\t} else {\n\t\t\t\tdocument.body.style.overflow = \"\";\n\t\t\t\tdocument.body.style.paddingRight = \"\";\n\t\t\t\tdocument.body.classList.remove(\"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.style.overflow = \"\";\n\t\t\t\t\tdocument.body.style.paddingRight = \"\";\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 (!mounted) return null;\n\n\t\tconst modalRoot = document.getElementById(\"modal-root\") || document.body;\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=\"true\"\n\t\t\t\t\t\t\t\ttabIndex={-1}\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\trole=\"dialog\"\n\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\taria-describedby={bodyId}\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\t\t\t\t\t\t\t\t\tplacementVariants({ 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<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\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\t{children}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</ModalContext.Provider>\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, style, children, id, ...props }: ModalHeaderType) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div className={cn(\"modal-custom-header-container w-full\")} style={style}>\n\t\t\t<div\n\t\t\t\tid={id || context?.headerId}\n\t\t\t\tclassName={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)}\n\t\t\t\t{...props}\n\t\t\t>\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-9 h-9 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 = \"\", style, height, id }: ModalBodyType, ref: Ref<HTMLDivElement>) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div\n\t\t\tid={id || context?.bodyId}\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={{ ...style, 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, style }: 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={style}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"],"names":["TRANSITION_EASINGS","ease","TRANSITION_VARIANTS","scaleInOut","enter","transform","opacity","transition","duration","exit","fade","ModalContext","createContext","backdropVariants","cva","variants","backdrop","transparent","opaque","blur","defaultVariants","sizeVariants","size","radiusVariants","radius","none","sm","md","lg","placementVariants","placement","center","top","bottom","shadowVariants","shadow","Modal","forwardRef","modalId","propModalId","isShow","isVisible","children","style","classNameOverlay","styleContainer","onClickOutside","classNameDialog","classNameContent","isKeyboardDismissDisabled","ref","mounted","setMounted","useState","uniqueId","useId","headerId","bodyId","useEffect","window","scrollbarWidth","innerWidth","document","documentElement","clientWidth","body","overflow","paddingRight","classList","add","remove","handleKeyDown","e","key","addEventListener","removeEventListener","modalRoot","getElementById","ReactDOM","createPortal","jsx","AnimatePresence","LazyMotion","then","res","domAnimation","jsxs","Fragment","m","cn","displayName","ModalHeader","t0","$","_c","className","id","onClick","props","t1","t2","title","showCloseButton","disabled","undefined","context","useContext","t3","Symbol","for","t4","t5","t6","t7","t8","Button","t9","ModalBody","height","ModalFooter"],"mappings":"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"}
|
package/dist/modal/index.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import ReactDOM__default from "react-dom";
|
|
4
|
-
import { forwardRef,
|
|
4
|
+
import { createContext, forwardRef, useState, useId, useEffect, useContext } from "react";
|
|
5
5
|
import { c as cn } from "../chunks/utils-H80jjgLf.js";
|
|
6
6
|
import { B as Button } from "../chunks/button-CIYJojCH.js";
|
|
7
7
|
import { AnimatePresence, LazyMotion, m } from "framer-motion";
|
|
@@ -45,6 +45,7 @@ const TRANSITION_VARIANTS = {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
+
const ModalContext = createContext(null);
|
|
48
49
|
const backdropVariants = cva("", {
|
|
49
50
|
variants: {
|
|
50
51
|
backdrop: {
|
|
@@ -115,7 +116,7 @@ const shadowVariants = cva("", {
|
|
|
115
116
|
}
|
|
116
117
|
});
|
|
117
118
|
const Modal = forwardRef(({
|
|
118
|
-
modalId,
|
|
119
|
+
modalId: propModalId,
|
|
119
120
|
isShow,
|
|
120
121
|
isVisible,
|
|
121
122
|
children,
|
|
@@ -132,13 +133,30 @@ const Modal = forwardRef(({
|
|
|
132
133
|
radius = "lg",
|
|
133
134
|
placement = "center"
|
|
134
135
|
}, ref) => {
|
|
135
|
-
const
|
|
136
|
+
const [mounted, setMounted] = useState(false);
|
|
137
|
+
const uniqueId = useId();
|
|
138
|
+
const modalId = propModalId || uniqueId;
|
|
139
|
+
const headerId = `${modalId}-header`;
|
|
140
|
+
const bodyId = `${modalId}-body`;
|
|
141
|
+
useEffect(() => {
|
|
142
|
+
setMounted(true);
|
|
143
|
+
return () => setMounted(false);
|
|
144
|
+
}, []);
|
|
136
145
|
useEffect(() => {
|
|
137
146
|
if (typeof window !== "undefined" && isVisible) {
|
|
147
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
148
|
+
document.body.style.overflow = "hidden";
|
|
149
|
+
document.body.style.paddingRight = `${scrollbarWidth}px`;
|
|
138
150
|
document.body.classList.add("modal-open");
|
|
151
|
+
} else {
|
|
152
|
+
document.body.style.overflow = "";
|
|
153
|
+
document.body.style.paddingRight = "";
|
|
154
|
+
document.body.classList.remove("modal-open");
|
|
139
155
|
}
|
|
140
156
|
return () => {
|
|
141
157
|
if (typeof window !== "undefined") {
|
|
158
|
+
document.body.style.overflow = "";
|
|
159
|
+
document.body.style.paddingRight = "";
|
|
142
160
|
document.body.classList.remove("modal-open");
|
|
143
161
|
}
|
|
144
162
|
};
|
|
@@ -156,14 +174,13 @@ const Modal = forwardRef(({
|
|
|
156
174
|
document.removeEventListener("keydown", handleKeyDown);
|
|
157
175
|
};
|
|
158
176
|
}, [isShow, isKeyboardDismissDisabled, onClickOutside]);
|
|
159
|
-
if (
|
|
160
|
-
const modalRoot = document.getElementById("modal-root");
|
|
161
|
-
if (!modalRoot) return null;
|
|
177
|
+
if (!mounted) return null;
|
|
178
|
+
const modalRoot = document.getElementById("modal-root") || document.body;
|
|
162
179
|
return ReactDOM__default.createPortal(/* @__PURE__ */ jsx(AnimatePresence, { children: isShow && /* @__PURE__ */ jsx(LazyMotion, { features: () => import("framer-motion").then((res) => res.domAnimation), children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
163
180
|
/* @__PURE__ */ jsx(m.div, { initial: "exit", animate: "enter", exit: "exit", variants: TRANSITION_VARIANTS.fade, className: cn("fixed inset-0 z-50", backdropVariants({
|
|
164
181
|
backdrop
|
|
165
|
-
}), classNameOverlay), onClick: onClickOutside, "aria-hidden":
|
|
166
|
-
/* @__PURE__ */ jsx(m.div, { initial: "exit", animate: "enter", exit: "exit", variants: TRANSITION_VARIANTS.scaleInOut, ref, id: modalId,
|
|
182
|
+
}), classNameOverlay), onClick: onClickOutside, "aria-hidden": "true", tabIndex: -1 }, "modal-overlay"),
|
|
183
|
+
/* @__PURE__ */ jsx(m.div, { initial: "exit", animate: "enter", exit: "exit", variants: TRANSITION_VARIANTS.scaleInOut, ref, id: modalId, role: "dialog", "aria-modal": "true", "aria-labelledby": headerId, "aria-describedby": bodyId, className: cn(" z-50 w-full rounded-lg shadow-lg bg-content1", placementVariants({
|
|
167
184
|
placement
|
|
168
185
|
}), sizeVariants({
|
|
169
186
|
size
|
|
@@ -171,17 +188,21 @@ const Modal = forwardRef(({
|
|
|
171
188
|
radius
|
|
172
189
|
}), shadowVariants({
|
|
173
190
|
shadow
|
|
174
|
-
}), classNameDialog), style, children: /* @__PURE__ */ jsx(
|
|
191
|
+
}), classNameDialog), style, children: /* @__PURE__ */ jsx(ModalContext.Provider, { value: {
|
|
192
|
+
headerId,
|
|
193
|
+
bodyId
|
|
194
|
+
}, children: /* @__PURE__ */ jsx("div", { className: cn("modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]", classNameContent), style: styleContainer, children }) }) }, "modal-content")
|
|
175
195
|
] }) }) }), modalRoot);
|
|
176
196
|
});
|
|
177
197
|
Modal.displayName = "ModalPortalComponent";
|
|
178
198
|
const ModalHeader = (t0) => {
|
|
179
|
-
const $ = c(
|
|
199
|
+
const $ = c(29);
|
|
180
200
|
let children;
|
|
181
201
|
let className;
|
|
202
|
+
let id;
|
|
182
203
|
let onClick;
|
|
183
204
|
let props;
|
|
184
|
-
let
|
|
205
|
+
let style;
|
|
185
206
|
let t1;
|
|
186
207
|
let t2;
|
|
187
208
|
let title;
|
|
@@ -192,138 +213,148 @@ const ModalHeader = (t0) => {
|
|
|
192
213
|
disabled: t2,
|
|
193
214
|
onClick,
|
|
194
215
|
className,
|
|
195
|
-
|
|
216
|
+
style,
|
|
196
217
|
children,
|
|
218
|
+
id,
|
|
197
219
|
...props
|
|
198
220
|
} = t0);
|
|
199
221
|
$[0] = t0;
|
|
200
222
|
$[1] = children;
|
|
201
223
|
$[2] = className;
|
|
202
|
-
$[3] =
|
|
203
|
-
$[4] =
|
|
204
|
-
$[5] =
|
|
205
|
-
$[6] =
|
|
206
|
-
$[7] =
|
|
207
|
-
$[8] =
|
|
224
|
+
$[3] = id;
|
|
225
|
+
$[4] = onClick;
|
|
226
|
+
$[5] = props;
|
|
227
|
+
$[6] = style;
|
|
228
|
+
$[7] = t1;
|
|
229
|
+
$[8] = t2;
|
|
230
|
+
$[9] = title;
|
|
208
231
|
} else {
|
|
209
232
|
children = $[1];
|
|
210
233
|
className = $[2];
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
234
|
+
id = $[3];
|
|
235
|
+
onClick = $[4];
|
|
236
|
+
props = $[5];
|
|
237
|
+
style = $[6];
|
|
238
|
+
t1 = $[7];
|
|
239
|
+
t2 = $[8];
|
|
240
|
+
title = $[9];
|
|
217
241
|
}
|
|
218
242
|
const showCloseButton = t1 === void 0 ? true : t1;
|
|
219
243
|
const disabled = t2 === void 0 ? false : t2;
|
|
244
|
+
const context = useContext(ModalContext);
|
|
220
245
|
let t3;
|
|
221
|
-
if ($[
|
|
246
|
+
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
|
|
222
247
|
t3 = cn("modal-custom-header-container w-full");
|
|
223
|
-
$[
|
|
224
|
-
} else {
|
|
225
|
-
t3 = $[9];
|
|
226
|
-
}
|
|
227
|
-
let t4;
|
|
228
|
-
if ($[10] !== className) {
|
|
229
|
-
t4 = cn("w-full flex py-4 px-6 flex-initial text-large font-semibold", className);
|
|
230
|
-
$[10] = className;
|
|
231
|
-
$[11] = t4;
|
|
248
|
+
$[10] = t3;
|
|
232
249
|
} else {
|
|
233
|
-
|
|
250
|
+
t3 = $[10];
|
|
234
251
|
}
|
|
252
|
+
const t4 = id || context?.headerId;
|
|
235
253
|
let t5;
|
|
236
|
-
if ($[
|
|
237
|
-
t5 =
|
|
238
|
-
$[
|
|
239
|
-
$[
|
|
240
|
-
$[14] = t5;
|
|
254
|
+
if ($[11] !== className) {
|
|
255
|
+
t5 = cn("w-full flex py-4 px-6 flex-initial text-large font-semibold", className);
|
|
256
|
+
$[11] = className;
|
|
257
|
+
$[12] = t5;
|
|
241
258
|
} else {
|
|
242
|
-
t5 = $[
|
|
259
|
+
t5 = $[12];
|
|
243
260
|
}
|
|
244
261
|
let t6;
|
|
245
|
-
if ($[
|
|
246
|
-
t6 = /* @__PURE__ */ jsx("
|
|
247
|
-
$[
|
|
248
|
-
$[
|
|
249
|
-
$[
|
|
250
|
-
$[18] = t6;
|
|
262
|
+
if ($[13] !== children || $[14] !== title) {
|
|
263
|
+
t6 = children || /* @__PURE__ */ jsx("header", { className: "modal-custom-title text-lg leading-none font-semibold", children: title });
|
|
264
|
+
$[13] = children;
|
|
265
|
+
$[14] = title;
|
|
266
|
+
$[15] = t6;
|
|
251
267
|
} else {
|
|
252
|
-
t6 = $[
|
|
268
|
+
t6 = $[15];
|
|
253
269
|
}
|
|
254
270
|
let t7;
|
|
255
|
-
if ($[
|
|
256
|
-
t7 =
|
|
271
|
+
if ($[16] !== props || $[17] !== t4 || $[18] !== t5 || $[19] !== t6) {
|
|
272
|
+
t7 = /* @__PURE__ */ jsx("div", { id: t4, className: t5, ...props, children: t6 });
|
|
273
|
+
$[16] = props;
|
|
274
|
+
$[17] = t4;
|
|
275
|
+
$[18] = t5;
|
|
276
|
+
$[19] = t6;
|
|
277
|
+
$[20] = t7;
|
|
278
|
+
} else {
|
|
279
|
+
t7 = $[20];
|
|
280
|
+
}
|
|
281
|
+
let t8;
|
|
282
|
+
if ($[21] !== disabled || $[22] !== onClick || $[23] !== showCloseButton) {
|
|
283
|
+
t8 = showCloseButton && /* @__PURE__ */ jsx("div", { className: "absolute top-2.5 right-2.5 disabled:pointer-events-none z-10", children: /* @__PURE__ */ jsxs(Button, { isIconOnly: true, variant: "light", radius: "full", "aria-label": "Close", onClick, disabled, className: "p-0 w-9 h-9 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", children: [
|
|
257
284
|
/* @__PURE__ */ jsxs("svg", { width: "20", height: "20", fill: "currentColor", role: "img", "aria-hidden": "true", children: [
|
|
258
285
|
/* @__PURE__ */ jsx("path", { fill: "none", d: "M0 0h21v21H0z" }),
|
|
259
286
|
/* @__PURE__ */ jsx("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" })
|
|
260
287
|
] }),
|
|
261
288
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
262
289
|
] }) });
|
|
263
|
-
$[
|
|
264
|
-
$[
|
|
265
|
-
$[
|
|
266
|
-
$[
|
|
290
|
+
$[21] = disabled;
|
|
291
|
+
$[22] = onClick;
|
|
292
|
+
$[23] = showCloseButton;
|
|
293
|
+
$[24] = t8;
|
|
267
294
|
} else {
|
|
268
|
-
|
|
295
|
+
t8 = $[24];
|
|
269
296
|
}
|
|
270
|
-
let
|
|
271
|
-
if ($[
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
297
|
+
let t9;
|
|
298
|
+
if ($[25] !== style || $[26] !== t7 || $[27] !== t8) {
|
|
299
|
+
t9 = /* @__PURE__ */ jsxs("div", { className: t3, style, children: [
|
|
300
|
+
t7,
|
|
301
|
+
t8
|
|
275
302
|
] });
|
|
276
|
-
$[
|
|
277
|
-
$[
|
|
278
|
-
$[
|
|
279
|
-
$[
|
|
303
|
+
$[25] = style;
|
|
304
|
+
$[26] = t7;
|
|
305
|
+
$[27] = t8;
|
|
306
|
+
$[28] = t9;
|
|
280
307
|
} else {
|
|
281
|
-
|
|
308
|
+
t9 = $[28];
|
|
282
309
|
}
|
|
283
|
-
return
|
|
310
|
+
return t9;
|
|
284
311
|
};
|
|
285
312
|
const ModalBody = forwardRef((t0, ref) => {
|
|
286
|
-
const $ = c(
|
|
313
|
+
const $ = c(11);
|
|
287
314
|
const {
|
|
288
315
|
children,
|
|
289
316
|
className: t1,
|
|
290
|
-
|
|
291
|
-
height
|
|
317
|
+
style,
|
|
318
|
+
height,
|
|
319
|
+
id
|
|
292
320
|
} = t0;
|
|
293
321
|
const className = t1 === void 0 ? "" : t1;
|
|
294
|
-
|
|
322
|
+
const context = useContext(ModalContext);
|
|
323
|
+
const t2 = id || context?.bodyId;
|
|
324
|
+
let t3;
|
|
295
325
|
if ($[0] !== className) {
|
|
296
|
-
|
|
326
|
+
t3 = cn("modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto", className);
|
|
297
327
|
$[0] = className;
|
|
298
|
-
$[1] =
|
|
328
|
+
$[1] = t3;
|
|
299
329
|
} else {
|
|
300
|
-
|
|
330
|
+
t3 = $[1];
|
|
301
331
|
}
|
|
302
|
-
const
|
|
303
|
-
let
|
|
304
|
-
if ($[2] !==
|
|
305
|
-
|
|
306
|
-
...
|
|
307
|
-
height:
|
|
332
|
+
const t4 = height ? `${height}px` : "auto";
|
|
333
|
+
let t5;
|
|
334
|
+
if ($[2] !== style || $[3] !== t4) {
|
|
335
|
+
t5 = {
|
|
336
|
+
...style,
|
|
337
|
+
height: t4
|
|
308
338
|
};
|
|
309
|
-
$[2] =
|
|
310
|
-
$[3] =
|
|
311
|
-
$[4] =
|
|
339
|
+
$[2] = style;
|
|
340
|
+
$[3] = t4;
|
|
341
|
+
$[4] = t5;
|
|
312
342
|
} else {
|
|
313
|
-
|
|
343
|
+
t5 = $[4];
|
|
314
344
|
}
|
|
315
|
-
let
|
|
316
|
-
if ($[5] !== children || $[6] !== ref || $[7] !== t2 || $[8] !==
|
|
317
|
-
|
|
345
|
+
let t6;
|
|
346
|
+
if ($[5] !== children || $[6] !== ref || $[7] !== t2 || $[8] !== t3 || $[9] !== t5) {
|
|
347
|
+
t6 = /* @__PURE__ */ jsx("div", { id: t2, className: t3, ref, style: t5, children });
|
|
318
348
|
$[5] = children;
|
|
319
349
|
$[6] = ref;
|
|
320
350
|
$[7] = t2;
|
|
321
|
-
$[8] =
|
|
351
|
+
$[8] = t3;
|
|
322
352
|
$[9] = t5;
|
|
353
|
+
$[10] = t6;
|
|
323
354
|
} else {
|
|
324
|
-
|
|
355
|
+
t6 = $[10];
|
|
325
356
|
}
|
|
326
|
-
return
|
|
357
|
+
return t6;
|
|
327
358
|
});
|
|
328
359
|
ModalBody.displayName = "ModalBodyPortalComponent";
|
|
329
360
|
const ModalFooter = (t0) => {
|
|
@@ -331,7 +362,7 @@ const ModalFooter = (t0) => {
|
|
|
331
362
|
const {
|
|
332
363
|
children,
|
|
333
364
|
className,
|
|
334
|
-
|
|
365
|
+
style
|
|
335
366
|
} = t0;
|
|
336
367
|
let t1;
|
|
337
368
|
if ($[0] !== className) {
|
|
@@ -342,10 +373,10 @@ const ModalFooter = (t0) => {
|
|
|
342
373
|
t1 = $[1];
|
|
343
374
|
}
|
|
344
375
|
let t2;
|
|
345
|
-
if ($[2] !== children || $[3] !==
|
|
346
|
-
t2 = /* @__PURE__ */ jsx("div", { className: t1, style
|
|
376
|
+
if ($[2] !== children || $[3] !== style || $[4] !== t1) {
|
|
377
|
+
t2 = /* @__PURE__ */ jsx("div", { className: t1, style, children });
|
|
347
378
|
$[2] = children;
|
|
348
|
-
$[3] =
|
|
379
|
+
$[3] = style;
|
|
349
380
|
$[4] = t1;
|
|
350
381
|
$[5] = t2;
|
|
351
382
|
} else {
|
|
@@ -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 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","ease","TRANSITION_VARIANTS","scaleInOut","enter","transform","opacity","transition","duration","exit","fade","backdropVariants","cva","variants","backdrop","transparent","opaque","blur","defaultVariants","sizeVariants","size","radiusVariants","radius","none","sm","md","lg","placementVariants","placement","center","top","bottom","shadowVariants","shadow","Modal","forwardRef","modalId","isShow","isVisible","children","style","classNameOverlay","styleContainer","onClickOutside","classNameDialog","classNameContent","isKeyboardDismissDisabled","ref","modalOverlayRef","useRef","useEffect","window","document","body","classList","add","remove","handleKeyDown","e","key","addEventListener","removeEventListener","modalRoot","getElementById","ReactDOM","createPortal","then","res","domAnimation","cn","stopPropagation","displayName","ModalHeader","t0","$","_c","className","onClick","props","styled","t1","t2","title","showCloseButton","disabled","undefined","t3","Symbol","for","t4","t5","t6","t7","t8","ModalBody","height","ModalFooter"],"mappings":";;;;;;;;AAgCO,MAAMA,qBAAqB;AAAA,EACjCC,MAAM,CAAC,MAAM,MAAM,KAAK,CAAC;AAO1B;AAaO,MAAMC,sBAAgC;AAAA,EAkE5CC,YAAY;AAAA,IACXC,OAAO;AAAA,MACNC,WAAW;AAAA,MACXC,SAAS;AAAA,MACTC,YAAY;AAAA,QACXC,UAAU;AAAA,QACVP,MAAMD,mBAAmBC;AAAAA,MAAAA;AAAAA,IAC1B;AAAA,IAEDQ,MAAM;AAAA,MACLJ,WAAW;AAAA,MACXC,SAAS;AAAA,MACTC,YAAY;AAAA,QACXC,UAAU;AAAA,QACVP,MAAMD,mBAAmBC;AAAAA,MAAAA;AAAAA,IAC1B;AAAA,EACD;AAAA,EAEDS,MAAM;AAAA,IACLN,OAAO;AAAA,MACNE,SAAS;AAAA,MACTC,YAAY;AAAA,QACXC,UAAU;AAAA,QACVP,MAAMD,mBAAmBC;AAAAA,MAAAA;AAAAA,IAC1B;AAAA,IAEDQ,MAAM;AAAA,MACLH,SAAS;AAAA,MACTC,YAAY;AAAA,QACXC,UAAU;AAAA,QACVP,MAAMD,mBAAmBC;AAAAA,MAAAA;AAAAA,IAC1B;AAAA,EACD;AA2BF;ACtKA,MAAMU,mBAAmBC,IAAI,IAAI;AAAA,EAChCC,UAAU;AAAA,IACTC,UAAU;AAAA,MACTC,aAAa;AAAA,MACbC,QAAQ;AAAA,MACRC,MAAM;AAAA,IAAA;AAAA,EACP;AAAA,EAEDC,iBAAiB;AAAA,IAChBJ,UAAU;AAAA,EAAA;AAEZ,CAAC;AAED,MAAMK,eAAeP,IAAI,IAAI;AAAA,EAC5BC,UAAU;AAAA,IACTO,MAAM;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAAA,EACT;AAAA,EAEDF,iBAAiB;AAAA,IAChBE,MAAM;AAAA,EAAA;AAER,CAAC;AAED,MAAMC,iBAAiBT,IAAI,IAAI;AAAA,EAC9BC,UAAU;AAAA,IACTS,QAAQ;AAAA,MACPC,MAAM;AAAA,MACNC,IAAI;AAAA,MACJC,IAAI;AAAA,MACJC,IAAI;AAAA,IAAA;AAAA,EACL;AAAA,EAEDR,iBAAiB;AAAA,IAChBI,QAAQ;AAAA,EAAA;AAEV,CAAC;AAED,MAAMK,oBAAoBf,IAAI,IAAI;AAAA,EACjCC,UAAU;AAAA,IACTe,WAAW;AAAA,MACVC,QAAQ;AAAA,MACRC,KAAK;AAAA,MACIC,QAAQ;AAAA,IAAA;AAAA,EAClB;AAAA,EAEDb,iBAAiB;AAAA,IAChBU,WAAW;AAAA,EAAA;AAEb,CAAC;AAED,MAAMI,iBAAiBpB,IAAI,IAAI;AAAA,EAC9BC,UAAU;AAAA,IACToB,QAAQ;AAAA,MACPV,MAAM;AAAA,MACNC,IAAI;AAAA,MACJC,IAAI;AAAA,MACJC,IAAI;AAAA,IAAA;AAAA,EACL;AAAA,EAEDR,iBAAiB;AAAA,IAChBe,QAAQ;AAAA,EAAA;AAEV,CAAC;AAEM,MAAMC,QAAQC,WACpB,CACC;AAAA,EACCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,mBAAmB;AAAA,EACnBC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC,mBAAmB;AAAA,EACnB/B,WAAW;AAAA,EACXM,OAAO;AAAA,EACP0B,4BAA4B;AAAA,EAC5Bb,SAAS;AAAA,EACTX,SAAS;AAAA,EACAM,YAAY;AACX,GACXmB,QACI;AACJ,QAAMC,kBAAkBC,OAAuB,IAAI;AACnDC,YAAU,MAAM;AACf,QAAI,OAAOC,WAAW,eAAeb,WAAW;AAC/Cc,eAASC,KAAKC,UAAUC,IAAI,YAAY;AAAA,IACzC;AACA,WAAO,MAAM;AACZ,UAAI,OAAOJ,WAAW,aAAa;AAClCC,iBAASC,KAAKC,UAAUE,OAAO,YAAY;AAAA,MAC5C;AAAA,IACD;AAAA,EACD,GAAG,CAAClB,SAAS,CAAC;AAEdY,YAAU,MAAM;AACf,UAAMO,gBAAgBA,CAACC,MAAqB;AAC3C,UAAIA,EAAEC,QAAQ,YAAY,CAACb,2BAA2B;AACrDH,yBAAAA;AAAAA,MACD;AAAA,IACD;AAEA,QAAIN,QAAQ;AACXe,eAASQ,iBAAiB,WAAWH,aAAa;AAAA,IACnD;AAEA,WAAO,MAAM;AACZL,eAASS,oBAAoB,WAAWJ,aAAa;AAAA,IACtD;AAAA,EACD,GAAG,CAACpB,QAAQS,2BAA2BH,cAAc,CAAC;AAEtD,MAAI,OAAOQ,WAAW,YAAa,QAAO;AAE1C,QAAMW,YAAYV,SAASW,eAAe,YAAY;AACtD,MAAI,CAACD,UAAW,QAAO;AAEvB,SAAOE,kBAASC,aACf,oBAAC,iBAAA,EACC5B,UAAAA,8BACC,YAAA,EAAW,UAAU,MAAM,OAAO,eAAe,EAAE6B,KAAMC,SAAQA,IAAIC,YAAY,GACjF,UAAA,qBAAA,UAAA,EACC,UAAA;AAAA,IAAA,oBAAC,EAAE,KAAF,EAEA,SAAQ,QACR,SAAQ,SACR,MAAK,QACL,UAAUlE,oBAAoBQ,MAC9B,WAAW2D,GAAG,sBAAsB1D,iBAAiB;AAAA,MAAEG;AAAAA,IAAAA,CAAU,GAAG2B,gBAAgB,GACpF,SAASE,gBACT,eAAa,CAACN,QACd,MAAK,UACL,cAAW,QACX,UAAU,IACV,KAAKW,mBAXD,eAWiB;AAAA,IAGtB,oBAAC,EAAE,KAAF,EAEA,SAAQ,QACR,SAAQ,SACR,MAAK,QACL,UAAU9C,oBAAoBC,YAC9B,KACA,IAAIiC,SACJ,SAAUsB,CAAAA,QAAMA,IAAEY,mBAClB,WAAWD,GACV,iDAC2B1C,kBAAkB;AAAA,MAAEC;AAAAA,IAAAA,CAAW,GAC1DT,aAAa;AAAA,MAAEC;AAAAA,IAAAA,CAAM,GACrBC,eAAe;AAAA,MAAEC;AAAAA,IAAAA,CAAQ,GACzBU,eAAe;AAAA,MAAEC;AAAAA,IAAAA,CAAQ,GACzBW,eACD,GACA,OAEA,8BAAC,OAAA,EAAI,WAAWyB,GAAG,wEAAwExB,gBAAgB,GAAG,OAAOH,gBACnHH,SAAAA,CACF,KApBI,eAqBL;AAAA,EAAA,EAAA,CACD,EAAA,CACD,GAEF,GACAuB,SACD;AACD,CACD;AACA5B,MAAMqC,cAAc;AAEb,MAAMC,cAAcC,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAApC;AAAA,MAAAqC;AAAA,MAAAC;AAAA,MAAAC;AAAA,MAAAC;AAAA,MAAAC;AAAA,MAAAC;AAAA,MAAAC;AAAA,MAAAR,SAAAD,IAAA;AAAC,KAAA;AAAA,MAAAS;AAAAA,MAAAC,iBAAAH;AAAAA,MAAAI,UAAAH;AAAAA,MAAAJ;AAAAA,MAAAD;AAAAA,MAAAG;AAAAA,MAAAxC;AAAAA,MAAA,GAAAuC;AAAAA,IAAAA,IAAAL;AAAoHC,WAAAD;AAAAC,WAAAnC;AAAAmC,WAAAE;AAAAF,WAAAG;AAAAH,WAAAI;AAAAJ,WAAAK;AAAAL,WAAAM;AAAAN,WAAAO;AAAAP,WAAAQ;AAAAA,EAAA,OAAA;AAAA3C,eAAAmC,EAAA,CAAA;AAAAE,gBAAAF,EAAA,CAAA;AAAAG,cAAAH,EAAA,CAAA;AAAAI,YAAAJ,EAAA,CAAA;AAAAK,aAAAL,EAAA,CAAA;AAAAM,SAAAN,EAAA,CAAA;AAAAO,SAAAP,EAAA,CAAA;AAAAQ,YAAAR,EAAA,CAAA;AAAA,EAAA;AAA3G,QAAAS,kBAAAH,OAAAK,SAAA,OAAAL;AAAwB,QAAAI,WAAAH,OAAAI,SAAA,QAAAJ;AAAgB,MAAAK;AAAA,MAAAZ,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,GAAA;AAE3DF,SAAAjB,GAAG,sCAAsC;AAACK,WAAAY;AAAAA,EAAA,OAAA;AAAAA,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAe;AAAA,MAAAf,UAAAE,WAAA;AACzCa,SAAApB,GAAG,+DAA+DO,SAAS;AAACF,YAAAE;AAAAF,YAAAe;AAAAA,EAAA,OAAA;AAAAA,SAAAf,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAgB;AAAA,MAAAhB,EAAA,EAAA,MAAAnC,YAAAmC,UAAAQ,OAAA;AAC1FQ,SAAAnD,YAAY,oBAAA,UAAA,EAAkB,WAAA,yDAAyD2C,UAAAA,OAAM;AAASR,YAAAnC;AAAAmC,YAAAQ;AAAAR,YAAAgB;AAAAA,EAAA,OAAA;AAAAA,SAAAhB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiB;AAAA,MAAAjB,EAAA,EAAA,MAAAI,SAAAJ,UAAAe,MAAAf,EAAA,EAAA,MAAAgB,IAAA;AADxGC,6BAAA,OAAA,EAAgB,WAAAF,IAA4E,GAAMX,OAChGY,UAAAA,IACF;AAAMhB,YAAAI;AAAAJ,YAAAe;AAAAf,YAAAgB;AAAAhB,YAAAiB;AAAAA,EAAA,OAAA;AAAAA,SAAAjB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAkB;AAAA,MAAAlB,EAAA,EAAA,MAAAU,YAAAV,UAAAG,WAAAH,EAAA,EAAA,MAAAS,iBAAA;AAELS,SAAAT,mBACA,oBAAA,OAAA,EAAe,WAAA,gEACd,UAAA,qBAAC,UACA,YAAA,MACQ,SAAA,SACD,QAAA,QACI,cAAA,SACFN,SACCO,UACA,WAAA,iQAEV,UAAA;AAAA,MAAA,qBAAA,OAAA,EAAW,OAAA,MAAY,QAAA,MAAU,MAAA,gBAAoB,MAAA,OAAkB,eAAA,QACtE,UAAA;AAAA,QAAA,8BAAW,MAAA,QAAS,GAAA,iBAAe;AAAA,QACnC,8BAAQ,GAAA,2NAAA,CAA0N;AAAA,MAAA,GACnO;AAAA,MACA,oBAAA,QAAA,EAAgB,WAAA,WAAU,UAAA,QAAA,CAAK;AAAA,IAAA,EAAA,CAChC,EAAA,CACD;AACAV,YAAAU;AAAAV,YAAAG;AAAAH,YAAAS;AAAAT,YAAAkB;AAAAA,EAAA,OAAA;AAAAA,SAAAlB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAmB;AAAA,MAAAnB,EAAA,EAAA,MAAAK,UAAAL,UAAAiB,MAAAjB,EAAA,EAAA,MAAAkB,IAAA;AAvBFC,SAAA,qBAAA,OAAA,EAAgB,WAAAP,IAAmDP,eAClEY,UAAAA;AAAAA,MAAAA;AAAAA,MAICC;AAAAA,IAAAA,GAmBF;AAAMlB,YAAAK;AAAAL,YAAAiB;AAAAjB,YAAAkB;AAAAlB,YAAAmB;AAAAA,EAAA,OAAA;AAAAA,SAAAnB,EAAA,EAAA;AAAA,EAAA;AAAA,SAxBNmB;AAwBM;AAID,MAAMC,YAAY3D,WAAW,CAAAsC,IAAA1B,QAAA;AAAA,QAAA2B,IAAAC,EAAA,EAAA;AAAC,QAAA;AAAA,IAAApC;AAAAA,IAAAqC,WAAAI;AAAAA,IAAAD;AAAAA,IAAAgB;AAAAA,EAAAA,IAAAtB;AAAY,QAAAG,YAAAI,OAAAK,SAAA,KAAAL;AAAc,MAAAC;AAAA,MAAAP,SAAAE,WAAA;AAGjDK,SAAAZ,GAAG,qEAAqEO,SAAS;AAACF,WAAAE;AAAAF,WAAAO;AAAAA,EAAA,OAAA;AAAAA,SAAAP,EAAA,CAAA;AAAA,EAAA;AAEjE,QAAAY,KAAAS,SAAA,GAAYA,MAAM,OAAlB;AAA+B,MAAAN;AAAA,MAAAf,EAAA,CAAA,MAAAK,UAAAL,SAAAY,IAAA;AAApDG,SAAA;AAAA,MAAA,GAAKV;AAAAA,MAAMgB,QAAUT;AAAAA,IAAAA;AAAiCZ,WAAAK;AAAAL,WAAAY;AAAAZ,WAAAe;AAAAA,EAAA,OAAA;AAAAA,SAAAf,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAgB;AAAA,MAAAhB,EAAA,CAAA,MAAAnC,YAAAmC,EAAA,CAAA,MAAA3B,OAAA2B,EAAA,CAAA,MAAAO,MAAAP,SAAAe,IAAA;AAH9DC,6BAAA,OAAA,EACY,WAAAT,IACNlC,KACE,OAAA0C,IAENlD,UACF;AAAMmC,WAAAnC;AAAAmC,WAAA3B;AAAA2B,WAAAO;AAAAP,WAAAe;AAAAf,WAAAgB;AAAAA,EAAA,OAAA;AAAAA,SAAAhB,EAAA,CAAA;AAAA,EAAA;AAAA,SANNgB;AAMM,CAEP;AACDI,UAAUvB,cAAc;AAEjB,MAAMyB,cAAcvB,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAC,QAAA;AAAA,IAAApC;AAAAA,IAAAqC;AAAAA,IAAAG;AAAAA,EAAAA,IAAAN;AAAgD,MAAAO;AAAA,MAAAN,SAAAE,WAAA;AAG9DI,SAAAX,GAAG,iGAAiGO,SAAS;AAACF,WAAAE;AAAAF,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAO;AAAA,MAAAP,EAAA,CAAA,MAAAnC,YAAAmC,SAAAK,UAAAL,EAAA,CAAA,MAAAM,IAAA;AAD1HC,sCACY,WAAAD,IACJD,eAENxC,UACF;AAAMmC,WAAAnC;AAAAmC,WAAAK;AAAAL,WAAAM;AAAAN,WAAAO;AAAAA,EAAA,OAAA;AAAAA,SAAAP,EAAA,CAAA;AAAA,EAAA;AAAA,SALNO;AAKM;"}
|
|
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, useState, createContext, useContext, useId } 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 ModalContext = createContext<{ headerId: string; bodyId: string } | null>(null);\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\t\t\tbottom: \"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: propModalId,\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\tplacement = \"center\",\n\t\t}: ModalType,\n\t\tref: Ref<HTMLDivElement>,\n\t) => {\n\t\tconst [mounted, setMounted] = useState(false);\n\t\tconst uniqueId = useId();\n\t\tconst modalId = propModalId || uniqueId;\n\t\tconst headerId = `${modalId}-header`;\n\t\tconst bodyId = `${modalId}-body`;\n\n\t\tuseEffect(() => {\n\t\t\tsetMounted(true);\n\t\t\treturn () => setMounted(false);\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tif (typeof window !== \"undefined\" && isVisible) {\n\t\t\t\tconst scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t\t\tdocument.body.style.paddingRight = `${scrollbarWidth}px`;\n\t\t\t\tdocument.body.classList.add(\"modal-open\");\n\t\t\t} else {\n\t\t\t\tdocument.body.style.overflow = \"\";\n\t\t\t\tdocument.body.style.paddingRight = \"\";\n\t\t\t\tdocument.body.classList.remove(\"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.style.overflow = \"\";\n\t\t\t\t\tdocument.body.style.paddingRight = \"\";\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 (!mounted) return null;\n\n\t\tconst modalRoot = document.getElementById(\"modal-root\") || document.body;\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=\"true\"\n\t\t\t\t\t\t\t\ttabIndex={-1}\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\trole=\"dialog\"\n\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\taria-describedby={bodyId}\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\t\t\t\t\t\t\t\t\tplacementVariants({ 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<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\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\t{children}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</ModalContext.Provider>\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, style, children, id, ...props }: ModalHeaderType) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div className={cn(\"modal-custom-header-container w-full\")} style={style}>\n\t\t\t<div\n\t\t\t\tid={id || context?.headerId}\n\t\t\t\tclassName={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)}\n\t\t\t\t{...props}\n\t\t\t>\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-9 h-9 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 = \"\", style, height, id }: ModalBodyType, ref: Ref<HTMLDivElement>) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div\n\t\t\tid={id || context?.bodyId}\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={{ ...style, 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, style }: 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={style}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"],"names":["TRANSITION_EASINGS","ease","TRANSITION_VARIANTS","scaleInOut","enter","transform","opacity","transition","duration","exit","fade","ModalContext","createContext","backdropVariants","cva","variants","backdrop","transparent","opaque","blur","defaultVariants","sizeVariants","size","radiusVariants","radius","none","sm","md","lg","placementVariants","placement","center","top","bottom","shadowVariants","shadow","Modal","forwardRef","modalId","propModalId","isShow","isVisible","children","style","classNameOverlay","styleContainer","onClickOutside","classNameDialog","classNameContent","isKeyboardDismissDisabled","ref","mounted","setMounted","useState","uniqueId","useId","headerId","bodyId","useEffect","window","scrollbarWidth","innerWidth","document","documentElement","clientWidth","body","overflow","paddingRight","classList","add","remove","handleKeyDown","e","key","addEventListener","removeEventListener","modalRoot","getElementById","ReactDOM","createPortal","then","res","domAnimation","cn","displayName","ModalHeader","t0","$","_c","className","id","onClick","props","t1","t2","title","showCloseButton","disabled","undefined","context","useContext","t3","Symbol","for","t4","t5","t6","t7","t8","t9","ModalBody","height","ModalFooter"],"mappings":"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"}
|