lcms-engine 0.2.0 → 0.3.0

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 (393) hide show
  1. checksums.yaml +4 -4
  2. data/{spec/dummy/.env.docker → .env.docker} +0 -0
  3. data/.env.template +34 -0
  4. data/.gitignore +0 -1
  5. data/CHANGELOG.md +25 -0
  6. data/Dockerfile +1 -0
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +682 -0
  9. data/README.md +5 -11
  10. data/app/assets/javascripts/lcms/engine/admin/application.js +2 -11
  11. data/app/assets/javascripts/lcms/engine/application.js +1 -44
  12. data/app/assets/javascripts/lcms/engine/application_lti.js +1 -29
  13. data/app/assets/javascripts/lcms/engine/initializers/foundation.js +5 -0
  14. data/app/assets/stylesheets/lcms/engine/admin.scss +0 -1
  15. data/app/assets/stylesheets/lcms/engine/application.scss +6 -61
  16. data/app/assets/stylesheets/lcms/engine/base/_colors.scss +2 -2
  17. data/app/assets/stylesheets/lcms/engine/components/lesson/_icons.scss +0 -25
  18. data/app/assets/stylesheets/lcms/engine/layout/_footer.scss +2 -0
  19. data/app/assets/stylesheets/lcms/engine/layout/_header.scss +1 -210
  20. data/app/assets/stylesheets/lcms/engine/pdf.scss +3 -27
  21. data/app/assets/stylesheets/lcms/engine/pdf_plain.scss +3 -11
  22. data/app/assets/stylesheets/lcms/engine/print/_typography.scss +0 -5
  23. data/app/assets/stylesheets/lcms/engine/utils/_variables.scss +4 -4
  24. data/app/controllers/concerns/lcms/engine/reimportable.rb +9 -0
  25. data/app/controllers/lcms/engine/admin/admin_controller.rb +2 -0
  26. data/app/controllers/lcms/engine/admin/documents_controller.rb +7 -17
  27. data/app/controllers/lcms/engine/admin/materials_controller.rb +16 -19
  28. data/app/controllers/lcms/engine/admin/resources_controller.rb +77 -41
  29. data/app/controllers/lcms/engine/surveys_controller.rb +3 -14
  30. data/app/forms/lcms/engine/material_form.rb +1 -0
  31. data/app/helpers/lcms/engine/application_helper.rb +6 -2
  32. data/app/helpers/lcms/engine/resource_helper.rb +0 -17
  33. data/app/presenters/lcms/engine/content_presenter.rb +1 -1
  34. data/app/presenters/lcms/engine/document_presenter.rb +3 -5
  35. data/app/views/devise/confirmations/new.html.erb +1 -1
  36. data/app/views/devise/passwords/edit.html.erb +1 -1
  37. data/app/views/devise/passwords/new.html.erb +1 -1
  38. data/app/views/devise/registrations/new.html.erb +1 -1
  39. data/app/views/devise/sessions/new.html.erb +2 -2
  40. data/app/views/layouts/lcms/engine/admin.html.erb +1 -3
  41. data/app/views/layouts/lcms/engine/application.html.erb +0 -6
  42. data/app/views/layouts/lcms/engine/cg_pdf.erb +0 -38
  43. data/app/views/layouts/lcms/engine/lti.html.erb +0 -1
  44. data/app/views/lcms/engine/admin/curriculums/edit.html.erb +3 -0
  45. data/app/views/lcms/engine/admin/materials/index.html.erb +1 -1
  46. data/app/views/lcms/engine/admin/resource_bulk_edits/new.html.erb +3 -3
  47. data/app/views/lcms/engine/admin/shared/_header.html.erb +1 -8
  48. data/app/views/lcms/engine/documents/_content.html.erb +0 -1
  49. data/app/views/lcms/engine/documents/_sticky_header.html.erb +1 -1
  50. data/app/views/lcms/engine/documents/_sticky_site_menu.html.erb +0 -1
  51. data/app/views/lcms/engine/resources/_download.html.erb +2 -2
  52. data/app/views/lcms/engine/resources/_unit_bundles.html.erb +2 -2
  53. data/app/views/lcms/engine/resources/show.html.erb +2 -2
  54. data/app/views/lcms/engine/shared/_footer.html.erb +1 -3
  55. data/app/views/lcms/engine/shared/_header.html.erb +2 -36
  56. data/app/views/lcms/engine/surveys/show.html.erb +1 -1
  57. data/app/views/lcms/engine/welcome/index.html.erb +1 -80
  58. data/config/locales/admin/en.yml +1 -0
  59. data/config/routes.rb +2 -36
  60. data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +1 -1
  61. data/db/migrate/20200429130353_drop_pages.rb +13 -0
  62. data/docs/env-variables.md +87 -0
  63. data/docs/google-cloud-platform-setup.md +106 -0
  64. data/lcms-engine.gemspec +50 -59
  65. data/lib/doc_template/document.rb +2 -2
  66. data/lib/doc_template/tables/activity.rb +1 -2
  67. data/lib/doc_template/tables/base.rb +4 -0
  68. data/lib/doc_template/tables/section.rb +1 -2
  69. data/lib/doc_template/xpath_functions.rb +3 -1
  70. data/lib/lcms/engine/engine.rb +0 -8
  71. data/lib/lcms/engine/version.rb +1 -1
  72. data/lib/lt/lcms/metadata/context.rb +5 -7
  73. data/spec/controllers/admin/admin_controller_spec.rb +1 -1
  74. data/spec/controllers/admin/documents_controller_spec.rb +38 -6
  75. data/spec/controllers/admin/materials_controller_spec.rb +64 -0
  76. data/spec/controllers/admin/resources_controller_spec.rb +72 -0
  77. data/spec/dummy/config/lcms-admin.yml +3 -3
  78. data/spec/dummy/db/schema.rb +29 -37
  79. data/spec/features/welcome_spec.rb +1 -1
  80. data/spec/fixtures/tables/activity-metadata-3activities.html +1 -0
  81. data/spec/fixtures/tables/document-metadata-2paragpraphs.html +97 -0
  82. data/spec/fixtures/tables/document-metadata-2spans.html +96 -0
  83. data/spec/fixtures/tables/document-metadata.html +96 -0
  84. data/spec/lib/doc_template/tables/activity_spec.rb +28 -0
  85. data/spec/lib/doc_template/tables/metadata_spec.rb +40 -0
  86. data/spec/lib/doc_template/tables/shared_examples/remove_table.rb +11 -0
  87. data/spec/rails_helper.rb +1 -0
  88. data/spec/support/fixture_helper.rb +16 -0
  89. data/vendor/assets/javascripts/selectize.min.js +4 -0
  90. data/vendor/assets/stylesheets/selectize.scss +333 -0
  91. data/yarn.lock +634 -452
  92. metadata +274 -494
  93. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.eot +0 -0
  94. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.svg +0 -689
  95. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.ttf +0 -0
  96. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.woff +0 -0
  97. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.eot +0 -0
  98. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.svg +0 -697
  99. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.ttf +0 -0
  100. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.woff +0 -0
  101. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.eot +0 -0
  102. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.svg +0 -768
  103. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.ttf +0 -0
  104. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.woff +0 -0
  105. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.eot +0 -0
  106. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.svg +0 -685
  107. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.ttf +0 -0
  108. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.woff +0 -0
  109. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.eot +0 -0
  110. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.svg +0 -5603
  111. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.woff +0 -0
  112. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.eot +0 -0
  113. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.svg +0 -5763
  114. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.woff +0 -0
  115. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.eot +0 -0
  116. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.otf +0 -0
  117. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.svg +0 -5400
  118. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.woff +0 -0
  119. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.eot +0 -0
  120. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.html +0 -15
  121. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.otf +0 -0
  122. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.svg +0 -13061
  123. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.woff +0 -0
  124. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.eot +0 -0
  125. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.html +0 -15
  126. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.otf +0 -0
  127. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.svg +0 -13075
  128. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.woff +0 -0
  129. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.eot +0 -0
  130. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.otf +0 -0
  131. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.svg +0 -13142
  132. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.woff +0 -0
  133. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.eot +0 -0
  134. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.ttf +0 -0
  135. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.woff +0 -0
  136. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.woff2 +0 -0
  137. data/app/assets/fonts/lcms/engine/cursive/Sriracha-Regular.ttf +0 -0
  138. data/app/assets/fonts/lcms/engine/icons/ubicons.eot +0 -0
  139. data/app/assets/fonts/lcms/engine/icons/ubicons.svg +0 -50
  140. data/app/assets/fonts/lcms/engine/icons/ubicons.ttf +0 -0
  141. data/app/assets/fonts/lcms/engine/icons/ubicons.woff +0 -0
  142. data/app/assets/fonts/lcms/engine/ub/UBIcons.eot +0 -0
  143. data/app/assets/fonts/lcms/engine/ub/UBIcons.svg +0 -18
  144. data/app/assets/fonts/lcms/engine/ub/UBIcons.ttf +0 -0
  145. data/app/assets/fonts/lcms/engine/ub/UBIcons.woff +0 -0
  146. data/app/assets/images/lcms/engine/lessons/ld_p1.png +0 -0
  147. data/app/assets/images/lcms/engine/lessons/ld_p2.png +0 -0
  148. data/app/assets/images/lcms/engine/lessons/ld_p3.png +0 -0
  149. data/app/assets/images/lcms/engine/lessons/tens.png +0 -0
  150. data/app/assets/images/lcms/engine/lessons/wp.svg +0 -30
  151. data/app/assets/images/lcms/engine/tile-wide.png +0 -0
  152. data/app/assets/images/lcms/engine/tile.png +0 -0
  153. data/app/assets/javascripts/lcms/engine/components.js +0 -7
  154. data/app/assets/javascripts/lcms/engine/components/.gitkeep +0 -0
  155. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMap.js.jsx +0 -31
  156. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapLesson.js.jsx +0 -18
  157. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapModule.js.jsx +0 -59
  158. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapUnit.js.jsx +0 -56
  159. data/app/assets/javascripts/lcms/engine/components/curriculum-map/ResourceHover.js.jsx +0 -27
  160. data/app/assets/javascripts/lcms/engine/components/curriculum-map/ResourcePreview.js.jsx +0 -29
  161. data/app/assets/javascripts/lcms/engine/components/enhance-instruction/EnhanceInstructionCards.js.jsx +0 -13
  162. data/app/assets/javascripts/lcms/engine/components/enhance-instruction/EnhanceInstructionPage.js.jsx +0 -139
  163. data/app/assets/javascripts/lcms/engine/components/enhance-instruction/GenericResourceCard.js.jsx +0 -20
  164. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumCardItem.js.jsx +0 -152
  165. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumGradeMap.js.jsx +0 -44
  166. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumHeader.js.jsx +0 -10
  167. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumItem.js.jsx +0 -77
  168. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumModuleMap.js.jsx +0 -59
  169. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumOpr.js.jsx +0 -62
  170. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumPage.js.jsx +0 -258
  171. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumUnitMap.js.jsx +0 -50
  172. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterBarResponsive.js.jsx +0 -62
  173. data/app/assets/javascripts/lcms/engine/components/filterbar/Filterbar.js.jsx +0 -258
  174. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarFacet.js.jsx +0 -12
  175. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarGrade.js.jsx +0 -14
  176. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarSearch.js.jsx +0 -48
  177. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarSubject.js.jsx +0 -12
  178. data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsCards.js.jsx +0 -11
  179. data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsCardsEmpty.js.jsx +0 -17
  180. data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsPage.js.jsx +0 -58
  181. data/app/assets/javascripts/lcms/engine/components/helpers/FreshdeskBtn.js.jsx +0 -9
  182. data/app/assets/javascripts/lcms/engine/components/helpers/MediaTime.js.jsx +0 -6
  183. data/app/assets/javascripts/lcms/engine/components/helpers/SearchResultsHeader.js.jsx +0 -41
  184. data/app/assets/javascripts/lcms/engine/components/helpers/TimeToTeach.js.jsx +0 -29
  185. data/app/assets/javascripts/lcms/engine/components/instruction-card/InstructionCard.js.jsx +0 -57
  186. data/app/assets/javascripts/lcms/engine/components/lesson-card/LessonCard.js.jsx +0 -45
  187. data/app/assets/javascripts/lcms/engine/components/materials/CollapsedMaterial.js.jsx +0 -40
  188. data/app/assets/javascripts/lcms/engine/components/materials/DocumentMaterialsList.js.jsx +0 -33
  189. data/app/assets/javascripts/lcms/engine/components/materials/ExpandedMaterial.js.jsx +0 -37
  190. data/app/assets/javascripts/lcms/engine/components/materials/MaterialsContainer.js.jsx +0 -92
  191. data/app/assets/javascripts/lcms/engine/components/materials/MaterialsList.js.jsx +0 -19
  192. data/app/assets/javascripts/lcms/engine/components/modals/DownloadModal.js.jsx +0 -68
  193. data/app/assets/javascripts/lcms/engine/components/related-instruction/RelatedInstruction.js.jsx +0 -72
  194. data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdown.js.jsx +0 -159
  195. data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdownResult.js.jsx +0 -12
  196. data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdownResults.js.jsx +0 -36
  197. data/app/assets/javascripts/lcms/engine/components/search/SearchPage.js.jsx +0 -44
  198. data/app/assets/javascripts/lcms/engine/components/search/SearchResult.js.jsx +0 -22
  199. data/app/assets/javascripts/lcms/engine/components/search/SearchResults.js.jsx +0 -17
  200. data/app/assets/javascripts/lcms/engine/components/search/SearchResultsEmpty.js.jsx +0 -25
  201. data/app/assets/javascripts/lcms/engine/components/search/searchPageWrapper.js.jsx +0 -77
  202. data/app/assets/javascripts/lcms/engine/components/select-activity/SelectActivityConfirmationModal.js.jsx +0 -107
  203. data/app/assets/javascripts/lcms/engine/components/select-activity/SelectActivityToggle.js.jsx +0 -39
  204. data/app/assets/javascripts/lcms/engine/components/stores/ExcludesStore.js.jsx +0 -11
  205. data/app/assets/javascripts/lcms/engine/components/tabs/SimpleTab.js.jsx +0 -130
  206. data/app/assets/javascripts/lcms/engine/components/utils/UrlHistory.js.jsx +0 -113
  207. data/app/assets/javascripts/lcms/engine/components/utils/colorcodecss.js.jsx +0 -4
  208. data/app/assets/javascripts/lcms/engine/components/utils/converttobem.js.jsx +0 -3
  209. data/app/assets/javascripts/lcms/engine/components/utils/filterbarupdate.js.jsx +0 -5
  210. data/app/assets/javascripts/lcms/engine/components/utils/heaptrackpd.js.jsx +0 -5
  211. data/app/assets/javascripts/lcms/engine/components/utils/regexpescape.js.jsx +0 -5
  212. data/app/assets/javascripts/lcms/engine/components/utils/scalenumber.js.jsx +0 -8
  213. data/app/assets/javascripts/lcms/engine/initializers/about_people.js +0 -8
  214. data/app/assets/javascripts/lcms/engine/initializers/analytics.js +0 -10
  215. data/app/assets/javascripts/lcms/engine/initializers/bundles.js +0 -12
  216. data/app/assets/javascripts/lcms/engine/initializers/events.js +0 -3
  217. data/app/assets/javascripts/lcms/engine/initializers/freshdesk.js +0 -18
  218. data/app/assets/javascripts/lcms/engine/initializers/header_dropdown.js +0 -44
  219. data/app/assets/javascripts/lcms/engine/initializers/heap_analytics.js +0 -78
  220. data/app/assets/javascripts/lcms/engine/initializers/leadership.js +0 -22
  221. data/app/assets/javascripts/lcms/engine/initializers/lessons.js +0 -299
  222. data/app/assets/javascripts/lcms/engine/initializers/loadasync.js +0 -30
  223. data/app/assets/javascripts/lcms/engine/initializers/pdf_preview.js +0 -15
  224. data/app/assets/javascripts/lcms/engine/initializers/resource_details.js +0 -21
  225. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SideBar.js.jsx +0 -86
  226. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarCGMenu.js.jsx +0 -37
  227. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarDocMenu.js.jsx +0 -75
  228. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarMobile.js.jsx +0 -43
  229. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarSticky.js.jsx +0 -43
  230. data/app/assets/javascripts/lcms/engine/initializers/sidebar/TopScroll.js.jsx +0 -21
  231. data/app/assets/javascripts/lcms/engine/initializers/social_sharing.js +0 -29
  232. data/app/assets/javascripts/lcms/engine/initializers/soundcloud.js +0 -52
  233. data/app/assets/javascripts/lcms/engine/initializers/subscribe_placeholder.js +0 -12
  234. data/app/assets/javascripts/lcms/engine/initializers/survey.js +0 -31
  235. data/app/assets/stylesheets/lcms/engine/base/_cg-colors.scss +0 -48
  236. data/app/assets/stylesheets/lcms/engine/base/_fonts.scss +0 -103
  237. data/app/assets/stylesheets/lcms/engine/base/_icons.scss +0 -342
  238. data/app/assets/stylesheets/lcms/engine/components/_buttons.scss +0 -200
  239. data/app/assets/stylesheets/lcms/engine/components/_cards.scss +0 -36
  240. data/app/assets/stylesheets/lcms/engine/components/_cg-base.scss +0 -22
  241. data/app/assets/stylesheets/lcms/engine/components/_curriculum-cards.scss +0 -237
  242. data/app/assets/stylesheets/lcms/engine/components/_curriculum-map.scss +0 -214
  243. data/app/assets/stylesheets/lcms/engine/components/_download-modal.scss +0 -56
  244. data/app/assets/stylesheets/lcms/engine/components/_filterbar-modal.scss +0 -20
  245. data/app/assets/stylesheets/lcms/engine/components/_filterbar.scss +0 -184
  246. data/app/assets/stylesheets/lcms/engine/components/_generic-resource.scss +0 -58
  247. data/app/assets/stylesheets/lcms/engine/components/_inputs.scss +0 -12
  248. data/app/assets/stylesheets/lcms/engine/components/_instruction-cards.scss +0 -160
  249. data/app/assets/stylesheets/lcms/engine/components/_lesson-base.scss +0 -31
  250. data/app/assets/stylesheets/lcms/engine/components/_lesson-cards.scss +0 -119
  251. data/app/assets/stylesheets/lcms/engine/components/_ls-post.scss +0 -38
  252. data/app/assets/stylesheets/lcms/engine/components/_material-base.scss +0 -6
  253. data/app/assets/stylesheets/lcms/engine/components/_media-resources.scss +0 -6
  254. data/app/assets/stylesheets/lcms/engine/components/_media.scss +0 -95
  255. data/app/assets/stylesheets/lcms/engine/components/_pagination.scss +0 -84
  256. data/app/assets/stylesheets/lcms/engine/components/_panel-dsc.scss +0 -37
  257. data/app/assets/stylesheets/lcms/engine/components/_panel.scss +0 -7
  258. data/app/assets/stylesheets/lcms/engine/components/_related-instruction.scss +0 -31
  259. data/app/assets/stylesheets/lcms/engine/components/_resource.scss +0 -217
  260. data/app/assets/stylesheets/lcms/engine/components/_search-dropdown.scss +0 -23
  261. data/app/assets/stylesheets/lcms/engine/components/_search-header.scss +0 -45
  262. data/app/assets/stylesheets/lcms/engine/components/_search.scss +0 -57
  263. data/app/assets/stylesheets/lcms/engine/components/_sidebar.scss +0 -159
  264. data/app/assets/stylesheets/lcms/engine/components/_simple-tab.scss +0 -57
  265. data/app/assets/stylesheets/lcms/engine/components/_social-sharing.scss +0 -20
  266. data/app/assets/stylesheets/lcms/engine/components/_titles.scss +0 -33
  267. data/app/assets/stylesheets/lcms/engine/components/_top-scroll-button.scss +0 -28
  268. data/app/assets/stylesheets/lcms/engine/components/_unit-bundles.scss +0 -14
  269. data/app/assets/stylesheets/lcms/engine/components/cg/_annotations.scss +0 -48
  270. data/app/assets/stylesheets/lcms/engine/components/cg/_colorscheme.scss +0 -60
  271. data/app/assets/stylesheets/lcms/engine/components/cg/_contents-modal.scss +0 -20
  272. data/app/assets/stylesheets/lcms/engine/components/cg/_elements.scss +0 -11
  273. data/app/assets/stylesheets/lcms/engine/components/cg/_faq.scss +0 -35
  274. data/app/assets/stylesheets/lcms/engine/components/cg/_footnote.scss +0 -20
  275. data/app/assets/stylesheets/lcms/engine/components/cg/_hacks.scss +0 -11
  276. data/app/assets/stylesheets/lcms/engine/components/cg/_icons.scss +0 -30
  277. data/app/assets/stylesheets/lcms/engine/components/cg/_keywords.scss +0 -5
  278. data/app/assets/stylesheets/lcms/engine/components/cg/_links.scss +0 -3
  279. data/app/assets/stylesheets/lcms/engine/components/cg/_quotes.scss +0 -18
  280. data/app/assets/stylesheets/lcms/engine/components/cg/_standards.scss +0 -23
  281. data/app/assets/stylesheets/lcms/engine/components/cg/_table.scss +0 -50
  282. data/app/assets/stylesheets/lcms/engine/components/cg/_task.scss +0 -43
  283. data/app/assets/stylesheets/lcms/engine/components/cg/_video.scss +0 -10
  284. data/app/assets/stylesheets/lcms/engine/components/support/_helpdesk.scss +0 -25
  285. data/app/assets/stylesheets/lcms/engine/freshdesk/base/_colors.scss +0 -25
  286. data/app/assets/stylesheets/lcms/engine/freshdesk/base/_typography.scss +0 -19
  287. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_block.scss +0 -5
  288. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_buttons.scss +0 -5
  289. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_help-center.scss +0 -59
  290. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_tabs.scss +0 -33
  291. data/app/assets/stylesheets/lcms/engine/freshdesk/freshdesk.scss +0 -42
  292. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_footer.scss +0 -44
  293. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_header.scss +0 -49
  294. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_page.scss +0 -40
  295. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/footer.liquid +0 -14
  296. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/header.liquid +0 -41
  297. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/page.liquid +0 -22
  298. data/app/assets/stylesheets/lcms/engine/freshdesk/pages/_portal-home.scss +0 -18
  299. data/app/assets/stylesheets/lcms/engine/freshdesk/pages/portal.home.liquid +0 -74
  300. data/app/assets/stylesheets/lcms/engine/freshdesk/themes/_settings.scss +0 -19
  301. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_breakpoint.scss +0 -288
  302. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_helpers.scss +0 -22
  303. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_unit.scss +0 -95
  304. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_value.scss +0 -138
  305. data/app/assets/stylesheets/lcms/engine/layout/_connect.scss +0 -63
  306. data/app/assets/stylesheets/lcms/engine/layout/_header-search-form.scss +0 -30
  307. data/app/assets/stylesheets/lcms/engine/layout/_sticky-header.scss +0 -179
  308. data/app/assets/stylesheets/lcms/engine/layout/_sticky-navigation.scss +0 -124
  309. data/app/assets/stylesheets/lcms/engine/layout/_subscribe.scss +0 -68
  310. data/app/assets/stylesheets/lcms/engine/pages/_about-people.scss +0 -115
  311. data/app/assets/stylesheets/lcms/engine/pages/_about.scss +0 -61
  312. data/app/assets/stylesheets/lcms/engine/pages/_content-guide.scss +0 -205
  313. data/app/assets/stylesheets/lcms/engine/pages/_enhance-instruction.scss +0 -19
  314. data/app/assets/stylesheets/lcms/engine/pages/_explore-curriculum.scss +0 -46
  315. data/app/assets/stylesheets/lcms/engine/pages/_find-lessons.scss +0 -1
  316. data/app/assets/stylesheets/lcms/engine/pages/_home.scss +0 -237
  317. data/app/assets/stylesheets/lcms/engine/pages/_leadership.scss +0 -263
  318. data/app/assets/stylesheets/lcms/engine/pages/_lesson-document.scss +0 -138
  319. data/app/assets/stylesheets/lcms/engine/pages/_unsupported.scss +0 -18
  320. data/app/assets/stylesheets/lcms/engine/print/_b64-fonts.scss.erb +0 -65
  321. data/app/assets/stylesheets/lcms/engine/print/_cg-base.scss +0 -4
  322. data/app/assets/stylesheets/lcms/engine/print/_hacks.scss +0 -6
  323. data/app/assets/stylesheets/lcms/engine/print/cg/_base-typography.scss +0 -21
  324. data/app/assets/stylesheets/lcms/engine/print/cg/_breaks.scss +0 -7
  325. data/app/assets/stylesheets/lcms/engine/print/cg/_elements-typography.scss +0 -14
  326. data/app/assets/stylesheets/lcms/engine/vendors/swiper.css +0 -547
  327. data/app/controllers/concerns/lcms/engine/analytics_tracking.rb +0 -51
  328. data/app/controllers/concerns/lcms/engine/heap_notifyable.rb +0 -20
  329. data/app/controllers/lcms/engine/admin/configurable_admin.rb +0 -56
  330. data/app/controllers/lcms/engine/admin/google_oauth2_controller.rb +0 -15
  331. data/app/controllers/lcms/engine/admin/pages_controller.rb +0 -54
  332. data/app/controllers/lcms/engine/analytics_exclusion_controller.rb +0 -14
  333. data/app/controllers/lcms/engine/downloads_controller.rb +0 -50
  334. data/app/controllers/lcms/engine/enhance_instruction_controller.rb +0 -18
  335. data/app/controllers/lcms/engine/explore_curriculum_controller.rb +0 -28
  336. data/app/controllers/lcms/engine/find_lessons_controller.rb +0 -15
  337. data/app/controllers/lcms/engine/pages_controller.rb +0 -26
  338. data/app/controllers/lcms/engine/search_controller.rb +0 -15
  339. data/app/controllers/lcms/engine/sessions_controller.rb +0 -19
  340. data/app/models/lcms/engine/page.rb +0 -13
  341. data/app/services/lcms/engine/generate_thumbnails.rb +0 -54
  342. data/app/services/lcms/engine/svg_social_thumbnail.rb +0 -223
  343. data/app/views/layouts/lcms/engine/ld_docx.html.erb +0 -16
  344. data/app/views/lcms/engine/admin/pages/_form.html.erb +0 -8
  345. data/app/views/lcms/engine/admin/pages/edit.html.erb +0 -9
  346. data/app/views/lcms/engine/admin/pages/index.html.erb +0 -25
  347. data/app/views/lcms/engine/admin/pages/new.html.erb +0 -5
  348. data/app/views/lcms/engine/documents/_helpdesk.html.erb +0 -9
  349. data/app/views/lcms/engine/pages/_about_people_staff.html.erb +0 -27
  350. data/app/views/lcms/engine/pages/_leadership_in_action.html.erb +0 -25
  351. data/app/views/lcms/engine/pages/_leadership_why_i_lead.html.erb +0 -34
  352. data/app/views/lcms/engine/pages/about.html.erb +0 -87
  353. data/app/views/lcms/engine/pages/about_people.html.erb +0 -27
  354. data/app/views/lcms/engine/pages/forthcoming.html.erb +0 -9
  355. data/app/views/lcms/engine/pages/leadership.html.erb +0 -82
  356. data/app/views/lcms/engine/pages/not_found.html.erb +0 -9
  357. data/app/views/lcms/engine/pages/privacy.html.erb +0 -9
  358. data/app/views/lcms/engine/pages/show.html.erb +0 -8
  359. data/app/views/lcms/engine/pages/show_slug.html.erb +0 -0
  360. data/app/views/lcms/engine/pages/tos.html.erb +0 -9
  361. data/app/views/lcms/engine/shared/_connect.html.erb +0 -60
  362. data/app/views/lcms/engine/shared/_freshdesk.html.erb +0 -22
  363. data/app/views/lcms/engine/shared/_google_analytics.html.erb +0 -9
  364. data/app/views/lcms/engine/shared/_heap_analytics.html.erb +0 -7
  365. data/app/views/lcms/engine/shared/_open_graph_meta.html.erb +0 -15
  366. data/app/views/lcms/engine/shared/_open_graph_meta_js.html.erb +0 -39
  367. data/app/views/lcms/engine/shared/_search_form.html.erb +0 -10
  368. data/app/views/lcms/engine/shared/_social_sharing_menu.html.erb +0 -34
  369. data/app/views/lcms/engine/shared/_subscribe.html.erb +0 -30
  370. data/app/views/lcms/engine/shared/_unsupported.html.erb +0 -3
  371. data/app/views/lcms/engine/shared/social_thumbnail.svg.erb +0 -54
  372. data/config/initializers/heap.rb +0 -3
  373. data/lib/tasks/thumbnails.rake +0 -59
  374. data/spec/controllers/admin/pages_controller_spec.rb +0 -19
  375. data/spec/controllers/enhance_instruction_controller_spec.rb +0 -15
  376. data/spec/controllers/explore_curriculum_controller_spec.rb +0 -29
  377. data/spec/controllers/find_lessons_controller_spec.rb +0 -50
  378. data/spec/controllers/pages_controller_spec.rb +0 -32
  379. data/spec/controllers/search_controller_spec.rb +0 -16
  380. data/spec/factories/pages.rb +0 -21
  381. data/spec/features/admin/pages_spec.rb +0 -79
  382. data/spec/features/pages/page_not_found_spec.rb +0 -26
  383. data/spec/features/pages/page_titles_spec.rb +0 -86
  384. data/spec/support/heap.rb +0 -3
  385. data/vendor/assets/javascripts/foundation.initialize.js +0 -115
  386. data/vendor/assets/javascripts/foundation.magellanex.js +0 -335
  387. data/vendor/assets/javascripts/freshwidget.js +0 -1
  388. data/vendor/assets/javascripts/jquery.easytabs.js +0 -704
  389. data/vendor/assets/javascripts/jquery.hashchange.js +0 -9
  390. data/vendor/assets/javascripts/modernizr-custom.js +0 -3
  391. data/vendor/assets/javascripts/smoothscrolling.js +0 -22
  392. data/vendor/assets/javascripts/swiper.jquery.js +0 -3777
  393. data/vendor/assets/javascripts/tabs.js +0 -6
