UNPKG

10.7 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7require('./slicedToArray-0711941d.js');
8require('./unsupportedIterableToArray-68db1d3b.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13var defineProperty$1 = require('./defineProperty-0921a47c.js');
14require('./toConsumableArray-d8a4a2c3.js');
15var _styled = require('styled-components');
16var _styled__default = _interopDefault(_styled);
17require('./getPrototypeOf-2a661a20.js');
18require('./color.js');
19require('./components.js');
20require('./contains-component.js');
21var css = require('./css.js');
22require('./dayjs.min-e07657bf.js');
23require('./date.js');
24var miscellaneous = require('./miscellaneous.js');
25require('./environment.js');
26require('./font.js');
27require('./math-f4029164.js');
28require('./characters.js');
29require('./format.js');
30require('./keycodes.js');
31require('./url.js');
32require('./web3.js');
33var constants = require('./constants.js');
34require('./breakpoints.js');
35var springs = require('./springs.js');
36require('./text-styles.js');
37require('./theme-dark.js');
38require('./theme-light.js');
39var Theme = require('./Theme.js');
40var _extends$1 = require('./extends-40571110.js');
41var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
42require('./index-ecc57c9f.js');
43require('./isObject-ec755c87.js');
44var Viewport = require('./Viewport-15101437.js');
45require('./Layout.js');
46require('./FocusVisible.js');
47require('./ButtonBase.js');
48require('./IconPropTypes-56de5759.js');
49require('./IconAddUser.js');
50require('./IconAlert.js');
51require('./IconAlignCenter.js');
52require('./IconAlignJustify.js');
53require('./IconAlignLeft.js');
54require('./IconAlignRight.js');
55require('./IconAragon.js');
56require('./IconArrowDown.js');
57require('./IconArrowLeft.js');
58require('./IconArrowRight.js');
59require('./IconArrowUp.js');
60require('./IconAtSign.js');
61require('./IconBlock.js');
62require('./IconBookmark.js');
63require('./IconCalendar.js');
64require('./IconCanvas.js');
65require('./IconCaution.js');
66require('./IconCenter.js');
67require('./IconChart.js');
68require('./IconChat.js');
69require('./IconCheck.js');
70require('./IconChip.js');
71require('./IconCircleCheck.js');
72require('./IconCircleMinus.js');
73require('./IconCirclePlus.js');
74require('./IconClock.js');
75require('./IconCloudDownload.js');
76require('./IconCloudUpload.js');
77require('./IconCoin.js');
78require('./IconConfiguration.js');
79require('./IconConnect.js');
80require('./IconConnection.js');
81require('./IconConsole.js');
82require('./IconCopy.js');
83var IconCross = require('./IconCross.js');
84require('./IconDashedSquare.js');
85require('./IconDown.js');
86require('./IconDownload.js');
87require('./IconEdit.js');
88require('./IconEllipsis.js');
89require('./IconEnter.js');
90require('./IconEthereum.js');
91require('./IconExternal.js');
92require('./IconFile.js');
93require('./IconFilter.js');
94require('./IconFlag.js');
95require('./IconFolder.js');
96require('./IconGraph2.js');
97require('./IconGraph.js');
98require('./IconGrid.js');
99require('./IconGroup.js');
100require('./IconHash.js');
101require('./IconHeart.js');
102require('./IconHide.js');
103require('./IconHome.js');
104require('./IconImage.js');
105require('./IconInfo.js');
106require('./IconLabel.js');
107require('./IconLayers.js');
108require('./IconLeft.js');
109require('./IconLink.js');
110require('./IconLocation.js');
111require('./IconLock.js');
112require('./IconMail.js');
113require('./IconMaximize.js');
114require('./IconMenu.js');
115require('./IconMinimize.js');
116require('./IconMinus.js');
117require('./IconMove.js');
118require('./IconNoPicture.js');
119require('./IconPicture.js');
120require('./IconPlus.js');
121require('./IconPower.js');
122require('./IconPrint.js');
123require('./IconProhibited.js');
124require('./IconQuestion.js');
125require('./IconRefresh.js');
126require('./IconRemoveUser.js');
127require('./IconRight.js');
128require('./IconRotateLeft.js');
129require('./IconRotateRight.js');
130require('./IconSearch.js');
131require('./IconSettings.js');
132require('./IconShare.js');
133require('./IconSquareMinus.js');
134require('./IconSquarePlus.js');
135require('./IconSquare.js');
136require('./IconStarFilled.js');
137require('./IconStar.js');
138require('./IconSwap.js');
139require('./IconTarget.js');
140require('./IconToken.js');
141require('./IconTrash.js');
142require('./IconUnlock.js');
143require('./IconUp.js');
144require('./IconUpload.js');
145require('./IconUser.js');
146require('./IconView.js');
147require('./IconVote.js');
148require('./IconWallet.js');
149require('./IconWarning.js');
150require('./IconWorld.js');
151require('./IconWrite.js');
152require('./IconZoomIn.js');
153require('./IconZoomOut.js');
154require('./objectWithoutPropertiesLoose-1af20ad0.js');
155require('react-dom');
156var web = require('./web-d0294535.js');
157require('./Button.js');
158var ButtonIcon = require('./ButtonIcon.js');
159require('./index-0db71dc1.js');
160var RootPortal = require('./RootPortal.js');
161var EscapeOutside = require('./EscapeOutside.js');
162
163function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
164
165function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty$1._defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
166var SPACE_AROUND = 4 * constants.GU;
167
168var _StyledAnimatedDiv = _styled__default(web.extendedAnimated.div).withConfig({
169 displayName: "Modal___StyledAnimatedDiv",
170 componentId: "sc-1ofisn3-0"
171})(["position:fixed;top:0;left:0;right:0;bottom:0;background:", ";"], function (p) {
172 return p._css;
173});
174
175var _StyledAnimatedDiv2 = _styled__default(web.extendedAnimated.div).withConfig({
176 displayName: "Modal___StyledAnimatedDiv2",
177 componentId: "sc-1ofisn3-1"
178})(["position:absolute;z-index:1;top:0;left:0;right:0;bottom:0;display:grid;align-items:center;justify-content:center;overflow:auto;"]);
179
180var _StyledDiv = _styled__default("div").withConfig({
181 displayName: "Modal___StyledDiv",
182 componentId: "sc-1ofisn3-2"
183})(["padding:", "px 0;"], SPACE_AROUND);
184
185var _StyledEscapeOutside = _styled__default(EscapeOutside.default).withConfig({
186 displayName: "Modal___StyledEscapeOutside",
187 componentId: "sc-1ofisn3-3"
188})(["position:relative;overflow:hidden;min-width:", "px;background:", ";box-shadow:0 10px 28px rgba(0,0,0,0.15);"], function (p) {
189 return p._css2;
190}, function (p) {
191 return p._css3;
192});
193
194var _StyledButtonIcon = _styled__default(ButtonIcon.default).withConfig({
195 displayName: "Modal___StyledButtonIcon",
196 componentId: "sc-1ofisn3-4"
197})(["position:absolute;z-index:2;top:", "px;right:", "px;"], function (p) {
198 return p._css4;
199}, function (p) {
200 return p._css5;
201});
202
203var _StyledDiv2 = _styled__default("div").withConfig({
204 displayName: "Modal___StyledDiv2",
205 componentId: "sc-1ofisn3-5"
206})(["position:relative;z-index:1;"]);
207
208function Modal(_ref) {
209 var children = _ref.children,
210 onClose = _ref.onClose,
211 padding = _ref.padding,
212 visible = _ref.visible,
213 width = _ref.width,
214 closeButton = _ref.closeButton,
215 props = objectWithoutProperties._objectWithoutProperties(_ref, ["children", "onClose", "padding", "visible", "width", "closeButton"]);
216
217 var theme = Theme.useTheme();
218 var viewport = Viewport.useViewport();
219 return /*#__PURE__*/React__default.createElement(RootPortal.default, null, /*#__PURE__*/React__default.createElement(web.Transition, {
220 native: true,
221 items: visible,
222 from: {
223 opacity: 0,
224 scale: 0.98
225 },
226 enter: {
227 opacity: 1,
228 scale: 1
229 },
230 leave: {
231 opacity: 0,
232 scale: 0.98
233 },
234 config: _objectSpread({}, springs.springs.smooth, {
235 precision: 0.001
236 })
237 }, function (show) {
238 return show &&
239 /* eslint-disable react/prop-types */
240 function (_ref2) {
241 var opacity = _ref2.opacity,
242 scale = _ref2.scale;
243 return /*#__PURE__*/React__default.createElement(_StyledAnimatedDiv, _extends$1._extends({
244 style: {
245 opacity: opacity
246 }
247 }, props, {
248 _css: theme.overlay.alpha(0.9)
249 }), /*#__PURE__*/React__default.createElement(_StyledAnimatedDiv2, {
250 style: {
251 pointerEvents: visible ? 'auto' : 'none',
252 transform: scale.interpolate(function (v) {
253 return "scale3d(".concat(v, ", ").concat(v, ", 1)");
254 })
255 }
256 }, /*#__PURE__*/React__default.createElement(_StyledDiv, null, /*#__PURE__*/React__default.createElement(_StyledEscapeOutside, {
257 role: "alertdialog",
258 background: theme.surface,
259 onEscapeOutside: onClose,
260 style: {
261 width: css.cssPx(typeof width === 'function' ? width(viewport) : width),
262 borderRadius: "".concat(constants.RADIUS, "px")
263 },
264 _css2: 360 - SPACE_AROUND * 2,
265 _css3: theme.surface
266 }, closeButton && /*#__PURE__*/React__default.createElement(_StyledButtonIcon, {
267 label: "Close",
268 onClick: onClose,
269 _css4: 2 * constants.GU,
270 _css5: 2 * constants.GU
271 }, /*#__PURE__*/React__default.createElement(IconCross.default, null)), /*#__PURE__*/React__default.createElement(_StyledDiv2, {
272 style: {
273 padding: css.cssPx(typeof padding === 'function' ? padding(viewport) : padding)
274 }
275 }, children)))));
276 };
277 }
278 /* eslint-enable react/prop-types */
279 ));
280}
281
282Modal.propTypes = {
283 children: index.PropTypes.node.isRequired,
284 closeButton: index.PropTypes.bool,
285 onClose: index.PropTypes.func,
286 padding: index.PropTypes.oneOfType([index.PropTypes.func, index.PropTypes.number, index.PropTypes.string]),
287 visible: index.PropTypes.bool.isRequired,
288 width: index.PropTypes.oneOfType([index.PropTypes.func, index.PropTypes.number, index.PropTypes.string])
289};
290Modal.defaultProps = {
291 closeButton: true,
292 onClose: miscellaneous.noop,
293 padding: 3 * constants.GU,
294 width: function width(viewport) {
295 return Math.min(viewport.width - SPACE_AROUND * 2, 600);
296 }
297};
298
299exports.default = Modal;
300//# sourceMappingURL=Modal.js.map