feat: editor-code component

pull/621/head
NGPixel 7 years ago
parent 3471a7a6f9
commit 1a051f5569

@ -95,6 +95,7 @@ Vue.use(VeeValidate, {
// Register Vue Components // Register Vue Components
// ==================================== // ====================================
Vue.component('editor', () => import(/* webpackChunkName: "editor" */ './components/editor.vue'))
Vue.component('login', () => import(/* webpackMode: "eager" */ './components/login.vue')) Vue.component('login', () => import(/* webpackMode: "eager" */ './components/login.vue'))
Vue.component('navigator', () => import(/* webpackMode: "eager" */ './components/navigator.vue')) Vue.component('navigator', () => import(/* webpackMode: "eager" */ './components/navigator.vue'))
Vue.component('setup', () => import(/* webpackChunkName: "setup" */ './components/setup.vue')) Vue.component('setup', () => import(/* webpackChunkName: "setup" */ './components/setup.vue'))

@ -0,0 +1,231 @@
<template lang='pug'>
.editor-code
.editor-code-toolbar
.editor-code-toolbar-group
.editor-code-toolbar-item
svg.icons.is-18(role='img')
title Bold
use(xlink:href='#fa-bold')
.editor-code-toolbar-item
svg.icons.is-18(role='img')
title Italic
use(xlink:href='#fa-italic')
.editor-code-toolbar-item
svg.icons.is-18(role='img')
title Strikethrough
use(xlink:href='#fa-strikethrough')
.editor-code-toolbar-group
.editor-code-toolbar-item.is-dropdown
svg.icons.is-18(role='img')
title Heading
use(xlink:href='#fa-heading')
.editor-code-toolbar-group
.editor-code-toolbar-item
svg.icons.is-18(role='img')
title Unordered List
use(xlink:href='#fa-list-ul')
.editor-code-toolbar-item
svg.icons.is-18(role='img')
title Ordered List
use(xlink:href='#fa-list-ol')
.editor-code-toolbar-group
.editor-code-toolbar-item
svg.icons.is-18(role='img')
title Link
use(xlink:href='#fa-link')
.editor-code-main
.editor-code-editor
.editor-code-editor-title Editor
codemirror(ref='cm', v-model='code', :options='cmOptions', @ready="onCmReady")
.editor-code-preview
.editor-code-preview-title Preview
</template>
<script>
import { codemirror } from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
// Theme
import 'codemirror/theme/base16-dark.css'
// Language
import 'codemirror/mode/markdown/markdown.js'
// Addons
import 'codemirror/addon/selection/active-line.js'
import 'codemirror/addon/display/fullscreen.js'
import 'codemirror/addon/display/fullscreen.css'
import 'codemirror/addon/selection/mark-selection.js'
import 'codemirror/addon/scroll/annotatescrollbar.js'
import 'codemirror/addon/search/matchesonscrollbar.js'
import 'codemirror/addon/search/searchcursor.js'
import 'codemirror/addon/search/match-highlighter.js'
export default {
components: {
codemirror
},
data() {
return {
code: 'const a = 10',
cmOptions: {
tabSize: 2,
mode: 'text/markdown',
theme: 'base16-dark',
lineNumbers: false,
lineWrapping: true,
line: true,
styleActiveLine: true,
highlightSelectionMatches: {
annotateScrollbar: true
},
viewportMargin: 50,
extraKeys: {
'F11'(cm) {
cm.setOption('fullScreen', !cm.getOption('fullScreen'))
},
'Esc'(cm) {
if (cm.getOption('fullScreen')) cm.setOption('fullScreen', false)
}
}
}
}
},
computed: {
cm() {
return this.$refs.cm.codemirror
}
},
methods: {
onCmReady(cm) {
cm.setSize(null, 'calc(100vh - 50px)')
},
onCmFocus(cm) {
console.log('the editor is focus!', cm)
},
onCmCodeChange(newCode) {
console.log('this is new code', newCode)
this.code = newCode
}
}
}
</script>
<style lang='scss'>
.editor-code {
&-main {
display: flex;
width: 100%;
}
&-editor {
flex: 1 1 50%;
display: block;
min-height: calc(100vh - 50px);
position: relative;
&-title {
background-color: mc('grey', '800');
border-bottom-left-radius: 5px;
display: inline-flex;
height: 30px;
justify-content: center;
align-items: center;
padding: 0 1rem;
color: mc('grey', '500');
position: absolute;
top: 0;
right: 0;
z-index: 2;
text-transform: uppercase;
font-size: .7rem;
}
}
&-preview {
flex: 1 1 50%;
background-color: mc('grey', '100');
position: relative;
&-title {
background-color: mc('blue', '100');
border-bottom-right-radius: 5px;
display: inline-flex;
height: 30px;
justify-content: center;
align-items: center;
padding: 0 1rem;
color: mc('blue', '800');
position: absolute;
top: 0;
left: 0;
z-index: 2;
text-transform: uppercase;
font-size: .7rem;
}
}
&-toolbar {
background-color: mc('blue', '700');
background-image: linear-gradient(to bottom, mc('blue', '700') 0%, mc('blue','800') 100%);
height: 50px;
color: #FFF;
display: flex;
&-group {
display: flex;
+ .editor-code-toolbar-group {
border-left: 1px solid rgba(mc('blue', '900'), .75);
}
}
&-item {
width: 40px;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
transition: all .4s ease;
cursor: pointer;
&:first-child {
padding-left: .5rem;
}
&:last-child {
padding-right: .5rem;
}
&:hover {
background-color: mc('blue', '600');
}
}
svg {
use {
color: #FFF;
}
}
}
}
.CodeMirror {
height: auto;
}
.CodeMirror-focused .cm-matchhighlight {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);
background-position: bottom;
background-repeat: repeat-x;
}
.cm-matchhighlight {
background-color: mc('grey', '800');
}
.CodeMirror-selection-highlight-scrollbar {
background-color: mc('green', '600');
}
</style>

@ -0,0 +1,15 @@
<template lang="pug">
editor-code
</template>
<script>
export default {
components: {
editorCode: () => import(/* webpackChunkName: "editor" */ './editor-code.vue')
}
}
</script>
<style lang='scss'>
</style>

@ -1,39 +1,22 @@
@import "global"; @import "global";
@import 'base/icons';
@import "libs/animate"; @import "libs/animate";
@import 'components/alert';
@import 'components/button'; @import 'components/button';
@import 'components/collapsable-nav';
@import 'components/color-picker';
@import 'components/footer';
@import 'components/form';
@import 'components/grid';
@import 'components/hero';
@import 'components/history';
@import 'components/markdown-content';
@import 'components/modal';
@import 'components/nav';
@import 'components/navigator'; @import 'components/navigator';
@import 'components/panel'; @import 'components/panel';
@import 'components/search';
@import 'components/setup'; @import 'components/setup';
@import 'components/sidebar';
@import 'components/table';
@import 'components/toggle'; @import 'components/toggle';
@import 'components/typography'; @import 'components/typography';
@import 'libs/twemoji-awesome'; @import 'libs/twemoji-awesome';
@import 'node_modules/highlight.js/styles/atom-one-dark'; @import 'node_modules/highlight.js/styles/atom-one-dark';
@import 'node_modules/simplemde/dist/simplemde.min';
@import 'node_modules/diff2html/dist/diff2html.min'; @import 'node_modules/diff2html/dist/diff2html.min';
@import 'components/editor';
@import 'pages/welcome'; @import 'pages/welcome';
@import 'layout/_header';
@import 'layout/_loader';
@import 'layout/_rtl'; @import 'layout/_rtl';
@import 'base/print'; @import 'base/print';

File diff suppressed because it is too large Load Diff

@ -1,49 +0,0 @@
.alert {
background-color: #FFF;
border-right: 3px solid mc('grey', '500');
position: fixed;
top: 60px;
margin-left: 10px;
right: 10px;
max-width: 500px;
z-index: 1000;
display: flex;
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
animation-duration: .6s;
&-icon {
width: 50px;
height: 50px;
background-color: mc('grey', '500');
color: #FFF;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
}
&-msg {
padding: 0 15px;
display: flex;
align-items: center;
justify-content: flex-start;
border-top: 1px solid mc('grey', '200');
font-size: 14px;
font-weight: 500;
}
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
border-right-color: mc($color, '500');
.alert-icon {
background-color: mc($color, '500');
}
.alert-msg {
color: mc($color, '900');
}
}
}
}

