lcms-engine 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +25 -0
  3. data/.eslintignore +2 -1
  4. data/.eslintrc +23 -73
  5. data/.nvmrc +1 -1
  6. data/.overcommit.yml +8 -2
  7. data/.prettierrc +7 -0
  8. data/.rubocop.yml +5 -2
  9. data/.ruby-version +1 -1
  10. data/.stylelintignore +9 -0
  11. data/.stylelintrc +8 -0
  12. data/CHANGELOG.md +36 -2
  13. data/Dockerfile +3 -3
  14. data/Gemfile.lock +344 -297
  15. data/README.md +20 -18
  16. data/app/assets/config/lcms_engine_manifest.js +4 -2
  17. data/app/assets/javascripts/lcms/engine/admin/{application.js → lcms_engine_application.js} +1 -3
  18. data/app/assets/javascripts/lcms/engine/initializers/foundation.js +1 -1
  19. data/app/assets/javascripts/lcms/engine/{application.js → lcms_engine_application.js} +0 -0
  20. data/app/assets/stylesheets/lcms/engine/admin/collections.scss +2 -1
  21. data/app/assets/stylesheets/lcms/engine/admin/components.scss +60 -19
  22. data/app/assets/stylesheets/lcms/engine/admin/curriculums.scss +12 -10
  23. data/app/assets/stylesheets/lcms/engine/admin/lessons.scss +21 -15
  24. data/app/assets/stylesheets/lcms/engine/admin/materials.scss +25 -17
  25. data/app/assets/stylesheets/lcms/engine/admin/resources.scss +8 -7
  26. data/app/assets/stylesheets/lcms/engine/admin/standards.scss +4 -1
  27. data/app/assets/stylesheets/lcms/engine/admin/users.scss +1 -1
  28. data/app/assets/stylesheets/lcms/engine/base/_colors.scss +8 -10
  29. data/app/assets/stylesheets/lcms/engine/base/_ld-colors.scss +10 -10
  30. data/app/assets/stylesheets/lcms/engine/components/_assoc-picker.scss +4 -5
  31. data/app/assets/stylesheets/lcms/engine/components/lesson/_activity.scss +6 -2
  32. data/app/assets/stylesheets/lcms/engine/components/lesson/_callout.scss +19 -5
  33. data/app/assets/stylesheets/lcms/engine/components/lesson/_columns.scss +4 -3
  34. data/app/assets/stylesheets/lcms/engine/components/lesson/_curriculum-map.scss +16 -7
  35. data/app/assets/stylesheets/lcms/engine/components/lesson/_def.scss +2 -2
  36. data/app/assets/stylesheets/lcms/engine/components/lesson/_expand.scss +9 -9
  37. data/app/assets/stylesheets/lcms/engine/components/lesson/_foundational-divider.scss +0 -1
  38. data/app/assets/stylesheets/lcms/engine/components/lesson/_group.scss +3 -1
  39. data/app/assets/stylesheets/lcms/engine/components/lesson/_icons.scss +1 -1
  40. data/app/assets/stylesheets/lcms/engine/components/lesson/_image-wrap.scss +2 -2
  41. data/app/assets/stylesheets/lcms/engine/components/lesson/_inset.scss +7 -2
  42. data/app/assets/stylesheets/lcms/engine/components/lesson/_materials.scss +1 -1
  43. data/app/assets/stylesheets/lcms/engine/components/lesson/_multiple-choice.scss +4 -1
  44. data/app/assets/stylesheets/lcms/engine/components/lesson/_override.scss +28 -9
  45. data/app/assets/stylesheets/lcms/engine/components/lesson/_pd.scss +7 -7
  46. data/app/assets/stylesheets/lcms/engine/components/lesson/_pv.scss +5 -4
  47. data/app/assets/stylesheets/lcms/engine/components/lesson/_section.scss +10 -3
  48. data/app/assets/stylesheets/lcms/engine/components/lesson/_selection-control.scss +14 -8
  49. data/app/assets/stylesheets/lcms/engine/components/lesson/_sidebar.scss +25 -10
  50. data/app/assets/stylesheets/lcms/engine/components/lesson/_title.scss +3 -1
  51. data/app/assets/stylesheets/lcms/engine/components/lesson/_unit-map.scss +1 -1
  52. data/app/assets/stylesheets/lcms/engine/components/material/_material.scss +3 -3
  53. data/app/assets/stylesheets/lcms/engine/components/material/_overlay.scss +12 -4
  54. data/app/assets/stylesheets/lcms/engine/components/material/_preview.scss +1 -1
  55. data/app/assets/stylesheets/lcms/engine/components/support/_survey.scss +3 -1
  56. data/app/assets/stylesheets/lcms/engine/layout/_footer.scss +29 -11
  57. data/app/assets/stylesheets/lcms/engine/layout/_header.scss +5 -5
  58. data/app/assets/stylesheets/lcms/engine/layout/_navigation.scss +4 -6
  59. data/app/assets/stylesheets/lcms/engine/layout/_page.scss +2 -2
  60. data/app/assets/stylesheets/lcms/engine/{admin.scss → lcms_engine_admin.scss} +26 -15
  61. data/app/assets/stylesheets/lcms/engine/lcms_engine_application.scss +9 -0
  62. data/app/assets/stylesheets/lcms/engine/pdf.scss +5 -26
  63. data/app/assets/stylesheets/lcms/engine/pdf_plain.scss +5 -23
  64. data/app/assets/stylesheets/lcms/engine/print/_base.scss +41 -12
  65. data/app/assets/stylesheets/lcms/engine/print/_cover.scss +12 -12
  66. data/app/assets/stylesheets/lcms/engine/print/_footer.scss +8 -3
  67. data/app/assets/stylesheets/lcms/engine/print/_gdoc-base.scss +10 -37
  68. data/app/assets/stylesheets/lcms/engine/print/_helpers.scss +5 -2
  69. data/app/assets/stylesheets/lcms/engine/print/_lesson-base.scss +2 -14
  70. data/app/assets/stylesheets/lcms/engine/print/_material-base.scss +1 -3
  71. data/app/assets/stylesheets/lcms/engine/print/_print.scss +15 -8
  72. data/app/assets/stylesheets/lcms/engine/print/_toc.scss +24 -9
  73. data/app/assets/stylesheets/lcms/engine/print/gdoc/_base-typography.scss +24 -6
  74. data/app/assets/stylesheets/lcms/engine/print/gdoc/_base.scss +10 -3
  75. data/app/assets/stylesheets/lcms/engine/print/gdoc/_colors.scss +3 -3
  76. data/app/assets/stylesheets/lcms/engine/print/gdoc/_header.scss +2 -2
  77. data/app/assets/stylesheets/lcms/engine/print/gdoc/_helpers.scss +1 -0
  78. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_activity.scss +1 -1
  79. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_agenda.scss +8 -2
  80. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_callout.scss +16 -6
  81. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_def.scss +1 -1
  82. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_dialogue.scss +3 -1
  83. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_expand.scss +5 -2
  84. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_image-wrap.scss +5 -3
  85. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_image.scss +1 -1
  86. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_optbreak.scss +1 -0
  87. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_section.scss +4 -1
  88. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_smp.scss +1 -0
  89. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_tables.scss +11 -3
  90. data/app/assets/stylesheets/lcms/engine/print/gdoc/material/_header.scss +5 -2
  91. data/app/assets/stylesheets/lcms/engine/print/lesson/_base-typography.scss +33 -9
  92. data/app/assets/stylesheets/lcms/engine/print/lesson/_group.scss +3 -1
  93. data/app/assets/stylesheets/lcms/engine/print/lesson/_image.scss +3 -1
  94. data/app/assets/stylesheets/lcms/engine/print/lesson/_materials.scss +1 -1
  95. data/app/assets/stylesheets/lcms/engine/print/lesson/_pd.scss +8 -4
  96. data/app/assets/stylesheets/lcms/engine/print/lesson/_section.scss +1 -1
  97. data/app/assets/stylesheets/lcms/engine/print/material/_header.scss +4 -1
  98. data/app/assets/stylesheets/lcms/engine/themes/_material.scss +11 -11
  99. data/app/assets/stylesheets/lcms/engine/utils/_colorcodes.scss +15 -5
  100. data/app/assets/stylesheets/lcms/engine/utils/_functions.scss +1 -1
  101. data/app/assets/stylesheets/lcms/engine/utils/_helpers.scss +23 -11
  102. data/app/assets/stylesheets/lcms/engine/utils/_placeholders.scss +1 -1
  103. data/app/assets/stylesheets/lcms/engine/utils/_variables.scss +11 -11
  104. data/app/assets/stylesheets/lcms/engine/vendors/{mathjax.css → mathjax.scss} +0 -0
  105. data/app/assets/stylesheets/lcms/engine/vendors/react-tagsinput.css +48 -0
  106. data/app/controllers/concerns/lcms/engine/reimportable.rb +1 -1
  107. data/app/controllers/lcms/engine/admin/access_codes_controller.rb +8 -3
  108. data/app/controllers/lcms/engine/admin/admin_controller.rb +5 -39
  109. data/app/controllers/lcms/engine/admin/association_picker_controller.rb +4 -1
  110. data/app/controllers/lcms/engine/admin/batch_reimports_controller.rb +2 -2
  111. data/app/controllers/lcms/engine/admin/curriculums_controller.rb +21 -2
  112. data/app/controllers/lcms/engine/admin/documents_controller.rb +26 -14
  113. data/app/controllers/lcms/engine/admin/materials_controller.rb +23 -13
  114. data/app/controllers/lcms/engine/admin/resource_bulk_edits_controller.rb +2 -2
  115. data/app/controllers/lcms/engine/admin/resources_controller.rb +9 -7
  116. data/app/controllers/lcms/engine/admin/settings_controller.rb +1 -1
  117. data/app/controllers/lcms/engine/admin/standards_controller.rb +2 -2
  118. data/app/controllers/lcms/engine/admin/users_controller.rb +10 -7
  119. data/app/controllers/lcms/engine/application_controller.rb +1 -1
  120. data/app/controllers/lcms/engine/resources_controller.rb +5 -5
  121. data/app/controllers/lcms/engine/welcome_controller.rb +11 -0
  122. data/app/entities/lcms/engine/hierarchical_position.rb +1 -2
  123. data/app/entities/lcms/engine/media_embed.rb +1 -1
  124. data/app/entities/lcms/engine/pagination.rb +14 -10
  125. data/app/entities/lcms/engine/roman_numerals.rb +1 -1
  126. data/app/exceptions/lcms/engine/document_error.rb +8 -0
  127. data/app/exceptions/lcms/engine/material_error.rb +8 -0
  128. data/app/helpers/admin/components_helper.rb +1 -1
  129. data/app/helpers/lcms/engine/path_helper.rb +32 -0
  130. data/app/helpers/lcms/engine/resource_helper.rb +1 -1
  131. data/app/helpers/lcms/engine/view_helper.rb +0 -8
  132. data/app/interactors/lcms/engine/explore_curriculum_interactor.rb +1 -1
  133. data/app/javascript/components/admin/ImportStatus.jsx +88 -58
  134. data/app/javascript/components/admin/Initializer.jsx +33 -35
  135. data/app/javascript/components/admin/MultiSelectedOperation.jsx +43 -19
  136. data/app/javascript/components/admin/association-picker/AssociationPicker.jsx +68 -48
  137. data/app/javascript/components/admin/association-picker/AssociationPickerItem.jsx +18 -7
  138. data/app/javascript/components/admin/association-picker/AssociationPickerResults.jsx +42 -18
  139. data/app/javascript/components/admin/association-picker/AssociationPickerWindow.jsx +47 -28
  140. data/app/javascript/components/admin/curriculum/CurriculumEditor.jsx +54 -33
  141. data/app/javascript/components/admin/curriculum/DirectoryPicker.jsx +80 -53
  142. data/app/javascript/components/admin/picker/PickerButton.jsx +16 -11
  143. data/app/javascript/components/admin/picker/pickerModal.jsx +6 -6
  144. data/app/javascript/components/admin/picker/pickerWindowWrapper.jsx +61 -40
  145. data/app/javascript/components/admin/resource-picker/ResourcePicker.jsx +54 -40
  146. data/app/javascript/components/admin/resource-picker/ResourcePickerResource.jsx +14 -3
  147. data/app/javascript/components/admin/resource-picker/ResourcePickerWindow.jsx +50 -21
  148. data/app/javascript/components/paginate/PageView.jsx +20 -8
  149. data/app/javascript/components/paginate/PaginationBoxView.jsx +78 -66
  150. data/app/javascript/components/paginate/PaginationListView.jsx +59 -45
  151. data/app/javascript/packs/lcms_engine_admin.js +15 -0
  152. data/app/javascript/packs/{application.js → lcms_engine_application.js} +5 -4
  153. data/app/javascript/packs/server_rendering.js +1 -0
  154. data/app/javascript/vendor/jstree/jstree.min.js +6 -0
  155. data/app/javascript/vendor/jstree/themes/default/32px.png +0 -0
  156. data/app/javascript/vendor/jstree/themes/default/40px.png +0 -0
  157. data/app/javascript/vendor/jstree/themes/default/style.css +1106 -0
  158. data/app/javascript/vendor/jstree/themes/default/style.min.css +1 -0
  159. data/app/javascript/vendor/jstree/themes/default/throbber.gif +0 -0
  160. data/app/javascript/vendor/jstree/themes/default-dark/32px.png +0 -0
  161. data/app/javascript/vendor/jstree/themes/default-dark/40px.png +0 -0
  162. data/app/javascript/vendor/jstree/themes/default-dark/style.css +1150 -0
  163. data/app/javascript/vendor/jstree/themes/default-dark/style.min.css +1 -0
  164. data/app/javascript/vendor/jstree/themes/default-dark/throbber.gif +0 -0
  165. data/app/jobs/lcms/engine/document_generate_job.rb +1 -1
  166. data/app/jobs/lcms/engine/document_generate_pdf_job.rb +5 -5
  167. data/app/jobs/lcms/engine/material_generate_pdf_job.rb +4 -4
  168. data/app/models/concerns/lcms/engine/navigable.rb +6 -10
  169. data/app/models/concerns/lcms/engine/searchable.rb +7 -0
  170. data/app/models/lcms/engine/document.rb +1 -1
  171. data/app/models/lcms/engine/resource.rb +1 -1
  172. data/app/models/lcms/engine/search/repository.rb +1 -1
  173. data/app/presenters/lcms/engine/content_presenter.rb +1 -1
  174. data/app/presenters/lcms/engine/curriculum_presenter.rb +21 -18
  175. data/app/presenters/lcms/engine/document_presenter.rb +3 -1
  176. data/app/presenters/lcms/engine/resource_presenter.rb +6 -3
  177. data/app/queries/lcms/engine/admin_documents_query.rb +1 -1
  178. data/app/queries/lcms/engine/admin_materials_query.rb +11 -2
  179. data/app/queries/lcms/engine/base_query.rb +1 -1
  180. data/app/services/lcms/engine/document_build_service.rb +2 -0
  181. data/app/services/lcms/engine/document_generator.rb +2 -2
  182. data/app/services/lcms/engine/google/drive_service.rb +7 -15
  183. data/app/services/lcms/engine/google/script_service.rb +7 -3
  184. data/app/services/lcms/engine/html_sanitizer.rb +1 -1
  185. data/app/services/lcms/engine/lti_exporter.rb +1 -1
  186. data/app/services/lcms/engine/material_preview_generator.rb +1 -1
  187. data/app/services/lcms/engine/s3_service.rb +14 -2
  188. data/app/tasks/resource_tasks.rb +2 -2
  189. data/app/views/layouts/lcms/engine/admin.html.erb +3 -3
  190. data/app/views/layouts/lcms/engine/application.html.erb +2 -2
  191. data/app/views/layouts/lcms/engine/lti.html.erb +1 -1
  192. data/app/views/lcms/engine/admin/access_codes/_form.html.erb +1 -1
  193. data/app/views/lcms/engine/admin/access_codes/index.html.erb +3 -3
  194. data/app/views/lcms/engine/admin/batch_reimports/_search_form.html.erb +1 -1
  195. data/app/views/lcms/engine/admin/curriculums/edit.html.erb +4 -2
  196. data/app/views/lcms/engine/admin/documents/_reimport.html.erb +1 -1
  197. data/app/views/lcms/engine/admin/documents/_search_form.html.erb +1 -1
  198. data/app/views/lcms/engine/admin/documents/import.html.erb +1 -1
  199. data/app/views/lcms/engine/admin/documents/index.html.erb +5 -3
  200. data/app/views/lcms/engine/admin/documents/new.html.erb +6 -2
  201. data/app/views/lcms/engine/admin/materials/_reimport.html.erb +1 -1
  202. data/app/views/lcms/engine/admin/materials/_search_form.html.erb +1 -1
  203. data/app/views/lcms/engine/admin/materials/import.html.erb +1 -1
  204. data/app/views/lcms/engine/admin/materials/index.html.erb +22 -18
  205. data/app/views/lcms/engine/admin/materials/new.html.erb +5 -1
  206. data/app/views/lcms/engine/admin/resource_bulk_edits/new.html.erb +1 -1
  207. data/app/views/lcms/engine/admin/resources/_fields.html.erb +4 -3
  208. data/app/views/lcms/engine/admin/resources/_form.html.erb +1 -1
  209. data/app/views/lcms/engine/admin/resources/_search_form.html.erb +1 -1
  210. data/app/views/lcms/engine/admin/resources/index.html.erb +7 -5
  211. data/app/views/lcms/engine/admin/shared/_header.html.erb +12 -12
  212. data/app/views/lcms/engine/admin/standards/_form.html.erb +3 -1
  213. data/app/views/lcms/engine/admin/standards/_search_form.html.erb +1 -1
  214. data/app/views/lcms/engine/admin/users/_form.html.erb +1 -1
  215. data/app/views/lcms/engine/admin/users/_search_form.html.erb +1 -1
  216. data/app/views/lcms/engine/admin/users/index.html.erb +6 -6
  217. data/app/views/lcms/engine/pages/not_found.html.erb +5 -0
  218. data/app/views/lcms/engine/resources/generic.html.erb +0 -4
  219. data/app/views/lcms/engine/resources/media.html.erb +0 -4
  220. data/app/views/lcms/engine/resources/show.html.erb +0 -2
  221. data/config/initializers/airbrake.rb +62 -10
  222. data/config/initializers/bitly.rb +1 -1
  223. data/config/initializers/carrier_wave.rb +6 -4
  224. data/config/initializers/ckeditor.rb +6 -0
  225. data/config/initializers/elasticsearch.rb +1 -1
  226. data/config/initializers/resque.rb +2 -2
  227. data/config/locales/admin/en.yml +0 -1
  228. data/config/locales/ui/en.yml +1 -0
  229. data/config/routes.rb +5 -2
  230. data/db/migrate/.keep +0 -0
  231. data/db/schema.rb +279 -311
  232. data/db/seeds.rb +0 -1
  233. data/docker-compose.ror4.yml +32 -0
  234. data/docker-compose.yml +6 -3
  235. data/docs/env-variables.md +40 -40
  236. data/docs/google-cloud-platform-setup.md +45 -17
  237. data/docs/how-to-build-and-publish.md +1 -0
  238. data/lcms-engine.gemspec +21 -15
  239. data/lib/doc_template/document.rb +3 -4
  240. data/lib/doc_template/document_toc.rb +2 -2
  241. data/lib/doc_template/objects/activity_metadata.rb +1 -1
  242. data/lib/doc_template/objects/toc_helpers.rb +4 -4
  243. data/lib/doc_template/objects/toc_metadata.rb +4 -6
  244. data/lib/doc_template/tags/answer_space_tag.rb +1 -1
  245. data/lib/doc_template/tags/base_tag.rb +2 -2
  246. data/lib/doc_template/tags/block_tag.rb +1 -1
  247. data/lib/doc_template/tags/table_tag.rb +1 -1
  248. data/lib/doc_template/template.rb +1 -1
  249. data/lib/doc_template.rb +9 -9
  250. data/lib/document_exporter/gdoc/base.rb +5 -2
  251. data/lib/document_exporter/pdf/base.rb +1 -1
  252. data/lib/document_exporter/pdf/document.rb +2 -2
  253. data/lib/document_exporter/pdf/material.rb +2 -2
  254. data/lib/document_exporter/pdf/student_material.rb +2 -2
  255. data/lib/document_exporter/pdf/teacher_material.rb +2 -2
  256. data/lib/document_renderer/part.rb +1 -3
  257. data/lib/lcms/engine/engine.rb +10 -9
  258. data/lib/lcms/engine/version.rb +1 -1
  259. data/lib/lcms/engine.rb +0 -1
  260. data/lib/lt/lcms/metadata/context.rb +56 -52
  261. data/lib/lt/lcms/metadata/service.rb +3 -2
  262. data/lib/tasks/cloud66.rake +2 -2
  263. data/lib/tasks/document.rake +4 -4
  264. data/lib/tasks/google.rake +29 -14
  265. data/lib/tasks/lcms/engine_tasks.rake +1 -1
  266. data/package.json +31 -10
  267. data/postcss.config.js +12 -0
  268. data/spec/controllers/admin/curriculums_controller_spec.rb +23 -0
  269. data/spec/controllers/admin/documents_controller_spec.rb +22 -2
  270. data/spec/controllers/admin/materials_controller_spec.rb +16 -3
  271. data/spec/controllers/admin/resource_bulk_edit_controller_spec.rb +1 -1
  272. data/spec/controllers/admin/resources_controller_spec.rb +1 -1
  273. data/spec/controllers/admin/settings_controller_spec.rb +1 -1
  274. data/spec/controllers/admin/standards_controller_spec.rb +1 -1
  275. data/spec/controllers/admin/welcome_controller_spec.rb +12 -10
  276. data/spec/controllers/resources_controller_spec.rb +3 -3
  277. data/spec/controllers/welcome_controller_spec.rb +38 -0
  278. data/spec/dummy/.traceroute.yaml +0 -2
  279. data/spec/dummy/bin/webpack +18 -0
  280. data/spec/dummy/bin/webpack-dev-server +18 -0
  281. data/spec/dummy/config/application.rb +1 -1
  282. data/spec/dummy/config/environments/test.rb +1 -1
  283. data/spec/dummy/config/initializers/assets.rb +6 -0
  284. data/spec/dummy/config/lcms-admin.yml +3 -7
  285. data/spec/dummy/config/routes.rb +6 -0
  286. data/spec/dummy/db/schema.rb +5 -5
  287. data/spec/factories/documents.rb +1 -0
  288. data/spec/factories/downloads.rb +1 -1
  289. data/spec/factories/resources.rb +2 -2
  290. data/spec/features/admin/materials/add_material_spec.rb +2 -0
  291. data/spec/features/admin/users_spec.rb +2 -2
  292. data/spec/{controllers/admin/admin_controller_spec.rb → helpers/path_helper_spec.rb} +6 -6
  293. data/spec/lib/doc_template/objects/activity_metadata_spec.rb +1 -1
  294. data/spec/lib/doc_template/objects/agenda_metadata_spec.rb +2 -0
  295. data/spec/lib/doc_template/objects/toc_metadata_spec.rb +1 -1
  296. data/spec/lib/doc_template/tags/page_break_tag_spec.rb +1 -1
  297. data/spec/lib/doc_template/tags/pd_tag_spec.rb +1 -1
  298. data/spec/models/document_spec.rb +1 -1
  299. data/spec/models/standard_spec.rb +2 -0
  300. data/spec/queries/lcms/engine/admin_materials_query_spec.rb +34 -0
  301. data/spec/rails_helper.rb +6 -17
  302. data/spec/services/document_build_service_spec.rb +4 -11
  303. data/spec/services/s3_service_spec.rb +31 -0
  304. data/spec/support/concerns/navigable.rb +2 -0
  305. data/spec/support/routes.rb +4 -0
  306. data/spec/support/shared_examples/content_tag.rb +4 -4
  307. data/templates/routes.rb +0 -1
  308. data/yarn.lock +3412 -2933
  309. metadata +146 -288
  310. data/app/assets/stylesheets/lcms/engine/application.scss +0 -36
  311. data/app/assets/stylesheets/lcms/engine/vendors/jquery.tagsinput.css +0 -1
  312. data/app/exceptions/components_api_error.rb +0 -4
  313. data/app/exceptions/document_error.rb +0 -4
  314. data/app/exceptions/material_error.rb +0 -4
  315. data/app/javascript/packs/admin.js +0 -14
  316. data/app/models/lcms/engine/component.rb +0 -88
  317. data/app/presenters/lcms/engine/social_media_presenter.rb +0 -83
  318. data/app/views/lcms/engine/shared/_social_sharing.html.erb +0 -22
  319. data/db/migrate/20200217160930_change_document_parts_to_polymorphic.rb +0 -36
  320. data/db/migrate/20200218144849_drop_material_parts_table.rb +0 -7
  321. data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +0 -7
  322. data/db/migrate/20200429130353_drop_pages.rb +0 -13
  323. data/db/seeds/pages.seeds.rb +0 -26
  324. data/lib/document_exporter.rb +0 -6
  325. data/lib/lcms/engine/migration.rb +0 -16
  326. data/spec/models/component_spec.rb +0 -60
  327. data/vendor/assets/javascripts/jquery.tagsinput.js +0 -1
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/9a41f6860cc4531fc27e/maintainability)](https://codeclimate.com/github/learningtapestry/lcms-engine/maintainability)
4
4
  [![Codeship Status for learningtapestry/lcms-engine](https://app.codeship.com/projects/d08d0660-26f7-0137-bc36-1692d0f2de6b/status?branch=master)](https://app.codeship.com/projects/330483)
5
+ [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
5
6
 
6
7
  Implements a Rails engine for Learning Content Management System (LCMS) applications.
7
8
 
@@ -11,11 +12,10 @@ separately, simplifying the client applications in the process.
11
12
 
12
13
  ## Current development
13
14
 
14
- |Branch|Rails version|
15
- |------|-------------|
16
- |master|Rails 6|
17
- |0.3.x|Rails 5.2.4.5|
18
- |0.1.x|Rails 4.2.11.3|
15
+ | Branch | Rails version |
16
+ |--------|---------------|
17
+ | master | Rails 6.1.4.6 |
18
+ | 0.3.x | Rails 5.2.4.5 |
19
19
 
20
20
  This is still a [work in progress](https://github.com/learningtapestry/lcms-engine/issues/3). The
21
21
  initial phase of the project consisted in extracting as much code as possible from the client
@@ -83,20 +83,19 @@ overridden as easily as Ruby classes and modules, but you can always provide you
83
83
  the same files, overwriting the ones provided by the engine.
84
84
 
85
85
  ## Requirements
86
- - Ruby 2.5 or higher
87
- - Rails 5.2.4 or higher
86
+ - Ruby 2.7 or higher
87
+ - Rails 6.1 or higher
88
88
  - Postgres 9.6 or higher
89
89
 
90
90
  ## Installation
91
91
  Add this to the Gemfile:
92
92
  ```ruby
93
- gem 'lcms-engine','~> 0.1' # Rails 4.2
93
+ gem 'lcms-engine','~> 0.3' # Rails 5.2
94
94
  ```
95
95
  ```ruby
96
- gem 'lcms-engine','~> 0.2' # Rails 5.2
96
+ gem 'lcms-engine' # Rails 6.1
97
97
  ```
98
98
 
99
-
100
99
  And then execute:
101
100
  ```bash
102
101
  $ bundle
@@ -133,9 +132,10 @@ mount Engine, at: '/engine', as: :engine
133
132
 
134
133
  If you need to redefine devise routes set up env `DEVISE_ROUTES_REDEFINED` as true and define devise related routes at host app.
135
134
 
136
- Host app routes examples:
137
- 1. host app will have own routes on upper than engine level:
138
- ```
135
+ ### Host app routes
136
+
137
+ When host app has its own routes on upper than engine level:
138
+ ```ruby
139
139
  Lcms::Engine::Engine.routes.draw do
140
140
  devise_for :users, class_name: 'Lcms::Engine::User',
141
141
  router_name: :main_app,
@@ -161,8 +161,8 @@ devise_scope :user do
161
161
  delete '/register', to: 'lcms/engine/registrations#destroy'
162
162
  end
163
163
  ```
164
- 2. host app is ok with `/lcms` devise routes but want to redefine paths after that:
165
- ```
164
+ When host app is ok with `/lcms` devise routes but want to redefine paths after that:
165
+ ```ruby
166
166
  Lcms::Engine::Engine.routes.draw do
167
167
  devise_for :users, class_name: 'Lcms::Engine::User',
168
168
  controllers: {
@@ -212,14 +212,16 @@ $ brew cask install chromedriver
212
212
 
213
213
  Launch the containers
214
214
  ```sh
215
- $ docker-compose start app
215
+ $ docker build -t lcms-engine .
216
+ $ docker compose start
217
+ $ docker compose exec app sh -c 'bin/rails db:create'
218
+ $ docker compose exec db sh -c "psql -U postgres -d template1 -c 'CREATE EXTENSION IF NOT EXISTS hstore;'"
216
219
  ```
217
220
 
218
221
  Start the specs
219
222
  ```sh
220
- $ docker-compose exec app sh -c 'bundle exec rspec'
223
+ $ docker compose exec app sh -c 'bundle exec rspec'
221
224
  ```
222
225
 
223
-
224
226
  ## License
225
227
  The gem is available as open source under the terms of the [Apache License](https://github.com/learningtapestry/lcms-engine/blob/master/LICENSE).
@@ -1,8 +1,10 @@
1
1
  // JS and CSS bundles
2
2
 
3
- //= link lcms/engine/admin/application.js
3
+ //= link lcms/engine/lcms_engine_application.js
4
+ //= link lcms/engine/admin/lcms_engine_application.js
4
5
 
5
- //= link lcms/engine/admin.scss
6
+ //= link lcms/engine/lcms_engine_application.css
7
+ //= link lcms/engine/lcms_engine_admin.css
6
8
 
7
9
  // Images and fonts so that views can link to them
8
10
  //
@@ -2,10 +2,8 @@
2
2
  //= require jquery2
3
3
  //= require jquery_ujs
4
4
  //= require jquery_nested_form
5
- //= require ckeditor/init
6
5
  //= require foundation
7
6
  //= require html.sortable.min
8
- //= require jquery.tagsinput
9
7
  //= require js-routes
10
8
  //= require 'selectize.min'
11
9
  //= require '../initializers/foundation'
@@ -13,6 +11,6 @@
13
11
  document.addEventListener('turbolinks:load', function () {
14
12
  $('.selectize').selectize({
15
13
  allowEmptyOption: true,
16
- plugins: ['remove_button']
14
+ plugins: ['remove_button'],
17
15
  });
18
16
  });
@@ -2,4 +2,4 @@ document.addEventListener('turbolinks:load', function () {
2
2
  $(function () {
3
3
  $(document).foundation();
4
4
  });
5
- })
5
+ });
@@ -1,3 +1,4 @@
1
+ // stylelint-disable max-nesting-depth, selector-max-compound-selectors, scss/selector-no-redundant-nesting-selector
1
2
  .collection-tree {
2
3
  label {
3
4
  background: map-get($ub-ld-colorcodes, material-thumbnail-border);
@@ -22,7 +23,7 @@
22
23
 
23
24
  &:checked {
24
25
  & ~ label {
25
- &::before { // sass-lint:disable-line nesting-depth
26
+ &::before {
26
27
  content: '▾';
27
28
  }
28
29
  }
@@ -1,38 +1,70 @@
1
- // sass-lint:disable *
1
+ // stylelint-disable max-nesting-depth, selector-no-qualifying-type, selector-max-compound-selectors, scss/at-extend-no-missing-placeholder, selector-max-id
2
2
  .o-admin-components-table {
3
3
  width: 100%;
4
4
 
5
5
  .o-admin-components-table--header {
6
6
  border-bottom: solid 1px #5a5a5a;
7
- div { padding: 1em; text-align: center; }
8
7
  font-weight: bold;
8
+
9
+ div {
10
+ padding: 1em;
11
+ text-align: center;
12
+ }
13
+ }
14
+
15
+ .o-admin-components-table--info {
16
+ display: inline-block;
17
+ vertical-align: top;
18
+ }
19
+
20
+ .o-admin-components-table--location {
21
+ @extend .o-admin-components-table--info;
22
+ width: 15%;
23
+ }
24
+
25
+ .o-admin-components-table--component-type {
26
+ @extend .o-admin-components-table--info;
27
+ width: 15%;
28
+ }
29
+
30
+ .o-admin-components-table--origin {
31
+ @extend .o-admin-components-table--info;
32
+ width: 35%;
33
+ }
34
+
35
+ .o-admin-components-table--identifier {
36
+ @extend .o-admin-components-table--info;
37
+ width: 25%;
9
38
  }
10
- .o-admin-components-table--info { display: inline-block; vertical-align: top; }
11
- .o-admin-components-table--location { @extend .o-admin-components-table--info; width: 15%; }
12
39
 
13
- .o-admin-components-table--component-type { @extend .o-admin-components-table--info; width: 15%; }
14
- .o-admin-components-table--origin { @extend .o-admin-components-table--info; width: 35%; }
15
- .o-admin-components-table--identifier { @extend .o-admin-components-table--info; width: 25%; }
16
- .o-admin-components-table--details { @extend .o-admin-components-table--info; width: 5%; }
40
+ .o-admin-components-table--details {
41
+ @extend .o-admin-components-table--info;
42
+ width: 5%;
43
+ }
17
44
 
18
45
  .o-admin-components-table--entry {
19
46
  margin-bottom: 1em;
20
47
  padding: 1em;
21
48
 
22
- &:nth-child(odd) { background-color: $ub-whitepure; }
49
+ &:nth-child(odd) {
50
+ background-color: $ub-whitepure;
51
+ }
23
52
  }
24
53
 
25
54
  .o-admin-components-table--details {
26
55
  .button {
27
56
  float: right;
28
- margin-bottom: -.5em;
57
+ margin-bottom: -0.5em;
29
58
  margin-right: -2em;
30
59
  }
31
60
  }
32
61
 
33
62
  .o-admin-components-table--name {
34
63
  margin-top: 2em;
35
- b { margin-right: 1em; }
64
+
65
+ b {
66
+ margin-right: 1em;
67
+ }
36
68
  }
37
69
  }
38
70
 
@@ -47,19 +79,21 @@
47
79
  .o-admin-ctx-filters {
48
80
  padding-right: 2em;
49
81
 
50
- label { // sass-lint:disable-line nesting-depth
82
+ label {
51
83
  display: inline-block;
52
84
  font-weight: normal;
53
85
  }
54
86
 
55
- input { // sass-lint:disable-line nesting-depth
87
+ input {
56
88
  display: inline-block;
57
89
  margin-left: 1em;
58
90
  width: 6em;
59
91
  }
60
92
  }
61
93
 
62
- input[type='submit'] { margin-left: auto; }
94
+ input[type='submit'] {
95
+ margin-left: auto;
96
+ }
63
97
  }
64
98
 
65
99
  .o-admin-search-term {
@@ -72,13 +106,20 @@
72
106
  box-shadow: 2px 2px 2px #aaa;
73
107
  }
74
108
 
75
- #component-type-selector, #component-grades {
76
- select { height: 285px; }
109
+ #component-type-selector,
110
+ #component-grades {
111
+ select {
112
+ height: 285px;
113
+ }
77
114
 
78
- aside { font-size: .8em; }
115
+ aside {
116
+ font-size: 0.8em;
117
+ }
79
118
  }
80
119
 
81
- label {font-weight: bold; }
120
+ label {
121
+ font-weight: bold;
122
+ }
82
123
  }
83
124
 
84
125
  .o-admin-component-details {
@@ -94,7 +135,7 @@
94
135
 
95
136
  .o-component-details--content {
96
137
  background-color: $ub-whitepure;
97
- border-radius: .5em;
138
+ border-radius: 0.5em;
98
139
  margin: 2em;
99
140
  padding: 1em;
100
141
  }
@@ -1,3 +1,5 @@
1
+ // stylelint-disable max-nesting-depth, selector-class-pattern
2
+
1
3
  .c-admcur-results {
2
4
  .button {
3
5
  margin-bottom: 0;
@@ -7,7 +9,7 @@
7
9
  .o-curriculum-tree-editor {
8
10
  @include e(container) {
9
11
  background: $ub-whitepure;
10
- border-radius: .5em;
12
+ border-radius: 0.5em;
11
13
  margin: 2em auto;
12
14
  min-width: 50%;
13
15
  padding: 2em;
@@ -20,7 +22,7 @@
20
22
  }
21
23
  }
22
24
  @include e(menu-info) {
23
- font-size: .9em;
25
+ font-size: 0.9em;
24
26
  margin-top: -1em;
25
27
  text-align: center;
26
28
  }
@@ -30,21 +32,21 @@
30
32
  @include e(container) {
31
33
  aside {
32
34
  display: inline-block;
33
- font-size: .9em;
35
+ font-size: 0.9em;
34
36
  margin-left: 1em;
35
37
  }
36
38
 
37
- .resource_parent { // sass-lint:disable-line class-name-format
39
+ .resource_parent {
40
+ // sass-lint:disable-line class-name-format
38
41
  display: inline-block;
39
42
  margin-left: 1em;
40
- margin-top: .5em;
43
+ margin-top: 0.5em;
41
44
  max-width: 85%;
42
45
  vertical-align: top;
43
- strong { margin-left: .25em; }
44
- }
45
46
 
46
- .tagsinput {
47
- display: inline-block;
47
+ strong {
48
+ margin-left: 0.25em;
49
+ }
48
50
  }
49
51
  }
50
52
  }
@@ -52,7 +54,7 @@
52
54
  .curriculum-picker-modal {
53
55
  &.reveal {
54
56
  background: $ub-whitepure;
55
- border-radius: .5em;
57
+ border-radius: 0.5em;
56
58
  margin: 2em auto;
57
59
  min-width: 50%;
58
60
  padding: 2em;
@@ -1,5 +1,6 @@
1
+ // stylelint-disable max-nesting-depth, selector-max-compound-selectors
1
2
  .o-admin-lessons-search {
2
- border: solid 1px #ddd; // sass-lint:disable-line no-color-literals
3
+ border: solid 1px #ddd;
3
4
  border-radius: 5px;
4
5
  margin-bottom: 2em;
5
6
  padding: 2em 1em 1em;
@@ -8,12 +9,12 @@
8
9
  .o-admin-ctx-filters {
9
10
  padding-right: 2em;
10
11
 
11
- label { // sass-lint:disable-line nesting-depth
12
+ label {
12
13
  display: inline-block;
13
14
  font-weight: normal;
14
15
  }
15
16
 
16
- input { // sass-lint:disable-line nesting-depth
17
+ input {
17
18
  display: inline-block;
18
19
  margin-left: 1em;
19
20
  width: 6em;
@@ -31,8 +32,11 @@
31
32
  }
32
33
 
33
34
  .o-admin-option {
34
- margin-bottom: .75em;
35
- label { font-weight: normal; }
35
+ margin-bottom: 0.75em;
36
+
37
+ label {
38
+ font-weight: normal;
39
+ }
36
40
  }
37
41
 
38
42
  .o-admin-unit,
@@ -45,10 +49,14 @@
45
49
  box-shadow: 2px 2px 2px #aaa; // sass-lint:disable-line no-color-literals
46
50
  }
47
51
 
48
- label {font-weight: bold; }
52
+ label {
53
+ font-weight: bold;
54
+ }
49
55
  }
50
56
 
51
57
  .lessons-table {
58
+ table-layout: auto;
59
+ width: 100%;
52
60
  @include e(btns) {
53
61
  .button {
54
62
  min-width: 80px;
@@ -64,11 +72,10 @@
64
72
  }
65
73
 
66
74
  @include e(materials) {
75
+ list-style: none;
67
76
  @include m(file) {
68
- margin-right: .3em;
77
+ margin-right: 0.3em;
69
78
  }
70
-
71
- list-style: none;
72
79
  }
73
80
 
74
81
  @include e(status) {
@@ -78,18 +85,15 @@
78
85
  }
79
86
  }
80
87
 
81
- table-layout: auto;
82
- width: 100%;
83
-
84
88
  tr {
85
89
  th {
86
- &:nth-child(5), // sass-lint:disable-line nesting-depth
90
+ &:nth-child(5),
87
91
  &:nth-child(5) {
88
92
  max-width: 250px;
89
93
  min-width: 200px;
90
94
  }
91
95
 
92
- &:nth-child(6), // sass-lint:disable-line nesting-depth
96
+ &:nth-child(6),
93
97
  &:nth-child(6) {
94
98
  min-width: 300px;
95
99
  }
@@ -104,6 +108,8 @@
104
108
  margin-left: 2em;
105
109
  margin-top: 1.5em;
106
110
 
107
- input { margin-right: .5em; }
111
+ input {
112
+ margin-right: 0.5em;
113
+ }
108
114
  }
109
115
  }
@@ -5,6 +5,9 @@
5
5
  }
6
6
 
7
7
  @include e(result) {
8
+ border-radius: 0.5rem;
9
+ margin-bottom: 0.5rem;
10
+ padding: 0.5rem 1rem;
8
11
  @include m(ok) {
9
12
  background-color: map-get($ub-green, sixty);
10
13
  }
@@ -21,11 +24,9 @@
21
24
  background-color: map-get($ub-yellow, sixty);
22
25
  }
23
26
 
24
- border-radius: .5rem;
25
- margin-bottom: .5rem;
26
- padding: .5rem 1rem;
27
-
28
- p { margin-bottom: 0; }
27
+ p {
28
+ margin-bottom: 0;
29
+ }
29
30
  }
30
31
 
31
32
  @include e(link) {
@@ -34,12 +35,12 @@
34
35
  }
35
36
 
36
37
  @include e(spinner) {
37
- background: none !important;
38
+ background: none !important; // stylelint-disable-line declaration-no-important
38
39
  }
39
40
 
40
41
  @include e(summary) {
41
42
  @include m(aside) {
42
- font-size: .9em;
43
+ font-size: 0.9em;
43
44
  text-align: center;
44
45
  }
45
46
 
@@ -51,7 +52,7 @@
51
52
  }
52
53
 
53
54
  @include e(resource) {
54
- border-radius: .5em;
55
+ border-radius: 0.5em;
55
56
  }
56
57
  }
57
58
 
@@ -66,32 +67,39 @@
66
67
  }
67
68
 
68
69
  @include e(btns) {
69
- .button { min-width: 80px; }
70
+ .button {
71
+ min-width: 80px;
72
+ }
70
73
 
71
74
  form {
72
75
  &:last-child {
73
- .button { margin-bottom: 0; }
76
+ .button {
77
+ margin-bottom: 0;
78
+ }
74
79
  }
75
80
  }
76
81
  }
77
82
 
78
83
  @include e(lessons) {
84
+ list-style: none;
79
85
  @include m(file) {
80
- margin-right: .3em;
86
+ margin-right: 0.3em;
81
87
  }
82
-
83
- list-style: none;
84
88
  }
85
89
  }
86
90
 
87
91
  .c-multi-selected--select-all {
88
92
  display: inline-block;
89
93
  font-weight: bold;
90
- margin-left: .5em;
94
+ margin-left: 0.5em;
91
95
  margin-top: 1.5em;
92
- input { margin-right: .5em; }
96
+
97
+ input {
98
+ margin-right: 0.5em;
99
+ }
93
100
  }
94
101
 
95
- .o-adm-list .table .c-selected-ids { // sass-lint:disable-line force-element-nesting
96
- margin-bottom: .2em;
102
+ .o-adm-list .table .c-selected-ids {
103
+ // sass-lint:disable-line force-element-nesting
104
+ margin-bottom: 0.2em;
97
105
  }
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .resource-search-select {
15
- width: 100% !important; // sass-lint:disable-line no-important
15
+ width: 100% !important; // stylelint-disable-line declaration-no-important
16
16
  }
17
17
 
18
18
  .resource-search-url-slug,
@@ -25,7 +25,7 @@
25
25
  flex-basis: 0;
26
26
  flex-grow: 1;
27
27
  padding-right: 1%;
28
- vertical-align: top !important; // sass-lint:disable-line no-important
28
+ vertical-align: top !important; // stylelint-disable-line declaration-no-important
29
29
 
30
30
  &:last-child {
31
31
  padding: 0;
@@ -33,6 +33,9 @@
33
33
  }
34
34
 
35
35
  .o-adm-download {
36
+ background-color: $ub-white;
37
+ margin: 10px 0;
38
+ padding: 10px;
36
39
  @include e(settings) {
37
40
  @include flex;
38
41
 
@@ -40,14 +43,12 @@
40
43
  margin-left: 10px;
41
44
  }
42
45
  }
43
-
44
- background-color: $ub-white;
45
- margin: 10px 0;
46
- padding: 10px;
47
46
  }
48
47
 
49
48
  .resource-btns-col {
50
- .button { width: 80px; }
49
+ .button {
50
+ width: 80px;
51
+ }
51
52
  }
52
53
 
53
54
  .c-admin > .o-page {
@@ -1,10 +1,13 @@
1
+ // stylelint-disable max-nesting-depth
1
2
  .o-standard-form {
2
3
  .input {
3
4
  margin-bottom: 1em;
4
5
  }
5
6
 
6
7
  .o-admin-standard-readonly {
7
- label { min-width: 5em; }
8
+ label {
9
+ min-width: 5em;
10
+ }
8
11
  }
9
12
 
10
13
  label {
@@ -2,7 +2,7 @@
2
2
  .o-admin-search-term {
3
3
  @include placeholder(#3a3a3a);
4
4
 
5
- margin-right: .5em;
5
+ margin-right: 0.5em;
6
6
  width: 45%;
7
7
  }
8
8
  }
@@ -39,7 +39,7 @@ $ub-txt-colors: (
39
39
  h1: $ub-heading-txt,
40
40
  h2: #333,
41
41
  h3: $ub-heading-txt,
42
- h4: #898989
42
+ h4: #898989,
43
43
  );
44
44
 
45
45
  $ub-mignight: (
@@ -50,7 +50,7 @@ $ub-mignight: (
50
50
  eighty: #6d6590,
51
51
  sixty: #928bac,
52
52
  forty: #b6b2c7,
53
- twenty: #dbd8e3
53
+ twenty: #dbd8e3,
54
54
  );
55
55
 
56
56
  $ub-yellow: (
@@ -58,7 +58,7 @@ $ub-yellow: (
58
58
  eighty: #fc3,
59
59
  sixty: #ffd966,
60
60
  forty: #ffe599,
61
- twenty: #fff2cc
61
+ twenty: #fff2cc,
62
62
  );
63
63
 
64
64
  $ub-green: (
@@ -66,7 +66,7 @@ $ub-green: (
66
66
  eighty: #a4cc2e,
67
67
  sixty: #c1dc6f,
68
68
  forty: #d5e79f,
69
- twenty: #eaf3cf
69
+ twenty: #eaf3cf,
70
70
  );
71
71
 
72
72
  $ub-buttons: (
@@ -80,7 +80,7 @@ $ub-buttons: (
80
80
  math: #00a699,
81
81
  lead: #a269bf,
82
82
  print: #423872,
83
- show-more: #9a9a9a
83
+ show-more: #9a9a9a,
84
84
  );
85
85
 
86
86
  $ub-leadership: (
@@ -91,7 +91,7 @@ $ub-leadership: (
91
91
  subscribe-label: #ca94e0,
92
92
  subscribe-input: #b57ed1,
93
93
  arrows1: #edecf1,
94
- arrows2: #e1d9e8
94
+ arrows2: #e1d9e8,
95
95
  );
96
96
 
97
97
  $ub-colorcodes: (
@@ -170,12 +170,11 @@ $ub-colorcodes: (
170
170
  facet: #6e6e6e,
171
171
  light: $ub-white,
172
172
  error: #f00,
173
- violet-light: #ecebf0,
173
+ violet-light: #ecebf0
174
174
  );
175
175
 
176
176
  $ub-selection: (
177
- disabled-parent-bg: rgba(0, 0, 0, .2),
178
-
177
+ disabled-parent-bg: rgba(0, 0, 0, 0.2),
179
178
  ela-disabled-switch-bg: #b75638,
180
179
  ela-disabled-fg: #f8a58c,
181
180
  ela-enabled-bg: #f45b33,
@@ -186,6 +185,5 @@ $ub-selection: (
186
185
  math-enabled-bg: #18a497,
187
186
  math-enabled-fg: #fff,
188
187
  math-enabled-switch-bg: #b4e4e0,
189
-
190
188
  modal-title-fg: #4e4b7a,
191
189
  );