aacinfo-theme 0.2.0 → 2.0.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 (489) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +25 -1
  3. data/_includes/footer.html +54 -0
  4. data/_includes/header.html +46 -0
  5. data/_includes/parts/content.html +6 -0
  6. data/_includes/parts/social-media.html +10 -0
  7. data/_includes/theme-menu.html +27 -28
  8. data/_layouts/theme.html +14 -26
  9. data/_layouts/title-page.html +22 -0
  10. data/_sass/_style.scss +122 -0
  11. data/_sass/components/_blockquotes.scss +62 -0
  12. data/_sass/components/_buttons.scss +100 -0
  13. data/_sass/components/_cards.scss +29 -0
  14. data/_sass/components/_dividers.scss +165 -0
  15. data/_sass/components/_featured-image.scss +14 -0
  16. data/_sass/components/_forms.scss +414 -0
  17. data/_sass/components/_links.scss +83 -0
  18. data/_sass/components/_pagination.scss +91 -0
  19. data/_sass/components/_selectric.scss +200 -0
  20. data/_sass/components/_slick-theme.scss +194 -0
  21. data/_sass/components/_slick.scss +98 -0
  22. data/_sass/components/_spinner.scss +356 -0
  23. data/_sass/components/_svg.scss +12 -0
  24. data/_sass/fontawesome/.bower.json +36 -0
  25. data/_sass/fontawesome/.gitignore +33 -0
  26. data/_sass/fontawesome/.npmignore +42 -0
  27. data/_sass/fontawesome/HELP-US-OUT.txt +7 -0
  28. data/_sass/fontawesome/bower.json +22 -0
  29. data/{assets → _sass/fontawesome}/css/font-awesome.css +547 -11
  30. data/_sass/fontawesome/css/font-awesome.css.map +7 -0
  31. data/_sass/fontawesome/css/font-awesome.min.css +4 -0
  32. data/_sass/fontawesome/fonts/FontAwesome.otf +0 -0
  33. data/_sass/fontawesome/fonts/fontawesome-webfont.eot +0 -0
  34. data/_sass/fontawesome/fonts/fontawesome-webfont.svg +2671 -0
  35. data/_sass/fontawesome/fonts/fontawesome-webfont.ttf +0 -0
  36. data/_sass/fontawesome/fonts/fontawesome-webfont.woff +0 -0
  37. data/_sass/fontawesome/fonts/fontawesome-webfont.woff2 +0 -0
  38. data/_sass/fontawesome/less/animated.less +34 -0
  39. data/_sass/fontawesome/less/bordered-pulled.less +25 -0
  40. data/_sass/fontawesome/less/core.less +12 -0
  41. data/_sass/fontawesome/less/fixed-width.less +6 -0
  42. data/_sass/fontawesome/less/font-awesome.less +18 -0
  43. data/_sass/fontawesome/less/icons.less +789 -0
  44. data/_sass/fontawesome/less/larger.less +13 -0
  45. data/_sass/fontawesome/less/list.less +19 -0
  46. data/_sass/fontawesome/less/mixins.less +60 -0
  47. data/_sass/fontawesome/less/path.less +15 -0
  48. data/_sass/fontawesome/less/rotated-flipped.less +20 -0
  49. data/_sass/fontawesome/less/screen-reader.less +5 -0
  50. data/_sass/fontawesome/less/stacked.less +20 -0
  51. data/_sass/fontawesome/less/variables.less +800 -0
  52. data/_sass/fontawesome/scss/_animated.scss +34 -0
  53. data/_sass/fontawesome/scss/_bordered-pulled.scss +25 -0
  54. data/_sass/fontawesome/scss/_core.scss +12 -0
  55. data/_sass/fontawesome/scss/_fixed-width.scss +6 -0
  56. data/_sass/fontawesome/scss/_icons.scss +789 -0
  57. data/_sass/fontawesome/scss/_larger.scss +13 -0
  58. data/_sass/fontawesome/scss/_list.scss +19 -0
  59. data/_sass/fontawesome/scss/_mixins.scss +60 -0
  60. data/_sass/fontawesome/scss/_path.scss +15 -0
  61. data/_sass/fontawesome/scss/_rotated-flipped.scss +20 -0
  62. data/_sass/fontawesome/scss/_screen-reader.scss +5 -0
  63. data/_sass/fontawesome/scss/_stacked.scss +20 -0
  64. data/_sass/fontawesome/scss/_variables.scss +800 -0
  65. data/_sass/fontawesome/scss/font-awesome.scss +18 -0
  66. data/_sass/foundation-sites/.bower.json +44 -0
  67. data/_sass/foundation-sites/.bowerrc +3 -0
  68. data/_sass/foundation-sites/.eslintrc +64 -0
  69. data/_sass/foundation-sites/.github/ISSUE_TEMPLATE.md +21 -0
  70. data/_sass/foundation-sites/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  71. data/_sass/foundation-sites/.sass-lint.yml +409 -0
  72. data/_sass/foundation-sites/.travis.yml +9 -0
  73. data/_sass/foundation-sites/LICENSE +22 -0
  74. data/_sass/foundation-sites/README.md +52 -0
  75. data/_sass/foundation-sites/_vendor/normalize-scss/sass/_normalize.scss +3 -0
  76. data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_import-now.scss +11 -0
  77. data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +676 -0
  78. data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_variables.scss +36 -0
  79. data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +61 -0
  80. data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
  81. data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
  82. data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
  83. data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
  84. data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
  85. data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
  86. data/_sass/foundation-sites/assets/foundation-flex.scss +3 -0
  87. data/_sass/foundation-sites/assets/foundation-rtl.scss +5 -0
  88. data/_sass/foundation-sites/assets/foundation.scss +3 -0
  89. data/_sass/foundation-sites/bower.json +34 -0
  90. data/_sass/foundation-sites/browserstack.json +32 -0
  91. data/_sass/foundation-sites/code-of-conduct.md +43 -0
  92. data/_sass/foundation-sites/customizer/complete.json +48 -0
  93. data/_sass/foundation-sites/customizer/config.yml +228 -0
  94. data/_sass/foundation-sites/customizer/essential.json +11 -0
  95. data/_sass/foundation-sites/customizer/index.html +169 -0
  96. data/_sass/foundation-sites/dist/css/foundation-flex.css +4566 -0
  97. data/_sass/foundation-sites/dist/css/foundation-flex.min.css +2 -0
  98. data/_sass/foundation-sites/dist/css/foundation-rtl.css +4006 -0
  99. data/_sass/foundation-sites/dist/css/foundation-rtl.min.css +2 -0
  100. data/_sass/foundation-sites/dist/css/foundation.css +4001 -0
  101. data/_sass/foundation-sites/dist/css/foundation.min.css +2 -0
  102. data/_sass/foundation-sites/dist/js/foundation.d.ts +496 -0
  103. data/_sass/foundation-sites/dist/js/foundation.js +10207 -0
  104. data/_sass/foundation-sites/dist/js/foundation.min.js +4 -0
  105. data/_sass/foundation-sites/dist/js/plugins/foundation.abide.js +637 -0
  106. data/_sass/foundation-sites/dist/js/plugins/foundation.abide.min.js +1 -0
  107. data/_sass/foundation-sites/dist/js/plugins/foundation.accordion.js +252 -0
  108. data/_sass/foundation-sites/dist/js/plugins/foundation.accordion.min.js +1 -0
  109. data/_sass/foundation-sites/dist/js/plugins/foundation.accordionMenu.js +318 -0
  110. data/_sass/foundation-sites/dist/js/plugins/foundation.accordionMenu.min.js +1 -0
  111. data/_sass/foundation-sites/dist/js/plugins/foundation.core.js +386 -0
  112. data/_sass/foundation-sites/dist/js/plugins/foundation.core.min.js +1 -0
  113. data/_sass/foundation-sites/dist/js/plugins/foundation.drilldown.js +565 -0
  114. data/_sass/foundation-sites/dist/js/plugins/foundation.drilldown.min.js +1 -0
  115. data/_sass/foundation-sites/dist/js/plugins/foundation.dropdown.js +465 -0
  116. data/_sass/foundation-sites/dist/js/plugins/foundation.dropdown.min.js +1 -0
  117. data/_sass/foundation-sites/dist/js/plugins/foundation.dropdownMenu.js +486 -0
  118. data/_sass/foundation-sites/dist/js/plugins/foundation.dropdownMenu.min.js +1 -0
  119. data/_sass/foundation-sites/dist/js/plugins/foundation.equalizer.js +374 -0
  120. data/_sass/foundation-sites/dist/js/plugins/foundation.equalizer.min.js +1 -0
  121. data/_sass/foundation-sites/dist/js/plugins/foundation.interchange.js +233 -0
  122. data/_sass/foundation-sites/dist/js/plugins/foundation.interchange.min.js +1 -0
  123. data/_sass/foundation-sites/dist/js/plugins/foundation.magellan.js +285 -0
  124. data/_sass/foundation-sites/dist/js/plugins/foundation.magellan.min.js +1 -0
  125. data/_sass/foundation-sites/dist/js/plugins/foundation.offcanvas.js +474 -0
  126. data/_sass/foundation-sites/dist/js/plugins/foundation.offcanvas.min.js +1 -0
  127. data/_sass/foundation-sites/dist/js/plugins/foundation.orbit.js +566 -0
  128. data/_sass/foundation-sites/dist/js/plugins/foundation.orbit.min.js +1 -0
  129. data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveMenu.js +169 -0
  130. data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveMenu.min.js +1 -0
  131. data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveToggle.js +177 -0
  132. data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveToggle.min.js +1 -0
  133. data/_sass/foundation-sites/dist/js/plugins/foundation.reveal.js +633 -0
  134. data/_sass/foundation-sites/dist/js/plugins/foundation.reveal.min.js +1 -0
  135. data/_sass/foundation-sites/dist/js/plugins/foundation.slider.js +762 -0
  136. data/_sass/foundation-sites/dist/js/plugins/foundation.slider.min.js +1 -0
  137. data/_sass/foundation-sites/dist/js/plugins/foundation.sticky.js +518 -0
  138. data/_sass/foundation-sites/dist/js/plugins/foundation.sticky.min.js +1 -0
  139. data/_sass/foundation-sites/dist/js/plugins/foundation.tabs.js +512 -0
  140. data/_sass/foundation-sites/dist/js/plugins/foundation.tabs.min.js +1 -0
  141. data/_sass/foundation-sites/dist/js/plugins/foundation.toggler.js +169 -0
  142. data/_sass/foundation-sites/dist/js/plugins/foundation.toggler.min.js +1 -0
  143. data/_sass/foundation-sites/dist/js/plugins/foundation.tooltip.js +492 -0
  144. data/_sass/foundation-sites/dist/js/plugins/foundation.tooltip.min.js +1 -0
  145. data/_sass/foundation-sites/dist/js/plugins/foundation.util.box.js +196 -0
  146. data/_sass/foundation-sites/dist/js/plugins/foundation.util.box.min.js +1 -0
  147. data/_sass/foundation-sites/dist/js/plugins/foundation.util.keyboard.js +163 -0
  148. data/_sass/foundation-sites/dist/js/plugins/foundation.util.keyboard.min.js +1 -0
  149. data/_sass/foundation-sites/dist/js/plugins/foundation.util.mediaQuery.js +233 -0
  150. data/_sass/foundation-sites/dist/js/plugins/foundation.util.mediaQuery.min.js +1 -0
  151. data/_sass/foundation-sites/dist/js/plugins/foundation.util.motion.js +103 -0
  152. data/_sass/foundation-sites/dist/js/plugins/foundation.util.motion.min.js +1 -0
  153. data/_sass/foundation-sites/dist/js/plugins/foundation.util.nest.js +74 -0
  154. data/_sass/foundation-sites/dist/js/plugins/foundation.util.nest.min.js +1 -0
  155. data/_sass/foundation-sites/dist/js/plugins/foundation.util.timerAndImageLoader.js +90 -0
  156. data/_sass/foundation-sites/dist/js/plugins/foundation.util.timerAndImageLoader.min.js +1 -0
  157. data/_sass/foundation-sites/dist/js/plugins/foundation.util.touch.js +352 -0
  158. data/_sass/foundation-sites/dist/js/plugins/foundation.util.touch.min.js +1 -0
  159. data/_sass/foundation-sites/dist/js/plugins/foundation.util.triggers.js +261 -0
  160. data/_sass/foundation-sites/dist/js/plugins/foundation.util.triggers.min.js +1 -0
  161. data/_sass/foundation-sites/dist/js/plugins/foundation.zf.responsiveAccordionTabs.js +262 -0
  162. data/_sass/foundation-sites/dist/js/plugins/foundation.zf.responsiveAccordionTabs.min.js +1 -0
  163. data/_sass/foundation-sites/docslink.sh +3 -0
  164. data/_sass/foundation-sites/js/foundation.abide.js +584 -0
  165. data/_sass/foundation-sites/js/foundation.accordion.js +315 -0
  166. data/_sass/foundation-sites/js/foundation.accordionMenu.js +283 -0
  167. data/_sass/foundation-sites/js/foundation.core.js +378 -0
  168. data/_sass/foundation-sites/js/foundation.drilldown.js +518 -0
  169. data/_sass/foundation-sites/js/foundation.dropdown.js +432 -0
  170. data/_sass/foundation-sites/js/foundation.dropdownMenu.js +442 -0
  171. data/_sass/foundation-sites/js/foundation.equalizer.js +317 -0
  172. data/_sass/foundation-sites/js/foundation.interchange.js +203 -0
  173. data/_sass/foundation-sites/js/foundation.magellan.js +251 -0
  174. data/_sass/foundation-sites/js/foundation.offcanvas.js +434 -0
  175. data/_sass/foundation-sites/js/foundation.orbit.js +523 -0
  176. data/_sass/foundation-sites/js/foundation.responsiveMenu.js +147 -0
  177. data/_sass/foundation-sites/js/foundation.responsiveToggle.js +155 -0
  178. data/_sass/foundation-sites/js/foundation.reveal.js +603 -0
  179. data/_sass/foundation-sites/js/foundation.slider.js +697 -0
  180. data/_sass/foundation-sites/js/foundation.sticky.js +499 -0
  181. data/_sass/foundation-sites/js/foundation.tabs.js +490 -0
  182. data/_sass/foundation-sites/js/foundation.toggler.js +148 -0
  183. data/_sass/foundation-sites/js/foundation.tooltip.js +470 -0
  184. data/_sass/foundation-sites/js/foundation.util.box.js +195 -0
  185. data/_sass/foundation-sites/js/foundation.util.keyboard.js +152 -0
  186. data/_sass/foundation-sites/js/foundation.util.mediaQuery.js +230 -0
  187. data/_sass/foundation-sites/js/foundation.util.motion.js +105 -0
  188. data/_sass/foundation-sites/js/foundation.util.nest.js +81 -0
  189. data/_sass/foundation-sites/js/foundation.util.timerAndImageLoader.js +88 -0
  190. data/_sass/foundation-sites/js/foundation.util.touch.js +352 -0
  191. data/_sass/foundation-sites/js/foundation.util.triggers.js +210 -0
  192. data/_sass/foundation-sites/js/foundation.zf.responsiveAccordionTabs.js +240 -0
  193. data/_sass/foundation-sites/scss/_global.scss +219 -0
  194. data/_sass/foundation-sites/scss/components/_accordion-menu.scss +36 -0
  195. data/_sass/foundation-sites/scss/components/_accordion.scss +150 -0
  196. data/_sass/foundation-sites/scss/components/_badge.scss +63 -0
  197. data/_sass/foundation-sites/scss/components/_breadcrumbs.scss +100 -0
  198. data/_sass/foundation-sites/scss/components/_button-group.scss +253 -0
  199. data/_sass/foundation-sites/scss/components/_button.scss +332 -0
  200. data/_sass/foundation-sites/scss/components/_callout.scss +106 -0
  201. data/_sass/foundation-sites/scss/components/_card.scss +121 -0
  202. data/_sass/foundation-sites/scss/components/_close-button.scss +102 -0
  203. data/_sass/foundation-sites/scss/components/_drilldown.scss +93 -0
  204. data/_sass/foundation-sites/scss/components/_dropdown-menu.scss +226 -0
  205. data/_sass/foundation-sites/scss/components/_dropdown.scss +72 -0
  206. data/_sass/foundation-sites/scss/components/_flex-video.scss +1 -0
  207. data/_sass/foundation-sites/scss/components/_flex.scss +34 -0
  208. data/_sass/foundation-sites/scss/components/_float.scss +27 -0
  209. data/_sass/foundation-sites/scss/components/_label.scss +64 -0
  210. data/_sass/foundation-sites/scss/components/_media-object.scss +114 -0
  211. data/_sass/foundation-sites/scss/components/_menu-icon.scss +9 -0
  212. data/_sass/foundation-sites/scss/components/_menu.scss +376 -0
  213. data/_sass/foundation-sites/scss/components/_off-canvas.scss +329 -0
  214. data/_sass/foundation-sites/scss/components/_orbit.scss +196 -0
  215. data/_sass/foundation-sites/scss/components/_pagination.scss +193 -0
  216. data/_sass/foundation-sites/scss/components/_progress-bar.scss +64 -0
  217. data/_sass/foundation-sites/scss/components/_responsive-embed.scss +70 -0
  218. data/_sass/foundation-sites/scss/components/_reveal.scss +178 -0
  219. data/_sass/foundation-sites/scss/components/_slider.scss +138 -0
  220. data/_sass/foundation-sites/scss/components/_sticky.scss +38 -0
  221. data/_sass/foundation-sites/scss/components/_switch.scss +247 -0
  222. data/_sass/foundation-sites/scss/components/_table.scss +329 -0
  223. data/_sass/foundation-sites/scss/components/_tabs.scss +196 -0
  224. data/_sass/foundation-sites/scss/components/_thumbnail.scss +67 -0
  225. data/_sass/foundation-sites/scss/components/_title-bar.scss +84 -0
  226. data/_sass/foundation-sites/scss/components/_tooltip.scss +107 -0
  227. data/_sass/foundation-sites/scss/components/_top-bar.scss +173 -0
  228. data/_sass/foundation-sites/scss/components/_visibility.scss +132 -0
  229. data/_sass/foundation-sites/scss/forms/_checkbox.scss +41 -0
  230. data/_sass/foundation-sites/scss/forms/_error.scss +88 -0
  231. data/_sass/foundation-sites/scss/forms/_fieldset.scss +54 -0
  232. data/_sass/foundation-sites/scss/forms/_forms.scss +34 -0
  233. data/_sass/foundation-sites/scss/forms/_help-text.scss +30 -0
  234. data/_sass/foundation-sites/scss/forms/_input-group.scss +135 -0
  235. data/_sass/foundation-sites/scss/forms/_label.scss +50 -0
  236. data/_sass/foundation-sites/scss/forms/_meter.scss +110 -0
  237. data/_sass/foundation-sites/scss/forms/_progress.scss +94 -0
  238. data/_sass/foundation-sites/scss/forms/_range.scss +149 -0
  239. data/_sass/foundation-sites/scss/forms/_select.scss +85 -0
  240. data/_sass/foundation-sites/scss/forms/_text.scss +170 -0
  241. data/_sass/foundation-sites/scss/foundation.scss +118 -0
  242. data/_sass/foundation-sites/scss/grid/_classes.scss +176 -0
  243. data/_sass/foundation-sites/scss/grid/_column.scss +112 -0
  244. data/_sass/foundation-sites/scss/grid/_flex-grid.scss +312 -0
  245. data/_sass/foundation-sites/scss/grid/_grid.scss +48 -0
  246. data/_sass/foundation-sites/scss/grid/_gutter.scss +82 -0
  247. data/_sass/foundation-sites/scss/grid/_layout.scss +76 -0
  248. data/_sass/foundation-sites/scss/grid/_position.scss +76 -0
  249. data/_sass/foundation-sites/scss/grid/_row.scss +99 -0
  250. data/_sass/foundation-sites/scss/grid/_size.scss +24 -0
  251. data/_sass/foundation-sites/scss/settings/_settings.scss +620 -0
  252. data/_sass/foundation-sites/scss/typography/_alignment.scss +22 -0
  253. data/_sass/foundation-sites/scss/typography/_base.scss +509 -0
  254. data/_sass/foundation-sites/scss/typography/_helpers.scss +78 -0
  255. data/_sass/foundation-sites/scss/typography/_print.scss +86 -0
  256. data/_sass/foundation-sites/scss/typography/_typography.scss +26 -0
  257. data/_sass/foundation-sites/scss/util/_breakpoint.scss +281 -0
  258. data/_sass/foundation-sites/scss/util/_color.scss +126 -0
  259. data/_sass/foundation-sites/scss/util/_direction.scss +31 -0
  260. data/_sass/foundation-sites/scss/util/_flex.scss +85 -0
  261. data/_sass/foundation-sites/scss/util/_math.scss +72 -0
  262. data/_sass/foundation-sites/scss/util/_mixins.scss +276 -0
  263. data/_sass/foundation-sites/scss/util/_selector.scss +41 -0
  264. data/_sass/foundation-sites/scss/util/_typography.scss +26 -0
  265. data/_sass/foundation-sites/scss/util/_unit.scss +152 -0
  266. data/_sass/foundation-sites/scss/util/_util.scss +14 -0
  267. data/_sass/foundation-sites/scss/util/_value.scss +160 -0
  268. data/_sass/global/_accessibility.scss +32 -0
  269. data/_sass/global/_functions.scss +7 -0
  270. data/_sass/global/_modernizr.scss +0 -0
  271. data/_sass/global/_settings.scss +657 -0
  272. data/_sass/global/_wp-admin.scss +24 -0
  273. data/_sass/global/_wp-overrides.scss +51 -0
  274. data/_sass/jquery/.bower.json +25 -0
  275. data/_sass/jquery/AUTHORS.txt +278 -0
  276. data/_sass/jquery/LICENSE.txt +36 -0
  277. data/_sass/jquery/README.md +65 -0
  278. data/_sass/jquery/bower.json +14 -0
  279. data/_sass/jquery/dist/jquery.js +9814 -0
  280. data/_sass/jquery/dist/jquery.min.js +4 -0
  281. data/_sass/jquery/dist/jquery.min.map +1 -0
  282. data/_sass/jquery/external/sizzle/LICENSE.txt +36 -0
  283. data/_sass/jquery/external/sizzle/dist/sizzle.js +2143 -0
  284. data/_sass/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  285. data/_sass/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  286. data/_sass/jquery/src/.jshintrc +29 -0
  287. data/_sass/jquery/src/ajax.js +845 -0
  288. data/_sass/jquery/src/ajax/jsonp.js +100 -0
  289. data/_sass/jquery/src/ajax/load.js +83 -0
  290. data/_sass/jquery/src/ajax/parseJSON.js +13 -0
  291. data/_sass/jquery/src/ajax/parseXML.js +27 -0
  292. data/_sass/jquery/src/ajax/script.js +68 -0
  293. data/_sass/jquery/src/ajax/var/location.js +3 -0
  294. data/_sass/jquery/src/ajax/var/nonce.js +5 -0
  295. data/_sass/jquery/src/ajax/var/rquery.js +3 -0
  296. data/_sass/jquery/src/ajax/xhr.js +167 -0
  297. data/_sass/jquery/src/attributes.js +11 -0
  298. data/_sass/jquery/src/attributes/attr.js +142 -0
  299. data/_sass/jquery/src/attributes/classes.js +177 -0
  300. data/_sass/jquery/src/attributes/prop.js +125 -0
  301. data/_sass/jquery/src/attributes/support.js +36 -0
  302. data/_sass/jquery/src/attributes/val.js +177 -0
  303. data/_sass/jquery/src/callbacks.js +232 -0
  304. data/_sass/jquery/src/core.js +494 -0
  305. data/_sass/jquery/src/core/access.js +65 -0
  306. data/_sass/jquery/src/core/init.js +134 -0
  307. data/_sass/jquery/src/core/parseHTML.js +41 -0
  308. data/_sass/jquery/src/core/ready.js +103 -0
  309. data/_sass/jquery/src/core/var/rsingleTag.js +5 -0
  310. data/_sass/jquery/src/css.js +502 -0
  311. data/_sass/jquery/src/css/addGetHookIf.js +24 -0
  312. data/_sass/jquery/src/css/adjustCSS.js +65 -0
  313. data/_sass/jquery/src/css/curCSS.js +60 -0
  314. data/_sass/jquery/src/css/defaultDisplay.js +72 -0
  315. data/_sass/jquery/src/css/hiddenVisibleSelectors.js +18 -0
  316. data/_sass/jquery/src/css/showHide.js +48 -0
  317. data/_sass/jquery/src/css/support.js +121 -0
  318. data/_sass/jquery/src/css/var/cssExpand.js +3 -0
  319. data/_sass/jquery/src/css/var/getStyles.js +15 -0
  320. data/_sass/jquery/src/css/var/isHidden.js +16 -0
  321. data/_sass/jquery/src/css/var/rmargin.js +3 -0
  322. data/_sass/jquery/src/css/var/rnumnonpx.js +5 -0
  323. data/_sass/jquery/src/css/var/swap.js +24 -0
  324. data/_sass/jquery/src/data.js +187 -0
  325. data/_sass/jquery/src/data/Data.js +200 -0
  326. data/_sass/jquery/src/data/var/acceptData.js +18 -0
  327. data/_sass/jquery/src/data/var/dataPriv.js +5 -0
  328. data/_sass/jquery/src/data/var/dataUser.js +5 -0
  329. data/_sass/jquery/src/deferred.js +158 -0
  330. data/_sass/jquery/src/deprecated.js +32 -0
  331. data/_sass/jquery/src/dimensions.js +54 -0
  332. data/_sass/jquery/src/effects.js +629 -0
  333. data/_sass/jquery/src/effects/Tween.js +121 -0
  334. data/_sass/jquery/src/effects/animatedSelector.js +13 -0
  335. data/_sass/jquery/src/event.js +711 -0
  336. data/_sass/jquery/src/event/ajax.js +20 -0
  337. data/_sass/jquery/src/event/alias.js +27 -0
  338. data/_sass/jquery/src/event/focusin.js +53 -0
  339. data/_sass/jquery/src/event/support.js +9 -0
  340. data/_sass/jquery/src/event/trigger.js +183 -0
  341. data/_sass/jquery/src/exports/amd.js +24 -0
  342. data/_sass/jquery/src/exports/global.js +26 -0
  343. data/_sass/jquery/src/intro.js +44 -0
  344. data/_sass/jquery/src/jquery.js +37 -0
  345. data/_sass/jquery/src/manipulation.js +481 -0
  346. data/_sass/jquery/src/manipulation/_evalUrl.js +20 -0
  347. data/_sass/jquery/src/manipulation/buildFragment.js +102 -0
  348. data/_sass/jquery/src/manipulation/getAll.js +21 -0
  349. data/_sass/jquery/src/manipulation/setGlobalEval.js +20 -0
  350. data/_sass/jquery/src/manipulation/support.js +33 -0
  351. data/_sass/jquery/src/manipulation/var/rcheckableType.js +3 -0
  352. data/_sass/jquery/src/manipulation/var/rscriptType.js +3 -0
  353. data/_sass/jquery/src/manipulation/var/rtagName.js +3 -0
  354. data/_sass/jquery/src/manipulation/wrapMap.js +27 -0
  355. data/_sass/jquery/src/offset.js +218 -0
  356. data/_sass/jquery/src/outro.js +2 -0
  357. data/_sass/jquery/src/queue.js +143 -0
  358. data/_sass/jquery/src/queue/delay.js +22 -0
  359. data/_sass/jquery/src/selector-native.js +211 -0
  360. data/_sass/jquery/src/selector-sizzle.js +14 -0
  361. data/_sass/jquery/src/selector.js +1 -0
  362. data/_sass/jquery/src/serialize.js +125 -0
  363. data/_sass/jquery/src/traversing.js +175 -0
  364. data/_sass/jquery/src/traversing/findFilter.js +100 -0
  365. data/_sass/jquery/src/traversing/var/dir.js +20 -0
  366. data/_sass/jquery/src/traversing/var/rneedsContext.js +6 -0
  367. data/_sass/jquery/src/traversing/var/siblings.js +15 -0
  368. data/_sass/jquery/src/var/arr.js +3 -0
  369. data/_sass/jquery/src/var/class2type.js +5 -0
  370. data/_sass/jquery/src/var/concat.js +5 -0
  371. data/_sass/jquery/src/var/document.js +3 -0
  372. data/_sass/jquery/src/var/documentElement.js +5 -0
  373. data/_sass/jquery/src/var/hasOwn.js +5 -0
  374. data/_sass/jquery/src/var/indexOf.js +5 -0
  375. data/_sass/jquery/src/var/pnum.js +3 -0
  376. data/_sass/jquery/src/var/push.js +5 -0
  377. data/_sass/jquery/src/var/rcssNum.js +7 -0
  378. data/_sass/jquery/src/var/rnotwhite.js +3 -0
  379. data/_sass/jquery/src/var/slice.js +5 -0
  380. data/_sass/jquery/src/var/support.js +5 -0
  381. data/_sass/jquery/src/var/toString.js +5 -0
  382. data/_sass/jquery/src/wrap.js +79 -0
  383. data/_sass/modules/_editor-style.scss +5 -0
  384. data/_sass/modules/_footer.scss +115 -0
  385. data/_sass/modules/_navigation.scss +570 -0
  386. data/_sass/modules/_sidebar.scss +66 -0
  387. data/_sass/modules/_twitter.scss +58 -0
  388. data/_sass/motion-ui/.bower.json +38 -0
  389. data/_sass/motion-ui/LICENSE +22 -0
  390. data/_sass/motion-ui/README.md +29 -0
  391. data/_sass/motion-ui/bower.json +28 -0
  392. data/_sass/motion-ui/composer.json +25 -0
  393. data/_sass/motion-ui/dist/motion-ui.css +634 -0
  394. data/_sass/motion-ui/dist/motion-ui.js +117 -0
  395. data/_sass/motion-ui/dist/motion-ui.min.css +1 -0
  396. data/_sass/motion-ui/dist/motion-ui.min.js +1 -0
  397. data/_sass/motion-ui/docs/animations.md +230 -0
  398. data/_sass/motion-ui/docs/classes.md +81 -0
  399. data/_sass/motion-ui/docs/configuration.md +63 -0
  400. data/_sass/motion-ui/docs/installation.md +50 -0
  401. data/_sass/motion-ui/docs/javascript.md +36 -0
  402. data/_sass/motion-ui/docs/readme.md +32 -0
  403. data/_sass/motion-ui/docs/transitions.md +112 -0
  404. data/_sass/motion-ui/docs/wow.md +35 -0
  405. data/_sass/motion-ui/gulpfile.js +90 -0
  406. data/_sass/motion-ui/lib/handlebars.js +8 -0
  407. data/_sass/motion-ui/motion-ui.js +105 -0
  408. data/_sass/motion-ui/motion-ui.scss +4 -0
  409. data/_sass/motion-ui/package.json +44 -0
  410. data/_sass/motion-ui/src/_classes.scss +109 -0
  411. data/_sass/motion-ui/src/_settings.scss +61 -0
  412. data/_sass/motion-ui/src/effects/_fade.scss +32 -0
  413. data/_sass/motion-ui/src/effects/_hinge.scss +65 -0
  414. data/_sass/motion-ui/src/effects/_shake.scss +15 -0
  415. data/_sass/motion-ui/src/effects/_slide.scss +41 -0
  416. data/_sass/motion-ui/src/effects/_spin.scss +28 -0
  417. data/_sass/motion-ui/src/effects/_wiggle.scss +13 -0
  418. data/_sass/motion-ui/src/effects/_zoom.scss +15 -0
  419. data/_sass/motion-ui/src/motion-ui.scss +29 -0
  420. data/_sass/motion-ui/src/transitions/_fade.scss +28 -0
  421. data/_sass/motion-ui/src/transitions/_hinge.scss +43 -0
  422. data/_sass/motion-ui/src/transitions/_slide.scss +42 -0
  423. data/_sass/motion-ui/src/transitions/_spin.scss +39 -0
  424. data/_sass/motion-ui/src/transitions/_zoom.scss +39 -0
  425. data/_sass/motion-ui/src/util/_animation.scss +7 -0
  426. data/_sass/motion-ui/src/util/_args.scss +15 -0
  427. data/_sass/motion-ui/src/util/_keyframe.scss +136 -0
  428. data/_sass/motion-ui/src/util/_selector.scss +23 -0
  429. data/_sass/motion-ui/src/util/_series.scss +54 -0
  430. data/_sass/motion-ui/src/util/_transition.scss +45 -0
  431. data/_sass/motion-ui/src/util/_unit.scss +7 -0
  432. data/_sass/templates/_archive.scss +66 -0
  433. data/_sass/templates/_page-accordion-sidebar.scss +137 -0
  434. data/_sass/templates/_page-contact.scss +33 -0
  435. data/_sass/templates/_page-default.scss +472 -0
  436. data/_sass/templates/_page-faq-sidebar.scss +77 -0
  437. data/_sass/templates/_page-front.scss +549 -0
  438. data/_sass/templates/_page-full-width.scss +11 -0
  439. data/_sass/templates/_page-highlights.scss +156 -0
  440. data/_sass/templates/_page-sidebar-left.scss +27 -0
  441. data/_sass/templates/_print.scss +69 -0
  442. data/_sass/templates/_single-post.scss +12 -0
  443. data/_sass/what-input/.bower.json +35 -0
  444. data/_sass/what-input/Gulpfile.js +104 -0
  445. data/_sass/what-input/LICENSE +21 -0
  446. data/_sass/what-input/README.md +178 -0
  447. data/_sass/what-input/bower.json +26 -0
  448. data/_sass/what-input/dist/lte-IE8.js +1 -0
  449. data/_sass/what-input/dist/what-input.js +337 -0
  450. data/_sass/what-input/dist/what-input.min.js +7 -0
  451. data/_sass/what-input/index.html +164 -0
  452. data/_sass/what-input/package.json +38 -0
  453. data/_sass/what-input/src/polyfills/ie8/EventListener.js +150 -0
  454. data/_sass/what-input/src/polyfills/ie8/indexOf.js +65 -0
  455. data/_sass/what-input/src/what-input.js +269 -0
  456. data/_sass/what-input/yarn.lock +3482 -0
  457. data/assets/css/style.scss +4 -0
  458. data/assets/{css → fonts}/comfortaa-bold-webfont.eot +0 -0
  459. data/assets/{css → fonts}/comfortaa-bold-webfont.svg +0 -0
  460. data/assets/{css → fonts}/comfortaa-bold-webfont.ttf +0 -0
  461. data/assets/{css → fonts}/comfortaa-bold-webfont.woff +0 -0
  462. data/assets/{css → fonts}/comfortaa-bold-webfont.woff2 +0 -0
  463. data/assets/{css → fonts}/comfortaa-regular-webfont.eot +0 -0
  464. data/assets/{css → fonts}/comfortaa-regular-webfont.svg +0 -0
  465. data/assets/{css → fonts}/comfortaa-regular-webfont.ttf +0 -0
  466. data/assets/{css → fonts}/comfortaa-regular-webfont.woff +0 -0
  467. data/assets/{css → fonts}/comfortaa-regular-webfont.woff2 +0 -0
  468. data/assets/{css → fonts}/raleway-regular-webfont.svg +0 -0
  469. data/assets/images/ace-centre-logo.png +0 -0
  470. data/assets/images/getting-started-with-aac-logo.png +0 -0
  471. data/assets/images/getting-started-with-aac.png +0 -0
  472. data/assets/images/icon/ace-icon-180x180.png +0 -0
  473. data/assets/images/icon/ace-icon-192x192.png +0 -0
  474. data/assets/images/icon/ace-icon-270x270.png +0 -0
  475. data/assets/images/icon/ace-icon-32x32.png +0 -0
  476. data/assets/javascript/scripts.js +10 -0
  477. metadata +477 -29
  478. data/_includes/theme-footer.html +0 -16
  479. data/_includes/theme-head.html +0 -48
  480. data/assets/css/bootstrap-select.min.css +0 -7
  481. data/assets/css/bootstrap-theme.css +0 -442
  482. data/assets/css/bootstrap.css +0 -6203
  483. data/assets/css/draganddrop.css +0 -210
  484. data/assets/css/fonts.css +0 -41
  485. data/assets/css/responsive.css +0 -90
  486. data/assets/css/style.css +0 -260
  487. data/assets/images/divider.png +0 -0
  488. data/assets/images/logo-1.png +0 -0
  489. data/assets/images/logo-2.png +0 -0
