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,839 @@
1
+ /*
2
+ * # Semantic - API
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributor
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+ ;(function ( $, window, document, undefined ) {
13
+
14
+ $.api = $.fn.api = function(parameters) {
15
+
16
+ var
17
+ // use window context if none specified
18
+ $allModules = $.isFunction(this)
19
+ ? $(window)
20
+ : $(this),
21
+ moduleSelector = $allModules.selector || '',
22
+ time = new Date().getTime(),
23
+ performance = [],
24
+
25
+ query = arguments[0],
26
+ methodInvoked = (typeof query == 'string'),
27
+ queryArguments = [].slice.call(arguments, 1),
28
+
29
+ returnedValue
30
+ ;
31
+
32
+ $allModules
33
+ .each(function() {
34
+ var
35
+ settings = ( $.isPlainObject(parameters) )
36
+ ? $.extend(true, {}, $.fn.api.settings, parameters)
37
+ : $.extend({}, $.fn.api.settings),
38
+
39
+ // internal aliases
40
+ namespace = settings.namespace,
41
+ metadata = settings.metadata,
42
+ selector = settings.selector,
43
+ error = settings.error,
44
+ className = settings.className,
45
+
46
+ // define namespaces for modules
47
+ eventNamespace = '.' + namespace,
48
+ moduleNamespace = 'module-' + namespace,
49
+
50
+ // element that creates request
51
+ $module = $(this),
52
+ $form = $module.closest(selector.form),
53
+
54
+ // context used for state
55
+ $context = (settings.stateContext)
56
+ ? $(settings.stateContext)
57
+ : $module,
58
+
59
+ // request details
60
+ ajaxSettings,
61
+ requestSettings,
62
+ url,
63
+ data,
64
+
65
+ // standard module
66
+ element = this,
67
+ context = $context.get(),
68
+ instance = $module.data(moduleNamespace),
69
+ module
70
+ ;
71
+
72
+ module = {
73
+
74
+ initialize: function() {
75
+ var
76
+ triggerEvent = module.get.event()
77
+ ;
78
+ // bind events
79
+ if(!methodInvoked) {
80
+ if( triggerEvent ) {
81
+ module.debug('Attaching API events to element', triggerEvent);
82
+ $module
83
+ .on(triggerEvent + eventNamespace, module.event.trigger)
84
+ ;
85
+ }
86
+ else {
87
+ module.query();
88
+ }
89
+ }
90
+ module.instantiate();
91
+ },
92
+
93
+ instantiate: function() {
94
+ module.verbose('Storing instance of module', module);
95
+ instance = module;
96
+ $module
97
+ .data(moduleNamespace, instance)
98
+ ;
99
+ },
100
+
101
+ destroy: function() {
102
+ module.verbose('Destroying previous module for', element);
103
+ $module
104
+ .removeData(moduleNamespace)
105
+ .off(eventNamespace)
106
+ ;
107
+ },
108
+
109
+ query: function() {
110
+
111
+ if(module.is.disabled()) {
112
+ module.debug('Element is disabled API request aborted');
113
+ return;
114
+ }
115
+ // determine if an api event already occurred
116
+ if(module.is.loading() && settings.throttle === 0 ) {
117
+ module.debug('Cancelling request, previous request is still pending');
118
+ return;
119
+ }
120
+
121
+ // pass element metadata to url (value, text)
122
+ if(settings.defaultData) {
123
+ $.extend(true, settings.urlData, module.get.defaultData());
124
+ }
125
+
126
+ // Add form content
127
+ if(settings.serializeForm !== false || $context.is('form')) {
128
+ if(settings.serializeForm == 'json') {
129
+ $.extend(true, settings.data, module.get.formData());
130
+ }
131
+ else {
132
+ settings.data = module.get.formData();
133
+ }
134
+ }
135
+
136
+ // call beforesend and get any settings changes
137
+ requestSettings = module.get.settings();
138
+
139
+ // check if beforesend cancelled request
140
+ if(requestSettings === false) {
141
+ module.error(error.beforeSend);
142
+ return;
143
+ }
144
+
145
+ if(settings.url) {
146
+ // override with url if specified
147
+ module.debug('Using specified url', url);
148
+ url = module.add.urlData( settings.url );
149
+ }
150
+ else {
151
+ // otherwise find url from api endpoints
152
+ url = module.add.urlData( module.get.templateURL() );
153
+ module.debug('Added URL Data to url', url);
154
+ }
155
+
156
+ // exit conditions reached, missing url parameters
157
+ if( !url ) {
158
+ if($module.is('form')) {
159
+ module.debug('No url or action specified, defaulting to form action');
160
+ url = $module.attr('action');
161
+ }
162
+ else {
163
+ module.error(error.missingURL, settings.action);
164
+ return;
165
+ }
166
+ }
167
+
168
+ // add loading state
169
+ module.set.loading();
170
+
171
+ // look for jQuery ajax parameters in settings
172
+ ajaxSettings = $.extend(true, {}, settings, {
173
+ type : settings.method || settings.type,
174
+ data : data,
175
+ url : settings.base + url,
176
+ beforeSend : settings.beforeXHR,
177
+ success : function() {},
178
+ failure : function() {},
179
+ complete : function() {}
180
+ });
181
+
182
+ module.verbose('Creating AJAX request with settings', ajaxSettings);
183
+
184
+ if( !module.is.loading() ) {
185
+ module.request = module.create.request();
186
+ module.xhr = module.create.xhr();
187
+ }
188
+ else {
189
+ // throttle additional requests
190
+ module.timer = setTimeout(function() {
191
+ module.request = module.create.request();
192
+ module.xhr = module.create.xhr();
193
+ }, settings.throttle);
194
+ }
195
+
196
+ },
197
+
198
+
199
+ is: {
200
+ disabled: function() {
201
+ return ($module.filter(settings.filter).size() > 0);
202
+ },
203
+ loading: function() {
204
+ return (module.request && module.request.state() == 'pending');
205
+ }
206
+ },
207
+
208
+ was: {
209
+ succesful: function() {
210
+ return (module.request && module.request.state() == 'resolved');
211
+ },
212
+ failure: function() {
213
+ return (module.request && module.request.state() == 'rejected');
214
+ },
215
+ complete: function() {
216
+ return (module.request && (module.request.state() == 'resolved' || module.request.state() == 'rejected') );
217
+ }
218
+ },
219
+
220
+ add: {
221
+ urlData: function(url, urlData) {
222
+ var
223
+ requiredVariables,
224
+ optionalVariables
225
+ ;
226
+ if(url) {
227
+ requiredVariables = url.match(settings.regExp.required);
228
+ optionalVariables = url.match(settings.regExp.optional);
229
+ urlData = urlData || settings.urlData;
230
+ if(requiredVariables) {
231
+ module.debug('Looking for required URL variables', requiredVariables);
232
+ $.each(requiredVariables, function(index, templatedString) {
233
+ var
234
+ // allow legacy {$var} style
235
+ variable = (templatedString.indexOf('$') !== -1)
236
+ ? templatedString.substr(2, templatedString.length - 3)
237
+ : templatedString.substr(1, templatedString.length - 2),
238
+ value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
239
+ ? urlData[variable]
240
+ : ($module.data(variable) !== undefined)
241
+ ? $module.data(variable)
242
+ : ($context.data(variable) !== undefined)
243
+ ? $context.data(variable)
244
+ : urlData[variable]
245
+ ;
246
+ // remove value
247
+ if(value === undefined) {
248
+ module.error(error.requiredParameter, variable, url);
249
+ url = false;
250
+ return false;
251
+ }
252
+ else {
253
+ module.verbose('Found required variable', variable, value);
254
+ url = url.replace(templatedString, value);
255
+ }
256
+ });
257
+ }
258
+ if(optionalVariables) {
259
+ module.debug('Looking for optional URL variables', requiredVariables);
260
+ $.each(optionalVariables, function(index, templatedString) {
261
+ var
262
+ // allow legacy {/$var} style
263
+ variable = (templatedString.indexOf('$') !== -1)
264
+ ? templatedString.substr(3, templatedString.length - 4)
265
+ : templatedString.substr(2, templatedString.length - 3),
266
+ value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
267
+ ? urlData[variable]
268
+ : ($module.data(variable) !== undefined)
269
+ ? $module.data(variable)
270
+ : ($context.data(variable) !== undefined)
271
+ ? $context.data(variable)
272
+ : urlData[variable]
273
+ ;
274
+ // optional replacement
275
+ if(value !== undefined) {
276
+ module.verbose('Optional variable Found', variable, value);
277
+ url = url.replace(templatedString, value);
278
+ }
279
+ else {
280
+ module.verbose('Optional variable not found', variable);
281
+ // remove preceding slash if set
282
+ if(url.indexOf('/' + templatedString) !== -1) {
283
+ url = url.replace('/' + templatedString, '');
284
+ }
285
+ else {
286
+ url = url.replace(templatedString, '');
287
+ }
288
+ }
289
+ });
290
+ }
291
+ }
292
+ return url;
293
+ }
294
+ },
295
+
296
+ event: {
297
+ trigger: function(event) {
298
+ module.query();
299
+ if(event.type == 'submit' || event.type == 'click') {
300
+ event.preventDefault();
301
+ }
302
+ },
303
+ xhr: {
304
+ always: function() {
305
+ // calculate if loading time was below minimum threshold
306
+ },
307
+ done: function(response) {
308
+ var
309
+ context = this,
310
+ elapsedTime = (new Date().getTime() - time),
311
+ timeLeft = (settings.loadingDuration - elapsedTime)
312
+ ;
313
+ timeLeft = (timeLeft > 0)
314
+ ? timeLeft
315
+ : 0
316
+ ;
317
+ setTimeout(function() {
318
+ module.request.resolveWith(context, [response]);
319
+ }, timeLeft);
320
+ },
321
+ fail: function(xhr, status, httpMessage) {
322
+ var
323
+ context = this,
324
+ elapsedTime = (new Date().getTime() - time),
325
+ timeLeft = (settings.loadingDuration - elapsedTime)
326
+ ;
327
+ timeLeft = (timeLeft > 0)
328
+ ? timeLeft
329
+ : 0
330
+ ;
331
+ // page triggers abort on navigation, dont show error
332
+ setTimeout(function() {
333
+ if(status !== 'abort') {
334
+ module.request.rejectWith(context, [xhr, status, httpMessage]);
335
+ }
336
+ else {
337
+ module.reset();
338
+ }
339
+ }, timeLeft);
340
+ }
341
+ },
342
+ request: {
343
+ complete: function(response) {
344
+ module.remove.loading();
345
+ $.proxy(settings.onComplete, context)(response, $module);
346
+ },
347
+ done: function(response) {
348
+ module.debug('API Response Received', response);
349
+ if(settings.dataType == 'json') {
350
+ if( $.isFunction(settings.successTest) ) {
351
+ module.debug('Checking JSON returned success', settings.successTest, response);
352
+ if( settings.successTest(response) ) {
353
+ $.proxy(settings.onSuccess, context)(response, $module);
354
+ }
355
+ else {
356
+ module.debug('JSON test specified by user and response failed', response);
357
+ $.proxy(settings.onFailure, context)(response, $module);
358
+ }
359
+ }
360
+ else {
361
+ $.proxy(settings.onSuccess, context)(response, $module);
362
+ }
363
+ }
364
+ else {
365
+ $.proxy(settings.onSuccess, context)(response, $module);
366
+ }
367
+ },
368
+ error: function(xhr, status, httpMessage) {
369
+ var
370
+ errorMessage = (settings.error[status] !== undefined)
371
+ ? settings.error[status]
372
+ : httpMessage,
373
+ response
374
+ ;
375
+ // let em know unless request aborted
376
+ if(xhr !== undefined) {
377
+ // readyState 4 = done, anything less is not really sent
378
+ if(xhr.readyState !== undefined && xhr.readyState == 4) {
379
+
380
+ // if http status code returned and json returned error, look for it
381
+ if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
382
+ module.error(error.statusMessage + httpMessage);
383
+ }
384
+ else {
385
+ if(status == 'error' && settings.dataType == 'json') {
386
+ try {
387
+ response = $.parseJSON(xhr.responseText);
388
+ if(response && response.error !== undefined) {
389
+ errorMessage = response.error;
390
+ }
391
+ }
392
+ catch(e) {
393
+ module.error(error.JSONParse);
394
+ }
395
+ }
396
+ }
397
+ module.remove.loading();
398
+ module.set.error();
399
+ // show error state only for duration specified in settings
400
+ if(settings.errorDuration) {
401
+ setTimeout(module.remove.error, settings.errorDuration);
402
+ }
403
+ module.debug('API Request error:', errorMessage);
404
+ $.proxy(settings.onError, context)(errorMessage, context);
405
+ }
406
+ else {
407
+ $.proxy(settings.onAbort, context)(errorMessage, context);
408
+ module.debug('Request Aborted (Most likely caused by page change or CORS Policy)', status, httpMessage);
409
+ }
410
+ }
411
+ }
412
+ }
413
+ },
414
+
415
+ create: {
416
+ request: function() {
417
+ return $.Deferred()
418
+ .always(module.event.request.complete)
419
+ .done(module.event.request.done)
420
+ .fail(module.event.request.error)
421
+ ;
422
+ },
423
+ xhr: function() {
424
+ $.ajax(ajaxSettings)
425
+ .always(module.event.xhr.always)
426
+ .done(module.event.xhr.done)
427
+ .fail(module.event.xhr.fail)
428
+ ;
429
+ }
430
+ },
431
+
432
+ set: {
433
+ error: function() {
434
+ module.verbose('Adding error state to element', $context);
435
+ $context.addClass(className.error);
436
+ },
437
+ loading: function() {
438
+ module.verbose('Adding loading state to element', $context);
439
+ $context.addClass(className.loading);
440
+ }
441
+ },
442
+
443
+ remove: {
444
+ error: function() {
445
+ module.verbose('Removing error state from element', $context);
446
+ $context.removeClass(className.error);
447
+ },
448
+ loading: function() {
449
+ module.verbose('Removing loading state from element', $context);
450
+ $context.removeClass(className.loading);
451
+ }
452
+ },
453
+
454
+ get: {
455
+ request: function() {
456
+ return module.request || false;
457
+ },
458
+ xhr: function() {
459
+ return module.xhr || false;
460
+ },
461
+ settings: function() {
462
+ var
463
+ runSettings
464
+ ;
465
+ runSettings = $.proxy(settings.beforeSend, $module)(settings);
466
+ if(runSettings) {
467
+ if(runSettings.success !== undefined) {
468
+ module.debug('Legacy success callback detected', runSettings);
469
+ module.error(error.legacyParameters, runSettings.success);
470
+ runSettings.onSuccess = runSettings.success;
471
+ }
472
+ if(runSettings.failure !== undefined) {
473
+ module.debug('Legacy failure callback detected', runSettings);
474
+ module.error(error.legacyParameters, runSettings.failure);
475
+ runSettings.onFailure = runSettings.failure;
476
+ }
477
+ if(runSettings.complete !== undefined) {
478
+ module.debug('Legacy complete callback detected', runSettings);
479
+ module.error(error.legacyParameters, runSettings.complete);
480
+ runSettings.onComplete = runSettings.complete;
481
+ }
482
+ }
483
+ if(runSettings === undefined) {
484
+ module.error(error.noReturnedValue);
485
+ }
486
+ return (runSettings !== undefined)
487
+ ? runSettings
488
+ : settings
489
+ ;
490
+ },
491
+ defaultData: function() {
492
+ var
493
+ data = {}
494
+ ;
495
+ if( !$.isWindow(element) ) {
496
+ if( $module.is('input') ) {
497
+ data.value = $module.val();
498
+ }
499
+ else if( $module.is('form') ) {
500
+
501
+ }
502
+ else {
503
+ data.text = $module.text();
504
+ }
505
+ }
506
+ return data;
507
+ },
508
+ event: function() {
509
+ if( $.isWindow(element) || settings.on == 'now' ) {
510
+ module.debug('API called without element, no events attached');
511
+ return false;
512
+ }
513
+ else if(settings.on == 'auto') {
514
+ if( $module.is('input') ) {
515
+ return (element.oninput !== undefined)
516
+ ? 'input'
517
+ : (element.onpropertychange !== undefined)
518
+ ? 'propertychange'
519
+ : 'keyup'
520
+ ;
521
+ }
522
+ else if( $module.is('form') ) {
523
+ return 'submit';
524
+ }
525
+ else {
526
+ return 'click';
527
+ }
528
+ }
529
+ else {
530
+ return settings.on;
531
+ }
532
+ },
533
+ formData: function() {
534
+ var
535
+ formData
536
+ ;
537
+ if($(this).serializeObject() !== undefined) {
538
+ formData = $form.serializeObject();
539
+ }
540
+ else {
541
+ module.error(error.missingSerialize);
542
+ formData = $form.serialize();
543
+ }
544
+ module.debug('Retrieved form data', formData);
545
+ return formData;
546
+ },
547
+ templateURL: function(action) {
548
+ var
549
+ url
550
+ ;
551
+ action = action || $module.data(settings.metadata.action) || settings.action || false;
552
+ if(action) {
553
+ module.debug('Looking up url for action', action, settings.api);
554
+ if(settings.api[action] !== undefined) {
555
+ url = settings.api[action];
556
+ module.debug('Found template url', url);
557
+ }
558
+ else {
559
+ module.error(error.missingAction, settings.action, settings.api);
560
+ }
561
+ }
562
+ return url;
563
+ }
564
+ },
565
+
566
+ // reset state
567
+ reset: function() {
568
+ module.remove.error();
569
+ module.remove.loading();
570
+ },
571
+
572
+ setting: function(name, value) {
573
+ module.debug('Changing setting', name, value);
574
+ if( $.isPlainObject(name) ) {
575
+ $.extend(true, settings, name);
576
+ }
577
+ else if(value !== undefined) {
578
+ settings[name] = value;
579
+ }
580
+ else {
581
+ return settings[name];
582
+ }
583
+ },
584
+ internal: function(name, value) {
585
+ if( $.isPlainObject(name) ) {
586
+ $.extend(true, module, name);
587
+ }
588
+ else if(value !== undefined) {
589
+ module[name] = value;
590
+ }
591
+ else {
592
+ return module[name];
593
+ }
594
+ },
595
+ debug: function() {
596
+ if(settings.debug) {
597
+ if(settings.performance) {
598
+ module.performance.log(arguments);
599
+ }
600
+ else {
601
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
602
+ module.debug.apply(console, arguments);
603
+ }
604
+ }
605
+ },
606
+ verbose: function() {
607
+ if(settings.verbose && settings.debug) {
608
+ if(settings.performance) {
609
+ module.performance.log(arguments);
610
+ }
611
+ else {
612
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
613
+ module.verbose.apply(console, arguments);
614
+ }
615
+ }
616
+ },
617
+ error: function() {
618
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
619
+ module.error.apply(console, arguments);
620
+ },
621
+ performance: {
622
+ log: function(message) {
623
+ var
624
+ currentTime,
625
+ executionTime,
626
+ previousTime
627
+ ;
628
+ if(settings.performance) {
629
+ currentTime = new Date().getTime();
630
+ previousTime = time || currentTime;
631
+ executionTime = currentTime - previousTime;
632
+ time = currentTime;
633
+ performance.push({
634
+ 'Name' : message[0],
635
+ 'Arguments' : [].slice.call(message, 1) || '',
636
+ //'Element' : element,
637
+ 'Execution Time' : executionTime
638
+ });
639
+ }
640
+ clearTimeout(module.performance.timer);
641
+ module.performance.timer = setTimeout(module.performance.display, 100);
642
+ },
643
+ display: function() {
644
+ var
645
+ title = settings.name + ':',
646
+ totalTime = 0
647
+ ;
648
+ time = false;
649
+ clearTimeout(module.performance.timer);
650
+ $.each(performance, function(index, data) {
651
+ totalTime += data['Execution Time'];
652
+ });
653
+ title += ' ' + totalTime + 'ms';
654
+ if(moduleSelector) {
655
+ title += ' \'' + moduleSelector + '\'';
656
+ }
657
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
658
+ console.groupCollapsed(title);
659
+ if(console.table) {
660
+ console.table(performance);
661
+ }
662
+ else {
663
+ $.each(performance, function(index, data) {
664
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
665
+ });
666
+ }
667
+ console.groupEnd();
668
+ }
669
+ performance = [];
670
+ }
671
+ },
672
+ invoke: function(query, passedArguments, context) {
673
+ var
674
+ object = instance,
675
+ maxDepth,
676
+ found,
677
+ response
678
+ ;
679
+ passedArguments = passedArguments || queryArguments;
680
+ context = element || context;
681
+ if(typeof query == 'string' && object !== undefined) {
682
+ query = query.split(/[\. ]/);
683
+ maxDepth = query.length - 1;
684
+ $.each(query, function(depth, value) {
685
+ var camelCaseValue = (depth != maxDepth)
686
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
687
+ : query
688
+ ;
689
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
690
+ object = object[camelCaseValue];
691
+ }
692
+ else if( object[camelCaseValue] !== undefined ) {
693
+ found = object[camelCaseValue];
694
+ return false;
695
+ }
696
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
697
+ object = object[value];
698
+ }
699
+ else if( object[value] !== undefined ) {
700
+ found = object[value];
701
+ return false;
702
+ }
703
+ else {
704
+ module.error(error.method, query);
705
+ return false;
706
+ }
707
+ });
708
+ }
709
+ if ( $.isFunction( found ) ) {
710
+ response = found.apply(context, passedArguments);
711
+ }
712
+ else if(found !== undefined) {
713
+ response = found;
714
+ }
715
+ if($.isArray(returnedValue)) {
716
+ returnedValue.push(response);
717
+ }
718
+ else if(returnedValue !== undefined) {
719
+ returnedValue = [returnedValue, response];
720
+ }
721
+ else if(response !== undefined) {
722
+ returnedValue = response;
723
+ }
724
+ return found;
725
+ }
726
+ };
727
+
728
+ if(methodInvoked) {
729
+ if(instance === undefined) {
730
+ module.initialize();
731
+ }
732
+ module.invoke(query);
733
+ }
734
+ else {
735
+ if(instance !== undefined) {
736
+ module.destroy();
737
+ }
738
+ module.initialize();
739
+ }
740
+ })
741
+ ;
742
+
743
+ return (returnedValue !== undefined)
744
+ ? returnedValue
745
+ : this
746
+ ;
747
+ };
748
+
749
+ $.api.settings = {
750
+
751
+ name : 'API',
752
+ namespace : 'api',
753
+
754
+ debug : false,
755
+ verbose : true,
756
+ performance : true,
757
+
758
+ // event binding
759
+ on : 'auto',
760
+ filter : '.disabled',
761
+ stateContext : false,
762
+
763
+ // state
764
+ loadingDuration : 0,
765
+ errorDuration : 2000,
766
+
767
+ // templating
768
+ action : false,
769
+ url : false,
770
+ base : '',
771
+
772
+ // data
773
+ urlData : {},
774
+
775
+ // ui
776
+ defaultData : true,
777
+ serializeForm : false,
778
+ throttle : 0,
779
+
780
+ // jQ ajax
781
+ method : 'get',
782
+ data : {},
783
+ dataType : 'json',
784
+
785
+ // callbacks
786
+ beforeSend : function(settings) { return settings; },
787
+ beforeXHR : function(xhr) {},
788
+
789
+ onSuccess : function(response, $module) {},
790
+ onComplete : function(response, $module) {},
791
+ onFailure : function(errorMessage, $module) {},
792
+ onError : function(errorMessage, $module) {},
793
+ onAbort : function(errorMessage, $module) {},
794
+
795
+ successTest : false,
796
+
797
+ // errors
798
+ error : {
799
+ beforeSend : 'The before send function has aborted the request',
800
+ error : 'There was an error with your request',
801
+ exitConditions : 'API Request Aborted. Exit conditions met',
802
+ JSONParse : 'JSON could not be parsed during error handling',
803
+ legacyParameters : 'You are using legacy API success callback names',
804
+ missingAction : 'API action used but no url was defined',
805
+ missingSerialize : 'Required dependency jquery-serialize-object missing, using basic serialize',
806
+ missingURL : 'No URL specified for api event',
807
+ noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
808
+ parseError : 'There was an error parsing your request',
809
+ requiredParameter : 'Missing a required URL parameter: ',
810
+ statusMessage : 'Server gave an error: ',
811
+ timeout : 'Your request timed out'
812
+ },
813
+
814
+ regExp : {
815
+ required: /\{\$*[A-z0-9]+\}/g,
816
+ optional: /\{\/\$*[A-z0-9]+\}/g,
817
+ },
818
+
819
+ className: {
820
+ loading : 'loading',
821
+ error : 'error'
822
+ },
823
+
824
+ selector: {
825
+ form: 'form'
826
+ },
827
+
828
+ metadata: {
829
+ action : 'action',
830
+ request : 'request',
831
+ xhr : 'xhr'
832
+ }
833
+ };
834
+
835
+
836
+ $.api.settings.api = {};
837
+
838
+
839
+ })( jQuery, window , document );