reustyle 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. checksums.yaml +7 -0
  2. data/.drone.yml +17 -0
  3. data/.gitignore +25 -0
  4. data/.nvmrc +1 -0
  5. data/.rbenv-gemsets +1 -0
  6. data/.ruby-version +1 -0
  7. data/CONTRIBUTING.md +68 -0
  8. data/Gemfile +4 -0
  9. data/Gruntfile.js +234 -0
  10. data/LICENSE.txt +13 -0
  11. data/README.md +196 -0
  12. data/Rakefile +6 -0
  13. data/bower.json +54 -0
  14. data/config/autoprefixer.yml +6 -0
  15. data/config/scss-lint.yml +55 -0
  16. data/dist/icons.svg +1 -0
  17. data/dist/ustyle-content.css +1 -0
  18. data/dist/ustyle-latest.css +1 -0
  19. data/dist/ustyle.js +567 -0
  20. data/dist/ustyle.json +1 -0
  21. data/dist/ustyle.min.js +1 -0
  22. data/grunt/modules/dss-helper.js +115 -0
  23. data/grunt/modules/file.js +24 -0
  24. data/grunt/modules/html-parser.js +22 -0
  25. data/grunt/modules/templates.js +57 -0
  26. data/grunt/tasks/browser-sync.js +23 -0
  27. data/grunt/tasks/builder.js +67 -0
  28. data/grunt/tasks/styleguide.js +299 -0
  29. data/index.js +37 -0
  30. data/lib/ustyle/deploy.rb +41 -0
  31. data/lib/ustyle/engine.rb +32 -0
  32. data/lib/ustyle/hash.rb +44 -0
  33. data/lib/ustyle/helpers/icon_helper.rb +15 -0
  34. data/lib/ustyle/icons.rb +13 -0
  35. data/lib/ustyle/middleware/icon_middleware.rb +27 -0
  36. data/lib/ustyle/sass_functions.rb +65 -0
  37. data/lib/ustyle/sinatra.rb +34 -0
  38. data/lib/ustyle/sprockets.rb +6 -0
  39. data/lib/ustyle/utils.rb +42 -0
  40. data/lib/ustyle/version.rb +4 -0
  41. data/lib/ustyle.rb +58 -0
  42. data/package-lock.json +9303 -0
  43. data/package.json +89 -0
  44. data/styleguide/CNAME +1 -0
  45. data/styleguide/assets/images/CTAs.png +0 -0
  46. data/styleguide/assets/images/badge-label-usp.png +0 -0
  47. data/styleguide/assets/images/bower-logo.png +0 -0
  48. data/styleguide/assets/images/caveat.png +0 -0
  49. data/styleguide/assets/images/cloudfront-logo.png +0 -0
  50. data/styleguide/assets/images/design-conventions.png +0 -0
  51. data/styleguide/assets/images/error-texts.png +0 -0
  52. data/styleguide/assets/images/external-requirements.png +0 -0
  53. data/styleguide/assets/images/favicon/android-chrome-192x192.png +0 -0
  54. data/styleguide/assets/images/favicon/android-chrome-512x512.png +0 -0
  55. data/styleguide/assets/images/favicon/apple-touch-icon-114x114.png +0 -0
  56. data/styleguide/assets/images/favicon/apple-touch-icon-120x120.png +0 -0
  57. data/styleguide/assets/images/favicon/apple-touch-icon-144x144.png +0 -0
  58. data/styleguide/assets/images/favicon/apple-touch-icon-152x152.png +0 -0
  59. data/styleguide/assets/images/favicon/apple-touch-icon-180x180.png +0 -0
  60. data/styleguide/assets/images/favicon/apple-touch-icon-57x57.png +0 -0
  61. data/styleguide/assets/images/favicon/apple-touch-icon-60x60.png +0 -0
  62. data/styleguide/assets/images/favicon/apple-touch-icon-72x72.png +0 -0
  63. data/styleguide/assets/images/favicon/apple-touch-icon-76x76.png +0 -0
  64. data/styleguide/assets/images/favicon/apple-touch-icon.png +0 -0
  65. data/styleguide/assets/images/favicon/browserconfig.xml +9 -0
  66. data/styleguide/assets/images/favicon/favicon-16x16.png +0 -0
  67. data/styleguide/assets/images/favicon/favicon-32x32.png +0 -0
  68. data/styleguide/assets/images/favicon/favicon.ico +0 -0
  69. data/styleguide/assets/images/favicon/manifest.json +18 -0
  70. data/styleguide/assets/images/favicon/mstile-144x144.png +0 -0
  71. data/styleguide/assets/images/favicon/mstile-150x150.png +0 -0
  72. data/styleguide/assets/images/favicon/mstile-310x150.png +0 -0
  73. data/styleguide/assets/images/favicon/mstile-310x310.png +0 -0
  74. data/styleguide/assets/images/favicon/mstile-70x70.png +0 -0
  75. data/styleguide/assets/images/favicon/safari-pinned-tab.svg +46 -0
  76. data/styleguide/assets/images/icons.svg +1 -0
  77. data/styleguide/assets/images/infographic-01.png +0 -0
  78. data/styleguide/assets/images/infographic-02.png +0 -0
  79. data/styleguide/assets/images/npm-logo.png +0 -0
  80. data/styleguide/assets/images/placeholder-text.png +0 -0
  81. data/styleguide/assets/images/ruby-logo.png +0 -0
  82. data/styleguide/assets/images/site-consistency01.png +0 -0
  83. data/styleguide/assets/images/site-consistency02.png +0 -0
  84. data/styleguide/assets/images/site-consistency03.png +0 -0
  85. data/styleguide/assets/images/styleguide-examples/accurate-housing.jpg +0 -0
  86. data/styleguide/assets/images/styleguide-examples/altered.jpg +0 -0
  87. data/styleguide/assets/images/styleguide-examples/bad-subject.jpg +0 -0
  88. data/styleguide/assets/images/styleguide-examples/centered.jpg +0 -0
  89. data/styleguide/assets/images/styleguide-examples/cliche.jpg +0 -0
  90. data/styleguide/assets/images/styleguide-examples/cold.jpg +0 -0
  91. data/styleguide/assets/images/styleguide-examples/good-subject.jpg +0 -0
  92. data/styleguide/assets/images/styleguide-examples/illustrations_1.png +0 -0
  93. data/styleguide/assets/images/styleguide-examples/illustrations_2.png +0 -0
  94. data/styleguide/assets/images/styleguide-examples/illustrations_3.png +0 -0
  95. data/styleguide/assets/images/styleguide-examples/illustrations_4.png +0 -0
  96. data/styleguide/assets/images/styleguide-examples/illustrations_5.png +0 -0
  97. data/styleguide/assets/images/styleguide-examples/illustrations_6.png +0 -0
  98. data/styleguide/assets/images/styleguide-examples/innaccurate-housing.jpg +0 -0
  99. data/styleguide/assets/images/styleguide-examples/natural-1.jpg +0 -0
  100. data/styleguide/assets/images/styleguide-examples/natural-2.jpg +0 -0
  101. data/styleguide/assets/images/styleguide-examples/natural-3.jpg +0 -0
  102. data/styleguide/assets/images/styleguide-examples/not-centered.jpg +0 -0
  103. data/styleguide/assets/images/styleguide-examples/realistic.jpg +0 -0
  104. data/styleguide/assets/images/styleguide-examples/unaltered.jpg +0 -0
  105. data/styleguide/assets/images/styleguide-examples/unnatural-1.jpg +0 -0
  106. data/styleguide/assets/images/styleguide-examples/unnatural-2.jpg +0 -0
  107. data/styleguide/assets/images/styleguide-examples/unnatural-3.jpg +0 -0
  108. data/styleguide/assets/images/styleguide-examples/warm.jpg +0 -0
  109. data/styleguide/assets/images/tone-framework.png +0 -0
  110. data/styleguide/assets/images/tone.png +0 -0
  111. data/styleguide/assets/images/tooltip.png +0 -0
  112. data/styleguide/assets/images/tsandcs.png +0 -0
  113. data/styleguide/assets/images/ustyle.svg +73 -0
  114. data/styleguide/assets/images/ux-conventions-consistency.png +0 -0
  115. data/styleguide/assets/images/ux-conventions-error.png +0 -0
  116. data/styleguide/assets/images/ux-conventions-errors.png +0 -0
  117. data/styleguide/assets/images/ux-conventions-flexibility.png +0 -0
  118. data/styleguide/assets/images/ux-conventions-freedom.png +0 -0
  119. data/styleguide/assets/images/ux-conventions-minimalist.png +0 -0
  120. data/styleguide/assets/images/ux-conventions-real-world.png +0 -0
  121. data/styleguide/assets/images/ux-conventions-recognition.png +0 -0
  122. data/styleguide/assets/images/ux-conventions-visibility.png +0 -0
  123. data/styleguide/assets/javascripts/app.js +115 -0
  124. data/styleguide/assets/javascripts/modules/stats.js +50 -0
  125. data/styleguide/assets/javascripts/vendor/highlight.js +1 -0
  126. data/styleguide/assets/javascripts/vendor/svg4everybody.js +1 -0
  127. data/styleguide/assets/sass/main.scss +42 -0
  128. data/styleguide/assets/sass/modules/_code.scss +8 -0
  129. data/styleguide/assets/sass/modules/_colours.scss +26 -0
  130. data/styleguide/assets/sass/modules/_copyright.scss +4 -0
  131. data/styleguide/assets/sass/modules/_grid.scss +12 -0
  132. data/styleguide/assets/sass/modules/_home.scss +5 -0
  133. data/styleguide/assets/sass/modules/_images.scss +24 -0
  134. data/styleguide/assets/sass/modules/_links.scss +3 -0
  135. data/styleguide/assets/sass/modules/_logo.scss +182 -0
  136. data/styleguide/assets/sass/modules/_made-at.scss +6 -0
  137. data/styleguide/assets/sass/modules/_markdown.scss +7 -0
  138. data/styleguide/assets/sass/modules/_nav-mobile.scss +72 -0
  139. data/styleguide/assets/sass/modules/_nav.scss +32 -0
  140. data/styleguide/assets/sass/modules/_sidebar.scss +94 -0
  141. data/styleguide/assets/sass/modules/_states.scss +4 -0
  142. data/styleguide/assets/sass/modules/_styleguide.scss +138 -0
  143. data/styleguide/assets/sass/modules/_table.scss +3 -0
  144. data/styleguide/assets/sass/modules/_tooltip.scss +9 -0
  145. data/styleguide/assets/sass/modules/_typography.scss +14 -0
  146. data/styleguide/assets/sass/modules/_version.scss +11 -0
  147. data/styleguide/assets/sass/structure/_base.scss +18 -0
  148. data/styleguide/assets/sass/structure/_header.scss +12 -0
  149. data/styleguide/assets/sass/vendor/_highlight.scss +139 -0
  150. data/styleguide/assets/sass/vendor/_pure-table.scss +75 -0
  151. data/styleguide/content/brand/index.md +47 -0
  152. data/styleguide/content/brand/logo.tpl +279 -0
  153. data/styleguide/content/design/accessibility-testing.md +82 -0
  154. data/styleguide/content/design/index.tpl +367 -0
  155. data/styleguide/content/design/typography.md +68 -0
  156. data/styleguide/content/design/validating-designs.tpl +304 -0
  157. data/styleguide/content/index.tpl +51 -0
  158. data/styleguide/content/language/grammar.md +220 -0
  159. data/styleguide/content/language/microcopy.md +170 -0
  160. data/styleguide/content/language/tone.md +135 -0
  161. data/styleguide/content/pattern-library/grid.tpl +64 -0
  162. data/styleguide/content/pattern-library/index.tpl +88 -0
  163. data/styleguide/partials/_footer.tpl +8 -0
  164. data/styleguide/partials/_head.tpl +26 -0
  165. data/styleguide/partials/_header.tpl +37 -0
  166. data/styleguide/partials/_sidebar.tpl +27 -0
  167. data/styleguide/partials/colour.tpl +24 -0
  168. data/styleguide/partials/icons.tpl +28 -0
  169. data/styleguide/partials/style_block.tpl +44 -0
  170. data/styleguide/templates/simple.tpl +25 -0
  171. data/styleguide/templates/stats.tpl +50 -0
  172. data/styleguide/templates/styleguide.tpl +36 -0
  173. data/tasks/publish.rake +67 -0
  174. data/ustyle.gemspec +32 -0
  175. data/vendor/assets/images/forms/checkbox-rebrand.svg +1 -0
  176. data/vendor/assets/images/forms/checkbox.svg +1 -0
  177. data/vendor/assets/images/icons/alarm.svg +1 -0
  178. data/vendor/assets/images/icons/android.svg +1 -0
  179. data/vendor/assets/images/icons/arrow-circle.svg +1 -0
  180. data/vendor/assets/images/icons/arrow-down.svg +1 -0
  181. data/vendor/assets/images/icons/arrow-up.svg +1 -0
  182. data/vendor/assets/images/icons/book.svg +1 -0
  183. data/vendor/assets/images/icons/bookmark.svg +1 -0
  184. data/vendor/assets/images/icons/breadcrumb.svg +1 -0
  185. data/vendor/assets/images/icons/calculator.svg +1 -0
  186. data/vendor/assets/images/icons/calendar.svg +1 -0
  187. data/vendor/assets/images/icons/car.svg +1 -0
  188. data/vendor/assets/images/icons/checkbox-tick.svg +1 -0
  189. data/vendor/assets/images/icons/chevron-left.svg +1 -0
  190. data/vendor/assets/images/icons/chevron-right.svg +1 -0
  191. data/vendor/assets/images/icons/clock.svg +1 -0
  192. data/vendor/assets/images/icons/close.svg +1 -0
  193. data/vendor/assets/images/icons/cog.svg +1 -0
  194. data/vendor/assets/images/icons/controller.svg +1 -0
  195. data/vendor/assets/images/icons/credit-card.svg +1 -0
  196. data/vendor/assets/images/icons/cross.svg +1 -0
  197. data/vendor/assets/images/icons/dashcam.svg +1 -0
  198. data/vendor/assets/images/icons/dual-fuel.svg +1 -0
  199. data/vendor/assets/images/icons/electric-light.svg +1 -0
  200. data/vendor/assets/images/icons/envelope.svg +1 -0
  201. data/vendor/assets/images/icons/exit-noexit.svg +1 -0
  202. data/vendor/assets/images/icons/facebook-brand.svg +1 -0
  203. data/vendor/assets/images/icons/facebook.svg +1 -0
  204. data/vendor/assets/images/icons/filter.svg +1 -0
  205. data/vendor/assets/images/icons/fixed-variable.svg +1 -0
  206. data/vendor/assets/images/icons/gas.svg +1 -0
  207. data/vendor/assets/images/icons/gauge.svg +1 -0
  208. data/vendor/assets/images/icons/github.svg +1 -0
  209. data/vendor/assets/images/icons/google-brand.svg +1 -0
  210. data/vendor/assets/images/icons/google.svg +1 -0
  211. data/vendor/assets/images/icons/graph-up.svg +1 -0
  212. data/vendor/assets/images/icons/home.svg +1 -0
  213. data/vendor/assets/images/icons/hot.svg +1 -0
  214. data/vendor/assets/images/icons/info.svg +1 -0
  215. data/vendor/assets/images/icons/kettle.svg +1 -0
  216. data/vendor/assets/images/icons/key.svg +1 -0
  217. data/vendor/assets/images/icons/lock.svg +1 -0
  218. data/vendor/assets/images/icons/magnify-in.svg +1 -0
  219. data/vendor/assets/images/icons/magnify.svg +1 -0
  220. data/vendor/assets/images/icons/menu.svg +1 -0
  221. data/vendor/assets/images/icons/message.svg +1 -0
  222. data/vendor/assets/images/icons/mobile.svg +1 -0
  223. data/vendor/assets/images/icons/monthly-dd.svg +1 -0
  224. data/vendor/assets/images/icons/network.svg +1 -0
  225. data/vendor/assets/images/icons/no-exit.svg +1 -0
  226. data/vendor/assets/images/icons/pdf.svg +1 -0
  227. data/vendor/assets/images/icons/pencil.svg +1 -0
  228. data/vendor/assets/images/icons/person-add.svg +1 -0
  229. data/vendor/assets/images/icons/person.svg +1 -0
  230. data/vendor/assets/images/icons/phone.svg +1 -0
  231. data/vendor/assets/images/icons/piggy-bank.svg +1 -0
  232. data/vendor/assets/images/icons/pin.svg +1 -0
  233. data/vendor/assets/images/icons/play.svg +1 -0
  234. data/vendor/assets/images/icons/pound-circle.svg +1 -0
  235. data/vendor/assets/images/icons/pound-note.svg +1 -0
  236. data/vendor/assets/images/icons/present.svg +1 -0
  237. data/vendor/assets/images/icons/print.svg +1 -0
  238. data/vendor/assets/images/icons/quarterly-dd.svg +1 -0
  239. data/vendor/assets/images/icons/question-circle.svg +1 -0
  240. data/vendor/assets/images/icons/quote.svg +1 -0
  241. data/vendor/assets/images/icons/recycle.svg +1 -0
  242. data/vendor/assets/images/icons/remove.svg +1 -0
  243. data/vendor/assets/images/icons/renewable.svg +1 -0
  244. data/vendor/assets/images/icons/results.svg +1 -0
  245. data/vendor/assets/images/icons/save.svg +1 -0
  246. data/vendor/assets/images/icons/share.svg +1 -0
  247. data/vendor/assets/images/icons/shield.svg +1 -0
  248. data/vendor/assets/images/icons/sim.svg +1 -0
  249. data/vendor/assets/images/icons/smiley.svg +1 -0
  250. data/vendor/assets/images/icons/sort.svg +1 -0
  251. data/vendor/assets/images/icons/speech-circle.svg +1 -0
  252. data/vendor/assets/images/icons/speech.svg +1 -0
  253. data/vendor/assets/images/icons/spinner-rebrand.svg +1 -0
  254. data/vendor/assets/images/icons/spinner.svg +1 -0
  255. data/vendor/assets/images/icons/star-half.svg +1 -0
  256. data/vendor/assets/images/icons/star.svg +1 -0
  257. data/vendor/assets/images/icons/starline-half.svg +1 -0
  258. data/vendor/assets/images/icons/starline.svg +1 -0
  259. data/vendor/assets/images/icons/talk.svg +1 -0
  260. data/vendor/assets/images/icons/tick-circle.svg +1 -0
  261. data/vendor/assets/images/icons/tick.svg +1 -0
  262. data/vendor/assets/images/icons/tv.svg +1 -0
  263. data/vendor/assets/images/icons/twitter-brand.svg +1 -0
  264. data/vendor/assets/images/icons/twitter.svg +1 -0
  265. data/vendor/assets/images/icons/ustyle.svg +1 -0
  266. data/vendor/assets/images/icons/uswitch.svg +1 -0
  267. data/vendor/assets/images/icons/variable.svg +1 -0
  268. data/vendor/assets/images/icons/warning-circle.svg +1 -0
  269. data/vendor/assets/images/icons/warning.svg +1 -0
  270. data/vendor/assets/images/icons/wifi.svg +1 -0
  271. data/vendor/assets/images/icons/wiki.svg +1 -0
  272. data/vendor/assets/images/icons/xml.svg +1 -0
  273. data/vendor/assets/images/icons.svg +1 -0
  274. data/vendor/assets/javascripts/ustyle/backdrop.js +56 -0
  275. data/vendor/assets/javascripts/ustyle/classtoggler.js +76 -0
  276. data/vendor/assets/javascripts/ustyle/overlay.js +152 -0
  277. data/vendor/assets/javascripts/ustyle/tabs.js +166 -0
  278. data/vendor/assets/javascripts/ustyle/utils.js +113 -0
  279. data/vendor/assets/javascripts/ustyle.js +4 -0
  280. data/vendor/assets/stylesheets/rebrand-content.scss +1 -0
  281. data/vendor/assets/stylesheets/rebrand.scss +1 -0
  282. data/vendor/assets/stylesheets/ustyle/_all.scss +55 -0
  283. data/vendor/assets/stylesheets/ustyle/_content.scss +5 -0
  284. data/vendor/assets/stylesheets/ustyle/_global.scss +20 -0
  285. data/vendor/assets/stylesheets/ustyle/articles/_base.scss +100 -0
  286. data/vendor/assets/stylesheets/ustyle/articles/_guide.scss +57 -0
  287. data/vendor/assets/stylesheets/ustyle/articles/_more.scss +31 -0
  288. data/vendor/assets/stylesheets/ustyle/articles/_news.scss +213 -0
  289. data/vendor/assets/stylesheets/ustyle/articles/_related.scss +76 -0
  290. data/vendor/assets/stylesheets/ustyle/basics/_extends.scss +73 -0
  291. data/vendor/assets/stylesheets/ustyle/basics/_fonts.scss +27 -0
  292. data/vendor/assets/stylesheets/ustyle/basics/_functions.scss +78 -0
  293. data/vendor/assets/stylesheets/ustyle/basics/_grid.scss +86 -0
  294. data/vendor/assets/stylesheets/ustyle/basics/_typography.scss +123 -0
  295. data/vendor/assets/stylesheets/ustyle/basics/_variables.scss +166 -0
  296. data/vendor/assets/stylesheets/ustyle/basics/variables/_colors.scss +94 -0
  297. data/vendor/assets/stylesheets/ustyle/basics/variables/_forms.scss +98 -0
  298. data/vendor/assets/stylesheets/ustyle/basics/variables/_icons.scss +43 -0
  299. data/vendor/assets/stylesheets/ustyle/components/_backdrop.scss +23 -0
  300. data/vendor/assets/stylesheets/ustyle/components/_breadcrumbs.scss +66 -0
  301. data/vendor/assets/stylesheets/ustyle/components/_button.scss +187 -0
  302. data/vendor/assets/stylesheets/ustyle/components/_calculator.scss +41 -0
  303. data/vendor/assets/stylesheets/ustyle/components/_comp-table-row.scss +341 -0
  304. data/vendor/assets/stylesheets/ustyle/components/_compliance-banner.scss +38 -0
  305. data/vendor/assets/stylesheets/ustyle/components/_content-group.scss +33 -0
  306. data/vendor/assets/stylesheets/ustyle/components/_cta.scss +66 -0
  307. data/vendor/assets/stylesheets/ustyle/components/_grid-classes.scss +52 -0
  308. data/vendor/assets/stylesheets/ustyle/components/_hero.scss +115 -0
  309. data/vendor/assets/stylesheets/ustyle/components/_links.scss +26 -0
  310. data/vendor/assets/stylesheets/ustyle/components/_lists-li.scss +92 -0
  311. data/vendor/assets/stylesheets/ustyle/components/_lists.scss +39 -0
  312. data/vendor/assets/stylesheets/ustyle/components/_loader.scss +139 -0
  313. data/vendor/assets/stylesheets/ustyle/components/_overlay.scss +183 -0
  314. data/vendor/assets/stylesheets/ustyle/components/_progress.scss +138 -0
  315. data/vendor/assets/stylesheets/ustyle/components/_promo-banner.scss +131 -0
  316. data/vendor/assets/stylesheets/ustyle/components/_reminder.scss +87 -0
  317. data/vendor/assets/stylesheets/ustyle/components/_tab-navigation.scss +114 -0
  318. data/vendor/assets/stylesheets/ustyle/components/_table-toolbar.scss +91 -0
  319. data/vendor/assets/stylesheets/ustyle/components/_tabs.scss +300 -0
  320. data/vendor/assets/stylesheets/ustyle/components/_tooltip.scss +243 -0
  321. data/vendor/assets/stylesheets/ustyle/components/_usp.scss +88 -0
  322. data/vendor/assets/stylesheets/ustyle/content/_base.scss +227 -0
  323. data/vendor/assets/stylesheets/ustyle/content/_c-header.scss +27 -0
  324. data/vendor/assets/stylesheets/ustyle/content/_c-social.scss +9 -0
  325. data/vendor/assets/stylesheets/ustyle/content/_c-tabs.scss +30 -0
  326. data/vendor/assets/stylesheets/ustyle/forms/_base.scss +9 -0
  327. data/vendor/assets/stylesheets/ustyle/forms/_fields.scss +78 -0
  328. data/vendor/assets/stylesheets/ustyle/forms/_input-group.scss +154 -0
  329. data/vendor/assets/stylesheets/ustyle/forms/_input.scss +61 -0
  330. data/vendor/assets/stylesheets/ustyle/forms/_radio-checkbox.scss +144 -0
  331. data/vendor/assets/stylesheets/ustyle/forms/_reset.scss +21 -0
  332. data/vendor/assets/stylesheets/ustyle/forms/_select.scss +154 -0
  333. data/vendor/assets/stylesheets/ustyle/forms/_textarea.scss +33 -0
  334. data/vendor/assets/stylesheets/ustyle/forms/_toggle.scss +114 -0
  335. data/vendor/assets/stylesheets/ustyle/forms/_validation.scss +104 -0
  336. data/vendor/assets/stylesheets/ustyle/icons/_base.scss +241 -0
  337. data/vendor/assets/stylesheets/ustyle/mixins/_arrow.scss +51 -0
  338. data/vendor/assets/stylesheets/ustyle/mixins/_base.scss +7 -0
  339. data/vendor/assets/stylesheets/ustyle/mixins/_baseline.scss +43 -0
  340. data/vendor/assets/stylesheets/ustyle/mixins/_forms.scss +84 -0
  341. data/vendor/assets/stylesheets/ustyle/mixins/_general.scss +24 -0
  342. data/vendor/assets/stylesheets/ustyle/mixins/_link-colors.scss +44 -0
  343. data/vendor/assets/stylesheets/ustyle/mixins/_media-query.scss +121 -0
  344. data/vendor/assets/stylesheets/ustyle/mixins/_typography.scss +98 -0
  345. data/vendor/assets/stylesheets/ustyle/tables/_base.scss +4 -0
  346. data/vendor/assets/stylesheets/ustyle/tables/_tables-basic.scss +72 -0
  347. data/vendor/assets/stylesheets/ustyle/tables/_tables-sortable.scss +72 -0
  348. data/vendor/assets/stylesheets/ustyle/tables/_tables-with-key-cells.scss +18 -0
  349. data/vendor/assets/stylesheets/ustyle/tables/_variables.scss +15 -0
  350. data/vendor/assets/stylesheets/ustyle/utilities/_general.scss +116 -0
  351. data/vendor/assets/stylesheets/ustyle/utilities/_grid.scss +13 -0
  352. data/vendor/assets/stylesheets/ustyle/utilities/_images.scss +34 -0
  353. data/vendor/assets/stylesheets/ustyle/utilities/_responsive.scss +101 -0
  354. data/vendor/assets/stylesheets/ustyle/utilities/_spacing.scss +73 -0
  355. data/vendor/assets/stylesheets/ustyle/vendor/normalize.scss +427 -0
  356. data/vendor/assets/stylesheets/ustyle-content.scss +2 -0
  357. data/vendor/assets/stylesheets/ustyle.scss +1 -0
  358. metadata +517 -0
