restore composer.json, add mysqli extension

This commit is contained in:
2026-04-15 17:02:52 +05:00
commit 77cf56a348
4317 changed files with 1397107 additions and 0 deletions

149
public/vendor/editor/src/styles/elements.scss vendored Executable file
View File

@@ -0,0 +1,149 @@
@mixin 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: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($stop)}', endColorstr='#{ie-hex-str($start)}', GradientType=0);
}
@mixin 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: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str(rgb($stop,$stop,$stop))}', endColorstr='#{ie-hex-str(rgb($start,$start,$start))}', GradientType=0);
}
@mixin 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;
}
@mixin 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);
}
@mixin rounded($radius: 2px) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
@mixin 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;
@include background-clip(padding-box);
}
@mixin 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);
}
@mixin transition-duration($duration: 0.2s) {
-moz-transition-duration: $duration;
-webkit-transition-duration: $duration;
-o-transition-duration: $duration;
transition-duration: $duration;
}
@mixin transform($arguments...) {
-webkit-transform: $arguments;
-moz-transform: $arguments;
-o-transform: $arguments;
-ms-transform: $arguments;
transform: $arguments;
}
@mixin rotation($deg:5deg) {
@include transform(rotate($deg));
}
@mixin scale($ratio:1.5) {
@include transform(scale($ratio));
}
@mixin 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;
}
@mixin 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);
}
@mixin box-shadow($arguments) {
-webkit-box-shadow: $arguments;
-moz-box-shadow: $arguments;
box-shadow: $arguments;
}
@mixin box-sizing($sizing: border-box) {
-ms-box-sizing: $sizing;
-moz-box-sizing: $sizing;
-webkit-box-sizing: $sizing;
box-sizing: $sizing;
}
@mixin user-select($argument: none) {
-webkit-user-select: $argument;
-moz-user-select: $argument;
-ms-user-select: $argument;
user-select: $argument;
}
@mixin 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;
}
@mixin translate($x:0, $y:0) {
@include transform(translate($x, $y));
}
@mixin background-clip($argument: padding-box) {
-moz-background-clip: $argument;
-webkit-background-clip: $argument;
background-clip: $argument;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,38 @@
.note-btn-group {
position: relative;
display: inline-block;
margin-right: 8px;
> .note-btn-group {
margin-right: 0;
}
> .note-btn:first-child {
margin-left: 0;
}
.note-btn + .note-btn,
.note-btn + .note-btn-group,
.note-btn-group + .note-btn,
.note-btn-group + .note-btn-group {
margin-left: -1px;
}
> .note-btn:not(:first-child),
> .note-btn-group:not(:first-child) > .note-btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
> .note-btn:not(:last-child):not(.dropdown-toggle),
> .note-btn-group:not(:last-child) > .note-btn {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
&.open {
> .note-dropdown {
display: block;
}
}
}

View File

@@ -0,0 +1,117 @@
.note-btn {
display: inline-block;
font-weight: 400;
margin-bottom: 0;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid $btn-default-border;
white-space: nowrap;
outline: 0;
@include button-maker($btn-default-color, $btn-default-bg, $btn-default-hover-bg, $btn-default-active-bg, $btn-default-border);
@include button-size($padding-base-vertical, $padding-base-horizontal, $font-size, $line-height, $btn-border-radius-base);
@include user-select(none);
&:hover,
&:focus,
&.focus {
color: $btn-default-color;
text-decoration: none;
border: 1px solid $btn-default-border;
background-color: $btn-default-hover-bg;
outline: 0;
@include rounded(1px);
}
&:active,
&.active {
outline: 0;
background-image: none;
color: #333;
text-decoration: none;
border: 1px solid #dae0e5;
background-color: #ebebeb;
outline: 0;
border-radius: 1px;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
&.disabled,
&[disabled],
fieldset[disabled] & {
cursor: $cursor-disabled;
@include opacity(.65);
@include box-shadow(none);
}
& > span.note-icon-caret:first-child {
margin-left: -1px;
}
& > span.note-icon-caret:nth-child(2) {
padding-left: 3px;
margin-right: -5px;
}
}
.note-btn-primary {
background: #fa6362;
color: #fff;
&:hover,
&:focus,
&.focus {
color: #fff;
text-decoration: none;
border: 1px solid $btn-default-border;
background-color: #fa6362;
@include rounded(1px);
}
}
.note-btn-block {
display: block;
width: 100%;
}
.note-btn-block + .note-btn-block {
margin-top:5px;
}
// Specificity overrides
input[type="submit"],
input[type="reset"],
input[type="button"] {
&.note-btn-block {
width: 100%;
}
}
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.close {
float: right;
font-size: 21px;
line-height: 1;
color: #000;
opacity: .2;
}
.close:hover {
-webkit-opacity: 1;
-khtml-opacity: 1;
-moz-opacity: 1;
-ms-filter: alpha(opacity=100);
filter: alpha(opacity=100);
opacity: 1
}

View File

@@ -0,0 +1,6 @@
.note-frame {
@include box-sizing(border-box);
color: #000;
font-family: $font-family;
border-radius: 4px;
}

View File

@@ -0,0 +1,48 @@
.note-dropdown {
position: relative;
}
.note-color {
.dropdown-toggle {
width: 30px;
padding-left: 5px;
}
}
.note-dropdown-menu {
display: none;
min-width: 100px;
position: absolute;
top: 100%;
left: 0;
z-index : $zindex-dropdown;
float: left;
text-align:left;
background: $dropdown-color-bg;
border: 1px solid $dropdown-color-border;
padding: 5px;
background-clip: padding-box;
@include box-shadow(0 1px 1px rgba(0,0,0,.06));
> *:last-child {
margin-right: 0;
}
}
.note-btn-group.open .note-dropdown-menu {
display: block;
}
.note-dropdown-item {
display: block;
&:hover {
background-color: $btn-default-hover-bg;
}
}
a.note-dropdown-item,
a.note-dropdown-item:hover {
margin: 5px 0;
color: #000;
text-decoration: none;
}

View File

@@ -0,0 +1,44 @@
.note-form-group {
padding-bottom: 20px;
}
.note-form-group:last-child {
padding-bottom: 0;
}
.note-form-label {
display: block;
width: 100%;
font-size: 16px;
color: #42515f;
margin-bottom: 10px;
font-weight: 700;
}
.note-input {
width: 100%;
display: block;
border: 1px solid #ededef;
background: #fff;
outline: 0;
padding: 6px 4px;
font-size: 14px;
@include box-sizing();
}
.note-input::-webkit-input-placeholder {
color: $gray-lighter;
}
.note-input:-moz-placeholder { /* Firefox 18- */
color: $gray-lighter;
}
.note-input::-moz-placeholder { /* Firefox 19+ */
color: $gray-lighter;
}
.note-input:-ms-input-placeholder {
color: $gray-lighter;
}

View File

@@ -0,0 +1 @@
@import "mixins/buttons.scss";

View File

@@ -0,0 +1,40 @@
// Button variants
//
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons
@mixin button-maker($color, $background, $focusBackground, $activeBackground, $border) {
color: $color;
background-color: $background;
border-color: $border;
&:focus,
&.focus {
color: $color;
background-color: $focusBackground;
border-color: $border;
}
&:hover {
color: $color;
background-color: $focusBackground;
border-color: $border;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
&:focus,
&.focus {
background-color: $background;
border-color: $border;
}
}
}
// Button sizes
@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
padding: $padding-vertical $padding-horizontal;
font-size: $font-size;
line-height: $line-height;
border-radius: $border-radius;
}

View File

@@ -0,0 +1,190 @@
.note-modal {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: $zindex-modal;
@include opacity(1);
display: none;
&.open {
display:block;
}
}
.note-modal-content {
position: relative;
width: auto;
margin: 30px 20px;
border: 1px solid $modal-content-border-color;
background: $modal-content-bg;
background-clip: border-box;
outline: 0;
border-radius: 5px;
@include box-shadow(0 3px 9px rgba(0,0,0,.5));
}
.note-modal-header {
padding: 10px 20px;
border: 1px solid #ededef;
}
.note-modal-body {
position: relative;
padding: 20px 30px;
// shortcut text style
kbd {
border-radius: 2px;
background-color: #000;
color: #fff;
padding: 3px 5px;
font-weight: 700;
@include box-sizing();
}
}
.note-modal-footer {
height: 40px;
padding: 10px;
text-align: center;
}
.note-modal-footer a {
color: #337ab7;
text-decoration: none
}
.note-modal-footer a:hover,
.note-modal-footer a:focus {
color: #23527c;
text-decoration: underline
}
.note-modal-footer .note-btn {
float: right
}
.note-modal-title {
font-size: 20px;
color: #42515f;
margin: 0;
line-height: 1.4;
}
.note-modal-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: $zindex-modal-background;
background: $modal-backdrop-bg;
@include opacity(0.5);
display: none;
&.open {
display: block;
}
}
// Scale up the modal
@media (min-width: 768px) {
// Automatically set modal's width for larger viewports
.note-modal-content {
width: 600px;
margin: 30px auto;
}
}
@media (min-width: 992px) {
.note-modal-content-large {
width: 900px;
}
}
.note-modal {
.note-help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
color: #737373;
}
.note-nav {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
.note-nav-link {
display: block;
padding: 0.5rem 1rem;
color: #007bff;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
.note-nav-link:focus,
.note-nav-link:hover {
color: #0056b3;
text-decoration: none;
}
.note-nav-link.disabled {
color: #868e96;
}
.note-nav-tabs {
border-bottom: 1px solid #ddd;
}
.note-nav-tabs .note-nav-item {
margin-bottom: -1px;
}
.note-nav-tabs .note-nav-link {
border: 1px solid transparent;
border-top-left-radius: 0.25rem;
border-top-right-radius: 0.25rem;
}
.note-nav-tabs .note-nav-link:focus,
.note-nav-tabs .note-nav-link:hover {
border-color: #e9ecef #e9ecef #ddd;
}
.note-nav-tabs .note-nav-link.disabled {
color: #868e96;
background-color: transparent;
border-color: transparent;
}
.note-nav-tabs .note-nav-item.show .note-nav-link {
color: #495057;
background-color: #fff;
border-color: #ddd #ddd #fff;
}
.note-tab-content {
margin: 15px auto;
}
.note-tab-content > .note-tab-pane:target ~ .note-tab-pane:last-child,
.note-tab-content > .note-tab-pane {
display: none;
}
.note-tab-content > :last-child,
.note-tab-content > .note-tab-pane:target {
display: block;
}
}

View File

@@ -0,0 +1,122 @@
.note-popover {
position: absolute;
z-index: $zindex-popover;
display: block;
// Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
font-size: 13px;
font-family: $font-family;
display: none;
background: $popover-bg;
border: 1px solid $popover-border-color;
border: 1px solid $popover-fallback-border-color;
&.in { display: block; }
&.top { margin-top: -10px; padding: $tooltip-arrow-width 0; }
&.right { margin-left: 10px; padding: 0 $tooltip-arrow-width; }
&.bottom { margin-top: 10px; padding: $tooltip-arrow-width 0; }
&.left { margin-left: -10px; padding: 0 $tooltip-arrow-width; }
}
.note-popover {
&.bottom .note-popover-arrow {
top: -11px;
left: 20px;
margin-left: -$popover-arrow-width;
border-top-width: 0;
border-bottom-color: $popover-arrow-outer-fallback-color;
border-bottom-color: $popover-arrow-outer-color;
&::after {
top: 1px;
margin-left: -10px;
content: " ";
border-top-width: 0;
border-bottom-color: #fff;
}
}
&.top .note-popover-arrow {
bottom: -11px;
left: 20px;
margin-left: -$popover-arrow-width;
border-bottom-width: 0;
border-top-color: $popover-arrow-outer-fallback-color;
border-top-color: $popover-arrow-outer-color;
&::after {
bottom: 1px;
margin-left: -10px;
content: " ";
border-bottom-width: 0;
border-top-color: #fff;
}
}
&.right .note-popover-arrow {
top: 50%;
left: -11px;
margin-top: -$popover-arrow-width;
border-left-width: 0;
border-right-color: $popover-arrow-outer-fallback-color;
border-right-color: $popover-arrow-outer-color;
&::after {
left: 1px;
margin-top: -10px;
content: " ";
border-left-width: 0;
border-right-color: #fff;
}
}
&.left .note-popover-arrow {
top: 50%;
right: -11px;
margin-top: -$popover-arrow-width;
border-right-width: 0;
border-left-color: $popover-arrow-outer-fallback-color;
border-left-color: $popover-arrow-outer-color;
&::after {
right: 1px;
margin-top: -10px;
content: " ";
border-right-width: 0;
border-left-color: #fff;
}
}
}
.note-popover-arrow {
position: absolute;
width: 0;
height: 0;
border: 11px solid transparent;
&::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
content : " ";
border-width: 10px;
}
}
.note-popover-content {
/*max-width: $popover-max-width;*/
padding: 3px 8px;
color: $popover-color;
text-align: center;
background-color: $popover-bg;
min-width: 100px;
min-height: 30px;
}

View File

@@ -0,0 +1,9 @@
.note-toolbar {
padding: 10px 5px;
border-bottom: 1px solid #e2e2e2;
color: #333;
background-color: #f5f5f5;
border-color: #ddd;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}

View File

@@ -0,0 +1,68 @@
.note-tooltip {
position: absolute;
z-index: $zindex-tooltip;
display: block;
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
font-size: 13px;
transition: opacity .15s;
@include opacity(0);
&.in { @include opacity($tooltip-opacity); }
&.top { margin-top: -3px; padding: $tooltip-arrow-width 0; }
&.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; }
&.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; }
&.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
}
.note-tooltip {
&.bottom .note-tooltip-arrow {
top: 0;
left: 50%;
margin-left: -$tooltip-arrow-width;
border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
border-bottom-color: $tooltip-arrow-color;
}
&.top .note-tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -$tooltip-arrow-width;
border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
border-top-color: $tooltip-arrow-color;
}
&.right .note-tooltip-arrow {
top: 50%;
left: 0;
margin-top: -$tooltip-arrow-width;
border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
border-right-color: $tooltip-arrow-color;
}
&.left .note-tooltip-arrow {
top: 50%;
right: 0;
margin-top: -$tooltip-arrow-width;
border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
border-left-color: $tooltip-arrow-color;
}
}
.note-tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.note-tooltip-content {
max-width: $tooltip-max-width;
font-family: $font-family;
padding: 3px 8px;
color: $tooltip-color;
text-align: center;
background-color: $tooltip-bg;
}

