grid-styletr
Version:
Responsive React grid system built with styletron-react
57 lines (39 loc) • 1.72 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styledSystem = require('styled-system');
var _propTypes = require('prop-types');
var _propTypes2 = require('./propTypes');
var _propTypes3 = _interopRequireDefault(_propTypes2);
var _styled = require('./styled');
var _styled2 = _interopRequireDefault(_styled);
var _withBox = require('./withBox');
var _withBox2 = _interopRequireDefault(_withBox);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var wrap = (0, _styledSystem.responsiveStyle)('flex-wrap', 'wrap', 'wrap');
var direction = (0, _styledSystem.responsiveStyle)('flex-direction', 'direction');
var align = (0, _styledSystem.responsiveStyle)('align-items', 'align');
var justify = (0, _styledSystem.responsiveStyle)('justify-content', 'justify');
var column = function column(props) {
return props.column ? { flexDirection: 'column' } : null;
};
var responsivePropType = (0, _propTypes.oneOfType)([_propTypes.number, _propTypes.string, _propTypes.array, _propTypes.bool]);
var propTypes = Object.assign({}, _propTypes3.default, {
wrap: responsivePropType,
direction: responsivePropType,
align: responsivePropType,
justify: responsivePropType,
column: _propTypes.bool
});
var cache = {};
exports.default = function (base) {
if (cache[base]) return cache[base];
var Flex = (0, _styled2.default)((0, _withBox2.default)(base), { display: 'flex' }, wrap, column, direction, align, justify);
Flex.displayName = 'Flex';
Flex.propTypes = propTypes;
if (typeof base === 'string') cache[base] = Flex;
return Flex;
};