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,1050 @@
1
+ /*
2
+ * # Semantic - Popup
3
+ * http://github.com/jlukic/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
+ "use strict";
15
+
16
+ $.fn.popup = function(parameters) {
17
+ var
18
+ $allModules = $(this),
19
+ $document = $(document),
20
+
21
+ moduleSelector = $allModules.selector || '',
22
+
23
+ hasTouch = ('ontouchstart' in document.documentElement),
24
+ time = new Date().getTime(),
25
+ performance = [],
26
+
27
+ query = arguments[0],
28
+ methodInvoked = (typeof query == 'string'),
29
+ queryArguments = [].slice.call(arguments, 1),
30
+
31
+ returnedValue
32
+ ;
33
+ $allModules
34
+ .each(function() {
35
+ var
36
+ settings = ( $.isPlainObject(parameters) )
37
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
38
+ : $.extend({}, $.fn.popup.settings),
39
+
40
+ selector = settings.selector,
41
+ className = settings.className,
42
+ error = settings.error,
43
+ metadata = settings.metadata,
44
+ namespace = settings.namespace,
45
+
46
+ eventNamespace = '.' + settings.namespace,
47
+ moduleNamespace = 'module-' + namespace,
48
+
49
+ $module = $(this),
50
+ $context = $(settings.context),
51
+ $target = (settings.target)
52
+ ? $(settings.target)
53
+ : $module,
54
+
55
+ $window = $(window),
56
+ $body = $('body'),
57
+ $popup,
58
+ $offsetParent,
59
+
60
+ searchDepth = 0,
61
+
62
+ element = this,
63
+ instance = $module.data(moduleNamespace),
64
+ module
65
+ ;
66
+
67
+ module = {
68
+
69
+ // binds events
70
+ initialize: function() {
71
+ module.debug('Initializing module', $module);
72
+ module.refresh();
73
+ if(settings.on == 'click') {
74
+ $module
75
+ .on('click' + eventNamespace, module.toggle)
76
+ ;
77
+ }
78
+ else if( module.get.startEvent() ) {
79
+ $module
80
+ .on(module.get.startEvent() + eventNamespace, module.event.start)
81
+ .on(module.get.endEvent() + eventNamespace, module.event.end)
82
+ ;
83
+ }
84
+ if(settings.target) {
85
+ module.debug('Target set to element', $target);
86
+ }
87
+ $window
88
+ .on('resize' + eventNamespace, module.event.resize)
89
+ ;
90
+ if( !module.exists() ) {
91
+ module.create();
92
+ }
93
+ else if(settings.hoverable) {
94
+ module.bind.popup();
95
+ }
96
+ module.instantiate();
97
+ },
98
+
99
+ instantiate: function() {
100
+ module.verbose('Storing instance of module', module);
101
+ instance = module;
102
+ $module
103
+ .data(moduleNamespace, instance)
104
+ ;
105
+ },
106
+
107
+ refresh: function() {
108
+ if(settings.popup) {
109
+ $popup = $(settings.popup);
110
+ }
111
+ else {
112
+ if(settings.inline) {
113
+ $popup = $target.next(settings.selector.popup);
114
+ }
115
+ }
116
+ if(settings.popup) {
117
+ $popup.addClass(className.loading);
118
+ $offsetParent = $popup.offsetParent();
119
+ $popup.removeClass(className.loading);
120
+ }
121
+ else {
122
+ $offsetParent = (settings.inline)
123
+ ? $target.offsetParent()
124
+ : $body
125
+ ;
126
+ }
127
+ if( $offsetParent.is('html') ) {
128
+ module.debug('Page is popups offset parent');
129
+ $offsetParent = $body;
130
+ }
131
+ },
132
+
133
+ reposition: function() {
134
+ module.refresh();
135
+ module.set.position();
136
+ },
137
+
138
+ destroy: function() {
139
+ module.debug('Destroying previous module');
140
+ if($popup && !settings.preserve) {
141
+ module.removePopup();
142
+ }
143
+ $module
144
+ .off(eventNamespace)
145
+ .removeData(moduleNamespace)
146
+ ;
147
+ },
148
+
149
+ event: {
150
+ start: function(event) {
151
+ var
152
+ delay = ($.isPlainObject(settings.delay))
153
+ ? settings.delay.show
154
+ : settings.delay
155
+ ;
156
+ clearTimeout(module.hideTimer);
157
+ module.showTimer = setTimeout(function() {
158
+ if( module.is.hidden() && !( module.is.active() && module.is.dropdown()) ) {
159
+ module.show();
160
+ }
161
+ }, delay);
162
+ },
163
+ end: function() {
164
+ var
165
+ delay = ($.isPlainObject(settings.delay))
166
+ ? settings.delay.hide
167
+ : settings.delay
168
+ ;
169
+ clearTimeout(module.showTimer);
170
+ module.hideTimer = setTimeout(function() {
171
+ if( module.is.visible() ) {
172
+ module.hide();
173
+ }
174
+ }, delay);
175
+ },
176
+ resize: function() {
177
+ if( module.is.visible() ) {
178
+ module.set.position();
179
+ }
180
+ }
181
+ },
182
+
183
+ // generates popup html from metadata
184
+ create: function() {
185
+ var
186
+ html = $module.data(metadata.html) || settings.html,
187
+ variation = $module.data(metadata.variation) || settings.variation,
188
+ title = $module.data(metadata.title) || settings.title,
189
+ content = $module.data(metadata.content) || $module.attr('title') || settings.content
190
+ ;
191
+ if(html || content || title) {
192
+ module.debug('Creating pop-up html');
193
+ if(!html) {
194
+ html = settings.templates.popup({
195
+ title : title,
196
+ content : content
197
+ });
198
+ }
199
+ $popup = $('<div/>')
200
+ .addClass(className.popup)
201
+ .addClass(variation)
202
+ .html(html)
203
+ ;
204
+ if(variation) {
205
+ $popup
206
+ .addClass(variation)
207
+ ;
208
+ }
209
+ if(settings.inline) {
210
+ module.verbose('Inserting popup element inline', $popup);
211
+ $popup
212
+ .insertAfter($module)
213
+ ;
214
+ }
215
+ else {
216
+ module.verbose('Appending popup element to body', $popup);
217
+ $popup
218
+ .appendTo( $context )
219
+ ;
220
+ }
221
+ if(settings.hoverable) {
222
+ module.bind.popup();
223
+ }
224
+ $.proxy(settings.onCreate, $popup)(element);
225
+ }
226
+ else if($target.next(settings.selector.popup).size() !== 0) {
227
+ module.verbose('Pre-existing popup found, reverting to inline');
228
+ settings.inline = true;
229
+ module.refresh();
230
+ if(settings.hoverable) {
231
+ module.bind.popup();
232
+ }
233
+ }
234
+ else {
235
+ module.debug('No content specified skipping display', element);
236
+ }
237
+ },
238
+
239
+ // determines popup state
240
+ toggle: function() {
241
+ module.debug('Toggling pop-up');
242
+ if( module.is.hidden() ) {
243
+ module.debug('Popup is hidden, showing pop-up');
244
+ module.unbind.close();
245
+ module.hideAll();
246
+ module.show();
247
+ }
248
+ else {
249
+ module.debug('Popup is visible, hiding pop-up');
250
+ module.hide();
251
+ }
252
+ },
253
+
254
+ show: function(callback) {
255
+ callback = $.isFunction(callback) ? callback : function(){};
256
+ module.debug('Showing pop-up', settings.transition);
257
+ if(!settings.preserve && !settings.popup) {
258
+ module.refresh();
259
+ }
260
+ if( !module.exists() ) {
261
+ module.create();
262
+ }
263
+ if( $popup && module.set.position() ) {
264
+ module.save.conditions();
265
+ module.animate.show(callback);
266
+ }
267
+ },
268
+
269
+
270
+ hide: function(callback) {
271
+ callback = $.isFunction(callback) ? callback : function(){};
272
+ module.remove.visible();
273
+ module.unbind.close();
274
+ if( module.is.visible() ) {
275
+ module.restore.conditions();
276
+ module.animate.hide(callback);
277
+ }
278
+ },
279
+
280
+ hideAll: function() {
281
+ $(selector.popup)
282
+ .filter(':visible')
283
+ .popup('hide')
284
+ ;
285
+ },
286
+
287
+ hideGracefully: function(event) {
288
+ // don't close on clicks inside popup
289
+ if(event && $(event.target).closest(selector.popup).size() === 0) {
290
+ module.debug('Click occurred outside popup hiding popup');
291
+ module.hide();
292
+ }
293
+ else {
294
+ module.debug('Click was inside popup, keeping popup open');
295
+ }
296
+ },
297
+
298
+ exists: function() {
299
+ if(!$popup) {
300
+ return false;
301
+ }
302
+ if(settings.inline || settings.popup) {
303
+ return ( $popup.size() !== 0 );
304
+ }
305
+ else {
306
+ return ( $popup.closest($context).size() );
307
+ }
308
+ },
309
+
310
+ removePopup: function() {
311
+ module.debug('Removing popup');
312
+ $.proxy(settings.onRemove, $popup)(element);
313
+ $popup
314
+ .removePopup()
315
+ ;
316
+ },
317
+
318
+ save: {
319
+ conditions: function() {
320
+ module.cache = {
321
+ title: $module.attr('title')
322
+ };
323
+ if (module.cache.title) {
324
+ $module.removeAttr('title');
325
+ }
326
+ module.verbose('Saving original attributes', module.cache.title);
327
+ }
328
+ },
329
+ restore: {
330
+ conditions: function() {
331
+ element.blur();
332
+ if(module.cache && module.cache.title) {
333
+ $module.attr('title', module.cache.title);
334
+ module.verbose('Restoring original attributes', module.cache.title);
335
+ }
336
+ return true;
337
+ }
338
+ },
339
+ animate: {
340
+ show: function(callback) {
341
+ callback = $.isFunction(callback) ? callback : function(){};
342
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
343
+ module.set.visible();
344
+ $popup
345
+ .transition({
346
+ animation : settings.transition + ' in',
347
+ queue : false,
348
+ debug : settings.debug,
349
+ verbose : settings.verbose,
350
+ duration : settings.duration,
351
+ onComplete : function() {
352
+ module.bind.close();
353
+ $.proxy(callback, $popup)(element);
354
+ $.proxy(settings.onVisible, $popup)(element);
355
+ }
356
+ })
357
+ ;
358
+ }
359
+ else {
360
+ module.set.visible();
361
+ $popup
362
+ .stop()
363
+ .fadeIn(settings.duration, settings.easing, function() {
364
+ module.bind.close();
365
+ $.proxy(callback, element)();
366
+ })
367
+ ;
368
+ }
369
+ $.proxy(settings.onShow, $popup)(element);
370
+ },
371
+ hide: function(callback) {
372
+ callback = $.isFunction(callback) ? callback : function(){};
373
+ module.debug('Hiding pop-up');
374
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
375
+ $popup
376
+ .transition({
377
+ animation : settings.transition + ' out',
378
+ queue : false,
379
+ duration : settings.duration,
380
+ debug : settings.debug,
381
+ verbose : settings.verbose,
382
+ onComplete : function() {
383
+ module.reset();
384
+ $.proxy(callback, $popup)(element);
385
+ $.proxy(settings.onHidden, $popup)(element);
386
+ }
387
+ })
388
+ ;
389
+ }
390
+ else {
391
+ $popup
392
+ .stop()
393
+ .fadeOut(settings.duration, settings.easing, function() {
394
+ module.reset();
395
+ callback();
396
+ })
397
+ ;
398
+ }
399
+ $.proxy(settings.onHide, $popup)(element);
400
+ }
401
+ },
402
+
403
+ get: {
404
+ startEvent: function() {
405
+ if(settings.on == 'hover') {
406
+ return 'mouseenter';
407
+ }
408
+ else if(settings.on == 'focus') {
409
+ return 'focus';
410
+ }
411
+ return false;
412
+ },
413
+ endEvent: function() {
414
+ if(settings.on == 'hover') {
415
+ return 'mouseleave';
416
+ }
417
+ else if(settings.on == 'focus') {
418
+ return 'blur';
419
+ }
420
+ return false;
421
+ },
422
+ offstagePosition: function(position) {
423
+ var
424
+ position = position || false,
425
+ boundary = {
426
+ top : $(window).scrollTop(),
427
+ bottom : $(window).scrollTop() + $(window).height(),
428
+ left : 0,
429
+ right : $(window).width()
430
+ },
431
+ popup = {
432
+ width : $popup.width(),
433
+ height : $popup.height(),
434
+ offset : $popup.offset()
435
+ },
436
+ offstage = {},
437
+ offstagePositions = []
438
+ ;
439
+ if(popup.offset && position) {
440
+ module.verbose('Checking if outside viewable area', popup.offset);
441
+ offstage = {
442
+ top : (popup.offset.top < boundary.top),
443
+ bottom : (popup.offset.top + popup.height > boundary.bottom),
444
+ right : (popup.offset.left + popup.width > boundary.right),
445
+ left : false
446
+ };
447
+ }
448
+ // return only boundaries that have been surpassed
449
+ $.each(offstage, function(direction, isOffstage) {
450
+ if(isOffstage) {
451
+ offstagePositions.push(direction);
452
+ }
453
+ });
454
+ return (offstagePositions.length > 0)
455
+ ? offstagePositions.join(' ')
456
+ : false
457
+ ;
458
+ },
459
+ nextPosition: function(position) {
460
+ switch(position) {
461
+ case 'top left':
462
+ position = 'bottom left';
463
+ break;
464
+ case 'bottom left':
465
+ position = 'top right';
466
+ break;
467
+ case 'top right':
468
+ position = 'bottom right';
469
+ break;
470
+ case 'bottom right':
471
+ position = 'top center';
472
+ break;
473
+ case 'top center':
474
+ position = 'bottom center';
475
+ break;
476
+ case 'bottom center':
477
+ position = 'right center';
478
+ break;
479
+ case 'right center':
480
+ position = 'left center';
481
+ break;
482
+ case 'left center':
483
+ position = 'top center';
484
+ break;
485
+ }
486
+ return position;
487
+ }
488
+ },
489
+
490
+ set: {
491
+ position: function(position, arrowOffset) {
492
+ var
493
+ windowWidth = $(window).width(),
494
+ windowHeight = $(window).height(),
495
+
496
+ targetWidth = $target.outerWidth(),
497
+ targetHeight = $target.outerHeight(),
498
+
499
+ popupWidth = $popup.outerWidth(),
500
+ popupHeight = $popup.outerHeight(),
501
+
502
+ parentWidth = $offsetParent.outerWidth(),
503
+ parentHeight = $offsetParent.outerHeight(),
504
+
505
+ distanceAway = settings.distanceAway,
506
+
507
+ targetElement = $target[0],
508
+
509
+ marginTop = (settings.inline)
510
+ ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-top'), 10)
511
+ : 0,
512
+ marginLeft = (settings.inline)
513
+ ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-left'), 10)
514
+ : 0,
515
+
516
+ target = (settings.inline || settings.popup)
517
+ ? $target.position()
518
+ : $target.offset(),
519
+
520
+ positioning,
521
+ offstagePosition
522
+ ;
523
+ position = position || $module.data(metadata.position) || settings.position;
524
+ arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
525
+ if(settings.inline) {
526
+ module.debug('Adding targets margin to calculation');
527
+ if(position == 'left center' || position == 'right center') {
528
+ arrowOffset += marginTop;
529
+ distanceAway += -marginLeft;
530
+ }
531
+ else if (position == 'top left' || position == 'top center' || position == 'top right') {
532
+ arrowOffset += marginLeft;
533
+ distanceAway -= marginTop;
534
+ }
535
+ else {
536
+ arrowOffset += marginLeft;
537
+ distanceAway += marginTop;
538
+ }
539
+ }
540
+ module.debug('Calculating popup positioning', position);
541
+ switch(position) {
542
+ case 'top left':
543
+ positioning = {
544
+ top : 'auto',
545
+ bottom : parentHeight - target.top + distanceAway,
546
+ left : target.left + arrowOffset,
547
+ right : 'auto'
548
+ };
549
+ break;
550
+ case 'top center':
551
+ positioning = {
552
+ bottom : parentHeight - target.top + distanceAway,
553
+ left : target.left + (targetWidth / 2) - (popupWidth / 2) + arrowOffset,
554
+ top : 'auto',
555
+ right : 'auto'
556
+ };
557
+ break;
558
+ case 'top right':
559
+ positioning = {
560
+ bottom : parentHeight - target.top + distanceAway,
561
+ right : parentWidth - target.left - targetWidth - arrowOffset,
562
+ top : 'auto',
563
+ left : 'auto'
564
+ };
565
+ break;
566
+ case 'left center':
567
+ positioning = {
568
+ top : target.top + (targetHeight / 2) - (popupHeight / 2) + arrowOffset,
569
+ right : parentWidth - target.left + distanceAway,
570
+ left : 'auto',
571
+ bottom : 'auto'
572
+ };
573
+ break;
574
+ case 'right center':
575
+ positioning = {
576
+ top : target.top + (targetHeight / 2) - (popupHeight / 2) + arrowOffset,
577
+ left : target.left + targetWidth + distanceAway,
578
+ bottom : 'auto',
579
+ right : 'auto'
580
+ };
581
+ break;
582
+ case 'bottom left':
583
+ positioning = {
584
+ top : target.top + targetHeight + distanceAway,
585
+ left : target.left + arrowOffset,
586
+ bottom : 'auto',
587
+ right : 'auto'
588
+ };
589
+ break;
590
+ case 'bottom center':
591
+ positioning = {
592
+ top : target.top + targetHeight + distanceAway,
593
+ left : target.left + (targetWidth / 2) - (popupWidth / 2) + arrowOffset,
594
+ bottom : 'auto',
595
+ right : 'auto'
596
+ };
597
+ break;
598
+ case 'bottom right':
599
+ positioning = {
600
+ top : target.top + targetHeight + distanceAway,
601
+ right : parentWidth - target.left - targetWidth - arrowOffset,
602
+ left : 'auto',
603
+ bottom : 'auto'
604
+ };
605
+ break;
606
+ }
607
+ if(positioning === undefined) {
608
+ module.error(error.invalidPosition);
609
+ }
610
+ // tentatively place on stage
611
+ $popup
612
+ .css(positioning)
613
+ .removeClass(className.position)
614
+ .addClass(position)
615
+ .addClass(className.loading)
616
+ ;
617
+ // check if is offstage
618
+ offstagePosition = module.get.offstagePosition(position);
619
+
620
+ // recursively find new positioning
621
+ if(offstagePosition) {
622
+ module.debug('Element is outside boundaries', offstagePosition);
623
+ if(searchDepth < settings.maxSearchDepth) {
624
+ position = module.get.nextPosition(position);
625
+ searchDepth++;
626
+ module.debug('Trying new position', position);
627
+ return ($popup)
628
+ ? module.set.position(position)
629
+ : false
630
+ ;
631
+ }
632
+ else {
633
+ module.debug('Popup could not find a position onstage', $popup);
634
+ searchDepth = 0;
635
+ module.reset();
636
+ $popup.removeClass(className.loading);
637
+ return false;
638
+ }
639
+ }
640
+ else {
641
+ module.debug('Position is on stage', position);
642
+ searchDepth = 0;
643
+ if( settings.setFluidWidth && $popup.hasClass(className.fluid) ) {
644
+ $popup.css('width', $offsetParent.width());
645
+ }
646
+ $popup.removeClass(className.loading);
647
+ return true;
648
+ }
649
+ },
650
+
651
+ visible: function() {
652
+ $module.addClass(className.visible);
653
+ }
654
+ },
655
+
656
+ remove: {
657
+ visible: function() {
658
+ $module.removeClass(className.visible);
659
+ }
660
+ },
661
+
662
+ bind: {
663
+ popup: function() {
664
+ module.verbose('Allowing hover events on popup to prevent closing');
665
+ if($popup && $popup.size() > 0) {
666
+ $popup
667
+ .on('mouseenter' + eventNamespace, module.event.start)
668
+ .on('mouseleave' + eventNamespace, module.event.end)
669
+ ;
670
+ }
671
+ },
672
+ close:function() {
673
+ if(settings.hideOnScroll === true || settings.hideOnScroll == 'auto' && settings.on != 'click') {
674
+ $document
675
+ .one('touchmove' + eventNamespace, module.hideGracefully)
676
+ .one('scroll' + eventNamespace, module.hideGracefully)
677
+ ;
678
+ $context
679
+ .one('touchmove' + eventNamespace, module.hideGracefully)
680
+ .one('scroll' + eventNamespace, module.hideGracefully)
681
+ ;
682
+ }
683
+ if(settings.on == 'click' && settings.closable) {
684
+ module.verbose('Binding popup close event to document');
685
+ $document
686
+ .on('click' + eventNamespace, function(event) {
687
+ module.verbose('Pop-up clickaway intent detected');
688
+ $.proxy(module.hideGracefully, element)(event);
689
+ })
690
+ ;
691
+ }
692
+ }
693
+ },
694
+
695
+ unbind: {
696
+ close: function() {
697
+ if(settings.hideOnScroll === true || settings.hideOnScroll == 'auto' && settings.on != 'click') {
698
+ $document
699
+ .off('scroll' + eventNamespace, module.hide)
700
+ ;
701
+ $context
702
+ .off('scroll' + eventNamespace, module.hide)
703
+ ;
704
+ }
705
+ if(settings.on == 'click' && settings.closable) {
706
+ module.verbose('Removing close event from document');
707
+ $document
708
+ .off('click' + eventNamespace)
709
+ ;
710
+ }
711
+ }
712
+ },
713
+
714
+ is: {
715
+ active: function() {
716
+ return $module.hasClass(className.active);
717
+ },
718
+ animating: function() {
719
+ return ( $popup && $popup.is(':animated') || $popup.hasClass(className.animating) );
720
+ },
721
+ visible: function() {
722
+ return $popup && $popup.is(':visible');
723
+ },
724
+ dropdown: function() {
725
+ return $module.hasClass(className.dropdown);
726
+ },
727
+ hidden: function() {
728
+ return !module.is.visible();
729
+ }
730
+ },
731
+
732
+ reset: function() {
733
+ module.remove.visible();
734
+ if(settings.preserve || settings.popup) {
735
+ if($.fn.transition !== undefined) {
736
+ $popup
737
+ .transition('remove transition')
738
+ ;
739
+ }
740
+ }
741
+ else {
742
+ module.removePopup();
743
+ }
744
+ },
745
+
746
+ setting: function(name, value) {
747
+ if( $.isPlainObject(name) ) {
748
+ $.extend(true, settings, name);
749
+ }
750
+ else if(value !== undefined) {
751
+ settings[name] = value;
752
+ }
753
+ else {
754
+ return settings[name];
755
+ }
756
+ },
757
+ internal: function(name, value) {
758
+ if( $.isPlainObject(name) ) {
759
+ $.extend(true, module, name);
760
+ }
761
+ else if(value !== undefined) {
762
+ module[name] = value;
763
+ }
764
+ else {
765
+ return module[name];
766
+ }
767
+ },
768
+ debug: function() {
769
+ if(settings.debug) {
770
+ if(settings.performance) {
771
+ module.performance.log(arguments);
772
+ }
773
+ else {
774
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
775
+ module.debug.apply(console, arguments);
776
+ }
777
+ }
778
+ },
779
+ verbose: function() {
780
+ if(settings.verbose && settings.debug) {
781
+ if(settings.performance) {
782
+ module.performance.log(arguments);
783
+ }
784
+ else {
785
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
786
+ module.verbose.apply(console, arguments);
787
+ }
788
+ }
789
+ },
790
+ error: function() {
791
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
792
+ module.error.apply(console, arguments);
793
+ },
794
+ performance: {
795
+ log: function(message) {
796
+ var
797
+ currentTime,
798
+ executionTime,
799
+ previousTime
800
+ ;
801
+ if(settings.performance) {
802
+ currentTime = new Date().getTime();
803
+ previousTime = time || currentTime;
804
+ executionTime = currentTime - previousTime;
805
+ time = currentTime;
806
+ performance.push({
807
+ 'Name' : message[0],
808
+ 'Arguments' : [].slice.call(message, 1) || '',
809
+ 'Element' : element,
810
+ 'Execution Time' : executionTime
811
+ });
812
+ }
813
+ clearTimeout(module.performance.timer);
814
+ module.performance.timer = setTimeout(module.performance.display, 100);
815
+ },
816
+ display: function() {
817
+ var
818
+ title = settings.name + ':',
819
+ totalTime = 0
820
+ ;
821
+ time = false;
822
+ clearTimeout(module.performance.timer);
823
+ $.each(performance, function(index, data) {
824
+ totalTime += data['Execution Time'];
825
+ });
826
+ title += ' ' + totalTime + 'ms';
827
+ if(moduleSelector) {
828
+ title += ' \'' + moduleSelector + '\'';
829
+ }
830
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
831
+ console.groupCollapsed(title);
832
+ if(console.table) {
833
+ console.table(performance);
834
+ }
835
+ else {
836
+ $.each(performance, function(index, data) {
837
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
838
+ });
839
+ }
840
+ console.groupEnd();
841
+ }
842
+ performance = [];
843
+ }
844
+ },
845
+ invoke: function(query, passedArguments, context) {
846
+ var
847
+ object = instance,
848
+ maxDepth,
849
+ found,
850
+ response
851
+ ;
852
+ passedArguments = passedArguments || queryArguments;
853
+ context = element || context;
854
+ if(typeof query == 'string' && object !== undefined) {
855
+ query = query.split(/[\. ]/);
856
+ maxDepth = query.length - 1;
857
+ $.each(query, function(depth, value) {
858
+ var camelCaseValue = (depth != maxDepth)
859
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
860
+ : query
861
+ ;
862
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
863
+ object = object[camelCaseValue];
864
+ }
865
+ else if( object[camelCaseValue] !== undefined ) {
866
+ found = object[camelCaseValue];
867
+ return false;
868
+ }
869
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
870
+ object = object[value];
871
+ }
872
+ else if( object[value] !== undefined ) {
873
+ found = object[value];
874
+ return false;
875
+ }
876
+ else {
877
+ return false;
878
+ }
879
+ });
880
+ }
881
+ if ( $.isFunction( found ) ) {
882
+ response = found.apply(context, passedArguments);
883
+ }
884
+ else if(found !== undefined) {
885
+ response = found;
886
+ }
887
+ if($.isArray(returnedValue)) {
888
+ returnedValue.push(response);
889
+ }
890
+ else if(returnedValue !== undefined) {
891
+ returnedValue = [returnedValue, response];
892
+ }
893
+ else if(response !== undefined) {
894
+ returnedValue = response;
895
+ }
896
+ return found;
897
+ }
898
+ };
899
+
900
+ if(methodInvoked) {
901
+ if(instance === undefined) {
902
+ module.initialize();
903
+ }
904
+ module.invoke(query);
905
+ }
906
+ else {
907
+ if(instance !== undefined) {
908
+ module.destroy();
909
+ }
910
+ module.initialize();
911
+ }
912
+ })
913
+ ;
914
+
915
+ return (returnedValue !== undefined)
916
+ ? returnedValue
917
+ : this
918
+ ;
919
+ };
920
+
921
+ $.fn.popup.settings = {
922
+
923
+ name : 'Popup',
924
+
925
+ debug : false,
926
+ verbose : true,
927
+ performance : true,
928
+ namespace : 'popup',
929
+
930
+ onCreate : function(){},
931
+ onRemove : function(){},
932
+
933
+ onShow : function(){},
934
+ onVisible : function(){},
935
+ onHide : function(){},
936
+ onHidden : function(){},
937
+
938
+ variation : '',
939
+ content : false,
940
+ html : false,
941
+ title : false,
942
+
943
+ on : 'hover',
944
+ closable : true,
945
+ hideOnScroll : 'auto',
946
+
947
+ context : 'body',
948
+ position : 'top left',
949
+ delay : {
950
+ show : 30,
951
+ hide : 0
952
+ },
953
+
954
+ setFluidWidth : true,
955
+
956
+ target : false,
957
+ popup : false,
958
+ inline : false,
959
+ preserve : true,
960
+ hoverable : false,
961
+
962
+ duration : 200,
963
+ easing : 'easeOutQuint',
964
+ transition : 'scale',
965
+
966
+ distanceAway : 0,
967
+ offset : 0,
968
+ maxSearchDepth : 10,
969
+
970
+ error: {
971
+ invalidPosition : 'The position you specified is not a valid position',
972
+ method : 'The method you called is not defined.'
973
+ },
974
+
975
+ metadata: {
976
+ content : 'content',
977
+ html : 'html',
978
+ offset : 'offset',
979
+ position : 'position',
980
+ title : 'title',
981
+ variation : 'variation'
982
+ },
983
+
984
+ className : {
985
+ active : 'active',
986
+ animating : 'animating',
987
+ dropdown : 'dropdown',
988
+ fluid : 'fluid',
989
+ loading : 'loading',
990
+ popup : 'ui popup',
991
+ position : 'top left center bottom right',
992
+ visible : 'visible'
993
+ },
994
+
995
+ selector : {
996
+ popup : '.ui.popup'
997
+ },
998
+
999
+ templates: {
1000
+ escape: function(string) {
1001
+ var
1002
+ badChars = /[&<>"'`]/g,
1003
+ shouldEscape = /[&<>"'`]/,
1004
+ escape = {
1005
+ "&": "&amp;",
1006
+ "<": "&lt;",
1007
+ ">": "&gt;",
1008
+ '"': "&quot;",
1009
+ "'": "&#x27;",
1010
+ "`": "&#x60;"
1011
+ },
1012
+ escapedChar = function(chr) {
1013
+ return escape[chr];
1014
+ }
1015
+ ;
1016
+ if(shouldEscape.test(string)) {
1017
+ return string.replace(badChars, escapedChar);
1018
+ }
1019
+ return string;
1020
+ },
1021
+ popup: function(text) {
1022
+ var
1023
+ html = '',
1024
+ escape = $.fn.popup.settings.templates.escape
1025
+ ;
1026
+ if(typeof text !== undefined) {
1027
+ if(typeof text.title !== undefined && text.title) {
1028
+ text.title = escape(text.title);
1029
+ html += '<div class="header">' + text.title + '</div>';
1030
+ }
1031
+ if(typeof text.content !== undefined && text.content) {
1032
+ text.content = escape(text.content);
1033
+ html += '<div class="content">' + text.content + '</div>';
1034
+ }
1035
+ }
1036
+ return html;
1037
+ }
1038
+ }
1039
+
1040
+ };
1041
+
1042
+ // Adds easing
1043
+ $.extend( $.easing, {
1044
+ easeOutQuad: function (x, t, b, c, d) {
1045
+ return -c *(t/=d)*(t-2) + b;
1046
+ }
1047
+ });
1048
+
1049
+
1050
+ })( jQuery, window , document );