@geezee/react-ui
Version:
Modern and minimalist React UI library.
56 lines (50 loc) • 3.68 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import _JSXStyle from "styled-jsx/style";
import React from 'react';
var defaultSkeletonProps = {
animation: 'wave',
width: '',
height: '',
variant: 'text',
style: {},
className: ''
};
export var Skeleton = function Skeleton(_ref) {
var outerClassName = _ref.className,
children = _ref.children,
animation = _ref.animation,
variant = _ref.variant,
width = _ref.width,
height = _ref.height,
style = _ref.style,
others = _objectWithoutProperties(_ref, ["className", "children", "animation", "variant", "width", "height", "style"]);
var hasChildren = Boolean(children);
var className = "skeleton ".concat(outerClassName, " ").concat(variant || 'text');
if (animation !== 'none') {
className += ' ' + animation;
}
if (hasChildren) {
className += ' withChildren';
}
if (hasChildren && !width) {
className += ' fitContent';
}
if (hasChildren && !height) {
className += ' heightAuto';
}
return /*#__PURE__*/React.createElement("div", _extends({
style: _extends({
width: width,
height: height
}, style)
}, others, {
className: "jsx-1945265349" + " " + (others && others.className != null && others.className || className || "")
}), /*#__PURE__*/React.createElement("div", {
className: "jsx-1945265349"
}, children), /*#__PURE__*/React.createElement(_JSXStyle, {
id: "1945265349"
}, "@-webkit-keyframes pulse-jsx-1945265349{0%{opacity:1;}50%{opacity:0.5;}100%{opacity:1;}}@keyframes pulse-jsx-1945265349{0%{opacity:1;}50%{opacity:0.5;}100%{opacity:1;}}@-webkit-keyframes wave-jsx-1945265349{0%{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);}50%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}100%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}}@keyframes wave-jsx-1945265349{0%{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);}50%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}100%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}}.skeleton.jsx-1945265349{display:block;background-color:#EFF2FA;height:1.5714rem;-webkit-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;}.skeleton.jsx-1945265349::after{border-left:1px solid #EFF2FA;}.skeleton.text.jsx-1945265349{margin-top:0;margin-bottom:0;border-radius:0.2857rem;}.skeleton.circle.jsx-1945265349{border-radius:50%;}.skeleton.pulse.jsx-1945265349{-webkit-animation:pulse-jsx-1945265349 1.5s ease-in-out 0.5s infinite;animation:pulse-jsx-1945265349 1.5s ease-in-out 0.5s infinite;}.skeleton.wave.jsx-1945265349{position:relative;overflow:hidden;}.skeleton.wave.jsx-1945265349::after{-webkit-animation:wave-jsx-1945265349 1.6s linear 0.5s infinite;animation:wave-jsx-1945265349 1.6s linear 0.5s infinite;background:linear-gradient(90deg,#EFF2FA,#E1E5EE,#EFF2FA);content:'';position:absolute;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);bottom:0;left:0;right:0;top:0;}.skeleton.fitContent.jsx-1945265349{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;}.skeleton.heightAuto.jsx-1945265349{height:auto;}.skeleton.withChildren.jsx-1945265349>*{visibility:hidden;}"));
};
Skeleton.defaultProps = defaultSkeletonProps;
export default Skeleton;