mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-25 05:35:41 +00:00
238 lines
6.1 KiB
JavaScript
238 lines
6.1 KiB
JavaScript
import styled from 'styled-components';
|
|
|
|
const StyledWrapper = styled.div`
|
|
&.read-only {
|
|
div.CodeMirror .CodeMirror-cursor {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
div.CodeMirror {
|
|
background: ${(props) => props.theme.codemirror.bg};
|
|
border: solid 1px ${(props) => props.theme.codemirror.border};
|
|
font-family: ${(props) => (props.font ? props.font : 'default')};
|
|
font-size: ${(props) => (props.fontSize ? `${props.fontSize}px` : 'inherit')};
|
|
line-break: anywhere;
|
|
flex: 1 1 0;
|
|
display: flex;
|
|
flex-direction: column-reverse;
|
|
}
|
|
|
|
.CodeMirror-placeholder {
|
|
color: ${(props) => props.theme.text} !important;
|
|
opacity: 0.5 !important;
|
|
}
|
|
|
|
.CodeMirror-linenumber {
|
|
text-align: left !important;
|
|
padding-left: 3px !important;
|
|
}
|
|
|
|
/* Override default lint highlight background when emphasizing the gutter */
|
|
.CodeMirror-lint-line-error,
|
|
.CodeMirror-lint-line-warning {
|
|
background: none !important;
|
|
}
|
|
|
|
/* Style line numbers when there's a lint issue */
|
|
.CodeMirror-lint-line-error .CodeMirror-linenumber {
|
|
color: ${(props) => props.theme.colors.text.danger} !important;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.CodeMirror-lint-line-warning .CodeMirror-linenumber {
|
|
color: ${(props) => props.theme.colors.text.warning} !important;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.cm-ghost-text-ai {
|
|
opacity: 0.45;
|
|
color: ${(props) => props.theme.colors.text.muted};
|
|
font-style: italic;
|
|
pointer-events: none;
|
|
user-select: none;
|
|
white-space: pre;
|
|
}
|
|
|
|
/* Removes the glow outline around the folded json */
|
|
.CodeMirror-foldmarker {
|
|
text-shadow: none;
|
|
color: ${(props) => props.theme.textLink};
|
|
background: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.CodeMirror-overlayscroll-horizontal div,
|
|
.CodeMirror-overlayscroll-vertical div {
|
|
background: #d2d7db;
|
|
}
|
|
|
|
.CodeMirror-dialog {
|
|
overflow: visible;
|
|
position: relative;
|
|
top: unset;
|
|
left: unset;
|
|
|
|
input {
|
|
background: transparent;
|
|
border: 1px solid #d3d6db;
|
|
outline: none;
|
|
border-radius: 0px;
|
|
}
|
|
}
|
|
|
|
#search-results-count {
|
|
display: inline-block;
|
|
position: absolute;
|
|
top: calc(100% + 1px);
|
|
right: 0;
|
|
border-width: 0 0 1px 1px;
|
|
border-style: solid;
|
|
border-color: ${(props) => props.theme.codemirror.border};
|
|
padding: 0.1em 0.8em;
|
|
background-color: ${(props) => props.theme.codemirror.bg};
|
|
color: rgb(102, 102, 102);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
textarea.cm-editor {
|
|
position: relative;
|
|
}
|
|
|
|
// Todo: dark mode temporary fix
|
|
// Clean this
|
|
.CodeMirror.cm-s-monokai {
|
|
.CodeMirror-overlayscroll-horizontal div,
|
|
.CodeMirror-overlayscroll-vertical div {
|
|
background: #444444;
|
|
}
|
|
}
|
|
|
|
.cm-s-default, .cm-s-monokai {
|
|
span.cm-def {
|
|
color: ${(props) => props.theme.codemirror.tokens.definition} !important;
|
|
}
|
|
span.cm-property {
|
|
color: ${(props) => props.theme.codemirror.tokens.property} !important;
|
|
}
|
|
span.cm-string {
|
|
color: ${(props) => props.theme.codemirror.tokens.string} !important;
|
|
}
|
|
span.cm-number {
|
|
color: ${(props) => props.theme.codemirror.tokens.number} !important;
|
|
}
|
|
span.cm-atom {
|
|
color: ${(props) => props.theme.codemirror.tokens.atom} !important;
|
|
}
|
|
span.cm-variable, span.cm-variable-2 {
|
|
color: ${(props) => props.theme.codemirror.tokens.variable} !important;
|
|
}
|
|
span.cm-keyword {
|
|
color: ${(props) => props.theme.codemirror.tokens.keyword} !important;
|
|
}
|
|
span.cm-comment {
|
|
color: ${(props) => props.theme.codemirror.tokens.comment} !important;
|
|
}
|
|
span.cm-operator {
|
|
color: ${(props) => props.theme.codemirror.tokens.operator} !important;
|
|
}
|
|
span.cm-tag {
|
|
color: ${(props) => props.theme.codemirror.tokens.tag} !important;
|
|
}
|
|
span.cm-tag.cm-bracket {
|
|
color: ${(props) => props.theme.codemirror.tokens.tagBracket} !important;
|
|
}
|
|
}
|
|
|
|
/* Variable validation colors */
|
|
.cm-variable-valid {
|
|
color: ${(props) => props.theme.codemirror.variable.valid} !important;
|
|
}
|
|
.cm-variable-invalid {
|
|
color: ${(props) => props.theme.codemirror.variable.invalid} !important;
|
|
}
|
|
|
|
.CodeMirror-search-hint {
|
|
display: inline;
|
|
}
|
|
|
|
|
|
//matching bracket fix
|
|
.CodeMirror-matchingbracket {
|
|
background: ${(props) => props.theme.status.success.background} !important;
|
|
text-decoration: unset;
|
|
}
|
|
|
|
.CodeMirror-nonmatchingbracket {
|
|
color: ${(props) => props.theme.colors.text.danger} !important;
|
|
background: ${(props) => props.theme.status.danger.background} !important;
|
|
text-decoration: unset;
|
|
}
|
|
|
|
.cm-search-line-highlight {
|
|
background: ${(props) => props.theme.codemirror.searchLineHighlightCurrent};
|
|
}
|
|
|
|
@keyframes cm-error-line-flash {
|
|
0%, 60% {
|
|
background-color: ${(props) => props.theme.status.danger.background};
|
|
}
|
|
100% {
|
|
background-color: transparent;
|
|
}
|
|
}
|
|
|
|
.CodeMirror .cm-error-line-flash {
|
|
background-color: transparent;
|
|
animation: cm-error-line-flash 3s ease-in-out;
|
|
}
|
|
|
|
.CodeMirror .cm-error-line-flash-gutter {
|
|
color: ${(props) => props.theme.colors.text.danger} !important;
|
|
font-weight: 600;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.CodeMirror .cm-error-line-flash {
|
|
animation: none;
|
|
background-color: ${(props) => props.theme.status.danger.background};
|
|
}
|
|
}
|
|
|
|
.cm-search-match {
|
|
background: rgba(255, 193, 7, 0.25);
|
|
}
|
|
|
|
.cm-search-current {
|
|
background: rgba(255, 193, 7, 0.4);
|
|
}
|
|
|
|
.lint-error-tooltip {
|
|
position: fixed;
|
|
z-index: 10000;
|
|
background: ${(props) => props.theme.codemirror.bg};
|
|
border-radius: ${(props) => props.theme.border.radius.base};
|
|
padding: 8px 12px;
|
|
max-width: 400px;
|
|
box-shadow: ${(props) => props.theme.shadow.sm};
|
|
font-size: ${(props) => props.theme.font.size.xs};
|
|
line-height: 1.5;
|
|
pointer-events: none;
|
|
|
|
.lint-tooltip-message {
|
|
padding: 2px 0;
|
|
}
|
|
|
|
.lint-tooltip-message.error {
|
|
color: ${(props) => props.theme.colors.text.danger};
|
|
}
|
|
|
|
.lint-tooltip-message.warning {
|
|
color: ${(props) => props.theme.colors.text.warning};
|
|
}
|
|
}
|
|
`;
|
|
|
|
export default StyledWrapper;
|