@ -1,122 +0,0 @@
.has-collapsable-nav {
background-color: mc('blue-grey', '50');
display: flex;
justify-content: flex-start;
align-items: stretch;
}
.collapsable-nav {
width: 300px;
background-color: mc('blue-grey', '900');
color: #FFF;
min-height: 80vh;
transition: all .6s ease;
border-left: 1px solid darken(mc('blue-grey', '900'), 5%);
&:last-child {
border-bottom-right-radius: 5px;
}
&.has-children {
width: 50px;
background-color: mc($primary, '500');
border-left: 1px solid mc($primary, '700');
&:nth-child(2) {
border-left: 1px solid darken(mc('blue-grey', '900'), 5%);
}
li {
border-top: none;
display: none;
}
}
li {
display: flex;
border-top: 1px solid darken(mc('blue-grey', '900'), 5%);
&.is-title {
background-color: mc('blue-grey', '800');
padding: 8px 15px;
color: mc('blue-grey', '300');
font-size: 13px;
letter-spacing: 1px;
text-transform: uppercase;
box-shadow: 0 0 5px rgba(0,0,0,0.3);
margin-right:1px;
}
&.is-active {
display: flex;
height: 50px;
width: 300px;
min-width: 80vh;
@include prefix(transform, rotate(90deg) translate(0, -50px));
transform-origin: 0 0;
a {
height: 50px;
&:nth-child(2) {
display: none;
}
}
}
}
a {
display: flex;
flex: 1 1 auto;
min-height: 40px;
width: 100%;
align-items: center;
padding: 0 15px;
color: #FFF;
cursor: pointer;
transition: all .4s ease;
background-color: rgba(0,0,0,0);
&.is-pagelink {
flex: 0 1 70px;
justify-content: center;
}
&:hover {
background-color: rgba(0,0,0,.1);
text-decoration: none;
}
i {
font-size: 14px;
&:first-of-type {
margin-right: 10px;
}
}
span {
display: block;
padding: 5px 0;
}
}
}
/* THEME OVERRIDE - START */
@each $color, $colorvalue in $material-colors {
.is-primary-#{$color} .collapsable-nav {
&.has-children {
background-color: mc($color, '500');
border-left-color: mc($color, '700');
}
}
}
/* THEME OVERRIDE - END */

@ -1,54 +0,0 @@
.colorpicker {
display: flex;
align-items: center;
height: 60px;
&-choice {
width: 40px;
height: 40px;
border: 0 solid #FFF;
transition: all .2s ease;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
margin-right: 1px;
&:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
&:last-child {
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
&.is-active, &:hover {
border-width: 5px;
border-radius: 5px;
width: 55px;
height: 55px;
}
&.is-active::before {
content: '|';
font-weight: 700;
color: rgba(255,255,255,.5);
margin-bottom: 3px;
}
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '500');
background-image: linear-gradient(45deg, mc($color, '400'), mc($color, '700'));
border-color: mc($color,'500');
&.is-active, &:hover {
border-color: mc($color,'300');
}
}
}
}
}

@ -1,390 +0,0 @@
.editor-toolbar {
z-index: 2;
background: linear-gradient(to bottom, mc('blue-grey', '900'), mc('blue-grey', '700'));
border: none;
border-top: 1px solid mc('blue-grey', '400');
border-top-left-radius: 0;
border-top-right-radius: 0;
opacity: 1;
position: fixed;
top: 50px;
left: 0;
width: 100%;
box-shadow: 0 0 5px rgba(0,0,0,.75);
&:hover {
opacity: 1;
}
a {
color: #FFF !important;
border: none;
transition: background-color 0.4s ease;
&.active, &:hover, &:focus {
background-color: rgba(0,0,0,0.5);
outline: none;
}
}
i.separator {
margin-top: 5px;
border-left-color: #000;
border-right-color: #AAA;
}
}
.editor-modal-load {
display: flex;
align-items: center;
opacity: 0;
transition: opacity .5s ease;
span {
font-size: 12px;
color: mc('blue', '500');
}
i {
margin-left: 10px;
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
&::before {
content: " ";
@include spinner(mc('blue', '500'),0.5s,24px);
}
}
&.is-active {
opacity: 1;
}
}
#btn-editor-image-upload, #btn-editor-file-upload {
position: relative;
overflow: hidden;
> label {
display: block;
opacity: 0;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
cursor: pointer;
input[type=file] {
opacity: 0;
position: absolute;
top: -9999px;
left: -9999px;
}
}
}
.editor-modal-image-choices {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
overflow: auto;
overflow-x: hidden;
> em {
display: flex;
align-items: center;
padding: 25px;
color: mc('grey', '500');
> i {
font-size: 32px;
margin-right: 10px;
color: mc('grey', '300');
}
}
> figure {
display: flex;
flex-direction: column;
background-color: #FAFAFA;
border-radius: 5px;
padding: 5px;
width: 160px;
min-height: 205px;
margin: 0 5px 10px 5px;
cursor: pointer;
justify-content: center;
align-items: center;
transition: background-color 0.4s ease;
> img {
border: 1px solid #DDD;
border-radius: 5px;
padding: 2px;
background-color: #FFF;
margin: 0 0 5px 0;
}
> span {
font-size: 12px;
> strong {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
display: block;
width: 150px;
text-align: center;
}
}
&:hover {
background-color: #DDD;
}
&.is-active {
background-color: mc('green', '500');
color: #FFF;
> img {
border-color: darken(mc('green', '500'), 10%);
}
> span > strong {
color: #FFF;
}
}
&.is-contextopen {
background-color: mc('blue', '500');
color: #FFF;
> img {
border-color: darken(mc('blue', '500'), 10%);
}
> span > strong {
color: #FFF;
}
}
}
}
.editor-modal-file-choices {
overflow: auto;
overflow-x: hidden;
> em {
display: flex;
align-items: center;
padding: 25px;
color: mc('grey', '500');
> i {
font-size: 32px;
margin-right: 10px;
color: mc('grey', '300');
}
}
> figure {
display: flex;
background-color: #FAFAFA;
border-radius: 3px;
padding: 5px;
height: 34px;
margin: 0 0 5px 0;
cursor: pointer;
justify-content: flex-start;
align-items: center;
transition: background-color 0.4s ease;
> i {
width: 16px;
}
> span {
font-size: 14px;
flex: 0 1 auto;
padding: 0 15px;
color: mc('grey', '600');
&:first-of-type {
flex: 1 0 auto;
color: mc('grey', '800');
}
&:last-of-type {
width: 100px;
}
}
&:hover {
background-color: #DDD;
}
&.is-active {
background-color: mc('green', '500');
color: #FFF;
> span, strong {
color: #FFF;
}
}
&.is-contextopen {
background-color: mc('blue', '500');
color: #FFF;
> span, strong {
color: #FFF;
}
}
}
}
.editor-modal-imagealign {
.control > span {
letter-spacing: 1px;
text-transform: uppercase;
color: #aeb1b5;
font-size: 11px;
}
> .is-grouped {
display: flex;
align-items: center;
justify-content: center;
}
.button > .icon {
margin: 0;
}
}
.editor-modal-folderlist {
height: 100%;
overflow: auto;
overflow-x: hidden;
}
// CODE MIRROR
.CodeMirror {
border-left: none;
border-right: none;
margin-top: 49px;
font-family: $core-font-standard;
border: 10px solid mc('blue-grey', '100');
}
.CodeMirror .CodeMirror-code {
.cm-url {
color: #00ACC1;
}
.cm-header-1 {
color: #635c8c;
font-size: 2em;
font-weight: 400;
}
.cm-header-2 {
color: #222324;
font-size: 1.75em;
font-weight: 300;
}
.cm-header-3 {
color: #222324;
font-size: 1.5em;
font-weight: 300;
}
.cm-formatting-code-block, .cm-comment {
font-family: $core-font-monospace;
}
}
.editor-toolbar .fa {
font-size: 14px;
}
// ACE EDITOR
.ace-container {
position: relative;
}
/*.ace_scroller {
width: 100%;
}
.ace_content {
height: 100%;
}*/
main > .ace-container {
min-height: 95vh;
}
#modal-editor-codeblock .ace-container {
display: flex;
align-items: stretch;
padding: 0;
position: relative;
width: 100%;
height: 100%;
}
#source-display, #codeblock-editor {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.editor-sd {
max-width: 250px;
flex: 0 1 250px;
background-color: mc('blue-grey', '100');
&-item {
background-color: mc('blue-grey', '500');
padding: 5px;
&:first-child {
margin-top: 60px;
}
& + .editor-sd-item {
margin-top: 5px;
}
}
}

@ -1,38 +0,0 @@
.footer {
background-color: mc('blue-grey','50');
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 25px;
height: 70px;
font-size: 13px;
font-weight: 500;
color: mc('blue-grey','500');
position: absolute;
right: 0;
bottom: 0;
left: 0;
transition: background-color 1s ease;
ul {
padding: 0;
margin: 0;
list-style-type: none;
display: flex;
justify-content: center;
align-items: center;
li {
padding: 0 15px;
}
}
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color,'50');
color: mc($color,'500');
}
}
}

