@sanity/code-input 7.0.4 → 7.0.5-canary.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.
|
@@ -3,8 +3,8 @@ import { c } from "react/compiler-runtime";
|
|
|
3
3
|
import { lineNumbers, EditorView, Decoration } from "@codemirror/view";
|
|
4
4
|
import { useRootTheme, useTheme, rem } from "@sanity/ui";
|
|
5
5
|
import CodeMirror from "@uiw/react-codemirror";
|
|
6
|
-
import { forwardRef, useState, useEffect,
|
|
7
|
-
import {
|
|
6
|
+
import { forwardRef, useState, useEffect, use } from "react";
|
|
7
|
+
import { CodeInputLanguageModeLoaderContext } from "./index.js";
|
|
8
8
|
import { StreamLanguage } from "@codemirror/language";
|
|
9
9
|
import { StateField, StateEffect } from "@codemirror/state";
|
|
10
10
|
import { rgba } from "@sanity/ui/theme";
|
|
@@ -487,22 +487,9 @@ const CodeMirrorProxy = forwardRef(function(props, ref) {
|
|
|
487
487
|
return $[33] !== basicSetup || $[34] !== codeMirrorProps || $[35] !== codeMirrorTheme || $[36] !== extensions || $[37] !== initialState || $[38] !== ref || $[39] !== value ? (t8 = /* @__PURE__ */ jsx(CodeMirror, { ...codeMirrorProps, value, ref, extensions, theme: codeMirrorTheme, onCreateEditor: handleCreateEditor, initialState, basicSetup }), $[33] = basicSetup, $[34] = codeMirrorProps, $[35] = codeMirrorTheme, $[36] = extensions, $[37] = initialState, $[38] = ref, $[39] = value, $[40] = t8) : t8 = $[40], t8;
|
|
488
488
|
});
|
|
489
489
|
function useLanguageExtension(mode) {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
const codeMode = [...codeConfig?.codeModes ?? [], ...defaultCodeModes].find((m) => m.name === mode);
|
|
494
|
-
codeMode?.loader || console.warn(`Found no codeMode for language mode ${mode}, syntax highlighting will be disabled.`);
|
|
495
|
-
let active = !0;
|
|
496
|
-
return Promise.resolve(codeMode?.loader()).then((extension) => {
|
|
497
|
-
active && setLanguageExtension(extension);
|
|
498
|
-
}).catch((e) => {
|
|
499
|
-
console.error(`Failed to load language mode ${mode}`, e), active && setLanguageExtension(void 0);
|
|
500
|
-
}), () => {
|
|
501
|
-
active = !1;
|
|
502
|
-
};
|
|
503
|
-
}, $[0] = codeConfig?.codeModes, $[1] = mode, $[2] = t0) : t0 = $[2];
|
|
504
|
-
let t1;
|
|
505
|
-
return $[3] !== codeConfig || $[4] !== mode ? (t1 = [mode, codeConfig], $[3] = codeConfig, $[4] = mode, $[5] = t1) : t1 = $[5], useEffect(t0, t1), languageExtension;
|
|
490
|
+
if (!mode) return;
|
|
491
|
+
const languageModeLoader = use(CodeInputLanguageModeLoaderContext);
|
|
492
|
+
return use(languageModeLoader(mode, defaultCodeModes));
|
|
506
493
|
}
|
|
507
494
|
export {
|
|
508
495
|
CodeMirrorProxy as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeMirrorProxy.js","sources":["../../src/codemirror/defaultCodeModes.ts","../../src/codemirror/extensions/backwardsCompatibleTone.ts","../../src/codemirror/extensions/highlightLineExtension.ts","../../src/codemirror/extensions/theme.ts","../../src/codemirror/extensions/useCodeMirrorTheme.ts","../../src/codemirror/extensions/useFontSize.ts","../../src/codemirror/CodeMirrorProxy.tsx"],"sourcesContent":["import type {Extension} from '@codemirror/state'\n\nimport {StreamLanguage} from '@codemirror/language'\n\nexport interface CodeMode {\n name: string\n loader: ModeLoader\n}\nexport type ModeLoader = () => Promise<Extension | undefined> | Extension | undefined\n\nexport const defaultCodeModes: CodeMode[] = [\n {\n name: 'groq',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascriptLanguage}) => javascriptLanguage),\n },\n {\n name: 'javascript',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) => javascript({jsx: false})),\n },\n {\n name: 'jsx',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) => javascript({jsx: true})),\n },\n {\n name: 'typescript',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) =>\n javascript({jsx: false, typescript: true}),\n ),\n },\n {\n name: 'tsx',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) =>\n javascript({jsx: true, typescript: true}),\n ),\n },\n {name: 'php', loader: () => import('@codemirror/lang-php').then(({php}) => php())},\n {name: 'sql', loader: () => import('@codemirror/lang-sql').then(({sql}) => sql())},\n {\n name: 'mysql',\n loader: () => import('@codemirror/lang-sql').then(({sql, MySQL}) => sql({dialect: MySQL})),\n },\n {name: 'json', loader: () => import('@codemirror/lang-json').then(({json}) => json())},\n {\n name: 'markdown',\n loader: () => import('@codemirror/lang-markdown').then(({markdown}) => markdown()),\n },\n {name: 'java', loader: () => import('@codemirror/lang-java').then(({java}) => java())},\n {name: 'html', loader: () => import('@codemirror/lang-html').then(({html}) => html())},\n {\n name: 'csharp',\n loader: () =>\n import('@codemirror/legacy-modes/mode/clike').then(({csharp}) =>\n StreamLanguage.define(csharp),\n ),\n },\n {\n name: 'sh',\n loader: () =>\n import('@codemirror/legacy-modes/mode/shell').then(({shell}) => StreamLanguage.define(shell)),\n },\n {\n name: 'css',\n loader: () =>\n import('@codemirror/legacy-modes/mode/css').then(({css}) => StreamLanguage.define(css)),\n },\n {\n name: 'scss',\n loader: () =>\n import('@codemirror/legacy-modes/mode/css').then(({css}) => StreamLanguage.define(css)),\n },\n {\n name: 'sass',\n loader: () =>\n import('@codemirror/legacy-modes/mode/sass').then(({sass}) => StreamLanguage.define(sass)),\n },\n {\n name: 'ruby',\n loader: () =>\n import('@codemirror/legacy-modes/mode/ruby').then(({ruby}) => StreamLanguage.define(ruby)),\n },\n {\n name: 'python',\n loader: () =>\n import('@codemirror/legacy-modes/mode/python').then(({python}) =>\n StreamLanguage.define(python),\n ),\n },\n {\n name: 'xml',\n loader: () =>\n import('@codemirror/legacy-modes/mode/xml').then(({xml}) => StreamLanguage.define(xml)),\n },\n {\n name: 'yaml',\n loader: () =>\n import('@codemirror/legacy-modes/mode/yaml').then(({yaml}) => StreamLanguage.define(yaml)),\n },\n {\n name: 'golang',\n loader: () =>\n import('@codemirror/legacy-modes/mode/go').then(({go}) => StreamLanguage.define(go)),\n },\n {name: 'text', loader: () => undefined},\n {name: 'batch', loader: () => undefined},\n]\n","import type {ThemeContextValue} from '@sanity/ui'\n\n/**\n * `@sanity/ui@v2.9` introduced two new tones; \"neutral\" and \"suggest\",\n * which maps to \"default\" and \"primary\" respectively in the old theme.\n * This function returns the \"backwards compatible\" tone value.\n *\n * @returns The tone value that is backwards compatible with the old theme.\n * @internal\n */\nexport function getBackwardsCompatibleTone(\n themeCtx: ThemeContextValue,\n): Exclude<ThemeContextValue['tone'], 'neutral' | 'suggest'> {\n if (themeCtx.tone !== 'neutral' && themeCtx.tone !== 'suggest') {\n return themeCtx.tone\n }\n\n return themeCtx.tone === 'neutral' ? 'default' : 'primary'\n}\n","import type {ThemeContextValue} from '@sanity/ui'\n\nimport {type Extension, StateEffect, StateField} from '@codemirror/state'\nimport {Decoration, type DecorationSet, EditorView, lineNumbers} from '@codemirror/view'\nimport {rgba} from '@sanity/ui/theme'\n\nimport {getBackwardsCompatibleTone} from './backwardsCompatibleTone'\n\nconst highlightLineClass = 'cm-highlight-line'\n\nexport const addLineHighlight = StateEffect.define<number>()\nexport const removeLineHighlight = StateEffect.define<number>()\n\nexport const lineHighlightField = StateField.define({\n create() {\n return Decoration.none\n },\n update(lines, tr) {\n lines = lines.map(tr.changes)\n for (const e of tr.effects) {\n if (e.is(addLineHighlight)) {\n lines = lines.update({add: [lineHighlightMark.range(e.value)]})\n }\n if (e.is(removeLineHighlight)) {\n lines = lines.update({\n filter: (from) => {\n // removeLineHighlight value is lineStart for the highlight, so keep other effects\n return from !== e.value\n },\n })\n }\n }\n return lines\n },\n toJSON(value, state) {\n const highlightLines: number[] = []\n const iter = value.iter()\n while (iter.value) {\n const lineNumber = state.doc.lineAt(iter.from).number\n if (!highlightLines.includes(lineNumber)) {\n highlightLines.push(lineNumber)\n }\n iter.next()\n }\n return highlightLines\n },\n fromJSON(value: number[], state) {\n const lines = state.doc.lines\n const highlights = value\n .filter((line) => line <= lines) // one-indexed\n .map((line) => lineHighlightMark.range(state.doc.line(line).from))\n highlights.sort((a, b) => a.from - b.from)\n try {\n return Decoration.none.update({\n add: highlights,\n })\n } catch (e) {\n console.error(e)\n return Decoration.none\n }\n },\n provide: (f) => EditorView.decorations.from(f),\n})\n\nconst lineHighlightMark = Decoration.line({\n class: highlightLineClass,\n})\n\nexport const highlightState: {\n [prop: string]: StateField<DecorationSet>\n} = {\n highlight: lineHighlightField,\n}\n\nexport interface HighlightLineConfig {\n onHighlightChange?: (lines: number[]) => void\n readOnly?: boolean\n theme: ThemeContextValue\n}\n\nfunction createCodeMirrorTheme(options: {themeCtx: ThemeContextValue}) {\n const {themeCtx} = options\n\n const fallbackTone = getBackwardsCompatibleTone(themeCtx)\n\n const dark = {color: themeCtx.theme.color.dark[fallbackTone]}\n const light = {color: themeCtx.theme.color.light[fallbackTone]}\n\n return EditorView.baseTheme({\n '.cm-lineNumbers': {\n cursor: 'default',\n },\n '.cm-line.cm-line': {\n position: 'relative',\n },\n\n // need set background with pseudoelement so it does not render over selection color\n [`.${highlightLineClass}::before`]: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: -3,\n content: \"''\",\n boxSizing: 'border-box',\n },\n [`&dark .${highlightLineClass}::before`]: {\n background: rgba(dark.color.muted.caution.pressed.bg, 0.5),\n },\n [`&light .${highlightLineClass}::before`]: {\n background: rgba(light.color.muted.caution.pressed.bg, 0.75),\n },\n })\n}\n\nexport const highlightLine = (config: HighlightLineConfig): Extension => {\n const highlightTheme = createCodeMirrorTheme({themeCtx: config.theme})\n\n return [\n lineHighlightField,\n config.readOnly\n ? []\n : lineNumbers({\n domEventHandlers: {\n mousedown: (editorView, lineInfo) => {\n // Determine if the line for the clicked gutter line number has highlighted state or not\n const line = editorView.state.doc.lineAt(lineInfo.from)\n let isHighlighted = false\n editorView.state\n .field(lineHighlightField)\n .between(line.from, line.to, (_from, _to, value) => {\n if (value) {\n isHighlighted = true\n return false // stop iteration\n }\n return undefined\n })\n\n if (isHighlighted) {\n editorView.dispatch({effects: removeLineHighlight.of(line.from)})\n } else {\n editorView.dispatch({effects: addLineHighlight.of(line.from)})\n }\n if (config?.onHighlightChange) {\n config.onHighlightChange(editorView.state.toJSON(highlightState).highlight)\n }\n return true\n },\n },\n }),\n highlightTheme,\n ]\n}\n\n/**\n * Adds and removes highlights to the provided view using highlightLines\n * @param view\n * @param highlightLines\n */\nexport function setHighlightedLines(view: EditorView, highlightLines: number[]): void {\n const doc = view.state.doc\n const lines = doc.lines\n //1-based line numbers\n const allLineNumbers = Array.from({length: lines}, (_x, i) => i + 1)\n view.dispatch({\n effects: allLineNumbers.map((lineNumber) => {\n const line = doc.line(lineNumber)\n if (highlightLines?.includes(lineNumber)) {\n return addLineHighlight.of(line.from)\n }\n return removeLineHighlight.of(line.from)\n }),\n })\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {EditorView} from '@codemirror/view'\nimport {useRootTheme} from '@sanity/ui'\nimport {rgba} from '@sanity/ui/theme'\nimport {useMemo} from 'react'\n\nimport {getBackwardsCompatibleTone} from './backwardsCompatibleTone'\n\nexport function useThemeExtension(): Extension {\n const themeCtx = useRootTheme()\n\n return useMemo(() => {\n const fallbackTone = getBackwardsCompatibleTone(themeCtx)\n const dark = {color: themeCtx.theme.color.dark[fallbackTone]}\n const light = {color: themeCtx.theme.color.light[fallbackTone]}\n\n return EditorView.baseTheme({\n '&.cm-editor': {\n height: '100%',\n },\n '&.cm-editor.cm-focused': {\n outline: 'none',\n },\n\n // Matching brackets\n '&.cm-editor.cm-focused .cm-matchingBracket': {\n backgroundColor: 'transparent',\n },\n '&.cm-editor.cm-focused .cm-nonmatchingBracket': {\n backgroundColor: 'transparent',\n },\n '&dark.cm-editor.cm-focused .cm-matchingBracket': {\n outline: `1px solid ${dark.color.base.border}`,\n },\n '&dark.cm-editor.cm-focused .cm-nonmatchingBracket': {\n outline: `1px solid ${dark.color.base.border}`,\n },\n '&light.cm-editor.cm-focused .cm-matchingBracket': {\n outline: `1px solid ${light.color.base.border}`,\n },\n '&light.cm-editor.cm-focused .cm-nonmatchingBracket': {\n outline: `1px solid ${light.color.base.border}`,\n },\n\n // Size and padding of gutter\n '& .cm-lineNumbers .cm-gutterElement': {\n minWidth: `32px !important`,\n padding: `0 8px !important`,\n },\n '& .cm-gutter.cm-foldGutter': {\n width: `0px !important`,\n },\n\n // Color of gutter\n '&dark .cm-gutters': {\n color: `${rgba(dark.color.card.enabled.code.fg, 0.5)} !important`,\n borderRight: `1px solid ${rgba(dark.color.base.border, 0.5)}`,\n },\n '&light .cm-gutters': {\n color: `${rgba(light.color.card.enabled.code.fg, 0.5)} !important`,\n borderRight: `1px solid ${rgba(light.color.base.border, 0.5)}`,\n },\n })\n }, [themeCtx])\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {tags as t} from '@lezer/highlight'\nimport {useTheme} from '@sanity/ui'\nimport {rgba} from '@sanity/ui/theme'\nimport {createTheme} from '@uiw/codemirror-themes'\nimport {useMemo} from 'react'\n\nexport function useCodeMirrorTheme(): Extension {\n const theme = useTheme()\n\n return useMemo(() => {\n const {code: codeFont} = theme.sanity.fonts\n const {base, card, dark, syntax} = theme.sanity.color\n\n return createTheme({\n theme: dark ? 'dark' : 'light',\n settings: {\n background: card.enabled.bg,\n foreground: card.enabled.code.fg,\n lineHighlight: card.enabled.bg,\n fontFamily: codeFont.family,\n caret: base.focusRing,\n selection: rgba(base.focusRing, 0.2),\n selectionMatch: rgba(base.focusRing, 0.4),\n gutterBackground: card.disabled.bg,\n gutterForeground: card.disabled.code.fg,\n gutterActiveForeground: card.enabled.fg,\n },\n styles: [\n {\n tag: [t.heading, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: card.enabled.fg,\n },\n {tag: t.angleBracket, color: card.enabled.code.fg},\n {tag: t.atom, color: syntax.keyword},\n {tag: t.attributeName, color: syntax.attrName},\n {tag: t.bool, color: syntax.boolean},\n {tag: t.bracket, color: card.enabled.code.fg},\n {tag: t.className, color: syntax.className},\n {tag: t.comment, color: syntax.comment},\n {tag: t.definition(t.typeName), color: syntax.function},\n {\n tag: [\n t.definition(t.variableName),\n t.function(t.variableName),\n t.className,\n t.attributeName,\n ],\n color: syntax.function,\n },\n {tag: [t.function(t.propertyName), t.propertyName], color: syntax.function},\n {tag: t.keyword, color: syntax.keyword},\n {tag: t.null, color: syntax.number},\n {tag: t.number, color: syntax.number},\n {tag: t.meta, color: card.enabled.code.fg},\n {tag: t.operator, color: syntax.operator},\n {tag: t.propertyName, color: syntax.property},\n {tag: [t.string, t.special(t.brace)], color: syntax.string},\n {tag: t.tagName, color: syntax.className},\n {tag: t.typeName, color: syntax.keyword},\n ],\n })\n }, [theme])\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {EditorView} from '@codemirror/view'\nimport {rem, useTheme} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nexport function useFontSizeExtension(props: {fontSize: number}): Extension {\n const {fontSize: fontSizeProp} = props\n const theme = useTheme()\n\n return useMemo(() => {\n const {code: codeFont} = theme.sanity.fonts\n const {fontSize, lineHeight} = codeFont.sizes[fontSizeProp] || codeFont.sizes[2]!\n\n return EditorView.baseTheme({\n '&': {\n fontSize: rem(fontSize),\n },\n\n '& .cm-scroller': {\n lineHeight: `${lineHeight / fontSize} !important`,\n },\n })\n }, [fontSizeProp, theme])\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {EditorView} from '@codemirror/view'\nimport {useRootTheme} from '@sanity/ui'\nimport CodeMirror, {type ReactCodeMirrorProps, type ReactCodeMirrorRef} from '@uiw/react-codemirror'\nimport {forwardRef, useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {CodeInputConfigContext} from './CodeModeContext'\nimport {defaultCodeModes} from './defaultCodeModes'\nimport {\n highlightLine,\n highlightState,\n setHighlightedLines,\n} from './extensions/highlightLineExtension'\nimport {useThemeExtension} from './extensions/theme'\nimport {useCodeMirrorTheme} from './extensions/useCodeMirrorTheme'\nimport {useFontSizeExtension} from './extensions/useFontSize'\n\nexport interface CodeMirrorProps extends ReactCodeMirrorProps {\n highlightLines?: number[]\n languageMode?: string\n onHighlightChange?: (lines: number[]) => void\n}\n\n/**\n * CodeMirrorProxy is a wrapper component around CodeMirror that we lazy load to reduce initial bundle size.\n *\n * It is also responsible for integrating any CodeMirror extensions.\n */\nconst CodeMirrorProxy = forwardRef<ReactCodeMirrorRef, CodeMirrorProps>(\n function CodeMirrorProxy(props, ref) {\n const {\n basicSetup: basicSetupProp,\n highlightLines,\n languageMode,\n onHighlightChange,\n readOnly,\n value,\n ...codeMirrorProps\n } = props\n\n const themeCtx = useRootTheme()\n const codeMirrorTheme = useCodeMirrorTheme()\n const [editorView, setEditorView] = useState<EditorView | undefined>(undefined)\n\n // Resolve extensions\n const themeExtension = useThemeExtension()\n const fontSizeExtension = useFontSizeExtension({fontSize: 1})\n const languageExtension = useLanguageExtension(languageMode)\n const highlightLineExtension = useMemo(\n () =>\n highlightLine({\n onHighlightChange,\n readOnly,\n theme: themeCtx,\n }),\n [onHighlightChange, readOnly, themeCtx],\n )\n\n const extensions = useMemo(() => {\n const baseExtensions = [\n themeExtension,\n fontSizeExtension,\n highlightLineExtension,\n EditorView.lineWrapping,\n ]\n if (languageExtension) {\n return [...baseExtensions, languageExtension]\n }\n return baseExtensions\n }, [fontSizeExtension, highlightLineExtension, languageExtension, themeExtension])\n\n useEffect(() => {\n if (editorView) {\n setHighlightedLines(editorView, highlightLines ?? [])\n }\n }, [editorView, highlightLines, value])\n\n const [initialState] = useState(() => {\n return {\n json: {\n doc: value ?? '',\n selection: {\n main: 0,\n ranges: [{anchor: 0, head: 0}],\n },\n highlight: highlightLines ?? [],\n },\n fields: highlightState,\n }\n })\n\n const handleCreateEditor = useCallback((view: EditorView) => {\n setEditorView(view)\n }, [])\n\n const basicSetup = useMemo(\n () =>\n basicSetupProp ?? {\n highlightActiveLine: false,\n },\n [basicSetupProp],\n )\n\n return (\n <CodeMirror\n {...codeMirrorProps}\n value={value}\n ref={ref}\n extensions={extensions}\n theme={codeMirrorTheme}\n onCreateEditor={handleCreateEditor}\n initialState={initialState}\n basicSetup={basicSetup}\n />\n )\n },\n)\n\nfunction useLanguageExtension(mode?: string) {\n const codeConfig = useContext(CodeInputConfigContext)\n\n const [languageExtension, setLanguageExtension] = useState<Extension | undefined>()\n\n useEffect(() => {\n const customModes = codeConfig?.codeModes ?? []\n const modes = [...customModes, ...defaultCodeModes]\n\n const codeMode = modes.find((m) => m.name === mode)\n if (!codeMode?.loader) {\n console.warn(\n `Found no codeMode for language mode ${mode}, syntax highlighting will be disabled.`,\n )\n }\n let active = true\n Promise.resolve(codeMode?.loader())\n .then((extension) => {\n if (active) {\n setLanguageExtension(extension)\n }\n return undefined\n })\n .catch((e) => {\n console.error(`Failed to load language mode ${mode}`, e)\n if (active) {\n setLanguageExtension(undefined)\n }\n })\n return () => {\n active = false\n }\n }, [mode, codeConfig])\n\n return languageExtension\n}\n\nexport default CodeMirrorProxy\n"],"names":["defaultCodeModes","name","loader","then","javascriptLanguage","javascript","jsx","typescript","php","sql","MySQL","dialect","json","markdown","java","html","csharp","StreamLanguage","define","shell","css","sass","ruby","python","xml","yaml","go","getBackwardsCompatibleTone","themeCtx","tone","highlightLineClass","addLineHighlight","StateEffect","removeLineHighlight","lineHighlightField","StateField","create","Decoration","none","update","lines","tr","map","changes","e","effects","is","add","lineHighlightMark","range","value","filter","from","toJSON","state","highlightLines","iter","lineNumber","doc","lineAt","number","includes","push","next","fromJSON","highlights","line","sort","a","b","console","error","provide","f","EditorView","decorations","class","highlightState","highlight","createCodeMirrorTheme","options","fallbackTone","dark","color","theme","light","baseTheme","cursor","position","top","bottom","left","right","zIndex","content","boxSizing","background","rgba","muted","caution","pressed","bg","highlightLine","config","highlightTheme","readOnly","lineNumbers","domEventHandlers","mousedown","editorView","lineInfo","isHighlighted","field","between","to","_from","_to","dispatch","of","onHighlightChange","setHighlightedLines","view","allLineNumbers","Array","length","_x","i","useThemeExtension","$","_c","useRootTheme","t0","t1","t2","height","outline","backgroundColor","base","border","minWidth","padding","width","card","enabled","code","fg","borderRight","useCodeMirrorTheme","useTheme","codeFont","sanity","fonts","syntax","focusRing","disabled","family","attrName","boolean","className","comment","function","keyword","operator","property","string","createTheme","settings","foreground","lineHighlight","fontFamily","caret","selection","selectionMatch","gutterBackground","gutterForeground","gutterActiveForeground","styles","tag","t","heading","heading2","heading3","heading4","heading5","heading6","angleBracket","atom","attributeName","bool","bracket","definition","typeName","variableName","propertyName","null","meta","special","brace","tagName","useFontSizeExtension","props","fontSize","fontSizeProp","lineHeight","sizes","rem","CodeMirrorProxy","forwardRef","ref","basicSetupProp","codeMirrorProps","languageMode","basicSetup","codeMirrorTheme","setEditorView","useState","undefined","themeExtension","for","fontSizeExtension","languageExtension","useLanguageExtension","highlightLineExtension","bb0","t3","lineWrapping","baseExtensions","t4","extensions","useEffect","t5","main","ranges","anchor","head","fields","initialState","t6","Symbol","handleCreateEditor","t7","highlightActiveLine","t8","mode","codeConfig","useContext","CodeInputConfigContext","setLanguageExtension","codeModes","codeMode","find","m","warn","active","Promise","resolve","extension","catch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CodeMirrorProxy.js","sources":["../../src/codemirror/defaultCodeModes.ts","../../src/codemirror/extensions/backwardsCompatibleTone.ts","../../src/codemirror/extensions/highlightLineExtension.ts","../../src/codemirror/extensions/theme.ts","../../src/codemirror/extensions/useCodeMirrorTheme.ts","../../src/codemirror/extensions/useFontSize.ts","../../src/codemirror/CodeMirrorProxy.tsx"],"sourcesContent":["import type {Extension} from '@codemirror/state'\n\nimport {StreamLanguage} from '@codemirror/language'\n\nexport interface CodeMode {\n name: string\n loader: ModeLoader\n}\nexport type ModeLoader = () => Promise<Extension | undefined> | Extension | undefined\n\nexport const defaultCodeModes: CodeMode[] = [\n {\n name: 'groq',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascriptLanguage}) => javascriptLanguage),\n },\n {\n name: 'javascript',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) => javascript({jsx: false})),\n },\n {\n name: 'jsx',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) => javascript({jsx: true})),\n },\n {\n name: 'typescript',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) =>\n javascript({jsx: false, typescript: true}),\n ),\n },\n {\n name: 'tsx',\n loader: () =>\n import('@codemirror/lang-javascript').then(({javascript}) =>\n javascript({jsx: true, typescript: true}),\n ),\n },\n {name: 'php', loader: () => import('@codemirror/lang-php').then(({php}) => php())},\n {name: 'sql', loader: () => import('@codemirror/lang-sql').then(({sql}) => sql())},\n {\n name: 'mysql',\n loader: () => import('@codemirror/lang-sql').then(({sql, MySQL}) => sql({dialect: MySQL})),\n },\n {name: 'json', loader: () => import('@codemirror/lang-json').then(({json}) => json())},\n {\n name: 'markdown',\n loader: () => import('@codemirror/lang-markdown').then(({markdown}) => markdown()),\n },\n {name: 'java', loader: () => import('@codemirror/lang-java').then(({java}) => java())},\n {name: 'html', loader: () => import('@codemirror/lang-html').then(({html}) => html())},\n {\n name: 'csharp',\n loader: () =>\n import('@codemirror/legacy-modes/mode/clike').then(({csharp}) =>\n StreamLanguage.define(csharp),\n ),\n },\n {\n name: 'sh',\n loader: () =>\n import('@codemirror/legacy-modes/mode/shell').then(({shell}) => StreamLanguage.define(shell)),\n },\n {\n name: 'css',\n loader: () =>\n import('@codemirror/legacy-modes/mode/css').then(({css}) => StreamLanguage.define(css)),\n },\n {\n name: 'scss',\n loader: () =>\n import('@codemirror/legacy-modes/mode/css').then(({css}) => StreamLanguage.define(css)),\n },\n {\n name: 'sass',\n loader: () =>\n import('@codemirror/legacy-modes/mode/sass').then(({sass}) => StreamLanguage.define(sass)),\n },\n {\n name: 'ruby',\n loader: () =>\n import('@codemirror/legacy-modes/mode/ruby').then(({ruby}) => StreamLanguage.define(ruby)),\n },\n {\n name: 'python',\n loader: () =>\n import('@codemirror/legacy-modes/mode/python').then(({python}) =>\n StreamLanguage.define(python),\n ),\n },\n {\n name: 'xml',\n loader: () =>\n import('@codemirror/legacy-modes/mode/xml').then(({xml}) => StreamLanguage.define(xml)),\n },\n {\n name: 'yaml',\n loader: () =>\n import('@codemirror/legacy-modes/mode/yaml').then(({yaml}) => StreamLanguage.define(yaml)),\n },\n {\n name: 'golang',\n loader: () =>\n import('@codemirror/legacy-modes/mode/go').then(({go}) => StreamLanguage.define(go)),\n },\n {name: 'text', loader: () => undefined},\n {name: 'batch', loader: () => undefined},\n]\n","import type {ThemeContextValue} from '@sanity/ui'\n\n/**\n * `@sanity/ui@v2.9` introduced two new tones; \"neutral\" and \"suggest\",\n * which maps to \"default\" and \"primary\" respectively in the old theme.\n * This function returns the \"backwards compatible\" tone value.\n *\n * @returns The tone value that is backwards compatible with the old theme.\n * @internal\n */\nexport function getBackwardsCompatibleTone(\n themeCtx: ThemeContextValue,\n): Exclude<ThemeContextValue['tone'], 'neutral' | 'suggest'> {\n if (themeCtx.tone !== 'neutral' && themeCtx.tone !== 'suggest') {\n return themeCtx.tone\n }\n\n return themeCtx.tone === 'neutral' ? 'default' : 'primary'\n}\n","import type {ThemeContextValue} from '@sanity/ui'\n\nimport {type Extension, StateEffect, StateField} from '@codemirror/state'\nimport {Decoration, type DecorationSet, EditorView, lineNumbers} from '@codemirror/view'\nimport {rgba} from '@sanity/ui/theme'\n\nimport {getBackwardsCompatibleTone} from './backwardsCompatibleTone'\n\nconst highlightLineClass = 'cm-highlight-line'\n\nexport const addLineHighlight = StateEffect.define<number>()\nexport const removeLineHighlight = StateEffect.define<number>()\n\nexport const lineHighlightField = StateField.define({\n create() {\n return Decoration.none\n },\n update(lines, tr) {\n lines = lines.map(tr.changes)\n for (const e of tr.effects) {\n if (e.is(addLineHighlight)) {\n lines = lines.update({add: [lineHighlightMark.range(e.value)]})\n }\n if (e.is(removeLineHighlight)) {\n lines = lines.update({\n filter: (from) => {\n // removeLineHighlight value is lineStart for the highlight, so keep other effects\n return from !== e.value\n },\n })\n }\n }\n return lines\n },\n toJSON(value, state) {\n const highlightLines: number[] = []\n const iter = value.iter()\n while (iter.value) {\n const lineNumber = state.doc.lineAt(iter.from).number\n if (!highlightLines.includes(lineNumber)) {\n highlightLines.push(lineNumber)\n }\n iter.next()\n }\n return highlightLines\n },\n fromJSON(value: number[], state) {\n const lines = state.doc.lines\n const highlights = value\n .filter((line) => line <= lines) // one-indexed\n .map((line) => lineHighlightMark.range(state.doc.line(line).from))\n highlights.sort((a, b) => a.from - b.from)\n try {\n return Decoration.none.update({\n add: highlights,\n })\n } catch (e) {\n console.error(e)\n return Decoration.none\n }\n },\n provide: (f) => EditorView.decorations.from(f),\n})\n\nconst lineHighlightMark = Decoration.line({\n class: highlightLineClass,\n})\n\nexport const highlightState: {\n [prop: string]: StateField<DecorationSet>\n} = {\n highlight: lineHighlightField,\n}\n\nexport interface HighlightLineConfig {\n onHighlightChange?: (lines: number[]) => void\n readOnly?: boolean\n theme: ThemeContextValue\n}\n\nfunction createCodeMirrorTheme(options: {themeCtx: ThemeContextValue}) {\n const {themeCtx} = options\n\n const fallbackTone = getBackwardsCompatibleTone(themeCtx)\n\n const dark = {color: themeCtx.theme.color.dark[fallbackTone]}\n const light = {color: themeCtx.theme.color.light[fallbackTone]}\n\n return EditorView.baseTheme({\n '.cm-lineNumbers': {\n cursor: 'default',\n },\n '.cm-line.cm-line': {\n position: 'relative',\n },\n\n // need set background with pseudoelement so it does not render over selection color\n [`.${highlightLineClass}::before`]: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: -3,\n content: \"''\",\n boxSizing: 'border-box',\n },\n [`&dark .${highlightLineClass}::before`]: {\n background: rgba(dark.color.muted.caution.pressed.bg, 0.5),\n },\n [`&light .${highlightLineClass}::before`]: {\n background: rgba(light.color.muted.caution.pressed.bg, 0.75),\n },\n })\n}\n\nexport const highlightLine = (config: HighlightLineConfig): Extension => {\n const highlightTheme = createCodeMirrorTheme({themeCtx: config.theme})\n\n return [\n lineHighlightField,\n config.readOnly\n ? []\n : lineNumbers({\n domEventHandlers: {\n mousedown: (editorView, lineInfo) => {\n // Determine if the line for the clicked gutter line number has highlighted state or not\n const line = editorView.state.doc.lineAt(lineInfo.from)\n let isHighlighted = false\n editorView.state\n .field(lineHighlightField)\n .between(line.from, line.to, (_from, _to, value) => {\n if (value) {\n isHighlighted = true\n return false // stop iteration\n }\n return undefined\n })\n\n if (isHighlighted) {\n editorView.dispatch({effects: removeLineHighlight.of(line.from)})\n } else {\n editorView.dispatch({effects: addLineHighlight.of(line.from)})\n }\n if (config?.onHighlightChange) {\n config.onHighlightChange(editorView.state.toJSON(highlightState).highlight)\n }\n return true\n },\n },\n }),\n highlightTheme,\n ]\n}\n\n/**\n * Adds and removes highlights to the provided view using highlightLines\n * @param view\n * @param highlightLines\n */\nexport function setHighlightedLines(view: EditorView, highlightLines: number[]): void {\n const doc = view.state.doc\n const lines = doc.lines\n //1-based line numbers\n const allLineNumbers = Array.from({length: lines}, (_x, i) => i + 1)\n view.dispatch({\n effects: allLineNumbers.map((lineNumber) => {\n const line = doc.line(lineNumber)\n if (highlightLines?.includes(lineNumber)) {\n return addLineHighlight.of(line.from)\n }\n return removeLineHighlight.of(line.from)\n }),\n })\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {EditorView} from '@codemirror/view'\nimport {useRootTheme} from '@sanity/ui'\nimport {rgba} from '@sanity/ui/theme'\nimport {useMemo} from 'react'\n\nimport {getBackwardsCompatibleTone} from './backwardsCompatibleTone'\n\nexport function useThemeExtension(): Extension {\n const themeCtx = useRootTheme()\n\n return useMemo(() => {\n const fallbackTone = getBackwardsCompatibleTone(themeCtx)\n const dark = {color: themeCtx.theme.color.dark[fallbackTone]}\n const light = {color: themeCtx.theme.color.light[fallbackTone]}\n\n return EditorView.baseTheme({\n '&.cm-editor': {\n height: '100%',\n },\n '&.cm-editor.cm-focused': {\n outline: 'none',\n },\n\n // Matching brackets\n '&.cm-editor.cm-focused .cm-matchingBracket': {\n backgroundColor: 'transparent',\n },\n '&.cm-editor.cm-focused .cm-nonmatchingBracket': {\n backgroundColor: 'transparent',\n },\n '&dark.cm-editor.cm-focused .cm-matchingBracket': {\n outline: `1px solid ${dark.color.base.border}`,\n },\n '&dark.cm-editor.cm-focused .cm-nonmatchingBracket': {\n outline: `1px solid ${dark.color.base.border}`,\n },\n '&light.cm-editor.cm-focused .cm-matchingBracket': {\n outline: `1px solid ${light.color.base.border}`,\n },\n '&light.cm-editor.cm-focused .cm-nonmatchingBracket': {\n outline: `1px solid ${light.color.base.border}`,\n },\n\n // Size and padding of gutter\n '& .cm-lineNumbers .cm-gutterElement': {\n minWidth: `32px !important`,\n padding: `0 8px !important`,\n },\n '& .cm-gutter.cm-foldGutter': {\n width: `0px !important`,\n },\n\n // Color of gutter\n '&dark .cm-gutters': {\n color: `${rgba(dark.color.card.enabled.code.fg, 0.5)} !important`,\n borderRight: `1px solid ${rgba(dark.color.base.border, 0.5)}`,\n },\n '&light .cm-gutters': {\n color: `${rgba(light.color.card.enabled.code.fg, 0.5)} !important`,\n borderRight: `1px solid ${rgba(light.color.base.border, 0.5)}`,\n },\n })\n }, [themeCtx])\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {tags as t} from '@lezer/highlight'\nimport {useTheme} from '@sanity/ui'\nimport {rgba} from '@sanity/ui/theme'\nimport {createTheme} from '@uiw/codemirror-themes'\nimport {useMemo} from 'react'\n\nexport function useCodeMirrorTheme(): Extension {\n const theme = useTheme()\n\n return useMemo(() => {\n const {code: codeFont} = theme.sanity.fonts\n const {base, card, dark, syntax} = theme.sanity.color\n\n return createTheme({\n theme: dark ? 'dark' : 'light',\n settings: {\n background: card.enabled.bg,\n foreground: card.enabled.code.fg,\n lineHighlight: card.enabled.bg,\n fontFamily: codeFont.family,\n caret: base.focusRing,\n selection: rgba(base.focusRing, 0.2),\n selectionMatch: rgba(base.focusRing, 0.4),\n gutterBackground: card.disabled.bg,\n gutterForeground: card.disabled.code.fg,\n gutterActiveForeground: card.enabled.fg,\n },\n styles: [\n {\n tag: [t.heading, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: card.enabled.fg,\n },\n {tag: t.angleBracket, color: card.enabled.code.fg},\n {tag: t.atom, color: syntax.keyword},\n {tag: t.attributeName, color: syntax.attrName},\n {tag: t.bool, color: syntax.boolean},\n {tag: t.bracket, color: card.enabled.code.fg},\n {tag: t.className, color: syntax.className},\n {tag: t.comment, color: syntax.comment},\n {tag: t.definition(t.typeName), color: syntax.function},\n {\n tag: [\n t.definition(t.variableName),\n t.function(t.variableName),\n t.className,\n t.attributeName,\n ],\n color: syntax.function,\n },\n {tag: [t.function(t.propertyName), t.propertyName], color: syntax.function},\n {tag: t.keyword, color: syntax.keyword},\n {tag: t.null, color: syntax.number},\n {tag: t.number, color: syntax.number},\n {tag: t.meta, color: card.enabled.code.fg},\n {tag: t.operator, color: syntax.operator},\n {tag: t.propertyName, color: syntax.property},\n {tag: [t.string, t.special(t.brace)], color: syntax.string},\n {tag: t.tagName, color: syntax.className},\n {tag: t.typeName, color: syntax.keyword},\n ],\n })\n }, [theme])\n}\n","import type {Extension} from '@codemirror/state'\n\nimport {EditorView} from '@codemirror/view'\nimport {rem, useTheme} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nexport function useFontSizeExtension(props: {fontSize: number}): Extension {\n const {fontSize: fontSizeProp} = props\n const theme = useTheme()\n\n return useMemo(() => {\n const {code: codeFont} = theme.sanity.fonts\n const {fontSize, lineHeight} = codeFont.sizes[fontSizeProp] || codeFont.sizes[2]!\n\n return EditorView.baseTheme({\n '&': {\n fontSize: rem(fontSize),\n },\n\n '& .cm-scroller': {\n lineHeight: `${lineHeight / fontSize} !important`,\n },\n })\n }, [fontSizeProp, theme])\n}\n","import {EditorView} from '@codemirror/view'\nimport {useRootTheme} from '@sanity/ui'\nimport CodeMirror, {type ReactCodeMirrorProps, type ReactCodeMirrorRef} from '@uiw/react-codemirror'\nimport {forwardRef, use, useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {CodeInputLanguageModeLoaderContext} from './CodeModeContext'\nimport {defaultCodeModes} from './defaultCodeModes'\nimport {\n highlightLine,\n highlightState,\n setHighlightedLines,\n} from './extensions/highlightLineExtension'\nimport {useThemeExtension} from './extensions/theme'\nimport {useCodeMirrorTheme} from './extensions/useCodeMirrorTheme'\nimport {useFontSizeExtension} from './extensions/useFontSize'\n\nexport interface CodeMirrorProps extends ReactCodeMirrorProps {\n highlightLines?: number[]\n languageMode?: string\n onHighlightChange?: (lines: number[]) => void\n}\n\n/**\n * CodeMirrorProxy is a wrapper component around CodeMirror that we lazy load to reduce initial bundle size.\n *\n * It is also responsible for integrating any CodeMirror extensions.\n */\nconst CodeMirrorProxy = forwardRef<ReactCodeMirrorRef, CodeMirrorProps>(\n function CodeMirrorProxy(props, ref) {\n const {\n basicSetup: basicSetupProp,\n highlightLines,\n languageMode,\n onHighlightChange,\n readOnly,\n value,\n ...codeMirrorProps\n } = props\n\n const themeCtx = useRootTheme()\n const codeMirrorTheme = useCodeMirrorTheme()\n const [editorView, setEditorView] = useState<EditorView | undefined>(undefined)\n\n // Resolve extensions\n const themeExtension = useThemeExtension()\n const fontSizeExtension = useFontSizeExtension({fontSize: 1})\n const languageExtension = useLanguageExtension(languageMode)\n const highlightLineExtension = useMemo(\n () =>\n highlightLine({\n onHighlightChange,\n readOnly,\n theme: themeCtx,\n }),\n [onHighlightChange, readOnly, themeCtx],\n )\n\n const extensions = useMemo(() => {\n const baseExtensions = [\n themeExtension,\n fontSizeExtension,\n highlightLineExtension,\n EditorView.lineWrapping,\n ]\n if (languageExtension) {\n return [...baseExtensions, languageExtension]\n }\n return baseExtensions\n }, [fontSizeExtension, highlightLineExtension, languageExtension, themeExtension])\n\n useEffect(() => {\n if (editorView) {\n setHighlightedLines(editorView, highlightLines ?? [])\n }\n }, [editorView, highlightLines, value])\n\n const [initialState] = useState(() => {\n return {\n json: {\n doc: value ?? '',\n selection: {\n main: 0,\n ranges: [{anchor: 0, head: 0}],\n },\n highlight: highlightLines ?? [],\n },\n fields: highlightState,\n }\n })\n\n const handleCreateEditor = useCallback((view: EditorView) => {\n setEditorView(view)\n }, [])\n\n const basicSetup = useMemo(\n () =>\n basicSetupProp ?? {\n highlightActiveLine: false,\n },\n [basicSetupProp],\n )\n\n return (\n <CodeMirror\n {...codeMirrorProps}\n value={value}\n ref={ref}\n extensions={extensions}\n theme={codeMirrorTheme}\n onCreateEditor={handleCreateEditor}\n initialState={initialState}\n basicSetup={basicSetup}\n />\n )\n },\n)\n\nfunction useLanguageExtension(mode?: string) {\n if (!mode) return undefined\n const languageModeLoader = use(CodeInputLanguageModeLoaderContext)\n return use(languageModeLoader(mode, defaultCodeModes))\n}\n\nexport default CodeMirrorProxy\n"],"names":["defaultCodeModes","name","loader","then","javascriptLanguage","javascript","jsx","typescript","php","sql","MySQL","dialect","json","markdown","java","html","csharp","StreamLanguage","define","shell","css","sass","ruby","python","xml","yaml","go","getBackwardsCompatibleTone","themeCtx","tone","highlightLineClass","addLineHighlight","StateEffect","removeLineHighlight","lineHighlightField","StateField","create","Decoration","none","update","lines","tr","map","changes","e","effects","is","add","lineHighlightMark","range","value","filter","from","toJSON","state","highlightLines","iter","lineNumber","doc","lineAt","number","includes","push","next","fromJSON","highlights","line","sort","a","b","console","error","provide","f","EditorView","decorations","class","highlightState","highlight","createCodeMirrorTheme","options","fallbackTone","dark","color","theme","light","baseTheme","cursor","position","top","bottom","left","right","zIndex","content","boxSizing","background","rgba","muted","caution","pressed","bg","highlightLine","config","highlightTheme","readOnly","lineNumbers","domEventHandlers","mousedown","editorView","lineInfo","isHighlighted","field","between","to","_from","_to","dispatch","of","onHighlightChange","setHighlightedLines","view","allLineNumbers","Array","length","_x","i","useThemeExtension","$","_c","useRootTheme","t0","t1","t2","height","outline","backgroundColor","base","border","minWidth","padding","width","card","enabled","code","fg","borderRight","useCodeMirrorTheme","useTheme","codeFont","sanity","fonts","syntax","focusRing","disabled","family","attrName","boolean","className","comment","function","keyword","operator","property","string","createTheme","settings","foreground","lineHighlight","fontFamily","caret","selection","selectionMatch","gutterBackground","gutterForeground","gutterActiveForeground","styles","tag","t","heading","heading2","heading3","heading4","heading5","heading6","angleBracket","atom","attributeName","bool","bracket","definition","typeName","variableName","propertyName","null","meta","special","brace","tagName","useFontSizeExtension","props","fontSize","fontSizeProp","lineHeight","sizes","rem","CodeMirrorProxy","forwardRef","ref","basicSetupProp","codeMirrorProps","languageMode","basicSetup","codeMirrorTheme","setEditorView","useState","undefined","themeExtension","for","fontSizeExtension","languageExtension","useLanguageExtension","highlightLineExtension","bb0","t3","lineWrapping","baseExtensions","t4","extensions","useEffect","t5","main","ranges","anchor","head","fields","initialState","t6","Symbol","handleCreateEditor","t7","highlightActiveLine","t8","mode","languageModeLoader","use","CodeInputLanguageModeLoaderContext"],"mappings":"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"}
|
package/dist/_chunks-es/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { c } from "react/compiler-runtime";
|
|
|
5
5
|
import { Select, Stack, Box, Text, Card, Flex, Label } from "@sanity/ui";
|
|
6
6
|
import { lazy, useState, useEffect, startTransition, Suspense, createContext } from "react";
|
|
7
7
|
import { styled, css } from "styled-components";
|
|
8
|
+
import { memoize } from "lodash-es";
|
|
8
9
|
const CodeMirrorProxy = lazy(() => import("./CodeMirrorProxy.js"));
|
|
9
10
|
function useMounted() {
|
|
10
11
|
const $ = c(2), [mounted, setMounted] = useState(!1);
|
|
@@ -401,24 +402,58 @@ const codeTypeName = "code", codeSchema = defineType({
|
|
|
401
402
|
selection: value
|
|
402
403
|
})
|
|
403
404
|
}
|
|
404
|
-
}), CodeInputConfigContext = createContext(void 0),
|
|
405
|
-
const
|
|
405
|
+
}), CodeInputConfigContext = createContext(void 0), defaultLanguageModeLoader = memoize(async (mode, modes) => {
|
|
406
|
+
const codeMode = modes.find((m) => m.name === mode);
|
|
407
|
+
if (!codeMode?.loader) {
|
|
408
|
+
console.warn(`Found no codeMode for language mode ${mode}, syntax highlighting will be disabled.`);
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
return codeMode.loader();
|
|
412
|
+
}), CodeInputLanguageModeLoaderContext = createContext(defaultLanguageModeLoader), codeInput = definePlugin((config) => {
|
|
413
|
+
const codeModes = config?.codeModes, basePlugin = {
|
|
406
414
|
name: "@sanity/code-input",
|
|
407
415
|
schema: {
|
|
408
416
|
types: [codeSchema]
|
|
409
417
|
}
|
|
410
418
|
};
|
|
411
|
-
|
|
419
|
+
if (!codeModes)
|
|
420
|
+
return basePlugin;
|
|
421
|
+
const languageModeLoader = memoize(async ({
|
|
422
|
+
mode,
|
|
423
|
+
defaultCodeModes
|
|
424
|
+
}) => {
|
|
425
|
+
const codeMode = [...codeModes, ...defaultCodeModes].find((m) => m.name === mode);
|
|
426
|
+
if (!codeMode?.loader) {
|
|
427
|
+
console.warn(`Found no codeMode for language mode ${mode}, syntax highlighting will be disabled.`);
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
return codeMode.loader();
|
|
431
|
+
});
|
|
432
|
+
return {
|
|
412
433
|
...basePlugin,
|
|
413
434
|
form: {
|
|
414
435
|
components: {
|
|
415
|
-
input: (props) =>
|
|
436
|
+
input: (props) => /* @__PURE__ */ jsx(InputComponent, { ...props, config, languageModeLoader })
|
|
416
437
|
}
|
|
417
438
|
}
|
|
418
|
-
}
|
|
439
|
+
};
|
|
419
440
|
});
|
|
441
|
+
function InputComponent(props) {
|
|
442
|
+
const $ = c(10);
|
|
443
|
+
if (props.id !== "root") {
|
|
444
|
+
let t02;
|
|
445
|
+
return $[0] !== props ? (t02 = props.renderDefault(props), $[0] = props, $[1] = t02) : t02 = $[1], t02;
|
|
446
|
+
}
|
|
447
|
+
const t0 = props.config, t1 = props.languageModeLoader;
|
|
448
|
+
let t2;
|
|
449
|
+
$[2] !== props ? (t2 = props.renderDefault(props), $[2] = props, $[3] = t2) : t2 = $[3];
|
|
450
|
+
let t3;
|
|
451
|
+
$[4] !== props.languageModeLoader || $[5] !== t2 ? (t3 = /* @__PURE__ */ jsx(CodeInputLanguageModeLoaderContext.Provider, { value: t1, children: t2 }), $[4] = props.languageModeLoader, $[5] = t2, $[6] = t3) : t3 = $[6];
|
|
452
|
+
let t4;
|
|
453
|
+
return $[7] !== props.config || $[8] !== t3 ? (t4 = /* @__PURE__ */ jsx(CodeInputConfigContext.Provider, { value: t0, children: t3 }), $[7] = props.config, $[8] = t3, $[9] = t4) : t4 = $[9], t4;
|
|
454
|
+
}
|
|
420
455
|
export {
|
|
421
|
-
|
|
456
|
+
CodeInputLanguageModeLoaderContext,
|
|
422
457
|
PreviewCode,
|
|
423
458
|
codeInput,
|
|
424
459
|
codeSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/codemirror/useCodeMirror.tsx","../../src/config.ts","../../src/codemirror/useLanguageMode.tsx","../../src/LanguageInput.tsx","../../src/LanguageField.tsx","../../src/ui/focusRingStyle.ts","../../src/useFieldMember.ts","../../src/CodeInput.tsx","../../src/getMedia.tsx","../../src/PreviewCode.tsx","../../src/schema.tsx","../../src/codemirror/CodeModeContext.tsx","../../src/plugin.tsx"],"sourcesContent":["import {lazy, startTransition, useEffect, useState} from 'react'\n\nexport const CodeMirrorProxy = lazy(() => import('./CodeMirrorProxy'))\n\nexport function useMounted() {\n const [mounted, setMounted] = useState(false)\n useEffect(() => {\n requestAnimationFrame(() => startTransition(() => setMounted(true)))\n }, [])\n return mounted\n}\n","import type {CodeInputLanguage} from './types'\n\n// NOTE: MAKE SURE THESE ALIGN WITH CODE MODES IN ./codemirror/defaultCodeModes.ts\nexport const SUPPORTED_LANGUAGES: CodeInputLanguage[] = [\n {title: 'Batch file', value: 'batchfile'},\n {title: 'C#', value: 'csharp'},\n {title: 'CSS', value: 'css'},\n {title: 'Go', value: 'golang'},\n {title: 'GROQ', value: 'groq'},\n {title: 'HTML', value: 'html'},\n {title: 'Java', value: 'java'},\n {title: 'JavaScript', value: 'javascript'},\n {title: 'JSON', value: 'json'},\n {title: 'JSX', value: 'jsx'},\n {title: 'Markdown', value: 'markdown'},\n {title: 'MySQL', value: 'mysql'},\n {title: 'PHP', value: 'php'},\n {title: 'Plain text', value: 'text'},\n {title: 'Python', value: 'python'},\n {title: 'Ruby', value: 'ruby'},\n {title: 'SASS', value: 'sass'},\n {title: 'SCSS', value: 'scss'},\n {title: 'sh', value: 'sh'},\n {title: 'SQL', value: 'sql'},\n {title: 'TSX', value: 'tsx'},\n {title: 'TypeScript', value: 'typescript'},\n {title: 'XML', value: 'xml'},\n {title: 'YAML', value: 'yaml'},\n]\n\nexport const LANGUAGE_ALIASES: Record<string, string | undefined> = {js: 'javascript'}\n\nexport const PATH_LANGUAGE = ['language']\nexport const PATH_CODE = ['code']\nexport const PATH_FILENAME = ['filename']\n","import {useMemo} from 'react'\n\nimport type {CodeInputLanguage, CodeInputValue, CodeSchemaType} from '../types'\n\nimport {LANGUAGE_ALIASES, SUPPORTED_LANGUAGES} from '../config'\n\nexport const defaultLanguageMode = 'text'\n\nexport function useLanguageMode(\n schemaType: CodeSchemaType,\n value?: CodeInputValue,\n): {\n language: string\n languageMode: string\n languages: CodeInputLanguage[]\n} {\n const languages = useLanguageAlternatives(schemaType)\n const fixedLanguage = schemaType.options?.language\n const language = value?.language ?? fixedLanguage ?? defaultLanguageMode\n\n // the language config from the schema\n const configured = languages.find((entry) => entry.value === language)\n const languageMode = configured?.mode ?? resolveAliasedLanguage(language) ?? defaultLanguageMode\n\n return {language, languageMode, languages}\n}\n\nfunction resolveAliasedLanguage(lang?: string) {\n return (lang && LANGUAGE_ALIASES[lang]) ?? lang\n}\n\nfunction useLanguageAlternatives(type: CodeSchemaType) {\n return useMemo((): CodeInputLanguage[] => {\n const languageAlternatives = type.options?.languageAlternatives\n if (!languageAlternatives) {\n return SUPPORTED_LANGUAGES\n }\n\n if (!Array.isArray(languageAlternatives)) {\n throw new Error(\n `'options.languageAlternatives' should be an array, got ${typeof languageAlternatives}`,\n )\n }\n\n return languageAlternatives.reduce((acc: CodeInputLanguage[], {title, value: val, mode}) => {\n const alias = LANGUAGE_ALIASES[val]\n if (alias) {\n console.warn(\n `'options.languageAlternatives' lists a language with value \"%s\", which is an alias of \"%s\" - please replace the value to read \"%s\"`,\n val,\n alias,\n alias,\n )\n\n return acc.concat({title, value: alias, mode: mode})\n }\n return acc.concat({title, value: val, mode})\n }, [])\n }, [type])\n}\n","import {Select} from '@sanity/ui'\nimport {type ChangeEvent, useCallback} from 'react'\nimport {set, type StringInputProps, unset} from 'sanity'\n\nimport type {CodeInputLanguage} from './types'\n\nexport interface LanguageInputProps {\n language: string\n languages: CodeInputLanguage[]\n onChange: StringInputProps['onChange']\n elementProps: StringInputProps['elementProps']\n}\n\n/** @internal */\nexport function LanguageInput(props: LanguageInputProps) {\n const {language, languages, onChange, elementProps} = props\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n const newValue = e.currentTarget.value\n onChange(newValue ? set(newValue) : unset())\n },\n [onChange],\n )\n\n return (\n <Select {...elementProps} value={language} onChange={handleChange}>\n {languages.map((lang: {title: string; value: string}) => (\n <option key={lang.value} value={lang.value}>\n {lang.title}\n </option>\n ))}\n </Select>\n )\n}\n","import {useCallback} from 'react'\nimport {\n type FieldMember,\n type InputProps,\n MemberField,\n type MemberFieldProps,\n type PrimitiveInputElementProps,\n} from 'sanity'\n\nimport type {CodeInputLanguage} from './types'\n\nimport {LanguageInput} from './LanguageInput'\n\nexport function LanguageField(\n props: MemberFieldProps & {member: FieldMember; language: string; languages: CodeInputLanguage[]},\n) {\n const {member, languages, language, renderItem, renderField, renderPreview} = props\n\n const renderInput = useCallback(\n ({elementProps, onChange}: Omit<InputProps, 'renderDefault'>) => {\n return (\n <LanguageInput\n onChange={onChange}\n // oxlint-disable-next-line no-unsafe-type-assertion - fix later\n elementProps={elementProps as PrimitiveInputElementProps}\n language={language}\n languages={languages}\n />\n )\n },\n [languages, language],\n )\n\n return (\n <MemberField\n member={member}\n renderItem={renderItem}\n renderField={renderField}\n renderInput={renderInput}\n renderPreview={renderPreview}\n />\n )\n}\n","/** @internal */\n// todo: import from @sanity/ui instead\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\n/** @internal */\n// todo: import from @sanity/ui instead\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: {offset: number; width: number}\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import type {FieldMember, ObjectMember} from 'sanity'\n\nimport {useMemo} from 'react'\n\n/** @internal */\nexport function useFieldMember(\n members: ObjectMember[],\n fieldName: string,\n): FieldMember | undefined {\n return useMemo(\n () =>\n members.find(\n (member): member is FieldMember => member.kind === 'field' && member.name === fieldName,\n ),\n [members, fieldName],\n )\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\nimport {Suspense, useCallback} from 'react'\nimport {\n MemberField,\n type ObjectInputProps,\n type RenderInputCallback,\n set,\n setIfMissing,\n unset,\n} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport type {CodeInputValue, CodeSchemaType} from './types'\n\nimport {CodeMirrorProxy, useMounted} from './codemirror/useCodeMirror'\nimport {useLanguageMode} from './codemirror/useLanguageMode'\nimport {PATH_CODE} from './config'\nimport {LanguageField} from './LanguageField'\nimport {focusRingBorderStyle, focusRingStyle} from './ui/focusRingStyle'\nimport {useFieldMember} from './useFieldMember'\n\nexport type {CodeInputLanguage, CodeInputValue} from './types'\n\n/**\n * @public\n */\nexport interface CodeInputProps extends ObjectInputProps<CodeInputValue, CodeSchemaType> {}\n\nconst EditorContainer = styled(Card)(({theme}) => {\n const {focusRing, input} = theme.sanity\n const base = theme.sanity.color.base\n const color = theme.sanity.color.input\n const border = {\n color: color.default.enabled.border,\n width: input.border.width,\n }\n\n return css`\n --input-box-shadow: ${focusRingBorderStyle(border)};\n\n box-shadow: var(--input-box-shadow);\n height: 250px;\n min-height: 80px;\n overflow-y: auto;\n position: relative;\n resize: vertical;\n z-index: 0;\n\n & > .cm-theme {\n height: 100%;\n }\n\n &:focus-within {\n --input-box-shadow: ${focusRingStyle({\n base,\n border,\n focusRing,\n })};\n }\n `\n})\n\n/** @public */\nexport function CodeInput(props: CodeInputProps): React.JSX.Element {\n const {\n members,\n elementProps,\n onChange,\n readOnly,\n renderField,\n renderInput,\n renderItem,\n renderPreview,\n schemaType: type,\n value,\n onPathFocus,\n } = props\n\n const languageFieldMember = useFieldMember(members, 'language')\n const filenameMember = useFieldMember(members, 'filename')\n const codeFieldMember = useFieldMember(members, 'code')\n\n const handleCodeFocus = useCallback(() => {\n onPathFocus(PATH_CODE)\n }, [onPathFocus])\n\n const onHighlightChange = useCallback(\n (lines: number[]) => onChange(set(lines, ['highlightedLines'])),\n [onChange],\n )\n\n const handleCodeChange = useCallback(\n (code: string) => {\n const path = PATH_CODE\n const fixedLanguage = type.options?.language\n\n onChange([\n setIfMissing({_type: type.name, language: fixedLanguage}),\n code ? set(code, path) : unset(path),\n ])\n },\n [onChange, type],\n )\n const {languages, language, languageMode} = useLanguageMode(props.schemaType, props.value)\n\n const mounted = useMounted()\n\n const renderCodeInput: RenderInputCallback = useCallback(\n (inputProps) => {\n return (\n <EditorContainer border overflow=\"hidden\" radius={1} sizing=\"border\" readOnly={readOnly}>\n {mounted && (\n <Suspense\n fallback={\n <Box padding={3}>\n <Text>Loading code editor...</Text>\n </Box>\n }\n >\n <CodeMirrorProxy\n languageMode={languageMode}\n onChange={handleCodeChange}\n // oxlint-disable-next-line no-unsafe-type-assertion - fix later\n value={inputProps.value as string}\n highlightLines={value?.highlightedLines}\n onHighlightChange={onHighlightChange}\n readOnly={readOnly}\n onFocus={handleCodeFocus}\n onBlur={elementProps.onBlur}\n />\n </Suspense>\n )}\n </EditorContainer>\n )\n },\n [\n readOnly,\n mounted,\n languageMode,\n handleCodeChange,\n value?.highlightedLines,\n onHighlightChange,\n handleCodeFocus,\n elementProps.onBlur,\n ],\n )\n\n return (\n <Stack space={4}>\n {languageFieldMember && (\n <LanguageField\n member={languageFieldMember}\n language={language}\n languages={languages}\n renderField={renderField}\n renderItem={renderItem}\n renderInput={renderInput}\n renderPreview={renderPreview}\n />\n )}\n\n {type.options?.withFilename && filenameMember && (\n <MemberField\n member={filenameMember}\n renderItem={renderItem}\n renderField={renderField}\n renderInput={renderInput}\n renderPreview={renderPreview}\n />\n )}\n\n {codeFieldMember && (\n <MemberField\n member={codeFieldMember}\n renderInput={renderCodeInput}\n renderItem={renderItem}\n renderField={renderField}\n renderPreview={renderPreview}\n />\n )}\n </Stack>\n )\n}\n","export 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 type {PreviewProps} from 'sanity'\n\nimport {Box, Card, Flex, Label, Text} from '@sanity/ui'\nimport {Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport type {CodeInputValue, CodeSchemaType} from './types'\n\nimport {CodeMirrorProxy, useMounted} from './codemirror/useCodeMirror'\nimport {useLanguageMode} from './codemirror/useLanguageMode'\n\nconst PreviewContainer = styled(Box)`\n position: relative;\n`\n\n/**\n * @public\n */\nexport interface PreviewCodeProps extends PreviewProps {\n selection?: CodeInputValue\n}\n\n/**\n * @public\n */\nexport function PreviewCode(props: PreviewCodeProps): React.JSX.Element {\n const {selection, schemaType: type} = props\n // oxlint-disable-next-line no-unsafe-type-assertion - fix later\n const {languageMode} = useLanguageMode(type as CodeSchemaType, props.selection)\n\n const mounted = useMounted()\n return (\n <PreviewContainer>\n <Card padding={4}>\n {selection?.filename || selection?.language ? (\n <Card\n paddingBottom={4}\n marginBottom={selection.code ? 4 : 0}\n borderBottom={!!selection.code}\n >\n <Flex align=\"center\" justify=\"flex-end\">\n {selection?.filename ? (\n <Box flex={1}>\n <Text>\n <code>{selection.filename}</code>\n </Text>\n </Box>\n ) : null}\n {selection?.language ? <Label muted>{selection.language}</Label> : null}\n </Flex>\n </Card>\n ) : null}\n {mounted && (\n <Suspense fallback={<Card padding={2}>Loading code preview...</Card>}>\n <CodeMirrorProxy\n readOnly\n editable={false}\n value={selection?.code || ''}\n highlightLines={selection?.highlightedLines || []}\n basicSetup={{\n lineNumbers: false,\n foldGutter: false,\n highlightSelectionMatches: false,\n highlightActiveLineGutter: false,\n highlightActiveLine: false,\n }}\n languageMode={languageMode}\n />\n </Suspense>\n )}\n </Card>\n </PreviewContainer>\n )\n}\n","import {CodeBlockIcon} from '@sanity/icons'\nimport {defineType, type ObjectDefinition} from 'sanity'\n\nimport type {CodeOptions} from './types'\n\nimport {CodeInput} from './CodeInput'\nimport {getMedia} from './getMedia'\nimport {PreviewCode} from './PreviewCode'\n\n/**\n * @public\n */\nexport const codeTypeName = 'code'\n\n/**\n * @public\n */\nexport interface CodeDefinition extends Omit<ObjectDefinition, 'type' | 'fields' | 'options'> {\n type: typeof codeTypeName\n options?: CodeOptions\n}\n\ndeclare module 'sanity' {\n // makes type: 'code' narrow correctly when using defineType/defineField/defineArrayMember\n export interface IntrinsicDefinitions {\n code: CodeDefinition\n }\n}\n\n/**\n * @public\n */\nexport const codeSchema = defineType({\n name: 'code',\n type: 'object',\n title: 'Code',\n components: {input: CodeInput, preview: PreviewCode},\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 selection: value,\n }\n },\n },\n})\n","import {createContext} from 'react'\n\nimport type {CodeInputConfig} from '../plugin'\n\nexport const CodeInputConfigContext = createContext<CodeInputConfig | undefined>(undefined)\n","import {definePlugin, type Plugin} from 'sanity'\n\nimport type {CodeMode} from './codemirror/defaultCodeModes'\n\nimport {CodeInputConfigContext} from './codemirror/CodeModeContext'\nimport {codeSchema} from './schema'\n\nexport interface CodeInputConfig {\n codeModes?: CodeMode[]\n}\n\n/**\n * @public\n */\nexport const codeInput: Plugin<CodeInputConfig | void> = definePlugin<CodeInputConfig | void>(\n (config) => {\n const codeModes = config && config.codeModes\n const basePlugin = {\n name: '@sanity/code-input',\n schema: {types: [codeSchema]},\n }\n if (!codeModes) {\n return basePlugin\n }\n return {\n ...basePlugin,\n form: {\n components: {\n input: (props) => {\n if (props.id !== 'root') {\n return props.renderDefault(props)\n }\n return (\n <CodeInputConfigContext.Provider value={config}>\n {props.renderDefault(props)}\n </CodeInputConfigContext.Provider>\n )\n },\n },\n },\n }\n },\n)\n"],"names":["CodeMirrorProxy","lazy","useMounted","$","_c","mounted","setMounted","useState","t0","t1","Symbol","for","requestAnimationFrame","startTransition","useEffect","SUPPORTED_LANGUAGES","title","value","LANGUAGE_ALIASES","js","PATH_CODE","defaultLanguageMode","useLanguageMode","schemaType","languages","useLanguageAlternatives","fixedLanguage","options","language","entry","find","configured","mode","resolveAliasedLanguage","languageMode","t2","lang","type","bb0","languageAlternatives","Array","isArray","Error","reduce","_temp","acc","val","alias","console","warn","concat","LanguageInput","props","onChange","elementProps","e","newValue","currentTarget","set","unset","handleChange","map","LanguageField","member","renderItem","renderField","renderPreview","renderInput","focusRingBorderStyle","border","width","color","focusRingStyle","opts","base","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","useFieldMember","members","fieldName","kind","name","EditorContainer","styled","Card","withConfig","displayName","componentId","theme","input","sanity","default","enabled","css","CodeInput","readOnly","onPathFocus","languageFieldMember","filenameMember","codeFieldMember","handleCodeFocus","lines","onHighlightChange","code","setIfMissing","_type","handleCodeChange","t3","onBlur","highlightedLines","inputProps","renderCodeInput","t4","t5","withFilename","t6","t7","getMedia","marker","PreviewContainer","Box","PreviewCode","selection","filename","lineNumbers","foldGutter","highlightSelectionMatches","highlightActiveLineGutter","highlightActiveLine","codeTypeName","codeSchema","defineType","components","preview","icon","CodeBlockIcon","fields","of","select","prepare","toUpperCase","media","CodeInputConfigContext","createContext","undefined","codeInput","definePlugin","config","codeModes","basePlugin","schema","types","form","id","renderDefault"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/codemirror/useCodeMirror.tsx","../../src/config.ts","../../src/codemirror/useLanguageMode.tsx","../../src/LanguageInput.tsx","../../src/LanguageField.tsx","../../src/ui/focusRingStyle.ts","../../src/useFieldMember.ts","../../src/CodeInput.tsx","../../src/getMedia.tsx","../../src/PreviewCode.tsx","../../src/schema.tsx","../../src/codemirror/CodeModeContext.tsx","../../src/plugin.tsx"],"sourcesContent":["import {lazy, startTransition, useEffect, useState} from 'react'\n\nexport const CodeMirrorProxy = lazy(() => import('./CodeMirrorProxy'))\n\nexport function useMounted() {\n const [mounted, setMounted] = useState(false)\n useEffect(() => {\n requestAnimationFrame(() => startTransition(() => setMounted(true)))\n }, [])\n return mounted\n}\n","import type {CodeInputLanguage} from './types'\n\n// NOTE: MAKE SURE THESE ALIGN WITH CODE MODES IN ./codemirror/defaultCodeModes.ts\nexport const SUPPORTED_LANGUAGES: CodeInputLanguage[] = [\n {title: 'Batch file', value: 'batchfile'},\n {title: 'C#', value: 'csharp'},\n {title: 'CSS', value: 'css'},\n {title: 'Go', value: 'golang'},\n {title: 'GROQ', value: 'groq'},\n {title: 'HTML', value: 'html'},\n {title: 'Java', value: 'java'},\n {title: 'JavaScript', value: 'javascript'},\n {title: 'JSON', value: 'json'},\n {title: 'JSX', value: 'jsx'},\n {title: 'Markdown', value: 'markdown'},\n {title: 'MySQL', value: 'mysql'},\n {title: 'PHP', value: 'php'},\n {title: 'Plain text', value: 'text'},\n {title: 'Python', value: 'python'},\n {title: 'Ruby', value: 'ruby'},\n {title: 'SASS', value: 'sass'},\n {title: 'SCSS', value: 'scss'},\n {title: 'sh', value: 'sh'},\n {title: 'SQL', value: 'sql'},\n {title: 'TSX', value: 'tsx'},\n {title: 'TypeScript', value: 'typescript'},\n {title: 'XML', value: 'xml'},\n {title: 'YAML', value: 'yaml'},\n]\n\nexport const LANGUAGE_ALIASES: Record<string, string | undefined> = {js: 'javascript'}\n\nexport const PATH_LANGUAGE = ['language']\nexport const PATH_CODE = ['code']\nexport const PATH_FILENAME = ['filename']\n","import {useMemo} from 'react'\n\nimport type {CodeInputLanguage, CodeInputValue, CodeSchemaType} from '../types'\n\nimport {LANGUAGE_ALIASES, SUPPORTED_LANGUAGES} from '../config'\n\nexport const defaultLanguageMode = 'text'\n\nexport function useLanguageMode(\n schemaType: CodeSchemaType,\n value?: CodeInputValue,\n): {\n language: string\n languageMode: string\n languages: CodeInputLanguage[]\n} {\n const languages = useLanguageAlternatives(schemaType)\n const fixedLanguage = schemaType.options?.language\n const language = value?.language ?? fixedLanguage ?? defaultLanguageMode\n\n // the language config from the schema\n const configured = languages.find((entry) => entry.value === language)\n const languageMode = configured?.mode ?? resolveAliasedLanguage(language) ?? defaultLanguageMode\n\n return {language, languageMode, languages}\n}\n\nfunction resolveAliasedLanguage(lang?: string) {\n return (lang && LANGUAGE_ALIASES[lang]) ?? lang\n}\n\nfunction useLanguageAlternatives(type: CodeSchemaType) {\n return useMemo((): CodeInputLanguage[] => {\n const languageAlternatives = type.options?.languageAlternatives\n if (!languageAlternatives) {\n return SUPPORTED_LANGUAGES\n }\n\n if (!Array.isArray(languageAlternatives)) {\n throw new Error(\n `'options.languageAlternatives' should be an array, got ${typeof languageAlternatives}`,\n )\n }\n\n return languageAlternatives.reduce((acc: CodeInputLanguage[], {title, value: val, mode}) => {\n const alias = LANGUAGE_ALIASES[val]\n if (alias) {\n console.warn(\n `'options.languageAlternatives' lists a language with value \"%s\", which is an alias of \"%s\" - please replace the value to read \"%s\"`,\n val,\n alias,\n alias,\n )\n\n return acc.concat({title, value: alias, mode: mode})\n }\n return acc.concat({title, value: val, mode})\n }, [])\n }, [type])\n}\n","import {Select} from '@sanity/ui'\nimport {type ChangeEvent, useCallback} from 'react'\nimport {set, type StringInputProps, unset} from 'sanity'\n\nimport type {CodeInputLanguage} from './types'\n\nexport interface LanguageInputProps {\n language: string\n languages: CodeInputLanguage[]\n onChange: StringInputProps['onChange']\n elementProps: StringInputProps['elementProps']\n}\n\n/** @internal */\nexport function LanguageInput(props: LanguageInputProps) {\n const {language, languages, onChange, elementProps} = props\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n const newValue = e.currentTarget.value\n onChange(newValue ? set(newValue) : unset())\n },\n [onChange],\n )\n\n return (\n <Select {...elementProps} value={language} onChange={handleChange}>\n {languages.map((lang: {title: string; value: string}) => (\n <option key={lang.value} value={lang.value}>\n {lang.title}\n </option>\n ))}\n </Select>\n )\n}\n","import {useCallback} from 'react'\nimport {\n type FieldMember,\n type InputProps,\n MemberField,\n type MemberFieldProps,\n type PrimitiveInputElementProps,\n} from 'sanity'\n\nimport type {CodeInputLanguage} from './types'\n\nimport {LanguageInput} from './LanguageInput'\n\nexport function LanguageField(\n props: MemberFieldProps & {member: FieldMember; language: string; languages: CodeInputLanguage[]},\n) {\n const {member, languages, language, renderItem, renderField, renderPreview} = props\n\n const renderInput = useCallback(\n ({elementProps, onChange}: Omit<InputProps, 'renderDefault'>) => {\n return (\n <LanguageInput\n onChange={onChange}\n // oxlint-disable-next-line no-unsafe-type-assertion - fix later\n elementProps={elementProps as PrimitiveInputElementProps}\n language={language}\n languages={languages}\n />\n )\n },\n [languages, language],\n )\n\n return (\n <MemberField\n member={member}\n renderItem={renderItem}\n renderField={renderField}\n renderInput={renderInput}\n renderPreview={renderPreview}\n />\n )\n}\n","/** @internal */\n// todo: import from @sanity/ui instead\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\n/** @internal */\n// todo: import from @sanity/ui instead\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: {offset: number; width: number}\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import type {FieldMember, ObjectMember} from 'sanity'\n\nimport {useMemo} from 'react'\n\n/** @internal */\nexport function useFieldMember(\n members: ObjectMember[],\n fieldName: string,\n): FieldMember | undefined {\n return useMemo(\n () =>\n members.find(\n (member): member is FieldMember => member.kind === 'field' && member.name === fieldName,\n ),\n [members, fieldName],\n )\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\nimport {Suspense, useCallback} from 'react'\nimport {\n MemberField,\n type ObjectInputProps,\n type RenderInputCallback,\n set,\n setIfMissing,\n unset,\n} from 'sanity'\nimport {css, styled} from 'styled-components'\n\nimport type {CodeInputValue, CodeSchemaType} from './types'\n\nimport {CodeMirrorProxy, useMounted} from './codemirror/useCodeMirror'\nimport {useLanguageMode} from './codemirror/useLanguageMode'\nimport {PATH_CODE} from './config'\nimport {LanguageField} from './LanguageField'\nimport {focusRingBorderStyle, focusRingStyle} from './ui/focusRingStyle'\nimport {useFieldMember} from './useFieldMember'\n\nexport type {CodeInputLanguage, CodeInputValue} from './types'\n\n/**\n * @public\n */\nexport interface CodeInputProps extends ObjectInputProps<CodeInputValue, CodeSchemaType> {}\n\nconst EditorContainer = styled(Card)(({theme}) => {\n const {focusRing, input} = theme.sanity\n const base = theme.sanity.color.base\n const color = theme.sanity.color.input\n const border = {\n color: color.default.enabled.border,\n width: input.border.width,\n }\n\n return css`\n --input-box-shadow: ${focusRingBorderStyle(border)};\n\n box-shadow: var(--input-box-shadow);\n height: 250px;\n min-height: 80px;\n overflow-y: auto;\n position: relative;\n resize: vertical;\n z-index: 0;\n\n & > .cm-theme {\n height: 100%;\n }\n\n &:focus-within {\n --input-box-shadow: ${focusRingStyle({\n base,\n border,\n focusRing,\n })};\n }\n `\n})\n\n/** @public */\nexport function CodeInput(props: CodeInputProps): React.JSX.Element {\n const {\n members,\n elementProps,\n onChange,\n readOnly,\n renderField,\n renderInput,\n renderItem,\n renderPreview,\n schemaType: type,\n value,\n onPathFocus,\n } = props\n\n const languageFieldMember = useFieldMember(members, 'language')\n const filenameMember = useFieldMember(members, 'filename')\n const codeFieldMember = useFieldMember(members, 'code')\n\n const handleCodeFocus = useCallback(() => {\n onPathFocus(PATH_CODE)\n }, [onPathFocus])\n\n const onHighlightChange = useCallback(\n (lines: number[]) => onChange(set(lines, ['highlightedLines'])),\n [onChange],\n )\n\n const handleCodeChange = useCallback(\n (code: string) => {\n const path = PATH_CODE\n const fixedLanguage = type.options?.language\n\n onChange([\n setIfMissing({_type: type.name, language: fixedLanguage}),\n code ? set(code, path) : unset(path),\n ])\n },\n [onChange, type],\n )\n const {languages, language, languageMode} = useLanguageMode(props.schemaType, props.value)\n\n const mounted = useMounted()\n\n const renderCodeInput: RenderInputCallback = useCallback(\n (inputProps) => {\n return (\n <EditorContainer border overflow=\"hidden\" radius={1} sizing=\"border\" readOnly={readOnly}>\n {mounted && (\n <Suspense\n fallback={\n <Box padding={3}>\n <Text>Loading code editor...</Text>\n </Box>\n }\n >\n <CodeMirrorProxy\n languageMode={languageMode}\n onChange={handleCodeChange}\n // oxlint-disable-next-line no-unsafe-type-assertion - fix later\n value={inputProps.value as string}\n highlightLines={value?.highlightedLines}\n onHighlightChange={onHighlightChange}\n readOnly={readOnly}\n onFocus={handleCodeFocus}\n onBlur={elementProps.onBlur}\n />\n </Suspense>\n )}\n </EditorContainer>\n )\n },\n [\n readOnly,\n mounted,\n languageMode,\n handleCodeChange,\n value?.highlightedLines,\n onHighlightChange,\n handleCodeFocus,\n elementProps.onBlur,\n ],\n )\n\n return (\n <Stack space={4}>\n {languageFieldMember && (\n <LanguageField\n member={languageFieldMember}\n language={language}\n languages={languages}\n renderField={renderField}\n renderItem={renderItem}\n renderInput={renderInput}\n renderPreview={renderPreview}\n />\n )}\n\n {type.options?.withFilename && filenameMember && (\n <MemberField\n member={filenameMember}\n renderItem={renderItem}\n renderField={renderField}\n renderInput={renderInput}\n renderPreview={renderPreview}\n />\n )}\n\n {codeFieldMember && (\n <MemberField\n member={codeFieldMember}\n renderInput={renderCodeInput}\n renderItem={renderItem}\n renderField={renderField}\n renderPreview={renderPreview}\n />\n )}\n </Stack>\n )\n}\n","export 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 type {PreviewProps} from 'sanity'\n\nimport {Box, Card, Flex, Label, Text} from '@sanity/ui'\nimport {Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport type {CodeInputValue, CodeSchemaType} from './types'\n\nimport {CodeMirrorProxy, useMounted} from './codemirror/useCodeMirror'\nimport {useLanguageMode} from './codemirror/useLanguageMode'\n\nconst PreviewContainer = styled(Box)`\n position: relative;\n`\n\n/**\n * @public\n */\nexport interface PreviewCodeProps extends PreviewProps {\n selection?: CodeInputValue\n}\n\n/**\n * @public\n */\nexport function PreviewCode(props: PreviewCodeProps): React.JSX.Element {\n const {selection, schemaType: type} = props\n // oxlint-disable-next-line no-unsafe-type-assertion - fix later\n const {languageMode} = useLanguageMode(type as CodeSchemaType, props.selection)\n\n const mounted = useMounted()\n return (\n <PreviewContainer>\n <Card padding={4}>\n {selection?.filename || selection?.language ? (\n <Card\n paddingBottom={4}\n marginBottom={selection.code ? 4 : 0}\n borderBottom={!!selection.code}\n >\n <Flex align=\"center\" justify=\"flex-end\">\n {selection?.filename ? (\n <Box flex={1}>\n <Text>\n <code>{selection.filename}</code>\n </Text>\n </Box>\n ) : null}\n {selection?.language ? <Label muted>{selection.language}</Label> : null}\n </Flex>\n </Card>\n ) : null}\n {mounted && (\n <Suspense fallback={<Card padding={2}>Loading code preview...</Card>}>\n <CodeMirrorProxy\n readOnly\n editable={false}\n value={selection?.code || ''}\n highlightLines={selection?.highlightedLines || []}\n basicSetup={{\n lineNumbers: false,\n foldGutter: false,\n highlightSelectionMatches: false,\n highlightActiveLineGutter: false,\n highlightActiveLine: false,\n }}\n languageMode={languageMode}\n />\n </Suspense>\n )}\n </Card>\n </PreviewContainer>\n )\n}\n","import {CodeBlockIcon} from '@sanity/icons'\nimport {defineType, type ObjectDefinition} from 'sanity'\n\nimport type {CodeOptions} from './types'\n\nimport {CodeInput} from './CodeInput'\nimport {getMedia} from './getMedia'\nimport {PreviewCode} from './PreviewCode'\n\n/**\n * @public\n */\nexport const codeTypeName = 'code'\n\n/**\n * @public\n */\nexport interface CodeDefinition extends Omit<ObjectDefinition, 'type' | 'fields' | 'options'> {\n type: typeof codeTypeName\n options?: CodeOptions\n}\n\ndeclare module 'sanity' {\n // makes type: 'code' narrow correctly when using defineType/defineField/defineArrayMember\n export interface IntrinsicDefinitions {\n code: CodeDefinition\n }\n}\n\n/**\n * @public\n */\nexport const codeSchema = defineType({\n name: 'code',\n type: 'object',\n title: 'Code',\n components: {input: CodeInput, preview: PreviewCode},\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 selection: value,\n }\n },\n },\n})\n","import type {Extension} from '@codemirror/state'\n\nimport {memoize} from 'lodash-es'\nimport {createContext} from 'react'\n\nimport type {CodeInputConfig} from '../plugin'\nimport type {CodeMode} from './defaultCodeModes'\n\nexport const CodeInputConfigContext = createContext<CodeInputConfig | undefined>(undefined)\n\nconst defaultLanguageModeLoader = memoize(async (mode: string, modes: CodeMode[]) => {\n const codeMode = modes.find((m) => m.name === mode)\n if (!codeMode?.loader) {\n console.warn(\n `Found no codeMode for language mode ${mode}, syntax highlighting will be disabled.`,\n )\n return undefined\n }\n return codeMode.loader()\n})\nexport const CodeInputLanguageModeLoaderContext =\n createContext<(mode: string, defaultCodeModes: CodeMode[]) => Promise<Extension | undefined>>(\n defaultLanguageModeLoader,\n )\n","import type {InputProps} from 'sanity'\n\nimport {memoize} from 'lodash-es'\nimport {definePlugin, type Plugin} from 'sanity'\n\nimport type {CodeMode} from './codemirror/defaultCodeModes'\n\nimport {\n CodeInputConfigContext,\n CodeInputLanguageModeLoaderContext,\n} from './codemirror/CodeModeContext'\nimport {codeSchema} from './schema'\n\nexport interface CodeInputConfig {\n codeModes?: CodeMode[]\n}\n\n/**\n * @public\n */\nexport const codeInput: Plugin<CodeInputConfig | void> = definePlugin<CodeInputConfig | void>(\n (config) => {\n const codeModes = config?.codeModes\n\n const basePlugin = {\n name: '@sanity/code-input',\n schema: {types: [codeSchema]},\n }\n if (!codeModes) {\n return basePlugin\n }\n\n const languageModeLoader = memoize(\n async ({mode, defaultCodeModes}: {mode: string; defaultCodeModes: CodeMode[]}) => {\n const modes = [...codeModes, ...defaultCodeModes]\n\n const codeMode = modes.find((m) => m.name === mode)\n if (!codeMode?.loader) {\n console.warn(\n `Found no codeMode for language mode ${mode}, syntax highlighting will be disabled.`,\n )\n return undefined\n }\n return codeMode.loader()\n },\n )\n return {\n ...basePlugin,\n form: {\n components: {\n input: (props) => (\n <InputComponent {...props} config={config} languageModeLoader={languageModeLoader} />\n ),\n },\n },\n }\n },\n)\n\nfunction InputComponent(props: InputProps & {config: CodeInputConfig; languageModeLoader: any}) {\n if (props.id !== 'root') {\n return props.renderDefault(props)\n }\n return (\n <CodeInputConfigContext.Provider value={props.config}>\n <CodeInputLanguageModeLoaderContext.Provider value={props.languageModeLoader}>\n {props.renderDefault(props)}\n </CodeInputLanguageModeLoaderContext.Provider>\n </CodeInputConfigContext.Provider>\n )\n}\n"],"names":["CodeMirrorProxy","lazy","useMounted","$","_c","mounted","setMounted","useState","t0","t1","Symbol","for","requestAnimationFrame","startTransition","useEffect","SUPPORTED_LANGUAGES","title","value","LANGUAGE_ALIASES","js","PATH_CODE","defaultLanguageMode","useLanguageMode","schemaType","languages","useLanguageAlternatives","fixedLanguage","options","language","entry","find","configured","mode","resolveAliasedLanguage","languageMode","t2","lang","type","bb0","languageAlternatives","Array","isArray","Error","reduce","_temp","acc","val","alias","console","warn","concat","LanguageInput","props","onChange","elementProps","e","newValue","currentTarget","set","unset","handleChange","map","LanguageField","member","renderItem","renderField","renderPreview","renderInput","focusRingBorderStyle","border","width","color","focusRingStyle","opts","base","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","useFieldMember","members","fieldName","kind","name","EditorContainer","styled","Card","withConfig","displayName","componentId","theme","input","sanity","default","enabled","css","CodeInput","readOnly","onPathFocus","languageFieldMember","filenameMember","codeFieldMember","handleCodeFocus","lines","onHighlightChange","code","setIfMissing","_type","handleCodeChange","t3","onBlur","highlightedLines","inputProps","renderCodeInput","t4","t5","withFilename","t6","t7","getMedia","marker","PreviewContainer","Box","PreviewCode","selection","filename","lineNumbers","foldGutter","highlightSelectionMatches","highlightActiveLineGutter","highlightActiveLine","codeTypeName","codeSchema","defineType","components","preview","icon","CodeBlockIcon","fields","of","select","prepare","toUpperCase","media","CodeInputConfigContext","createContext","undefined","defaultLanguageModeLoader","memoize","modes","codeMode","m","loader","CodeInputLanguageModeLoaderContext","codeInput","definePlugin","config","codeModes","basePlugin","schema","types","languageModeLoader","defaultCodeModes","form","InputComponent","id","renderDefault"],"mappings":";;;;;;;;AAEO,MAAMA,kBAAkBC,KAAK,MAAM,OAAO,sBAAmB,CAAC;AAE9D,SAAAC,aAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACL,CAAAC,SAAAC,UAAA,IAA8BC,SAAS,EAAK;AAAC,MAAAC,IAAAC;AAAA,SAAAN,EAAA,CAAA,MAAAO,uBAAAC,IAAA,2BAAA,KACnCH,KAAAA,MAAA;AACRI,0BAAsB,MAAMC,gBAAgB,MAAMP,WAAW,EAAI,CAAC,CAAC;AAAA,EAAC,GACnEG,KAAA,CAAA,GAAEN,OAAAK,IAAAL,OAAAM,OAAAD,KAAAL,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,IAFLW,UAAUN,IAEPC,EAAE,GACEJ;AAAO;ACNT,MAAMU,sBAA2C,CACtD;AAAA,EAACC,OAAO;AAAA,EAAcC,OAAO;AAAW,GACxC;AAAA,EAACD,OAAO;AAAA,EAAMC,OAAO;AAAQ,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAOC,OAAO;AAAK,GAC3B;AAAA,EAACD,OAAO;AAAA,EAAMC,OAAO;AAAQ,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAcC,OAAO;AAAY,GACzC;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAOC,OAAO;AAAK,GAC3B;AAAA,EAACD,OAAO;AAAA,EAAYC,OAAO;AAAU,GACrC;AAAA,EAACD,OAAO;AAAA,EAASC,OAAO;AAAO,GAC/B;AAAA,EAACD,OAAO;AAAA,EAAOC,OAAO;AAAK,GAC3B;AAAA,EAACD,OAAO;AAAA,EAAcC,OAAO;AAAM,GACnC;AAAA,EAACD,OAAO;AAAA,EAAUC,OAAO;AAAQ,GACjC;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,GAC7B;AAAA,EAACD,OAAO;AAAA,EAAMC,OAAO;AAAI,GACzB;AAAA,EAACD,OAAO;AAAA,EAAOC,OAAO;AAAK,GAC3B;AAAA,EAACD,OAAO;AAAA,EAAOC,OAAO;AAAK,GAC3B;AAAA,EAACD,OAAO;AAAA,EAAcC,OAAO;AAAY,GACzC;AAAA,EAACD,OAAO;AAAA,EAAOC,OAAO;AAAK,GAC3B;AAAA,EAACD,OAAO;AAAA,EAAQC,OAAO;AAAM,CAAC,GAGnBC,mBAAuD;AAAA,EAACC,IAAI;AAAY,GAGxEC,YAAY,CAAC,MAAM,GC3BnBC,sBAAsB;AAE5B,SAAAC,gBAAAC,YAAAN,OAAA;AAAA,QAAAd,IAAAC,EAAA,EAAA,GAQLoB,YAAkBC,wBAAwBF,UAAU,GACpDG,gBAAsBH,WAAUI,SAAkBC,UAClDA,WAAiBX,OAAKW,YAALF,iBAAAL;AAAuD,MAAAb;AAAA,MAAAL,EAAA,CAAA,MAAAyB,YAAAzB,SAAAqB,WAAA;AAAA,QAAAf;AAAAN,aAAAyB,YAGtCnB,MAAAoB,WAAWA,MAAKZ,UAAWW,UAAQzB,OAAAyB,UAAAzB,OAAAM,OAAAA,MAAAN,EAAA,CAAA,GAAlDK,KAAAgB,UAASM,KAAMrB,GAAmC,GAACN,OAAAyB,UAAAzB,OAAAqB,WAAArB,OAAAK;AAAAA,EAAA;AAAAA,SAAAL,EAAA,CAAA;AAAtE,QAAA4B,aAAmBvB;AAAmD,MAAAC;AAAAN,WAAA4B,YAAAC,QAAA7B,SAAAyB,YACjDnB,KAAAsB,YAAUC,QAAUC,uBAAuBL,QAAQ,KAAnDP,qBAA2ElB,EAAA,CAAA,IAAA4B,YAAAC,MAAA7B,OAAAyB,UAAAzB,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAhG,QAAA+B,eAAqBzB;AAA2E,MAAA0B;AAAA,SAAAhC,EAAA,CAAA,MAAAyB,YAAAzB,SAAA+B,gBAAA/B,EAAA,EAAA,MAAAqB,aAEzFW,KAAA;AAAA,IAAAP;AAAAA,IAAAM;AAAAA,IAAAV;AAAAA,EAAAA,GAAmCrB,OAAAyB,UAAAzB,OAAA+B,cAAA/B,QAAAqB,WAAArB,QAAAgC,MAAAA,KAAAhC,EAAA,EAAA,GAAnCgC;AAAmC;AAG5C,SAASF,uBAAuBG,MAAe;AAC7C,UAAQA,QAAQlB,iBAAiBkB,IAAI,MAAMA;AAC7C;AAEA,SAAAX,wBAAAY,MAAA;AAAA,QAAAlC,IAAAC,EAAA,CAAA;AAAA,MAAAI;AAAA8B,OAAA;AAEI,UAAAC,uBAA6BF,KAAIV,SAA8BY;AAC/D,QAAI,CAACA,sBAAoB;AACvB/B,WAAOO;AAAP,YAAAuB;AAAAA,IAA0B;AAG5B,QAAI,CAACE,MAAKC,QAASF,oBAAoB;AACrC,YAAM,IAAIG,MACR,0DAA0D,OAAOH,oBAAoB,EACvF;AACD,QAAA9B;AAAAN,aAAAoC,wBAEM9B,KAAA8B,qBAAoBI,OAAQC,SAahC,CAAA,CAAE,GAACzC,OAAAoC,sBAAApC,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GAbNK,KAAOC;AAAAA,EAaD;AAAA,SAzBDD;AA0BG;AA3BZ,SAAAoC,QAAAC,KAAArC,IAAA;AAakE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC,OAAA6B;AAAAA,IAAAd;AAAAA,EAAAA,IAAAxB,IAC5DuC,QAAc7B,iBAAiB4B,GAAG;AAClC,SAAIC,SACFC,QAAOC,KACL,sIACAH,KACAC,OACAA,KACF,GAEOF,IAAGK,OAAQ;AAAA,IAAAlC;AAAAA,IAAAC,OAAe8B;AAAAA,IAAKf;AAAAA,EAAAA,CAAa,KAE9Ca,IAAGK,OAAQ;AAAA,IAAAlC;AAAAA,IAAAC,OAAe6B;AAAAA,IAAGd;AAAAA,EAAAA,CAAO;AAAC;AC1C3C,SAAAmB,cAAAC,OAAA;AAAA,QAAAjD,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAwB;AAAAA,IAAAJ;AAAAA,IAAA6B;AAAAA,IAAAC;AAAAA,EAAAA,IAAsDF;AAAK,MAAA5C;AAAAL,WAAAkD,YAGzD7C,KAAA+C,CAAAA,MAAA;AACE,UAAAC,WAAiBD,EAACE,cAAcxC;AAChCoC,aAASG,WAAWE,IAAIF,QAAkB,IAANG,OAAO;AAAA,EAAC,GAC7CxD,OAAAkD,UAAAlD,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAJH,QAAAyD,eAAqBpD;AAMpB,MAAAC;AAAAN,WAAAqB,aAIIf,KAAAe,UAASqC,IAAKjB,KAId,GAACzC,OAAAqB,WAAArB,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAA,MAAAgC;AAAA,SAAAhC,EAAA,CAAA,MAAAmD,gBAAAnD,EAAA,CAAA,MAAAyD,gBAAAzD,EAAA,CAAA,MAAAyB,YAAAzB,SAAAM,MALJ0B,KAAA,oBAAC,UAAM,GAAKmB,cAAqB1B,iBAAoBgC,UAAAA,cAClDnD,cAKH,GAASN,OAAAmD,cAAAnD,OAAAyD,cAAAzD,OAAAyB,UAAAzB,OAAAM,IAAAN,OAAAgC,MAAAA,KAAAhC,EAAA,CAAA,GANTgC;AAMS;AAlBN,SAAAS,MAAAR,MAAA;AAAA,SAcC,oBAAA,YAAgC,OAAAA,KAAInB,OACjCmB,UAAAA,KAAIpB,SADMoB,KAAInB,KAEjB;AAAS;ACjBV,SAAA6C,cAAAV,OAAA;AAAA,QAAAjD,IAAAC,EAAA,CAAA,GAGL;AAAA,IAAA2D;AAAAA,IAAAvC;AAAAA,IAAAI;AAAAA,IAAAoC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA8Ed;AAAK,MAAA5C;AAAAL,IAAA,CAAA,MAAAyB,YAAAzB,SAAAqB,aAGjFhB,KAAAC,CAAAA,QAAA;AAAC,UAAA;AAAA,MAAA6C;AAAAA,MAAAD;AAAAA,IAAAA,IAAA5C;AAA2D,WAExD,oBAAC,eAAA,EACW4C,UAEI,cACJzB,UACCJ,WAAS;AAAA,EACpB,GAELrB,OAAAyB,UAAAzB,OAAAqB,WAAArB,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAXH,QAAAgE,cAAoB3D;AAanB,MAAAC;AAAA,SAAAN,EAAA,CAAA,MAAA4D,UAAA5D,EAAA,CAAA,MAAA8D,eAAA9D,EAAA,CAAA,MAAAgE,eAAAhE,EAAA,CAAA,MAAA6D,cAAA7D,SAAA+D,iBAGCzD,KAAA,oBAAC,aAAA,EACSsD,QACIC,YACCC,aACAE,aACED,eAAa,GAC5B/D,OAAA4D,QAAA5D,OAAA8D,aAAA9D,OAAAgE,aAAAhE,OAAA6D,YAAA7D,OAAA+D,eAAA/D,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GANFM;AAME;ACtCC,SAAS2D,qBAAqBC,QAAgD;AACnF,SAAO,eAAeA,OAAOC,KAAK,MAAMD,OAAOE,KAAK;AACtD;AAIO,SAASC,eAAeC,MAIpB;AACT,QAAM;AAAA,IAACC;AAAAA,IAAML;AAAAA,IAAQM;AAAAA,EAAAA,IAAaF,MAC5BG,uBAAuBD,UAAUE,SAASF,UAAUL,OACpDQ,sBAAsB,IAAIH,UAAUE,QACpCE,UAAUL,OAAOA,KAAKM,KAAK;AAEjC,SAAO,CACLF,sBAAsB,KAAK,eAAeA,mBAAmB,mCAC7DT,UAAUD,qBAAqBC,MAAM,GACrCS,sBAAsB,KAAK,SAAS,IAAIA,mBAAmB,MAAMC,OAAO,IACxEH,uBAAuB,KAAK,SAASA,oBAAoB,iCAAiC,EAEzFK,OAAOC,OAAO,EACdC,KAAK,GAAG;AACb;ACrBO,SAAAC,eAAAC,SAAAC,WAAA;AAAA,QAAAnF,IAAAC,EAAA,CAAA;AAAA,MAAAI;AAAA,MAAAL,EAAA,CAAA,MAAAmF,aAAAnF,SAAAkF,SAAA;AAAA,QAAA5E;AAAAN,aAAAmF,aAOC7E,KAAAsD,YAAmCA,OAAMwB,SAAU,WAAWxB,OAAMyB,SAAUF,WAASnF,OAAAmF,WAAAnF,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GADzFK,KAAA6E,QAAOvD,KACLrB,EACF,GAACN,OAAAmF,WAAAnF,OAAAkF,SAAAlF,OAAAK;AAAAA,EAAA;AAAAA,SAAAL,EAAA,CAAA;AAAA,SAFDK;AAEC;ACeP,MAAMiF,kBAAkBC,uBAAOC,IAAI,EAACC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EAAC,CAAC;AAAA,EAACC;AAAK,MAAM;AAChD,QAAM;AAAA,IAACpB;AAAAA,IAAWqB;AAAAA,EAAAA,IAASD,MAAME,QAC3BvB,OAAOqB,MAAME,OAAO1B,MAAMG,MAE1BL,SAAS;AAAA,IACbE,OAFYwB,MAAME,OAAO1B,MAAMyB,MAElBE,QAAQC,QAAQ9B;AAAAA,IAC7BC,OAAO0B,MAAM3B,OAAOC;AAAAA,EAAAA;AAGtB,SAAO8B;AAAAA,0BACiBhC,qBAAqBC,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAe1BG,eAAe;AAAA,IACnCE;AAAAA,IACAL;AAAAA,IACAM;AAAAA,EAAAA,CACD,CAAC;AAAA;AAAA;AAGR,CAAC;AAGM,SAAA0B,UAAAjD,OAAA;AAAA,QAAAjD,IAAAC,EAAA,EAAA,GACL;AAAA,IAAAiF;AAAAA,IAAA/B;AAAAA,IAAAD;AAAAA,IAAAiD;AAAAA,IAAArC;AAAAA,IAAAE;AAAAA,IAAAH;AAAAA,IAAAE;AAAAA,IAAA3C,YAAAc;AAAAA,IAAApB;AAAAA,IAAAsF;AAAAA,EAAAA,IAYInD,OAEJoD,sBAA4BpB,eAAeC,SAAS,UAAU,GAC9DoB,iBAAuBrB,eAAeC,SAAS,UAAU,GACzDqB,kBAAwBtB,eAAeC,SAAS,MAAM;AAAC,MAAA7E;AAAAL,WAAAoG,eAEnB/F,KAAAA,MAAA;AAClC+F,gBAAYnF,SAAS;AAAA,EAAC,GACvBjB,OAAAoG,aAAApG,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAFD,QAAAwG,kBAAwBnG;AAEP,MAAAC;AAAAN,WAAAkD,YAGf5C,KAAAmG,WAAqBvD,SAASK,IAAIkD,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAACzG,OAAAkD,UAAAlD,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AADjE,QAAA0G,oBAA0BpG;AAGzB,MAAA0B;AAAAhC,IAAA,CAAA,MAAAkD,YAAAlD,SAAAkC,KAAAmD,QAAArF,EAAA,CAAA,MAAAkC,KAAAV,SAAAC,YAGCO,KAAA2E,CAAAA,SAAA;AAEE,UAAApF,gBAAsBW,KAAIV,SAAkBC;AAE5CyB,aAAS,CACP0D,aAAa;AAAA,MAAAC,OAAQ3E,KAAImD;AAAAA,MAAK5D,UAAYF;AAAAA,IAAAA,CAAc,GACxDoF,OAAOpD,IAAIoD,MALA1F,SAKwB,IAAVuC,MALdvC,SAKwB,CAAC,CACrC;AAAA,EAAC,GACHjB,OAAAkD,UAAAlD,EAAA,CAAA,IAAAkC,KAAAmD,MAAArF,EAAA,CAAA,IAAAkC,KAAAV,SAAAC,UAAAzB,OAAAgC,MAAAA,KAAAhC,EAAA,CAAA;AATH,QAAA8G,mBAAyB9E,IAYzB;AAAA,IAAAX;AAAAA,IAAAI;AAAAA,IAAAM;AAAAA,EAAAA,IAA4CZ,gBAAgB8B,MAAK7B,YAAa6B,MAAKnC,KAAM,GAEzFZ,UAAgBH,WAAAA;AAAY,MAAAgH;AAAA/G,IAAA,CAAA,MAAAmD,aAAA6D,UAAAhH,EAAA,CAAA,MAAA8G,oBAAA9G,EAAA,EAAA,MAAAwG,mBAAAxG,EAAA,EAAA,MAAA+B,gBAAA/B,EAAA,EAAA,MAAAE,WAAAF,UAAA0G,qBAAA1G,EAAA,EAAA,MAAAmG,YAAAnG,EAAA,EAAA,MAAAc,OAAAmG,oBAG1BF,KAAAG,CAAAA,eAEI,oBAAC,iBAAA,EAAgB,QAAA,IAAgB,UAAA,UAAiB,QAAA,GAAU,QAAA,UAAmBf,UAC5EjG,UAAAA,WACC,oBAAC,UAAA,EAEG,UAAA,oBAAC,KAAA,EAAa,YACZ,UAAA,oBAAC,MAAA,EAAK,UAAA,yBAAA,CAAsB,GAC9B,GAGF,UAAA,oBAAC,iBAAA,EACe6B,cACJ+E,UAAAA,kBAEH,OAAAI,WAAUpG,OACD,gBAAAA,OAAKmG,kBACFP,mBACTP,UACDK,SAAAA,iBACD,QAAArD,aAAY6D,OAAAA,CAAO,EAAA,CAE/B,EAAA,CAEJ,GAEHhH,EAAA,CAAA,IAAAmD,aAAA6D,QAAAhH,OAAA8G,kBAAA9G,QAAAwG,iBAAAxG,QAAA+B,cAAA/B,QAAAE,SAAAF,QAAA0G,mBAAA1G,QAAAmG,UAAAnG,EAAA,EAAA,IAAAc,OAAAmG,kBAAAjH,QAAA+G,MAAAA,KAAA/G,EAAA,EAAA;AA3BH,QAAAmH,kBAA6CJ;AAsC5C,MAAAK;AAAApH,IAAA,EAAA,MAAAyB,YAAAzB,EAAA,EAAA,MAAAqG,uBAAArG,EAAA,EAAA,MAAAqB,aAAArB,UAAA8D,eAAA9D,EAAA,EAAA,MAAAgE,eAAAhE,EAAA,EAAA,MAAA6D,cAAA7D,EAAA,EAAA,MAAA+D,iBAIIqD,KAAAf,uBACC,oBAAC,eAAA,EACSA,QAAAA,qBACE5E,UACCJ,WACEyC,aACDD,YACCG,aACED,eAAa,GAE/B/D,QAAAyB,UAAAzB,QAAAqG,qBAAArG,QAAAqB,WAAArB,QAAA8D,aAAA9D,QAAAgE,aAAAhE,QAAA6D,YAAA7D,QAAA+D,eAAA/D,QAAAoH,MAAAA,KAAApH,EAAA,EAAA;AAAA,MAAAqH;AAAArH,IAAA,EAAA,MAAAsG,kBAAAtG,EAAA,EAAA,MAAA8D,eAAA9D,EAAA,EAAA,MAAAgE,eAAAhE,UAAA6D,cAAA7D,EAAA,EAAA,MAAA+D,iBAAA/D,EAAA,EAAA,MAAAkC,KAAAV,SAAA8F,gBAEAD,KAAAnF,KAAIV,SAAsB8F,gBAA1BhB,kBACC,oBAAC,aAAA,EACSA,QAAAA,gBACIzC,YACCC,aACAE,aACED,cAAAA,CAAa,GAE/B/D,QAAAsG,gBAAAtG,QAAA8D,aAAA9D,QAAAgE,aAAAhE,QAAA6D,YAAA7D,QAAA+D,eAAA/D,EAAA,EAAA,IAAAkC,KAAAV,SAAA8F,cAAAtH,QAAAqH,MAAAA,KAAArH,EAAA,EAAA;AAAA,MAAAuH;AAAAvH,IAAA,EAAA,MAAAuG,mBAAAvG,EAAA,EAAA,MAAAmH,mBAAAnH,EAAA,EAAA,MAAA8D,eAAA9D,EAAA,EAAA,MAAA6D,cAAA7D,UAAA+D,iBAEAwD,KAAAhB,mBACC,oBAAC,aAAA,EACSA,QAAAA,iBACKY,aAAAA,iBACDtD,YACCC,aACEC,cAAAA,CAAa,GAE/B/D,QAAAuG,iBAAAvG,QAAAmH,iBAAAnH,QAAA8D,aAAA9D,QAAA6D,YAAA7D,QAAA+D,eAAA/D,QAAAuH,MAAAA,KAAAvH,EAAA,EAAA;AAAA,MAAAwH;AAAA,SAAAxH,EAAA,EAAA,MAAAoH,MAAApH,UAAAqH,MAAArH,EAAA,EAAA,MAAAuH,MA/BHC,0BAAC,OAAA,EAAa,OAAA,GACXJ,UAAAA;AAAAA,IAAAA;AAAAA,IAYAC;AAAAA,IAUAE;AAAAA,EAAAA,GASH,GAAQvH,QAAAoH,IAAApH,QAAAqH,IAAArH,QAAAuH,IAAAvH,QAAAwH,MAAAA,KAAAxH,EAAA,EAAA,GAhCRwH;AAgCQ;ACpLL,SAASC,SAAShG,UAAmB;AAC1C,MAAIA,aAAa;AACf,WACE,oBAAC,SAAI,OAAM,8BAA6B,SAAQ,eAC9C,UAAA,qBAAC,KAAA,EAAE,MAAK,WACN,UAAA;AAAA,MAAA,oBAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,QAAM;AAAA,MAChC,oBAAC,QAAA,EAAK,GAAE,8sEAAA,CAA6sE;AAAA,IAAA,EAAA,CACvtE,EAAA,CACF;AAIJ,MAAIA,aAAa;AACf,WACE,qBAAC,OAAA,EAAI,OAAM,8BAA6B,SAAQ,eAC9C,UAAA;AAAA,MAAA,oBAAC,QAAA,EAAK,MAAK,WAAU,GAAE,uCAAqC;AAAA,MAC5D,oBAAC,QAAA,EACC,MAAK,WACL,GAAE,89BAAA,CAA69B;AAAA,IAAA,GAEn+B;AAIJ,MAAIA,aAAa;AACf,WACE,oBAAC,OAAA,EAAI,OAAM,8BAA6B,SAAQ,eAC9C,UAAA,oBAAC,KAAA,EAAE,WAAU,8BACX,UAAA,qBAAC,KAAA,EAAE,WAAU,6CACX,UAAA;AAAA,MAAA,oBAAC,QAAA,EAAK,GAAE,+mBAAA,CAA8mB;AAAA,MACtnB,oBAAC,QAAA,EAAK,GAAE,wRAAA,CAAuR;AAAA,MAC/R,oBAAC,QAAA,EAAK,GAAE,+mBAAA,CAA8mB;AAAA,IAAA,EAAA,CACxnB,GACF,GACF;AAIJ,MAAIA,aAAa;AACf,gCACG,OAAA,EACC,OAAM,8BACN,YAAW,gCACX,SAAQ,eAER,UAAA;AAAA,MAAA,qBAAC,QAAA,EACC,UAAA;AAAA,QAAA,qBAAC,kBAAA,EAAe,IAAG,KACjB,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,QAAO,IAAA,CAAG;AAAA,UAChB,oBAAC,QAAA,EAAK,QAAO,KAAI,WAAU,OAAA,CAAM;AAAA,QAAA,GACnC;AAAA,4BACC,kBAAA,EACC,IAAG,WACH,IAAG,WACH,IAAG,YACH,IAAG,WACH,IAAG,KACH,WAAU,MACV,eAAc,kBACd,mBAAkB,6CAA2C;AAAA,4BAE9D,kBAAA,EACC,IAAG,YACH,IAAG,WACH,IAAG,WACH,IAAG,WACH,IAAG,KACH,WAAU,MACV,eAAc,kBACd,mBAAkB,4CAAA,CAA2C;AAAA,MAAA,GAEjE;AAAA,MACA,oBAAC,QAAA,EACC,GAAE,gTACF,OAAO;AAAA,QAACiG,QAAQ;AAAA,MAAA,GAChB,OAAM,QACN,MAAK,WACL,UAAS,WACT,UAAS,WAAS;AAAA,MAEpB,oBAAC,QAAA,EACC,GAAE,4SACF,OAAO;AAAA,QAACA,QAAQ;AAAA,MAAA,GAChB,OAAM,QACN,MAAK,WACL,UAAS,WACT,UAAS,UAAA,CAAS;AAAA,IAAA,GAEtB;AAKN;ACjFA,MAAMC,mBAAmBpC,OAAOqC,GAAG,EAACnC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA;AAc7B,SAAAkC,YAAA5E,OAAA;AAAA,QAAAjD,IAAAC,EAAA,EAAA,GACL;AAAA,IAAA6H;AAAAA,IAAA1G,YAAAc;AAAAA,EAAAA,IAAsCe,OAEtC;AAAA,IAAAlB;AAAAA,EAAAA,IAAuBZ,gBAAgBe,MAAwBe,MAAK6E,SAAU,GAE9E5H,UAAgBH,WAAAA;AAAY,MAAAM;AAAAL,WAAA8H,aAIrBzH,KAAAyH,WAASC,YAAcD,WAASrG,WAC/B,oBAAC,MAAA,EACgB,eAAA,GACD,cAAAqG,UAASnB,OAAT,IAAA,GACA,cAAA,CAAC,CAACmB,UAASnB,MAEzB,UAAA,qBAAC,MAAA,EAAW,OAAA,UAAiB,SAAA,YAC1BmB,UAAAA;AAAAA,IAAAA,WAASC,WACR,oBAAC,KAAA,EAAU,MAAA,GACT,UAAA,oBAAC,MAAA,EACC,UAAA,8BAAOD,UAAAA,UAASC,UAAU,EAAA,CAC5B,GACF,IALD;AAAA,IAOAD,WAASrG,WAAa,oBAAC,OAAA,EAAM,OAAA,IAAOqG,UAAAA,UAASrG,UAAU,IAAvD;AAAA,EAAA,EAAA,CACH,EAAA,CACF,IAhBD,MAiBOzB,OAAA8H,WAAA9H,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAA,MAAAM;AAAAN,IAAA,CAAA,MAAA+B,gBAAA/B,EAAA,CAAA,MAAAE,WAAAF,EAAA,CAAA,MAAA8H,WAAAnB,QAAA3G,EAAA,CAAA,MAAA8H,WAAAb,oBACP3G,KAAAJ,WACC,oBAAC,UAAA,EAAmB,UAAA,oBAAC,MAAA,EAAc,SAAA,GAAG,UAAA,0BAAA,CAAuB,GAC3D,UAAA,oBAAC,iBAAA,EACC,UAAA,IACU,UAAA,IACH,OAAA4H,WAASnB,QAAT,IACS,gBAAAmB,WAASb,oBAAT,CAAA,GACJ,YAAA;AAAA,IAAAe,aACG;AAAA,IAAKC,YACN;AAAA,IAAKC,2BACU;AAAA,IAAKC,2BACL;AAAA,IAAKC,qBACX;AAAA,EAAA,GAETrG,aAAAA,CAAY,GAE9B,GACD/B,OAAA+B,cAAA/B,OAAAE,SAAAF,EAAA,CAAA,IAAA8H,WAAAnB,MAAA3G,EAAA,CAAA,IAAA8H,WAAAb,kBAAAjH,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAA,MAAAgC;AAAA,SAAAhC,EAAA,CAAA,MAAAK,MAAAL,SAAAM,MArCL0B,KAAA,oBAAC,kBAAA,EACC,UAAA,qBAAC,MAAA,EAAc,SAAA,GACZ3B,UAAAA;AAAAA,IAAAA;AAAAA,IAkBAC;AAAAA,EAAAA,EAAAA,CAkBH,GACF,GAAmBN,OAAAK,IAAAL,OAAAM,IAAAN,OAAAgC,MAAAA,KAAAhC,EAAA,CAAA,GAvCnBgC;AAuCmB;AC3DhB,MAAMqG,eAAe,QAoBfC,aAAaC,WAAW;AAAA,EACnClD,MAAM;AAAA,EACNnD,MAAM;AAAA,EACNrB,OAAO;AAAA,EACP2H,YAAY;AAAA,IAAC3C,OAAOK;AAAAA,IAAWuC,SAASZ;AAAAA,EAAAA;AAAAA,EACxCa,MAAMC;AAAAA,EACNC,QAAQ,CACN;AAAA,IACEvD,MAAM;AAAA,IACNxE,OAAO;AAAA,IACPqB,MAAM;AAAA,EAAA,GAER;AAAA,IACEmD,MAAM;AAAA,IACNxE,OAAO;AAAA,IACPqB,MAAM;AAAA,EAAA,GAER;AAAA,IACErB,OAAO;AAAA,IACPwE,MAAM;AAAA,IACNnD,MAAM;AAAA,EAAA,GAER;AAAA,IACErB,OAAO;AAAA,IACPwE,MAAM;AAAA,IACNnD,MAAM;AAAA,IACN2G,IAAI,CACF;AAAA,MACE3G,MAAM;AAAA,MACNrB,OAAO;AAAA,IAAA,CACR;AAAA,EAAA,CAEJ;AAAA,EAEH4H,SAAS;AAAA,IACPK,QAAQ;AAAA,MACNrH,UAAU;AAAA,MACVkF,MAAM;AAAA,MACNoB,UAAU;AAAA,MACVd,kBAAkB;AAAA,IAAA;AAAA,IAEpB8B,SAAUjI,CAAAA,WAMD;AAAA,MACLD,OAAOC,MAAMiH,aAAajH,MAAMW,YAAY,WAAWuH,YAAAA;AAAAA,MACvDC,OAAOxB,SAAS3G,OAAOW,QAAQ;AAAA,MAC/BqG,WAAWhH;AAAAA,IAAAA;AAAAA,EACb;AAGN,CAAC,GC9EYoI,yBAAyBC,cAA2CC,MAAS,GAEpFC,4BAA4BC,QAAQ,OAAOzH,MAAc0H,UAAsB;AACnF,QAAMC,WAAWD,MAAM5H,KAAM8H,CAAAA,MAAMA,EAAEpE,SAASxD,IAAI;AAClD,MAAI,CAAC2H,UAAUE,QAAQ;AACrB7G,YAAQC,KACN,uCAAuCjB,IAAI,yCAC7C;AACA;AAAA,EACF;AACA,SAAO2H,SAASE,OAAAA;AAClB,CAAC,GACYC,qCACXR,cACEE,yBACF,GCHWO,YAA4CC,aACtDC,CAAAA,WAAW;AACV,QAAMC,YAAYD,QAAQC,WAEpBC,aAAa;AAAA,IACjB3E,MAAM;AAAA,IACN4E,QAAQ;AAAA,MAACC,OAAO,CAAC5B,UAAU;AAAA,IAAA;AAAA,EAAC;AAE9B,MAAI,CAACyB;AACH,WAAOC;AAGT,QAAMG,qBAAqBb,QACzB,OAAO;AAAA,IAACzH;AAAAA,IAAMuI;AAAAA,EAAAA,MAAoE;AAGhF,UAAMZ,WAFQ,CAAC,GAAGO,WAAW,GAAGK,gBAAgB,EAEzBzI,KAAM8H,CAAAA,MAAMA,EAAEpE,SAASxD,IAAI;AAClD,QAAI,CAAC2H,UAAUE,QAAQ;AACrB7G,cAAQC,KACN,uCAAuCjB,IAAI,yCAC7C;AACA;AAAA,IACF;AACA,WAAO2H,SAASE,OAAAA;AAAAA,EAClB,CACF;AACA,SAAO;AAAA,IACL,GAAGM;AAAAA,IACHK,MAAM;AAAA,MACJ7B,YAAY;AAAA,QACV3C,OAAQ5C,CAAAA,UACN,oBAAC,kBAAe,GAAIA,OAAO,QAAgB,mBAAA,CAAuC;AAAA,MAAA;AAAA,IAEtF;AAAA,EACF;AAEJ,CACF;AAEA,SAAAqH,eAAArH,OAAA;AAAA,QAAAjD,IAAAC,EAAA,EAAA;AACE,MAAIgD,MAAKsH,OAAQ,QAAM;AAAA,QAAAlK;AAAA,WAAAL,SAAAiD,SACd5C,MAAA4C,MAAKuH,cAAevH,KAAK,GAACjD,OAAAiD,OAAAjD,OAAAK,OAAAA,MAAAL,EAAA,CAAA,GAA1BK;AAAAA,EAA0B;AAGO,QAAAA,KAAA4C,MAAK6G,QACSxJ,KAAA2C,MAAKkH;AAAmB,MAAAnI;AAAAhC,WAAAiD,SACzEjB,KAAAiB,MAAKuH,cAAevH,KAAK,GAACjD,OAAAiD,OAAAjD,OAAAgC,MAAAA,KAAAhC,EAAA,CAAA;AAAA,MAAA+G;AAAA/G,WAAAiD,MAAAkH,sBAAAnK,SAAAgC,MAD7B+E,KAAA,oBAAA,mCAAA,UAAA,EAAoD,OAAAzG,IACjD0B,UAAAA,GAAAA,CACH,GAA8ChC,EAAA,CAAA,IAAAiD,MAAAkH,oBAAAnK,OAAAgC,IAAAhC,OAAA+G,MAAAA,KAAA/G,EAAA,CAAA;AAAA,MAAAoH;AAAA,SAAApH,SAAAiD,MAAA6G,UAAA9J,SAAA+G,MAHhDK,KAAA,oBAAA,uBAAA,UAAA,EAAwC,OAAA/G,IACtC0G,UAAAA,GAAAA,CAGF,GAAkC/G,EAAA,CAAA,IAAAiD,MAAA6G,QAAA9J,OAAA+G,IAAA/G,OAAAoH,MAAAA,KAAApH,EAAA,CAAA,GAJlCoH;AAIkC;"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/schema.tsx","../src/CodeInput.tsx","../src/PreviewCode.tsx","../src/codemirror/defaultCodeModes.ts","../src/plugin.tsx"],"sourcesContent":[],"mappings":";;;UAEiB,iBAAA;;;EAAA,IAAA,CAAA,EAAA,MAAA;AASjB;AAUA;AAWA;;AACY,UAtBK,cAAA,CAsBL;EAD4B,KAAA,CAAA,EAAA,MAAA;EAAI,IAAA,CAAA,EAAA,MAAA;;ECpB/B,QAAA,CAAA,EAAA,MAAY;EAKR,gBAAA,CAAe,EAAA,MAAA,EAAA;;;;;AAAY,UDI3B,WAAA,CCJ2B;EAG3C,KAAA,CAAA,EAAA,MAAA;EAAA,SAAA,CAAA,EAAA,MAAA;sBAKuB,CAAA,EDDC,iBCCD,EAAA;EAAA,QAAA,CAAA,EAAA,MAAA;EAAA,YAAA,CAAA,EAAA,OAAA;AAOxB;;;;UDAiB,cAAA,SAAuB,KAAK;YACjC;;;;AA/BZ;AASiB,cCCJ,YAAA,GDDkB,MAAA;AAU/B;AAWA;;AACY,UChBK,cAAA,SAAuB,IDgB5B,CChBiC,gBDgBjC,EAAA,MAAA,GAAA,QAAA,GAAA,SAAA,CAAA,CAAA;EAD4B,IAAA,EAAA,OCdzB,YDcyB;EAAI,OAAA,CAAA,ECbhC,WDagC;;ACpB5C,eAAa,QAAY,CAAA;EAKR,UAAA,oBAAe,CAAA;IAAa,IAAA,EAQnC,cARmC;EAC9B;;;;AAEd;AAAA,cAYY,UAZZ,EAAA;MAKS,EAAA,QAAA;EAAc,IAAA,EAAA,MAAA;CAAA,OAAA,iBAAA,EAAA,SAAA,CAAA,GAAA;EAOX,OAAA,CAAA,uBAsDX,CAAA;;;;;;;;ADpFF;AASA;AAUiB,UEKA,cAAA,SAAuB,gBFFE,CEEe,cFFf,EEE+B,cFF/B,CAAA,CAAA,CAQ1C;;AACY,iBE8BI,SAAA,CF9BJ,KAAA,EE8BqB,cF9BrB,CAAA,EE8BsC,KAAA,CAAM,GAAA,CAAI,OF9BhD;;;AA/BZ;AASiB,UGOA,gBAAA,SAAyB,YHPX,CAAA;EAUd,SAAA,CAAA,EGFH,cHKW;AAQzB;;;;AAA4C,iBGP5B,WAAA,CHO4B,KAAA,EGPT,gBHOS,CAAA,EGPU,KAAA,CAAM,GAAA,CAAI,OHOpB;UI5B3B,QAAA;;UAEP;AJJV;AASiB,KIHL,UAAA,GJGmB,GAAA,GIHA,OJGA,CIHQ,SJGR,GAAA,SAAA,CAAA,GIHiC,SJGjC,GAAA,SAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/schema.tsx","../src/CodeInput.tsx","../src/PreviewCode.tsx","../src/codemirror/defaultCodeModes.ts","../src/plugin.tsx"],"sourcesContent":[],"mappings":";;;UAEiB,iBAAA;;;EAAA,IAAA,CAAA,EAAA,MAAA;AASjB;AAUA;AAWA;;AACY,UAtBK,cAAA,CAsBL;EAD4B,KAAA,CAAA,EAAA,MAAA;EAAI,IAAA,CAAA,EAAA,MAAA;;ECpB/B,QAAA,CAAA,EAAA,MAAY;EAKR,gBAAA,CAAe,EAAA,MAAA,EAAA;;;;;AAAY,UDI3B,WAAA,CCJ2B;EAG3C,KAAA,CAAA,EAAA,MAAA;EAAA,SAAA,CAAA,EAAA,MAAA;sBAKuB,CAAA,EDDC,iBCCD,EAAA;EAAA,QAAA,CAAA,EAAA,MAAA;EAAA,YAAA,CAAA,EAAA,OAAA;AAOxB;;;;UDAiB,cAAA,SAAuB,KAAK;YACjC;;;;AA/BZ;AASiB,cCCJ,YAAA,GDDkB,MAAA;AAU/B;AAWA;;AACY,UChBK,cAAA,SAAuB,IDgB5B,CChBiC,gBDgBjC,EAAA,MAAA,GAAA,QAAA,GAAA,SAAA,CAAA,CAAA;EAD4B,IAAA,EAAA,OCdzB,YDcyB;EAAI,OAAA,CAAA,ECbhC,WDagC;;ACpB5C,eAAa,QAAY,CAAA;EAKR,UAAA,oBAAe,CAAA;IAAa,IAAA,EAQnC,cARmC;EAC9B;;;;AAEd;AAAA,cAYY,UAZZ,EAAA;MAKS,EAAA,QAAA;EAAc,IAAA,EAAA,MAAA;CAAA,OAAA,iBAAA,EAAA,SAAA,CAAA,GAAA;EAOX,OAAA,CAAA,uBAsDX,CAAA;;;;;;;;ADpFF;AASA;AAUiB,UEKA,cAAA,SAAuB,gBFFE,CEEe,cFFf,EEE+B,cFF/B,CAAA,CAAA,CAQ1C;;AACY,iBE8BI,SAAA,CF9BJ,KAAA,EE8BqB,cF9BrB,CAAA,EE8BsC,KAAA,CAAM,GAAA,CAAI,OF9BhD;;;AA/BZ;AASiB,UGOA,gBAAA,SAAyB,YHPX,CAAA;EAUd,SAAA,CAAA,EGFH,cHKW;AAQzB;;;;AAA4C,iBGP5B,WAAA,CHO4B,KAAA,EGPT,gBHOS,CAAA,EGPU,KAAA,CAAM,GAAA,CAAI,OHOpB;UI5B3B,QAAA;;UAEP;AJJV;AASiB,KIHL,UAAA,GJGmB,GAAA,GIHA,OJGA,CIHQ,SJGR,GAAA,SAAA,CAAA,GIHiC,SJGjC,GAAA,SAAA;UKEd,eAAA;cACH;ALZd;AASA;AAUA;AAWA;AAA6C,cKZhC,SLYgC,EKZrB,MLYqB,CKZd,eLYc,GAAA,IAAA,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/code-input",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.5-canary.0",
|
|
4
4
|
"description": "Sanity input component for code, powered by CodeMirror",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms",
|
|
@@ -47,23 +47,25 @@
|
|
|
47
47
|
"@codemirror/legacy-modes": "^6.5.2",
|
|
48
48
|
"@codemirror/search": "^6.5.11",
|
|
49
49
|
"@codemirror/state": "^6.5.3",
|
|
50
|
-
"@codemirror/view": "^6.39.
|
|
50
|
+
"@codemirror/view": "^6.39.9",
|
|
51
51
|
"@juggle/resize-observer": "^3.4.0",
|
|
52
52
|
"@lezer/highlight": "^1.2.3",
|
|
53
53
|
"@sanity/icons": "^3.7.4",
|
|
54
54
|
"@sanity/ui": "^3.1.11",
|
|
55
55
|
"@uiw/codemirror-themes": "^4.25.4",
|
|
56
|
-
"@uiw/react-codemirror": "^4.25.4"
|
|
56
|
+
"@uiw/react-codemirror": "^4.25.4",
|
|
57
|
+
"lodash-es": "^4.17.22"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@sanity/pkg-utils": "^10.
|
|
60
|
-
"@types/
|
|
60
|
+
"@sanity/pkg-utils": "^10.3.0",
|
|
61
|
+
"@types/lodash-es": "^4.17.12",
|
|
62
|
+
"@types/react": "^19.2.8",
|
|
61
63
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
62
64
|
"babel-plugin-styled-components": "^2.1.4",
|
|
63
65
|
"eslint": "^9.39.2",
|
|
64
66
|
"react": "^19.2.3",
|
|
65
|
-
"sanity": "^5.
|
|
66
|
-
"styled-components": "^6.
|
|
67
|
+
"sanity": "^5.2.0",
|
|
68
|
+
"styled-components": "^6.2.0",
|
|
67
69
|
"@repo/eslint-config": "0.0.0",
|
|
68
70
|
"@repo/package.config": "0.0.0",
|
|
69
71
|
"@repo/tsconfig": "0.0.0"
|