@cleartrip/ct-design-modal 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/Backdrop/Backdrop.d.ts +6 -0
  2. package/dist/Backdrop/Backdrop.d.ts.map +1 -0
  3. package/dist/Backdrop/index.d.ts +2 -0
  4. package/dist/Backdrop/index.d.ts.map +1 -0
  5. package/dist/Backdrop/style.d.ts +8 -0
  6. package/dist/Backdrop/style.d.ts.map +1 -0
  7. package/dist/Backdrop/type.d.ts +11 -0
  8. package/dist/Backdrop/type.d.ts.map +1 -0
  9. package/dist/Handler.d.ts +19 -0
  10. package/dist/Handler.d.ts.map +1 -0
  11. package/dist/Modal.d.ts +6 -0
  12. package/dist/Modal.d.ts.map +1 -0
  13. package/dist/ModalAction/ModalAction.d.ts +9 -0
  14. package/dist/ModalAction/ModalAction.d.ts.map +1 -0
  15. package/dist/ModalAction/index.d.ts +2 -0
  16. package/dist/ModalAction/index.d.ts.map +1 -0
  17. package/dist/ModalContainer/ModalContainer.d.ts +12 -0
  18. package/dist/ModalContainer/ModalContainer.d.ts.map +1 -0
  19. package/dist/ModalContainer/index.d.ts +2 -0
  20. package/dist/ModalContainer/index.d.ts.map +1 -0
  21. package/dist/ModalContent/ModalContent.d.ts +8 -0
  22. package/dist/ModalContent/ModalContent.d.ts.map +1 -0
  23. package/dist/ModalContent/index.d.ts +2 -0
  24. package/dist/ModalContent/index.d.ts.map +1 -0
  25. package/dist/ModalContext.d.ts +6 -0
  26. package/dist/ModalContext.d.ts.map +1 -0
  27. package/dist/ModalTitle/ModalTitle.d.ts +7 -0
  28. package/dist/ModalTitle/ModalTitle.d.ts.map +1 -0
  29. package/dist/ModalTitle/index.d.ts +2 -0
  30. package/dist/ModalTitle/index.d.ts.map +1 -0
  31. package/dist/ModalsUsableComponents/ModalWithCloseOverlay.d.ts +4 -0
  32. package/dist/ModalsUsableComponents/ModalWithCloseOverlay.d.ts.map +1 -0
  33. package/dist/ModalsUsableComponents/index.d.ts +2 -0
  34. package/dist/ModalsUsableComponents/index.d.ts.map +1 -0
  35. package/dist/ModalsUsableComponents/style.d.ts +7 -0
  36. package/dist/ModalsUsableComponents/style.d.ts.map +1 -0
  37. package/dist/ModalsUsableComponents/type.d.ts +8 -0
  38. package/dist/ModalsUsableComponents/type.d.ts.map +1 -0
  39. package/dist/ct-design-modal.browser.cjs.js +2 -0
  40. package/dist/ct-design-modal.browser.cjs.js.map +1 -0
  41. package/dist/ct-design-modal.browser.esm.js +2 -0
  42. package/dist/ct-design-modal.browser.esm.js.map +1 -0
  43. package/dist/ct-design-modal.cjs.js +283 -0
  44. package/dist/ct-design-modal.cjs.js.map +1 -0
  45. package/dist/ct-design-modal.esm.js +270 -0
  46. package/dist/ct-design-modal.esm.js.map +1 -0
  47. package/dist/ct-design-modal.umd.js +314 -0
  48. package/dist/ct-design-modal.umd.js.map +1 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/stats.html +4838 -0
  52. package/dist/style.d.ts +16 -0
  53. package/dist/style.d.ts.map +1 -0
  54. package/dist/type.d.ts +36 -0
  55. package/dist/type.d.ts.map +1 -0
  56. package/package.json +48 -0