@@ -0,0 +1,378 @@
1
+ !function($) {
2
+
3
+ "use strict";
4
+
5
+ var FOUNDATION_VERSION = '6.3.1';
6
+
7
+ // Global Foundation object
8
+ // This is attached to the window, or used as a module for AMD/Browserify
9
+ var Foundation = {
10
+ version: FOUNDATION_VERSION,
11
+
12
+ /**
13
+ * Stores initialized plugins.
14
+ */
15
+ _plugins: {},
16
+
17
+ /**
18
+ * Stores generated unique ids for plugin instances
19
+ */
20
+ _uuids: [],
21
+
22
+ /**
23
+ * Returns a boolean for RTL support
24
+ */
25
+ rtl: function(){
26
+ return $('html').attr('dir') === 'rtl';
27
+ },
28
+ /**
29
+ * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.
30
+ * @param {Object} plugin - The constructor of the plugin.
31
+ */
32
+ plugin: function(plugin, name) {
33
+ // Object key to use when adding to global Foundation object
34
+ // Examples: Foundation.Reveal, Foundation.OffCanvas
35
+ var className = (name || functionName(plugin));
36
+ // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin
37
+ // Examples: data-reveal, data-off-canvas
38
+ var attrName = hyphenate(className);
39
+
40
+ // Add to the Foundation object and the plugins list (for reflowing)
41
+ this._plugins[attrName] = this[className] = plugin;
42
+ },
43
+ /**
44
+ * @function
45
+ * Populates the _uuids array with pointers to each individual plugin instance.
46
+ * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.
47
+ * Also fires the initialization event for each plugin, consolidating repetitive code.
48
+ * @param {Object} plugin - an instance of a plugin, usually `this` in context.
49
+ * @param {String} name - the name of the plugin, passed as a camelCased string.
50
+ * @fires Plugin#init
51
+ */
52
+ registerPlugin: function(plugin, name){
53
+ var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();
54
+ plugin.uuid = this.GetYoDigits(6, pluginName);
55
+
56
+ if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }
57
+ if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }
58
+ /**
59
+ * Fires when the plugin has initialized.
60
+ * @event Plugin#init
61
+ */
62
+ plugin.$element.trigger(`init.zf.${pluginName}`);
63
+
64
+ this._uuids.push(plugin.uuid);
65
+
66
+ return;
67
+ },
68
+ /**
69
+ * @function
70
+ * Removes the plugins uuid from the _uuids array.
71
+ * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.
72
+ * Also fires the destroyed event for the plugin, consolidating repetitive code.
73
+ * @param {Object} plugin - an instance of a plugin, usually `this` in context.
74
+ * @fires Plugin#destroyed
75
+ */
76
+ unregisterPlugin: function(plugin){
77
+ var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));
78
+
79
+ this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);
80
+ plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')
81
+ /**
82
+ * Fires when the plugin has been destroyed.
83
+ * @event Plugin#destroyed
84
+ */
85
+ .trigger(`destroyed.zf.${pluginName}`);
86
+ for(var prop in plugin){
87
+ plugin[prop] = null;//clean up script to prep for garbage collection.
88
+ }
89
+ return;
90
+ },
91
+
92
+ /**
93
+ * @function
94
+ * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.
95
+ * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`
96
+ * @default If no argument is passed, reflow all currently active plugins.
97
+ */
98
+ reInit: function(plugins){
99
+ var isJQ = plugins instanceof $;
100
+ try{
101
+ if(isJQ){
102
+ plugins.each(function(){
103
+ $(this).data('zfPlugin')._init();
104
+ });
105
+ }else{
106
+ var type = typeof plugins,
107
+ _this = this,
108
+ fns = {
109
+ 'object': function(plgs){
110
+ plgs.forEach(function(p){
111
+ p = hyphenate(p);
112
+ $('[data-'+ p +']').foundation('_init');
113
+ });
114
+ },
115
+ 'string': function(){
116
+ plugins = hyphenate(plugins);
117
+ $('[data-'+ plugins +']').foundation('_init');
118
+ },
119
+ 'undefined': function(){
120
+ this['object'](Object.keys(_this._plugins));
121
+ }
122
+ };
123
+ fns[type](plugins);
124
+ }
125
+ }catch(err){
126
+ console.error(err);
127
+ }finally{
128
+ return plugins;
129
+ }
130
+ },
131
+
132
+ /**
133
+ * returns a random base-36 uid with namespacing
134
+ * @function
135
+ * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.
136
+ * @param {String} namespace - name of plugin to be incorporated in uid, optional.
137
+ * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.
138
+ * @returns {String} - unique id
139
+ */
140
+ GetYoDigits: function(length, namespace){
141
+ length = length || 6;
142
+ return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1) + (namespace ? `-${namespace}` : '');
143
+ },
144
+ /**
145
+ * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.
146
+ * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.
147
+ * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.
148
+ */
149
+ reflow: function(elem, plugins) {
150
+
151
+ // If plugins is undefined, just grab everything
152
+ if (typeof plugins === 'undefined') {
153
+ plugins = Object.keys(this._plugins);
154
+ }
155
+ // If plugins is a string, convert it to an array with one item
156
+ else if (typeof plugins === 'string') {
157
+ plugins = [plugins];
158
+ }
159
+
160
+ var _this = this;
161
+
162
+ // Iterate through each plugin
163
+ $.each(plugins, function(i, name) {
164
+ // Get the current plugin
165
+ var plugin = _this._plugins[name];
166
+
167
+ // Localize the search to all elements inside elem, as well as elem itself, unless elem === document
168
+ var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']');
169
+
170
+ // For each plugin found, initialize it
171
+ $elem.each(function() {
172
+ var $el = $(this),
173
+ opts = {};
174
+ // Don't double-dip on plugins
175
+ if ($el.data('zfPlugin')) {
176
+ console.warn("Tried to initialize "+name+" on an element that already has a Foundation plugin.");
177
+ return;
178
+ }
179
+
180
+ if($el.attr('data-options')){
181
+ var thing = $el.attr('data-options').split(';').forEach(function(e, i){
182
+ var opt = e.split(':').map(function(el){ return el.trim(); });
183
+ if(opt[0]) opts[opt[0]] = parseValue(opt[1]);
184
+ });
185
+ }
186
+ try{
187
+ $el.data('zfPlugin', new plugin($(this), opts));
188
+ }catch(er){
189
+ console.error(er);
190
+ }finally{
191
+ return;
192
+ }
193
+ });
194
+ });
195
+ },
196
+ getFnName: functionName,
197
+ transitionend: function($elem){
198
+ var transitions = {
199
+ 'transition': 'transitionend',
200
+ 'WebkitTransition': 'webkitTransitionEnd',
201
+ 'MozTransition': 'transitionend',
202
+ 'OTransition': 'otransitionend'
203
+ };
204
+ var elem = document.createElement('div'),
205
+ end;
206
+
207
+ for (var t in transitions){
208
+ if (typeof elem.style[t] !== 'undefined'){
209
+ end = transitions[t];
210
+ }
211
+ }
212
+ if(end){
213
+ return end;
214
+ }else{
215
+ end = setTimeout(function(){
216
+ $elem.triggerHandler('transitionend', [$elem]);
217
+ }, 1);
218
+ return 'transitionend';
219
+ }
220
+ }
221
+ };
222
+
223
+ Foundation.util = {
224
+ /**
225
+ * Function for applying a debounce effect to a function call.
226
+ * @function
227
+ * @param {Function} func - Function to be called at end of timeout.
228
+ * @param {Number} delay - Time in ms to delay the call of `func`.
229
+ * @returns function
230
+ */
231
+ throttle: function (func, delay) {
232
+ var timer = null;
233
+
234
+ return function () {
235
+ var context = this, args = arguments;
236
+
237
+ if (timer === null) {
238
+ timer = setTimeout(function () {
239
+ func.apply(context, args);
240
+ timer = null;
241
+ }, delay);
242
+ }
243
+ };
244
+ }
245
+ };
246
+
247
+ // TODO: consider not making this a jQuery function
248
+ // TODO: need way to reflow vs. re-initialize
249
+ /**
250
+ * The Foundation jQuery method.
251
+ * @param {String|Array} method - An action to perform on the current jQuery object.
252
+ */
253
+ var foundation = function(method) {
254
+ var type = typeof method,
255
+ $meta = $('meta.foundation-mq'),
256
+ $noJS = $('.no-js');
257
+
258
+ if(!$meta.length){
259
+ $('<meta class="foundation-mq">').appendTo(document.head);
260
+ }
261
+ if($noJS.length){
262
+ $noJS.removeClass('no-js');
263
+ }
264
+
265
+ if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.
266
+ Foundation.MediaQuery._init();
267
+ Foundation.reflow(this);
268
+ }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins
269
+ var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary
270
+ var plugClass = this.data('zfPlugin');//determine the class of plugin
271
+
272
+ if(plugClass !== undefined && plugClass[method] !== undefined){//make sure both the class and method exist
273
+ if(this.length === 1){//if there's only one, call it directly.
274
+ plugClass[method].apply(plugClass, args);
275
+ }else{
276
+ this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each
277
+ plugClass[method].apply($(el).data('zfPlugin'), args);
278
+ });
279
+ }
280
+ }else{//error for no class or no method
281
+ throw new ReferenceError("We're sorry, '" + method + "' is not an available method for " + (plugClass ? functionName(plugClass) : 'this element') + '.');
282
+ }
283
+ }else{//error for invalid argument type
284
+ throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);
285
+ }
286
+ return this;
287
+ };
288
+
289
+ window.Foundation = Foundation;
290
+ $.fn.foundation = foundation;
291
+
292
+ // Polyfill for requestAnimationFrame
293
+ (function() {
294
+ if (!Date.now || !window.Date.now)
295
+ window.Date.now = Date.now = function() { return new Date().getTime(); };
296
+
297
+ var vendors = ['webkit', 'moz'];
298
+ for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
299
+ var vp = vendors[i];
300
+ window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];
301
+ window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']
302
+ || window[vp+'CancelRequestAnimationFrame']);
303
+ }
304
+ if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)
305
+ || !window.requestAnimationFrame || !window.cancelAnimationFrame) {
306
+ var lastTime = 0;
307
+ window.requestAnimationFrame = function(callback) {
308
+ var now = Date.now();
309
+ var nextTime = Math.max(lastTime + 16, now);
310
+ return setTimeout(function() { callback(lastTime = nextTime); },
311
+ nextTime - now);
312
+ };
313
+ window.cancelAnimationFrame = clearTimeout;
314
+ }
315
+ /**
316
+ * Polyfill for performance.now, required by rAF
317
+ */
318
+ if(!window.performance || !window.performance.now){
319
+ window.performance = {
320
+ start: Date.now(),
321
+ now: function(){ return Date.now() - this.start; }
322
+ };
323
+ }
324
+ })();
325
+ if (!Function.prototype.bind) {
326
+ Function.prototype.bind = function(oThis) {
327
+ if (typeof this !== 'function') {
328
+ // closest thing possible to the ECMAScript 5
329
+ // internal IsCallable function
330
+ throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
331
+ }
332
+
333
+ var aArgs = Array.prototype.slice.call(arguments, 1),
334
+ fToBind = this,
335
+ fNOP = function() {},
336
+ fBound = function() {
337
+ return fToBind.apply(this instanceof fNOP
338
+ ? this
339
+ : oThis,
340
+ aArgs.concat(Array.prototype.slice.call(arguments)));
341
+ };
342
+
343
+ if (this.prototype) {
344
+ // native functions don't have a prototype
345
+ fNOP.prototype = this.prototype;
346
+ }
347
+ fBound.prototype = new fNOP();
348
+
349
+ return fBound;
350
+ };
351
+ }
352
+ // Polyfill to get the name of a function in IE9
353
+ function functionName(fn) {
354
+ if (Function.prototype.name === undefined) {
355
+ var funcNameRegex = /function\s([^(]{1,})\(/;
356
+ var results = (funcNameRegex).exec((fn).toString());
357
+ return (results && results.length > 1) ? results[1].trim() : "";
358
+ }
359
+ else if (fn.prototype === undefined) {
360
+ return fn.constructor.name;
361
+ }
362
+ else {
363
+ return fn.prototype.constructor.name;
364
+ }
365
+ }
366
+ function parseValue(str){
367
+ if ('true' === str) return true;
368
+ else if ('false' === str) return false;
369
+ else if (!isNaN(str * 1)) return parseFloat(str);
370
+ return str;
371
+ }
372
+ // Convert PascalCase to kebab-case
373
+ // Thank you: http://stackoverflow.com/a/8955580
374
+ function hyphenate(str) {
375
+ return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
376
+ }
377
+
378
+ }(jQuery);
@@ -0,0 +1,518 @@
1
+ 'use strict';
2
+
3
+ !function($) {
4
+
5
+ /**
6
+ * Drilldown module.
7
+ * @module foundation.drilldown
8
+ * @requires foundation.util.keyboard
9
+ * @requires foundation.util.motion
10
+ * @requires foundation.util.nest
11
+ */
12
+
13
+ class Drilldown {
14
+ /**
15
+ * Creates a new instance of a drilldown menu.
16
+ * @class
17
+ * @param {jQuery} element - jQuery object to make into an accordion menu.
18
+ * @param {Object} options - Overrides to the default plugin settings.
19
+ */
20
+ constructor(element, options) {
21
+ this.$element = element;
22
+ this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);
23
+
24
+ Foundation.Nest.Feather(this.$element, 'drilldown');
25
+
26
+ this._init();
27
+
28
+ Foundation.registerPlugin(this, 'Drilldown');
29
+ Foundation.Keyboard.register('Drilldown', {
30
+ 'ENTER': 'open',
31
+ 'SPACE': 'open',
32
+ 'ARROW_RIGHT': 'next',
33
+ 'ARROW_UP': 'up',
34
+ 'ARROW_DOWN': 'down',
35
+ 'ARROW_LEFT': 'previous',
36
+ 'ESCAPE': 'close',
37
+ 'TAB': 'down',
38
+ 'SHIFT_TAB': 'up'
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Initializes the drilldown by creating jQuery collections of elements
44
+ * @private
45
+ */
46
+ _init() {
47
+ this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');
48
+ this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]');
49
+ this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'menuitem').find('a');
50
+ this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || Foundation.GetYoDigits(6, 'drilldown')));
51
+
52
+ this._prepareMenu();
53
+ this._registerEvents();
54
+
55
+ this._keyboardEvents();
56
+ }
57
+
58
+ /**
59
+ * prepares drilldown menu by setting attributes to links and elements
60
+ * sets a min height to prevent content jumping
61
+ * wraps the element if not already wrapped
62
+ * @private
63
+ * @function
64
+ */
65
+ _prepareMenu() {
66
+ var _this = this;
67
+ // if(!this.options.holdOpen){
68
+ // this._menuLinkEvents();
69
+ // }
70
+ this.$submenuAnchors.each(function(){
71
+ var $link = $(this);
72
+ var $sub = $link.parent();
73
+ if(_this.options.parentLink){
74
+ $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menu-item"></li>');
75
+ }
76
+ $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);
77
+ $link.children('[data-submenu]')
78
+ .attr({
79
+ 'aria-hidden': true,
80
+ 'tabindex': 0,
81
+ 'role': 'menu'
82
+ });
83
+ _this._events($link);
84
+ });
85
+ this.$submenus.each(function(){
86
+ var $menu = $(this),
87
+ $back = $menu.find('.js-drilldown-back');
88
+ if(!$back.length){
89
+ switch (_this.options.backButtonPosition) {
90
+ case "bottom":
91
+ $menu.append(_this.options.backButton);
92
+ break;
93
+ case "top":
94
+ $menu.prepend(_this.options.backButton);
95
+ break;
96
+ default:
97
+ console.error("Unsupported backButtonPosition value '" + _this.options.backButtonPosition + "'");
98
+ }
99
+ }
100
+ _this._back($menu);
101
+ });
102
+
103
+ this.$submenus.addClass('invisible');
104
+ if(!this.options.autoHeight) {
105
+ this.$submenus.addClass('drilldown-submenu-cover-previous');
106
+ }
107
+
108
+ // create a wrapper on element if it doesn't exist.
109
+ if(!this.$element.parent().hasClass('is-drilldown')){
110
+ this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');
111
+ if(this.options.animateHeight) this.$wrapper.addClass('animate-height');
112
+ this.$element.wrap(this.$wrapper);
113
+ }
114
+ // set wrapper
115
+ this.$wrapper = this.$element.parent();
116
+ this.$wrapper.css(this._getMaxDims());
117
+ }
118
+
119
+ _resize() {
120
+ this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});
121
+ // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths
122
+ this.$wrapper.css(this._getMaxDims());
123
+ }
124
+
125
+ /**
126
+ * Adds event handlers to elements in the menu.
127
+ * @function
128
+ * @private
129
+ * @param {jQuery} $elem - the current menu item to add handlers to.
130
+ */
131
+ _events($elem) {
132
+ var _this = this;
133
+
134
+ $elem.off('click.zf.drilldown')
135
+ .on('click.zf.drilldown', function(e){
136
+ if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){
137
+ e.stopImmediatePropagation();
138
+ e.preventDefault();
139
+ }
140
+
141
+ // if(e.target !== e.currentTarget.firstElementChild){
142
+ // return false;
143
+ // }
144
+ _this._show($elem.parent('li'));
145
+
146
+ if(_this.options.closeOnClick){
147
+ var $body = $('body');
148
+ $body.off('.zf.drilldown').on('click.zf.drilldown', function(e){
149
+ if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) { return; }
150
+ e.preventDefault();
151
+ _this._hideAll();
152
+ $body.off('.zf.drilldown');
153
+ });
154
+ }
155
+ });
156
+ this.$element.on('mutateme.zf.trigger', this._resize.bind(this));
157
+ }
158
+
159
+ /**
160
+ * Adds event handlers to the menu element.
161
+ * @function
162
+ * @private
163
+ */
164
+ _registerEvents() {
165
+ if(this.options.scrollTop){
166
+ this._bindHandler = this._scrollTop.bind(this);
167
+ this.$element.on('open.zf.drilldown hide.zf.drilldown closed.zf.drilldown',this._bindHandler);
168
+ }
169
+ }
170
+
171
+ /**
172
+ * Scroll to Top of Element or data-scroll-top-element
173
+ * @function
174
+ * @fires Drilldown#scrollme
175
+ */
176
+ _scrollTop() {
177
+ var _this = this;
178
+ var $scrollTopElement = _this.options.scrollTopElement!=''?$(_this.options.scrollTopElement):_this.$element,
179
+ scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset);
180
+ $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){
181
+ /**
182
+ * Fires after the menu has scrolled
183
+ * @event Drilldown#scrollme
184
+ */
185
+ if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');
186
+ });
187
+ }
188
+
189
+ /**
190
+ * Adds keydown event listener to `li`'s in the menu.
191
+ * @private
192
+ */
193
+ _keyboardEvents() {
194
+ var _this = this;
195
+
196
+ this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){
197
+ var $element = $(this),
198
+ $elements = $element.parent('li').parent('ul').children('li').children('a'),
199
+ $prevElement,
200
+ $nextElement;
201
+
202
+ $elements.each(function(i) {
203
+ if ($(this).is($element)) {
204
+ $prevElement = $elements.eq(Math.max(0, i-1));
205
+ $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));
206
+ return;
207
+ }
208
+ });
209
+
210
+ Foundation.Keyboard.handleKey(e, 'Drilldown', {
211
+ next: function() {
212
+ if ($element.is(_this.$submenuAnchors)) {
213
+ _this._show($element.parent('li'));
214
+ $element.parent('li').one(Foundation.transitionend($element), function(){
215
+ $element.parent('li').find('ul li a').filter(_this.$menuItems).first().focus();
216
+ });
217
+ return true;
218
+ }
219
+ },
220
+ previous: function() {
221
+ _this._hide($element.parent('li').parent('ul'));
222
+ $element.parent('li').parent('ul').one(Foundation.transitionend($element), function(){
223
+ setTimeout(function() {
224
+ $element.parent('li').parent('ul').parent('li').children('a').first().focus();
225
+ }, 1);
226
+ });
227
+ return true;
228
+ },
229
+ up: function() {
230
+ $prevElement.focus();
231
+ // Don't tap focus on first element in root ul
232
+ return !$element.is(_this.$element.find('> li:first-child > a'));
233
+ },
234
+ down: function() {
235
+ $nextElement.focus();
236
+ // Don't tap focus on last element in root ul
237
+ return !$element.is(_this.$element.find('> li:last-child > a'));
238
+ },
239
+ close: function() {
240
+ // Don't close on element in root ul
241
+ if (!$element.is(_this.$element.find('> li > a'))) {
242
+ _this._hide($element.parent().parent());
243
+ $element.parent().parent().siblings('a').focus();
244
+ }
245
+ },
246
+ open: function() {
247
+ if (!$element.is(_this.$menuItems)) { // not menu item means back button
248
+ _this._hide($element.parent('li').parent('ul'));
249
+ $element.parent('li').parent('ul').one(Foundation.transitionend($element), function(){
250
+ setTimeout(function() {
251
+ $element.parent('li').parent('ul').parent('li').children('a').first().focus();
252
+ }, 1);
253
+ });
254
+ return true;
255
+ } else if ($element.is(_this.$submenuAnchors)) {
256
+ _this._show($element.parent('li'));
257
+ $element.parent('li').one(Foundation.transitionend($element), function(){
258
+ $element.parent('li').find('ul li a').filter(_this.$menuItems).first().focus();
259
+ });
260
+ return true;
261
+ }
262
+ },
263
+ handled: function(preventDefault) {
264
+ if (preventDefault) {
265
+ e.preventDefault();
266
+ }
267
+ e.stopImmediatePropagation();
268
+ }
269
+ });
270
+ }); // end keyboardAccess
271
+ }
272
+
273
+ /**
274
+ * Closes all open elements, and returns to root menu.
275
+ * @function
276
+ * @fires Drilldown#closed
277
+ */
278
+ _hideAll() {
279
+ var $elem = this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');
280
+ if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});
281
+ $elem.one(Foundation.transitionend($elem), function(e){
282
+ $elem.removeClass('is-active is-closing');
283
+ });
284
+ /**
285
+ * Fires when the menu is fully closed.
286
+ * @event Drilldown#closed
287
+ */
288
+ this.$element.trigger('closed.zf.drilldown');
289
+ }
290
+
291
+ /**
292
+ * Adds event listener for each `back` button, and closes open menus.
293
+ * @function
294
+ * @fires Drilldown#back
295
+ * @param {jQuery} $elem - the current sub-menu to add `back` event.
296
+ */
297
+ _back($elem) {
298
+ var _this = this;
299
+ $elem.off('click.zf.drilldown');
300
+ $elem.children('.js-drilldown-back')
301
+ .on('click.zf.drilldown', function(e){
302
+ e.stopImmediatePropagation();
303
+ // console.log('mouseup on back');
304
+ _this._hide($elem);
305
+
306
+ // If there is a parent submenu, call show
307
+ let parentSubMenu = $elem.parent('li').parent('ul').parent('li');
308
+ if (parentSubMenu.length) {
309
+ _this._show(parentSubMenu);
310
+ }
311
+ });
312
+ }
313
+
314
+ /**
315
+ * Adds event listener to menu items w/o submenus to close open menus on click.
316
+ * @function
317
+ * @private
318
+ */
319
+ _menuLinkEvents() {
320
+ var _this = this;
321
+ this.$menuItems.not('.is-drilldown-submenu-parent')
322
+ .off('click.zf.drilldown')
323
+ .on('click.zf.drilldown', function(e){
324
+ // e.stopImmediatePropagation();
325
+ setTimeout(function(){
326
+ _this._hideAll();
327
+ }, 0);
328
+ });
329
+ }
330
+
331
+ /**
332
+ * Opens a submenu.
333
+ * @function
334
+ * @fires Drilldown#open
335
+ * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.
336
+ */
337
+ _show($elem) {
338
+ if(this.options.autoHeight) this.$wrapper.css({height:$elem.children('[data-submenu]').data('calcHeight')});
339
+ $elem.attr('aria-expanded', true);
340
+ $elem.children('[data-submenu]').addClass('is-active').removeClass('invisible').attr('aria-hidden', false);
341
+ /**
342
+ * Fires when the submenu has opened.
343
+ * @event Drilldown#open
344
+ */
345
+ this.$element.trigger('open.zf.drilldown', [$elem]);
346
+ };
347
+
348
+ /**
349
+ * Hides a submenu
350
+ * @function
351
+ * @fires Drilldown#hide
352
+ * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.
353
+ */
354
+ _hide($elem) {
355
+ if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});
356
+ var _this = this;
357
+ $elem.parent('li').attr('aria-expanded', false);
358
+ $elem.attr('aria-hidden', true).addClass('is-closing')
359
+ $elem.addClass('is-closing')
360
+ .one(Foundation.transitionend($elem), function(){
361
+ $elem.removeClass('is-active is-closing');
362
+ $elem.blur().addClass('invisible');
363
+ });
364
+ /**
365
+ * Fires when the submenu has closed.
366
+ * @event Drilldown#hide
367
+ */
368
+ $elem.trigger('hide.zf.drilldown', [$elem]);
369
+ }
370
+
371
+ /**
372
+ * Iterates through the nested menus to calculate the min-height, and max-width for the menu.
373
+ * Prevents content jumping.
374
+ * @function
375
+ * @private
376
+ */
377
+ _getMaxDims() {
378
+ var maxHeight = 0, result = {}, _this = this;
379
+ this.$submenus.add(this.$element).each(function(){
380
+ var numOfElems = $(this).children('li').length;
381
+ var height = Foundation.Box.GetDimensions(this).height;
382
+ maxHeight = height > maxHeight ? height : maxHeight;
383
+ if(_this.options.autoHeight) {
384
+ $(this).data('calcHeight',height);
385
+ if (!$(this).hasClass('is-drilldown-submenu')) result['height'] = height;
386
+ }
387
+ });
388
+
389
+ if(!this.options.autoHeight) result['min-height'] = `${maxHeight}px`;
390
+
391
+ result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;
392
+
393
+ return result;
394
+ }
395
+
396
+ /**
397
+ * Destroys the Drilldown Menu
398
+ * @function
399
+ */
400
+ destroy() {
401
+ if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);
402
+ this._hideAll();
403
+ this.$element.off('mutateme.zf.trigger');
404
+ Foundation.Nest.Burn(this.$element, 'drilldown');
405
+ this.$element.unwrap()
406
+ .find('.js-drilldown-back, .is-submenu-parent-item').remove()
407
+ .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu')
408
+ .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');
409
+ this.$submenuAnchors.each(function() {
410
+ $(this).off('.zf.drilldown');
411
+ });
412
+
413
+ this.$submenus.removeClass('drilldown-submenu-cover-previous');
414
+
415
+ this.$element.find('a').each(function(){
416
+ var $link = $(this);
417
+ $link.removeAttr('tabindex');
418
+ if($link.data('savedHref')){
419
+ $link.attr('href', $link.data('savedHref')).removeData('savedHref');
420
+ }else{ return; }
421
+ });
422
+ Foundation.unregisterPlugin(this);
423
+ };
424
+ }
425
+
426
+ Drilldown.defaults = {
427
+ /**
428
+ * Markup used for JS generated back button. Prepended or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\`) if copy and pasting.
429
+ * @option
430
+ * @type {string}
431
+ * @default '<li class="js-drilldown-back"><a tabindex="0">Back</a></li>'
432
+ */
433
+ backButton: '<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',
434
+ /**
435
+ * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.
436
+ * @option
437
+ * @type {string}
438
+ * @default top
439
+ */
440
+ backButtonPosition: 'top',
441
+ /**
442
+ * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\`) if copy and pasting.
443
+ * @option
444
+ * @type {string}
445
+ * @default '<div></div>'
446
+ */
447
+ wrapper: '<div></div>',
448
+ /**
449
+ * Adds the parent link to the submenu.
450
+ * @option
451
+ * @type {boolean}
452
+ * @default false
453
+ */
454
+ parentLink: false,
455
+ /**
456
+ * Allow the menu to return to root list on body click.
457
+ * @option
458
+ * @type {boolean}
459
+ * @default false
460
+ */
461
+ closeOnClick: false,
462
+ /**
463
+ * Allow the menu to auto adjust height.
464
+ * @option
465
+ * @type {boolean}
466
+ * @default false
467
+ */
468
+ autoHeight: false,
469
+ /**
470
+ * Animate the auto adjust height.
471
+ * @option
472
+ * @type {boolean}
473
+ * @default false
474
+ */
475
+ animateHeight: false,
476
+ /**
477
+ * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button
478
+ * @option
479
+ * @type {boolean}
480
+ * @default false
481
+ */
482
+ scrollTop: false,
483
+ /**
484
+ * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken
485
+ * @option
486
+ * @type {string}
487
+ * @default ''
488
+ */
489
+ scrollTopElement: '',
490
+ /**
491
+ * ScrollTop offset
492
+ * @option
493
+ * @type {number}
494
+ * @default 0
495
+ */
496
+ scrollTopOffset: 0,
497
+ /**
498
+ * Scroll animation duration
499
+ * @option
500
+ * @type {number}
501
+ * @default 500
502
+ */
503
+ animationDuration: 500,
504
+ /**
505
+ * Scroll animation easing. Can be `'swing'` or `'linear'`.
506
+ * @option
507
+ * @type {string}
508
+ * @see {@link https://api.jquery.com/animate|JQuery animate}
509
+ * @default 'swing'
510
+ */
511
+ animationEasing: 'swing'
512
+ // holdOpen: false
513
+ };
514
+
515
+ // Window exports
516
+ Foundation.plugin(Drilldown, 'Drilldown');
517
+
518
+ }(jQuery);