decidim-decidim_awesome 0.6.5 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +38 -8
  3. data/app/assets/config/decidim_admin_decidim_awesome_manifest.css +2 -2
  4. data/app/assets/config/decidim_admin_decidim_awesome_manifest.js +1 -1
  5. data/app/assets/config/decidim_decidim_awesome_manifest.css +2 -2
  6. data/app/assets/config/decidim_decidim_awesome_manifest.js +3 -2
  7. data/app/assets/config/legacy_decidim_admin_decidim_awesome_manifest.js +2 -0
  8. data/app/assets/config/legacy_decidim_decidim_awesome_manifest.js +4 -0
  9. data/app/assets/javascripts/decidim/decidim_awesome/admin/auto_edit.js.es6 +77 -0
  10. data/app/assets/javascripts/decidim/decidim_awesome/admin/codemirror.js.es6 +14 -0
  11. data/app/assets/javascripts/decidim/decidim_awesome/admin/form_builder.js.es6 +80 -0
  12. data/app/assets/javascripts/decidim/decidim_awesome/admin/legacy_form_builder.js.es6 +80 -0
  13. data/app/assets/javascripts/decidim/decidim_awesome/admin/user_picker.js.es6 +24 -0
  14. data/app/assets/javascripts/decidim/decidim_awesome/awesome_admin.js +7 -0
  15. data/app/assets/javascripts/decidim/decidim_awesome/{application.js → awesome_application.js} +1 -2
  16. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/hashtags.js.es6 +48 -0
  17. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/layers.js.es6 +107 -0
  18. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/load_map.js.es6 +15 -0
  19. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/map.js.es6 +170 -178
  20. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/markers.js.es6 +56 -0
  21. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/meetings.js.es6 +7 -6
  22. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/proposals.js.es6 +18 -5
  23. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/utilities.js.es6 +57 -0
  24. data/app/assets/javascripts/decidim/decidim_awesome/editors/legacy_quill_editor.js.es6 +172 -0
  25. data/app/assets/javascripts/decidim/decidim_awesome/editors/quill_editor.js.es6 +34 -9
  26. data/app/assets/javascripts/decidim/decidim_awesome/editors/tabs_focus.js.es6 +24 -0
  27. data/app/assets/javascripts/decidim/decidim_awesome/forms/custom_fields_builder.js.es6 +211 -0
  28. data/app/assets/javascripts/decidim/decidim_awesome/forms/rich_text_plugin.js.es6 +106 -0
  29. data/app/assets/javascripts/decidim/decidim_awesome/legacy_admin.js +7 -0
  30. data/app/assets/javascripts/decidim/decidim_awesome/legacy_application.js +3 -0
  31. data/app/assets/javascripts/decidim/decidim_awesome/proposals/custom_fields.js.es6 +21 -0
  32. data/app/assets/stylesheets/decidim/decidim_awesome/admin/auto_edits.scss +15 -0
  33. data/app/assets/stylesheets/decidim/decidim_awesome/admin/codemirror.scss +27 -0
  34. data/app/assets/stylesheets/decidim/decidim_awesome/admin/constraints.scss +12 -0
  35. data/app/assets/stylesheets/decidim/decidim_awesome/admin/custom_fields.scss +66 -0
  36. data/app/assets/stylesheets/decidim/decidim_awesome/admin/user_picker.scss +35 -0
  37. data/app/assets/stylesheets/decidim/decidim_awesome/{admin.scss → awesome_admin.scss} +19 -4
  38. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_application.scss +22 -0
  39. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/leaflet.scss.erb +9 -0
  40. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +95 -1
  41. data/app/assets/stylesheets/decidim/decidim_awesome/editors/markdown_editor.scss +1 -1
  42. data/app/assets/stylesheets/decidim/decidim_awesome/editors/quill_editor.scss +16 -1
  43. data/app/awesome_overrides/forms/decidim/proposals/proposal_wizard_create_step_form_override.rb +28 -0
  44. data/app/awesome_overrides/presenters/decidim/menu_presenter_override.rb +11 -3
  45. data/app/cells/decidim/decidim_awesome/content_blocks/map/show.erb +74 -0
  46. data/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb +54 -0
  47. data/app/cells/decidim/decidim_awesome/content_blocks/map_form/show.erb +61 -0
  48. data/app/cells/decidim/decidim_awesome/content_blocks/map_form_cell.rb +19 -0
  49. data/app/commands/concerns/decidim/decidim_awesome/admin/needs_constraint_helpers.rb +32 -0
  50. data/app/commands/decidim/decidim_awesome/admin/create_proposal_custom_field.rb +45 -0
  51. data/app/commands/decidim/decidim_awesome/admin/create_scoped_admin.rb +38 -0
  52. data/app/commands/decidim/decidim_awesome/admin/destroy_constraint.rb +4 -0
  53. data/app/commands/decidim/decidim_awesome/admin/destroy_proposal_custom_field.rb +40 -0
  54. data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_admin.rb +40 -0
  55. data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_style.rb +1 -1
  56. data/app/commands/decidim/decidim_awesome/admin/rename_scope_label.rb +58 -0
  57. data/app/commands/decidim/decidim_awesome/admin/update_config.rb +5 -1
  58. data/app/controllers/concerns/decidim/decidim_awesome/admin_not_found_redirect.rb +39 -0
  59. data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +1 -1
  60. data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +33 -20
  61. data/app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb +4 -0
  62. data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +2 -2
  63. data/app/controllers/decidim/decidim_awesome/admin/proposal_custom_fields_controller.rb +38 -0
  64. data/app/controllers/decidim/decidim_awesome/admin/scoped_admins_controller.rb +38 -0
  65. data/app/controllers/decidim/decidim_awesome/admin/scoped_styles_controller.rb +38 -0
  66. data/app/controllers/decidim/decidim_awesome/map_component/map_controller.rb +1 -4
  67. data/app/forms/decidim/decidim_awesome/admin/config_form.rb +50 -0
  68. data/app/forms/decidim/decidim_awesome/admin/constraint_form.rb +3 -1
  69. data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +11 -7
  70. data/app/helpers/decidim/decidim_awesome/amendments_helper_override.rb +48 -0
  71. data/app/helpers/decidim/decidim_awesome/map_helper.rb +66 -53
  72. data/app/helpers/decidim/decidim_awesome/proposals/application_helper_override.rb +78 -0
  73. data/app/middleware/decidim/decidim_awesome/current_config.rb +182 -0
  74. data/app/models/decidim/decidim_awesome/awesome_config.rb +15 -0
  75. data/app/models/decidim/decidim_awesome/user_override.rb +25 -0
  76. data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +2 -0
  77. data/app/uploaders/decidim/decidim_awesome/image_uploader.rb +0 -5
  78. data/app/views/decidim/decidim_awesome/admin/checks/index.html.erb +2 -2
  79. data/app/views/decidim/decidim_awesome/admin/config/_autoedit_box_label.html.erb +7 -0
  80. data/app/views/decidim/decidim_awesome/admin/config/_constraints.html.erb +2 -2
  81. data/app/views/decidim/decidim_awesome/admin/config/_form_admins.html.erb +21 -0
  82. data/app/views/decidim/decidim_awesome/admin/config/_form_editors.html.erb +0 -3
  83. data/app/views/decidim/decidim_awesome/admin/config/_form_proposal_custom_fields.html.erb +25 -0
  84. data/app/views/decidim/decidim_awesome/admin/config/_form_proposals.html.erb +0 -2
  85. data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +4 -6
  86. data/app/views/decidim/decidim_awesome/admin/config/show.html.erb +1 -2
  87. data/app/views/decidim/decidim_awesome/admin/proposals/_editor.html.erb +4 -0
  88. data/app/views/decidim/decidim_awesome/custom_fields/_form_render.html.erb +6 -0
  89. data/app/views/decidim/decidim_awesome/map_component/map/show.html.erb +3 -32
  90. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +101 -0
  91. data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +83 -0
  92. data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +1 -0
  93. data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +25 -11
  94. data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +8 -1
  95. data/app/views/layouts/decidim/decidim_awesome/_custom_styles.html.erb +1 -1
  96. data/app/views/v0.23/decidim/proposals/collaborative_drafts/_show.html.erb +134 -0
  97. data/app/views/v0.23/layouts/decidim/_head.html.erb +2 -2
  98. data/app/views/v0.23/layouts/decidim/admin/_header.html.erb +2 -2
  99. data/app/views/v0.24/decidim/proposals/collaborative_drafts/_show.html.erb +128 -0
  100. data/app/views/{v0.22 → v0.24}/layouts/decidim/_head.html.erb +4 -2
  101. data/app/views/{v0.22 → v0.24}/layouts/decidim/admin/_header.html.erb +3 -2
  102. data/config/locales/ca.yml +75 -3
  103. data/config/locales/cs.yml +75 -3
  104. data/config/locales/en.yml +104 -11
  105. data/config/locales/es.yml +74 -2
  106. data/config/locales/eu.yml +76 -4
  107. data/config/locales/fr.yml +214 -142
  108. data/config/locales/it.yml +284 -0
  109. data/config/locales/ja.yml +284 -0
  110. data/config/locales/nl.yml +208 -136
  111. data/config/locales/sv.yml +109 -37
  112. data/db/migrate/20210628150825_change_awesome_config_var_type.rb +12 -0
  113. data/lib/decidim/decidim_awesome/admin_engine.rb +16 -4
  114. data/lib/decidim/decidim_awesome/awesome_helpers.rb +17 -10
  115. data/lib/decidim/decidim_awesome/checksums.yml +19 -9
  116. data/lib/decidim/decidim_awesome/config.rb +54 -9
  117. data/lib/decidim/decidim_awesome/context_analyzers/request_analyzer.rb +27 -21
  118. data/lib/decidim/decidim_awesome/custom_fields.rb +94 -0
  119. data/lib/decidim/decidim_awesome/engine.rb +64 -8
  120. data/lib/decidim/decidim_awesome/iframe_component/component.rb +1 -1
  121. data/lib/decidim/decidim_awesome/map_component/component.rb +8 -2
  122. data/lib/decidim/decidim_awesome/menu_hacker.rb +17 -15
  123. data/lib/decidim/decidim_awesome/system_checker.rb +1 -1
  124. data/lib/decidim/decidim_awesome/test/shared_examples/box_label_editor.rb +116 -0
  125. data/lib/decidim/decidim_awesome/test/shared_examples/current_config_examples.rb +143 -0
  126. data/lib/decidim/decidim_awesome/test/shared_examples/editor_examples.rb +4 -0
  127. data/lib/decidim/decidim_awesome/test/shared_examples/scoped_admins_examples.rb +428 -0
  128. data/lib/decidim/decidim_awesome/version.rb +2 -2
  129. data/lib/decidim/decidim_awesome.rb +41 -8
  130. data/vendor/assets/javascripts/codemirror.js +9801 -0
  131. data/vendor/assets/javascripts/delta.min.js +405 -0
  132. data/vendor/assets/javascripts/delta.min.js.map +1 -0
  133. data/vendor/assets/javascripts/europa.min.js +4 -0
  134. data/vendor/assets/javascripts/form-builder.min.js +19 -0
  135. data/vendor/assets/javascripts/form-render.min.js +19 -0
  136. data/vendor/assets/javascripts/inscrybmde.min.js +1 -1
  137. data/vendor/assets/javascripts/jquery-ui.min.js +13 -0
  138. data/vendor/assets/javascripts/jquery.truncate.js +105 -0
  139. data/vendor/assets/javascripts/keymap/sublime.js +720 -0
  140. data/vendor/assets/javascripts/mode/css/css.js +864 -0
  141. data/vendor/assets/javascripts/select2.js +6147 -0
  142. data/vendor/assets/langs/en-US.lang +110 -0
  143. data/vendor/assets/stylesheets/codemirror.css +350 -0
  144. data/vendor/assets/stylesheets/inscrybmde.min.scss +194 -0
  145. data/vendor/assets/stylesheets/jquery-ui.min.css +7 -0
  146. data/vendor/assets/stylesheets/select2-foundation-theme.css +249 -0
  147. data/vendor/assets/stylesheets/select2.css +515 -0
  148. metadata +101 -34
  149. data/app/assets/images/decidim/decidim_awesome/loading.gif +0 -0
  150. data/app/assets/javascripts/decidim/decidim_awesome/admin.js +0 -2
  151. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/legacy_map.js.es6 +0 -225
  152. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/legacy_proposals.js.es6 +0 -82
  153. data/app/assets/javascripts/decidim/decidim_awesome/editors/markdown_view.js.es6 +0 -12
  154. data/app/assets/stylesheets/decidim/decidim_awesome/application.scss +0 -8
  155. data/app/assets/stylesheets/decidim/decidim_awesome/editors/markdown_view.scss +0 -27
  156. data/app/awesome_overrides/presenters/decidim/proposals/proposal_presenter_override.rb +0 -64
  157. data/lib/decidim/decidim_awesome/content_renderers/markdown_renderer.rb +0 -18
  158. data/lib/decidim/decidim_awesome/content_renderers.rb +0 -9
  159. data/vendor/assets/stylesheets/inscrybmde.min.css +0 -8
