summaryrefslogtreecommitdiff
path: root/vendor/leafo/lessphp/tests/inputs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/leafo/lessphp/tests/inputs')
-rw-r--r--vendor/leafo/lessphp/tests/inputs/accessors.less.disable36
-rw-r--r--vendor/leafo/lessphp/tests/inputs/arity.less77
-rw-r--r--vendor/leafo/lessphp/tests/inputs/attributes.less41
-rw-r--r--vendor/leafo/lessphp/tests/inputs/builtins.less96
-rw-r--r--vendor/leafo/lessphp/tests/inputs/colors.less154
-rw-r--r--vendor/leafo/lessphp/tests/inputs/compile_on_mixin.less39
-rw-r--r--vendor/leafo/lessphp/tests/inputs/data-uri.less7
-rw-r--r--vendor/leafo/lessphp/tests/inputs/directives.less28
-rw-r--r--vendor/leafo/lessphp/tests/inputs/escape.less18
-rw-r--r--vendor/leafo/lessphp/tests/inputs/font_family.less28
-rw-r--r--vendor/leafo/lessphp/tests/inputs/guards.less74
-rw-r--r--vendor/leafo/lessphp/tests/inputs/hacks.less6
-rw-r--r--vendor/leafo/lessphp/tests/inputs/hi.less5
-rw-r--r--vendor/leafo/lessphp/tests/inputs/ie.less12
-rw-r--r--vendor/leafo/lessphp/tests/inputs/import.less56
-rw-r--r--vendor/leafo/lessphp/tests/inputs/interpolation.less47
-rw-r--r--vendor/leafo/lessphp/tests/inputs/keyframes.less52
-rw-r--r--vendor/leafo/lessphp/tests/inputs/math.less122
-rw-r--r--vendor/leafo/lessphp/tests/inputs/media.less68
-rw-r--r--vendor/leafo/lessphp/tests/inputs/misc.less100
-rw-r--r--vendor/leafo/lessphp/tests/inputs/mixin_functions.less33
-rw-r--r--vendor/leafo/lessphp/tests/inputs/mixin_merging.less.disable100
-rw-r--r--vendor/leafo/lessphp/tests/inputs/mixins.less197
-rw-r--r--vendor/leafo/lessphp/tests/inputs/nested.less60
-rw-r--r--vendor/leafo/lessphp/tests/inputs/pattern_matching.less157
-rw-r--r--vendor/leafo/lessphp/tests/inputs/scopes.less40
-rw-r--r--vendor/leafo/lessphp/tests/inputs/selector_expressions.less29
-rw-r--r--vendor/leafo/lessphp/tests/inputs/site_demos.less120
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/a.less6
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/b.less12
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/file1.less16
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/file2.less6
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/file3.less7
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/inner/file1.less6
-rw-r--r--vendor/leafo/lessphp/tests/inputs/test-imports/inner/file2.less4
-rw-r--r--vendor/leafo/lessphp/tests/inputs/variables.less44
36 files changed, 1903 insertions, 0 deletions
diff --git a/vendor/leafo/lessphp/tests/inputs/accessors.less.disable b/vendor/leafo/lessphp/tests/inputs/accessors.less.disable
new file mode 100644
index 00000000..2990faab
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/accessors.less.disable
@@ -0,0 +1,36 @@
+/* accessors */
+
+#defaults {
+ @width: 960px;
+ @color: black;
+ .something {
+ @space: 10px;
+ @hello {
+ color: green;
+ }
+ }
+}
+
+.article { color: #294366; }
+
+.comment {
+ width: #defaults[@width];
+ color: .article['color'];
+ padding: #defaults > .something[@space];
+}
+
+.wow {
+ height: .comment['width'];
+ background-color: .comment['color'];
+ color: #defaults > .something > @hello['color'];
+
+ padding: #defaults > non-existant['padding'];
+ margin: #defaults > .something['non-existant'];
+}
+
+.mix {
+ #defaults;
+ font-size: .something[@space];
+}
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/arity.less b/vendor/leafo/lessphp/tests/inputs/arity.less
new file mode 100644
index 00000000..9998fd4a
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/arity.less
@@ -0,0 +1,77 @@
+
+// simple arity
+
+.hello(@a) {
+ hello: one;
+}
+
+.hello(@a, @b) {
+ hello: two;
+}
+
+.hello(@a, @b, @c) {
+ hello: three;
+}
+
+
+.world(@a, @b, @c) {
+ world: three;
+}
+
+.world(@a, @b) {
+ world: two;
+}
+
+.world(@a) {
+ world: one;
+}
+
+.one {
+ .hello(1);
+ .world(1);
+}
+
+.two {
+ .hello(1, 1);
+ .world(1, 1);
+}
+
+.three {
+ .hello(1, 1, 1);
+ .world(1, 1, 1);
+}
+
+
+// arity with default values
+
+.foo(@a, @b: cool) {
+ foo: two @b;
+}
+
+.foo(@a, @b: cool, @c: yeah) {
+ foo: three @b @c;
+}
+
+
+.baz(@a, @b, @c: yeah) {
+ baz: three @c;
+}
+
+.baz(@a, @b: cool) {
+ baz: two @b;
+}
+
+
+.multi-foo {
+ .foo(1);
+ .foo(1, 1);
+ .foo(1,1,1);
+}
+
+.multi-baz {
+ .baz(1);
+ .baz(1, 1);
+ .baz(1,1,1);
+}
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/attributes.less b/vendor/leafo/lessphp/tests/inputs/attributes.less
new file mode 100644
index 00000000..7ede4fc4
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/attributes.less
@@ -0,0 +1,41 @@
+* { color: blue; }
+E { color: blue; }
+E[foo] { color: blue; }
+[foo] { color: blue; }
+[foo] .helloWorld { color: blue; }
+[foo].helloWorld { color: blue; }
+E[foo="barbar"] { color: blue; }
+E[foo~="hello#$@%@$#^"] { color: blue; }
+E[foo^="color: green;"] { color: blue; }
+E[foo$="239023"] { color: blue; }
+E[foo*="29302"] { color: blue; }
+E[foo|="239032"] { color: blue; }
+E:root { color: blue; }
+
+E:nth-child(odd) { color: blue; }
+E:nth-child(2n+1) { color: blue; }
+E:nth-child(5) { color: blue; }
+E:nth-last-child(-n+2) { color: blue; }
+E:nth-of-type(2n) { color: blue; }
+E:nth-last-of-type(n) { color: blue; }
+
+E:first-child { color: blue; }
+E:last-child { color: blue; }
+E:first-of-type { color: blue; }
+E:last-of-type { color: blue; }
+E:only-child { color: blue; }
+E:only-of-type { color: blue; }
+E:empty { color: blue; }
+
+E:lang(en) { color: blue; }
+E::first-line { color: blue; }
+E::before { color: blue; }
+
+E#id { color: blue; }
+E:not(:link) { color: blue; }
+
+E F { color: blue; }
+E > F { color: blue; }
+E + F { color: blue; }
+E ~ F { color: blue; }
+
diff --git a/vendor/leafo/lessphp/tests/inputs/builtins.less b/vendor/leafo/lessphp/tests/inputs/builtins.less
new file mode 100644
index 00000000..f9301e04
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/builtins.less
@@ -0,0 +1,96 @@
+// builtin
+
+@something: "hello world";
+@color: #112233;
+@color2: rgba(44,55,66, .6);
+
+body {
+ color: @something;
+
+ @num: 7 / 6;
+ num-basic: @num + 4;
+ num-floor: floor(@num) + 4px;
+ num-ceil: ceil(@num) + 4px;
+
+ @num2: 2 / 3;
+ num2: @num2;
+ num2-round: round(@num2);
+ num2-floor: floor(@num2);
+ num2-ceil: ceil(@num2);
+
+ round-lit: round(10px / 3);
+
+ rgba1: rgbahex(@color);
+ rgba2: rgbahex(@color2);
+ argb: argb(@color2);
+}
+
+
+format {
+ @r: 32;
+ format: %("rgb(%d, %d, %d)", @r, 128, 64);
+ format-string: %("hello %s", "world");
+ format-multiple: %("hello %s %d", "earth", 2);
+ format-url-encode: %('red is %A', #ff0000);
+ eformat: e(%("rgb(%d, %d, %d)", @r, 128, 64));
+}
+
+
+#functions {
+ str1: isstring("hello");
+ str2: isstring(one, two);
+
+ num1: isnumber(2323px);
+ num2: isnumber(2323);
+ num3: isnumber(4/5);
+ num4: isnumber("hello");
+
+ col1: iscolor(red);
+ col2: iscolor(hello);
+ col3: iscolor(rgba(0,0,0,0.3));
+ col4: iscolor(#fff);
+
+ key1: iskeyword(hello);
+ key2: iskeyword(3D);
+
+ px1: ispixel(10px);
+ px2: ispixel(10);
+
+ per1: ispercentage(10%);
+ per2: ispercentage(10);
+
+ em1: isem(10em);
+ em2: isem(10);
+
+ ex1: extract(1 2 3 4, 2);
+ ex2: extract(1 2, 1);
+ ex3: extract(1, 1);
+
+ @list: 1,2,3,4;
+
+ ex4: extract(@list, 2);
+
+ pow: pow(2,4);
+ pi: pi();
+ mod: mod(14,10);
+
+ tan: tan(1);
+ cos: cos(1);
+ sin: sin(1);
+
+ atan: atan(1);
+ acos: acos(1);
+ asin: asin(1);
+
+ sqrt: sqrt(8);
+}
+
+
+#unit {
+ @unit: "em";
+ unit-lit: unit(10px);
+ unit-arg: unit(10px, "s");
+ unit-arg2: unit(10px, @unit);
+ unit-math: unit(0.07407s) * 100%;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/colors.less b/vendor/leafo/lessphp/tests/inputs/colors.less
new file mode 100644
index 00000000..7fd47a3c
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/colors.less
@@ -0,0 +1,154 @@
+
+body {
+ color:rgb(red(#f00), red(#0F0), red(#00f));
+ color:rgb(red(#f00), green(#0F0), blue(#00f));
+ color:rgb(red(#0ff), green(#f0f), blue(#ff0));
+
+ color: hsl(34, 50%, 40%);
+ color: hsla(34, 50%, 40%, 0.3);
+
+ lighten1: lighten(#efefef, 10%);
+ lighten2: lighten(rgb(23, 53, 231), 22%);
+ lighten3: lighten(rgba(212, 103, 88, 0.5), 10%);
+
+ darken1: darken(#efefef, 10%);
+ darken2: darken(rgb(23, 53, 231), 22%);
+ darken3: darken(rgba(23, 53, 231, 0.5), 10%);
+
+ saturate1: saturate(#efefef, 10%);
+ saturate2: saturate(rgb(23, 53, 231), 22%);
+ saturate3: saturate(rgba(23, 53, 231, 0.5), 10%);
+
+ desaturate1: desaturate(#efefef, 10%);
+ desaturate2: desaturate(rgb(23, 53, 231), 22%);
+ desaturate3: desaturate(rgba(23, 53, 231, 0.5), 10%);
+
+ spin1: spin(#efefef, 12);
+ spin2: spin(rgb(23, 53, 231), 15);
+ spin3: spin(rgba(23, 53, 231, 0.5), 19);
+
+ spin2: spin(#efefef, -12);
+ spin3: spin(rgb(23, 53, 231), -15);
+ spin4: spin(rgba(23, 53, 231, 0.5), -19);
+
+ one1: fadein(#abcdef, 10%);
+ one2: fadeout(#abcdef, -10%);
+
+ two1: fadeout(#029f23, 10%);
+ two2: fadein(#029f23, -10%);
+
+
+ three1: fadein(rgba(1,2,3, 0.5), 10%);
+ three2: fadeout(rgba(1,2,3, 0.5), -10%);
+
+ four1: fadeout(rgba(1,2,3, 0), 10%);
+ four2: fadein(rgba(1,2,3, 0), -10%);
+
+ hue: hue(rgb(34,20,40));
+ sat: saturation(rgb(34,20,40));
+ lit: lightness(rgb(34,20,40));
+
+ @old: #34fa03;
+ @new: hsl(hue(@old), 45%, 90%);
+ what: @new;
+
+ zero1: saturate(#123456, -100%);
+ zero2: saturate(#123456, 100%);
+ zero3: saturate(#000000, 100%);
+ zero4: saturate(#ffffff, 100%);
+
+ zero5: lighten(#123456, -100%);
+ zero6: lighten(#123456, 100%);
+ zero7: lighten(#000000, 100%);
+ zero8: lighten(#ffffff, 100%);
+
+ zero9: spin(#123456, -100);
+ zeroa: spin(#123456, 100);
+ zerob: spin(#000000, 100);
+ zeroc: spin(#ffffff, 100);
+}
+
+
+alpha {
+ // g: alpha(red);
+ g1: alpha(rgba(0,0,0,0));
+ g2: alpha(rgb(155,55,0));
+}
+
+fade {
+ f1: fade(red, 50%);
+ f2: fade(#fff, 20%);
+ f3: fade(rgba(34,23,64,0.4), 50%);
+}
+
+@a: rgb(255,255,255);
+@b: rgb(0,0,0);
+
+.mix {
+ color1: mix(@a, @b, 50%);
+ color2: mix(@a, @b);
+ color3: mix(rgba(5,3,1,0.3), rgba(6,3,2, 0.8), 50%);
+}
+
+.contrast {
+ color1: contrast(#000, red, blue);
+ color2: contrast(#fff, red, blue);
+}
+
+.percent {
+ per: percentage(0.5);
+}
+
+// color keywords
+
+.colorz {
+ color1: whitesmoke - 10;
+ color2: spin(red, 34);
+ color3: spin(blah);
+}
+
+
+
+// purposfuly whacky to match less.js
+
+@color: #fcf8e3;
+
+body {
+ start: @color;
+ spin: spin(@color, -10); // #fcf4e3
+ chained: darken(spin(@color, -10), 3%); // gives #fbeed5, should be #fbefd5
+ direct: darken(#fcf4e3, 3%); // #fbefd5
+}
+
+// spin around
+pre {
+ @errorBackground: #f2dede;
+ spin: spin(@errorBackground, -10);
+}
+
+dd {
+ @white: #fff;
+ background-color: mix(@white, darken(@white, 10%), 60%);
+}
+
+// math
+
+.ops {
+ c1: red * 0.3;
+ c2: green / 2;
+ c3: purple % 7;
+ c4: 4 * salmon;
+ c5: 1 + salmon;
+
+ c6: 132 / red;
+ c7: 132 - red;
+ c8: 132- red;
+}
+
+.transparent {
+ r: red(transparent);
+ g: green(transparent);
+ b: blue(transparent);
+ a: alpha(transparent);
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/compile_on_mixin.less b/vendor/leafo/lessphp/tests/inputs/compile_on_mixin.less
new file mode 100644
index 00000000..79d628f4
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/compile_on_mixin.less
@@ -0,0 +1,39 @@
+
+@mixin {
+ height: 22px;
+ ul {
+ height: 20px;
+ li {
+ @color: red;
+ height: 10px;
+ div span, link {
+ margin: 10px;
+ color: @color;
+ }
+ }
+
+ div, p {
+ border: 1px;
+ &.hello {
+ color: green;
+ }
+
+ :what {
+ color: blue;
+ }
+ }
+
+
+ a {
+ b {
+ color: blue;
+ }
+ }
+ }
+}
+
+
+
+body {
+ @mixin;
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/data-uri.less b/vendor/leafo/lessphp/tests/inputs/data-uri.less
new file mode 100644
index 00000000..0cfa941a
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/data-uri.less
@@ -0,0 +1,7 @@
+.small {
+ background: data-uri("../hi.less");
+}
+
+.large {
+ background: data-uri('../../../lessc.inc.php');
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/directives.less b/vendor/leafo/lessphp/tests/inputs/directives.less
new file mode 100644
index 00000000..1b3a9b58
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/directives.less
@@ -0,0 +1,28 @@
+
+@hello: "utf-8";
+@charset @hello;
+
+@-moz-document url-prefix(){
+ div {
+ color: red;
+ }
+}
+
+@page :left { margin-left: 4cm; }
+@page :right { margin-left: 3cm; }
+@page { margin: 2cm }
+
+@-ms-viewport {
+ width: device-width;
+}
+@-moz-viewport {
+ width: device-width;
+}
+@-o-viewport {
+ width: device-width;
+}
+@viewport {
+ width: device-width;
+}
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/escape.less b/vendor/leafo/lessphp/tests/inputs/escape.less
new file mode 100644
index 00000000..5c15e786
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/escape.less
@@ -0,0 +1,18 @@
+
+body {
+ @hello: "world";
+ e1: e("this is simple");
+ e2: e("this is simple", "cool lad");
+ e3: e(1232);
+ e4: e(@hello);
+ e5: e("one" + 'more');
+
+ t1: ~"eating rice";
+ t2: ~"string cheese";
+ t3: a b c ~"string me" d e f;
+ t4: ~"string @{hello}";
+}
+
+.class {
+ filter: ~"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png')";
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/font_family.less b/vendor/leafo/lessphp/tests/inputs/font_family.less
new file mode 100644
index 00000000..d1dfb72d
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/font_family.less
@@ -0,0 +1,28 @@
+
+@font-directory: 'fonts/';
+@some-family: Gentium;
+
+@font-face: maroon; // won't collide with @font-face { }
+
+@font-face {
+ font-family: Graublau Sans Web;
+ src: url(@{font-directory}GraublauWeb.otf) format("opentype");
+}
+
+@font-face {
+ font-family: @some-family;
+ src: url('@{font-directory}Gentium.ttf');
+}
+
+@font-face {
+ font-family: @some-family;
+ src: url("@{font-directory}GentiumItalic.ttf");
+ font-style: italic;
+}
+
+h2 {
+ font-family: @some-family;
+ crazy: @font-face;
+}
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/guards.less b/vendor/leafo/lessphp/tests/inputs/guards.less
new file mode 100644
index 00000000..fc4e344e
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/guards.less
@@ -0,0 +1,74 @@
+
+.simple(@hi) when (@hi) {
+ simple: yellow;
+}
+
+
+.something(@hi) when (@hi = cool) {
+ something: red;
+}
+
+.another(@x) when (@x > 10) {
+ another: green;
+}
+
+
+.flipped(@x) when (@x =< 10) {
+ flipped: teal;
+}
+
+.yeah(@arg) when (isnumber(@arg)) {
+ yeah-number: purple @arg;
+}
+
+
+.yeah(@arg) when (ispixel(@arg)) {
+ yeah-pixel: silver;
+}
+
+
+.hello(@arg) when not (@arg) {
+ hello: orange;
+}
+
+dd {
+ .simple(true);
+}
+
+b {
+ .something(cool);
+ .something(birthday);
+}
+
+img {
+ .another(12);
+ .flipped(2);
+}
+
+body {
+ .yeah(232px);
+ .yeah(232);
+}
+
+.something(@x) when (@x) and (@y), not (@x = what) {
+ something-complex: blue @x;
+}
+
+div {
+ @y: true;
+ .something(true);
+
+}
+
+.coloras(@g) when (iscolor(@g)) {
+ color: true @g;
+}
+
+link {
+ .coloras(red);
+ .coloras(#fff);
+ .coloras(#fffddd);
+ .coloras(rgb(0,0,0));
+ .coloras(rgba(0,0,0, .34));
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/hacks.less b/vendor/leafo/lessphp/tests/inputs/hacks.less
new file mode 100644
index 00000000..e69b7bf9
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/hacks.less
@@ -0,0 +1,6 @@
+// css hacks
+
+:root .alert-message, :root .btn {
+ border-radius: 0 \0;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/hi.less b/vendor/leafo/lessphp/tests/inputs/hi.less
new file mode 100644
index 00000000..9a3d8198
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/hi.less
@@ -0,0 +1,5 @@
+
+div:before {
+ content: "hi!";
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/ie.less b/vendor/leafo/lessphp/tests/inputs/ie.less
new file mode 100644
index 00000000..37a5f1f6
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/ie.less
@@ -0,0 +1,12 @@
+
+foo {
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000);
+ filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000001);
+}
+
+
+foo {
+ filter: alpha(opacity=20);
+ filter: alpha(opacity=20, enabled=true);
+ filter: blaznicate(foo=bar, baz=bang bip, bart=#fa4600);
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/import.less b/vendor/leafo/lessphp/tests/inputs/import.less
new file mode 100644
index 00000000..a5005674
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/import.less
@@ -0,0 +1,56 @@
+
+@import 'file1.less'; // file found and imported
+
+@import "not-found";
+
+@import "something.css" media;
+@import url("something.css") media;
+@import url(something.css) media, screen, print;
+
+@color: maroon;
+
+@import url(file2); // found and imported
+
+body {
+ line-height: 10em;
+ @colors;
+}
+
+div {
+ @color: fuchsia;
+ @import "file2";
+}
+
+
+.mixin-import() {
+ @import "file3";
+}
+
+.one {
+ .mixin-import();
+ color: blue;
+}
+
+.two {
+ .mixin-import();
+}
+
+
+#merge-import-mixins {
+ @import "a";
+ @import "b";
+ div { .just-a-class; }
+}
+
+
+@import "inner/file1";
+
+
+// test bubbling variables up from imports, while preserving order
+
+pre {
+ color: @someValue;
+}
+
+@import "file3";
+
diff --git a/vendor/leafo/lessphp/tests/inputs/interpolation.less b/vendor/leafo/lessphp/tests/inputs/interpolation.less
new file mode 100644
index 00000000..8aad0004
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/interpolation.less
@@ -0,0 +1,47 @@
+
+@cool-hello: "yes";
+@cool-yes: "okay";
+@var: "hello";
+
+div {
+ interp1: ~"@{cool-hello}";
+ interp2: ~"@{cool-@{var}}";
+ interp3: ~"@{cool-@{cool-@{var}}}";
+}
+
+// interpolation in selectors
+
+@hello: 10;
+@world: "yeah";
+
+@{hello}@{world} {
+ color: blue;
+}
+
+@{hello} {
+ color: blue;
+}
+
+hello world @{hello} {
+ color: red;
+}
+
+#@{world} {
+ color: "hello @{hello}";
+}
+
+
+@num: 3;
+
+[prop],
+[prop="value@{num}"],
+[prop*="val@{num}"],
+[|prop~="val@{num}"],
+[*|prop$="val@{num}"],
+[ns|prop^="val@{num}"],
+[@{num}^="val@{num}"],
+[@{num}=@{num}],
+[@{num}] {
+ attributes: yes;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/keyframes.less b/vendor/leafo/lessphp/tests/inputs/keyframes.less
new file mode 100644
index 00000000..e65a38b9
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/keyframes.less
@@ -0,0 +1,52 @@
+@keyframes 'bounce' {
+ from {
+ top: 100px;
+ animation-timing-function: ease-out;
+ }
+
+ 25% {
+ top: 50px;
+ animation-timing-function: ease-in;
+ }
+
+ 50% {
+ top: 100px;
+ animation-timing-function: ease-out;
+ }
+
+ 75% {
+ top: 75px;
+ animation-timing-function: ease-in;
+ }
+
+ to {
+ top: 100px;
+ }
+}
+
+@-webkit-keyframes flowouttoleft {
+ 0% { -webkit-transform: translateX(0) scale(1); }
+ 60%, 70% { -webkit-transform: translateX(0) scale(.7); }
+ 100% { -webkit-transform: translateX(-100%) scale(.7); }
+}
+
+div {
+ animation-name: 'diagonal-slide';
+ animation-duration: 5s;
+ animation-iteration-count: 10;
+}
+
+@keyframes 'diagonal-slide' {
+
+ from {
+ left: 0;
+ top: 0;
+ }
+
+ to {
+ left: 100px;
+ top: 100px;
+ }
+
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/math.less b/vendor/leafo/lessphp/tests/inputs/math.less
new file mode 100644
index 00000000..db59d356
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/math.less
@@ -0,0 +1,122 @@
+
+.unary {
+ // all operators are parsable as unary operators, anything
+ // but - throws an error right now though,
+
+ // this gives two numbers
+ sub: 10 -5;
+ // add: 10 +5; // error
+ // div: 10 /5; // error
+ // mul: 10 *5; // error
+}
+
+.spaces {
+ // we can make the parser do math by leaving out the
+ // space after the first value, or putting spaces on both sides
+
+ sub1: 10-5;
+ sub2: 10 - 5;
+
+ add1: 10+5;
+ add2: 10 + 5;
+
+ // div: 10/5; // this wont work, read on
+ div: 10 / 5;
+
+ mul1: 10*5;
+ mul2: 10 * 5;
+}
+
+// these properties have divison not in parenthases
+.supress-division {
+ border-radius: 10px / 10px;
+ border-radius: 10px/12px;
+ border-radius: hello (10px/10px) world;
+ @x: 10px;
+ font: @x/30 sans-serif;
+ font: 10px / 20px sans-serif;
+ font: 10px/22px sans-serif;
+ border-radius:0 15px 15px 15px / 0 50% 50% 50%;
+}
+
+
+.parens {
+ // if you are unsure, then just wrap the expression in parentheses and it will
+ // always evaluate.
+
+ // notice we no longer have unary operators, and these will evaluate
+ sub: (10 -5);
+ add: (10 +5);
+ div1: (10 /5);
+ div2: (10/5); // no longer interpreted as the shorthand
+ mul: (10 *5);
+}
+
+.keyword-names {
+ // watch out when doing math with keywords, - is a valid keyword character
+ @a: 100;
+ @b: 25;
+ @a-: "hello";
+ height: @a-@b; // here we get "hello" 25, not 75
+}
+
+
+.negation {
+ neg1: -(1px);
+ neg2: 0-(1px);
+
+ @something: 10;
+ neg3: -@something;
+}
+
+
+// and now here are the tests
+
+.test {
+ single1: (5);
+ single2: 5+(5);
+ single3: (5)+((5));
+
+ parens: (5 +(5)) -2;
+ // parens: ((5 +(5)) -2); // FAILS - fixme
+
+ math1: (5 + 5)*(2 / 1);
+ math2: (5+5)*(2/1);
+
+ complex1: 2 * (4 * (2 + (1 + 6))) - 1;
+ complex2: ((2+3)*(2+3) / (9-4)) + 1;
+ complex3: (2px + 4px) 1em 2px 2;
+
+ @var: (2 * 2);
+ var1: (2 * @var) 4 4 (@var * 1px);
+ var2: (@var * @var) * 6;
+ var3: 4 * (5 + 5) / 2 - (@var * 2);
+
+ complex4: (7 * 7) + (8 * 8);
+}
+
+.percents {
+ p1: 100 * 10%;
+ p2: 10% * 100;
+ p3: 10% * 10%;
+
+ p4: 100px * 10%; // lessjs makes this px
+ p5: 10% * 100px; // lessjs makes this %
+
+ p6: 20% + 10%;
+ p7: 20% - 10%;
+
+ p8: 20% / 10%;
+}
+
+.misc {
+ x: 10px * 4em;
+ y: 10 * 4em;
+}
+
+
+.cond {
+ c1: 10 < 10;
+ c2: 10 >= 10;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/media.less b/vendor/leafo/lessphp/tests/inputs/media.less
new file mode 100644
index 00000000..8c16a3cf
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/media.less
@@ -0,0 +1,68 @@
+@media screen, 3D {
+ P { color: green; }
+}
+@media print {
+ body { font-size: 10pt }
+}
+@media screen {
+ body { font-size: 13px }
+}
+@media screen, print {
+ body { line-height: 1.2 }
+}
+
+@media all and (min-width: 0px) {
+ body { line-height: 1.2 }
+}
+
+@media all and (min-width: 0) {
+ body { line-height: 1.2 }
+}
+
+@media
+ screen and (min-width: 102.5em) and (max-width: 117.9375em),
+ screen and (min-width: 150em) {
+ body { color: blue }
+}
+
+
+@media screen and (min-height: 100px + 10px) {
+ body { color: red; }
+}
+
+@cool: 100px;
+
+@media screen and (height: @cool) and (width: @cool + 10), (size: @cool + 20) {
+ body { color: red; }
+}
+
+
+// media bubbling
+
+@media test {
+ div {
+ height: 20px;
+ @media (hello) {
+ color: red;
+
+ pre {
+ color: orange;
+ }
+ }
+ }
+}
+
+// should not cross boundary
+@media yeah {
+ @page {
+ @media cool {
+ color: red;
+ }
+ }
+}
+
+// variable in query
+@mobile: ~"(max-width: 599px)";
+@media @mobile {
+ .helloworld { color: blue }
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/misc.less b/vendor/leafo/lessphp/tests/inputs/misc.less
new file mode 100644
index 00000000..eb690b9a
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/misc.less
@@ -0,0 +1,100 @@
+
+@color: #fff;
+@base_path: "/assets/images/";
+@images: @base_path + "test/";
+.topbar { background: url(@{images}topbar.png); }
+.hello { test: empty-function(@images, 40%, to(@color)); }
+
+.css3 {
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 90%,
+ from(#E9A000), to(#A37000));
+}
+
+
+/**
+
+Here is a block comment
+
+**/
+
+
+// this is a comment
+
+.test, /*hello*/.world {
+ border: 1px solid red; // world
+ /* another property */
+ color: url(http://mage-page.com);
+ string: "hello /* this is not a comment */";
+ world: "// neither is this";
+ string: 'hello /* this is not a comment */' /*what if this is a comment */;
+ world: '// neither is this' // hell world;
+ ;
+ what-/*something?*/ever: 100px;
+ background: url(/*no comment here*/);
+}
+
+
+.urls {
+ @var: "http://google.com";
+ background1: url(@var);
+ background2: url(@{var});
+ background3: url("@{var}");
+}
+
+.mix(@arg) { color: @arg; }
+@aaa: aaa;
+@bbb: bbb;
+// make sure the opening selector isn't too greedy
+.cool {.mix("@{aaa}, @{bbb}")}
+.cool();
+
+
+
+// merging of mixins
+.span-17 { float: left; }
+.span-17 { width: 660px; }
+
+.x {.span-17;}
+
+.hi {
+ pre {
+ color: red;
+ }
+}
+
+.hi {
+ pre {
+ color: blue;
+ }
+}
+
+.rad {
+ .hi;
+}
+
+
+hello {
+ numbers: 1.0 0.1 .1 1.;
+ numbers: 1.0s 0.1s .1s 1.s;
+ numbers: -1.0s -0.1s -.1s -1.s;
+ numbers: -1.0 -0.1 -.1 -1.;
+}
+
+
+#string {
+ hello: 'what\'s going on here';
+ hello: 'blah blag @{ blah blah';
+
+ join: 3434 + "hello";
+ join: 3434 + hello;
+}
+
+
+.duplicates {
+ hello: world;
+ hello: "world";
+ hello: world;
+ hello: "what";
+ hello: world;
+ hello: "world";
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/mixin_functions.less b/vendor/leafo/lessphp/tests/inputs/mixin_functions.less
new file mode 100644
index 00000000..2d858ad6
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/mixin_functions.less
@@ -0,0 +1,33 @@
+
+@outer: 10px;
+@class(@var:22px, @car: 400px + @outer) {
+ margin: @var;
+ height: @car;
+}
+
+@group {
+ @f(@color) {
+ color: @color;
+ }
+ .cool {
+ border-bottom: 1px solid green;
+ }
+}
+
+.class(@width:200px) {
+ padding: @width;
+}
+
+body {
+ .class(2.0em);
+ @group > @f(red);
+ @class(10px, 10px + 2);
+ @group > .cool;
+}
+
+
+@lots(@a: 10px, @b: 20px, @c: 30px, @d: 40px, @e: 4px, @f:3px, @g:2px, @h: 1px) {
+ padding: @a @b @c @d;
+ margin: @e @f @g @h;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/mixin_merging.less.disable b/vendor/leafo/lessphp/tests/inputs/mixin_merging.less.disable
new file mode 100644
index 00000000..86b3e0cb
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/mixin_merging.less.disable
@@ -0,0 +1,100 @@
+
+@tester {
+ p, div { height: 10px; }
+}
+
+#test1 {
+ div { color: red; }
+ @tester;
+}
+
+
+@cool {
+ a,b,i { width: 1px; }
+}
+
+#test2 {
+ b { color: red; }
+ @cool;
+}
+
+#test3 {
+ @cool;
+ b { color: red; }
+}
+
+@cooler {
+ a { margin: 1px; }
+}
+
+#test4 {
+ a, div, html { color: blue; }
+ @cooler;
+}
+
+@hi {
+ img, strong { float: right; }
+}
+
+#test5 {
+ img, strong { padding: 2px; }
+ @hi;
+}
+
+@nested {
+ div, span {
+ a {
+ color: red;
+ }
+ }
+}
+
+#test6 {
+ div, span {
+ a {
+ line-height: 10px;
+ }
+ }
+ @nested;
+}
+
+@broken-nesting {
+ div, span {
+ strong, b {
+ color: red;
+ }
+ }
+
+}
+
+#test7 {
+ div {
+ strong {
+ margin: 1px;
+ }
+ }
+ @broken-nesting;
+}
+
+
+@another-nest {
+ a,b {
+ i {
+ color: red;
+ }
+
+ s {
+ color: blue;
+ }
+ }
+}
+
+#test8 {
+ a, b {
+ i,s {
+ background: red;
+ }
+ }
+ @another-nest;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/mixins.less b/vendor/leafo/lessphp/tests/inputs/mixins.less
new file mode 100644
index 00000000..768e6384
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/mixins.less
@@ -0,0 +1,197 @@
+
+@rounded-corners {
+ border-radius: 10px;
+}
+
+.bold {
+ @font-size: 20px;
+ font-size: @font-size;
+ font-weight: bold;
+}
+
+body #window {
+ @rounded-corners;
+ .bold;
+ line-height: @font-size * 1.5;
+}
+
+#bundle {
+ .button {
+ display: block;
+ border: 1px solid black;
+ background-color: grey;
+ &:hover { background-color: white }
+ }
+}
+#header a {
+ color: orange;
+ #bundle > .button; // mixin the button class
+}
+
+div {
+ @abstract {
+ hello: world;
+ b {
+ color: blue;
+ }
+ }
+
+ @abstract > b;
+ @abstract;
+}
+
+@poop {
+ big: baby;
+}
+
+body {
+ div;
+}
+
+// not using > to list mixins
+
+.hello {
+ .world {
+ color: blue;
+ }
+}
+
+.foobar {
+ .hello .world;
+}
+
+
+// arguments
+
+.spam(@something: 100, @dad: land) {
+ @wow: 23434;
+ foo: @arguments;
+ bar: @arguments;
+}
+
+.eggs {
+ .spam(1px, 2px);
+ .spam();
+}
+
+.first(@one, @two, @three, @four: cool) {
+ cool: @arguments;
+}
+
+#hello {
+ .first(one, two, three);
+}
+
+#hello-important {
+ .first(one, two, three) !important;
+}
+
+.rad(@name) {
+ cool: @arguments;
+}
+
+#world {
+ @hello: "world";
+ .rad("@{hello}");
+}
+
+.second(@x, @y:skip, @z: me) {
+ things: @arguments;
+}
+
+#another {
+ .second(red, blue, green);
+ .second(red blue green);
+}
+
+
+.another(@x, @y:skip, @z:me) {
+ .cool {
+ color: @arguments;
+ }
+}
+
+#day {
+ .another(one,two, three);
+ .another(one two three);
+}
+
+
+.to-be-important() {
+ color: red;
+ @color: red;
+ height: 20px;
+
+ pre {
+ color: @color;
+ }
+}
+
+.mix-suffix {
+ .to-be-important() !important;
+}
+
+
+
+
+#search-all {
+ .red() {
+ color:#f00 !important;
+ }
+}
+
+#search-all {
+ .green() {
+ color: #0f0 !important;
+ }
+}
+
+.search-test {
+ #search-all > .red();
+ #search-all > .green();
+}
+
+
+// mixin self without infinite loop
+.cowboy() {
+ color: blue;
+}
+
+.cowboy {
+ .cowboy;
+}
+
+
+// semicolon
+
+.semi1(@color: red, blue, green;) {
+ color: @color;
+}
+
+.semi2(@color: red, blue, green; dad) {
+ color: @color;
+}
+
+.semi3(hello; world; piss) {
+ hello: world;
+}
+
+
+
+// self referencing skipping
+
+.nav-divider(@color: red){
+ padding: 10px;
+}
+
+.nav {
+ .nav-divider {
+ .nav-divider();
+ }
+}
+
+.nav-divider {
+ .nav-divider();
+}
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/nested.less b/vendor/leafo/lessphp/tests/inputs/nested.less
new file mode 100644
index 00000000..0b62ea19
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/nested.less
@@ -0,0 +1,60 @@
+#header {
+ color: black;
+
+ .navigation {
+ font-size: 12px;
+ .border {
+ .outside {
+ color: blue;
+ }
+ }
+ }
+ .logo {
+ width: 300px;
+ &:hover { text-decoration: none }
+ }
+}
+
+a { b { ul { li { color: green; } } } }
+
+this { will { not { show { } } } }
+
+.cool {
+ div & { color: green; }
+ p & span { color: yellow; }
+}
+
+another {
+ .cool;
+}
+
+b {
+ & .something {
+ color: blue;
+ }
+
+ &.something {
+ color: blue;
+ }
+}
+
+.foo {
+ .bar, .baz {
+ & .qux {
+ display: block;
+ }
+ .qux & {
+ display: inline;
+ }
+ .qux & .biz {
+ display: none;
+ }
+ }
+}
+
+b {
+ hello [x="&yeah"] {
+ color: red;
+ }
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/pattern_matching.less b/vendor/leafo/lessphp/tests/inputs/pattern_matching.less
new file mode 100644
index 00000000..c2a0da91
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/pattern_matching.less
@@ -0,0 +1,157 @@
+
+.demo (light, @color) {
+ color: lighten(@color, 10%);
+}
+.demo (@_, @color) {
+ display: block;
+}
+
+@switch: light;
+
+.class {
+ .demo(@switch, #888);
+}
+
+// by arity
+
+.mixin () {
+ zero: 0;
+}
+.mixin (@a: 1px) {
+ one: 1;
+}
+.mixin (@a) {
+ one-req: 1;
+}
+.mixin (@a: 1px, @b: 2px) {
+ two: 2;
+}
+
+.mixin (@a, @b, @c) {
+ three-req: 3;
+}
+
+.mixin (@a: 1px, @b: 2px, @c: 3px) {
+ three: 3;
+}
+
+.zero {
+ .mixin();
+}
+
+.one {
+ .mixin(1);
+}
+
+.two {
+ .mixin(1, 2);
+}
+
+.three {
+ .mixin(1, 2, 3);
+}
+
+//
+
+.mixout ('left') {
+ left: 1;
+}
+
+.mixout ('right') {
+ right: 1;
+}
+
+.left {
+ .mixout('left');
+}
+.right {
+ .mixout('right');
+}
+
+//
+
+.border (@side, @width) {
+ color: black;
+ .border-side(@side, @width);
+}
+.border-side (left, @w) {
+ border-left: @w;
+}
+.border-side (right, @w) {
+ border-right: @w;
+}
+
+.border-right {
+ .border(right, 4px);
+}
+.border-left {
+ .border(left, 4px);
+}
+
+//
+
+
+.border-radius (@r) {
+ both: @r * 10;
+}
+.border-radius (@r, left) {
+ left: @r;
+}
+.border-radius (@r, right) {
+ right: @r;
+}
+
+.only-right {
+ .border-radius(33, right);
+}
+.only-left {
+ .border-radius(33, left);
+}
+.left-right {
+ .border-radius(33);
+}
+
+.hola(hello, @hello...) {
+ color: blue;
+}
+
+#hola {
+ .hola(hello, world);
+}
+
+.resty(@hello, @world, @the_rest...) {
+ padding: @hello @world;
+ rest: @the_rest;
+}
+
+.defaults(@aa, @bb:e343, @cc: "heah", ...) {
+ height: @aa;
+}
+
+#defaults_1 {
+ .defaults(one);
+ .defaults(two, one);
+ .defaults(three, two, one);
+ .defaults(four, three, two, one);
+}
+
+
+.thing() { color: green; }
+.thing(...) { color: blue; }
+.thing { color: red; }
+
+#aa {
+ .thing();
+}
+
+#bb {
+ .thing;
+}
+
+
+#cc {
+ .thing(1);
+}
+
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/scopes.less b/vendor/leafo/lessphp/tests/inputs/scopes.less
new file mode 100644
index 00000000..42e46969
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/scopes.less
@@ -0,0 +1,40 @@
+
+
+@a: 10;
+@some {
+ @b: @a + 10;
+ div {
+ @c: @b + 10;
+ other {
+ @d: @c + 10;
+ world {
+ @e: @d + 10;
+ height: @e;
+ }
+ }
+ }
+}
+
+
+body {
+ @some;
+}
+
+@some;
+
+.test(@x: 10) {
+ height: @x;
+ .test(@y: 11) {
+ height: @y;
+ .test(@z: 12) {
+ height: @z;
+ }
+ .test;
+ }
+ .test;
+}
+
+pre {
+ .test;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/selector_expressions.less b/vendor/leafo/lessphp/tests/inputs/selector_expressions.less
new file mode 100644
index 00000000..b8aa2214
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/selector_expressions.less
@@ -0,0 +1,29 @@
+
+@color: blue;
+
+something @{color}, world {
+ color: blue;
+}
+
+.div {
+ @color: red;
+ (3434) {
+ height: 100px;
+ }
+
+ cool @{color} {
+ height: 4000px;
+ }
+}
+
+.heck(@a) { color: @a+10 }
+
+.spanX (@index) when (@index > 0) {
+ .span@{index} { .heck(@index) }
+ .spanX(@index - 1);
+}
+.spanX (0) {}
+
+.spanX (5);
+
+
diff --git a/vendor/leafo/lessphp/tests/inputs/site_demos.less b/vendor/leafo/lessphp/tests/inputs/site_demos.less
new file mode 100644
index 00000000..08d7f1e5
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/site_demos.less
@@ -0,0 +1,120 @@
+// these are the demos from the lessphp homepage
+
+default {
+ @base: 24px;
+ @border-color: #B2B;
+
+ .underline { border-bottom: 1px solid green }
+
+ #header {
+ color: black;
+ border: 1px solid @border-color + #222222;
+
+ .navigation {
+ font-size: @base / 2;
+ a {
+ .underline;
+ }
+ }
+ .logo {
+ width: 300px;
+ &:hover { text-decoration: none }
+ }
+ }
+}
+
+variables {
+ @a: 2;
+ @x: @a * @a;
+ @y: @x + 1;
+ @z: @x * 2 + @y;
+
+ @nice-blue: #5B83AD;
+ @light-blue: @nice-blue + #111;
+
+ @b: @a * 10;
+ @c: #888;
+ @fonts: "Trebuchet MS", Verdana, sans-serif;
+
+ .variables {
+ width: @z + 1cm; // 14cm
+ height: @b + @x + 0px; // 24px
+ color: @c;
+ background: @light-blue;
+ font-family: @fonts;
+ }
+}
+
+mixins {
+ .bordered {
+ border-top: dotted 1px black;
+ border-bottom: solid 2px black;
+ }
+ #menu a {
+ color: #111;
+ .bordered;
+ }
+
+ .post a {
+ color: red;
+ .bordered;
+ }
+}
+
+nested-rules {
+ #header {
+ color: black;
+
+ .navigation {
+ font-size: 12px;
+ }
+ .logo {
+ width: 300px;
+ &:hover { text-decoration: none }
+ }
+ }
+}
+
+namespaces {
+ #bundle {
+ .button {
+ display: block;
+ border: 1px solid black;
+ background-color: grey;
+ &:hover { background-color: white }
+ }
+ }
+ #header a {
+ color: orange;
+ #bundle > .button; // mixin the button class
+ }
+}
+
+mixin-functions {
+ @outer: 10px;
+ @class(@var:22px, @car: 400px + @outer) {
+ margin: @var;
+ height: @car;
+ }
+
+ @group {
+ @f(@color) {
+ color: @color;
+ }
+ .cool {
+ border-bottom: 1px solid green;
+ }
+ }
+
+ .class(@width:200px) {
+ padding: @width;
+ }
+
+ body {
+ .class(2.0em);
+ @group > @f(red);
+ @class(10px, 10px + 2);
+ @group > .cool;
+ }
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/a.less b/vendor/leafo/lessphp/tests/inputs/test-imports/a.less
new file mode 100644
index 00000000..a00464db
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/a.less
@@ -0,0 +1,6 @@
+.just-a-class { background: red; }
+
+.some-mixin() {
+ height: 200px;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/b.less b/vendor/leafo/lessphp/tests/inputs/test-imports/b.less
new file mode 100644
index 00000000..599ed3a4
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/b.less
@@ -0,0 +1,12 @@
+.just-a-class { background: blue; }
+
+.hello {
+ .some-mixin();
+}
+
+
+@media cool {
+ color: red;
+ .some-mixin();
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/file1.less b/vendor/leafo/lessphp/tests/inputs/test-imports/file1.less
new file mode 100644
index 00000000..658de0c5
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/file1.less
@@ -0,0 +1,16 @@
+
+
+/**
+ * This is a test import file
+ */
+
+@colors {
+ div.bright {
+ color: red;
+ }
+
+ div.sad {
+ color: blue;
+ }
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/file2.less b/vendor/leafo/lessphp/tests/inputs/test-imports/file2.less
new file mode 100644
index 00000000..2cae8dce
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/file2.less
@@ -0,0 +1,6 @@
+
+b {
+ color: @color;
+ padding: 16px;
+}
+
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/file3.less b/vendor/leafo/lessphp/tests/inputs/test-imports/file3.less
new file mode 100644
index 00000000..28b643ea
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/file3.less
@@ -0,0 +1,7 @@
+
+h2 {
+ background: url("../images/logo.png") no-repeat;
+}
+
+@someValue: hello-from-file-3;
+
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/inner/file1.less b/vendor/leafo/lessphp/tests/inputs/test-imports/inner/file1.less
new file mode 100644
index 00000000..df654a7e
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/inner/file1.less
@@ -0,0 +1,6 @@
+
+.inner {
+ content: "inner/file1.less"
+}
+
+@import "file2"; // should get the one in inner
diff --git a/vendor/leafo/lessphp/tests/inputs/test-imports/inner/file2.less b/vendor/leafo/lessphp/tests/inputs/test-imports/inner/file2.less
new file mode 100644
index 00000000..f40d3c67
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/test-imports/inner/file2.less
@@ -0,0 +1,4 @@
+
+.inner {
+ content: "inner/file2.less"
+}
diff --git a/vendor/leafo/lessphp/tests/inputs/variables.less b/vendor/leafo/lessphp/tests/inputs/variables.less
new file mode 100644
index 00000000..6e18eb80
--- /dev/null
+++ b/vendor/leafo/lessphp/tests/inputs/variables.less
@@ -0,0 +1,44 @@
+@a: 2;
+@x: @a * @a;
+@y: @x + 1;
+@z: @y + @x * 2;
+@m: @z % @y;
+
+@nice-blue: #5B83AD;
+@light-blue: @nice-blue + #111;
+
+@rgb-color: rgb(20%, 15%, 80%);
+@rgba-color: rgba(23,68,149,0.5);
+
+@b: @a * 10px;
+@c: #888;
+@fonts: "Trebuchet MS", Verdana, sans-serif;
+
+.variables {
+ width: @z + 1cm; // 14cm
+ height: @b + @x + 0px; // 24px
+ margin-top: -@b; // -20px
+ margin-bottom: 10 - -@b; // 30px
+ @d: @c + #001;
+ color: @d;
+ background: @light-blue;
+ font-family: @fonts;
+ margin: @m + 0px; // 3px
+ font: 10px/12px serif;
+ font: 120%/120% serif;
+}
+
+.external {
+ color: @c;
+ border: 1px solid @rgb-color;
+ background: @rgba-color;
+}
+
+@hello: 44px;
+@something: "hello";
+@cool: something;
+
+outer1: @@something;
+outer2: @@@cool;
+
+