@ -1,256 +0,0 @@
.control {
& + .control {
margin-top: 15px;
}
// ===============================================================
// TEXTBOX
// ===============================================================
input[type=text], input[type=password] {
background-color: #FFF;
display: flex;
height: 30px;
align-items: center;
padding: 0 12px;
border: 1px solid mc('grey', '400');
border-radius: 3px;
font-family: $core-font-standard;
font-size: 14px;
color: mc('grey', '700');
transition: all .4s ease;
box-shadow: inset 0 0 5px 0 rgba(0,0,0,0.1);
&:focus {
outline: none;
border-color: mc('light-blue', '500');
box-shadow: inset 0 0 5px 0 rgba(mc('light-blue', '500'), 0.3);
}
&:disabled {
background-color: mc('grey', '100');
}
&.is-dirty.is-invalid {
border-color: mc('red', '500');
box-shadow: inset 0 0 5px 0 mc('red', '100');
}
@include placeholder {
color: mc('grey', '400');
}
}
&.is-fullwidth {
input[type=text], input[type=password], select, textarea {
width: 100%;
}
}
textarea {
background-color: #FFF;
display: flex;
padding: 6px 12px;
border: 1px solid mc('grey', '400');
border-radius: 3px;
font-family: $core-font-standard;
font-size: 14px;
color: mc('grey', '700');
transition: all .4s ease;
box-shadow: inset 0 0 5px 0 rgba(0,0,0,0.1);
min-height: 100px;
&:focus {
outline: none;
border-color: mc('light-blue', '500');
box-shadow: inset 0 0 5px 0 rgba(mc('light-blue', '500'), 0.3);
}
&:disabled {
background-color: mc('grey', '100');
}
&.is-dirty.is-invalid {
border-color: mc('red', '500');
box-shadow: inset 0 0 5px 0 mc('red', '100');
}
}
// ===============================================================
// DROPDOWN
// ===============================================================
select {
background-color: #FFF;
display: flex;
height: 30px;
align-items: center;
padding: 0 12px;
border: 1px solid mc('grey', '400');
border-radius: 3px;
font-family: $core-font-standard;
font-size: 14px;
color: mc('grey', '700');
transition: all .4s ease;
box-shadow: inset 0 0 5px 0 rgba(0,0,0,0.1);
cursor: pointer;
&:focus {
outline: none;
border-color: mc('light-blue', '500');
box-shadow: inset 0 0 5px 0 rgba(mc('light-blue', '500'), 0.3);
}
&:disabled {
background-color: mc('grey', '100');
}
}
// ===============================================================
// CHECKBOX / RADIO BUTTONS
// ===============================================================
input[type=radio], input[type=checkbox] {
position: absolute;
left: -9999px;
opacity: 0;
& + label {
position: relative;
padding: 0 15px 0 25px;
cursor: pointer;
display: inline-block;
height: 25px;
line-height: 25px;
font-size: 14px;
transition: .28s ease;
@include prefix('user-select', none);
&:before, &:after {
content: '';
position: absolute;
left: 0;
top: 0;
margin: 4px;
border: 2px solid mc($primary, '600');
margin: 4px;
width: 16px;
height: 16px;
border-radius: 50%;
z-index: 0;
transition: .28s ease;
}
}
&:checked + label {
&:before, &:after {
border-color: mc($primary, '600');
}
&:after {
@include prefix('transform', scale(0.5));
background-color: mc($primary, '600');
}
}
}
input[type=checkbox] + label {
&:before, &:after {
border-radius: 3px;
}
}
.help {
font-size: 12px;
&.is-red {
color: mc('red','600');
}
}
& + label {
margin-top: 20px;
}
> i:first-child {
margin-right: 8px;
}
}
.label {
margin-bottom: 5px;
font-size: 14px;
font-weight: 500;
display: block;
strong {
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
color: mc($color, '600');
}
}
}
}
.form-sections {
section {
border-top: 1px solid mc('grey', '200');
padding: 20px;
@include prefix(animation-duration, .6s);
&:first-child {
border-top: none;
}
.button + .button {
margin-left: 10px;
}
.desc {
display: inline-block;
padding: 10px 0 0 0px;
font-size: 12px;
color: mc('grey', '500');
}
.section-block {
padding-left: 20px;
font-size: 14px;
color: mc('blue-grey', '800');
h6 {
font-size: 14px;
font-weight: 500;
color: mc('blue-grey', '600');
margin-top: 15px;
border-bottom: 1px dotted mc('blue-grey', '200');
}
p {
padding: 5px 0;
&.is-small {
font-size: 13px;
}
}
}
}
}

@ -1,501 +0,0 @@
.column {
flex-basis: 0;
flex-grow: 1;
flex-shrink: 1;
padding: 10px;
.columns.is-mobile > &.is-narrow {
flex: none;
}
.columns.is-mobile > &.is-full {
flex: none;
width: 100%;
}
.columns.is-mobile > &.is-three-quarters {
flex: none;
width: 75%;
}
.columns.is-mobile > &.is-two-thirds {
flex: none;
width: 66.6666%;
}
.columns.is-mobile > &.is-half {
flex: none;
width: 50%;
}
.columns.is-mobile > &.is-one-third {
flex: none;
width: 33.3333%;
}
.columns.is-mobile > &.is-one-quarter {
flex: none;
width: 25%;
}
.columns.is-mobile > &.is-offset-three-quarters {
margin-left: 75%;
}
.columns.is-mobile > &.is-offset-two-thirds {
margin-left: 66.6666%;
}
.columns.is-mobile > &.is-offset-half {
margin-left: 50%;
}
.columns.is-mobile > &.is-offset-one-third {
margin-left: 33.3333%;
}
.columns.is-mobile > &.is-offset-one-quarter {
margin-left: 25%;
}
@for $i from 1 through 12 {
.columns.is-mobile > &.is-#{$i} {
flex: none;
width: $i / 12 * 100%;
}
.columns.is-mobile > &.is-offset-#{$i} {
margin-left: $i / 12 * 100%;
}
}
@include mobile {
&.is-narrow-mobile {
flex: none;
}
&.is-full-mobile {
flex: none;
width: 100%;
}
&.is-three-quarters-mobile {
flex: none;
width: 75%;
}
&.is-two-thirds-mobile {
flex: none;
width: 66.6666%;
}
&.is-half-mobile {
flex: none;
width: 50%;
}
&.is-one-third-mobile {
flex: none;
width: 33.3333%;
}
&.is-one-quarter-mobile {
flex: none;
width: 25%;
}
&.is-offset-three-quarters-mobile {
margin-left: 75%;
}
&.is-offset-two-thirds-mobile {
margin-left: 66.6666%;
}
&.is-offset-half-mobile {
margin-left: 50%;
}
&.is-offset-one-third-mobile {
margin-left: 33.3333%;
}
&.is-offset-one-quarter-mobile {
margin-left: 25%;
}
@for $i from 1 through 12 {
&.is-#{$i}-mobile {
flex: none;
width: $i / 12 * 100%;
}
&.is-offset-#{$i}-mobile {
margin-left: $i / 12 * 100%;
}
}
}
@include tablet {
&.is-narrow,
&.is-narrow-tablet {
flex: none;
}
&.is-full,
&.is-full-tablet {
flex: none;
width: 100%;
}
&.is-three-quarters,
&.is-three-quarters-tablet {
flex: none;
width: 75%;
}
&.is-two-thirds,
&.is-two-thirds-tablet {
flex: none;
width: 66.6666%;
}
&.is-half,
&.is-half-tablet {
flex: none;
width: 50%;
}
&.is-one-third,
&.is-one-third-tablet {
flex: none;
width: 33.3333%;
}
&.is-one-quarter,
&.is-one-quarter-tablet {
flex: none;
width: 25%;
}
&.is-offset-three-quarters,
&.is-offset-three-quarters-tablet {
margin-left: 75%;
}
&.is-offset-two-thirds,
&.is-offset-two-thirds-tablet {
margin-left: 66.6666%;
}
&.is-offset-half,
&.is-offset-half-tablet {
margin-left: 50%;
}
&.is-offset-one-third,
&.is-offset-one-third-tablet {
margin-left: 33.3333%;
}
&.is-offset-one-quarter,
&.is-offset-one-quarter-tablet {
margin-left: 25%;
}
@for $i from 1 through 12 {
&.is-#{$i},
&.is-#{$i}-tablet {
flex: none;
width: $i / 12 * 100%;
}
&.is-offset-#{$i},
&.is-offset-#{$i}-tablet {
margin-left: $i / 12 * 100%;
}
}
}
@include desktop {
&.is-narrow-desktop {
flex: none;
}
&.is-full-desktop {
flex: none;
width: 100%;
}
&.is-three-quarters-desktop {
flex: none;
width: 75%;
}
&.is-two-thirds-desktop {
flex: none;
width: 66.6666%;
}
&.is-half-desktop {
flex: none;
width: 50%;
}
&.is-one-third-desktop {
flex: none;
width: 33.3333%;
}
&.is-one-quarter-desktop {
flex: none;
width: 25%;
}
&.is-offset-three-quarters-desktop {
margin-left: 75%;
}
&.is-offset-two-thirds-desktop {
margin-left: 66.6666%;
}
&.is-offset-half-desktop {
margin-left: 50%;
}
&.is-offset-one-third-desktop {
margin-left: 33.3333%;
}
&.is-offset-one-quarter-desktop {
margin-left: 25%;
}
@for $i from 1 through 12 {
&.is-#{$i}-desktop {
flex: none;
width: $i / 12 * 100%;
}
&.is-offset-#{$i}-desktop {
margin-left: $i / 12 * 100%;
}
}
}
@include widescreen {
&.is-narrow-widescreen {
flex: none;
}
&.is-full-widescreen {
flex: none;
width: 100%;
}
&.is-three-quarters-widescreen {
flex: none;
width: 75%;
}
&.is-two-thirds-widescreen {
flex: none;
width: 66.6666%;
}
&.is-half-widescreen {
flex: none;
width: 50%;
}
&.is-one-third-widescreen {
flex: none;
width: 33.3333%;
}
&.is-one-quarter-widescreen {
flex: none;
width: 25%;
}
&.is-offset-three-quarters-widescreen {
margin-left: 75%;
}
&.is-offset-two-thirds-widescreen {
margin-left: 66.6666%;
}
&.is-offset-half-widescreen {
margin-left: 50%;
}
&.is-offset-one-third-widescreen {
margin-left: 33.3333%;
}
&.is-offset-one-quarter-widescreen {
margin-left: 25%;
}
@for $i from 1 through 12 {
&.is-#{$i}-widescreen {
flex: none;
width: $i / 12 * 100%;
}
&.is-offset-#{$i}-widescreen {
margin-left: $i / 12 * 100%;
}
}
}
}
.columns {
margin-left: -10px;
margin-right: -10px;
margin-top: -10px;
&:last-child {
margin-bottom: -10px;
}
&:not(:last-child) {
margin-bottom: 10px;
}
// Modifiers
&.is-centered {
justify-content: center;
}
&.is-gapless {
margin-left: 0;
margin-right: 0;
margin-top: 0;
&:last-child {
margin-bottom: 0;
}
&:not(:last-child) {
margin-bottom: 20px;
}
& > .column {
margin: 0;
padding: 0;
}
}
&.is-stretched {
flex-grow: 1;
align-items: stretch;
align-self: stretch;
}
&.is-grid {
// Responsiveness
@include tablet {
flex-wrap: wrap;
& > .column {
max-width: 33.3333%;
padding: 10px;
width: 33.3333%;
& + .column {
margin-left: 0;
}
}
}
}
&.is-mobile {
display: flex;
}
&.is-multiline {
flex-wrap: wrap;
}
&.is-vcentered {
align-items: center;
}
// Responsiveness
@include tablet {
&:not(.is-desktop) {
display: flex;
}
}
@include desktop {
// Modifiers
&.is-desktop {
display: flex;
}
}
}
.tile {
align-items: stretch;
flex-basis: auto;
flex-grow: 1;
flex-shrink: 1;
min-height: min-content;
// Modifiers
&.is-ancestor {
margin-left: -10px;
margin-right: -10px;
margin-top: -10px;
&:last-child {
margin-bottom: -10px;
}
&:not(:last-child) {
margin-bottom: 10px;
}
}
&.is-child {
margin: 0 !important;
}
&.is-parent {
padding: 10px;
}
&.is-vertical {
flex-direction: column;
& > .tile.is-child:not(:last-child) {
margin-bottom: 20px !important;
}
}
// Responsiveness
@include tablet {
&:not(.is-child) {
display: flex;
}
@for $i from 1 through 12 {
&.is-#{$i} {
flex: none;
width: $i / 12 * 100%;
}
}
}
}
.column.is-white {
background-color: #FFF;
}

