@unstoppabledomains/ui-kit
Version:
A set of common Unstoppable Domains components
132 lines (131 loc) • 4.05 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _styles = require("../styles");
var useStyles = (0, _styles.makeStyles)()(function (theme, _ref) {
var size = _ref.size,
variant = _ref.variant;
var variantToColor = function variantToColor() {
switch (variant) {
case 'info':
return theme.palette.primary.main;
case 'error':
return theme.palette.error.main;
case 'success':
return theme.palette.success.dark;
default:
return theme.palette.neutralShades[500];
}
};
var variantToShadowColor = function variantToShadowColor() {
switch (variant) {
case 'info':
return theme.palette.primary.main;
case 'error':
return theme.palette.dangerShades[900];
case 'success':
return theme.palette.successShades[900];
default:
return theme.palette.greyShades[900];
}
};
var color = variantToColor();
var shadowColor = variantToShadowColor();
return {
box: {
position: 'relative',
width: size,
height: size,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
borderRadius: theme.shape.borderRadius,
backgroundSize: "".concat(size / 6.4, "px ").concat(size / 6.4, "px"),
backgroundColor: 'white',
backgroundImage: "linear-gradient(\n to right,\n rgba(0, 0, 0, 0.06) 1px,\n transparent 1px\n ),\n linear-gradient(to bottom, rgba(0, 0, 0, 0.06) 1px, transparent 1px)",
backgroundPosition: "-".concat(0.0625 * size, "px"),
boxShadow: '0px 2px 3.3333334922790527px -1.6666667461395264px rgba(0, 0, 0, 0.06)',
overflow: 'hidden',
'&:before': {
content: "''",
width: '100%',
height: '100%',
position: 'absolute',
boxShadow: "inset 0 0 0 1px ".concat(shadowColor, "33"),
borderRadius: theme.shape.borderRadius
}
},
ellipse1: {
position: 'absolute',
width: size / 2,
height: size / 2,
right: 0.22,
bottom: 0,
background: color,
opacity: 0.12,
filter: "blur(".concat(size / 4, "px)"),
zIndex: 3
},
ellipse2: {
position: 'absolute',
width: size / 2,
height: size / 2,
left: 0,
top: 0,
background: color,
opacity: 0.32,
filter: "blur(".concat(size / 4, "px)"),
zIndex: 2
},
ellipse3: {
position: 'absolute',
width: size,
height: size,
left: "calc(50% - ".concat(size, "px / 2)"),
top: "calc(50% - ".concat(size, "px / 2)"),
background: '#ffffff',
filter: "blur(".concat(size * 0.08333, "px)"),
zIndex: 1
},
icon: {
display: 'flex',
zIndex: 4,
'& > svg': {
fontSize: size * 0.75,
'& > path': {
color: color
}
}
}
};
});
var IconPlate = function IconPlate(_ref2) {
var children = _ref2.children,
_ref2$variant = _ref2.variant,
variant = _ref2$variant === void 0 ? 'default' : _ref2$variant,
_ref2$size = _ref2.size,
size = _ref2$size === void 0 ? 32 : _ref2$size,
className = _ref2.className;
var _useStyles = useStyles({
size: size,
variant: variant
}),
classes = _useStyles.classes,
cx = _useStyles.cx;
return /*#__PURE__*/_react["default"].createElement("div", {
className: cx(classes.box, className)
}, /*#__PURE__*/_react["default"].createElement("div", {
className: classes.ellipse1
}), /*#__PURE__*/_react["default"].createElement("div", {
className: classes.ellipse2
}), /*#__PURE__*/_react["default"].createElement("div", {
className: classes.ellipse3
}), /*#__PURE__*/_react["default"].createElement("div", {
className: classes.icon
}, children));
};
var _default = exports["default"] = IconPlate;