less 1.7.4 → 1.7.5

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 (47) hide show
  1. package/.idea/jsLibraryMappings.xml +0 -1
  2. package/.idea/workspace.xml +160 -202
  3. package/CHANGELOG.md +13 -0
  4. package/Gruntfile.js +0 -12
  5. package/README.md +53 -53
  6. package/bin/lessc +4 -1
  7. package/bower.json +2 -2
  8. package/dist/less-1.7.4.js +59 -59
  9. package/dist/less-1.7.4.min.js +12 -12
  10. package/dist/less-1.7.5.js +8008 -0
  11. package/dist/less-1.7.5.min.js +16 -0
  12. package/dist/less-rhino-1.7.4.js +48 -48
  13. package/dist/less-rhino-1.7.5.js +9383 -0
  14. package/dist/lessc-rhino-1.7.4.js +2 -2
  15. package/dist/lessc-rhino-1.7.5.js +449 -0
  16. package/lib/less/functions.js +8 -1
  17. package/lib/less/import-visitor.js +2 -2
  18. package/lib/less/index.js +3 -3
  19. package/lib/less/parser/parser.js.orig +1747 -0
  20. package/lib/less/parser.js +27 -1
  21. package/lib/less/tree/directive.js +4 -1
  22. package/lib/less/tree/element.js +6 -22
  23. package/lib/less/tree/rule.js +7 -4
  24. package/lib/less/tree/rule.js.orig +164 -0
  25. package/lib/less/tree/ruleset.js +8 -1
  26. package/lib/less/tree/selector.js +1 -1
  27. package/package.json +6 -6
  28. package/test/browser/less.js +7275 -6947
  29. package/test/css/comments.css +8 -0
  30. package/test/css/css-3.css +6 -0
  31. package/test/css/import.css +5 -0
  32. package/test/css/mixins.css +3 -0
  33. package/test/css/property-name-interp.css +1 -0
  34. package/test/css/urls.css +1 -0
  35. package/test/less/comments.less +14 -1
  36. package/test/less/css-3.less +7 -0
  37. package/test/less/errors/import-malformed.less +1 -1
  38. package/test/less/errors/import-malformed.txt +3 -3
  39. package/test/less/import.less +8 -2
  40. package/test/less/mixins.less +1 -0
  41. package/test/less/property-name-interp.less +4 -1
  42. package/test/less/property-name-interp.less.orig +59 -0
  43. package/test/less/urls.less +2 -1
  44. package/test/modify-vars.js +17 -0
  45. package/tmp/browser/test-runner-main.html +4 -0
  46. package/tmp/less.js +8295 -0
  47. package/build/README.md +0 -53
@@ -55,6 +55,14 @@
55
55
  .test {
56
56
  color: 1px;
57
57
  }
58
+ .sr-only-focusable {
59
+ clip: auto;
60
+ }
61
+ @-webkit-keyframes hover {
62
+ 0% {
63
+ color: red;
64
+ }
65
+ }
58
66
  #last {
59
67
  color: #0000ff;
60
68
  }
@@ -127,6 +127,12 @@ h1 {
127
127
  body ^^ .shadow {
128
128
  display: done;
129
129
  }
130
+ :host(.sel .a),
131
+ :host-context(.sel .b),
132
+ .sel /deep/ .b,
133
+ ::content .sel {
134
+ type: shadow-dom;
135
+ }
130
136
  #issue2066 {
131
137
  background: url('/images/icon-team.svg') 0 0 / contain;
132
138
  }
@@ -35,3 +35,8 @@
35
35
  color: yellow;
36
36
  }
37
37
  }
38
+ @media print {
39
+ body {
40
+ width: 100%;
41
+ }
42
+ }
@@ -7,6 +7,9 @@
7
7
  .borders {
8
8
  border-style: dashed;
9
9
  }
10
+ .mixin > * {
11
+ border: do not match me;
12
+ }
10
13
  #namespace .borders {
11
14
  border-style: dotted;
12
15
  }
