@less/test-data 4.9.1 → 5.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/UPSTREAM-FIXTURE-SYNC.md +54 -0
  2. package/package.json +4 -1
  3. package/styles.config.ts +15 -0
  4. package/tests-config/3rd-party/bootstrap4.css +182 -365
  5. package/tests-config/3rd-party/styles.config.cjs +1 -1
  6. package/tests-config/at-rules-compressed/at-rules-compressed.css +1 -1
  7. package/tests-config/at-rules-compressed-evaluation/at-rules-compressed-evaluation.css +1 -1
  8. package/tests-config/compression/compression.css +2 -2
  9. package/tests-config/compression/compression.less +0 -4
  10. package/tests-config/compression/styles.config.cjs +1 -1
  11. package/tests-config/debug/all/styles.config.cjs +1 -1
  12. package/tests-config/debug/comments/styles.config.cjs +1 -1
  13. package/tests-config/debug/mediaquery/styles.config.cjs +1 -1
  14. package/tests-config/filemanagerPlugin/styles.config.cjs +1 -1
  15. package/tests-config/functions-harness/functions-harness.css +8 -0
  16. package/tests-config/functions-harness/functions-harness.less +10 -0
  17. package/tests-config/js-type-errors/js-type-error-2.txt +4 -0
  18. package/tests-config/js-type-errors/js-type-error.txt +1 -1
  19. package/tests-config/namespacing/legacy/namespacing-7.css +15 -0
  20. package/tests-config/namespacing/namespacing-5.less +3 -3
  21. package/tests-config/namespacing/namespacing-7.css +16 -8
  22. package/tests-config/namespacing/styles.config.cjs +4 -1
  23. package/tests-config/sourcemaps/styles.config.cjs +1 -1
  24. package/tests-config/sourcemaps-variable-selector/styles.config.cjs +1 -1
  25. package/tests-config/static-urls/urls.css +2 -1
  26. package/tests-config/strict-imports/legacy/strict-imports.css +14 -0
  27. package/tests-config/strict-imports/strict-imports.css +4 -2
  28. package/tests-config/strict-imports/styles.config.cjs +6 -5
  29. package/tests-config/units/loose/loose.css +21 -0
  30. package/tests-config/units/loose/loose.less +21 -0
  31. package/tests-config/units/loose/styles.config.cjs +8 -0
  32. package/tests-config/units/no-strict/legacy/no-strict.css +24 -0
  33. package/tests-config/units/no-strict/no-strict.css +12 -12
  34. package/tests-config/url-args/legacy/urls.css +58 -0
  35. package/tests-config/url-args/urls.css +2 -1
  36. package/tests-error/eval/ampersand-merge-template-invalid.less +7 -0
  37. package/tests-error/eval/ampersand-merge-template-invalid.txt +1 -0
  38. package/tests-error/eval/at-rules-undefined-var.less +1 -1
  39. package/tests-error/eval/property-undefined.txt +1 -0
  40. package/tests-error/eval/recursive-property.txt +1 -0
  41. package/tests-unit/at-rule-variable-deprecated/at-rule-variable-deprecated.css +0 -38
  42. package/tests-unit/at-rule-variable-deprecated/at-rule-variable-deprecated.less +0 -70
  43. package/tests-unit/at-rule-variable-interpolation/at-rule-variable-interpolation.css +45 -0
  44. package/tests-unit/at-rule-variable-interpolation/at-rule-variable-interpolation.less +72 -0
  45. package/tests-unit/at-rules/at-rules.css +8 -6
  46. package/tests-unit/at-rules/legacy/at-rules.css +110 -0
  47. package/tests-unit/at-rules/styles.config.ts +5 -0
  48. package/tests-unit/at-rules-bubbling/at-rules-bubbling.css +121 -0
  49. package/tests-unit/at-rules-bubbling/legacy/at-rules-bubbling.css +122 -0
  50. package/tests-unit/at-rules-keyword-comments/at-rules-keyword-comments.css +2 -5
  51. package/tests-unit/at-rules-keyword-comments/legacy/at-rules-keyword-comments.css +12 -0
  52. package/tests-unit/at-rules-targeted/at-rules-targeted.css +5 -3
  53. package/tests-unit/at-rules-targeted/legacy/at-rules-targeted.css +55 -0
  54. package/tests-unit/calc/calc.css +8 -8
  55. package/tests-unit/calc/calc.less +1 -0
  56. package/tests-unit/calc/legacy/calc.css +32 -0
  57. package/tests-unit/color-functions/basic.css +1 -1
  58. package/tests-unit/color-functions/comprehensive.css +5 -5
  59. package/tests-unit/color-functions/comprehensive.less +1 -0
  60. package/tests-unit/color-functions/formats.css +0 -12
  61. package/tests-unit/color-functions/formats.less +0 -15
  62. package/tests-unit/color-functions/legacy/basic.css +21 -0
  63. package/tests-unit/color-functions/legacy/comprehensive.css +48 -0
  64. package/tests-unit/color-functions/legacy/modern-syntax.css +9 -0
  65. package/tests-unit/color-functions/legacy/operations.css +18 -0
  66. package/tests-unit/color-functions/legacy/rgba.css +20 -0
  67. package/tests-unit/color-functions/modern-syntax.css +4 -4
  68. package/tests-unit/color-functions/modern-syntax.less +1 -0
  69. package/tests-unit/color-functions/operations.css +1 -1
  70. package/tests-unit/color-functions/operations.less +1 -0
  71. package/tests-unit/color-functions/rgba.css +3 -3
  72. package/tests-unit/color-functions/rgba.less +3 -1
  73. package/tests-unit/comments/comments.css +5 -6
  74. package/tests-unit/comments/comments.less +2 -1
  75. package/tests-unit/comments/comments2.css +4 -6
  76. package/tests-unit/comments/comments2.less +3 -0
  77. package/tests-unit/comments/legacy/comments.css +86 -0
  78. package/tests-unit/comments/legacy/comments2.css +21 -0
  79. package/tests-unit/container/container.css +40 -83
  80. package/tests-unit/container/container.less +28 -82
  81. package/tests-unit/container/legacy/container.css +273 -0
  82. package/tests-unit/container/styles.config.ts +8 -0
  83. package/tests-unit/css-3/css-3.css +4 -4
  84. package/tests-unit/css-3/legacy/css-3.css +147 -0
  85. package/tests-unit/css-escapes/css-escapes.css +4 -4
  86. package/tests-unit/css-escapes/legacy/css-escapes.css +34 -0
  87. package/tests-unit/css-escapes/styles.config.ts +5 -0
  88. package/tests-unit/css-grid/css-grid.css +4 -1
  89. package/tests-unit/css-grid/legacy/css-grid.css +27 -0
  90. package/tests-unit/css-guards/css-guards.less +2 -1
  91. package/tests-unit/detached-rulesets/detached-rulesets.css +26 -18
  92. package/tests-unit/detached-rulesets/legacy/detached-rulesets.css +79 -0
  93. package/tests-unit/detached-rulesets/styles.config.cjs +8 -0
  94. package/tests-unit/directives-bubbling/directives-bubbling.css +16 -14
  95. package/tests-unit/extend/extend.css +22 -28
  96. package/tests-unit/extend/legacy/extend.css +79 -0
  97. package/tests-unit/extend/styles.config.ts +5 -0
  98. package/tests-unit/extend-chaining/extend-chaining.css +7 -10
  99. package/tests-unit/extend-chaining/legacy/extend-chaining.css +84 -0
  100. package/tests-unit/extend-clearfix/extend-clearfix.css +1 -3
  101. package/tests-unit/extend-clearfix/extend-clearfix.less +0 -1
  102. package/tests-unit/{extend → extend-clearfix/legacy}/extend-clearfix.css +3 -0
  103. package/tests-unit/extend-exact/extend-exact.css +25 -24
  104. package/tests-unit/extend-exact/legacy/extend-exact.css +40 -0
  105. package/tests-unit/extend-exact/styles.config.ts +5 -0
  106. package/tests-unit/extend-media/extend-media.css +9 -14
  107. package/tests-unit/extend-media/legacy/extend-media.css +27 -0
  108. package/tests-unit/extend-media/styles.config.ts +5 -0
  109. package/tests-unit/extend-nest/extend-nest.css +3 -22
  110. package/tests-unit/extend-nest/legacy/extend-nest.css +60 -0
  111. package/tests-unit/extend-selector/extend-selector.css +42 -67
  112. package/tests-unit/extend-selector/extend-selector.less +0 -15
  113. package/tests-unit/extend-selector/legacy/extend-selector.css +73 -0
  114. package/tests-unit/extend-selector/styles.config.ts +5 -0
  115. package/tests-unit/extract-and-length/extract-and-length.css +6 -5
  116. package/tests-unit/extract-and-length/extract-and-length.less +7 -2
  117. package/tests-unit/extract-and-length/legacy/extract-and-length.css +137 -0
  118. package/tests-unit/functions/functions.css +13 -24
  119. package/tests-unit/functions/functions.less +8 -21
  120. package/tests-unit/functions/legacy/functions.css +244 -0
  121. package/tests-unit/functions/legacy/functions.less +296 -0
  122. package/tests-unit/functions-each/functions-each.css +4 -2
  123. package/tests-unit/import/import/import-reference.less +1 -1
  124. package/tests-unit/import/import-reference-issues.css +6 -6
  125. package/tests-unit/import/import-reference.css +9 -5
  126. package/tests-unit/import/import.css +1 -1
  127. package/tests-unit/import/legacy/import-reference-issues.css +27 -0
  128. package/tests-unit/import/legacy/import-reference.css +101 -0
  129. package/tests-unit/import/styles.config.cjs +3 -4
  130. package/tests-unit/layer/layer.css +30 -28
  131. package/tests-unit/layer/legacy/layer.css +136 -0
  132. package/tests-unit/layer/styles.config.ts +5 -0
  133. package/tests-unit/math-css-vars/math-css-vars.css +1 -0
  134. package/tests-unit/math-css-vars/math-css-vars.less +1 -0
  135. package/tests-unit/media/legacy/media.css +274 -0
  136. package/tests-unit/media/media.css +49 -43
  137. package/tests-unit/media/media.less +0 -2
  138. package/tests-unit/media/styles.config.cjs +5 -0
  139. package/tests-unit/merge/merge.css +2 -2
  140. package/tests-unit/mixin-noparens/legacy/mixin-noparens.css +10 -0
  141. package/tests-unit/mixin-noparens/mixin-noparens.css +4 -2
  142. package/tests-unit/mixin-noparens/styles.config.ts +5 -0
  143. package/tests-unit/mixins/legacy/maps.css +9 -0
  144. package/tests-unit/mixins/legacy/mixins.css +147 -0
  145. package/tests-unit/mixins/maps.css +7 -5
  146. package/tests-unit/mixins/mixins.css +7 -5
  147. package/tests-unit/mixins/styles.config.ts +3 -0
  148. package/tests-unit/mixins-closure/legacy/mixins-closure.css +12 -0
  149. package/tests-unit/mixins-closure/mixins-closure.css +4 -2
  150. package/tests-unit/mixins-closure/styles.config.ts +5 -0
  151. package/tests-unit/mixins-guards/legacy/mixins-guards.css +214 -0
  152. package/tests-unit/mixins-guards/mixins-guards.css +21 -5
  153. package/tests-unit/mixins-guards/mixins-guards.less +0 -1
  154. package/tests-unit/mixins-guards/styles.config.ts +5 -0
  155. package/tests-unit/mixins-guards-default-func/legacy/mixins-guards-default-func.css +132 -0
  156. package/tests-unit/mixins-guards-default-func/mixins-guards-default-func.css +0 -2
  157. package/tests-unit/mixins-important/mixins-important.css +33 -19
  158. package/tests-unit/mixins-interpolated/legacy/mixins-interpolated.css +42 -0
  159. package/tests-unit/mixins-interpolated/mixins-interpolated.css +24 -14
  160. package/tests-unit/mixins-interpolated/styles.config.ts +5 -0
  161. package/tests-unit/mixins-nested/legacy/mixins-nested.css +17 -0
  162. package/tests-unit/mixins-nested/mixins-nested.css +16 -12
  163. package/tests-unit/mixins-nested/styles.config.ts +5 -0
  164. package/tests-unit/nesting/legacy/nesting.css +27 -0
  165. package/tests-unit/nesting/nesting-uncollapsed.css +26 -0
  166. package/tests-unit/nesting/nesting.css +1 -1
  167. package/tests-unit/nesting/styles.config.ts +6 -0
  168. package/tests-unit/operations/legacy/operations-advanced.css +36 -0
  169. package/tests-unit/operations/operations-advanced.css +1 -1
  170. package/tests-unit/operations/operations.css +4 -2
  171. package/tests-unit/parse-interpolation/legacy/parse-interpolation.css +39 -0
  172. package/tests-unit/parse-interpolation/parse-interpolation.css +72 -35
  173. package/tests-unit/parse-interpolation/parse-interpolation.less +73 -25
  174. package/tests-unit/parse-interpolation/styles.config.ts +5 -0
  175. package/tests-unit/parser-property-interp/parser-property-interp.css +1 -1
  176. package/tests-unit/parser-property-interp/parser-property-interp.less +2 -2
  177. package/tests-unit/parser-slashed-combinator/parser-slashed-combinator.css +1 -9
  178. package/tests-unit/parser-slashed-combinator/parser-slashed-combinator.less +11 -11
  179. package/tests-unit/plugin/styles.config.ts +11 -0
  180. package/tests-unit/property-accessors/legacy/property-accessors.css +60 -0
  181. package/tests-unit/property-accessors/property-accessors.css +15 -7
  182. package/tests-unit/property-name-interp/legacy/property-name-interp.css +24 -0
  183. package/tests-unit/property-name-interp/property-name-interp.css +1 -1
  184. package/tests-unit/property-name-interp/property-name-interp.less +4 -2
  185. package/tests-unit/property-targeted/legacy/property-targeted.css +7 -0
  186. package/tests-unit/property-targeted/property-targeted.css +1 -1
  187. package/tests-unit/rulesets/legacy/rulesets.css +31 -0
  188. package/tests-unit/rulesets/rulesets.css +30 -30
  189. package/tests-unit/rulesets/styles.config.ts +5 -0
  190. package/tests-unit/scope/legacy/scope.css +41 -0
  191. package/tests-unit/scope/scope.css +1 -1
  192. package/tests-unit/scope/styles.config.cjs +8 -0
  193. package/tests-unit/selectors/selectors.css +13 -41
  194. package/tests-unit/styles.config.cjs +1 -1
  195. package/tests-unit/styles.config.ts +8 -0
  196. package/tests-unit/variables/legacy/variable-advanced.css +58 -0
  197. package/tests-unit/variables/variable-advanced.css +15 -18
  198. package/tests-unit/variables/variable-advanced.less +5 -4
  199. package/tests-unit/variables/variables.css +1 -1
  200. package/tests-unit/variables-in-at-rules/variables-in-at-rules.less +3 -2
  201. package/tests-unit/whitespace/legacy/whitespace.css +45 -0
  202. package/tests-unit/whitespace/whitespace.css +3 -2
  203. package/tests-warnings/parentless-ampersand-nested.less +6 -0
  204. package/tests-warnings/parentless-ampersand-nested.txt +42 -0
  205. package/tests-warnings/parentless-ampersand.less +3 -0
  206. package/tests-warnings/parentless-ampersand.txt +21 -0
  207. package/tests-config/rootpath-escape-interpolation/rootpath-escape-interpolation.css +0 -8
  208. package/tests-config/rootpath-escape-interpolation/rootpath-escape-interpolation.less +0 -24
  209. package/tests-config/rootpath-escape-interpolation/styles.config.cjs +0 -8
  210. package/tests-config/sourcemaps/url-interpolation/styles.config.cjs +0 -9
  211. package/tests-config/sourcemaps/url-interpolation/url-interpolation.css +0 -13
  212. package/tests-config/sourcemaps/url-interpolation/url-interpolation.less +0 -24
  213. package/tests-error/eval/mixin-as-value.less +0 -6
  214. package/tests-error/eval/mixin-as-value.txt +0 -4
  215. package/tests-error/parse/property-interpolation-lookup.less +0 -8
  216. package/tests-error/parse/property-interpolation-lookup.txt +0 -4
  217. package/tests-unit/extend/extend-clearfix.less +0 -19
  218. package/tests-unit/lookup-interpolation/lookup-interpolation.css +0 -60
  219. package/tests-unit/lookup-interpolation/lookup-interpolation.less +0 -127
  220. package/tests-unit/media-nested-type/media-nested-type.css +0 -40
  221. package/tests-unit/media-nested-type/media-nested-type.less +0 -51
  222. /package/tests-unit/{directives-bubbling/directives-bubbling.less → at-rules-bubbling/at-rules-bubbling.less} +0 -0
  223. /package/tests-unit/{ie-filters → ie-filters-REMOVED/legacy}/ie-filters.css +0 -0
  224. /package/tests-unit/{ie-filters → ie-filters-REMOVED/legacy}/ie-filters.less +0 -0
  225. /package/tests-unit/{javascript → javascript-REMOVED/legacy}/javascript.css +0 -0
  226. /package/tests-unit/{javascript → javascript-REMOVED/legacy}/javascript.less +0 -0
  227. /package/tests-unit/{javascript → javascript-REMOVED/legacy}/styles.config.cjs +0 -0
