archangel 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (517) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +17 -0
  3. data/.editorconfig +19 -0
  4. data/.eslintignore +6 -0
  5. data/.eslintrc.json +40 -0
  6. data/.github/ISSUE_TEMPLATE.md +23 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +18 -0
  8. data/.gitignore +22 -0
  9. data/.hound.yml +21 -0
  10. data/.mdlrc +2 -0
  11. data/.reek +35 -0
  12. data/.rspec +4 -0
  13. data/.rubocop.yml +28 -0
  14. data/.rubocop_disabled.yml +2 -0
  15. data/.rubocop_enabled.yml +2 -0
  16. data/.rubocop_todo.yml +7 -0
  17. data/.scss-lint.yml +22 -0
  18. data/.travis.yml +16 -0
  19. data/.yardopts +10 -0
  20. data/CODE_OF_CONDUCT.md +43 -0
  21. data/CONTRIBUTING.md +150 -0
  22. data/Gemfile +36 -0
  23. data/MIT-LICENSE +21 -0
  24. data/README.md +129 -0
  25. data/Rakefile +27 -0
  26. data/app/assets/config/archangel_manifest.js +14 -0
  27. data/app/assets/images/archangel/fallback/asset.png +0 -0
  28. data/app/assets/images/archangel/fallback/avatar.png +0 -0
  29. data/app/assets/images/archangel/fallback/default.png +0 -0
  30. data/app/assets/images/archangel/fallback/favicon.ico +0 -0
  31. data/app/assets/images/archangel/fallback/large_avatar.png +0 -0
  32. data/app/assets/images/archangel/fallback/large_logo.png +0 -0
  33. data/app/assets/images/archangel/fallback/logo.png +0 -0
  34. data/app/assets/images/archangel/fallback/medium_avatar.png +0 -0
  35. data/app/assets/images/archangel/fallback/medium_logo.png +0 -0
  36. data/app/assets/images/archangel/fallback/small_asset.png +0 -0
  37. data/app/assets/images/archangel/fallback/small_avatar.png +0 -0
  38. data/app/assets/images/archangel/fallback/small_logo.png +0 -0
  39. data/app/assets/images/archangel/fallback/tiny_asset.png +0 -0
  40. data/app/assets/images/archangel/fallback/tiny_avatar.png +0 -0
  41. data/app/assets/images/archangel/fallback/tiny_logo.png +0 -0
  42. data/app/assets/javascripts/archangel/input/datetime_picker.js +46 -0
  43. data/app/assets/javascripts/archangel/input/meta_keywords.js +22 -0
  44. data/app/assets/javascripts/archangel/input/parent/collection.js +0 -0
  45. data/app/assets/javascripts/archangel/input/parent/field.js +0 -0
  46. data/app/assets/javascripts/archangel/input/parent/page.js +0 -0
  47. data/app/assets/javascripts/archangel/input/wysiwyg.js.erb +51 -0
  48. data/app/assets/javascripts/archangel/object/flash.js +49 -0
  49. data/app/assets/javascripts/archangel/object/routes/auth.js +22 -0
  50. data/app/assets/javascripts/archangel/object/routes/backend.js +103 -0
  51. data/app/assets/javascripts/archangel/object/routes/frontend.js +24 -0
  52. data/app/assets/javascripts/archangel/object/routes.js.erb +84 -0
  53. data/app/assets/javascripts/archangel/object/translate/datetime_picker.js.erb +26 -0
  54. data/app/assets/javascripts/archangel/object/translate/sortable.js.erb +10 -0
  55. data/app/assets/javascripts/archangel/object/translate.js +8 -0
  56. data/app/assets/javascripts/archangel/object/url.js +24 -0
  57. data/app/assets/javascripts/archangel/object.js +25 -0
  58. data/app/assets/javascripts/archangel/sortable.js +72 -0
  59. data/app/assets/stylesheets/archangel/.keep +0 -0
  60. data/app/controllers/archangel/application_controller.rb +177 -0
  61. data/app/controllers/archangel/auth/registrations_controller.rb +22 -0
  62. data/app/controllers/archangel/auth_controller.rb +20 -0
  63. data/app/controllers/archangel/backend/assets_controller.rb +338 -0
  64. data/app/controllers/archangel/backend/collections_controller.rb +257 -0
  65. data/app/controllers/archangel/backend/dashboards_controller.rb +27 -0
  66. data/app/controllers/archangel/backend/entries_controller.rb +344 -0
  67. data/app/controllers/archangel/backend/pages_controller.rb +299 -0
  68. data/app/controllers/archangel/backend/profiles_controller.rb +211 -0
  69. data/app/controllers/archangel/backend/sites_controller.rb +175 -0
  70. data/app/controllers/archangel/backend/templates_controller.rb +270 -0
  71. data/app/controllers/archangel/backend/users_controller.rb +366 -0
  72. data/app/controllers/archangel/backend/widgets_controller.rb +264 -0
  73. data/app/controllers/archangel/backend_controller.rb +21 -0
  74. data/app/controllers/archangel/frontend/pages_controller.rb +158 -0
  75. data/app/controllers/archangel/frontend_controller.rb +10 -0
  76. data/app/controllers/concerns/archangel/actionable_concern.rb +152 -0
  77. data/app/controllers/concerns/archangel/authenticatable_concern.rb +14 -0
  78. data/app/controllers/concerns/archangel/authorizable_concern.rb +14 -0
  79. data/app/controllers/concerns/archangel/paginatable_concern.rb +34 -0
  80. data/app/controllers/concerns/archangel/seoable_concern.rb +40 -0
  81. data/app/controllers/concerns/archangel/skip_authorizable_concern.rb +14 -0
  82. data/app/controllers/concerns/archangel/themable_concern.rb +27 -0
  83. data/app/helpers/archangel/application_helper.rb +34 -0
  84. data/app/helpers/archangel/auth_helper.rb +9 -0
  85. data/app/helpers/archangel/backend/assets_helper.rb +14 -0
  86. data/app/helpers/archangel/backend/collections_helper.rb +14 -0
  87. data/app/helpers/archangel/backend/dashboards_helper.rb +14 -0
  88. data/app/helpers/archangel/backend/entries_helper.rb +14 -0
  89. data/app/helpers/archangel/backend/pages_helper.rb +14 -0
  90. data/app/helpers/archangel/backend/sites_helper.rb +14 -0
  91. data/app/helpers/archangel/backend/templates_helper.rb +14 -0
  92. data/app/helpers/archangel/backend/users_helper.rb +14 -0
  93. data/app/helpers/archangel/backend/widgets_helper.rb +14 -0
  94. data/app/helpers/archangel/backend_helper.rb +9 -0
  95. data/app/helpers/archangel/flash_helper.rb +22 -0
  96. data/app/helpers/archangel/frontend/pages_helper.rb +14 -0
  97. data/app/helpers/archangel/frontend_helper.rb +9 -0
  98. data/app/inputs/archangel/date_picker_input.rb +27 -0
  99. data/app/inputs/archangel/date_time_picker_input.rb +27 -0
  100. data/app/inputs/archangel/field_classification_input.rb +32 -0
  101. data/app/inputs/archangel/language_input.rb +31 -0
  102. data/app/inputs/archangel/meta_keywords_input.rb +27 -0
  103. data/app/inputs/archangel/role_input.rb +31 -0
  104. data/app/inputs/archangel/theme_input.rb +29 -0
  105. data/app/inputs/archangel/time_picker_input.rb +27 -0
  106. data/app/inputs/archangel/wysiwyg_input.rb +15 -0
  107. data/app/jobs/archangel/application_job.rb +9 -0
  108. data/app/mailers/archangel/application_mailer.rb +12 -0
  109. data/app/models/archangel/application_record.rb +10 -0
  110. data/app/models/archangel/asset.rb +42 -0
  111. data/app/models/archangel/collection.rb +51 -0
  112. data/app/models/archangel/entry.rb +22 -0
  113. data/app/models/archangel/field.rb +30 -0
  114. data/app/models/archangel/page.rb +123 -0
  115. data/app/models/archangel/site.rb +54 -0
  116. data/app/models/archangel/template.rb +37 -0
  117. data/app/models/archangel/user.rb +62 -0
  118. data/app/models/archangel/widget.rb +62 -0
  119. data/app/policies/archangel/application_policy.rb +142 -0
  120. data/app/policies/archangel/asset_policy.rb +17 -0
  121. data/app/policies/archangel/collection_policy.rb +9 -0
  122. data/app/policies/archangel/entry_policy.rb +17 -0
  123. data/app/policies/archangel/page_policy.rb +9 -0
  124. data/app/policies/archangel/site_policy.rb +27 -0
  125. data/app/policies/archangel/template_policy.rb +9 -0
  126. data/app/policies/archangel/user_policy.rb +9 -0
  127. data/app/policies/archangel/widget_policy.rb +9 -0
  128. data/app/services/archangel/render_service.rb +98 -0
  129. data/app/services/archangel/template_render_service.rb +40 -0
  130. data/app/themes/default/assets/javascripts/default/auth/.keep +0 -0
  131. data/app/themes/default/assets/javascripts/default/auth.js +18 -0
  132. data/app/themes/default/assets/javascripts/default/backend/core.js +7 -0
  133. data/app/themes/default/assets/javascripts/default/backend.js +50 -0
  134. data/app/themes/default/assets/javascripts/default/common/cards.js +28 -0
  135. data/app/themes/default/assets/javascripts/default/common/flash.js +48 -0
  136. data/app/themes/default/assets/javascripts/default/common/navigation.js +30 -0
  137. data/app/themes/default/assets/javascripts/default/common/sidebar.js +114 -0
  138. data/app/themes/default/assets/javascripts/default/frontend/.keep +0 -0
  139. data/app/themes/default/assets/javascripts/default/frontend.js +18 -0
  140. data/app/themes/default/assets/stylesheets/default/auth/core.scss +15 -0
  141. data/app/themes/default/assets/stylesheets/default/auth.css +13 -0
  142. data/app/themes/default/assets/stylesheets/default/backend/core.scss +22 -0
  143. data/app/themes/default/assets/stylesheets/default/backend.css +13 -0
  144. data/app/themes/default/assets/stylesheets/default/common/_bootstrap.scss +49 -0
  145. data/app/themes/default/assets/stylesheets/default/common/_selectize.scss +299 -0
  146. data/app/themes/default/assets/stylesheets/default/common/_variables.scss +82 -0
  147. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_animate.scss +27 -0
  148. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_aside.scss +67 -0
  149. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_avatars.scss +42 -0
  150. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_badge.scss +3 -0
  151. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_breadcrumb-menu.scss +36 -0
  152. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_breadcrumb.scss +4 -0
  153. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_buttons.scss +408 -0
  154. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_callout.scss +58 -0
  155. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_card.scss +199 -0
  156. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_charts.scss +9 -0
  157. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_dropdown-menu-right.scss +8 -0
  158. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_dropdown.scss +70 -0
  159. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_footer.scss +9 -0
  160. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_forms.scss +4 -0
  161. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_grid.scss +15 -0
  162. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_input-group.scss +5 -0
  163. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_layout.scss +390 -0
  164. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_loading.scss +128 -0
  165. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_mixins.scss +1 -0
  166. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_mobile.scss +0 -0
  167. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_modal.scss +12 -0
  168. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_nav.scss +39 -0
  169. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_navbar.scss +122 -0
  170. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_others.scss +4 -0
  171. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_progress.scss +15 -0
  172. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_rtl.scss +287 -0
  173. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_sidebar.scss +462 -0
  174. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_switches.scss +286 -0
  175. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_tables.scss +20 -0
  176. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_temp.scss +39 -0
  177. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_typography.scss +36 -0
  178. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_utilities.scss +3 -0
  179. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_variables.scss +208 -0
  180. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_widgets.scss +251 -0
  181. data/app/themes/default/assets/stylesheets/default/common/bootstrap/mixins/_all.scss +117 -0
  182. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_background.scss +20 -0
  183. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_borders.scss +17 -0
  184. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_display.scss +14 -0
  185. data/app/themes/default/assets/stylesheets/default/frontend/core.scss +15 -0
  186. data/app/themes/default/assets/stylesheets/default/frontend.css +13 -0
  187. data/app/themes/default/views/layouts/auth.html.erb +35 -0
  188. data/app/themes/default/views/layouts/backend/_footer.html.erb +7 -0
  189. data/app/themes/default/views/layouts/backend/_header.html.erb +31 -0
  190. data/app/themes/default/views/layouts/backend/_sidebar.html.erb +53 -0
  191. data/app/themes/default/views/layouts/backend.html.erb +37 -0
  192. data/app/themes/default/views/layouts/frontend.liquid +22 -0
  193. data/app/uploaders/archangel/application_uploader.rb +65 -0
  194. data/app/uploaders/archangel/asset_uploader.rb +52 -0
  195. data/app/uploaders/archangel/avatar_uploader.rb +44 -0
  196. data/app/uploaders/archangel/favicon_uploader.rb +38 -0
  197. data/app/uploaders/archangel/logo_uploader.rb +44 -0
  198. data/app/views/archangel/backend/assets/_buttons.html.erb +18 -0
  199. data/app/views/archangel/backend/assets/_form.html.erb +27 -0
  200. data/app/views/archangel/backend/assets/edit.html.erb +21 -0
  201. data/app/views/archangel/backend/assets/index.html.erb +64 -0
  202. data/app/views/archangel/backend/assets/new.html.erb +21 -0
  203. data/app/views/archangel/backend/assets/show.html.erb +53 -0
  204. data/app/views/archangel/backend/collections/_buttons.html.erb +20 -0
  205. data/app/views/archangel/backend/collections/_field_fields.html.erb +9 -0
  206. data/app/views/archangel/backend/collections/_form.html.erb +24 -0
  207. data/app/views/archangel/backend/collections/edit.html.erb +21 -0
  208. data/app/views/archangel/backend/collections/index.html.erb +60 -0
  209. data/app/views/archangel/backend/collections/new.html.erb +21 -0
  210. data/app/views/archangel/backend/collections/show.html.erb +44 -0
  211. data/app/views/archangel/backend/dashboards/_buttons.html.erb +3 -0
  212. data/app/views/archangel/backend/dashboards/show.html.erb +23 -0
  213. data/app/views/archangel/backend/entries/_buttons.html.erb +20 -0
  214. data/app/views/archangel/backend/entries/_form.html.erb +25 -0
  215. data/app/views/archangel/backend/entries/edit.html.erb +21 -0
  216. data/app/views/archangel/backend/entries/index.html.erb +68 -0
  217. data/app/views/archangel/backend/entries/new.html.erb +21 -0
  218. data/app/views/archangel/backend/entries/show.html.erb +28 -0
  219. data/app/views/archangel/backend/pages/_buttons.html.erb +18 -0
  220. data/app/views/archangel/backend/pages/_form.html.erb +19 -0
  221. data/app/views/archangel/backend/pages/edit.html.erb +21 -0
  222. data/app/views/archangel/backend/pages/index.html.erb +68 -0
  223. data/app/views/archangel/backend/pages/new.html.erb +21 -0
  224. data/app/views/archangel/backend/pages/show.html.erb +49 -0
  225. data/app/views/archangel/backend/profiles/_buttons.html.erb +9 -0
  226. data/app/views/archangel/backend/profiles/_form.html.erb +31 -0
  227. data/app/views/archangel/backend/profiles/edit.html.erb +21 -0
  228. data/app/views/archangel/backend/profiles/show.html.erb +36 -0
  229. data/app/views/archangel/backend/sites/_additional_colors.html.erb +49 -0
  230. data/app/views/archangel/backend/sites/_alerts.html.erb +130 -0
  231. data/app/views/archangel/backend/sites/_badge.html.erb +99 -0
  232. data/app/views/archangel/backend/sites/_button.html.erb +243 -0
  233. data/app/views/archangel/backend/sites/_buttons.html.erb +9 -0
  234. data/app/views/archangel/backend/sites/_buttons_group.html.erb +230 -0
  235. data/app/views/archangel/backend/sites/_cards.html.erb +441 -0
  236. data/app/views/archangel/backend/sites/_carousel.html.erb +159 -0
  237. data/app/views/archangel/backend/sites/_colors.html.erb +41 -0
  238. data/app/views/archangel/backend/sites/_display_headings.html.erb +41 -0
  239. data/app/views/archangel/backend/sites/_dl.html.erb +38 -0
  240. data/app/views/archangel/backend/sites/_dropdowns.html.erb +475 -0
  241. data/app/views/archangel/backend/sites/_form.html.erb +37 -0
  242. data/app/views/archangel/backend/sites/_forms.html.erb +1176 -0
  243. data/app/views/archangel/backend/sites/_grays.html.erb +21 -0
  244. data/app/views/archangel/backend/sites/_headings.html.erb +21 -0
  245. data/app/views/archangel/backend/sites/_inline_text.html.erb +45 -0
  246. data/app/views/archangel/backend/sites/_jumbotron.html.erb +45 -0
  247. data/app/views/archangel/backend/sites/_list_group.html.erb +254 -0
  248. data/app/views/archangel/backend/sites/_modals.html.erb +41 -0
  249. data/app/views/archangel/backend/sites/_navs.html.erb +389 -0
  250. data/app/views/archangel/backend/sites/_pagination.html.erb +160 -0
  251. data/app/views/archangel/backend/sites/_social_buttons.html.erb +746 -0
  252. data/app/views/archangel/backend/sites/_tables.html.erb +372 -0
  253. data/app/views/archangel/backend/sites/edit.html.erb +21 -0
  254. data/app/views/archangel/backend/sites/sample.html.erb +38 -0
  255. data/app/views/archangel/backend/sites/show.html.erb +48 -0
  256. data/app/views/archangel/backend/templates/_buttons.html.erb +18 -0
  257. data/app/views/archangel/backend/templates/_form.html.erb +14 -0
  258. data/app/views/archangel/backend/templates/edit.html.erb +21 -0
  259. data/app/views/archangel/backend/templates/index.html.erb +60 -0
  260. data/app/views/archangel/backend/templates/new.html.erb +21 -0
  261. data/app/views/archangel/backend/templates/show.html.erb +34 -0
  262. data/app/views/archangel/backend/users/_buttons.html.erb +18 -0
  263. data/app/views/archangel/backend/users/_form.html.erb +24 -0
  264. data/app/views/archangel/backend/users/edit.html.erb +21 -0
  265. data/app/views/archangel/backend/users/index.html.erb +62 -0
  266. data/app/views/archangel/backend/users/new.html.erb +21 -0
  267. data/app/views/archangel/backend/users/show.html.erb +36 -0
  268. data/app/views/archangel/backend/widgets/_buttons.html.erb +18 -0
  269. data/app/views/archangel/backend/widgets/_form.html.erb +14 -0
  270. data/app/views/archangel/backend/widgets/edit.html.erb +21 -0
  271. data/app/views/archangel/backend/widgets/index.html.erb +60 -0
  272. data/app/views/archangel/backend/widgets/new.html.erb +21 -0
  273. data/app/views/archangel/backend/widgets/show.html.erb +42 -0
  274. data/app/views/archangel/errors/error_401.html.erb +13 -0
  275. data/app/views/archangel/errors/error_401.json.erb +4 -0
  276. data/app/views/archangel/errors/error_404.html.erb +13 -0
  277. data/app/views/archangel/errors/error_404.json.erb +4 -0
  278. data/app/views/archangel/frontend/pages/show.json.jbuilder +9 -0
  279. data/app/views/archangel/shared/_auth_token.html.erb +8 -0
  280. data/app/views/archangel/shared/_flash_messages.html.erb +9 -0
  281. data/app/views/devise/confirmations/new.html.erb +18 -0
  282. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  283. data/app/views/devise/mailer/email_changed.html.erb +7 -0
  284. data/app/views/devise/mailer/password_change.html.erb +3 -0
  285. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  286. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  287. data/app/views/devise/passwords/edit.html.erb +28 -0
  288. data/app/views/devise/passwords/new.html.erb +18 -0
  289. data/app/views/devise/registrations/edit.html.erb +45 -0
  290. data/app/views/devise/registrations/new.html.erb +41 -0
  291. data/app/views/devise/sessions/new.html.erb +28 -0
  292. data/app/views/devise/shared/_links.html.erb +41 -0
  293. data/app/views/devise/unlocks/new.html.erb +18 -0
  294. data/app/views/kaminari/_first_page.html.erb +11 -0
  295. data/app/views/kaminari/_gap.html.erb +8 -0
  296. data/app/views/kaminari/_last_page.html.erb +11 -0
  297. data/app/views/kaminari/_next_page.html.erb +11 -0
  298. data/app/views/kaminari/_page.html.erb +12 -0
  299. data/app/views/kaminari/_paginator.html.erb +25 -0
  300. data/app/views/kaminari/_prev_page.html.erb +11 -0
  301. data/archangel.gemspec +52 -0
  302. data/archangel.png +0 -0
  303. data/bin/rails +13 -0
  304. data/config/brakeman.yml +3 -0
  305. data/config/initializers/assets.rb +12 -0
  306. data/config/initializers/carrierwave.rb +14 -0
  307. data/config/initializers/devise.rb +341 -0
  308. data/config/initializers/kaminari.rb +13 -0
  309. data/config/initializers/liquid.rb +4 -0
  310. data/config/initializers/meta_tags.rb +31 -0
  311. data/config/initializers/simple_form.rb +177 -0
  312. data/config/initializers/simple_form_bootstrap.rb +177 -0
  313. data/config/locales/active_record.en.yml +80 -0
  314. data/config/locales/devise.en.yml +64 -0
  315. data/config/locales/devise_invitable.en.yml +31 -0
  316. data/config/locales/en.yml +109 -0
  317. data/config/locales/kaminari.en.yml +17 -0
  318. data/config/locales/responders.en.yml +12 -0
  319. data/config/locales/simple_form.en.yml +34 -0
  320. data/config/routes.rb +176 -0
  321. data/db/migrate/20171003191001_create_archangel_sites.rb +19 -0
  322. data/db/migrate/20171003210347_create_archangel_users.rb +68 -0
  323. data/db/migrate/20171005205520_create_archangel_templates.rb +18 -0
  324. data/db/migrate/20171005224054_create_archangel_pages.rb +30 -0
  325. data/db/migrate/20171006175939_create_archangel_widgets.rb +20 -0
  326. data/db/migrate/20171006184844_create_archangel_assets.rb +18 -0
  327. data/db/migrate/20171006194044_create_archangel_collections.rb +17 -0
  328. data/db/migrate/20171006194855_create_archangel_fields.rb +23 -0
  329. data/db/migrate/20171006195023_create_archangel_entries.rb +18 -0
  330. data/db/seeds.rb +65 -0
  331. data/docs/Developers.md +3 -0
  332. data/docs/ExtensionDevelopers.md +3 -0
  333. data/docs/ExtensionIdeas.md +132 -0
  334. data/docs/Release.md +25 -0
  335. data/docs/ThemeDevelopers.md +3 -0
  336. data/lib/archangel/application_responder.rb +15 -0
  337. data/lib/archangel/config.rb +21 -0
  338. data/lib/archangel/constants/language.rb +13 -0
  339. data/lib/archangel/constants/role.rb +13 -0
  340. data/lib/archangel/constants/theme.rb +18 -0
  341. data/lib/archangel/engine.rb +70 -0
  342. data/lib/archangel/i18n.rb +40 -0
  343. data/lib/archangel/liquid/drop.rb +119 -0
  344. data/lib/archangel/liquid/drops/page_drop.rb +33 -0
  345. data/lib/archangel/liquid/drops/site_drop.rb +30 -0
  346. data/lib/archangel/liquid/filters/link_to_filter.rb +35 -0
  347. data/lib/archangel/liquid/tags/application_tag.rb +17 -0
  348. data/lib/archangel/liquid/tags/asset_tag.rb +146 -0
  349. data/lib/archangel/liquid/tags/collection_tag.rb +135 -0
  350. data/lib/archangel/liquid/tags/collectionfor_tag.rb +91 -0
  351. data/lib/archangel/liquid/tags/csrf_meta_tags_tag.rb +28 -0
  352. data/lib/archangel/liquid/tags/gist_tag.rb +102 -0
  353. data/lib/archangel/liquid/tags/locale_tag.rb +27 -0
  354. data/lib/archangel/liquid/tags/meta_tags_tag.rb +30 -0
  355. data/lib/archangel/liquid/tags/text_direction_tag.rb +28 -0
  356. data/lib/archangel/liquid/tags/theme_javascript_tag.rb +30 -0
  357. data/lib/archangel/liquid/tags/theme_stylesheet_tag.rb +30 -0
  358. data/lib/archangel/liquid/tags/vimeo_tag.rb +125 -0
  359. data/lib/archangel/liquid/tags/widget_tag.rb +91 -0
  360. data/lib/archangel/liquid/tags/youtube_tag.rb +138 -0
  361. data/lib/archangel/liquid_view.rb +92 -0
  362. data/lib/archangel/testing_support/context/view_controller_context.rb +55 -0
  363. data/lib/archangel/testing_support/factories/archangel_assets.rb +20 -0
  364. data/lib/archangel/testing_support/factories/archangel_collections.rb +23 -0
  365. data/lib/archangel/testing_support/factories/archangel_entries.rb +17 -0
  366. data/lib/archangel/testing_support/factories/archangel_fields.rb +20 -0
  367. data/lib/archangel/testing_support/factories/archangel_pages.rb +39 -0
  368. data/lib/archangel/testing_support/factories/archangel_sites.rb +22 -0
  369. data/lib/archangel/testing_support/factories/archangel_templates.rb +22 -0
  370. data/lib/archangel/testing_support/factories/archangel_users.rb +53 -0
  371. data/lib/archangel/testing_support/factories/archangel_widgets.rb +19 -0
  372. data/lib/archangel/testing_support/fixtures/favicon.png +0 -0
  373. data/lib/archangel/testing_support/fixtures/image.gif +0 -0
  374. data/lib/archangel/testing_support/fixtures/stylesheet.css +3 -0
  375. data/lib/archangel/testing_support/helpers/authorization_helpers.rb +58 -0
  376. data/lib/archangel/testing_support/helpers/controller_helpers.rb +20 -0
  377. data/lib/archangel/testing_support/helpers/form_helpers.rb +18 -0
  378. data/lib/archangel/testing_support/helpers/routing_helpers.rb +22 -0
  379. data/lib/archangel/testing_support/matchers/match_stdout.rb +37 -0
  380. data/lib/archangel/testing_support/matchers/pundit.rb +17 -0
  381. data/lib/archangel/testing_support/rake/dummy_rake.rb +63 -0
  382. data/lib/archangel/testing_support/shared_contexts/rake.rb +26 -0
  383. data/lib/archangel/testing_support/support/capybara.rb +9 -0
  384. data/lib/archangel/testing_support/support/carrierwave.rb +13 -0
  385. data/lib/archangel/testing_support/support/controller.rb +11 -0
  386. data/lib/archangel/testing_support/support/database_cleaner.rb +22 -0
  387. data/lib/archangel/testing_support/support/devise.rb +7 -0
  388. data/lib/archangel/testing_support/support/factory_bot.rb +17 -0
  389. data/lib/archangel/testing_support/support/inputs.rb +24 -0
  390. data/lib/archangel/testing_support/support/liquid_filters.rb +23 -0
  391. data/lib/archangel/testing_support/support/liquid_tags.rb +23 -0
  392. data/lib/archangel/testing_support/support/shoulda.rb +12 -0
  393. data/lib/archangel/testing_support/support/verify_partial_doubles.rb +21 -0
  394. data/lib/archangel/testing_support/support.rb +26 -0
  395. data/lib/archangel/theme/themable_controller.rb +90 -0
  396. data/lib/archangel/version.rb +16 -0
  397. data/lib/archangel.rb +93 -0
  398. data/lib/generators/archangel/dummy/dummy_generator.rb +148 -0
  399. data/lib/generators/archangel/dummy/templates/config/database.yml +48 -0
  400. data/lib/generators/archangel/install/install_generator.rb +202 -0
  401. data/lib/generators/archangel/install/templates/.env.sample +4 -0
  402. data/lib/generators/archangel/install/templates/config/archangel.yml +54 -0
  403. data/lib/generators/archangel/install/templates/config/initializers/carrierwave.rb +15 -0
  404. data/lib/generators/archangel/install/templates/config/initializers/devise.rb +17 -0
  405. data/lib/generators/archangel/install/templates/vendor/assets/javascripts/archangel/auth.js +3 -0
  406. data/lib/generators/archangel/install/templates/vendor/assets/javascripts/archangel/backend.js +3 -0
  407. data/lib/generators/archangel/install/templates/vendor/assets/javascripts/archangel/frontend.js +3 -0
  408. data/lib/generators/archangel/install/templates/vendor/assets/stylesheets/archangel/auth.css +5 -0
  409. data/lib/generators/archangel/install/templates/vendor/assets/stylesheets/archangel/backend.css +5 -0
  410. data/lib/generators/archangel/install/templates/vendor/assets/stylesheets/archangel/frontend.css +5 -0
  411. data/lib/tasks/archangel/version_task.rake +8 -0
  412. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  413. data/package.json +33 -0
  414. data/spec/controllers/archangel/application_controller_spec.rb +183 -0
  415. data/spec/controllers/archangel/auth/registrations_controller_spec.rb +10 -0
  416. data/spec/controllers/archangel/auth_controller_spec.rb +8 -0
  417. data/spec/controllers/archangel/backend/assets_controller_spec.rb +237 -0
  418. data/spec/controllers/archangel/backend/collections_controller_spec.rb +252 -0
  419. data/spec/controllers/archangel/backend/dashboards_controller_spec.rb +27 -0
  420. data/spec/controllers/archangel/backend/entries_controller_spec.rb +273 -0
  421. data/spec/controllers/archangel/backend/pages_controller_spec.rb +204 -0
  422. data/spec/controllers/archangel/backend/profiles_controller_spec.rb +115 -0
  423. data/spec/controllers/archangel/backend/sites_controller_spec.rb +137 -0
  424. data/spec/controllers/archangel/backend/templates_controller_spec.rb +190 -0
  425. data/spec/controllers/archangel/backend/users_controller_spec.rb +181 -0
  426. data/spec/controllers/archangel/backend/widgets_controller_spec.rb +190 -0
  427. data/spec/controllers/archangel/backend_controller_spec.rb +8 -0
  428. data/spec/controllers/archangel/frontend/pages_controller_spec.rb +54 -0
  429. data/spec/controllers/archangel/frontend_controller_spec.rb +8 -0
  430. data/spec/features/auth/log_in_spec.rb +96 -0
  431. data/spec/features/auth/log_out_spec.rb +18 -0
  432. data/spec/features/auth/registration_spec.rb +27 -0
  433. data/spec/features/backend/duplicate_page_slugs_spec.rb +41 -0
  434. data/spec/features/frontend/drop_variables_spec.rb +125 -0
  435. data/spec/features/frontend/homepage_redirect_spec.rb +15 -0
  436. data/spec/helpers/archangel/application_helper_spec.rb +30 -0
  437. data/spec/helpers/archangel/auth_helper_spec.rb +8 -0
  438. data/spec/helpers/archangel/backend/assets_helper_spec.rb +10 -0
  439. data/spec/helpers/archangel/backend/collections_helper_spec.rb +10 -0
  440. data/spec/helpers/archangel/backend/dashboards_helper_spec.rb +10 -0
  441. data/spec/helpers/archangel/backend/entries_helper_spec.rb +10 -0
  442. data/spec/helpers/archangel/backend/pages_helper_spec.rb +10 -0
  443. data/spec/helpers/archangel/backend/sites_helper_spec.rb +10 -0
  444. data/spec/helpers/archangel/backend/templates_helper_spec.rb +10 -0
  445. data/spec/helpers/archangel/backend/users_helper_spec.rb +10 -0
  446. data/spec/helpers/archangel/backend/widgets_helper_spec.rb +10 -0
  447. data/spec/helpers/archangel/backend_helper_spec.rb +8 -0
  448. data/spec/helpers/archangel/flash_helper_spec.rb +29 -0
  449. data/spec/helpers/archangel/frontend/pages_helper_spec.rb +10 -0
  450. data/spec/helpers/archangel/frontend_helper_spec.rb +8 -0
  451. data/spec/inputs/archangel/date_picker_input_spec.rb +15 -0
  452. data/spec/inputs/archangel/date_time_picker_input_spec.rb +15 -0
  453. data/spec/inputs/archangel/field_classification_input_spec.rb +19 -0
  454. data/spec/inputs/archangel/language_input_spec.rb +17 -0
  455. data/spec/inputs/archangel/meta_keywords_input_spec.rb +13 -0
  456. data/spec/inputs/archangel/role_input_spec.rb +18 -0
  457. data/spec/inputs/archangel/theme_input_spec.rb +17 -0
  458. data/spec/inputs/archangel/time_picker_input_spec.rb +15 -0
  459. data/spec/inputs/archangel/wysiwyg_input_spec.rb +15 -0
  460. data/spec/jobs/archangel/application_job_spec.rb +8 -0
  461. data/spec/lib/archangel/liquid/filters/link_to_filter_spec.rb +63 -0
  462. data/spec/lib/archangel/liquid/tags/application_tag_spec.rb +12 -0
  463. data/spec/lib/archangel/liquid/tags/asset_tag_spec.rb +90 -0
  464. data/spec/lib/archangel/liquid/tags/collection_tag_spec.rb +105 -0
  465. data/spec/lib/archangel/liquid/tags/collectionfor_tag_spec.rb +164 -0
  466. data/spec/lib/archangel/liquid/tags/csrf_meta_tags_tag_spec.rb +33 -0
  467. data/spec/lib/archangel/liquid/tags/gist_tag_spec.rb +42 -0
  468. data/spec/lib/archangel/liquid/tags/locale_tag_spec.rb +22 -0
  469. data/spec/lib/archangel/liquid/tags/meta_tags_tag_spec.rb +24 -0
  470. data/spec/lib/archangel/liquid/tags/text_direction_tag_spec.rb +32 -0
  471. data/spec/lib/archangel/liquid/tags/theme_javascript_tag_spec.rb +25 -0
  472. data/spec/lib/archangel/liquid/tags/theme_stylesheet_tag_spec.rb +27 -0
  473. data/spec/lib/archangel/liquid/tags/vimeo_tag_spec.rb +39 -0
  474. data/spec/lib/archangel/liquid/tags/widget_tag_spec.rb +59 -0
  475. data/spec/lib/archangel/liquid/tags/youtube_tag_spec.rb +39 -0
  476. data/spec/lib/tasks/archangel/version_task_spec.rb +13 -0
  477. data/spec/mailers/archangel/application_job_spec.rb +8 -0
  478. data/spec/models/archangel/asset_spec.rb +32 -0
  479. data/spec/models/archangel/collection_spec.rb +25 -0
  480. data/spec/models/archangel/entry_spec.rb +20 -0
  481. data/spec/models/archangel/field_spec.rb +29 -0
  482. data/spec/models/archangel/page_spec.rb +94 -0
  483. data/spec/models/archangel/site_spec.rb +11 -0
  484. data/spec/models/archangel/template_spec.rb +24 -0
  485. data/spec/models/archangel/user_spec.rb +66 -0
  486. data/spec/models/archangel/widget_spec.rb +29 -0
  487. data/spec/policies/archangel/application_policy_spec.rb +8 -0
  488. data/spec/policies/archangel/asset_policy_spec.rb +22 -0
  489. data/spec/policies/archangel/collection_policy_spec.rb +20 -0
  490. data/spec/policies/archangel/entries_policy_spec.rb +22 -0
  491. data/spec/policies/archangel/page_policy_spec.rb +20 -0
  492. data/spec/policies/archangel/site_policy_spec.rb +30 -0
  493. data/spec/policies/archangel/template_policy_spec.rb +20 -0
  494. data/spec/policies/archangel/user_policy_spec.rb +20 -0
  495. data/spec/policies/archangel/widget_policy_spec.rb +20 -0
  496. data/spec/rails_helper.rb +46 -0
  497. data/spec/services/archangel/render_service_spec.rb +37 -0
  498. data/spec/services/archangel/template_render_service_spec.rb +42 -0
  499. data/spec/spec_helper.rb +23 -0
  500. data/spec/support/coveralls.rb +5 -0
  501. data/spec/uploaders/archangel/application_uploader_spec.rb +15 -0
  502. data/spec/uploaders/archangel/asset_uploader_spec.rb +71 -0
  503. data/spec/uploaders/archangel/avatar_uploader_spec.rb +50 -0
  504. data/spec/uploaders/archangel/favicon_uploader_spec.rb +39 -0
  505. data/spec/uploaders/archangel/logo_uploader_spec.rb +50 -0
  506. data/vendor/assets/icons/trumbowyg/icons.svg +1 -0
  507. data/vendor/assets/javascripts/sortable/sortable.js +3 -0
  508. data/vendor/assets/javascripts/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.js +143 -0
  509. data/vendor/assets/javascripts/trumbowyg/plugins/base64/trumbowyg.base64.js +129 -0
  510. data/vendor/assets/javascripts/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.js +110 -0
  511. data/vendor/assets/javascripts/trumbowyg/plugins/colors/trumbowyg.colors.js +183 -0
  512. data/vendor/assets/javascripts/trumbowyg/plugins/noembed/trumbowyg.noembed.js +104 -0
  513. data/vendor/assets/javascripts/trumbowyg/plugins/upload/trumbowyg.upload.js +261 -0
  514. data/vendor/assets/javascripts/trumbowyg/trumbowyg.js +1765 -0
  515. data/vendor/assets/stylesheets/trumbowyg/_trumbowyg.scss +831 -0
  516. data/vendor/assets/stylesheets/trumbowyg/plugins/colors/_trumbowyg.colors.scss +38 -0
  517. metadata +1003 -0
