deku 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +5 -0
  6. data/LICENSE +25 -0
  7. data/README.md +28 -0
  8. data/Rakefile +1 -0
  9. data/deku.gemspec +23 -0
  10. data/deps/node_modules/deku.js +2 -0
  11. data/deps/node_modules/deku/.editorconfig +16 -0
  12. data/deps/node_modules/deku/.zuul.yml +15 -0
  13. data/deps/node_modules/deku/History.md +290 -0
  14. data/deps/node_modules/deku/LICENSE.md +7 -0
  15. data/deps/node_modules/deku/Makefile +91 -0
  16. data/deps/node_modules/deku/README.md +293 -0
  17. data/deps/node_modules/deku/index.js +4072 -0
  18. data/deps/node_modules/deku/lib/application.js +85 -0
  19. data/deps/node_modules/deku/lib/index.js +28 -0
  20. data/deps/node_modules/deku/lib/render.js +1300 -0
  21. data/deps/node_modules/deku/lib/stringify.js +105 -0
  22. data/deps/node_modules/deku/lib/svg.js +107 -0
  23. data/deps/node_modules/deku/lib/utils.js +18 -0
  24. data/deps/node_modules/deku/lib/virtual.js +247 -0
  25. data/deps/node_modules/deku/node_modules/array-flatten/LICENSE +21 -0
  26. data/deps/node_modules/deku/node_modules/array-flatten/README.md +43 -0
  27. data/deps/node_modules/deku/node_modules/array-flatten/array-flatten.js +57 -0
  28. data/deps/node_modules/deku/node_modules/array-flatten/package.json +62 -0
  29. data/deps/node_modules/deku/node_modules/component-emitter/History.md +63 -0
  30. data/deps/node_modules/deku/node_modules/component-emitter/LICENSE +24 -0
  31. data/deps/node_modules/deku/node_modules/component-emitter/Readme.md +74 -0
  32. data/deps/node_modules/deku/node_modules/component-emitter/index.js +161 -0
  33. data/deps/node_modules/deku/node_modules/component-emitter/package.json +174 -0
  34. data/deps/node_modules/deku/node_modules/component-raf/.npmignore +2 -0
  35. data/deps/node_modules/deku/node_modules/component-raf/History.md +26 -0
  36. data/deps/node_modules/deku/node_modules/component-raf/Makefile +11 -0
  37. data/deps/node_modules/deku/node_modules/component-raf/Readme.md +46 -0
  38. data/deps/node_modules/deku/node_modules/component-raf/component.json +16 -0
  39. data/deps/node_modules/deku/node_modules/component-raf/example.html +43 -0
  40. data/deps/node_modules/deku/node_modules/component-raf/index.js +34 -0
  41. data/deps/node_modules/deku/node_modules/component-raf/package.json +164 -0
  42. data/deps/node_modules/deku/node_modules/component-type/.npmignore +3 -0
  43. data/deps/node_modules/deku/node_modules/component-type/Makefile +14 -0
  44. data/deps/node_modules/deku/node_modules/component-type/Readme.md +37 -0
  45. data/deps/node_modules/deku/node_modules/component-type/component.json +13 -0
  46. data/deps/node_modules/deku/node_modules/component-type/index.js +34 -0
  47. data/deps/node_modules/deku/node_modules/component-type/package.json +120 -0
  48. data/deps/node_modules/deku/node_modules/component-type/test/index.html +17 -0
  49. data/deps/node_modules/deku/node_modules/component-type/test/mocha.css +231 -0
  50. data/deps/node_modules/deku/node_modules/component-type/test/mocha.js +5340 -0
  51. data/deps/node_modules/deku/node_modules/component-type/test/tests.js +72 -0
  52. data/deps/node_modules/deku/node_modules/dom-pool/.npmignore +1 -0
  53. data/deps/node_modules/deku/node_modules/dom-pool/Pool.js +52 -0
  54. data/deps/node_modules/deku/node_modules/dom-pool/README.md +42 -0
  55. data/deps/node_modules/deku/node_modules/dom-pool/authors.txt +4 -0
  56. data/deps/node_modules/deku/node_modules/dom-pool/bower.json +26 -0
  57. data/deps/node_modules/deku/node_modules/dom-pool/package.json +46 -0
  58. data/deps/node_modules/deku/node_modules/dom-pool/tests.html +16 -0
  59. data/deps/node_modules/deku/node_modules/dom-pool/tests.js +102 -0
  60. data/deps/node_modules/deku/node_modules/dom-walk/.npmignore +3 -0
  61. data/deps/node_modules/deku/node_modules/dom-walk/LICENCE +19 -0
  62. data/deps/node_modules/deku/node_modules/dom-walk/Makefile +2 -0
  63. data/deps/node_modules/deku/node_modules/dom-walk/README.md +23 -0
  64. data/deps/node_modules/deku/node_modules/dom-walk/example/index.js +5 -0
  65. data/deps/node_modules/deku/node_modules/dom-walk/example/static/bundle.js +211 -0
  66. data/deps/node_modules/deku/node_modules/dom-walk/example/static/index.html +16 -0
  67. data/deps/node_modules/deku/node_modules/dom-walk/index.js +24 -0
  68. data/deps/node_modules/deku/node_modules/dom-walk/package.json +57 -0
  69. data/deps/node_modules/deku/node_modules/fast.js/.jshintignore +7 -0
  70. data/deps/node_modules/deku/node_modules/fast.js/.jshintrc +80 -0
  71. data/deps/node_modules/deku/node_modules/fast.js/.npmignore +6 -0
  72. data/deps/node_modules/deku/node_modules/fast.js/.travis.yml +3 -0
  73. data/deps/node_modules/deku/node_modules/fast.js/LICENSE.md +21 -0
  74. data/deps/node_modules/deku/node_modules/fast.js/README.md +552 -0
  75. data/deps/node_modules/deku/node_modules/fast.js/array/clone.js +21 -0
  76. data/deps/node_modules/deku/node_modules/fast.js/array/concat.js +32 -0
  77. data/deps/node_modules/deku/node_modules/fast.js/array/every.js +25 -0
  78. data/deps/node_modules/deku/node_modules/fast.js/array/fill.js +29 -0
  79. data/deps/node_modules/deku/node_modules/fast.js/array/filter.js +26 -0
  80. data/deps/node_modules/deku/node_modules/fast.js/array/forEach.js +21 -0
  81. data/deps/node_modules/deku/node_modules/fast.js/array/index.js +15 -0
  82. data/deps/node_modules/deku/node_modules/fast.js/array/indexOf.js +33 -0
  83. data/deps/node_modules/deku/node_modules/fast.js/array/lastIndexOf.js +29 -0
  84. data/deps/node_modules/deku/node_modules/fast.js/array/map.js +24 -0
  85. data/deps/node_modules/deku/node_modules/fast.js/array/pluck.js +24 -0
  86. data/deps/node_modules/deku/node_modules/fast.js/array/reduce.js +35 -0
  87. data/deps/node_modules/deku/node_modules/fast.js/array/reduceRight.js +35 -0
  88. data/deps/node_modules/deku/node_modules/fast.js/array/some.js +25 -0
  89. data/deps/node_modules/deku/node_modules/fast.js/bower.json +28 -0
  90. data/deps/node_modules/deku/node_modules/fast.js/clone.js +27 -0
  91. data/deps/node_modules/deku/node_modules/fast.js/dist/bench.html +15 -0
  92. data/deps/node_modules/deku/node_modules/fast.js/dist/bench.js +19900 -0
  93. data/deps/node_modules/deku/node_modules/fast.js/dist/fast.js +1450 -0
  94. data/deps/node_modules/deku/node_modules/fast.js/dist/fast.min.js +1 -0
  95. data/deps/node_modules/deku/node_modules/fast.js/filter.js +23 -0
  96. data/deps/node_modules/deku/node_modules/fast.js/forEach.js +22 -0
  97. data/deps/node_modules/deku/node_modules/fast.js/function/apply.js +19 -0
  98. data/deps/node_modules/deku/node_modules/fast.js/function/applyNoContext.js +29 -0
  99. data/deps/node_modules/deku/node_modules/fast.js/function/applyWithContext.js +29 -0
  100. data/deps/node_modules/deku/node_modules/fast.js/function/bind.js +71 -0
  101. data/deps/node_modules/deku/node_modules/fast.js/function/bindInternal3.js +11 -0
  102. data/deps/node_modules/deku/node_modules/fast.js/function/bindInternal4.js +11 -0
  103. data/deps/node_modules/deku/node_modules/fast.js/function/index.js +7 -0
  104. data/deps/node_modules/deku/node_modules/fast.js/function/partial.js +42 -0
  105. data/deps/node_modules/deku/node_modules/fast.js/function/partialConstructor.js +45 -0
  106. data/deps/node_modules/deku/node_modules/fast.js/function/try.js +35 -0
  107. data/deps/node_modules/deku/node_modules/fast.js/index.js +241 -0
  108. data/deps/node_modules/deku/node_modules/fast.js/map.js +23 -0
  109. data/deps/node_modules/deku/node_modules/fast.js/object/assign.js +34 -0
  110. data/deps/node_modules/deku/node_modules/fast.js/object/clone.js +25 -0
  111. data/deps/node_modules/deku/node_modules/fast.js/object/filter.js +28 -0
  112. data/deps/node_modules/deku/node_modules/fast.js/object/forEach.js +23 -0
  113. data/deps/node_modules/deku/node_modules/fast.js/object/index.js +11 -0
  114. data/deps/node_modules/deku/node_modules/fast.js/object/keys.js +17 -0
  115. data/deps/node_modules/deku/node_modules/fast.js/object/map.js +26 -0
  116. data/deps/node_modules/deku/node_modules/fast.js/object/reduce.js +37 -0
  117. data/deps/node_modules/deku/node_modules/fast.js/object/reduceRight.js +37 -0
  118. data/deps/node_modules/deku/node_modules/fast.js/object/values.js +20 -0
  119. data/deps/node_modules/deku/node_modules/fast.js/package.json +73 -0
  120. data/deps/node_modules/deku/node_modules/fast.js/reduce.js +24 -0
  121. data/deps/node_modules/deku/node_modules/fast.js/reduceRight.js +24 -0
  122. data/deps/node_modules/deku/node_modules/fast.js/string/index.js +3 -0
  123. data/deps/node_modules/deku/node_modules/fast.js/string/intern.js +56 -0
  124. data/deps/node_modules/deku/node_modules/get-uid/README.md +44 -0
  125. data/deps/node_modules/deku/node_modules/get-uid/index.js +6 -0
  126. data/deps/node_modules/deku/node_modules/get-uid/package.json +56 -0
  127. data/deps/node_modules/deku/node_modules/is-dom/HISTORY.md +2 -0
  128. data/deps/node_modules/deku/node_modules/is-dom/LICENSE +21 -0
  129. data/deps/node_modules/deku/node_modules/is-dom/README.md +32 -0
  130. data/deps/node_modules/deku/node_modules/is-dom/index.js +15 -0
  131. data/deps/node_modules/deku/node_modules/is-dom/package.json +62 -0
  132. data/deps/node_modules/deku/node_modules/object-path/.npmignore +7 -0
  133. data/deps/node_modules/deku/node_modules/object-path/.travis.yml +6 -0
  134. data/deps/node_modules/deku/node_modules/object-path/LICENSE +21 -0
  135. data/deps/node_modules/deku/node_modules/object-path/README.md +96 -0
  136. data/deps/node_modules/deku/node_modules/object-path/bower.json +17 -0
  137. data/deps/node_modules/deku/node_modules/object-path/component.json +22 -0
  138. data/deps/node_modules/deku/node_modules/object-path/index.js +269 -0
  139. data/deps/node_modules/deku/node_modules/object-path/package.json +89 -0
  140. data/deps/node_modules/deku/node_modules/object-path/test.js +510 -0
  141. data/deps/node_modules/deku/node_modules/per-frame/.npmignore +68 -0
  142. data/deps/node_modules/deku/node_modules/per-frame/History.md +32 -0
  143. data/deps/node_modules/deku/node_modules/per-frame/README.md +44 -0
  144. data/deps/node_modules/deku/node_modules/per-frame/component.json +13 -0
  145. data/deps/node_modules/deku/node_modules/per-frame/index.js +37 -0
  146. data/deps/node_modules/deku/node_modules/per-frame/package.json +143 -0
  147. data/deps/node_modules/deku/node_modules/per-frame/test/test.js +94 -0
  148. data/deps/node_modules/deku/node_modules/sliced/.npmignore +2 -0
  149. data/deps/node_modules/deku/node_modules/sliced/.travis.yml +4 -0
  150. data/deps/node_modules/deku/node_modules/sliced/History.md +30 -0
  151. data/deps/node_modules/deku/node_modules/sliced/LICENSE +22 -0
  152. data/deps/node_modules/deku/node_modules/sliced/Makefile +5 -0
  153. data/deps/node_modules/deku/node_modules/sliced/README.md +62 -0
  154. data/deps/node_modules/deku/node_modules/sliced/bench.js +95 -0
  155. data/deps/node_modules/deku/node_modules/sliced/component.json +14 -0
  156. data/deps/node_modules/deku/node_modules/sliced/index.js +1 -0
  157. data/deps/node_modules/deku/node_modules/sliced/lib/sliced.js +33 -0
  158. data/deps/node_modules/deku/node_modules/sliced/package.json +52 -0
  159. data/deps/node_modules/deku/node_modules/sliced/test/index.js +80 -0
  160. data/deps/node_modules/deku/package.json +67 -0
  161. data/lib/deku.rb +11 -0
  162. data/lib/deku/application.rb +16 -0
  163. data/lib/deku/component.rb +36 -0
  164. data/lib/deku/context.rb +38 -0
  165. data/lib/deku/element_node.rb +17 -0
  166. data/lib/deku/version.rb +4 -0
  167. metadata +278 -0
