@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
@@ -4,17 +4,17 @@
4
4
  // They were part of the Shadow DOM specification but have been removed
5
5
 
6
6
  // /deep/ combinator (deprecated)
7
- .parent /deep/ .child {
8
- color: red;
9
- }
7
+ // .parent /deep/ .child {
8
+ // color: red;
9
+ // }
10
10
 
11
- // /shadow/ combinator (deprecated)
12
- .container /shadow/ .content {
13
- background: blue;
14
- }
11
+ // // /shadow/ combinator (deprecated)
12
+ // .container /shadow/ .content {
13
+ // background: blue;
14
+ // }
15
15
 
16
- // Test with nested selectors
17
- .wrapper /deep/ .inner /deep/ .deepest {
18
- padding: 10px;
19
- }
16
+ // // Test with nested selectors
17
+ // .wrapper /deep/ .inner /deep/ .deepest {
18
+ // padding: 10px;
19
+ // }
20
20
 
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `@plugin` fixtures load their scripts through the compiler's plugin resolver.
3
+ * Do not `require()` them while loading test configuration: those scripts are
4
+ * intentionally evaluated with the plugin-scoped Less globals (`functions`,
5
+ * `tree`, and `registerPlugin`), not with Node globals.
6
+ */
7
+ export default {
8
+ output: {
9
+ collapseNesting: true
10
+ }
11
+ };
@@ -0,0 +1,60 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .block_1 {
5
+ color: red;
6
+ background-color: red;
7
+ width: 50px;
8
+ height: 25px;
9
+ border: 1px solid #ff3333;
10
+ }
11
+ .block_1:hover {
12
+ background-color: green;
13
+ color: green;
14
+ }
15
+ .block_1 .one {
16
+ background: red;
17
+ }
18
+ .block_1 {
19
+ content: "red";
20
+ prop: red;
21
+ }
22
+ .block_2 {
23
+ color: red;
24
+ }
25
+ .block_2 .two {
26
+ background-color: blue;
27
+ }
28
+ .block_2 {
29
+ color: blue;
30
+ }
31
+ .block_3 {
32
+ color: red;
33
+ color: yellow;
34
+ }
35
+ .block_3 .three {
36
+ background-color: blue;
37
+ }
38
+ .block_3 {
39
+ color: blue;
40
+ }
41
+ .block_4 {
42
+ color: red;
43
+ color: yellow;
44
+ }
45
+ .block_4 .four {
46
+ background-color: yellow;
47
+ }
48
+ .block_4 {
49
+ color: blue;
50
+ }
51
+ a {
52
+ background-color: red, foo;
53
+ }
54
+ ab {
55
+ background: red, foo;
56
+ }
57
+ .value_as_property {
58
+ prop1: color;
59
+ color: #FF0000;
60
+ }
@@ -4,8 +4,6 @@
4
4
  width: 50px;
5
5
  height: 25px;
6
6
  border: 1px solid #ff3333;
7
- content: "red";
8
- prop: red;
9
7
  }