@ -1,93 +0,0 @@
.hero {
padding: 20px;
background-color: mc('grey', '50');
border-bottom: 1px solid mc('grey', '200');
position: relative;
h1 {
font-size: 28px;
color: mc($primary, '500');
font-weight: 300;
}
h2 {
font-size: 18px;
color: mc('grey', '500');
font-weight: 400;
}
.pageicon {
position:absolute;
right: 20px;
top: 28px;
font-size: 48px;
color: mc('blue-grey', '500');
}
.hero-menu {
position: absolute;
right: 20px;
bottom: -1px;
z-index: 1;
display: flex;
li {
display: flex;
margin-left: 1px;
a, button {
background-color: mc('light-blue', '500');
color: #FFF;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 15px;
height: 32px;
border: 1px solid mc('light-blue', '600');
font-family: $core-font-standard;
font-size: 13px;
transition: all 0.4s ease;
cursor: pointer;
text-decoration: none;
text-transform: uppercase;
i {
margin-right: 10px;
}
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '600');
border-color: mc($color, '600');
&:hover {
background-color: mc($color, '800');
}
}
}
}
}
}
}
/* THEME OVERRIDE - START */
@each $color, $colorvalue in $material-colors {
.is-primary-#{$color} .hero {
h1 {
color: mc($color, '500');
}
}
.is-alternate-#{$color} .hero {
.pageicon {
color: mc($color, '500');
}
}
}
/* THEME OVERRIDE - END */

@ -1,59 +0,0 @@
.history {
&-title {
border-top: 1px solid mc('blue-grey', '900');
padding: 8px;
color: mc('blue-grey', '800');
font-size: 13px;
letter-spacing: 1px;
text-transform: uppercase;
background-color: mc('blue-grey', '100');
text-align: center;
box-shadow: 0 0 5px rgba(0,0,0,0.3);
}
&-info {
background-color: mc('blue-grey', '50');
padding: 5px 10px;
&-meta {
i {
margin-right: 8px;
}
p {
padding: 5px 0;
font-size: 14px;
color: mc('blue-grey', '800');
display: flex;
align-items: center;
}
}
&-actions {
display: flex;
flex-basis: initial;
flex-grow: initial;
flex-direction: column;
align-items: center;
justify-content: center;
.button-group {
margin-bottom: 10px;
}
}
}
&-diff {
position: relative;
.d2h-wrapper {
position: absolute;
left: 0;
right: 0;
}
}
}

@ -1,62 +0,0 @@
.list {
background-color: #FFF;
min-height: 25px;
.list-header {
background-color: mc('grey','100');
height: 30px;
display: flex;
align-items: center;
padding: 0 20px;
text-transform: uppercase;
font-size: 13px;
color: mc($primary,'500');
text-shadow: 1px 1px 0 #FFF;
span {
font-weight: 500;
}
i {
margin-right: 10px;
}
}
.list-row {
border-top: 1px solid mc('grey','100');
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 20px;
&:first-child {
border-top: none;
}
}
.list-item {
display: flex;
justify-content: flex-start;
align-items: center;
}
.list-icon {
margin-right: 15px;
color: mc('grey','500');
}
.list-content {
display: flex;
flex-direction: column;
strong {
color: mc('grey','700');
}
span {
color: mc('grey','600');
}
}
}

