@music-loopy/loops
Version:
A React component library for Music Loopy Applications and websites
45 lines • 2.32 kB
JavaScript
var _excluded = ["variant", "size", "children"];
var _templateObject;
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; }
import React from 'react';
import PropTypes from 'prop-types';
import styled from 'styled-components';
var StyledButton = styled.button(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n font-family: 'Inter', sans-serif;\n font-weight: 500;\n border: none;\n box-sahdow: 0 2px 4px rgba(0, 0, 0, 0.1);\n border-radius: 6px;\n cursor: pointer;\n width: ", ";\n padding: 1.5em;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n color: ", ";\n"])), function (props) {
return props.theme.button.size[props.size || 'small'].fontSize;
}, function (props) {
return props.fullWidth ? '100%' : props.theme.button.size[props.size || 'small'].width;
}, function (props) {
return props.theme.colors[props.variant || 'primary'].color;
}, function (props) {
return props.theme.colors.dark.color;
}, function (props) {
return props.theme.colors.light.color;
}, function (props) {
return props.theme.colors[props.variant || 'primary'].text;
});
export var Button = function Button(_ref) {
var variant = _ref.variant,
size = _ref.size,
children = _ref.children,
props = _objectWithoutPropertiesLoose(_ref, _excluded);
return /*#__PURE__*/React.createElement(StyledButton, _extends({
type: "button",
variant: variant,
size: size
}, props), children);
};
Button.propTypes = process.env.NODE_ENV !== "production" ? {
variant: PropTypes.string,
label: PropTypes.string.isRequired,
onClick: PropTypes.func,
children: PropTypes.node
} : {};
Button.defaultProps = {
variant: 'primary',
size: 'medium',
onClick: undefined,
children: null
};
export default Button;