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,768 @@
1
+ /*
2
+ * # Semantic - Sticky
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributors
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+ ;(function ( $, window, document, undefined ) {
13
+
14
+ "use strict";
15
+
16
+ $.fn.sticky = function(parameters) {
17
+ var
18
+ $allModules = $(this),
19
+ moduleSelector = $allModules.selector || '',
20
+
21
+ time = new Date().getTime(),
22
+ performance = [],
23
+
24
+ query = arguments[0],
25
+ methodInvoked = (typeof query == 'string'),
26
+ queryArguments = [].slice.call(arguments, 1),
27
+ returnedValue
28
+ ;
29
+
30
+ $allModules
31
+ .each(function() {
32
+ var
33
+ settings = $.extend(true, {}, $.fn.sticky.settings, parameters),
34
+
35
+ className = settings.className,
36
+ namespace = settings.namespace,
37
+ error = settings.error,
38
+
39
+ eventNamespace = '.' + namespace,
40
+ moduleNamespace = 'module-' + namespace,
41
+
42
+ $module = $(this),
43
+ $window = $(window),
44
+ $container = $module.offsetParent(),
45
+ $scroll = $(settings.scrollContext),
46
+ $context,
47
+
48
+ selector = $module.selector || '',
49
+ instance = $module.data(moduleNamespace),
50
+
51
+ requestAnimationFrame = window.requestAnimationFrame
52
+ || window.mozRequestAnimationFrame
53
+ || window.webkitRequestAnimationFrame
54
+ || window.msRequestAnimationFrame
55
+ || function(callback) { setTimeout(callback, 0); },
56
+
57
+ element = this,
58
+ observer,
59
+ module
60
+ ;
61
+
62
+ module = {
63
+
64
+ initialize: function() {
65
+ if(settings.context) {
66
+ $context = $(settings.context);
67
+ }
68
+ else {
69
+ $context = $container;
70
+ }
71
+ if($context.size() === 0) {
72
+ module.error(error.invalidContext, settings.context, $module);
73
+ return;
74
+ }
75
+ module.verbose('Initializing sticky', settings, $container);
76
+ module.save.positions();
77
+
78
+ // error conditions
79
+ if( module.is.hidden() ) {
80
+ module.error(error.visible, $module);
81
+ }
82
+ if(module.cache.element.height > module.cache.context.height) {
83
+ module.reset();
84
+ module.error(error.elementSize, $module);
85
+ return;
86
+ }
87
+
88
+ $window
89
+ .on('resize' + eventNamespace, module.event.resize)
90
+ ;
91
+ $scroll
92
+ .on('scroll' + eventNamespace, module.event.scroll)
93
+ ;
94
+
95
+ module.observeChanges();
96
+ module.instantiate();
97
+ },
98
+
99
+ instantiate: function() {
100
+ module.verbose('Storing instance of module', module);
101
+ instance = module;
102
+ $module
103
+ .data(moduleNamespace, module)
104
+ ;
105
+ },
106
+
107
+ destroy: function() {
108
+ module.verbose('Destroying previous module');
109
+ module.reset();
110
+ $window
111
+ .off('resize' + eventNamespace, module.event.resize)
112
+ ;
113
+ $scroll
114
+ .off('scroll' + eventNamespace, module.event.scroll)
115
+ ;
116
+ $module
117
+ .removeData(moduleNamespace)
118
+ ;
119
+ },
120
+
121
+ observeChanges: function() {
122
+ var
123
+ context = $context[0]
124
+ ;
125
+ if('MutationObserver' in window) {
126
+ observer = new MutationObserver(function(mutations) {
127
+ clearTimeout(module.timer);
128
+ module.timer = setTimeout(function() {
129
+ module.verbose('DOM tree modified, updating sticky menu');
130
+ module.refresh();
131
+ }, 200);
132
+ });
133
+ observer.observe(element, {
134
+ childList : true,
135
+ subtree : true
136
+ });
137
+ observer.observe(context, {
138
+ childList : true,
139
+ subtree : true
140
+ });
141
+ module.debug('Setting up mutation observer', observer);
142
+ }
143
+ },
144
+
145
+ event: {
146
+ resize: function() {
147
+ requestAnimationFrame(function() {
148
+ module.refresh();
149
+ module.stick();
150
+ });
151
+ },
152
+ scroll: function() {
153
+ requestAnimationFrame(function() {
154
+ module.stick();
155
+ $.proxy(settings.onScroll, element)();
156
+ });
157
+ }
158
+ },
159
+
160
+ refresh: function(hardRefresh) {
161
+ module.reset();
162
+ if(hardRefresh) {
163
+ $container = $module.offsetParent();
164
+ }
165
+ module.save.positions();
166
+ module.stick();
167
+ $.proxy(settings.onReposition, element)();
168
+ },
169
+
170
+ supports: {
171
+ sticky: function() {
172
+ var
173
+ $element = $('<div/>'),
174
+ element = $element.get()
175
+ ;
176
+ $element
177
+ .addClass(className.supported)
178
+ ;
179
+ return($element.css('position').match('sticky'));
180
+ }
181
+ },
182
+
183
+ save: {
184
+ scroll: function(scroll) {
185
+ module.lastScroll = scroll;
186
+ },
187
+ positions: function() {
188
+ var
189
+ window = {
190
+ height: $window.height()
191
+ },
192
+ element = {
193
+ margin: {
194
+ top : parseInt($module.css('margin-top'), 10),
195
+ bottom : parseInt($module.css('margin-bottom'), 10),
196
+ },
197
+ offset : $module.offset(),
198
+ width : $module.outerWidth(),
199
+ height : $module.outerHeight()
200
+ },
201
+ context = {
202
+ offset: $context.offset(),
203
+ height: $context.outerHeight()
204
+ }
205
+ ;
206
+ module.cache = {
207
+ fits : ( element.height < window.height ),
208
+ window: {
209
+ height: window.height
210
+ },
211
+ element: {
212
+ margin : element.margin,
213
+ top : element.offset.top - element.margin.top,
214
+ left : element.offset.left,
215
+ width : element.width,
216
+ height : element.height,
217
+ bottom : element.offset.top + element.height
218
+ },
219
+ context: {
220
+ top : context.offset.top,
221
+ height : context.height,
222
+ bottom : context.offset.top + context.height
223
+ }
224
+ };
225
+ module.set.containerSize();
226
+ module.set.size();
227
+ module.stick();
228
+ module.debug('Caching element positions', module.cache);
229
+ }
230
+ },
231
+
232
+ get: {
233
+ direction: function(scroll) {
234
+ var
235
+ direction = 'down'
236
+ ;
237
+ scroll = scroll || $scroll.scrollTop();
238
+ if(module.lastScroll !== undefined) {
239
+ if(module.lastScroll < scroll) {
240
+ direction = 'down';
241
+ }
242
+ else if(module.lastScroll > scroll) {
243
+ direction = 'up';
244
+ }
245
+ }
246
+ return direction;
247
+ },
248
+ scrollChange: function(scroll) {
249
+ scroll = scroll || $scroll.scrollTop();
250
+ return (module.lastScroll)
251
+ ? (scroll - module.lastScroll)
252
+ : 0
253
+ ;
254
+ },
255
+ currentElementScroll: function() {
256
+ return ( module.is.top() )
257
+ ? Math.abs(parseInt($module.css('top'), 10)) || 0
258
+ : Math.abs(parseInt($module.css('bottom'), 10)) || 0
259
+ ;
260
+ },
261
+ elementScroll: function(scroll) {
262
+ scroll = scroll || $scroll.scrollTop();
263
+ var
264
+ element = module.cache.element,
265
+ window = module.cache.window,
266
+ delta = module.get.scrollChange(scroll),
267
+ maxScroll = (element.height - window.height + settings.offset),
268
+ currentScroll = module.get.currentElementScroll(),
269
+ possibleScroll = (currentScroll + delta),
270
+ elementScroll
271
+ ;
272
+ if(module.cache.fits || possibleScroll < 0) {
273
+ elementScroll = 0;
274
+ }
275
+ else if (possibleScroll > maxScroll ) {
276
+ elementScroll = maxScroll;
277
+ }
278
+ else {
279
+ elementScroll = possibleScroll;
280
+ }
281
+ return elementScroll;
282
+ }
283
+ },
284
+
285
+ remove: {
286
+ offset: function() {
287
+ $module.css('margin-top', '');
288
+ }
289
+ },
290
+
291
+ set: {
292
+ offset: function() {
293
+ module.verbose('Setting offset on element', settings.offset);
294
+ $module.css('margin-top', settings.offset);
295
+ },
296
+ containerSize: function() {
297
+ var
298
+ tagName = $container.get(0).tagName
299
+ ;
300
+ if(tagName === 'HTML' || tagName == 'body') {
301
+ // this can trigger for too many reasons
302
+ //module.error(error.container, tagName, $module);
303
+ $container = $module.offsetParent();
304
+ }
305
+ else {
306
+ module.debug('Settings container size', module.cache.context.height);
307
+ $container.height(module.cache.context.height);
308
+ }
309
+ },
310
+ scroll: function(scroll) {
311
+ module.debug('Setting scroll on element', scroll);
312
+ if( module.is.top() ) {
313
+ $module
314
+ .css('bottom', '')
315
+ .css('top', -scroll)
316
+ ;
317
+ }
318
+ if( module.is.bottom() ) {
319
+ $module
320
+ .css('top', '')
321
+ .css('bottom', scroll)
322
+ ;
323
+ }
324
+ },
325
+ size: function() {
326
+ if(module.cache.element.height !== 0 && module.cache.element.width !== 0) {
327
+ $module
328
+ .css({
329
+ width : module.cache.element.width,
330
+ height : module.cache.element.height
331
+ })
332
+ ;
333
+ }
334
+ }
335
+ },
336
+
337
+ is: {
338
+ top: function() {
339
+ return $module.hasClass(className.top);
340
+ },
341
+ bottom: function() {
342
+ return $module.hasClass(className.bottom);
343
+ },
344
+ initialPosition: function() {
345
+ return (!module.is.fixed() && !module.is.bound());
346
+ },
347
+ hidden: function() {
348
+ return (!$module.is(':visible'));
349
+ },
350
+ bound: function() {
351
+ return $module.hasClass(className.bound);
352
+ },
353
+ fixed: function() {
354
+ return $module.hasClass(className.fixed);
355
+ }
356
+ },
357
+
358
+ stick: function() {
359
+ var
360
+ cache = module.cache,
361
+ fits = cache.fits,
362
+ element = cache.element,
363
+ window = cache.window,
364
+ context = cache.context,
365
+ offset = (module.is.bottom() && settings.pushing)
366
+ ? settings.bottomOffset
367
+ : settings.offset,
368
+ scroll = {
369
+ top : $scroll.scrollTop() + offset,
370
+ bottom : $scroll.scrollTop() + offset + window.height
371
+ },
372
+ direction = module.get.direction(scroll.top),
373
+ elementScroll = module.get.elementScroll(scroll.top),
374
+
375
+ // shorthand
376
+ doesntFit = !fits,
377
+ elementVisible = (element.height !== 0)
378
+ ;
379
+
380
+ // save current scroll for next run
381
+ module.save.scroll(scroll.top);
382
+
383
+ if(elementVisible) {
384
+
385
+ if( module.is.initialPosition() ) {
386
+ if(scroll.top >= element.top) {
387
+ module.debug('Element passed, fixing element to page');
388
+ module.fixTop();
389
+ }
390
+ }
391
+ else if( module.is.fixed() ) {
392
+
393
+ // currently fixed top
394
+ if( module.is.top() ) {
395
+ if( scroll.top < element.top ) {
396
+ module.debug('Fixed element reached top of container');
397
+ module.setInitialPosition();
398
+ }
399
+ else if( (element.height + scroll.top - elementScroll) > context.bottom ) {
400
+ module.debug('Fixed element reached bottom of container');
401
+ module.bindBottom();
402
+ }
403
+ // scroll element if larger than screen
404
+ else if(doesntFit) {
405
+ module.set.scroll(elementScroll);
406
+ }
407
+ }
408
+
409
+ // currently fixed bottom
410
+ else if(module.is.bottom() ) {
411
+
412
+ // top edge
413
+ if( (scroll.bottom - element.height) < element.top) {
414
+ module.debug('Bottom fixed rail has reached top of container');
415
+ module.setInitialPosition();
416
+ }
417
+ // bottom edge
418
+ else if(scroll.bottom > context.bottom) {
419
+ module.debug('Bottom fixed rail has reached bottom of container');
420
+ module.bindBottom();
421
+ }
422
+ // scroll element if larger than screen
423
+ else if(doesntFit) {
424
+ module.set.scroll(elementScroll);
425
+ }
426
+
427
+ }
428
+ }
429
+ else if( module.is.bottom() ) {
430
+ if(settings.pushing) {
431
+ if(module.is.bound() && scroll.bottom < context.bottom ) {
432
+ module.debug('Fixing bottom attached element to bottom of browser.');
433
+ module.fixBottom();
434
+ }
435
+ }
436
+ else {
437
+ if(module.is.bound() && (scroll.top < context.bottom - element.height) ) {
438
+ module.debug('Fixing bottom attached element to top of browser.');
439
+ module.fixTop();
440
+ }
441
+ }
442
+ }
443
+ }
444
+ },
445
+
446
+ bindTop: function() {
447
+ module.debug('Binding element to top of parent container');
448
+ module.remove.offset();
449
+ $module
450
+ .css('left' , '')
451
+ .css('top' , '')
452
+ .css('bottom' , '')
453
+ .removeClass(className.fixed)
454
+ .removeClass(className.bottom)
455
+ .addClass(className.bound)
456
+ .addClass(className.top)
457
+ ;
458
+ $.proxy(settings.onTop, element)();
459
+ $.proxy(settings.onUnstick, element)();
460
+ },
461
+ bindBottom: function() {
462
+ module.debug('Binding element to bottom of parent container');
463
+ module.remove.offset();
464
+ $module
465
+ .css('left' , '')
466
+ .css('top' , '')
467
+ .css('bottom' , '')
468
+ .removeClass(className.fixed)
469
+ .removeClass(className.top)
470
+ .addClass(className.bound)
471
+ .addClass(className.bottom)
472
+ ;
473
+ $.proxy(settings.onBottom, element)();
474
+ $.proxy(settings.onUnstick, element)();
475
+ },
476
+
477
+ setInitialPosition: function() {
478
+ module.unfix();
479
+ module.unbind();
480
+ },
481
+
482
+
483
+ fixTop: function() {
484
+ module.debug('Fixing element to top of page');
485
+ module.set.offset();
486
+ $module
487
+ .css('left', module.cache.element.left)
488
+ .removeClass(className.bound)
489
+ .removeClass(className.bottom)
490
+ .addClass(className.fixed)
491
+ .addClass(className.top)
492
+ ;
493
+ $.proxy(settings.onStick, element)();
494
+ },
495
+
496
+ fixBottom: function() {
497
+ module.debug('Sticking element to bottom of page');
498
+ module.set.offset();
499
+ $module
500
+ .css('left', module.cache.element.left)
501
+ .removeClass(className.bound)
502
+ .removeClass(className.top)
503
+ .addClass(className.fixed)
504
+ .addClass(className.bottom)
505
+ ;
506
+ $.proxy(settings.onStick, element)();
507
+ },
508
+
509
+ unbind: function() {
510
+ module.debug('Removing absolute position on element');
511
+ module.remove.offset();
512
+ $module
513
+ .removeClass(className.bound)
514
+ .removeClass(className.top)
515
+ .removeClass(className.bottom)
516
+ ;
517
+ },
518
+
519
+ unfix: function() {
520
+ module.debug('Removing fixed position on element');
521
+ module.remove.offset();
522
+ $module
523
+ .removeClass(className.fixed)
524
+ .removeClass(className.top)
525
+ .removeClass(className.bottom)
526
+ ;
527
+ $.proxy(settings.onUnstick, this)();
528
+ },
529
+
530
+ reset: function() {
531
+ module.debug('Reseting elements position');
532
+ module.unbind();
533
+ module.unfix();
534
+ module.resetCSS();
535
+ },
536
+
537
+ resetCSS: function() {
538
+ $module
539
+ .css({
540
+ top : '',
541
+ bottom : '',
542
+ width : '',
543
+ height : ''
544
+ })
545
+ ;
546
+ $container
547
+ .css({
548
+ height: ''
549
+ })
550
+ ;
551
+ },
552
+
553
+ setting: function(name, value) {
554
+ if( $.isPlainObject(name) ) {
555
+ $.extend(true, settings, name);
556
+ }
557
+ else if(value !== undefined) {
558
+ settings[name] = value;
559
+ }
560
+ else {
561
+ return settings[name];
562
+ }
563
+ },
564
+ internal: function(name, value) {
565
+ if( $.isPlainObject(name) ) {
566
+ $.extend(true, module, name);
567
+ }
568
+ else if(value !== undefined) {
569
+ module[name] = value;
570
+ }
571
+ else {
572
+ return module[name];
573
+ }
574
+ },
575
+ debug: function() {
576
+ if(settings.debug) {
577
+ if(settings.performance) {
578
+ module.performance.log(arguments);
579
+ }
580
+ else {
581
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
582
+ module.debug.apply(console, arguments);
583
+ }
584
+ }
585
+ },
586
+ verbose: function() {
587
+ if(settings.verbose && settings.debug) {
588
+ if(settings.performance) {
589
+ module.performance.log(arguments);
590
+ }
591
+ else {
592
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
593
+ module.verbose.apply(console, arguments);
594
+ }
595
+ }
596
+ },
597
+ error: function() {
598
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
599
+ module.error.apply(console, arguments);
600
+ },
601
+ performance: {
602
+ log: function(message) {
603
+ var
604
+ currentTime,
605
+ executionTime,
606
+ previousTime
607
+ ;
608
+ if(settings.performance) {
609
+ currentTime = new Date().getTime();
610
+ previousTime = time || currentTime;
611
+ executionTime = currentTime - previousTime;
612
+ time = currentTime;
613
+ performance.push({
614
+ 'Name' : message[0],
615
+ 'Arguments' : [].slice.call(message, 1) || '',
616
+ 'Element' : element,
617
+ 'Execution Time' : executionTime
618
+ });
619
+ }
620
+ clearTimeout(module.performance.timer);
621
+ module.performance.timer = setTimeout(module.performance.display, 0);
622
+ },
623
+ display: function() {
624
+ var
625
+ title = settings.name + ':',
626
+ totalTime = 0
627
+ ;
628
+ time = false;
629
+ clearTimeout(module.performance.timer);
630
+ $.each(performance, function(index, data) {
631
+ totalTime += data['Execution Time'];
632
+ });
633
+ title += ' ' + totalTime + 'ms';
634
+ if(moduleSelector) {
635
+ title += ' \'' + moduleSelector + '\'';
636
+ }
637
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
638
+ console.groupCollapsed(title);
639
+ if(console.table) {
640
+ console.table(performance);
641
+ }
642
+ else {
643
+ $.each(performance, function(index, data) {
644
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
645
+ });
646
+ }
647
+ console.groupEnd();
648
+ }
649
+ performance = [];
650
+ }
651
+ },
652
+ invoke: function(query, passedArguments, context) {
653
+ var
654
+ object = instance,
655
+ maxDepth,
656
+ found,
657
+ response
658
+ ;
659
+ passedArguments = passedArguments || queryArguments;
660
+ context = element || context;
661
+ if(typeof query == 'string' && object !== undefined) {
662
+ query = query.split(/[\. ]/);
663
+ maxDepth = query.length - 1;
664
+ $.each(query, function(depth, value) {
665
+ var camelCaseValue = (depth != maxDepth)
666
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
667
+ : query
668
+ ;
669
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
670
+ object = object[camelCaseValue];
671
+ }
672
+ else if( object[camelCaseValue] !== undefined ) {
673
+ found = object[camelCaseValue];
674
+ return false;
675
+ }
676
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
677
+ object = object[value];
678
+ }
679
+ else if( object[value] !== undefined ) {
680
+ found = object[value];
681
+ return false;
682
+ }
683
+ else {
684
+ return false;
685
+ }
686
+ });
687
+ }
688
+ if ( $.isFunction( found ) ) {
689
+ response = found.apply(context, passedArguments);
690
+ }
691
+ else if(found !== undefined) {
692
+ response = found;
693
+ }
694
+ if($.isArray(returnedValue)) {
695
+ returnedValue.push(response);
696
+ }
697
+ else if(returnedValue !== undefined) {
698
+ returnedValue = [returnedValue, response];
699
+ }
700
+ else if(response !== undefined) {
701
+ returnedValue = response;
702
+ }
703
+ return found;
704
+ }
705
+ };
706
+
707
+ if(methodInvoked) {
708
+ if(instance === undefined) {
709
+ module.initialize();
710
+ }
711
+ module.invoke(query);
712
+ }
713
+ else {
714
+ if(instance !== undefined) {
715
+ module.destroy();
716
+ }
717
+ module.initialize();
718
+ }
719
+ })
720
+ ;
721
+
722
+ return (returnedValue !== undefined)
723
+ ? returnedValue
724
+ : this
725
+ ;
726
+ };
727
+
728
+ $.fn.sticky.settings = {
729
+
730
+ name : 'Sticky',
731
+ namespace : 'sticky',
732
+
733
+ debug : false,
734
+ verbose : false,
735
+ performance : false,
736
+
737
+ pushing : false,
738
+ context : false,
739
+ scrollContext : window,
740
+ offset : 0,
741
+ bottomOffset : 0,
742
+
743
+ onReposition : function(){},
744
+ onScroll : function(){},
745
+ onStick : function(){},
746
+ onUnstick : function(){},
747
+ onTop : function(){},
748
+ onBottom : function(){},
749
+
750
+ error : {
751
+ container : 'Sticky element must be inside a relative container',
752
+ visible : 'Element is hidden, you must call refresh after element becomes visible',
753
+ method : 'The method you called is not defined.',
754
+ invalidContext : 'Context specified does not exist',
755
+ elementSize : 'Sticky element is larger than its container, cannot create sticky.'
756
+ },
757
+
758
+ className : {
759
+ bound : 'bound',
760
+ fixed : 'fixed',
761
+ supported : 'native',
762
+ top : 'top',
763
+ bottom : 'bottom'
764
+ }
765
+
766
+ };
767
+
768
+ })( jQuery, window , document );