devsite/node_modules/tailwindcss/lib/lib/partitionApplyAtRules.js
2024-07-07 18:49:38 -07:00

59 lines
1.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return expandApplyAtRules;
}
});
function partitionRules(root) {
if (!root.walkAtRules) return;
let applyParents = new Set();
root.walkAtRules("apply", (rule)=>{
applyParents.add(rule.parent);
});
if (applyParents.size === 0) {
return;
}
for (let rule of applyParents){
let nodeGroups = [];
let lastGroup = [];
for (let node of rule.nodes){
if (node.type === "atrule" && node.name === "apply") {
if (lastGroup.length > 0) {
nodeGroups.push(lastGroup);
lastGroup = [];
}
nodeGroups.push([
node
]);
} else {
lastGroup.push(node);
}
}
if (lastGroup.length > 0) {
nodeGroups.push(lastGroup);
}
if (nodeGroups.length === 1) {
continue;
}
for (let group of [
...nodeGroups
].reverse()){
let clone = rule.clone({
nodes: []
});
clone.append(group);
rule.after(clone);
}
rule.remove();
}
}
function expandApplyAtRules() {
return (root)=>{
partitionRules(root);
};
}