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,27 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ // !!! AUTOMATICALLY GENERATED FILE. BE CAREFUL WHEN YOU MERGING CHANGES !!! //
3
+ ///////////////////////////////////////////////////////////////////////////////
4
+
5
+ //= require semantic_ui/definitions/modules/accordion.js
6
+ //= require semantic_ui/definitions/behaviors/api.js
7
+ //= require semantic_ui/definitions/modules/checkbox.js
8
+ //= require semantic_ui/definitions/behaviors/colorize.js
9
+ //= require semantic_ui/definitions/modules/dimmer.js
10
+ //= require semantic_ui/definitions/modules/dropdown.js
11
+ //= require semantic_ui/definitions/behaviors/form.js
12
+ //= require semantic_ui/definitions/modules/modal.js
13
+ //= require semantic_ui/definitions/modules/nag.js
14
+ //= require semantic_ui/definitions/modules/popup.js
15
+ //= require semantic_ui/definitions/modules/progress.js
16
+ //= require semantic_ui/definitions/modules/rating.js
17
+ //= require semantic_ui/definitions/modules/search.js
18
+ //= require semantic_ui/definitions/modules/shape.js
19
+ //= require semantic_ui/definitions/modules/sidebar.js
20
+ //= require semantic_ui/definitions/globals/site.js
21
+ //= require semantic_ui/definitions/behaviors/state.js
22
+ //= require semantic_ui/definitions/modules/sticky.js
23
+ //= require semantic_ui/definitions/modules/tab.js
24
+ //= require semantic_ui/definitions/modules/transition.js
25
+ //= require semantic_ui/definitions/modules/video.js
26
+ //= require semantic_ui/definitions/behaviors/visibility.js
27
+ //= require semantic_ui/definitions/behaviors/visit.js
@@ -0,0 +1,87 @@
1
+
2
+
3
+ /*******************************
4
+ Folders
5
+ *******************************/
6
+
7
+ /* Path to theme packages */
8
+ @themesFolder : 'semantic_ui/themes/';
9
+
10
+ /* Path to site override folder */
11
+ @siteFolder : 'semantic_ui/config/';
12
+
13
+
14
+ /*******************************
15
+ Theme Selection
16
+ *******************************/
17
+
18
+ /* To override a theme for an individual element
19
+ specify theme name below
20
+
21
+ Be sure to update the user folder name (see README)
22
+ */
23
+
24
+ /* Global */
25
+ @site : 'default';
26
+ @reset : 'default';
27
+
28
+ /* Elements */
29
+ @button : 'default';
30
+ @container : 'default';
31
+ @icon : 'default';
32
+ @divider : 'default';
33
+ @flag : 'default';
34
+ @header : 'default';
35
+ @image : 'default';
36
+ @input : 'default';
37
+ @label : 'default';
38
+ @list : 'default';
39
+ @loader : 'default';
40
+ @progress : 'default';
41
+ @rail : 'default';
42
+ @reveal : 'default';
43
+ @segment : 'default';
44
+ @step : 'default';
45
+
46
+ /* Collections */
47
+ @breadcrumb : 'default';
48
+ @form : 'default';
49
+ @grid : 'default';
50
+ @menu : 'default';
51
+ @message : 'default';
52
+ @table : 'default';
53
+
54
+ /* Modules */
55
+ @accordion : 'default';
56
+ @chatroom : 'default';
57
+ @checkbox : 'default';
58
+ @dimmer : 'default';
59
+ @dropdown : 'default';
60
+ @modal : 'default';
61
+ @nag : 'default';
62
+ @popup : 'default';
63
+ @rating : 'default';
64
+ @search : 'default';
65
+ @shape : 'default';
66
+ @sidebar : 'default';
67
+ @sticky : 'default';
68
+ @tab : 'default';
69
+ @transition : 'default';
70
+ @video : 'default';
71
+
72
+ /* Views */
73
+ @ad : 'default';
74
+ @card : 'default';
75
+ @comment : 'default';
76
+ @feed : 'default';
77
+ @item : 'default';
78
+ @statistic : 'default';
79
+
80
+
81
+ /*******************************
82
+ Import Theme
83
+ *******************************/
84
+
85
+ @import "semantic_ui/theme.less";
86
+
87
+ /* End Config */
@@ -0,0 +1,2 @@
1
+ require 'less-rails'
2
+ require 'less/rails/semantic_ui/engine'
@@ -0,0 +1,18 @@
1
+ require 'rails'
2
+
3
+ module Less
4
+ module Rails
5
+ module SemanticUI
6
+ class Engine < ::Rails::Engine
7
+
8
+ initializer 'less-rails-semantic_ui.assets.precompile' do |app|
9
+ %w(stylesheets javascripts fonts images).each do |sub|
10
+ app.config.assets.paths << root.join('assets', sub).to_s
11
+ end
12
+ app.config.assets.precompile << %r(semantic_ui/themes/.*\.(?:eot|svg|ttf|woff|png|gif)$)
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ log/
@@ -0,0 +1 @@
1
+ //= require semantic_ui/semantic_ui
@@ -0,0 +1,4 @@
1
+ /*
2
+ *= require semantic_ui/semantic_ui
3
+ */
4
+
@@ -0,0 +1,20 @@
1
+ require 'action_controller/railtie'
2
+ require 'action_view/railtie'
3
+ require 'sprockets/railtie'
4
+
5
+ require 'less/rails/semantic_ui'
6
+
7
+ module Dummy
8
+ class Application < ::Rails::Application
9
+
10
+ config.root = __dir__
11
+ config.active_support.deprecation = :stderr
12
+ config.cache_store = :memory_store
13
+ config.consider_all_requests_local = true
14
+ config.eager_load = false
15
+
16
+ config.assets.configure do |env|
17
+ env.cache = ActiveSupport::Cache.lookup_store(:memory_store)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+ require 'rails/generators/testing/behaviour'
3
+ require 'generators/semantic_ui/install/install_generator'
4
+
5
+ describe SemanticUi::InstallGenerator do
6
+ include FileUtils
7
+
8
+ let(:generator) { SemanticUi::InstallGenerator }
9
+
10
+ let(:dummy_app) { Dummy::Application }
11
+ let(:dummy_assets) { dummy_app.assets }
12
+ let(:dummy_app_root) { File.expand_path('../dummy_app', __dir__) }
13
+
14
+ before_all do
15
+ capture(:stdout) do
16
+ generator.start([], destination_root: dummy_app_root)
17
+ end
18
+
19
+ dummy_app.initialize! unless dummy_app.initialized?
20
+ end
21
+
22
+ after_all do
23
+ rm_rf File.join(dummy_app.config.root, 'vendor')
24
+ end
25
+
26
+ describe 'installed files' do
27
+
28
+ helper :file_exists? do |file|
29
+ assert(File.exists?(file)) == true
30
+ end
31
+
32
+ let(:javascripts_dir) { File.join(dummy_app_root, 'vendor', 'assets', 'javascripts') }
33
+ let(:stylesheets_dir) { File.join(dummy_app_root, 'vendor', 'assets', 'stylesheets') }
34
+
35
+ it 'has semantic_ui.js' do
36
+ expect(File.join(javascripts_dir, 'semantic_ui', 'semantic_ui.js')).file_exists?
37
+ end
38
+
39
+ it 'has semantic_ui.css' do
40
+ expect(File.join(stylesheets_dir, 'semantic_ui', 'semantic_ui.css')).file_exists?
41
+ end
42
+
43
+ it 'has theme.config' do
44
+ expect(File.join(stylesheets_dir, 'semantic_ui', 'theme.config')).file_exists?
45
+ end
46
+
47
+ it 'has config/**/*.overrides' do
48
+ expect(Dir[File.join(stylesheets_dir, 'semantic_ui', 'config', '**', '*.overrides')]).is.not.empty?
49
+ end
50
+
51
+ it 'has config/**/*.variables' do
52
+ expect(Dir[File.join(stylesheets_dir, 'semantic_ui', 'config', '**', '*.variables')]).is.not.empty?
53
+ end
54
+
55
+ end
56
+
57
+ describe 'application.css' do
58
+ let(:application_css) { dummy_assets['application.css'].to_s.strip }
59
+
60
+ it 'should include semantic_ui.css' do
61
+ expect(application_css).to.include?('.ui.button')
62
+ end
63
+
64
+ it 'should include correct paths to images' do
65
+ expect(application_css).to.include?('/semantic_ui/themes/default/assets/images/flags.png')
66
+ end
67
+
68
+ it 'should include correct paths to fonts' do
69
+ expect(application_css).to.include?('/semantic_ui/themes/default/assets/fonts/icons.ttf')
70
+ end
71
+ end
72
+
73
+ describe 'application.js' do
74
+ let(:application_js) { dummy_assets['application.js'].to_s.strip }
75
+
76
+ it 'should include semantic_ui.js' do
77
+ expect(application_js).to.include?('$.site')
78
+ end
79
+ end
80
+ end
@@ -0,0 +1 @@
1
+ require 'dummy_app/init'
@@ -0,0 +1,11 @@
1
+ /*
2
+ *******************************************************************************
3
+ ** !!! AUTOMATICALLY GENERATED FILE. BE CAREFUL WHEN YOU MERGING CHANGES !!! **
4
+ *******************************************************************************
5
+ */
6
+
7
+ /*
8
+ <% for relative_path in relative_paths -%>
9
+ *= require <%= relative_path %>
10
+ <% end -%>
11
+ */
@@ -0,0 +1,7 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ // !!! AUTOMATICALLY GENERATED FILE. BE CAREFUL WHEN YOU MERGING CHANGES !!! //
3
+ ///////////////////////////////////////////////////////////////////////////////
4
+
5
+ <% for relative_path in relative_paths -%>
6
+ //= require <%= relative_path %>
7
+ <% end -%>
@@ -0,0 +1,245 @@
1
+ require 'pathname'
2
+ require 'json'
3
+ require 'active_support/all'
4
+
5
+ namespace :update do
6
+
7
+ desc 'Update Semantic UI version'
8
+ task :version, [:version] do |_, args|
9
+ version = args[:version]
10
+
11
+ checkout_repository
12
+ choose_version(version)
13
+
14
+ transform_sources
15
+ end
16
+
17
+ def paths
18
+ @gem_paths ||= Paths.new
19
+ end
20
+
21
+ def checkout_repository
22
+ if Dir.exist?(paths.tmp_semantic_ui)
23
+ sh %Q{cd '#{paths.tmp_semantic_ui}' && git fetch --quiet}
24
+ else
25
+ sh %Q{git clone --quiet git@github.com:Semantic-Org/Semantic-UI.git '#{paths.tmp_semantic_ui}'}
26
+ end
27
+ end
28
+
29
+ def choose_version(version)
30
+ sh %Q{cd '#{paths.tmp_semantic_ui}' && git checkout --quiet #{version}}
31
+ end
32
+
33
+ def transform_sources
34
+ transform_definitions
35
+ transform_themes
36
+
37
+ apply_patches
38
+
39
+ generate_semantic_ui_js
40
+ generate_semantic_ui_css
41
+ end
42
+
43
+ def transform_definitions
44
+ Dir[File.join(paths.tmp_semantic_ui_definitions, '**/*.js')].each do |src|
45
+ copy_tree(src, File.dirname(paths.tmp_semantic_ui_definitions), paths.javascripts)
46
+ end
47
+
48
+ Dir[File.join(paths.tmp_semantic_ui_definitions, '**/*.less')].each do |src|
49
+ copy_tree(src, File.dirname(paths.tmp_semantic_ui_definitions), paths.stylesheets)
50
+ end
51
+ end
52
+
53
+ def transform_themes
54
+ Dir[File.join(paths.tmp_semantic_ui_themes, '**/*.{eot,otf,svg,ttf,woff}')].each do |src|
55
+ copy_tree(src, File.dirname(paths.tmp_semantic_ui_themes), paths.fonts)
56
+ end
57
+
58
+ Dir[File.join(paths.tmp_semantic_ui_themes, '**/*.{png,gif}')].each do |src|
59
+ copy_tree(src, File.dirname(paths.tmp_semantic_ui_themes), paths.images)
60
+ end
61
+
62
+ Dir[File.join(paths.tmp_semantic_ui_themes, '**/*.{overrides,variables}')].each do |src|
63
+ copy_tree(src, File.dirname(paths.tmp_semantic_ui_themes), paths.stylesheets)
64
+ end
65
+
66
+ cp(File.join(paths.tmp_semantic_ui_src, 'theme.less'), paths.stylesheets)
67
+
68
+ cp(File.join(paths.tmp_semantic_ui_src, 'theme.config.example'), File.join(paths.generator_templates, 'theme.config'))
69
+
70
+ Dir[File.join(paths.tmp_semantic_ui_site, '**/*.{overrides,variables}')].each do |src|
71
+ copy_tree(src, paths.tmp_semantic_ui_site, File.join(paths.generator_templates, 'config'))
72
+ end
73
+ end
74
+
75
+ def apply_patches
76
+ patch_crlf_to_lf
77
+
78
+ patch_theme_config
79
+ patch_paths_to_theme_config
80
+ patch_dependencies_in_less
81
+
82
+ patch_asset_paths
83
+ patch_asset_helpers
84
+ end
85
+
86
+ def patch_crlf_to_lf
87
+ patch(File.join(paths.javascripts, '**/*')) do |content|
88
+ content.encode(content.encoding, universal_newline: true)
89
+ end
90
+
91
+ patch(File.join(paths.stylesheets, '**/*')) do |content|
92
+ content.encode(content.encoding, universal_newline: true)
93
+ end
94
+ end
95
+
96
+ def patch_theme_config
97
+ theme_config_file = File.join(paths.generator_templates, 'theme.config')
98
+
99
+ patch(theme_config_file) do |content|
100
+ content = must_be_changed(content) { |c| c.sub(%r{\/\*.*?\*\/}m, '') }
101
+ content = must_be_changed(content) { |c| c.gsub(%q{@themesFolder : 'themes/';}, %q{@themesFolder : 'semantic_ui/themes/';}) }
102
+ content = must_be_changed(content) { |c| c.gsub(%q{@siteFolder : '_site/';}, %q{@siteFolder : 'semantic_ui/config/';}) }
103
+ must_be_changed(content) { |c| c.gsub(%q{@import "theme.less";}, %q{@import "semantic_ui/theme.less";}) }
104
+ end
105
+ end
106
+
107
+ def patch_paths_to_theme_config
108
+ patch(File.join(paths.stylesheets, 'definitions', '**/*.less')) do |content|
109
+ must_be_changed(content) { |c| c.gsub(%q{@import '../../theme.config';}, %q{@import 'semantic_ui/theme.config';}) }
110
+ end
111
+ end
112
+
113
+ def patch_dependencies_in_less
114
+ patch(File.join(paths.stylesheets, 'definitions', '**/*.less')) do |content|
115
+ if /@type\s*:\s*'(?<type>.*)'/ =~ content && /@element\s*:\s*'(?<element>.*)'/ =~ content
116
+ header = <<-HEADER.strip_heredoc
117
+ /*
118
+ *= depend_on semantic_ui/theme.config
119
+ *= depend_on semantic_ui/config/#{type.pluralize}/#{element}.overrides
120
+ *= depend_on semantic_ui/config/#{type.pluralize}/#{element}.variables
121
+ */
122
+
123
+ HEADER
124
+
125
+ content = header + content
126
+ end
127
+ content
128
+ end
129
+ end
130
+
131
+ def patch_asset_paths
132
+ patch(File.join(paths.stylesheets, 'themes', '**/*.variables')) do |content|
133
+ content.gsub(%r{^(@\w+Path\s*:\s*")\.\.\/\.\.(.*";)$}, %q{\1semantic_ui\2})
134
+ end
135
+ end
136
+
137
+ def patch_asset_helpers
138
+ patch(File.join(paths.stylesheets, 'definitions', '**/*.less')) do |content|
139
+ content.gsub(%r{(url\()}, %q{asset-\1})
140
+ end
141
+ end
142
+
143
+ def generate_semantic_ui_js
144
+ relative_paths = search_relative_paths(File.join(paths.tmp_semantic_ui_definitions, '**/*.js'), paths.tmp_semantic_ui_src)
145
+ relative_paths = relative_paths.map { |relative_path| File.join('semantic_ui', relative_path) }
146
+
147
+ content = ErbRenderer.render_file(File.join('templates', 'semantic_ui.js.erb'), relative_paths: relative_paths)
148
+ File.write(File.join(paths.generator_templates, 'semantic_ui.js'), content)
149
+ end
150
+
151
+ def generate_semantic_ui_css
152
+ relative_paths = search_relative_paths(File.join(paths.tmp_semantic_ui_definitions, '**/*.less'), paths.tmp_semantic_ui_src)
153
+ relative_paths = relative_paths.map { |relative_path| File.join('semantic_ui', relative_path) }
154
+
155
+ content = ErbRenderer.render_file(File.join('templates', 'semantic_ui.css.erb'), relative_paths: relative_paths)
156
+ File.write(File.join(paths.generator_templates, 'semantic_ui.css'), content)
157
+ end
158
+
159
+ def search_relative_paths(file_pattern, base_dir)
160
+ less_files = Dir[file_pattern].sort_by { |less_file| File.basename(less_file) }
161
+
162
+ relative_paths = less_files.map do |less_file|
163
+ Pathname(less_file).relative_path_from(Pathname(base_dir))
164
+ end
165
+ relative_paths.compact
166
+ end
167
+
168
+ private
169
+
170
+ def copy_tree(src, src_dir, dest_dir)
171
+ dest_relative = Pathname(src).relative_path_from(Pathname(src_dir))
172
+ dest = File.join(dest_dir, dest_relative)
173
+
174
+ mkdir_p File.dirname(dest) unless Dir.exist?(File.dirname(dest))
175
+ cp_r src, dest
176
+ end
177
+
178
+ def patch(file_pattern, &block)
179
+ Dir[file_pattern].each do |file|
180
+ next if File.directory?(file)
181
+
182
+ File.write(file, File.open(file) { |f| block.call(f.read) })
183
+ end
184
+ end
185
+
186
+ def must_be_changed(content, &block)
187
+ new_content = block.call(content)
188
+ raise 'Content must be changed' if new_content == content
189
+ new_content
190
+ end
191
+
192
+ class Paths
193
+ attr_reader :root
194
+ attr_reader :config
195
+
196
+ attr_reader :tmp
197
+ attr_reader :tmp_semantic_ui
198
+ attr_reader :tmp_semantic_ui_src
199
+ attr_reader :tmp_semantic_ui_definitions
200
+ attr_reader :tmp_semantic_ui_themes
201
+ attr_reader :tmp_semantic_ui_site
202
+
203
+ attr_reader :fonts
204
+ attr_reader :images
205
+ attr_reader :javascripts
206
+ attr_reader :stylesheets
207
+
208
+ attr_reader :generator_templates
209
+
210
+ def initialize
211
+ @root = File.expand_path('..', __dir__)
212
+ @config = File.join(@root, 'config')
213
+
214
+ @tmp = File.join(@root, 'tmp')
215
+ @tmp_semantic_ui = File.join(@tmp, 'semantic-ui')
216
+ @tmp_semantic_ui_src = File.join(@tmp_semantic_ui, 'src')
217
+ @tmp_semantic_ui_definitions = File.join(@tmp_semantic_ui_src, 'definitions')
218
+ @tmp_semantic_ui_themes = File.join(@tmp_semantic_ui_src, 'themes')
219
+ @tmp_semantic_ui_site = File.join(@tmp_semantic_ui_src, '_site')
220
+
221
+ @fonts = File.join(@root, 'assets', 'fonts', 'semantic_ui')
222
+ @images = File.join(@root, 'assets', 'images', 'semantic_ui')
223
+ @javascripts = File.join(@root, 'assets', 'javascripts', 'semantic_ui')
224
+ @stylesheets = File.join(@root, 'assets', 'stylesheets', 'semantic_ui')
225
+
226
+ @generator_templates = File.join(@root, 'lib', 'generators', 'semantic_ui', 'install', 'templates')
227
+ end
228
+ end
229
+
230
+ class ErbRenderer < OpenStruct
231
+ def self.render(template, values = {})
232
+ ErbRenderer.new(values).render(template)
233
+ end
234
+
235
+ def self.render_file(file, values = {})
236
+ template = File.expand_path(file, __dir__)
237
+ ErbRenderer.new(values).render(File.read(template))
238
+ end
239
+
240
+ def render(template)
241
+ ERB.new(template, nil, '-').result(binding)
242
+ end
243
+ end
244
+
245
+ end