@@ -0,0 +1,3 @@
1
+ components
2
+ build
3
+ node_modules
@@ -0,0 +1,14 @@
1
+
2
+ build: components index.js
3
+ @component build --dev
4
+
5
+ components:
6
+ @component install --dev
7
+
8
+ clean:
9
+ rm -fr build components template.js
10
+
11
+ test:
12
+ open test/index.html
13
+
14
+ .PHONY: clean test
@@ -0,0 +1,37 @@
1
+
2
+ # type
3
+
4
+ Type assertions aka less-broken `typeof`.
5
+
6
+ ## Example
7
+
8
+ ```js
9
+ var type = require('type');
10
+
11
+ var obj = new Date;
12
+ if (type(obj) == 'date') ...
13
+ ```
14
+
15
+ ## API
16
+
17
+ ```js
18
+ type(new Date) == 'date'
19
+ type({}) == 'object'
20
+ type(null) == 'null'
21
+ type(undefined) == 'undefined'
22
+ type("hey") == 'string'
23
+ type(true) == 'boolean'
24
+ type(false) == 'boolean'
25
+ type(12) == 'number'
26
+ type(type) == 'function'
27
+ type(/asdf/) == 'regexp'
28
+ type((function(){ return arguments })()) == 'arguments'
29
+ type([]) == 'array'
30
+ type(document.createElement('div')) == 'element'
31
+ type(NaN) == 'nan'
32
+ type(new Error('Ups! Something wrong...')) == 'error'
33
+ ```
34
+
35
+ ## License
36
+
37
+ MIT
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "type",
3
+ "description": "Cross-browser type assertions (less broken typeof)",
4
+ "version": "1.1.0",
5
+ "keywords": ["typeof", "type", "utility"],
6
+ "dependencies": {},
7
+ "development": {
8
+ "component/assert": "*"
9
+ },
10
+ "scripts": [
11
+ "index.js"
12
+ ]
13
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * toString ref.
3
+ */
4
+
5
+ var toString = Object.prototype.toString;
6
+
7
+ /**
8
+ * Return the type of `val`.
9
+ *
10
+ * @param {Mixed} val
11
+ * @return {String}
12
+ * @api public
13
+ */
14
+
15
+ module.exports = function(val){
16
+ switch (toString.call(val)) {
17
+ case '[object Date]': return 'date';
18
+ case '[object RegExp]': return 'regexp';
19
+ case '[object Arguments]': return 'arguments';
20
+ case '[object Array]': return 'array';
21
+ case '[object Error]': return 'error';
22
+ }
23
+
24
+ if (val === null) return 'null';
25
+ if (val === undefined) return 'undefined';
26
+ if (val !== val) return 'nan';
27
+ if (val && val.nodeType === 1) return 'element';
28
+
29
+ val = val.valueOf
30
+ ? val.valueOf()
31
+ : Object.prototype.valueOf.apply(val)
32
+
33
+ return typeof val;
34
+ };
@@ -0,0 +1,120 @@
1
+ {
2
+ "name": "component-type",
3
+ "description": "Cross-browser type assertions (less broken typeof)",
4
+ "version": "1.1.0",
5
+ "keywords": [
6
+ "typeof",
7
+ "type",
8
+ "utility"
9
+ ],
10
+ "dependencies": {},
11
+ "main": "index.js",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/component/type.git"
15
+ },
16
+ "gitHead": "44c73293c7e2c71d6598ed4e58f34084f862f8d1",
17
+ "bugs": {
18
+ "url": "https://github.com/component/type/issues"
19
+ },
20
+ "homepage": "https://github.com/component/type",
21
+ "_id": "component-type@1.1.0",
22
+ "scripts": {},
23
+ "_shasum": "95b666aad53e5c8d1f2be135c45b5d499197c0c5",
24
+ "_from": "component-type@>=1.1.0 <2.0.0",
25
+ "_npmVersion": "2.1.10",
26
+ "_nodeVersion": "0.10.32",
27
+ "_npmUser": {
28
+ "name": "juliangruber",
29
+ "email": "julian@juliangruber.com"
30
+ },
31
+ "maintainers": [
32
+ {
33
+ "name": "maxogden",
34
+ "email": "mogden@gmail.com"
35
+ },
36
+ {
37
+ "name": "jongleberry",
38
+ "email": "jonathanrichardong@gmail.com"
39
+ },
40
+ {
41
+ "name": "dominicbarnes",
42
+ "email": "dominic@dbarnes.info"
43
+ },
44
+ {
45
+ "name": "tootallnate",
46
+ "email": "nathan@tootallnate.net"
47
+ },
48
+ {
49
+ "name": "tjholowaychuk",
50
+ "email": "tj@vision-media.ca"
51
+ },
52
+ {
53
+ "name": "juliangruber",
54
+ "email": "julian@juliangruber.com"
55
+ },
56
+ {
57
+ "name": "ianstormtaylor",
58
+ "email": "ian@ianstormtaylor.com"
59
+ },
60
+ {
61
+ "name": "timoxley",
62
+ "email": "secoif@gmail.com"
63
+ },
64
+ {
65
+ "name": "mattmueller",
66
+ "email": "mattmuelle@gmail.com"
67
+ },
68
+ {
69
+ "name": "jonathanong",
70
+ "email": "jonathanrichardong@gmail.com"
71
+ },
72
+ {
73
+ "name": "queckezz",
74
+ "email": "fabian.eichenberger@gmail.com"
75
+ },
76
+ {
77
+ "name": "yields",
78
+ "email": "yields@icloud.com"
79
+ },
80
+ {
81
+ "name": "anthonyshort",
82
+ "email": "antshort@gmail.com"
83
+ },
84
+ {
85
+ "name": "nami-doc",
86
+ "email": "vendethiel@hotmail.fr"
87
+ },
88
+ {
89
+ "name": "clintwood",
90
+ "email": "clint@anotherway.co.za"
91
+ },
92
+ {
93
+ "name": "thehydroimpulse",
94
+ "email": "dnfagnan@gmail.com"
95
+ },
96
+ {
97
+ "name": "stephenmathieson",
98
+ "email": "me@stephenmathieson.com"
99
+ },
100
+ {
101
+ "name": "trevorgerhardt",
102
+ "email": "trevorgerhardt@gmail.com"
103
+ },
104
+ {
105
+ "name": "timaschew",
106
+ "email": "timaschew@gmail.com"
107
+ },
108
+ {
109
+ "name": "hughsk",
110
+ "email": "hughskennedy@gmail.com"
111
+ }
112
+ ],
113
+ "dist": {
114
+ "shasum": "95b666aad53e5c8d1f2be135c45b5d499197c0c5",
115
+ "tarball": "http://registry.npmjs.org/component-type/-/component-type-1.1.0.tgz"
116
+ },
117
+ "directories": {},
118
+ "_resolved": "https://registry.npmjs.org/component-type/-/component-type-1.1.0.tgz",
119
+ "readme": "ERROR: No README data found!"
120
+ }
@@ -0,0 +1,17 @@
1
+ <html>
2
+ <head>
3
+ <title>Mocha</title>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <link rel="stylesheet" href="mocha.css" />
6
+ </head>
7
+ <body>
8
+ <div id="mocha"></div>
9
+ <script src="mocha.js"></script>
10
+ <script>mocha.setup('bdd')</script>
11
+ <script src="../build/build.js"></script>
12
+ <script src="tests.js"></script>
13
+ <script>
14
+ mocha.run();
15
+ </script>
16
+ </body>
17
+ </html>
@@ -0,0 +1,231 @@
1
+ @charset "utf-8";
2
+
3
+ body {
4
+ font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
5
+ padding: 60px 50px;
6
+ }
7
+
8
+ #mocha ul, #mocha li {
9
+ margin: 0;
10
+ padding: 0;
11
+ }
12
+
13
+ #mocha ul {
14
+ list-style: none;
15
+ }
16
+
17
+ #mocha h1, #mocha h2 {
18
+ margin: 0;
19
+ }
20
+
21
+ #mocha h1 {
22
+ margin-top: 15px;
23
+ font-size: 1em;
24
+ font-weight: 200;
25
+ }
26
+
27
+ #mocha h1 a {
28
+ text-decoration: none;
29
+ color: inherit;
30
+ }
31
+
32
+ #mocha h1 a:hover {
33
+ text-decoration: underline;
34
+ }
35
+
36
+ #mocha .suite .suite h1 {
37
+ margin-top: 0;
38
+ font-size: .8em;
39
+ }
40
+
41
+ .hidden {
42
+ display: none;
43
+ }
44
+
45
+ #mocha h2 {
46
+ font-size: 12px;
47
+ font-weight: normal;
48
+ cursor: pointer;
49
+ }
50
+
51
+ #mocha .suite {
52
+ margin-left: 15px;
53
+ }
54
+
55
+ #mocha .test {
56
+ margin-left: 15px;
57
+ overflow: hidden;
58
+ }
59
+
60
+ #mocha .test.pending:hover h2::after {
61
+ content: '(pending)';
62
+ font-family: arial;
63
+ }
64
+
65
+ #mocha .test.pass.medium .duration {
66
+ background: #C09853;
67
+ }
68
+
69
+ #mocha .test.pass.slow .duration {
70
+ background: #B94A48;
71
+ }
72
+
73
+ #mocha .test.pass::before {
74
+ content: '✓';
75
+ font-size: 12px;
76
+ display: block;
77
+ float: left;
78
+ margin-right: 5px;
79
+ color: #00d6b2;
80
+ }
81
+
82
+ #mocha .test.pass .duration {
83
+ font-size: 9px;
84
+ margin-left: 5px;
85
+ padding: 2px 5px;
86
+ color: white;
87
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
88
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
89
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
90
+ -webkit-border-radius: 5px;
91
+ -moz-border-radius: 5px;
92
+ -ms-border-radius: 5px;
93
+ -o-border-radius: 5px;
94
+ border-radius: 5px;
95
+ }
96
+
97
+ #mocha .test.pass.fast .duration {
98
+ display: none;
99
+ }
100
+
101
+ #mocha .test.pending {
102
+ color: #0b97c4;
103
+ }
104
+
105
+ #mocha .test.pending::before {
106
+ content: '◦';
107
+ color: #0b97c4;
108
+ }
109
+
110
+ #mocha .test.fail {
111
+ color: #c00;
112
+ }
113
+
114
+ #mocha .test.fail pre {
115
+ color: black;
116
+ }
117
+
118
+ #mocha .test.fail::before {
119
+ content: '✖';
120
+ font-size: 12px;
121
+ display: block;
122
+ float: left;
123
+ margin-right: 5px;
124
+ color: #c00;
125
+ }
126
+
127
+ #mocha .test pre.error {
128
+ color: #c00;
129
+ max-height: 300px;
130
+ overflow: auto;
131
+ }
132
+
133
+ #mocha .test pre {
134
+ display: block;
135
+ float: left;
136
+ clear: left;
137
+ font: 12px/1.5 monaco, monospace;
138
+ margin: 5px;
139
+ padding: 15px;
140
+ border: 1px solid #eee;
141
+ border-bottom-color: #ddd;
142
+ -webkit-border-radius: 3px;
143
+ -webkit-box-shadow: 0 1px 3px #eee;
144
+ -moz-border-radius: 3px;
145
+ -moz-box-shadow: 0 1px 3px #eee;
146
+ }
147
+
148
+ #mocha .test h2 {
149
+ position: relative;
150
+ }
151
+
152
+ #mocha .test a.replay {
153
+ position: absolute;
154
+ top: 3px;
155
+ right: 0;
156
+ text-decoration: none;
157
+ vertical-align: middle;
158
+ display: block;
159
+ width: 15px;
160
+ height: 15px;
161
+ line-height: 15px;
162
+ text-align: center;
163
+ background: #eee;
164
+ font-size: 15px;
165
+ -moz-border-radius: 15px;
166
+ border-radius: 15px;
167
+ -webkit-transition: opacity 200ms;
168
+ -moz-transition: opacity 200ms;
169
+ transition: opacity 200ms;
170
+ opacity: 0.3;
171
+ color: #888;
172
+ }
173
+
174
+ #mocha .test:hover a.replay {
175
+ opacity: 1;
176
+ }
177
+
178
+ #mocha-report.pass .test.fail {
179
+ display: none;
180
+ }
181
+
182
+ #mocha-report.fail .test.pass {
183
+ display: none;
184
+ }
185
+
186
+ #mocha-error {
187
+ color: #c00;
188
+ font-size: 1.5 em;
189
+ font-weight: 100;
190
+ letter-spacing: 1px;
191
+ }
192
+
193
+ #mocha-stats {
194
+ position: fixed;
195
+ top: 15px;
196
+ right: 10px;
197
+ font-size: 12px;
198
+ margin: 0;
199
+ color: #888;
200
+ }
201
+
202
+ #mocha-stats .progress {
203
+ float: right;
204
+ padding-top: 0;
205
+ }
206
+
207
+ #mocha-stats em {
208
+ color: black;
209
+ }
210
+
211
+ #mocha-stats a {
212
+ text-decoration: none;
213
+ color: inherit;
214
+ }
215
+
216
+ #mocha-stats a:hover {
217
+ border-bottom: 1px solid #eee;
218
+ }
219
+
220
+ #mocha-stats li {
221
+ display: inline-block;
222
+ margin: 0 5px;
223
+ list-style: none;
224
+ padding-top: 11px;
225
+ }
226
+
227
+ code .comment { color: #ddd }
228
+ code .init { color: #2F6FAD }
229
+ code .string { color: #5890AD }
230
+ code .keyword { color: #8A6343 }
231
+ code .number { color: #2F6FAD }