easy_html_creator 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -2
  3. data/dev_root/demo-website-offline/coffee/test.coffee +28 -0
  4. data/dev_root/demo-website-offline/helper/test_helper.rb +5 -0
  5. data/dev_root/demo-website-offline/index.haml +109 -0
  6. data/dev_root/demo-website-offline/layout.haml +13 -0
  7. data/dev_root/demo-website-offline/partials/_assets.javascripts.haml +7 -0
  8. data/dev_root/{demo-website/partials/_metadata.haml → demo-website-offline/partials/_assets.metadata.haml} +3 -0
  9. data/dev_root/demo-website-offline/partials/_assets.stylesheets.haml +4 -0
  10. data/dev_root/demo-website-offline/partials/_footer.haml +5 -0
  11. data/dev_root/demo-website-offline/partials/_header.haml +27 -0
  12. data/dev_root/demo-website-offline/public/bower.json +21 -0
  13. data/dev_root/demo-website-offline/public/bower_components/bootstrap/Gruntfile.js +509 -0
  14. data/dev_root/demo-website-offline/public/bower_components/bootstrap/LICENSE +21 -0
  15. data/dev_root/demo-website-offline/public/bower_components/bootstrap/README.md +132 -0
  16. data/dev_root/demo-website-offline/public/bower_components/bootstrap/bower.json +38 -0
  17. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap-theme.css +476 -0
  18. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  19. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +5 -0
  20. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap.css +6566 -0
  21. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -0
  22. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap.min.css +5 -0
  23. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  24. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  25. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  26. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  27. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  28. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/js/bootstrap.js +2306 -0
  29. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/js/bootstrap.min.js +7 -0
  30. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/js/npm.js +13 -0
  31. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  32. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  33. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  34. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  35. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  36. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-commonjs-generator.js +23 -0
  37. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +41 -0
  38. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +238 -0
  39. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-raw-files-generator.js +46 -0
  40. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/configBridge.json +45 -0
  41. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/sauce_browsers.yml +82 -0
  42. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/affix.js +162 -0
  43. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/alert.js +94 -0
  44. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/button.js +116 -0
  45. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/carousel.js +237 -0
  46. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/collapse.js +211 -0
  47. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/dropdown.js +161 -0
  48. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/modal.js +324 -0
  49. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/popover.js +113 -0
  50. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/scrollspy.js +175 -0
  51. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/tab.js +153 -0
  52. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/tooltip.js +472 -0
  53. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/transition.js +59 -0
  54. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/alerts.less +73 -0
  55. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/badges.less +65 -0
  56. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/bootstrap.less +50 -0
  57. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/breadcrumbs.less +26 -0
  58. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/button-groups.less +243 -0
  59. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/buttons.less +160 -0
  60. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/carousel.less +269 -0
  61. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/close.less +34 -0
  62. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/code.less +69 -0
  63. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/component-animations.less +34 -0
  64. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/dropdowns.less +214 -0
  65. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/forms.less +566 -0
  66. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/glyphicons.less +301 -0
  67. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/grid.less +84 -0
  68. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/input-groups.less +166 -0
  69. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/jumbotron.less +50 -0
  70. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/labels.less +64 -0
  71. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/list-group.less +124 -0
  72. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/media.less +61 -0
  73. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins.less +39 -0
  74. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/alerts.less +14 -0
  75. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/background-variant.less +8 -0
  76. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/border-radius.less +18 -0
  77. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/buttons.less +52 -0
  78. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/center-block.less +7 -0
  79. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/clearfix.less +22 -0
  80. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/forms.less +85 -0
  81. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/gradients.less +59 -0
  82. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/grid-framework.less +91 -0
  83. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/grid.less +122 -0
  84. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/hide-text.less +21 -0
  85. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/image.less +33 -0
  86. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/labels.less +12 -0
  87. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/list-group.less +29 -0
  88. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/nav-divider.less +10 -0
  89. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  90. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/opacity.less +8 -0
  91. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/pagination.less +23 -0
  92. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/panels.less +24 -0
  93. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/progress-bar.less +10 -0
  94. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/reset-filter.less +8 -0
  95. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/resize.less +6 -0
  96. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/responsive-visibility.less +15 -0
  97. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/size.less +10 -0
  98. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/tab-focus.less +9 -0
  99. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/table-row.less +28 -0
  100. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/text-emphasis.less +8 -0
  101. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/text-overflow.less +8 -0
  102. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  103. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/modals.less +148 -0
  104. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/navbar.less +661 -0
  105. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/navs.less +244 -0
  106. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/normalize.less +427 -0
  107. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/pager.less +54 -0
  108. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/pagination.less +88 -0
  109. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/panels.less +265 -0
  110. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/popovers.less +135 -0
  111. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/print.less +107 -0
  112. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/progress-bars.less +87 -0
  113. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/responsive-embed.less +35 -0
  114. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/responsive-utilities.less +194 -0
  115. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/scaffolding.less +150 -0
  116. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/tables.less +234 -0
  117. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/theme.less +273 -0
  118. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/thumbnails.less +36 -0
  119. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/tooltip.less +103 -0
  120. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/type.less +302 -0
  121. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/utilities.less +56 -0
  122. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/variables.less +857 -0
  123. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/wells.less +29 -0
  124. data/dev_root/demo-website-offline/public/bower_components/bootstrap/package.json +83 -0
  125. data/dev_root/demo-website-offline/public/bower_components/html5shiv/Gruntfile.js +61 -0
  126. data/dev_root/demo-website-offline/public/bower_components/html5shiv/bower.json +15 -0
  127. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv-printshiv.js +520 -0
  128. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv-printshiv.min.js +4 -0
  129. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv.js +322 -0
  130. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv.min.js +4 -0
  131. data/dev_root/demo-website-offline/public/bower_components/html5shiv/package.json +16 -0
  132. data/dev_root/demo-website-offline/public/bower_components/html5shiv/readme.md +152 -0
  133. data/dev_root/demo-website-offline/public/bower_components/jquery/MIT-LICENSE.txt +21 -0
  134. data/dev_root/demo-website-offline/public/bower_components/jquery/bower.json +27 -0
  135. data/dev_root/demo-website-offline/public/bower_components/jquery/dist/jquery.js +9205 -0
  136. data/dev_root/demo-website-offline/public/bower_components/jquery/dist/jquery.min.js +5 -0
  137. data/dev_root/demo-website-offline/public/bower_components/jquery/dist/jquery.min.map +1 -0
  138. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax.js +786 -0
  139. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/jsonp.js +89 -0
  140. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/load.js +75 -0
  141. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  142. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/parseXML.js +28 -0
  143. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/script.js +64 -0
  144. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  145. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  146. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/xhr.js +136 -0
  147. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes.js +11 -0
  148. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/attr.js +141 -0
  149. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/classes.js +158 -0
  150. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/prop.js +94 -0
  151. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/support.js +35 -0
  152. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/val.js +161 -0
  153. data/dev_root/demo-website-offline/public/bower_components/jquery/src/callbacks.js +205 -0
  154. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core.js +497 -0
  155. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/access.js +60 -0
  156. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/init.js +123 -0
  157. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/parseHTML.js +39 -0
  158. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/ready.js +97 -0
  159. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  160. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css.js +450 -0
  161. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/addGetHookIf.js +22 -0
  162. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/curCSS.js +57 -0
  163. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  164. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  165. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/support.js +96 -0
  166. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/swap.js +28 -0
  167. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  168. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/getStyles.js +12 -0
  169. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/isHidden.js +13 -0
  170. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/rmargin.js +3 -0
  171. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  172. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data.js +178 -0
  173. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/Data.js +181 -0
  174. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/accepts.js +20 -0
  175. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/var/data_priv.js +5 -0
  176. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/var/data_user.js +5 -0
  177. data/dev_root/demo-website-offline/public/bower_components/jquery/src/deferred.js +149 -0
  178. data/dev_root/demo-website-offline/public/bower_components/jquery/src/deprecated.js +13 -0
  179. data/dev_root/demo-website-offline/public/bower_components/jquery/src/dimensions.js +50 -0
  180. data/dev_root/demo-website-offline/public/bower_components/jquery/src/effects.js +648 -0
  181. data/dev_root/demo-website-offline/public/bower_components/jquery/src/effects/Tween.js +114 -0
  182. data/dev_root/demo-website-offline/public/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  183. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event.js +868 -0
  184. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event/ajax.js +13 -0
  185. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event/alias.js +39 -0
  186. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event/support.js +9 -0
  187. data/dev_root/demo-website-offline/public/bower_components/jquery/src/exports/amd.js +24 -0
  188. data/dev_root/demo-website-offline/public/bower_components/jquery/src/exports/global.js +32 -0
  189. data/dev_root/demo-website-offline/public/bower_components/jquery/src/intro.js +44 -0
  190. data/dev_root/demo-website-offline/public/bower_components/jquery/src/jquery.js +37 -0
  191. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation.js +580 -0
  192. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  193. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation/support.js +32 -0
  194. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  195. data/dev_root/demo-website-offline/public/bower_components/jquery/src/offset.js +207 -0
  196. data/dev_root/demo-website-offline/public/bower_components/jquery/src/outro.js +1 -0
  197. data/dev_root/demo-website-offline/public/bower_components/jquery/src/queue.js +142 -0
  198. data/dev_root/demo-website-offline/public/bower_components/jquery/src/queue/delay.js +22 -0
  199. data/dev_root/demo-website-offline/public/bower_components/jquery/src/selector-native.js +172 -0
  200. data/dev_root/demo-website-offline/public/bower_components/jquery/src/selector-sizzle.js +14 -0
  201. data/dev_root/demo-website-offline/public/bower_components/jquery/src/selector.js +1 -0
  202. data/dev_root/demo-website-offline/public/bower_components/jquery/src/serialize.js +111 -0
  203. data/dev_root/demo-website-offline/public/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  204. data/dev_root/demo-website-offline/public/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  205. data/dev_root/demo-website-offline/public/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  206. data/dev_root/demo-website-offline/public/bower_components/jquery/src/traversing.js +199 -0
  207. data/dev_root/demo-website-offline/public/bower_components/jquery/src/traversing/findFilter.js +100 -0
  208. data/dev_root/demo-website-offline/public/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  209. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/arr.js +3 -0
  210. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/class2type.js +4 -0
  211. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/concat.js +5 -0
  212. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/hasOwn.js +5 -0
  213. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/indexOf.js +5 -0
  214. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/pnum.js +3 -0
  215. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/push.js +5 -0
  216. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/rnotwhite.js +3 -0
  217. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/slice.js +5 -0
  218. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/strundefined.js +3 -0
  219. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/support.js +4 -0
  220. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/toString.js +5 -0
  221. data/dev_root/demo-website-offline/public/bower_components/jquery/src/wrap.js +79 -0
  222. data/dev_root/demo-website-offline/public/bower_components/respond/Gruntfile.js +90 -0
  223. data/dev_root/demo-website-offline/public/bower_components/respond/LICENSE-MIT +22 -0
  224. data/dev_root/demo-website-offline/public/bower_components/respond/README.md +114 -0
  225. data/dev_root/demo-website-offline/public/bower_components/respond/bower.json +10 -0
  226. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/example.html +24 -0
  227. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/respond-proxy.html +96 -0
  228. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/respond.proxy.gif +0 -0
  229. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/respond.proxy.js +127 -0
  230. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.matchmedia.addListener.min.js +5 -0
  231. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.matchmedia.addListener.src.js +273 -0
  232. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.min.js +5 -0
  233. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.src.js +224 -0
  234. data/dev_root/demo-website-offline/public/bower_components/respond/package.json +32 -0
  235. data/dev_root/demo-website-offline/public/bower_components/respond/src/matchmedia.addListener.js +76 -0
  236. data/dev_root/demo-website-offline/public/bower_components/respond/src/matchmedia.polyfill.js +36 -0
  237. data/dev_root/demo-website-offline/public/bower_components/respond/src/respond.js +341 -0
  238. data/dev_root/demo-website-offline/public/fonts/OpenSans400.css +64 -0
  239. data/dev_root/demo-website-offline/public/fonts/OpenSans400italic.css +64 -0
  240. data/dev_root/demo-website-offline/public/fonts/OpenSans600.css +64 -0
  241. data/dev_root/demo-website-offline/public/images/easy-way.jpg +0 -0
  242. data/dev_root/demo-website-offline/public/robots.txt +0 -0
  243. data/dev_root/demo-website-offline/sass/main.sass +44 -0
  244. data/dev_root/demo-website/helper/test_helper.rb +2 -2
  245. data/dev_root/demo-website/index.haml +102 -12
  246. data/dev_root/demo-website/layout.haml +6 -3
  247. data/dev_root/demo-website/partials/{_assets.haml → _assets.javascripts.haml} +0 -4
  248. data/dev_root/demo-website/partials/_assets.metadata.haml +12 -0
  249. data/dev_root/demo-website/partials/_assets.stylesheets.haml +9 -0
  250. data/dev_root/demo-website/partials/_footer.haml +5 -1
  251. data/dev_root/demo-website/partials/_header.haml +27 -1
  252. data/dev_root/demo-website/sass/main.sass +43 -2
  253. data/dev_root/shared/helper/shared_helper.rb +2 -2
  254. data/dev_root/shared/sass/mixins/_arrows.sass +32 -0
  255. data/dev_root/shared/sass/mixins/_buttons.sass +32 -0
  256. data/dev_root/shared/sass/{_css3.sass → mixins/_css3.sass} +0 -0
  257. data/dev_root/shared/sass/mixins/_helper.sass +70 -0
  258. data/dev_root/shared/sass/mixins/_normalize.sass +340 -0
  259. data/dev_root/shared/sass/mixins/_reset.sass +46 -0
  260. data/lib/generator/generator.rb +2 -1
  261. data/lib/generator/haml_generator.rb +13 -14
  262. data/lib/generator/helper/activesupport_override.rb +13 -5
  263. data/lib/generator/sass_generator.rb +2 -0
  264. data/lib/generator/structure_generator.rb +12 -2
  265. data/lib/server/dispatcher.rb +43 -30
  266. data/lib/server/response.rb +4 -4
  267. data/lib/server/server.rb +3 -2
  268. metadata +253 -7
