forked from Fediversity/fediversity.eu
90 lines
3.6 KiB
JavaScript
90 lines
3.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "default", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return normalizeTailwindDirectives;
|
|
}
|
|
});
|
|
const _log = /*#__PURE__*/ _interop_require_default(require("../util/log"));
|
|
function _interop_require_default(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
default: obj
|
|
};
|
|
}
|
|
function normalizeTailwindDirectives(root) {
|
|
let tailwindDirectives = new Set();
|
|
let layerDirectives = new Set();
|
|
let applyDirectives = new Set();
|
|
root.walkAtRules((atRule)=>{
|
|
if (atRule.name === "apply") {
|
|
applyDirectives.add(atRule);
|
|
}
|
|
if (atRule.name === "import") {
|
|
if (atRule.params === '"tailwindcss/base"' || atRule.params === "'tailwindcss/base'") {
|
|
atRule.name = "tailwind";
|
|
atRule.params = "base";
|
|
} else if (atRule.params === '"tailwindcss/components"' || atRule.params === "'tailwindcss/components'") {
|
|
atRule.name = "tailwind";
|
|
atRule.params = "components";
|
|
} else if (atRule.params === '"tailwindcss/utilities"' || atRule.params === "'tailwindcss/utilities'") {
|
|
atRule.name = "tailwind";
|
|
atRule.params = "utilities";
|
|
} else if (atRule.params === '"tailwindcss/screens"' || atRule.params === "'tailwindcss/screens'" || atRule.params === '"tailwindcss/variants"' || atRule.params === "'tailwindcss/variants'") {
|
|
atRule.name = "tailwind";
|
|
atRule.params = "variants";
|
|
}
|
|
}
|
|
if (atRule.name === "tailwind") {
|
|
if (atRule.params === "screens") {
|
|
atRule.params = "variants";
|
|
}
|
|
tailwindDirectives.add(atRule.params);
|
|
}
|
|
if ([
|
|
"layer",
|
|
"responsive",
|
|
"variants"
|
|
].includes(atRule.name)) {
|
|
if ([
|
|
"responsive",
|
|
"variants"
|
|
].includes(atRule.name)) {
|
|
_log.default.warn(`${atRule.name}-at-rule-deprecated`, [
|
|
`The \`@${atRule.name}\` directive has been deprecated in Tailwind CSS v3.0.`,
|
|
`Use \`@layer utilities\` or \`@layer components\` instead.`,
|
|
"https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"
|
|
]);
|
|
}
|
|
layerDirectives.add(atRule);
|
|
}
|
|
});
|
|
if (!tailwindDirectives.has("base") || !tailwindDirectives.has("components") || !tailwindDirectives.has("utilities")) {
|
|
for (let rule of layerDirectives){
|
|
if (rule.name === "layer" && [
|
|
"base",
|
|
"components",
|
|
"utilities"
|
|
].includes(rule.params)) {
|
|
if (!tailwindDirectives.has(rule.params)) {
|
|
throw rule.error(`\`@layer ${rule.params}\` is used but no matching \`@tailwind ${rule.params}\` directive is present.`);
|
|
}
|
|
} else if (rule.name === "responsive") {
|
|
if (!tailwindDirectives.has("utilities")) {
|
|
throw rule.error("`@responsive` is used but `@tailwind utilities` is missing.");
|
|
}
|
|
} else if (rule.name === "variants") {
|
|
if (!tailwindDirectives.has("utilities")) {
|
|
throw rule.error("`@variants` is used but `@tailwind utilities` is missing.");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
tailwindDirectives,
|
|
applyDirectives
|
|
};
|
|
}
|