storytime 2.1.5 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +54 -0
  3. data/.gitignore +2 -1
  4. data/.ruby-version +1 -1
  5. data/.tool-versions +1 -0
  6. data/Gemfile +5 -3
  7. data/Gemfile.lock +414 -425
  8. data/Guardfile +1 -1
  9. data/app/assets/fonts/storytime-icons.eot +0 -0
  10. data/app/assets/fonts/storytime-icons.svg +23 -0
  11. data/app/assets/fonts/storytime-icons.ttf +0 -0
  12. data/app/assets/fonts/storytime-icons.woff +0 -0
  13. data/app/assets/javascripts/storytime/application.js +1 -8
  14. data/app/assets/javascripts/storytime/off_canvas.coffee +16 -0
  15. data/app/assets/javascripts/storytime/wysiwyg.js.coffee +9 -7
  16. data/app/assets/stylesheets/storytime/_buttons.scss +33 -0
  17. data/app/assets/stylesheets/storytime/_list-group.scss +1 -1
  18. data/app/assets/stylesheets/storytime/application.scss +14 -2
  19. data/app/assets/stylesheets/storytime/icons.scss +5 -5
  20. data/app/assets/stylesheets/storytime/leather/_buttons.scss +31 -0
  21. data/app/assets/stylesheets/storytime/leather/_devise.scss +72 -0
  22. data/app/assets/stylesheets/storytime/leather/_grid.scss +19 -0
  23. data/app/assets/stylesheets/storytime/leather/_list_groups.scss +33 -0
  24. data/app/assets/stylesheets/storytime/leather/_nav_menus.scss +125 -0
  25. data/app/assets/stylesheets/storytime/leather/_navbar_transparent.scss +23 -0
  26. data/app/assets/stylesheets/storytime/leather/_off_canvas.scss +109 -0
  27. data/app/assets/stylesheets/storytime/leather/_scroll_panels.scss +85 -0
  28. data/app/assets/stylesheets/storytime/leather/_toggle_columns.scss +23 -0
  29. data/app/assets/stylesheets/storytime/leather/_typography.scss +12 -0
  30. data/app/assets/stylesheets/storytime/leather/_utilities.scss +54 -0
  31. data/app/assets/stylesheets/storytime/leather/_variables.scss +8 -0
  32. data/app/assets/stylesheets/storytime/posts.scss +9 -1
  33. data/app/controllers/storytime/application_controller.rb +1 -1
  34. data/app/controllers/storytime/dashboard/blog_posts_controller.rb +5 -3
  35. data/app/controllers/storytime/dashboard/blogs_controller.rb +1 -1
  36. data/app/controllers/storytime/dashboard/media_controller.rb +4 -4
  37. data/app/controllers/storytime/dashboard/memberships_controller.rb +1 -1
  38. data/app/controllers/storytime/dashboard/pages_controller.rb +26 -6
  39. data/app/controllers/storytime/dashboard/posts_controller.rb +30 -5
  40. data/app/controllers/storytime/dashboard/subscriptions_controller.rb +1 -1
  41. data/app/controllers/storytime/pages_controller.rb +31 -1
  42. data/app/controllers/storytime/posts_controller.rb +1 -1
  43. data/app/controllers/storytime/subscriptions_controller.rb +5 -1
  44. data/app/helpers/storytime/application_helper.rb +0 -4
  45. data/app/models/concerns/storytime/post_featured_images.rb +2 -2
  46. data/app/models/concerns/storytime/post_partial_inheritance.rb +2 -2
  47. data/app/models/storytime/autosave.rb +1 -1
  48. data/app/models/storytime/comment.rb +1 -1
  49. data/app/models/storytime/media.rb +1 -1
  50. data/app/models/storytime/membership.rb +2 -2
  51. data/app/models/storytime/post.rb +7 -3
  52. data/app/models/storytime/site.rb +4 -6
  53. data/app/models/storytime/snippet.rb +12 -1
  54. data/app/models/storytime/subscription.rb +2 -2
  55. data/app/models/storytime/version.rb +1 -1
  56. data/app/policies/storytime/post_policy.rb +1 -1
  57. data/app/views/storytime/dashboard/_navigation.html.erb +0 -9
  58. data/app/views/storytime/dashboard/blog_posts/_form.html.erb +5 -1
  59. data/app/views/storytime/dashboard/blogs/edit.json.jbuilder +1 -1
  60. data/app/views/storytime/dashboard/blogs/index.json.jbuilder +1 -1
  61. data/app/views/storytime/dashboard/blogs/new.json.jbuilder +1 -1
  62. data/app/views/storytime/dashboard/media/_gallery.html.erb +1 -1
  63. data/app/views/storytime/dashboard/media/_modal.html.erb +2 -2
  64. data/app/views/storytime/dashboard/media/show.json.jbuilder +1 -1
  65. data/app/views/storytime/dashboard/memberships/_edit.html.erb +1 -1
  66. data/app/views/storytime/dashboard/memberships/_index.html.erb +3 -3
  67. data/app/views/storytime/dashboard/memberships/_new.html.erb +1 -1
  68. data/app/views/storytime/dashboard/memberships/edit.json.jbuilder +1 -1
  69. data/app/views/storytime/dashboard/memberships/index.json.jbuilder +1 -1
  70. data/app/views/storytime/dashboard/memberships/new.json.jbuilder +1 -1
  71. data/app/views/storytime/dashboard/memberships/save.json.jbuilder +1 -1
  72. data/app/views/storytime/dashboard/pages/_form.html.erb +1 -1
  73. data/app/views/storytime/dashboard/posts/_directory.html.erb +18 -0
  74. data/app/views/storytime/dashboard/posts/_form.html.erb +1 -1
  75. data/app/views/storytime/dashboard/posts/_list.html.erb +2 -26
  76. data/app/views/storytime/dashboard/posts/_new_button.html.erb +1 -1
  77. data/app/views/storytime/dashboard/posts/_post.html.erb +28 -0
  78. data/app/views/storytime/dashboard/posts/_sorts.html.erb +21 -0
  79. data/app/views/storytime/dashboard/posts/index.html.erb +5 -3
  80. data/app/views/storytime/dashboard/roles/_form.html.erb +1 -1
  81. data/app/views/storytime/dashboard/roles/edit.json.jbuilder +1 -1
  82. data/app/views/storytime/dashboard/sites/_form.html.erb +1 -1
  83. data/app/views/storytime/dashboard/sites/site.json.jbuilder +1 -1
  84. data/app/views/storytime/dashboard/snippets/_index.html.erb +1 -1
  85. data/app/views/storytime/dashboard/snippets/edit.json.jbuilder +1 -1
  86. data/app/views/storytime/dashboard/snippets/index.json.jbuilder +1 -1
  87. data/app/views/storytime/dashboard/snippets/new.json.jbuilder +1 -1
  88. data/app/views/storytime/dashboard/subscriptions/_form.html.erb +1 -1
  89. data/app/views/storytime/dashboard/subscriptions/_index.html.erb +2 -2
  90. data/app/views/storytime/dashboard/subscriptions/form.json.jbuilder +1 -1
  91. data/app/views/storytime/dashboard/subscriptions/index.json.jbuilder +1 -1
  92. data/app/views/storytime/dashboard/versions/_versions_info.html.erb +1 -1
  93. data/app/views/storytime/posts/show.html.erb +6 -0
  94. data/app/views/storytime/sites/_google_analytics_code.html.erb +5 -8
  95. data/config/initializers/assets.rb +2 -1
  96. data/config/initializers/friendly_id.rb +1 -1
  97. data/config/initializers/url_for_patch.rb +19 -8
  98. data/config/locales/devise.zh-CN.yml +59 -0
  99. data/config/locales/kaminari.zh-CN.yml +17 -0
  100. data/config/locales/simple_form.zh-CN.yml +26 -0
  101. data/config/locales/zh-CN.yml +141 -0
  102. data/config/routes.rb +2 -4
  103. data/db/migrate/20140501174341_create_storytime_posts.rb +1 -1
  104. data/db/migrate/20140509191309_create_friendly_id_slugs.rb +1 -1
  105. data/db/migrate/20140511200849_create_storytime_media.rb +1 -1
  106. data/db/migrate/20140513161233_create_storytime_sites.rb +1 -1
  107. data/db/migrate/20140514200234_create_storytime_tags.rb +1 -1
  108. data/db/migrate/20140514200304_create_storytime_taggings.rb +1 -1
  109. data/db/migrate/20140516141252_create_storytime_versions.rb +1 -1
  110. data/db/migrate/20140521190606_create_storytime_roles.rb +1 -1
  111. data/db/migrate/20140521191048_add_storytime_role_id_to_users.rb +1 -1
  112. data/db/migrate/20140521191728_create_storytime_permissions.rb +1 -1
  113. data/db/migrate/20140521191744_create_storytime_actions.rb +1 -1
  114. data/db/migrate/20140813014447_create_storytime_comments.rb +1 -1
  115. data/db/migrate/20140813130534_add_storytime_name_to_users.rb +1 -1
  116. data/db/migrate/20140916183056_create_storytime_autosaves.rb +1 -1
  117. data/db/migrate/20141020213343_add_secondary_media_id_to_storytime_post.rb +1 -1
  118. data/db/migrate/20141021073356_create_storytime_snippets.rb +1 -1
  119. data/db/migrate/20141111164439_create_storytime_subscriptions.rb +1 -1
  120. data/db/migrate/20150122200805_add_title_and_content_index_to_storytime_post.rb +1 -1
  121. data/db/migrate/20150128185746_seed_new_actions_and_permissions.rb +1 -1
  122. data/db/migrate/20150129215308_add_site_id_to_storytime_subscription.rb +1 -1
  123. data/db/migrate/20150206201847_add_site_id_to_storytime_post.rb +1 -1
  124. data/db/migrate/20150206201919_add_site_id_to_storytime_snippet.rb +1 -1
  125. data/db/migrate/20150206201931_add_site_id_to_storytime_tag.rb +1 -1
  126. data/db/migrate/20150206205256_add_notification_fields_to_storytime_post.rb +1 -1
  127. data/db/migrate/20150216211257_add_subdomain_to_storytime_sites.rb +1 -1
  128. data/db/migrate/20150216225045_add_site_to_storytime_media.rb +1 -1
  129. data/db/migrate/20150219210528_remove_root_page_content_from_storytime_sites.rb +1 -1
  130. data/db/migrate/20150220184902_add_blog_id_to_posts.rb +1 -1
  131. data/db/migrate/20150224192138_add_homepage_path_to_storytime_sites.rb +1 -1
  132. data/db/migrate/20150224193151_add_subscription_email_from_to_storytime_sites.rb +1 -1
  133. data/db/migrate/20150224193551_add_layout_to_storytime_sites.rb +1 -1
  134. data/db/migrate/20150224194559_add_disqus_forum_shortname_to_storytime_sites.rb +1 -1
  135. data/db/migrate/20150224212453_remove_homepage_path_from_storytime_sites.rb +1 -1
  136. data/db/migrate/20150225143516_add_site_id_to_storytime_autosaves.rb +1 -1
  137. data/db/migrate/20150225143826_add_site_id_to_storytime_comments.rb +1 -1
  138. data/db/migrate/20150225145119_add_site_id_to_storytime_versions.rb +1 -1
  139. data/db/migrate/20150225145316_add_site_id_to_storytime_taggings.rb +1 -1
  140. data/db/migrate/20150225145608_update_storytime_site_id_columns.rb +1 -1
  141. data/db/migrate/20150225164232_add_site_id_to_storytime_permissions.rb +1 -1
  142. data/db/migrate/20150225212917_create_storytime_memberships.rb +1 -1
  143. data/db/migrate/20150225213535_create_memberships_for_storytime_users.rb +1 -1
  144. data/db/migrate/20150226201739_add_custom_domain_to_storytime_sites.rb +1 -1
  145. data/db/migrate/20150302171500_add_site_id_to_storytime_media.rb +1 -1
  146. data/db/migrate/20150302171722_set_site_layout.rb +1 -1
  147. data/db/migrate/20150302185138_remove_storytime_role_id_from_users.rb +1 -1
  148. data/db/migrate/20150302192525_transfer_posts_to_blogs.rb +1 -1
  149. data/db/migrate/20150302192759_seed_permissions.rb +1 -1
  150. data/db/migrate/20150331162329_add_discourse_name_to_storytime_sites.rb +1 -1
  151. data/db/migrate/20150402161427_remove_subdomain_from_storytime_site.rb +1 -1
  152. data/db/migrate/20150520181115_create_storytime_navigations.rb +1 -1
  153. data/db/migrate/20150520185227_create_storytime_links.rb +1 -1
  154. data/db/migrate/20150520190700_add_position_to_storytime_links.rb +1 -1
  155. data/db/migrate/20150529192058_add_url_to_storytime_links.rb +1 -1
  156. data/db/migrate/20260408001637_add_canonical_url_to_storytime_posts.rb +5 -0
  157. data/db/migrate/20260701000000_sanitize_existing_storytime_snippets.rb +22 -0
  158. data/lib/storytime/cli/install.rb +2 -20
  159. data/lib/storytime/concerns/action_controller_extension.rb +36 -0
  160. data/lib/storytime/constraints/page_constraint.rb +8 -2
  161. data/lib/storytime/engine.rb +4 -5
  162. data/lib/storytime/migrators/v1.rb +3 -3
  163. data/lib/storytime/post_notifier.rb +1 -1
  164. data/lib/storytime/post_url_handler.rb +18 -5
  165. data/lib/storytime/storytime_helpers.rb +4 -0
  166. data/lib/storytime/version.rb +1 -1
  167. data/lib/storytime.rb +1 -1
  168. data/spec/controllers/dashboard_controller_spec.rb +5 -6
  169. data/spec/dummy/app/assets/config/manifest.js +3 -0
  170. data/spec/dummy/config/database.yml +3 -3
  171. data/spec/dummy/config/initializers/devise.rb +1 -1
  172. data/spec/dummy/db/migrate/20140530185250_devise_create_users.rb +1 -1
  173. data/spec/dummy/db/migrate/20150127172846_create_widgets.rb +1 -1
  174. data/spec/dummy/db/migrate/20150206203824_add_video_url_to_storytime_posts.rb +1 -1
  175. data/spec/dummy/db/schema.rb +226 -244
  176. data/spec/factories/action_factories.rb +3 -3
  177. data/spec/factories/comment_factories.rb +1 -1
  178. data/spec/factories/media_factories.rb +1 -1
  179. data/spec/factories/membership_factories.rb +1 -1
  180. data/spec/factories/navigation_factories.rb +3 -3
  181. data/spec/factories/permission_factories.rb +1 -1
  182. data/spec/factories/post_factories.rb +2 -2
  183. data/spec/factories/role_factories.rb +11 -11
  184. data/spec/factories/site_factories.rb +3 -3
  185. data/spec/factories/snippet_factories.rb +1 -1
  186. data/spec/factories/subscription_factories.rb +1 -1
  187. data/spec/factories/user_factories.rb +2 -2
  188. data/spec/factories/widget_factories.rb +2 -2
  189. data/spec/features/blogs_spec.rb +7 -7
  190. data/spec/features/comments_spec.rb +11 -11
  191. data/spec/features/dashboard/media_spec.rb +17 -11
  192. data/spec/features/dashboard/memberships_spec.rb +13 -19
  193. data/spec/features/dashboard/navigations_spec.rb +1 -1
  194. data/spec/features/dashboard/pages_spec.rb +8 -8
  195. data/spec/features/dashboard/posts_spec.rb +19 -19
  196. data/spec/features/dashboard/sites_spec.rb +1 -1
  197. data/spec/features/dashboard/snippets_spec.rb +3 -3
  198. data/spec/features/dashboard/subscription_spec.rb +2 -2
  199. data/spec/features/pages_spec.rb +3 -3
  200. data/spec/features/posts_spec.rb +2 -2
  201. data/spec/features/subscription_spec.rb +3 -3
  202. data/spec/importers/wordpress_spec.rb +1 -1
  203. data/spec/lib/mysql_fulltext_search_adapter_spec.rb +3 -3
  204. data/spec/lib/mysql_search_adapter_spec.rb +3 -3
  205. data/spec/lib/postgres_search_adapter_spec.rb +3 -3
  206. data/spec/lib/sqlite3_search_adapter_spec.rb +3 -3
  207. data/spec/lib/storytime/constraints/page_constraint_spec.rb +40 -0
  208. data/spec/lib/storytime_helpers_spec.rb +2 -2
  209. data/spec/models/navigation_spec.rb +3 -3
  210. data/spec/models/post_spec.rb +29 -29
  211. data/spec/models/snippet_spec.rb +31 -0
  212. data/spec/models/subscription_spec.rb +4 -4
  213. data/spec/models/tagging_spec.rb +14 -14
  214. data/spec/models/version_spec.rb +29 -29
  215. data/spec/policies/comment_policy_spec.rb +11 -11
  216. data/spec/policies/post_policy_spec.rb +13 -13
  217. data/spec/requests/pages_spec.rb +37 -0
  218. data/spec/requests/routings_spec.rb +14 -15
  219. data/spec/spec_helper.rb +8 -15
  220. data/spec/support/domains.rb +2 -2
  221. data/spec/support/feature_macros.rb +5 -5
  222. data/spec/support/pundit_matcher.rb +3 -3
  223. data/storytime.gemspec +15 -20
  224. data/vendor/assets/javascripts/codemirror/addons/edit/closebrackets.js +195 -0
  225. data/vendor/assets/javascripts/codemirror/addons/edit/closetag.js +169 -0
  226. data/vendor/assets/javascripts/codemirror/addons/fold/xml-fold.js +182 -0
  227. data/vendor/assets/javascripts/codemirror.js +8922 -0
  228. data/vendor/assets/javascripts/medium-editor.min.js +3 -3
  229. data/vendor/assets/stylesheets/codemirror/themes/solarized.css +169 -0
  230. data/vendor/assets/stylesheets/codemirror.css +347 -0
  231. metadata +94 -134
  232. data/config/initializers/storytime_admin.rb +0 -5
  233. data/config/spring.rb +0 -1
  234. data/spec/dummy/app/controllers/storytime_admin/widgets_controller.rb +0 -5
  235. data/spec/dummy/db/development.sqlite3 +0 -0
  236. data/spec/dummy/db/test.sqlite3 +0 -0