@@ -0,0 +1,29 @@
1
+ //
2
+ // Wells
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base class
7
+ .well {
8
+ min-height: 20px;
9
+ padding: 19px;
10
+ margin-bottom: 20px;
11
+ background-color: @well-bg;
12
+ border: 1px solid @well-border;
13
+ border-radius: @border-radius-base;
14
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15
+ blockquote {
16
+ border-color: #ddd;
17
+ border-color: rgba(0,0,0,.15);
18
+ }
19
+ }
20
+
21
+ // Sizes
22
+ .well-lg {
23
+ padding: 24px;
24
+ border-radius: @border-radius-large;
25
+ }
26
+ .well-sm {
27
+ padding: 9px;
28
+ border-radius: @border-radius-small;
29
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "bootstrap",
3
+ "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4
+ "version": "3.3.2",
5
+ "keywords": [
6
+ "css",
7
+ "less",
8
+ "mobile-first",
9
+ "responsive",
10
+ "front-end",
11
+ "framework",
12
+ "web"
13
+ ],
14
+ "homepage": "http://getbootstrap.com",
15
+ "author": "Twitter, Inc.",
16
+ "scripts": {
17
+ "test": "grunt test"
18
+ },
19
+ "style": "dist/css/bootstrap.css",
20
+ "less": "less/bootstrap.less",
21
+ "main": "./dist/js/npm",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/twbs/bootstrap.git"
25
+ },
26
+ "bugs": {
27
+ "url": "https://github.com/twbs/bootstrap/issues"
28
+ },
29
+ "license": {
30
+ "type": "MIT",
31
+ "url": "https://github.com/twbs/bootstrap/blob/master/LICENSE"
32
+ },
33
+ "devDependencies": {
34
+ "btoa": "~1.1.2",
35
+ "glob": "~4.3.5",
36
+ "grunt": "~0.4.5",
37
+ "grunt-autoprefixer": "~2.1.0",
38
+ "grunt-banner": "~0.3.1",
39
+ "grunt-contrib-clean": "~0.6.0",
40
+ "grunt-contrib-compress": "~0.13.0",
41
+ "grunt-contrib-concat": "~0.5.0",
42
+ "grunt-contrib-connect": "~0.9.0",
43
+ "grunt-contrib-copy": "~0.7.0",
44
+ "grunt-contrib-csslint": "~0.3.1",
45
+ "grunt-contrib-cssmin": "~0.11.0",
46
+ "grunt-contrib-jade": "~0.14.0",
47
+ "grunt-contrib-jshint": "~0.10.0",
48
+ "grunt-contrib-less": "~1.0.0",
49
+ "grunt-contrib-qunit": "~0.5.2",
50
+ "grunt-contrib-uglify": "~0.7.0",
51
+ "grunt-contrib-watch": "~0.6.1",
52
+ "grunt-csscomb": "~3.0.0",
53
+ "grunt-exec": "~0.4.6",
54
+ "grunt-html-validation": "~0.1.18",
55
+ "grunt-jekyll": "~0.4.2",
56
+ "grunt-jscs": "~1.2.0",
57
+ "grunt-saucelabs": "~8.4.1",
58
+ "grunt-sed": "~0.1.1",
59
+ "load-grunt-tasks": "~2.0.0",
60
+ "npm-shrinkwrap": "^200.0.0",
61
+ "remarkable": "~1.6.0",
62
+ "time-grunt": "~1.0.0"
63
+ },
64
+ "engines": {
65
+ "node": "~0.10.1"
66
+ },
67
+ "jspm": {
68
+ "main": "js/bootstrap",
69
+ "directories": {
70
+ "example": "examples",
71
+ "lib": "dist"
72
+ },
73
+ "shim": {
74
+ "js/bootstrap": {
75
+ "imports": "jquery",
76
+ "exports": "$"
77
+ }
78
+ },
79
+ "buildConfig": {
80
+ "uglify": true
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,61 @@
1
+ /*global module:false*/
2
+ module.exports = function(grunt){
3
+
4
+
5
+ // Project configuration.
6
+ grunt.initConfig({
7
+ pkg: grunt.file.readJSON('package.json'),
8
+ bower: grunt.file.readJSON('bower.json'),
9
+ copy: {
10
+ demo: {
11
+ files: [
12
+ {expand: true, src: ['src/*'], dest: 'dist/', filter: 'isFile', flatten: true}
13
+ ]
14
+ }
15
+ },
16
+
17
+ uglify: {
18
+ options: {
19
+ beautify: {
20
+ ascii_only : true
21
+ },
22
+ preserveComments: 'some'
23
+ },
24
+ html5shiv: {
25
+ files: [{
26
+ expand: true, // Enable dynamic expansion.
27
+ cwd: 'src/', // Src matches are relative to this path.
28
+ src: ['**/*.js'], // Actual pattern(s) to match.
29
+ dest: 'dist/', // Destination path prefix.
30
+ ext: '.min.js'
31
+ }]
32
+ }
33
+ },
34
+ watch: {
35
+ js: {
36
+ files: ['src/**/*.js'],
37
+ tasks: ['copy', 'uglify', 'bytesize']
38
+ }
39
+ },
40
+ bytesize: {
41
+ all: {
42
+ src: [
43
+ 'dist/**.min.js'
44
+ ]
45
+ }
46
+ }
47
+ });
48
+
49
+
50
+ // Default task.
51
+
52
+
53
+
54
+ grunt.loadNpmTasks('grunt-contrib-copy');
55
+ grunt.loadNpmTasks('grunt-contrib-uglify');
56
+ grunt.loadNpmTasks('grunt-contrib-watch');
57
+ grunt.loadNpmTasks('grunt-bytesize');
58
+
59
+ grunt.registerTask('default', ['copy', 'uglify', 'bytesize', 'watch']);
60
+
61
+ };
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "html5shiv",
3
+ "version": "3.7.2",
4
+ "main": [
5
+ "dist/html5shiv.js"
6
+ ],
7
+ "ignore": [
8
+ "**/.*",
9
+ "composer.json",
10
+ "test",
11
+ "build",
12
+ "src",
13
+ "build.xml"
14
+ ]
15
+ }
@@ -0,0 +1,520 @@
1
+ /**
2
+ * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3
+ */
4
+ ;(function(window, document) {
5
+ /*jshint evil:true */
6
+ /** version */
7
+ var version = '3.7.2';
8
+
9
+ /** Preset options */
10
+ var options = window.html5 || {};
11
+
12
+ /** Used to skip problem elements */
13
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
14
+
15
+ /** Not all elements can be cloned in IE **/
16
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
17
+
18
+ /** Detect whether the browser supports default html5 styles */
19
+ var supportsHtml5Styles;
20
+
21
+ /** Name of the expando, to work with multiple documents or to re-shiv one document */
22
+ var expando = '_html5shiv';
23
+
24
+ /** The id for the the documents expando */
25
+ var expanID = 0;
26
+
27
+ /** Cached data for each document */
28
+ var expandoData = {};
29
+
30
+ /** Detect whether the browser supports unknown elements */
31
+ var supportsUnknownElements;
32
+
33
+ (function() {
34
+ try {
35
+ var a = document.createElement('a');
36
+ a.innerHTML = '<xyz></xyz>';
37
+ //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
38
+ supportsHtml5Styles = ('hidden' in a);
39
+
40
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
41
+ // assign a false positive if unable to shiv
42
+ (document.createElement)('a');
43
+ var frag = document.createDocumentFragment();
44
+ return (
45
+ typeof frag.cloneNode == 'undefined' ||
46
+ typeof frag.createDocumentFragment == 'undefined' ||
47
+ typeof frag.createElement == 'undefined'
48
+ );
49
+ }());
50
+ } catch(e) {
51
+ // assign a false positive if detection fails => unable to shiv
52
+ supportsHtml5Styles = true;
53
+ supportsUnknownElements = true;
54
+ }
55
+
56
+ }());
57
+
58
+ /*--------------------------------------------------------------------------*/
59
+
60
+ /**
61
+ * Creates a style sheet with the given CSS text and adds it to the document.
62
+ * @private
63
+ * @param {Document} ownerDocument The document.
64
+ * @param {String} cssText The CSS text.
65
+ * @returns {StyleSheet} The style element.
66
+ */
67
+ function addStyleSheet(ownerDocument, cssText) {
68
+ var p = ownerDocument.createElement('p'),
69
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
70
+
71
+ p.innerHTML = 'x<style>' + cssText + '</style>';
72
+ return parent.insertBefore(p.lastChild, parent.firstChild);
73
+ }
74
+
75
+ /**
76
+ * Returns the value of `html5.elements` as an array.
77
+ * @private
78
+ * @returns {Array} An array of shived element node names.
79
+ */
80
+ function getElements() {
81
+ var elements = html5.elements;
82
+ return typeof elements == 'string' ? elements.split(' ') : elements;
83
+ }
84
+
85
+ /**
86
+ * Extends the built-in list of html5 elements
87
+ * @memberOf html5
88
+ * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
89
+ * @param {Document} ownerDocument The context document.
90
+ */
91
+ function addElements(newElements, ownerDocument) {
92
+ var elements = html5.elements;
93
+ if(typeof elements != 'string'){
94
+ elements = elements.join(' ');
95
+ }
96
+ if(typeof newElements != 'string'){
97
+ newElements = newElements.join(' ');
98
+ }
99
+ html5.elements = elements +' '+ newElements;
100
+ shivDocument(ownerDocument);
101
+ }
102
+
103
+ /**
104
+ * Returns the data associated to the given document
105
+ * @private
106
+ * @param {Document} ownerDocument The document.
107
+ * @returns {Object} An object of data.
108
+ */
109
+ function getExpandoData(ownerDocument) {
110
+ var data = expandoData[ownerDocument[expando]];
111
+ if (!data) {
112
+ data = {};
113
+ expanID++;
114
+ ownerDocument[expando] = expanID;
115
+ expandoData[expanID] = data;
116
+ }
117
+ return data;
118
+ }
119
+
120
+ /**
121
+ * returns a shived element for the given nodeName and document
122
+ * @memberOf html5
123
+ * @param {String} nodeName name of the element
124
+ * @param {Document} ownerDocument The context document.
125
+ * @returns {Object} The shived element.
126
+ */
127
+ function createElement(nodeName, ownerDocument, data){
128
+ if (!ownerDocument) {
129
+ ownerDocument = document;
130
+ }
131
+ if(supportsUnknownElements){
132
+ return ownerDocument.createElement(nodeName);
133
+ }
134
+ if (!data) {
135
+ data = getExpandoData(ownerDocument);
136
+ }
137
+ var node;
138
+
139
+ if (data.cache[nodeName]) {
140
+ node = data.cache[nodeName].cloneNode();
141
+ } else if (saveClones.test(nodeName)) {
142
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
143
+ } else {
144
+ node = data.createElem(nodeName);
145
+ }
146
+
147
+ // Avoid adding some elements to fragments in IE < 9 because
148
+ // * Attributes like `name` or `type` cannot be set/changed once an element
149
+ // is inserted into a document/fragment
150
+ // * Link elements with `src` attributes that are inaccessible, as with
151
+ // a 403 response, will cause the tab/window to crash
152
+ // * Script elements appended to fragments will execute when their `src`
153
+ // or `text` property is set
154
+ return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
155
+ }
156
+
157
+ /**
158
+ * returns a shived DocumentFragment for the given document
159
+ * @memberOf html5
160
+ * @param {Document} ownerDocument The context document.
161
+ * @returns {Object} The shived DocumentFragment.
162
+ */
163
+ function createDocumentFragment(ownerDocument, data){
164
+ if (!ownerDocument) {
165
+ ownerDocument = document;
166
+ }
167
+ if(supportsUnknownElements){
168
+ return ownerDocument.createDocumentFragment();
169
+ }
170
+ data = data || getExpandoData(ownerDocument);
171
+ var clone = data.frag.cloneNode(),
172
+ i = 0,
173
+ elems = getElements(),
174
+ l = elems.length;
175
+ for(;i<l;i++){
176
+ clone.createElement(elems[i]);
177
+ }
178
+ return clone;
179
+ }
180
+
181
+ /**
182
+ * Shivs the `createElement` and `createDocumentFragment` methods of the document.
183
+ * @private
184
+ * @param {Document|DocumentFragment} ownerDocument The document.
185
+ * @param {Object} data of the document.
186
+ */
187
+ function shivMethods(ownerDocument, data) {
188
+ if (!data.cache) {
189
+ data.cache = {};
190
+ data.createElem = ownerDocument.createElement;
191
+ data.createFrag = ownerDocument.createDocumentFragment;
192
+ data.frag = data.createFrag();
193
+ }
194
+
195
+
196
+ ownerDocument.createElement = function(nodeName) {
197
+ //abort shiv
198
+ if (!html5.shivMethods) {
199
+ return data.createElem(nodeName);
200
+ }
201
+ return createElement(nodeName, ownerDocument, data);
202
+ };
203
+
204
+ ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
205
+ 'var n=f.cloneNode(),c=n.createElement;' +
206
+ 'h.shivMethods&&(' +
207
+ // unroll the `createElement` calls
208
+ getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
209
+ data.createElem(nodeName);
210
+ data.frag.createElement(nodeName);
211
+ return 'c("' + nodeName + '")';
212
+ }) +
213
+ ');return n}'
214
+ )(html5, data.frag);
215
+ }
216
+
217
+ /*--------------------------------------------------------------------------*/
218
+
219
+ /**
220
+ * Shivs the given document.
221
+ * @memberOf html5
222
+ * @param {Document} ownerDocument The document to shiv.
223
+ * @returns {Document} The shived document.
224
+ */
225
+ function shivDocument(ownerDocument) {
226
+ if (!ownerDocument) {
227
+ ownerDocument = document;
228
+ }
229
+ var data = getExpandoData(ownerDocument);
230
+
231
+ if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
232
+ data.hasCSS = !!addStyleSheet(ownerDocument,
233
+ // corrects block display not defined in IE6/7/8/9
234
+ 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
235
+ // adds styling not present in IE6/7/8/9
236
+ 'mark{background:#FF0;color:#000}' +
237
+ // hides non-rendered elements
238
+ 'template{display:none}'
239
+ );
240
+ }
241
+ if (!supportsUnknownElements) {
242
+ shivMethods(ownerDocument, data);
243
+ }
244
+ return ownerDocument;
245
+ }
246
+
247
+ /*--------------------------------------------------------------------------*/
248
+
249
+ /**
250
+ * The `html5` object is exposed so that more elements can be shived and
251
+ * existing shiving can be detected on iframes.
252
+ * @type Object
253
+ * @example
254
+ *
255
+ * // options can be changed before the script is included
256
+ * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
257
+ */
258
+ var html5 = {
259
+
260
+ /**
261
+ * An array or space separated string of node names of the elements to shiv.
262
+ * @memberOf html5
263
+ * @type Array|String
264
+ */
265
+ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
266
+
267
+ /**
268
+ * current version of html5shiv
269
+ */
270
+ 'version': version,
271
+
272
+ /**
273
+ * A flag to indicate that the HTML5 style sheet should be inserted.
274
+ * @memberOf html5
275
+ * @type Boolean
276
+ */
277
+ 'shivCSS': (options.shivCSS !== false),
278
+
279
+ /**
280
+ * Is equal to true if a browser supports creating unknown/HTML5 elements
281
+ * @memberOf html5
282
+ * @type boolean
283
+ */
284
+ 'supportsUnknownElements': supportsUnknownElements,
285
+
286
+ /**
287
+ * A flag to indicate that the document's `createElement` and `createDocumentFragment`
288
+ * methods should be overwritten.
289
+ * @memberOf html5
290
+ * @type Boolean
291
+ */
292
+ 'shivMethods': (options.shivMethods !== false),
293
+
294
+ /**
295
+ * A string to describe the type of `html5` object ("default" or "default print").
296
+ * @memberOf html5
297
+ * @type String
298
+ */
299
+ 'type': 'default',
300
+
301
+ // shivs the document according to the specified `html5` object options
302
+ 'shivDocument': shivDocument,
303
+
304
+ //creates a shived element
305
+ createElement: createElement,
306
+
307
+ //creates a shived documentFragment
308
+ createDocumentFragment: createDocumentFragment,
309
+
310
+ //extends list of elements
311
+ addElements: addElements
312
+ };
313
+
314
+ /*--------------------------------------------------------------------------*/
315
+
316
+ // expose html5
317
+ window.html5 = html5;
318
+
319
+ // shiv the document
320
+ shivDocument(document);
321
+
322
+ /*------------------------------- Print Shiv -------------------------------*/
323
+
324
+ /** Used to filter media types */
325
+ var reMedia = /^$|\b(?:all|print)\b/;
326
+
327
+ /** Used to namespace printable elements */
328
+ var shivNamespace = 'html5shiv';
329
+
330
+ /** Detect whether the browser supports shivable style sheets */
331
+ var supportsShivableSheets = !supportsUnknownElements && (function() {
332
+ // assign a false negative if unable to shiv
333
+ var docEl = document.documentElement;
334
+ return !(
335
+ typeof document.namespaces == 'undefined' ||
336
+ typeof document.parentWindow == 'undefined' ||
337
+ typeof docEl.applyElement == 'undefined' ||
338
+ typeof docEl.removeNode == 'undefined' ||
339
+ typeof window.attachEvent == 'undefined'
340
+ );
341
+ }());
342
+
343
+ /*--------------------------------------------------------------------------*/
344
+
345
+ /**
346
+ * Wraps all HTML5 elements in the given document with printable elements.
347
+ * (eg. the "header" element is wrapped with the "html5shiv:header" element)
348
+ * @private
349
+ * @param {Document} ownerDocument The document.
350
+ * @returns {Array} An array wrappers added.
351
+ */
352
+ function addWrappers(ownerDocument) {
353
+ var node,
354
+ nodes = ownerDocument.getElementsByTagName('*'),
355
+ index = nodes.length,
356
+ reElements = RegExp('^(?:' + getElements().join('|') + ')$', 'i'),
357
+ result = [];
358
+
359
+ while (index--) {
360
+ node = nodes[index];
361
+ if (reElements.test(node.nodeName)) {
362
+ result.push(node.applyElement(createWrapper(node)));
363
+ }
364
+ }
365
+ return result;
366
+ }
367
+
368
+ /**
369
+ * Creates a printable wrapper for the given element.
370
+ * @private
371
+ * @param {Element} element The element.
372
+ * @returns {Element} The wrapper.
373
+ */
374
+ function createWrapper(element) {
375
+ var node,
376
+ nodes = element.attributes,
377
+ index = nodes.length,
378
+ wrapper = element.ownerDocument.createElement(shivNamespace + ':' + element.nodeName);
379
+
380
+ // copy element attributes to the wrapper
381
+ while (index--) {
382
+ node = nodes[index];
383
+ node.specified && wrapper.setAttribute(node.nodeName, node.nodeValue);
384
+ }
385
+ // copy element styles to the wrapper
386
+ wrapper.style.cssText = element.style.cssText;
387
+ return wrapper;
388
+ }
389
+
390
+ /**
391
+ * Shivs the given CSS text.
392
+ * (eg. header{} becomes html5shiv\:header{})
393
+ * @private
394
+ * @param {String} cssText The CSS text to shiv.
395
+ * @returns {String} The shived CSS text.
396
+ */
397
+ function shivCssText(cssText) {
398
+ var pair,
399
+ parts = cssText.split('{'),
400
+ index = parts.length,
401
+ reElements = RegExp('(^|[\\s,>+~])(' + getElements().join('|') + ')(?=[[\\s,>+~#.:]|$)', 'gi'),
402
+ replacement = '$1' + shivNamespace + '\\:$2';
403
+
404
+ while (index--) {
405
+ pair = parts[index] = parts[index].split('}');
406
+ pair[pair.length - 1] = pair[pair.length - 1].replace(reElements, replacement);
407
+ parts[index] = pair.join('}');
408
+ }
409
+ return parts.join('{');
410
+ }
411
+
412
+ /**
413
+ * Removes the given wrappers, leaving the original elements.
414
+ * @private
415
+ * @params {Array} wrappers An array of printable wrappers.
416
+ */
417
+ function removeWrappers(wrappers) {
418
+ var index = wrappers.length;
419
+ while (index--) {
420
+ wrappers[index].removeNode();
421
+ }
422
+ }
423
+
424
+ /*--------------------------------------------------------------------------*/
425
+
426
+ /**
427
+ * Shivs the given document for print.
428
+ * @memberOf html5
429
+ * @param {Document} ownerDocument The document to shiv.
430
+ * @returns {Document} The shived document.
431
+ */
432
+ function shivPrint(ownerDocument) {
433
+ var shivedSheet,
434
+ wrappers,
435
+ data = getExpandoData(ownerDocument),
436
+ namespaces = ownerDocument.namespaces,
437
+ ownerWindow = ownerDocument.parentWindow;
438
+
439
+ if (!supportsShivableSheets || ownerDocument.printShived) {
440
+ return ownerDocument;
441
+ }
442
+ if (typeof namespaces[shivNamespace] == 'undefined') {
443
+ namespaces.add(shivNamespace);
444
+ }
445
+
446
+ function removeSheet() {
447
+ clearTimeout(data._removeSheetTimer);
448
+ if (shivedSheet) {
449
+ shivedSheet.removeNode(true);
450
+ }
451
+ shivedSheet= null;
452
+ }
453
+
454
+ ownerWindow.attachEvent('onbeforeprint', function() {
455
+
456
+ removeSheet();
457
+
458
+ var imports,
459
+ length,
460
+ sheet,
461
+ collection = ownerDocument.styleSheets,
462
+ cssText = [],
463
+ index = collection.length,
464
+ sheets = Array(index);
465
+
466
+ // convert styleSheets collection to an array
467
+ while (index--) {
468
+ sheets[index] = collection[index];
469
+ }
470
+ // concat all style sheet CSS text
471
+ while ((sheet = sheets.pop())) {
472
+ // IE does not enforce a same origin policy for external style sheets...
473
+ // but has trouble with some dynamically created stylesheets
474
+ if (!sheet.disabled && reMedia.test(sheet.media)) {
475
+
476
+ try {
477
+ imports = sheet.imports;
478
+ length = imports.length;
479
+ } catch(er){
480
+ length = 0;
481
+ }
482
+
483
+ for (index = 0; index < length; index++) {
484
+ sheets.push(imports[index]);
485
+ }
486
+
487
+ try {
488
+ cssText.push(sheet.cssText);
489
+ } catch(er){}
490
+ }
491
+ }
492
+
493
+ // wrap all HTML5 elements with printable elements and add the shived style sheet
494
+ cssText = shivCssText(cssText.reverse().join(''));
495
+ wrappers = addWrappers(ownerDocument);
496
+ shivedSheet = addStyleSheet(ownerDocument, cssText);
497
+
498
+ });
499
+
500
+ ownerWindow.attachEvent('onafterprint', function() {
501
+ // remove wrappers, leaving the original elements, and remove the shived style sheet
502
+ removeWrappers(wrappers);
503
+ clearTimeout(data._removeSheetTimer);
504
+ data._removeSheetTimer = setTimeout(removeSheet, 500);
505
+ });
506
+
507
+ ownerDocument.printShived = true;
508
+ return ownerDocument;
509
+ }
510
+
511
+ /*--------------------------------------------------------------------------*/
512
+
513
+ // expose API
514
+ html5.type += ' print';
515
+ html5.shivPrint = shivPrint;
516
+
517
+ // shiv for print
518
+ shivPrint(document);
519
+
520
+ }(this, document));