@exmg/exm-markdown-editor 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +25 -0
- package/index.d.ts +6 -0
- package/index.js +6 -0
- package/package.json +56 -0
- package/src/actions.d.ts +6 -0
- package/src/actions.js +227 -0
- package/src/exm-markdown-editor-base.d.ts +81 -0
- package/src/exm-markdown-editor-base.js +252 -0
- package/src/exm-markdown-editor-toolbar-base.d.ts +12 -0
- package/src/exm-markdown-editor-toolbar-base.js +52 -0
- package/src/exm-markdown-editor-toolbar.d.ts +9 -0
- package/src/exm-markdown-editor-toolbar.js +12 -0
- package/src/exm-markdown-editor.d.ts +76 -0
- package/src/exm-markdown-editor.js +83 -0
- package/src/icons.d.ts +6 -0
- package/src/icons.js +28 -0
- package/src/styles/exm-markdown-codemirror-css.d.ts +2 -0
- package/src/styles/exm-markdown-codemirror-css.js +4 -0
- package/src/styles/exm-markdown-codemirror.scss +443 -0
- package/src/styles/exm-markdown-editor-css.d.ts +2 -0
- package/src/styles/exm-markdown-editor-css.js +4 -0
- package/src/styles/exm-markdown-editor-toolbar-css.d.ts +2 -0
- package/src/styles/exm-markdown-editor-toolbar-css.js +4 -0
- package/src/styles/exm-markdown-editor-toolbar.scss +17 -0
- package/src/styles/exm-markdown-editor.scss +122 -0
- package/src/types.d.ts +13 -0
- package/src/types.js +2 -0
- package/src/utils/configurations.d.ts +4 -0
- package/src/utils/configurations.js +14 -0
- package/src/validator/exm-markdown-editor-validator.d.ts +23 -0
- package/src/validator/exm-markdown-editor-validator.js +35 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ToolbarIcons, ToolbarItem } from './types.js';
|
|
2
|
+
import { ExmgElement } from '@exmg/lit-base/index.js';
|
|
3
|
+
import '@material/web/iconbutton/icon-button.js';
|
|
4
|
+
import '@material/web/icon/icon.js';
|
|
5
|
+
export declare class MarkdownEditorToolbarBase extends ExmgElement {
|
|
6
|
+
upload: boolean;
|
|
7
|
+
actions: ToolbarItem[];
|
|
8
|
+
icons: ToolbarIcons;
|
|
9
|
+
renderActionButtons(): import("lit-html").TemplateResult<1>[];
|
|
10
|
+
action(action: string): void;
|
|
11
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import { toolbarActions } from './actions.js';
|
|
4
|
+
import { toolbarIcons } from './icons.js';
|
|
5
|
+
import { ExmgElement } from '@exmg/lit-base/index.js';
|
|
6
|
+
import { property } from 'lit/decorators.js';
|
|
7
|
+
import '@material/web/iconbutton/icon-button.js';
|
|
8
|
+
import '@material/web/icon/icon.js';
|
|
9
|
+
export class MarkdownEditorToolbarBase extends ExmgElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.upload = false;
|
|
13
|
+
this.actions = toolbarActions;
|
|
14
|
+
this.icons = toolbarIcons;
|
|
15
|
+
}
|
|
16
|
+
renderActionButtons() {
|
|
17
|
+
const buttons = this.actions.map((button) => {
|
|
18
|
+
const displayedName = button.name.replace('_', '').toLocaleUpperCase();
|
|
19
|
+
return html ` <md-icon-button
|
|
20
|
+
aria-label=${displayedName}
|
|
21
|
+
title=${displayedName}
|
|
22
|
+
@click=${(e) => {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
this.action(button.name);
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
<md-icon> ${this.icons[button.icon] ? this.icons[button.icon] : button.icon} </md-icon>
|
|
28
|
+
</md-icon-button>`;
|
|
29
|
+
});
|
|
30
|
+
return buttons;
|
|
31
|
+
}
|
|
32
|
+
action(action) {
|
|
33
|
+
if (action === 'image' && this.upload) {
|
|
34
|
+
this.fire('insert-image', undefined, true);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.fire('action', action, true);
|
|
38
|
+
}
|
|
39
|
+
render() {
|
|
40
|
+
return html ` <div class="toolbar-container">${this.renderActionButtons()}</div> `;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
__decorate([
|
|
44
|
+
property({ type: Boolean })
|
|
45
|
+
], MarkdownEditorToolbarBase.prototype, "upload", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
property({ type: Array })
|
|
48
|
+
], MarkdownEditorToolbarBase.prototype, "actions", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
property({ type: Object })
|
|
51
|
+
], MarkdownEditorToolbarBase.prototype, "icons", void 0);
|
|
52
|
+
//# sourceMappingURL=exm-markdown-editor-toolbar-base.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MarkdownEditorToolbarBase } from './exm-markdown-editor-toolbar-base.js';
|
|
2
|
+
export declare class MarkdownEditorToolbar extends MarkdownEditorToolbarBase {
|
|
3
|
+
static styles: import("lit").CSSResult[];
|
|
4
|
+
}
|
|
5
|
+
declare global {
|
|
6
|
+
interface HTMLElementTagNameMap {
|
|
7
|
+
'exm-markdown-editor-toolbar': MarkdownEditorToolbar;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import { MarkdownEditorToolbarBase } from './exm-markdown-editor-toolbar-base.js';
|
|
4
|
+
import { style as toolbarStyles } from './styles/exm-markdown-editor-toolbar-css.js';
|
|
5
|
+
let MarkdownEditorToolbar = class MarkdownEditorToolbar extends MarkdownEditorToolbarBase {
|
|
6
|
+
};
|
|
7
|
+
MarkdownEditorToolbar.styles = [toolbarStyles];
|
|
8
|
+
MarkdownEditorToolbar = __decorate([
|
|
9
|
+
customElement('exm-markdown-editor-toolbar')
|
|
10
|
+
], MarkdownEditorToolbar);
|
|
11
|
+
export { MarkdownEditorToolbar };
|
|
12
|
+
//# sourceMappingURL=exm-markdown-editor-toolbar.js.map
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { MarkdownEditorElementBase } from './exm-markdown-editor-base.js';
|
|
2
|
+
/**
|
|
3
|
+
* Markdown WYSIWYG editor element.
|
|
4
|
+
* This editor element is a wrapper element for the markdown-element which will enable editing
|
|
5
|
+
* the markdown data. See [marked-element](https://www.webcomponents.org/element/PolymerElements/marked-element/)
|
|
6
|
+
* for more details on how to use this element.
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
* <exm-markdown-editor markdown="# Header 1"></exm-markdown-editor>
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* ## Custom Toolbar
|
|
13
|
+
* Add attribute toolbar-buttons to adjust the toolbar buttons. The array values should match
|
|
14
|
+
* the _toolbarButtons item name values.
|
|
15
|
+
*
|
|
16
|
+
* ```html
|
|
17
|
+
* <exm-markdown-editor toolbar-buttons='["strong","italic","strikethrough","|","quote","hr","table"]'></exm-markdown-editor>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* ### Styling
|
|
21
|
+
*
|
|
22
|
+
* The preview panel markdown output can be styled from outside th element. See the demo/styling.html example
|
|
23
|
+
* on how to do this. In this demo the github-markdown-css project is used for styling the html output.
|
|
24
|
+
*
|
|
25
|
+
* The HTML output will we inserted into the element slot and will have a container div arround it
|
|
26
|
+
* with the class preview-html:
|
|
27
|
+
*
|
|
28
|
+
* ```
|
|
29
|
+
* <exm-markdown-editor markdown="# Header 1">
|
|
30
|
+
* <div class="preview-body"><h1>Header 1</h1></div>
|
|
31
|
+
* </exm-markdown-editor>
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* `<exm-markdown-editor>` provides the following custom properties and mixins
|
|
35
|
+
* for styling:
|
|
36
|
+
*
|
|
37
|
+
* Custom property | Description | Default
|
|
38
|
+
* ----------------|-------------|----------
|
|
39
|
+
* `--exm-markdown-editor-border` | Border Color | `#ddd`
|
|
40
|
+
* `--exm-markdown-editor-background-color` | Editor Background Color | `white`
|
|
41
|
+
* `--exm-markdown-editor-fullscreen-top-offset` | Top offset in fullscreen mode | `0px`
|
|
42
|
+
* `--exm-markdown-editor-toolbar-background` | Toolbar background color | `#fafafa`
|
|
43
|
+
* `--exm-markdown-editor-toolbar-label-background` | Toolbar label background color | `#fafafa`
|
|
44
|
+
* `--exm-markdown-editor-label-color` | Toolbar text color | `54% black`
|
|
45
|
+
* `--exm-markdown-editor-toolbar-color` | Toolbar text color | `87% black`
|
|
46
|
+
* `--exm-markdown-editor-toolbar-color-disabled` | Toolbar text color disabled | `54% black`
|
|
47
|
+
* `--exm-markdown-editor-preview-background` | Preview background color | `white`
|
|
48
|
+
* `--exm-markdown-editor-toolbar-button-background-hover` | Toolbar icon border color | `#fafafa`
|
|
49
|
+
* `--exm-markdown-editor-toolbar-seperator-color` | Toolbar seperator color | `#ddd`
|
|
50
|
+
* `--exm-markdown-editor-code-hover` | Editor code part hover background color | `white`
|
|
51
|
+
* `--exm-markdown-editor-code-color` | Editor code color | `black`
|
|
52
|
+
* `--exm-markdown-editor-code-background` | Editor code background | `white`
|
|
53
|
+
*
|
|
54
|
+
* # Events:
|
|
55
|
+
* - value-change - where detail is current markdown value
|
|
56
|
+
* - exm-markdown-editor-fullscreen where detail is boolean with current fullscreen state
|
|
57
|
+
* - exm-markdown-editor-paste-table thrown when app should display a dialog to paste Excel Table
|
|
58
|
+
* - exm-markdown-editor-image-open when image-ext button is clicked. Can be used to insert external images
|
|
59
|
+
*
|
|
60
|
+
* @customElement
|
|
61
|
+
* @group Exmg Core Elements
|
|
62
|
+
* @element exm-markdown-editor
|
|
63
|
+
* @demo demo/index.html
|
|
64
|
+
* @memberof Exmg
|
|
65
|
+
* @extends ExmgElement
|
|
66
|
+
* @summary Markdown editor element
|
|
67
|
+
*/
|
|
68
|
+
export declare class MarkdownEditorElement extends MarkdownEditorElementBase {
|
|
69
|
+
static styles: import("lit").CSSResult[];
|
|
70
|
+
getPreviewElement(): Element | null;
|
|
71
|
+
}
|
|
72
|
+
declare global {
|
|
73
|
+
interface HTMLElementTagNameMap {
|
|
74
|
+
'exm-markdown-editor': MarkdownEditorElement;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import { MarkdownEditorElementBase } from './exm-markdown-editor-base.js';
|
|
4
|
+
import { style as codeMirrorStyles } from './styles/exm-markdown-codemirror-css.js';
|
|
5
|
+
import { style as markdownEditorStyles } from './styles/exm-markdown-editor-css.js';
|
|
6
|
+
/**
|
|
7
|
+
* Markdown WYSIWYG editor element.
|
|
8
|
+
* This editor element is a wrapper element for the markdown-element which will enable editing
|
|
9
|
+
* the markdown data. See [marked-element](https://www.webcomponents.org/element/PolymerElements/marked-element/)
|
|
10
|
+
* for more details on how to use this element.
|
|
11
|
+
*
|
|
12
|
+
* ```
|
|
13
|
+
* <exm-markdown-editor markdown="# Header 1"></exm-markdown-editor>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* ## Custom Toolbar
|
|
17
|
+
* Add attribute toolbar-buttons to adjust the toolbar buttons. The array values should match
|
|
18
|
+
* the _toolbarButtons item name values.
|
|
19
|
+
*
|
|
20
|
+
* ```html
|
|
21
|
+
* <exm-markdown-editor toolbar-buttons='["strong","italic","strikethrough","|","quote","hr","table"]'></exm-markdown-editor>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ### Styling
|
|
25
|
+
*
|
|
26
|
+
* The preview panel markdown output can be styled from outside th element. See the demo/styling.html example
|
|
27
|
+
* on how to do this. In this demo the github-markdown-css project is used for styling the html output.
|
|
28
|
+
*
|
|
29
|
+
* The HTML output will we inserted into the element slot and will have a container div arround it
|
|
30
|
+
* with the class preview-html:
|
|
31
|
+
*
|
|
32
|
+
* ```
|
|
33
|
+
* <exm-markdown-editor markdown="# Header 1">
|
|
34
|
+
* <div class="preview-body"><h1>Header 1</h1></div>
|
|
35
|
+
* </exm-markdown-editor>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* `<exm-markdown-editor>` provides the following custom properties and mixins
|
|
39
|
+
* for styling:
|
|
40
|
+
*
|
|
41
|
+
* Custom property | Description | Default
|
|
42
|
+
* ----------------|-------------|----------
|
|
43
|
+
* `--exm-markdown-editor-border` | Border Color | `#ddd`
|
|
44
|
+
* `--exm-markdown-editor-background-color` | Editor Background Color | `white`
|
|
45
|
+
* `--exm-markdown-editor-fullscreen-top-offset` | Top offset in fullscreen mode | `0px`
|
|
46
|
+
* `--exm-markdown-editor-toolbar-background` | Toolbar background color | `#fafafa`
|
|
47
|
+
* `--exm-markdown-editor-toolbar-label-background` | Toolbar label background color | `#fafafa`
|
|
48
|
+
* `--exm-markdown-editor-label-color` | Toolbar text color | `54% black`
|
|
49
|
+
* `--exm-markdown-editor-toolbar-color` | Toolbar text color | `87% black`
|
|
50
|
+
* `--exm-markdown-editor-toolbar-color-disabled` | Toolbar text color disabled | `54% black`
|
|
51
|
+
* `--exm-markdown-editor-preview-background` | Preview background color | `white`
|
|
52
|
+
* `--exm-markdown-editor-toolbar-button-background-hover` | Toolbar icon border color | `#fafafa`
|
|
53
|
+
* `--exm-markdown-editor-toolbar-seperator-color` | Toolbar seperator color | `#ddd`
|
|
54
|
+
* `--exm-markdown-editor-code-hover` | Editor code part hover background color | `white`
|
|
55
|
+
* `--exm-markdown-editor-code-color` | Editor code color | `black`
|
|
56
|
+
* `--exm-markdown-editor-code-background` | Editor code background | `white`
|
|
57
|
+
*
|
|
58
|
+
* # Events:
|
|
59
|
+
* - value-change - where detail is current markdown value
|
|
60
|
+
* - exm-markdown-editor-fullscreen where detail is boolean with current fullscreen state
|
|
61
|
+
* - exm-markdown-editor-paste-table thrown when app should display a dialog to paste Excel Table
|
|
62
|
+
* - exm-markdown-editor-image-open when image-ext button is clicked. Can be used to insert external images
|
|
63
|
+
*
|
|
64
|
+
* @customElement
|
|
65
|
+
* @group Exmg Core Elements
|
|
66
|
+
* @element exm-markdown-editor
|
|
67
|
+
* @demo demo/index.html
|
|
68
|
+
* @memberof Exmg
|
|
69
|
+
* @extends ExmgElement
|
|
70
|
+
* @summary Markdown editor element
|
|
71
|
+
*/
|
|
72
|
+
let MarkdownEditorElement = class MarkdownEditorElement extends MarkdownEditorElementBase {
|
|
73
|
+
getPreviewElement() {
|
|
74
|
+
const slot = this.querySelector('*[slot=preview]');
|
|
75
|
+
return slot ? slot : this.shadowRoot.querySelector('#preview');
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
MarkdownEditorElement.styles = [markdownEditorStyles, codeMirrorStyles];
|
|
79
|
+
MarkdownEditorElement = __decorate([
|
|
80
|
+
customElement('exm-markdown-editor')
|
|
81
|
+
], MarkdownEditorElement);
|
|
82
|
+
export { MarkdownEditorElement };
|
|
83
|
+
//# sourceMappingURL=exm-markdown-editor.js.map
|
package/src/icons.d.ts
ADDED
package/src/icons.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
export const toolbarIcons = {
|
|
3
|
+
headerone: html `<svg>
|
|
4
|
+
<g id="header-one">
|
|
5
|
+
<path
|
|
6
|
+
d="M11.5 13H5v5a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 3 0v5h6.5V5a1.5 1.5 0 0 1 3 0v13a1.5 1.5 0 0 1-3 0v-5zm8.5 6h-1.2v-6.535l-1.8.627v-1.046L19.82 11H20v8z"
|
|
7
|
+
/>
|
|
8
|
+
</g>
|
|
9
|
+
</svg>`,
|
|
10
|
+
headertwo: html `<svg>
|
|
11
|
+
<g id="header-two">
|
|
12
|
+
<path
|
|
13
|
+
d="M11.5 13H5v5a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 3 0v5h6.5V5a1.5 1.5 0 0 1 3 0v13a1.5 1.5 0 0 1-3 0v-5zm7.142 4.948H22V19h-4.87v-.917l2.353-2.8c.203-.234.367-.45.497-.634a3.77 3.77 0 0 0 .316-.51c.079-.154.13-.296.163-.431a1.762 1.762 0 0 0-.028-.898 1.244 1.244 0 0 0-.209-.4.967.967 0 0 0-.333-.265 1.057 1.057 0 0 0-.457-.093c-.203 0-.39.037-.541.111a1.074 1.074 0 0 0-.384.302c-.096.129-.175.283-.226.461a2.298 2.298 0 0 0-.073.536H17c.006-.327.056-.634.158-.924.107-.307.265-.572.474-.8a2.14 2.14 0 0 1 .768-.541A2.66 2.66 0 0 1 19.444 11c.36 0 .682.05.97.148.277.104.52.246.711.437.192.184.339.412.44.683.102.27.153.572.153.898 0 .24-.034.486-.107.726-.074.24-.175.48-.305.72s-.282.48-.463.72c-.18.24-.372.486-.587.726l-1.614 1.89z"
|
|
14
|
+
/>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>`,
|
|
17
|
+
headerthree: html `<svg>
|
|
18
|
+
<g id="header-three">
|
|
19
|
+
<path
|
|
20
|
+
d="M11.5 13H5v5a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 3 0v5h6.5V5a1.5 1.5 0 0 1 3 0v13a1.5 1.5 0 0 1-3 0v-5zm9.815 2.217c.165.125.292.269.393.427.102.164.171.335.222.499.045.184.07.374.07.565 0 .361-.063.69-.19.972a1.997 1.997 0 0 1-.533.722 2.185 2.185 0 0 1-.8.447c-.31.098-.64.151-1.002.151-.33 0-.641-.046-.94-.138a2.334 2.334 0 0 1-.786-.414 1.982 1.982 0 0 1-.546-.69 2.158 2.158 0 0 1-.203-.952h1.263c0 .171.031.329.089.473.057.145.14.263.247.368.108.105.235.184.387.236a1.4 1.4 0 0 0 .508.086c.387 0 .698-.105.92-.322.222-.217.336-.525.336-.933a1.55 1.55 0 0 0-.102-.571 1 1 0 0 0-.279-.4 1.174 1.174 0 0 0-.438-.23 2.212 2.212 0 0 0-.577-.073h-.749V14.41h.743c.215 0 .406-.026.564-.086.16-.059.292-.137.4-.243a.966.966 0 0 0 .241-.374c.051-.144.076-.309.076-.486 0-.374-.088-.663-.279-.867-.19-.204-.476-.309-.863-.309-.171 0-.323.027-.463.08-.14.052-.26.124-.368.216a.998.998 0 0 0-.241.341 1.127 1.127 0 0 0-.089.454H17.07c0-.302.057-.591.184-.848.114-.262.285-.486.495-.676.21-.19.463-.342.761-.453.292-.105.616-.158.965-.158.355 0 .685.046.97.131.299.092.552.237.762.42.216.191.38.421.495.697.12.276.177.598.177.959 0 .158-.019.322-.07.48-.044.164-.12.315-.215.466a2.005 2.005 0 0 1-.87.748c.235.086.432.191.59.316z"
|
|
21
|
+
/>
|
|
22
|
+
</g>
|
|
23
|
+
</svg>`,
|
|
24
|
+
hr: html `<svg>
|
|
25
|
+
<g id="trending-flat"><path d="M22 14h18v-2H3v2z"></path></g>
|
|
26
|
+
</svg>`,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const style = css `.CodeMirror{--editor-code-color: var(--exm-markdown-editor-code-color, var(--md-sys-color-on-surface));--editor-code-cursor-color: var(--exm-markdown-editor-code-cursor-color, var(--md-sys-color-on-surface));--editor-code-header-color: var(--exm-markdown-editor-code-header-color, #4a8fc0);--editor-code-inline-code-color: var(--exm-markdown-editor-code-inline-code-color, #ea881f);--editor-code-list-color: var(--exm-markdown-editor-code-list-color, rgb(25, 165, 28));--editor-selected-code-color: var(--exm-markdown-editor-selected-code-color, rgb(140, 140, 140));color:var(--editor-code-color, var(--md-sys-color-on-surface, black));direction:ltr}.CodeMirror-lines{padding:0}.CodeMirror pre{padding:0 1rem}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid var(--editor-code-cursor-color, var(--md-sys-color-on-surface, black))}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:rgba(0,0,0,0)}}@-webkit-keyframes blink{50%{background-color:rgba(0,0,0,0)}}@keyframes blink{50%{background-color:rgba(0,0,0,0)}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:var(--editor-code-header-color)}.cm-s-default .cm-quote{color:var(--editor-code-quote-color)}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:var(--editor-code-list-color)}.cm-s-default .cm-def{color:blue}.cm-s-default .cm-variable-2{color:var(--editor-code-list-color)}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:var(--editor-code-list-color)}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:var(--editor-code-inline-code-color, #f50)}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden}.CodeMirror-scroll{overflow:scroll !important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative;box-sizing:border-box}.CodeMirror-sizer{position:relative;border-right:30px solid rgba(0,0,0,0)}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none !important;border:none !important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:rgba(0,0,0,0)}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:rgba(0,0,0,0)}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:rgba(0,0,0,0);font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:var(--editor-selected-code-color)}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}`;
|
|
3
|
+
export default style;
|
|
4
|
+
//# sourceMappingURL=exm-markdown-codemirror-css.js.map
|