occams 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.codeclimate.yml +4 -0
- data/.gitattributes +2 -0
- data/.github/issue_template.md +22 -0
- data/.github/pull_request_template.md +6 -0
- data/.gitignore +21 -0
- data/.rubocop.yml +87 -0
- data/.travis.yml +44 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +35 -0
- data/Gemfile +30 -0
- data/LICENSE +20 -0
- data/LICENSE.comfy +20 -0
- data/README.md +121 -0
- data/Rakefile +5 -0
- data/app/assets/config/manifest.js +0 -0
- data/app/assets/fonts/occams/admin/cms/lib/redactor-font.eot +0 -0
- data/app/assets/javascripts/occams/admin/cms/application.js +39 -0
- data/app/assets/javascripts/occams/admin/cms/base.js +46 -0
- data/app/assets/javascripts/occams/admin/cms/categories.js +17 -0
- data/app/assets/javascripts/occams/admin/cms/codemirror.js +31 -0
- data/app/assets/javascripts/occams/admin/cms/custom.js +1 -0
- data/app/assets/javascripts/occams/admin/cms/diff.js +10 -0
- data/app/assets/javascripts/occams/admin/cms/file_link.js +67 -0
- data/app/assets/javascripts/occams/admin/cms/file_upload.js +194 -0
- data/app/assets/javascripts/occams/admin/cms/files_modal.js +40 -0
- data/app/assets/javascripts/occams/admin/cms/page_fragments.js +22 -0
- data/app/assets/javascripts/occams/admin/cms/slugify.js +34 -0
- data/app/assets/javascripts/occams/admin/cms/sortable_list.js +40 -0
- data/app/assets/javascripts/occams/admin/cms/timepicker.js +30 -0
- data/app/assets/javascripts/occams/admin/cms/wysiwyg.js +72 -0
- data/app/assets/javascripts/occams/vendor/Moxie.swf +0 -0
- data/app/assets/javascripts/occams/vendor/Moxie.xap +0 -0
- data/app/assets/javascripts/occams/vendor/bootstrap.bundle.min.js +7 -0
- data/app/assets/javascripts/occams/vendor/bootstrap.bundle.min.js.map +1 -0
- data/app/assets/javascripts/occams/vendor/codemirror/addon/edit/closetag.js +169 -0
- data/app/assets/javascripts/occams/vendor/codemirror/mode/css/css.js +832 -0
- data/app/assets/javascripts/occams/vendor/codemirror/mode/htmlmixed/htmlmixed.js +152 -0
- data/app/assets/javascripts/occams/vendor/codemirror/mode/javascript/javascript.js +875 -0
- data/app/assets/javascripts/occams/vendor/codemirror/mode/markdown/markdown.js +861 -0
- data/app/assets/javascripts/occams/vendor/codemirror/mode/xml/xml.js +394 -0
- data/app/assets/javascripts/occams/vendor/codemirror.js +9653 -0
- data/app/assets/javascripts/occams/vendor/diff/diff_match_patch.min.js +49 -0
- data/app/assets/javascripts/occams/vendor/diff/pretty_text_diff.js +76 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ar.js +52 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/bg.js +65 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/bn.js +65 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ca.js +83 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/cs.js +70 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/cy.js +92 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/da.js +71 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/de.js +70 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/default.js +80 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/eo.js +73 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/es.js +69 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/et.js +73 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/fa.js +68 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/fi.js +69 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/fr.js +75 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/gr.js +74 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/he.js +57 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/hi.js +65 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/hr.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/hu.js +72 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/id.js +61 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/it.js +70 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ja.js +57 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ko.js +60 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/lt.js +72 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/lv.js +67 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/mk.js +69 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/mn.js +67 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ms.js +68 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/my.js +69 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/nl.js +75 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/no.js +73 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/pa.js +65 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/pl.js +68 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/pt-BR.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/pt.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ro.js +69 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/ru.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/si.js +65 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/sk.js +70 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/sl.js +70 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/sq.js +65 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/sr.js +69 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/sv.js +70 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/th.js +72 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/tr.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/uk.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/vn.js +66 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/zh-CN.js +61 -0
- data/app/assets/javascripts/occams/vendor/flatpickr/i18n/zh-TW.js +61 -0
- data/app/assets/javascripts/occams/vendor/flatpickr.min.js +2 -0
- data/app/assets/javascripts/occams/vendor/fontawesome.js +5 -0
- data/app/assets/javascripts/occams/vendor/moxie.min.js +16 -0
- data/app/assets/javascripts/occams/vendor/plupload.dev.js +2497 -0
- data/app/assets/javascripts/occams/vendor/redactor/definedlinks.js +53 -0
- data/app/assets/javascripts/occams/vendor/redactor/filemanager.js +64 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ar.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/az.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ba.js +79 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/bg.js +77 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/by.js +77 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ca.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/cs.js +87 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/da.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/de.js +80 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/el.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/en.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/eo.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/es.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/es_AR.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/fa.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/fi.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/fr.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ge.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/gr.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/he.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/hr.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/hu.js +77 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/id.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/it.js +78 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ja.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/kn.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ko.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/lt.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/lv.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/mk.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/nb.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/nl.js +80 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/pl.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/pt-BR.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/pt.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ro.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ru.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/sk.js +76 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/sl.js +79 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/sq.js +79 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/sr-CIR.js +79 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/sr-LAT.js +79 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/sv.js +74 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/th.js +74 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/tr.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/ua.js +77 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/uk.js +77 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/vi.js +74 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/zh-CN.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/i18n/zh-TW.js +75 -0
- data/app/assets/javascripts/occams/vendor/redactor/imagemanager.js +57 -0
- data/app/assets/javascripts/occams/vendor/redactor/table.js +337 -0
- data/app/assets/javascripts/occams/vendor/redactor/video.js +77 -0
- data/app/assets/javascripts/occams/vendor/redactor.js +9561 -0
- data/app/assets/javascripts/occams/vendor/sortable.min.js +5 -0
- data/app/assets/stylesheets/occams/admin/cms/application.sass +11 -0
- data/app/assets/stylesheets/occams/admin/cms/base.sass +256 -0
- data/app/assets/stylesheets/occams/admin/cms/codemirror_overrides.sass +19 -0
- data/app/assets/stylesheets/occams/admin/cms/custom.sass +1 -0
- data/app/assets/stylesheets/occams/admin/cms/redactor_overrides.sass +22 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_alert.scss +51 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_badge.scss +54 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_breadcrumb.scss +41 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_button-group.scss +163 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_buttons.scss +137 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_card.scss +289 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_carousel.scss +197 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_close.scss +41 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_code.scss +48 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_custom-forms.scss +507 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_dropdown.scss +191 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_forms.scss +330 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_functions.scss +86 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_grid.scss +52 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_images.scss +42 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_input-group.scss +193 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_jumbotron.scss +17 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_list-group.scss +149 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_media.scss +8 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_mixins.scss +47 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_modal.scss +229 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_nav.scss +120 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_navbar.scss +294 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_pagination.scss +73 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_popover.scss +171 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_print.scss +141 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_progress.scss +43 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_reboot.scss +483 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_root.scss +19 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_spinners.scss +55 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_tables.scss +185 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_toasts.scss +44 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_tooltip.scss +115 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_transitions.scss +20 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_type.scss +125 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_utilities.scss +17 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/_variables.scss +1123 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/bootstrap-grid.scss +29 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/bootstrap-reboot.scss +12 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/bootstrap.scss +44 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_alert.scss +13 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_background-variant.scss +21 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_badge.scss +17 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_border-radius.scss +63 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_box-shadow.scss +20 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_breakpoints.scss +123 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_buttons.scss +107 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_caret.scss +62 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_clearfix.scss +7 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_deprecate.scss +10 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_float.scss +14 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_forms.scss +192 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_gradients.scss +45 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_grid-framework.scss +66 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_grid.scss +51 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_hover.scss +37 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_image.scss +36 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_list-group.scss +21 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_lists.scss +7 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_pagination.scss +22 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_reset-text.scss +17 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_screen-reader.scss +33 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_size.scss +7 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_table-row.scss +39 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_text-emphasis.scss +16 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_text-hide.scss +11 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_text-truncate.scss +8 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_transition.scss +16 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/mixins/_visibility.scss +8 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_align.scss +8 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_background.scss +19 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_borders.scss +75 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_clearfix.scss +3 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_display.scss +26 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_embed.scss +39 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_flex.scss +51 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_float.scss +11 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_overflow.scss +5 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_position.scss +32 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_screenreaders.scss +11 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_shadows.scss +6 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_sizing.scss +20 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_spacing.scss +73 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_stretched-link.scss +19 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_text.scss +72 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/utilities/_visibility.scss +13 -0
- data/app/assets/stylesheets/occams/vendor/bootstrap/vendor/_rfs.scss +204 -0
- data/app/assets/stylesheets/occams/vendor/codemirror.css +346 -0
- data/app/assets/stylesheets/occams/vendor/flatpickr.min.css +13 -0
- data/app/assets/stylesheets/occams/vendor/fontawesome.css +343 -0
- data/app/assets/stylesheets/occams/vendor/redactor.css +948 -0
- data/app/controllers/application_controller.rb +7 -0
- data/app/controllers/concerns/occams/paginate.rb +16 -0
- data/app/controllers/concerns/occams/reorder_action.rb +19 -0
- data/app/controllers/occams/admin/base_controller.rb +22 -0
- data/app/controllers/occams/admin/cms/base_controller.rb +55 -0
- data/app/controllers/occams/admin/cms/categories_controller.rb +40 -0
- data/app/controllers/occams/admin/cms/files_controller.rb +142 -0
- data/app/controllers/occams/admin/cms/layouts_controller.rb +69 -0
- data/app/controllers/occams/admin/cms/pages_controller.rb +156 -0
- data/app/controllers/occams/admin/cms/revisions/base_controller.rb +50 -0
- data/app/controllers/occams/admin/cms/revisions/layout_controller.rb +18 -0
- data/app/controllers/occams/admin/cms/revisions/page_controller.rb +30 -0
- data/app/controllers/occams/admin/cms/revisions/snippet_controller.rb +18 -0
- data/app/controllers/occams/admin/cms/revisions/translation_controller.rb +31 -0
- data/app/controllers/occams/admin/cms/sites_controller.rb +69 -0
- data/app/controllers/occams/admin/cms/snippets_controller.rb +66 -0
- data/app/controllers/occams/admin/cms/translations_controller.rb +107 -0
- data/app/controllers/occams/cms/assets_controller.rb +40 -0
- data/app/controllers/occams/cms/base_controller.rb +33 -0
- data/app/controllers/occams/cms/content_controller.rb +87 -0
- data/app/helpers/occams/admin/cms_helper.rb +49 -0
- data/app/helpers/occams/cms_helper.rb +73 -0
- data/app/models/concerns/occams/cms/with_categories.rb +53 -0
- data/app/models/concerns/occams/cms/with_fragments.rb +125 -0
- data/app/models/occams/cms/categorization.rb +16 -0
- data/app/models/occams/cms/category.rb +24 -0
- data/app/models/occams/cms/file.rb +70 -0
- data/app/models/occams/cms/fragment.rb +63 -0
- data/app/models/occams/cms/layout.rb +113 -0
- data/app/models/occams/cms/page.rb +170 -0
- data/app/models/occams/cms/revision.rb +12 -0
- data/app/models/occams/cms/site.rb +94 -0
- data/app/models/occams/cms/snippet.rb +45 -0
- data/app/models/occams/cms/translation.rb +43 -0
- data/app/views/kaminari/occams/_first_page.html.haml +3 -0
- data/app/views/kaminari/occams/_gap.html.haml +2 -0
- data/app/views/kaminari/occams/_last_page.html.haml +3 -0
- data/app/views/kaminari/occams/_next_page.html.haml +2 -0
- data/app/views/kaminari/occams/_page.html.haml +2 -0
- data/app/views/kaminari/occams/_paginator.html.haml +11 -0
- data/app/views/kaminari/occams/_prev_page.html.haml +2 -0
- data/app/views/layouts/occams/admin/cms/_body.html.haml +14 -0
- data/app/views/layouts/occams/admin/cms/_flash.html.haml +4 -0
- data/app/views/layouts/occams/admin/cms/_footer_js.html.haml +6 -0
- data/app/views/layouts/occams/admin/cms/_head.html.haml +19 -0
- data/app/views/layouts/occams/admin/cms/_left.html.haml +39 -0
- data/app/views/layouts/occams/admin/cms/_right.html.haml +5 -0
- data/app/views/layouts/occams/admin/cms.html.haml +4 -0
- data/app/views/occams/admin/cms/categories/_categories.html.haml +4 -0
- data/app/views/occams/admin/cms/categories/_edit.html.haml +7 -0
- data/app/views/occams/admin/cms/categories/_form.html.haml +5 -0
- data/app/views/occams/admin/cms/categories/_index.html.haml +28 -0
- data/app/views/occams/admin/cms/categories/_show.html.haml +15 -0
- data/app/views/occams/admin/cms/categories/create.js.erb +7 -0
- data/app/views/occams/admin/cms/categories/destroy.js.erb +8 -0
- data/app/views/occams/admin/cms/categories/edit.js.erb +3 -0
- data/app/views/occams/admin/cms/categories/update.js.erb +6 -0
- data/app/views/occams/admin/cms/files/_file.html.haml +31 -0
- data/app/views/occams/admin/cms/files/_form.html.haml +26 -0
- data/app/views/occams/admin/cms/files/_modal.html.haml +3 -0
- data/app/views/occams/admin/cms/files/destroy.js.erb +4 -0
- data/app/views/occams/admin/cms/files/edit.html.haml +5 -0
- data/app/views/occams/admin/cms/files/index.html.haml +31 -0
- data/app/views/occams/admin/cms/files/new.html.haml +5 -0
- data/app/views/occams/admin/cms/fragments/_form_fragment_attachments.html.haml +23 -0
- data/app/views/occams/admin/cms/fragments/_form_fragments.html.haml +38 -0
- data/app/views/occams/admin/cms/layouts/_form.html.haml +20 -0
- data/app/views/occams/admin/cms/layouts/_index_branch.html.haml +26 -0
- data/app/views/occams/admin/cms/layouts/edit.html.haml +9 -0
- data/app/views/occams/admin/cms/layouts/index.html.haml +10 -0
- data/app/views/occams/admin/cms/layouts/new.html.haml +5 -0
- data/app/views/occams/admin/cms/pages/_form.html.haml +31 -0
- data/app/views/occams/admin/cms/pages/_index_branch.html.haml +44 -0
- data/app/views/occams/admin/cms/pages/edit.html.haml +10 -0
- data/app/views/occams/admin/cms/pages/index.html.haml +13 -0
- data/app/views/occams/admin/cms/pages/new.html.haml +5 -0
- data/app/views/occams/admin/cms/pages/toggle_branch.js.erb +13 -0
- data/app/views/occams/admin/cms/revisions/_sidebar.html.haml +2 -0
- data/app/views/occams/admin/cms/revisions/show.html.haml +36 -0
- data/app/views/occams/admin/cms/sites/_form.html.haml +15 -0
- data/app/views/occams/admin/cms/sites/edit.html.haml +5 -0
- data/app/views/occams/admin/cms/sites/index.html.haml +28 -0
- data/app/views/occams/admin/cms/sites/new.html.haml +5 -0
- data/app/views/occams/admin/cms/snippets/_form.html.haml +18 -0
- data/app/views/occams/admin/cms/snippets/edit.html.haml +9 -0
- data/app/views/occams/admin/cms/snippets/index.html.haml +33 -0
- data/app/views/occams/admin/cms/snippets/new.html.haml +5 -0
- data/app/views/occams/admin/cms/translations/_form.html.haml +20 -0
- data/app/views/occams/admin/cms/translations/_sidebar.html.haml +19 -0
- data/app/views/occams/admin/cms/translations/edit.html.haml +10 -0
- data/app/views/occams/admin/cms/translations/new.html.haml +5 -0
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/setup +36 -0
- data/bin/update +31 -0
- data/bin/yarn +11 -0
- data/config/application.rb +39 -0
- data/config/boot.rb +7 -0
- data/config/cms_routes.rb +8 -0
- data/config/database.yml +11 -0
- data/config/environment.rb +7 -0
- data/config/environments/development.rb +59 -0
- data/config/environments/test.rb +50 -0
- data/config/initializers/occams.rb +122 -0
- data/config/locales/ar.yml +262 -0
- data/config/locales/ca.yml +262 -0
- data/config/locales/cs.yml +262 -0
- data/config/locales/da.yml +262 -0
- data/config/locales/de.yml +262 -0
- data/config/locales/en.yml +262 -0
- data/config/locales/es.yml +262 -0
- data/config/locales/fi.yml +262 -0
- data/config/locales/fr.yml +262 -0
- data/config/locales/gr.yml +262 -0
- data/config/locales/hr.yml +262 -0
- data/config/locales/it.yml +262 -0
- data/config/locales/ja.yml +262 -0
- data/config/locales/nb.yml +262 -0
- data/config/locales/nl.yml +262 -0
- data/config/locales/pl.yml +262 -0
- data/config/locales/pt-BR.yml +262 -0
- data/config/locales/ru.yml +262 -0
- data/config/locales/sk.yml +262 -0
- data/config/locales/sv.yml +262 -0
- data/config/locales/tr.yml +262 -0
- data/config/locales/uk.yml +262 -0
- data/config/locales/zh-CN.yml +262 -0
- data/config/locales/zh-TW.yml +262 -0
- data/config/storage.yml +35 -0
- data/config.ru +6 -0
- data/db/cms_seeds/sample-site/files/_default.jpg.yml +5 -0
- data/db/cms_seeds/sample-site/files/default.jpg +0 -0
- data/db/cms_seeds/sample-site/layouts/default/content.html +16 -0
- data/db/cms_seeds/sample-site/layouts/default/nested/content.html +14 -0
- data/db/cms_seeds/sample-site/pages/index/child_a/content.html +7 -0
- data/db/cms_seeds/sample-site/pages/index/child_b/content.html +6 -0
- data/db/cms_seeds/sample-site/pages/index/cms logo.png +0 -0
- data/db/cms_seeds/sample-site/pages/index/content.es.html +6 -0
- data/db/cms_seeds/sample-site/pages/index/content.fr.html +6 -0
- data/db/cms_seeds/sample-site/pages/index/content.html +25 -0
- data/db/cms_seeds/sample-site/pages/index/footer.png +0 -0
- data/db/cms_seeds/sample-site/pages/index/header.png +0 -0
- data/db/cms_seeds/sample-site/snippets/default.html +8 -0
- data/db/migrate/00_create_active_storage_tables.rb +34 -0
- data/db/migrate/01_create_cms.rb +143 -0
- data/lib/generators/occams/cms/README +17 -0
- data/lib/generators/occams/cms/assets_generator.rb +18 -0
- data/lib/generators/occams/cms/cms_generator.rb +69 -0
- data/lib/generators/occams/cms/controllers_generator.rb +17 -0
- data/lib/generators/occams/cms/models_generator.rb +17 -0
- data/lib/generators/occams/cms/views_generator.rb +17 -0
- data/lib/generators/occams/scaffold/scaffold_generator.rb +80 -0
- data/lib/generators/occams/scaffold/templates/controller.rb.tt +62 -0
- data/lib/generators/occams/scaffold/templates/migration.rb.tt +11 -0
- data/lib/generators/occams/scaffold/templates/model.rb.tt +21 -0
- data/lib/generators/occams/scaffold/templates/tests/controller.rb.tt +115 -0
- data/lib/generators/occams/scaffold/templates/tests/fixture.yml.tt +4 -0
- data/lib/generators/occams/scaffold/templates/tests/model.rb.tt +26 -0
- data/lib/generators/occams/scaffold/templates/views/_form.haml.tt +7 -0
- data/lib/generators/occams/scaffold/templates/views/edit.haml.tt +5 -0
- data/lib/generators/occams/scaffold/templates/views/index.haml.tt +21 -0
- data/lib/generators/occams/scaffold/templates/views/new.haml.tt +5 -0
- data/lib/generators/occams/scaffold/templates/views/show.haml.tt +4 -0
- data/lib/occams/access_control/admin_authentication.rb +24 -0
- data/lib/occams/access_control/admin_authorization.rb +12 -0
- data/lib/occams/access_control/public_authentication.rb +12 -0
- data/lib/occams/access_control/public_authorization.rb +12 -0
- data/lib/occams/configuration.rb +140 -0
- data/lib/occams/content/block.rb +14 -0
- data/lib/occams/content/params_parser.rb +151 -0
- data/lib/occams/content/renderer.rb +149 -0
- data/lib/occams/content/tag.rb +50 -0
- data/lib/occams/content/tags/asset.rb +59 -0
- data/lib/occams/content/tags/checkbox.rb +29 -0
- data/lib/occams/content/tags/date.rb +21 -0
- data/lib/occams/content/tags/datetime.rb +44 -0
- data/lib/occams/content/tags/file.rb +72 -0
- data/lib/occams/content/tags/file_link.rb +63 -0
- data/lib/occams/content/tags/files.rb +43 -0
- data/lib/occams/content/tags/fragment.rb +66 -0
- data/lib/occams/content/tags/helper.rb +55 -0
- data/lib/occams/content/tags/markdown.rb +24 -0
- data/lib/occams/content/tags/mixins/file_content.rb +43 -0
- data/lib/occams/content/tags/number.rb +20 -0
- data/lib/occams/content/tags/page_file_link.rb +84 -0
- data/lib/occams/content/tags/partial.rb +49 -0
- data/lib/occams/content/tags/snippet.rb +38 -0
- data/lib/occams/content/tags/template.rb +44 -0
- data/lib/occams/content/tags/text.rb +20 -0
- data/lib/occams/content/tags/textarea.rb +20 -0
- data/lib/occams/content/tags/wysiwyg.rb +21 -0
- data/lib/occams/content.rb +31 -0
- data/lib/occams/engine.rb +31 -0
- data/lib/occams/error.rb +32 -0
- data/lib/occams/extensions/acts_as_tree.rb +120 -0
- data/lib/occams/extensions/has_revisions.rb +72 -0
- data/lib/occams/form_builder.rb +47 -0
- data/lib/occams/render_methods.rb +112 -0
- data/lib/occams/routes/cms.rb +18 -0
- data/lib/occams/routes/cms_admin.rb +58 -0
- data/lib/occams/routing.rb +12 -0
- data/lib/occams/seeds/file/exporter.rb +43 -0
- data/lib/occams/seeds/file/importer.rb +63 -0
- data/lib/occams/seeds/layout/exporter.rb +40 -0
- data/lib/occams/seeds/layout/importer.rb +62 -0
- data/lib/occams/seeds/page/exporter.rb +92 -0
- data/lib/occams/seeds/page/importer.rb +219 -0
- data/lib/occams/seeds/snippet/exporter.rb +34 -0
- data/lib/occams/seeds/snippet/importer.rb +51 -0
- data/lib/occams/seeds.rb +118 -0
- data/lib/occams/version.rb +7 -0
- data/lib/occams/view_hooks.rb +35 -0
- data/lib/occams.rb +60 -0
- data/lib/tasks/cms_seeds.rake +40 -0
- data/occams.gemspec +33 -0
- data/public/favicon.ico +0 -0
- metadata +666 -0
@@ -0,0 +1,185 @@
|
|
1
|
+
//
|
2
|
+
// Basic Bootstrap table
|
3
|
+
//
|
4
|
+
|
5
|
+
.table {
|
6
|
+
width: 100%;
|
7
|
+
margin-bottom: $spacer;
|
8
|
+
color: $table-color;
|
9
|
+
background-color: $table-bg; // Reset for nesting within parents with `background-color`.
|
10
|
+
|
11
|
+
th,
|
12
|
+
td {
|
13
|
+
padding: $table-cell-padding;
|
14
|
+
vertical-align: top;
|
15
|
+
border-top: $table-border-width solid $table-border-color;
|
16
|
+
}
|
17
|
+
|
18
|
+
thead th {
|
19
|
+
vertical-align: bottom;
|
20
|
+
border-bottom: (2 * $table-border-width) solid $table-border-color;
|
21
|
+
}
|
22
|
+
|
23
|
+
tbody + tbody {
|
24
|
+
border-top: (2 * $table-border-width) solid $table-border-color;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
//
|
30
|
+
// Condensed table w/ half padding
|
31
|
+
//
|
32
|
+
|
33
|
+
.table-sm {
|
34
|
+
th,
|
35
|
+
td {
|
36
|
+
padding: $table-cell-padding-sm;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
// Border versions
|
42
|
+
//
|
43
|
+
// Add or remove borders all around the table and between all the columns.
|
44
|
+
|
45
|
+
.table-bordered {
|
46
|
+
border: $table-border-width solid $table-border-color;
|
47
|
+
|
48
|
+
th,
|
49
|
+
td {
|
50
|
+
border: $table-border-width solid $table-border-color;
|
51
|
+
}
|
52
|
+
|
53
|
+
thead {
|
54
|
+
th,
|
55
|
+
td {
|
56
|
+
border-bottom-width: 2 * $table-border-width;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
.table-borderless {
|
62
|
+
th,
|
63
|
+
td,
|
64
|
+
thead th,
|
65
|
+
tbody + tbody {
|
66
|
+
border: 0;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
// Zebra-striping
|
71
|
+
//
|
72
|
+
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
|
73
|
+
|
74
|
+
.table-striped {
|
75
|
+
tbody tr:nth-of-type(#{$table-striped-order}) {
|
76
|
+
background-color: $table-accent-bg;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
// Hover effect
|
82
|
+
//
|
83
|
+
// Placed here since it has to come after the potential zebra striping
|
84
|
+
|
85
|
+
.table-hover {
|
86
|
+
tbody tr {
|
87
|
+
@include hover {
|
88
|
+
color: $table-hover-color;
|
89
|
+
background-color: $table-hover-bg;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
// Table backgrounds
|
96
|
+
//
|
97
|
+
// Exact selectors below required to override `.table-striped` and prevent
|
98
|
+
// inheritance to nested tables.
|
99
|
+
|
100
|
+
@each $color, $value in $theme-colors {
|
101
|
+
@include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));
|
102
|
+
}
|
103
|
+
|
104
|
+
@include table-row-variant(active, $table-active-bg);
|
105
|
+
|
106
|
+
|
107
|
+
// Dark styles
|
108
|
+
//
|
109
|
+
// Same table markup, but inverted color scheme: dark background and light text.
|
110
|
+
|
111
|
+
// stylelint-disable-next-line no-duplicate-selectors
|
112
|
+
.table {
|
113
|
+
.thead-dark {
|
114
|
+
th {
|
115
|
+
color: $table-dark-color;
|
116
|
+
background-color: $table-dark-bg;
|
117
|
+
border-color: $table-dark-border-color;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
.thead-light {
|
122
|
+
th {
|
123
|
+
color: $table-head-color;
|
124
|
+
background-color: $table-head-bg;
|
125
|
+
border-color: $table-border-color;
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
.table-dark {
|
131
|
+
color: $table-dark-color;
|
132
|
+
background-color: $table-dark-bg;
|
133
|
+
|
134
|
+
th,
|
135
|
+
td,
|
136
|
+
thead th {
|
137
|
+
border-color: $table-dark-border-color;
|
138
|
+
}
|
139
|
+
|
140
|
+
&.table-bordered {
|
141
|
+
border: 0;
|
142
|
+
}
|
143
|
+
|
144
|
+
&.table-striped {
|
145
|
+
tbody tr:nth-of-type(odd) {
|
146
|
+
background-color: $table-dark-accent-bg;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
&.table-hover {
|
151
|
+
tbody tr {
|
152
|
+
@include hover {
|
153
|
+
color: $table-dark-hover-color;
|
154
|
+
background-color: $table-dark-hover-bg;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
|
161
|
+
// Responsive tables
|
162
|
+
//
|
163
|
+
// Generate series of `.table-responsive-*` classes for configuring the screen
|
164
|
+
// size of where your table will overflow.
|
165
|
+
|
166
|
+
.table-responsive {
|
167
|
+
@each $breakpoint in map-keys($grid-breakpoints) {
|
168
|
+
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
169
|
+
$infix: breakpoint-infix($next, $grid-breakpoints);
|
170
|
+
|
171
|
+
&#{$infix} {
|
172
|
+
@include media-breakpoint-down($breakpoint) {
|
173
|
+
display: block;
|
174
|
+
width: 100%;
|
175
|
+
overflow-x: auto;
|
176
|
+
-webkit-overflow-scrolling: touch;
|
177
|
+
|
178
|
+
// Prevent double border on horizontal scroll due to use of `display: block;`
|
179
|
+
> .table-bordered {
|
180
|
+
border: 0;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
.toast {
|
2
|
+
max-width: $toast-max-width;
|
3
|
+
overflow: hidden; // cheap rounded corners on nested items
|
4
|
+
@include font-size($toast-font-size);
|
5
|
+
color: $toast-color;
|
6
|
+
background-color: $toast-background-color;
|
7
|
+
background-clip: padding-box;
|
8
|
+
border: $toast-border-width solid $toast-border-color;
|
9
|
+
box-shadow: $toast-box-shadow;
|
10
|
+
backdrop-filter: blur(10px);
|
11
|
+
opacity: 0;
|
12
|
+
@include border-radius($toast-border-radius);
|
13
|
+
|
14
|
+
&:not(:last-child) {
|
15
|
+
margin-bottom: $toast-padding-x;
|
16
|
+
}
|
17
|
+
|
18
|
+
&.showing {
|
19
|
+
opacity: 1;
|
20
|
+
}
|
21
|
+
|
22
|
+
&.show {
|
23
|
+
display: block;
|
24
|
+
opacity: 1;
|
25
|
+
}
|
26
|
+
|
27
|
+
&.hide {
|
28
|
+
display: none;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
.toast-header {
|
33
|
+
display: flex;
|
34
|
+
align-items: center;
|
35
|
+
padding: $toast-padding-y $toast-padding-x;
|
36
|
+
color: $toast-header-color;
|
37
|
+
background-color: $toast-header-background-color;
|
38
|
+
background-clip: padding-box;
|
39
|
+
border-bottom: $toast-border-width solid $toast-header-border-color;
|
40
|
+
}
|
41
|
+
|
42
|
+
.toast-body {
|
43
|
+
padding: $toast-padding-x; // apply to both vertical and horizontal
|
44
|
+
}
|
@@ -0,0 +1,115 @@
|
|
1
|
+
// Base class
|
2
|
+
.tooltip {
|
3
|
+
position: absolute;
|
4
|
+
z-index: $zindex-tooltip;
|
5
|
+
display: block;
|
6
|
+
margin: $tooltip-margin;
|
7
|
+
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
|
8
|
+
// So reset our font and text properties to avoid inheriting weird values.
|
9
|
+
@include reset-text();
|
10
|
+
@include font-size($tooltip-font-size);
|
11
|
+
// Allow breaking very long words so they don't overflow the tooltip's bounds
|
12
|
+
word-wrap: break-word;
|
13
|
+
opacity: 0;
|
14
|
+
|
15
|
+
&.show { opacity: $tooltip-opacity; }
|
16
|
+
|
17
|
+
.arrow {
|
18
|
+
position: absolute;
|
19
|
+
display: block;
|
20
|
+
width: $tooltip-arrow-width;
|
21
|
+
height: $tooltip-arrow-height;
|
22
|
+
|
23
|
+
&::before {
|
24
|
+
position: absolute;
|
25
|
+
content: "";
|
26
|
+
border-color: transparent;
|
27
|
+
border-style: solid;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
.bs-tooltip-top {
|
33
|
+
padding: $tooltip-arrow-height 0;
|
34
|
+
|
35
|
+
.arrow {
|
36
|
+
bottom: 0;
|
37
|
+
|
38
|
+
&::before {
|
39
|
+
top: 0;
|
40
|
+
border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
|
41
|
+
border-top-color: $tooltip-arrow-color;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
.bs-tooltip-right {
|
47
|
+
padding: 0 $tooltip-arrow-height;
|
48
|
+
|
49
|
+
.arrow {
|
50
|
+
left: 0;
|
51
|
+
width: $tooltip-arrow-height;
|
52
|
+
height: $tooltip-arrow-width;
|
53
|
+
|
54
|
+
&::before {
|
55
|
+
right: 0;
|
56
|
+
border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
|
57
|
+
border-right-color: $tooltip-arrow-color;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
.bs-tooltip-bottom {
|
63
|
+
padding: $tooltip-arrow-height 0;
|
64
|
+
|
65
|
+
.arrow {
|
66
|
+
top: 0;
|
67
|
+
|
68
|
+
&::before {
|
69
|
+
bottom: 0;
|
70
|
+
border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
|
71
|
+
border-bottom-color: $tooltip-arrow-color;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
.bs-tooltip-left {
|
77
|
+
padding: 0 $tooltip-arrow-height;
|
78
|
+
|
79
|
+
.arrow {
|
80
|
+
right: 0;
|
81
|
+
width: $tooltip-arrow-height;
|
82
|
+
height: $tooltip-arrow-width;
|
83
|
+
|
84
|
+
&::before {
|
85
|
+
left: 0;
|
86
|
+
border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
|
87
|
+
border-left-color: $tooltip-arrow-color;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
.bs-tooltip-auto {
|
93
|
+
&[x-placement^="top"] {
|
94
|
+
@extend .bs-tooltip-top;
|
95
|
+
}
|
96
|
+
&[x-placement^="right"] {
|
97
|
+
@extend .bs-tooltip-right;
|
98
|
+
}
|
99
|
+
&[x-placement^="bottom"] {
|
100
|
+
@extend .bs-tooltip-bottom;
|
101
|
+
}
|
102
|
+
&[x-placement^="left"] {
|
103
|
+
@extend .bs-tooltip-left;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
// Wrapper for the tooltip content
|
108
|
+
.tooltip-inner {
|
109
|
+
max-width: $tooltip-max-width;
|
110
|
+
padding: $tooltip-padding-y $tooltip-padding-x;
|
111
|
+
color: $tooltip-color;
|
112
|
+
text-align: center;
|
113
|
+
background-color: $tooltip-bg;
|
114
|
+
@include border-radius($tooltip-border-radius);
|
115
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
.fade {
|
2
|
+
@include transition($transition-fade);
|
3
|
+
|
4
|
+
&:not(.show) {
|
5
|
+
opacity: 0;
|
6
|
+
}
|
7
|
+
}
|
8
|
+
|
9
|
+
.collapse {
|
10
|
+
&:not(.show) {
|
11
|
+
display: none;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
.collapsing {
|
16
|
+
position: relative;
|
17
|
+
height: 0;
|
18
|
+
overflow: hidden;
|
19
|
+
@include transition($transition-collapse);
|
20
|
+
}
|
@@ -0,0 +1,125 @@
|
|
1
|
+
// stylelint-disable declaration-no-important, selector-list-comma-newline-after
|
2
|
+
|
3
|
+
//
|
4
|
+
// Headings
|
5
|
+
//
|
6
|
+
|
7
|
+
h1, h2, h3, h4, h5, h6,
|
8
|
+
.h1, .h2, .h3, .h4, .h5, .h6 {
|
9
|
+
margin-bottom: $headings-margin-bottom;
|
10
|
+
font-family: $headings-font-family;
|
11
|
+
font-weight: $headings-font-weight;
|
12
|
+
line-height: $headings-line-height;
|
13
|
+
color: $headings-color;
|
14
|
+
}
|
15
|
+
|
16
|
+
h1, .h1 { @include font-size($h1-font-size); }
|
17
|
+
h2, .h2 { @include font-size($h2-font-size); }
|
18
|
+
h3, .h3 { @include font-size($h3-font-size); }
|
19
|
+
h4, .h4 { @include font-size($h4-font-size); }
|
20
|
+
h5, .h5 { @include font-size($h5-font-size); }
|
21
|
+
h6, .h6 { @include font-size($h6-font-size); }
|
22
|
+
|
23
|
+
.lead {
|
24
|
+
@include font-size($lead-font-size);
|
25
|
+
font-weight: $lead-font-weight;
|
26
|
+
}
|
27
|
+
|
28
|
+
// Type display classes
|
29
|
+
.display-1 {
|
30
|
+
@include font-size($display1-size);
|
31
|
+
font-weight: $display1-weight;
|
32
|
+
line-height: $display-line-height;
|
33
|
+
}
|
34
|
+
.display-2 {
|
35
|
+
@include font-size($display2-size);
|
36
|
+
font-weight: $display2-weight;
|
37
|
+
line-height: $display-line-height;
|
38
|
+
}
|
39
|
+
.display-3 {
|
40
|
+
@include font-size($display3-size);
|
41
|
+
font-weight: $display3-weight;
|
42
|
+
line-height: $display-line-height;
|
43
|
+
}
|
44
|
+
.display-4 {
|
45
|
+
@include font-size($display4-size);
|
46
|
+
font-weight: $display4-weight;
|
47
|
+
line-height: $display-line-height;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
//
|
52
|
+
// Horizontal rules
|
53
|
+
//
|
54
|
+
|
55
|
+
hr {
|
56
|
+
margin-top: $hr-margin-y;
|
57
|
+
margin-bottom: $hr-margin-y;
|
58
|
+
border: 0;
|
59
|
+
border-top: $hr-border-width solid $hr-border-color;
|
60
|
+
}
|
61
|
+
|
62
|
+
|
63
|
+
//
|
64
|
+
// Emphasis
|
65
|
+
//
|
66
|
+
|
67
|
+
small,
|
68
|
+
.small {
|
69
|
+
@include font-size($small-font-size);
|
70
|
+
font-weight: $font-weight-normal;
|
71
|
+
}
|
72
|
+
|
73
|
+
mark,
|
74
|
+
.mark {
|
75
|
+
padding: $mark-padding;
|
76
|
+
background-color: $mark-bg;
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
//
|
81
|
+
// Lists
|
82
|
+
//
|
83
|
+
|
84
|
+
.list-unstyled {
|
85
|
+
@include list-unstyled;
|
86
|
+
}
|
87
|
+
|
88
|
+
// Inline turns list items into inline-block
|
89
|
+
.list-inline {
|
90
|
+
@include list-unstyled;
|
91
|
+
}
|
92
|
+
.list-inline-item {
|
93
|
+
display: inline-block;
|
94
|
+
|
95
|
+
&:not(:last-child) {
|
96
|
+
margin-right: $list-inline-padding;
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
//
|
102
|
+
// Misc
|
103
|
+
//
|
104
|
+
|
105
|
+
// Builds on `abbr`
|
106
|
+
.initialism {
|
107
|
+
@include font-size(90%);
|
108
|
+
text-transform: uppercase;
|
109
|
+
}
|
110
|
+
|
111
|
+
// Blockquotes
|
112
|
+
.blockquote {
|
113
|
+
margin-bottom: $spacer;
|
114
|
+
@include font-size($blockquote-font-size);
|
115
|
+
}
|
116
|
+
|
117
|
+
.blockquote-footer {
|
118
|
+
display: block;
|
119
|
+
@include font-size($blockquote-small-font-size);
|
120
|
+
color: $blockquote-small-color;
|
121
|
+
|
122
|
+
&::before {
|
123
|
+
content: "\2014\00A0"; // em dash, nbsp
|
124
|
+
}
|
125
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
@import "utilities/align";
|
2
|
+
@import "utilities/background";
|
3
|
+
@import "utilities/borders";
|
4
|
+
@import "utilities/clearfix";
|
5
|
+
@import "utilities/display";
|
6
|
+
@import "utilities/embed";
|
7
|
+
@import "utilities/flex";
|
8
|
+
@import "utilities/float";
|
9
|
+
@import "utilities/overflow";
|
10
|
+
@import "utilities/position";
|
11
|
+
@import "utilities/screenreaders";
|
12
|
+
@import "utilities/shadows";
|
13
|
+
@import "utilities/sizing";
|
14
|
+
@import "utilities/stretched-link";
|
15
|
+
@import "utilities/spacing";
|
16
|
+
@import "utilities/text";
|
17
|
+
@import "utilities/visibility";
|