UNPKG

@vlinderclimate/net-zero-ui

Version:

<div align="center"> <img src="https://storage.yandexcloud.net/static.vlinderstorage.com/Telegram_VlinderTech.png" width=200 /> </div> <h1 align="center">Net Zero UI kit</h1>

164 lines (157 loc) 6.66 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../tslib.es6-9240d9d1.js'); var jsxRuntime = require('react/jsx-runtime'); var useMediaQuery = require('@mui/material/useMediaQuery'); var styles = require('@mui/material/styles'); var MuiSwipeableDrawer = require('@mui/material/SwipeableDrawer'); var MuiBox = require('@mui/material/Box'); var components_Icon = require('./Icon.js'); var components_Button = require('./Button.js'); require('../icons/ArrowLeft.js'); require('../icons/ArrowRight.js'); require('../icons/CheckCircle.js'); require('../icons/CloseCircle.js'); require('../icons/InfoCircle.js'); require('../icons/ErrorCircle.js'); require('../icons/Attention.js'); require('../icons/HelpCircle.js'); require('../icons/Lock.js'); require('../icons/Delete.js'); require('../icons/TriangleRight.js'); require('../icons/TriangleLeft.js'); require('../icons/TriangleUp.js'); require('../icons/TriangleDown.js'); require('../icons/Download.js'); require('../icons/Key.js'); require('../icons/Edit.js'); require('../icons/Expand.js'); require('../icons/Collapse.js'); require('../icons/Success.js'); require('../icons/Fail.js'); require('../icons/Loading.js'); require('../icons/Check.js'); require('../icons/ChevronLeft.js'); require('../icons/ChevronRight.js'); require('../icons/Plus.js'); require('../icons/Minus.js'); require('../icons/Link.js'); require('../icons/Copy.js'); require('../icons/Medium.js'); require('../icons/Twitter.js'); require('../icons/Telegram.js'); require('../icons/Sort.js'); require('../icons/Close.js'); require('../icons/Search.js'); require('../icons/Instagram.js'); require('../icons/LinkedIn.js'); require('../icons/Reddit.js'); require('../icons/YouTube.js'); require('../icons/Update.js'); require('../icons/Facebook.js'); require('../icons/Cart.js'); require('../icons/Menu.js'); require('../icons/ShowPassword.js'); require('../icons/HidePassword.js'); require('../icons/Collection.js'); require('../icons/Sprout.js'); require('../icons/Verify.js'); require('../icons/User.js'); require('../icons/Convert.js'); require('../icons/Deposit.js'); require('../icons/Send.js'); require('../icons/Receive.js'); require('../icons/To.js'); require('../icons/Withdraw.js'); require('../icons/Clock.js'); require('../icons/Play.js'); require('../icons/Help.js'); require('../icons/CloseSmall.js'); require('../icons/MinusSmall.js'); require('../icons/PlusSmall.js'); require('../icons/Dropdown.js'); require('@mui/material/Button'); require('../theme/colors.js'); require('../theme/typography.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var useMediaQuery__default = /*#__PURE__*/_interopDefaultLegacy(useMediaQuery); var MuiSwipeableDrawer__default = /*#__PURE__*/_interopDefaultLegacy(MuiSwipeableDrawer); var MuiBox__default = /*#__PURE__*/_interopDefaultLegacy(MuiBox); var sizeMap = { xs: 440, sm: 580, md: 640, safeArea: "100%", fullScreen: "100%" }; var SizeLevel; (function (SizeLevel) { SizeLevel[SizeLevel["Regular"] = 0] = "Regular"; SizeLevel[SizeLevel["Large"] = 1] = "Large"; })(SizeLevel || (SizeLevel = {})); var sizeLevelMap = { xs: SizeLevel.Regular, sm: SizeLevel.Regular, md: SizeLevel.Large, safeArea: SizeLevel.Large, fullScreen: SizeLevel.Large }; var defaultSize = "md"; var StyledSwipeableDrawer = styles.styled(MuiSwipeableDrawer__default["default"])(function (_a) { var _b; var theme = _a.theme; _a.scrollable; var size = _a.size; return ({ "& > .MuiPaper-root": (_b = { backgroundColor: theme.palette.gray.white, width: sizeMap[size], maxWidth: "100%", padding: theme.spacing(sizeLevelMap[size] === SizeLevel.Large ? 3.75 : 2, sizeLevelMap[size] === SizeLevel.Large ? 5 : 3), boxShadow: "none", overflow: "auto" }, _b[theme.breakpoints.down("md")] = { padding: theme.spacing(2.5, 3.75), width: "100vw" }, _b[theme.breakpoints.down("sm")] = { fontSize: theme.typography.fontSizeXs5, padding: theme.spacing(2, 2.5) }, _b) }); }); var CloseButton = styles.styled(MuiBox__default["default"])(function (_a) { var _b; var theme = _a.theme; _a.size; return (_b = { position: "absolute", top: theme.spacing(2.5), right: theme.spacing(2.5) }, _b[theme.breakpoints.down("sm")] = { top: theme.spacing(1), right: theme.spacing(1) }, _b); }); var Content = styles.styled(MuiBox__default["default"])(function (_a) { var theme = _a.theme; _a.scrollable; return ({ maxHeight: "calc(100vh - " + theme.spacing(10) + ")" }); }); var Drawer = function (_a) { var children = _a.children, _b = _a.transparentBackdrop, transparentBackdrop = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? defaultSize : _c, _d = _a.scrollable, scrollable = _d === void 0 ? false : _d, onClose = _a.onClose, closeButton = _a.closeButton, props = tslib_es6.__rest(_a, ["children", "transparentBackdrop", "size", "scrollable", "onClose", "closeButton"]); var handleClose = function (event) { if (onClose) onClose(event); }; var backdrop = { sx: { background: transparentBackdrop ? "transparent" : "rgba(0, 0, 0, 0.3)" } }; var theme = styles.useTheme(); var isMobile = useMediaQuery__default["default"](theme.breakpoints.down("sm")); return (jsxRuntime.jsxs(StyledSwipeableDrawer, tslib_es6.__assign({ onClose: handleClose, size: size, anchor: "right", BackdropProps: tslib_es6.__assign({ timeout: 500 }, backdrop), scrollable: scrollable }, props, { children: [closeButton && (jsxRuntime.jsx(CloseButton, tslib_es6.__assign({ size: size }, { children: jsxRuntime.jsx(components_Button["default"], { startIcon: jsxRuntime.jsx(components_Icon["default"], { iconKey: typeof closeButton !== "string" ? "close" : closeButton, size: sizeLevelMap[size] === SizeLevel.Large && !isMobile ? "md" : "md", color: "secondary" }, void 0), variant: "contained", color: "inverse", size: "md", onClick: function (event) { if (onClose) onClose(event); } }, void 0) }), void 0)), jsxRuntime.jsx(Content, { children: children }, void 0)] }), void 0)); }; exports["default"] = Drawer;