diff --git a/src/components/rich_editor.jsx b/src/components/rich_editor.jsx index 3f2a743..48480a6 100644 --- a/src/components/rich_editor.jsx +++ b/src/components/rich_editor.jsx @@ -12,6 +12,7 @@ import ToolbarPlugin from "../plugins/ToolbarPlugin"; import ListMaxIndentLevelPlugin from "../plugins/ListMaxIndentLevelPlugin"; import CodeHighlightPlugin from "../plugins/CodeHighlightPlugin"; import AutoLinkPlugin from "../plugins/AutoLinkPlugin"; +import "../styles/richeditor.css"; function Placeholder() { return
Describe the bug
; diff --git a/src/index.css b/src/index.css index 2008bd4..41089e6 100644 --- a/src/index.css +++ b/src/index.css @@ -85,747 +85,3 @@ .table-border { border-color: rgba(var(--semi-grey-2), 1); } - -.ltr { - text-align: left; -} - -.rtl { - text-align: right; -} - -.editor-container { - margin: 20px auto 20px auto; - border-radius: 6px; - color: var(--semi-color-text-1); - background-color: rgba(var(--semi-grey-1), 1); - position: relative; - line-height: 20px; - font-weight: 400; - text-align: left; -} - -.editor-inner { - background-color: rgba(var(--semi-grey-1), 1); - position: relative; - border-radius: 6px; -} - -.editor-input { - min-height: 150px; - resize: none; - font-size: 15px; - position: relative; - tab-size: 1; - outline: 0; - padding: 15px 10px; -} - -.editor-placeholder { - color: #999; - position: absolute; - text-overflow: ellipsis; - top: 15px; - left: 10px; - font-size: 15px; - user-select: none; - display: inline-block; - pointer-events: none; -} - -.editor-text-bold { - font-weight: bold; -} - -.editor-text-italic { - font-style: italic; -} - -.editor-text-underline { - text-decoration: underline; -} - -.editor-text-strikethrough { - text-decoration: line-through; -} - -.editor-text-underlineStrikethrough { - text-decoration: underline line-through; -} - -.editor-text-code { - background-color: rgba(var(--semi-grey-2), 1); - padding: 1px 0.25rem; - font-family: Menlo, Consolas, Monaco, monospace; - font-size: 94%; -} - -.editor-link { - color: rgb(33, 111, 219); - text-decoration: none; -} - -.editor-code { - background-color: rgba(var(--semi-grey-0), 1); - font-family: Menlo, Consolas, Monaco, monospace; - display: block; - padding: 8px 8px 8px 52px; - line-height: 1.53; - font-size: 13px; - margin: 0; - margin-top: 8px; - margin-bottom: 8px; - tab-size: 2; - overflow-x: auto; - position: relative; -} - -.editor-code:before { - content: attr(data-gutter); - position: absolute; - background-color: rgba(var(--semi-grey-0), 1); - left: 0; - top: 0; - border-right: 1px solid rgba(var(--semi-grey-3), 1); - padding: 8px; - color: #777; - white-space: pre-wrap; - text-align: right; - min-width: 25px; -} - -.editor-code:after { - content: attr(data-highlight-language); - top: 0; - right: 3px; - padding: 3px; - font-size: 10px; - text-transform: uppercase; - position: absolute; - color: rgba(var(--semi-text-1), 1); -} - -.editor-tokenComment { - color: slategray; -} - -.editor-tokenPunctuation { - color: #999; -} - -.editor-tokenProperty { - color: #905; -} - -.editor-tokenSelector { - color: #690; -} - -.editor-tokenOperator { - color: #9a6e3a; -} - -.editor-tokenAttr { - color: #07a; -} - -.editor-tokenVariable { - color: #e90; -} - -.editor-tokenFunction { - color: #dd4a68; -} - -.editor-paragraph { - margin: 0; - margin-bottom: 8px; - position: relative; -} - -.editor-paragraph:last-child { - margin-bottom: 0; -} - -.editor-heading-h1 { - font-size: 24px; - margin: 0; - margin-bottom: 12px; - padding: 0; -} - -.editor-heading-h2 { - font-size: 16px; - margin: 0; - margin-top: 10px; - padding: 0; -} - -.editor-quote { - margin: 0; - margin-left: 20px; - font-size: 15px; - color: rgb(101, 103, 107); - border-left-color: rgb(206, 208, 212); - border-left-width: 4px; - border-left-style: solid; - padding-left: 16px; -} - -.editor-list-ol { - padding: 0; - margin: 0; - margin-left: 16px; - list-style-type: decimal; -} - -.editor-list-ul { - padding: 0; - margin: 0; - margin-left: 16px; -} - -.editor-listitem { - margin: 8px 32px 8px 32px; -} - -.editor-nested-listitem { - list-style-type: none; -} - -pre::-webkit-scrollbar { - background: transparent; - width: 10px; -} - -pre::-webkit-scrollbar-thumb { - background: #999; -} - -.toolbar { - display: flex; - flex-wrap: wrap; - margin-bottom: 1px; - background-color: rgba(var(--semi-grey-1), 1); - padding: 4px; - border-top-left-radius: 10px; - border-top-right-radius: 10px; - border-bottom: rgba(var(--semi-grey-2), 1) solid 2px; - vertical-align: middle; -} - -.toolbar button.toolbar-item { - border: 0; - display: flex; - border-radius: 6px; - padding: 8px; - cursor: pointer; - vertical-align: middle; - fill: currentColor; -} - -.toolbar button.toolbar-item:disabled { - cursor: not-allowed; -} - -.toolbar button.toolbar-item.spaced { - margin-right: 2px; -} - -.toolbar button.toolbar-item i.format { - background-size: contain; - display: inline-block; - height: 18px; - width: 18px; - margin-top: 2px; - vertical-align: -0.25em; - display: flex; - opacity: 1; - fill: currentColor; -} - -.toolbar button.toolbar-item:disabled i.format { - opacity: 0.4; -} - -.toolbar button.toolbar-item.active { - background-color: rgba(var(--semi-grey-2), 1); -} - -.toolbar button.toolbar-item.active i { - opacity: 1; -} - -.toolbar .toolbar-item:hover:not([disabled]) { - background-color: rgba(var(--semi-grey-2), 1); -} - -.toolbar .divider { - width: 2px; - background-color: rgba(var(--semi-grey-2), 1); - margin: 4px 4px; -} - -.toolbar select.toolbar-item { - border-radius: 6px; - padding: 8px; - vertical-align: middle; - appearance: none; - -webkit-appearance: none; - -moz-appearance: none; - font-size: 14px; - background-color: rgba(var(--semi-grey-1), 1); - text-overflow: ellipsis; - outline: none; -} - -.toolbar select.code-language { - text-transform: capitalize; - width: 130px; -} - -.toolbar .toolbar-item .text { - line-height: 20px; - width: 200px; - vertical-align: middle; - font-size: 14px; - color: rgba(var(--semi-text-1), 1); - text-overflow: ellipsis; - width: 70px; - overflow: hidden; - height: 20px; - text-align: left; -} - -.toolbar .toolbar-item .icon { - width: 20px; - height: 20px; - user-select: none; - margin-right: 8px; - line-height: 16px; - background-size: contain; -} - -.toolbar i.chevron-down { - margin-top: 3px; - margin-left: 6px; - width: 16px; - height: 16px; - user-select: none; - background-image: url(/public/images/icons/chevron-down.svg); -} - -.toolbar i.chevron-down-dark { - margin-top: 3px; - margin-left: 6px; - width: 16px; - height: 16px; - user-select: none; - background-image: url(/public/images/icons/chevron-down-dark.svg); -} - -.toolbar i.chevron-down.inside { - width: 16px; - height: 16px; - margin-left: -20px; - margin-top: 11px; - margin-right: 10px; - pointer-events: none; -} - -.toolbar i.chevron-down-dark.inside { - width: 16px; - height: 16px; - margin-left: -20px; - margin-top: 11px; - margin-right: 10px; - pointer-events: none; -} - -#block-controls button:focus-visible { - border-color: blue; -} - -#block-controls span.block-type { - background-size: contain; - display: block; - width: 18px; - height: 18px; - margin: 2px; -} - -#block-controls span.block-type.paragraph { - background-image: url(/public/images/icons/text-paragraph.svg); -} - -#block-controls span.block-type.paragraph-dark { - background-image: url(/public/images/icons/text-paragraph-dark.svg); -} - -#block-controls span.block-type.h1 { - background-image: url(/public/images/icons/type-h1.svg); -} - -#block-controls span.block-type.h1-dark { - background-image: url(/public/images/icons/type-h1-dark.svg); -} - -#block-controls span.block-type.h2 { - background-image: url(/public/images/icons/type-h2.svg); -} - -#block-controls span.block-type.h2-dark { - background-image: url(/public/images/icons/type-h2-dark.svg); -} - -#block-controls span.block-type.quote { - background-image: url(/public/images/icons/chat-square-quote.svg); -} - -#block-controls span.block-type.quote-dark { - background-image: url(/public/images/icons/chat-square-quote-dark.svg); -} - -#block-controls span.block-type.ul { - background-image: url(/public/images/icons/list-ul.svg); -} - -#block-controls span.block-type.ul-dark { - background-image: url(/public/images/icons/list-ul-dark.svg); -} - -#block-controls span.block-type.ol { - background-image: url(/public/images/icons/list-ol.svg); -} - -#block-controls span.block-type.ol-dark { - background-image: url(/public/images/icons/list-ol-dark.svg); -} - -#block-controls span.block-type.code { - background-image: url(/public/images/icons/code.svg); -} - -#block-controls span.block-type.code-dark { - background-image: url(/public/images/icons/code-dark.svg); -} - -.dropdown { - z-index: 5; - display: block; - position: absolute; - box-shadow: 0 12px 28px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgba(0, 0, 0, 0.1), - inset 0 0 0 1px rgba(var(--semi-grey-2), 1); - border-radius: 6px; - min-width: 240px; - min-height: 40px; - background-color: rgba(var(--semi-grey-1), 1); -} - -.dropdown .item { - padding: 6px 16px; - width: 100%; - color: rgba(var(--semi-text-1), 1); - cursor: pointer; - line-height: 16px; - font-size: 14px; - display: flex; - align-content: center; - flex-direction: row; - flex-shrink: 0; - justify-content: space-between; - border: 0; -} - -.dropdown .item .active { - display: flex; - width: 20px; - height: 20px; -} - -.dropdown .item:first-child { - margin-top: 8px; -} - -.dropdown .item:last-child { - margin-bottom: 8px; -} - -.dropdown .item:hover { - background-color: rgba(var(--semi-grey-3), 1); -} - -.dropdown .item .text { - display: flex; - line-height: 20px; - flex-grow: 1; -} - -.dropdown .item .icon { - display: flex; - width: 20px; - height: 20px; - user-select: none; - margin-right: 12px; - line-height: 16px; - background-size: contain; -} - -.link-editor { - position: absolute; - z-index: 100; - top: -10000px; - left: -10000px; - margin-top: -6px; - max-width: 300px; - width: 100%; - opacity: 0; - background-color: rgba(var(--semi-grey-1), 1); - box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.3); - border-radius: 6px; - transition: opacity 0.5s; -} - -.link-editor .link-input { - display: block; - width: calc(100% - 24px); - box-sizing: border-box; - margin: 8px 12px; - padding: 8px 12px; - border-radius: 6px; - background-color: rgba(var(--semi-grey-2), 1); - font-size: 15px; - color: var(--semi-color-text-1); - border: 0; - outline: 0; - position: relative; - font-family: inherit; -} - -.link-edit { - background-image: url(/public/images/icons/pencil-fill.svg); - background-size: 16px; - background-position: center; - background-repeat: no-repeat; - width: 35px; - vertical-align: -0.25em; - position: absolute; - right: 0; - top: 0; - bottom: 0; - cursor: pointer; -} - -.link-edit-dark { - background-image: url(/public/images/icons/pencil-fill-dark.svg); - background-size: 16px; - background-position: center; - background-repeat: no-repeat; - width: 35px; - vertical-align: -0.25em; - position: absolute; - right: 0; - top: 0; - bottom: 0; - cursor: pointer; -} - -.link-editor .link-input a { - color: rgb(33, 111, 219); - text-decoration: none; - display: block; - white-space: nowrap; - overflow: hidden; - margin-right: 30px; - text-overflow: ellipsis; -} - -.link-editor .link-input a:hover { - text-decoration: underline; -} - -.link-editor .button { - width: 20px; - height: 20px; - display: inline-block; - padding: 6px; - border-radius: 8px; - cursor: pointer; - margin: 0 2px; -} - -.link-editor .button.hovered { - width: 20px; - height: 20px; - display: inline-block; - background-color: #eee; -} - -.link-editor .button i, -.actions i { - background-size: contain; - display: inline-block; - height: 20px; - width: 20px; - vertical-align: -0.25em; -} - -i.undo { - background-image: url(/public/images/icons/arrow-counterclockwise.svg); -} - -i.undo-dark { - background-image: url(/public/images/icons/arrow-counterclockwise-dark.svg); -} - -i.redo { - background-image: url(/public/images/icons/arrow-clockwise.svg); -} - -i.redo-dark { - background-image: url(/public/images/icons/arrow-clockwise-dark.svg); -} - -.icon.paragraph { - background-image: url(/public/images/icons/text-paragraph.svg); -} - -.icon.paragraph-dark { - background-image: url(/public/images/icons/text-paragraph-dark.svg); -} - -.icon.large-heading, -.icon.h1 { - background-image: url(/public/images/icons/type-h1.svg); -} - -.icon.large-heading-dark, -.icon.h1-dark { - background-image: url(/public/images/icons/type-h1-dark.svg); -} - -.icon.small-heading, -.icon.h2 { - background-image: url(/public/images/icons/type-h2.svg); -} - -.icon.small-heading-dark, -.icon.h2-dark { - background-image: url(/public/images/icons/type-h2-dark.svg); -} - -.icon.bullet-list, -.icon.ul { - background-image: url(/public/images/icons/list-ul.svg); -} - -.icon.bullet-list-dark, -.icon.ul-dark { - background-image: url(/public/images/icons/list-ul-dark.svg); -} - -.icon.numbered-list, -.icon.ol { - background-image: url(/public/images/icons/list-ol.svg); -} - -.icon.numbered-list-dark, -.icon.ol-dark { - background-image: url(/public/images/icons/list-ol-dark.svg); -} - -.icon.quote { - background-image: url(/public/images/icons/chat-square-quote.svg); -} - -.icon.quote-dark { - background-image: url(/public/images/icons/chat-square-quote-dark.svg); -} - -.icon.code { - background-image: url(/public/images/icons/code.svg); -} - -.icon.code-dark { - background-image: url(/public/images/icons/code-dark.svg); -} - -i.bold { - background-image: url(/public/images/icons/type-bold.svg); -} - -i.bold-dark { - background-image: url(/public/images/icons/type-bold-dark.svg); -} - -i.italic { - background-image: url(/public/images/icons/type-italic.svg); -} - -i.italic-dark { - background-image: url(/public/images/icons/type-italic-dark.svg); -} - -i.underline { - background-image: url(/public/images/icons/type-underline.svg); -} - -i.underline-dark { - background-image: url(/public/images/icons/type-underline-dark.svg); -} - -i.strikethrough { - background-image: url(/public/images/icons/type-strikethrough.svg); -} - -i.strikethrough-dark { - background-image: url(/public/images/icons/type-strikethrough-dark.svg); -} - -i.code { - background-image: url(/public/images/icons/code.svg); -} - -i.code-dark { - background-image: url(/public/images/icons/code-dark.svg); -} - -i.link { - background-image: url(/public/images/icons/link.svg); -} - -i.link-dark { - background-image: url(/public/images/icons/link-dark.svg); -} - -i.left-align { - background-image: url(/public/images/icons/text-left.svg); -} - -i.left-align-dark { - background-image: url(/public/images/icons/text-left-dark.svg); -} - -i.center-align { - background-image: url(/public/images/icons/text-center.svg); -} - -i.center-align-dark { - background-image: url(/public/images/icons/text-center-dark.svg); -} - -i.right-align { - background-image: url(/public/images/icons/text-right.svg); -} - -i.right-align-dark { - background-image: url(/public/images/icons/text-right-dark.svg); -} - -i.justify-align { - background-image: url(/public/images/icons/justify.svg); -} - -i.justify-align-dark { - background-image: url(/public/images/icons/justify-dark.svg); -} diff --git a/src/styles/richeditor.css b/src/styles/richeditor.css new file mode 100644 index 0000000..c802b4f --- /dev/null +++ b/src/styles/richeditor.css @@ -0,0 +1,743 @@ +.ltr { + text-align: left; +} + +.rtl { + text-align: right; +} + +.editor-container { + margin: 20px auto 20px auto; + border-radius: 6px; + color: var(--semi-color-text-1); + background-color: rgba(var(--semi-grey-1), 1); + position: relative; + line-height: 20px; + font-weight: 400; + text-align: left; +} + +.editor-inner { + background-color: rgba(var(--semi-grey-1), 1); + position: relative; + border-radius: 6px; +} + +.editor-input { + min-height: 150px; + resize: none; + font-size: 15px; + position: relative; + tab-size: 1; + outline: 0; + padding: 15px 10px; +} + +.editor-placeholder { + color: #999; + position: absolute; + text-overflow: ellipsis; + top: 15px; + left: 10px; + font-size: 15px; + user-select: none; + display: inline-block; + pointer-events: none; +} + +.editor-text-bold { + font-weight: bold; +} + +.editor-text-italic { + font-style: italic; +} + +.editor-text-underline { + text-decoration: underline; +} + +.editor-text-strikethrough { + text-decoration: line-through; +} + +.editor-text-underlineStrikethrough { + text-decoration: underline line-through; +} + +.editor-text-code { + background-color: rgba(var(--semi-grey-2), 1); + padding: 1px 0.25rem; + font-family: Menlo, Consolas, Monaco, monospace; + font-size: 94%; +} + +.editor-link { + color: rgb(33, 111, 219); + text-decoration: none; +} + +.editor-code { + background-color: rgba(var(--semi-grey-0), 1); + font-family: Menlo, Consolas, Monaco, monospace; + display: block; + padding: 8px 8px 8px 52px; + line-height: 1.53; + font-size: 13px; + margin: 0; + margin-top: 8px; + margin-bottom: 8px; + tab-size: 2; + overflow-x: auto; + position: relative; +} + +.editor-code:before { + content: attr(data-gutter); + position: absolute; + background-color: rgba(var(--semi-grey-0), 1); + left: 0; + top: 0; + border-right: 1px solid rgba(var(--semi-grey-3), 1); + padding: 8px; + color: #777; + white-space: pre-wrap; + text-align: right; + min-width: 25px; +} + +.editor-code:after { + content: attr(data-highlight-language); + top: 0; + right: 3px; + padding: 3px; + font-size: 10px; + text-transform: uppercase; + position: absolute; + color: rgba(var(--semi-text-1), 1); +} + +.editor-tokenComment { + color: slategray; +} + +.editor-tokenPunctuation { + color: #999; +} + +.editor-tokenProperty { + color: #905; +} + +.editor-tokenSelector { + color: #690; +} + +.editor-tokenOperator { + color: #9a6e3a; +} + +.editor-tokenAttr { + color: #07a; +} + +.editor-tokenVariable { + color: #e90; +} + +.editor-tokenFunction { + color: #dd4a68; +} + +.editor-paragraph { + margin: 0; + margin-bottom: 8px; + position: relative; +} + +.editor-paragraph:last-child { + margin-bottom: 0; +} + +.editor-heading-h1 { + font-size: 24px; + margin: 0; + margin-bottom: 12px; + padding: 0; +} + +.editor-heading-h2 { + font-size: 16px; + margin: 0; + margin-top: 10px; + padding: 0; +} + +.editor-quote { + margin: 0; + margin-left: 20px; + font-size: 15px; + color: rgb(101, 103, 107); + border-left-color: rgb(206, 208, 212); + border-left-width: 4px; + border-left-style: solid; + padding-left: 16px; +} + +.editor-list-ol { + padding: 0; + margin: 0; + margin-left: 16px; + list-style-type: decimal; +} + +.editor-list-ul { + padding: 0; + margin: 0; + margin-left: 16px; +} + +.editor-listitem { + margin: 8px 32px 8px 32px; +} + +.editor-nested-listitem { + list-style-type: none; +} + +pre::-webkit-scrollbar { + background: transparent; + width: 10px; +} + +pre::-webkit-scrollbar-thumb { + background: #999; +} + +.toolbar { + display: flex; + flex-wrap: wrap; + margin-bottom: 1px; + background-color: rgba(var(--semi-grey-1), 1); + padding: 4px; + border-top-left-radius: 10px; + border-top-right-radius: 10px; + border-bottom: rgba(var(--semi-grey-2), 1) solid 2px; + vertical-align: middle; +} + +.toolbar button.toolbar-item { + border: 0; + display: flex; + border-radius: 6px; + padding: 8px; + cursor: pointer; + vertical-align: middle; + fill: currentColor; +} + +.toolbar button.toolbar-item:disabled { + cursor: not-allowed; +} + +.toolbar button.toolbar-item.spaced { + margin-right: 2px; +} + +.toolbar button.toolbar-item i.format { + background-size: contain; + display: inline-block; + height: 18px; + width: 18px; + margin-top: 2px; + vertical-align: -0.25em; + display: flex; + opacity: 1; + fill: currentColor; +} + +.toolbar button.toolbar-item:disabled i.format { + opacity: 0.4; +} + +.toolbar button.toolbar-item.active { + background-color: rgba(var(--semi-grey-2), 1); +} + +.toolbar button.toolbar-item.active i { + opacity: 1; +} + +.toolbar .toolbar-item:hover:not([disabled]) { + background-color: rgba(var(--semi-grey-2), 1); +} + +.toolbar .divider { + width: 2px; + background-color: rgba(var(--semi-grey-2), 1); + margin: 4px 4px; +} + +.toolbar select.toolbar-item { + border-radius: 6px; + padding: 8px; + vertical-align: middle; + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + font-size: 14px; + background-color: rgba(var(--semi-grey-1), 1); + text-overflow: ellipsis; + outline: none; +} + +.toolbar select.code-language { + text-transform: capitalize; + width: 130px; +} + +.toolbar .toolbar-item .text { + line-height: 20px; + width: 200px; + vertical-align: middle; + font-size: 14px; + color: rgba(var(--semi-text-1), 1); + text-overflow: ellipsis; + width: 70px; + overflow: hidden; + height: 20px; + text-align: left; +} + +.toolbar .toolbar-item .icon { + width: 20px; + height: 20px; + user-select: none; + margin-right: 8px; + line-height: 16px; + background-size: contain; +} + +.toolbar i.chevron-down { + margin-top: 3px; + margin-left: 6px; + width: 16px; + height: 16px; + user-select: none; + background-image: url(/public/images/icons/chevron-down.svg); +} + +.toolbar i.chevron-down-dark { + margin-top: 3px; + margin-left: 6px; + width: 16px; + height: 16px; + user-select: none; + background-image: url(/public/images/icons/chevron-down-dark.svg); +} + +.toolbar i.chevron-down.inside { + width: 16px; + height: 16px; + margin-left: -20px; + margin-top: 11px; + margin-right: 10px; + pointer-events: none; +} + +.toolbar i.chevron-down-dark.inside { + width: 16px; + height: 16px; + margin-left: -20px; + margin-top: 11px; + margin-right: 10px; + pointer-events: none; +} + +#block-controls button:focus-visible { + border-color: blue; +} + +#block-controls span.block-type { + background-size: contain; + display: block; + width: 18px; + height: 18px; + margin: 2px; +} + +#block-controls span.block-type.paragraph { + background-image: url(/public/images/icons/text-paragraph.svg); +} + +#block-controls span.block-type.paragraph-dark { + background-image: url(/public/images/icons/text-paragraph-dark.svg); +} + +#block-controls span.block-type.h1 { + background-image: url(/public/images/icons/type-h1.svg); +} + +#block-controls span.block-type.h1-dark { + background-image: url(/public/images/icons/type-h1-dark.svg); +} + +#block-controls span.block-type.h2 { + background-image: url(/public/images/icons/type-h2.svg); +} + +#block-controls span.block-type.h2-dark { + background-image: url(/public/images/icons/type-h2-dark.svg); +} + +#block-controls span.block-type.quote { + background-image: url(/public/images/icons/chat-square-quote.svg); +} + +#block-controls span.block-type.quote-dark { + background-image: url(/public/images/icons/chat-square-quote-dark.svg); +} + +#block-controls span.block-type.ul { + background-image: url(/public/images/icons/list-ul.svg); +} + +#block-controls span.block-type.ul-dark { + background-image: url(/public/images/icons/list-ul-dark.svg); +} + +#block-controls span.block-type.ol { + background-image: url(/public/images/icons/list-ol.svg); +} + +#block-controls span.block-type.ol-dark { + background-image: url(/public/images/icons/list-ol-dark.svg); +} + +#block-controls span.block-type.code { + background-image: url(/public/images/icons/code.svg); +} + +#block-controls span.block-type.code-dark { + background-image: url(/public/images/icons/code-dark.svg); +} + +.dropdown { + z-index: 5; + display: block; + position: absolute; + box-shadow: 0 12px 28px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgba(0, 0, 0, 0.1), + inset 0 0 0 1px rgba(var(--semi-grey-2), 1); + border-radius: 6px; + min-width: 240px; + min-height: 40px; + background-color: rgba(var(--semi-grey-1), 1); +} + +.dropdown .item { + padding: 6px 16px; + width: 100%; + color: rgba(var(--semi-text-1), 1); + cursor: pointer; + line-height: 16px; + font-size: 14px; + display: flex; + align-content: center; + flex-direction: row; + flex-shrink: 0; + justify-content: space-between; + border: 0; +} + +.dropdown .item .active { + display: flex; + width: 20px; + height: 20px; +} + +.dropdown .item:first-child { + margin-top: 8px; +} + +.dropdown .item:last-child { + margin-bottom: 8px; +} + +.dropdown .item:hover { + background-color: rgba(var(--semi-grey-3), 1); +} + +.dropdown .item .text { + display: flex; + line-height: 20px; + flex-grow: 1; +} + +.dropdown .item .icon { + display: flex; + width: 20px; + height: 20px; + user-select: none; + margin-right: 12px; + line-height: 16px; + background-size: contain; +} + +.link-editor { + position: absolute; + z-index: 100; + top: -10000px; + left: -10000px; + margin-top: -6px; + max-width: 300px; + width: 100%; + opacity: 0; + background-color: rgba(var(--semi-grey-1), 1); + box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.3); + border-radius: 6px; + transition: opacity 0.5s; +} + +.link-editor .link-input { + display: block; + width: calc(100% - 24px); + box-sizing: border-box; + margin: 8px 12px; + padding: 8px 12px; + border-radius: 6px; + background-color: rgba(var(--semi-grey-2), 1); + font-size: 15px; + color: var(--semi-color-text-1); + border: 0; + outline: 0; + position: relative; + font-family: inherit; +} + +.link-edit { + background-image: url(/public/images/icons/pencil-fill.svg); + background-size: 16px; + background-position: center; + background-repeat: no-repeat; + width: 35px; + vertical-align: -0.25em; + position: absolute; + right: 0; + top: 0; + bottom: 0; + cursor: pointer; +} + +.link-edit-dark { + background-image: url(/public/images/icons/pencil-fill-dark.svg); + background-size: 16px; + background-position: center; + background-repeat: no-repeat; + width: 35px; + vertical-align: -0.25em; + position: absolute; + right: 0; + top: 0; + bottom: 0; + cursor: pointer; +} + +.link-editor .link-input a { + color: rgb(33, 111, 219); + text-decoration: none; + display: block; + white-space: nowrap; + overflow: hidden; + margin-right: 30px; + text-overflow: ellipsis; +} + +.link-editor .link-input a:hover { + text-decoration: underline; +} + +.link-editor .button { + width: 20px; + height: 20px; + display: inline-block; + padding: 6px; + border-radius: 8px; + cursor: pointer; + margin: 0 2px; +} + +.link-editor .button.hovered { + width: 20px; + height: 20px; + display: inline-block; + background-color: #eee; +} + +.link-editor .button i, +.actions i { + background-size: contain; + display: inline-block; + height: 20px; + width: 20px; + vertical-align: -0.25em; +} + +i.undo { + background-image: url(/public/images/icons/arrow-counterclockwise.svg); +} + +i.undo-dark { + background-image: url(/public/images/icons/arrow-counterclockwise-dark.svg); +} + +i.redo { + background-image: url(/public/images/icons/arrow-clockwise.svg); +} + +i.redo-dark { + background-image: url(/public/images/icons/arrow-clockwise-dark.svg); +} + +.icon.paragraph { + background-image: url(/public/images/icons/text-paragraph.svg); +} + +.icon.paragraph-dark { + background-image: url(/public/images/icons/text-paragraph-dark.svg); +} + +.icon.large-heading, +.icon.h1 { + background-image: url(/public/images/icons/type-h1.svg); +} + +.icon.large-heading-dark, +.icon.h1-dark { + background-image: url(/public/images/icons/type-h1-dark.svg); +} + +.icon.small-heading, +.icon.h2 { + background-image: url(/public/images/icons/type-h2.svg); +} + +.icon.small-heading-dark, +.icon.h2-dark { + background-image: url(/public/images/icons/type-h2-dark.svg); +} + +.icon.bullet-list, +.icon.ul { + background-image: url(/public/images/icons/list-ul.svg); +} + +.icon.bullet-list-dark, +.icon.ul-dark { + background-image: url(/public/images/icons/list-ul-dark.svg); +} + +.icon.numbered-list, +.icon.ol { + background-image: url(/public/images/icons/list-ol.svg); +} + +.icon.numbered-list-dark, +.icon.ol-dark { + background-image: url(/public/images/icons/list-ol-dark.svg); +} + +.icon.quote { + background-image: url(/public/images/icons/chat-square-quote.svg); +} + +.icon.quote-dark { + background-image: url(/public/images/icons/chat-square-quote-dark.svg); +} + +.icon.code { + background-image: url(/public/images/icons/code.svg); +} + +.icon.code-dark { + background-image: url(/public/images/icons/code-dark.svg); +} + +i.bold { + background-image: url(/public/images/icons/type-bold.svg); +} + +i.bold-dark { + background-image: url(/public/images/icons/type-bold-dark.svg); +} + +i.italic { + background-image: url(/public/images/icons/type-italic.svg); +} + +i.italic-dark { + background-image: url(/public/images/icons/type-italic-dark.svg); +} + +i.underline { + background-image: url(/public/images/icons/type-underline.svg); +} + +i.underline-dark { + background-image: url(/public/images/icons/type-underline-dark.svg); +} + +i.strikethrough { + background-image: url(/public/images/icons/type-strikethrough.svg); +} + +i.strikethrough-dark { + background-image: url(/public/images/icons/type-strikethrough-dark.svg); +} + +i.code { + background-image: url(/public/images/icons/code.svg); +} + +i.code-dark { + background-image: url(/public/images/icons/code-dark.svg); +} + +i.link { + background-image: url(/public/images/icons/link.svg); +} + +i.link-dark { + background-image: url(/public/images/icons/link-dark.svg); +} + +i.left-align { + background-image: url(/public/images/icons/text-left.svg); +} + +i.left-align-dark { + background-image: url(/public/images/icons/text-left-dark.svg); +} + +i.center-align { + background-image: url(/public/images/icons/text-center.svg); +} + +i.center-align-dark { + background-image: url(/public/images/icons/text-center-dark.svg); +} + +i.right-align { + background-image: url(/public/images/icons/text-right.svg); +} + +i.right-align-dark { + background-image: url(/public/images/icons/text-right-dark.svg); +} + +i.justify-align { + background-image: url(/public/images/icons/justify.svg); +} + +i.justify-align-dark { + background-image: url(/public/images/icons/justify-dark.svg); +}