10
8
  .block_1:hover {
11
9
  background-color: green;
@@ -14,29 +12,39 @@
14
12
  .block_1 .one {
15
13
  background: red;
16
14
  }
15
+ .block_1 {
16
+ content: "red";
17
+ prop: red;
18
+ }
17
19
  .block_2 {
18
20
  color: red;
19
- color: blue;
20
21
  }
21
22
  .block_2 .two {
22
23
  background-color: blue;
23
24
  }
25
+ .block_2 {
26
+ color: blue;
27
+ }
24
28
  .block_3 {
25
29
  color: red;
26
- color: yellow;
27
- color: blue;
28
30
  }
29
31
  .block_3 .three {
30
32
  background-color: blue;
31
33
  }
34
+ .block_3 {
35
+ color: yellow;
36
+ color: blue;
37
+ }
32
38
  .block_4 {
33
39
  color: red;
34
- color: blue;
35
- color: yellow;
36
40
  }
37
41
  .block_4 .four {
38
42
  background-color: yellow;
39
43
  }
44
+ .block_4 {
45
+ color: blue;
46
+ color: yellow;
47
+ }
40
48
  a {
41
49
  background-color: red, foo;
42
50
  }
@@ -0,0 +1,24 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ pi-test {
5
+ border: 0;
6
+ @not-variable: @not-variable;
7
+ ufo-width: 50%;
8
+ *-z-border: 1px dashed blue;
9
+ -www-border-top: 2px;
10
+ radius-is-not-a-border: true;
11
+ border-top-left-radius: 2em;
12
+ border-top-red-radius-: 3pt;
13
+ global-local-mixer-property: strong;
14
+ }
15
+ pi-test-merge {
16
+ pre-property-ish: high, middle, low, base;
17
+ pre-property-ish+: nice try dude;
18
+ }
19
+ pi-indirect-vars {
20
+ auto: auto;
21
+ }
22
+ pi-complex-values {
23
+ 3px rgba(255, 255, 0, 0.5), 3.141592653589793 /* foo */3px rgba(255, 255, 0, 0.5), 3.141592653589793 /* foo */: none;
24
+ }
@@ -17,5 +17,5 @@ pi-indirect-vars {
17
17
  auto: auto;
18
18
  }
19
19
  pi-complex-values {
20
- 3px rgba(255, 255, 0, 0.5), 3.141592653589793 /* foo */3px rgba(255, 255, 0, 0.5), 3.141592653589793 /* foo */: none;
20
+ 3px rgba(255, 255, 0, 0.5), 3.1415926536 /* foo */3px rgba(255, 255, 0, 0.5), 3.1415926536 /* foo */: none;
21
21
  }
@@ -5,7 +5,9 @@ pi-test {
5
5
  @bb: top;
6
6
  @c_c: left;
7
7
  @d-d4: radius;
8
- @-: -;
8
+ // Dash-only variable names are removed in Less 5. Keep this fixture on
9
+ // the supported interpolation path with an ordinary variable instead.
10
+ @dash: -;
9
11
 
10
12
  @var: ~'@not-variable';
11
13
 
@@ -16,7 +18,7 @@ pi-test {
16
18
  -www-@{a}-@{bb}: 2px;
17
19
  @{d-d4}-is-not-a-@{a}:true;
18
20
  @{a}-@{bb}-@{c_c}-@{d-d4} : 2em;
19
- @{a}@{-}@{bb}@{-}red@{-}@{d-d4}-: 3pt;
21
+ @{a}@{dash}@{bb}@{dash}red@{dash}@{d-d4}-: 3pt;
20
22
 
21
23
  .mixin(mixer);
22
24
  .merge(ish, base);
@@ -0,0 +1,7 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .test-important {
5
+ color: red!important;
6
+ background: red !important;
7
+ }
@@ -1,4 +1,4 @@
1
1
  .test-important {
2
- color: red!important;
2
+ color: red !important;
3
3
  background: red !important;
4
4
  }
@@ -0,0 +1,31 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ #first > .one > #second .two > #deux {
5
+ width: 50%;
6
+ }
7
+ #first > .one > #second .two > #deux #third:focus {
8
+ color: black;
9
+ }
10
+ #first > .one > #second .two > #deux #third:focus #fifth > #sixth .seventh #eighth + #ninth {
11
+ color: purple;
12
+ }
13
+ #first > .one > #second .two > #deux #third {
14
+ height: 100%;
15
+ }
16
+ #first > .one > #second .two > #deux #fourth,
17
+ #first > .one > #second .two > #deux #five,
18
+ #first > .one > #second .two > #deux #six {
19
+ color: #110000;
20
+ }
21
+ :is(#first > .one > #second .two > #deux #fourth, #first > .one > #second .two > #deux #five, #first > .one > #second .two > #deux #six) .seven,
22
+ :is(#first > .one > #second .two > #deux #fourth, #first > .one > #second .two > #deux #five, #first > .one > #second .two > #deux #six) .eight > #nine {
23
+ border: 1px solid black;
24
+ }
25
+ :is(#first > .one > #second .two > #deux #fourth, #first > .one > #second .two > #deux #five, #first > .one > #second .two > #deux #six) #ten {
26
+ color: red;
27
+ }
28
+ #first > .one {
29
+ font-size: 2em;
30
+ hasOwnProperty: blue;
31
+ }
@@ -1,34 +1,34 @@
1
1
  #first > .one {
2
+ > #second .two > #deux {
3
+ width: 50%;
4
+ #third {
5
+ &:focus {
6
+ color: black;
7
+ #fifth {
8
+ > #sixth {
9
+ .seventh #eighth {
10
+ + #ninth {
11
+ color: purple;
12
+ }
13
+ }
14
+ }
15
+ }
16
+ }
17
+ height: 100%;
18
+ }
19
+ #fourth,
20
+ #five,
21
+ #six {
22
+ color: #110000;
23
+ .seven,
24
+ .eight > #nine {
25
+ border: 1px solid black;
26
+ }
27
+ #ten {
28
+ color: red;
29
+ }
30
+ }
31
+ }
2
32
  font-size: 2em;