@ -1,429 +0,0 @@
.has-mkcontent {
width:100%;
overflow:hidden;
.columns, .column {
width: 100%;
overflow: hidden;
}
}
.mkcontent {
font-size: 14px;
color: mc('grey', '700');
padding: 0 0 20px 0;
width: 100%;
overflow: hidden;
h1, h2, h3 {
font-weight: 400;
margin: 10px 0 0;
padding: 7px 20px;
font-weight: 500;
}
h1 {
background-color: mc('blue-grey', '50');
background: linear-gradient(to bottom, mc('blue-grey', '50'), mc('indigo', '50'));
border-bottom: 2px solid mc('indigo', '100');
font-size: 18px;
color: mc('indigo', '500');
&:first-child {
margin-top: 1px;
}
/*& + h2 {
margin-top: 1px;
border-top: none;
}*/
& + p {
padding-top: 20px;
}
}
h2 {
background-color: lighten(mc('teal', '50'), 5%);
background: linear-gradient(to bottom, lighten(mc('teal', '50'), 5%), mc('teal', '50'));
border: 1px solid mc('teal', '100');
border-right-width: 5px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
font-size: 16px;
color: mc('teal', '900');
margin-left: 20px;
}
.indent-h2 {
border-right: 5px solid mc('teal', '100');
margin-left: 20px;
padding-top: 1px;
padding-bottom: 20px;
overflow: hidden;
& + h1, & + h2 {
margin-top: 1px;
}
&:last-child {
padding-bottom: 5px;
}
h3:first-child {
margin-top: 0;
border-top: none;
}
}
h3 {
background-color: lighten(mc('blue', '50'), 3%);
background: linear-gradient(to bottom, lighten(mc('blue', '50'), 3%), mc('blue', '50'));
border: 1px solid mc('blue', '100');
border-right-width: 5px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
font-size: 14px;
color: mc('blue', '700');
margin-left: 20px;
margin-right: 1px;
padding: 5px 20px;
}
.indent-h3 {
border-right: 5px solid mc('teal', '100');
margin-left: 20px;
margin-right: 1px;
padding-bottom: 10px;
& + h1, & + h2, & + h3 {
margin-top: 1px;
}
&:last-child {
padding-bottom: 0;
}
}
a {
text-decoration: underline;
font-weight: 400;
&:hover {
color: mc('blue', '700');
}
&.toc-anchor {
font-size: 80%;
color: mc('indigo', '300');
border-bottom: none;
text-decoration: none;
&:visited {
color: mc('indigo', '300') !important;
}
}
&.external-link {
position: relative;
padding-left: 5px;
//display: inline-flex;
//align-items: center;
&:before {
content: '\ee70';
display: inline-block;
font-family: 'Nucleo Outline';
font-style: normal;
font-weight: normal;
text-decoration: none;
color: mc('grey', '500');
font-size: 14px;
margin-right: 5px;
}
&:hover:before {
text-decoration: none;
}
}
}
ul {
padding: 10px 0 10px 40px;
list-style-type: square;
li {
padding: 1px 0;
> ul {
padding: 5px 0 5px 15px;
list-style-type: disc;
}
p {
padding: 0;
&:first-child {
padding: 0;
}
}
}
}
ol {
padding: 10px 40px;
list-style-type: decimal;
li {
padding: 1px 0;
}
}
p {
padding: 10px 20px;
&:first-child {
padding-top: 20px;
}
&.is-gapless {
padding: 0 20px;
& + p {
padding-top: 20px;
}
& + h1 {
margin-top: 1px;
}
}
}
table {
width: auto;
border-collapse: collapse;
margin: 10px 20px;
font-size: 14px;
th {
background-color: mc('blue', '500');
color: #FFF;
border: 1px solid mc('blue', '500');
padding: 5px 15px;
&:first-child {
border-left-color: mc('blue', '500');
}
&:last-child {
border-right-color: mc('blue', '500');
}
}
td {
border: 1px solid mc('grey', '500');
padding: 5px 15px;
}
tr:nth-child(even) {
background-color: mc('grey', '100');
}
}
code {
font-weight: 500;
color: mc('purple', '500');
background-color: lighten(mc('purple', '50'), 5%);
padding: 0 5px;
border-radius: 4px;
}
pre {
background-color: mc('blue-grey', '900');
border-left: 7px solid mc('indigo', '500');
padding: 20px 20px 20px 13px;
font-family: $core-font-monospace;
white-space: pre;
overflow-x: auto;
> code {
border-radius: 5px;
font-weight: 400;
background-color: transparent;
color: mc('blue-grey', '100');
padding: 0;
font-family: $core-font-monospace;
font-size: 13px;
}
& + p {
padding-top: 1em;
}
& + h1, & + h2, & + h3 {
margin-top: 1px;
}
}
&.is-code-dark {
pre, pre.hljs {
background-color: mc('blue-grey', '900');
border-left-color: mc('blue-grey', '500');
> code {
color: mc('blue-grey', '100');
}
}
}
&.is-code-light {
@import 'node_modules/highlight.js/styles/atom-one-light';
pre, pre.hljs {
background-color: lighten(mc('blue-grey', '50'), 3%);
border-left: 7px solid mc('blue-grey', '100');
border-top: 1px solid mc('blue-grey', '100');
border-bottom: 1px solid mc('blue-grey', '100');
> code {
color: mc('blue-grey', '800');
}
}
}
&.is-code-dark, &.is-code-light {
pre, pre.hljs {
padding: 20px 20px 20px 13px;
font-family: $core-font-monospace;
white-space: pre;
overflow-x: auto;
> code {
border-radius: 5px;
font-weight: 400;
background-color: transparent;
padding: 0;
font-family: $core-font-monospace;
font-size: 13px;
}
& + p {
padding-top: 1em;
}
& + h1, & + h2, & + h3 {
margin-top: 1px;
}
}
}
.align-right {
float:right;
margin: 0 0 10px 10px;
max-width: 30vw;
}
.align-center {
text-align: center;
}
img.pagelogo {
position: absolute;
right: 20px;
top: 20px;
max-width: 200px;
max-height: 100px;
z-index: 3;
}
strong {
color: mc('grey', '700');
}
.twa {
font-size: 120%;
}
hr {
margin: 20px;
border-top: 1px dotted mc('grey', '500');
}
blockquote {
background-color: mc('teal', '50');
background: linear-gradient(to bottom right, lighten(mc('teal', '50'), 5%), mc('teal', '50'));
border: 1px solid mc('teal', '100');
border-left-width: 7px;
box-shadow: inset 0px 0px 0px 1px rgba(255,255,255,1);
border-radius: 5px;
padding: 0 10px;
margin: 10px 20px;
p {
padding: 10px 0;
color: mc('teal', '800');
&:first-child {
padding: 10px 0;
}
strong {
color: inherit;
}
}
&.is-danger {
background-color: mc('red', '100');
background: linear-gradient(to bottom right, lighten(mc('red', '50'), 5%), mc('red', '50'));
border-color: mc('red', '200');
p {
color: mc('red', '900');
}
}
&.is-warning {
background-color: mc('amber', '50');
background: linear-gradient(to bottom right, lighten(mc('amber', '50'), 5%), mc('amber', '50'));
border-color: mc('amber', '200');
p {
color: darken(mc('amber', '900'), 10%);
}
}
&.is-success {
background-color: mc('green', '50');
background: linear-gradient(to bottom right, lighten(mc('green', '50'), 5%), mc('green', '50'));
border-color: mc('green', '200');
p {
color: darken(mc('green', '900'), 10%);
}
}
&.is-info {
background-color: mc('blue', '50');
background: linear-gradient(to bottom right, lighten(mc('blue', '50'), 5%), mc('blue', '50'));
border-color: mc('blue', '200');
p {
color: darken(mc('blue', '900'), 10%);
}
}
}
}

@ -1,365 +0,0 @@
.modal {
align-items: flex-start;
display: block;
&.is-superimposed {
.modal-background {
z-index: 20;
}
.modal-container {
z-index: 21;
}
}
}
.modal-background {
top: 0;
left: 0;
width: 100vw;
height: 100vh;
position: fixed;
background-color: rgba(0,0,0,0.85);
z-index: 10;
&-enter-active {
animation: .4s ease fadeIn;
}
&-leave-active {
animation: .4s ease fadeOut;
}
}
.modal-container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 11;
display: flex;
justify-content: center;
align-items: center;
}
.modal-content {
width: 600px;
background-color: #FFF;
&-enter-active {
animation: .3s ease zoomIn;
}
&-leave-active {
animation: .3s ease zoomOut;
}
&.is-expanded {
align-self: stretch;
width: 100%;
margin: 20px;
display: flex;
flex-direction: column;
> section {
flex-grow: 1;
}
}
header {
background-color: mc('teal', '600');
color: #FFF;
display: flex;
flex-shrink: 0;
height: 40px;
align-items: center;
font-weight: 400;
font-size: 16px;
padding: 0 20px;
position: relative;
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '600');
}
}
.modal-notify {
position: absolute;
display: none;
align-items: center;
height: 40px;
right: 20px;
top: 0;
&.is-active {
display: flex;
}
span {
font-size: 12px;
letter-spacing: 1px;
text-transform: uppercase;
}
i {
margin-left: 15px;
display: inline-block;
@include spinner(#FFF, .5s, 20px);
}
}
}
section {
padding: 20px;
border-top: 1px dotted mc('grey', '300');
&:first-of-type {
border-top: none;
padding-top: 20px;
}
&:last-of-type {
padding-bottom: 20px;
}
&.is-gapless {
padding: 10px;
display: flex;
}
&.modal-loading {
display: flex;
flex-direction: column;
align-items: center;
> i {
display: block;
@include spinner(mc('blue','500'), .4s, 32px);
margin-bottom: 10px;
}
> span {
color: mc('grey', '600');
}
> em {
font-size: 12px;
color: mc('grey', '500');
font-style: normal;
}
}
&.modal-instructions {
display: flex;
flex-direction: column;
align-items: center;
color: mc('grey', '800');
img {
height: 100px;
& + * {
margin-top: 10px;
}
}
i.is-huge {
font-size: 72px;
margin-bottom: 10px;
}
> span {
color: mc('grey', '800');
}
> em {
font-size: 12px;
color: mc('grey', '600');
font-style: normal;
margin-top: 10px;
display: block;
}
}
.bullets {
list-style-type: square;
padding: 5px 0 0 30px;
font-size: 14px;
color: mc('grey', '800');
}
.note {
display: block;
margin-top: 10px;
font-size: 14px;
color: mc('grey', '800');
&:first-child {
margin-top: 0;
}
ul {
color: mc('grey', '800');
padding-left: 10px;
li {
margin-top: 5px;
display: flex;
align-items: center;
> i {
margin-right: 8px;
font-size: 18px;
}
}
}
}
}
footer {
padding: 20px;
text-align: right;
.button {
margin-left: 10px;
}
}
}
.modal-toolbar {
background-color: mc('teal', '700');
padding: 7px 20px;
display: flex;
flex-shrink: 0;
justify-content: center;
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '700');
.button {
border-color: mc($color, '900');
background-color: mc($color, '900');
&:hover {
border-color: mc($color, '900');
background-color: mc($color, '800');
}
}
}
}
// BUTTONS
.button {
border: 1px solid mc('teal', '900');
background-color: mc('teal', '900');
transition: all .4s ease;
color: #FFF;
border-radius: 0;
&:first-child {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
&:last-child {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
&:hover {
border-color: mc('teal', '900');
background-color: mc('teal', '800');
color: #FFF;
}
}
.button + .button {
margin-left: 1px;
}
}
.modal-sidebar {
background-color: mc('teal', '50');
padding: 0;
//padding: 7px 20px;
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '50');
.model-sidebar-header {
background-color: mc($color, '100');
color: mc($color, '800');
}
.model-sidebar-list > li a {
&:hover {
background-color: mc($color, '200');
}
&.is-active {
background-color: mc($color, '500');
}
}
}
}
.model-sidebar-header {
padding: 7px 20px;
}
.model-sidebar-content {
padding: 7px 20px;
}
.model-sidebar-list {
> li {
padding: 0;
a {
display: flex;
align-items: center;
height: 34px;
padding: 0 20px;
cursor: pointer;
color: mc('grey', '800');
&:hover {
background-color: mc('teal', '200');
}
&.is-active {
color: #FFF;
}
i {
margin-right: 7px;
}
}
}
}
}
.modal-content .card-footer-item.featured {
animation: flash 4s ease 0 infinite;
}