@@ -0,0 +1,746 @@
1
+ <div class="row">
2
+ <div class="col-12">
3
+ <div class="card">
4
+ <div class="card-header">
5
+ <%= fa_icon("tint") %> Social Media Button
6
+
7
+ <small>Usage ex.</small>
8
+ <code style="text-transform:lowercase">&lt;button class="btn btn-facebook"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>
9
+ </div>
10
+
11
+ <div class="card-body">
12
+ <h6>
13
+ Size Small
14
+ <small>Add this class <code>.btn-sm</code></small>
15
+ </h6>
16
+
17
+ <p>
18
+ <button type="button" class="btn btn-sm btn-facebook" style="margin-bottom: 4px">
19
+ <span>Facebook</span>
20
+ </button>
21
+
22
+ <button type="button" class="btn btn-sm btn-twitter" style="margin-bottom: 4px">
23
+ <span>Twitter</span>
24
+ </button>
25
+
26
+ <button type="button" class="btn btn-sm btn-linkedin" style="margin-bottom: 4px">
27
+ <span>LinkedIn</span>
28
+ </button>
29
+
30
+ <button type="button" class="btn btn-sm btn-tumblr" style="margin-bottom: 4px">
31
+ <span>Tumblr</span>
32
+ </button>
33
+
34
+ <button type="button" class="btn btn-sm btn-xing" style="margin-bottom: 4px">
35
+ <span>Xing</span>
36
+ </button>
37
+
38
+ <button type="button" class="btn btn-sm btn-github" style="margin-bottom: 4px">
39
+ <span>Github</span>
40
+ </button>
41
+
42
+ <button type="button" class="btn btn-sm btn-html5" style="margin-bottom: 4px">
43
+ <span>HTML5</span>
44
+ </button>
45
+
46
+ <button type="button" class="btn btn-sm btn-openid" style="margin-bottom: 4px">
47
+ <span>OpenID</span>
48
+ </button>
49
+
50
+ <button type="button" class="btn btn-sm btn-stack-overflow" style="margin-bottom: 4px">
51
+ <span>StackOverflow</span>
52
+ </button>
53
+
54
+ <button type="button" class="btn btn-sm btn-css3" style="margin-bottom: 4px">
55
+ <span>CSS3</span>
56
+ </button>
57
+
58
+ <button type="button" class="btn btn-sm btn-youtube" style="margin-bottom: 4px">
59
+ <span>YouTube</span>
60
+ </button>
61
+
62
+ <button type="button" class="btn btn-sm btn-dribbble" style="margin-bottom: 4px">
63
+ <span>Dribbble</span>
64
+ </button>
65
+
66
+ <button type="button" class="btn btn-sm btn-google-plus" style="margin-bottom: 4px">
67
+ <span>Google+</span>
68
+ </button>
69
+
70
+ <button type="button" class="btn btn-sm btn-instagram" style="margin-bottom: 4px">
71
+ <span>Instagram</span>
72
+ </button>
73
+
74
+ <button type="button" class="btn btn-sm btn-pinterest" style="margin-bottom: 4px">
75
+ <span>Pinterest</span>
76
+ </button>
77
+
78
+ <button type="button" class="btn btn-sm btn-reddit" style="margin-bottom: 4px">
79
+ <span>Reddit</span>
80
+ </button>
81
+
82
+ <button type="button" class="btn btn-sm btn-spotify" style="margin-bottom: 4px">
83
+ <span>Spotify</span>
84
+ </button>
85
+
86
+ <button type="button" class="btn btn-sm btn-vimeo" style="margin-bottom: 4px">
87
+ <span>Vimeo</span>
88
+ </button>
89
+ </p>
90
+
91
+ <h6>Size Normal</h6>
92
+
93
+ <p>
94
+ <button type="button" class="btn btn-facebook" style="margin-bottom: 4px">
95
+ <span>Facebook</span>
96
+ </button>
97
+
98
+ <button type="button" class="btn btn-twitter" style="margin-bottom: 4px">
99
+ <span>Twitter</span>
100
+ </button>
101
+
102
+ <button type="button" class="btn btn-linkedin" style="margin-bottom: 4px">
103
+ <span>LinkedIn</span>
104
+ </button>
105
+
106
+ <button type="button" class="btn btn-tumblr" style="margin-bottom: 4px">
107
+ <span>Tumblr</span>
108
+ </button>
109
+
110
+ <button type="button" class="btn btn-xing" style="margin-bottom: 4px">
111
+ <span>Xing</span>
112
+ </button>
113
+
114
+ <button type="button" class="btn btn-github" style="margin-bottom: 4px">
115
+ <span>Github</span>
116
+ </button>
117
+
118
+ <button type="button" class="btn btn-html5" style="margin-bottom: 4px">
119
+ <span>HTML5</span>
120
+ </button>
121
+
122
+ <button type="button" class="btn btn-openid" style="margin-bottom: 4px">
123
+ <span>OpenID</span>
124
+ </button>
125
+
126
+ <button type="button" class="btn btn-stack-overflow" style="margin-bottom: 4px">
127
+ <span>StackOverflow</span>
128
+ </button>
129
+
130
+ <button type="button" class="btn btn-css3" style="margin-bottom: 4px">
131
+ <span>CSS3</span>
132
+ </button>
133
+
134
+ <button type="button" class="btn btn-youtube" style="margin-bottom: 4px">
135
+ <span>YouTube</span>
136
+ </button>
137
+
138
+ <button type="button" class="btn btn-dribbble" style="margin-bottom: 4px">
139
+ <span>Dribbble</span>
140
+ </button>
141
+
142
+ <button type="button" class="btn btn-google-plus" style="margin-bottom: 4px">
143
+ <span>Google+</span>
144
+ </button>
145
+
146
+ <button type="button" class="btn btn-instagram" style="margin-bottom: 4px">
147
+ <span>Instagram</span>
148
+ </button>
149
+
150
+ <button type="button" class="btn btn-pinterest" style="margin-bottom: 4px">
151
+ <span>Pinterest</span>
152
+ </button>
153
+
154
+ <button type="button" class="btn btn-reddit" style="margin-bottom: 4px">
155
+ <span>Reddit</span>
156
+ </button>
157
+
158
+ <button type="button" class="btn btn-spotify" style="margin-bottom: 4px">
159
+ <span>Spotify</span>
160
+ </button>
161
+
162
+ <button type="button" class="btn btn-vimeo" style="margin-bottom: 4px">
163
+ <span>Vimeo</span>
164
+ </button>
165
+ </p>
166
+
167
+ <h6>
168
+ Size Large
169
+ <small>Add this class <code>.btn-lg</code></small>
170
+ </h6>
171
+
172
+ <p>
173
+ <button type="button" class="btn btn-lg btn-facebook" style="margin-bottom: 4px">
174
+ <span>Facebook</span>
175
+ </button>
176
+
177
+ <button type="button" class="btn btn-lg btn-twitter" style="margin-bottom: 4px">
178
+ <span>Twitter</span>
179
+ </button>
180
+
181
+ <button type="button" class="btn btn-lg btn-linkedin" style="margin-bottom: 4px">
182
+ <span>LinkedIn</span>
183
+ </button>
184
+
185
+ <button type="button" class="btn btn-lg btn-tumblr" style="margin-bottom: 4px">
186
+ <span>Tumblr</span>
187
+ </button>
188
+
189
+ <button type="button" class="btn btn-lg btn-xing" style="margin-bottom: 4px">
190
+ <span>Xing</span>
191
+ </button>
192
+
193
+ <button type="button" class="btn btn-lg btn-github" style="margin-bottom: 4px">
194
+ <span>Github</span>
195
+ </button>
196
+
197
+ <button type="button" class="btn btn-lg btn-html5" style="margin-bottom: 4px">
198
+ <span>HTML5</span>
199
+ </button>
200
+
201
+ <button type="button" class="btn btn-lg btn-openid" style="margin-bottom: 4px">
202
+ <span>OpenID</span>
203
+ </button>
204
+
205
+ <button type="button" class="btn btn-lg btn-stack-overflow" style="margin-bottom: 4px">
206
+ <span>StackOverflow</span>
207
+ </button>
208
+
209
+ <button type="button" class="btn btn-lg btn-css3" style="margin-bottom: 4px">
210
+ <span>CSS3</span>
211
+ </button>
212
+
213
+ <button type="button" class="btn btn-lg btn-youtube" style="margin-bottom: 4px">
214
+ <span>YouTube</span>
215
+ </button>
216
+
217
+ <button type="button" class="btn btn-lg btn-dribbble" style="margin-bottom: 4px">
218
+ <span>Dribbble</span>
219
+ </button>
220
+
221
+ <button type="button" class="btn btn-lg btn-google-plus" style="margin-bottom: 4px">
222
+ <span>Google+</span>
223
+ </button>
224
+
225
+ <button type="button" class="btn btn-lg btn-instagram" style="margin-bottom: 4px">
226
+ <span>Instagram</span>
227
+ </button>
228
+
229
+ <button type="button" class="btn btn-lg btn-pinterest" style="margin-bottom: 4px">
230
+ <span>Pinterest</span>
231
+ </button>
232
+
233
+ <button type="button" class="btn btn-lg btn-reddit" style="margin-bottom: 4px">
234
+ <span>Reddit</span>
235
+ </button>
236
+
237
+ <button type="button" class="btn btn-lg btn-spotify" style="margin-bottom: 4px">
238
+ <span>Spotify</span>
239
+ </button>
240
+
241
+ <button type="button" class="btn btn-lg btn-vimeo" style="margin-bottom: 4px">
242
+ <span>Vimeo</span>
243
+ </button>
244
+ </p>
245
+ </div>
246
+ </div>
247
+ </div>
248
+
249
+ <div class="col-12">
250
+ <div class="card">
251
+ <div class="card-header">
252
+ <%= fa_icon("tint") %> Social Media Button
253
+
254
+ <small>Only icons. Usage ex.</small>
255
+ <code style="text-transform:lowercase">&lt;button class="btn btn-facebook icon"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>
256
+ </div>
257
+
258
+ <div class="card-body collapse show" id="collapseExample2">
259
+ <h6>
260
+ Size Small
261
+
262
+ <small>Add this class <code>.btn-sm</code></small>
263
+ </h6>
264
+
265
+ <p>
266
+ <button type="button" class="btn btn-sm btn-facebook icon" style="margin-bottom: 4px">
267
+ <span>Facebook</span>
268
+ </button>
269
+
270
+ <button type="button" class="btn btn-sm btn-twitter icon" style="margin-bottom: 4px">
271
+ <span>Twitter</span>
272
+ </button>
273
+
274
+ <button type="button" class="btn btn-sm btn-linkedin icon" style="margin-bottom: 4px">
275
+ <span>LinkedIn</span>
276
+ </button>
277
+
278
+ <button type="button" class="btn btn-sm btn-tumblr icon" style="margin-bottom: 4px">
279
+ <span>Tumblr</span>
280
+ </button>
281
+
282
+ <button type="button" class="btn btn-sm btn-xing icon" style="margin-bottom: 4px">
283
+ <span>Xing</span>
284
+ </button>
285
+
286
+ <button type="button" class="btn btn-sm btn-github icon" style="margin-bottom: 4px">
287
+ <span>Github</span>
288
+ </button>
289
+
290
+ <button type="button" class="btn btn-sm btn-html5 icon" style="margin-bottom: 4px">
291
+ <span>HTML5</span>
292
+ </button>
293
+
294
+ <button type="button" class="btn btn-sm btn-openid icon" style="margin-bottom: 4px">
295
+ <span>OpenID</span>
296
+ </button>
297
+
298
+ <button type="button" class="btn btn-sm btn-stack-overflow icon" style="margin-bottom: 4px">
299
+ <span>StackOverflow</span>
300
+ </button>
301
+
302
+ <button type="button" class="btn btn-sm btn-css3 icon" style="margin-bottom: 4px">
303
+ <span>CSS3</span>
304
+ </button>
305
+
306
+ <button type="button" class="btn btn-sm btn-youtube icon" style="margin-bottom: 4px">
307
+ <span>YouTube</span>
308
+ </button>
309
+
310
+ <button type="button" class="btn btn-sm btn-dribbble icon" style="margin-bottom: 4px">
311
+ <span>Dribbble</span>
312
+ </button>
313
+
314
+ <button type="button" class="btn btn-sm btn-google-plus icon" style="margin-bottom: 4px">
315
+ <span>Google+</span>
316
+ </button>
317
+
318
+ <button type="button" class="btn btn-sm btn-instagram icon" style="margin-bottom: 4px">
319
+ <span>Instagram</span>
320
+ </button>
321
+
322
+ <button type="button" class="btn btn-sm btn-pinterest icon" style="margin-bottom: 4px">
323
+ <span>Pinterest</span>
324
+ </button>
325
+
326
+ <button type="button" class="btn btn-sm btn-reddit icon" style="margin-bottom: 4px">
327
+ <span>Reddit</span>
328
+ </button>
329
+
330
+ <button type="button" class="btn btn-sm btn-spotify icon" style="margin-bottom: 4px">
331
+ <span>Spotify</span>
332
+ </button>
333
+
334
+ <button type="button" class="btn btn-sm btn-vimeo icon" style="margin-bottom: 4px">
335
+ <span>Vimeo</span>
336
+ </button>
337
+ </p>
338
+
339
+ <h6>Size Normal</h6>
340
+
341
+ <p>
342
+ <button type="button" class="btn btn-facebook icon" style="margin-bottom: 4px">
343
+ <span>Facebook</span>
344
+ </button>
345
+
346
+ <button type="button" class="btn btn-twitter icon" style="margin-bottom: 4px">
347
+ <span>Twitter</span>
348
+ </button>
349
+
350
+ <button type="button" class="btn btn-linkedin icon" style="margin-bottom: 4px">
351
+ <span>LinkedIn</span>
352
+ </button>
353
+
354
+ <button type="button" class="btn btn-tumblr icon" style="margin-bottom: 4px">
355
+ <span>Tumblr</span>
356
+ </button>
357
+
358
+ <button type="button" class="btn btn-xing icon" style="margin-bottom: 4px">
359
+ <span>Xing</span>
360
+ </button>
361
+
362
+ <button type="button" class="btn btn-github icon" style="margin-bottom: 4px">
363
+ <span>Github</span>
364
+ </button>
365
+
366
+ <button type="button" class="btn btn-html5 icon" style="margin-bottom: 4px">
367
+ <span>HTML5</span>
368
+ </button>
369
+
370
+ <button type="button" class="btn btn-openid icon" style="margin-bottom: 4px">
371
+ <span>OpenID</span>
372
+ </button>
373
+
374
+ <button type="button" class="btn btn-stack-overflow icon" style="margin-bottom: 4px">
375
+ <span>StackOverflow</span>
376
+ </button>
377
+
378
+ <button type="button" class="btn btn-css3 icon" style="margin-bottom: 4px">
379
+ <span>CSS3</span>
380
+ </button>
381
+
382
+ <button type="button" class="btn btn-youtube icon" style="margin-bottom: 4px">
383
+ <span>YouTube</span>
384
+ </button>
385
+
386
+ <button type="button" class="btn btn-dribbble icon" style="margin-bottom: 4px">
387
+ <span>Dribbble</span>
388
+ </button>
389
+
390
+ <button type="button" class="btn btn-google-plus icon" style="margin-bottom: 4px">
391
+ <span>Google+</span>
392
+ </button>
393
+
394
+ <button type="button" class="btn btn-instagram icon" style="margin-bottom: 4px">
395
+ <span>Instagram</span>
396
+ </button>
397
+
398
+ <button type="button" class="btn btn-pinterest icon" style="margin-bottom: 4px">
399
+ <span>Pinterest</span>
400
+ </button>
401
+
402
+ <button type="button" class="btn btn-reddit icon" style="margin-bottom: 4px">
403
+ <span>Reddit</span>
404
+ </button>
405
+
406
+ <button type="button" class="btn btn-spotify icon" style="margin-bottom: 4px">
407
+ <span>Spotify</span>
408
+ </button>
409
+
410
+ <button type="button" class="btn btn-vimeo icon" style="margin-bottom: 4px">
411
+ <span>Vimeo</span>
412
+ </button>
413
+ </p>
414
+
415
+ <h6>
416
+ Size Large
417
+
418
+ <small>Add this class <code>.btn-lg</code></small>
419
+ </h6>
420
+
421
+ <p>
422
+ <button type="button" class="btn btn-lg btn-facebook icon" style="margin-bottom: 4px">
423
+ <span>Facebook</span>
424
+ </button>
425
+
426
+ <button type="button" class="btn btn-lg btn-twitter icon" style="margin-bottom: 4px">
427
+ <span>Twitter</span>
428
+ </button>
429
+
430
+ <button type="button" class="btn btn-lg btn-linkedin icon" style="margin-bottom: 4px">
431
+ <span>LinkedIn</span>
432
+ </button>
433
+
434
+ <button type="button" class="btn btn-lg btn-tumblr icon" style="margin-bottom: 4px">
435
+ <span>Tumblr</span>
436
+ </button>
437
+
438
+ <button type="button" class="btn btn-lg btn-xing icon" style="margin-bottom: 4px">
439
+ <span>Xing</span>
440
+ </button>
441
+
442
+ <button type="button" class="btn btn-lg btn-github icon" style="margin-bottom: 4px">
443
+ <span>Github</span>
444
+ </button>
445
+
446
+ <button type="button" class="btn btn-lg btn-html5 icon" style="margin-bottom: 4px">
447
+ <span>HTML5</span>
448
+ </button>
449
+
450
+ <button type="button" class="btn btn-lg btn-openid icon" style="margin-bottom: 4px">
451
+ <span>OpenID</span>
452
+ </button>
453
+
454
+ <button type="button" class="btn btn-lg btn-stack-overflow icon" style="margin-bottom: 4px">
455
+ <span>StackOverflow</span>
456
+ </button>
457
+
458
+ <button type="button" class="btn btn-lg btn-css3 icon" style="margin-bottom: 4px">
459
+ <span>CSS3</span>
460
+ </button>
461
+
462
+ <button type="button" class="btn btn-lg btn-youtube icon" style="margin-bottom: 4px">
463
+ <span>YouTube</span>
464
+ </button>
465
+
466
+ <button type="button" class="btn btn-lg btn-dribbble icon" style="margin-bottom: 4px">
467
+ <span>Dribbble</span>
468
+ </button>
469
+
470
+ <button type="button" class="btn btn-lg btn-google-plus icon" style="margin-bottom: 4px">
471
+ <span>Google+</span>
472
+ </button>
473
+
474
+ <button type="button" class="btn btn-lg btn-instagram icon" style="margin-bottom: 4px">
475
+ <span>Instagram</span>
476
+ </button>
477
+
478
+ <button type="button" class="btn btn-lg btn-pinterest icon" style="margin-bottom: 4px">
479
+ <span>Pinterest</span>
480
+ </button>
481
+
482
+ <button type="button" class="btn btn-lg btn-reddit icon" style="margin-bottom: 4px">
483
+ <span>Reddit</span>
484
+ </button>
485
+
486
+ <button type="button" class="btn btn-lg btn-spotify icon" style="margin-bottom: 4px">
487
+ <span>Spotify</span>
488
+ </button>
489
+
490
+ <button type="button" class="btn btn-lg btn-vimeo icon" style="margin-bottom: 4px">
491
+ <span>Vimeo</span>
492
+ </button>
493
+ </p>
494
+ </div>
495
+ </div>
496
+ </div>
497
+
498
+ <div class="col-12">
499
+ <div class="card">
500
+ <div class="card-header">
501
+ <%= fa_icon("tint") %> Social Media Button
502
+
503
+ <small>Only text. Usage ex.</small>
504
+ <code style="text-transform:lowercase">&lt;button class="btn btn-facebook text"&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/button&gt;</code>
505
+ </div>
506
+
507
+ <div class="card-body collapse show" id="collapseExample3">
508
+ <h6>
509
+ Size Small
510
+
511
+ <small>Add this class <code>.btn-sm</code></small>
512
+ </h6>
513
+
514
+ <p>
515
+ <button type="button" class="btn btn-sm btn-facebook text" style="margin-bottom: 4px">
516
+ <span>Facebook</span>
517
+ </button>
518
+
519
+ <button type="button" class="btn btn-sm btn-twitter text" style="margin-bottom: 4px">
520
+ <span>Twitter</span>
521
+ </button>
522
+
523
+ <button type="button" class="btn btn-sm btn-linkedin text" style="margin-bottom: 4px">
524
+ <span>LinkedIn</span>
525
+ </button>
526
+
527
+ <button type="button" class="btn btn-sm btn-tumblr text" style="margin-bottom: 4px">
528
+ <span>Tumblr</span>
529
+ </button>
530
+
531
+ <button type="button" class="btn btn-sm btn-xing text" style="margin-bottom: 4px">
532
+ <span>Xing</span>
533
+ </button>
534
+
535
+ <button type="button" class="btn btn-sm btn-github text" style="margin-bottom: 4px">
536
+ <span>Github</span>
537
+ </button>
538
+
539
+ <button type="button" class="btn btn-sm btn-html5 text" style="margin-bottom: 4px">
540
+ <span>HTML5</span>
541
+ </button>
542
+
543
+ <button type="button" class="btn btn-sm btn-openid text" style="margin-bottom: 4px">
544
+ <span>OpenID</span>
545
+ </button>
546
+
547
+ <button type="button" class="btn btn-sm btn-stack-overflow text" style="margin-bottom: 4px">
548
+ <span>StackOverflow</span>
549
+ </button>
550
+
551
+ <button type="button" class="btn btn-sm btn-css3 text" style="margin-bottom: 4px">
552
+ <span>CSS3</span>
553
+ </button>
554
+
555
+ <button type="button" class="btn btn-sm btn-youtube text" style="margin-bottom: 4px">
556
+ <span>YouTube</span>
557
+ </button>
558
+
559
+ <button type="button" class="btn btn-sm btn-dribbble text" style="margin-bottom: 4px">
560
+ <span>Dribbble</span>
561
+ </button>
562
+
563
+ <button type="button" class="btn btn-sm btn-google-plus text" style="margin-bottom: 4px">
564
+ <span>Google+</span>
565
+ </button>
566
+
567
+ <button type="button" class="btn btn-sm btn-instagram text" style="margin-bottom: 4px">
568
+ <span>Instagram</span>
569
+ </button>
570
+
571
+ <button type="button" class="btn btn-sm btn-pinterest text" style="margin-bottom: 4px">
572
+ <span>Pinterest</span>
573
+ </button>
574
+
575
+ <button type="button" class="btn btn-sm btn-reddit text" style="margin-bottom: 4px">
576
+ <span>Reddit</span>
577
+ </button>
578
+
579
+ <button type="button" class="btn btn-sm btn-spotify text" style="margin-bottom: 4px">
580
+ <span>Spotify</span>
581
+ </button>
582
+
583
+ <button type="button" class="btn btn-sm btn-vimeo text" style="margin-bottom: 4px">
584
+ <span>Vimeo</span>
585
+ </button>
586
+ </p>
587
+
588
+ <h6>Size Normal</h6>
589
+
590
+ <p>
591
+ <button type="button" class="btn btn-facebook text" style="margin-bottom: 4px">
592
+ <span>Facebook</span>
593
+ </button>
594
+
595
+ <button type="button" class="btn btn-twitter text" style="margin-bottom: 4px">
596
+ <span>Twitter</span>
597
+ </button>
598
+
599
+ <button type="button" class="btn btn-linkedin text" style="margin-bottom: 4px">
600
+ <span>LinkedIn</span>
601
+ </button>
602
+
603
+ <button type="button" class="btn btn-tumblr text" style="margin-bottom: 4px">
604
+ <span>Tumblr</span>
605
+ </button>
606
+
607
+ <button type="button" class="btn btn-xing text" style="margin-bottom: 4px">
608
+ <span>Xing</span>
609
+ </button>
610
+
611
+ <button type="button" class="btn btn-github text" style="margin-bottom: 4px">
612
+ <span>Github</span>
613
+ </button>
614
+
615
+ <button type="button" class="btn btn-html5 text" style="margin-bottom: 4px">
616
+ <span>HTML5</span>
617
+ </button>
618
+
619
+ <button type="button" class="btn btn-openid text" style="margin-bottom: 4px">
620
+ <span>OpenID</span>
621
+ </button>
622
+
623
+ <button type="button" class="btn btn-stack-overflow text" style="margin-bottom: 4px">
624
+ <span>StackOverflow</span>
625
+ </button>
626
+
627
+ <button type="button" class="btn btn-css3 text" style="margin-bottom: 4px">
628
+ <span>CSS3</span>
629
+ </button>
630
+
631
+ <button type="button" class="btn btn-youtube text" style="margin-bottom: 4px">
632
+ <span>YouTube</span>
633
+ </button>
634
+
635
+ <button type="button" class="btn btn-dribbble text" style="margin-bottom: 4px">
636
+ <span>Dribbble</span>
637
+ </button>
638
+
639
+ <button type="button" class="btn btn-google-plus text" style="margin-bottom: 4px">
640
+ <span>Google+</span>
641
+ </button>
642
+
643
+ <button type="button" class="btn btn-instagram text" style="margin-bottom: 4px">
644
+ <span>Instagram</span>
645
+ </button>
646
+
647
+ <button type="button" class="btn btn-pinterest text" style="margin-bottom: 4px">
648
+ <span>Pinterest</span>
649
+ </button>
650
+
651
+ <button type="button" class="btn btn-reddit text" style="margin-bottom: 4px">
652
+ <span>Reddit</span>
653
+ </button>
654
+
655
+ <button type="button" class="btn btn-spotify text" style="margin-bottom: 4px">
656
+ <span>Spotify</span>
657
+ </button>
658
+
659
+ <button type="button" class="btn btn-vimeo text" style="margin-bottom: 4px">
660
+ <span>Vimeo</span>
661
+ </button>
662
+ </p>
663
+
664
+ <h6>
665
+ Size Large
666
+
667
+ <small>Add this class <code>.btn-lg</code></small>
668
+ </h6>
669
+
670
+ <p>
671
+ <button type="button" class="btn btn-lg btn-facebook text" style="margin-bottom: 4px">
672
+ <span>Facebook</span>
673
+ </button>
674
+
675
+ <button type="button" class="btn btn-lg btn-twitter text" style="margin-bottom: 4px">
676
+ <span>Twitter</span>
677
+ </button>
678
+
679
+ <button type="button" class="btn btn-lg btn-linkedin text" style="margin-bottom: 4px">
680
+ <span>LinkedIn</span>
681
+ </button>
682
+
683
+ <button type="button" class="btn btn-lg btn-tumblr text" style="margin-bottom: 4px">
684
+ <span>Tumblr</span>
685
+ </button>
686
+
687
+ <button type="button" class="btn btn-lg btn-xing text" style="margin-bottom: 4px">
688
+ <span>Xing</span>
689
+ </button>
690
+
691
+ <button type="button" class="btn btn-lg btn-github text" style="margin-bottom: 4px">
692
+ <span>Github</span>
693
+ </button>
694
+
695
+ <button type="button" class="btn btn-lg btn-html5 text" style="margin-bottom: 4px">
696
+ <span>HTML5</span>
697
+ </button>
698
+
699
+ <button type="button" class="btn btn-lg btn-openid text" style="margin-bottom: 4px">
700
+ <span>OpenID</span>
701
+ </button>
702
+
703
+ <button type="button" class="btn btn-lg btn-stack-overflow text" style="margin-bottom: 4px">
704
+ <span>StackOverflow</span>
705
+ </button>
706
+
707
+ <button type="button" class="btn btn-lg btn-css3 text" style="margin-bottom: 4px">
708
+ <span>CSS3</span>
709
+ </button>
710
+
711
+ <button type="button" class="btn btn-lg btn-youtube text" style="margin-bottom: 4px">
712
+ <span>YouTube</span>
713
+ </button>
714
+
715
+ <button type="button" class="btn btn-lg btn-dribbble text" style="margin-bottom: 4px">
716
+ <span>Dribbble</span>
717
+ </button>
718
+
719
+ <button type="button" class="btn btn-lg btn-google-plus text" style="margin-bottom: 4px">
720
+ <span>Google+</span>
721
+ </button>
722
+
723
+ <button type="button" class="btn btn-lg btn-instagram text" style="margin-bottom: 4px">
724
+ <span>Instagram</span>
725
+ </button>
726
+
727
+ <button type="button" class="btn btn-lg btn-pinterest text" style="margin-bottom: 4px">
728
+ <span>Pinterest</span>
729
+ </button>
730
+
731
+ <button type="button" class="btn btn-lg btn-reddit text" style="margin-bottom: 4px">
732
+ <span>Reddit</span>
733
+ </button>
734
+
735
+ <button type="button" class="btn btn-lg btn-spotify text" style="margin-bottom: 4px">
736
+ <span>Spotify</span>
737
+ </button>
738
+
739
+ <button type="button" class="btn btn-lg btn-vimeo text" style="margin-bottom: 4px">
740
+ <span>Vimeo</span>
741
+ </button>
742
+ </p>
743
+ </div>
744
+ </div>
745
+ </div>
746
+ </div>