jekyll-chalk 0.1.0 → 0.1.1

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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +21 -0
  3. data/README.md +89 -0
  4. data/_includes/footer.html +7 -0
  5. data/_includes/head.html +33 -0
  6. data/_includes/image.html +3 -0
  7. data/_includes/javascripts.html +21 -0
  8. data/_includes/navigation.html +75 -0
  9. data/_layouts/articles_by_tag.html +38 -0
  10. data/_layouts/default.html +16 -0
  11. data/_layouts/page.html +5 -0
  12. data/_layouts/post.html +71 -0
  13. data/assets/bower/fluidbox/.bower.json +44 -0
  14. data/assets/bower/fluidbox/Gruntfile.js +8 -0
  15. data/assets/bower/fluidbox/LICENSE.md +23 -0
  16. data/assets/bower/fluidbox/README.md +396 -0
  17. data/assets/bower/fluidbox/bower.json +35 -0
  18. data/assets/bower/fluidbox/demo/css/styles.min.css +2 -0
  19. data/assets/bower/fluidbox/demo/css/styles.min.css.map +1 -0
  20. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.eot +0 -0
  21. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.svg +233 -0
  22. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.ttf +0 -0
  23. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.woff +0 -0
  24. data/assets/bower/fluidbox/demo/fonts/fontello.eot +0 -0
  25. data/assets/bower/fluidbox/demo/fonts/fontello.svg +13 -0
  26. data/assets/bower/fluidbox/demo/fonts/fontello.ttf +0 -0
  27. data/assets/bower/fluidbox/demo/fonts/fontello.woff +0 -0
  28. data/assets/bower/fluidbox/demo/index.html +758 -0
  29. data/assets/bower/fluidbox/demo/src/css/styles.scss +1131 -0
  30. data/assets/bower/fluidbox/dist/css/fluidbox.min.css +2 -0
  31. data/assets/bower/fluidbox/dist/css/fluidbox.min.css.map +1 -0
  32. data/assets/bower/fluidbox/dist/js/jquery.fluidbox.min.js +1 -0
  33. data/assets/bower/fluidbox/grunt/aliases.yaml +20 -0
  34. data/assets/bower/fluidbox/grunt/clean.js +5 -0
  35. data/assets/bower/fluidbox/grunt/concurrent.js +33 -0
  36. data/assets/bower/fluidbox/grunt/jshint.js +10 -0
  37. data/assets/bower/fluidbox/grunt/postcss.js +47 -0
  38. data/assets/bower/fluidbox/grunt/sass.js +42 -0
  39. data/assets/bower/fluidbox/grunt/uglify.js +7 -0
  40. data/assets/bower/fluidbox/grunt/watch.js +28 -0
  41. data/assets/bower/fluidbox/index.html +8 -0
  42. data/assets/bower/fluidbox/license.txt +21 -0
  43. data/assets/bower/fluidbox/src/css/_fluidbox.scss +95 -0
  44. data/assets/bower/fluidbox/src/css/fluidbox.scss +2 -0
  45. data/assets/bower/fluidbox/src/js/jquery.fluidbox.js +722 -0
  46. data/assets/bower/jquery/.bower.json +25 -0
  47. data/assets/bower/jquery/AUTHORS.txt +295 -0
  48. data/assets/bower/jquery/LICENSE.txt +36 -0
  49. data/assets/bower/jquery/README.md +65 -0
  50. data/assets/bower/jquery/bower.json +14 -0
  51. data/assets/bower/jquery/dist/core.js +482 -0
  52. data/assets/bower/jquery/dist/jquery.js +10220 -0
  53. data/assets/bower/jquery/dist/jquery.min.js +4 -0
  54. data/assets/bower/jquery/dist/jquery.min.map +1 -0
  55. data/assets/bower/jquery/dist/jquery.slim.js +8107 -0
  56. data/assets/bower/jquery/dist/jquery.slim.min.js +4 -0
  57. data/assets/bower/jquery/dist/jquery.slim.min.map +1 -0
  58. data/assets/bower/jquery/external/sizzle/LICENSE.txt +36 -0
  59. data/assets/bower/jquery/external/sizzle/dist/sizzle.js +2272 -0
  60. data/assets/bower/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  61. data/assets/bower/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  62. data/assets/bower/jquery/src/.eslintrc.json +18 -0
  63. data/assets/bower/jquery/src/ajax.js +855 -0
  64. data/assets/bower/jquery/src/ajax/jsonp.js +102 -0
  65. data/assets/bower/jquery/src/ajax/load.js +76 -0
  66. data/assets/bower/jquery/src/ajax/parseXML.js +30 -0
  67. data/assets/bower/jquery/src/ajax/script.js +77 -0
  68. data/assets/bower/jquery/src/ajax/var/location.js +5 -0
  69. data/assets/bower/jquery/src/ajax/var/nonce.js +7 -0
  70. data/assets/bower/jquery/src/ajax/var/rquery.js +5 -0
  71. data/assets/bower/jquery/src/ajax/xhr.js +169 -0
  72. data/assets/bower/jquery/src/attributes.js +13 -0
  73. data/assets/bower/jquery/src/attributes/attr.js +140 -0
  74. data/assets/bower/jquery/src/attributes/classes.js +174 -0
  75. data/assets/bower/jquery/src/attributes/prop.js +143 -0
  76. data/assets/bower/jquery/src/attributes/support.js +33 -0
  77. data/assets/bower/jquery/src/attributes/val.js +188 -0
  78. data/assets/bower/jquery/src/callbacks.js +234 -0
  79. data/assets/bower/jquery/src/core.js +482 -0
  80. data/assets/bower/jquery/src/core/DOMEval.js +16 -0
  81. data/assets/bower/jquery/src/core/access.js +70 -0
  82. data/assets/bower/jquery/src/core/init.js +127 -0
  83. data/assets/bower/jquery/src/core/parseHTML.js +65 -0
  84. data/assets/bower/jquery/src/core/ready-no-deferred.js +105 -0
  85. data/assets/bower/jquery/src/core/ready.js +95 -0
  86. data/assets/bower/jquery/src/core/readyException.js +13 -0
  87. data/assets/bower/jquery/src/core/stripAndCollapse.js +14 -0
  88. data/assets/bower/jquery/src/core/support.js +20 -0
  89. data/assets/bower/jquery/src/core/var/rsingleTag.js +6 -0
  90. data/assets/bower/jquery/src/css.js +426 -0
  91. data/assets/bower/jquery/src/css/addGetHookIf.js +26 -0
  92. data/assets/bower/jquery/src/css/adjustCSS.js +71 -0
  93. data/assets/bower/jquery/src/css/curCSS.js +59 -0
  94. data/assets/bower/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  95. data/assets/bower/jquery/src/css/showHide.js +105 -0
  96. data/assets/bower/jquery/src/css/support.js +89 -0
  97. data/assets/bower/jquery/src/css/var/cssExpand.js +5 -0
  98. data/assets/bower/jquery/src/css/var/getStyles.js +17 -0
  99. data/assets/bower/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  100. data/assets/bower/jquery/src/css/var/rmargin.js +5 -0
  101. data/assets/bower/jquery/src/css/var/rnumnonpx.js +7 -0
  102. data/assets/bower/jquery/src/css/var/swap.js +26 -0
  103. data/assets/bower/jquery/src/data.js +179 -0
  104. data/assets/bower/jquery/src/data/Data.js +161 -0
  105. data/assets/bower/jquery/src/data/var/acceptData.js +19 -0
  106. data/assets/bower/jquery/src/data/var/dataPriv.js +7 -0
  107. data/assets/bower/jquery/src/data/var/dataUser.js +7 -0
  108. data/assets/bower/jquery/src/deferred.js +389 -0
  109. data/assets/bower/jquery/src/deferred/exceptionHook.js +21 -0
  110. data/assets/bower/jquery/src/deprecated.js +30 -0
  111. data/assets/bower/jquery/src/dimensions.js +56 -0
  112. data/assets/bower/jquery/src/effects.js +693 -0
  113. data/assets/bower/jquery/src/effects/Tween.js +123 -0
  114. data/assets/bower/jquery/src/effects/animatedSelector.js +15 -0
  115. data/assets/bower/jquery/src/event.js +745 -0
  116. data/assets/bower/jquery/src/event/ajax.js +22 -0
  117. data/assets/bower/jquery/src/event/alias.js +29 -0
  118. data/assets/bower/jquery/src/event/focusin.js +55 -0
  119. data/assets/bower/jquery/src/event/support.js +11 -0
  120. data/assets/bower/jquery/src/event/trigger.js +185 -0
  121. data/assets/bower/jquery/src/exports/amd.js +26 -0
  122. data/assets/bower/jquery/src/exports/global.js +34 -0
  123. data/assets/bower/jquery/src/jquery.js +41 -0
  124. data/assets/bower/jquery/src/manipulation.js +486 -0
  125. data/assets/bower/jquery/src/manipulation/_evalUrl.js +23 -0
  126. data/assets/bower/jquery/src/manipulation/buildFragment.js +104 -0
  127. data/assets/bower/jquery/src/manipulation/getAll.js +31 -0
  128. data/assets/bower/jquery/src/manipulation/setGlobalEval.js +22 -0
  129. data/assets/bower/jquery/src/manipulation/support.js +35 -0
  130. data/assets/bower/jquery/src/manipulation/var/rcheckableType.js +5 -0
  131. data/assets/bower/jquery/src/manipulation/var/rscriptType.js +5 -0
  132. data/assets/bower/jquery/src/manipulation/var/rtagName.js +5 -0
  133. data/assets/bower/jquery/src/manipulation/wrapMap.js +29 -0
  134. data/assets/bower/jquery/src/offset.js +232 -0
  135. data/assets/bower/jquery/src/queue.js +145 -0
  136. data/assets/bower/jquery/src/queue/delay.js +24 -0
  137. data/assets/bower/jquery/src/selector-native.js +237 -0
  138. data/assets/bower/jquery/src/selector-sizzle.js +19 -0
  139. data/assets/bower/jquery/src/selector.js +3 -0
  140. data/assets/bower/jquery/src/serialize.js +130 -0
  141. data/assets/bower/jquery/src/traversing.js +178 -0
  142. data/assets/bower/jquery/src/traversing/findFilter.js +106 -0
  143. data/assets/bower/jquery/src/traversing/var/dir.js +22 -0
  144. data/assets/bower/jquery/src/traversing/var/rneedsContext.js +8 -0
  145. data/assets/bower/jquery/src/traversing/var/siblings.js +17 -0
  146. data/assets/bower/jquery/src/var/ObjectFunctionString.js +7 -0
  147. data/assets/bower/jquery/src/var/arr.js +5 -0
  148. data/assets/bower/jquery/src/var/class2type.js +6 -0
  149. data/assets/bower/jquery/src/var/concat.js +7 -0
  150. data/assets/bower/jquery/src/var/document.js +5 -0
  151. data/assets/bower/jquery/src/var/documentElement.js +7 -0
  152. data/assets/bower/jquery/src/var/fnToString.js +7 -0
  153. data/assets/bower/jquery/src/var/getProto.js +5 -0
  154. data/assets/bower/jquery/src/var/hasOwn.js +7 -0
  155. data/assets/bower/jquery/src/var/indexOf.js +7 -0
  156. data/assets/bower/jquery/src/var/pnum.js +5 -0
  157. data/assets/bower/jquery/src/var/push.js +7 -0
  158. data/assets/bower/jquery/src/var/rcssNum.js +9 -0
  159. data/assets/bower/jquery/src/var/rnothtmlwhite.js +8 -0
  160. data/assets/bower/jquery/src/var/slice.js +7 -0
  161. data/assets/bower/jquery/src/var/support.js +6 -0
  162. data/assets/bower/jquery/src/var/toString.js +7 -0
  163. data/assets/bower/jquery/src/wrap.js +77 -0
  164. data/assets/bower/scrollreveal/.bower.json +36 -0
  165. data/assets/bower/scrollreveal/CHANGELOG.md +268 -0
  166. data/assets/bower/scrollreveal/LICENSE.md +12 -0
  167. data/assets/bower/scrollreveal/README.md +413 -0
  168. data/assets/bower/scrollreveal/bower.json +24 -0
  169. data/assets/bower/scrollreveal/dist/scrollreveal.js +860 -0
  170. data/assets/bower/scrollreveal/dist/scrollreveal.min.js +1 -0
  171. data/assets/bower/turbolinks5/.blade.yml +15 -0
  172. data/assets/bower/turbolinks5/.bower.json +14 -0
  173. data/assets/bower/turbolinks5/.gitignore +2 -0
  174. data/assets/bower/turbolinks5/CONDUCT.md +79 -0
  175. data/assets/bower/turbolinks5/Gemfile +9 -0
  176. data/assets/bower/turbolinks5/LICENSE +20 -0
  177. data/assets/bower/turbolinks5/README.md +435 -0
  178. data/assets/bower/turbolinks5/bin/blade +16 -0
  179. data/assets/bower/turbolinks5/bin/rackup +16 -0
  180. data/assets/bower/turbolinks5/config.ru +8 -0
  181. data/assets/bower/turbolinks5/dist/turbolinks.js +6 -0
  182. data/assets/bower/turbolinks5/package.json +31 -0
  183. data/assets/bower/turbolinks5/src/turbolinks/BANNER.js.erb +4 -0
  184. data/assets/bower/turbolinks5/src/turbolinks/VERSION +1 -0
  185. data/assets/bower/turbolinks5/src/turbolinks/browser_adapter.coffee +61 -0
  186. data/assets/bower/turbolinks5/src/turbolinks/compatibility.coffee +30 -0
  187. data/assets/bower/turbolinks5/src/turbolinks/controller.coffee +239 -0
  188. data/assets/bower/turbolinks5/src/turbolinks/error_renderer.coffee +21 -0
  189. data/assets/bower/turbolinks5/src/turbolinks/head_details.coffee +51 -0
  190. data/assets/bower/turbolinks5/src/turbolinks/helpers.coffee +51 -0
  191. data/assets/bower/turbolinks5/src/turbolinks/history.coffee +46 -0
  192. data/assets/bower/turbolinks5/src/turbolinks/http_request.coffee +88 -0
  193. data/assets/bower/turbolinks5/src/turbolinks/index.coffee +16 -0
  194. data/assets/bower/turbolinks5/src/turbolinks/location.coffee +70 -0
  195. data/assets/bower/turbolinks5/src/turbolinks/progress_bar.coffee +83 -0
  196. data/assets/bower/turbolinks5/src/turbolinks/renderer.coffee +27 -0
  197. data/assets/bower/turbolinks5/src/turbolinks/scroll_manager.coffee +27 -0
  198. data/assets/bower/turbolinks5/src/turbolinks/snapshot.coffee +47 -0
  199. data/assets/bower/turbolinks5/src/turbolinks/snapshot_cache.coffee +43 -0
  200. data/assets/bower/turbolinks5/src/turbolinks/snapshot_renderer.coffee +88 -0
  201. data/assets/bower/turbolinks5/src/turbolinks/start.coffee +18 -0
  202. data/assets/bower/turbolinks5/src/turbolinks/view.coffee +34 -0
  203. data/assets/bower/turbolinks5/src/turbolinks/visit.coffee +162 -0
  204. data/assets/bower/turbolinks5/test/src/fixtures/additional_assets.html +12 -0
  205. data/assets/bower/turbolinks5/test/src/fixtures/body_script.html +18 -0
  206. data/assets/bower/turbolinks5/test/src/fixtures/eval_false_script.html +18 -0
  207. data/assets/bower/turbolinks5/test/src/fixtures/head_script.html +18 -0
  208. data/assets/bower/turbolinks5/test/src/fixtures/navigation.html +21 -0
  209. data/assets/bower/turbolinks5/test/src/fixtures/one.html +12 -0
  210. data/assets/bower/turbolinks5/test/src/fixtures/rendering.html +20 -0
  211. data/assets/bower/turbolinks5/test/src/fixtures/tracked_asset_change.html +11 -0
  212. data/assets/bower/turbolinks5/test/src/fixtures/visit.html +14 -0
  213. data/assets/bower/turbolinks5/test/src/head.html.erb +1 -0
  214. data/assets/bower/turbolinks5/test/src/helpers/replicant_helpers.coffee +18 -0
  215. data/assets/bower/turbolinks5/test/src/modules/navigation_tests.coffee +75 -0
  216. data/assets/bower/turbolinks5/test/src/modules/rendering_tests.coffee +123 -0
  217. data/assets/bower/turbolinks5/test/src/modules/visit_tests.coffee +49 -0
  218. data/assets/bower/turbolinks5/test/src/test.coffee +4 -0
  219. data/assets/bower/turbolinks5/test/src/test.css +20 -0
  220. data/assets/bower/turbolinks5/test/vendor/replicant.js +10 -0
  221. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.eot +0 -0
  222. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.ttf +0 -0
  223. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.woff +0 -0
  224. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.woff2 +0 -0
  225. data/assets/fonts/ionicons/ionicons.eot +0 -0
  226. data/assets/fonts/ionicons/ionicons.svg +2232 -0
  227. data/assets/fonts/ionicons/ionicons.ttf +0 -0
  228. data/assets/fonts/ionicons/ionicons.woff +0 -0
  229. data/assets/fonts/lato/Lato-300.eot +0 -0
  230. data/assets/fonts/lato/Lato-300.ttf +0 -0
  231. data/assets/fonts/lato/Lato-300.woff +0 -0
  232. data/assets/fonts/lato/Lato-300.woff2 +0 -0
  233. data/assets/fonts/lato/Lato-700.eot +0 -0
  234. data/assets/fonts/lato/Lato-700.ttf +0 -0
  235. data/assets/fonts/lato/Lato-700.woff +0 -0
  236. data/assets/fonts/lato/Lato-700.woff2 +0 -0
  237. data/assets/fonts/lato/Lato-regular.eot +0 -0
  238. data/assets/fonts/lato/Lato-regular.ttf +0 -0
  239. data/assets/fonts/lato/Lato-regular.woff +0 -0
  240. data/assets/fonts/lato/Lato-regular.woff2 +0 -0
  241. data/assets/images/about.jpg +0 -0
  242. data/assets/images/about@2x.jpg +0 -0
  243. data/assets/images/apple-touch-icon.png +0 -0
  244. data/assets/images/documentation/chalk-intro.png +0 -0
  245. data/assets/images/documentation/chalk-intro@2x.png +0 -0
  246. data/assets/images/documentation/enlarge.gif +0 -0
  247. data/assets/images/documentation/enlarge@2x.gif +0 -0
  248. data/assets/images/documentation/sample-image.jpg +0 -0
  249. data/assets/images/documentation/sample-image@2x.jpg +0 -0
  250. data/assets/images/og-image.jpg +0 -0
  251. data/assets/javascripts/application.js +24 -0
  252. data/assets/javascripts/vendor.js +6 -0
  253. data/assets/javascripts/vendor/jquery-throttle-debounce.js +9 -0
  254. data/assets/javascripts/vendor/retina.js +182 -0
  255. data/assets/stylesheets/.csscomb.json +197 -0
  256. data/assets/stylesheets/.scss-lint.yml +33 -0
  257. data/assets/stylesheets/_base.scss +151 -0
  258. data/assets/stylesheets/_mixins.scss +28 -0
  259. data/assets/stylesheets/_variables.scss +47 -0
  260. data/assets/stylesheets/dark.scss +70 -0
  261. data/assets/stylesheets/fonts.scss +63 -0
  262. data/assets/stylesheets/layouts/_footer.scss +17 -0
  263. data/assets/stylesheets/layouts/_grid.scss +102 -0
  264. data/assets/stylesheets/light.scss +70 -0
  265. data/assets/stylesheets/modules/_about.scss +10 -0
  266. data/assets/stylesheets/modules/_articles.scss +211 -0
  267. data/assets/stylesheets/modules/_embed.scss +31 -0
  268. data/assets/stylesheets/modules/_header.scss +57 -0
  269. data/assets/stylesheets/modules/_highlights-dark.scss +415 -0
  270. data/assets/stylesheets/modules/_highlights-light.scss +409 -0
  271. data/assets/stylesheets/modules/_icons.scss +2967 -0
  272. data/assets/stylesheets/notfound-dark.scss +90 -0
  273. data/assets/stylesheets/notfound-light.scss +90 -0
  274. data/assets/stylesheets/vendor/_normalize.scss +461 -0
  275. metadata +276 -3