data/Guardfile CHANGED
@@ -1,7 +1,7 @@
1
1
  # A sample Guardfile
2
2
  # More info at https://github.com/guard/guard#readme
3
3
 
4
- guard :rspec, cmd: 'bundle exec spring rspec', failed_mode: :none do
4
+ guard :rspec, cmd: 'bundle exec rspec', failed_mode: :none do
5
5
  watch(%r{^spec/.+_spec\.rb$})
6
6
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
7
  watch('spec/spec_helper.rb') { "spec" }
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by Fontastic.me</metadata>
5
+ <defs>
6
+ <font id="storytime-icons" horiz-adv-x="512">
7
+ <font-face font-family="storytime-icons" units-per-em="512" ascent="480" descent="-32"/>
8
+ <missing-glyph horiz-adv-x="512"/>
9
+
10
+ <glyph unicode="m" d="M247 42l22 0 0-36-22 0z m58 231l174 104-8 14-184-105 103 185-15 9-106-183-2 211-17 0-2-212-109 182-15-9 100-175-176 101-16-27 222-127 255 0 0 32z m-298-5l34 0 0-22-34 0z m118-224l19-11 18 32-19 11z m312 99l34-19 11 18-34 20z m-390-22l-11 18 31 18 11-18z m310-53l19-33 19 11-20 33z"/>
11
+ <glyph unicode="a" d="M256 509c-139 0-252-113-252-252 0-139 113-252 252-252 139 0 252 113 252 252 0 139-113 252-252 252z m0-476c-123 0-224 100-224 224 0 123 101 224 224 224 124 0 224-101 224-224 0-124-100-224-224-224z m90 319l-90-89-90 89-19-19 89-90-89-89 20-20 89 89 89-89 20 20-89 89 90 90z"/>
12
+ <glyph unicode="b" d="M258 153l-88 84 167 168 87-83z m-84 84l84-80 162 165-83 80z m84-93l-97 92 175 178 97-92z m-75 93l74-71 154 156-74 71z m75-95l-99 94 177 180 99-94z m-95 94l95-90 173 176-95 90z m94-72l-75 73 155 157 75-72z m-72 73l72-69 152 154-72 69z m-73-140l38 119 88-84z m39 115l-35-111 117 32z m-48-124l44 141 104-100z m51 112l-28-90 94 26z m-53-114l45 145 107-103z m46 140l-43-137 144 40z m-23-117l29 93 70-66z m31 88l-27-85 90 25z m289 145l-87 84 57 58 87-84z m-84 84l84-80 53 54-83 80z m84-93l-97 93 67 67 96-93z m-74 93l74-71 44 45-74 71z m74-95l-98 95 68 69 98-95z m-95 95l95-91 64 65-94 91z m95-73l-76 73 46 47 76-73z m-72 73l72-69 42 43-72 69z m101-136l0-260-445 0 0 454 306 0 0 25-331 0 0-504 494 0 0 285z"/>
13
+ <glyph unicode="c" d="M4 509l0-505 505 0 0 505z m481-481l-458 0 0 105 130 111 87-86 108 198 133-129z m0 232l-139 135-108-198-80 79-131-111 0 321 458 0z m-317 49c29 0 52 23 52 52 0 29-23 52-52 52-29 0-52-23-52-52 0-29 23-52 52-52z m0 80c15 0 28-12 28-28 0-15-13-28-28-28-16 0-28 13-28 28 0 16 12 28 28 28z"/>
14
+ <glyph unicode="d" d="M254 6c-124 0-224 101-224 226 0 125 101 226 224 226 123 0 224-101 224-226 0-125-100-226-224-226z m0 418c-104 0-189-86-189-192 0-106 85-192 189-192 104 0 189 86 189 192 1 106-85 192-189 192z m-17 84l34 0 0-288-34 0z"/>
15
+ <glyph unicode="e" d="M374 342l7 0c0 0 0 0 0 0-10 96-62 166-125 166-63 0-114-70-125-166l8 0c-40 0-73-32-73-72l0-193c0-40 33-73 73-73l235 0c40 0 72 33 72 73l0 192c0 40-32 73-72 73z m-118 137c45 0 84-60 94-137l-188 0c10 77 49 137 94 137z m161-402c0-24-19-44-43-44l-235 0c-24 0-44 20-44 44l0 192c0 24 20 44 44 44l235 0c1 0 1 0 2 0 23-1 41-20 41-44l0-192z m-161 139c-22 0-39-17-39-39 0-15 8-28 20-34l0-36 38 0 0 36c13 6 21 19 21 34 0 22-18 39-40 39z"/>
16
+ <glyph unicode="f" d="M346 308c18 21 28 48 28 77 0 68-55 123-122 123-68 0-123-55-123-123 0-30 12-57 30-79l-72-65 62-237 209 0 63 237z m-187 77c0 52 42 93 93 93 51 0 93-41 93-93 0-21-8-41-21-57-6-8-13-15-21-20-15-10-32-16-51-16-18 0-34 6-49 14-8 6-16 12-22 20-14 16-22 37-22 59z m177-352l-164 0-52 199 61 54c20-14 44-23 71-23 27 0 53 10 73 25l63-56z"/>
17
+ <glyph unicode="g" d="M112 365l0 144-31 0 0-144c-28-7-48-31-48-61 0-29 20-53 48-60l0-240 31 0 0 240c27 7 47 31 47 61 0 29-20 53-47 60z m0-88c-5-2-10-4-16-4-6 0-11 2-15 4-10 6-16 16-16 27 0 12 6 22 16 28 4 2 10 4 15 4 6 0 11-2 16-4 9-6 16-16 16-28 0-11-7-21-16-27z m157-69l0 301-31 0 0-301c-27-7-47-31-47-61 0-29 20-53 47-61l0-81 31 0 0 81c27 7 48 32 48 61 0 29-21 54-48 61z m0-88c-4-3-10-4-15-4-6 0-11 1-16 4-9 5-16 16-16 27 0 12 7 22 16 27 5 3 10 5 16 5 5 0 11-2 15-5 10-5 16-15 16-27 0-11-6-22-16-27z m158 340l0 49-32 0 0-49c-27-7-47-32-47-61 0-29 20-54 47-61l0-334 32 0 0 334c27 7 47 32 47 61 0 29-20 54-47 61z m0-88c-5-3-10-5-16-5-6 0-11 2-16 5-9 5-15 15-15 27 0 11 6 22 15 27 5 3 10 4 16 4 6 0 11-1 16-4 9-5 15-16 15-27 0-12-6-22-15-27z"/>
18
+ <glyph unicode="h" d="M4 451l0-377 503 0 0 377z m433-31l-177-142-185 142z m-402-315l0 306 225-173 215 172 0-305-440 0z"/>
19
+ <glyph unicode="i" d="M122 6l275 0 68 405-410 0z m252 27l-229 0-58 351 345 0z m-51 419l0 54-120 0 0-54-160 0 0-27 426 0 0 27z"/>
20
+ <glyph unicode="j" d="M459 330c10 13 17 30 17 48 0 45-38 82-84 82-39 0-72-27-81-63-16 13-36 21-58 21-22 0-41-8-57-20-9 35-41 62-80 62-47 0-84-37-84-82 0-19 7-36 18-50l-47-40 43-156 110 0 21-82 154 0 22 82 111 0 43 156z m-67 104c32 0 59-25 59-56 0-12-5-23-11-32-5-7-12-12-20-16-8-5-17-8-27-8-10 0-19 3-27 7-8 4-14 9-20 16-7 9-11 21-11 33-1 31 25 56 57 56z m-139-41c27 0 50-16 60-40 1-1 1-3 2-5 2-6 3-13 3-20 0-3 0-5-1-8-1-11-5-22-12-31-5-7-11-13-19-17 0 0-1 0-1-1-10-5-20-8-32-8-10 0-20 2-28 6-1 1-2 2-4 2-7 4-14 10-19 17-8 10-13 22-14 36 0 1 0 2 0 4 0 4 0 9 1 13 3 6 6 12 7 18 12 20 33 34 57 34z m-196-15c0 31 26 56 59 56 32 0 58-25 58-56 0-3-1-6-1-10-3-5-5-11-7-17-1-2-2-3-3-5-5-7-12-13-19-17-9-4-18-7-28-7-10 0-19 3-27 7-7 3-14 9-20 16-7 9-12 21-12 33z m8-221l-33 122 37 32c13-9 29-14 47-14 17 0 34 6 48 15l0-1c3-15 10-29 19-40l-51-47 17-67z m247-82l-115 0-15 57-10 38-12 46 32 29 10 9c5-4 10-7 16-9 11-5 23-7 35-7 14 0 27 3 39 8 5 3 10 6 14 9l13-12 30-27-11-43-11-41z m133 82l-85 0 18 67-54 48c8 10 14 22 17 35l5 4c13-9 29-14 47-14 17 0 34 5 47 15l38-33z"/>
21
+ <glyph unicode="k" d="M255 341c-46 0-84-38-84-84 0-46 38-84 84-84 47 0 84 38 84 84 0 46-37 84-84 84z m64-84c0-35-29-63-64-63-34 0-63 28-63 63 0 35 29 63 63 63 35 0 64-28 64-63z m188-37l0 74-74 31c-2 4-3 6-4 9l30 75-52 52-74-31c-3 2-6 3-9 4l-32 74-74 0-30-74c-4-1-7-2-10-4l-74 30-52-52 30-73c-1-3-3-7-4-11l-73-31 0-74 73-30c1-4 3-7 4-10l-29-74 52-52 73 30c3-1 6-2 10-4l31-73 74 0 31 74c4 1 6 2 9 3l75-29 52 52-31 74c1 3 2 6 4 9z m-91-16l-1-4c-2-4-4-10-6-15l-2-4 28-70-32-33-70 28 0 0-4-2c-6-2-12-5-16-6l-5-2-28-69-47 0-29 69-5 1c-4 2-10 4-16 7l-4 2-69-29-33 33 28 69-2 4c-2 5-5 11-7 17l-2 5-68 28 0 47 68 29 2 4c2 5 4 11 7 17l2 4-29 69 33 33 70-28 4 2c4 2 9 4 16 6l4 2 29 69 47 0 29-69 4-2c6-2 11-4 16-6l4-2 70 28 33-32-29-71 2-4c2-4 5-9 7-15l1-4 70-29 0-47z"/>
22
+ <glyph unicode="l" d="M406 351l0 75-84 0 0 83-292 0 0-346 83 0 0-83 76 0 0-76 293 0 0 347-76 0z m-350-162l0 293 240 0 0-56-183 0 0-237-57 0z m84-83l0 294 239 0 0-49-190 0 0-245-49 0z m315-75l-239 0 0 293 239 0 0-293z"/>
23
+ </font></defs></svg>
@@ -14,14 +14,8 @@
14
14
  //= require jquery