@@ -1,33 +0,0 @@
1
- .page-tabs {
2
- &, .nav-link a {
3
- @include txt-fd-element(tab-title);
4
- font-weight: normal;
5
-
6
- &.active { font-weight: bold; }
7
- }
8
-
9
- @include breakpoint(medium) {
10
- @include add-gutter(margin, top, 2);
11
- @include add-gutter(margin, bottom, 1);
12
- border: 0;
13
- border-bottom: 1px solid $fd-border;
14
- border-radius: 0;
15
-
16
- .nav-link a {
17
- border: 0;
18
- font-weight: normal;
19
- margin-right: 20px;
20
- min-width: auto;
21
- padding: 0;
22
- text-align: left;
23
-
24
- &:first-child {
25
- border-radius: 0;
26
- }
27
-
28
- &.active {
29
- border-bottom: 4px solid $fd-border;
30
- }
31
- }
32
- }
33
- }
@@ -1,42 +0,0 @@
1
- //
2
- // This is classes for freshdesk portal for UB Theme
3
- // To build it use smth like scss ./freshdesk.scss > ./freshdesk.css and put result css at customize sectoion
4
- // Also check ./layout, ./pages for liquid templates that are different from default one, put them to freshdesk too
5
- // Check colors at ./base/colors, most of them need to be set at freshdesk
6
- //
7
- @charset "utf-8";
8
-
9
- @import
10
- '../utils/variables',
11
- '../utils/mixins',
12
- 'base/colors';
13
-
14
- @import
15
- 'themes/settings';
16
-
17
- @import
18
- 'utils/unit',
19
- 'utils/value',
20
- 'utils/breakpoint',
21
- 'utils/helpers';
22
-
23
- @import
24
- 'base/typography';
25
-
26
- // layout that will override common freshdesk classes to meet design
27
- @import
28
- 'layout/footer',
29
- 'layout/header',
30
- 'layout/page';
31
-
32
- // components that are used on most of pages,
33
- // overriding freshdesk classes for them
34
- @import
35
- 'components/block',
36
- 'components/buttons',
37
- 'components/help-center',
38
- 'components/tabs';
39
-
40
- // override freshdesk classes for specific page
41
- @import
42
- 'pages/portal-home';
@@ -1,44 +0,0 @@
1
- @mixin footer-links-styles {
2
- a {
3
- @include txt-fd-element(footer-links);
4
- margin: 0;
5
- }
6
-
7
- a + a:not(.cookie-link) { margin-left: 5px; }
8
-
9
- a:first-child { margin-right: 5px; }
10
-
11
- a:first-child::before, a.cookie-link::before {
12
- content: none;
13
- }
14
-
15
- a::before {
16
- content: '\2022';
17
- margin-left: -10px;
18
- }
19
- }
20
-
21
- .footer {
22
- @include add-gutter(margin, top, 1);
23
-
24
- @include breakpoint(small down) {
25
- .footer-links {
26
- @include footer-links-styles;
27
- a {
28
- background: 0;
29
- border-radius: 0;
30
- box-shadow: none;
31
- padding: 0;
32
- }
33
-
34
- a.cookie-link {
35
- margin-top: 5px;
36
- width: 100%;
37
- }
38
- }
39
- }
40
-
41
- .footer-links {
42
- @include footer-links-styles;
43
- }
44
- }
@@ -1,49 +0,0 @@
1
- .c-header {
2
- min-height: $ub-nav-height;
3
-
4
- @include breakpoint(small down) {
5
- &, .banner { background-color: $fd-header-logo; }
6
- }
7
-
8
- @include e(wrap) {
9
- background-color: $fd-header-logo;
10
- min-height: $ub-nav-height;
11
-
12
- @include breakpoint(medium) {
13
- background-color: $fd-header-bg;
14
- opacity: .9;
15
- }
16
- }
17
-
18
- .banner {
19
- border: 0;
20
- border-radius: 0;
21
- box-shadow: 0;
22
- text-shadow: 0;
23
-
24
- @include breakpoint(medium) {
25
- padding: 0;
26
- }
27
- }
28
-
29
- @include breakpoint(medium) {
30
- h1 { padding-top: 30px; }
31
-
32
- .portal-logo {
33
- @include add-column-padding;
34
- background-color: $fd-header-logo;
35
- margin: 0;
36
- margin-right: 60px;
37
- }
38
-
39
- .portal-img {
40
- height: $ub-nav-height;
41
- padding-top: 30px;
42
- vertical-align: unset;
43
- }
44
- }
45
- }
46
-
47
- #header-tabs a:nth-child(2){
48
- display: none;
49
- }
@@ -1,40 +0,0 @@
1
- .o-page {
2
- @include add-column-padding(.5);
3
- margin-left: auto;
4
- margin-right: auto;
5
- max-width: 76.875rem;
6
- }
7
-
8
- .c-wrapper {
9
- @include breakpoint(medium) {
10
- @include add-gutter(margin, top, 1);
11
- }
12
-
13
- .content {
14
- @extend %fd-card;
15
- @include add-column-padding;
16
- @include add-top-bottom-padding;
17
- border: 0;
18
-
19
- h2 {
20
- @include txt-fd-element(title);
21
- }
22
-
23
- h2:not(.u-not-hr)::after {
24
- @include u-hr-small;
25
- content: ' ';
26
- display: block;
27
- }
28
-
29
- .breadcrumb {
30
- @include add-gutter(margin, bottom, .5);
31
- &, a {
32
- @include txt-fd-element(breadcrumb);
33
- }
34
- }
35
-
36
- .lead, .lead-small, .list-lead {
37
- @include txt-fd-element(lead);
38
- }
39
- }
40
- }
@@ -1,14 +0,0 @@
1
- {% if portal.current_page != 'csat_survey' %}
2
- <footer class="footer o-block">
3
- <nav class="footer-links">
4
- {% if portal.tabs.size > 0 %}
5
- {% for tab in portal.tabs %}
6
- <a href="{{tab.url}}" class="{% if tab.tab_type == current_tab %}active{% endif %}">{{ tab.label }}</a>
7
- {% endfor %}
8
- {% endif %}
9
- {{ portal | link_to_privacy_policy }}
10
- {{ portal | link_to_cookie_law }}
11
- </nav>
12
- </footer>
13
- {{ portal | portal_copyright }}
14
- {% endif %}
@@ -1,41 +0,0 @@
1
- {% if portal.current_page != 'csat_survey' %}
2
- <div class="c-header__wrap">
3
- <div class="o-page c-header">
4
- <header class="banner">
5
- <div class="banner-wrapper">
6
- <div class="c-header__title banner-title">
7
- {{ portal | logo }}
8
- <h1 class="u-fd-txt--header ellipsis heading">{{portal.name|h}}</h1>
9
- </div>
10
- </div>
11
- </header>
12
- </div>
13
- </div>
14
- <div class="o-page">
15
- <nav class="page-tabs" >
16
- {% if portal.tabs.size > 0 %}
17
- <a data-toggle-dom="#header-tabs" href="#" data-animated="true" class="mobile-icon-nav-menu show-in-mobile"></a>
18
- <div class="nav-link" id="header-tabs">
19
- {% for tab in portal.tabs %}
20
- {% if tab.url %}
21
- <a href="{{tab.url}}" class="{% if tab.tab_type == portal.current_tab %}active{% endif %}">{{ tab.label }}</a>
22
- {% endif %}
23
- {% endfor %}
24
- </div>
25
- {% endif %}
26
- </nav>
27
- </div>
28
- {% else %}
29
- <div class="c-header__wrap">
30
- <div class="o-page c-header">
31
- <header class="banner">
32
- <div class="banner-wrapper">
33
- <div class="c-header__title banner-title">
34
- {{ portal | logo }}
35
- <h1 class="u-fd-txt--header ellipsis heading">{{portal.name|h}}</h1>
36
- </div>
37
- </div>
38
- </header>
39
- </div>
40
- </div>
41
- {% endif %}
@@ -1,22 +0,0 @@
1
- {{ header }}
2
-
3
- <div class="o-page">
4
- <!-- Search and page links for the page -->
5
- {% if portal.current_tab %}
6
- <section class="help-center">
7
- <div class="hc-nav {% if portal.contact_info %} nav-with-contact {% endif %}">
8
- {{ portal | helpcenter_navigation }}
9
- </div>
10
- </section>
11
- {% endif %}
12
-
13
- <!-- Notification Messages -->
14
- {{ page_message }}
15
-
16
- <div class="c-wrapper">
17
- {{ content_for_layout }}
18
- </div>
19
-
20
- {{ footer }}
21
-
22
- </div>
@@ -1,18 +0,0 @@
1
- .cs-s {
2
- border-top: 0;
3
-
4
- h3 {
5
- border-bottom: 4px solid $fd-border;
6
- border-top: 0;
7
-
8
- a { @include txt-fd-element(tab-title); }
9
- }
10
-
11
- .cs-g-c {
12
- border-top: 1px solid $fd-border;
13
- }
14
-
15
- .cs-g {
16
- @include add-gutter(margin, top, .5);
17
- }
18
- }
@@ -1,74 +0,0 @@
1
- {% if portal.has_solutions %}
2
- <section class="main content min-height-on-desktop fc-portal-solution-home" id="solutions-index-home">
3
- <h2 class="heading">{% translate portal.knowledge_base %}</h2>
4
- {% for category in portal.solution_categories %}
5
- {% if category.folders_count > 0 %}
6
- <div class="cs-s">
7
- <h3 class="heading u-fd-txt--tab-title">{{ category.name }}</h3>
8
- <div class="cs-g-c">
9
- {% for folder in category.folders %}
10
- {% if folder.articles_count == 1 %}
11
- {% assign article = folder.articles[0] %}
12
- <h2 class="heading u-not-hr u-margin-top--halfgutter">{{ article.title | h}}</h2>
13
- {% if article.personalized_articles? %}
14
- <div> {% translate portal.article.created_by %} {{ article.author }} </div>
15
- {% endif %}
16
- <p>{% translate portal.article.modified_on %} {{ article.modified_on | short_day_with_time }}</p>
17
- <div class="u-hr-small"></div>
18
- {% comment %}
19
- <div>
20
- {% for tag in article.tags %}
21
- <span class="label label-info">{{tag.name | h}}</span>
22
- {% endfor %}
23
- </div>
24
- {% endcomment %}
25
-
26
- <article class="article-body" id="article-body" rel="image-enlarge">
27
- {{ article.body }}
28
- </article>
29
- {% else %}
30
- <section class="cs-g article-list">
31
- <div class="list-lead">
32
- {{ folder | link_to_folder_with_count }}
33
- </div>
34
- {{ folder | article_list:5 }}
35
- </section>
36
- {% endif %}
37
- {% else %}
38
- {{ portal | filler_for_solutions }}
39
- {% endfor %}
40
- </div>
41
- </div>
42
- {% endif %}
43
- {% endfor %}
44
- </section>
45
- {% endif %}
46
-
47
- {% if portal.has_forums %}
48
- <section class="sidebar content community-sidebar rounded-6 min-height-on-desktop fc-community-sidebar" id="home-community-sidebar">
49
- <h2 class="heading">{% translate portal.community_forums %}</h2>
50
- {% if portal.topics_count > 0 %}
51
- <p class="intro">{% translate portal.showing_recent_updates %}</p>
52
- <div>{{ portal | link_to_start_topic }}</div>
53
- {% for category in portal.forum_categories %}
54
- {% if category.forums_count > 0 %}
55
- <div class="cs-s">
56
- <h3 class="heading u-fd-txt--tab-title">{{ category.name | link_to: category.url }}</h3>
57
- <div class="cs-g-c">
58
- {% for forum in category.forums %}
59
- <section class="cs-g topic-list">
60
- <div class="list-lead badge-{{ forum.type_name }}">
61
- {{ forum | link_to_forum_with_count }}
62
- </div>
63
- {{ forum | topic_list:3 }}
64
- </section>
65
- {% endfor %}
66
- </div>
67
- </div>
68
- {% endif %}
69
- {% endfor %}
70
- {% else %}
71
- {{ portal | filler_for_forums }}
72
- {% endif %}
73
- </section>
74
- {% endif %}
@@ -1,19 +0,0 @@
1
- // using freshdesk breakpoints here
2
- $breakpoints: (
3
- small: 0,
4
- medium: 45em,
5
- large: 60em,
6
- );
7
- $breakpoint-classes: (small medium large);
8
- $grid-column-gutter: (
9
- small: 20px,
10
- medium: 30px,
11
- );
12
- $grid-column-2xgutter: (
13
- small: 40px,
14
- medium: 60px,
15
- );
16
- $grid-column-4xgutter: (
17
- small: 2 * 40px,
18
- medium: 2 * 60px,
19
- );
@@ -1,288 +0,0 @@
1
- // Foundation for Sites by ZURB
2
- // foundation.zurb.com
3
- // Licensed under MIT Open Source
4
-
5
- ////
6
- /// @group breakpoints
7
- ////
8
-
9
- // scss-lint:disable ZeroUnit
10
-
11
- /// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.
12
- /// @type Map
13
- $breakpoints: (
14
- small: 0,
15
- medium: 640px,
16
- large: 1024px,
17
- xlarge: 1200px,
18
- xxlarge: 1440px,
19
- ) !default;
20
-
21
- /// The largest named breakpoint in which to include print as a media type
22
- /// @type Keyword
23
- $print-breakpoint: large !default;
24
-
25
- $-zf-zero-breakpoint: small !default;
26
-
27
- $-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');
28
-
29
- @if nth(map-values($breakpoints), 1) != 0 {
30
- @error 'Your smallest breakpoint (defined in $breakpoints) must be set to "0".';
31
- }
32
- @else {
33
- $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);
34
- }
35
-
36
- /// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.
37
- /// @type List
38
- $breakpoint-classes: (small medium large) !default;
39
-
40
- /// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.
41
- ///
42
- /// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.
43
- @function breakpoint($val: $-zf-zero-breakpoint) {
44
- // Size or keyword
45
- $bp: nth($val, 1);
46
- // Value for max-width media queries
47
- $bp-max: 0;
48
- // Direction of media query (up, down, or only)
49
- $dir: if(length($val) > 1, nth($val, 2), up);
50
- // Eventual output
51
- $str: '';
52
- // Is it a named media query?
53
- $named: false;
54
-
55
- // Orientation media queries have a unique syntax
56
- @if $bp == 'landscape' or $bp == 'portrait' {
57
- @return '(orientation: #{$bp})';
58
- }
59
- @else if $bp == 'retina' {
60
- @return '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)';
61
- }
62
-
63
- // Try to pull a named breakpoint out of the $breakpoints map
64
- @if type-of($bp) == 'string' {
65
- @if map-has-key($breakpoints, $bp) {
66
- @if $dir == 'only' or $dir == 'down' {
67
- $bp-max: -zf-map-next($breakpoints, $bp);
68
- }
69
-
70
- $bp: map-get($breakpoints, $bp);
71
- $named: true;
72
- }
73
- @else {
74
- $bp: 0;
75
- @warn 'breakpoint(): "#{$val}" is not defined in your $breakpoints setting.';
76
- }
77
- }
78
-
79
- // Convert any pixel, rem, or unitless value to em
80
- $bp: -zf-bp-to-em($bp);
81
- @if $bp-max {
82
- $bp-max: -zf-bp-to-em($bp-max) - (1/16);
83
- }
84
-
85
- // Conditions to skip media query creation
86
- // - It's a named breakpoint that resolved to "0 down" or "0 up"
87
- // - It's a numeric breakpoint that resolved to "0 " + anything
88
- @if $bp > 0em or $dir == 'only' or $dir == 'down' {
89
- // `only` ranges use the format `(min-width: n) and (max-width: n)`
90
- @if $dir == 'only' {
91
- // Only named media queries can have an "only" range
92
- @if $named == true {
93
- // Only use "min-width" if the floor is greater than 0
94
- @if $bp > 0em {
95
- $str: $str + '(min-width: #{$bp})';
96
-
97
- // Only add "and" to the media query if there's a ceiling
98
- @if $bp-max != null {
99
- $str: $str + ' and ';
100
- }
101
- }
102
-
103
- // Only use "max-width" if there's a ceiling
104
- @if $bp-max != null {
105
- $str: $str + '(max-width: #{$bp-max})';
106
- }
107
- }
108
- @else {
109
- @warn 'breakpoint(): Only named media queries can have an `only` range.';
110
- }
111
- }
112
-
113
- // `down` ranges use the format `(max-width: n)`
114
- @else if $dir == 'down' {
115
- $max: if($named, $bp-max, $bp);
116
-
117
- // Skip media query creation if input value is exactly "0 down",
118
- // unless the function was called as "small down", in which case it's just "small only"
119
- @if $named or $bp > 0em {
120
- @if $max != null {
121
- $str: $str + '(max-width: #{$max})';
122
- }
123
- }
124
- }
125
-
126
- // `up` ranges use the format `(min-width: n)`
127
- @else if $bp > 0em {
128
- $str: $str + '(min-width: #{$bp})';
129
- }
130
- }
131
-
132
- @return $str;
133
- }
134
-
135
- /// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:
136
- /// - If a string is passed, the mixin will look for it in the `$breakpoints` map, and use a media query there.
137
- /// - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.
138
- /// - If a rem value is passed, the unit will be changed to em.
139
- /// - If an em value is passed, the value will be used as-is.
140
- ///
141
- /// @param {Keyword|Number} $value - Breakpoint name, or px, rem, or em value to process.
142
- ///
143
- /// @output If the breakpoint is "0px and larger", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.
144
- @mixin breakpoint($value) {
145
- $str: breakpoint($value);
146
- $bp: index($-zf-breakpoints-keys, $value);
147
- $pbp: index($-zf-breakpoints-keys, $print-breakpoint);
148
-
149
- // If $str is still an empty string, no media query is needed
150
- @if $str == '' {
151
- @content;
152
- }
153
-
154
- // Otherwise, wrap the content in a media query
155
- @else {
156
- // For named breakpoints less than or equal to $print-breakpoint, add print to the media types
157
- @if $bp != null and $bp <= $pbp {
158
- @media print, screen and #{$str} {
159
- @content;
160
- }
161
- }
162
- @else {
163
- @media screen and #{$str} {
164
- @content;
165
- }
166
- }
167
- }
168
- }
169
-
170
- /// Convers the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.
171
- /// @access private
172
- ///
173
- /// @param {Map} $map - Map to convert.
174
- ///
175
- /// @returns {String} A string containing the map's contents.
176
- @function -zf-bp-serialize($map) {
177
- $str: '';
178
- @each $key, $value in $map {
179
- $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';
180
- }
181
- $str: str-slice($str, 1, -2);
182
-
183
- @return $str;
184
- }
185
-
186
- /// Find the next key in a map.
187
- /// @access private
188
- ///
189
- /// @param {Map} $map - Map to traverse.
190
- /// @param {Mixed} $key - Key to use as a starting point.
191
- ///
192
- /// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.
193
- @function -zf-map-next($map, $key) {
194
-
195
- // Store the keys of the map as a list
196
- $values: map-keys($map);
197
-
198
- $i: 0;
199
-
200
- // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map
201
- @if (map-has-key($map, $key)) {
202
- $i: index($values, $key) + 1;
203
- }
204
-
205
- // If the key doesn't exist, or it's the last key in the map, return null
206
- @if ($i > length($map) or $i == 0) {
207
- @return null;
208
- }
209
- // Otherwise, return the value
210
- @else {
211
- @return map-get($map, nth($values, $i));
212
- }
213
-
214
- }
215
-
216
- /// Get a value for a breakpoint from a responsive config map. If the config map has the key `$value`, the exact breakpoint value is returned. If the config map does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.
217
- /// @access private
218
- ///
219
- /// @param {Map} $map - Input config map.
220
- /// @param {Keyword} $value - Breakpoint name to use.
221
- ///
222
- /// @return {Mixed} The corresponding breakpoint value.
223
- @function -zf-get-bp-val($map, $value) {
224
- // Check if the breakpoint name exists globally
225
- @if not map-has-key($breakpoints, $value) {
226
- @return null;
227
- }
228
- // Check if the breakpoint name exists in the local config map
229
- @else if map-has-key($map, $value) {
230
- // If it does, just return the value
231
- @return map-get($map, $value);
232
- }
233
- // Otherwise, find the next lowest breakpoint and return that value
234
- @else {
235
- $anchor: null;
236
- $found: false;
237
-
238
- @each $key, $val in $breakpoints {
239
- @if not $found {
240
- @if map-has-key($map, $key) {
241
- $anchor: $key;
242
- }
243
- @if $key == $value {
244
- $found: true;
245
- }
246
- }
247
- }
248
-
249
- @return map-get($map, $anchor);
250
- }
251
- }
252
-
253
- // Legacy breakpoint variables
254
- // These will be removed in 6.3
255
- $small-up: null;
256
- $small-only: null;
257
- $medium-up: null;
258
- $medium-only: null;
259
- $large-up: null;
260
- $large-only: null;
261
- $xlarge-up: null;
262
- $xlarge-only: null;
263
- $xxlarge-up: null;
264
- $xxlarge-only: null;
265
-
266
- @if map-has-key($breakpoints, small) {
267
- $small-up: screen;
268
- $small-only: unquote('screen and #{breakpoint(small only)}');
269
- }
270
-
271
- @if map-has-key($breakpoints, medium) {
272
- $medium-up: unquote('screen and #{breakpoint(medium)}');
273
- $medium-only: unquote('screen and #{breakpoint(medium only)}');
274
- }
275
-
276
- @if map-has-key($breakpoints, large) {
277
- $large-up: unquote('screen and #{breakpoint(large)}');
278
- $large-only: unquote('screen and #{breakpoint(large only)}');
279
- }
280
-
281
- @if map-has-key($breakpoints, xlarge) {
282
- $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');
283
- $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');
284
- }
285
-
286
- @if map-has-key($breakpoints, xxlarge) {
287
- $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');
288
- }