less-rails-semantic_ui 1.0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.travis.yml +13 -0
  4. data/Appraisals +7 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +65 -0
  8. data/Rakefile +9 -0
  9. data/assets/fonts/semantic_ui/themes/basic/assets/fonts/icons.eot +0 -0
  10. data/assets/fonts/semantic_ui/themes/basic/assets/fonts/icons.svg +450 -0
  11. data/assets/fonts/semantic_ui/themes/basic/assets/fonts/icons.ttf +0 -0
  12. data/assets/fonts/semantic_ui/themes/basic/assets/fonts/icons.woff +0 -0
  13. data/assets/fonts/semantic_ui/themes/default/assets/fonts/icons.eot +0 -0
  14. data/assets/fonts/semantic_ui/themes/default/assets/fonts/icons.otf +0 -0
  15. data/assets/fonts/semantic_ui/themes/default/assets/fonts/icons.svg +504 -0
  16. data/assets/fonts/semantic_ui/themes/default/assets/fonts/icons.ttf +0 -0
  17. data/assets/fonts/semantic_ui/themes/default/assets/fonts/icons.woff +0 -0
  18. data/assets/images/semantic_ui/themes/default/assets/images/flags.png +0 -0
  19. data/assets/javascripts/semantic_ui/definitions/behaviors/api.js +839 -0
  20. data/assets/javascripts/semantic_ui/definitions/behaviors/colorize.js +272 -0
  21. data/assets/javascripts/semantic_ui/definitions/behaviors/form.js +795 -0
  22. data/assets/javascripts/semantic_ui/definitions/behaviors/state.js +690 -0
  23. data/assets/javascripts/semantic_ui/definitions/behaviors/visibility.js +951 -0
  24. data/assets/javascripts/semantic_ui/definitions/behaviors/visit.js +516 -0
  25. data/assets/javascripts/semantic_ui/definitions/globals/site.js +487 -0
  26. data/assets/javascripts/semantic_ui/definitions/modules/accordion.js +504 -0
  27. data/assets/javascripts/semantic_ui/definitions/modules/checkbox.js +469 -0
  28. data/assets/javascripts/semantic_ui/definitions/modules/dimmer.js +626 -0
  29. data/assets/javascripts/semantic_ui/definitions/modules/dropdown.js +1496 -0
  30. data/assets/javascripts/semantic_ui/definitions/modules/modal.js +809 -0
  31. data/assets/javascripts/semantic_ui/definitions/modules/nag.js +480 -0
  32. data/assets/javascripts/semantic_ui/definitions/modules/popup.js +1050 -0
  33. data/assets/javascripts/semantic_ui/definitions/modules/progress.js +652 -0
  34. data/assets/javascripts/semantic_ui/definitions/modules/rating.js +451 -0
  35. data/assets/javascripts/semantic_ui/definitions/modules/search.js +886 -0
  36. data/assets/javascripts/semantic_ui/definitions/modules/shape.js +830 -0
  37. data/assets/javascripts/semantic_ui/definitions/modules/sidebar.js +976 -0
  38. data/assets/javascripts/semantic_ui/definitions/modules/sticky.js +768 -0
  39. data/assets/javascripts/semantic_ui/definitions/modules/tab.js +801 -0
  40. data/assets/javascripts/semantic_ui/definitions/modules/transition.js +865 -0
  41. data/assets/javascripts/semantic_ui/definitions/modules/video.js +539 -0
  42. data/assets/stylesheets/semantic_ui/definitions/collections/breadcrumb.less +128 -0
  43. data/assets/stylesheets/semantic_ui/definitions/collections/form.less +839 -0
  44. data/assets/stylesheets/semantic_ui/definitions/collections/grid.less +1201 -0
  45. data/assets/stylesheets/semantic_ui/definitions/collections/menu.less +1600 -0
  46. data/assets/stylesheets/semantic_ui/definitions/collections/message.less +448 -0
  47. data/assets/stylesheets/semantic_ui/definitions/collections/table.less +877 -0
  48. data/assets/stylesheets/semantic_ui/definitions/elements/button.less +2396 -0
  49. data/assets/stylesheets/semantic_ui/definitions/elements/divider.less +262 -0
  50. data/assets/stylesheets/semantic_ui/definitions/elements/flag.less +52 -0
  51. data/assets/stylesheets/semantic_ui/definitions/elements/header.less +564 -0
  52. data/assets/stylesheets/semantic_ui/definitions/elements/icon.less +351 -0
  53. data/assets/stylesheets/semantic_ui/definitions/elements/image.less +267 -0
  54. data/assets/stylesheets/semantic_ui/definitions/elements/input.less +448 -0
  55. data/assets/stylesheets/semantic_ui/definitions/elements/label.less +959 -0
  56. data/assets/stylesheets/semantic_ui/definitions/elements/list.less +896 -0
  57. data/assets/stylesheets/semantic_ui/definitions/elements/loader.less +268 -0
  58. data/assets/stylesheets/semantic_ui/definitions/elements/rail.less +132 -0
  59. data/assets/stylesheets/semantic_ui/definitions/elements/reveal.less +263 -0
  60. data/assets/stylesheets/semantic_ui/definitions/elements/segment.less +603 -0
  61. data/assets/stylesheets/semantic_ui/definitions/elements/step.less +358 -0
  62. data/assets/stylesheets/semantic_ui/definitions/globals/reset.less +45 -0
  63. data/assets/stylesheets/semantic_ui/definitions/globals/site.less +138 -0
  64. data/assets/stylesheets/semantic_ui/definitions/modules/accordion.less +221 -0
  65. data/assets/stylesheets/semantic_ui/definitions/modules/checkbox.less +468 -0
  66. data/assets/stylesheets/semantic_ui/definitions/modules/dimmer.less +186 -0
  67. data/assets/stylesheets/semantic_ui/definitions/modules/dropdown.less +914 -0
  68. data/assets/stylesheets/semantic_ui/definitions/modules/modal.less +447 -0
  69. data/assets/stylesheets/semantic_ui/definitions/modules/nag.less +165 -0
  70. data/assets/stylesheets/semantic_ui/definitions/modules/popup.less +296 -0
  71. data/assets/stylesheets/semantic_ui/definitions/modules/progress.less +404 -0
  72. data/assets/stylesheets/semantic_ui/definitions/modules/rating.less +204 -0
  73. data/assets/stylesheets/semantic_ui/definitions/modules/search.less +344 -0
  74. data/assets/stylesheets/semantic_ui/definitions/modules/shape.less +158 -0
  75. data/assets/stylesheets/semantic_ui/definitions/modules/sidebar.less +464 -0
  76. data/assets/stylesheets/semantic_ui/definitions/modules/sticky.less +80 -0
  77. data/assets/stylesheets/semantic_ui/definitions/modules/tab.less +100 -0
  78. data/assets/stylesheets/semantic_ui/definitions/modules/transition.less +95 -0
  79. data/assets/stylesheets/semantic_ui/definitions/modules/video.less +131 -0
  80. data/assets/stylesheets/semantic_ui/definitions/views/ad.less +272 -0
  81. data/assets/stylesheets/semantic_ui/definitions/views/card.less +751 -0
  82. data/assets/stylesheets/semantic_ui/definitions/views/comment.less +262 -0
  83. data/assets/stylesheets/semantic_ui/definitions/views/feed.less +278 -0
  84. data/assets/stylesheets/semantic_ui/definitions/views/item.less +472 -0
  85. data/assets/stylesheets/semantic_ui/definitions/views/statistic.less +422 -0
  86. data/assets/stylesheets/semantic_ui/theme.less +48 -0
  87. data/assets/stylesheets/semantic_ui/themes/amazon/elements/button.overrides +46 -0
  88. data/assets/stylesheets/semantic_ui/themes/amazon/elements/button.variables +57 -0
  89. data/assets/stylesheets/semantic_ui/themes/basic/collections/table.overrides +4 -0
  90. data/assets/stylesheets/semantic_ui/themes/basic/collections/table.variables +10 -0
  91. data/assets/stylesheets/semantic_ui/themes/basic/elements/button.overrides +4 -0
  92. data/assets/stylesheets/semantic_ui/themes/basic/elements/button.variables +44 -0
  93. data/assets/stylesheets/semantic_ui/themes/basic/elements/icon.overrides +189 -0
  94. data/assets/stylesheets/semantic_ui/themes/basic/elements/icon.variables +5 -0
  95. data/assets/stylesheets/semantic_ui/themes/basic/elements/step.overrides +7 -0
  96. data/assets/stylesheets/semantic_ui/themes/basic/elements/step.variables +10 -0
  97. data/assets/stylesheets/semantic_ui/themes/basic/globals/reset.overrides +5 -0
  98. data/assets/stylesheets/semantic_ui/themes/basic/globals/reset.variables +3 -0
  99. data/assets/stylesheets/semantic_ui/themes/basic/modules/progress.overrides +3 -0
  100. data/assets/stylesheets/semantic_ui/themes/basic/modules/progress.variables +15 -0
  101. data/assets/stylesheets/semantic_ui/themes/basic/views/card.overrides +4 -0
  102. data/assets/stylesheets/semantic_ui/themes/basic/views/card.variables +34 -0
  103. data/assets/stylesheets/semantic_ui/themes/bookish/elements/header.overrides +15 -0
  104. data/assets/stylesheets/semantic_ui/themes/bookish/elements/header.variables +37 -0
  105. data/assets/stylesheets/semantic_ui/themes/bootstrap3/elements/button.overrides +0 -0
  106. data/assets/stylesheets/semantic_ui/themes/bootstrap3/elements/button.variables +63 -0
  107. data/assets/stylesheets/semantic_ui/themes/chubby/collections/form.overrides +8 -0
  108. data/assets/stylesheets/semantic_ui/themes/chubby/collections/form.variables +9 -0
  109. data/assets/stylesheets/semantic_ui/themes/chubby/elements/button.overrides +21 -0
  110. data/assets/stylesheets/semantic_ui/themes/chubby/elements/button.variables +57 -0
  111. data/assets/stylesheets/semantic_ui/themes/chubby/elements/header.overrides +5 -0
  112. data/assets/stylesheets/semantic_ui/themes/chubby/elements/header.variables +21 -0
  113. data/assets/stylesheets/semantic_ui/themes/chubby/modules/accordion.overrides +7 -0
  114. data/assets/stylesheets/semantic_ui/themes/chubby/modules/accordion.variables +15 -0
  115. data/assets/stylesheets/semantic_ui/themes/chubby/views/comment.overrides +12 -0
  116. data/assets/stylesheets/semantic_ui/themes/chubby/views/comment.variables +46 -0
  117. data/assets/stylesheets/semantic_ui/themes/classic/collections/table.overrides +3 -0
  118. data/assets/stylesheets/semantic_ui/themes/classic/collections/table.variables +14 -0
  119. data/assets/stylesheets/semantic_ui/themes/classic/elements/button.overrides +3 -0
  120. data/assets/stylesheets/semantic_ui/themes/classic/elements/button.variables +96 -0
  121. data/assets/stylesheets/semantic_ui/themes/classic/elements/header.overrides +3 -0
  122. data/assets/stylesheets/semantic_ui/themes/classic/elements/header.variables +12 -0
  123. data/assets/stylesheets/semantic_ui/themes/classic/modules/progress.overrides +3 -0
  124. data/assets/stylesheets/semantic_ui/themes/classic/modules/progress.variables +8 -0
  125. data/assets/stylesheets/semantic_ui/themes/classic/views/card.overrides +98 -0
  126. data/assets/stylesheets/semantic_ui/themes/classic/views/card.variables +22 -0
  127. data/assets/stylesheets/semantic_ui/themes/default/collections/breadcrumb.overrides +3 -0
  128. data/assets/stylesheets/semantic_ui/themes/default/collections/breadcrumb.variables +43 -0
  129. data/assets/stylesheets/semantic_ui/themes/default/collections/form.overrides +3 -0
  130. data/assets/stylesheets/semantic_ui/themes/default/collections/form.variables +189 -0
  131. data/assets/stylesheets/semantic_ui/themes/default/collections/grid.overrides +4 -0
  132. data/assets/stylesheets/semantic_ui/themes/default/collections/grid.variables +93 -0
  133. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.overrides +3 -0
  134. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.variables +322 -0
  135. data/assets/stylesheets/semantic_ui/themes/default/collections/message.overrides +3 -0
  136. data/assets/stylesheets/semantic_ui/themes/default/collections/message.variables +88 -0
  137. data/assets/stylesheets/semantic_ui/themes/default/collections/table.overrides +3 -0
  138. data/assets/stylesheets/semantic_ui/themes/default/collections/table.variables +228 -0
  139. data/assets/stylesheets/semantic_ui/themes/default/elements/button.overrides +3 -0
  140. data/assets/stylesheets/semantic_ui/themes/default/elements/button.variables +260 -0
  141. data/assets/stylesheets/semantic_ui/themes/default/elements/divider.overrides +3 -0
  142. data/assets/stylesheets/semantic_ui/themes/default/elements/divider.variables +54 -0
  143. data/assets/stylesheets/semantic_ui/themes/default/elements/flag.overrides +979 -0
  144. data/assets/stylesheets/semantic_ui/themes/default/elements/flag.variables +13 -0
  145. data/assets/stylesheets/semantic_ui/themes/default/elements/header.overrides +4 -0
  146. data/assets/stylesheets/semantic_ui/themes/default/elements/header.variables +126 -0
  147. data/assets/stylesheets/semantic_ui/themes/default/elements/icon.overrides +661 -0
  148. data/assets/stylesheets/semantic_ui/themes/default/elements/icon.variables +34 -0
  149. data/assets/stylesheets/semantic_ui/themes/default/elements/image.overrides +3 -0
  150. data/assets/stylesheets/semantic_ui/themes/default/elements/image.variables +42 -0
  151. data/assets/stylesheets/semantic_ui/themes/default/elements/input.overrides +3 -0
  152. data/assets/stylesheets/semantic_ui/themes/default/elements/input.variables +114 -0
  153. data/assets/stylesheets/semantic_ui/themes/default/elements/label.overrides +3 -0
  154. data/assets/stylesheets/semantic_ui/themes/default/elements/label.variables +164 -0
  155. data/assets/stylesheets/semantic_ui/themes/default/elements/list.overrides +3 -0
  156. data/assets/stylesheets/semantic_ui/themes/default/elements/list.variables +204 -0
  157. data/assets/stylesheets/semantic_ui/themes/default/elements/loader.overrides +3 -0
  158. data/assets/stylesheets/semantic_ui/themes/default/elements/loader.variables +61 -0
  159. data/assets/stylesheets/semantic_ui/themes/default/elements/rail.overrides +3 -0
  160. data/assets/stylesheets/semantic_ui/themes/default/elements/rail.variables +24 -0
  161. data/assets/stylesheets/semantic_ui/themes/default/elements/reveal.overrides +3 -0
  162. data/assets/stylesheets/semantic_ui/themes/default/elements/reveal.variables +15 -0
  163. data/assets/stylesheets/semantic_ui/themes/default/elements/segment.overrides +3 -0
  164. data/assets/stylesheets/semantic_ui/themes/default/elements/segment.variables +100 -0
  165. data/assets/stylesheets/semantic_ui/themes/default/elements/step.overrides +16 -0
  166. data/assets/stylesheets/semantic_ui/themes/default/elements/step.variables +94 -0
  167. data/assets/stylesheets/semantic_ui/themes/default/globals/reset.overrides +434 -0
  168. data/assets/stylesheets/semantic_ui/themes/default/globals/reset.variables +3 -0
  169. data/assets/stylesheets/semantic_ui/themes/default/globals/site.overrides +3 -0
  170. data/assets/stylesheets/semantic_ui/themes/default/globals/site.variables +599 -0
  171. data/assets/stylesheets/semantic_ui/themes/default/modules/accordion.overrides +28 -0
  172. data/assets/stylesheets/semantic_ui/themes/default/modules/accordion.variables +101 -0
  173. data/assets/stylesheets/semantic_ui/themes/default/modules/chatroom.overrides +3 -0
  174. data/assets/stylesheets/semantic_ui/themes/default/modules/chatroom.variables +3 -0
  175. data/assets/stylesheets/semantic_ui/themes/default/modules/checkbox.overrides +33 -0
  176. data/assets/stylesheets/semantic_ui/themes/default/modules/checkbox.variables +139 -0
  177. data/assets/stylesheets/semantic_ui/themes/default/modules/dimmer.overrides +3 -0
  178. data/assets/stylesheets/semantic_ui/themes/default/modules/dimmer.variables +51 -0
  179. data/assets/stylesheets/semantic_ui/themes/default/modules/dropdown.overrides +57 -0
  180. data/assets/stylesheets/semantic_ui/themes/default/modules/dropdown.variables +237 -0
  181. data/assets/stylesheets/semantic_ui/themes/default/modules/modal.overrides +3 -0
  182. data/assets/stylesheets/semantic_ui/themes/default/modules/modal.variables +147 -0
  183. data/assets/stylesheets/semantic_ui/themes/default/modules/nag.overrides +3 -0
  184. data/assets/stylesheets/semantic_ui/themes/default/modules/nag.variables +74 -0
  185. data/assets/stylesheets/semantic_ui/themes/default/modules/popup.overrides +3 -0
  186. data/assets/stylesheets/semantic_ui/themes/default/modules/popup.variables +95 -0
  187. data/assets/stylesheets/semantic_ui/themes/default/modules/progress.overrides +3 -0
  188. data/assets/stylesheets/semantic_ui/themes/default/modules/progress.variables +99 -0
  189. data/assets/stylesheets/semantic_ui/themes/default/modules/rating.overrides +69 -0
  190. data/assets/stylesheets/semantic_ui/themes/default/modules/rating.variables +65 -0
  191. data/assets/stylesheets/semantic_ui/themes/default/modules/search.overrides +3 -0
  192. data/assets/stylesheets/semantic_ui/themes/default/modules/search.variables +140 -0
  193. data/assets/stylesheets/semantic_ui/themes/default/modules/shape.overrides +3 -0
  194. data/assets/stylesheets/semantic_ui/themes/default/modules/shape.variables +35 -0
  195. data/assets/stylesheets/semantic_ui/themes/default/modules/sidebar.overrides +3 -0
  196. data/assets/stylesheets/semantic_ui/themes/default/modules/sidebar.variables +39 -0
  197. data/assets/stylesheets/semantic_ui/themes/default/modules/sticky.overrides +3 -0
  198. data/assets/stylesheets/semantic_ui/themes/default/modules/sticky.variables +12 -0
  199. data/assets/stylesheets/semantic_ui/themes/default/modules/tab.overrides +3 -0
  200. data/assets/stylesheets/semantic_ui/themes/default/modules/tab.variables +13 -0
  201. data/assets/stylesheets/semantic_ui/themes/default/modules/transition.overrides +445 -0
  202. data/assets/stylesheets/semantic_ui/themes/default/modules/transition.variables +10 -0
  203. data/assets/stylesheets/semantic_ui/themes/default/modules/video.overrides +3 -0
  204. data/assets/stylesheets/semantic_ui/themes/default/modules/video.variables +16 -0
  205. data/assets/stylesheets/semantic_ui/themes/default/views/ad.overrides +3 -0
  206. data/assets/stylesheets/semantic_ui/themes/default/views/ad.variables +13 -0
  207. data/assets/stylesheets/semantic_ui/themes/default/views/card.overrides +3 -0
  208. data/assets/stylesheets/semantic_ui/themes/default/views/card.variables +185 -0
  209. data/assets/stylesheets/semantic_ui/themes/default/views/comment.overrides +3 -0
  210. data/assets/stylesheets/semantic_ui/themes/default/views/comment.variables +104 -0
  211. data/assets/stylesheets/semantic_ui/themes/default/views/feed.overrides +3 -0
  212. data/assets/stylesheets/semantic_ui/themes/default/views/feed.variables +149 -0
  213. data/assets/stylesheets/semantic_ui/themes/default/views/item.overrides +3 -0
  214. data/assets/stylesheets/semantic_ui/themes/default/views/item.variables +152 -0
  215. data/assets/stylesheets/semantic_ui/themes/default/views/statistic.overrides +3 -0
  216. data/assets/stylesheets/semantic_ui/themes/default/views/statistic.variables +97 -0
  217. data/assets/stylesheets/semantic_ui/themes/duo/elements/loader.overrides +3 -0
  218. data/assets/stylesheets/semantic_ui/themes/duo/elements/loader.variables +6 -0
  219. data/assets/stylesheets/semantic_ui/themes/fixed-width/collections/grid.overrides +3 -0
  220. data/assets/stylesheets/semantic_ui/themes/fixed-width/collections/grid.variables +25 -0
  221. data/assets/stylesheets/semantic_ui/themes/fixed-width/modules/modal.overrides +3 -0
  222. data/assets/stylesheets/semantic_ui/themes/fixed-width/modules/modal.variables +37 -0
  223. data/assets/stylesheets/semantic_ui/themes/flat/collections/form.overrides +24 -0
  224. data/assets/stylesheets/semantic_ui/themes/flat/collections/form.variables +74 -0
  225. data/assets/stylesheets/semantic_ui/themes/flat/globals/site.overrides +3 -0
  226. data/assets/stylesheets/semantic_ui/themes/flat/globals/site.variables +106 -0
  227. data/assets/stylesheets/semantic_ui/themes/github/collections/form.overrides +16 -0
  228. data/assets/stylesheets/semantic_ui/themes/github/collections/form.variables +40 -0
  229. data/assets/stylesheets/semantic_ui/themes/github/collections/menu.overrides +7 -0
  230. data/assets/stylesheets/semantic_ui/themes/github/collections/menu.variables +66 -0
  231. data/assets/stylesheets/semantic_ui/themes/github/collections/message.overrides +11 -0
  232. data/assets/stylesheets/semantic_ui/themes/github/collections/message.variables +29 -0
  233. data/assets/stylesheets/semantic_ui/themes/github/elements/button.overrides +4 -0
  234. data/assets/stylesheets/semantic_ui/themes/github/elements/button.variables +77 -0
  235. data/assets/stylesheets/semantic_ui/themes/github/elements/segment.overrides +3 -0
  236. data/assets/stylesheets/semantic_ui/themes/github/elements/segment.variables +41 -0
  237. data/assets/stylesheets/semantic_ui/themes/github/elements/step.overrides +26 -0
  238. data/assets/stylesheets/semantic_ui/themes/github/elements/step.variables +20 -0
  239. data/assets/stylesheets/semantic_ui/themes/gmail/collections/message.overrides +0 -0
  240. data/assets/stylesheets/semantic_ui/themes/gmail/collections/message.variables +15 -0
  241. data/assets/stylesheets/semantic_ui/themes/material/elements/button.overrides +23 -0
  242. data/assets/stylesheets/semantic_ui/themes/material/elements/button.variables +87 -0
  243. data/assets/stylesheets/semantic_ui/themes/material/elements/header.overrides +15 -0
  244. data/assets/stylesheets/semantic_ui/themes/material/elements/header.variables +21 -0
  245. data/assets/stylesheets/semantic_ui/themes/material/globals/site.overrides +0 -0
  246. data/assets/stylesheets/semantic_ui/themes/material/globals/site.variables +119 -0
  247. data/assets/stylesheets/semantic_ui/themes/material/modules/modal.overrides +6 -0
  248. data/assets/stylesheets/semantic_ui/themes/material/modules/modal.variables +15 -0
  249. data/assets/stylesheets/semantic_ui/themes/pulsar/elements/loader.overrides +70 -0
  250. data/assets/stylesheets/semantic_ui/themes/pulsar/elements/loader.variables +7 -0
  251. data/assets/stylesheets/semantic_ui/themes/raised/elements/button.overrides +3 -0
  252. data/assets/stylesheets/semantic_ui/themes/raised/elements/button.variables +26 -0
  253. data/assets/stylesheets/semantic_ui/themes/resetcss/globals/reset.overrides +52 -0
  254. data/assets/stylesheets/semantic_ui/themes/resetcss/globals/reset.variables +3 -0
  255. data/assets/stylesheets/semantic_ui/themes/round/elements/button.overrides +0 -0
  256. data/assets/stylesheets/semantic_ui/themes/round/elements/button.variables +138 -0
  257. data/assets/stylesheets/semantic_ui/themes/striped/modules/progress.overrides +29 -0
  258. data/assets/stylesheets/semantic_ui/themes/striped/modules/progress.variables +3 -0
  259. data/assets/stylesheets/semantic_ui/themes/timeline/views/feed.overrides +35 -0
  260. data/assets/stylesheets/semantic_ui/themes/timeline/views/feed.variables +40 -0
  261. data/assets/stylesheets/semantic_ui/themes/twitter/elements/button.overrides +13 -0
  262. data/assets/stylesheets/semantic_ui/themes/twitter/elements/button.variables +45 -0
  263. data/less-rails-semantic_ui.gemspec +28 -0
  264. data/lib/generators/semantic_ui/install/install_generator.rb +20 -0
  265. data/lib/generators/semantic_ui/install/templates/config/collections/breadcrumb.overrides +3 -0
  266. data/lib/generators/semantic_ui/install/templates/config/collections/breadcrumb.variables +3 -0
  267. data/lib/generators/semantic_ui/install/templates/config/collections/form.overrides +3 -0
  268. data/lib/generators/semantic_ui/install/templates/config/collections/form.variables +3 -0
  269. data/lib/generators/semantic_ui/install/templates/config/collections/grid.overrides +3 -0
  270. data/lib/generators/semantic_ui/install/templates/config/collections/grid.variables +3 -0
  271. data/lib/generators/semantic_ui/install/templates/config/collections/menu.overrides +3 -0
  272. data/lib/generators/semantic_ui/install/templates/config/collections/menu.variables +3 -0
  273. data/lib/generators/semantic_ui/install/templates/config/collections/message.overrides +3 -0
  274. data/lib/generators/semantic_ui/install/templates/config/collections/message.variables +3 -0
  275. data/lib/generators/semantic_ui/install/templates/config/collections/table.overrides +3 -0
  276. data/lib/generators/semantic_ui/install/templates/config/collections/table.variables +3 -0
  277. data/lib/generators/semantic_ui/install/templates/config/elements/button.overrides +3 -0
  278. data/lib/generators/semantic_ui/install/templates/config/elements/button.variables +3 -0
  279. data/lib/generators/semantic_ui/install/templates/config/elements/divider.overrides +3 -0
  280. data/lib/generators/semantic_ui/install/templates/config/elements/divider.variables +3 -0
  281. data/lib/generators/semantic_ui/install/templates/config/elements/flag.overrides +3 -0
  282. data/lib/generators/semantic_ui/install/templates/config/elements/flag.variables +3 -0
  283. data/lib/generators/semantic_ui/install/templates/config/elements/header.overrides +3 -0
  284. data/lib/generators/semantic_ui/install/templates/config/elements/header.variables +3 -0
  285. data/lib/generators/semantic_ui/install/templates/config/elements/icon.overrides +3 -0
  286. data/lib/generators/semantic_ui/install/templates/config/elements/icon.variables +3 -0
  287. data/lib/generators/semantic_ui/install/templates/config/elements/image.overrides +3 -0
  288. data/lib/generators/semantic_ui/install/templates/config/elements/image.variables +3 -0
  289. data/lib/generators/semantic_ui/install/templates/config/elements/input.overrides +3 -0
  290. data/lib/generators/semantic_ui/install/templates/config/elements/input.variables +3 -0
  291. data/lib/generators/semantic_ui/install/templates/config/elements/label.overrides +3 -0
  292. data/lib/generators/semantic_ui/install/templates/config/elements/label.variables +3 -0
  293. data/lib/generators/semantic_ui/install/templates/config/elements/list.overrides +3 -0
  294. data/lib/generators/semantic_ui/install/templates/config/elements/list.variables +3 -0
  295. data/lib/generators/semantic_ui/install/templates/config/elements/loader.overrides +3 -0
  296. data/lib/generators/semantic_ui/install/templates/config/elements/loader.variables +3 -0
  297. data/lib/generators/semantic_ui/install/templates/config/elements/rail.overrides +3 -0
  298. data/lib/generators/semantic_ui/install/templates/config/elements/rail.variables +3 -0
  299. data/lib/generators/semantic_ui/install/templates/config/elements/reveal.overrides +3 -0
  300. data/lib/generators/semantic_ui/install/templates/config/elements/reveal.variables +3 -0
  301. data/lib/generators/semantic_ui/install/templates/config/elements/segment.overrides +3 -0
  302. data/lib/generators/semantic_ui/install/templates/config/elements/segment.variables +3 -0
  303. data/lib/generators/semantic_ui/install/templates/config/elements/step.overrides +3 -0
  304. data/lib/generators/semantic_ui/install/templates/config/elements/step.variables +3 -0
  305. data/lib/generators/semantic_ui/install/templates/config/globals/reset.overrides +3 -0
  306. data/lib/generators/semantic_ui/install/templates/config/globals/reset.variables +3 -0
  307. data/lib/generators/semantic_ui/install/templates/config/globals/site.overrides +3 -0
  308. data/lib/generators/semantic_ui/install/templates/config/globals/site.variables +3 -0
  309. data/lib/generators/semantic_ui/install/templates/config/modules/accordion.overrides +3 -0
  310. data/lib/generators/semantic_ui/install/templates/config/modules/accordion.variables +3 -0
  311. data/lib/generators/semantic_ui/install/templates/config/modules/chatroom.overrides +3 -0
  312. data/lib/generators/semantic_ui/install/templates/config/modules/chatroom.variables +3 -0
  313. data/lib/generators/semantic_ui/install/templates/config/modules/checkbox.overrides +3 -0
  314. data/lib/generators/semantic_ui/install/templates/config/modules/checkbox.variables +3 -0
  315. data/lib/generators/semantic_ui/install/templates/config/modules/dimmer.overrides +3 -0
  316. data/lib/generators/semantic_ui/install/templates/config/modules/dimmer.variables +3 -0
  317. data/lib/generators/semantic_ui/install/templates/config/modules/dropdown.overrides +3 -0
  318. data/lib/generators/semantic_ui/install/templates/config/modules/dropdown.variables +3 -0
  319. data/lib/generators/semantic_ui/install/templates/config/modules/modal.overrides +3 -0
  320. data/lib/generators/semantic_ui/install/templates/config/modules/modal.variables +3 -0
  321. data/lib/generators/semantic_ui/install/templates/config/modules/nag.overrides +3 -0
  322. data/lib/generators/semantic_ui/install/templates/config/modules/nag.variables +3 -0
  323. data/lib/generators/semantic_ui/install/templates/config/modules/popup.overrides +3 -0
  324. data/lib/generators/semantic_ui/install/templates/config/modules/popup.variables +3 -0
  325. data/lib/generators/semantic_ui/install/templates/config/modules/progress.overrides +3 -0
  326. data/lib/generators/semantic_ui/install/templates/config/modules/progress.variables +3 -0
  327. data/lib/generators/semantic_ui/install/templates/config/modules/rating.overrides +3 -0
  328. data/lib/generators/semantic_ui/install/templates/config/modules/rating.variables +3 -0
  329. data/lib/generators/semantic_ui/install/templates/config/modules/search.overrides +3 -0
  330. data/lib/generators/semantic_ui/install/templates/config/modules/search.variables +3 -0
  331. data/lib/generators/semantic_ui/install/templates/config/modules/shape.overrides +3 -0
  332. data/lib/generators/semantic_ui/install/templates/config/modules/shape.variables +3 -0
  333. data/lib/generators/semantic_ui/install/templates/config/modules/sidebar.overrides +3 -0
  334. data/lib/generators/semantic_ui/install/templates/config/modules/sidebar.variables +3 -0
  335. data/lib/generators/semantic_ui/install/templates/config/modules/sticky.overrides +3 -0
  336. data/lib/generators/semantic_ui/install/templates/config/modules/sticky.variables +3 -0
  337. data/lib/generators/semantic_ui/install/templates/config/modules/tab.overrides +3 -0
  338. data/lib/generators/semantic_ui/install/templates/config/modules/tab.variables +3 -0
  339. data/lib/generators/semantic_ui/install/templates/config/modules/transition.overrides +3 -0
  340. data/lib/generators/semantic_ui/install/templates/config/modules/transition.variables +3 -0
  341. data/lib/generators/semantic_ui/install/templates/config/modules/video.overrides +3 -0
  342. data/lib/generators/semantic_ui/install/templates/config/modules/video.variables +0 -0
  343. data/lib/generators/semantic_ui/install/templates/config/views/ad.overrides +3 -0
  344. data/lib/generators/semantic_ui/install/templates/config/views/ad.variables +3 -0
  345. data/lib/generators/semantic_ui/install/templates/config/views/card.overrides +3 -0
  346. data/lib/generators/semantic_ui/install/templates/config/views/card.variables +3 -0
  347. data/lib/generators/semantic_ui/install/templates/config/views/comment.overrides +3 -0
  348. data/lib/generators/semantic_ui/install/templates/config/views/comment.variables +3 -0
  349. data/lib/generators/semantic_ui/install/templates/config/views/feed.overrides +3 -0
  350. data/lib/generators/semantic_ui/install/templates/config/views/feed.variables +3 -0
  351. data/lib/generators/semantic_ui/install/templates/config/views/item.overrides +3 -0
  352. data/lib/generators/semantic_ui/install/templates/config/views/item.variables +3 -0
  353. data/lib/generators/semantic_ui/install/templates/config/views/statistic.overrides +3 -0
  354. data/lib/generators/semantic_ui/install/templates/config/views/statistic.variables +3 -0
  355. data/lib/generators/semantic_ui/install/templates/semantic_ui.css +52 -0
  356. data/lib/generators/semantic_ui/install/templates/semantic_ui.js +27 -0
  357. data/lib/generators/semantic_ui/install/templates/theme.config +87 -0
  358. data/lib/less/rails/semantic_ui.rb +2 -0
  359. data/lib/less/rails/semantic_ui/engine.rb +18 -0
  360. data/spec/dummy_app/.gitignore +1 -0
  361. data/spec/dummy_app/app/assets/javascripts/application.js +1 -0
  362. data/spec/dummy_app/app/assets/stylesheets/application.css +4 -0
  363. data/spec/dummy_app/init.rb +20 -0
  364. data/spec/generators/install_generator_spec.rb +80 -0
  365. data/spec/spec_helper.rb +1 -0
  366. data/tasks/templates/semantic_ui.css.erb +11 -0
  367. data/tasks/templates/semantic_ui.js.erb +7 -0
  368. data/tasks/update.rake +245 -0
  369. metadata +547 -0