@@ -1,5 +1,6 @@
1
1
  pi-test {
2
2
  border: 0;
3
+ @not-variable: @not-variable;
3
4
  ufo-width: 50%;
4
5
  *-z-border: 1px dashed blue;
5
6
  -www-border-top: 2px;
package/test/css/urls.css CHANGED
@@ -53,6 +53,7 @@
53
53
  }
54
54
  #data-uri {
55
55
  uri: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==");
56
+ uri-fragment: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==#fragment");
56
57
  }
57
58
  #data-uri-guess {
58
59
  uri: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==");
@@ -62,7 +62,7 @@
62
62
  */
63
63
 
64
64
  .selector /* .with */, .lots, /* of */ .comments {
65
- color: grey, /* blue */ orange;
65
+ color/* survive */ /* me too */: grey, /* blue */ orange;
66
66
  -webkit-border-radius: 2px /* webkit only */;
67
67
  -moz-border-radius: (2px * 4) /* moz only with operation */;
68
68
  }
@@ -77,6 +77,19 @@
77
77
  }
78
78
  .mixin_def_with_colors();
79
79
 
80
+ // .s when
81
+ //R/2
82
+
83
+ .sr-only-focusable {
84
+ clip: auto;
85
+ }
86
+
87
+ @-webkit-keyframes /* Safari */ hover /* and Chrome */ {
88
+ 0% {
89
+ color: red;
90
+ }
91
+ }
92
+
80
93
  #last { color: blue }
81
94
  //
82
95
 
@@ -128,6 +128,13 @@ body ^^ .shadow {
128
128
  display: done;
129
129
  }
130
130
 
131
+ :host(.sel .a),
132
+ :host-context(.sel .b),
133
+ .sel /deep/ .b,
134
+ ::content .sel {
135
+ type: shadow-dom;
136
+ }
137
+
131
138
  #issue2066 {
132
139
  background: url('/images/icon-team.svg') 0 0 / contain;
133
140
  }