@ -1,211 +0,0 @@
.nav {
align-items: stretch;
background-color: mc($primary, '500');
display: flex;
min-height: 50px;
position: relative;
text-align: center;
box-shadow: 0 2px 3px rgba(mc($primary, '500'), 0.2);
z-index: 2;
color: #FFF;
transition: background-color 1s ease;
/* THEME OVERRIDE - START */
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '500');
box-shadow: 0 2px 3px rgba(mc($color, '500'), 0.2);
.nav-item a, a.nav-item {
color: mc($color, '50');
&:hover {
color: mc($color, '200');
}
}
h1:hover {
color: mc($color, '100');
}
.nav-item {
.button {
background-color: mc($color, '800');
&.is-outlined {
background-color: mc($color, '600');
color: mc($color, '100');
}
&:hover {
background-color: mc($color, '900');
}
}
}
.control {
input[type=text] {
background-color: mc($color, '800');
border-color: mc($color, '400');
color: mc($color, '50');
&:focus {
border-color: mc($color, '200');
box-shadow: inset 0 0 5px 0 rgba(mc($color, '900'), 0.5);
}
@include placeholder {
color: mc($color, '200');
}
}
}
}
}
/* THEME OVERRIDE - END */
}
.nav-left {
align-items: stretch;
display: flex;
flex-basis: 0;
flex-grow: 1;
justify-content: flex-start;
overflow: hidden;
overflow-x: auto;
white-space: nowrap;
}
.nav-center {
align-items: stretch;
display: flex;
justify-content: center;
margin-left: auto;
margin-right: auto;
}
.nav-right {
@include tablet {
align-items: stretch;
display: flex;
flex-basis: 0;
flex-grow: 1;
justify-content: flex-end;
}
.nav-item {
align-items: stretch;
padding: 0 0 0 10px;
}
}
.nav-item {
align-items: center;
display: flex;
justify-content: center;
padding: 0 10px;
// LINKS
@at-root .nav-item a, a.nav-item {
color: mc($primary, '50');
transition: color .4s ease;
cursor: pointer;
&:hover {
color: mc($primary, '200');
text-decoration: none;
}
}
// LOGO
img {
max-height: 34px;
}
// HEADERS
h1 {
font-size: 16px;
font-weight: 400;
letter-spacing: 0.5px;
text-transform: uppercase;
transition: color .4s ease;
color: #FFF;
padding-left: 10px;
i {
margin-right: 8px;
}
&:hover {
color: mc($primary, '100');
}
}
@at-root h2.nav-item, .nav-item h2 {
color: mc($primary, '50');
}
// BUTTONS
.button {
border: none;
background-color: mc($primary, '600');
transition: all .4s ease;
color: #FFF;
border-radius: 0;
height: auto;
&.is-outlined {
background-color: mc($primary, '500');
color: mc($primary, '100');
}
&.is-icon-only i {
margin-right: 0;
}
&:hover {
background-color: mc($primary, '700');
color: #FFF;
}
}
// INPUTS
.control {
input[type=text] {
background-color: mc($primary, '800');
border-color: mc($primary, '400');
color: mc($primary, '50');
&:focus {
border-color: mc($primary, '200');
box-shadow: inset 0 0 5px 0 rgba(mc($primary, '900'), 0.5);
}
@include placeholder {
color: mc($primary, '200');
}
}
}
}

@ -1,66 +0,0 @@
.searchresults {
position: fixed;
top: 50px;
left: 0;
right: 0;
margin: 0 auto;
width: 500px;
z-index: 1;
background-color: darken(mc('blue-grey', '900'), 2%);
border: 1px solid mc('blue-grey', '900');
box-shadow: 0 0 5px mc('blue-grey', '500');
color: #FFF;
transition: max-height 1s ease;
&-enter-active, &-leave-active {
overflow: hidden;
}
&-enter-to, &-leave {
max-height: 500px;
}
&-enter, &-leave-to {
max-height: 0px;
}
.searchresults-label {
background-color: mc('blue-grey', '800');
color: mc('blue-grey', '300');
padding: 8px;
font-size: 13px;
letter-spacing: 1px;
text-transform: uppercase;
box-shadow: 0 0 5px rgba(0,0,0,0.3);
}
.searchresults-list {
padding-bottom: 5px;
> li {
display: flex;
font-size: 14px;
transition: background-color .2s linear;
&:nth-child(odd) {
background-color: mc('blue-grey', '900');
}
&.is-active, &:hover {
background-color: mc('blue-grey', '600');
color: #FFF;
}
a {
color: mc('blue-grey', '50');
display: flex;
align-items: center;
height: 30px;
padding: 0 20px;
width: 100%;
cursor: pointer;
}
}
}
}

@ -1,191 +0,0 @@
.sidebar {
background-color: mc('blue-grey', '900');
color: mc('blue-grey', '50');
width: 250px;
max-width: 250px;
min-height: calc(100vh - 120px);
transition: background-color 1s ease;
aside {
padding: 1px 0 15px 0;
&:last-child {
padding-bottom: 20px;
}
.sidebar-label {
padding: 8px;
color: mc('blue-grey', '300');
font-size: 13px;
letter-spacing: 1px;
text-transform: uppercase;
background-color: mc('blue-grey', '800');
margin: 0 0 15px 0;
text-align: center;
box-shadow: 0 0 5px rgba(0,0,0,0.3);
transition: background-color 1s ease;
i {
margin-right: 5px;
}
}
.sidebar-menu {
li {
display: block;
a {
display: flex;
min-height: 30px;
align-items: center;
padding: 5px 20px;
color: mc('blue-grey', '50');
font-size: 14px;
transition: all .4s ease;
line-height: 14px;
cursor: pointer;
&.is-multiline {
flex-wrap: wrap;
}
&.is-active {
border-left: 5px solid mc('blue', '500');
color: mc('blue', '300');
padding-left: 15px;
.is-small {
color: mc('blue', '500');
}
}
i {
margin-right: 7px;
color: mc('blue-grey', '300');
}
&:hover {
color: mc('blue-grey', '400');
text-decoration: none;
}
.is-small {
flex: 1 0 100%;
display: block;
font-size: 11px;
color: rgba(255,255,255,.5)
}
}
> ul {
border-top: 1px solid lighten(mc('blue-grey', '900'), 3%);
border-bottom: 1px solid lighten(mc('blue-grey', '900'), 2%);
background-color: darken(mc('blue-grey', '900'), 2%);
margin-bottom: 10px;
padding: 10px 0;
li {
padding-left: 10px;
//border-left: 5px solid mc('blue-grey', '800');
a {
min-height: 24px;
color: mc('blue-grey', '100');
}
}
}
}
}
}
&.is-collapsed {
width: 50px;
aside {
.sidebar-menu li a {
padding: 10px 0;
justify-content: center;
i {
margin: 0;
font-size: 20px;
transition: color .6s ease;
}
span {
display: none;
}
&:hover {
i {
color: #FFF;
}
}
}
}
}
}
/* THEME OVERRIDE - START */
@each $color, $colorvalue in $material-colors {
.is-alternate-#{$color} .sidebar {
background-color: mc($color, '900');
color: mc($color, '50');
aside {
.sidebar-label {
color: mc($color, '300');
background-color: mc($color, '800');
}
.sidebar-menu {
li {
a {
color: mc($color, '50');
&.is-active {
border-left-color: mc($color, '500');
color: mc($color, '300');
.is-small {
color: mc($color, '500');
}
}
&:hover {
color: mc($color, '400');
}
i {
color: mc($color, '300');
}
}
> ul {
border-top-color: lighten(mc($color, '900'), 3%);
border-bottom-color: lighten(mc($color, '900'), 2%);
background-color: darken(mc($color, '900'), 2%);
li a {
color: mc($color, '100');
}
}
}
}
}
}
}
/* THEME OVERRIDE - END */

