undercase 0.2.29

Sign up to get free protection for your applications and to get access to all the features.
Files changed (407) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +70 -0
  3. data/Rakefile +21 -0
  4. data/app/assets/fonts/FontAwesome/FontAwesome.otf +0 -0
  5. data/app/assets/fonts/FontAwesome/fontawesome-webfont.eot +0 -0
  6. data/app/assets/fonts/FontAwesome/fontawesome-webfont.svg +414 -0
  7. data/app/assets/fonts/FontAwesome/fontawesome-webfont.ttf +0 -0
  8. data/app/assets/fonts/FontAwesome/fontawesome-webfont.woff +0 -0
  9. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-black-webfont.eot +0 -0
  10. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-black-webfont.svg +914 -0
  11. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-black-webfont.ttf +0 -0
  12. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-black-webfont.woff +0 -0
  13. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-blackit-webfont.eot +0 -0
  14. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-blackit-webfont.svg +812 -0
  15. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-blackit-webfont.ttf +0 -0
  16. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-blackit-webfont.woff +0 -0
  17. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-bold-webfont.eot +0 -0
  18. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-bold-webfont.svg +955 -0
  19. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-bold-webfont.ttf +0 -0
  20. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-bold-webfont.woff +0 -0
  21. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-boldit-webfont.eot +0 -0
  22. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-boldit-webfont.svg +831 -0
  23. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-boldit-webfont.ttf +0 -0
  24. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-boldit-webfont.woff +0 -0
  25. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralight-webfont.eot +0 -0
  26. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralight-webfont.svg +905 -0
  27. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralight-webfont.ttf +0 -0
  28. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralight-webfont.woff +0 -0
  29. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralightit-webfont.eot +0 -0
  30. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralightit-webfont.svg +828 -0
  31. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralightit-webfont.ttf +0 -0
  32. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-extralightit-webfont.woff +0 -0
  33. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-it-webfont.eot +0 -0
  34. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-it-webfont.svg +843 -0
  35. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-it-webfont.ttf +0 -0
  36. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-it-webfont.woff +0 -0
  37. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  38. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +904 -0
  39. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  40. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  41. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-lightit-webfont.eot +0 -0
  42. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-lightit-webfont.svg +830 -0
  43. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-lightit-webfont.ttf +0 -0
  44. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-lightit-webfont.woff +0 -0
  45. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  46. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +978 -0
  47. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  48. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  49. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semibold-webfont.eot +0 -0
  50. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semibold-webfont.svg +968 -0
  51. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semibold-webfont.ttf +0 -0
  52. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semibold-webfont.woff +0 -0
  53. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semiboldit-webfont.eot +0 -0
  54. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semiboldit-webfont.svg +838 -0
  55. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semiboldit-webfont.ttf +0 -0
  56. data/app/assets/fonts/Source-Sans-Pro/sourcesanspro-semiboldit-webfont.woff +0 -0
  57. data/app/assets/fonts/Undercase-Icons/Undercase-Icons.eot +0 -0
  58. data/app/assets/fonts/Undercase-Icons/Undercase-Icons.svg +72 -0
  59. data/app/assets/fonts/Undercase-Icons/Undercase-Icons.ttf +0 -0
  60. data/app/assets/fonts/Undercase-Icons/Undercase-Icons.woff +0 -0
  61. data/app/assets/images/avatar_male_small.png +0 -0
  62. data/app/assets/images/backgrounds/checkerboard_tile.png +0 -0
  63. data/app/assets/images/icons/calendar_datepicker.svg +18 -0
  64. data/app/assets/images/icons/checkbox-selected.svg +17 -0
  65. data/app/assets/images/icons/checkbox-unselected.svg +12 -0
  66. data/app/assets/images/icons/double-arrow-left.svg +13 -0
  67. data/app/assets/images/icons/double-arrow-right.svg +13 -0
  68. data/app/assets/images/icons/focus-child.svg +14 -0
  69. data/app/assets/images/icons/master-profile.svg +11 -0
  70. data/app/assets/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  71. data/app/assets/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  72. data/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  73. data/app/assets/images/ui-bg_flat_100_b8b8b8_40x100.png +0 -0
  74. data/app/assets/images/ui-bg_flat_10_000000_40x100.png +0 -0
  75. data/app/assets/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  76. data/app/assets/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  77. data/app/assets/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  78. data/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  79. data/app/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  80. data/app/assets/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  81. data/app/assets/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  82. data/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  83. data/app/assets/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  84. data/app/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  85. data/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  86. data/app/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  87. data/app/assets/images/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  88. data/app/assets/images/ui-icons_222222_256x240.png +0 -0
  89. data/app/assets/images/ui-icons_228ef1_256x240.png +0 -0
  90. data/app/assets/images/ui-icons_2e83ff_256x240.png +0 -0
  91. data/app/assets/images/ui-icons_454545_256x240.png +0 -0
  92. data/app/assets/images/ui-icons_888888_256x240.png +0 -0
  93. data/app/assets/images/ui-icons_cd0a0a_256x240.png +0 -0
  94. data/app/assets/images/ui-icons_ef8c08_256x240.png +0 -0
  95. data/app/assets/images/ui-icons_ffd27a_256x240.png +0 -0
  96. data/app/assets/images/ui-icons_ffffff_256x240.png +0 -0
  97. data/app/assets/images/undercase/undercase_gem_logo.png +0 -0
  98. data/app/assets/javascripts/undercase/index.js +19 -0
  99. data/app/assets/javascripts/undercase/lib/BreakpointTell.js +9 -0
  100. data/app/assets/javascripts/undercase/lib/timezone.js +28 -0
  101. data/app/assets/javascripts/undercase/patterns/Filter.js +75 -0
  102. data/app/assets/javascripts/undercase/patterns/FlexibleSearchMenu.js +64 -0
  103. data/app/assets/javascripts/undercase/patterns/ToggleNavigationSearch.js +60 -0
  104. data/app/assets/javascripts/undercase/patterns/datepicker.js +36 -0
  105. data/app/assets/javascripts/undercase/patterns/expando.js +39 -0
  106. data/app/assets/javascripts/undercase/patterns/modal.js +60 -0
  107. data/app/assets/javascripts/undercase/patterns/tabs.js +26 -0
  108. data/app/assets/javascripts/undercase/patterns/timepicker.js +5 -0
  109. data/app/assets/javascripts/undercase/popover.js +26 -0
  110. data/app/assets/javascripts/undercase/presenter.js +55 -0
  111. data/app/assets/javascripts/undercase/show_code.js +35 -0
  112. data/app/assets/javascripts/undercase/vendor/date.js +879 -0
  113. data/app/assets/javascripts/undercase/vendor/jquery-extensions/jquery.calendrical.js +517 -0
  114. data/app/assets/javascripts/undercase/vendor/jquery-ui-1.10.3.js +14972 -0
  115. data/app/assets/javascripts/undercase/vendor/modernizr.custom.14960.js +764 -0
  116. data/app/assets/javascripts/undercase/vendor/underscore.js +1189 -0
  117. data/app/assets/stylesheets/undercase/libraries/_all.scss +38 -0
  118. data/app/assets/stylesheets/undercase/libraries/_borders.scss +20 -0
  119. data/app/assets/stylesheets/undercase/libraries/_colors.scss +41 -0
  120. data/app/assets/stylesheets/undercase/libraries/_constants.scss +76 -0
  121. data/app/assets/stylesheets/undercase/libraries/_groundwork_settings.scss +351 -0
  122. data/app/assets/stylesheets/undercase/libraries/_icon_codes.scss +369 -0
  123. data/app/assets/stylesheets/undercase/libraries/_mixins.scss +49 -0
  124. data/app/assets/stylesheets/undercase/libraries/mixins/_button.scss +124 -0
  125. data/app/assets/stylesheets/undercase/libraries/mixins/_forms.scss +33 -0
  126. data/app/assets/stylesheets/undercase/libraries/mixins/_layout.scss +23 -0
  127. data/app/assets/stylesheets/undercase/libraries/mixins/_typography.scss +99 -0
  128. data/app/assets/stylesheets/undercase/patterns/_all.scss +32 -0
  129. data/app/assets/stylesheets/undercase/patterns/_borders.scss +89 -0
  130. data/app/assets/stylesheets/undercase/patterns/_box_helpers.scss +39 -0
  131. data/app/assets/stylesheets/undercase/patterns/_buttons.scss +110 -0
  132. data/app/assets/stylesheets/undercase/patterns/_cards.scss +36 -0
  133. data/app/assets/stylesheets/undercase/patterns/_chevrons.scss +98 -0
  134. data/app/assets/stylesheets/undercase/patterns/_colors.scss +34 -0
  135. data/app/assets/stylesheets/undercase/patterns/_content_with_toolbar.scss +23 -0
  136. data/app/assets/stylesheets/undercase/patterns/_dropdowns.scss +49 -0
  137. data/app/assets/stylesheets/undercase/patterns/_filters.scss +121 -0
  138. data/app/assets/stylesheets/undercase/patterns/_font_faces.scss +32 -0
  139. data/app/assets/stylesheets/undercase/patterns/_forms.scss +617 -0
  140. data/app/assets/stylesheets/undercase/patterns/_horizontal_rules.scss +5 -0
  141. data/app/assets/stylesheets/undercase/patterns/_icons.scss +4 -0
  142. data/app/assets/stylesheets/undercase/patterns/_inline_message.scss +36 -0
  143. data/app/assets/stylesheets/undercase/patterns/_layout.scss +57 -0
  144. data/app/assets/stylesheets/undercase/patterns/_length_of_time.scss +10 -0
  145. data/app/assets/stylesheets/undercase/patterns/_links.scss +96 -0
  146. data/app/assets/stylesheets/undercase/patterns/_lists.scss +84 -0
  147. data/app/assets/stylesheets/undercase/patterns/_media.scss +15 -0
  148. data/app/assets/stylesheets/undercase/patterns/_modals.scss +114 -0
  149. data/app/assets/stylesheets/undercase/patterns/_navigation.scss +224 -0
  150. data/app/assets/stylesheets/undercase/patterns/_pagination.scss +33 -0
  151. data/app/assets/stylesheets/undercase/patterns/_person_placard.scss +52 -0
  152. data/app/assets/stylesheets/undercase/patterns/_popovers.scss +12 -0
  153. data/app/assets/stylesheets/undercase/patterns/_quiz.scss +67 -0
  154. data/app/assets/stylesheets/undercase/patterns/_site.scss +95 -0
  155. data/app/assets/stylesheets/undercase/patterns/_spinners.scss +23 -0
  156. data/app/assets/stylesheets/undercase/patterns/_tables.scss +111 -0
  157. data/app/assets/stylesheets/undercase/patterns/_tabs.scss +56 -0
  158. data/app/assets/stylesheets/undercase/patterns/_typography.scss +231 -0
  159. data/app/assets/stylesheets/undercase/patterns/undercase_icons/glyphs.scss +28 -0
  160. data/app/assets/stylesheets/undercase/patterns_new_front_end/_all.scss +6 -0
  161. data/app/assets/stylesheets/undercase/patterns_new_front_end/_cards.scss +248 -0
  162. data/app/assets/stylesheets/undercase/patterns_new_front_end/_links.scss +10 -0
  163. data/app/assets/stylesheets/undercase/patterns_new_front_end/_warnings.scss +32 -0
  164. data/app/assets/stylesheets/undercase/vendor_static/_all.scss +12 -0
  165. data/app/assets/stylesheets/undercase/vendor_static/_calendrical.scss +105 -0
  166. data/app/assets/stylesheets/undercase/vendor_static/_icons.scss +422 -0
  167. data/app/assets/stylesheets/undercase/vendor_static/_jquery-ui-1.8.13.custom.scss +615 -0
  168. data/app/assets/stylesheets/undercase_frame/_dummy_site.scss +307 -0
  169. data/app/assets/stylesheets/undercase_frame/vendor/coderay.css +118 -0
  170. data/app/assets/stylesheets/undercase_frame_application.css.scss +18 -0
  171. data/app/assets/stylesheets/undercase_frame_vendor_static.scss +4 -0
  172. data/app/controllers/undercase/application_controller.rb +4 -0
  173. data/app/controllers/undercase/patterns_controller.rb +13 -0
  174. data/app/helpers/undercase/application_helper.rb +86 -0
  175. data/app/helpers/undercase/pattern_helper.rb +7 -0
  176. data/app/inputs/currency_input.rb +20 -0
  177. data/app/inputs/date_picker_input.rb +77 -0
  178. data/app/inputs/date_time_picker_input.rb +141 -0
  179. data/app/inputs/radio_as_accessible_input.rb +33 -0
  180. data/app/inputs/radio_with_clear_input.rb +41 -0
  181. data/app/models/dummy_form_object.rb +24 -0
  182. data/app/views/layouts/undercase/application.html.haml +49 -0
  183. data/app/views/undercase/patterns/_blue_dotted_link_caps.html.haml +2 -0
  184. data/app/views/undercase/patterns/_blue_link.html.haml +2 -0
  185. data/app/views/undercase/patterns/_blue_link_clean.html.haml +2 -0
  186. data/app/views/undercase/patterns/_cc_button_auto.html.haml +8 -0
  187. data/app/views/undercase/patterns/_cc_button_flat_blue.html.haml +2 -0
  188. data/app/views/undercase/patterns/_cc_button_flat_gray.html.haml +7 -0
  189. data/app/views/undercase/patterns/_cc_button_flat_gray_split.html.haml +4 -0
  190. data/app/views/undercase/patterns/_cc_button_flat_green.html.haml +2 -0
  191. data/app/views/undercase/patterns/_cc_button_gray.html.haml +1 -0
  192. data/app/views/undercase/patterns/_cc_button_icon.html.haml +2 -0
  193. data/app/views/undercase/patterns/_cc_button_wire_auto.html.haml +8 -0
  194. data/app/views/undercase/patterns/_cc_link_smartbar.html.haml +2 -0
  195. data/app/views/undercase/patterns/_chevrons.html.haml +38 -0
  196. data/app/views/undercase/patterns/_colors.html.haml +12 -0
  197. data/app/views/undercase/patterns/_content_with_toolbar.html.haml +6 -0
  198. data/app/views/undercase/patterns/_dropdown.html.haml +21 -0
  199. data/app/views/undercase/patterns/_filters.html.haml +210 -0
  200. data/app/views/undercase/patterns/_filters_show_only.html.haml +77 -0
  201. data/app/views/undercase/patterns/_gray_link.html.haml +2 -0
  202. data/app/views/undercase/patterns/_grid.html.haml +0 -0
  203. data/app/views/undercase/patterns/_icon_classes.html.haml +8 -0
  204. data/app/views/undercase/patterns/_icon_custom.html.haml +12 -0
  205. data/app/views/undercase/patterns/_inline_message.html.haml +5 -0
  206. data/app/views/undercase/patterns/_length_of_time.html.haml +12 -0
  207. data/app/views/undercase/patterns/_list_circle.html.haml +4 -0
  208. data/app/views/undercase/patterns/_list_disc.html.haml +4 -0
  209. data/app/views/undercase/patterns/_navigation.html.haml +40 -0
  210. data/app/views/undercase/patterns/_pagination.html.haml +17 -0
  211. data/app/views/undercase/patterns/_pattern.html.haml +27 -0
  212. data/app/views/undercase/patterns/_person_placard.html.haml +103 -0
  213. data/app/views/undercase/patterns/_popover.html.haml +9 -0
  214. data/app/views/undercase/patterns/_tables_mobile.html.haml +23 -0
  215. data/app/views/undercase/patterns/_tables_not_desktop.html.haml +21 -0
  216. data/app/views/undercase/patterns/_tables_small_mobile.html.haml +23 -0
  217. data/app/views/undercase/patterns/_tables_small_tablet.html.haml +25 -0
  218. data/app/views/undercase/patterns/_typography.html.haml +16 -0
  219. data/app/views/undercase/patterns/_typography_body_em.html.haml +1 -0
  220. data/app/views/undercase/patterns/_typography_body_p.html.haml +1 -0
  221. data/app/views/undercase/patterns/_typography_body_strong.html.haml +1 -0
  222. data/app/views/undercase/patterns/_typography_body_thin.html.haml +1 -0
  223. data/app/views/undercase/patterns/_typography_body_underline.html.haml +1 -0
  224. data/app/views/undercase/patterns/_typography_body_uppercase.html.haml +1 -0
  225. data/app/views/undercase/patterns/_typography_heading_1.html.haml +1 -0
  226. data/app/views/undercase/patterns/_typography_heading_2.html.haml +1 -0
  227. data/app/views/undercase/patterns/_typography_heading_3.html.haml +1 -0
  228. data/app/views/undercase/patterns/_typography_heading_4.html.haml +1 -0
  229. data/app/views/undercase/patterns/_typography_heading_thin.html.haml +1 -0
  230. data/app/views/undercase/patterns/_typography_links_general.html.haml +2 -0
  231. data/app/views/undercase/patterns/_typography_links_navigation.html.haml +2 -0
  232. data/app/views/undercase/patterns/_typography_links_page_banner.html.haml +2 -0
  233. data/app/views/undercase/patterns/_uc_borders_blue.html.haml +2 -0
  234. data/app/views/undercase/patterns/_uc_borders_gray.html.haml +2 -0
  235. data/app/views/undercase/patterns/_uc_borders_hover_blue.html.haml +3 -0
  236. data/app/views/undercase/patterns/_uc_borders_left.html.haml +4 -0
  237. data/app/views/undercase/patterns/_uc_borders_lighter_gray.html.haml +3 -0
  238. data/app/views/undercase/patterns/_uc_borders_middle_blue_2.html.haml +1 -0
  239. data/app/views/undercase/patterns/_uc_borders_middle_gray.html.haml +2 -0
  240. data/app/views/undercase/patterns/_uc_borders_yellow.html.haml +1 -0
  241. data/app/views/undercase/patterns/_uc_card.html.haml +40 -0
  242. data/app/views/undercase/patterns/_uc_dialog_loading.html.haml +2 -0
  243. data/app/views/undercase/patterns/_uc_errors.html.haml +1 -0
  244. data/app/views/undercase/patterns/_uc_forms_check_boxes.html.haml +7 -0
  245. data/app/views/undercase/patterns/_uc_forms_check_boxes_boolean.html.haml +20 -0
  246. data/app/views/undercase/patterns/_uc_forms_checkbutton.html.haml +14 -0
  247. data/app/views/undercase/patterns/_uc_forms_conditionally_required.html.haml +19 -0
  248. data/app/views/undercase/patterns/_uc_forms_currency_input.html.haml +7 -0
  249. data/app/views/undercase/patterns/_uc_forms_date_picker.html.haml +9 -0
  250. data/app/views/undercase/patterns/_uc_forms_date_time_picker.html.haml +9 -0
  251. data/app/views/undercase/patterns/_uc_forms_disabled_field.html.haml +8 -0
  252. data/app/views/undercase/patterns/_uc_forms_dropdown.html.haml +10 -0
  253. data/app/views/undercase/patterns/_uc_forms_dropdown_with_optgroups.html.haml +10 -0
  254. data/app/views/undercase/patterns/_uc_forms_full_name.html.haml +32 -0
  255. data/app/views/undercase/patterns/_uc_forms_grouped_inputs.html.haml +17 -0
  256. data/app/views/undercase/patterns/_uc_forms_large_field.html.haml +8 -0
  257. data/app/views/undercase/patterns/_uc_forms_medium_field.html.haml +8 -0
  258. data/app/views/undercase/patterns/_uc_forms_phone.html.haml +26 -0
  259. data/app/views/undercase/patterns/_uc_forms_radio_button_clear_link.html.haml +7 -0
  260. data/app/views/undercase/patterns/_uc_forms_radio_buttons.html.haml +7 -0
  261. data/app/views/undercase/patterns/_uc_forms_radio_buttons_breathe.html.haml +11 -0
  262. data/app/views/undercase/patterns/_uc_forms_radio_buttons_horizontal.html.haml +11 -0
  263. data/app/views/undercase/patterns/_uc_forms_search.html.haml +23 -0
  264. data/app/views/undercase/patterns/_uc_forms_short_name.html.haml +20 -0
  265. data/app/views/undercase/patterns/_uc_forms_small_field.html.haml +8 -0
  266. data/app/views/undercase/patterns/_uc_forms_textarea.html.haml +9 -0
  267. data/app/views/undercase/patterns/_uc_forms_tiny_field.html.haml +8 -0
  268. data/app/views/undercase/patterns/_uc_list_comma.html.haml +4 -0
  269. data/app/views/undercase/patterns/_uc_list_ordered_alpha.html.haml +12 -0
  270. data/app/views/undercase/patterns/_uc_list_ordered_decimal.html.haml +12 -0
  271. data/app/views/undercase/patterns/_uc_list_pipe.html.haml +4 -0
  272. data/app/views/undercase/patterns/_uc_media.html.haml +6 -0
  273. data/app/views/undercase/patterns/_uc_modal_basic.html.haml +28 -0
  274. data/app/views/undercase/patterns/_uc_modal_exception.html.haml +34 -0
  275. data/app/views/undercase/patterns/_uc_modal_with_linked.html.haml +37 -0
  276. data/app/views/undercase/patterns/_uc_quiz_questions.html.haml +12 -0
  277. data/app/views/undercase/patterns/_uc_tabs.html.haml +16 -0
  278. data/app/views/undercase/patterns/index.html.haml +48 -0
  279. data/app/views/undercase/patterns/show.html.haml +7 -0
  280. data/app/views/undercase/popups/_dropdown.html.haml +5 -0
  281. data/config/initializers/dotiw.rb +1 -0
  282. data/config/initializers/simple_form.rb +147 -0
  283. data/config/routes.rb +4 -0
  284. data/config/tddium.yml +17 -0
  285. data/config/undercase-icons-regular.yml +41 -0
  286. data/lib/tasks/undercase.rake +51 -0
  287. data/lib/undercase.rb +15 -0
  288. data/lib/undercase/categories.yml +12 -0
  289. data/lib/undercase/category.rb +20 -0
  290. data/lib/undercase/engine.rb +13 -0
  291. data/lib/undercase/pattern.rb +68 -0
  292. data/lib/undercase/patterns/blue_dotted_link_caps.yml +4 -0
  293. data/lib/undercase/patterns/blue_link.yml +4 -0
  294. data/lib/undercase/patterns/blue_link_clean.yml +4 -0
  295. data/lib/undercase/patterns/cc_button_auto.yml +4 -0
  296. data/lib/undercase/patterns/cc_button_flat_blue.yml +4 -0
  297. data/lib/undercase/patterns/cc_button_flat_gray.yml +4 -0
  298. data/lib/undercase/patterns/cc_button_flat_gray_split.yml +9 -0
  299. data/lib/undercase/patterns/cc_button_flat_green.yml +27 -0
  300. data/lib/undercase/patterns/cc_button_gray.yml +4 -0
  301. data/lib/undercase/patterns/cc_button_icon.yml +4 -0
  302. data/lib/undercase/patterns/cc_button_wire_auto.yml +5 -0
  303. data/lib/undercase/patterns/cc_link_smartbar.yml +4 -0
  304. data/lib/undercase/patterns/chevrons.yml +4 -0
  305. data/lib/undercase/patterns/colors.yml +5 -0
  306. data/lib/undercase/patterns/content_with_toolbar.yml +4 -0
  307. data/lib/undercase/patterns/dropdown.yml +4 -0
  308. data/lib/undercase/patterns/filters.yml +5 -0
  309. data/lib/undercase/patterns/filters_show_only.yml +5 -0
  310. data/lib/undercase/patterns/gray_link.yml +4 -0
  311. data/lib/undercase/patterns/grid.yml +4 -0
  312. data/lib/undercase/patterns/icon_classes.yml +5 -0
  313. data/lib/undercase/patterns/icon_custom.yml +4 -0
  314. data/lib/undercase/patterns/inline_message.yml +4 -0
  315. data/lib/undercase/patterns/length_of_time.yml +4 -0
  316. data/lib/undercase/patterns/list_circle.yml +4 -0
  317. data/lib/undercase/patterns/list_disc.yml +4 -0
  318. data/lib/undercase/patterns/navigation.yml +4 -0
  319. data/lib/undercase/patterns/pagination.yml +4 -0
  320. data/lib/undercase/patterns/person_placard.yml +4 -0
  321. data/lib/undercase/patterns/popover.yml +4 -0
  322. data/lib/undercase/patterns/tables_mobile.yml +4 -0
  323. data/lib/undercase/patterns/tables_not_desktop.yml +4 -0
  324. data/lib/undercase/patterns/tables_small_tablet.yml +4 -0
  325. data/lib/undercase/patterns/typography.yml +4 -0
  326. data/lib/undercase/patterns/typography_body_em.yml +4 -0
  327. data/lib/undercase/patterns/typography_body_p.yml +4 -0
  328. data/lib/undercase/patterns/typography_body_strong.yml +4 -0
  329. data/lib/undercase/patterns/typography_body_thin.yml +4 -0
  330. data/lib/undercase/patterns/typography_body_underline.yml +4 -0
  331. data/lib/undercase/patterns/typography_body_uppercase.yml +4 -0
  332. data/lib/undercase/patterns/typography_heading_1.yml +4 -0
  333. data/lib/undercase/patterns/typography_heading_2.yml +4 -0
  334. data/lib/undercase/patterns/typography_heading_3.yml +4 -0
  335. data/lib/undercase/patterns/typography_heading_4.yml +4 -0
  336. data/lib/undercase/patterns/typography_heading_thin.yml +4 -0
  337. data/lib/undercase/patterns/typography_links_general.yml +4 -0
  338. data/lib/undercase/patterns/typography_links_navigation.yml +4 -0
  339. data/lib/undercase/patterns/typography_links_page_banner.yml +4 -0
  340. data/lib/undercase/patterns/uc_borders_blue.yml +4 -0
  341. data/lib/undercase/patterns/uc_borders_gray.yml +4 -0
  342. data/lib/undercase/patterns/uc_borders_hover_blue.yml +4 -0
  343. data/lib/undercase/patterns/uc_borders_left.yml +4 -0
  344. data/lib/undercase/patterns/uc_borders_lighter_gray.yml +4 -0
  345. data/lib/undercase/patterns/uc_borders_middle_blue_2.yml +4 -0
  346. data/lib/undercase/patterns/uc_borders_middle_gray.yml +4 -0
  347. data/lib/undercase/patterns/uc_borders_yellow.yml +4 -0
  348. data/lib/undercase/patterns/uc_card.yml +5 -0
  349. data/lib/undercase/patterns/uc_dialog_loading.yml +4 -0
  350. data/lib/undercase/patterns/uc_errors.yml +5 -0
  351. data/lib/undercase/patterns/uc_forms_check_boxes.yml +4 -0
  352. data/lib/undercase/patterns/uc_forms_check_boxes_boolean.yml +4 -0
  353. data/lib/undercase/patterns/uc_forms_checkbutton.yml +4 -0
  354. data/lib/undercase/patterns/uc_forms_conditionally_required.yml +4 -0
  355. data/lib/undercase/patterns/uc_forms_currency_input.yml +4 -0
  356. data/lib/undercase/patterns/uc_forms_date_picker.yml +4 -0
  357. data/lib/undercase/patterns/uc_forms_date_time_picker.yml +4 -0
  358. data/lib/undercase/patterns/uc_forms_disabled_field.yml +4 -0
  359. data/lib/undercase/patterns/uc_forms_dropdown.yml +4 -0
  360. data/lib/undercase/patterns/uc_forms_dropdown_with_optgroups.yml +4 -0
  361. data/lib/undercase/patterns/uc_forms_full_name.yml +4 -0
  362. data/lib/undercase/patterns/uc_forms_grouped_inputs.yml +4 -0
  363. data/lib/undercase/patterns/uc_forms_large_field.yml +4 -0
  364. data/lib/undercase/patterns/uc_forms_medium_field.yml +4 -0
  365. data/lib/undercase/patterns/uc_forms_phone.yml +4 -0
  366. data/lib/undercase/patterns/uc_forms_radio_button_clear_link.yml +4 -0
  367. data/lib/undercase/patterns/uc_forms_radio_buttons.yml +4 -0
  368. data/lib/undercase/patterns/uc_forms_radio_buttons_breathe.yml +4 -0
  369. data/lib/undercase/patterns/uc_forms_radio_buttons_horizontal.yml +4 -0
  370. data/lib/undercase/patterns/uc_forms_search.yml +4 -0
  371. data/lib/undercase/patterns/uc_forms_short_name.yml +4 -0
  372. data/lib/undercase/patterns/uc_forms_small_field.yml +4 -0
  373. data/lib/undercase/patterns/uc_forms_textarea.yml +4 -0
  374. data/lib/undercase/patterns/uc_forms_tiny_field.yml +4 -0
  375. data/lib/undercase/patterns/uc_list_comma.yml +4 -0
  376. data/lib/undercase/patterns/uc_list_ordered_alpha.yml +4 -0
  377. data/lib/undercase/patterns/uc_list_ordered_decimal.yml +4 -0
  378. data/lib/undercase/patterns/uc_list_pipe.yml +4 -0
  379. data/lib/undercase/patterns/uc_media.yml +4 -0
  380. data/lib/undercase/patterns/uc_modal_basic.yml +4 -0
  381. data/lib/undercase/patterns/uc_modal_exception.yml +4 -0
  382. data/lib/undercase/patterns/uc_modal_with_linked.yml +4 -0
  383. data/lib/undercase/patterns/uc_quiz_questions.yml +4 -0
  384. data/lib/undercase/patterns/uc_tabs.yml +4 -0
  385. data/lib/undercase/templates/fontcustom/glyphs.scss +6 -0
  386. data/lib/undercase/version.rb +3 -0
  387. data/public/timezones/Makefile +523 -0
  388. data/public/timezones/africa +1194 -0
  389. data/public/timezones/antarctica +411 -0
  390. data/public/timezones/asia +2751 -0
  391. data/public/timezones/australasia +1726 -0
  392. data/public/timezones/backward +117 -0
  393. data/public/timezones/etcetera +81 -0
  394. data/public/timezones/europe +2973 -0
  395. data/public/timezones/factory +10 -0
  396. data/public/timezones/iso3166.tab +276 -0
  397. data/public/timezones/leapseconds +100 -0
  398. data/public/timezones/northamerica +3254 -0
  399. data/public/timezones/pacificnew +28 -0
  400. data/public/timezones/solar87 +390 -0
  401. data/public/timezones/solar88 +390 -0
  402. data/public/timezones/solar89 +395 -0
  403. data/public/timezones/southamerica +1718 -0
  404. data/public/timezones/systemv +38 -0
  405. data/public/timezones/yearistype.sh +38 -0
  406. data/public/timezones/zone.tab +444 -0
  407. metadata +789 -0