@@ -0,0 +1,951 @@
1
+ /*
2
+ * # Semantic - Visibility
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributor
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+ ;(function ( $, window, document, undefined ) {
13
+
14
+ $.fn.visibility = function(parameters) {
15
+ var
16
+ $allModules = $(this),
17
+ moduleSelector = $allModules.selector || '',
18
+
19
+ time = new Date().getTime(),
20
+ performance = [],
21
+
22
+ query = arguments[0],
23
+ methodInvoked = (typeof query == 'string'),
24
+ queryArguments = [].slice.call(arguments, 1),
25
+ returnedValue
26
+ ;
27
+
28
+ $allModules
29
+ .each(function() {
30
+ var
31
+ settings = $.extend(true, {}, $.fn.visibility.settings, parameters),
32
+
33
+ className = settings.className,
34
+ namespace = settings.namespace,
35
+ error = settings.error,
36
+
37
+ eventNamespace = '.' + namespace,
38
+ moduleNamespace = 'module-' + namespace,
39
+
40
+ $window = $(window),
41
+ $module = $(this),
42
+ $context = $(settings.context),
43
+ $container = $module.offsetParent(),
44
+
45
+ selector = $module.selector || '',
46
+ instance = $module.data(moduleNamespace),
47
+
48
+ requestAnimationFrame = window.requestAnimationFrame
49
+ || window.mozRequestAnimationFrame
50
+ || window.webkitRequestAnimationFrame
51
+ || window.msRequestAnimationFrame
52
+ || function(callback) { setTimeout(callback, 0); },
53
+
54
+ element = this,
55
+ module
56
+ ;
57
+
58
+ module = {
59
+
60
+ initialize: function() {
61
+ module.verbose('Initializing visibility', settings);
62
+
63
+ module.setup.cache();
64
+ module.save.position();
65
+ module.bindEvents();
66
+ module.instantiate();
67
+
68
+ if(settings.type == 'image') {
69
+ module.setup.image();
70
+ }
71
+ if(settings.type == 'fixed') {
72
+ module.setup.fixed();
73
+ }
74
+
75
+ requestAnimationFrame(module.checkVisibility);
76
+ },
77
+
78
+ instantiate: function() {
79
+ module.verbose('Storing instance of module', module);
80
+ instance = module;
81
+ $module
82
+ .data(moduleNamespace, module)
83
+ ;
84
+ },
85
+
86
+ destroy: function() {
87
+ module.verbose('Destroying previous module');
88
+ $module
89
+ .off(eventNamespace)
90
+ .removeData(moduleNamespace)
91
+ ;
92
+ },
93
+
94
+ bindEvents: function() {
95
+ module.verbose('Binding visibility events to scroll and resize');
96
+ $window
97
+ .on('resize' + eventNamespace, module.event.refresh)
98
+ ;
99
+ $context
100
+ .on('scroll' + eventNamespace, module.event.scroll)
101
+ ;
102
+ },
103
+
104
+ event: {
105
+ refresh: function() {
106
+ requestAnimationFrame(module.refresh);
107
+ },
108
+ scroll: function() {
109
+ module.verbose('Scroll position changed');
110
+ if(settings.throttle) {
111
+ clearTimeout(module.timer);
112
+ module.timer = setTimeout(module.checkVisibility, settings.throttle);
113
+ }
114
+ else {
115
+ requestAnimationFrame(module.checkVisibility);
116
+ }
117
+ }
118
+ },
119
+
120
+ precache: function(images, callback) {
121
+ if (!(images instanceof Array)) {
122
+ images = [images];
123
+ }
124
+ var
125
+ imagesLength = images.length,
126
+ loadedCounter = 0,
127
+ cache = [],
128
+ cacheImage = document.createElement('img'),
129
+ handleLoad = function() {
130
+ loadedCounter++;
131
+ if (loadedCounter >= images.length) {
132
+ if ($.isFunction(callback)) {
133
+ callback();
134
+ }
135
+ }
136
+ }
137
+ ;
138
+ while (imagesLength--) {
139
+ cacheImage = document.createElement('img');
140
+ cacheImage.onload = handleLoad;
141
+ cacheImage.onerror = handleLoad;
142
+ cacheImage.src = images[imagesLength];
143
+ cache.push(cacheImage);
144
+ }
145
+ },
146
+
147
+ setup: {
148
+ cache: function() {
149
+ module.cache = {
150
+ occurred : {},
151
+ screen : {},
152
+ element : {},
153
+ };
154
+ },
155
+ image: function() {
156
+ var
157
+ src = $module.data('src')
158
+ ;
159
+ if(src) {
160
+ module.verbose('Lazy loading image', src);
161
+ // show when top visible
162
+ module.topVisible(function() {
163
+ module.precache(src, function() {
164
+ module.set.image(src);
165
+ settings.onTopVisible = false;
166
+ });
167
+ });
168
+ }
169
+ },
170
+ fixed: function() {
171
+ module.verbose('Setting up fixed on element pass');
172
+ $module
173
+ .visibility({
174
+ once: false,
175
+ continuous: false,
176
+ onTopPassed: function() {
177
+ $module
178
+ .addClass(className.fixed)
179
+ .css({
180
+ position: 'fixed',
181
+ top: settings.offset + 'px'
182
+ })
183
+ ;
184
+ if(settings.animation && $.fn.transition !== undefined) {
185
+ $module.transition(settings.transition, settings.duration);
186
+ }
187
+ },
188
+ onTopPassedReverse: function() {
189
+ $module
190
+ .removeClass(className.fixed)
191
+ .css({
192
+ position: '',
193
+ top: ''
194
+ })
195
+ ;
196
+ }
197
+ })
198
+ ;
199
+ }
200
+ },
201
+
202
+ set: {
203
+ image: function(src) {
204
+ var
205
+ offScreen = (module.cache.screen.bottom < module.cache.element.top)
206
+ ;
207
+ $module
208
+ .attr('src', src)
209
+ ;
210
+ if(offScreen) {
211
+ module.verbose('Image outside browser, avoiding animation')
212
+ $module.show();
213
+ }
214
+ else {
215
+ if(settings.transition && $.fn.transition !== undefined) {
216
+ $module.transition(settings.transition, settings.duration);
217
+ }
218
+ else {
219
+ $module.fadeIn(settings.duration);
220
+ }
221
+ }
222
+ }
223
+ },
224
+
225
+ refresh: function() {
226
+ module.debug('Refreshing constants (element width/height)');
227
+ module.reset();
228
+ module.save.position();
229
+ module.checkVisibility();
230
+ $.proxy(settings.onRefresh, element)();
231
+ },
232
+
233
+ reset: function() {
234
+ module.verbose('Reseting all cached values');
235
+ if( $.isPlainObject(module.cache) ) {
236
+ module.cache.screen = {};
237
+ module.cache.element = {};
238
+ }
239
+ },
240
+
241
+ checkVisibility: function() {
242
+ module.verbose('Checking visibility of element', module.cache.element);
243
+ module.save.scroll();
244
+ module.save.direction();
245
+ module.save.screenCalculations();
246
+ module.save.elementCalculations();
247
+
248
+ // percentage
249
+ module.passed();
250
+
251
+ // reverse (must be first)
252
+ module.passingReverse();
253
+ module.topVisibleReverse();
254
+ module.bottomVisibleReverse();
255
+ module.topPassedReverse();
256
+ module.bottomPassedReverse();
257
+
258
+ // one time
259
+ module.passing();
260
+ module.topVisible();
261
+ module.bottomVisible();
262
+ module.topPassed();
263
+ module.bottomPassed();
264
+ },
265
+
266
+ passed: function(amount, newCallback) {
267
+ var
268
+ calculations = module.get.elementCalculations(),
269
+ amountInPixels
270
+ ;
271
+ // assign callback
272
+ if(amount !== undefined && newCallback !== undefined) {
273
+ settings.onPassed[amount] = newCallback;
274
+ }
275
+ else if(amount !== undefined) {
276
+ return (module.get.pixelsPassed(amount) > calculations.pixelsPassed);
277
+ }
278
+ else if(calculations.passing) {
279
+ $.each(settings.onPassed, function(amount, callback) {
280
+ if(calculations.bottomVisible || calculations.pixelsPassed > module.get.pixelsPassed(amount)) {
281
+ module.execute(callback, amount);
282
+ }
283
+ else if(!settings.once) {
284
+ module.remove.occurred(callback);
285
+ }
286
+ });
287
+ }
288
+ },
289
+
290
+ passing: function(newCallback) {
291
+ var
292
+ calculations = module.get.elementCalculations(),
293
+ callback = newCallback || settings.onPassing,
294
+ callbackName = 'passing'
295
+ ;
296
+ if(newCallback) {
297
+ module.debug('Adding callback for passing', newCallback);
298
+ settings.onPassing = newCallback;
299
+ }
300
+ if(calculations.passing) {
301
+ module.execute(callback, callbackName);
302
+ }
303
+ else if(!settings.once) {
304
+ module.remove.occurred(callbackName);
305
+ }
306
+ if(newCallback !== undefined) {
307
+ return calculations.passing;
308
+ }
309
+ },
310
+
311
+
312
+ topVisible: function(newCallback) {
313
+ var
314
+ calculations = module.get.elementCalculations(),
315
+ callback = newCallback || settings.onTopVisible,
316
+ callbackName = 'topVisible'
317
+ ;
318
+ if(newCallback) {
319
+ module.debug('Adding callback for top visible', newCallback);
320
+ settings.onTopVisible = newCallback;
321
+ }
322
+ if(calculations.topVisible) {
323
+ module.execute(callback, callbackName);
324
+ }
325
+ else if(!settings.once) {
326
+ module.remove.occurred(callbackName);
327
+ }
328
+ if(newCallback === undefined) {
329
+ return calculations.topVisible;
330
+ }
331
+ },
332
+
333
+ bottomVisible: function(newCallback) {
334
+ var
335
+ calculations = module.get.elementCalculations(),
336
+ callback = newCallback || settings.onBottomVisible,
337
+ callbackName = 'bottomVisible'
338
+ ;
339
+ if(newCallback) {
340
+ module.debug('Adding callback for bottom visible', newCallback);
341
+ settings.onBottomVisible = newCallback;
342
+ }
343
+ if(calculations.bottomVisible) {
344
+ module.execute(callback, callbackName);
345
+ }
346
+ else if(!settings.once) {
347
+ module.remove.occurred(callbackName);
348
+ }
349
+ if(newCallback === undefined) {
350
+ return calculations.bottomVisible;
351
+ }
352
+ },
353
+
354
+ topPassed: function(newCallback) {
355
+ var
356
+ calculations = module.get.elementCalculations(),
357
+ callback = newCallback || settings.onTopPassed,
358
+ callbackName = 'topPassed'
359
+ ;
360
+ if(newCallback) {
361
+ module.debug('Adding callback for top passed', newCallback);
362
+ settings.onTopPassed = newCallback;
363
+ }
364
+ if(calculations.topPassed) {
365
+ module.execute(callback, callbackName);
366
+ }
367
+ else if(!settings.once) {
368
+ module.remove.occurred(callbackName);
369
+ }
370
+ if(newCallback === undefined) {
371
+ return calculations.onTopPassed;
372
+ }
373
+ },
374
+
375
+ bottomPassed: function(newCallback) {
376
+ var
377
+ calculations = module.get.elementCalculations(),
378
+ callback = newCallback || settings.onBottomPassed,
379
+ callbackName = 'bottomPassed'
380
+ ;
381
+ if(newCallback) {
382
+ module.debug('Adding callback for bottom passed', newCallback);
383
+ settings.onBottomPassed = newCallback;
384
+ }
385
+ if(calculations.bottomPassed) {
386
+ module.execute(callback, callbackName);
387
+ }
388
+ else if(!settings.once) {
389
+ module.remove.occurred(callbackName);
390
+ }
391
+ if(newCallback === undefined) {
392
+ return calculations.bottomPassed;
393
+ }
394
+ },
395
+
396
+ passingReverse: function(newCallback) {
397
+ var
398
+ calculations = module.get.elementCalculations(),
399
+ callback = newCallback || settings.onPassingReverse,
400
+ callbackName = 'passingReverse'
401
+ ;
402
+ if(newCallback) {
403
+ module.debug('Adding callback for passing reverse', newCallback);
404
+ settings.onPassingReverse = newCallback;
405
+ }
406
+ if(!calculations.passing) {
407
+ if(module.get.occurred('passing')) {
408
+ module.execute(callback, callbackName);
409
+ }
410
+ }
411
+ else if(!settings.once) {
412
+ module.remove.occurred(callbackName);
413
+ }
414
+ if(newCallback !== undefined) {
415
+ return !calculations.passing;
416
+ }
417
+ },
418
+
419
+
420
+ topVisibleReverse: function(newCallback) {
421
+ var
422
+ calculations = module.get.elementCalculations(),
423
+ callback = newCallback || settings.onTopVisibleReverse,
424
+ callbackName = 'topVisibleReverse'
425
+ ;
426
+ if(newCallback) {
427
+ module.debug('Adding callback for top visible reverse', newCallback);
428
+ settings.onTopVisibleReverse = newCallback;
429
+ }
430
+ if(!calculations.topVisible) {
431
+ if(module.get.occurred('topVisible')) {
432
+ module.execute(callback, callbackName);
433
+ }
434
+ }
435
+ else if(!settings.once) {
436
+ module.remove.occurred(callbackName);
437
+ }
438
+ if(newCallback === undefined) {
439
+ return !calculations.topVisible;
440
+ }
441
+ },
442
+
443
+ bottomVisibleReverse: function(newCallback) {
444
+ var
445
+ calculations = module.get.elementCalculations(),
446
+ callback = newCallback || settings.onBottomVisibleReverse,
447
+ callbackName = 'bottomVisibleReverse'
448
+ ;
449
+ if(newCallback) {
450
+ module.debug('Adding callback for bottom visible reverse', newCallback);
451
+ settings.onBottomVisibleReverse = newCallback;
452
+ }
453
+ if(!calculations.bottomVisible) {
454
+ if(module.get.occurred('bottomVisible')) {
455
+ module.execute(callback, callbackName);
456
+ }
457
+ }
458
+ else if(!settings.once) {
459
+ module.remove.occurred(callbackName);
460
+ }
461
+ if(newCallback === undefined) {
462
+ return !calculations.bottomVisible;
463
+ }
464
+ },
465
+
466
+ topPassedReverse: function(newCallback) {
467
+ var
468
+ calculations = module.get.elementCalculations(),
469
+ callback = newCallback || settings.onTopPassedReverse,
470
+ callbackName = 'topPassedReverse'
471
+ ;
472
+ if(newCallback) {
473
+ module.debug('Adding callback for top passed reverse', newCallback);
474
+ settings.onTopPassedReverse = newCallback;
475
+ }
476
+ if(!calculations.topPassed) {
477
+ if(module.get.occurred('topPassed')) {
478
+ module.execute(callback, callbackName);
479
+ }
480
+ }
481
+ else if(!settings.once) {
482
+ module.remove.occurred(callbackName);
483
+ }
484
+ if(newCallback === undefined) {
485
+ return !calculations.onTopPassed;
486
+ }
487
+ },
488
+
489
+ bottomPassedReverse: function(newCallback) {
490
+ var
491
+ calculations = module.get.elementCalculations(),
492
+ callback = newCallback || settings.onBottomPassedReverse,
493
+ callbackName = 'bottomPassedReverse'
494
+ ;
495
+ if(newCallback) {
496
+ module.debug('Adding callback for bottom passed reverse', newCallback);
497
+ settings.onBottomPassedReverse = newCallback;
498
+ }
499
+ if(!calculations.bottomPassed) {
500
+ if(module.get.occurred('bottomPassed')) {
501
+ module.execute(callback, callbackName);
502
+ }
503
+ }
504
+ else if(!settings.once) {
505
+ module.remove.occurred(callbackName);
506
+ }
507
+ if(newCallback === undefined) {
508
+ return !calculations.bottomPassed;
509
+ }
510
+ },
511
+
512
+ execute: function(callback, callbackName) {
513
+ var
514
+ calculations = module.get.elementCalculations(),
515
+ screen = module.get.screenCalculations()
516
+ ;
517
+ callback = callback || false;
518
+ if(callback) {
519
+ if(settings.continuous) {
520
+ module.debug('Callback being called continuously', callbackName, calculations);
521
+ $.proxy(callback, element)(calculations, screen);
522
+ }
523
+ else if(!module.get.occurred(callbackName)) {
524
+ module.debug('Conditions met', callbackName, calculations);
525
+ $.proxy(callback, element)(calculations, screen);
526
+ }
527
+ }
528
+ module.save.occurred(callbackName);
529
+ },
530
+
531
+ remove: {
532
+ occurred: function(callback) {
533
+ if(callback) {
534
+ if(module.cache.occurred[callback] !== undefined && module.cache.occurred[callback] === true) {
535
+ module.debug('Callback can now be called again', callback);
536
+ module.cache.occurred[callback] = false;
537
+ }
538
+ }
539
+ else {
540
+ module.cache.occurred = {};
541
+ }
542
+ }
543
+ },
544
+
545
+ save: {
546
+ occurred: function(callback) {
547
+ if(callback) {
548
+ if(module.cache.occurred[callback] === undefined || (module.cache.occurred[callback] !== true)) {
549
+ module.verbose('Saving callback occurred', callback);
550
+ module.cache.occurred[callback] = true;
551
+ }
552
+ }
553
+ },
554
+ scroll: function() {
555
+ module.cache.scroll = $context.scrollTop() + settings.offset;
556
+ },
557
+ direction: function() {
558
+ var
559
+ scroll = module.get.scroll(),
560
+ lastScroll = module.get.lastScroll(),
561
+ direction
562
+ ;
563
+ if(scroll > lastScroll && lastScroll) {
564
+ direction = 'down';
565
+ }
566
+ else if(scroll < lastScroll && lastScroll) {
567
+ direction = 'up';
568
+ }
569
+ else {
570
+ direction = 'static';
571
+ }
572
+ module.cache.direction = direction;
573
+ return module.cache.direction;
574
+ },
575
+ elementPosition: function() {
576
+ var
577
+ screen = module.get.screenSize()
578
+ ;
579
+ module.verbose('Saving element position');
580
+ $.extend(module.cache.element, {
581
+ margin : {
582
+ top : parseInt($module.css('margin-top'), 10),
583
+ bottom : parseInt($module.css('margin-bottom'), 10)
584
+ },
585
+ fits : (element.height < screen.height),
586
+ offset : $module.offset(),
587
+ width : $module.outerWidth(),
588
+ height : $module.outerHeight()
589
+ });
590
+ return module.cache.element;
591
+ },
592
+ elementCalculations: function() {
593
+ var
594
+ screen = module.get.screenCalculations(),
595
+ element = module.get.elementPosition()
596
+ ;
597
+ // offset
598
+ if(settings.includeMargin) {
599
+ $.extend(module.cache.element, {
600
+ top : element.offset.top - element.margin.top,
601
+ bottom : element.offset.top + element.height + element.margin.bottom
602
+ });
603
+ }
604
+ else {
605
+ $.extend(module.cache.element, {
606
+ top : element.offset.top,
607
+ bottom : element.offset.top + element.height
608
+ });
609
+ }
610
+ // visibility
611
+ $.extend(module.cache.element, {
612
+ topVisible : (screen.bottom >= element.top),
613
+ topPassed : (screen.top >= element.top),
614
+ bottomVisible : (screen.bottom >= element.bottom),
615
+ bottomPassed : (screen.top >= element.bottom),
616
+ pixelsPassed : 0,
617
+ percentagePassed : 0
618
+ });
619
+ // meta calculations
620
+ $.extend(module.cache.element, {
621
+ visible : (module.cache.element.topVisible || module.cache.element.bottomVisible),
622
+ passing : (module.cache.element.topPassed && !module.cache.element.bottomPassed),
623
+ hidden : (!module.cache.element.topVisible && !module.cache.element.bottomVisible)
624
+ });
625
+ if(module.cache.element.passing) {
626
+ module.cache.element.pixelsPassed = (screen.top - element.top);
627
+ module.cache.element.percentagePassed = (screen.top - element.top) / element.height;
628
+ }
629
+ module.verbose('Updated element calculations', module.cache.element);
630
+ },
631
+ screenCalculations: function() {
632
+ var
633
+ scroll = $context.scrollTop() + settings.offset
634
+ ;
635
+ if(module.cache.scroll === undefined) {
636
+ module.cache.scroll = $context.scrollTop() + settings.offset;
637
+ }
638
+ module.save.direction();
639
+ $.extend(module.cache.screen, {
640
+ top : scroll,
641
+ bottom : scroll + module.cache.screen.height
642
+ });
643
+ return module.cache.screen;
644
+ },
645
+ screenSize: function() {
646
+ module.verbose('Saving window position');
647
+ module.cache.screen = {
648
+ height: $context.height()
649
+ };
650
+ },
651
+ position: function() {
652
+ module.save.screenSize();
653
+ module.save.elementPosition();
654
+ }
655
+ },
656
+
657
+ get: {
658
+ pixelsPassed: function(amount) {
659
+ var
660
+ element = module.get.elementCalculations()
661
+ ;
662
+ if(amount.search('%') > -1) {
663
+ return ( element.height * (parseInt(amount, 10) / 100) );
664
+ }
665
+ return parseInt(amount, 10);
666
+ },
667
+ occurred: function(callback) {
668
+ return (module.cache.occurred !== undefined)
669
+ ? module.cache.occurred[callback] || false
670
+ : false
671
+ ;
672
+ },
673
+ direction: function() {
674
+ if(module.cache.direction === undefined) {
675
+ module.save.direction();
676
+ }
677
+ return module.cache.direction;
678
+ },
679
+ elementPosition: function() {
680
+ if(module.cache.element === undefined) {
681
+ module.save.elementPosition();
682
+ }
683
+ return module.cache.element;
684
+ },
685
+ elementCalculations: function() {
686
+ if(module.cache.element === undefined) {
687
+ module.save.elementCalculations();
688
+ }
689
+ return module.cache.element;
690
+ },
691
+ screenCalculations: function() {
692
+ if(module.cache.screen === undefined) {
693
+ module.save.screenCalculations();
694
+ }
695
+ return module.cache.screen;
696
+ },
697
+ screenSize: function() {
698
+ if(module.cache.screen === undefined) {
699
+ module.save.screenSize();
700
+ }
701
+ return module.cache.screen;
702
+ },
703
+ scroll: function() {
704
+ if(module.cache.scroll === undefined) {
705
+ module.save.scroll();
706
+ }
707
+ return module.cache.scroll;
708
+ },
709
+ lastScroll: function() {
710
+ if(module.cache.screen === undefined) {
711
+ module.debug('First scroll event, no last scroll could be found');
712
+ return false;
713
+ }
714
+ return module.cache.screen.top;
715
+ }
716
+ },
717
+
718
+ setting: function(name, value) {
719
+ if( $.isPlainObject(name) ) {
720
+ $.extend(true, settings, name);
721
+ }
722
+ else if(value !== undefined) {
723
+ settings[name] = value;
724
+ }
725
+ else {
726
+ return settings[name];
727
+ }
728
+ },
729
+ internal: function(name, value) {
730
+ if( $.isPlainObject(name) ) {
731
+ $.extend(true, module, name);
732
+ }
733
+ else if(value !== undefined) {
734
+ module[name] = value;
735
+ }
736
+ else {
737
+ return module[name];
738
+ }
739
+ },
740
+ debug: function() {
741
+ if(settings.debug) {
742
+ if(settings.performance) {
743
+ module.performance.log(arguments);
744
+ }
745
+ else {
746
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
747
+ module.debug.apply(console, arguments);
748
+ }
749
+ }
750
+ },
751
+ verbose: function() {
752
+ if(settings.verbose && settings.debug) {
753
+ if(settings.performance) {
754
+ module.performance.log(arguments);
755
+ }
756
+ else {
757
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
758
+ module.verbose.apply(console, arguments);
759
+ }
760
+ }
761
+ },
762
+ error: function() {
763
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
764
+ module.error.apply(console, arguments);
765
+ },
766
+ performance: {
767
+ log: function(message) {
768
+ var
769
+ currentTime,
770
+ executionTime,
771
+ previousTime
772
+ ;
773
+ if(settings.performance) {
774
+ currentTime = new Date().getTime();
775
+ previousTime = time || currentTime;
776
+ executionTime = currentTime - previousTime;
777
+ time = currentTime;
778
+ performance.push({
779
+ 'Name' : message[0],
780
+ 'Arguments' : [].slice.call(message, 1) || '',
781
+ 'Element' : element,
782
+ 'Execution Time' : executionTime
783
+ });
784
+ }
785
+ clearTimeout(module.performance.timer);
786
+ module.performance.timer = setTimeout(module.performance.display, 100);
787
+ },
788
+ display: function() {
789
+ var
790
+ title = settings.name + ':',
791
+ totalTime = 0
792
+ ;
793
+ time = false;
794
+ clearTimeout(module.performance.timer);
795
+ $.each(performance, function(index, data) {
796
+ totalTime += data['Execution Time'];
797
+ });
798
+ title += ' ' + totalTime + 'ms';
799
+ if(moduleSelector) {
800
+ title += ' \'' + moduleSelector + '\'';
801
+ }
802
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
803
+ console.groupCollapsed(title);
804
+ if(console.table) {
805
+ console.table(performance);
806
+ }
807
+ else {
808
+ $.each(performance, function(index, data) {
809
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
810
+ });
811
+ }
812
+ console.groupEnd();
813
+ }
814
+ performance = [];
815
+ }
816
+ },
817
+ invoke: function(query, passedArguments, context) {
818
+ var
819
+ object = instance,
820
+ maxDepth,
821
+ found,
822
+ response
823
+ ;
824
+ passedArguments = passedArguments || queryArguments;
825
+ context = element || context;
826
+ if(typeof query == 'string' && object !== undefined) {
827
+ query = query.split(/[\. ]/);
828
+ maxDepth = query.length - 1;
829
+ $.each(query, function(depth, value) {
830
+ var camelCaseValue = (depth != maxDepth)
831
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
832
+ : query
833
+ ;
834
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
835
+ object = object[camelCaseValue];
836
+ }
837
+ else if( object[camelCaseValue] !== undefined ) {
838
+ found = object[camelCaseValue];
839
+ return false;
840
+ }
841
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
842
+ object = object[value];
843
+ }
844
+ else if( object[value] !== undefined ) {
845
+ found = object[value];
846
+ return false;
847
+ }
848
+ else {
849
+ return false;
850
+ }
851
+ });
852
+ }
853
+ if ( $.isFunction( found ) ) {
854
+ response = found.apply(context, passedArguments);
855
+ }
856
+ else if(found !== undefined) {
857
+ response = found;
858
+ }
859
+ if($.isArray(returnedValue)) {
860
+ returnedValue.push(response);
861
+ }
862
+ else if(returnedValue !== undefined) {
863
+ returnedValue = [returnedValue, response];
864
+ }
865
+ else if(response !== undefined) {
866
+ returnedValue = response;
867
+ }
868
+ return found;
869
+ }
870
+ };
871
+
872
+ if(methodInvoked) {
873
+ if(instance === undefined) {
874
+ module.initialize();
875
+ }
876
+ module.invoke(query);
877
+ }
878
+ else {
879
+ if(instance !== undefined) {
880
+ module.destroy();
881
+ }
882
+ module.initialize();
883
+ }
884
+ })
885
+ ;
886
+
887
+ return (returnedValue !== undefined)
888
+ ? returnedValue
889
+ : this
890
+ ;
891
+ };
892
+
893
+ $.fn.visibility.settings = {
894
+
895
+ name : 'Visibility',
896
+ namespace : 'visibility',
897
+
898
+ className: {
899
+ fixed: 'fixed'
900
+ },
901
+
902
+ debug : false,
903
+ verbose : false,
904
+ performance : true,
905
+
906
+ offset : 0,
907
+ includeMargin : false,
908
+
909
+ context : window,
910
+
911
+ // visibility check delay in ms (defaults to animationFrame)
912
+ throttle : false,
913
+
914
+ // special visibility type (image, fixed)
915
+ type : false,
916
+
917
+ // image only settings
918
+ transition : false,
919
+ duration : 500,
920
+
921
+ // array of callbacks for percentage
922
+ onPassed : {},
923
+
924
+ // standard callbacks
925
+ onPassing : false,
926
+ onTopVisible : false,
927
+ onBottomVisible : false,
928
+ onTopPassed : false,
929
+ onBottomPassed : false,
930
+
931
+ // reverse callbacks
932
+ onPassingReverse : false,
933
+ onTopVisibleReverse : false,
934
+ onBottomVisibleReverse : false,
935
+ onTopPassedReverse : false,
936
+ onBottomPassedReverse : false,
937
+
938
+ once : true,
939
+ continuous : false,
940
+
941
+ // utility callbacks
942
+ onRefresh : function(){},
943
+ onScroll : function(){},
944
+
945
+ error : {
946
+ method : 'The method you called is not defined.'
947
+ }
948
+
949
+ };
950
+
951
+ })( jQuery, window , document );