@@ -0,0 +1,13 @@
1
+ define( [
2
+ "../core"
3
+ ], function( jQuery ) {
4
+
5
+ "use strict";
6
+
7
+ jQuery.readyException = function( error ) {
8
+ window.setTimeout( function() {
9
+ throw error;
10
+ } );
11
+ };
12
+
13
+ } );
@@ -0,0 +1,14 @@
1
+ define( [
2
+ "../var/rnothtmlwhite"
3
+ ], function( rnothtmlwhite ) {
4
+ "use strict";
5
+
6
+ // Strip and collapse whitespace according to HTML spec
7
+ // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
8
+ function stripAndCollapse( value ) {
9
+ var tokens = value.match( rnothtmlwhite ) || [];
10
+ return tokens.join( " " );
11
+ }
12
+
13
+ return stripAndCollapse;
14
+ } );
@@ -0,0 +1,20 @@
1
+ define( [
2
+ "../var/document",
3
+ "../var/support"
4
+ ], function( document, support ) {
5
+
6
+ "use strict";
7
+
8
+ // Support: Safari 8 only
9
+ // In Safari 8 documents created via document.implementation.createHTMLDocument
10
+ // collapse sibling forms: the second one becomes a child of the first one.
11
+ // Because of that, this security measure has to be disabled in Safari 8.
12
+ // https://bugs.webkit.org/show_bug.cgi?id=137337
13
+ support.createHTMLDocument = ( function() {
14
+ var body = document.implementation.createHTMLDocument( "" ).body;
15
+ body.innerHTML = "<form></form><form></form>";
16
+ return body.childNodes.length === 2;
17
+ } )();
18
+
19
+ return support;
20
+ } );
@@ -0,0 +1,6 @@
1
+ define( function() {
2
+ "use strict";
3
+
4
+ // Match a standalone tag
5
+ return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
6
+ } );
@@ -0,0 +1,426 @@
1
+ define( [
2
+ "./core",
3
+ "./var/pnum",
4
+ "./core/access",
5
+ "./css/var/rmargin",
6
+ "./var/document",
7
+ "./var/rcssNum",
8
+ "./css/var/rnumnonpx",
9
+ "./css/var/cssExpand",
10
+ "./css/var/getStyles",
11
+ "./css/var/swap",
12
+ "./css/curCSS",
13
+ "./css/adjustCSS",
14
+ "./css/addGetHookIf",
15
+ "./css/support",
16
+
17
+ "./core/init",
18
+ "./core/ready",
19
+ "./selector" // contains
20
+ ], function( jQuery, pnum, access, rmargin, document, rcssNum, rnumnonpx, cssExpand,
21
+ getStyles, swap, curCSS, adjustCSS, addGetHookIf, support ) {
22
+
23
+ "use strict";
24
+
25
+ var
26
+
27
+ // Swappable if display is none or starts with table
28
+ // except "table", "table-cell", or "table-caption"
29
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
30
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
31
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
32
+ cssNormalTransform = {
33
+ letterSpacing: "0",
34
+ fontWeight: "400"
35
+ },
36
+
37
+ cssPrefixes = [ "Webkit", "Moz", "ms" ],
38
+ emptyStyle = document.createElement( "div" ).style;
39
+
40
+ // Return a css property mapped to a potentially vendor prefixed property
41
+ function vendorPropName( name ) {
42
+
43
+ // Shortcut for names that are not vendor prefixed
44
+ if ( name in emptyStyle ) {
45
+ return name;
46
+ }
47
+
48
+ // Check for vendor prefixed names
49
+ var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
50
+ i = cssPrefixes.length;
51
+
52
+ while ( i-- ) {
53
+ name = cssPrefixes[ i ] + capName;
54
+ if ( name in emptyStyle ) {
55
+ return name;
56
+ }
57
+ }
58
+ }
59
+
60
+ function setPositiveNumber( elem, value, subtract ) {
61
+
62
+ // Any relative (+/-) values have already been
63
+ // normalized at this point
64
+ var matches = rcssNum.exec( value );
65
+ return matches ?
66
+
67
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
68
+ Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
69
+ value;
70
+ }
71
+
72
+ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
73
+ var i,
74
+ val = 0;
75
+
76
+ // If we already have the right measurement, avoid augmentation
77
+ if ( extra === ( isBorderBox ? "border" : "content" ) ) {
78
+ i = 4;
79
+
80
+ // Otherwise initialize for horizontal or vertical properties
81
+ } else {
82
+ i = name === "width" ? 1 : 0;
83
+ }
84
+
85
+ for ( ; i < 4; i += 2 ) {
86
+
87
+ // Both box models exclude margin, so add it if we want it
88
+ if ( extra === "margin" ) {
89
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
90
+ }
91
+
92
+ if ( isBorderBox ) {
93
+
94
+ // border-box includes padding, so remove it if we want content
95
+ if ( extra === "content" ) {
96
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
97
+ }
98
+
99
+ // At this point, extra isn't border nor margin, so remove border
100
+ if ( extra !== "margin" ) {
101
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
102
+ }
103
+ } else {
104
+
105
+ // At this point, extra isn't content, so add padding
106
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
107
+
108
+ // At this point, extra isn't content nor padding, so add border
109
+ if ( extra !== "padding" ) {
110
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
111
+ }
112
+ }
113
+ }
114
+
115
+ return val;
116
+ }
117
+
118
+ function getWidthOrHeight( elem, name, extra ) {
119
+
120
+ // Start with offset property, which is equivalent to the border-box value
121
+ var val,
122
+ valueIsBorderBox = true,
123
+ styles = getStyles( elem ),
124
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
125
+
126
+ // Support: IE <=11 only
127
+ // Running getBoundingClientRect on a disconnected node
128
+ // in IE throws an error.
129
+ if ( elem.getClientRects().length ) {
130
+ val = elem.getBoundingClientRect()[ name ];
131
+ }
132
+
133
+ // Some non-html elements return undefined for offsetWidth, so check for null/undefined
134
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
135
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
136
+ if ( val <= 0 || val == null ) {
137
+
138
+ // Fall back to computed then uncomputed css if necessary
139
+ val = curCSS( elem, name, styles );
140
+ if ( val < 0 || val == null ) {
141
+ val = elem.style[ name ];
142
+ }
143
+
144
+ // Computed unit is not pixels. Stop here and return.
145
+ if ( rnumnonpx.test( val ) ) {
146
+ return val;
147
+ }
148
+
149
+ // Check for style in case a browser which returns unreliable values
150
+ // for getComputedStyle silently falls back to the reliable elem.style
151
+ valueIsBorderBox = isBorderBox &&
152
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
153
+
154
+ // Normalize "", auto, and prepare for extra
155
+ val = parseFloat( val ) || 0;
156
+ }
157
+
158
+ // Use the active box-sizing model to add/subtract irrelevant styles
159
+ return ( val +
160
+ augmentWidthOrHeight(
161
+ elem,
162
+ name,
163
+ extra || ( isBorderBox ? "border" : "content" ),
164
+ valueIsBorderBox,
165
+ styles
166
+ )
167
+ ) + "px";
168
+ }
169
+
170
+ jQuery.extend( {
171
+
172
+ // Add in style property hooks for overriding the default
173
+ // behavior of getting and setting a style property
174
+ cssHooks: {
175
+ opacity: {
176
+ get: function( elem, computed ) {
177
+ if ( computed ) {
178
+
179
+ // We should always get a number back from opacity
180
+ var ret = curCSS( elem, "opacity" );
181
+ return ret === "" ? "1" : ret;
182
+ }
183
+ }
184
+ }
185
+ },
186
+
187
+ // Don't automatically add "px" to these possibly-unitless properties
188
+ cssNumber: {
189
+ "animationIterationCount": true,
190
+ "columnCount": true,
191
+ "fillOpacity": true,
192
+ "flexGrow": true,
193
+ "flexShrink": true,
194
+ "fontWeight": true,
195
+ "lineHeight": true,
196
+ "opacity": true,
197
+ "order": true,
198
+ "orphans": true,
199
+ "widows": true,
200
+ "zIndex": true,
201
+ "zoom": true
202
+ },
203
+
204
+ // Add in properties whose names you wish to fix before
205
+ // setting or getting the value
206
+ cssProps: {
207
+ "float": "cssFloat"
208
+ },
209
+
210
+ // Get and set the style property on a DOM Node
211
+ style: function( elem, name, value, extra ) {
212
+
213
+ // Don't set styles on text and comment nodes
214
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
215
+ return;
216
+ }
217
+
218
+ // Make sure that we're working with the right name
219
+ var ret, type, hooks,
220
+ origName = jQuery.camelCase( name ),
221
+ style = elem.style;
222
+
223
+ name = jQuery.cssProps[ origName ] ||
224
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
225
+
226
+ // Gets hook for the prefixed version, then unprefixed version
227
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
228
+
229
+ // Check if we're setting a value
230
+ if ( value !== undefined ) {
231
+ type = typeof value;
232
+
233
+ // Convert "+=" or "-=" to relative numbers (#7345)
234
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
235
+ value = adjustCSS( elem, name, ret );
236
+
237
+ // Fixes bug #9237
238
+ type = "number";
239
+ }
240
+
241
+ // Make sure that null and NaN values aren't set (#7116)
242
+ if ( value == null || value !== value ) {
243
+ return;
244
+ }
245
+
246
+ // If a number was passed in, add the unit (except for certain CSS properties)
247
+ if ( type === "number" ) {
248
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
249
+ }
250
+
251
+ // background-* props affect original clone's values
252
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
253
+ style[ name ] = "inherit";
254
+ }
255
+
256
+ // If a hook was provided, use that value, otherwise just set the specified value
257
+ if ( !hooks || !( "set" in hooks ) ||
258
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
259
+
260
+ style[ name ] = value;
261
+ }
262
+
263
+ } else {
264
+
265
+ // If a hook was provided get the non-computed value from there
266
+ if ( hooks && "get" in hooks &&
267
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
268
+
269
+ return ret;
270
+ }
271
+
272
+ // Otherwise just get the value from the style object
273
+ return style[ name ];
274
+ }
275
+ },
276
+
277
+ css: function( elem, name, extra, styles ) {
278
+ var val, num, hooks,
279
+ origName = jQuery.camelCase( name );
280
+
281
+ // Make sure that we're working with the right name
282
+ name = jQuery.cssProps[ origName ] ||
283
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
284
+
285
+ // Try prefixed name followed by the unprefixed name
286
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
287
+
288
+ // If a hook was provided get the computed value from there
289
+ if ( hooks && "get" in hooks ) {
290
+ val = hooks.get( elem, true, extra );
291
+ }
292
+
293
+ // Otherwise, if a way to get the computed value exists, use that
294
+ if ( val === undefined ) {
295
+ val = curCSS( elem, name, styles );
296
+ }
297
+
298
+ // Convert "normal" to computed value
299
+ if ( val === "normal" && name in cssNormalTransform ) {
300
+ val = cssNormalTransform[ name ];
301
+ }
302
+
303
+ // Make numeric if forced or a qualifier was provided and val looks numeric
304
+ if ( extra === "" || extra ) {
305
+ num = parseFloat( val );
306
+ return extra === true || isFinite( num ) ? num || 0 : val;
307
+ }
308
+ return val;
309
+ }
310
+ } );
311
+
312
+ jQuery.each( [ "height", "width" ], function( i, name ) {
313
+ jQuery.cssHooks[ name ] = {
314
+ get: function( elem, computed, extra ) {
315
+ if ( computed ) {
316
+
317
+ // Certain elements can have dimension info if we invisibly show them
318
+ // but it must have a current display style that would benefit
319
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
320
+
321
+ // Support: Safari 8+
322
+ // Table columns in Safari have non-zero offsetWidth & zero
323
+ // getBoundingClientRect().width unless display is changed.
324
+ // Support: IE <=11 only
325
+ // Running getBoundingClientRect on a disconnected node
326
+ // in IE throws an error.
327
+ ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
328
+ swap( elem, cssShow, function() {
329
+ return getWidthOrHeight( elem, name, extra );
330
+ } ) :
331
+ getWidthOrHeight( elem, name, extra );
332
+ }
333
+ },
334
+
335
+ set: function( elem, value, extra ) {
336
+ var matches,
337
+ styles = extra && getStyles( elem ),
338
+ subtract = extra && augmentWidthOrHeight(
339
+ elem,
340
+ name,
341
+ extra,
342
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
343
+ styles
344
+ );
345
+
346
+ // Convert to pixels if value adjustment is needed
347
+ if ( subtract && ( matches = rcssNum.exec( value ) ) &&
348
+ ( matches[ 3 ] || "px" ) !== "px" ) {
349
+
350
+ elem.style[ name ] = value;
351
+ value = jQuery.css( elem, name );
352
+ }
353
+
354
+ return setPositiveNumber( elem, value, subtract );
355
+ }
356
+ };
357
+ } );
358
+
359
+ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
360
+ function( elem, computed ) {
361
+ if ( computed ) {
362
+ return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
363
+ elem.getBoundingClientRect().left -
364
+ swap( elem, { marginLeft: 0 }, function() {
365
+ return elem.getBoundingClientRect().left;
366
+ } )
367
+ ) + "px";
368
+ }
369
+ }
370
+ );
371
+
372
+ // These hooks are used by animate to expand properties
373
+ jQuery.each( {
374
+ margin: "",
375
+ padding: "",
376
+ border: "Width"
377
+ }, function( prefix, suffix ) {
378
+ jQuery.cssHooks[ prefix + suffix ] = {
379
+ expand: function( value ) {
380
+ var i = 0,
381
+ expanded = {},
382
+
383
+ // Assumes a single number if not a string
384
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
385
+
386
+ for ( ; i < 4; i++ ) {
387
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
388
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
389
+ }
390
+
391
+ return expanded;
392
+ }
393
+ };
394
+
395
+ if ( !rmargin.test( prefix ) ) {
396
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
397
+ }
398
+ } );
399
+
400
+ jQuery.fn.extend( {
401
+ css: function( name, value ) {
402
+ return access( this, function( elem, name, value ) {
403
+ var styles, len,
404
+ map = {},
405
+ i = 0;
406
+
407
+ if ( jQuery.isArray( name ) ) {
408
+ styles = getStyles( elem );
409
+ len = name.length;
410
+
411
+ for ( ; i < len; i++ ) {
412
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
413
+ }
414
+
415
+ return map;
416
+ }
417
+
418
+ return value !== undefined ?
419
+ jQuery.style( elem, name, value ) :
420
+ jQuery.css( elem, name );
421
+ }, name, value, arguments.length > 1 );
422
+ }
423
+ } );
424
+
425
+ return jQuery;
426
+ } );