15
15
  //= require jquery_ujs
16
16
  //= require bootstrap-sprockets
17
- //= require leather
18
17
  //= require cocoon
19
- //= require jquery-ui/core
20
- //= require jquery-ui/datepicker
21
- //= require jquery-ui/position
22
- //= require jquery-ui/widget
23
- //= require jquery-ui/resizable
24
- //= require jquery-ui/sortable
18
+ //= require jquery-ui
25
19
  //= require jquery.ui.timepicker
26
20
  //= require jquery.iframe-transport.js
27
21
  //= require jquery.fileupload.js
@@ -34,7 +28,6 @@
34
28
  //= require codemirror/addons/edit/closebrackets
35
29
  //= require chosen.jquery
36
30
  //= require medium-editor.min
37
- //= require storytime_admin
38
31
  //= require_tree .
39
32
 
40
33
  window.Storytime || (window.Storytime = {})
@@ -0,0 +1,16 @@
1
+ $ ->
2
+ $("body").on "click", "[data-toggle='off-canvas']", (e) ->
3
+ e.preventDefault()
4
+ if $("#off-canvas-overlay").length == 0
5
+ $("#main").before("<div id='off-canvas-overlay'></div>")
6
+ target = $(this).data("target")
7
+ $(target).toggleClass("in")
8
+
9
+ $("body").on "click touchstart", "#off-canvas-overlay", (e) ->
10
+ e.preventDefault()
11
+ $(".off-canvas.in").removeClass("in")
12
+
13
+ $("body").on "click", "[data-toggle='columns']", (e) ->
14
+ e.preventDefault()
15
+ $('#right').toggleClass('hidden-xs')
16
+ $('#left').toggleClass('hidden-xs')
@@ -1,18 +1,20 @@
1
1
  class Storytime.Dashboard.Wysiwyg
