@sanity/code-input 2.29.5-get-started-template.14 → 2.29.5-purple-unicorn.806
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/CodeInput.js +7 -0
- package/deprecatedSchema.js +7 -0
- package/lib/CodeInput.cjs +39 -0
- package/lib/CodeInput.cjs.map +1 -0
- package/lib/CodeInput.js +33 -333
- package/lib/CodeInput.js.map +1 -0
- package/lib/_CodeInput-d6f5810b.js +846 -0
- package/lib/_CodeInput-d6f5810b.js.map +1 -0
- package/lib/_CodeInput-f70e9606.cjs +857 -0
- package/lib/_CodeInput-f70e9606.cjs.map +1 -0
- package/lib/_reExport.js +19 -0
- package/lib/deprecatedSchema.cjs +23 -0
- package/lib/deprecatedSchema.cjs.map +1 -0
- package/lib/deprecatedSchema.js +19 -24
- package/lib/deprecatedSchema.js.map +1 -0
- package/lib/dts/src/CodeInput.d.ts +17 -0
- package/lib/dts/src/CodeInput.d.ts.map +1 -0
- package/lib/dts/src/CodeInput.js +155 -0
- package/lib/dts/src/CodeInput.js.map +1 -0
- package/{dist/dts → lib/dts/src}/PreviewCode.d.ts +8 -8
- package/lib/dts/src/PreviewCode.d.ts.map +1 -0
- package/lib/dts/src/PreviewCode.js +50 -0
- package/lib/dts/src/PreviewCode.js.map +1 -0
- package/lib/dts/src/__workshop__/dev.d.ts +3 -0
- package/lib/dts/src/__workshop__/dev.d.ts.map +1 -0
- package/lib/dts/src/__workshop__/dev.js +18 -0
- package/lib/dts/src/__workshop__/dev.js.map +1 -0
- package/lib/dts/src/__workshop__/index.d.ts +3 -0
- package/lib/dts/src/__workshop__/index.d.ts.map +1 -0
- package/lib/dts/src/__workshop__/index.js +10 -0
- package/lib/dts/src/__workshop__/index.js.map +1 -0
- package/{dist/dts → lib/dts/src}/config.d.ts +15 -15
- package/lib/dts/src/config.d.ts.map +1 -0
- package/lib/dts/src/config.js +38 -0
- package/lib/dts/src/config.js.map +1 -0
- package/{dist/dts → lib/dts/src}/createHighlightMarkers.d.ts +3 -3
- package/lib/dts/src/createHighlightMarkers.d.ts.map +1 -0
- package/lib/dts/src/createHighlightMarkers.js +22 -0
- package/lib/dts/src/createHighlightMarkers.js.map +1 -0
- package/{dist/dts → lib/dts/src}/deprecatedSchema.d.ts +11 -11
- package/lib/dts/src/deprecatedSchema.d.ts.map +1 -0
- package/lib/dts/src/deprecatedSchema.js +19 -0
- package/lib/dts/src/deprecatedSchema.js.map +1 -0
- package/{dist/dts → lib/dts/src}/editorSupport.d.ts +27 -27
- package/lib/dts/src/editorSupport.d.ts.map +1 -0
- package/lib/dts/src/editorSupport.js +32 -0
- package/lib/dts/src/editorSupport.js.map +1 -0
- package/{dist/dts → lib/dts/src}/getMedia.d.ts +2 -2
- package/lib/dts/src/getMedia.d.ts.map +1 -0
- package/lib/dts/src/getMedia.js +35 -0
- package/lib/dts/src/getMedia.js.map +1 -0
- package/lib/dts/src/groq.d.ts +2 -0
- package/lib/dts/src/groq.d.ts.map +1 -0
- package/lib/dts/src/groq.js +612 -0
- package/lib/dts/src/groq.js.map +1 -0
- package/lib/dts/src/index.d.ts +4 -0
- package/lib/dts/src/index.d.ts.map +1 -0
- package/lib/dts/src/index.js +7 -0
- package/lib/dts/src/index.js.map +1 -0
- package/lib/dts/src/schema.d.ts +47 -0
- package/lib/dts/src/schema.d.ts.map +1 -0
- package/lib/dts/src/schema.js +59 -0
- package/lib/dts/src/schema.js.map +1 -0
- package/{dist/dts → lib/dts/src}/types.d.ts +28 -28
- package/lib/dts/src/types.d.ts.map +1 -0
- package/lib/dts/src/types.js +2 -0
- package/lib/dts/src/types.js.map +1 -0
- package/lib/dts/tsconfig.tsbuildinfo +1 -0
- package/lib/index.cjs +45 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.js +43 -0
- package/lib/index.js.map +1 -0
- package/lib/schema.cjs +174 -0
- package/lib/schema.cjs.map +1 -0
- package/lib/schema.js +159 -62
- package/lib/schema.js.map +1 -0
- package/package.json +63 -12
- package/schema.js +7 -0
- package/src/CodeInput.tsx +327 -0
- package/src/PreviewCode.tsx +89 -0
- package/src/__workshop__/dev.tsx +35 -0
- package/src/__workshop__/index.ts +10 -0
- package/src/config.ts +45 -0
- package/src/createHighlightMarkers.ts +24 -0
- package/src/deprecatedSchema.ts +19 -0
- package/src/editorSupport.ts +33 -0
- package/src/getMedia.tsx +95 -0
- package/src/groq.ts +630 -0
- package/src/index.ts +11 -0
- package/src/schema.tsx +69 -0
- package/src/types.ts +26 -0
- package/dist/dts/CodeInput.d.ts +0 -23
- package/dist/dts/CodeInput.d.ts.map +0 -1
- package/dist/dts/PreviewCode.d.ts.map +0 -1
- package/dist/dts/config.d.ts.map +0 -1
- package/dist/dts/createHighlightMarkers.d.ts.map +0 -1
- package/dist/dts/deprecatedSchema.d.ts.map +0 -1
- package/dist/dts/editorSupport.d.ts.map +0 -1
- 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.map +0 -1
- package/lib/@types/css.d.js +0 -1
- package/lib/PreviewCode.js +0 -79
- package/lib/config.js +0 -103
- package/lib/createHighlightMarkers.js +0 -31
- package/lib/editorSupport.js +0 -55
- package/lib/getMedia.js +0 -110
- package/lib/groq.js +0 -414
- package/lib/types.js +0 -5
- package/tsconfig.json +0 -26
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var base = require('@sanity/base');
|
|
4
|
+
var schema = require('./schema.cjs');
|
|
5
|
+
require('react');
|
|
6
|
+
require('@sanity/icons');
|
|
7
|
+
require('./_CodeInput-f70e9606.cjs');
|
|
8
|
+
require('@sanity/base/form');
|
|
9
|
+
require('@sanity/ui');
|
|
10
|
+
require('react-ace');
|
|
11
|
+
require('styled-components');
|
|
12
|
+
require('ace-builds/src-noconflict/mode-batchfile');
|
|
13
|
+
require('ace-builds/src-noconflict/mode-csharp');
|
|
14
|
+
require('ace-builds/src-noconflict/mode-css');
|
|
15
|
+
require('ace-builds/src-noconflict/mode-golang');
|
|
16
|
+
require('ace-builds/src-noconflict/mode-html');
|
|
17
|
+
require('ace-builds/src-noconflict/mode-java');
|
|
18
|
+
require('ace-builds/src-noconflict/mode-javascript');
|
|
19
|
+
require('ace-builds/src-noconflict/mode-json');
|
|
20
|
+
require('ace-builds/src-noconflict/mode-jsx');
|
|
21
|
+
require('ace-builds/src-noconflict/mode-markdown');
|
|
22
|
+
require('ace-builds/src-noconflict/mode-mysql');
|
|
23
|
+
require('ace-builds/src-noconflict/mode-php');
|
|
24
|
+
require('ace-builds/src-noconflict/mode-python');
|
|
25
|
+
require('ace-builds/src-noconflict/mode-ruby');
|
|
26
|
+
require('ace-builds/src-noconflict/mode-sass');
|
|
27
|
+
require('ace-builds/src-noconflict/mode-scss');
|
|
28
|
+
require('ace-builds/src-noconflict/mode-sh');
|
|
29
|
+
require('ace-builds/src-noconflict/mode-text');
|
|
30
|
+
require('ace-builds/src-noconflict/mode-tsx');
|
|
31
|
+
require('ace-builds/src-noconflict/mode-typescript');
|
|
32
|
+
require('ace-builds/src-noconflict/mode-xml');
|
|
33
|
+
require('ace-builds/src-noconflict/mode-yaml');
|
|
34
|
+
require('ace-builds/src-noconflict/theme-github');
|
|
35
|
+
require('ace-builds/src-noconflict/theme-monokai');
|
|
36
|
+
require('ace-builds/src-noconflict/theme-terminal');
|
|
37
|
+
require('ace-builds/src-noconflict/theme-tomorrow');
|
|
38
|
+
|
|
39
|
+
const codeInput = base.createPlugin({
|
|
40
|
+
name: '@sanity/code-input',
|
|
41
|
+
schema: { types: [schema] },
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
exports.codeInput = codeInput;
|
|
45
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import {createPlugin} from '@sanity/base'\nimport schema from './schema'\n\nexport type {CodeInputProps, CodeSchemaType} from './CodeInput'\n\nexport type {CodeInputLanguage, CodeInputValue} from './types'\n\nexport const codeInput = createPlugin({\n name: '@sanity/code-input',\n schema: {types: [schema]},\n})\n"],"names":["createPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,SAAS,GAAGA,iBAAY,CAAC;AACpC,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAC;AAC1B,CAAA;;;;"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createPlugin } from '@sanity/base';
|
|
2
|
+
import schema from './schema.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import '@sanity/icons';
|
|
5
|
+
import './_CodeInput-d6f5810b.js';
|
|
6
|
+
import '@sanity/base/form';
|
|
7
|
+
import '@sanity/ui';
|
|
8
|
+
import 'react-ace';
|
|
9
|
+
import 'styled-components';
|
|
10
|
+
import 'ace-builds/src-noconflict/mode-batchfile';
|
|
11
|
+
import 'ace-builds/src-noconflict/mode-csharp';
|
|
12
|
+
import 'ace-builds/src-noconflict/mode-css';
|
|
13
|
+
import 'ace-builds/src-noconflict/mode-golang';
|
|
14
|
+
import 'ace-builds/src-noconflict/mode-html';
|
|
15
|
+
import 'ace-builds/src-noconflict/mode-java';
|
|
16
|
+
import 'ace-builds/src-noconflict/mode-javascript';
|
|
17
|
+
import 'ace-builds/src-noconflict/mode-json';
|
|
18
|
+
import 'ace-builds/src-noconflict/mode-jsx';
|
|
19
|
+
import 'ace-builds/src-noconflict/mode-markdown';
|
|
20
|
+
import 'ace-builds/src-noconflict/mode-mysql';
|
|
21
|
+
import 'ace-builds/src-noconflict/mode-php';
|
|
22
|
+
import 'ace-builds/src-noconflict/mode-python';
|
|
23
|
+
import 'ace-builds/src-noconflict/mode-ruby';
|
|
24
|
+
import 'ace-builds/src-noconflict/mode-sass';
|
|
25
|
+
import 'ace-builds/src-noconflict/mode-scss';
|
|
26
|
+
import 'ace-builds/src-noconflict/mode-sh';
|
|
27
|
+
import 'ace-builds/src-noconflict/mode-text';
|
|
28
|
+
import 'ace-builds/src-noconflict/mode-tsx';
|
|
29
|
+
import 'ace-builds/src-noconflict/mode-typescript';
|
|
30
|
+
import 'ace-builds/src-noconflict/mode-xml';
|
|
31
|
+
import 'ace-builds/src-noconflict/mode-yaml';
|
|
32
|
+
import 'ace-builds/src-noconflict/theme-github';
|
|
33
|
+
import 'ace-builds/src-noconflict/theme-monokai';
|
|
34
|
+
import 'ace-builds/src-noconflict/theme-terminal';
|
|
35
|
+
import 'ace-builds/src-noconflict/theme-tomorrow';
|
|
36
|
+
|
|
37
|
+
const codeInput = createPlugin({
|
|
38
|
+
name: '@sanity/code-input',
|
|
39
|
+
schema: { types: [schema] },
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
export { codeInput };
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {createPlugin} from '@sanity/base'\nimport schema from './schema'\n\nexport type {CodeInputProps, CodeSchemaType} from './CodeInput'\n\nexport type {CodeInputLanguage, CodeInputValue} from './types'\n\nexport const codeInput = createPlugin({\n name: '@sanity/code-input',\n schema: {types: [schema]},\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,SAAS,GAAG,YAAY,CAAC;AACpC,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAC;AAC1B,CAAA;;;;"}
|
package/lib/schema.cjs
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var icons = require('@sanity/icons');
|
|
5
|
+
var CodeInput = require('./_CodeInput-f70e9606.cjs');
|
|
6
|
+
var AceEditor = require('react-ace');
|
|
7
|
+
var styled = require('styled-components');
|
|
8
|
+
var ui = require('@sanity/ui');
|
|
9
|
+
require('ace-builds/src-noconflict/mode-batchfile');
|
|
10
|
+
require('ace-builds/src-noconflict/mode-csharp');
|
|
11
|
+
require('ace-builds/src-noconflict/mode-css');
|
|
12
|
+
require('ace-builds/src-noconflict/mode-golang');
|
|
13
|
+
require('ace-builds/src-noconflict/mode-html');
|
|
14
|
+
require('ace-builds/src-noconflict/mode-java');
|
|
15
|
+
require('ace-builds/src-noconflict/mode-javascript');
|
|
16
|
+
require('ace-builds/src-noconflict/mode-json');
|
|
17
|
+
require('ace-builds/src-noconflict/mode-jsx');
|
|
18
|
+
require('ace-builds/src-noconflict/mode-markdown');
|
|
19
|
+
require('ace-builds/src-noconflict/mode-mysql');
|
|
20
|
+
require('ace-builds/src-noconflict/mode-php');
|
|
21
|
+
require('ace-builds/src-noconflict/mode-python');
|
|
22
|
+
require('ace-builds/src-noconflict/mode-ruby');
|
|
23
|
+
require('ace-builds/src-noconflict/mode-sass');
|
|
24
|
+
require('ace-builds/src-noconflict/mode-scss');
|
|
25
|
+
require('ace-builds/src-noconflict/mode-sh');
|
|
26
|
+
require('ace-builds/src-noconflict/mode-text');
|
|
27
|
+
require('ace-builds/src-noconflict/mode-tsx');
|
|
28
|
+
require('ace-builds/src-noconflict/mode-typescript');
|
|
29
|
+
require('ace-builds/src-noconflict/mode-xml');
|
|
30
|
+
require('ace-builds/src-noconflict/mode-yaml');
|
|
31
|
+
require('ace-builds/src-noconflict/theme-github');
|
|
32
|
+
require('ace-builds/src-noconflict/theme-monokai');
|
|
33
|
+
require('ace-builds/src-noconflict/theme-terminal');
|
|
34
|
+
require('ace-builds/src-noconflict/theme-tomorrow');
|
|
35
|
+
require('@sanity/base/form');
|
|
36
|
+
|
|
37
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
38
|
+
|
|
39
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
40
|
+
var AceEditor__default = /*#__PURE__*/_interopDefaultLegacy(AceEditor);
|
|
41
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
42
|
+
|
|
43
|
+
const PreviewContainer = styled__default["default"](ui.Box) `
|
|
44
|
+
position: relative;
|
|
45
|
+
`;
|
|
46
|
+
const PreviewInner = styled__default["default"](ui.Box) `
|
|
47
|
+
background-color: #272822;
|
|
48
|
+
|
|
49
|
+
.ace_editor {
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
cursor: default;
|
|
52
|
+
pointer-events: none;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.ace_content {
|
|
56
|
+
box-sizing: border-box;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
function PreviewCode(props) {
|
|
61
|
+
const aceEditorRef = React.useRef();
|
|
62
|
+
React.useEffect(() => {
|
|
63
|
+
if (!aceEditorRef?.current)
|
|
64
|
+
return;
|
|
65
|
+
const editor = aceEditorRef.current?.editor;
|
|
66
|
+
if (editor) {
|
|
67
|
+
// Avoid cursor and focus tracking by Ace
|
|
68
|
+
editor.renderer.$cursorLayer.element.style.opacity = 0;
|
|
69
|
+
editor.textInput.getElement().disabled = true;
|
|
70
|
+
}
|
|
71
|
+
}, []);
|
|
72
|
+
const handleEditorChange = React.useCallback(() => {
|
|
73
|
+
// do nothing when the editor changes
|
|
74
|
+
}, []);
|
|
75
|
+
const { value, type } = props;
|
|
76
|
+
const fixedLanguage = type?.options?.language;
|
|
77
|
+
const mode = value?.language || fixedLanguage || 'text';
|
|
78
|
+
return (React__default["default"].createElement(PreviewContainer, null,
|
|
79
|
+
React__default["default"].createElement(PreviewInner, { padding: 4 },
|
|
80
|
+
React__default["default"].createElement(AceEditor__default["default"], { ref: aceEditorRef, focus: false, mode: mode, theme: "monokai", width: "100%", onChange: handleEditorChange, maxLines: 200, readOnly: true, wrapEnabled: true, showPrintMargin: false, highlightActiveLine: false, cursorStart: -1, value: (value && value.code) || '', markers: value && value.highlightedLines
|
|
81
|
+
? CodeInput.createHighlightMarkers(value.highlightedLines)
|
|
82
|
+
: undefined, tabSize: 2, showGutter: false, setOptions: CodeInput.ACE_SET_OPTIONS, editorProps: CodeInput.ACE_EDITOR_PROPS }))));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function getMedia(language) {
|
|
86
|
+
if (language === 'jsx') {
|
|
87
|
+
return (React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 128 128" },
|
|
88
|
+
React__default["default"].createElement("g", { fill: "#61DAFB" },
|
|
89
|
+
React__default["default"].createElement("circle", { cx: "64", cy: "64", r: "11.4" }),
|
|
90
|
+
React__default["default"].createElement("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" }))));
|
|
91
|
+
}
|
|
92
|
+
if (language === 'javascript') {
|
|
93
|
+
return (React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 128 128" },
|
|
94
|
+
React__default["default"].createElement("path", { fill: "#F0DB4F", d: "M1.408 1.408h125.184v125.185H1.408z" }),
|
|
95
|
+
React__default["default"].createElement("path", { fill: "#323330", 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" })));
|
|
96
|
+
}
|
|
97
|
+
if (language === 'php') {
|
|
98
|
+
return (React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 800 400" },
|
|
99
|
+
React__default["default"].createElement("g", { transform: "translate(-44.632 -141.55)" },
|
|
100
|
+
React__default["default"].createElement("g", { transform: "matrix(8.3528 0 0 8.3119 -727.13 -3759.5)" },
|
|
101
|
+
React__default["default"].createElement("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" }),
|
|
102
|
+
React__default["default"].createElement("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" }),
|
|
103
|
+
React__default["default"].createElement("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" })))));
|
|
104
|
+
}
|
|
105
|
+
if (language === 'json') {
|
|
106
|
+
return (React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: "0 0 160 160" },
|
|
107
|
+
React__default["default"].createElement("defs", null,
|
|
108
|
+
React__default["default"].createElement("linearGradient", { id: "a" },
|
|
109
|
+
React__default["default"].createElement("stop", { offset: "0" }),
|
|
110
|
+
React__default["default"].createElement("stop", { offset: "1", stopColor: "#fff" })),
|
|
111
|
+
React__default["default"].createElement("linearGradient", { x1: "-553.27", y1: "525.908", x2: "-666.116", y2: "413.045", id: "c", xlinkHref: "#a", gradientUnits: "userSpaceOnUse", gradientTransform: "matrix(.99884 0 0 .9987 689.008 -388.844)" }),
|
|
112
|
+
React__default["default"].createElement("linearGradient", { x1: "-666.117", y1: "413.045", x2: "-553.27", y2: "525.908", id: "b", xlinkHref: "#a", gradientUnits: "userSpaceOnUse", gradientTransform: "matrix(.99884 0 0 .9987 689.008 -388.844)" })),
|
|
113
|
+
React__default["default"].createElement("path", { 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", style: { marker: 'none' }, color: "#000", fill: "url(#b)", fillRule: "evenodd", overflow: "visible" }),
|
|
114
|
+
React__default["default"].createElement("path", { 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", style: { marker: 'none' }, color: "#000", fill: "url(#c)", fillRule: "evenodd", overflow: "visible" })));
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const Preview = (props) => {
|
|
120
|
+
return React__default["default"].createElement(PreviewCode, { ...props });
|
|
121
|
+
};
|
|
122
|
+
var schema = {
|
|
123
|
+
name: 'code',
|
|
124
|
+
type: 'object',
|
|
125
|
+
title: 'Code',
|
|
126
|
+
components: { input: CodeInput.CodeInput },
|
|
127
|
+
icon: icons.CodeBlockIcon,
|
|
128
|
+
fields: [
|
|
129
|
+
{
|
|
130
|
+
name: 'language',
|
|
131
|
+
title: 'Language',
|
|
132
|
+
type: 'string',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'filename',
|
|
136
|
+
title: 'Filename',
|
|
137
|
+
type: 'string',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
title: 'Code',
|
|
141
|
+
name: 'code',
|
|
142
|
+
type: 'text',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
title: 'Highlighted lines',
|
|
146
|
+
name: 'highlightedLines',
|
|
147
|
+
type: 'array',
|
|
148
|
+
of: [
|
|
149
|
+
{
|
|
150
|
+
type: 'number',
|
|
151
|
+
title: 'Highlighted line',
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
preview: {
|
|
157
|
+
select: {
|
|
158
|
+
language: 'language',
|
|
159
|
+
code: 'code',
|
|
160
|
+
filename: 'filename',
|
|
161
|
+
highlightedLines: 'highlightedLines',
|
|
162
|
+
},
|
|
163
|
+
prepare: (value) => {
|
|
164
|
+
return {
|
|
165
|
+
title: value.filename || (value.language || 'unknown').toUpperCase(),
|
|
166
|
+
media: getMedia(value?.language),
|
|
167
|
+
extendedPreview: React__default["default"].createElement(Preview, { value: value }),
|
|
168
|
+
};
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
module.exports = schema;
|
|
174
|
+
//# sourceMappingURL=schema.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.cjs","sources":["../src/PreviewCode.tsx","../src/getMedia.tsx","../src/schema.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useRef} from 'react'\nimport AceEditor from 'react-ace'\nimport styled from 'styled-components'\nimport {Box} from '@sanity/ui'\nimport {ACE_EDITOR_PROPS, ACE_SET_OPTIONS} from './config'\nimport createHighlightMarkers from './createHighlightMarkers'\nimport {CodeInputType, CodeInputValue} from './types'\n/* eslint-disable-next-line import/no-unassigned-import */\nimport './editorSupport'\n\nconst PreviewContainer = styled(Box)`\n position: relative;\n`\n\nconst PreviewInner = styled(Box)`\n background-color: #272822;\n\n .ace_editor {\n box-sizing: border-box;\n cursor: default;\n pointer-events: none;\n }\n\n .ace_content {\n box-sizing: border-box;\n overflow: hidden;\n }\n`\n\nexport interface PreviewCodeProps {\n type?: CodeInputType\n value?: CodeInputValue\n}\n\nexport default function PreviewCode(props: PreviewCodeProps) {\n const aceEditorRef = useRef<any>()\n\n useEffect(() => {\n if (!aceEditorRef?.current) return\n\n const editor = aceEditorRef.current?.editor\n\n if (editor) {\n // Avoid cursor and focus tracking by Ace\n editor.renderer.$cursorLayer.element.style.opacity = 0\n editor.textInput.getElement().disabled = true\n }\n }, [])\n\n const handleEditorChange = useCallback(() => {\n // do nothing when the editor changes\n }, [])\n\n const {value, type} = props\n const fixedLanguage = type?.options?.language\n\n const mode = value?.language || fixedLanguage || 'text'\n\n return (\n <PreviewContainer>\n <PreviewInner padding={4}>\n <AceEditor\n ref={aceEditorRef}\n focus={false}\n mode={mode}\n theme=\"monokai\"\n width=\"100%\"\n onChange={handleEditorChange}\n maxLines={200}\n readOnly\n wrapEnabled\n showPrintMargin={false}\n highlightActiveLine={false}\n cursorStart={-1}\n value={(value && value.code) || ''}\n markers={\n value && value.highlightedLines\n ? createHighlightMarkers(value.highlightedLines)\n : undefined\n }\n tabSize={2}\n showGutter={false}\n setOptions={ACE_SET_OPTIONS}\n editorProps={ACE_EDITOR_PROPS}\n />\n </PreviewInner>\n </PreviewContainer>\n )\n}\n","import React from 'react'\n\nexport function getMedia(language?: string) {\n if (language === 'jsx') {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n <g fill=\"#61DAFB\">\n <circle cx=\"64\" cy=\"64\" r=\"11.4\" />\n <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\" />\n </g>\n </svg>\n )\n }\n\n if (language === 'javascript') {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n <path fill=\"#F0DB4F\" d=\"M1.408 1.408h125.184v125.185H1.408z\" />\n <path\n fill=\"#323330\"\n 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\"\n />\n </svg>\n )\n }\n\n if (language === 'php') {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 800 400\">\n <g transform=\"translate(-44.632 -141.55)\">\n <g transform=\"matrix(8.3528 0 0 8.3119 -727.13 -3759.5)\">\n <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\" />\n <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\" />\n <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\" />\n </g>\n </g>\n </svg>\n )\n }\n\n if (language === 'json') {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 160 160\"\n >\n <defs>\n <linearGradient id=\"a\">\n <stop offset=\"0\" />\n <stop offset=\"1\" stopColor=\"#fff\" />\n </linearGradient>\n <linearGradient\n x1=\"-553.27\"\n y1=\"525.908\"\n x2=\"-666.116\"\n y2=\"413.045\"\n id=\"c\"\n xlinkHref=\"#a\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"matrix(.99884 0 0 .9987 689.008 -388.844)\"\n />\n <linearGradient\n x1=\"-666.117\"\n y1=\"413.045\"\n x2=\"-553.27\"\n y2=\"525.908\"\n id=\"b\"\n xlinkHref=\"#a\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"matrix(.99884 0 0 .9987 689.008 -388.844)\"\n />\n </defs>\n <path\n 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\"\n style={{marker: 'none'}}\n color=\"#000\"\n fill=\"url(#b)\"\n fillRule=\"evenodd\"\n overflow=\"visible\"\n />\n <path\n 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\"\n style={{marker: 'none'}}\n color=\"#000\"\n fill=\"url(#c)\"\n fillRule=\"evenodd\"\n overflow=\"visible\"\n />\n </svg>\n )\n }\n\n return undefined\n}\n","import React from 'react'\nimport {CodeBlockIcon} from '@sanity/icons'\nimport {CodeInput} from './CodeInput'\nimport PreviewCode, {PreviewCodeProps} from './PreviewCode'\nimport {getMedia} from './getMedia'\n\nexport type {CodeInputProps, CodeSchemaType} from './CodeInput'\n\nexport type {CodeInputLanguage, CodeInputValue} from './types'\n\nconst Preview = (props: PreviewCodeProps) => {\n return <PreviewCode {...props} />\n}\n\nexport default {\n name: 'code',\n type: 'object',\n title: 'Code',\n components: {input: CodeInput},\n icon: CodeBlockIcon,\n fields: [\n {\n name: 'language',\n title: 'Language',\n type: 'string',\n },\n {\n name: 'filename',\n title: 'Filename',\n type: 'string',\n },\n {\n title: 'Code',\n name: 'code',\n type: 'text',\n },\n {\n title: 'Highlighted lines',\n name: 'highlightedLines',\n type: 'array',\n of: [\n {\n type: 'number',\n title: 'Highlighted line',\n },\n ],\n },\n ],\n preview: {\n select: {\n language: 'language',\n code: 'code',\n filename: 'filename',\n highlightedLines: 'highlightedLines',\n },\n prepare: (value: {\n language?: string\n code?: string\n filename?: string\n highlightedLines?: number[]\n }) => {\n return {\n title: value.filename || (value.language || 'unknown').toUpperCase(),\n media: getMedia(value?.language),\n extendedPreview: <Preview value={value} />,\n }\n },\n },\n}\n"],"names":["styled","Box","useRef","useEffect","useCallback","React","AceEditor","createHighlightMarkers","ACE_SET_OPTIONS","ACE_EDITOR_PROPS","CodeInput","CodeBlockIcon"],"mappings":"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"}
|
package/lib/schema.js
CHANGED
|
@@ -1,69 +1,166 @@
|
|
|
1
|
-
|
|
1
|
+
import React, { useRef, useEffect, useCallback } from 'react';
|
|
2
|
+
import { CodeBlockIcon } from '@sanity/icons';
|
|
3
|
+
import { c as createHighlightMarkers, A as ACE_SET_OPTIONS, a as ACE_EDITOR_PROPS, C as CodeInput } from './_CodeInput-d6f5810b.js';
|
|
4
|
+
import AceEditor from 'react-ace';
|
|
5
|
+
import styled from 'styled-components';
|
|
6
|
+
import { Box } from '@sanity/ui';
|
|
7
|
+
import 'ace-builds/src-noconflict/mode-batchfile';
|
|
8
|
+
import 'ace-builds/src-noconflict/mode-csharp';
|
|
9
|
+
import 'ace-builds/src-noconflict/mode-css';
|
|
10
|
+
import 'ace-builds/src-noconflict/mode-golang';
|
|
11
|
+
import 'ace-builds/src-noconflict/mode-html';
|
|
12
|
+
import 'ace-builds/src-noconflict/mode-java';
|
|
13
|
+
import 'ace-builds/src-noconflict/mode-javascript';
|
|
14
|
+
import 'ace-builds/src-noconflict/mode-json';
|
|
15
|
+
import 'ace-builds/src-noconflict/mode-jsx';
|
|
16
|
+
import 'ace-builds/src-noconflict/mode-markdown';
|
|
17
|
+
import 'ace-builds/src-noconflict/mode-mysql';
|
|
18
|
+
import 'ace-builds/src-noconflict/mode-php';
|
|
19
|
+
import 'ace-builds/src-noconflict/mode-python';
|
|
20
|
+
import 'ace-builds/src-noconflict/mode-ruby';
|
|
21
|
+
import 'ace-builds/src-noconflict/mode-sass';
|
|
22
|
+
import 'ace-builds/src-noconflict/mode-scss';
|
|
23
|
+
import 'ace-builds/src-noconflict/mode-sh';
|
|
24
|
+
import 'ace-builds/src-noconflict/mode-text';
|
|
25
|
+
import 'ace-builds/src-noconflict/mode-tsx';
|
|
26
|
+
import 'ace-builds/src-noconflict/mode-typescript';
|
|
27
|
+
import 'ace-builds/src-noconflict/mode-xml';
|
|
28
|
+
import 'ace-builds/src-noconflict/mode-yaml';
|
|
29
|
+
import 'ace-builds/src-noconflict/theme-github';
|
|
30
|
+
import 'ace-builds/src-noconflict/theme-monokai';
|
|
31
|
+
import 'ace-builds/src-noconflict/theme-terminal';
|
|
32
|
+
import 'ace-builds/src-noconflict/theme-tomorrow';
|
|
33
|
+
import '@sanity/base/form';
|
|
2
34
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
35
|
+
const PreviewContainer = styled(Box) `
|
|
36
|
+
position: relative;
|
|
37
|
+
`;
|
|
38
|
+
const PreviewInner = styled(Box) `
|
|
39
|
+
background-color: #272822;
|
|
7
40
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _PreviewCode = _interopRequireDefault(require("./PreviewCode"));
|
|
41
|
+
.ace_editor {
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
cursor: default;
|
|
44
|
+
pointer-events: none;
|
|
45
|
+
}
|
|
15
46
|
|
|
16
|
-
|
|
47
|
+
.ace_content {
|
|
48
|
+
box-sizing: border-box;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
function PreviewCode(props) {
|
|
53
|
+
const aceEditorRef = useRef();
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (!aceEditorRef?.current)
|
|
56
|
+
return;
|
|
57
|
+
const editor = aceEditorRef.current?.editor;
|
|
58
|
+
if (editor) {
|
|
59
|
+
// Avoid cursor and focus tracking by Ace
|
|
60
|
+
editor.renderer.$cursorLayer.element.style.opacity = 0;
|
|
61
|
+
editor.textInput.getElement().disabled = true;
|
|
62
|
+
}
|
|
63
|
+
}, []);
|
|
64
|
+
const handleEditorChange = useCallback(() => {
|
|
65
|
+
// do nothing when the editor changes
|
|
66
|
+
}, []);
|
|
67
|
+
const { value, type } = props;
|
|
68
|
+
const fixedLanguage = type?.options?.language;
|
|
69
|
+
const mode = value?.language || fixedLanguage || 'text';
|
|
70
|
+
return (React.createElement(PreviewContainer, null,
|
|
71
|
+
React.createElement(PreviewInner, { padding: 4 },
|
|
72
|
+
React.createElement(AceEditor, { ref: aceEditorRef, focus: false, mode: mode, theme: "monokai", width: "100%", onChange: handleEditorChange, maxLines: 200, readOnly: true, wrapEnabled: true, showPrintMargin: false, highlightActiveLine: false, cursorStart: -1, value: (value && value.code) || '', markers: value && value.highlightedLines
|
|
73
|
+
? createHighlightMarkers(value.highlightedLines)
|
|
74
|
+
: undefined, tabSize: 2, showGutter: false, setOptions: ACE_SET_OPTIONS, editorProps: ACE_EDITOR_PROPS }))));
|
|
75
|
+
}
|
|
17
76
|
|
|
18
|
-
function
|
|
77
|
+
function getMedia(language) {
|
|
78
|
+
if (language === 'jsx') {
|
|
79
|
+
return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 128 128" },
|
|
80
|
+
React.createElement("g", { fill: "#61DAFB" },
|
|
81
|
+
React.createElement("circle", { cx: "64", cy: "64", r: "11.4" }),
|
|
82
|
+
React.createElement("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" }))));
|
|
83
|
+
}
|
|
84
|
+
if (language === 'javascript') {
|
|
85
|
+
return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 128 128" },
|
|
86
|
+
React.createElement("path", { fill: "#F0DB4F", d: "M1.408 1.408h125.184v125.185H1.408z" }),
|
|
87
|
+
React.createElement("path", { fill: "#323330", 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" })));
|
|
88
|
+
}
|
|
89
|
+
if (language === 'php') {
|
|
90
|
+
return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 800 400" },
|
|
91
|
+
React.createElement("g", { transform: "translate(-44.632 -141.55)" },
|
|
92
|
+
React.createElement("g", { transform: "matrix(8.3528 0 0 8.3119 -727.13 -3759.5)" },
|
|
93
|
+
React.createElement("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" }),
|
|
94
|
+
React.createElement("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" }),
|
|
95
|
+
React.createElement("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" })))));
|
|
96
|
+
}
|
|
97
|
+
if (language === 'json') {
|
|
98
|
+
return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: "0 0 160 160" },
|
|
99
|
+
React.createElement("defs", null,
|
|
100
|
+
React.createElement("linearGradient", { id: "a" },
|
|
101
|
+
React.createElement("stop", { offset: "0" }),
|
|
102
|
+
React.createElement("stop", { offset: "1", stopColor: "#fff" })),
|
|
103
|
+
React.createElement("linearGradient", { x1: "-553.27", y1: "525.908", x2: "-666.116", y2: "413.045", id: "c", xlinkHref: "#a", gradientUnits: "userSpaceOnUse", gradientTransform: "matrix(.99884 0 0 .9987 689.008 -388.844)" }),
|
|
104
|
+
React.createElement("linearGradient", { x1: "-666.117", y1: "413.045", x2: "-553.27", y2: "525.908", id: "b", xlinkHref: "#a", gradientUnits: "userSpaceOnUse", gradientTransform: "matrix(.99884 0 0 .9987 689.008 -388.844)" })),
|
|
105
|
+
React.createElement("path", { 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", style: { marker: 'none' }, color: "#000", fill: "url(#b)", fillRule: "evenodd", overflow: "visible" }),
|
|
106
|
+
React.createElement("path", { 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", style: { marker: 'none' }, color: "#000", fill: "url(#c)", fillRule: "evenodd", overflow: "visible" })));
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
19
110
|
|
|
20
|
-
|
|
21
|
-
|
|
111
|
+
const Preview = (props) => {
|
|
112
|
+
return React.createElement(PreviewCode, { ...props });
|
|
113
|
+
};
|
|
114
|
+
var schema = {
|
|
115
|
+
name: 'code',
|
|
116
|
+
type: 'object',
|
|
117
|
+
title: 'Code',
|
|
118
|
+
components: { input: CodeInput },
|
|
119
|
+
icon: CodeBlockIcon,
|
|
120
|
+
fields: [
|
|
121
|
+
{
|
|
122
|
+
name: 'language',
|
|
123
|
+
title: 'Language',
|
|
124
|
+
type: 'string',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'filename',
|
|
128
|
+
title: 'Filename',
|
|
129
|
+
type: 'string',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
title: 'Code',
|
|
133
|
+
name: 'code',
|
|
134
|
+
type: 'text',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
title: 'Highlighted lines',
|
|
138
|
+
name: 'highlightedLines',
|
|
139
|
+
type: 'array',
|
|
140
|
+
of: [
|
|
141
|
+
{
|
|
142
|
+
type: 'number',
|
|
143
|
+
title: 'Highlighted line',
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
preview: {
|
|
149
|
+
select: {
|
|
150
|
+
language: 'language',
|
|
151
|
+
code: 'code',
|
|
152
|
+
filename: 'filename',
|
|
153
|
+
highlightedLines: 'highlightedLines',
|
|
154
|
+
},
|
|
155
|
+
prepare: (value) => {
|
|
156
|
+
return {
|
|
157
|
+
title: value.filename || (value.language || 'unknown').toUpperCase(),
|
|
158
|
+
media: getMedia(value?.language),
|
|
159
|
+
extendedPreview: React.createElement(Preview, { value: value }),
|
|
160
|
+
};
|
|
161
|
+
},
|
|
162
|
+
},
|
|
22
163
|
};
|
|
23
164
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
type: 'object',
|
|
27
|
-
title: 'Code',
|
|
28
|
-
inputComponent: _CodeInput.default,
|
|
29
|
-
icon: _icons.CodeBlockIcon,
|
|
30
|
-
fields: [{
|
|
31
|
-
name: 'language',
|
|
32
|
-
title: 'Language',
|
|
33
|
-
type: 'string'
|
|
34
|
-
}, {
|
|
35
|
-
name: 'filename',
|
|
36
|
-
title: 'Filename',
|
|
37
|
-
type: 'string'
|
|
38
|
-
}, {
|
|
39
|
-
title: 'Code',
|
|
40
|
-
name: 'code',
|
|
41
|
-
type: 'text'
|
|
42
|
-
}, {
|
|
43
|
-
title: 'Highlighted lines',
|
|
44
|
-
name: 'highlightedLines',
|
|
45
|
-
type: 'array',
|
|
46
|
-
of: [{
|
|
47
|
-
type: 'number',
|
|
48
|
-
title: 'Highlighted line'
|
|
49
|
-
}]
|
|
50
|
-
}],
|
|
51
|
-
preview: {
|
|
52
|
-
select: {
|
|
53
|
-
language: 'language',
|
|
54
|
-
code: 'code',
|
|
55
|
-
filename: 'filename',
|
|
56
|
-
highlightedLines: 'highlightedLines'
|
|
57
|
-
},
|
|
58
|
-
prepare: value => {
|
|
59
|
-
return {
|
|
60
|
-
title: value.filename || (value.language || 'unknown').toUpperCase(),
|
|
61
|
-
media: (0, _getMedia.getMedia)(value === null || value === void 0 ? void 0 : value.language),
|
|
62
|
-
extendedPreview: /*#__PURE__*/_react.default.createElement(Preview, {
|
|
63
|
-
value: value
|
|
64
|
-
})
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
exports.default = _default;
|
|
165
|
+
export { schema as default };
|
|
166
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../src/PreviewCode.tsx","../src/getMedia.tsx","../src/schema.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useRef} from 'react'\nimport AceEditor from 'react-ace'\nimport styled from 'styled-components'\nimport {Box} from '@sanity/ui'\nimport {ACE_EDITOR_PROPS, ACE_SET_OPTIONS} from './config'\nimport createHighlightMarkers from './createHighlightMarkers'\nimport {CodeInputType, CodeInputValue} from './types'\n/* eslint-disable-next-line import/no-unassigned-import */\nimport './editorSupport'\n\nconst PreviewContainer = styled(Box)`\n position: relative;\n`\n\nconst PreviewInner = styled(Box)`\n background-color: #272822;\n\n .ace_editor {\n box-sizing: border-box;\n cursor: default;\n pointer-events: none;\n }\n\n .ace_content {\n box-sizing: border-box;\n overflow: hidden;\n }\n`\n\nexport interface PreviewCodeProps {\n type?: CodeInputType\n value?: CodeInputValue\n}\n\nexport default function PreviewCode(props: PreviewCodeProps) {\n const aceEditorRef = useRef<any>()\n\n useEffect(() => {\n if (!aceEditorRef?.current) return\n\n const editor = aceEditorRef.current?.editor\n\n if (editor) {\n // Avoid cursor and focus tracking by Ace\n editor.renderer.$cursorLayer.element.style.opacity = 0\n editor.textInput.getElement().disabled = true\n }\n }, [])\n\n const handleEditorChange = useCallback(() => {\n // do nothing when the editor changes\n }, [])\n\n const {value, type} = props\n const fixedLanguage = type?.options?.language\n\n const mode = value?.language || fixedLanguage || 'text'\n\n return (\n <PreviewContainer>\n <PreviewInner padding={4}>\n <AceEditor\n ref={aceEditorRef}\n focus={false}\n mode={mode}\n theme=\"monokai\"\n width=\"100%\"\n onChange={handleEditorChange}\n maxLines={200}\n readOnly\n wrapEnabled\n showPrintMargin={false}\n highlightActiveLine={false}\n cursorStart={-1}\n value={(value && value.code) || ''}\n markers={\n value && value.highlightedLines\n ? createHighlightMarkers(value.highlightedLines)\n : undefined\n }\n tabSize={2}\n showGutter={false}\n setOptions={ACE_SET_OPTIONS}\n editorProps={ACE_EDITOR_PROPS}\n />\n </PreviewInner>\n </PreviewContainer>\n )\n}\n","import React from 'react'\n\nexport function getMedia(language?: string) {\n if (language === 'jsx') {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n <g fill=\"#61DAFB\">\n <circle cx=\"64\" cy=\"64\" r=\"11.4\" />\n <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\" />\n </g>\n </svg>\n )\n }\n\n if (language === 'javascript') {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n <path fill=\"#F0DB4F\" d=\"M1.408 1.408h125.184v125.185H1.408z\" />\n <path\n fill=\"#323330\"\n 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\"\n />\n </svg>\n )\n }\n\n if (language === 'php') {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 800 400\">\n <g transform=\"translate(-44.632 -141.55)\">\n <g transform=\"matrix(8.3528 0 0 8.3119 -727.13 -3759.5)\">\n <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\" />\n <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\" />\n <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\" />\n </g>\n </g>\n </svg>\n )\n }\n\n if (language === 'json') {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 160 160\"\n >\n <defs>\n <linearGradient id=\"a\">\n <stop offset=\"0\" />\n <stop offset=\"1\" stopColor=\"#fff\" />\n </linearGradient>\n <linearGradient\n x1=\"-553.27\"\n y1=\"525.908\"\n x2=\"-666.116\"\n y2=\"413.045\"\n id=\"c\"\n xlinkHref=\"#a\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"matrix(.99884 0 0 .9987 689.008 -388.844)\"\n />\n <linearGradient\n x1=\"-666.117\"\n y1=\"413.045\"\n x2=\"-553.27\"\n y2=\"525.908\"\n id=\"b\"\n xlinkHref=\"#a\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"matrix(.99884 0 0 .9987 689.008 -388.844)\"\n />\n </defs>\n <path\n 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\"\n style={{marker: 'none'}}\n color=\"#000\"\n fill=\"url(#b)\"\n fillRule=\"evenodd\"\n overflow=\"visible\"\n />\n <path\n 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\"\n style={{marker: 'none'}}\n color=\"#000\"\n fill=\"url(#c)\"\n fillRule=\"evenodd\"\n overflow=\"visible\"\n />\n </svg>\n )\n }\n\n return undefined\n}\n","import React from 'react'\nimport {CodeBlockIcon} from '@sanity/icons'\nimport {CodeInput} from './CodeInput'\nimport PreviewCode, {PreviewCodeProps} from './PreviewCode'\nimport {getMedia} from './getMedia'\n\nexport type {CodeInputProps, CodeSchemaType} from './CodeInput'\n\nexport type {CodeInputLanguage, CodeInputValue} from './types'\n\nconst Preview = (props: PreviewCodeProps) => {\n return <PreviewCode {...props} />\n}\n\nexport default {\n name: 'code',\n type: 'object',\n title: 'Code',\n components: {input: CodeInput},\n icon: CodeBlockIcon,\n fields: [\n {\n name: 'language',\n title: 'Language',\n type: 'string',\n },\n {\n name: 'filename',\n title: 'Filename',\n type: 'string',\n },\n {\n title: 'Code',\n name: 'code',\n type: 'text',\n },\n {\n title: 'Highlighted lines',\n name: 'highlightedLines',\n type: 'array',\n of: [\n {\n type: 'number',\n title: 'Highlighted line',\n },\n ],\n },\n ],\n preview: {\n select: {\n language: 'language',\n code: 'code',\n filename: 'filename',\n highlightedLines: 'highlightedLines',\n },\n prepare: (value: {\n language?: string\n code?: string\n filename?: string\n highlightedLines?: number[]\n }) => {\n return {\n title: value.filename || (value.language || 'unknown').toUpperCase(),\n media: getMedia(value?.language),\n extendedPreview: <Preview value={value} />,\n }\n },\n },\n}\n"],"names":[],"mappings":"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"}
|