@@ -1,48 +1,62 @@
1
1
  .class {
2
2
  border: 1;
3
3
  boxer: 1;
4
+ }
5
+ .class .inner {
6
+ test: 1;
7
+ }
8
+ .class {
4
9
  border-width: 1;
5
10
  border: 2 !important;
6
11
  boxer: 2 !important;
12
+ }
13
+ .class .inner {
14
+ test: 2 !important;
15
+ }
16
+ .class {
7
17
  border-width: 2 !important;
8
18
  border: 3;
9
19
  boxer: 3;
20
+ }
21
+ .class .inner {
22
+ test: 3;
23
+ }
24
+ .class {
10
25
  border-width: 3;
11
26
  border: 4 !important;
12
27
  boxer: 4 !important;
28
+ }
29
+ .class .inner {
30
+ test: 4 !important;
31
+ }
32
+ .class {
13
33
  border-width: 4 !important;
14
34
  border: 5;
15
35
  boxer: 5;
36
+ }
37
+ .class .inner {
38
+ test: 5;
39
+ }
40
+ .class {
16
41
  border-width: 5;
17
42
  border: 0 !important;
18
43
  boxer: 0 !important;
44
+ }
45
+ .class .inner {
46
+ test: 0 !important;
47
+ }
48
+ .class {
19
49
  border-width: 0 !important;
20
50
  border: 9 !important;
21
51
  border: 9;
22
52
  boxer: 9;
23
- border-width: 9;
24
- }
25
- .class .inner {
26
- test: 1;
27
- }
28
- .class .inner {
29
- test: 2 !important;
30
- }
31
- .class .inner {
32
- test: 3;
33
- }
34
- .class .inner {
35
- test: 4 !important;
36
- }
37
- .class .inner {
38
- test: 5;
39
- }
40
- .class .inner {
41
- test: 0 !important;
42
53
  }
