@less/test-data 4.9.0 → 5.0.0-alpha.2

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 (211) 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/styles.config.cjs +1 -1
  5. package/tests-config/compression/styles.config.cjs +1 -1
  6. package/tests-config/debug/all/styles.config.cjs +1 -1
  7. package/tests-config/debug/comments/styles.config.cjs +1 -1
  8. package/tests-config/debug/mediaquery/styles.config.cjs +1 -1
  9. package/tests-config/filemanagerPlugin/styles.config.cjs +1 -1
  10. package/tests-config/functions-harness/functions-harness.css +8 -0
  11. package/tests-config/functions-harness/functions-harness.less +10 -0
  12. package/tests-config/js-type-errors/js-type-error-2.txt +4 -0
  13. package/tests-config/js-type-errors/js-type-error.txt +1 -1
  14. package/tests-config/namespacing/legacy/namespacing-7.css +15 -0
  15. package/tests-config/namespacing/namespacing-5.less +3 -3
  16. package/tests-config/namespacing/namespacing-7.css +16 -8
  17. package/tests-config/namespacing/styles.config.cjs +4 -1
  18. package/tests-config/sourcemaps/styles.config.cjs +1 -1
  19. package/tests-config/sourcemaps-variable-selector/styles.config.cjs +1 -1
  20. package/tests-config/strict-imports/legacy/strict-imports.css +14 -0
  21. package/tests-config/strict-imports/strict-imports.css +4 -2
  22. package/tests-config/strict-imports/styles.config.cjs +6 -5
  23. package/tests-config/units/no-strict/legacy/no-strict.css +24 -0
  24. package/tests-config/units/no-strict/no-strict.css +3 -3
  25. package/tests-config/url-args/legacy/urls.css +58 -0
  26. package/tests-config/url-args/urls.css +2 -1
  27. package/tests-error/eval/ampersand-merge-template-invalid.less +7 -0
  28. package/tests-error/eval/ampersand-merge-template-invalid.txt +1 -0
  29. package/tests-error/eval/at-rules-undefined-var.less +1 -1
  30. package/tests-error/eval/property-undefined.txt +1 -0
  31. package/tests-error/eval/recursive-property.txt +1 -0
  32. package/tests-unit/at-rule-variable-deprecated/at-rule-variable-deprecated.css +0 -38
  33. package/tests-unit/at-rule-variable-deprecated/at-rule-variable-deprecated.less +0 -70
  34. package/tests-unit/at-rule-variable-interpolation/at-rule-variable-interpolation.css +45 -0
  35. package/tests-unit/at-rule-variable-interpolation/at-rule-variable-interpolation.less +72 -0
  36. package/tests-unit/at-rules/at-rules.css +8 -6
  37. package/tests-unit/at-rules/legacy/at-rules.css +110 -0
  38. package/tests-unit/at-rules/styles.config.ts +5 -0
  39. package/tests-unit/at-rules-bubbling/at-rules-bubbling.css +121 -0
  40. package/tests-unit/at-rules-bubbling/legacy/at-rules-bubbling.css +122 -0
  41. package/tests-unit/at-rules-keyword-comments/at-rules-keyword-comments.css +2 -5
  42. package/tests-unit/at-rules-keyword-comments/legacy/at-rules-keyword-comments.css +12 -0
  43. package/tests-unit/at-rules-targeted/at-rules-targeted.css +5 -3
  44. package/tests-unit/at-rules-targeted/legacy/at-rules-targeted.css +55 -0
  45. package/tests-unit/calc/calc.css +8 -8
  46. package/tests-unit/calc/calc.less +1 -0
  47. package/tests-unit/calc/legacy/calc.css +32 -0
  48. package/tests-unit/color-functions/basic.css +1 -1
  49. package/tests-unit/color-functions/comprehensive.css +5 -5
  50. package/tests-unit/color-functions/comprehensive.less +1 -0
  51. package/tests-unit/color-functions/formats.css +0 -12
  52. package/tests-unit/color-functions/formats.less +0 -15
  53. package/tests-unit/color-functions/legacy/basic.css +21 -0
  54. package/tests-unit/color-functions/legacy/comprehensive.css +48 -0
  55. package/tests-unit/color-functions/legacy/modern-syntax.css +9 -0
  56. package/tests-unit/color-functions/legacy/operations.css +18 -0
  57. package/tests-unit/color-functions/legacy/rgba.css +20 -0
  58. package/tests-unit/color-functions/modern-syntax.css +4 -4
  59. package/tests-unit/color-functions/modern-syntax.less +1 -0
  60. package/tests-unit/color-functions/operations.less +1 -0
  61. package/tests-unit/color-functions/rgba.css +3 -3
  62. package/tests-unit/color-functions/rgba.less +3 -1
  63. package/tests-unit/comments/comments.css +5 -6
  64. package/tests-unit/comments/comments.less +2 -1
  65. package/tests-unit/comments/comments2.css +4 -6
  66. package/tests-unit/comments/comments2.less +3 -0
  67. package/tests-unit/comments/legacy/comments.css +86 -0
  68. package/tests-unit/comments/legacy/comments2.css +21 -0
  69. package/tests-unit/container/container.css +40 -83
  70. package/tests-unit/container/container.less +28 -82
  71. package/tests-unit/container/legacy/container.css +273 -0
  72. package/tests-unit/container/styles.config.ts +8 -0
  73. package/tests-unit/css-3/css-3.css +4 -4
  74. package/tests-unit/css-3/legacy/css-3.css +147 -0
  75. package/tests-unit/css-escapes/css-escapes.css +4 -4
  76. package/tests-unit/css-escapes/legacy/css-escapes.css +34 -0
  77. package/tests-unit/css-escapes/styles.config.ts +5 -0
  78. package/tests-unit/css-grid/css-grid.css +4 -1
  79. package/tests-unit/css-grid/legacy/css-grid.css +27 -0
  80. package/tests-unit/css-guards/css-guards.less +2 -1
  81. package/tests-unit/detached-rulesets/detached-rulesets.css +26 -18
  82. package/tests-unit/detached-rulesets/legacy/detached-rulesets.css +79 -0
  83. package/tests-unit/directives-bubbling/directives-bubbling.css +16 -14
  84. package/tests-unit/extend/extend.css +22 -28
  85. package/tests-unit/extend/legacy/extend.css +79 -0
  86. package/tests-unit/extend/styles.config.ts +5 -0
  87. package/tests-unit/extend-chaining/extend-chaining.css +7 -10
  88. package/tests-unit/extend-chaining/legacy/extend-chaining.css +84 -0
  89. package/tests-unit/extend-clearfix/extend-clearfix.css +1 -3
  90. package/tests-unit/extend-clearfix/extend-clearfix.less +0 -1
  91. package/tests-unit/{extend → extend-clearfix/legacy}/extend-clearfix.css +3 -0
  92. package/tests-unit/extend-exact/extend-exact.css +25 -24
  93. package/tests-unit/extend-exact/legacy/extend-exact.css +40 -0
  94. package/tests-unit/extend-exact/styles.config.ts +5 -0
  95. package/tests-unit/extend-media/extend-media.css +9 -14
  96. package/tests-unit/extend-media/legacy/extend-media.css +27 -0
  97. package/tests-unit/extend-media/styles.config.ts +5 -0
  98. package/tests-unit/extend-nest/extend-nest.css +3 -22
  99. package/tests-unit/extend-nest/legacy/extend-nest.css +60 -0
  100. package/tests-unit/extend-selector/extend-selector.css +42 -67
  101. package/tests-unit/extend-selector/extend-selector.less +0 -15
  102. package/tests-unit/extend-selector/legacy/extend-selector.css +73 -0
  103. package/tests-unit/extend-selector/styles.config.ts +5 -0
  104. package/tests-unit/extract-and-length/extract-and-length.css +6 -5
  105. package/tests-unit/extract-and-length/extract-and-length.less +7 -2
  106. package/tests-unit/extract-and-length/legacy/extract-and-length.css +137 -0
  107. package/tests-unit/functions/functions.css +5 -16
  108. package/tests-unit/functions/functions.less +8 -21
  109. package/tests-unit/functions/legacy/functions.css +244 -0
  110. package/tests-unit/functions/legacy/functions.less +296 -0
  111. package/tests-unit/functions-each/functions-each.css +4 -2
  112. package/tests-unit/import/import-reference-issues.css +6 -6
  113. package/tests-unit/import/import-reference.css +4 -2
  114. package/tests-unit/import/legacy/import-reference-issues.css +27 -0
  115. package/tests-unit/import/legacy/import-reference.css +101 -0
  116. package/tests-unit/import/styles.config.cjs +5 -4
  117. package/tests-unit/layer/layer.css +30 -28
  118. package/tests-unit/layer/legacy/layer.css +136 -0
  119. package/tests-unit/layer/styles.config.ts +5 -0
  120. package/tests-unit/math-css-vars/math-css-vars.css +1 -0
  121. package/tests-unit/math-css-vars/math-css-vars.less +1 -0
  122. package/tests-unit/media/legacy/media.css +274 -0
  123. package/tests-unit/media/media.css +49 -43
  124. package/tests-unit/media/media.less +0 -2
  125. package/tests-unit/media/styles.config.cjs +5 -0
  126. package/tests-unit/merge/merge.css +2 -2
  127. package/tests-unit/mixin-noparens/legacy/mixin-noparens.css +10 -0
  128. package/tests-unit/mixin-noparens/mixin-noparens.css +4 -2
  129. package/tests-unit/mixin-noparens/styles.config.ts +5 -0
  130. package/tests-unit/mixins/legacy/maps.css +9 -0
  131. package/tests-unit/mixins/legacy/mixins.css +147 -0
  132. package/tests-unit/mixins/maps.css +7 -5
  133. package/tests-unit/mixins/mixins.css +7 -5
  134. package/tests-unit/mixins/styles.config.ts +5 -0
  135. package/tests-unit/mixins-closure/legacy/mixins-closure.css +12 -0
  136. package/tests-unit/mixins-closure/mixins-closure.css +4 -2
  137. package/tests-unit/mixins-closure/styles.config.ts +5 -0
  138. package/tests-unit/mixins-guards/legacy/mixins-guards.css +214 -0
  139. package/tests-unit/mixins-guards/mixins-guards.css +21 -5
  140. package/tests-unit/mixins-guards/mixins-guards.less +0 -1
  141. package/tests-unit/mixins-guards/styles.config.ts +5 -0
  142. package/tests-unit/mixins-guards-default-func/legacy/mixins-guards-default-func.css +132 -0
  143. package/tests-unit/mixins-guards-default-func/mixins-guards-default-func.css +0 -2
  144. package/tests-unit/mixins-important/mixins-important.css +33 -19
  145. package/tests-unit/mixins-interpolated/legacy/mixins-interpolated.css +42 -0
  146. package/tests-unit/mixins-interpolated/mixins-interpolated.css +24 -14
  147. package/tests-unit/mixins-interpolated/styles.config.ts +5 -0
  148. package/tests-unit/mixins-nested/legacy/mixins-nested.css +17 -0
  149. package/tests-unit/mixins-nested/mixins-nested.css +16 -12
  150. package/tests-unit/mixins-nested/styles.config.ts +5 -0
  151. package/tests-unit/nesting/legacy/nesting.css +27 -0
  152. package/tests-unit/nesting/nesting-uncollapsed.css +26 -0
  153. package/tests-unit/nesting/nesting.css +1 -1
  154. package/tests-unit/nesting/styles.config.ts +6 -0
  155. package/tests-unit/operations/legacy/operations-advanced.css +36 -0
  156. package/tests-unit/operations/operations-advanced.css +1 -1
  157. package/tests-unit/operations/operations.css +4 -2
  158. package/tests-unit/parse-interpolation/legacy/parse-interpolation.css +39 -0
  159. package/tests-unit/parse-interpolation/parse-interpolation.css +72 -35
  160. package/tests-unit/parse-interpolation/parse-interpolation.less +73 -25
  161. package/tests-unit/parse-interpolation/styles.config.ts +5 -0
  162. package/tests-unit/parser-property-interp/parser-property-interp.css +1 -1
  163. package/tests-unit/parser-property-interp/parser-property-interp.less +2 -2
  164. package/tests-unit/parser-slashed-combinator/parser-slashed-combinator.css +1 -9
  165. package/tests-unit/parser-slashed-combinator/parser-slashed-combinator.less +11 -11
  166. package/tests-unit/plugin/styles.config.ts +11 -0
  167. package/tests-unit/property-accessors/legacy/property-accessors.css +60 -0
  168. package/tests-unit/property-accessors/property-accessors.css +15 -7
  169. package/tests-unit/property-name-interp/legacy/property-name-interp.css +24 -0
  170. package/tests-unit/property-name-interp/property-name-interp.css +1 -1
  171. package/tests-unit/property-name-interp/property-name-interp.less +4 -2
  172. package/tests-unit/property-targeted/legacy/property-targeted.css +7 -0
  173. package/tests-unit/property-targeted/property-targeted.css +1 -1
  174. package/tests-unit/rulesets/legacy/rulesets.css +31 -0
  175. package/tests-unit/rulesets/rulesets.css +30 -30
  176. package/tests-unit/rulesets/styles.config.ts +5 -0
  177. package/tests-unit/scope/legacy/scope.css +41 -0
  178. package/tests-unit/scope/scope.css +1 -1
  179. package/tests-unit/selectors/selectors.css +13 -41
  180. package/tests-unit/styles.config.cjs +1 -1
  181. package/tests-unit/styles.config.ts +8 -0
  182. package/tests-unit/variables/legacy/variable-advanced.css +58 -0
  183. package/tests-unit/variables/variable-advanced.css +9 -12
  184. package/tests-unit/variables/variable-advanced.less +5 -4
  185. package/tests-unit/variables/variables.css +1 -1
  186. package/tests-unit/variables-in-at-rules/variables-in-at-rules.less +3 -2
  187. package/tests-unit/whitespace/legacy/whitespace.css +45 -0
  188. package/tests-unit/whitespace/whitespace.css +3 -2
  189. package/tests-warnings/parentless-ampersand-nested.less +6 -0
  190. package/tests-warnings/parentless-ampersand-nested.txt +42 -0
  191. package/tests-warnings/parentless-ampersand.less +3 -0
  192. package/tests-warnings/parentless-ampersand.txt +21 -0
  193. package/tests-config/rootpath-escape-interpolation/rootpath-escape-interpolation.css +0 -8
  194. package/tests-config/rootpath-escape-interpolation/rootpath-escape-interpolation.less +0 -24
  195. package/tests-config/rootpath-escape-interpolation/styles.config.cjs +0 -8
  196. package/tests-config/sourcemaps/url-interpolation/styles.config.cjs +0 -9
  197. package/tests-config/sourcemaps/url-interpolation/url-interpolation.css +0 -13
  198. package/tests-config/sourcemaps/url-interpolation/url-interpolation.less +0 -24
  199. package/tests-error/parse/property-interpolation-lookup.less +0 -8
  200. package/tests-error/parse/property-interpolation-lookup.txt +0 -4
  201. package/tests-unit/extend/extend-clearfix.less +0 -19
  202. package/tests-unit/lookup-interpolation/lookup-interpolation.css +0 -60
  203. package/tests-unit/lookup-interpolation/lookup-interpolation.less +0 -127
  204. package/tests-unit/media-nested-type/media-nested-type.css +0 -40
  205. package/tests-unit/media-nested-type/media-nested-type.less +0 -51
  206. /package/tests-unit/{directives-bubbling/directives-bubbling.less → at-rules-bubbling/at-rules-bubbling.less} +0 -0
  207. /package/tests-unit/{ie-filters → ie-filters-REMOVED/legacy}/ie-filters.css +0 -0
  208. /package/tests-unit/{ie-filters → ie-filters-REMOVED/legacy}/ie-filters.less +0 -0
  209. /package/tests-unit/{javascript → javascript-REMOVED/legacy}/javascript.css +0 -0
  210. /package/tests-unit/{javascript → javascript-REMOVED/legacy}/javascript.less +0 -0
  211. /package/tests-unit/{javascript → javascript-REMOVED/legacy}/styles.config.cjs +0 -0
