@stenajs-webui/modal 19.0.0-next.12 → 19.0.0-next.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/drawer/Drawer.d.ts +4 -0
- package/dist/index.es.js +69 -63
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -24,6 +24,10 @@ interface DrawerBaseTopBottom extends DrawerBaseProps {
|
|
|
24
24
|
}
|
|
25
25
|
interface DrawerBaseProps extends Omit<ReactModal.Props, "closeTimeoutMS" | "portalClassName" | "overlayClassName" | "className" | "style" | "parentSelector"> {
|
|
26
26
|
background?: string;
|
|
27
|
+
/**
|
|
28
|
+
* When true, there will be a gap between the drawer and the viewport.
|
|
29
|
+
*/
|
|
30
|
+
floating?: boolean;
|
|
27
31
|
zIndex?: number;
|
|
28
32
|
onRequestClose?: () => void;
|
|
29
33
|
/**
|
package/dist/index.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
(function(){"use strict";try{var
|
|
2
|
-
import { jsx as e, jsxs as c, Fragment as
|
|
1
|
+
(function(){"use strict";try{var t=document.createElement("style");t.appendChild(document.createTextNode("._overlay_5x3op_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;-webkit-animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both;animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1{background-color:#fff}}._overlay_5x3op_1 ._modal_5x3op_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_5x3op_1 ._modal_5x3op_31{width:100%}}._overlay_5x3op_1 ._content_5x3op_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_5x3op_1 ._content_5x3op_41{top:0;width:100%;max-width:100%}}._overlay_5x3op_1 ._content_5x3op_41{-webkit-animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both;animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1 ._content_5x3op_41{box-shadow:none;top:0}}._overlay_5x3op_1 ._content_5x3op_41 :focus{outline:0}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle{cursor:move}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@-webkit-keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@-webkit-keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}@keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}._footer_5x3op_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_5x3op_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_5x3op_105{position:static;box-shadow:none}}._portal_9t5bd_1{--drawer-width: 370px}._portal_9t5bd_1 ._overlay_9t5bd_4{position:fixed;inset:0}._portal_9t5bd_1 ._content_9t5bd_9{box-shadow:var(--swui-shadow-modal);background:white;position:absolute;transition:-webkit-transform var(--swui-animation-time-medium) ease-in-out;transition:transform var(--swui-animation-time-medium) ease-in-out;transition:transform var(--swui-animation-time-medium) ease-in-out,-webkit-transform var(--swui-animation-time-medium) ease-in-out}._portal_9t5bd_1 ._content_9t5bd_9._floating_9t5bd_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}._portal_9t5bd_1 ._content_9t5bd_9:focus-visible{outline:unset}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24,._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25{-webkit-transform:translateX(var(--translate-x-outside-screen, 0));transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24._afterOpen_9t5bd_31,._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25._afterOpen_9t5bd_31{-webkit-transform:translateX(0);transform:translate(0)}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24._beforeClose_9t5bd_35,._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25._beforeClose_9t5bd_35{-webkit-transform:translateX(var(--translate-x-outside-screen));transform:translate(var(--translate-x-outside-screen))}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40,._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41{-webkit-transform:translateY(var(--translate-y-outside-screen, 0));transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40._afterOpen_9t5bd_31,._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41._afterOpen_9t5bd_31{-webkit-transform:translateY(0);transform:translateY(0)}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40._beforeClose_9t5bd_35,._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41._beforeClose_9t5bd_35{-webkit-transform:translateY(var(--translate-y-outside-screen));transform:translateY(var(--translate-y-outside-screen))}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}")),document.head.appendChild(t)}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
|
+
import { jsx as e, jsxs as c, Fragment as h } from "react/jsx-runtime";
|
|
3
3
|
import _ from "react-modal";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { exhaustSwitchCase as x, Column as
|
|
4
|
+
import w from "react-draggable";
|
|
5
|
+
import b from "classnames";
|
|
6
|
+
import { exhaustSwitchCase as x, Column as u, Box as m, Spacing as S, Row as g, Indent as A, Heading as B, Txt as L } from "@stenajs-webui/core";
|
|
7
7
|
import { Spinner as M, Icon as D, FlatButton as I, stenaTimes as O } from "@stenajs-webui/elements";
|
|
8
8
|
const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E = "_content_5x3op_41", j = "_appear_5x3op_1", G = "_isDraggable_5x3op_70", z = "_footer_5x3op_101", H = "_stickyFooter_5x3op_105", n = {
|
|
9
9
|
overlay: R,
|
|
@@ -14,7 +14,7 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
14
14
|
isDraggable: G,
|
|
15
15
|
footer: z,
|
|
16
16
|
stickyFooter: H
|
|
17
|
-
},
|
|
17
|
+
}, v = "draggable-modal-handle", F = "draggable-modal-cancel", T = ({
|
|
18
18
|
width: o,
|
|
19
19
|
maxWidth: t,
|
|
20
20
|
draggable: l = !1,
|
|
@@ -27,10 +27,10 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
27
27
|
className: n.modal,
|
|
28
28
|
...s,
|
|
29
29
|
children: /* @__PURE__ */ e(
|
|
30
|
-
|
|
30
|
+
w,
|
|
31
31
|
{
|
|
32
|
-
handle: `.${
|
|
33
|
-
cancel: `.${
|
|
32
|
+
handle: `.${v}`,
|
|
33
|
+
cancel: `.${F}, button, [role="tooltip"]`,
|
|
34
34
|
bounds: ".ReactModal__Overlay",
|
|
35
35
|
disabled: !l,
|
|
36
36
|
children: /* @__PURE__ */ e(
|
|
@@ -40,7 +40,7 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
40
40
|
["--swui-modal-width"]: o,
|
|
41
41
|
["--swui-modal-max-width"]: t
|
|
42
42
|
},
|
|
43
|
-
className:
|
|
43
|
+
className: b(n.content, {
|
|
44
44
|
[n.isDraggable]: l
|
|
45
45
|
}),
|
|
46
46
|
children: r
|
|
@@ -49,25 +49,27 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
49
49
|
}
|
|
50
50
|
)
|
|
51
51
|
}
|
|
52
|
-
), J = "
|
|
52
|
+
), J = "_portal_9t5bd_1", K = "_overlay_9t5bd_4", Q = "_content_9t5bd_9", U = "_floating_9t5bd_15", V = "_slideFromLeft_9t5bd_24", W = "_slideFromRight_9t5bd_25", X = "_afterOpen_9t5bd_31", Y = "_beforeClose_9t5bd_35", Z = "_slideFromTop_9t5bd_40", q = "_slideFromBottom_9t5bd_41", a = {
|
|
53
53
|
portal: J,
|
|
54
54
|
overlay: K,
|
|
55
55
|
content: Q,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
floating: U,
|
|
57
|
+
slideFromLeft: V,
|
|
58
|
+
slideFromRight: W,
|
|
59
|
+
afterOpen: X,
|
|
60
|
+
beforeClose: Y,
|
|
61
|
+
slideFromTop: Z,
|
|
62
|
+
slideFromBottom: q
|
|
63
|
+
}, _e = ({
|
|
63
64
|
background: o,
|
|
64
65
|
zIndex: t,
|
|
65
66
|
children: l,
|
|
66
67
|
slideFrom: r = "left",
|
|
67
68
|
portalTarget: s,
|
|
69
|
+
floating: p,
|
|
68
70
|
...i
|
|
69
71
|
}) => {
|
|
70
|
-
const { height:
|
|
72
|
+
const { height: f, width: d } = i;
|
|
71
73
|
return /* @__PURE__ */ e(
|
|
72
74
|
_,
|
|
73
75
|
{
|
|
@@ -79,17 +81,21 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
79
81
|
beforeClose: a.beforeClose
|
|
80
82
|
},
|
|
81
83
|
className: {
|
|
82
|
-
base:
|
|
84
|
+
base: b(
|
|
85
|
+
a.content,
|
|
86
|
+
P(r),
|
|
87
|
+
p && a.floating
|
|
88
|
+
),
|
|
83
89
|
afterOpen: a.afterOpen,
|
|
84
90
|
beforeClose: a.beforeClose
|
|
85
91
|
},
|
|
86
|
-
style: { content: { width:
|
|
92
|
+
style: { content: { width: d, height: f, background: o }, overlay: { zIndex: t } },
|
|
87
93
|
parentSelector: s ? () => s : void 0,
|
|
88
94
|
...i,
|
|
89
95
|
children: l
|
|
90
96
|
}
|
|
91
97
|
);
|
|
92
|
-
},
|
|
98
|
+
}, P = (o) => {
|
|
93
99
|
switch (o) {
|
|
94
100
|
case "left":
|
|
95
101
|
return a.slideFromLeft;
|
|
@@ -102,7 +108,7 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
102
108
|
default:
|
|
103
109
|
return x(o, a.slideFromLeft);
|
|
104
110
|
}
|
|
105
|
-
},
|
|
111
|
+
}, ee = { overlay: { justifyContent: "center" } }, pe = ({
|
|
106
112
|
children: o,
|
|
107
113
|
...t
|
|
108
114
|
}) => /* @__PURE__ */ e(
|
|
@@ -110,7 +116,7 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
110
116
|
{
|
|
111
117
|
overlayClassName: n.overlay,
|
|
112
118
|
className: n.modal,
|
|
113
|
-
style:
|
|
119
|
+
style: ee,
|
|
114
120
|
...t,
|
|
115
121
|
children: /* @__PURE__ */ e(
|
|
116
122
|
"div",
|
|
@@ -121,10 +127,10 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
121
127
|
}
|
|
122
128
|
)
|
|
123
129
|
}
|
|
124
|
-
),
|
|
125
|
-
modal:
|
|
126
|
-
overlay:
|
|
127
|
-
},
|
|
130
|
+
), oe = "_modal_4fwgb_1", te = "_overlay_4fwgb_13", y = {
|
|
131
|
+
modal: oe,
|
|
132
|
+
overlay: te
|
|
133
|
+
}, fe = ({
|
|
128
134
|
headerIconLeft: o,
|
|
129
135
|
headerText: t,
|
|
130
136
|
...l
|
|
@@ -133,9 +139,9 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
133
139
|
{
|
|
134
140
|
...l,
|
|
135
141
|
isOpen: !0,
|
|
136
|
-
className:
|
|
137
|
-
overlayClassName:
|
|
138
|
-
children: /* @__PURE__ */ c(
|
|
142
|
+
className: y.modal,
|
|
143
|
+
overlayClassName: y.overlay,
|
|
144
|
+
children: /* @__PURE__ */ c(u, { spacing: 2, alignItems: "center", children: [
|
|
139
145
|
/* @__PURE__ */ e(
|
|
140
146
|
m,
|
|
141
147
|
{
|
|
@@ -149,10 +155,10 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
149
155
|
children: /* @__PURE__ */ e(M, { size: "small" })
|
|
150
156
|
}
|
|
151
157
|
),
|
|
152
|
-
(o || t) && /* @__PURE__ */ c(
|
|
158
|
+
(o || t) && /* @__PURE__ */ c(h, { children: [
|
|
153
159
|
/* @__PURE__ */ e(S, {}),
|
|
154
|
-
/* @__PURE__ */ c(
|
|
155
|
-
o && /* @__PURE__ */ c(
|
|
160
|
+
/* @__PURE__ */ c(g, { indent: 2, children: [
|
|
161
|
+
o && /* @__PURE__ */ c(h, { children: [
|
|
156
162
|
/* @__PURE__ */ e(D, { size: 14, icon: o, color: "white" }),
|
|
157
163
|
/* @__PURE__ */ e(A, {})
|
|
158
164
|
] }),
|
|
@@ -161,21 +167,21 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
161
167
|
] })
|
|
162
168
|
] })
|
|
163
169
|
}
|
|
164
|
-
),
|
|
170
|
+
), ae = ({
|
|
165
171
|
onRequestClose: o,
|
|
166
172
|
header: t,
|
|
167
173
|
headerText: l,
|
|
168
174
|
closeButtonClassName: r
|
|
169
175
|
}) => /* @__PURE__ */ c(
|
|
170
|
-
|
|
176
|
+
g,
|
|
171
177
|
{
|
|
172
178
|
spacing: 2,
|
|
173
179
|
indent: 2,
|
|
174
180
|
borderBottom: "1px solid var(--swui-modal-header-border-color)",
|
|
175
|
-
className:
|
|
181
|
+
className: v,
|
|
176
182
|
children: [
|
|
177
|
-
/* @__PURE__ */ c(
|
|
178
|
-
l && /* @__PURE__ */ e(L, { className:
|
|
183
|
+
/* @__PURE__ */ c(g, { flex: 1, indent: !0, alignItems: "center", children: [
|
|
184
|
+
l && /* @__PURE__ */ e(L, { className: F, size: "large", children: l }),
|
|
179
185
|
t
|
|
180
186
|
] }),
|
|
181
187
|
/* @__PURE__ */ e(m, { alignSelf: "flex-start", children: /* @__PURE__ */ e(
|
|
@@ -189,48 +195,48 @@ const R = "_overlay_5x3op_1", $ = "_fadeIn_5x3op_1", k = "_modal_5x3op_31", E =
|
|
|
189
195
|
) })
|
|
190
196
|
]
|
|
191
197
|
}
|
|
192
|
-
),
|
|
198
|
+
), ge = ({
|
|
193
199
|
header: o,
|
|
194
200
|
headerText: t,
|
|
195
201
|
children: l,
|
|
196
202
|
spacing: r,
|
|
197
203
|
indent: s,
|
|
198
|
-
draggable:
|
|
199
|
-
onRequestClose:
|
|
200
|
-
closeButtonClassName:
|
|
201
|
-
footer:
|
|
202
|
-
disableStickyFooter:
|
|
203
|
-
...
|
|
204
|
-
}) => /* @__PURE__ */ c(T, { ...
|
|
204
|
+
draggable: p = !1,
|
|
205
|
+
onRequestClose: i,
|
|
206
|
+
closeButtonClassName: f,
|
|
207
|
+
footer: d,
|
|
208
|
+
disableStickyFooter: C = !1,
|
|
209
|
+
...N
|
|
210
|
+
}) => /* @__PURE__ */ c(T, { ...N, onRequestClose: i, draggable: p, children: [
|
|
205
211
|
/* @__PURE__ */ e(
|
|
206
|
-
|
|
212
|
+
ae,
|
|
207
213
|
{
|
|
208
|
-
onRequestClose:
|
|
214
|
+
onRequestClose: i,
|
|
209
215
|
header: o,
|
|
210
216
|
headerText: t,
|
|
211
|
-
closeButtonClassName:
|
|
217
|
+
closeButtonClassName: f
|
|
212
218
|
}
|
|
213
219
|
),
|
|
214
220
|
/* @__PURE__ */ e(m, { spacing: typeof r == "number" ? r : 1, indent: typeof s == "number" ? s : 1, children: l }),
|
|
215
|
-
|
|
221
|
+
d && /* @__PURE__ */ e(
|
|
216
222
|
m,
|
|
217
223
|
{
|
|
218
|
-
className:
|
|
219
|
-
[n.stickyFooter]: !
|
|
224
|
+
className: b(n.footer, {
|
|
225
|
+
[n.stickyFooter]: !C
|
|
220
226
|
}),
|
|
221
|
-
children:
|
|
227
|
+
children: d
|
|
222
228
|
}
|
|
223
229
|
)
|
|
224
|
-
] }),
|
|
230
|
+
] }), be = ({ children: o }) => /* @__PURE__ */ e(u, { indent: 2, spacing: 2, children: o });
|
|
225
231
|
export {
|
|
226
232
|
T as BaseModal,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
pe as CenterModal,
|
|
234
|
+
F as DRAGGABLE_CANCEL_CLASSNAME,
|
|
235
|
+
v as DRAGGABLE_HANDLE_CLASSNAME,
|
|
236
|
+
_e as Drawer,
|
|
237
|
+
fe as LoadingModal,
|
|
238
|
+
ge as Modal,
|
|
239
|
+
be as ModalFooter,
|
|
240
|
+
ae as ModalHeader
|
|
235
241
|
};
|
|
236
242
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/modal/BaseModal.tsx","../src/components/drawer/Drawer.tsx","../src/components/center-modal/CenterModal.tsx","../src/components/loading-modal/LoadingModal.tsx","../src/components/modal/ModalHeader.tsx","../src/components/modal/Modal.tsx","../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface BaseModalProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseModal: React.FC<BaseModalProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\n\nexport type SlideFrom = SlideFromLeftRight | SlideFromTopBottom;\nexport type SlideFromLeftRight = \"left\" | \"right\";\nexport type SlideFromTopBottom = \"top\" | \"bottom\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(styles.content, getClassNameForSlide(slideFrom)),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"../modal/Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const CenterModal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { FlatButton, stenaTimes } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseModal\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface ModalHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--swui-modal-header-border-color)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <FlatButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n aria-label={\"Close\"}\n leftIcon={stenaTimes}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseModal, BaseModalProps } from \"./BaseModal\";\nimport { ModalHeader, ModalHeaderProps } from \"./ModalHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends BaseModalProps, ModalHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseModal {...props} onRequestClose={onRequestClose} draggable={draggable}>\n <ModalHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseModal>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalFooterProps {\n children?: ReactNode;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseModal","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","height","getClassNameForSlide","exhaustSwitchCase","style","CenterModal","LoadingModal","headerIconLeft","headerText","modalProps","jsxs","Column","Box","Spinner","Fragment","Spacing","Row","Icon","Indent","Heading","ModalHeader","onRequestClose","header","closeButtonClassName","Txt","FlatButton","stenaTimes","Modal","spacing","indent","footer","disableStickyFooter","props","ModalFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/modal/BaseModal.tsx","../src/components/drawer/Drawer.tsx","../src/components/center-modal/CenterModal.tsx","../src/components/loading-modal/LoadingModal.tsx","../src/components/modal/ModalHeader.tsx","../src/components/modal/Modal.tsx","../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface BaseModalProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseModal: React.FC<BaseModalProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\n\nexport type SlideFrom = SlideFromLeftRight | SlideFromTopBottom;\nexport type SlideFromLeftRight = \"left\" | \"right\";\nexport type SlideFromTopBottom = \"top\" | \"bottom\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"../modal/Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const CenterModal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { FlatButton, stenaTimes } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseModal\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface ModalHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--swui-modal-header-border-color)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <FlatButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n aria-label={\"Close\"}\n leftIcon={stenaTimes}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseModal, BaseModalProps } from \"./BaseModal\";\nimport { ModalHeader, ModalHeaderProps } from \"./ModalHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends BaseModalProps, ModalHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseModal {...props} onRequestClose={onRequestClose} draggable={draggable}>\n <ModalHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseModal>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalFooterProps {\n children?: ReactNode;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseModal","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","style","CenterModal","LoadingModal","headerIconLeft","headerText","modalProps","jsxs","Column","Box","Spinner","Fragment","Spacing","Row","Icon","Indent","Heading","ModalHeader","onRequestClose","header","closeButtonClassName","Txt","FlatButton","stenaTimes","Modal","spacing","indent","footer","disableStickyFooter","props","ModalFooter"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(){"use strict";try{var
|
|
2
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),N=require("react-modal"),M=require("react-draggable"),A=require("classnames"),
|
|
1
|
+
(function(){"use strict";try{var t=document.createElement("style");t.appendChild(document.createTextNode("._overlay_5x3op_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;-webkit-animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both;animation:_fadeIn_5x3op_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1{background-color:#fff}}._overlay_5x3op_1 ._modal_5x3op_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_5x3op_1 ._modal_5x3op_31{width:100%}}._overlay_5x3op_1 ._content_5x3op_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_5x3op_1 ._content_5x3op_41{top:0;width:100%;max-width:100%}}._overlay_5x3op_1 ._content_5x3op_41{-webkit-animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both;animation:_appear_5x3op_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_5x3op_1 ._content_5x3op_41{box-shadow:none;top:0}}._overlay_5x3op_1 ._content_5x3op_41 :focus{outline:0}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle{cursor:move}._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_5x3op_1 ._content_5x3op_41._isDraggable_5x3op_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@-webkit-keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _fadeIn_5x3op_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@-webkit-keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}@keyframes _appear_5x3op_1{0%{opacity:0}to{opacity:1}}._footer_5x3op_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_5x3op_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_5x3op_105{position:static;box-shadow:none}}._portal_9t5bd_1{--drawer-width: 370px}._portal_9t5bd_1 ._overlay_9t5bd_4{position:fixed;inset:0}._portal_9t5bd_1 ._content_9t5bd_9{box-shadow:var(--swui-shadow-modal);background:white;position:absolute;transition:-webkit-transform var(--swui-animation-time-medium) ease-in-out;transition:transform var(--swui-animation-time-medium) ease-in-out;transition:transform var(--swui-animation-time-medium) ease-in-out,-webkit-transform var(--swui-animation-time-medium) ease-in-out}._portal_9t5bd_1 ._content_9t5bd_9._floating_9t5bd_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}._portal_9t5bd_1 ._content_9t5bd_9:focus-visible{outline:unset}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24,._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25{-webkit-transform:translateX(var(--translate-x-outside-screen, 0));transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24._afterOpen_9t5bd_31,._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25._afterOpen_9t5bd_31{-webkit-transform:translateX(0);transform:translate(0)}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24._beforeClose_9t5bd_35,._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25._beforeClose_9t5bd_35{-webkit-transform:translateX(var(--translate-x-outside-screen));transform:translate(var(--translate-x-outside-screen))}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40,._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41{-webkit-transform:translateY(var(--translate-y-outside-screen, 0));transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40._afterOpen_9t5bd_31,._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41._afterOpen_9t5bd_31{-webkit-transform:translateY(0);transform:translateY(0)}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40._beforeClose_9t5bd_35,._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41._beforeClose_9t5bd_35{-webkit-transform:translateY(var(--translate-y-outside-screen));transform:translateY(var(--translate-y-outside-screen))}._portal_9t5bd_1 ._content_9t5bd_9._slideFromLeft_9t5bd_24{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromRight_9t5bd_25{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromTop_9t5bd_40{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_9t5bd_1 ._content_9t5bd_9._slideFromBottom_9t5bd_41{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}")),document.head.appendChild(t)}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),N=require("react-modal"),M=require("react-draggable"),A=require("classnames"),o=require("@stenajs-webui/core"),_=require("@stenajs-webui/elements"),g=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},m=g(N),L=g(M),x=g(A),S="_overlay_5x3op_1",B="_fadeIn_5x3op_1",D="_modal_5x3op_31",R="_content_5x3op_41",E="_appear_5x3op_1",O="_isDraggable_5x3op_70",G="_footer_5x3op_101",I="_stickyFooter_5x3op_105",n={overlay:S,fadeIn:B,modal:D,content:R,appear:E,isDraggable:O,footer:G,stickyFooter:I},p="draggable-modal-handle",b="draggable-modal-cancel",h=({width:t,maxWidth:s,draggable:l=!1,children:r,...c})=>e.jsx(m.default,{overlayClassName:n.overlay,className:n.modal,...c,children:e.jsx(L.default,{handle:`.${p}`,cancel:`.${b}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!l,children:e.jsx("div",{style:{["--swui-modal-width"]:t,["--swui-modal-max-width"]:s},className:x.default(n.content,{[n.isDraggable]:l}),children:r})})}),$="_portal_9t5bd_1",k="_overlay_9t5bd_4",q="_content_9t5bd_9",H="_floating_9t5bd_15",T="_slideFromLeft_9t5bd_24",z="_slideFromRight_9t5bd_25",J="_afterOpen_9t5bd_31",K="_beforeClose_9t5bd_35",P="_slideFromTop_9t5bd_40",Q="_slideFromBottom_9t5bd_41",a={portal:$,overlay:k,content:q,floating:H,slideFromLeft:T,slideFromRight:z,afterOpen:J,beforeClose:K,slideFromTop:P,slideFromBottom:Q},U=({background:t,zIndex:s,children:l,slideFrom:r="left",portalTarget:c,floating:f,...d})=>{const{height:u,width:i}=d;return e.jsx(m.default,{closeTimeoutMS:250,portalClassName:a.portal,overlayClassName:{base:a.overlay,afterOpen:a.afterOpen,beforeClose:a.beforeClose},className:{base:x.default(a.content,V(r),f&&a.floating),afterOpen:a.afterOpen,beforeClose:a.beforeClose},style:{content:{width:i,height:u,background:t},overlay:{zIndex:s}},parentSelector:c?()=>c:void 0,...d,children:l})},V=t=>{switch(t){case"left":return a.slideFromLeft;case"right":return a.slideFromRight;case"top":return a.slideFromTop;case"bottom":return a.slideFromBottom;default:return o.exhaustSwitchCase(t,a.slideFromLeft)}},W={overlay:{justifyContent:"center"}},X=({children:t,...s})=>e.jsx(m.default,{overlayClassName:n.overlay,className:n.modal,style:W,...s,children:e.jsx("div",{className:n.content,style:{["--swui-modal-width"]:"fit-content"},children:t})}),Y="_modal_4fwgb_1",Z="_overlay_4fwgb_13",y={modal:Y,overlay:Z},ee=({headerIconLeft:t,headerText:s,...l})=>e.jsx(m.default,{...l,isOpen:!0,className:y.modal,overlayClassName:y.overlay,children:e.jsxs(o.Column,{spacing:2,alignItems:"center",children:[e.jsx(o.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(_.Spinner,{size:"small"})}),(t||s)&&e.jsxs(e.Fragment,{children:[e.jsx(o.Spacing,{}),e.jsxs(o.Row,{indent:2,children:[t&&e.jsxs(e.Fragment,{children:[e.jsx(_.Icon,{size:14,icon:t,color:"white"}),e.jsx(o.Indent,{})]}),s&&e.jsx(o.Heading,{variant:"h4",color:"white",children:s})]})]})]})}),j=({onRequestClose:t,header:s,headerText:l,closeButtonClassName:r})=>e.jsxs(o.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--swui-modal-header-border-color)",className:p,children:[e.jsxs(o.Row,{flex:1,indent:!0,alignItems:"center",children:[l&&e.jsx(o.Txt,{className:b,size:"large",children:l}),s]}),e.jsx(o.Box,{alignSelf:"flex-start",children:e.jsx(_.FlatButton,{className:r,onClick:t,"aria-label":"Close",leftIcon:_.stenaTimes})})]}),te=({header:t,headerText:s,children:l,spacing:r,indent:c,draggable:f=!1,onRequestClose:d,closeButtonClassName:u,footer:i,disableStickyFooter:v=!1,...C})=>{const F=typeof r=="number"?r:1,w=typeof c=="number"?c:1;return e.jsxs(h,{...C,onRequestClose:d,draggable:f,children:[e.jsx(j,{onRequestClose:d,header:t,headerText:s,closeButtonClassName:u}),e.jsx(o.Box,{spacing:F,indent:w,children:l}),i&&e.jsx(o.Box,{className:x.default(n.footer,{[n.stickyFooter]:!v}),children:i})]})},oe=({children:t})=>e.jsx(o.Column,{indent:2,spacing:2,children:t});exports.BaseModal=h;exports.CenterModal=X;exports.DRAGGABLE_CANCEL_CLASSNAME=b;exports.DRAGGABLE_HANDLE_CLASSNAME=p;exports.Drawer=U;exports.LoadingModal=ee;exports.Modal=te;exports.ModalFooter=oe;exports.ModalHeader=j;
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/modal/BaseModal.tsx","../src/components/drawer/Drawer.tsx","../src/components/center-modal/CenterModal.tsx","../src/components/loading-modal/LoadingModal.tsx","../src/components/modal/ModalHeader.tsx","../src/components/modal/Modal.tsx","../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface BaseModalProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseModal: React.FC<BaseModalProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\n\nexport type SlideFrom = SlideFromLeftRight | SlideFromTopBottom;\nexport type SlideFromLeftRight = \"left\" | \"right\";\nexport type SlideFromTopBottom = \"top\" | \"bottom\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(styles.content, getClassNameForSlide(slideFrom)),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"../modal/Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const CenterModal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { FlatButton, stenaTimes } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseModal\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface ModalHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--swui-modal-header-border-color)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <FlatButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n aria-label={\"Close\"}\n leftIcon={stenaTimes}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseModal, BaseModalProps } from \"./BaseModal\";\nimport { ModalHeader, ModalHeaderProps } from \"./ModalHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends BaseModalProps, ModalHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseModal {...props} onRequestClose={onRequestClose} draggable={draggable}>\n <ModalHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseModal>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalFooterProps {\n children?: ReactNode;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseModal","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","height","getClassNameForSlide","exhaustSwitchCase","style","CenterModal","LoadingModal","headerIconLeft","headerText","modalProps","jsxs","Column","Box","Spinner","Fragment","Spacing","Row","Icon","Indent","Heading","ModalHeader","onRequestClose","header","closeButtonClassName","Txt","FlatButton","stenaTimes","Modal","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","ModalFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/modal/BaseModal.tsx","../src/components/drawer/Drawer.tsx","../src/components/center-modal/CenterModal.tsx","../src/components/loading-modal/LoadingModal.tsx","../src/components/modal/ModalHeader.tsx","../src/components/modal/Modal.tsx","../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface BaseModalProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseModal: React.FC<BaseModalProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\n\nexport type SlideFrom = SlideFromLeftRight | SlideFromTopBottom;\nexport type SlideFromLeftRight = \"left\" | \"right\";\nexport type SlideFromTopBottom = \"top\" | \"bottom\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"../modal/Modal.module.css\";\n\nexport interface CenterModalProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const CenterModal: React.FC<CenterModalProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { FlatButton, stenaTimes } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseModal\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface ModalHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--swui-modal-header-border-color)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <FlatButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n aria-label={\"Close\"}\n leftIcon={stenaTimes}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseModal, BaseModalProps } from \"./BaseModal\";\nimport { ModalHeader, ModalHeaderProps } from \"./ModalHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Modal.module.css\";\n\nexport interface ModalProps extends BaseModalProps, ModalHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseModal {...props} onRequestClose={onRequestClose} draggable={draggable}>\n <ModalHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseModal>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface ModalFooterProps {\n children?: ReactNode;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n"],"names":["DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseModal","width","maxWidth","draggable","children","reactModalProps","jsx","ReactModal","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","style","CenterModal","LoadingModal","headerIconLeft","headerText","modalProps","jsxs","Column","Box","Spinner","Fragment","Spacing","Row","Icon","Indent","Heading","ModalHeader","onRequestClose","header","closeButtonClassName","Txt","FlatButton","stenaTimes","Modal","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","ModalFooter"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/modal",
|
|
3
|
-
"version": "19.0.0-next.
|
|
3
|
+
"version": "19.0.0-next.13",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "mattias800",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"deploy": "gh-pages -d example/build"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@stenajs-webui/core": "19.0.0-next.
|
|
30
|
-
"@stenajs-webui/elements": "19.0.0-next.
|
|
31
|
-
"@stenajs-webui/theme": "19.0.0-next.
|
|
29
|
+
"@stenajs-webui/core": "19.0.0-next.13",
|
|
30
|
+
"@stenajs-webui/elements": "19.0.0-next.13",
|
|
31
|
+
"@stenajs-webui/theme": "19.0.0-next.13",
|
|
32
32
|
"@types/react-modal": "^3.13.1",
|
|
33
33
|
"classnames": "^2.3.1",
|
|
34
34
|
"react-draggable": "^4.4.5",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"files": [
|
|
59
59
|
"dist"
|
|
60
60
|
],
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "55e05b5f7db76c2114582b386d1dd807c20ff7de"
|
|
62
62
|
}
|