43
54
  .class .inner {
44
55
  test: 9;
45
56
  }
57
+ .class {
58
+ border-width: 9;
59
+ }
46
60
  .when-calling-nested-issue-2394 {
47
61
  width: auto !important;
48
62
  }
@@ -0,0 +1,42 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .\123 {
5
+ a: 0;
6
+ }
7
+ .foo {
8
+ a: 1;
9
+ a: 2;
10
+ }
11
+ #foo {
12
+ a: 3;
13
+ a: 4;
14
+ }
15
+ mi-test-a {
16
+ a: 0;
17
+ a: 1;
18
+ a: 2;
19
+ a: 3;
20
+ a: 4;
21
+ }
22
+ .b .bb.foo-xxx .yyy-foo#foo .foo.bbb {
23
+ b: 1;
24
+ }
25
+ mi-test-b {
26
+ b: 1;
27
+ }
28
+ #foo-foo > .bar .baz {
29
+ c: c;
30
+ }
31
+ mi-test-c-1 > .bar .baz {
32
+ c: c;
33
+ }
34
+ mi-test-c-2 .baz {
35
+ c: c;
36
+ }
37
+ mi-test-c-3 {
38
+ c: c;
39
+ }
40
+ mi-test-d {
41
+ gender: "Male";
42
+ }
@@ -3,14 +3,10 @@
3
3
  }