@@ -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%;
@@ -14,21 +11,21 @@
14
11
  custom-unit: 420octocats;
15
12
  custom-unit-cancelling: 18dogs;
16
13
  mix-units: 2px;
17
- invalid-units: 1px;
14
+ invalid-units: calc(1px * 1px);
18
15
  }
19
16
  .units-extended .fallback {
20
17
  div-px-1: 10px;
21
18
  div-px-2: 1px;
22
19
  sub-px-1: 12.6px;
23
20
  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;
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);
28
25
  add-px-1: 15.4px;
29
- add-px-2: 393.35275591px;
30
- mul-px-2: 140px;
31
- mul-px-3: 140px;
26
+ add-px-2: 393.3527559px;
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";
@@ -0,0 +1,45 @@
1
+ /* Less 4.x output, recorded when this fixture graduated to v5.
2
+ Historical record only — no test reads this file. */
3
+
4
+ .whitespace {
5
+ color: white;
6
+ }
7
+ .whitespace {
8
+ color: white;
9
+ }
10
+ .whitespace {
11
+ color: white;
12
+ }
13
+ .whitespace {
14
+ color: white;
15
+ }
16
+ .whitespace {
17
+ color: white ;
18
+ }
19
+ .white,
20
+ .space,
21
+ .mania {
22
+ color: white;
23
+ }
24
+ .no-semi-column {
25
+ color: white;
26
+ }
27
+ .no-semi-column {
28
+ color: white;
29
+ white-space: pre;
30
+ }
31
+ .no-semi-column {
32
+ border: 2px solid white;
33
+ }
34
+ .newlines {
35
+ background: the,
36
+ great,
37
+ wall;
38
+ border: 2px
39
+ solid
40
+ black;
41
+ }
42
+ .sel .newline_ws .tab_ws {
43
+ color: white;
44
+ background-position: 45 -23;
45
+ }
@@ -11,7 +11,7 @@
11
11
  color: white;
