This repository has been archived on 2020-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
Syllabus/themes/piratecare/node_modules/tailwindcss/lib/lib/substituteTailwindAtRules.js

73 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _lodash = _interopRequireDefault(require("lodash"));
var _postcss = _interopRequireDefault(require("postcss"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function updateSource(nodes, source) {
return _lodash.default.tap(Array.isArray(nodes) ? _postcss.default.root({
nodes
}) : nodes, tree => {
tree.walk(node => node.source = source);
});
}
function _default(_config, {
base: pluginBase,
components: pluginComponents,
utilities: pluginUtilities
}) {
return function (css) {
css.walkAtRules('import', atRule => {
if (atRule.params === '"tailwindcss/base"' || atRule.params === "'tailwindcss/base'") {
atRule.name = 'tailwind';
atRule.params = 'base';
}
if (atRule.params === '"tailwindcss/components"' || atRule.params === "'tailwindcss/components'") {
atRule.name = 'tailwind';
atRule.params = 'components';
}
if (atRule.params === '"tailwindcss/utilities"' || atRule.params === "'tailwindcss/utilities'") {
atRule.name = 'tailwind';
atRule.params = 'utilities';
}
if (atRule.params === '"tailwindcss/screens"' || atRule.params === "'tailwindcss/screens'") {
atRule.name = 'tailwind';
atRule.params = 'screens';
}
});
css.walkAtRules('tailwind', atRule => {
if (atRule.params === 'preflight') {
// prettier-ignore
throw atRule.error("`@tailwind preflight` is not a valid at-rule in Tailwind v1.0, use `@tailwind base` instead.", {
word: 'preflight'
});
}
if (atRule.params === 'base') {
atRule.before(updateSource(pluginBase, atRule.source));
atRule.remove();
}
if (atRule.params === 'components') {
atRule.before(updateSource(pluginComponents, atRule.source));
atRule.remove();
}
if (atRule.params === 'utilities') {
atRule.before(updateSource(pluginUtilities, atRule.source));
atRule.remove();
}
});
};
}