4
4
  .foo {
5
5
  a: 1;
6
- }
7
- .foo {
8
6
  a: 2;
9
7
  }
10
8
  #foo {
11
9
  a: 3;
12
- }
13
- #foo {
14
10
  a: 4;
15
11
  }
16
12
  mi-test-a {
@@ -20,20 +16,34 @@ mi-test-a {
20
16
  a: 3;
21
17
  a: 4;
22
18
  }
23
- .b .bb.foo-xxx .yyy-foo#foo .foo.bbb {
24
- b: 1;
19
+ .b .bb {
20
+ &.foo-xxx .yyy-foo#foo {
21
+ & .foo.bbb {
22
+ b: 1;
23
+ }
24
+ }
25
25
  }
26
26
  mi-test-b {
27
27
  b: 1;
28
28
  }
29
- #foo-foo > .bar .baz {
30
- c: c;
31
- }
32
- mi-test-c-1 > .bar .baz {
33
- c: c;
34
- }
35
- mi-test-c-2 .baz {
36
- c: c;
29
+ #foo-foo {
30
+ > .bar {
31
+ .baz {
32
+ c: c;
33
+ }
34
+ }
35
+ }
36
+ mi-test-c-1 {
37
+ > .bar {
38
+ .baz {
39
+ c: c;
40
+ }
41
+ }
42
+ }
43
+ mi-test-c-2 {
44
+ .baz {
45
+ c: c;
46
+ }
37
47
  }