3
33
  hasOwnProperty: blue;
4
34
  }
5
- #first > .one > #second .two > #deux {
6
- width: 50%;
7
- }
8
- #first > .one > #second .two > #deux #third {
9
- height: 100%;
10
- }
11
- #first > .one > #second .two > #deux #third:focus {
12
- color: black;
13
- }
14
- #first > .one > #second .two > #deux #third:focus #fifth > #sixth .seventh #eighth + #ninth {
15
- color: purple;
16
- }
17
- #first > .one > #second .two > #deux #fourth,
18
- #first > .one > #second .two > #deux #five,
19
- #first > .one > #second .two > #deux #six {
20
- color: #110000;
21
- }
22
- #first > .one > #second .two > #deux #fourth .seven,
23
- #first > .one > #second .two > #deux #five .seven,
24
- #first > .one > #second .two > #deux #six .seven,
25
- #first > .one > #second .two > #deux #fourth .eight > #nine,
26
- #first > .one > #second .two > #deux #five .eight > #nine,
27
- #first > .one > #second .two > #deux #six .eight > #nine {
28
- border: 1px solid black;
29
- }
30
- #first > .one > #second .two > #deux #fourth #ten,
31
- #first > .one > #second .two > #deux #five #ten,
32
- #first > .one > #second .two > #deux #six #ten {
33
- color: red;
34
- }
@@ -0,0 +1,5 @@
1
+ export default {
2
+ output: [
3
+ { file: '{name}.css', collapseNesting: false }
4
+ ]
5
+ }
@@ -0,0 +1,41 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .tiny-scope {
5
+ color: #989;
6
+ }
7
+ .scope1 {
8
+ color: blue;
9
+ border-color: black;
10
+ }
11
+ .scope1 .scope2 {
12
+ color: blue;
13
+ }
14
+ .scope1 .scope2 .scope3 {
15
+ color: red;
16
+ border-color: black;
17
+ background-color: white;
18
+ }
19
+ .scope {
20
+ scoped-val: green;
21
+ }
22
+ .heightIsSet {
23
+ height: 1024px;
24
+ }
25
+ .useHeightInMixinCall {
26
+ mixin-height: 1024px;
27
+ }
28
+ .imported {
29
+ exists: true;
30
+ }
31
+ .testImported {
32
+ exists: true;
33
+ }
34
+ #allAreUsedHere {
35
+ default: 'top level';
36
+ scope: 'top level';
37
+ sub-scope-only: 'inside';
38
+ }
39
+ #parentSelectorScope {
40
+ prop: white;
41
+ }
@@ -1,5 +1,5 @@
1
1
  .tiny-scope {
2
- color: #989;
2
+ color: blue;
3
3
  }
