From eeba86d72149f76b3b35f6e316fa4a789974ef26 Mon Sep 17 00:00:00 2001 From: Daniel Puckowski Date: Sat, 22 Nov 2025 17:21:30 -0500 Subject: [PATCH] fix(issue#4354): unknown at-rule expression commas * Fix issue #4354 unknown at-rule expressions should not have commas in a keyword list. * Add some additional layer at-rule tests. --- packages/less/src/less/tree/atrule.js | 3 -- packages/test-data/css/_main/layer.css | 40 +++++++++++++++ packages/test-data/css/_main/tailwind.css | 3 ++ packages/test-data/less/_main/layer.less | 54 +++++++++++++++++++++ packages/test-data/less/_main/tailwind.less | 3 ++ 5 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 packages/test-data/css/_main/tailwind.css create mode 100644 packages/test-data/less/_main/tailwind.less diff --git a/packages/less/src/less/tree/atrule.js b/packages/less/src/less/tree/atrule.js index df36a5d87..15301f29b 100644 --- a/packages/less/src/less/tree/atrule.js +++ b/packages/less/src/less/tree/atrule.js @@ -135,9 +135,6 @@ AtRule.prototype = Object.assign(new Node(), { if (value) { value = value.eval(context); - if (value.value && this.keywordList(value.value)) { - value = new Anonymous(value.value.map(keyword => keyword.value).join(', '), this.getIndex(), this.fileInfo()); - } } if (rules) { diff --git a/packages/test-data/css/_main/layer.css b/packages/test-data/css/_main/layer.css index 7196325af..31e54d2bb 100644 --- a/packages/test-data/css/_main/layer.css +++ b/packages/test-data/css/_main/layer.css @@ -91,3 +91,43 @@ color: #555; } } +@layer theme; +@layer layout, utilities; +body { + color: black; +} +@layer components { + .btn { + color: red; + } + .btn:hover { + color: blue; + } +} +@layer { + p { + margin-block: 1rem; + } +} +@layer framework.buttons.primary { + .btn-primary { + background: dodgerblue; + color: white; + } +} +.feature { + color: gray; +} +@layer component { + .feature h2 { + font-size: 1.5rem; + } +} +@layer ui { + .btn { + padding: 0.5rem 1rem; + border-radius: 4px; + background: rebeccapurple; + color: white; + } +} diff --git a/packages/test-data/css/_main/tailwind.css b/packages/test-data/css/_main/tailwind.css new file mode 100644 index 000000000..499decb21 --- /dev/null +++ b/packages/test-data/css/_main/tailwind.css @@ -0,0 +1,3 @@ +.box { + @apply h-64 w-64; +} diff --git a/packages/test-data/less/_main/layer.less b/packages/test-data/less/_main/layer.less index 9340f83af..4d16c00b8 100644 --- a/packages/test-data/less/_main/layer.less +++ b/packages/test-data/less/_main/layer.less @@ -110,3 +110,57 @@ color: #555; } } + +@layer theme; +@layer layout, utilities; + +body { + color: black; +} + +@layer components { + .btn { + color: red; + &:hover { + color: blue; + } + } +} + +@layer { + p { + margin-block: 1rem; + } +} + +@layer framework.buttons.primary { + .btn-primary { + background: dodgerblue; + color: white; + } +} + +.feature { + color: gray; + + @layer component { + h2 { + font-size: 1.5rem; + } + } +} + +@primary-color: rebeccapurple; + +.button-styles() { + padding: 0.5rem 1rem; + border-radius: 4px; +} + +@layer ui { + .btn { + .button-styles(); + background: @primary-color; + color: white; + } +} diff --git a/packages/test-data/less/_main/tailwind.less b/packages/test-data/less/_main/tailwind.less new file mode 100644 index 000000000..499decb21 --- /dev/null +++ b/packages/test-data/less/_main/tailwind.less @@ -0,0 +1,3 @@ +.box { + @apply h-64 w-64; +}