Syllabus/themes/piratecare/node_modules/tailwindcss/lib/plugins/container.js

55 lines
1.6 KiB
JavaScript
Raw Normal View History

2020-03-05 04:10:52 +00:00
"use strict";
var _lodash = _interopRequireDefault(require("lodash"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint-disable no-shadow */
function extractMinWidths(breakpoints) {
return _lodash.default.flatMap(breakpoints, breakpoints => {
if (_lodash.default.isString(breakpoints)) {
breakpoints = {
min: breakpoints
};
}
if (!Array.isArray(breakpoints)) {
breakpoints = [breakpoints];
}
return (0, _lodash.default)(breakpoints).filter(breakpoint => {
return _lodash.default.has(breakpoint, 'min') || _lodash.default.has(breakpoint, 'min-width');
}).map(breakpoint => {
return _lodash.default.get(breakpoint, 'min-width', breakpoint.min);
}).value();
});
}
module.exports = function () {
return function ({
addComponents,
theme
}) {
const minWidths = extractMinWidths(theme('container.screens', theme('screens')));
const atRules = (0, _lodash.default)(minWidths).sortBy(minWidth => parseInt(minWidth)).sortedUniq().map(minWidth => {
return {
[`@media (min-width: ${minWidth})`]: {
'.container': {
'max-width': minWidth
}
}
};
}).value();
addComponents([{
'.container': Object.assign({
width: '100%'
}, theme('container.center', false) ? {
marginRight: 'auto',
marginLeft: 'auto'
} : {}, _lodash.default.has(theme('container', {}), 'padding') ? {
paddingRight: theme('container.padding'),
paddingLeft: theme('container.padding')
} : {})
}, ...atRules]);
};
};