UNPKG

@music-loopy/loops

Version:

A React component library for Music Loopy Applications and websites

55 lines (54 loc) 3.07 kB
"use strict"; exports.__esModule = true; exports["default"] = exports.Card = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _excluded = ["size", "header", "children", "fullWidth"]; var _templateObject, _templateObject2, _templateObject3; function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; } function _taggedTemplateLiteralLoose(e, t) { return t || (t = e.slice(0)), e.raw = t, e; } var StyledCard = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n color: ", ";\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n padding: 16px;\n width: ", ";\n max-width: ", ";\n"])), function (props) { return props.theme.colors.background; }, function (props) { return props.theme.colors.text; }, function (props) { return props.fullWidth ? '100%' : 'auto'; }, function (props) { return props.theme.card.size[props.size || 'medium'].maxWidth; }); var CardHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n font-weight: bold;\n margin-bottom: 8px;\n"])), function (props) { return props.theme.card.size[props.size || 'medium'].headerFontSize; }); var CardBody = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n"])), function (props) { return props.theme.card.size[props.size || 'medium'].bodyFontSize; }); var Card = exports.Card = function Card(_ref) { var size = _ref.size, header = _ref.header, children = _ref.children, fullWidth = _ref.fullWidth, props = _objectWithoutPropertiesLoose(_ref, _excluded); return /*#__PURE__*/_react["default"].createElement(StyledCard, _extends({ size: size, fullWidth: fullWidth }, props), header && /*#__PURE__*/_react["default"].createElement(CardHeader, { size: size }, header), /*#__PURE__*/_react["default"].createElement(CardBody, { size: size }, children)); }; Card.propTypes = process.env.NODE_ENV !== "production" ? { size: _propTypes["default"].oneOf(['small', 'medium', 'large']), header: _propTypes["default"].string, children: _propTypes["default"].node.isRequired, fullWidth: _propTypes["default"].bool } : {}; Card.defaultProps = { size: 'medium', header: '', fullWidth: false }; var _default = exports["default"] = Card;