@ -1,90 +0,0 @@
.table {
border-spacing: collapse;
padding: 1px;
width: 100%;
font-size: 14px;
thead {
background-color: mc('blue-grey', '500');
color: #FFF;
th {
padding: 5px 10px;
font-weight: 500;
text-align: center;
border-left: 1px solid mc('blue-grey', '200');
&:first-child {
border-left: none;
}
}
@each $color, $colorvalue in $material-colors {
&.is-#{$color} {
background-color: mc($color, '500');
th {
border-left-color: mc($color, '200');
}
}
}
}
tbody {
tr {
background-color: mc('blue-grey', '100');
&:nth-child(odd) {
background-color: mc('blue-grey', '50');
}
td {
padding: 5px 10px;
border-left: 1px solid #FFF;
vertical-align: middle;
&:first-child {
border-left: none;
}
}
}
}
.is-centered {
text-align: center;
}
.has-icons i {
margin-right: 8px;
}
.is-icon {
font-size: 14px;
width: 20px;
}
.has-action-icons {
i {
cursor: pointer;
font-size: 20px;
}
}
}
.table-actions {
text-align: right;
.button {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
}

@ -6,6 +6,4 @@ $primary: 'indigo';
@import "base/material"; @import "base/material";
@import "base/reset"; @import "base/reset";
@import "base/mixins"; @import "base/mixins";
@import "base/fonts";
@import "base/icons";
@import "base/base"; @import "base/base";

@ -1,36 +0,0 @@
#header-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 4;
}
#header {
z-index: 5;
}
#notifload {
width: 42px;
display: flex;
justify-content: center;
align-items: center;
opacity: 0;
transition: opacity .5s ease;
&::before {
content: " ";
@include spinner(mc('indigo', '100'),0.5s,24px);
}
&.is-active {
opacity: 1;
}
}
#search-input {
max-width: 300px;
width: 33vw;
}

@ -1,50 +0,0 @@
.page-loader {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: mc('blue-grey', '800');
z-index: 100;
display: flex;
justify-content: center;
align-items: center;
color: mc('blue-grey', '100');
font-weight: 300;
font-size: 18px;
flex-direction: column;
> i {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 25px;
&::before {
content: " ";
@include spinner(mc('blue-grey', '200'), 0.4s, 48px);
}
}
&-leave-active {
animation: pageLoaderExit 1s ease forwards;
}
@include keyframes(pageLoaderExit) {
0% {
opacity: 1;
}
99% {
display: flex;
opacity: 0;
transform: scale(1.1, 1.1);
}
100% {
opacity: 0;
display: none;
}
}
}

@ -1,17 +0,0 @@
.account-profile-provider {
height: 32px;
display: flex;
align-items: center;
.fa {
margin-right: 10px;
}
.is-blue {
color: $blue;
}
.is-purple {
color: $purple;
}
}

@ -1,52 +0,0 @@
body {
display: flex;
align-items: center;
min-height: 100vh;
width: 100vw;
padding: 25px 0;
margin: 0;
color: #FFF;
&.is-notexist {
background-color: mc('blue-grey', '900');
}
&.is-forbidden {
background-color: darken(mc('blue-grey', '900'), 5%);
}
&.is-error {
background-color: darken(mc('blue-grey', '900'), 10%);
}
}
.container {
text-align: center;
h1 {
margin-top: 30px;
}
h2 {
margin-bottom: 50px;
}
a.button {
margin: 0 5px;
}
h3 {
text-align: left;
margin-top: 50px;
}
pre {
margin-top: 10px;
text-align: left;
color: mc('blue-grey', '200');
font-size: 12px;
}
}

