From 6756a82a6798d9ffe216966e8ae975e92d649766 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Wed, 30 Jun 2021 17:08:53 -0400 Subject: [PATCH] MAKE IT WORK --- src/jit/lib/optimizeUniversalRules.js | 20 +++++++++---------- src/jit/processTailwindFeatures.js | 2 -- .../jit/optimize-universal-selectors.test.js | 16 +++++++-------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/jit/lib/optimizeUniversalRules.js b/src/jit/lib/optimizeUniversalRules.js index fceeb524f..73cb1ecb3 100644 --- a/src/jit/lib/optimizeUniversalRules.js +++ b/src/jit/lib/optimizeUniversalRules.js @@ -45,21 +45,19 @@ export default function collapseAdjacentRules() { for (let universal of universals) { let selectors = new Set() - let rule = postcss.rule() + let universalRule = postcss.rule() - universal.walkDecls((decl) => { - let variable = decl.prop + let rules = variableNodeMap.get(universal.params) - for (let node of variableNodeMap.get(variable) ?? []) { - for (let selector of extractElementSelector(node.selector)) { - selectors.add(selector) - } + for (let rule of rules) { + for (let selector of extractElementSelector(rule.selector)) { + selectors.add(selector) } - }) + } - rule.selectors = [...selectors] - rule.append(universal.clone().nodes) - universal.before(rule) + universalRule.selectors = [...selectors] + universalRule.append(universal.nodes) + universal.before(universalRule) universal.remove() } } diff --git a/src/jit/processTailwindFeatures.js b/src/jit/processTailwindFeatures.js index 31a9b212f..6344b5219 100644 --- a/src/jit/processTailwindFeatures.js +++ b/src/jit/processTailwindFeatures.js @@ -46,9 +46,7 @@ export default function processTailwindFeatures(setupContext) { expandApplyAtRules(context)(root, result) evaluateTailwindFunctions(context)(root, result) substituteScreenAtRules(context)(root, result) - console.time('Optimizer') optimizeUniversalRules(context)(root, result) - console.timeEnd('Optimizer') collapseAdjacentRules(context)(root, result) } } diff --git a/tests/jit/optimize-universal-selectors.test.js b/tests/jit/optimize-universal-selectors.test.js index ea9c89158..c5d9001e5 100644 --- a/tests/jit/optimize-universal-selectors.test.js +++ b/tests/jit/optimize-universal-selectors.test.js @@ -492,12 +492,12 @@ test('with shadows', async () => { mode: 'jit', purge: [ { - raw: '
', + raw: '
', }, ], theme: {}, plugins: [], - corePlugins: ['boxShadow', 'ringColor', 'ringWidth', 'transform'], + corePlugins: ['boxShadow', 'ringColor', 'ringWidth'], } let css = ` @@ -508,6 +508,12 @@ test('with shadows', async () => { return run(css, config).then((result) => { expect(result.css).toMatchFormattedCss(` + .shadow, + .md\\:shadow-xl { + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + } .ring-1 { --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/); --tw-ring-offset-width: 0px; @@ -517,12 +523,6 @@ test('with shadows', async () => { --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; } - .shadow, - .md\\:shadow-xl { - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - } /* --- */ .shadow { --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);