2
- mediumEditorOptions =
2
+ mediumEditorOptions =
3
3
  buttons: ['bold', 'italic', 'underline', 'anchor', 'header1', 'header2', 'quote', 'unorderedlist', 'orderedlist', 'pre']
4
4
  toolbarAlign: 'center'
5
5
  buttonLabels: 'fontawesome'
6
6
  checkLinkFormat: true
7
+ firstHeader: "h2"
8
+ secondHeader: "h3"
7
9
 
8
- codeMirrorOptions =
10
+ codeMirrorOptions =
9
11
  mode: 'htmlmixed'
10
12
  theme: 'solarized dark'
11
13
  tabSize: 2
12
14
  autoCloseTags: true
13
15
  lineNumbers: true
14
16
 
15
- tidyOptions =
17
+ tidyOptions =
16
18
  "indent": "auto",
17
19
  "indent-spaces": 2,
18
20
  "wrap": 80,
@@ -131,8 +133,8 @@ class Storytime.Dashboard.Wysiwyg
131
133
  codemirror.setValue(html)
132
134
 
133
135
  setupMedium: ->
134
- # Medium-editor keeps adding toolbars when this method gets triggered
135
- # (i.e. when opening snippets modal on post edit page) and they all seem
136
+ # Medium-editor keeps adding toolbars when this method gets triggered
137
+ # (i.e. when opening snippets modal on post edit page) and they all seem
136
138
  # to get activated at the same time, so this clears out existing ones first