@@ -0,0 +1,110 @@
1
+ NATIVE_NAME = English (US)
2
+ ENGLISH_NAME = English
3
+
4
+ addOption = Add Option +
5
+ allFieldsRemoved = All fields were removed.
6
+ allowMultipleFiles = Allow users to upload multiple files
7
+ autocomplete = Autocomplete
8
+ button = Button
9
+ cannotBeEmpty = This field cannot be empty
10
+ checkboxGroup = Checkbox Group
11
+ checkbox = Checkbox
12
+ checkboxes = Checkboxes
13
+ className = Class
14
+ clearAllMessage = Are you sure you want to clear all fields?
15
+ clear = Clear
16
+ close = Close
17
+ content = Content
18
+ copy = Copy To Clipboard
19
+ copyButton = +
20
+ copyButtonTooltip = Copy
21
+ dateField = Date Field
22
+ description = Help Text
23
+ descriptionField = Description
24
+ devMode = Developer Mode
25
+ editNames = Edit Names
26
+ editorTitle = Form Elements
27
+ editXML = Edit XML
28
+ enableOther = Enable "Other"
29
+ enableOtherMsg = Let users enter an unlisted option
30
+ fieldDeleteWarning = false
31
+ fieldVars = Field Variables
32
+ fieldNonEditable = This field cannot be edited.
33
+ fieldRemoveWarning = Are you sure you want to remove this field?
34
+ fileUpload = File Upload
35
+ formUpdated = Form Updated
36
+ getStarted = Drag a field from the right to this area
37
+ header = Header
38
+ hide = Edit
39
+ hidden = Hidden Input
40
+ inline = Inline
41
+ inlineDesc = Display {type} inline
42
+ label = Label
43
+ labelEmpty = Field Label cannot be empty
44
+ limitRole = Limit access to one or more of the following roles:
45
+ mandatory = Mandatory
46
+ maxlength = Max Length
47
+ minOptionMessage = This field requires a minimum of 2 options
48
+ minSelectionRequired = Minimum {min} selections required
49
+ multipleFiles = Multiple Files
50
+ name = Name
51
+ no = No
52
+ noFieldsToClear = There are no fields to clear
53
+ number = Number
54
+ off = Off
55
+ on = On
56
+ option = Option
57
+ optionCount = Option {count}
58
+ options = Options
59
+ optional = optional
60
+ optionLabelPlaceholder = Label
61
+ optionValuePlaceholder = Value
62
+ optionEmpty = Option value required
63
+ other = Other
64
+ paragraph = Paragraph
65
+ placeholder = Placeholder
66
+ placeholders.value = Value
67
+ placeholders.label = Label
68
+ placeholders.text =
69
+ placeholders.textarea =
70
+ placeholders.email = Enter your email
71
+ placeholders.placeholder =
72
+ placeholders.className = space separated classes
73
+ placeholders.password = Enter your password
74
+ preview = Preview
75
+ radioGroup = Radio Group
76
+ radio = Radio
77
+ removeMessage = Remove Element
78
+ removeOption = Remove Option
79
+ remove = ×
80
+ required = Required
81
+ requireValidOption = Only accept a pre-defined Option
82
+ richText = Rich Text Editor
83
+ roles = Access
84
+ rows = Rows
85
+ save = Save
86
+ selectOptions = Options
87
+ select = Select
88
+ selectColor = Select Color
89
+ selectionsMessage = Allow Multiple Selections
90
+ size = Size
91
+ size.xs = Extra Small
92
+ size.sm = Small
93
+ size.m = Default
94
+ size.lg = Large
95
+ style = Style
96
+ styles.btn.default = Default
97
+ styles.btn.danger = Danger
98
+ styles.btn.info = Info
99
+ styles.btn.primary = Primary
100
+ styles.btn.success = Success
101
+ styles.btn.warning = Warning
102
+ subtype = Type
103
+ text = Text Field
104
+ textArea = Text Area
105
+ toggle = Toggle
106
+ warning = Warning!
107
+ value = Value
108
+ viewJSON = [{…}]
109
+ viewXML = </>
110
+ yes = Yes
@@ -0,0 +1,350 @@
1
+ /* BASICS */
2
+
3
+ .CodeMirror {
4
+ /* Set height, width, borders, and global font properties here */
5
+ font-family: monospace;
6
+ height: 300px;
7
+ color: black;
8
+ direction: ltr;
9
+ }
10
+
11
+ /* PADDING */
12
+
13
+ .CodeMirror-lines {
14
+ padding: 4px 0; /* Vertical padding around content */
15
+ }
16
+ .CodeMirror pre.CodeMirror-line,
17
+ .CodeMirror pre.CodeMirror-line-like {
18
+ padding: 0 4px; /* Horizontal padding of content */
19
+ }
20
+
21
+ .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
22
+ background-color: white; /* The little square between H and V scrollbars */
23
+ }
24
+
25
+ /* GUTTER */
26
+
27
+ .CodeMirror-gutters {
28
+ border-right: 1px solid #ddd;
29
+ background-color: #f7f7f7;
30
+ white-space: nowrap;
31
+ }
32
+ .CodeMirror-linenumbers {}
33
+ .CodeMirror-linenumber {
34
+ padding: 0 3px 0 5px;
35
+ min-width: 20px;
36
+ text-align: right;
37
+ color: #999;
38
+ white-space: nowrap;
39
+ }
40
+
41
+ .CodeMirror-guttermarker { color: black; }
42
+ .CodeMirror-guttermarker-subtle { color: #999; }
43
+
44
+ /* CURSOR */
45
+
46
+ .CodeMirror-cursor {
47
+ border-left: 1px solid black;
48
+ border-right: none;
49
+ width: 0;
50
+ }
51
+ /* Shown when moving in bi-directional text */
52
+ .CodeMirror div.CodeMirror-secondarycursor {
53
+ border-left: 1px solid silver;
54
+ }
55
+ .cm-fat-cursor .CodeMirror-cursor {
56
+ width: auto;
57
+ border: 0 !important;
58
+ background: #7e7;
59
+ }
60
+ .cm-fat-cursor div.CodeMirror-cursors {
61
+ z-index: 1;
62
+ }
63
+ .cm-fat-cursor-mark {
64
+ background-color: rgba(20, 255, 20, 0.5);
65
+ -webkit-animation: blink 1.06s steps(1) infinite;
66
+ -moz-animation: blink 1.06s steps(1) infinite;
67
+ animation: blink 1.06s steps(1) infinite;
68
+ }
69
+ .cm-animate-fat-cursor {
70
+ width: auto;
71
+ border: 0;
72
+ -webkit-animation: blink 1.06s steps(1) infinite;
73
+ -moz-animation: blink 1.06s steps(1) infinite;
74
+ animation: blink 1.06s steps(1) infinite;
75
+ background-color: #7e7;
76
+ }
77
+ @-moz-keyframes blink {
78
+ 0% {}
79
+ 50% { background-color: transparent; }
80
+ 100% {}
81
+ }
82
+ @-webkit-keyframes blink {
83
+ 0% {}
84
+ 50% { background-color: transparent; }
85
+ 100% {}
86
+ }
87
+ @keyframes blink {
88
+ 0% {}
89
+ 50% { background-color: transparent; }
90
+ 100% {}
91
+ }
92
+
93
+ /* Can style cursor different in overwrite (non-insert) mode */
94
+ .CodeMirror-overwrite .CodeMirror-cursor {}
95
+
96
+ .cm-tab { display: inline-block; text-decoration: inherit; }
97
+
98
+ .CodeMirror-rulers {
99
+ position: absolute;
100
+ left: 0; right: 0; top: -50px; bottom: 0;
101
+ overflow: hidden;
102
+ }
103
+ .CodeMirror-ruler {
104
+ border-left: 1px solid #ccc;
105
+ top: 0; bottom: 0;
106
+ position: absolute;
107
+ }
108
+
109
+ /* DEFAULT THEME */
110
+
111
+ .cm-s-default .cm-header {color: blue;}
112
+ .cm-s-default .cm-quote {color: #090;}
113
+ .cm-negative {color: #d44;}
114
+ .cm-positive {color: #292;}
115
+ .cm-header, .cm-strong {font-weight: bold;}
116
+ .cm-em {font-style: italic;}
117
+ .cm-link {text-decoration: underline;}
118
+ .cm-strikethrough {text-decoration: line-through;}
119
+
120
+ .cm-s-default .cm-keyword {color: #708;}
121
+ .cm-s-default .cm-atom {color: #219;}
122
+ .cm-s-default .cm-number {color: #164;}
123
+ .cm-s-default .cm-def {color: #00f;}
124
+ .cm-s-default .cm-variable,
125
+ .cm-s-default .cm-punctuation,
126
+ .cm-s-default .cm-property,
127
+ .cm-s-default .cm-operator {}
128
+ .cm-s-default .cm-variable-2 {color: #05a;}
129
+ .cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
130
+ .cm-s-default .cm-comment {color: #a50;}
131
+ .cm-s-default .cm-string {color: #a11;}
132
+ .cm-s-default .cm-string-2 {color: #f50;}
133
+ .cm-s-default .cm-meta {color: #555;}
134
+ .cm-s-default .cm-qualifier {color: #555;}
135
+ .cm-s-default .cm-builtin {color: #30a;}
136
+ .cm-s-default .cm-bracket {color: #997;}
137
+ .cm-s-default .cm-tag {color: #170;}
138
+ .cm-s-default .cm-attribute {color: #00c;}
139
+ .cm-s-default .cm-hr {color: #999;}
140
+ .cm-s-default .cm-link {color: #00c;}
141
+
142
+ .cm-s-default .cm-error {color: #f00;}
143
+ .cm-invalidchar {color: #f00;}
144
+
145
+ .CodeMirror-composing { border-bottom: 2px solid; }
146
+
147
+ /* Default styles for common addons */
148
+
149
+ div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
150
+ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
151
+ .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
152
+ .CodeMirror-activeline-background {background: #e8f2ff;}
153
+
154
+ /* STOP */
155
+
156
+ /* The rest of this file contains styles related to the mechanics of
157
+ the editor. You probably shouldn't touch them. */
158
+
159
+ .CodeMirror {
160
+ position: relative;
161
+ overflow: hidden;
162
+ background: white;
163
+ }
164
+
165
+ .CodeMirror-scroll {
166
+ overflow: scroll !important; /* Things will break if this is overridden */
167
+ /* 50px is the magic margin used to hide the element's real scrollbars */
168
+ /* See overflow: hidden in .CodeMirror */
169
+ margin-bottom: -50px; margin-right: -50px;
170
+ padding-bottom: 50px;
171
+ height: 100%;
172
+ outline: none; /* Prevent dragging from highlighting the element */
173
+ position: relative;
174
+ }
175
+ .CodeMirror-sizer {
176
+ position: relative;
177
+ border-right: 50px solid transparent;
178
+ }
179
+
180
+ /* The fake, visible scrollbars. Used to force redraw during scrolling
181
+ before actual scrolling happens, thus preventing shaking and
182
+ flickering artifacts. */
183
+ .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
184
+ position: absolute;
185
+ z-index: 6;
186
+ display: none;
187
+ outline: none;
188
+ }
189
+ .CodeMirror-vscrollbar {
190
+ right: 0; top: 0;
191
+ overflow-x: hidden;
192
+ overflow-y: scroll;
193
+ }
194
+ .CodeMirror-hscrollbar {
195
+ bottom: 0; left: 0;
196
+ overflow-y: hidden;
197
+ overflow-x: scroll;
198
+ }
199
+ .CodeMirror-scrollbar-filler {
200
+ right: 0; bottom: 0;
201
+ }
202
+ .CodeMirror-gutter-filler {
203
+ left: 0; bottom: 0;
204
+ }
205
+
206
+ .CodeMirror-gutters {
207
+ position: absolute; left: 0; top: 0;
208
+ min-height: 100%;
209
+ z-index: 3;
210
+ }
211
+ .CodeMirror-gutter {
212
+ white-space: normal;
213
+ height: 100%;
214
+ display: inline-block;
215
+ vertical-align: top;
216
+ margin-bottom: -50px;
217
+ }
218
+ .CodeMirror-gutter-wrapper {
219
+ position: absolute;
220
+ z-index: 4;
221
+ background: none !important;
222
+ border: none !important;
223
+ }
224
+ .CodeMirror-gutter-background {
225
+ position: absolute;
226
+ top: 0; bottom: 0;
227
+ z-index: 4;
228
+ }
229
+ .CodeMirror-gutter-elt {
230
+ position: absolute;
231
+ cursor: default;
232
+ z-index: 4;
233
+ }
234
+ .CodeMirror-gutter-wrapper ::selection { background-color: transparent }
235
+ .CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
236
+
237
+ .CodeMirror-lines {
238
+ cursor: text;
239
+ min-height: 1px; /* prevents collapsing before first draw */
240
+ }
241
+ .CodeMirror pre.CodeMirror-line,
242
+ .CodeMirror pre.CodeMirror-line-like {
243
+ /* Reset some styles that the rest of the page might have set */
244
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
245
+ border-width: 0;
246
+ background: transparent;
247
+ font-family: inherit;
248
+ font-size: inherit;
249
+ margin: 0;
250
+ white-space: pre;
251
+ word-wrap: normal;
252
+ line-height: inherit;
253
+ color: inherit;
254
+ z-index: 2;
255
+ position: relative;
256
+ overflow: visible;
257
+ -webkit-tap-highlight-color: transparent;
258
+ -webkit-font-variant-ligatures: contextual;
259
+ font-variant-ligatures: contextual;
260
+ }
261
+ .CodeMirror-wrap pre.CodeMirror-line,
262
+ .CodeMirror-wrap pre.CodeMirror-line-like {
263
+ word-wrap: break-word;
264
+ white-space: pre-wrap;
265
+ word-break: normal;
266
+ }
267
+
268
+ .CodeMirror-linebackground {
269
+ position: absolute;
270
+ left: 0; right: 0; top: 0; bottom: 0;
271
+ z-index: 0;
272
+ }
273
+
274
+ .CodeMirror-linewidget {
275
+ position: relative;
276
+ z-index: 2;
277
+ padding: 0.1px; /* Force widget margins to stay inside of the container */
278
+ }
279
+
280
+ .CodeMirror-widget {}
281
+
282
+ .CodeMirror-rtl pre { direction: rtl; }
283
+
284
+ .CodeMirror-code {
285
+ outline: none;
286
+ }
287
+
288
+ /* Force content-box sizing for the elements where we expect it */
289
+ .CodeMirror-scroll,
290
+ .CodeMirror-sizer,
291
+ .CodeMirror-gutter,
292
+ .CodeMirror-gutters,
293
+ .CodeMirror-linenumber {
294
+ -moz-box-sizing: content-box;
295
+ box-sizing: content-box;
296
+ }
297
+
298
+ .CodeMirror-measure {
299
+ position: absolute;
300
+ width: 100%;
301
+ height: 0;
302
+ overflow: hidden;
303
+ visibility: hidden;
304
+ }
305
+
306
+ .CodeMirror-cursor {
307
+ position: absolute;
308
+ pointer-events: none;
309
+ }
310
+ .CodeMirror-measure pre { position: static; }
311
+
312
+ div.CodeMirror-cursors {
313
+ visibility: hidden;
314
+ position: relative;
315
+ z-index: 3;
316
+ }
317
+ div.CodeMirror-dragcursors {
318
+ visibility: visible;
319
+ }
320
+
321
+ .CodeMirror-focused div.CodeMirror-cursors {
322
+ visibility: visible;
323
+ }
324
+
325
+ .CodeMirror-selected { background: #d9d9d9; }
326
+ .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
327
+ .CodeMirror-crosshair { cursor: crosshair; }
328
+ .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
329
+ .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
330
+
331
+ .cm-searching {
332
+ background-color: #ffa;
333
+ background-color: rgba(255, 255, 0, .4);
334
+ }
335
+
336
+ /* Used to force a border model for a node */
337
+ .cm-force-border { padding-right: .1px; }
338
+
339
+ @media print {
340
+ /* Hide the cursor when printing */
341
+ .CodeMirror div.CodeMirror-cursors {
342
+ visibility: hidden;
343
+ }
344
+ }
345
+
346
+ /* See issue #2901 */
347
+ .cm-tab-wrap-hack:after { content: ''; }
348
+
349
+ /* Help users use markselection to safely style text background */
350
+ span.CodeMirror-selectedtext { background: none; }
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Tunned to add !important to colors
3
+ * inscrybmde v1.11.6
4
+ * Copyright Christopher Wharton
5
+ * @link https://github.com/inscryb/inscryb-markdown-editor
6
+ * @license MIT
7
+ */
8
+ .editor{
9
+
10
+ .CodeMirror{ font-family: monospace; height: 300px; color: #000 !important; direction: ltr; }
11
+ .CodeMirror-lines{ padding: 4px 0; }
12
+ .CodeMirror pre{ padding: 0 4px; }
13
+
14
+ .CodeMirror-gutter-filler,
15
+ .CodeMirror-scrollbar-filler{ background-color: #fff; }
16
+ .CodeMirror-gutters{ border-right: 1px solid #ddd; background-color: #f7f7f7; white-space: nowrap; }
17
+ .CodeMirror-linenumber{ padding: 0 3px 0 5px; min-width: 20px; text-align: right; color: #999; white-space: nowrap; }
18
+ .CodeMirror-guttermarker{ color: #000; }
19
+ .CodeMirror-guttermarker-subtle{ color: #999; }
20
+ .CodeMirror-cursor{ border-left: 1px solid #000; border-right: none; width: 0; }
21
+ .CodeMirror div.CodeMirror-secondarycursor{ border-left: 1px solid silver; }
22
+ .cm-fat-cursor .CodeMirror-cursor{ width: auto; border: 0 !important; background: #7e7; }
23
+ .cm-fat-cursor div.CodeMirror-cursors{ z-index: 1; }
24
+ .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; }
25
+ .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; }
26
+
27
+ @-moz-keyframes blink{ 50%{ background-color: transparent; } }
28
+
29
+ @-webkit-keyframes blink{ 50%{ background-color: transparent; } }
30
+
31
+ @keyframes blink{ 50%{ background-color: transparent; } }
32
+ .cm-tab{ display: inline-block; text-decoration: inherit; }
33
+ .CodeMirror-rulers{ position: absolute; left: 0; right: 0; top: -50px; bottom: -20px; overflow: hidden; }
34
+ .CodeMirror-ruler{ border-left: 1px solid #ccc; top: 0; bottom: 0; position: absolute; }
35
+ .cm-s-default .cm-header{ color: #00f; }
36
+ .cm-s-default .cm-quote{ color: #090; }
37
+ .cm-negative{ color: #d44; }
38
+ .cm-positive{ color: #292; }
39
+
40
+ .cm-header,
41
+ .cm-strong{ font-weight: 700; }
42
+ .cm-em{ font-style: italic; }
43
+ .cm-link{ text-decoration: underline; }
44
+ .cm-strikethrough{ text-decoration: line-through; }
45
+ .cm-s-default .cm-keyword{ color: #708; }
46
+ .cm-s-default .cm-atom{ color: #219; }
47
+ .cm-s-default .cm-number{ color: #164; }
48
+ .cm-s-default .cm-def{ color: #00f; }
49
+ .cm-s-default .cm-variable-2{ color: #05a; }
50
+
51
+ .cm-s-default .cm-type,
52
+ .cm-s-default .cm-variable-3{ color: #085; }
53
+ .cm-s-default .cm-comment{ color: #a50; }
54
+ .cm-s-default .cm-string{ color: #a11; }
55
+ .cm-s-default .cm-string-2{ color: #f50; }
56
+ .cm-s-default .cm-meta{ color: #555; }
57
+ .cm-s-default .cm-qualifier{ color: #555; }
58
+ .cm-s-default .cm-builtin{ color: #30a; }
59
+ .cm-s-default .cm-bracket{ color: #997; }
60
+ .cm-s-default .cm-tag{ color: #170; }
61
+ .cm-s-default .cm-attribute{ color: #00c; }
62
+ .cm-s-default .cm-hr{ color: #999; }
63
+ .cm-s-default .cm-link{ color: #00c; }
64
+ .cm-s-default .cm-error{ color: red; }
65
+ .cm-invalidchar{ color: red; }
66
+ .CodeMirror-composing{ border-bottom: 2px solid; }
67
+ div.CodeMirror span.CodeMirror-matchingbracket{ color: #0b0; }
68
+ div.CodeMirror span.CodeMirror-nonmatchingbracket{ color: #a22; }
69
+ .CodeMirror-matchingtag{ background: rgba(255, 150, 0, .3); }
70
+ .CodeMirror-activeline-background{ background: #e8f2ff; }
71
+ .CodeMirror{ position: relative; overflow: hidden; background: #fff; }
72
+ .CodeMirror-scroll{ overflow: scroll !important; margin-bottom: -30px; margin-right: -30px; padding-bottom: 30px; height: 100%; outline: 0; position: relative; }
73
+ .CodeMirror-sizer{ position: relative; border-right: 30px solid transparent; }
74
+
75
+ .CodeMirror-gutter-filler,
76
+ .CodeMirror-hscrollbar,
77
+ .CodeMirror-scrollbar-filler,
78
+ .CodeMirror-vscrollbar{ position: absolute; z-index: 6; display: none; }
79
+ .CodeMirror-vscrollbar{ right: 0; top: 0; overflow-x: hidden; overflow-y: scroll; }
80
+ .CodeMirror-hscrollbar{ bottom: 0; left: 0; overflow-y: hidden; overflow-x: scroll; }
81
+ .CodeMirror-scrollbar-filler{ right: 0; bottom: 0; }
82
+ .CodeMirror-gutter-filler{ left: 0; bottom: 0; }
83
+ .CodeMirror-gutters{ position: absolute; left: 0; top: 0; min-height: 100%; z-index: 3; }
84
+ .CodeMirror-gutter{ white-space: normal; height: 100%; display: inline-block; vertical-align: top; margin-bottom: -30px; }
85
+ .CodeMirror-gutter-wrapper{ position: absolute; z-index: 4; background: 0 0 !important; border: none !important; }
86
+ .CodeMirror-gutter-background{ position: absolute; top: 0; bottom: 0; z-index: 4; }
87
+ .CodeMirror-gutter-elt{ position: absolute; cursor: default; z-index: 4; }
88
+ .CodeMirror-gutter-wrapper ::selection{ background-color: transparent; }
89
+ .CodeMirror-gutter-wrapper ::-moz-selection{ background-color: transparent; }
90
+ .CodeMirror-lines{ cursor: text; min-height: 1px; }
91
+ .CodeMirror pre{ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; border-width: 0; background: 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: transparent; -webkit-font-variant-ligatures: contextual; font-variant-ligatures: contextual; }
92
+ .CodeMirror-wrap pre{ word-wrap: break-word; white-space: pre-wrap; word-break: normal; }
93
+ .CodeMirror-linebackground{ position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: 0; }
94
+ .CodeMirror-linewidget{ position: relative; z-index: 2; padding: .1px; }
95
+ .CodeMirror-rtl pre{ direction: rtl; }
96
+ .CodeMirror-code{ outline: 0; }
97
+
98
+ .CodeMirror-gutter,
99
+ .CodeMirror-gutters,
100
+ .CodeMirror-linenumber,
101
+ .CodeMirror-scroll,
102
+ .CodeMirror-sizer{ -moz-box-sizing: content-box; box-sizing: content-box; }
103
+ .CodeMirror-measure{ position: absolute; width: 100%; height: 0; overflow: hidden; visibility: hidden; }
104
+ .CodeMirror-cursor{ position: absolute; pointer-events: none; }
105
+ .CodeMirror-measure pre{ position: static; }
106
+ div.CodeMirror-cursors{ visibility: hidden; position: relative; z-index: 3; }
107
+ div.CodeMirror-dragcursors{ visibility: visible; }
108
+ .CodeMirror-focused div.CodeMirror-cursors{ visibility: visible; }
109
+ .CodeMirror-selected{ background: #d9d9d9; }
110
+ .CodeMirror-focused .CodeMirror-selected{ background: #d7d4f0; }
111
+ .CodeMirror-crosshair{ cursor: crosshair; }
112
+
113
+ .CodeMirror-line::selection,
114
+ .CodeMirror-line > span::selection,
115
+ .CodeMirror-line > span > span::selection{ background: #d7d4f0; }
116
+
117
+ .CodeMirror-line::-moz-selection,
118
+ .CodeMirror-line > span::-moz-selection,
119
+ .CodeMirror-line > span > span::-moz-selection{ background: #d7d4f0; }
120
+ .cm-searching{ background-color: #ffa; background-color: rgba(255, 255, 0, .4); }
121
+ .cm-force-border{ padding-right: .1px; }
122
+
123
+ @media print{ .CodeMirror div.CodeMirror-cursors{ visibility: hidden; } }
124
+ .cm-tab-wrap-hack::after{ content: ''; }
125
+ span.CodeMirror-selectedtext{ background: 0 0; }
126
+ .CodeMirror{ box-sizing: border-box; height: auto; border: 1px solid #ddd; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding: 10px; font: inherit; z-index: 1; word-wrap: break-word; }
127
+ .CodeMirror-scroll{ cursor: text; }
128
+ .CodeMirror-fullscreen{ background: #fff; position: fixed !important; top: 50px; left: 0; right: 0; bottom: 0; height: auto; z-index: 9; border-right: none !important; border-bottom-right-radius: 0 !important; }
129
+ .CodeMirror-sided{ width: 50% !important; }
130
+ .editor-toolbar{ position: relative; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; padding: 0 10px; border-top: 1px solid #bbb; border-left: 1px solid #bbb; border-right: 1px solid #bbb; border-top-left-radius: 4px; border-top-right-radius: 4px; }
131
+
132
+ .editor-toolbar::after,
133
+ .editor-toolbar::before{ display: block; content: ' '; height: 1px; }
134
+ .editor-toolbar::before{ margin-bottom: 8px; }
135
+ .editor-toolbar::after{ margin-top: 8px; }
136
+ .editor-toolbar.fullscreen{ width: 100%; height: 50px; overflow-x: auto; overflow-y: hidden; white-space: nowrap; padding-top: 10px; padding-bottom: 10px; box-sizing: border-box; background: #fff; border: 0; position: fixed; top: 0; left: 0; opacity: 1; z-index: 9; }
137
+ .editor-toolbar.fullscreen::before{ width: 20px; height: 50px; background: -moz-linear-gradient(left, rgba(255, 255, 255, 1) 0, rgba(255, 255, 255, 0) 100%); background: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(255, 255, 255, 1)), color-stop(100%, rgba(255, 255, 255, 0))); background: -webkit-linear-gradient(left, rgba(255, 255, 255, 1) 0, rgba(255, 255, 255, 0) 100%); background: -o-linear-gradient(left, rgba(255, 255, 255, 1) 0, rgba(255, 255, 255, 0) 100%); background: -ms-linear-gradient(left, rgba(255, 255, 255, 1) 0, rgba(255, 255, 255, 0) 100%); background: linear-gradient(to right, rgba(255, 255, 255, 1) 0, rgba(255, 255, 255, 0) 100%); position: fixed; top: 0; left: 0; margin: 0; padding: 0; }
138
+ .editor-toolbar.fullscreen::after{ width: 20px; height: 50px; background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 1) 100%); background: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(255, 255, 255, 0)), color-stop(100%, rgba(255, 255, 255, 1))); background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 1) 100%); background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 1) 100%); background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 1) 100%); background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 1) 100%); position: fixed; top: 0; right: 0; margin: 0; padding: 0; }
139
+
140
+ .editor-toolbar a,
141
+ .editor-toolbar button{ background: 0 0; display: inline-block; text-align: center; text-decoration: none !important; width: 30px; height: 30px; margin: 0; padding: 0; border: 1px solid transparent; border-radius: 3px; cursor: pointer; }
142
+
143
+ .editor-toolbar a.active,
144
+ .editor-toolbar a:hover,
145
+ .editor-toolbar button.active,
146
+ .editor-toolbar button:hover{ background: #fcfcfc; border-color: #95a5a6; }
147
+
148
+ .editor-toolbar a::before,
149
+ .editor-toolbar button::before{ line-height: 30px; }
150
+ .editor-toolbar i.separator{ display: inline-block; width: 0; border-left: 1px solid #d9d9d9; border-right: 1px solid #fff; color: transparent; text-indent: -10px; margin: 0 6px; }
151
+ .editor-toolbar a.fa-header-x::after{ font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 65%; vertical-align: text-bottom; position: relative; top: 2px; }
152
+ .editor-toolbar a.fa-header-1::after{ content: "1"; }
153
+ .editor-toolbar a.fa-header-2::after{ content: "2"; }
154
+ .editor-toolbar a.fa-header-3::after{ content: "3"; }
155
+ .editor-toolbar a.fa-header-bigger::after{ content: "▲"; }
156
+ .editor-toolbar a.fa-header-smaller::after{ content: "▼"; }
157
+ .editor-toolbar.disabled-for-preview button:not(.no-disable){ opacity: .6; pointer-events: none; }
158
+
159
+ @media only screen and (max-width: 700px){ .editor-toolbar a.no-mobile{ display: none; } }
160
+ .editor-statusbar{ padding: 8px 10px; font-size: 12px; color: #959694; text-align: right; }
161
+ .editor-statusbar span{ display: inline-block; min-width: 4em; margin-left: 1em; }
162
+ .editor-statusbar .lines::before{ content: 'lines: '; }
163
+ .editor-statusbar .words::before{ content: 'words: '; }
164
+ .editor-statusbar .characters::before{ content: 'characters: '; }
165
+ .editor-preview{ padding: 10px; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background: #fafafa; z-index: 7; overflow: auto; display: none; box-sizing: border-box; }
166
+ .editor-preview-side{ padding: 10px; position: fixed; bottom: 0; width: 50%; top: 50px; right: 0; background: #fafafa; z-index: 9; overflow: auto; display: none; box-sizing: border-box; border: 1px solid #ddd; word-wrap: break-word; }
167
+ .editor-preview-active-side{ display: block; }
168
+ .editor-preview-active{ display: block; }
169
+
170
+ .editor-preview-side > p,
171
+ .editor-preview > p{ margin-top: 0; }
172
+
173
+ .editor-preview pre,
174
+ .editor-preview-side pre{ background: #eee; margin-bottom: 10px; }
175
+
176
+ .editor-preview table td,
177
+ .editor-preview table th,
178
+ .editor-preview-side table td,
179
+ .editor-preview-side table th{ border: 1px solid #ddd; padding: 5px; }
180
+ .CodeMirror .CodeMirror-code .cm-tag{ color: #63a35c; }
181
+ .CodeMirror .CodeMirror-code .cm-attribute{ color: #795da3; }
182
+ .CodeMirror .CodeMirror-code .cm-string{ color: #183691; }
183
+ .CodeMirror .CodeMirror-selected{ background: #d9d9d9; }
184
+ .CodeMirror .CodeMirror-code .cm-header-1{ font-size: 200%; line-height: 200%; }
185
+ .CodeMirror .CodeMirror-code .cm-header-2{ font-size: 160%; line-height: 160%; }
186
+ .CodeMirror .CodeMirror-code .cm-header-3{ font-size: 125%; line-height: 125%; }
187
+ .CodeMirror .CodeMirror-code .cm-header-4{ font-size: 110%; line-height: 110%; }
188
+ .CodeMirror .CodeMirror-code .cm-comment{ background: rgba(0, 0, 0, .05); border-radius: 2px; }
189
+ .CodeMirror .CodeMirror-code .cm-link{ color: #7f8c8d; }
190
+ .CodeMirror .CodeMirror-code .cm-url{ color: #aab2b3; }
191
+ .CodeMirror .CodeMirror-code .cm-strikethrough{ text-decoration: line-through; }
192
+ .CodeMirror .CodeMirror-placeholder{ opacity: .5; }
193
+ .CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){ background: rgba(255, 0, 0, .15); }
194
+ }