@@ -1 +1 @@
1
- @import malformed "this-statement-is-invalid.less";
1
+ @import malformed "this-statement-is-invalid.less";
@@ -1,3 +1,3 @@
1
- SyntaxError: malformed import statement in {path}import-malformed.less on line 1, column 1:
2
- 1 @import malformed "this-statement-is-invalid.less";
3
- 2
1
+ SyntaxError: malformed import statement in {path}import-malformed.less on line 1, column 1:
2
+ 1 @import malformed "this-statement-is-invalid.less";
3
+ 2
@@ -1,4 +1,3 @@
1
- @charset "UTF-8"; // stay on top #2013
2
1
  @import url(http://fonts.googleapis.com/css?family=Open+Sans);
3
2
 
4
3
  @import url(/absolute/something.css) screen and (color) and (max-width: 600px);
@@ -19,4 +18,11 @@
19
18
 
20
19
  @import (multiple) "import/import-test-e" screen and (max-width: 602px);
21
20
 
22
- @import (less, multiple) url("import/import-test-d.css") screen and (max-width: 603px);
21
+ @import (less, multiple) url("import/import-test-d.css") screen and (max-width: 603px);
22
+
23
+ @media print {
24
+ @import (multiple) "import/import-test-e";
25
+ }
26
+
27
+ @charset "UTF-8"; // climb on top #2126
28
+
@@ -1,6 +1,7 @@
1
1
  .mixin { border: 1px solid black; }
2
2
  .mixout { border-color: orange; }
3
3
  .borders { border-style: dashed; }
4
+ .mixin > * { border: do not match me; }
4
5
 
5
6
  #namespace {
6
7
  .borders {
@@ -6,8 +6,11 @@ pi-test {
6
6
  @c_c: left;
7
7
  @d-d4: radius;
8
8
  @-: -;
9
-
9
+
10
+ @var: ~'@not-variable';
11
+
10
12
  @{a}: 0;
13
+ @{var}: @var;
11
14
  @{prefix}width: 50%;
12
15
  *-z-@{a} :1px dashed blue;
13
16
  -www-@{a}-@{bb}: 2px;
@@ -0,0 +1,59 @@
1
+
2
+ pi-test {
3
+ @prefix: ufo-;
4
+ @a: border;
5
+ @bb: top;
6
+ @c_c: left;
7
+ @d-d4: radius;
8
+ @-: -;
9
+
10
+ <<<<<<< HEAD
11
+ =======
12
+ @var: ~'@not-variable';
13
+
14
+ >>>>>>> origin/master
15
+ @{a}: 0;
16
+ @{var}: @var;
17
+ @{prefix}width: 50%;
18
+ *-z-@{a} :1px dashed blue;
19
+ -www-@{a}-@{bb}: 2px;
20
+ @{d-d4}-is-not-a-@{a}:true;
21
+ @{a}-@{bb}-@{c_c}-@{d-d4} : 2em;
22
+ @{a}@{-}@{bb}@{-}red@{-}@{d-d4}-: 3pt;
23
+
24
+ .mixin(mixer);
25
+ .merge(ish, base);
26
+ }
27
+
28
+ @global: global;
29
+
30
+ .mixin(@arg) {
31
+ @local: local;
32
+ @{global}-@{local}-@{arg}-property: strong;
33
+ }
34
+
35
+ .merge(@p, @v) {
36
+ &-merge {
37
+ @prefix: pre;
38
+ @suffix: ish;
39
+ @{prefix}-property-ish+ :high;
40
+ pre-property-@{suffix} +: middle;
41
+ @{prefix}-property-@{suffix}+: low;
42
+ @{prefix}-property-@{p} + : @v;
43
+
44
+ @subterfuge: ~'+';
45
+ pre-property-ish@{subterfuge}: nice try dude;
46
+ }
47
+ }
48
+
49
+ pi-indirect-vars {
50
+ @{p}: @p;
51
+ @p: @@a;
52
+ @a: b;
53
+ @b: auto;
54
+ }
55
+
56
+ pi-complex-values {
57
+ @{p}@{p}: none;
58
+ @p: (1 + 2px) fadeout(#ff0, 50%), pi() /* foo */;
59
+ }
@@ -42,6 +42,7 @@
42
42
 
43
43
  #data-uri {
44
44
  uri: data-uri('image/jpeg;base64', '../data/image.jpg');
45
+ uri-fragment: data-uri('image/jpeg;base64', '../data/image.jpg#fragment');
45
46
  }
46
47
 
47
48
  #data-uri-guess {
@@ -80,4 +81,4 @@
80
81
  src+: format('truetype');
81
82
  src+_: url('webfont.ttf');
82
83
  src+: url('webfont.svg#svgFontName') format('svg');
83
- }
84
+ }
@@ -0,0 +1,17 @@
1
+ var less = require('../lib/less'),
2
+ fs = require('fs')
3
+
4
+ var input = fs.readFileSync("./test/less/modifyVars/extended.less", 'utf8')
5
+ var expectedCss = fs.readFileSync('./test/css/modifyVars/extended.css', 'utf8')
6
+ var options = {
7
+ modifyVars: JSON.parse(fs.readFileSync("./test/less/modifyVars/extended.json", 'utf8'))
8
+ }
9
+
10
+ less.render(input, options, function (err, css) {
11
+ if (err) console.log(err);
12
+ if (css === expectedCss) {
13
+ console.log("PASS")
14
+ } else {
15
+ console.log("FAIL")
16
+ }
17
+ })
@@ -21,6 +21,10 @@
21
21
  <link id="original-less:test-less-comments" title="test-less-comments" rel="stylesheet/less" type="text/css" href="../../test/less/comments.less">
22
22
  <link id="expected-less:test-less-comments" rel="stylesheet" type="text/css" href="../../test/css/comments.css">
23
23
 
24
+ <!-- the tags to be generated -->
25
+ <link id="original-less:test-less-comments2" title="test-less-comments2" rel="stylesheet/less" type="text/css" href="../../test/less/comments2.less">
26
+ <link id="expected-less:test-less-comments2" rel="stylesheet" type="text/css" href="../../test/css/comments2.css">
27
+
24
28
  <!-- the tags to be generated -->
25
29
  <link id="original-less:test-less-css-3" title="test-less-css-3" rel="stylesheet/less" type="text/css" href="../../test/less/css-3.less">
26
30
  <link id="expected-less:test-less-css-3" rel="stylesheet" type="text/css" href="../../test/css/css-3.css">