@sanity/code-input 2.30.1 → 3.0.0-studio-v3.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/README.md +65 -9
- package/lib/cjs/index.js +1348 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/esm/index.js +1340 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/types/index.d.ts +48 -0
- package/lib/types/index.d.ts.map +1 -0
- package/package.json +53 -15
- package/src/CodeInput.tsx +332 -0
- package/src/PreviewCode.tsx +88 -0
- package/src/config.ts +46 -0
- package/src/createHighlightMarkers.ts +24 -0
- package/src/editorSupport.ts +31 -0
- package/src/getMedia.tsx +95 -0
- package/src/groq.ts +630 -0
- package/src/index.ts +12 -0
- package/src/schema.tsx +69 -0
- package/src/types.ts +26 -0
- package/dist/dts/CodeInput.d.ts +0 -22
- package/dist/dts/CodeInput.d.ts.map +0 -1
- package/dist/dts/PreviewCode.d.ts +0 -9
- package/dist/dts/PreviewCode.d.ts.map +0 -1
- package/dist/dts/config.d.ts +0 -16
- package/dist/dts/config.d.ts.map +0 -1
- package/dist/dts/createHighlightMarkers.d.ts +0 -4
- package/dist/dts/createHighlightMarkers.d.ts.map +0 -1
- package/dist/dts/deprecatedSchema.d.ts +0 -12
- package/dist/dts/deprecatedSchema.d.ts.map +0 -1
- package/dist/dts/editorSupport.d.ts +0 -28
- package/dist/dts/editorSupport.d.ts.map +0 -1
- package/dist/dts/getMedia.d.ts +0 -3
- package/dist/dts/getMedia.d.ts.map +0 -1
- package/dist/dts/groq.d.ts +0 -376
- package/dist/dts/groq.d.ts.map +0 -1
- package/dist/dts/schema.d.ts +0 -44
- package/dist/dts/schema.d.ts.map +0 -1
- package/dist/dts/types.d.ts +0 -29
- package/dist/dts/types.d.ts.map +0 -1
- package/lib/@types/css.d.js +0 -1
- package/lib/CodeInput.js +0 -325
- package/lib/PreviewCode.js +0 -79
- package/lib/config.js +0 -103
- package/lib/createHighlightMarkers.js +0 -31
- package/lib/deprecatedSchema.js +0 -26
- package/lib/editorSupport.js +0 -55
- package/lib/getMedia.js +0 -110
- package/lib/groq.js +0 -414
- package/lib/schema.js +0 -69
- package/lib/types.js +0 -5
- package/sanity.json +0 -28
- package/tsconfig.json +0 -26
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React, {useCallback, useEffect, useRef} from 'react'
|
|
2
|
+
import AceEditor from 'react-ace'
|
|
3
|
+
import styled from 'styled-components'
|
|
4
|
+
import {Box} from '@sanity/ui'
|
|
5
|
+
import {ACE_EDITOR_PROPS, ACE_SET_OPTIONS} from './config'
|
|
6
|
+
import createHighlightMarkers from './createHighlightMarkers'
|
|
7
|
+
import {CodeInputType, CodeInputValue} from './types'
|
|
8
|
+
import './editorSupport'
|
|
9
|
+
|
|
10
|
+
const PreviewContainer = styled(Box)`
|
|
11
|
+
position: relative;
|
|
12
|
+
`
|
|
13
|
+
|
|
14
|
+
const PreviewInner = styled(Box)`
|
|
15
|
+
background-color: #272822;
|
|
16
|
+
|
|
17
|
+
.ace_editor {
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
cursor: default;
|
|
20
|
+
pointer-events: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ace_content {
|
|
24
|
+
box-sizing: border-box;
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
}
|
|
27
|
+
`
|
|
28
|
+
|
|
29
|
+
export interface PreviewCodeProps {
|
|
30
|
+
type?: CodeInputType
|
|
31
|
+
value?: CodeInputValue
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default function PreviewCode(props: PreviewCodeProps) {
|
|
35
|
+
const aceEditorRef = useRef<any>()
|
|
36
|
+
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!aceEditorRef?.current) return
|
|
39
|
+
|
|
40
|
+
const editor = aceEditorRef.current?.editor
|
|
41
|
+
|
|
42
|
+
if (editor) {
|
|
43
|
+
// Avoid cursor and focus tracking by Ace
|
|
44
|
+
editor.renderer.$cursorLayer.element.style.opacity = 0
|
|
45
|
+
editor.textInput.getElement().disabled = true
|
|
46
|
+
}
|
|
47
|
+
}, [])
|
|
48
|
+
|
|
49
|
+
const handleEditorChange = useCallback(() => {
|
|
50
|
+
// do nothing when the editor changes
|
|
51
|
+
}, [])
|
|
52
|
+
|
|
53
|
+
const {value, type} = props
|
|
54
|
+
const fixedLanguage = type?.options?.language
|
|
55
|
+
|
|
56
|
+
const mode = value?.language || fixedLanguage || 'text'
|
|
57
|
+
|
|
58
|
+
return (
|
|
59
|
+
<PreviewContainer>
|
|
60
|
+
<PreviewInner padding={4}>
|
|
61
|
+
<AceEditor
|
|
62
|
+
ref={aceEditorRef}
|
|
63
|
+
focus={false}
|
|
64
|
+
mode={mode}
|
|
65
|
+
theme="monokai"
|
|
66
|
+
width="100%"
|
|
67
|
+
onChange={handleEditorChange}
|
|
68
|
+
maxLines={200}
|
|
69
|
+
readOnly
|
|
70
|
+
wrapEnabled
|
|
71
|
+
showPrintMargin={false}
|
|
72
|
+
highlightActiveLine={false}
|
|
73
|
+
cursorStart={-1}
|
|
74
|
+
value={(value && value.code) || ''}
|
|
75
|
+
markers={
|
|
76
|
+
value && value.highlightedLines
|
|
77
|
+
? createHighlightMarkers(value.highlightedLines)
|
|
78
|
+
: undefined
|
|
79
|
+
}
|
|
80
|
+
tabSize={2}
|
|
81
|
+
showGutter={false}
|
|
82
|
+
setOptions={ACE_SET_OPTIONS}
|
|
83
|
+
editorProps={ACE_EDITOR_PROPS}
|
|
84
|
+
/>
|
|
85
|
+
</PreviewInner>
|
|
86
|
+
</PreviewContainer>
|
|
87
|
+
)
|
|
88
|
+
}
|
package/src/config.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {CodeInputLanguage} from './types'
|
|
2
|
+
|
|
3
|
+
// NOTE: MAKE SURE THESE ALIGN WITH IMPORTS IN ./editorSupport
|
|
4
|
+
export const SUPPORTED_LANGUAGES: CodeInputLanguage[] = [
|
|
5
|
+
{title: 'Batch file', value: 'batchfile'},
|
|
6
|
+
{title: 'C#', value: 'csharp'},
|
|
7
|
+
{title: 'CSS', value: 'css'},
|
|
8
|
+
{title: 'Go', value: 'golang'},
|
|
9
|
+
{title: 'GROQ', value: 'groq'},
|
|
10
|
+
{title: 'HTML', value: 'html'},
|
|
11
|
+
{title: 'Java', value: 'java'},
|
|
12
|
+
{title: 'JavaScript', value: 'javascript'},
|
|
13
|
+
{title: 'JSON', value: 'json'},
|
|
14
|
+
{title: 'JSX', value: 'jsx'},
|
|
15
|
+
{title: 'Markdown', value: 'markdown'},
|
|
16
|
+
{title: 'MySQL', value: 'mysql'},
|
|
17
|
+
{title: 'PHP', value: 'php'},
|
|
18
|
+
{title: 'Plain text', value: 'text'},
|
|
19
|
+
{title: 'Python', value: 'python'},
|
|
20
|
+
{title: 'Ruby', value: 'ruby'},
|
|
21
|
+
{title: 'SASS', value: 'sass'},
|
|
22
|
+
{title: 'SCSS', value: 'scss'},
|
|
23
|
+
{title: 'sh', value: 'sh'},
|
|
24
|
+
{title: 'TSX', value: 'tsx'},
|
|
25
|
+
{title: 'TypeScript', value: 'typescript'},
|
|
26
|
+
{title: 'XML', value: 'xml'},
|
|
27
|
+
{title: 'YAML', value: 'yaml'},
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
export const LANGUAGE_ALIASES: Record<string, string | undefined> = {js: 'javascript'}
|
|
31
|
+
|
|
32
|
+
export const SUPPORTED_THEMES = ['github', 'monokai', 'terminal', 'tomorrow']
|
|
33
|
+
|
|
34
|
+
export const DEFAULT_THEME = 'tomorrow'
|
|
35
|
+
export const DEFAULT_DARK_THEME = 'monokai'
|
|
36
|
+
|
|
37
|
+
export const ACE_SET_OPTIONS = {
|
|
38
|
+
useSoftTabs: true,
|
|
39
|
+
navigateWithinSoftTabs: true /* note only supported by ace v1.2.7 or higher */,
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const ACE_EDITOR_PROPS = {$blockScrolling: true}
|
|
43
|
+
|
|
44
|
+
export const PATH_LANGUAGE = ['language']
|
|
45
|
+
export const PATH_CODE = ['code']
|
|
46
|
+
export const PATH_FILENAME = ['filename']
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {IMarker} from 'react-ace'
|
|
2
|
+
import {css} from 'styled-components'
|
|
3
|
+
|
|
4
|
+
export const highlightMarkersCSS = css`
|
|
5
|
+
.ace_editor_markers_highlight {
|
|
6
|
+
position: absolute;
|
|
7
|
+
background-color: ${({theme}) => theme.sanity.color.solid.primary.enabled.bg};
|
|
8
|
+
opacity: 0.2;
|
|
9
|
+
width: 100% !important;
|
|
10
|
+
border-radius: 0 !important;
|
|
11
|
+
}
|
|
12
|
+
`
|
|
13
|
+
|
|
14
|
+
export default function createHighlightMarkers(rows: number[]): IMarker[] {
|
|
15
|
+
return rows.map((row) => ({
|
|
16
|
+
startRow: Number(row) - 1,
|
|
17
|
+
startCol: 0,
|
|
18
|
+
endRow: Number(row) - 1,
|
|
19
|
+
endCol: +Infinity,
|
|
20
|
+
className: 'ace_editor_markers_highlight',
|
|
21
|
+
type: 'screenLine',
|
|
22
|
+
inFront: true,
|
|
23
|
+
}))
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// NOTE: MAKE SURE THESE ALIGN WITH SUPPORTED_LANGUAGES in ./config
|
|
2
|
+
import './groq'
|
|
3
|
+
|
|
4
|
+
import 'ace-builds/src-noconflict/mode-batchfile'
|
|
5
|
+
import 'ace-builds/src-noconflict/mode-csharp'
|
|
6
|
+
import 'ace-builds/src-noconflict/mode-css'
|
|
7
|
+
import 'ace-builds/src-noconflict/mode-golang'
|
|
8
|
+
import 'ace-builds/src-noconflict/mode-html'
|
|
9
|
+
import 'ace-builds/src-noconflict/mode-java'
|
|
10
|
+
import 'ace-builds/src-noconflict/mode-javascript'
|
|
11
|
+
import 'ace-builds/src-noconflict/mode-json'
|
|
12
|
+
import 'ace-builds/src-noconflict/mode-jsx'
|
|
13
|
+
import 'ace-builds/src-noconflict/mode-markdown'
|
|
14
|
+
import 'ace-builds/src-noconflict/mode-mysql'
|
|
15
|
+
import 'ace-builds/src-noconflict/mode-php'
|
|
16
|
+
import 'ace-builds/src-noconflict/mode-python'
|
|
17
|
+
import 'ace-builds/src-noconflict/mode-ruby'
|
|
18
|
+
import 'ace-builds/src-noconflict/mode-sass'
|
|
19
|
+
import 'ace-builds/src-noconflict/mode-scss'
|
|
20
|
+
import 'ace-builds/src-noconflict/mode-sh'
|
|
21
|
+
import 'ace-builds/src-noconflict/mode-text'
|
|
22
|
+
import 'ace-builds/src-noconflict/mode-tsx'
|
|
23
|
+
import 'ace-builds/src-noconflict/mode-typescript'
|
|
24
|
+
import 'ace-builds/src-noconflict/mode-xml'
|
|
25
|
+
import 'ace-builds/src-noconflict/mode-yaml'
|
|
26
|
+
|
|
27
|
+
// Themes
|
|
28
|
+
import 'ace-builds/src-noconflict/theme-github'
|
|
29
|
+
import 'ace-builds/src-noconflict/theme-monokai'
|
|
30
|
+
import 'ace-builds/src-noconflict/theme-terminal'
|
|
31
|
+
import 'ace-builds/src-noconflict/theme-tomorrow'
|
package/src/getMedia.tsx
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
export function getMedia(language?: string) {
|
|
4
|
+
if (language === 'jsx') {
|
|
5
|
+
return (
|
|
6
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
|
|
7
|
+
<g fill="#61DAFB">
|
|
8
|
+
<circle cx="64" cy="64" r="11.4" />
|
|
9
|
+
<path d="M107.3 45.2c-2.2-.8-4.5-1.6-6.9-2.3.6-2.4 1.1-4.8 1.5-7.1 2.1-13.2-.2-22.5-6.6-26.1-1.9-1.1-4-1.6-6.4-1.6-7 0-15.9 5.2-24.9 13.9-9-8.7-17.9-13.9-24.9-13.9-2.4 0-4.5.5-6.4 1.6-6.4 3.7-8.7 13-6.6 26.1.4 2.3.9 4.7 1.5 7.1-2.4.7-4.7 1.4-6.9 2.3C8.2 50 1.4 56.6 1.4 64s6.9 14 19.3 18.8c2.2.8 4.5 1.6 6.9 2.3-.6 2.4-1.1 4.8-1.5 7.1-2.1 13.2.2 22.5 6.6 26.1 1.9 1.1 4 1.6 6.4 1.6 7.1 0 16-5.2 24.9-13.9 9 8.7 17.9 13.9 24.9 13.9 2.4 0 4.5-.5 6.4-1.6 6.4-3.7 8.7-13 6.6-26.1-.4-2.3-.9-4.7-1.5-7.1 2.4-.7 4.7-1.4 6.9-2.3 12.5-4.8 19.3-11.4 19.3-18.8s-6.8-14-19.3-18.8zM92.5 14.7c4.1 2.4 5.5 9.8 3.8 20.3-.3 2.1-.8 4.3-1.4 6.6-5.2-1.2-10.7-2-16.5-2.5-3.4-4.8-6.9-9.1-10.4-13 7.4-7.3 14.9-12.3 21-12.3 1.3 0 2.5.3 3.5.9zM81.3 74c-1.8 3.2-3.9 6.4-6.1 9.6-3.7.3-7.4.4-11.2.4-3.9 0-7.6-.1-11.2-.4-2.2-3.2-4.2-6.4-6-9.6-1.9-3.3-3.7-6.7-5.3-10 1.6-3.3 3.4-6.7 5.3-10 1.8-3.2 3.9-6.4 6.1-9.6 3.7-.3 7.4-.4 11.2-.4 3.9 0 7.6.1 11.2.4 2.2 3.2 4.2 6.4 6 9.6 1.9 3.3 3.7 6.7 5.3 10-1.7 3.3-3.4 6.6-5.3 10zm8.3-3.3c1.5 3.5 2.7 6.9 3.8 10.3-3.4.8-7 1.4-10.8 1.9 1.2-1.9 2.5-3.9 3.6-6 1.2-2.1 2.3-4.2 3.4-6.2zM64 97.8c-2.4-2.6-4.7-5.4-6.9-8.3 2.3.1 4.6.2 6.9.2 2.3 0 4.6-.1 6.9-.2-2.2 2.9-4.5 5.7-6.9 8.3zm-18.6-15c-3.8-.5-7.4-1.1-10.8-1.9 1.1-3.3 2.3-6.8 3.8-10.3 1.1 2 2.2 4.1 3.4 6.1 1.2 2.2 2.4 4.1 3.6 6.1zm-7-25.5c-1.5-3.5-2.7-6.9-3.8-10.3 3.4-.8 7-1.4 10.8-1.9-1.2 1.9-2.5 3.9-3.6 6-1.2 2.1-2.3 4.2-3.4 6.2zM64 30.2c2.4 2.6 4.7 5.4 6.9 8.3-2.3-.1-4.6-.2-6.9-.2-2.3 0-4.6.1-6.9.2 2.2-2.9 4.5-5.7 6.9-8.3zm22.2 21l-3.6-6c3.8.5 7.4 1.1 10.8 1.9-1.1 3.3-2.3 6.8-3.8 10.3-1.1-2.1-2.2-4.2-3.4-6.2zM31.7 35c-1.7-10.5-.3-17.9 3.8-20.3 1-.6 2.2-.9 3.5-.9 6 0 13.5 4.9 21 12.3-3.5 3.8-7 8.2-10.4 13-5.8.5-11.3 1.4-16.5 2.5-.6-2.3-1-4.5-1.4-6.6zM7 64c0-4.7 5.7-9.7 15.7-13.4 2-.8 4.2-1.5 6.4-2.1 1.6 5 3.6 10.3 6 15.6-2.4 5.3-4.5 10.5-6 15.5C15.3 75.6 7 69.6 7 64zm28.5 49.3c-4.1-2.4-5.5-9.8-3.8-20.3.3-2.1.8-4.3 1.4-6.6 5.2 1.2 10.7 2 16.5 2.5 3.4 4.8 6.9 9.1 10.4 13-7.4 7.3-14.9 12.3-21 12.3-1.3 0-2.5-.3-3.5-.9zM96.3 93c1.7 10.5.3 17.9-3.8 20.3-1 .6-2.2.9-3.5.9-6 0-13.5-4.9-21-12.3 3.5-3.8 7-8.2 10.4-13 5.8-.5 11.3-1.4 16.5-2.5.6 2.3 1 4.5 1.4 6.6zm9-15.6c-2 .8-4.2 1.5-6.4 2.1-1.6-5-3.6-10.3-6-15.6 2.4-5.3 4.5-10.5 6-15.5 13.8 4 22.1 10 22.1 15.6 0 4.7-5.8 9.7-15.7 13.4z" />
|
|
10
|
+
</g>
|
|
11
|
+
</svg>
|
|
12
|
+
)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (language === 'javascript') {
|
|
16
|
+
return (
|
|
17
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
|
|
18
|
+
<path fill="#F0DB4F" d="M1.408 1.408h125.184v125.185H1.408z" />
|
|
19
|
+
<path
|
|
20
|
+
fill="#323330"
|
|
21
|
+
d="M116.347 96.736c-.917-5.711-4.641-10.508-15.672-14.981-3.832-1.761-8.104-3.022-9.377-5.926-.452-1.69-.512-2.642-.226-3.665.821-3.32 4.784-4.355 7.925-3.403 2.023.678 3.938 2.237 5.093 4.724 5.402-3.498 5.391-3.475 9.163-5.879-1.381-2.141-2.118-3.129-3.022-4.045-3.249-3.629-7.676-5.498-14.756-5.355l-3.688.477c-3.534.893-6.902 2.748-8.877 5.235-5.926 6.724-4.236 18.492 2.975 23.335 7.104 5.332 17.54 6.545 18.873 11.531 1.297 6.104-4.486 8.08-10.234 7.378-4.236-.881-6.592-3.034-9.139-6.949-4.688 2.713-4.688 2.713-9.508 5.485 1.143 2.499 2.344 3.63 4.26 5.795 9.068 9.198 31.76 8.746 35.83-5.176.165-.478 1.261-3.666.38-8.581zM69.462 58.943H57.753l-.048 30.272c0 6.438.333 12.34-.714 14.149-1.713 3.558-6.152 3.117-8.175 2.427-2.059-1.012-3.106-2.451-4.319-4.485-.333-.584-.583-1.036-.667-1.071l-9.52 5.83c1.583 3.249 3.915 6.069 6.902 7.901 4.462 2.678 10.459 3.499 16.731 2.059 4.082-1.189 7.604-3.652 9.448-7.401 2.666-4.915 2.094-10.864 2.07-17.444.06-10.735.001-21.468.001-32.237z"
|
|
22
|
+
/>
|
|
23
|
+
</svg>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (language === 'php') {
|
|
28
|
+
return (
|
|
29
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400">
|
|
30
|
+
<g transform="translate(-44.632 -141.55)">
|
|
31
|
+
<g transform="matrix(8.3528 0 0 8.3119 -727.13 -3759.5)">
|
|
32
|
+
<path d="m99.974 479.48h14.204c4.1693 0.0354 7.1903 1.2367 9.063 3.604 1.8726 2.3674 2.491 5.6004 1.855 9.699-0.24737 1.8727-0.79504 3.71-1.643 5.512-0.8127 1.802-1.9434 3.4273-3.392 4.876-1.7667 1.8373-3.657 3.0033-5.671 3.498-2.014 0.49467-4.0987 0.742-6.254 0.742h-6.36l-2.014 10.07h-7.367l7.579-38.001m6.201 6.042-3.18 15.9c0.21198 0.0353 0.42398 0.053 0.636 0.053h0.742c3.392 0.0353 6.2186-0.30033 8.48-1.007 2.2613-0.74199 3.7806-3.3213 4.558-7.738 0.63597-3.71-0.00003-5.8476-1.908-6.413-1.8727-0.56531-4.2224-0.83031-7.049-0.795-0.42402 0.0353-0.83035 0.053-1.219 0.053-0.35335 0.00002-0.72435 0.00002-1.113 0l0.053-0.053" />
|
|
33
|
+
<path d="m133.49 469.36h7.314l-2.067 10.123h6.572c3.604 0.0707 6.2893 0.81269 8.056 2.226 1.802 1.4134 2.332 4.0987 1.59 8.056l-3.551 17.649h-7.42l3.392-16.854c0.35328-1.7666 0.2473-3.021-0.318-3.763-0.56536-0.74198-1.7844-1.113-3.657-1.113l-5.883-0.053-4.346 21.783h-7.314l7.632-38.054" />
|
|
34
|
+
<path d="m162.81 479.48h14.204c4.1693 0.0354 7.1903 1.2367 9.063 3.604 1.8726 2.3674 2.491 5.6004 1.855 9.699-0.24737 1.8727-0.79503 3.71-1.643 5.512-0.8127 1.802-1.9434 3.4273-3.392 4.876-1.7667 1.8373-3.657 3.0033-5.671 3.498-2.014 0.49467-4.0987 0.742-6.254 0.742h-6.36l-2.014 10.07h-7.367l7.579-38.001m6.201 6.042-3.18 15.9c0.21199 0.0353 0.42399 0.053 0.636 0.053h0.742c3.392 0.0353 6.2186-0.30033 8.48-1.007 2.2613-0.74199 3.7806-3.3213 4.558-7.738 0.63597-3.71-0.00003-5.8476-1.908-6.413-1.8727-0.56531-4.2224-0.83031-7.049-0.795-0.42402 0.0353-0.83035 0.053-1.219 0.053-0.35335 0.00002-0.72435 0.00002-1.113 0l0.053-0.053" />
|
|
35
|
+
</g>
|
|
36
|
+
</g>
|
|
37
|
+
</svg>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (language === 'json') {
|
|
42
|
+
return (
|
|
43
|
+
<svg
|
|
44
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
45
|
+
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
46
|
+
viewBox="0 0 160 160"
|
|
47
|
+
>
|
|
48
|
+
<defs>
|
|
49
|
+
<linearGradient id="a">
|
|
50
|
+
<stop offset="0" />
|
|
51
|
+
<stop offset="1" stopColor="#fff" />
|
|
52
|
+
</linearGradient>
|
|
53
|
+
<linearGradient
|
|
54
|
+
x1="-553.27"
|
|
55
|
+
y1="525.908"
|
|
56
|
+
x2="-666.116"
|
|
57
|
+
y2="413.045"
|
|
58
|
+
id="c"
|
|
59
|
+
xlinkHref="#a"
|
|
60
|
+
gradientUnits="userSpaceOnUse"
|
|
61
|
+
gradientTransform="matrix(.99884 0 0 .9987 689.008 -388.844)"
|
|
62
|
+
/>
|
|
63
|
+
<linearGradient
|
|
64
|
+
x1="-666.117"
|
|
65
|
+
y1="413.045"
|
|
66
|
+
x2="-553.27"
|
|
67
|
+
y2="525.908"
|
|
68
|
+
id="b"
|
|
69
|
+
xlinkHref="#a"
|
|
70
|
+
gradientUnits="userSpaceOnUse"
|
|
71
|
+
gradientTransform="matrix(.99884 0 0 .9987 689.008 -388.844)"
|
|
72
|
+
/>
|
|
73
|
+
</defs>
|
|
74
|
+
<path
|
|
75
|
+
d="M79.865 119.1c35.397 48.255 70.04-13.469 69.988-50.587-.06-43.886-44.54-68.414-70.017-68.414C38.943.1 0 33.895 0 80.135 0 131.531 44.64 160 79.836 160c-7.965-1.147-34.507-6.834-34.863-67.967-.24-41.346 13.487-57.865 34.805-50.599.477.177 23.514 9.265 23.514 38.95 0 29.56-23.427 38.716-23.427 38.716z"
|
|
76
|
+
style={{marker: 'none'}}
|
|
77
|
+
color="#000"
|
|
78
|
+
fill="url(#b)"
|
|
79
|
+
fillRule="evenodd"
|
|
80
|
+
overflow="visible"
|
|
81
|
+
/>
|
|
82
|
+
<path
|
|
83
|
+
d="M79.823 41.4C56.433 33.34 27.78 52.618 27.78 91.23c0 63.048 46.72 68.77 52.384 68.77C121.057 160 160 126.204 160 79.964 160 28.568 115.36.1 80.164.1c9.749-1.35 52.541 10.55 52.541 69.037 0 38.141-31.953 58.905-52.735 50.033-.478-.177-23.514-9.264-23.514-38.95 0-29.56 23.367-38.818 23.367-38.818z"
|
|
84
|
+
style={{marker: 'none'}}
|
|
85
|
+
color="#000"
|
|
86
|
+
fill="url(#c)"
|
|
87
|
+
fillRule="evenodd"
|
|
88
|
+
overflow="visible"
|
|
89
|
+
/>
|
|
90
|
+
</svg>
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return undefined
|
|
95
|
+
}
|