137
139
  $('.medium-editor-toolbar').remove()
138
140
  $('.medium-editor-anchor-preview').remove()
@@ -186,10 +188,10 @@ class Storytime.Dashboard.Wysiwyg
186
188
  mediumEditor.activate()
187
189
  wysiwyg.find('.editor').show()
188
190
  wysiwyg.find('.CodeMirror').hide()
189
-
191
+
190
192
  bindTogglesToPanels: () ->
191
193
  $(".post-action-panel").on "show.bs.collapse", ->
192
194
  $("[data-toggle='codemirror']").hide()
193
195
 
194
196
  $(".post-action-panel").on "hide.bs.collapse", ->
195
- $("[data-toggle='codemirror']").show()
197
+ $("[data-toggle='codemirror']").show()
@@ -1,3 +1,36 @@
1
+
2
+ @mixin btn-outline-variant($color, $bg) {
3
+ color: $bg;
4
+
5
+ &:hover {
6
+ color: $color;
7
+ }
8
+ }
9
+
10
+ .btn-outline {
11
+ background-color: transparent;
12
+
13
+ &.btn-primary {
14
+ @include btn-outline-variant($btn-primary-color, $btn-primary-bg);
15
+ }
16
+
17
+ &.btn-info {
18
+ @include btn-outline-variant($btn-info-color, $btn-info-bg);
19
+ }
20
+
21
+ &.btn-success {
22
+ @include btn-outline-variant($btn-success-color, $btn-success-bg);
23
+ }
24
+
25
+ &.btn-warning {
26
+ @include btn-outline-variant($btn-warning-color, $btn-warning-bg);
27
+ }
28
+
29
+ &.btn-danger {
30
+ @include btn-outline-variant($btn-danger-color, $btn-danger-bg);
31
+ }
32
+ }
33
+
1
34
  .btn-primary.btn-outline:active, .btn-primary.btn-outline:focus {
2
35
  color: #fff;
3
36
  }