View File

@@ -0,0 +1,82 @@
$gray-base: #000;
$gray-darker: lighten($gray-base, 13.5%); // #222
$gray-dark: lighten($gray-base, 20%); // #333
$gray: lighten($gray-base, 33.5%); // #555
$gray-light: lighten($gray-base, 46.7%); // #777
$gray-lighter:lighten($gray-base, 93.5%); // #eee
$font-family: sans-serif;
$font-size: 14px;
$font-size-large: ceil(($font-size * 1.25));
$font-size-small: ceil(($font-size * 0.85));
$line-height: 1.4;
$line-height-computed: floor(($line-height * $font-size));
$padding-base-vertical: 5px;
$padding-base-horizontal: 10px;
$border-radius-base: 3px;
$btn-border-radius-base: $border-radius-base;
$icon-font-path: "../fonts/";
$icon-font-name: "summernote";
$icon-font-svg-id: "summernote";
$btn-font-weight: normal;
$btn-default-color : #333;
$btn-default-bg: #fff;
$btn-default-border: #dae0e5;
$btn-default-hover-bg: #ebebeb;
$btn-default-active-bg: #f0f0f0;
$input-bg: #fff;
$input-bg-disabled: $gray-lighter;
$input-color: $gray;
$input-border: #ccc;
$input-border-focus: #66afe9;
$input-color-placeholder: #999;
$cursor-disabled: not-allowed;
$zindex-dropdown: 1000;
$zindex-popover:1060;
$zindex-tooltip:1070;
$zindex-modal-background: 1040;
$zindex-modal: 1050;
$dropdown-color-bg: #fff;
$dropdown-color-border: #e2e2e2;
$tooltip-max-width:200px;
$tooltip-color: #fff;
$tooltip-bg: #000;
$tooltip-opacity: .9;
$tooltip-arrow-width: 5px;
$tooltip-arrow-color: $tooltip-bg;
$popover-bg: #ffffff;
$popover-color: #000;
$popover-max-width: 276px;
$popover-border-color: rgba(0,0,0,.2);
$popover-fallback-border-color: #ccc;
$popover-title-bg: darken($popover-bg, 3%);
$popover-arrow-width: 10px;
$popover-arrow-color: $popover-bg;
$popover-arrow-outer-width:($popover-arrow-width + 1);
$popover-arrow-outer-color:fade-in($popover-border-color, .05);
$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%);
$modal-inner-padding: 15px;
$modal-title-padding: 15px;
$modal-title-line-height: $line-height;
$modal-content-bg: #fff;
$modal-content-border-color: rgba(0,0,0,.2);
$modal-content-fallback-border-color: #999;
$modal-backdrop-bg: #000;
$modal-backdrop-opacity: .5;
$modal-header-border-color: #e5e5e5;
$modal-footer-border-color: $modal-header-border-color;