@ -16,10 +16,21 @@
top: 0; top: 0;
left: 0; left: 0;
background-image: url('../static/svg/login-bg-motif.svg'); background-image: url('../static/svg/login-bg-motif.svg');
background-position: center center;
background-repeat: repeat; background-repeat: repeat;
background-size: 500px; background-size: 500px;
z-index: 0; z-index: 0;
opacity: .75; opacity: .75;
animation: onboardingBgReveal 50s linear infinite;
@include keyframes(onboardingBgReveal) {
0% {
background-position-y: 0;
}
100% {
background-position-y: -2000px;
}
}
} }
img { img {

@ -448,4 +448,33 @@
<path fill="#EFD358" d="M45.61377,17.21094l-9-7c-0.30127-0.23438-0.70996-0.27734-1.05322-0.10938 C35.21777,10.26953,35,10.61816,35,11v5H22c-0.55228,0-1,0.44772-1,1v2c0,0.55228,0.44772,1,1,1h13v5 c0,0.38184,0.21777,0.73047,0.56055,0.89844C35.7002,25.9668,35.8501,26,36,26c0.21826,0,0.43506-0.07129,0.61377-0.21094l9-7 C45.85742,18.59961,46,18.30859,46,18S45.85742,17.40039,45.61377,17.21094z"></path> <path fill="#EFD358" d="M45.61377,17.21094l-9-7c-0.30127-0.23438-0.70996-0.27734-1.05322-0.10938 C35.21777,10.26953,35,10.61816,35,11v5H22c-0.55228,0-1,0.44772-1,1v2c0,0.55228,0.44772,1,1,1h13v5 c0,0.38184,0.21777,0.73047,0.56055,0.89844C35.7002,25.9668,35.8501,26,36,26c0.21826,0,0.43506-0.07129,0.61377-0.21094l9-7 C45.85742,18.59961,46,18.30859,46,18S45.85742,17.40039,45.61377,17.21094z"></path>
</g> </g>
</symbol> </symbol>
<symbol id='fa-heading' viewBox="0 0 512 512">
<g class="nc-icon-wrapper">
<path fill="currentColor" d="M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"></path>
</g>
</symbol>
<symbol id="fa-bold" viewBox="0 0 384 512">
<title id="bold-title">bold</title>
<path fill="currentColor" d="M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"></path>
</symbol>
<symbol id="fa-italic" viewBox="0 0 320 512">
<title id="italic-title">italic</title>
<path fill="currentColor" d="M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"></path>
</symbol>
<symbol id="fa-strikethrough" viewBox="0 0 512 512">
<title id="strikethrough-title">Strikethrough</title>
<path fill="currentColor" d="M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"></path>
</symbol>
<symbol id="fa-link" viewBox="0 0 512 512">
<title id="link-title">Link</title>
<path fill="currentColor" d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path>
</symbol>
<symbol id="fa-list-ol" viewBox="0 0 512 512">
<title id="list-ol-title">list-ol</title>
<path fill="currentColor" d="M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
</symbol>
<symbol id="fa-list-ul" viewBox="0 0 512 512">
<title id="list-ul-title">list-ul</title>
<path fill="currentColor" d="M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
</symbol>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 53 KiB

@ -123,7 +123,6 @@
"semver": "5.5.0", "semver": "5.5.0",
"sequelize": "4.32.2", "sequelize": "4.32.2",
"serve-favicon": "2.4.5", "serve-favicon": "2.4.5",
"simplemde": "1.11.2",
"uuid": "3.2.1", "uuid": "3.2.1",
"validator": "9.3.0", "validator": "9.3.0",
"validator-as-promised": "1.0.2", "validator-as-promised": "1.0.2",
@ -190,6 +189,7 @@
"vee-validate": "2.0.3", "vee-validate": "2.0.3",
"vue": "2.5.13", "vue": "2.5.13",
"vue-clipboards": "1.2.1", "vue-clipboards": "1.2.1",
"vue-codemirror": "4.0.3",
"vue-hot-reload-api": "2.2.4", "vue-hot-reload-api": "2.2.4",
"vue-loader": "13.7.0", "vue-loader": "13.7.0",
"vue-simple-breakpoints": "1.0.3", "vue-simple-breakpoints": "1.0.3",

@ -1,6 +1,13 @@
const express = require('express') const express = require('express')
const router = express.Router() const router = express.Router()
/**
* Create/Edit document
*/
router.get('/e/*', (req, res, next) => {
res.render('main/editor')
})
/** /**
* View document * View document
*/ */

@ -1,24 +0,0 @@
extends ../layout.pug
block content
.container.is-fluid.has-collapsable-nav
.sidebar.is-collapsed
aside
.sidebar-label
span= t('sidebar.nav')
ul.sidebar-menu
li
a(href='/')
i.nc-icon-outline.ui-1_home-minimal
span= t('nav.root')
if !isGuest
li
a(href='/admin')
i.nc-icon-outline.ui-1_settings-gear-63
span= t('nav.account')
else
li
a(href='/login')
i.nc-icon-outline.arrows-1_log-in
span= t('nav.login')
tree

@ -1,25 +0,0 @@
extends ../layout.pug
block rootNavCenter
h2.nav-item= t('header.createdoc')
block rootNavRight
loading-spinner
span.nav-item
a.button.is-outlined(v-on:click='$store.dispatch("modalDiscardPage/open")')
i.nc-icon-outline.ui-1_simple-remove
span= t('nav.discard')
a.button(v-on:click='$root.$emit("editor/save")')
i.nc-icon-outline.ui-1_check
span= t('nav.savedocument')
block content
editor(inline-template, current-path=pageData.meta.path, v-cloak)
.editor-area
textarea(ref='editorTextArea', v-pre)= pageData.markdown
editor-file
editor-video
editor-codeblock
modal-discard-page(mode='create', current-path=pageData.meta.path)
page-loader(text=t('loading.editor'))

@ -1,29 +0,0 @@
extends ../layout.pug
block rootNavCenter
h2.nav-item= pageData.meta.title
block rootNavRight
loading-spinner
span.nav-item
a.button.is-outlined(v-on:click='$store.dispatch("modalDiscardPage/open")')
i.nc-icon-outline.ui-1_simple-remove
span= t('nav.discard')
a.button(v-on:click='$root.$emit("editor/save")')
i.nc-icon-outline.ui-1_check
span= t('nav.savechanges')
block content
editor(inline-template, current-path=pageData.meta.path, v-cloak)
.columns.is-gapless
.column.editor-area
textarea(ref='editorTextArea', v-pre)= pageData.markdown
//- .column.editor-sd
.editor-sd-item Images
.editor-sd-item Files
editor-file
editor-video
editor-codeblock
modal-discard-page(mode='edit', current-path=pageData.meta.path)
page-loader(text=t('loading.editor'))

@ -0,0 +1,6 @@
extends ../master.pug
block body
body
#app
editor

@ -1,11 +0,0 @@
extends ../layout.pug
block rootNavRight
i.nav-item#notifload
.nav-item
a.button(href='/' + pageData.meta._id)
i.nc-icon-outline.ui-3_select
span= t('nav.viewlatest')
block content
history(current-path=pageData.meta._id, history-data=JSON.stringify(pageData.history))

@ -1,5 +0,0 @@
extends ../master.pug
block body
body
#app.setup: setup(telemetry-id=telemetryClientID, wiki-version=packageObj.version, :langs!=JSON.stringify(data.langs).replace(/"/g, "'"))

@ -1,32 +0,0 @@
extends ../layout.pug
block rootNavCenter
h2.nav-item= pageData.meta.title
block rootNavRight
loading-spinner
span.nav-item
if rights.write && pageData.meta.path !== 'home'
a.button.is-outlined(v-on:click='$store.dispatch("modalMovePage/open")')
i.nc-icon-outline.arrows-1_shuffle-98
span= t('nav.move')
a.button.is-outlined(href='/' + pageData.meta.path)
i.nc-icon-outline.ui-2_book
span= t('nav.normalview')
if rights.write
a.button.is-orange(href='/edit/' + pageData.meta.path)
i.nc-icon-outline.ui-1_edit-76
span= t('nav.edit')
a.button(v-on:click='$store.dispatch("modalCreatePage/open")')
i.nc-icon-outline.ui-1_simple-add
span= t('nav.create')
block content
source-view(inline-template, entrypath=pageData.meta.path, v-cloak)
.ace-container
#source-display(v-pre)= pageData.markdown
modal-create-page(basepath=pageData.meta.path)
modal-move-page(current-path=pageData.meta.path)
page-loader(text=t('loading.source'))

@ -1,89 +0,0 @@
extends ../layout.pug
mixin tocMenu(ti)
each node in ti
li
a(href='#' + node.anchor, title=node.content)= node.content
if node.nodes.length > 0
ul
+tocMenu(node.nodes)
block rootNavRight
loading-spinner
.nav-item
if rights.write && pageData.meta.path !== 'home'
a.button.is-outlined.is-icon-only(@click='$store.dispatch("modalDeletePage/open")')
i.nc-icon-outline.ui-1_trash
a.button.is-outlined(v-on:click='$store.dispatch("modalMovePage/open")')
i.nc-icon-outline.arrows-1_shuffle-98
span= t('nav.move')
if appconfig.theme.viewSource === 'all' || (rights.write && appconfig.theme.viewSource === 'write')
a.button.is-outlined(href='/source/' + pageData.meta.path)
i.nc-icon-outline.education_paper
span= t('nav.source')
//-a.button.is-outlined(href='/hist/' + pageData.meta.path)
i.nc-icon-outline.ui-2_time
span= t('nav.history')
if rights.write
a.button(href='/edit/' + pageData.meta.path)
i.nc-icon-outline.ui-1_edit-76
span= t('nav.edit')
a.button(v-on:click='$store.dispatch("modalCreatePage/open")')
i.nc-icon-outline.ui-1_simple-add
span= t('nav.create')
block content
content-view(inline-template)
.container.is-fluid.has-mkcontent
.columns.is-gapless
.column.is-narrow.is-hidden-touch.sidebar
aside
.sidebar-label
span= t('sidebar.navigation')
ul.sidebar-menu
li
a(href='/')
i.nc-icon-outline.ui-1_home-minimal
span= t('nav.root')
li
a(href='/all')
i.nc-icon-outline.business_hierarchy-55
span= t('nav.allpages')
if pageData.parent
li
a(href='/' + pageData.parent.path)
i.icon-reply
span= pageData.parent.title
if !isGuest
li
a(href='/admin')
i.nc-icon-outline.ui-1_settings-gear-63
span= t('nav.settings')
else
li
a(href='/login')
i.nc-icon-outline.arrows-1_log-in
span= t('nav.login')
aside.sidebar-pagecontents
.sidebar-label
span= t('sidebar.pagecontents')
ul.sidebar-menu
li.is-hidden-until-scroll: a(href='#root', title='Top of Page')
i.icon-arrow-up2
+tocMenu(pageData.tree)
.column
.hero
h1.title#title= pageData.meta.title
if pageData.meta.subtitle
h2.subtitle= pageData.meta.subtitle
.content.mkcontent(v-pre, class=[appconfig.theme.code.dark ? 'is-code-dark' : 'is-code-light'])
!= pageData.html
modal-create-page(basepath=pageData.meta.path)
modal-move-page(current-path=pageData.meta.path)
modal-delete-page(current-path=pageData.meta.path)
anchor

@ -7,4 +7,4 @@ block body
img(src='/svg/logo-wikijs.svg', alt='Wiki.js') img(src='/svg/logo-wikijs.svg', alt='Wiki.js')
h1= t('welcome.title') h1= t('welcome.title')
h2= t('welcome.subtitle') h2= t('welcome.subtitle')
a.button.is-blue(href='/create/home')= t('welcome.createhome') a.button.is-blue(href='/e/home')= t('welcome.createhome')

@ -2270,15 +2270,9 @@ code-point-at@^1.0.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
codemirror-spell-checker@*: codemirror@^5.32.0:
version "1.1.2" version "5.34.0"
resolved "https://registry.yarnpkg.com/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz#1c660f9089483ccb5113b9ba9ca19c3f4993371e" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.34.0.tgz#e345dcc09a6149db65cc70dff9d389c1c4b0cd06"
dependencies:
typo-js "*"
codemirror@*:
version "5.27.4"
resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.27.4.tgz#0e817c839bfea9959dd16cd48ae14acc0e43c3b6"
collection-visit@^1.0.0: collection-visit@^1.0.0:
version "1.0.0" version "1.0.0"
@ -3091,6 +3085,10 @@ dicer@0.2.5, dicer@^0.2.5:
readable-stream "1.1.x" readable-stream "1.1.x"
streamsearch "0.1.2" streamsearch "0.1.2"
diff-match-patch@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048"
diff2html@2.3.3: diff2html@2.3.3:
version "2.3.3" version "2.3.3"
resolved "https://registry.yarnpkg.com/diff2html/-/diff2html-2.3.3.tgz#31bb815881c975634c7f3907a5e789341e1560bc" resolved "https://registry.yarnpkg.com/diff2html/-/diff2html-2.3.3.tgz#31bb815881c975634c7f3907a5e789341e1560bc"
@ -6277,10 +6275,6 @@ markdown-it@8.4.0:
mdurl "^1.0.1" mdurl "^1.0.1"
uc.micro "^1.0.3" uc.micro "^1.0.3"
marked@*:
version "0.3.6"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7"
math-expression-evaluator@^1.2.14: math-expression-evaluator@^1.2.14:
version "1.2.17" version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
@ -9236,14 +9230,6 @@ simple-swizzle@^0.2.2:
dependencies: dependencies:
is-arrayish "^0.3.1" is-arrayish "^0.3.1"
simplemde@1.11.2:
version "1.11.2"
resolved "https://registry.yarnpkg.com/simplemde/-/simplemde-1.11.2.tgz#a23a35d978d2c40ef07dec008c92f070d8e080e3"
dependencies:
codemirror "*"
codemirror-spell-checker "*"
marked "*"
slash@^1.0.0: slash@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@ -9873,10 +9859,6 @@ typical@^2.6.0, typical@^2.6.1:
version "2.6.1" version "2.6.1"
resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d"
typo-js@*:
version "1.0.3"
resolved "https://registry.yarnpkg.com/typo-js/-/typo-js-1.0.3.tgz#54d8ebc7949f1a7810908b6002c6841526c99d5a"
uc.micro@^1.0.1, uc.micro@^1.0.3: uc.micro@^1.0.1, uc.micro@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192"
@ -10174,6 +10156,13 @@ vue-clipboards@1.2.1:
dependencies: dependencies:
clipboard "^1.7.1" clipboard "^1.7.1"
vue-codemirror@4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/vue-codemirror/-/vue-codemirror-4.0.3.tgz#83721031e1f606f428136a3dfd9fc710ffdec149"
dependencies:
codemirror "^5.32.0"
diff-match-patch "^1.0.0"
vue-eslint-parser@^2.0.1: vue-eslint-parser@^2.0.1:
version "2.0.2" version "2.0.2"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.2.tgz#8d603545e9d7c134699075bd1772af1ffd86b744" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.2.tgz#8d603545e9d7c134699075bd1772af1ffd86b744"

Loading…
Cancel
Save