@roo-ui/components
Version:
52 lines (36 loc) • 2.86 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _styledComponents = require('styled-components');
var _styledComponents2 = _interopRequireDefault(_styledComponents);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _polished = require('polished');
var _cleanTag = require('clean-tag');
var _cleanTag2 = _interopRequireDefault(_cleanTag);
var _styledSystem = require('styled-system');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getBackground = function getBackground(props) {
return (0, _styledSystem.color)(props).backgroundColor || (0, _styledSystem.buttonStyle)(props).backgroundColor;
};
var Button = (0, _styledComponents2.default)(_cleanTag2.default.button).withConfig({
displayName: 'Button'
})(['display:inline-block;margin:0;padding:', ' ', ';font-size:', ';font-weight:', ';letter-spacing:', ';line-height:', ';text-align:center;text-decoration:none;text-transform:uppercase;border:', ';border-color:transparent;border-radius:', ';outline:0;transition:background-color ', ';cursor:pointer;appearance:none;', ' ', ' ', ' ', ' &:hover:not(:disabled){background-color:', ';}&:focus{box-shadow:', ';}&:disabled{opacity:0.7;cursor:not-allowed;}', ' ', ''], (0, _styledSystem.themeGet)('space.3'), (0, _styledSystem.themeGet)('space.6'), (0, _styledSystem.themeGet)('fontSizes.base'), (0, _styledSystem.themeGet)('fontWeights.bold'), (0, _styledSystem.themeGet)('letterSpacings.wide'), (0, _styledSystem.themeGet)('lineHeights.normal'), (0, _styledSystem.themeGet)('borders.2'), (0, _styledSystem.themeGet)('radii.default'), (0, _styledSystem.themeGet)('transitions.default'), _styledSystem.buttonStyle, _styledSystem.space, _styledSystem.color, _styledSystem.boxShadow, function (props) {
return (0, _polished.darken)(0.1, getBackground(props));
}, (0, _styledSystem.themeGet)('shadows.focus'), function (props) {
return props.rounded && (0, _styledComponents.css)(['border-radius:', ';'], (0, _styledSystem.themeGet)('radii.rounded'));
}, function (props) {
return props.block && (0, _styledComponents.css)(['width:100%;']);
});
Button.propTypes = _extends({}, _styledSystem.buttonStyle.propTypes, _styledSystem.space.propTypes, _styledSystem.color.propTypes, _styledSystem.boxShadow.propTypes, {
primary: _propTypes2.default.bool,
rounded: _propTypes2.default.bool,
block: _propTypes2.default.bool
});
Button.defaultProps = {
buttonStyle: 'default',
blacklist: Object.keys(Button.propTypes)
};
exports.default = Button;
;