data/dist/ustyle.js ADDED
@@ -0,0 +1,567 @@
1
+ var slice = [].slice;
2
+ var hasProp = {}.hasOwnProperty;
3
+
4
+ if (this.Utils == null) {
5
+ this.Utils = {
6
+ modules: []
7
+ };
8
+ }
9
+
10
+ var addClass = function(element, name) {
11
+ removeClass(element, name);
12
+ return element.className += " " + name + " ";
13
+ };
14
+
15
+ var removeClass = function(element, name) {
16
+ var regExp = new RegExp("(\\s|^)" + name + "(\\s|$)", "gi");
17
+ return element.className = element.className.replace(regExp, "");
18
+ };
19
+
20
+ var hasClass = function(element, name) {
21
+ return new RegExp("(^| )" + name + "( |$)", "gi").test(element.className);
22
+ };
23
+
24
+ var merge = function() {
25
+ var extension;
26
+ var i;
27
+ var len;
28
+ var property;
29
+ var target = arguments[0];
30
+ var extensions = 2 <= arguments.length ? slice.call(arguments, 1) : [];
31
+
32
+ for (i = 0, len = extensions.length; i < len; i++) {
33
+ extension = extensions[i];
34
+ for (property in extension) {
35
+ if (!hasProp.call(extension, property)) continue;
36
+ target[property] = extension[property];
37
+ }
38
+ }
39
+
40
+ return target;
41
+ };
42
+
43
+ var setOptions = function(options, defaults) {
44
+ return merge({}, defaults, options);
45
+ };
46
+
47
+ var deleteUndefined = function(obj) {
48
+ var key;
49
+ var value;
50
+ var results = [];
51
+ for (key in obj) {
52
+ value = obj[key];
53
+ if (value === null || value === void 0) {
54
+ results.push(delete obj[key]);
55
+ } else {
56
+ results.push(void 0);
57
+ }
58
+ }
59
+
60
+ return results;
61
+ };
62
+
63
+ var transformKey = (function() {
64
+ var i;
65
+ var key;
66
+ var len;
67
+ var el = document.createElement("div");
68
+ var transforms = ["transform", "webkitTransform", "OTransform", "MozTransform", "msTransform"];
69
+ for (i = 0, len = transforms.length; i < len; i++) {
70
+ key = transforms[i];
71
+ if (el.style[key] !== void 0) {
72
+ return key;
73
+ }
74
+ }
75
+ })();
76
+
77
+ var requestAnimationFrame = (function(window) {
78
+ var i;
79
+ var len;
80
+ var vendor;
81
+ var ref = ["ms", "moz", "webkit", "o"];
82
+
83
+ for (i = 0, len = ref.length; i < len; i++) {
84
+ vendor = ref[i];
85
+ if (window.requestAnimationFrame) {
86
+ break;
87
+ }
88
+
89
+ window.requestAnimationFrame = window[vendor + "RequestAnimationFrame"];
90
+ }
91
+
92
+ return window.requestAnimationFrame || (window.requestAnimationFrame = function(callback) {
93
+ return setTimeout(callback, 1000 / 60);
94
+ });
95
+ })(window);
96
+
97
+ var forEach = function (array, callback, scope) {
98
+ for (var i = array.length - 1; i >= 0; i--) {
99
+ callback.call(scope, i, array[i]);
100
+ }
101
+ };
102
+
103
+ this.Utils = {
104
+ addClass: addClass,
105
+ removeClass: removeClass,
106
+ hasClass: hasClass,
107
+ merge: merge,
108
+ setOptions: setOptions,
109
+ deleteUndefined: deleteUndefined,
110
+ transformKey: transformKey,
111
+ requestAnimationFrame: requestAnimationFrame,
112
+ forEach: forEach
113
+ };
114
+
115
+ window.Backdrop = (function() {
116
+ var holds = 0;
117
+ var backdrop = null;
118
+ var createBackdrop;
119
+
120
+ function Backdrop() {
121
+ backdrop = document.querySelector(".us-backdrop");
122
+ if (backdrop == null) {
123
+ backdrop = createBackdrop();
124
+ }
125
+ }
126
+
127
+ Backdrop.prototype.element = backdrop;
128
+
129
+ createBackdrop = function() {
130
+ backdrop = document.createElement("div");
131
+ Utils.addClass(backdrop, "us-backdrop");
132
+ return document.body.appendChild(backdrop);
133
+ };
134
+
135
+ Backdrop.prototype.retain = function() {
136
+ var onFrame;
137
+ holds++;
138
+ if (holds === 1) {
139
+ Utils.addClass(backdrop, "us-backdrop--visible");
140
+ onFrame = function() {
141
+ if (holds >= 1) {
142
+ return Utils.addClass(backdrop, "us-backdrop--active");
143
+ }
144
+ };
145
+
146
+ return Utils.requestAnimationFrame.call(window, onFrame);
147
+ }
148
+ };
149
+
150
+ Backdrop.prototype.release = function() {
151
+ var onFrame;
152
+ if (holds === 1) {
153
+ Utils.removeClass(backdrop, "us-backdrop--active");
154
+ onFrame = function() {
155
+ return setTimeout(function() {
156
+ if (holds === 0) {
157
+ return Utils.removeClass(backdrop, "us-backdrop--visible");
158
+ }
159
+ }, 300);
160
+ };
161
+
162
+ Utils.requestAnimationFrame.call(window, onFrame);
163
+ }
164
+
165
+ return holds = Math.max(0, holds - 1);
166
+ };
167
+
168
+ return Backdrop;
169
+
170
+ })();
171
+
172
+ window.Overlay = (function(Utils) {
173
+ var addClass = Utils.addClass;
174
+ var hasClass = Utils.hasClass;
175
+ var removeClass = Utils.removeClass;
176
+ var setOptions = Utils.setOptions;
177
+ var requestAnimationFrame = Utils.requestAnimationFrame;
178
+
179
+ var defaults = {
180
+ bodyActiveClass: "us-overlay--open",
181
+ activeClass: "us-overlay-parent--active",
182
+ visibleClass: "us-overlay-parent--visible",
183
+ overlay: document.querySelector('.us-overlay-parent'),
184
+ openButton: ".js-open-overlay",
185
+ closeButton: ".js-close-overlay",
186
+ historyStatus: "#seedeal",
187
+ history: false,
188
+ preventDefault: true,
189
+ animationSpeed: 300
190
+ };
191
+
192
+ function Overlay(options) {
193
+ this.overlay = (this.options = setOptions(options, defaults)).overlay;
194
+
195
+ if (this.overlay instanceof jQuery) {
196
+ this.overlay = document.querySelector(this.overlay.selector);
197
+ }
198
+
199
+ if (this.options.openButton instanceof jQuery) {
200
+ this.options.openButton = document.querySelector(this.options.openButton.selector);
201
+ }
202
+
203
+ if ((this.overlay != null) && (typeof Backdrop !== "undefined" && Backdrop !== null)) {
204
+ this.backdrop = new Backdrop();
205
+ this.addEventListeners();
206
+ } else {
207
+ throw new Error("There's no overlay or you haven't included Backdrop");
208
+ }
209
+ }
210
+
211
+ Overlay.prototype.addEventListeners = function () {
212
+ var openOverlayEvent = new CustomEvent('click.open-overlay');
213
+ var closeOverlayEvent = new CustomEvent('click.close-overlay');
214
+ var openButton = typeof this.options.openButton === 'string' ? document.querySelector(this.options.openButton) : this.options.openButton;
215
+
216
+ var onOpenButtonClick = (function (_this) {
217
+ return function (e) {
218
+ if (_this.options.preventDefault) {
219
+ e.preventDefault();
220
+ }
221
+
222
+ openButton.dispatchEvent(openOverlayEvent);
223
+
224
+ return _this.show(e);
225
+ }
226
+ })(this);
227
+
228
+ if (openButton) {
229
+ openButton.addEventListener('click', onOpenButtonClick);
230
+ }
231
+
232
+ var onCloseOverlay = (function (_this) {
233
+ return function (e) {
234
+ var results = [];
235
+ var closeTargets = _this.overlay.querySelectorAll(_this.options.closeButton);
236
+ var targets = [_this.overlay].concat(Array.prototype.slice.call(closeTargets));
237
+
238
+ for (var i = targets.length - 1; i >= 0; i--) {
239
+ var target = targets[i];
240
+ if (e.target === target) {
241
+ if (_this.options.preventDefault) {
242
+ e.preventDefault();
243
+ }
244
+
245
+ _this.hide(e);
246
+ break;
247
+ } else {
248
+ results.push(void 0);
249
+ }
250
+ };
251
+
252
+ _this.overlay.dispatchEvent(closeOverlayEvent);
253
+
254
+ return results;
255
+ };
256
+ })(this);
257
+
258
+ this.overlay.addEventListener('click', onCloseOverlay);
259
+
260
+ if (this.hasHistory()) {
261
+ return window.onpopstate = (function(_this) {
262
+ return function(e) {
263
+ if (_this.isOpen()) {
264
+ return _this.hide(e);
265
+ }
266
+ };
267
+ })(this);
268
+ }
269
+ };
270
+
271
+ Overlay.prototype.show = function (e) {
272
+ var onFrame;
273
+ var _this = this;
274
+
275
+ addClass(document.body, this.options.bodyActiveClass);
276
+ this.backdrop.retain();
277
+ addClass(this.overlay, this.options.visibleClass);
278
+
279
+ onFrame = function() {
280
+ addClass(_this.overlay, _this.options.activeClass);
281
+ return setTimeout(function() {
282
+ var base;
283
+ return typeof (base = _this.options).onOpen === "function" ? base.onOpen(e) : void 0;
284
+ }, _this.options.animationSpeed);
285
+ };
286
+
287
+ requestAnimationFrame.call(window, onFrame);
288
+ if (this.hasHistory()) {
289
+ return history.pushState("open", window.document.title, this.options.historyStatus);
290
+ }
291
+ };
292
+
293
+ Overlay.prototype.hide = function(e) {
294
+ var onFrame;
295
+ var _this = this;
296
+
297
+ removeClass(document.body, this.options.bodyActiveClass);
298
+ this.backdrop.release();
299
+
300
+ onFrame = function() {
301
+ removeClass(_this.overlay, _this.options.activeClass);
302
+ return setTimeout(function() {
303
+ var base;
304
+ removeClass(_this.overlay, _this.options.visibleClass);
305
+ return typeof (base = _this.options).onClose === "function" ? base.onClose(e) : void 0;
306
+ }, _this.options.animationSpeed);
307
+ };
308
+
309
+ requestAnimationFrame.call(window, onFrame);
310
+ if (this.hasHistory() && history.state === "open") return history.back();
311
+ };
312
+
313
+ Overlay.prototype.isOpen = function() {
314
+ return hasClass(this.overlay, this.options.activeClass);
315
+ };
316
+
317
+ Overlay.prototype.hasHistory = function() {
318
+ return this.options.history && window.history && window.history.pushState;
319
+ };
320
+
321
+ return Overlay;
322
+
323
+ })(this.Utils);
324
+
325
+ window.Tabs = (function(Utils) {
326
+
327
+ var addClass = Utils.addClass;
328
+ var hasClass = Utils.hasClass;
329
+ var removeClass = Utils.removeClass;
330
+ var setOptions = Utils.setOptions;
331
+ var forEach = Utils.forEach;
332
+
333
+ Tabs.prototype.defaults = {
334
+ tabContainer: ".us-tabs",
335
+ tabLinks: ".us-tabs-nav-mainlink",
336
+ tabNav: ".us-tabs-nav",
337
+ changeUrls: true,
338
+ activeClass: "active",
339
+ collapsible: false,
340
+ autoScroll: true
341
+ };
342
+
343
+ function Tabs(options) {
344
+ var ref = this.options = setOptions(options, this.defaults);
345
+ var tabContainer = ref.tabContainer;
346
+ var tabLinks = ref.tabLinks;
347
+
348
+ this.activeTabEvent = new CustomEvent('ustyle.tab.active');
349
+ this.tabs = document.querySelectorAll(tabContainer + ' ' + tabLinks);
350
+ if(!this.tabs.length) return;
351
+ this.filter = this.tabs.item(0).getAttribute("data-target") ? "data-target" : "href";
352
+ this.init();
353
+
354
+ var handleClick = (function (_this) {
355
+ return function (e) {
356
+ var target = e.currentTarget;
357
+ if (_this.isAccordion() && _this.options.collapsible && _this.isActive(target)) {
358
+ _this.collapse(target);
359
+ _this.hashClear();
360
+ } else {
361
+ _this.navigateTo(target);
362
+ _this.scrollToTab(target);
363
+ _this.hashChange(target);
364
+ }
365
+
366
+ return e.preventDefault();
367
+ }
368
+ })(this);
369
+
370
+ forEach(this.tabs, function (index, tab) {
371
+ tab.addEventListener('click', handleClick);
372
+ });
373
+ }
374
+
375
+ Tabs.prototype.init = function() {
376
+ var activeTab = this.activeTab();
377
+ var initialHash = this.tabFromHash();
378
+
379
+ if (initialHash) {
380
+ return this.navigateTo(initialHash);
381
+ } else if (activeTab) {
382
+ return this.navigateTo(activeTab);
383
+ } else if (!this.options.collapsible || !this.isAccordion()) {
384
+ return this.navigateTo(this.tabs.item(0));
385
+ }
386
+ };
387
+
388
+ Tabs.prototype.hashChange = function(target) {
389
+ if (!this.options.changeUrls) return;
390
+
391
+ return window.location.replace("#!" + (getSelector(target).replace(/#/, "")));
392
+ };
393
+
394
+ Tabs.prototype.hashClear = function() {
395
+ if (!this.options.changeUrls) return;
396
+
397
+ var url = window.location.pathname + window.location.search;
398
+ return typeof history.replaceState === "function" ? history.replaceState("", document.title, url) : void 0;
399
+ };
400
+
401
+ Tabs.prototype.navigateTo = function(target) {
402
+ var selector = getSelector(target);
403
+ var selected = document.querySelector(selector);
404
+ var activeClass = this.options.activeClass;
405
+ var filter = this.filter;
406
+
407
+ forEach(this.tabs, function (index, tab) {
408
+ removeClass(tab, activeClass);
409
+ });
410
+
411
+ forEach(this.tabs, function (index, tab) {
412
+ if (tab.getAttribute(filter) === selector) {
413
+ return addClass(tab, activeClass);
414
+ }
415
+ });
416
+
417
+ forEach(selected.parentNode.children, function (index, child) {
418
+ if (child !== selected) {
419
+ removeClass(child, activeClass);
420
+ }
421
+ });
422
+
423
+ addClass(selected, activeClass);
424
+ return selected.dispatchEvent(this.activeTabEvent);
425
+ };
426
+
427
+ Tabs.prototype.collapse = function(target) {
428
+ var selected = document.querySelector(getSelector(target));
429
+ var activeClass = this.options.activeClass;
430
+
431
+ forEach(this.tabs, function (index, tab) {
432
+ removeClass(tab, activeClass);
433
+ });
434
+
435
+ return removeClass(selected, activeClass);
436
+ };
437
+
438
+ Tabs.prototype.scrollToTab = function(target) {
439
+ if (!(this.isAccordion() && this.options.autoScroll)) {
440
+ return;
441
+ }
442
+
443
+ var selected = document.querySelector(getSelector(target));
444
+ return selected.scrollIntoView();
445
+ };
446
+
447
+ Tabs.prototype.activeTab = function() {
448
+ var activeTab = null;
449
+ var activeClass = this.options.activeClass;
450
+ var matchingTab = null;
451
+
452
+ forEach(this.tabs, function (index, tab) {
453
+ if (hasClass(tab, activeClass)) {
454
+ return matchingTab = tab;
455
+ }
456
+ });
457
+
458
+ return matchingTab;
459
+ };
460
+
461
+ Tabs.prototype.tabFromHash = function() {
462
+ var tabId = window.location.hash.replace("!", "");
463
+ var filter = this.filter;
464
+ var matchingTab = null;
465
+
466
+ forEach(this.tabs, function (index, tab) {
467
+ if (tab.getAttribute(filter) === tabId) {
468
+ return matchingTab = tab;
469
+ }
470
+ });
471
+
472
+ return matchingTab;
473
+ };
474
+
475
+ Tabs.prototype.isActive = function(target) {
476
+ return getSelector(target) === getSelector(this.activeTab());
477
+ };
478
+
479
+ Tabs.prototype.isAccordion = function() {
480
+ var tabNav = document.querySelector(this.options.tabNav);
481
+
482
+ return !(tabNav.offsetWidth > 0 || tabNav.offsetHeight > 0);
483
+ };
484
+
485
+ var getSelector = function(clicked) {
486
+ if(clicked) return clicked.getAttribute("data-target") || clicked.getAttribute("href");
487
+ };
488
+
489
+ return Tabs;
490
+ })(this.Utils);
491
+
492
+ window.ClassToggler = (function(Utils) {
493
+ var addClass = Utils.addClass;
494
+ var hasClass = Utils.hasClass;
495
+ var removeClass = Utils.removeClass;
496
+ var forEach = Utils.forEach;
497
+
498
+ var defaults = {
499
+ containerClass: null,
500
+ target: null,
501
+ activeClass: "active",
502
+ inactiveClass: null,
503
+ toggleOn: "click"
504
+ };
505
+
506
+ var findAncestor = function (el, cls) {
507
+ while ((el = el.parentElement) && ! hasClass(el, cls));
508
+ return el;
509
+ }
510
+
511
+ function ClassToggler(options) {
512
+ this.options = Utils.setOptions(options, defaults);
513
+
514
+ if (!this.options.target && this.options.$target && this.options.$target instanceof jQuery) {
515
+ this.options.target = document.querySelectorAll(this.options.$target.selector);
516
+ }
517
+
518
+ if (this.options.target) {
519
+ this.addEventListeners();
520
+ } else {
521
+ console.trace("ClassToggle", this.options);
522
+ }
523
+ }
524
+
525
+ ClassToggler.prototype.addEventListeners = function() {
526
+ var toggleEvent = this.options.toggleOn;
527
+ var onToggle = (function (_this) {
528
+ return function(e) {
529
+ var togglableElement = _this.options.containerClass ? findAncestor(e.target, _this.options.containerClass) : (e.delegateTarget);
530
+ if (_this.isActive(togglableElement)) {
531
+ return _this.hide(togglableElement, e);
532
+ } else {
533
+ return _this.show(togglableElement, e);
534
+ }
535
+ };
536
+ })(this);
537
+
538
+ forEach(this.options.target, function (i, t) {
539
+ t.addEventListener(toggleEvent, onToggle);
540
+ });
541
+ };
542
+
543
+ ClassToggler.prototype.isActive = function(togglableElement) {
544
+ return hasClass(togglableElement, this.options.activeClass);
545
+ };
546
+
547
+ ClassToggler.prototype.show = function(togglableElement, e) {
548
+ var base;
549
+ if (typeof (base = this.options).onShow === "function") {
550
+ base.onShow(togglableElement, e);
551
+ }
552
+
553
+ return togglableElement.addClass(this.options.activeClass);
554
+ };
555
+
556
+ ClassToggler.prototype.hide = function(togglableElement, e) {
557
+ var base;
558
+ if (typeof (base = this.options).onHide === "function") {
559
+ base.onHide(togglableElement, e);
560
+ }
561
+
562
+ return removeClass(togglableElement, this.options.activeClass);
563
+ };
564
+
565
+ return ClassToggler;
566
+
567
+ })(this.Utils);