@@ -10,4 +10,4 @@
10
10
  &:last-child {
11
11
  border-radius: 0;
12
12
  }
13
- }
13
+ }
@@ -1,4 +1,4 @@
1
- @import url("//fonts.googleapis.com/css?family=Merriweather:400,300,700,900|Open+Sans:400,300,600");
1
+ @import url("https://fonts.googleapis.com/css?family=Merriweather:400,300,700,900|Open+Sans:400,300,600");
2
2
  @import "storytime/icons";
3
3
 
4
4
  $st-brand-primary: #4B71C3;
@@ -35,7 +35,6 @@ $st-headings-font-weight: 700;
35
35
  @import "bootstrap";
36
36
  @import "font-awesome-sprockets";
37
37
  @import "font-awesome";
38
- @import "leather";
39
38
  @import "jquery-ui/core";
40
39
  @import "jquery-ui/datepicker";
41
40
  @import "jquery-ui/theme";
@@ -74,3 +73,16 @@ $st-headings-font-weight: 700;
74
73
  @import "storytime/snippets";
75
74
  @import "storytime/layout";
76
75
  @import "storytime/comments";
76
+
77
+ @import "storytime/leather/variables";
78
+ @import "storytime/leather/buttons";
79
+ @import "storytime/leather/devise";
80
+ @import "storytime/leather/grid";
81
+ @import "storytime/leather/list_groups";
82
+ @import "storytime/leather/nav_menus";
83
+ @import "storytime/leather/navbar_transparent";
84
+ @import "storytime/leather/off_canvas";
85
+ @import "storytime/leather/scroll_panels";
86
+ @import "storytime/leather/toggle_columns";
87
+ @import "storytime/leather/typography";
88
+ @import "storytime/leather/utilities";
@@ -3,11 +3,11 @@
3
3
  /* storytime-icons */
4
4
  @font-face {
5
5
  font-family: "storytime-icons";
6
- src:url("https://fontastic.s3.amazonaws.com/ous3EcA2XoT3aZKL2pCQWB/fonts/1423165812.eot");
7
- src:url("https://fontastic.s3.amazonaws.com/ous3EcA2XoT3aZKL2pCQWB/fonts/1423165812.eot?#iefix") format("embedded-opentype"),
8
- url("https://fontastic.s3.amazonaws.com/ous3EcA2XoT3aZKL2pCQWB/fonts/1423165812.woff") format("woff"),
9
- url("https://fontastic.s3.amazonaws.com/ous3EcA2XoT3aZKL2pCQWB/fonts/1423165812.ttf") format("truetype"),
10
- url("https://fontastic.s3.amazonaws.com/ous3EcA2XoT3aZKL2pCQWB/fonts/1423165812.svg#1423165812") format("svg");
6
+ src:font-url("storytime-icons.eot");
7
+ src:font-url("storytime-icons.eot?#iefix") format("embedded-opentype"),
8
+ font-url("storytime-icons.woff") format("woff"),
9
+ font-url("storytime-icons.ttf") format("truetype"),
10
+ font-url("storytime-icons.svg#1423165812") format("svg");
11
11
  font-weight: normal;
12
12
  font-style: normal;
13
13
  }