38
48
  mi-test-c-3 {
39
49
  c: c;
@@ -0,0 +1,5 @@
1
+ export default {
2
+ output: [
3
+ { file: '{name}.css', collapseNesting: false }
4
+ ]
5
+ }
@@ -0,0 +1,17 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .class .inner {
5
+ height: 300;
6
+ }
7
+ .class .inner .innest {
8
+ width: 30;
9
+ border-width: 60;
10
+ }
11
+ .class2 .inner {
12
+ height: 600;
13
+ }
14
+ .class2 .inner .innest {
15
+ width: 60;
16
+ border-width: 120;
17
+ }
@@ -1,14 +1,18 @@
1
- .class .inner {
2
- height: 300;
1
+ .class {
2
+ .inner {
3
+ height: 300;
4
+ .innest {
5
+ width: 30;
6
+ border-width: 60;
7
+ }
8
+ }
3
9
  }
4
- .class .inner .innest {
5
- width: 30;
6
- border-width: 60;
7
- }
8
- .class2 .inner {
9
- height: 600;
10
- }
11
- .class2 .inner .innest {
12
- width: 60;
13
- border-width: 120;
10
+ .class2 {
11
+ .inner {
12
+ height: 600;
13
+ .innest {
14
+ width: 60;
15
+ border-width: 120;
16
+ }
17
+ }
14
18
  }
@@ -0,0 +1,5 @@
1
+ export default {
2
+ output: [
3
+ { file: '{name}.css', collapseNesting: false }
4
+ ]
5
+ }
@@ -0,0 +1,27 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .nesting-parent {
5
+ color: red;
6
+ }
7
+ .nesting-parent .nesting-child {
8
+ color: blue;
9
+ }
10
+ .nesting-parent .nesting-child .nesting-grandchild {
11
+ color: green;
12
+ }
13
+ .nesting-parent:hover {
14
+ color: orange;
15
+ }
16
+ .nesting-parent.modifier {
17
+ color: purple;
18
+ }
19
+ .correctly-exit-calc-mode h2 {
20
+ width: 10px;
21
+ }
22
+ .correctly-exit-calc-mode div {
23
+ width: calc(100px * 2);
24
+ }
25
+ .correctly-exit-calc-mode h1 {
26
+ color: white;
27
+ }
@@ -0,0 +1,26 @@
1
+ .nesting-parent {
2
+ color: red;
3
+ .nesting-child {
4
+ color: blue;
5
+ .nesting-grandchild {
6
+ color: green;
7
+ }
8
+ }
9
+ &:hover {
10
+ color: orange;
11
+ }
12
+ &.modifier {
13
+ color: purple;
14
+ }
15
+ }
16
+ .correctly-exit-calc-mode {
17
+ h2 {
18
+ width: 10px;
19
+ }
20
+ div {
21
+ width: 200px;
22
+ }
23
+ h1 {
24
+ color: white;
25
+ }
26
+ }
@@ -17,7 +17,7 @@
17
17
  width: 10px;
18
18
  }
19
19
  .correctly-exit-calc-mode div {
20
- width: calc(100px * 2);
20
+ width: 200px;
21
21
  }
22
22
  .correctly-exit-calc-mode h1 {
23
23
  color: white;
@@ -0,0 +1,6 @@
1
+ export default {
2
+ output: [
3
+ { file: '{name}.css', collapseNesting: true },
4
+ { file: '{name}-uncollapsed.css', collapseNesting: false }
5
+ ]
6
+ };
@@ -0,0 +1,36 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .test-math-off {
5
+ result: 15px;
6
+ }
7
+ .test-dim-to-color {
8
+ result: #ff0a0a;
9
+ }
10
+ .test-color-to-dim {
11
+ result: #ff0a0a;
12
+ }
13
+ .test-division {
14
+ result: 10px / 2 * 2;
15
+ }
16
+ .test-nested {
17
+ result: 30px;
18
+ }
19
+ .test-spaced {
20
+ result: 15px;
21
+ }
22
+ .test-non-spaced {
23
+ result: 15px;
24
+ }
25
+ .test-div {
26
+ result: 10px / 2;
27
+ }
28
+ .test-op-operands {
29
+ result: 150px;
30
+ }
31
+ .test-math-context {
32
+ add: 15;
33
+ sub: 5;
34
+ mul: 50;
35
+ div: 10 / 5;
36
+ }
@@ -23,7 +23,7 @@
23
23
  result: 10px / 2;
24
24
  }
25
25
  .test-op-operands {
26
- result: 150px;
26
+ result: calc(15px * 10px);
27
27
  }
28
28
  .test-math-context {
29
29
  add: 15;
@@ -3,13 +3,15 @@
3
3
  color-2: #f8f800;
4
4
  height: 9px;
5
5
  width: 3em;
6
- subtraction: 0;
7
- division: 1;
8
6
  }
9
7
  #operations .spacing {
10
8
  height: 9px;
11
9
  width: 3em;
12
10
  }
11
+ #operations {
12
+ subtraction: 0;
13
+ division: 1;
14
+ }
13
15
  .with-variables {
14
16
  height: 16em;
15
17
  width: 24em;
@@ -0,0 +1,39 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ input[type=text]:focus,
5
+ input[type=email]:focus,
6
+ input[type=password]:focus,
7
+ textarea:focus {
8
+ foo: bar;
9
+ }
10
+ .a + .z,
11
+ .b + .z,
12
+ .c + .z {
13
+ color: blue;
14
+ }
15
+ .bar .d.a,
16
+ .bar .b,
17
+ .c.bar:hover,
18
+ .bar baz {
19
+ color: blue;
20
+ }
21
+ .a + .e,
22
+ .b.c + .e,
23
+ .d + .e {
24
+ foo: bar;
25
+ }
26
+ input[class="text"],
27
+ input.text {
28
+ background: red;
29
+ }
30
+ .master-page-1 .selector-1,
31
+ .master-page-1 .selector-2 {
32
+ background-color: red;
33
+ }
34
+ .fruit-apple,
35
+ .fruit-satsuma,
36
+ .fruit-banana,
37
+ .fruit-pear {
38
+ content: "Just a test.";
39
+ }
@@ -1,36 +1,73 @@
1
- input[type=text]:focus,
2
- input[type=email]:focus,
3
- input[type=password]:focus,
4
- textarea:focus {
5
- foo: bar;
6
- }
7
- .a + .z,
8
- .b + .z,
9
- .c + .z {
10
- color: blue;
11
- }
12
- .bar .d.a,
13
- .bar .b,
14
- .c.bar:hover,
15
- .bar baz {
16
- color: blue;
17
- }
18
- .a + .e,
19
- .b.c + .e,
20
- .d + .e {
21
- foo: bar;
22
- }
23
- input[class="text"],
24
- input.text {
25
- background: red;
26
- }
27
- .master-page-1 .selector-1,
28
- .master-page-1 .selector-2 {
29
- background-color: red;
30
- }
31
- .fruit-apple,
32
- .fruit-satsuma,
33
- .fruit-banana,
34
- .fruit-pear {
35
- content: "Just a test.";
1
+ input[type=text],
2
+ input[type=email],
3
+ input[type=password],
4
+ textarea {
5
+ &:focus {
6
+ foo: bar;
7
+ }
8
+ }
9
+ input[type=text], input[type=email], input[type=password], textarea {
10
+ &:focus {
11
+ foo: baz;
12
+ }
13
+ }
14
+ .a,
15
+ .b,
16
+ .c {
17
+ + .z-cap {
18
+ color: blue;
19
+ }
20
+ }
21
+ .a, .b, .c {
22
+ + .z-quoted {
23
+ color: green;
24
+ }
25
+ }
26
+ .bar {
27
+ .d:is(.a, .b, .c)&:hover, baz-cap {
28
+ color: blue;
29
+ }
30
+ }
31
+ .bar2 {
32
+ .q:is(.a, .b, .c)&:hover, baz-quoted {
33
+ color: green;
34
+ }
35
+ }
36
+ :is(.a, .b):is(.c, .d) {
37
+ + .e-cap {
38
+ foo: bar;
39
+ }
40
+ }
41
+ :is(.a, .b):is(.c, .d) {
42
+ + .e-quoted {
43
+ foo: bar;
44
+ }
45
+ }
46
+ input.cap {
47
+ &[class="text"],
48
+ &.text {
49
+ background: red;
50
+ }
51
+ }
52
+ input.quoted {
53
+ &[class="text"], &.text {
54
+ background: blue;
55
+ }
56
+ }
57
+ .master-page-cap {
58
+ .selector-1,
59
+ .selector-2 {
60
+ background-color: red;
61
+ }
62
+ }
63
+ .master-page-quoted {
64
+ .selector-1, .selector-2 {
65
+ background-color: blue;
66
+ }
67
+ }
68
+ .fruit-cap-apple,
69
+ .fruit-cap-satsuma,
70
+ .fruit-cap-banana,
71
+ .fruit-cap-pear {
72
+ content: "Capture";
36
73
  }
@@ -1,54 +1,102 @@
1
1
  // Parse interpolation tests
2
- @inputs: input[type=text], input[type=email], input[type=password], textarea;
2
+ // Paired variants: selector-capture (`*[]`) and quoted selectors (`~'...'`).
3
3
 
4
- @{inputs} {
4
+ @inputs-cap: *[input[type=text], input[type=email], input[type=password], textarea];
5
+ @inputs-quoted: ~'input[type=text], input[type=email], input[type=password], textarea';
6
+
7
+ @{inputs-cap} {
5
8
  &:focus {
6
9
  foo: bar;
7
10
  }
8
- }
11
+ }
9
12
 
10
- @classes: .a, .b, .c;
13
+ @{inputs-quoted} {
14
+ &:focus {
15
+ foo: baz;
16
+ }
17
+ }
18
+
19
+ @classes-cap: *[.a, .b, .c];
20
+ @classes-quoted: ~'.a, .b, .c';
11
21
 
12
- @{classes} {
13
- + .z {
14
- color: blue;
22
+ @{classes-cap} {
23
+ + .z-cap {
24
+ color: blue;
25
+ }
26
+ }
27
+
28
+ @{classes-quoted} {
29
+ + .z-quoted {
30
+ color: green;
15
31
  }
16
32
  }
17
33
 
18
34
  .bar {
19
- .d@{classes}&:hover, baz {
35
+ .d@{classes-cap}&:hover, baz-cap {
20
36
  color: blue;
21
37
  }
22
38
  }
23
39
 
24
- @c: ~'.a, .b';
25
- @d: ~'.c, .d';
26
- @e: ~' + .e';
40
+ .bar2 {
41
+ .q@{classes-quoted}&:hover, baz-quoted {
42
+ color: green;
43
+ }
44
+ }
45
+
46
+ @c-cap: *[.a, .b];
47
+ @d-cap: *[.c, .d];
48
+ @e-cap: ~' + .e-cap';
27
49
 
28
- @{c}@{d} {
29
- @{e} {
50
+ @{c-cap}@{d-cap} {
51
+ @{e-cap} {
30
52
  foo: bar;
31
53
  }
32
54
  }
33
55
 
34
- @textClasses: ~'&[class="text"], &.text';
56
+ @c-quoted: ~'.a, .b';
57
+ @d-quoted: ~'.c, .d';
58
+ @e-quoted: ~' + .e-quoted';
35
59
 
36
- input {
37
- @{textClasses} {
60
+ @{c-quoted}@{d-quoted} {
61
+ @{e-quoted} {
62
+ foo: baz;
63
+ }
64
+ }
65
+
66
+ @textClasses-cap: *[&[class="text"], &.text];
67
+ @textClasses-quoted: ~'&[class="text"], &.text';
68
+
69
+ input.cap {
70
+ @{textClasses-cap} {
38
71
  background: red;
39
72
  }
40
73
  }
41
74
 
42
- @my-selector: ~'.selector-1, .selector-2';
43
- .master-page-1 {
44
- @{my-selector} {
45
- background-color: red;
46
- }
75
+ input.quoted {
76
+ @{textClasses-quoted} {
77
+ background: blue;
78
+ }
47
79
  }
48
80
 
49
- @list: apple, satsuma, banana, pear;
50
- @{list} {
51
- .fruit-& {
52
- content: "Just a test.";
81
+ @my-selector-cap: *[.selector-1, .selector-2];
82
+ @my-selector-quoted: ~'.selector-1, .selector-2';
83
+
84
+ .master-page-cap {
85
+ @{my-selector-cap} {
86
+ background-color: red;
87
+ }
88
+ }
89
+
90
+ .master-page-quoted {
91
+ @{my-selector-quoted} {
92
+ background-color: blue;
93
+ }
94
+ }
95
+
96
+ @list-cap: *[apple, satsuma, banana, pear];
97
+
98
+ @{list-cap} {
99
+ .fruit-cap-& {
100
+ content: "Capture";
53
101
  }
54
102
  }
@@ -0,0 +1,5 @@
1
+ export default {
2
+ output: {
3
+ collapseNesting: false
4
+ }
5
+ };
@@ -4,6 +4,6 @@
4
4
  value: width;
5
5
  color: red;
6
6
  border-color-width: 2px;
7
- *-z-color: 1px dashed blue;
7
+ --z-color: 1px dashed blue;
8
8
  background-color-width: green;
9
9
  }
@@ -18,8 +18,8 @@
18
18
  // border-${prop-name} becomes "border-color" (since prop-name's value is "color")
19
19
  border-${prop-name}-width: 2px;
20
20
 
21
- // Complex property name with ${prop}
22
- *-z-${prop-name}: 1px dashed blue;
21
+ // Custom property name with ${prop-name}
22
+ --z-${prop-name}: 1px dashed blue;
23
23
 
24
24
  // Multiple ${prop} in same property name
25
25
  // ${my}-${prop-name}-${value} becomes "background-color-width"
@@ -1,9 +1 @@
1
- .parent /deep/ .child {
2
- color: red;
3
- }
4
- .container /shadow/ .content {
5
- background: blue;
6
- }
7
- .wrapper /deep/ .inner /deep/ .deepest {
8
- padding: 10px;
9
- }
1
+