phx-react 1.3.1838 → 1.3.1839
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/cjs/components/Modal/Modal.d.ts +1 -1
- package/dist/cjs/components/Modal/Modal.js +53 -19
- package/dist/cjs/components/Modal/Modal.js.map +1 -1
- package/dist/esm/components/Modal/Modal.d.ts +1 -1
- package/dist/esm/components/Modal/Modal.js +54 -20
- package/dist/esm/components/Modal/Modal.js.map +1 -1
- package/package.json +1 -1
|
@@ -45,4 +45,4 @@ export interface ModalProps {
|
|
|
45
45
|
headerClassName?: string;
|
|
46
46
|
theme?: 'WHITE' | 'GRAY';
|
|
47
47
|
}
|
|
48
|
-
export declare const PHXModal: ({
|
|
48
|
+
export declare const PHXModal: ({ children, className, closeButton, customFooter, customHeight, customWidth, dangerActionText, dangerLoading, dangerSubmit, disableCloseButton, disableLeftAction, disableOutsideClick, disableSubmit, dowloadIcon, downloadLinkRef, downloadText, footerBulkAction, headerClassName, headerContent, hiddenCloseButton, hiddenSubmit, hrefLink, inCard, isCancel, isHeaderDownload, leftActionText, loadingLeftAction, noOverlay, onCancel, onDangerClick, onHeaderAction, onHide, onLeftActionText, onPrimaryClick, onSubmit, primaryActionText, primaryLoading, primarySubmit, secondaryActionText, show, size, theme, title, type, }: ModalProps) => React.JSX.Element;
|
|
@@ -15,7 +15,10 @@ var MODAL_THEME;
|
|
|
15
15
|
MODAL_THEME["WHITE"] = "WHITE";
|
|
16
16
|
MODAL_THEME["GRAY"] = "GRAY";
|
|
17
17
|
})(MODAL_THEME || (MODAL_THEME = {}));
|
|
18
|
-
const PHXModal = ({
|
|
18
|
+
const PHXModal = ({ children, className,
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
|
+
closeButton, customFooter, customHeight, customWidth, dangerActionText, dangerLoading, dangerSubmit, disableCloseButton = false, disableLeftAction = false, disableOutsideClick, disableSubmit = false, dowloadIcon = false, downloadLinkRef, downloadText, footerBulkAction, headerClassName = '', headerContent, hiddenCloseButton = false, hiddenSubmit, hrefLink, inCard = true, isCancel = false, isHeaderDownload, leftActionText, loadingLeftAction = false, noOverlay = false, onCancel, onDangerClick, onHeaderAction, onHide, onLeftActionText, onPrimaryClick, onSubmit, primaryActionText = 'Xác nhận', primaryLoading, primarySubmit, secondaryActionText = 'Đóng', show, size = 'small', theme = MODAL_THEME.WHITE, title, type = 'default', }) => {
|
|
19
22
|
const [open, setOpen] = (0, react_1.useState)(false);
|
|
20
23
|
const headerText = headerContent ? headerContent : '';
|
|
21
24
|
const sizeModal = (0, types_1.classNames)(size === 'small' && 'sm:max-w-lg', size === 'medium' && 'sm:max-w-xl', size === 'large' && 'sm:max-w-2xl', size === 'large-plus' && 'sm:max-w-2xl lg:max-w-4xl', size === 'extra-large' && 'w-[90vw] max-w-[95vw] sm:max-w-3xl md:max-w-4xl lg:max-w-5xl xl:max-w-7xl');
|
|
@@ -44,7 +47,16 @@ const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', s
|
|
|
44
47
|
onHide();
|
|
45
48
|
}
|
|
46
49
|
};
|
|
47
|
-
const Card = () => (react_1.default.createElement(Card_1.PHXCard, {
|
|
50
|
+
const Card = () => (react_1.default.createElement(Card_1.PHXCard, { dangerFooterAction: {
|
|
51
|
+
content: dangerActionText,
|
|
52
|
+
loading: dangerLoading,
|
|
53
|
+
onClick: onDangerClick,
|
|
54
|
+
submit: dangerSubmit,
|
|
55
|
+
disabled: disableSubmit,
|
|
56
|
+
}, dowloadIcon: dowloadIcon, downloadLinkRef: downloadLinkRef, downloadText: downloadText, footerBulkAction: footerBulkAction, fullSize: type === 'no-padding', headerAction: {
|
|
57
|
+
content: headerText || 'close',
|
|
58
|
+
onClick: handleClickCloseAction,
|
|
59
|
+
}, hrefLink: hrefLink, isHeaderDownload: isHeaderDownload, primaryFooterAction: !hiddenSubmit
|
|
48
60
|
? {
|
|
49
61
|
content: primaryActionText,
|
|
50
62
|
loading: primaryLoading,
|
|
@@ -52,14 +64,26 @@ const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', s
|
|
|
52
64
|
submit: primarySubmit,
|
|
53
65
|
disabled: disableSubmit,
|
|
54
66
|
}
|
|
55
|
-
: {},
|
|
56
|
-
content: dangerActionText,
|
|
57
|
-
loading: dangerLoading,
|
|
58
|
-
onClick: onDangerClick,
|
|
59
|
-
submit: dangerSubmit,
|
|
60
|
-
disabled: disableSubmit,
|
|
61
|
-
}, isHeaderDownload: isHeaderDownload },
|
|
67
|
+
: {}, primaryHeader: true, secondaryFooterActions: !hiddenCloseButton ? [{ content: secondaryActionText, onClick: onClose }] : undefined, title: title, type: 'modal' },
|
|
62
68
|
react_1.default.createElement("div", { className: type !== 'no-padding' ? '-mt-1' : '' }, children)));
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
/**
|
|
71
|
+
* Handles the Escape key press to close the modal.
|
|
72
|
+
* Prevents closing when the close button is disabled.
|
|
73
|
+
*
|
|
74
|
+
* @param event - The keyboard event triggered by the user.
|
|
75
|
+
*/
|
|
76
|
+
const handleKeyDown = (event) => {
|
|
77
|
+
if (event.key === 'Escape' && !disableCloseButton) {
|
|
78
|
+
setOpen(false);
|
|
79
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
83
|
+
return () => {
|
|
84
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
85
|
+
};
|
|
86
|
+
}, [disableCloseButton, show]);
|
|
63
87
|
return (react_1.default.createElement(react_2.Transition.Root, { as: react_1.Fragment, show: open },
|
|
64
88
|
react_1.default.createElement(react_2.Dialog, { as: 'div', className: 'relative z-50', onClose: () => {
|
|
65
89
|
// Chỉ tắt modal này
|
|
@@ -70,29 +94,39 @@ const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', s
|
|
|
70
94
|
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
71
95
|
}, static: true },
|
|
72
96
|
!noOverlay && (react_1.default.createElement(react_2.Transition.Child, { as: react_1.Fragment, enter: 'transform ease-out duration-300 transition', enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10', enterTo: 'translate-y-0 opacity-100 sm:translate-y-0', leave: 'transition ease-in duration-100', leaveFrom: 'translate-y-0 opacity-100 sm:translate-y-0', leaveTo: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10' },
|
|
73
|
-
react_1.default.createElement("div", { className: 'fixed inset-0 z-40
|
|
97
|
+
react_1.default.createElement("div", { className: 'fixed inset-0 z-40 bg-gray-500 bg-opacity-75 transition-opacity' }))),
|
|
74
98
|
react_1.default.createElement("div", { className: `fixed inset-0 z-50 overflow-y-auto ${className || ''}` },
|
|
75
|
-
react_1.default.createElement("div", { className: 'flex items-center justify-center
|
|
99
|
+
react_1.default.createElement("div", { className: 'flex min-h-full items-center justify-center p-4 text-center sm:items-center sm:p-0' },
|
|
76
100
|
react_1.default.createElement(react_2.Transition.Child, { as: react_1.Fragment, enter: 'transform ease-out duration-300 transition', enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10', enterTo: 'translate-y-0 opacity-100 sm:translate-y-0', leave: 'transition ease-in duration-100', leaveFrom: 'translate-y-0 opacity-100 sm:translate-y-0', leaveTo: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10' },
|
|
77
101
|
react_1.default.createElement("div", { className: (0, types_1.classNames)('min-w-0 flex-1', customWidth ? customWidth : sizeModal) },
|
|
78
102
|
react_1.default.createElement(react_2.Dialog.Panel, { className: (0, types_1.classNames)('shadow-xl relative transform rounded-lg text-left transition-all sm:my-24 sm:w-full', theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-white') }, inCard ? (primarySubmit || dangerSubmit ? (react_1.default.createElement("form", { onSubmit: onSubmit },
|
|
79
103
|
react_1.default.createElement(Card, null))) : (react_1.default.createElement(Card, null))) : (react_1.default.createElement("div", null,
|
|
80
104
|
react_1.default.createElement("div", { className: (0, types_1.classNames)('flex items-center justify-between rounded-t-lg border-b border-gray-200 p-4 text-sm font-semibold text-gray-900', headerClassName, theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-[#F3F3F3]') },
|
|
81
105
|
react_1.default.createElement("div", { className: 'flex items-center gap-1' },
|
|
82
|
-
isCancel && (react_1.default.createElement("button", { className: 'inline-flex items-center px-2 py-1 text-xs font-bold text-gray-700
|
|
83
|
-
react_1.default.createElement(solid_1.ArrowLeftIcon, { className: '
|
|
84
|
-
title)
|
|
85
|
-
|
|
106
|
+
isCancel && (react_1.default.createElement("button", { className: 'inline-flex items-center rounded-lg bg-transparent px-2 py-1 text-xs font-bold text-gray-700 hover:bg-gray-200', onClick: onCancel, type: 'button' },
|
|
107
|
+
react_1.default.createElement(solid_1.ArrowLeftIcon, { className: 'h-4 w-4' }))),
|
|
108
|
+
title),
|
|
109
|
+
react_1.default.createElement("button", { className: 'grid grid-cols-1 rounded-md p-0.5 text-gray-400 hover:bg-gray-200 hover:text-gray-500', onClick: () => {
|
|
110
|
+
if (disableCloseButton) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
setOpen(false);
|
|
114
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
115
|
+
}, type: 'button' },
|
|
116
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
117
|
+
react_1.default.createElement("span", { className: 'sr-only' }, "Close"),
|
|
118
|
+
react_1.default.createElement(solid_1.XMarkIcon, { "aria-hidden": 'true', className: 'h-5 w-5' })))),
|
|
119
|
+
react_1.default.createElement("div", { className: type === 'default' ? 'p-3 text-xs text-gray-500' : '', style: { maxHeight: customHeight || '100%' } }, children),
|
|
86
120
|
react_1.default.createElement("div", { className: (0, types_1.classNames)('flex items-center justify-between gap-x-3 rounded-b-lg border-t border-gray-200 ', theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-white') }, customFooter ? (customFooter) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
87
|
-
react_1.default.createElement("div", { className: 'flex items-center
|
|
121
|
+
react_1.default.createElement("div", { className: 'flex items-center gap-x-3 rounded-t-lg p-4 pl-5' },
|
|
88
122
|
downloadLinkRef && hrefLink && downloadText && (react_1.default.createElement("div", { className: 'group flex items-center gap-x-1' },
|
|
89
123
|
dowloadIcon && (react_1.default.createElement(outline_1.ArrowDownTrayIcon, { className: 'h-4 w-4 text-link-500 group-hover:text-link-600 group-active:text-link-600', strokeWidth: 2 })),
|
|
90
|
-
react_1.default.createElement(link_1.default, { as: 'a',
|
|
124
|
+
react_1.default.createElement(link_1.default, { ref: downloadLinkRef, as: 'a', href: hrefLink }, downloadText))),
|
|
91
125
|
leftActionText && (react_1.default.createElement("div", { className: 'flex gap-2' },
|
|
92
|
-
react_1.default.createElement(Button_1.PHXButton, { className: 'text-sm !text-link-500
|
|
126
|
+
react_1.default.createElement(Button_1.PHXButton, { className: '!px-0 text-sm !text-link-500', disabled: disableLeftAction, onClick: onLeftActionText, plain: true }, leftActionText),
|
|
93
127
|
loadingLeftAction && react_1.default.createElement(Button_1.PHXButton, { disabled: true, loading: true, plain: true, size: 'micro' }))),
|
|
94
128
|
footerBulkAction && footerBulkAction.content && (react_1.default.createElement(Button_1.PHXButton, { danger: true, disabled: footerBulkAction.disabled, loading: footerBulkAction.loading, onClick: footerBulkAction.onClick, size: 'micro', submit: !!footerBulkAction.submit }, footerBulkAction.content))),
|
|
95
|
-
react_1.default.createElement("div", { className: 'flex justify-end
|
|
129
|
+
react_1.default.createElement("div", { className: 'flex justify-end gap-x-3 rounded-t-lg p-4' },
|
|
96
130
|
react_1.default.createElement(Button_1.PHXButton, { disabled: disableCloseButton, onClick: onHide, secondary: true, size: 'micro' }, secondaryActionText),
|
|
97
131
|
dangerSubmit && (react_1.default.createElement(Button_1.PHXButton, { danger: true, disabled: disableSubmit, loading: dangerLoading, onClick: onDangerClick, size: 'micro' }, dangerActionText)),
|
|
98
132
|
!hiddenSubmit && (react_1.default.createElement(Button_1.PHXButton, { disabled: disableSubmit, loading: primaryLoading, onClick: () => onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(), primary: true, size: 'micro' }, primaryActionText))))))))))))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":";;;;AAAA,uDAA4D;AAC5D,6CAAsD;AACtD,kCAAiC;AACjC,oCAAqC;AACrC,sCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -45,4 +45,4 @@ export interface ModalProps {
|
|
|
45
45
|
headerClassName?: string;
|
|
46
46
|
theme?: 'WHITE' | 'GRAY';
|
|
47
47
|
}
|
|
48
|
-
export declare const PHXModal: ({
|
|
48
|
+
export declare const PHXModal: ({ children, className, closeButton, customFooter, customHeight, customWidth, dangerActionText, dangerLoading, dangerSubmit, disableCloseButton, disableLeftAction, disableOutsideClick, disableSubmit, dowloadIcon, downloadLinkRef, downloadText, footerBulkAction, headerClassName, headerContent, hiddenCloseButton, hiddenSubmit, hrefLink, inCard, isCancel, isHeaderDownload, leftActionText, loadingLeftAction, noOverlay, onCancel, onDangerClick, onHeaderAction, onHide, onLeftActionText, onPrimaryClick, onSubmit, primaryActionText, primaryLoading, primarySubmit, secondaryActionText, show, size, theme, title, type, }: ModalProps) => React.JSX.Element;
|
|
@@ -3,7 +3,7 @@ import { Dialog, Transition } from '@headlessui/react';
|
|
|
3
3
|
import { PHXCard } from '../Card';
|
|
4
4
|
import { classNames } from '../types';
|
|
5
5
|
import { PHXButton } from '../Button';
|
|
6
|
-
import { ArrowLeftIcon } from '@heroicons/react/24/solid';
|
|
6
|
+
import { ArrowLeftIcon, XMarkIcon } from '@heroicons/react/24/solid';
|
|
7
7
|
import { ArrowDownTrayIcon } from '@heroicons/react/24/outline';
|
|
8
8
|
import PHXLink from '../Link/link';
|
|
9
9
|
var MODAL_THEME;
|
|
@@ -11,7 +11,10 @@ var MODAL_THEME;
|
|
|
11
11
|
MODAL_THEME["WHITE"] = "WHITE";
|
|
12
12
|
MODAL_THEME["GRAY"] = "GRAY";
|
|
13
13
|
})(MODAL_THEME || (MODAL_THEME = {}));
|
|
14
|
-
export const PHXModal = ({
|
|
14
|
+
export const PHXModal = ({ children, className,
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
closeButton, customFooter, customHeight, customWidth, dangerActionText, dangerLoading, dangerSubmit, disableCloseButton = false, disableLeftAction = false, disableOutsideClick, disableSubmit = false, dowloadIcon = false, downloadLinkRef, downloadText, footerBulkAction, headerClassName = '', headerContent, hiddenCloseButton = false, hiddenSubmit, hrefLink, inCard = true, isCancel = false, isHeaderDownload, leftActionText, loadingLeftAction = false, noOverlay = false, onCancel, onDangerClick, onHeaderAction, onHide, onLeftActionText, onPrimaryClick, onSubmit, primaryActionText = 'Xác nhận', primaryLoading, primarySubmit, secondaryActionText = 'Đóng', show, size = 'small', theme = MODAL_THEME.WHITE, title, type = 'default', }) => {
|
|
15
18
|
const [open, setOpen] = useState(false);
|
|
16
19
|
const headerText = headerContent ? headerContent : '';
|
|
17
20
|
const sizeModal = classNames(size === 'small' && 'sm:max-w-lg', size === 'medium' && 'sm:max-w-xl', size === 'large' && 'sm:max-w-2xl', size === 'large-plus' && 'sm:max-w-2xl lg:max-w-4xl', size === 'extra-large' && 'w-[90vw] max-w-[95vw] sm:max-w-3xl md:max-w-4xl lg:max-w-5xl xl:max-w-7xl');
|
|
@@ -40,7 +43,16 @@ export const PHXModal = ({ show, title, className, primaryActionText = 'Xác nh
|
|
|
40
43
|
onHide();
|
|
41
44
|
}
|
|
42
45
|
};
|
|
43
|
-
const Card = () => (React.createElement(PHXCard, {
|
|
46
|
+
const Card = () => (React.createElement(PHXCard, { dangerFooterAction: {
|
|
47
|
+
content: dangerActionText,
|
|
48
|
+
loading: dangerLoading,
|
|
49
|
+
onClick: onDangerClick,
|
|
50
|
+
submit: dangerSubmit,
|
|
51
|
+
disabled: disableSubmit,
|
|
52
|
+
}, dowloadIcon: dowloadIcon, downloadLinkRef: downloadLinkRef, downloadText: downloadText, footerBulkAction: footerBulkAction, fullSize: type === 'no-padding', headerAction: {
|
|
53
|
+
content: headerText || 'close',
|
|
54
|
+
onClick: handleClickCloseAction,
|
|
55
|
+
}, hrefLink: hrefLink, isHeaderDownload: isHeaderDownload, primaryFooterAction: !hiddenSubmit
|
|
44
56
|
? {
|
|
45
57
|
content: primaryActionText,
|
|
46
58
|
loading: primaryLoading,
|
|
@@ -48,14 +60,26 @@ export const PHXModal = ({ show, title, className, primaryActionText = 'Xác nh
|
|
|
48
60
|
submit: primarySubmit,
|
|
49
61
|
disabled: disableSubmit,
|
|
50
62
|
}
|
|
51
|
-
: {},
|
|
52
|
-
content: dangerActionText,
|
|
53
|
-
loading: dangerLoading,
|
|
54
|
-
onClick: onDangerClick,
|
|
55
|
-
submit: dangerSubmit,
|
|
56
|
-
disabled: disableSubmit,
|
|
57
|
-
}, isHeaderDownload: isHeaderDownload },
|
|
63
|
+
: {}, primaryHeader: true, secondaryFooterActions: !hiddenCloseButton ? [{ content: secondaryActionText, onClick: onClose }] : undefined, title: title, type: 'modal' },
|
|
58
64
|
React.createElement("div", { className: type !== 'no-padding' ? '-mt-1' : '' }, children)));
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
/**
|
|
67
|
+
* Handles the Escape key press to close the modal.
|
|
68
|
+
* Prevents closing when the close button is disabled.
|
|
69
|
+
*
|
|
70
|
+
* @param event - The keyboard event triggered by the user.
|
|
71
|
+
*/
|
|
72
|
+
const handleKeyDown = (event) => {
|
|
73
|
+
if (event.key === 'Escape' && !disableCloseButton) {
|
|
74
|
+
setOpen(false);
|
|
75
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
79
|
+
return () => {
|
|
80
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
81
|
+
};
|
|
82
|
+
}, [disableCloseButton, show]);
|
|
59
83
|
return (React.createElement(Transition.Root, { as: Fragment, show: open },
|
|
60
84
|
React.createElement(Dialog, { as: 'div', className: 'relative z-50', onClose: () => {
|
|
61
85
|
// Chỉ tắt modal này
|
|
@@ -66,29 +90,39 @@ export const PHXModal = ({ show, title, className, primaryActionText = 'Xác nh
|
|
|
66
90
|
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
67
91
|
}, static: true },
|
|
68
92
|
!noOverlay && (React.createElement(Transition.Child, { as: Fragment, enter: 'transform ease-out duration-300 transition', enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10', enterTo: 'translate-y-0 opacity-100 sm:translate-y-0', leave: 'transition ease-in duration-100', leaveFrom: 'translate-y-0 opacity-100 sm:translate-y-0', leaveTo: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10' },
|
|
69
|
-
React.createElement("div", { className: 'fixed inset-0 z-40
|
|
93
|
+
React.createElement("div", { className: 'fixed inset-0 z-40 bg-gray-500 bg-opacity-75 transition-opacity' }))),
|
|
70
94
|
React.createElement("div", { className: `fixed inset-0 z-50 overflow-y-auto ${className || ''}` },
|
|
71
|
-
React.createElement("div", { className: 'flex items-center justify-center
|
|
95
|
+
React.createElement("div", { className: 'flex min-h-full items-center justify-center p-4 text-center sm:items-center sm:p-0' },
|
|
72
96
|
React.createElement(Transition.Child, { as: Fragment, enter: 'transform ease-out duration-300 transition', enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10', enterTo: 'translate-y-0 opacity-100 sm:translate-y-0', leave: 'transition ease-in duration-100', leaveFrom: 'translate-y-0 opacity-100 sm:translate-y-0', leaveTo: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10' },
|
|
73
97
|
React.createElement("div", { className: classNames('min-w-0 flex-1', customWidth ? customWidth : sizeModal) },
|
|
74
98
|
React.createElement(Dialog.Panel, { className: classNames('shadow-xl relative transform rounded-lg text-left transition-all sm:my-24 sm:w-full', theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-white') }, inCard ? (primarySubmit || dangerSubmit ? (React.createElement("form", { onSubmit: onSubmit },
|
|
75
99
|
React.createElement(Card, null))) : (React.createElement(Card, null))) : (React.createElement("div", null,
|
|
76
100
|
React.createElement("div", { className: classNames('flex items-center justify-between rounded-t-lg border-b border-gray-200 p-4 text-sm font-semibold text-gray-900', headerClassName, theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-[#F3F3F3]') },
|
|
77
101
|
React.createElement("div", { className: 'flex items-center gap-1' },
|
|
78
|
-
isCancel && (React.createElement("button", { className: 'inline-flex items-center px-2 py-1 text-xs font-bold text-gray-700
|
|
79
|
-
React.createElement(ArrowLeftIcon, { className: '
|
|
80
|
-
title)
|
|
81
|
-
|
|
102
|
+
isCancel && (React.createElement("button", { className: 'inline-flex items-center rounded-lg bg-transparent px-2 py-1 text-xs font-bold text-gray-700 hover:bg-gray-200', onClick: onCancel, type: 'button' },
|
|
103
|
+
React.createElement(ArrowLeftIcon, { className: 'h-4 w-4' }))),
|
|
104
|
+
title),
|
|
105
|
+
React.createElement("button", { className: 'grid grid-cols-1 rounded-md p-0.5 text-gray-400 hover:bg-gray-200 hover:text-gray-500', onClick: () => {
|
|
106
|
+
if (disableCloseButton) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
setOpen(false);
|
|
110
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
111
|
+
}, type: 'button' },
|
|
112
|
+
React.createElement(React.Fragment, null,
|
|
113
|
+
React.createElement("span", { className: 'sr-only' }, "Close"),
|
|
114
|
+
React.createElement(XMarkIcon, { "aria-hidden": 'true', className: 'h-5 w-5' })))),
|
|
115
|
+
React.createElement("div", { className: type === 'default' ? 'p-3 text-xs text-gray-500' : '', style: { maxHeight: customHeight || '100%' } }, children),
|
|
82
116
|
React.createElement("div", { className: classNames('flex items-center justify-between gap-x-3 rounded-b-lg border-t border-gray-200 ', theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-white') }, customFooter ? (customFooter) : (React.createElement(React.Fragment, null,
|
|
83
|
-
React.createElement("div", { className: 'flex items-center
|
|
117
|
+
React.createElement("div", { className: 'flex items-center gap-x-3 rounded-t-lg p-4 pl-5' },
|
|
84
118
|
downloadLinkRef && hrefLink && downloadText && (React.createElement("div", { className: 'group flex items-center gap-x-1' },
|
|
85
119
|
dowloadIcon && (React.createElement(ArrowDownTrayIcon, { className: 'h-4 w-4 text-link-500 group-hover:text-link-600 group-active:text-link-600', strokeWidth: 2 })),
|
|
86
|
-
React.createElement(PHXLink, { as: 'a',
|
|
120
|
+
React.createElement(PHXLink, { ref: downloadLinkRef, as: 'a', href: hrefLink }, downloadText))),
|
|
87
121
|
leftActionText && (React.createElement("div", { className: 'flex gap-2' },
|
|
88
|
-
React.createElement(PHXButton, { className: 'text-sm !text-link-500
|
|
122
|
+
React.createElement(PHXButton, { className: '!px-0 text-sm !text-link-500', disabled: disableLeftAction, onClick: onLeftActionText, plain: true }, leftActionText),
|
|
89
123
|
loadingLeftAction && React.createElement(PHXButton, { disabled: true, loading: true, plain: true, size: 'micro' }))),
|
|
90
124
|
footerBulkAction && footerBulkAction.content && (React.createElement(PHXButton, { danger: true, disabled: footerBulkAction.disabled, loading: footerBulkAction.loading, onClick: footerBulkAction.onClick, size: 'micro', submit: !!footerBulkAction.submit }, footerBulkAction.content))),
|
|
91
|
-
React.createElement("div", { className: 'flex justify-end
|
|
125
|
+
React.createElement("div", { className: 'flex justify-end gap-x-3 rounded-t-lg p-4' },
|
|
92
126
|
React.createElement(PHXButton, { disabled: disableCloseButton, onClick: onHide, secondary: true, size: 'micro' }, secondaryActionText),
|
|
93
127
|
dangerSubmit && (React.createElement(PHXButton, { danger: true, disabled: disableSubmit, loading: dangerLoading, onClick: onDangerClick, size: 'micro' }, dangerActionText)),
|
|
94
128
|
!hiddenSubmit && (React.createElement(PHXButton, { disabled: disableSubmit, loading: primaryLoading, onClick: () => onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(), primary: true, size: 'micro' }, primaryActionText))))))))))))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"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"}
|