@@ -0,0 +1,31 @@
1
+ @mixin btn-outline-variant($color, $bg) {
2
+ color: $bg;
3
+
4
+ &:hover {
5
+ color: $color;
6
+ }
7
+ }
8
+
9
+ .btn-outline {
10
+ background-color: transparent;
11
+
12
+ &.btn-primary {
13
+ @include btn-outline-variant($btn-primary-color, $btn-primary-bg);
14
+ }
15
+
16
+ &.btn-info {
17
+ @include btn-outline-variant($btn-info-color, $btn-info-bg);
18
+ }
19
+
20
+ &.btn-success {
21
+ @include btn-outline-variant($btn-success-color, $btn-success-bg);
22
+ }
23
+
24
+ &.btn-warning {
25
+ @include btn-outline-variant($btn-warning-color, $btn-warning-bg);
26
+ }
27
+
28
+ &.btn-danger {
29
+ @include btn-outline-variant($btn-danger-color, $btn-danger-bg);
30
+ }
31
+ }
@@ -0,0 +1,72 @@
1
+ .text-white { color: #ffffff; }
2
+
3
+ .devise_sessions, .devise_registrations, .devise_passwords {
4
+ &.new, &.create {
5
+ @extend .devise;
6
+ }
7
+ }
8
+
9
+ .devise_passwords.edit, .devise_passwords.update {
10
+ @extend .devise;
11
+ }
12
+
13
+ // For compatibility with Flutie body_class
14
+ .devise-sessions-new, .devise-sessions-create, .devise-registrations-new, .devise-registrations-create, .devise-passwords-new, .devise-passwords-create, .devise-passwords-edit {
15
+ @extend .devise;
16
+ }
17
+
18
+ .devise {
19
+ @include gradient-vertical($devise-bg-gradient-start, $devise-bg-gradient-end);
20
+ background-attachment: fixed !important;
21
+ .devise-welcome {
22
+ @extend .text-center;
23
+ @extend .text-white;
24
+ text-shadow: 1px 1px 3px $gray-dark;
25
+ padding: 50px 0 20px 0;
26
+ h2 {
27
+ margin-bottom: 50px;
28
+ a {
29
+ @extend .text-white;
30
+ text-decoration: none;
31
+ @include transition(color 0.25s linear);
32
+ &:hover {
33
+ color: darken(#ffffff, 20%);
34
+ }
35
+ }
36
+ }
37
+ h2, h3 {
38
+ font-weight: lighter;
39
+ }
40
+ }
41
+ form {
42
+ @include border-top-radius($border-radius-base);
43
+ @include border-bottom-radius($border-radius-base);
44
+ border: 1px solid #ffffff;
45
+ background: #ffffff;
46
+ box-shadow: 1px 1px 3px $gray-dark;
47
+ padding: 40px 40px 20px;
48
+
49
+ #error_explanation {
50
+ @extend .alert;
51
+ @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
52
+ h2 {
53
+ margin-top: 0;
54
+ font-size: 15px;
55
+ }
56
+ }
57
+ .actions {
58
+ @extend .text-center;
59
+ padding-top: 30px;
60
+ }
61
+ }
62
+ .devise-links {
63
+ @extend .text-center;
64
+ @extend .text-white;
65
+ margin-top: 20px;
66
+ margin-bottom: 70px;
67
+ a {
68
+ text-decoration: underline;
69
+ @extend .text-white;
70
+ }
71
+ }
72
+ }
@@ -0,0 +1,19 @@
1
+ .container-lg {
2
+ max-width: 1580px;
3
+ margin: 0 auto;
4
+ position: relative;
5
+ }
6
+
7
+ section {
8
+ padding: 80px 0 80px 0;
9
+ }
10
+
11
+ .row.no-gutters {
12
+ margin-right: 0;
13
+ margin-left: 0;
14
+ }
15
+ .row.no-gutters > [class^="col-"],
16
+ .row.no-gutters > [class*=" col-"] {
17
+ padding-right: 0;
18
+ padding-left: 0;
19
+ }
@@ -0,0 +1,33 @@
1
+ .list-group-button-links {
2
+
3
+ .list-group-item {
4
+ padding: 0;
5
+
6
+ .list-group-actions {
7
+ display: none;
8
+ position: absolute;
9
+ top: 50%;
10
+ right: 15px;
11
+ margin-top: -11px;
12
+ }
13
+
14
+ &:hover {
15
+ .list-group-actions {
16
+ display: block;
17
+ }
18
+ }
19
+
20
+ .list-group-link {
21
+ display: block;
22
+ padding: 10px 15px;
23
+ color: $list-group-link-color;
24
+
25
+ &:hover,
26
+ &:focus {
27
+ text-decoration: none;
28
+ color: $list-group-link-hover-color;
29
+ background-color: $list-group-hover-bg;
30
+ }
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,125 @@
1
+ .navbar-static-top ~ #main {
2
+ top: $navbar-height !important;
3
+ }
4
+
5
+ .navbar-static-top ~ .nav-menu {
6
+ top: $navbar-height;
7
+ }
8
+
9
+ .nav-menu {
10
+ width: $navbar-fixed-width;
11
+ position: fixed;
12
+ top: 0;
13
+ bottom: 0;
14
+ overflow-y: auto;
15
+ -webkit-overflow-scrolling: touch;
16
+
17
+ ~ #main {
18
+ position: absolute;
19
+ top: 0;
20
+ right: 0;
21
+ bottom: 0;
22
+ }
23
+
24
+ .nav-menu-header {
25
+
26
+ .nav-menu-brand {
27
+ display: block;
28
+ padding: 10px 15px;
29
+ text-decoration: none;
30
+ font-size: 18px;
31
+ }
32
+ }
33
+
34
+ &.nav-menu-fixed-left {
35
+ right: auto;
36
+ left: 0;
37
+
38
+ ~ #main {
39
+ right: 0;
40
+ left: $navbar-fixed-width;
41
+ }
42
+ }
43
+
44
+ &.nav-menu-fixed-right {
45
+ left: auto;
46
+ right: 0;
47
+
48
+ ~ #main {
49
+ left: 0;
50
+ right: $navbar-fixed-width;
51
+ }
52
+ }
53
+
54
+ &.nav-menu-default {
55
+ background: $navbar-default-bg;
56
+ color: $navbar-default-color;
57
+
58
+ .nav-menu-header {
59
+ .nav-menu-brand {
60
+ color: $navbar-default-brand-color;
61
+
62
+ &:hover {
63
+ color: $navbar-default-brand-hover-color;
64
+ background-color: $navbar-default-brand-hover-bg;
65
+ }
66
+ }
67
+ }
68
+
69
+ .nav-menu-nav {
70
+ li {
71
+ a {
72
+ color: $navbar-default-link-color;
73
+
74
+ &:hover {
75
+ color: $navbar-default-link-hover-color;
76
+ background-color: $navbar-default-link-hover-bg;
77
+ }
78
+ }
79
+
80
+ &.active {
81
+ a {
82
+ color: $navbar-default-link-active-color;
83
+ background-color: $navbar-default-link-active-bg;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ &.nav-menu-inverse {
91
+ background: $navbar-inverse-bg;
92
+ color: $navbar-inverse-color;
93
+
94
+ .nav-menu-header {
95
+ .nav-menu-brand {
96
+ color: $navbar-inverse-brand-color;
97
+
98
+ &:hover {
99
+ color: $navbar-inverse-brand-hover-color;
100
+ background-color: $navbar-inverse-brand-hover-bg;
101
+ }
102
+ }
103
+ }
104
+
105
+ .nav-menu-nav {
106
+ li {
107
+ a {
108
+ color: $navbar-inverse-link-color;
109
+
110
+ &:hover {
111
+ color: $navbar-inverse-link-hover-color;
112
+ background-color: $navbar-inverse-link-hover-bg;
113
+ }
114
+ }
115
+
116
+ &.active {
117
+ a {
118
+ color: $navbar-inverse-link-active-color;
119
+ background-color: $navbar-inverse-link-active-bg;
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,23 @@
1
+ .navbar-transparent-top {
2
+ @include transition(all 0.5s ease);
3
+ }
4
+
5
+ @media (min-width: $grid-float-breakpoint) {
6
+ .navbar-transparent-top {
7
+ &.affix-top {
8
+ background: transparent;
9
+ border: none;
10
+ padding-top: 10px;
11
+
12
+ .navbar-brand,
13
+ .nav > li > a,
14
+ .nav > li.active > a,
15
+ .navbar-nav > .open > a,
16
+ .navbar-nav > .open > a:hover,
17
+ .navbar-nav > .open > a:focus {
18
+ background-color: transparent;
19
+ color: $navbar-tranparent-link-color;
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,109 @@
1
+ @mixin off-canvas {
2
+ top: 0 !important;
3
+ @include transition(all 0.3s);
4
+ z-index: $zindex-modal;
5
+
6
+ ~ #off-canvas-overlay {
7
+ position: fixed;
8
+ top: 0;
9
+ right: 0;
10
+ bottom: 0;
11
+ left: 0;
12
+ visibility: hidden;
13
+ background-color: $modal-backdrop-bg;
14
+ z-index: $zindex-modal - 1;
15
+ @include opacity(0);
16
+ @include transition(all 0.3s);
17
+ }
18
+
19
+ &.in {
20
+ ~ #off-canvas-overlay {
21
+ visibility: visible;
22
+ @include opacity($modal-backdrop-opacity);
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin off-canvas-left {
28
+ left: -100% !important;
29
+ right: auto !important;
30
+
31
+ ~ #main {
32
+ left: 0 !important;
33
+ right: 0 !important;
34
+ }
35
+
36
+ &.in {
37
+ left: 0 !important;
38
+ }
39
+ }
40
+
41
+ @mixin off-canvas-right {
42
+ right: -100% !important;
43
+ left: auto !important;
44
+
45
+ ~ #main {
46
+ left: 0 !important;
47
+ right: 0 !important;
48
+ }
49
+
50
+ &.in {
51
+ right: 0 !important;
52
+ }
53
+ }
54
+
55
+ .off-canvas-left {
56
+ @include off-canvas;
57
+ @include off-canvas-left;
58
+ }
59
+
60
+ @media (max-width: $screen-xs-max) {
61
+ .off-canvas-left-xs {
62
+ @include off-canvas;
63
+ @include off-canvas-left;
64
+ }
65
+ }
66
+ @media (max-width: $screen-sm-max) {
67
+ .off-canvas-left-sm {
68
+ @include off-canvas;
69
+ @include off-canvas-left;
70
+ }
71
+ }
72
+ @media (max-width: $screen-md-max) {
73
+ .off-canvas-left-md {
74
+ @include off-canvas;
75
+ @include off-canvas-left;
76
+ }
77
+ }
78
+ .off-canvas-left-lg {
79
+ @include off-canvas;
80
+ @include off-canvas-left;
81
+ }
82
+
83
+ .off-canvas-right {
84
+ @include off-canvas;
85
+ @include off-canvas-right;
86
+ }
87
+
88
+ @media (max-width: $screen-xs-max) {
89
+ .off-canvas-right-xs {
90
+ @include off-canvas;
91
+ @include off-canvas-right;
92
+ }
93
+ }
94
+ @media (max-width: $screen-sm-max) {
95
+ .off-canvas-right-sm {
96
+ @include off-canvas;
97
+ @include off-canvas-right;
98
+ }
99
+ }
100
+ @media (max-width: $screen-md-max) {
101
+ .off-canvas-right-md {
102
+ @include off-canvas;
103
+ @include off-canvas-right;
104
+ }
105
+ }
106
+ .off-canvas-right-lg {
107
+ @include off-canvas;
108
+ @include off-canvas-right;
109
+ }