diff options
Diffstat (limited to 'addons/web_editor/static/lib/summernote/src/less')
| -rw-r--r-- | addons/web_editor/static/lib/summernote/src/less/elements.less | 156 | ||||
| -rw-r--r-- | addons/web_editor/static/lib/summernote/src/less/summernote.less | 459 |
2 files changed, 615 insertions, 0 deletions
diff --git a/addons/web_editor/static/lib/summernote/src/less/elements.less b/addons/web_editor/static/lib/summernote/src/less/elements.less new file mode 100644 index 00000000000..2ece26af004 --- /dev/null +++ b/addons/web_editor/static/lib/summernote/src/less/elements.less @@ -0,0 +1,156 @@ +/*--------------------------------------------------- + LESS Elements 0.9 + --------------------------------------------------- + A set of useful LESS mixins + More info at: http://lesselements.com + ---------------------------------------------------*/ + +.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) { + background: @color; + background: -webkit-gradient(linear, + left bottom, + left top, + color-stop(0, @start), + color-stop(1, @stop)); + background: -ms-linear-gradient(bottom, + @start, + @stop); + background: -moz-linear-gradient(center bottom, + @start 0%, + @stop 100%); + background: -o-linear-gradient(@stop, + @start); + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@stop,@start)); +} +.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255) { + background: @color; + background: -webkit-gradient(linear, + left bottom, + left top, + color-stop(0, rgb(@start,@start,@start)), + color-stop(1, rgb(@stop,@stop,@stop))); + background: -ms-linear-gradient(bottom, + rgb(@start,@start,@start) 0%, + rgb(@stop,@stop,@stop) 100%); + background: -moz-linear-gradient(center bottom, + rgb(@start,@start,@start) 0%, + rgb(@stop,@stop,@stop) 100%); + background: -o-linear-gradient(rgb(@stop,@stop,@stop), + rgb(@start,@start,@start)); + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",rgb(@stop,@stop,@stop),rgb(@start,@start,@start))); +} +.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE) { + border-top: solid 1px @top-color; + border-left: solid 1px @left-color; + border-right: solid 1px @right-color; + border-bottom: solid 1px @bottom-color; +} +.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) { + -webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha); + -moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha); + box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha); +} +.rounded(@radius: 2px) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} +.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) { + -webkit-border-top-right-radius: @topright; + -webkit-border-bottom-right-radius: @bottomright; + -webkit-border-bottom-left-radius: @bottomleft; + -webkit-border-top-left-radius: @topleft; + -moz-border-radius-topright: @topright; + -moz-border-radius-bottomright: @bottomright; + -moz-border-radius-bottomleft: @bottomleft; + -moz-border-radius-topleft: @topleft; + border-top-right-radius: @topright; + border-bottom-right-radius: @bottomright; + border-bottom-left-radius: @bottomleft; + border-top-left-radius: @topleft; + .background-clip(padding-box); +} +.opacity(@opacity: 0.5) { + -webkit-opacity: @opacity; + -khtml-opacity: @opacity; + -moz-opacity: @opacity; + opacity: @opacity; + @opperc: @opacity * 100; + -ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(opacity=@{opperc})"; + filter: ~"alpha(opacity=@{opperc})"; +} +.transition-duration(@duration: 0.2s) { + -moz-transition-duration: @duration; + -webkit-transition-duration: @duration; + -o-transition-duration: @duration; + transition-duration: @duration; +} +.transform(...) { + -webkit-transform: @arguments; + -moz-transform: @arguments; + -o-transform: @arguments; + -ms-transform: @arguments; + transform: @arguments; +} +.rotation(@deg:5deg){ + .transform(rotate(@deg)); +} +.scale(@ratio:1.5){ + .transform(scale(@ratio)); +} +.transition(@duration:0.2s, @ease:ease-out) { + -webkit-transition: all @duration @ease; + -moz-transition: all @duration @ease; + -o-transition: all @duration @ease; + transition: all @duration @ease; +} +.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) { + -webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha); + -moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha); + box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha); +} +.box-shadow(@arguments) { + -webkit-box-shadow: @arguments; + -moz-box-shadow: @arguments; + box-shadow: @arguments; +} +.box-sizing(@sizing: border-box) { + -ms-box-sizing: @sizing; + -moz-box-sizing: @sizing; + -webkit-box-sizing: @sizing; + box-sizing: @sizing; +} +.user-select(@argument: none) { + -webkit-user-select: @argument; + -moz-user-select: @argument; + -ms-user-select: @argument; + user-select: @argument; +} +.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) { + -moz-column-width: @colwidth; + -moz-column-count: @colcount; + -moz-column-gap: @colgap; + -moz-column-rule-color: @columnRuleColor; + -moz-column-rule-style: @columnRuleStyle; + -moz-column-rule-width: @columnRuleWidth; + -webkit-column-width: @colwidth; + -webkit-column-count: @colcount; + -webkit-column-gap: @colgap; + -webkit-column-rule-color: @columnRuleColor; + -webkit-column-rule-style: @columnRuleStyle; + -webkit-column-rule-width: @columnRuleWidth; + column-width: @colwidth; + column-count: @colcount; + column-gap: @colgap; + column-rule-color: @columnRuleColor; + column-rule-style: @columnRuleStyle; + column-rule-width: @columnRuleWidth; +} +.translate(@x:0, @y:0) { + .transform(translate(@x, @y)); +} +.background-clip(@argument: padding-box) { + -moz-background-clip: @argument; + -webkit-background-clip: @argument; + background-clip: @argument; +} diff --git a/addons/web_editor/static/lib/summernote/src/less/summernote.less b/addons/web_editor/static/lib/summernote/src/less/summernote.less new file mode 100644 index 00000000000..4a16ba4b273 --- /dev/null +++ b/addons/web_editor/static/lib/summernote/src/less/summernote.less @@ -0,0 +1,459 @@ +@import "elements.less"; + +/* Theme Variables + ------------------------------------------*/ +@border-color: #a9a9a9; +@background-color: #f5f5f5; + +/* Frame Mode Layout + ------------------------------------------*/ +.note-editor { + border: 1px solid @border-color; + position: relative; + + /* dropzone */ + @dropzone-color: lightskyblue; + @dropzone-active-color: darken(@dropzone-color, 30); + .note-dropzone { + position: absolute; + display: none; + z-index: 1; + border: 2px dashed @dropzone-color; + color: @dropzone-color; + background-color: white; + opacity: 0.95; + pointer-event: none; + + .note-dropzone-message { + display: table-cell; + vertical-align: middle; + text-align: center; + font-size: 28px; + font-weight: bold; + } + + &.hover { + border: 2px dashed @dropzone-active-color; + color: @dropzone-active-color; + } + } + + &.dragover .note-dropzone { + display: table; + } + + .note-toolbar { + background-color: @background-color; + border-bottom: 1px solid @border-color; + } + + /* fullscreen mode */ + &.fullscreen { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 1050; /* bs3 modal-backdrop: 1030, bs2: 1040 */ + .note-editable { + background-color: white; + } + .note-resizebar { + display: none; + } + } + + /* codeview mode */ + &.codeview { + .note-editable { + display: none; + } + .note-codable { + display: block; + } + } + + /* statusbar */ + .note-statusbar { + background-color: @background-color; + .note-resizebar { + height: 8px; + width: 100%; + border-top: 1px solid @border-color; + cursor: ns-resize; + .note-icon-bar { + width: 20px; + margin: 1px auto; + border-top: 1px solid @border-color; + } + } + } + + /* editable */ + .note-editable[contenteditable=true]:empty:not(:focus):before { + content:attr(data-placeholder); + color: #a9a9a9; + } + + .note-editable { + padding: 10px; + overflow: auto; + outline: none; + } + .note-editable[contenteditable="false"] { + background-color: #e5e5e5; + } + + /* codeable */ + .note-codable { + display: none; + width: 100%; + padding: 10px; + border: none; + box-shadow: none; + font-family: Menlo, Monaco, monospace, sans-serif; + font-size: 14px; + color: #ccc; + background-color: #222; + resize: none; + + /* override BS2 default style */ + .box-sizing(border-box); + .rounded(0); + margin-bottom: 0; + } +} + +/* Air Mode Layout + ------------------------------------------*/ +.note-air-editor { + outline: none; +} + +/* Popover + ------------------------------------------*/ +.note-popover .popover { + max-width: none; + .popover-content { + a { + display: inline-block; + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; /* for FF */ + vertical-align: middle; /* for FF */ + } + } + & .arrow { + left: 20px; + } +} + +/* Popover and Toolbar (Button container) + ------------------------------------------*/ +.note-popover .popover .popover-content, .note-toolbar { + margin: 0; + padding: 0 0 5px 5px; + + &>.btn-group { + margin-top: 5px; + margin-left: 0; + margin-right: 5px; + } + + .btn-group { + .note-table { + min-width: 0; + padding: 5px; + .note-dimension-picker { + font-size: 18px; + .note-dimension-picker-mousecatcher { + position: absolute !important; + z-index: 3; + width: 10em; + height: 10em; + cursor: pointer; + } + .note-dimension-picker-unhighlighted { + position: relative !important; + z-index: 1; + width: 5em; + height: 5em; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat; + } + .note-dimension-picker-highlighted { + position: absolute !important; + z-index: 2; + width: 1em; + height: 1em; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat; + } + } + } + } + + .note-style { + h1, h2, h3, h4, h5, h6, blockquote { + margin: 0; + } + } + + .note-color { + .dropdown-toggle { + width: 20px; + padding-left: 5px; + } + .dropdown-menu { + min-width: 340px; + .btn-group { + margin: 0; + &:first-child { + margin: 0 5px; + } + + .note-palette-title { + font-size: 12px; + margin: 2px 7px; + text-align: center; + border-bottom: 1px solid #eee; + } + + .note-color-reset { + font-size: 11px; + margin: 3px; + padding: 0 3px; + cursor: pointer; + .rounded(5px); + } + + .note-color-row { + height: 20px; + } + + .note-color-reset:hover { + background: #eee; + } + } + } + } + + .note-para { + .dropdown-menu { + min-width: 216px; + padding: 5px; + &>div:first-child { + margin-right: 5px; + } + } + } + + /* dropdown-menu for toolbar and popover */ + .dropdown-menu { + min-width: 90px; + + /* dropdown-menu right position */ + /* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */ + &.right { + right: 0; + left: auto; + &::before { right: 9px; left: auto !important; } + &::after { right: 10px; left: auto !important; } + } + + /* dropdown-menu for selectbox */ + li a i { + color: deepskyblue; + visibility: hidden; + } + li a.checked i { + visibility: visible; + } + } + + .note-fontsize-10 { + font-size: 10px; + } + + /* color palette for toolbar and popover */ + .note-color-palette { + line-height: 1; + div { + .note-color-btn { + width: 20px; + height: 20px; + padding: 0; + margin: 0; + border: 1px solid #fff; + } + .note-color-btn:hover { + border: 1px solid #000; + } + } + } +} + +/* Dialog + ------------------------------------------*/ +.note-dialog { + &>div { + display: none; /* BS2's hide pacth. */ + } + .form-group { /* overwrite BS's form-horizontal minus margins */ + margin-left: 0; + margin-right: 0; + } + .note-modal-form { + margin: 0; /* overwrite BS2's form margin bottom */ + } + .note-image-dialog { + .note-dropzone { + min-height: 100px; + font-size: 30px; + line-height: 4; /* vertical-align */ + color: lightgray; + text-align: center; + border: 4px dashed lightgray; + margin-bottom: 10px; + } + } + .note-help-dialog { + @note-shortcut-hl: #dd0; + font-size: 12px; + color: #ccc; + background-color: #222 !important; + .opacity(0.9); + .modal-content { + background: transparent; + border: 1px solid white; + .box-shadow(none); + .rounded(5px); + } + + /* BS2's background pacth. */ + background: transparent; + border: none; + + a { + font-size: 12px; + color: white; + } + + .title { + color: white; + font-size: 14px; + font-weight: bold; + padding-bottom: 5px; + margin-bottom: 10px; + border-bottom: white 1px solid; + } + + .modal-close { + font-size: 14px; + color: @note-shortcut-hl; + cursor: pointer; + } + + .text-center { + margin: 10px 0 0; + } + + .note-shortcut { + padding-top: 8px; + padding-bottom: 8px; + + &-row { + margin-right: -5px; + margin-left: -5px; + } + + &-col { + padding-right: 5px; + padding-left: 5px; + } + + &-title { + font-size: 13px; + font-weight: bold; + color: @note-shortcut-hl; + } + + &-key { + font-family: "Courier New"; + color: @note-shortcut-hl; + text-align: right; + } + } + } +} + +/* Handle + ------------------------------------------*/ +.note-handle { + /* control selection */ + .note-control-selection { + position: absolute; + display: none; + border: 1px solid black; + &>div { position: absolute; } + + .note-control-selection-bg { + width: 100%; + height: 100%; + background-color: black; + .opacity(0.30) + } + + .note-control-handle { + width: 7px; + height: 7px; + border: 1px solid black; + } + + .note-control-holder { + .note-control-handle; + } + + .note-control-sizing { + .note-control-handle; + background-color: white; + } + + .note-control-nw { + top: -5px; + left: -5px; + border-right: none; + border-bottom: none; + } + + .note-control-ne { + top: -5px; + right: -5px; + border-bottom: none; + border-left: none; + } + + .note-control-sw { + bottom: -5px; + left: -5px; + border-top: none; + border-right: none; + } + + .note-control-se { + right: -5px; + bottom: -5px; + cursor: se-resize; + } + + .note-control-selection-info { + right: 0; + bottom: 0; + padding: 5px; + margin: 5px; + color: white; + background-color: black; + font-size: 12px; + .rounded(5px); + .opacity(0.7); + } + } +} |