@@ -0,0 +1,283 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var styled = require('styled-components');
7
+ var useTheme = require('@cleartrip/ct-design-use-theme');
8
+ var ctDesignPortal = require('@cleartrip/ct-design-portal');
9
+ var ctDesignFocusLock = require('@cleartrip/ct-design-focus-lock');
10
+ var ctDesignTransition = require('@cleartrip/ct-design-transition');
11
+ var useMergeRefs = require('@cleartrip/ct-design-use-merge-refs');
12
+ var ctDesignContainer = require('@cleartrip/ct-design-container');
13
+ var ctDesignBox = require('@cleartrip/ct-design-box');
14
+ var ctDesignIcons = require('@cleartrip/ct-design-icons');
15
+ var ctDesignTypography = require('@cleartrip/ct-design-typography');
16
+
17
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
+
19
+ var React__default = /*#__PURE__*/_interopDefault(React);
20
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
21
+ var useTheme__default = /*#__PURE__*/_interopDefault(useTheme);
22
+ var useMergeRefs__default = /*#__PURE__*/_interopDefault(useMergeRefs);
23
+
24
+ exports.ModalSize = void 0;
25
+ (function (ModalSize) {
26
+ ModalSize["SMALL"] = "SMALL";
27
+ ModalSize["MEDIUM"] = "MEDIUM";
28
+ ModalSize["LARGE"] = "LARGE";
29
+ ModalSize["FULL_SCREEN"] = "FULL_SCREEN";
30
+ ModalSize["NONE"] = "NONE";
31
+ ModalSize["REGULAR"] = "REGULAR";
32
+ ModalSize["BIG"] = "BIG";
33
+ })(exports.ModalSize || (exports.ModalSize = {}));
34
+
35
+ var getBackdropStyles = function (_a) {
36
+ var blur = _a.blur;
37
+ return ({
38
+ position: 'fixed',
39
+ display: 'flex',
40
+ alignItems: 'center',
41
+ justifyContent: 'center',
42
+ background: blur ? 'rgba(26, 26, 26, 0.6);' : '',
43
+ backdropFilter: blur ? 'blur(1px)' : 'none',
44
+ zIndex: -1,
45
+ inset: 0,
46
+ });
47
+ };
48
+
49
+ var StyledBackdrop = styled__default.default.div(function (_a) {
50
+ var css = _a.css, theme = _a.theme, blur = _a.blur; tslib.__rest(_a, ["css", "theme", "blur"]);
51
+ return getBackdropStyles(tslib.__assign(tslib.__assign({}, css), { blur: blur, theme: theme }));
52
+ });
53
+ var Backdrop = React.forwardRef(function (_a, forwardedRef) {
54
+ _a.as; var children = _a.children, open = _a.open, transitionDuration = _a.transitionDuration, css = _a.css, rest = tslib.__rest(_a, ["as", "children", "open", "transitionDuration", "css"]);
55
+ var theme = useTheme__default.default();
56
+ return (jsxRuntime.jsx(ctDesignTransition.Transition, tslib.__assign({ in: open, timeout: transitionDuration, type: 'fade' }, { children: jsxRuntime.jsx(StyledBackdrop, tslib.__assign({ ref: forwardedRef, css: css, theme: theme }, rest, { children: children })) })));
57
+ });
58
+
59
+ var ModalContext = React.createContext({
60
+ footerAlignment: 'end',
61
+ hideCrossIcon: false,
62
+ onClose: function () { },
63
+ size: 'MEDIUM',
64
+ });
65
+
66
+ var Handler = (function () {
67
+ function Handler() {
68
+ this.parent = [];
69
+ }
70
+ Handler.handleStyle = function (parentNode) {
71
+ if (parentNode.ref) {
72
+ parentNode.prevStyle = tslib.__assign({}, parentNode.ref.style);
73
+ parentNode.ref.style.overflow = 'hidden';
74
+ }
75
+ };
76
+ Handler.restoreStyle = function (parentNode) {
77
+ if (parentNode.ref && parentNode.prevStyle) {
78
+ parentNode.ref.style.overflow = parentNode.prevStyle.overflow || '';
79
+ }
80
+ };
81
+ Handler.prototype.mount = function (modal, parentNode) {
82
+ if (parentNode === void 0) { parentNode = { ref: null }; }
83
+ if (parentNode.ref) {
84
+ var parentIndex = this.parent.findIndex(function (node) { return node.parentNode === parentNode; });
85
+ if (parentIndex !== -1) {
86
+ this.parent[parentIndex].modals.push(modal);
87
+ }
88
+ else {
89
+ this.parent.push({
90
+ parentNode: parentNode,
91
+ modals: [modal],
92
+ });
93
+ }
94
+ Handler.handleStyle(parentNode);
95
+ }
96
+ else {
97
+ var parent_1 = this.getTopModal();
98
+ parent_1.modals.push(modal);
99
+ Handler.handleStyle(parent_1.parentNode);
100
+ if (parent_1.parentNode.ref !== document.body) {
101
+ this.parent.push({
102
+ parentNode: modal,
103
+ modals: [],
104
+ });
105
+ }
106
+ else {
107
+ this.parent.push(parent_1);
108
+ }
109
+ }
110
+ };
111
+ Handler.prototype.getTopModal = function () {
112
+ if (this.parent.length) {
113
+ return this.parent[this.parent.length - 1];
114
+ }
115
+ else {
116
+ return { parentNode: { ref: document.body, prevStyle: document.body.style }, modals: [] };
117
+ }
118
+ };
119
+ Handler.prototype.remove = function (modal) {
120
+ var parentNode = this.parent.find(function (node) { return node.modals.find(function (_modal) { return _modal.ref === modal.ref; }); });
121
+ if (parentNode) {
122
+ Handler.restoreStyle(parentNode.parentNode);
123
+ }
124
+ };
125
+ return Handler;
126
+ }());
127
+
128
+ var getModalSizeStyles = function (size) {
129
+ switch (size) {
130
+ case exports.ModalSize.SMALL: {
131
+ return {
132
+ width: '360px',
133
+ };
134
+ }
135
+ case exports.ModalSize.LARGE: {
136
+ return {
137
+ width: '1032px',
138
+ };
139
+ }
140
+ case exports.ModalSize.FULL_SCREEN: {
141
+ return {
142
+ width: '100vw',
143
+ height: '100vh',
144
+ minHeight: '100vh',
145
+ minWidth: '100%',
146
+ };
147
+ }
148
+ case exports.ModalSize.NONE: {
149
+ return {};
150
+ }
151
+ case exports.ModalSize.BIG: {
152
+ return {
153
+ width: '730px',
154
+ };
155
+ }
156
+ case exports.ModalSize.REGULAR: {
157
+ return {
158
+ width: '484px',
159
+ };
160
+ }
161
+ case exports.ModalSize.MEDIUM:
162
+ default: {
163
+ return {
164
+ width: '504px',
165
+ };
166
+ }
167
+ }
168
+ };
169
+ var getModalChildContainerStyle = function (_a) {
170
+ var theme = _a.theme, size = _a.size, blur = _a.blur, overflowY = _a.overflowY, modalContentCss = _a.modalContentCss;
171
+ return (tslib.__assign(tslib.__assign({ boxSizing: 'content-box', borderRadius: size === exports.ModalSize.FULL_SCREEN ? 0 : theme.spacing['3'], borderBottomLeftRadius: size === exports.ModalSize.FULL_SCREEN ? 0 : theme.spacing['3'], borderBottomRightRadius: size === exports.ModalSize.FULL_SCREEN ? 0 : theme.spacing['3'], backgroundColor: theme.color.background.neutral, overflowY: overflowY, maxHeight: size === exports.ModalSize.FULL_SCREEN ? '100vh' : "calc(100vh - 64px)", boxShadow: blur
172
+ ? "rgb(0 0 0 / 20%) 0px 11px 15px -7px, rgb(0 0 0 / 14%) 0px 24px 38px 3px, rgb(0 0 0 / 12%) 0px 9px 22px 18px"
173
+ : 'none' }, getModalSizeStyles(size)), modalContentCss));
174
+ };
175
+ var getModalStyles = function (_a) {
176
+ var theme = _a.theme; _a.size; var overflowY = _a.overflowY, rest = tslib.__rest(_a, ["theme", "size", "overflowY"]);
177
+ return (tslib.__assign({ position: 'relative', zIndex: theme.zIndex.modal, overflowY: overflowY, display: 'flex', flexDirection: 'column', margin: 'auto', height: '100%', width: '100%', justifyContent: 'center', alignItems: 'center' }, rest));
178
+ };
179
+
180
+ var StyledModal = styled__default.default.div(function (_a) {
181
+ var theme = _a.theme, _b = _a.size, size = _b === void 0 ? 'MEDIUM' : _b, _c = _a.overflowY, overflowY = _c === void 0 ? 'auto' : _c, _d = _a.styledModalWrapperCss, styledModalWrapperCss = _d === void 0 ? {} : _d;
182
+ return getModalStyles(tslib.__assign({ theme: theme, size: size, overflowY: overflowY }, styledModalWrapperCss));
183
+ });
184
+ var handler = new Handler();
185
+ var DEFAULT_ANIMATION_TIME = 350;
186
+ var Modal = React.forwardRef(function (_a, forwardedRef) {
187
+ var as = _a.as, children = _a.children, _b = _a.insidePortal, insidePortal = _b === void 0 ? true : _b, _c = _a.open, open = _c === void 0 ? false : _c, onClose = _a.onClose, onKeyDown = _a.onKeyDown, hideCrossIcon = _a.hideCrossIcon, footerAlignment = _a.footerAlignment, _d = _a.size, size = _d === void 0 ? 'MEDIUM' : _d, _e = _a.allowBackdropClose, allowBackdropClose = _e === void 0 ? true : _e; _a.width; var _f = _a.blur, blur = _f === void 0 ? true : _f, backDropComponent = _a.backDropComponent, _g = _a.animationDuration, animationDuration = _g === void 0 ? DEFAULT_ANIMATION_TIME : _g, _h = _a.overflowY, overflowY = _h === void 0 ? 'auto' : _h, styledModalWrapperCss = _a.styledModalWrapperCss, modalContentCss = _a.modalContentCss, rest = tslib.__rest(_a, ["as", "children", "insidePortal", "open", "onClose", "onKeyDown", "hideCrossIcon", "footerAlignment", "size", "allowBackdropClose", "width", "blur", "backDropComponent", "animationDuration", "overflowY", "styledModalWrapperCss", "modalContentCss"]);
188
+ var theme = useTheme__default.default();
189
+ var modalRef = React.useRef(null);
190
+ var containerRef = React.useRef({});
191
+ var _j = React.useState(open), isOpen = _j[0], setIsOpen = _j[1];
192
+ var handleRef = useMergeRefs__default.default(forwardedRef, modalRef);
193
+ React.useLayoutEffect(function () {
194
+ var timeoutId = null;
195
+ if (!open) {
196
+ timeoutId = setTimeout(function () { return setIsOpen(false); }, animationDuration);
197
+ }
198
+ else {
199
+ setIsOpen(true);
200
+ }
201
+ return function () {
202
+ timeoutId && clearTimeout(timeoutId);
203
+ };
204
+ }, [open, animationDuration]);
205
+ React.useEffect(function () {
206
+ if (modalRef.current) {
207
+ modalRef.current.scrollTop = 0;
208
+ }
209
+ if (open) {
210
+ containerRef.current.modalRef = modalRef.current;
211
+ handler.mount({ ref: containerRef.current.modalRef });
212
+ }
213
+ return function () {
214
+ if (open) {
215
+ handler.remove({ ref: containerRef.current.modalRef || null });
216
+ containerRef.current.modalRef = modalRef.current;
217
+ }
218
+ };
219
+ }, [open]);
220
+ var handleBackdropClick = function (event) {
221
+ if (event.target !== event.currentTarget) {
222
+ return;
223
+ }
224
+ if (allowBackdropClose && onClose) {
225
+ onClose(event);
226
+ }
227
+ };
228
+ var handleKeyDown = function (event) {
229
+ if (onKeyDown) {
230
+ onKeyDown(event);
231
+ }
232
+ if (event.key !== 'Escape') {
233
+ return;
234
+ }
235
+ event.stopPropagation();
236
+ if (onClose) {
237
+ onClose(event);
238
+ }
239
+ };
240
+ if (!isOpen || !React__default.default.isValidElement(children)) {
241
+ return null;
242
+ }
243
+ var fullScreenStyle = size === exports.ModalSize.FULL_SCREEN ? { height: '100vh', width: '100vw' } : {};
244
+ return (jsxRuntime.jsx(ctDesignPortal.Portal, tslib.__assign({ disablePortal: !insidePortal }, { children: jsxRuntime.jsx(ctDesignFocusLock.FocusLock, { children: jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({ position: 'fixed', zIndex: theme.zIndex.modal, css: tslib.__assign({ inset: 0 }, fullScreenStyle) }, rest, { children: jsxRuntime.jsxs(StyledModal, tslib.__assign({ size: size, as: as, theme: theme, overflowY: overflowY, onKeyDown: handleKeyDown, ref: handleRef, styledModalWrapperCss: styledModalWrapperCss }, { children: [backDropComponent || (jsxRuntime.jsx(Backdrop, { open: open, blur: blur, transitionDuration: 350, onClick: handleBackdropClick })), jsxRuntime.jsx(ctDesignTransition.Transition, tslib.__assign({ type: size === exports.ModalSize.FULL_SCREEN ? 'slide' : 'fade', slideDirection: 'up', in: open, timeout: animationDuration }, { children: jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({ css: getModalChildContainerStyle({ theme: theme, size: size, blur: blur, overflowY: overflowY, modalContentCss: modalContentCss }) }, { children: jsxRuntime.jsx(ModalContext.Provider, tslib.__assign({ value: { footerAlignment: footerAlignment, hideCrossIcon: hideCrossIcon, onClose: onClose, size: size } }, { children: React__default.default.cloneElement(children, tslib.__assign({ onClose: onClose }, children.props)) })) })) }))] })) })) }) })));
245
+ });
246
+
247
+ var ModalAction = function (_a) {
248
+ var children = _a.children, css = _a.css;
249
+ var _b = React.useContext(ModalContext).footerAlignment, footerAlignment = _b === void 0 ? 'end' : _b;
250
+ var alignment = {
251
+ start: 'flex-start',
252
+ end: 'flex-end',
253
+ center: 'center',
254
+ }[footerAlignment];
255
+ var theme = useTheme__default.default();
256
+ return (jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({ display: 'flex', justifyContent: alignment, css: tslib.__assign(tslib.__assign({}, css), { padding: '16px 24px 16px 24px', boxShadow: theme.elevation.topE1 }) }, { children: children })));
257
+ };
258
+
259
+ var ModalContainer = function (_a) {
260
+ var children = _a.children, css = _a.css;
261
+ var size = React.useContext(ModalContext).size;
262
+ return (jsxRuntime.jsx(ctDesignBox.Box, tslib.__assign({ boxSize: 'zero', css: tslib.__assign({ maxHeight: size === 'FULL_SCREEN' ? '100%' : 'calc(100vh - 128px)', overflowY: 'auto', height: size === 'FULL_SCREEN' ? '100%' : undefined }, css) }, { children: children })));
263
+ };
264
+
265
+ var ModalContent = function (_a) {
266
+ var children = _a.children, css = _a.css;
267
+ return (jsxRuntime.jsx(ctDesignBox.Box, tslib.__assign({ boxSize: 'zero', css: tslib.__assign({ overflowY: 'auto', flex: '1 1 auto' }, css) }, { children: jsxRuntime.jsx(ctDesignBox.Box, tslib.__assign({ boxSize: 'xLarge', css: { padding: '16px 24px', width: '100%' } }, { children: children })) })));
268
+ };
269
+
270
+ var ModalTitle = function (_a) {
271
+ var children = _a.children;
272
+ var theme = useTheme__default.default();
273
+ var _b = React.useContext(ModalContext), hideCrossIcon = _b.hideCrossIcon, onClose = _b.onClose, size = _b.size;
274
+ var padding = size === 'FULL_SCREEN' ? '22px 28px' : '24px 24px 16px 24px';
275
+ return (jsxRuntime.jsxs(ctDesignContainer.Container, tslib.__assign({ display: 'flex', justifyContent: 'space-between', css: { padding: padding, boxShadow: theme.elevation.bottomE1 } }, { children: [jsxRuntime.jsx(ctDesignTypography.Typography, tslib.__assign({ variant: 'HM2' }, { children: children })), !hideCrossIcon && (jsxRuntime.jsx(ctDesignContainer.Container, tslib.__assign({ cursor: 'pointer', onClick: onClose, marginTop: theme.spacing[1], marginRight: theme.spacing[1] }, { children: jsxRuntime.jsx(ctDesignIcons.Cross, { height: 24, width: 24, crossColor: theme.color.text.heading }) })))] })));
276
+ };
277
+
278
+ exports.Modal = Modal;
279
+ exports.ModalAction = ModalAction;
280
+ exports.ModalContainer = ModalContainer;
281
+ exports.ModalContent = ModalContent;
282
+ exports.ModalTitle = ModalTitle;
283
+ //# sourceMappingURL=ct-design-modal.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-modal.cjs.js","sources":["../packages/components/Modal/src/type.ts","../packages/components/Modal/src/Backdrop/style.ts","../packages/components/Modal/src/Backdrop/Backdrop.tsx","../packages/components/Modal/src/ModalContext.ts","../packages/components/Modal/src/Handler.ts","../packages/components/Modal/src/style.ts","../packages/components/Modal/src/Modal.tsx","../packages/components/Modal/src/ModalAction/ModalAction.tsx","../packages/components/Modal/src/ModalContainer/ModalContainer.tsx","../packages/components/Modal/src/ModalContent/ModalContent.tsx","../packages/components/Modal/src/ModalTitle/ModalTitle.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["ModalSize","styled","__rest","__assign","forwardRef","useTheme","_jsx","Transition","createContext","useRef","useState","useMergeRefs","useLayoutEffect","useEffect","React","Portal","FocusLock","Container","_jsxs","useContext","Box","Typography","Cross"],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ import { __rest, __assign } from 'tslib';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import React, { forwardRef, createContext, useRef, useState, useLayoutEffect, useEffect, useContext } from 'react';
4
+ import styled from 'styled-components';
5
+ import useTheme from '@cleartrip/ct-design-use-theme';
6
+ import { Portal } from '@cleartrip/ct-design-portal';
7
+ import { FocusLock } from '@cleartrip/ct-design-focus-lock';
8
+ import { Transition } from '@cleartrip/ct-design-transition';
9
+ import useMergeRefs from '@cleartrip/ct-design-use-merge-refs';
10
+ import { Container } from '@cleartrip/ct-design-container';
11
+ import { Box } from '@cleartrip/ct-design-box';
12
+ import { Cross } from '@cleartrip/ct-design-icons';
13
+ import { Typography } from '@cleartrip/ct-design-typography';
14
+
15
+ var ModalSize;
16
+ (function (ModalSize) {
17
+ ModalSize["SMALL"] = "SMALL";
18
+ ModalSize["MEDIUM"] = "MEDIUM";
19
+ ModalSize["LARGE"] = "LARGE";
20
+ ModalSize["FULL_SCREEN"] = "FULL_SCREEN";
21
+ ModalSize["NONE"] = "NONE";
22
+ ModalSize["REGULAR"] = "REGULAR";
23
+ ModalSize["BIG"] = "BIG";
24
+ })(ModalSize || (ModalSize = {}));
25
+
26
+ var getBackdropStyles = function (_a) {
27
+ var blur = _a.blur;
28
+ return ({
29
+ position: 'fixed',
30
+ display: 'flex',
31
+ alignItems: 'center',
32
+ justifyContent: 'center',
33
+ background: blur ? 'rgba(26, 26, 26, 0.6);' : '',
34
+ backdropFilter: blur ? 'blur(1px)' : 'none',
35
+ zIndex: -1,
36
+ inset: 0,
37
+ });
38
+ };
39
+
40
+ var StyledBackdrop = styled.div(function (_a) {
41
+ var css = _a.css, theme = _a.theme, blur = _a.blur; __rest(_a, ["css", "theme", "blur"]);
42
+ return getBackdropStyles(__assign(__assign({}, css), { blur: blur, theme: theme }));
43
+ });
44
+ var Backdrop = forwardRef(function (_a, forwardedRef) {
45
+ _a.as; var children = _a.children, open = _a.open, transitionDuration = _a.transitionDuration, css = _a.css, rest = __rest(_a, ["as", "children", "open", "transitionDuration", "css"]);
46
+ var theme = useTheme();
47
+ return (jsx(Transition, __assign({ in: open, timeout: transitionDuration, type: 'fade' }, { children: jsx(StyledBackdrop, __assign({ ref: forwardedRef, css: css, theme: theme }, rest, { children: children })) })));
48
+ });
49
+
50
+ var ModalContext = createContext({
51
+ footerAlignment: 'end',
52
+ hideCrossIcon: false,
53
+ onClose: function () { },
54
+ size: 'MEDIUM',
55
+ });
56
+
57
+ var Handler = (function () {
58
+ function Handler() {
59
+ this.parent = [];
60
+ }
61
+ Handler.handleStyle = function (parentNode) {
62
+ if (parentNode.ref) {
63
+ parentNode.prevStyle = __assign({}, parentNode.ref.style);
64
+ parentNode.ref.style.overflow = 'hidden';
65
+ }
66
+ };
67
+ Handler.restoreStyle = function (parentNode) {
68
+ if (parentNode.ref && parentNode.prevStyle) {
69
+ parentNode.ref.style.overflow = parentNode.prevStyle.overflow || '';
70
+ }
71
+ };
72
+ Handler.prototype.mount = function (modal, parentNode) {
73
+ if (parentNode === void 0) { parentNode = { ref: null }; }
74
+ if (parentNode.ref) {
75
+ var parentIndex = this.parent.findIndex(function (node) { return node.parentNode === parentNode; });
76
+ if (parentIndex !== -1) {
77
+ this.parent[parentIndex].modals.push(modal);
78
+ }
79
+ else {
80
+ this.parent.push({
81
+ parentNode: parentNode,
82
+ modals: [modal],
83
+ });
84
+ }
85
+ Handler.handleStyle(parentNode);
86
+ }
87
+ else {
88
+ var parent_1 = this.getTopModal();
89
+ parent_1.modals.push(modal);
90
+ Handler.handleStyle(parent_1.parentNode);
91
+ if (parent_1.parentNode.ref !== document.body) {
92
+ this.parent.push({
93
+ parentNode: modal,
94
+ modals: [],
95
+ });
96
+ }
97
+ else {
98
+ this.parent.push(parent_1);
99
+ }
100
+ }
101
+ };
102
+ Handler.prototype.getTopModal = function () {
103
+ if (this.parent.length) {
104
+ return this.parent[this.parent.length - 1];
105
+ }
106
+ else {
107
+ return { parentNode: { ref: document.body, prevStyle: document.body.style }, modals: [] };
108
+ }
109
+ };
110
+ Handler.prototype.remove = function (modal) {
111
+ var parentNode = this.parent.find(function (node) { return node.modals.find(function (_modal) { return _modal.ref === modal.ref; }); });
112
+ if (parentNode) {
113
+ Handler.restoreStyle(parentNode.parentNode);
114
+ }
115
+ };
116
+ return Handler;
117
+ }());
118
+
119
+ var getModalSizeStyles = function (size) {
120
+ switch (size) {
121
+ case ModalSize.SMALL: {
122
+ return {
123
+ width: '360px',
124
+ };
125
+ }
126
+ case ModalSize.LARGE: {
127
+ return {
128
+ width: '1032px',
129
+ };
130
+ }
131
+ case ModalSize.FULL_SCREEN: {
132
+ return {
133
+ width: '100vw',
134
+ height: '100vh',
135
+ minHeight: '100vh',
136
+ minWidth: '100%',
137
+ };
138
+ }
139
+ case ModalSize.NONE: {
140
+ return {};
141
+ }
142
+ case ModalSize.BIG: {
143
+ return {
144
+ width: '730px',
145
+ };
146
+ }
147
+ case ModalSize.REGULAR: {
148
+ return {
149
+ width: '484px',
150
+ };
151
+ }
152
+ case ModalSize.MEDIUM:
153
+ default: {
154
+ return {
155
+ width: '504px',
156
+ };
157
+ }
158
+ }
159
+ };
160
+ var getModalChildContainerStyle = function (_a) {
161
+ var theme = _a.theme, size = _a.size, blur = _a.blur, overflowY = _a.overflowY, modalContentCss = _a.modalContentCss;
162
+ return (__assign(__assign({ boxSizing: 'content-box', borderRadius: size === ModalSize.FULL_SCREEN ? 0 : theme.spacing['3'], borderBottomLeftRadius: size === ModalSize.FULL_SCREEN ? 0 : theme.spacing['3'], borderBottomRightRadius: size === ModalSize.FULL_SCREEN ? 0 : theme.spacing['3'], backgroundColor: theme.color.background.neutral, overflowY: overflowY, maxHeight: size === ModalSize.FULL_SCREEN ? '100vh' : "calc(100vh - 64px)", boxShadow: blur
163
+ ? "rgb(0 0 0 / 20%) 0px 11px 15px -7px, rgb(0 0 0 / 14%) 0px 24px 38px 3px, rgb(0 0 0 / 12%) 0px 9px 22px 18px"
164
+ : 'none' }, getModalSizeStyles(size)), modalContentCss));
165
+ };
166
+ var getModalStyles = function (_a) {
167
+ var theme = _a.theme; _a.size; var overflowY = _a.overflowY, rest = __rest(_a, ["theme", "size", "overflowY"]);
168
+ return (__assign({ position: 'relative', zIndex: theme.zIndex.modal, overflowY: overflowY, display: 'flex', flexDirection: 'column', margin: 'auto', height: '100%', width: '100%', justifyContent: 'center', alignItems: 'center' }, rest));
169
+ };
170
+
171
+ var StyledModal = styled.div(function (_a) {
172
+ var theme = _a.theme, _b = _a.size, size = _b === void 0 ? 'MEDIUM' : _b, _c = _a.overflowY, overflowY = _c === void 0 ? 'auto' : _c, _d = _a.styledModalWrapperCss, styledModalWrapperCss = _d === void 0 ? {} : _d;
173
+ return getModalStyles(__assign({ theme: theme, size: size, overflowY: overflowY }, styledModalWrapperCss));
174
+ });
175
+ var handler = new Handler();
176
+ var DEFAULT_ANIMATION_TIME = 350;
177
+ var Modal = forwardRef(function (_a, forwardedRef) {
178
+ var as = _a.as, children = _a.children, _b = _a.insidePortal, insidePortal = _b === void 0 ? true : _b, _c = _a.open, open = _c === void 0 ? false : _c, onClose = _a.onClose, onKeyDown = _a.onKeyDown, hideCrossIcon = _a.hideCrossIcon, footerAlignment = _a.footerAlignment, _d = _a.size, size = _d === void 0 ? 'MEDIUM' : _d, _e = _a.allowBackdropClose, allowBackdropClose = _e === void 0 ? true : _e; _a.width; var _f = _a.blur, blur = _f === void 0 ? true : _f, backDropComponent = _a.backDropComponent, _g = _a.animationDuration, animationDuration = _g === void 0 ? DEFAULT_ANIMATION_TIME : _g, _h = _a.overflowY, overflowY = _h === void 0 ? 'auto' : _h, styledModalWrapperCss = _a.styledModalWrapperCss, modalContentCss = _a.modalContentCss, rest = __rest(_a, ["as", "children", "insidePortal", "open", "onClose", "onKeyDown", "hideCrossIcon", "footerAlignment", "size", "allowBackdropClose", "width", "blur", "backDropComponent", "animationDuration", "overflowY", "styledModalWrapperCss", "modalContentCss"]);
179
+ var theme = useTheme();
180
+ var modalRef = useRef(null);
181
+ var containerRef = useRef({});
182
+ var _j = useState(open), isOpen = _j[0], setIsOpen = _j[1];
183
+ var handleRef = useMergeRefs(forwardedRef, modalRef);
184
+ useLayoutEffect(function () {
185
+ var timeoutId = null;
186
+ if (!open) {
187
+ timeoutId = setTimeout(function () { return setIsOpen(false); }, animationDuration);
188
+ }
189
+ else {
190
+ setIsOpen(true);
191
+ }
192
+ return function () {
193
+ timeoutId && clearTimeout(timeoutId);
194
+ };
195
+ }, [open, animationDuration]);
196
+ useEffect(function () {
197
+ if (modalRef.current) {
198
+ modalRef.current.scrollTop = 0;
199
+ }
200
+ if (open) {
201
+ containerRef.current.modalRef = modalRef.current;
202
+ handler.mount({ ref: containerRef.current.modalRef });
203
+ }
204
+ return function () {
205
+ if (open) {
206
+ handler.remove({ ref: containerRef.current.modalRef || null });
207
+ containerRef.current.modalRef = modalRef.current;
208
+ }
209
+ };
210
+ }, [open]);
211
+ var handleBackdropClick = function (event) {
212
+ if (event.target !== event.currentTarget) {
213
+ return;
214
+ }
215
+ if (allowBackdropClose && onClose) {
216
+ onClose(event);
217
+ }
218
+ };
219
+ var handleKeyDown = function (event) {
220
+ if (onKeyDown) {
221
+ onKeyDown(event);
222
+ }
223
+ if (event.key !== 'Escape') {
224
+ return;
225
+ }
226
+ event.stopPropagation();
227
+ if (onClose) {
228
+ onClose(event);
229
+ }
230
+ };
231
+ if (!isOpen || !React.isValidElement(children)) {
232
+ return null;
233
+ }
234
+ var fullScreenStyle = size === ModalSize.FULL_SCREEN ? { height: '100vh', width: '100vw' } : {};
235
+ return (jsx(Portal, __assign({ disablePortal: !insidePortal }, { children: jsx(FocusLock, { children: jsx(Container, __assign({ position: 'fixed', zIndex: theme.zIndex.modal, css: __assign({ inset: 0 }, fullScreenStyle) }, rest, { children: jsxs(StyledModal, __assign({ size: size, as: as, theme: theme, overflowY: overflowY, onKeyDown: handleKeyDown, ref: handleRef, styledModalWrapperCss: styledModalWrapperCss }, { children: [backDropComponent || (jsx(Backdrop, { open: open, blur: blur, transitionDuration: 350, onClick: handleBackdropClick })), jsx(Transition, __assign({ type: size === ModalSize.FULL_SCREEN ? 'slide' : 'fade', slideDirection: 'up', in: open, timeout: animationDuration }, { children: jsx(Container, __assign({ css: getModalChildContainerStyle({ theme: theme, size: size, blur: blur, overflowY: overflowY, modalContentCss: modalContentCss }) }, { children: jsx(ModalContext.Provider, __assign({ value: { footerAlignment: footerAlignment, hideCrossIcon: hideCrossIcon, onClose: onClose, size: size } }, { children: React.cloneElement(children, __assign({ onClose: onClose }, children.props)) })) })) }))] })) })) }) })));
236
+ });
237
+
238
+ var ModalAction = function (_a) {
239
+ var children = _a.children, css = _a.css;
240
+ var _b = useContext(ModalContext).footerAlignment, footerAlignment = _b === void 0 ? 'end' : _b;
241
+ var alignment = {
242
+ start: 'flex-start',
243
+ end: 'flex-end',
244
+ center: 'center',
245
+ }[footerAlignment];
246
+ var theme = useTheme();
247
+ return (jsx(Container, __assign({ display: 'flex', justifyContent: alignment, css: __assign(__assign({}, css), { padding: '16px 24px 16px 24px', boxShadow: theme.elevation.topE1 }) }, { children: children })));
248
+ };
249
+
250
+ var ModalContainer = function (_a) {
251
+ var children = _a.children, css = _a.css;
252
+ var size = useContext(ModalContext).size;
253
+ return (jsx(Box, __assign({ boxSize: 'zero', css: __assign({ maxHeight: size === 'FULL_SCREEN' ? '100%' : 'calc(100vh - 128px)', overflowY: 'auto', height: size === 'FULL_SCREEN' ? '100%' : undefined }, css) }, { children: children })));
254
+ };
255
+
256
+ var ModalContent = function (_a) {
257
+ var children = _a.children, css = _a.css;
258
+ return (jsx(Box, __assign({ boxSize: 'zero', css: __assign({ overflowY: 'auto', flex: '1 1 auto' }, css) }, { children: jsx(Box, __assign({ boxSize: 'xLarge', css: { padding: '16px 24px', width: '100%' } }, { children: children })) })));
259
+ };
260
+
261
+ var ModalTitle = function (_a) {
262
+ var children = _a.children;
263
+ var theme = useTheme();
264
+ var _b = useContext(ModalContext), hideCrossIcon = _b.hideCrossIcon, onClose = _b.onClose, size = _b.size;
265
+ var padding = size === 'FULL_SCREEN' ? '22px 28px' : '24px 24px 16px 24px';
266
+ return (jsxs(Container, __assign({ display: 'flex', justifyContent: 'space-between', css: { padding: padding, boxShadow: theme.elevation.bottomE1 } }, { children: [jsx(Typography, __assign({ variant: 'HM2' }, { children: children })), !hideCrossIcon && (jsx(Container, __assign({ cursor: 'pointer', onClick: onClose, marginTop: theme.spacing[1], marginRight: theme.spacing[1] }, { children: jsx(Cross, { height: 24, width: 24, crossColor: theme.color.text.heading }) })))] })));
267
+ };
268
+
269
+ export { Modal, ModalAction, ModalContainer, ModalContent, ModalSize, ModalTitle };
270
+ //# sourceMappingURL=ct-design-modal.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-modal.esm.js","sources":["../packages/components/Modal/src/type.ts","../packages/components/Modal/src/Backdrop/style.ts","../packages/components/Modal/src/Backdrop/Backdrop.tsx","../packages/components/Modal/src/ModalContext.ts","../packages/components/Modal/src/Handler.ts","../packages/components/Modal/src/style.ts","../packages/components/Modal/src/Modal.tsx","../packages/components/Modal/src/ModalAction/ModalAction.tsx","../packages/components/Modal/src/ModalContainer/ModalContainer.tsx","../packages/components/Modal/src/ModalContent/ModalContent.tsx","../packages/components/Modal/src/ModalTitle/ModalTitle.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["_jsx","_jsxs"],"mappings":"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"}