@@ -0,0 +1,764 @@
1
+ /* Modernizr 2.8.2 (Custom Build) | MIT & BSD
2
+ * Build: http://modernizr.com/download/#-flexbox-flexboxlegacy-multiplebgs-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes
3
+ */
4
+ ;
5
+
6
+
7
+
8
+ window.Modernizr = (function( window, document, undefined ) {
9
+
10
+ var version = '2.8.2',
11
+
12
+ Modernizr = {},
13
+
14
+ enableClasses = true,
15
+
16
+ docElement = document.documentElement,
17
+
18
+ mod = 'modernizr',
19
+ modElem = document.createElement(mod),
20
+ mStyle = modElem.style,
21
+
22
+ inputElem = document.createElement('input') ,
23
+
24
+ smile = ':)',
25
+
26
+ toString = {}.toString,
27
+
28
+ prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
29
+
30
+
31
+
32
+ omPrefixes = 'Webkit Moz O ms',
33
+
34
+ cssomPrefixes = omPrefixes.split(' '),
35
+
36
+ domPrefixes = omPrefixes.toLowerCase().split(' '),
37
+
38
+ ns = {'svg': 'http://www.w3.org/2000/svg'},
39
+
40
+ tests = {},
41
+ inputs = {},
42
+ attrs = {},
43
+
44
+ classes = [],
45
+
46
+ slice = classes.slice,
47
+
48
+ featureName,
49
+
50
+
51
+ injectElementWithStyles = function( rule, callback, nodes, testnames ) {
52
+
53
+ var style, ret, node, docOverflow,
54
+ div = document.createElement('div'),
55
+ body = document.body,
56
+ fakeBody = body || document.createElement('body');
57
+
58
+ if ( parseInt(nodes, 10) ) {
59
+ while ( nodes-- ) {
60
+ node = document.createElement('div');
61
+ node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
62
+ div.appendChild(node);
63
+ }
64
+ }
65
+
66
+ style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join('');
67
+ div.id = mod;
68
+ (body ? div : fakeBody).innerHTML += style;
69
+ fakeBody.appendChild(div);
70
+ if ( !body ) {
71
+ fakeBody.style.background = '';
72
+ fakeBody.style.overflow = 'hidden';
73
+ docOverflow = docElement.style.overflow;
74
+ docElement.style.overflow = 'hidden';
75
+ docElement.appendChild(fakeBody);
76
+ }
77
+
78
+ ret = callback(div, rule);
79
+ if ( !body ) {
80
+ fakeBody.parentNode.removeChild(fakeBody);
81
+ docElement.style.overflow = docOverflow;
82
+ } else {
83
+ div.parentNode.removeChild(div);
84
+ }
85
+
86
+ return !!ret;
87
+
88
+ },
89
+
90
+
91
+
92
+ isEventSupported = (function() {
93
+
94
+ var TAGNAMES = {
95
+ 'select': 'input', 'change': 'input',
96
+ 'submit': 'form', 'reset': 'form',
97
+ 'error': 'img', 'load': 'img', 'abort': 'img'
98
+ };
99
+
100
+ function isEventSupported( eventName, element ) {
101
+
102
+ element = element || document.createElement(TAGNAMES[eventName] || 'div');
103
+ eventName = 'on' + eventName;
104
+
105
+ var isSupported = eventName in element;
106
+
107
+ if ( !isSupported ) {
108
+ if ( !element.setAttribute ) {
109
+ element = document.createElement('div');
110
+ }
111
+ if ( element.setAttribute && element.removeAttribute ) {
112
+ element.setAttribute(eventName, '');
113
+ isSupported = is(element[eventName], 'function');
114
+
115
+ if ( !is(element[eventName], 'undefined') ) {
116
+ element[eventName] = undefined;
117
+ }
118
+ element.removeAttribute(eventName);
119
+ }
120
+ }
121
+
122
+ element = null;
123
+ return isSupported;
124
+ }
125
+ return isEventSupported;
126
+ })(),
127
+
128
+
129
+ _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
130
+
131
+ if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
132
+ hasOwnProp = function (object, property) {
133
+ return _hasOwnProperty.call(object, property);
134
+ };
135
+ }
136
+ else {
137
+ hasOwnProp = function (object, property) {
138
+ return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
139
+ };
140
+ }
141
+
142
+
143
+ if (!Function.prototype.bind) {
144
+ Function.prototype.bind = function bind(that) {
145
+
146
+ var target = this;
147
+
148
+ if (typeof target != "function") {
149
+ throw new TypeError();
150
+ }
151
+
152
+ var args = slice.call(arguments, 1),
153
+ bound = function () {
154
+
155
+ if (this instanceof bound) {
156
+
157
+ var F = function(){};
158
+ F.prototype = target.prototype;
159
+ var self = new F();
160
+
161
+ var result = target.apply(
162
+ self,
163
+ args.concat(slice.call(arguments))
164
+ );
165
+ if (Object(result) === result) {
166
+ return result;
167
+ }
168
+ return self;
169
+
170
+ } else {
171
+
172
+ return target.apply(
173
+ that,
174
+ args.concat(slice.call(arguments))
175
+ );
176
+
177
+ }
178
+
179
+ };
180
+
181
+ return bound;
182
+ };
183
+ }
184
+
185
+ function setCss( str ) {
186
+ mStyle.cssText = str;
187
+ }
188
+
189
+ function setCssAll( str1, str2 ) {
190
+ return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
191
+ }
192
+
193
+ function is( obj, type ) {
194
+ return typeof obj === type;
195
+ }
196
+
197
+ function contains( str, substr ) {
198
+ return !!~('' + str).indexOf(substr);
199
+ }
200
+
201
+ function testProps( props, prefixed ) {
202
+ for ( var i in props ) {
203
+ var prop = props[i];
204
+ if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
205
+ return prefixed == 'pfx' ? prop : true;
206
+ }
207
+ }
208
+ return false;
209
+ }
210
+
211
+ function testDOMProps( props, obj, elem ) {
212
+ for ( var i in props ) {
213
+ var item = obj[props[i]];
214
+ if ( item !== undefined) {
215
+
216
+ if (elem === false) return props[i];
217
+
218
+ if (is(item, 'function')){
219
+ return item.bind(elem || obj);
220
+ }
221
+
222
+ return item;
223
+ }
224
+ }
225
+ return false;
226
+ }
227
+
228
+ function testPropsAll( prop, prefixed, elem ) {
229
+
230
+ var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
231
+ props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
232
+
233
+ if(is(prefixed, "string") || is(prefixed, "undefined")) {
234
+ return testProps(props, prefixed);
235
+
236
+ } else {
237
+ props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
238
+ return testDOMProps(props, prefixed, elem);
239
+ }
240
+ } tests['flexbox'] = function() {
241
+ return testPropsAll('flexWrap');
242
+ };
243
+
244
+
245
+ tests['flexboxlegacy'] = function() {
246
+ return testPropsAll('boxDirection');
247
+ };
248
+
249
+
250
+ tests['canvas'] = function() {
251
+ var elem = document.createElement('canvas');
252
+ return !!(elem.getContext && elem.getContext('2d'));
253
+ };
254
+
255
+ tests['canvastext'] = function() {
256
+ return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
257
+ };
258
+
259
+
260
+
261
+ tests['webgl'] = function() {
262
+ return !!window.WebGLRenderingContext;
263
+ };
264
+
265
+
266
+ tests['touch'] = function() {
267
+ var bool;
268
+
269
+ if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
270
+ bool = true;
271
+ } else {
272
+ injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
273
+ bool = node.offsetTop === 9;
274
+ });
275
+ }
276
+
277
+ return bool;
278
+ };
279
+
280
+
281
+
282
+ tests['geolocation'] = function() {
283
+ return 'geolocation' in navigator;
284
+ };
285
+
286
+
287
+ tests['postmessage'] = function() {
288
+ return !!window.postMessage;
289
+ };
290
+
291
+
292
+ tests['websqldatabase'] = function() {
293
+ return !!window.openDatabase;
294
+ };
295
+
296
+ tests['indexedDB'] = function() {
297
+ return !!testPropsAll("indexedDB", window);
298
+ };
299
+
300
+ tests['hashchange'] = function() {
301
+ return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
302
+ };
303
+
304
+ tests['history'] = function() {
305
+ return !!(window.history && history.pushState);
306
+ };
307
+
308
+ tests['draganddrop'] = function() {
309
+ var div = document.createElement('div');
310
+ return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
311
+ };
312
+
313
+ tests['websockets'] = function() {
314
+ return 'WebSocket' in window || 'MozWebSocket' in window;
315
+ }; tests['multiplebgs'] = function() {
316
+ setCss('background:url(https://),url(https://),red url(https://)');
317
+
318
+ return (/(url\s*\(.*?){3}/).test(mStyle.background);
319
+ }; tests['cssanimations'] = function() {
320
+ return testPropsAll('animationName');
321
+ };
322
+
323
+
324
+ tests['csscolumns'] = function() {
325
+ return testPropsAll('columnCount');
326
+ };
327
+
328
+
329
+ tests['cssgradients'] = function() {
330
+ var str1 = 'background-image:',
331
+ str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
332
+ str3 = 'linear-gradient(left top,#9f9, white);';
333
+
334
+ setCss(
335
+ (str1 + '-webkit- '.split(' ').join(str2 + str1) +
336
+ prefixes.join(str3 + str1)).slice(0, -str1.length)
337
+ );
338
+
339
+ return contains(mStyle.backgroundImage, 'gradient');
340
+ };
341
+
342
+
343
+ tests['cssreflections'] = function() {
344
+ return testPropsAll('boxReflect');
345
+ };
346
+
347
+
348
+ tests['csstransforms'] = function() {
349
+ return !!testPropsAll('transform');
350
+ };
351
+
352
+
353
+ tests['csstransforms3d'] = function() {
354
+
355
+ var ret = !!testPropsAll('perspective');
356
+
357
+ if ( ret && 'webkitPerspective' in docElement.style ) {
358
+
359
+ injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
360
+ ret = node.offsetLeft === 9 && node.offsetHeight === 3;
361
+ });
362
+ }
363
+ return ret;
364
+ };
365
+
366
+
367
+ tests['csstransitions'] = function() {
368
+ return testPropsAll('transition');
369
+ };
370
+
371
+
372
+
373
+ tests['generatedcontent'] = function() {
374
+ var bool;
375
+
376
+ injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
377
+ bool = node.offsetHeight >= 3;
378
+ });
379
+
380
+ return bool;
381
+ };
382
+ tests['video'] = function() {
383
+ var elem = document.createElement('video'),
384
+ bool = false;
385
+
386
+ try {
387
+ if ( bool = !!elem.canPlayType ) {
388
+ bool = new Boolean(bool);
389
+ bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,'');
390
+
391
+ bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
392
+
393
+ bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
394
+ }
395
+
396
+ } catch(e) { }
397
+
398
+ return bool;
399
+ };
400
+
401
+ tests['audio'] = function() {
402
+ var elem = document.createElement('audio'),
403
+ bool = false;
404
+
405
+ try {
406
+ if ( bool = !!elem.canPlayType ) {
407
+ bool = new Boolean(bool);
408
+ bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
409
+ bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');
410
+
411
+ bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,'');
412
+ bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||
413
+ elem.canPlayType('audio/aac;')) .replace(/^no$/,'');
414
+ }
415
+ } catch(e) { }
416
+
417
+ return bool;
418
+ };
419
+
420
+
421
+ tests['localstorage'] = function() {
422
+ try {
423
+ localStorage.setItem(mod, mod);
424
+ localStorage.removeItem(mod);
425
+ return true;
426
+ } catch(e) {
427
+ return false;
428
+ }
429
+ };
430
+
431
+ tests['sessionstorage'] = function() {
432
+ try {
433
+ sessionStorage.setItem(mod, mod);
434
+ sessionStorage.removeItem(mod);
435
+ return true;
436
+ } catch(e) {
437
+ return false;
438
+ }
439
+ };
440
+
441
+
442
+ tests['webworkers'] = function() {
443
+ return !!window.Worker;
444
+ };
445
+
446
+
447
+ tests['applicationcache'] = function() {
448
+ return !!window.applicationCache;
449
+ };
450
+
451
+
452
+ tests['svg'] = function() {
453
+ return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
454
+ };
455
+
456
+ tests['inlinesvg'] = function() {
457
+ var div = document.createElement('div');
458
+ div.innerHTML = '<svg/>';
459
+ return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
460
+ };
461
+
462
+ tests['smil'] = function() {
463
+ return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
464
+ };
465
+
466
+
467
+ tests['svgclippaths'] = function() {
468
+ return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
469
+ };
470
+
471
+ function webforms() {
472
+ Modernizr['input'] = (function( props ) {
473
+ for ( var i = 0, len = props.length; i < len; i++ ) {
474
+ attrs[ props[i] ] = !!(props[i] in inputElem);
475
+ }
476
+ if (attrs.list){
477
+ attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
478
+ }
479
+ return attrs;
480
+ })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
481
+ Modernizr['inputtypes'] = (function(props) {
482
+
483
+ for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
484
+
485
+ inputElem.setAttribute('type', inputElemType = props[i]);
486
+ bool = inputElem.type !== 'text';
487
+
488
+ if ( bool ) {
489
+
490
+ inputElem.value = smile;
491
+ inputElem.style.cssText = 'position:absolute;visibility:hidden;';
492
+
493
+ if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
494
+
495
+ docElement.appendChild(inputElem);
496
+ defaultView = document.defaultView;
497
+
498
+ bool = defaultView.getComputedStyle &&
499
+ defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
500
+ (inputElem.offsetHeight !== 0);
501
+
502
+ docElement.removeChild(inputElem);
503
+
504
+ } else if ( /^(search|tel)$/.test(inputElemType) ){
505
+ } else if ( /^(url|email)$/.test(inputElemType) ) {
506
+ bool = inputElem.checkValidity && inputElem.checkValidity() === false;
507
+
508
+ } else {
509
+ bool = inputElem.value != smile;
510
+ }
511
+ }
512
+
513
+ inputs[ props[i] ] = !!bool;
514
+ }
515
+ return inputs;
516
+ })('search tel url email datetime date month week time datetime-local number range color'.split(' '));
517
+ }
518
+ for ( var feature in tests ) {
519
+ if ( hasOwnProp(tests, feature) ) {
520
+ featureName = feature.toLowerCase();
521
+ Modernizr[featureName] = tests[feature]();
522
+
523
+ classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
524
+ }
525
+ }
526
+
527
+ Modernizr.input || webforms();
528
+
529
+
530
+ Modernizr.addTest = function ( feature, test ) {
531
+ if ( typeof feature == 'object' ) {
532
+ for ( var key in feature ) {
533
+ if ( hasOwnProp( feature, key ) ) {
534
+ Modernizr.addTest( key, feature[ key ] );
535
+ }
536
+ }
537
+ } else {
538
+
539
+ feature = feature.toLowerCase();
540
+
541
+ if ( Modernizr[feature] !== undefined ) {
542
+ return Modernizr;
543
+ }
544
+
545
+ test = typeof test == 'function' ? test() : test;
546
+
547
+ if (typeof enableClasses !== "undefined" && enableClasses) {
548
+ docElement.className += ' ' + (test ? '' : 'no-') + feature;
549
+ }
550
+ Modernizr[feature] = test;
551
+
552
+ }
553
+
554
+ return Modernizr;
555
+ };
556
+
557
+
558
+ setCss('');
559
+ modElem = inputElem = null;
560
+
561
+ ;(function(window, document) {
562
+ var version = '3.7.0';
563
+
564
+ var options = window.html5 || {};
565
+
566
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
567
+
568
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
569
+
570
+ var supportsHtml5Styles;
571
+
572
+ var expando = '_html5shiv';
573
+
574
+ var expanID = 0;
575
+
576
+ var expandoData = {};
577
+
578
+ var supportsUnknownElements;
579
+
580
+ (function() {
581
+ try {
582
+ var a = document.createElement('a');
583
+ a.innerHTML = '<xyz></xyz>';
584
+ supportsHtml5Styles = ('hidden' in a);
585
+
586
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
587
+ (document.createElement)('a');
588
+ var frag = document.createDocumentFragment();
589
+ return (
590
+ typeof frag.cloneNode == 'undefined' ||
591
+ typeof frag.createDocumentFragment == 'undefined' ||
592
+ typeof frag.createElement == 'undefined'
593
+ );
594
+ }());
595
+ } catch(e) {
596
+ supportsHtml5Styles = true;
597
+ supportsUnknownElements = true;
598
+ }
599
+
600
+ }());
601
+
602
+ function addStyleSheet(ownerDocument, cssText) {
603
+ var p = ownerDocument.createElement('p'),
604
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
605
+
606
+ p.innerHTML = 'x<style>' + cssText + '</style>';
607
+ return parent.insertBefore(p.lastChild, parent.firstChild);
608
+ }
609
+
610
+ function getElements() {
611
+ var elements = html5.elements;
612
+ return typeof elements == 'string' ? elements.split(' ') : elements;
613
+ }
614
+
615
+ function getExpandoData(ownerDocument) {
616
+ var data = expandoData[ownerDocument[expando]];
617
+ if (!data) {
618
+ data = {};
619
+ expanID++;
620
+ ownerDocument[expando] = expanID;
621
+ expandoData[expanID] = data;
622
+ }
623
+ return data;
624
+ }
625
+
626
+ function createElement(nodeName, ownerDocument, data){
627
+ if (!ownerDocument) {
628
+ ownerDocument = document;
629
+ }
630
+ if(supportsUnknownElements){
631
+ return ownerDocument.createElement(nodeName);
632
+ }
633
+ if (!data) {
634
+ data = getExpandoData(ownerDocument);
635
+ }
636
+ var node;
637
+
638
+ if (data.cache[nodeName]) {
639
+ node = data.cache[nodeName].cloneNode();
640
+ } else if (saveClones.test(nodeName)) {
641
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
642
+ } else {
643
+ node = data.createElem(nodeName);
644
+ }
645
+
646
+ return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
647
+ }
648
+
649
+ function createDocumentFragment(ownerDocument, data){
650
+ if (!ownerDocument) {
651
+ ownerDocument = document;
652
+ }
653
+ if(supportsUnknownElements){
654
+ return ownerDocument.createDocumentFragment();
655
+ }
656
+ data = data || getExpandoData(ownerDocument);
657
+ var clone = data.frag.cloneNode(),
658
+ i = 0,
659
+ elems = getElements(),
660
+ l = elems.length;
661
+ for(;i<l;i++){
662
+ clone.createElement(elems[i]);
663
+ }
664
+ return clone;
665
+ }
666
+
667
+ function shivMethods(ownerDocument, data) {
668
+ if (!data.cache) {
669
+ data.cache = {};
670
+ data.createElem = ownerDocument.createElement;
671
+ data.createFrag = ownerDocument.createDocumentFragment;
672
+ data.frag = data.createFrag();
673
+ }
674
+
675
+
676
+ ownerDocument.createElement = function(nodeName) {
677
+ if (!html5.shivMethods) {
678
+ return data.createElem(nodeName);
679
+ }
680
+ return createElement(nodeName, ownerDocument, data);
681
+ };
682
+
683
+ ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
684
+ 'var n=f.cloneNode(),c=n.createElement;' +
685
+ 'h.shivMethods&&(' +
686
+ getElements().join().replace(/[\w\-]+/g, function(nodeName) {
687
+ data.createElem(nodeName);
688
+ data.frag.createElement(nodeName);
689
+ return 'c("' + nodeName + '")';
690
+ }) +
691
+ ');return n}'
692
+ )(html5, data.frag);
693
+ }
694
+
695
+ function shivDocument(ownerDocument) {
696
+ if (!ownerDocument) {
697
+ ownerDocument = document;
698
+ }
699
+ var data = getExpandoData(ownerDocument);
700
+
701
+ if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
702
+ data.hasCSS = !!addStyleSheet(ownerDocument,
703
+ 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
704
+ 'mark{background:#FF0;color:#000}' +
705
+ 'template{display:none}'
706
+ );
707
+ }
708
+ if (!supportsUnknownElements) {
709
+ shivMethods(ownerDocument, data);
710
+ }
711
+ return ownerDocument;
712
+ }
713
+
714
+ var html5 = {
715
+
716
+ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
717
+
718
+ 'version': version,
719
+
720
+ 'shivCSS': (options.shivCSS !== false),
721
+
722
+ 'supportsUnknownElements': supportsUnknownElements,
723
+
724
+ 'shivMethods': (options.shivMethods !== false),
725
+
726
+ 'type': 'default',
727
+
728
+ 'shivDocument': shivDocument,
729
+
730
+ createElement: createElement,
731
+
732
+ createDocumentFragment: createDocumentFragment
733
+ };
734
+
735
+ window.html5 = html5;
736
+
737
+ shivDocument(document);
738
+
739
+ }(this, document));
740
+
741
+ Modernizr._version = version;
742
+
743
+ Modernizr._prefixes = prefixes;
744
+ Modernizr._domPrefixes = domPrefixes;
745
+ Modernizr._cssomPrefixes = cssomPrefixes;
746
+
747
+
748
+ Modernizr.hasEvent = isEventSupported;
749
+
750
+ Modernizr.testProp = function(prop){
751
+ return testProps([prop]);
752
+ };
753
+
754
+ Modernizr.testAllProps = testPropsAll;
755
+
756
+
757
+ Modernizr.testStyles = injectElementWithStyles; docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
758
+
759
+ (enableClasses ? ' js ' + classes.join(' ') : '');
760
+
761
+ return Modernizr;
762
+
763
+ })(this, this.document);
764
+ ;