View File

@@ -0,0 +1,3 @@
@import 'summernote-icons.css';
@import "elements.scss";
@import 'summernote-common.scss';

View File

@@ -0,0 +1,10 @@
@import 'summernote-icons.css';
@import "elements.scss";
@import 'summernote-common.scss';
.note-btn-group .note-btn {
background: #fff;
border-color: #dae0e5;
padding: 0.28rem 0.65rem;
font-size: 13px;
}

View File

@@ -0,0 +1,612 @@
/* Theme Variables
------------------------------------------ */
$border-color: #a9a9a9;
$background-color: #f5f5f5;
$img-margin-left: 10px;
$img-margin-right: 10px;
/* Layout
------------------------------------------ */
.note-editor {
position: relative;
// dropzone
$dropzone-color: lightskyblue;
$dropzone-active-color: darken($dropzone-color, 30);
.note-dropzone {
position: absolute;
display: none;
z-index: 100;
color: $dropzone-color;
background-color: #fff;
opacity: 0.95;
.note-dropzone-message {
display: table-cell;
vertical-align: middle;
text-align: center;
font-size: 28px;
font-weight: 700;
}
&.hover {
color: $dropzone-active-color;
}
}
&.dragover .note-dropzone {
display: table;
}
.note-editing-area {
position: relative;
.note-editable {
outline: none;
sup {
vertical-align: super;
}
sub {
vertical-align: sub;
}
img.note-float-left {
margin-right: $img-margin-right;
}
img.note-float-right {
margin-left: $img-margin-left;
}
}
}
}
/* Frame mode layout
------------------------------------------ */
.note-editor.note-frame,
.note-editor.note-airframe {
border: 1px solid $border-color;
// codeview mode
&.codeview {
.note-editing-area {
.note-editable {
display: none;
}
.note-codable {
display: block;
}
}
}
.note-editing-area {
overflow: hidden;
// editable
.note-editable {
background-color: #fff;
color: #000;
padding: 10px;
overflow: auto;
word-wrap: break-word;
&[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;
outline: none;
// override BS2 default style
@include box-sizing(border-box);
@include rounded(0);
margin-bottom: 0;
}
}
// fullscreen mode
&.fullscreen {
position: fixed;
top: 0;
left: 0;
width: 100% !important;
z-index: 1050; // bs3 modal-backdrop: 1030, bs2: 1040
.note-editable {
background-color: #fff;
}
.note-resizebar {
display: none;
}
}
// Notifications
.note-status-output {
display: block;
width: 100%;
font-size: 14px;
line-height: 1.42857143;
height: 20px;
margin-bottom: 0;
color: #000;
border: 0;
border-top: 1px solid #e2e2e2;
}
.note-status-output:empty {
height: 0;
border-top: 0 solid transparent;
}
.note-status-output .pull-right {
float: right !important;
}
.note-status-output .text-muted {
color: #777;
}
.note-status-output .text-primary {
color: #286090;
}
.note-status-output .text-success {
color: #3c763d;
}
.note-status-output .text-info {
color: #31708f;
}
.note-status-output .text-warning {
color: #8a6d3b;
}
.note-status-output .text-danger {
color: #a94442;
}
.note-status-output .alert {
margin: -7px 0 0 0;
padding: 7px 10px 2px 10px;
border-radius: 0;
color: #000;
background-color: #f5f5f5;
}
.note-status-output .alert .note-icon {
margin-right: 5px;
}
.note-status-output .alert-success {
color: #3c763d !important;
background-color: #dff0d8 !important;
}
.note-status-output .alert-info {
color: #31708f !important;
background-color: #d9edf7 !important;
}
.note-status-output .alert-warning {
color: #8a6d3b !important;
background-color: #fcf8e3 !important;
}
.note-status-output .alert-danger {
color: #a94442 !important;
background-color: #f2dede !important;
}
// statusbar
.note-statusbar {
background-color: $background-color;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top: 1px solid #ddd;
.note-resizebar {
padding-top: 1px;
height: 9px;
width: 100%;
cursor: ns-resize;
.note-icon-bar {
width: 20px;
margin: 1px auto;
border-top: 1px solid $border-color;
}
}
&.locked {
.note-resizebar {
cursor: default;
.note-icon-bar {
display: none;
}
}
}
}
.note-placeholder {
padding: 10px;
}
}
.note-editor.note-airframe {
border: 0;
.note-editing-area {
.note-editable {
padding: 0;
}
}
}
/* Popover
------------------------------------------ */
.note-popover.popover {
display: none;
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 !important;
}
}
/* Popover and Toolbar (Button container)
------------------------------------------ */
.note-toolbar {
position: relative;
}
.note-popover .popover-content, .note-toolbar {
margin: 0;
padding: 0 0 5px 5px;
& > .note-btn-group {
margin-top: 5px;
margin-left: 0;
margin-right: 5px;
}
.note-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 {
.dropdown-style {
blockquote, pre {
margin: 0;
padding: 5px 10px;
}
h1, h2, h3, h4, h5, h6, p {
margin: 0;
padding: 0;
}
}
}
.note-color-all {
.note-dropdown-menu {
min-width: 337px;
}
}
.note-color {
.dropdown-toggle {
width: 20px;
padding-left: 5px;
}
.note-dropdown-menu {
.note-palette {
display: inline-block;
margin: 0;
width: 160px;
&: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,
.note-color-select {
font-size: 11px;
margin: 3px;
padding: 0 3px;
cursor: pointer;
width: 100%;
@include rounded(5px);
&:hover {
background: #eee;
}
}
.note-color-row {
height: 20px;
}
.note-color-select-btn {
display: none;
}
.note-holder-custom {
.note-color-btn {
border: 1px solid #eee;
}
}
}
}
}
.note-para {
.note-dropdown-menu {
min-width: 216px;
padding: 5px;
& > div:first-child {
margin-right: 5px;
}
}
}
// dropdown-menu for toolbar and popover
.note-dropdown-menu {
min-width: 160px;
// 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
&.note-check {
a i {
color: deepskyblue;
visibility: hidden;
}
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-modal {
.modal-dialog {
outline: 0;
border-radius: 5px;
@include box-shadow(0 3px 9px rgba(0,0,0,.5));
}
.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;
}
}
// [workaround] firefox fileinput
@-moz-document url-prefix() {
.note-image-input {
height: auto;
}
}
}
/* Placeholder
------------------------------------------ */
.note-placeholder {
position: absolute;
display: none;
color: gray;
}
/* Handle
------------------------------------------ */
.note-handle {
// control selection
.note-control-selection {
position: absolute;
display: none;
border: 1px solid #000;
& > div {
position: absolute;
}
.note-control-selection-bg {
width: 100%;
height: 100%;
background-color: #000;
@include opacity(0.3);
}
.note-control-handle {
width: 7px;
height: 7px;
border: 1px solid #000;
}
.note-control-holder {
@extend .note-control-handle;
}
.note-control-sizing {
@extend .note-control-handle;
background-color: #000;
}
.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-se.note-control-holder {
cursor: default;
border-top: none;
border-left: none;
}
.note-control-selection-info {
right: 0;
bottom: 0;
padding: 5px;
margin: 5px;
color: #fff;
background-color: #000;
font-size: 12px;
@include rounded(5px);
@include opacity(0.7);
}
}
}
.note-hint-popover {
min-width: 100px;
padding: 2px;
.popover-content {
padding: 3px;
max-height: 150px;
overflow: auto;
.note-hint-group {
.note-hint-item {
display: block !important;
padding: 3px;
&.active, &:hover {
display: block;
clear: both;
font-weight: 400;
line-height: 1.4;
color: white;
white-space: nowrap;
text-decoration: none;
background-color: #428bca;
outline: 0;
cursor: pointer;
}
}
}
}
}

View File

@@ -0,0 +1,277 @@
@font-face {
font-family: "summernote";
font-style: normal;
font-weight: 400;
font-display: auto;
src: url("./font/summernote.eot");
src: url("./font/summernote.eot?#iefix") format("embedded-opentype"), url("./font/summernote.woff2") format("woff2"), url("./font/summernote.woff") format("woff"), url("./font/summernote.ttf") format("truetype");}
[class^="note-icon"]:before,
[class*=" note-icon"]:before {
display: inline-block;
font-family: summernote;
font-style: normal;
font-size: inherit;
text-decoration: inherit;
text-rendering: auto;
text-transform: none;
vertical-align: middle;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
speak: none;
}
.note-icon-fw {
text-align: center;
width: 1.25em;
}
.note-icon-border {
border: solid 0.08em #eee;
border-radius: 0.1em;
padding: 0.2em 0.25em 0.15em;
}
.note-icon-pull-left {
float: left;
}
.note-icon-pull-right {
float: right;
}
.note-icon.note-icon-pull-left {
margin-right: 0.3em;
}
.note-icon.note-icon-pull-right {
margin-left: 0.3em;
}
.note-icon-align::before {
content: "\ea01";
}
.note-icon-align-center::before {
content: "\ea02";
}
.note-icon-align-indent::before {
content: "\ea03";
}
.note-icon-align-justify::before {
content: "\ea04";
}
.note-icon-align-left::before {
content: "\ea05";
}
.note-icon-align-outdent::before {
content: "\ea06";
}
.note-icon-align-right::before {
content: "\ea07";
}
.note-icon-arrow-circle-down::before {
content: "\ea08";
}
.note-icon-arrow-circle-left::before {
content: "\ea09";
}
.note-icon-arrow-circle-right::before {
content: "\ea0a";
}
.note-icon-arrow-circle-up::before {
content: "\ea0b";
}
.note-icon-arrows-alt::before {
content: "\ea0c";
}
.note-icon-arrows-h::before {
content: "\ea0d";
}
.note-icon-arrows-v::before {
content: "\ea0e";
}
.note-icon-bold::before {
content: "\ea0f";
}
.note-icon-caret::before {
content: "\ea10";
}
.note-icon-chain-broken::before {
content: "\ea11";
}
.note-icon-circle::before {
content: "\ea12";
}
.note-icon-close::before {
content: "\ea13";
}
.note-icon-code::before {
content: "\ea14";
}
.note-icon-col-after::before {
content: "\ea15";
}
.note-icon-col-before::before {
content: "\ea16";
}
.note-icon-col-remove::before {
content: "\ea17";
}
.note-icon-eraser::before {
content: "\ea18";
}
.note-icon-float-left::before {
content: "\ea19";
}
.note-icon-float-none::before {
content: "\ea1a";
}
.note-icon-float-right::before {
content: "\ea1b";
}
.note-icon-font::before {
content: "\ea1c";
}
.note-icon-frame::before {
content: "\ea1d";
}
.note-icon-italic::before {
content: "\ea1e";
}
.note-icon-link::before {
content: "\ea1f";
}
.note-icon-magic::before {
content: "\ea20";
}
.note-icon-menu-check::before {
content: "\ea21";
}
.note-icon-minus::before {
content: "\ea22";
}
.note-icon-orderedlist::before {
content: "\ea23";
}
.note-icon-pencil::before {
content: "\ea24";
}
.note-icon-picture::before {
content: "\ea25";
}
.note-icon-question::before {
content: "\ea26";
}
.note-icon-redo::before {
content: "\ea27";
}
.note-icon-rollback::before {
content: "\ea28";
}
.note-icon-row-above::before {
content: "\ea29";
}
.note-icon-row-below::before {
content: "\ea2a";
}
.note-icon-row-remove::before {
content: "\ea2b";
}
.note-icon-special-character::before {
content: "\ea2c";
}
.note-icon-square::before {
content: "\ea2d";
}
.note-icon-strikethrough::before {
content: "\ea2e";
}
.note-icon-subscript::before {
content: "\ea2f";
}
.note-icon-summernote::before {
content: "\ea30";
}
.note-icon-superscript::before {
content: "\ea31";
}
.note-icon-table::before {
content: "\ea32";
}
.note-icon-text-height::before {
content: "\ea33";
}
.note-icon-trash::before {
content: "\ea34";
}
.note-icon-underline::before {
content: "\ea35";
}
.note-icon-undo::before {
content: "\ea36";
}
.note-icon-unorderedlist::before {
content: "\ea37";
}
.note-icon-video::before {
content: "\ea38";
}

View File

@@ -0,0 +1,83 @@
// Core variables and mixins
@import 'summernote-icons.css';
@import "elements.scss";
@import "lite/variables.scss";
@import "lite/mixins.scss";
@import "lite/common.scss";
@import "lite/toolbar.scss";
@import "lite/btn-group.scss";
@import "lite/buttons.scss";
@import "lite/dropdown.scss";
@import "lite/modal.scss";
@import "lite/form.scss";
@import "lite/tooltip.scss";
@import "lite/popover.scss";
@import 'summernote-common.scss';
.note-editor {
.note-editing-area {
.note-editable {
table {
width: 100%;
border-collapse: collapse;
td, th {
border: 1px solid #ececec;
padding: 5px 3px;
}
}
a {
background-color: inherit;
text-decoration: inherit;
font-family: inherit;
font-weight: inherit;
color: #337ab7;
}
a:hover,
a:focus {
color: #23527c;
text-decoration: underline;
outline: 0;
}
figure {
margin: 0;
}
}
}
}
/* Dialog
------------------------------------------*/
.note-modal {
.note-modal-body {
label {
margin-bottom: 2px;
padding: 2px 5px;
display: inline-block;
}
.help-list-item:hover {
background-color: #e0e0e0;
}
}
// [workaround] firefox fileinput
@-moz-document url-prefix() {
.note-image-input {
height: auto;
}
}
}
.help-list-item {
label {
margin-bottom:5px;
display:inline-block;
}
}