4
4
  .scope1 {
5
5
  color: blue;
@@ -0,0 +1,8 @@
1
+ module.exports = {
2
+ compile: {
3
+ // [jess R16] this fixture exercises the legacy Less caller-scope read
4
+ // (a mixin/detached-ruleset body reading a caller-local variable), which is
5
+ // OFF by default in jess v5; opt in so the fixture keeps its Less-4.x behavior.
6
+ allowCallerScope: true
7
+ }
8
+ };
@@ -1,9 +1,4 @@
1
- h1 a:hover,
2
- h2 a:hover,
3
- h3 a:hover,
4
- h1 p:hover,
5
- h2 p:hover,
6
- h3 p:hover {
1
+ :is(h1 a, h2 a, h3 a, h1 p, h2 p, h3 p):hover {
7
2
  color: red;
8
3
  }
9
4
  #all {
@@ -43,20 +38,17 @@ div a {
43
38
  p a span {
44
39
  color: yellow;
45
40
  }
46
- .foo .bar .qux,
47
- .foo .baz .qux {
41
+ :is(.foo .bar, .foo .baz) .qux {
48
42
  display: block;
49
43
  }
50
- .qux .foo .bar,
51
- .qux .foo .baz {
44
+ .qux :is(.foo .bar, .foo .baz) {
52
45
  display: inline;
53
46
  }
54
47
  .qux.foo .bar,
55
48
  .qux.foo .baz {
56
49
  display: inline-block;
57
50
  }
58
- .qux .foo .bar .biz,
59
- .qux .foo .baz .biz {
51
+ .qux :is(.foo .bar, .foo .baz) .biz {
60
52
  display: none;
61
53
  }
62
54
  .a.b.c {
@@ -73,32 +65,12 @@ p a span {
73
65
  }
74
66
  .foo + .foo {
75
67
  background: amber;
76
- }
77
- .foo + .foo {
78
68
  background: amber;
79
69
  }
80
- .foo + .foo,
81
- .foo + .bar,
82
- .bar + .foo,
83
- .bar + .bar {
70
+ :is(.foo, .bar) + :is(.foo, .bar) {
84
71
  background: amber;
85
72
  }
86
- .foo a > .foo a,
87
- .foo a > .bar a,
88
- .foo a > .foo b,
89
- .foo a > .bar b,
90
- .bar a > .foo a,
91
- .bar a > .bar a,
92
- .bar a > .foo b,
93
- .bar a > .bar b,
94
- .foo b > .foo a,
95
- .foo b > .bar a,
96
- .foo b > .foo b,
97
- .foo b > .bar b,
98
- .bar b > .foo a,
99
- .bar b > .bar a,
100
- .bar b > .foo b,
101
- .bar b > .bar b {
73
+ :is(.foo a, .bar a, .foo b, .bar b) > :is(.foo a, .bar a, .foo b, .bar b) {
102
74
  background: amber;
103
75
  }
104
76
  .other ::fnord {
@@ -178,8 +150,8 @@ blank blank blank blank blank blank blank blank blank blank blank blank blank bl
178
150
  test: global scope;
179
151
  }
180
152
  .extend-this,
181
- .active.first-level .second-level,
182
- .first-level .second-level.active2 {
153
+ .active:is(.first-level .second-level),
154
+ :is(.first-level .second-level).active2 {
183
155
  content: '\2661';
184
156
  }
185
157
  .x:is(.x.a) {
@@ -197,16 +169,16 @@ a:is(.b, :is(.c)) {
197
169
  a:is(.b, :is(.c), :has(div)) {
198
170
  color: red;
199
171
  }
200
- :is(:not(:has(>.foo)), :has(>.foo.bar)) {
172
+ :is(:not(:has(> .foo)), :has(> .foo.bar)) {
201
173
  overflow: clip;
202
174
  }
203
- :matches(:not(:has(>.foo)), :has(>.foo.bar)) {
175
+ :matches(:not(:has(> .foo)), :has(> .foo.bar)) {
204
176
  overflow: clip;
205
177
  }
206
- :where(:not(:has(>.foo)), :has(>.foo.bar)) {
178
+ :where(:not(:has(> .foo)), :has(> .foo.bar)) {
207
179
  overflow: clip;
208
180
  }
209
- :is(:has(>.foo + .bar), :has(>.baz ~ .qux), :not(:has(.quux))) {
181
+ :is(:has(> .foo + .bar), :has(> .baz ~ .qux), :not(:has(.quux))) {
210
182
  color: blue;
211
183
  }
212
184
  :where(.a, .b, .c) {
@@ -215,7 +187,7 @@ a:is(.b, :is(.c), :has(div)) {
215
187
  :not(.a, .b, .c) {
216
188
  color: green;
217
189
  }
218
- :where(:is(.a, .b), :has(>.c)) {
190
+ :where(:is(.a, .b), :has(> .c)) {
219
191
  color: blue;
220
192
  }
221
193
  :is(:where(:has(.foo)), :not(:has(.bar))) {
@@ -4,6 +4,6 @@ module.exports = {
4
4
  "relativeUrls": true,
5
5
  "silent": true,
6
6
  "javascriptEnabled": true
7
- }
7
+ }
8
8
  }
9
9
  };
@@ -0,0 +1,8 @@
1
+ export default {
2
+ compile: {
3
+ mathMode: 'always'
4
+ },
5
+ output: {
6
+ collapseNesting: true,
7
+ },
8
+ };
@@ -0,0 +1,58 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .units-extended {
5
+ width: 1px;
6
+ same-unit-as-previously: 1px;
7
+ square-pixel-divided: 1px;
8
+ odd-unit: 2;
9
+ percentage: 500%;
10
+ pixels: 500px;
11
+ conversion-metric-a: 30mm;
12
+ conversion-metric-b: 3cm;
13
+ conversion-imperial: 3in;
14
+ /* stylelint-disable-next-line unit-no-unknown -- historical Less 4 custom-unit output */
15
+ custom-unit: 420octocats;
16
+ /* stylelint-disable-next-line unit-no-unknown -- historical Less 4 custom-unit output */
17
+ custom-unit-cancelling: 18dogs;
18
+ mix-units: 2px;
19
+ invalid-units: 1px;
20
+ }
21
+ .units-extended .fallback {
22
+ div-px-1: 10px;
23
+ div-px-2: 1px;
24
+ sub-px-1: 12.6px;
25
+ sub-cm-1: 9.666625cm;
26
+ mul-px-1: 19.6px;
27
+ mul-em-1: 19.6em;
28
+ mul-em-2: 196em;
29
+ mul-cm-1: 196cm;
30
+ add-px-1: 15.4px;
31
+ add-px-2: 393.35275591px;
32
+ mul-px-2: 140px;
33
+ mul-px-3: 140px;
34
+ }
35
+ .css-custom-properties {
36
+ --tw-pan-x: ;
37
+ --tw-pan-y: ;
38
+ --tw-pinch-zoom: ;
39
+ --tw-scroll-snap-strictness: proximity;
40
+ }
41
+ .variable-interpolation .radio_checked {
42
+ border-color: #fff;
43
+ }
44
+ .each-with-variables div#apple {
45
+ color: blue;
46
+ }
47
+ .each-with-variables div#banana {
48
+ color: blue;
49
+ }
50
+ .each-with-variables div#cherry {
51
+ color: blue;
52
+ }
53
+ .each-with-variables div#carrot {
54
+ color: blue;
55
+ }
56
+ .each-with-variables div#potato {
57
+ color: blue;
58
+ }
@@ -1,9 +1,6 @@
1
- .alpha {
2
- filter: alpha(opacity=42);
3
- }
4
1
  .units-extended {
5
2
  width: 1px;
6
- same-unit-as-previously: 1px;
3
+ same-unit-as-previously: 1;
7
4
  square-pixel-divided: 1px;
8
5
  odd-unit: 2;
9
6
  percentage: 500%;
@@ -13,22 +10,22 @@
13
10
  conversion-imperial: 3in;
14
11
  custom-unit: 420octocats;
15
12
  custom-unit-cancelling: 18dogs;
16
- mix-units: 2px;
17
- invalid-units: 1px;
13
+ mix-units: calc(1px + 1em);
14
+ invalid-units: calc(1px * 1px);
18
15
  }
19
16
  .units-extended .fallback {
20
- div-px-1: 10px;
21
- div-px-2: 1px;
22
- sub-px-1: 12.6px;
23
- sub-cm-1: 9.666625cm;
24
- mul-px-1: 19.6px;
25
- mul-em-1: 19.6em;
26
- mul-em-2: 196em;
27
- mul-cm-1: 196cm;
28
- add-px-1: 15.4px;
29
- add-px-2: 393.35275591px;
30
- mul-px-2: 140px;
31
- mul-px-3: 140px;
17
+ div-px-1: calc(14px / 1.4em);
18
+ div-px-2: calc(14px / 1.4em / 10cm);
19
+ sub-px-1: calc(14px - 1.4em);
20
+ sub-cm-1: calc(10cm - (14px - 1.4em));
21
+ mul-px-1: calc(14px * 1.4em);
22
+ mul-em-1: calc(1.4em * 14px);
23
+ mul-em-2: calc(1.4em * 14px * 10cm);
24
+ mul-cm-1: calc(10cm * 1.4em * 14px);
25
+ add-px-1: calc(14px + 1.4em);
26
+ add-px-2: calc((14px + 1.4em) + 10cm);
27
+ mul-px-2: calc(14px * 10cm);
28
+ mul-px-3: calc(14px * 10cm);
32
29
  }
33
30
  .css-custom-properties {
34
31
  --tw-pan-x: ;
@@ -3,10 +3,11 @@
3
3
  @c: #888;
4
4
  @onePixel: 1px;
5
5
 
6
- .alpha {
7
- @var: 42;
8
- filter: alpha(opacity=@var);
9
- }
6
+ // Hasn't been supported since IE8, so removed
7
+ // .alpha {
8
+ // @var: 42;
9
+ // filter: alpha(opacity=@var);
10
+ // }
10
11
 
11
12
  .units-extended {
12
13
  width: @onePixel;
@@ -34,7 +34,7 @@
34
34
  }
35
35
  .variable-units {
36
36
  width: 1px;
37
- same-unit-as-previously: 1px;
37
+ same-unit-as-previously: 1;
38
38
  square-pixel-divided: 1px;
39
39
  odd-unit: 2;
40
40
  }
@@ -1,5 +1,6 @@
1
- @Eight: 8;
2
- @charset "UTF-@{Eight}";
1
+ // Less 5 keeps @charset as a static CSS directive. Dynamic charset
2
+ // interpolation is covered by the alpha diagnostic contract instead.
3
+ @charset "UTF-8";
3
4
 
4
5
  @ns: less;
5
6
  @namespace @{ns} "http://lesscss.org";