UNPKG

3.22 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _templateObject = _taggedTemplateLiteral(['\n width: 100%;\n height: 100%;\n display: inline-flex;\n justify-content: ', ';\n align-items: center;\n\n > span {\n font-size: 1.25em;\n line-height: 1.25;\n }\n > span ~ svg { margin-left: 1em }\n > svg ~ span { margin-left: 1em }\n'], ['\n width: 100%;\n height: 100%;\n display: inline-flex;\n justify-content: ', ';\n align-items: center;\n\n > span {\n font-size: 1.25em;\n line-height: 1.25;\n }\n > span ~ svg { margin-left: 1em }\n > svg ~ span { margin-left: 1em }\n']),
8 _templateObject2 = _taggedTemplateLiteral(['\n font-size: 1em;\n display: inline-block;\n padding: ', ';\n height: ', ';\n width: ', ';\n border: 0;\n border-radius: 3px;\n box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.16);\n cursor: pointer;\n transition: background 0.2s ease-in, color 0.2s ease-in;\n font-family: ', ';\n'], ['\n font-size: 1em;\n display: inline-block;\n padding: ', ';\n height: ', ';\n width: ', ';\n border: 0;\n border-radius: 3px;\n box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.16);\n cursor: pointer;\n transition: background 0.2s ease-in, color 0.2s ease-in;\n font-family: ', ';\n']);
9
10var _styledComponents = require('styled-components');
11
12var _styledComponents2 = _interopRequireDefault(_styledComponents);
13
14var _react = require('react');
15
16var _react2 = _interopRequireDefault(_react);
17
18function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
21
22function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23
24var Inner = _styledComponents2.default.span(_templateObject, function (props) {
25 return props.justify;
26});
27
28/**
29 * Button component.
30 *
31 * @param {Object} props
32 * @return {ReactElement}
33 */
34var BaseButton = function BaseButton(_ref) {
35 var children = _ref.children,
36 justify = _ref.justify,
37 other = _objectWithoutProperties(_ref, ['children', 'justify']);
38
39 return _react2.default.createElement(
40 'button',
41 other,
42 _react2.default.createElement(
43 Inner,
44 { justify: justify },
45 _react2.default.Children.map(children, function (Child) {
46 return _react2.default.isValidElement(Child) ? (0, _react.cloneElement)(Child, { height: '1em' }) : _react2.default.createElement(
47 'span',
48 null,
49 Child
50 );
51 })
52 )
53 );
54};
55
56BaseButton.defaultProps = {
57 justify: 'space-between'
58};
59
60BaseButton.propTypes = {
61 justify: _react.PropTypes.string,
62 children: _react.PropTypes.node.isRequired
63};
64
65exports.default = (0, _styledComponents2.default)(BaseButton)(_templateObject2, function (props) {
66 return props.width ? '0' : '0 1.5em';
67}, function (props) {
68 return props.height || '3.75em';
69}, function (props) {
70 return props.width || 'auto';
71}, function (props) {
72 return props.theme.font.header;
73});
\No newline at end of file