From b1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c Mon Sep 17 00:00:00 2001 From: Philipp Tanlak Date: Mon, 24 Nov 2025 20:54:57 +0100 Subject: Docs --- .../tailwindcss/src/lib/partitionApplyAtRules.js | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 node_modules/tailwindcss/src/lib/partitionApplyAtRules.js (limited to 'node_modules/tailwindcss/src/lib/partitionApplyAtRules.js') diff --git a/node_modules/tailwindcss/src/lib/partitionApplyAtRules.js b/node_modules/tailwindcss/src/lib/partitionApplyAtRules.js new file mode 100644 index 0000000..34813c6 --- /dev/null +++ b/node_modules/tailwindcss/src/lib/partitionApplyAtRules.js @@ -0,0 +1,52 @@ +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() + } +} + +export default function expandApplyAtRules() { + return (root) => { + partitionRules(root) + } +} -- cgit v1.2.3