12
12
  }
13
13
  .whitespace {
14
- color: white ;
14
+ color: white;
15
15
  }
16
16
  .white,
17
17
  .space,
@@ -38,5 +38,6 @@
38
38
  }
39
39
  .sel .newline_ws .tab_ws {
40
40
  color: white;
41
- background-position: 45 -23;
41
+ background-position: 45
42
+ -23;
42
43
  }
@@ -0,0 +1,6 @@
1
+ .a {
2
+ color: red;
3
+ }
4
+ & + & {
5
+ color: blue;
6
+ }
@@ -0,0 +1,42 @@
1
+ [
2
+ {
3
+ "code": "selector/parentless-ampersand",
4
+ "phase": "eval",
5
+ "message": "Parentless ampersand ignored",
6
+ "reason": "Selector \"&+&\" uses \"&\" without an available parent selector in this context.",
7
+ "fix": "Move the selector under a real parent selector, or remove the stray \"&\".",
8
+ "file": {
9
+ "name": "parentless-ampersand-nested.less",
10
+ "path": "{path}",
11
+ "fullPath": "{path}parentless-ampersand-nested.less"
12
+ },
13
+ "filePath": "{path}parentless-ampersand-nested.less",
14
+ "line": 4,
15
+ "column": 1,
16
+ "lines": {
17
+ "3": "}",
18
+ "4": "& + & {",
19
+ "5": " color: blue;"
20
+ }
21
+ },
22
+ {
23
+ "code": "selector/parentless-ampersand",
24
+ "phase": "eval",
25
+ "message": "Parentless ampersand ignored",
26
+ "reason": "Selector \"&+&\" uses \"&\" without an available parent selector in this context.",
27
+ "fix": "Move the selector under a real parent selector, or remove the stray \"&\".",
28
+ "file": {
29
+ "name": "parentless-ampersand-nested.less",
30
+ "path": "{path}",
31
+ "fullPath": "{path}parentless-ampersand-nested.less"
32
+ },
33
+ "filePath": "{path}parentless-ampersand-nested.less",
34
+ "line": 4,
35
+ "column": 5,
36
+ "lines": {
37
+ "3": "}",
38
+ "4": "& + & {",
39
+ "5": " color: blue;"
40
+ }
41
+ }
42
+ ]
@@ -0,0 +1,3 @@
1
+ & {
2
+ color: red;
3
+ }
@@ -0,0 +1,21 @@
1
+ [
2
+ {
3
+ "code": "selector/parentless-ampersand",
4
+ "phase": "eval",
5
+ "message": "Parentless ampersand ignored",
6
+ "reason": "Selector \"&\" uses \"&\" without an available parent selector in this context.",
7
+ "fix": "Move the selector under a real parent selector, or remove the stray \"&\".",
8
+ "file": {
9
+ "name": "parentless-ampersand.less",
10
+ "path": "{path}",
11
+ "fullPath": "{path}parentless-ampersand.less"
12
+ },
13
+ "filePath": "{path}parentless-ampersand.less",
14
+ "line": 1,
15
+ "column": 1,
16
+ "lines": {
17
+ "1": "& {",
18
+ "2": " color: red;"
19
+ }
20
+ }
21
+ ]
@@ -1,8 +0,0 @@
1
- #rootpath-escape-interpolation {
2
- plain-unquoted: url(http://example.com/a\(b\)\ c/relative/path);
3
- interp-unquoted: url(http://example.com/a\(b\)\ c/images/path);
4
- lookup-unquoted: url(http://example.com/a\(b\)\ c/images/path);
5
- plain-quoted: url("http://example.com/a(b) c/relative/path");
6
- interp-quoted: url("http://example.com/a(b) c/images/path");
7
- lookup-quoted: url("http://example.com/a(b) c/images/path");
8
- }
@@ -1,24 +0,0 @@
1
- // A rewritten rootpath is escaped only for *unquoted* url() values, so the node
2
- // produced for an interpolated unquoted body must not read as quoted. Giving it a
3
- // real quote character suppressed the escaping and emitted the parentheses and
4
- // space raw, producing a malformed url().
5
- //
6
- // The rootpath here deliberately contains `(`, `)` and a space — the characters
7
- // `escapePath` handles — so quoted and unquoted forms cannot look alike.
8
-
9
- @dir: images;
10
- @paths: {
11
- dir: images;
12
- };
13
-
14
- #rootpath-escape-interpolation {
15
- // unquoted: rootpath must be escaped
16
- plain-unquoted: url(relative/path);
17
- interp-unquoted: url(@{dir}/path);
18
- lookup-unquoted: url(@{paths[dir]}/path);
19
-
20
- // quoted: rootpath must not be escaped
21
- plain-quoted: url("relative/path");
22
- interp-quoted: url("@{dir}/path");
23
- lookup-quoted: url("@{paths[dir]}/path");
24
- }
@@ -1,8 +0,0 @@
1
- module.exports = {
2
- language: {
3
- less: {
4
- "rootpath": "http://example.com/a(b) c/",
5
- "rewriteUrls": "all"
6
- }
7
- }
8
- };
@@ -1,9 +0,0 @@
1
- module.exports = {
2
- language: {
3
- less: {
4
- math: 'strict',
5
- strictUnits: true,
6
- sourceMap: true
7
- }
8
- }
9
- };
@@ -1,13 +0,0 @@
1
- .literal {
2
- background: url(literal/one.png);
3
- }
4
- .interpolated {
5
- background: url(images/two.png);
6
- }
7
- .interpolated-lookup {
8
- background: url(assets/three.png);
9
- }
10
- .quoted-interpolated {
11
- background: url("images/four.png");
12
- }
13
- /*# sourceMappingURL=url-interpolation.css.map */
@@ -1,24 +0,0 @@
1
- // Interpolated unquoted url() bodies are parsed into an escaped Quoted rather
2
- // than the Anonymous node used for literal ones, so this pins that the swap does
3
- // not change how url() values are mapped. All three spellings should keep the
4
- // same mapping structure as each other.
5
- @dir: images;
6
- @paths: {
7
- dir: assets;
8
- };
9
-
10
- .literal {
11
- background: url(literal/one.png);
12
- }
13
-
14
- .interpolated {
15
- background: url(@{dir}/two.png);
16
- }
17
-
18
- .interpolated-lookup {
19
- background: url(@{paths[dir]}/three.png);
20
- }
21
-
22
- .quoted-interpolated {
23
- background: url("@{dir}/four.png");
24
- }
@@ -1,8 +0,0 @@
1
- // Properties have no lookup grammar: `entities.property` parses `$name` with no
2
- // chaining, and nothing can hold a ruleset to look into. `${name[key]}` must
3
- // therefore be rejected rather than reaching the property resolver, where it
4
- // produced a misleading undefined-property error for undefined syntax.
5
- .a {
6
- color: red;
7
- ${color[k]}: value;
8
- }
@@ -1,4 +0,0 @@
1
- ParseError: Unrecognised input in {path}property-interpolation-lookup.less on line 7, column 3:
2
- 6 color: red;
3
- 7 ${color[k]}: value;
4
- 8 }
@@ -1,19 +0,0 @@
1
- .clearfix {
2
- *zoom: 1;
3
- &:after {
4
- content: '';
5
- display: block;
6
- clear: both;
7
- height: 0;
8
- }
9
- }
10
-
11
- .foo {
12
- &:extend(.clearfix all);
13
- color: red;
14
- }
15
-
16
- .bar {
17
- &:extend(.clearfix all);
18
- color: blue;
19
- }
@@ -1,60 +0,0 @@
1
- .quoted {
2
- single: "card";
3
- chained: "inner";
4
- quoted-value: "deep";
5
- indirect-key: "indirect-hit";
6
- empty-key: "tail";
7
- chained-empty-key: "nested-tail";
8
- surrounded: "a-card-b";
9
- twice: "card/blue";
10
- }
11
- .url {
12
- quoted: url("/assets/img/hero.png");
13
- unquoted: url(/assets/img/plain.png);
14
- unquoted-plain: url(/plain/no-lookup.png);
15
- untouched: url(/static/literal.png);
16
- untouched-quoted: url("/static/literal.png");
17
- data-uri: url(data:image/svg+xml;base64,AAAA);
18
- }
19
- .property-interpolation {
20
- color: red;
21
- from-property: "red";
22
- surrounded: "a-red-b";
23
- bare: red;
24
- }
25
- .card {
26
- a: b;
27
- }
28
- .inner {
29
- c: d;
30
- }
31
- .property {
32
- card: from-lookup;
33
- inner: from-chained-lookup;
34
- }
35
- @keyframes card {
36
- from {
37
- opacity: 0;
38
- }
39
- to {
40
- opacity: 1;
41
- }
42
- }
43
- @media (min-width: 768px) {
44
- .responsive {
45
- e: f;
46
- }
47
- }
48
- .custom-property {
49
- --from-lookup: /assets/img;
50
- --from-chained: inner;
51
- }
52
- .recursive {
53
- g: "card";
54
- }
55
- .plain {
56
- h: "name";
57
- }
58
- .name {
59
- i: j;
60
- }