diff --git a/codeiumeditor.d.ts b/codeiumeditor.d.ts new file mode 100644 index 0000000..4c95b9a --- /dev/null +++ b/codeiumeditor.d.ts @@ -0,0 +1 @@ +declare module "@codeium/react-code-editor/dist/esm"; diff --git a/components/ui/code-editor.tsx b/components/ui/code-editor.tsx index 2ee2059..da8cf59 100644 --- a/components/ui/code-editor.tsx +++ b/components/ui/code-editor.tsx @@ -1,27 +1,17 @@ -/* eslint-disable react/display-name */ -import ReactCodeMirror, { - EditorView, - ReactCodeMirrorRef, - keymap, -} from "@uiw/react-codemirror"; -import { javascript } from "@codemirror/lang-javascript"; -import { css } from "@codemirror/lang-css"; -import { html } from "@codemirror/lang-html"; -import { json } from "@codemirror/lang-json"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { tokyoNight } from "@uiw/codemirror-theme-tokyo-night"; -import { vscodeKeymap } from "@replit/codemirror-vscode-keymap"; +import { CodeiumEditor } from "@codeium/react-code-editor/dist/esm"; import prettier from "prettier/standalone"; import prettierHtmlPlugin from "prettier/plugins/html"; import prettierCssPlugin from "prettier/plugins/postcss"; import prettierBabelPlugin from "prettier/plugins/babel"; import * as prettierPluginEstree from "prettier/plugins/estree"; -import { abbreviationTracker } from "@emmetio/codemirror6-plugin"; import { useDebounce } from "~/hooks/useDebounce"; import useCommandKey from "~/hooks/useCommandKey"; +import { getFileExt } from "~/lib/utils"; type Props = { - lang?: string; + filename?: string; + path?: string; value: string; wordWrap?: boolean; onChange: (val: string) => void; @@ -29,114 +19,155 @@ type Props = { }; const CodeEditor = (props: Props) => { - const codeMirror = useRef(null); - const { lang, value, formatOnSave, wordWrap, onChange } = props; + const { filename, path, value, formatOnSave, wordWrap, onChange } = props; + const editorRef = useRef(null); const [data, setData] = useState(value); const [debounceChange, resetDebounceChange] = useDebounce(onChange, 3000); - const langMetadata = useMemo(() => getLangMetadata(lang || "plain"), [lang]); + const language = useMemo(() => getLanguage(filename), [filename]); const onSave = useCallback(async () => { + const editor = editorRef.current; + if (!editor) { + return; + } + + const model = editor.getModel(); + const content = model.getValue(); + + const formatter = language.formatter; + if (!formatOnSave || !formatter) { + return onChange(content); + } + try { - const cm = codeMirror.current?.view; - const content = cm ? cm.state.doc.toString() : data; - const formatter = langMetadata.formatter; + const [parser, ...plugins] = formatter; - if (formatOnSave && cm && formatter != null) { - const [parser, ...plugins] = formatter; - const cursor = cm.state.selection.main.head || 0; - const { formatted, cursorOffset } = await prettier.formatWithCursor( - content, - { - parser, - plugins, - cursorOffset: cursor, - printWidth: 64, - } - ); - - setData(formatted); - onChange(formatted); - - if (cm) { - cm.dispatch({ - changes: { from: 0, to: cm?.state.doc.length, insert: formatted }, - }); - cm.dispatch({ - selection: { anchor: cursorOffset }, - }); + const cursor = model.getOffsetAt(editor.getPosition()); + const { formatted, cursorOffset } = await prettier.formatWithCursor( + content, + { + parser, + plugins, + cursorOffset: cursor || 0, + printWidth: 64, } - } else { - onChange(content); - } + ); + + model.setValue(formatted); + const newCursor = model.getPositionAt(cursorOffset); + editor.setPosition(newCursor); + console.log("huhu set cursor"); + + onChange(formatted); } catch (err) { console.log("prettier error", err); + onChange(content); } setTimeout(() => resetDebounceChange(), 100); - }, [ - data, - langMetadata.formatter, - formatOnSave, - onChange, - resetDebounceChange, - ]); - - useCommandKey("s", onSave); + }, [language.formatter, formatOnSave, onChange, resetDebounceChange]); useEffect(() => { setData(value); }, [value]); - const extensions = [...langMetadata.extensions, keymap.of(vscodeKeymap)]; - if (wordWrap) { - extensions.push(EditorView.lineWrapping); - } + useCommandKey("s", onSave); return ( - { - setData(val); - debounceChange(val); - }} - height="100%" - theme={tokyoNight} - /> +
+ { + editorRef.current = editor; + }} + onChange={(e: string) => debounceChange(e)} + /> +
); }; -function getLangMetadata(lang: string) { - let extensions: any[] = []; +// generate this as enum of languages +enum Languages { + Abap = "abap", + Apex = "apex", + Azcli = "azcli", + Bat = "bat", + C = "c", + Clojure = "clojure", + Coffeescript = "coffeescript", + Cpp = "cpp", + Csharp = "csharp", + Csp = "csp", + Css = "css", + Dockerfile = "dockerfile", + Fsharp = "fsharp", + Go = "go", + Graphql = "graphql", + Handlebars = "handlebars", + Html = "html", + Ini = "ini", + Java = "java", + Javascript = "javascript", + Json = "json", + Less = "less", + Lua = "lua", + Markdown = "markdown", + M3 = "m3", + Msdax = "msdax", + Mysql = "mysql", + Objective = "objective", + Pgsql = "pgsql", + Php = "php", + Postiats = "postiats", + Powershell = "powershell", + Pug = "pug", + Python = "python", + R = "r", + Razor = "razor", + Redis = "redis", + Redshift = "redshift", + Ruby = "ruby", + Sb = "sb", + Scss = "scss", + Shell = "shell", + Solidity = "solidity", + Sql = "sql", + Swift = "swift", + Typescript = "typescript", + Vb = "vb", + Xml = "xml", + Yaml = "yaml", + Common = "common", +} + +function getLanguage(filename?: string | null) { + const ext = getFileExt(filename || ""); + let name: Languages = Languages.Common; let formatter: any = null; - switch (lang) { + switch (ext) { case "html": - extensions = [html({ selfClosingTags: true }), abbreviationTracker()]; + name = Languages.Html; formatter = ["html", prettierHtmlPlugin]; break; case "css": - extensions = [css()]; + name = Languages.Css; formatter = ["css", prettierCssPlugin]; break; case "json": - extensions = [json()]; + name = Languages.Json; formatter = ["json", prettierBabelPlugin, prettierPluginEstree]; break; case "jsx": case "js": case "ts": case "tsx": - const isTypescript = ["tsx", "ts"].includes(lang); - extensions = [ - javascript({ - jsx: ["jsx", "tsx"].includes(lang), - typescript: isTypescript, - }), - ]; + const isTypescript = ["tsx", "ts"].includes(ext); + name = isTypescript ? Languages.Typescript : Languages.Javascript; formatter = [ isTypescript ? "babel-ts" : "babel", prettierBabelPlugin, @@ -145,7 +176,7 @@ function getLangMetadata(lang: string) { break; } - return { extensions, formatter }; + return { name, formatter }; } export default CodeEditor; diff --git a/package.json b/package.json index 64b5322..7833b80 100644 --- a/package.json +++ b/package.json @@ -41,25 +41,18 @@ "vite": "^5.1.4" }, "dependencies": { - "@codemirror/lang-css": "^6.2.1", - "@codemirror/lang-html": "^6.4.8", - "@codemirror/lang-javascript": "^6.2.1", - "@codemirror/lang-json": "^6.0.1", - "@emmetio/codemirror6-plugin": "^0.3.0", + "@codeium/react-code-editor": "^1.0.12", "@faker-js/faker": "^8.4.1", "@hookform/resolvers": "^3.3.4", "@paralleldrive/cuid2": "^2.2.2", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-slot": "^1.0.2", - "@replit/codemirror-vscode-keymap": "^6.0.2", "@swc/core": "^1.4.2", "@tanstack/react-query": "^5.21.7", "@trpc/client": "11.0.0-next-beta.289", "@trpc/react-query": "11.0.0-next-beta.289", "@trpc/server": "11.0.0-next-beta.289", - "@uiw/codemirror-theme-tokyo-night": "^4.21.22", - "@uiw/react-codemirror": "^4.21.22", "ansi-to-react": "^6.1.6", "bcrypt": "^5.1.1", "better-sqlite3": "^9.4.1", diff --git a/pages/project/@slug/components/file-viewer.tsx b/pages/project/@slug/components/file-viewer.tsx index 4b32f68..ffd3d0f 100644 --- a/pages/project/@slug/components/file-viewer.tsx +++ b/pages/project/@slug/components/file-viewer.tsx @@ -1,4 +1,3 @@ -import { getFileExt } from "~/lib/utils"; import trpc from "~/lib/trpc"; import { useData } from "~/renderer/hooks"; import { Data } from "../+data"; @@ -6,7 +5,8 @@ import Spinner from "~/components/ui/spinner"; import { previewStore } from "../stores/web-preview"; import { useProjectContext } from "../context/project"; import { Suspense, lazy } from "react"; -const CodeEditor = lazy(() => import("~/components/ui/code-editor")); +import CodeEditor from "~/components/ui/code-editor"; +// const CodeEditor = lazy(() => import("~/components/ui/code-editor")); type Props = { id: number; @@ -44,21 +44,20 @@ const FileViewer = ({ id }: Props) => { const { filename } = data; if (!data.isFile) { - const ext = getFileExt(filename); - return ( }> + onChange={(val) => { updateFileContent.mutate({ projectId: project.id, id, content: val, - }) - } + }); + }} /> ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f4cb02..e3f88c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,21 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: - '@codemirror/lang-css': - specifier: ^6.2.1 - version: 6.2.1(@codemirror/view@6.24.1) - '@codemirror/lang-html': - specifier: ^6.4.8 - version: 6.4.8 - '@codemirror/lang-javascript': - specifier: ^6.2.1 - version: 6.2.2 - '@codemirror/lang-json': - specifier: ^6.0.1 - version: 6.0.1 - '@emmetio/codemirror6-plugin': - specifier: ^0.3.0 - version: 0.3.0(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/highlight@0.19.8)(@codemirror/history@0.19.2)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.8)(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) + '@codeium/react-code-editor': + specifier: ^1.0.12 + version: 1.0.12(monaco-editor@0.45.0)(react-dom@18.2.0)(react@18.2.0) '@faker-js/faker': specifier: ^8.4.1 version: 8.4.1 @@ -38,9 +26,6 @@ dependencies: '@radix-ui/react-slot': specifier: ^1.0.2 version: 1.0.2(@types/react@18.2.57)(react@18.2.0) - '@replit/codemirror-vscode-keymap': - specifier: ^6.0.2 - version: 6.0.2(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1) '@swc/core': specifier: ^1.4.2 version: 1.4.2 @@ -56,12 +41,6 @@ dependencies: '@trpc/server': specifier: 11.0.0-next-beta.289 version: 11.0.0-next-beta.289 - '@uiw/codemirror-theme-tokyo-night': - specifier: ^4.21.22 - version: 4.21.22(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1) - '@uiw/react-codemirror': - specifier: ^4.21.22 - version: 4.21.22(@babel/runtime@7.23.9)(@codemirror/autocomplete@6.12.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.24.1)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) ansi-to-react: specifier: ^6.1.6 version: 6.1.6(react-dom@18.2.0)(react@18.2.0) @@ -474,178 +453,113 @@ packages: '@brillout/import': 0.2.3 dev: false - /@codemirror/autocomplete@6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1): - resolution: {integrity: sha512-r4IjdYFthwbCQyvqnSlx0WBHRHi8nBvU+WjJxFUij81qsBfhNudf/XKKmmC2j3m0LaOYUQTf3qiEK1J8lO1sdg==} + /@bufbuild/buf-darwin-arm64@1.28.1: + resolution: {integrity: sha512-nAyvwKkcd8qQTExCZo5MtSRhXLK7e3vzKFKHjXfkveRakSUST2HFlFZAHfErZimN4wBrPTN0V0hNRU8PPjkMpQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@bufbuild/buf-darwin-x64@1.28.1: + resolution: {integrity: sha512-b0eT3xd3vX5a5lWAbo5h7FPuf9MsOJI4I39qs4TZnrlZ8BOuPfqzwzijiFf9UCwaX2vR1NQXexIoQ80Ci+fCHw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@bufbuild/buf-linux-aarch64@1.28.1: + resolution: {integrity: sha512-p5h9bZCVLMh8No9/7k7ulXzsFx5P7Lu6DiUMjSJ6aBXPMYo6Xl7r/6L2cQkpsZ53HMtIxCgMYS9a7zoS4K8wIw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@bufbuild/buf-linux-x64@1.28.1: + resolution: {integrity: sha512-fVJ3DiRigIso06jgEl+JNp59Y5t2pxDHd10d3SA4r+14sXbZ2J7Gy/wBqVXPry4x/jW567KKlvmhg7M5ZBgCQQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@bufbuild/buf-win32-arm64@1.28.1: + resolution: {integrity: sha512-KJiRJpugQRK/jXC46Xjlb68UydWhCZj2jHdWLIwNtgXd1WTJ3LngChZV7Y6pPK08pwBAVz0JYeVbD5IlTCD4TQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@bufbuild/buf-win32-x64@1.28.1: + resolution: {integrity: sha512-vMnc+7OVCkmlRWQsgYHgUqiBPRIjD8XeoRyApJ07YZzGs7DkRH4LhvmacJbLd3wORylbn6gLz3pQa8J/M61mzg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@bufbuild/buf@1.28.1: + resolution: {integrity: sha512-WRDagrf0uBjfV9s5eyrSPJDcdI4A5Q7JMCA4aMrHRR8fo/TTjniDBjJprszhaguqsDkn/LS4QIu92HVFZCrl9A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@bufbuild/buf-darwin-arm64': 1.28.1 + '@bufbuild/buf-darwin-x64': 1.28.1 + '@bufbuild/buf-linux-aarch64': 1.28.1 + '@bufbuild/buf-linux-x64': 1.28.1 + '@bufbuild/buf-win32-arm64': 1.28.1 + '@bufbuild/buf-win32-x64': 1.28.1 + dev: false + + /@bufbuild/protobuf@1.4.2: + resolution: {integrity: sha512-JyEH8Z+OD5Sc2opSg86qMHn1EM1Sa+zj/Tc0ovxdwk56ByVNONJSabuCUbLQp+eKN3rWNfrho0X+3SEqEPXIow==} + dev: false + + /@codeium/react-code-editor@1.0.12(monaco-editor@0.45.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ps0J00jGBs/mhr1R9u+UTW+uK/6ba0WhCr2qYr7M9/w4ZQQXYmiZ3zniZwJGAhle69y5AE7SiUTVWZK7BU/4UA==} + engines: {node: '>=16'} peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 + monaco-editor: ^0.45.0 + react: ^18.2.0 + react-dom: ^18.2.0 dependencies: - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@lezer/common': 1.2.1 + '@bufbuild/buf': 1.28.1 + '@bufbuild/protobuf': 1.4.2 + '@connectrpc/connect': 1.1.3(@bufbuild/protobuf@1.4.2) + '@connectrpc/connect-web': 1.1.3(@bufbuild/protobuf@1.4.2)(@connectrpc/connect@1.1.3) + '@monaco-editor/react': 4.6.0(monaco-editor@0.45.0)(react-dom@18.2.0)(react@18.2.0) + dotenv: 16.4.5 + monaco-editor: 0.45.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@codemirror/commands@6.3.3: - resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} + /@connectrpc/connect-web@1.1.3(@bufbuild/protobuf@1.4.2)(@connectrpc/connect@1.1.3): + resolution: {integrity: sha512-WfShOZt91duJngqivYF4wJFRbeRa4bF/fPMfDVN0MAYSX3VuaTMn8o9qgKN7tsg2H2ZClyOVQwMkZx6IdcP7Zw==} + peerDependencies: + '@bufbuild/protobuf': ^1.3.3 + '@connectrpc/connect': 1.1.3 dependencies: - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@lezer/common': 1.2.1 + '@bufbuild/protobuf': 1.4.2 + '@connectrpc/connect': 1.1.3(@bufbuild/protobuf@1.4.2) dev: false - /@codemirror/highlight@0.19.8: - resolution: {integrity: sha512-v/lzuHjrYR8MN2mEJcUD6fHSTXXli9C1XGYpr+ElV6fLBIUhMTNKR3qThp611xuWfXfwDxeL7ppcbkM/MzPV3A==} - deprecated: As of 0.20.0, this package has been split between @lezer/highlight and @codemirror/language + /@connectrpc/connect@1.1.3(@bufbuild/protobuf@1.4.2): + resolution: {integrity: sha512-AXkbsLQe2Nm7VuoN5nqp05GEb9mPa/f5oFzDqTbHME4i8TghTrlY03uefbhuAq4wjsnfDnmuxHZvn6ndlgXmbg==} + peerDependencies: + '@bufbuild/protobuf': ^1.3.3 dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 - style-mod: 4.1.0 - dev: false - - /@codemirror/history@0.19.2: - resolution: {integrity: sha512-unhP4t3N2smzmHoo/Yio6ueWi+il8gm9VKrvi6wlcdGH5fOfVDNkmjHQ495SiR+EdOG35+3iNebSPYww0vN7ow==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/commands - dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - dev: false - - /@codemirror/lang-css@6.2.1(@codemirror/view@6.24.1): - resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/css': 1.1.8 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-html@6.4.8: - resolution: {integrity: sha512-tE2YK7wDlb9ZpAH6mpTPiYm6rhfdQKVDa5r9IwIFlwwgvVaKsCfuKKZoJGWsmMZIf3FQAuJ5CHMPLymOtg1hXw==} - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.24.1) - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@lezer/common': 1.2.1 - '@lezer/css': 1.1.8 - '@lezer/html': 1.3.9 - dev: false - - /@codemirror/lang-javascript@6.2.2: - resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.5.0 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@lezer/common': 1.2.1 - '@lezer/javascript': 1.4.13 - dev: false - - /@codemirror/lang-json@6.0.1: - resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} - dependencies: - '@codemirror/language': 6.10.1 - '@lezer/json': 1.0.2 - dev: false - - /@codemirror/language@0.19.10: - resolution: {integrity: sha512-yA0DZ3RYn2CqAAGW62VrU8c4YxscMQn45y/I9sjBlqB1e2OTQLg4CCkMBuMSLXk4xaqjlsgazeOQWaJQOKfV8Q==} - dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 - '@lezer/lr': 0.15.8 - dev: false - - /@codemirror/language@6.10.1: - resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==} - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.0 - style-mod: 4.1.0 - dev: false - - /@codemirror/lint@6.5.0: - resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==} - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - crelt: 1.0.6 - dev: false - - /@codemirror/rangeset@0.19.9: - resolution: {integrity: sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/state - dependencies: - '@codemirror/state': 0.19.9 - dev: false - - /@codemirror/search@6.5.6: - resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - crelt: 1.0.6 - dev: false - - /@codemirror/state@0.19.9: - resolution: {integrity: sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw==} - dependencies: - '@codemirror/text': 0.19.6 - dev: false - - /@codemirror/state@6.4.1: - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} - dev: false - - /@codemirror/text@0.19.6: - resolution: {integrity: sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/state - dev: false - - /@codemirror/theme-one-dark@6.1.2: - resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} - dependencies: - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@lezer/highlight': 1.2.0 - dev: false - - /@codemirror/view@0.19.48: - resolution: {integrity: sha512-0eg7D2Nz4S8/caetCTz61rK0tkHI17V/d15Jy0kLOT8dTLGGNJUponDnW28h2B6bERmPlVHKh8MJIr5OCp1nGw==} - dependencies: - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - style-mod: 4.1.0 - w3c-keyname: 2.2.8 - dev: false - - /@codemirror/view@6.24.1: - resolution: {integrity: sha512-sBfP4rniPBRQzNakwuQEqjEuiJDWJyF2kqLLqij4WXRoVwPPJfjx966Eq3F7+OPQxDtMt/Q9MWLoZLWjeveBlg==} - dependencies: - '@codemirror/state': 6.4.1 - style-mod: 4.1.0 - w3c-keyname: 2.2.8 + '@bufbuild/protobuf': 1.4.2 dev: false /@drizzle-team/studio@0.0.39: @@ -654,56 +568,6 @@ packages: superjson: 2.2.1 dev: true - /@emmetio/abbreviation@2.3.3: - resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} - dependencies: - '@emmetio/scanner': 1.0.4 - dev: false - - /@emmetio/codemirror6-plugin@0.3.0(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/highlight@0.19.8)(@codemirror/history@0.19.2)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.8)(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1): - resolution: {integrity: sha512-w9KlUG/RHFVF1+98el7tr4GUyM3J4kBVHqIp4eCChY9MmF0HbfMiP6id6eoZEpHd7ATINVnzEYlXx5zTBkUGzw==} - peerDependencies: - '@codemirror/autocomplete': ^6.1.0 - '@codemirror/commands': ^6.0.1 - '@codemirror/highlight': ^0.19.8 - '@codemirror/history': ^0.19.2 - '@codemirror/lang-css': ^6.0.0 - '@codemirror/lang-html': ^6.1.0 - '@codemirror/language': ^6.2.1 - '@codemirror/state': ^6.1.1 - '@codemirror/view': ^6.2.0 - '@lezer/common': ^1.0.0 - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/commands': 6.3.3 - '@codemirror/highlight': 0.19.8 - '@codemirror/history': 0.19.2 - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.24.1) - '@codemirror/lang-html': 6.4.8 - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - '@emmetio/math-expression': 1.0.5 - '@lezer/common': 1.2.1 - emmet: 2.4.6 - dev: false - - /@emmetio/css-abbreviation@2.1.8: - resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - dependencies: - '@emmetio/scanner': 1.0.4 - dev: false - - /@emmetio/math-expression@1.0.5: - resolution: {integrity: sha512-qf5SXD/ViS04rXSeDg9CRGM10xLC9dVaKIbMHrrwxYr5LNB/C0rOfokhGSBwnVQKcidLmdRJeNWH1V1tppZ84Q==} - dependencies: - '@emmetio/scanner': 1.0.4 - dev: false - - /@emmetio/scanner@1.0.4: - resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - dev: false - /@emotion/cache@10.0.29: resolution: {integrity: sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==} dependencies: @@ -1278,64 +1142,6 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@lezer/common@0.15.12: - resolution: {integrity: sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==} - dev: false - - /@lezer/common@1.2.1: - resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} - dev: false - - /@lezer/css@1.1.8: - resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.0 - dev: false - - /@lezer/highlight@1.2.0: - resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} - dependencies: - '@lezer/common': 1.2.1 - dev: false - - /@lezer/html@1.3.9: - resolution: {integrity: sha512-MXxeCMPyrcemSLGaTQEZx0dBUH0i+RPl8RN5GwMAzo53nTsd/Unc/t5ZxACeQoyPUM5/GkPLRUs2WliOImzkRA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.0 - dev: false - - /@lezer/javascript@1.4.13: - resolution: {integrity: sha512-5IBr8LIO3xJdJH1e9aj/ZNLE4LSbdsx25wFmGRAZsj2zSmwAYjx26JyU/BYOCpRQlu1jcv1z3vy4NB9+UkfRow==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.0 - dev: false - - /@lezer/json@1.0.2: - resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.0 - dev: false - - /@lezer/lr@0.15.8: - resolution: {integrity: sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==} - dependencies: - '@lezer/common': 0.15.12 - dev: false - - /@lezer/lr@1.4.0: - resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==} - dependencies: - '@lezer/common': 1.2.1 - dev: false - /@mapbox/node-pre-gyp@1.0.11: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true @@ -1368,6 +1174,28 @@ packages: os-filter-obj: 2.0.0 dev: true + /@monaco-editor/loader@1.4.0(monaco-editor@0.45.0): + resolution: {integrity: sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==} + peerDependencies: + monaco-editor: '>= 0.21.0 < 1' + dependencies: + monaco-editor: 0.45.0 + state-local: 1.0.7 + dev: false + + /@monaco-editor/react@4.6.0(monaco-editor@0.45.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==} + peerDependencies: + monaco-editor: '>= 0.25.0 < 1' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@monaco-editor/loader': 1.4.0(monaco-editor@0.45.0) + monaco-editor: 0.45.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@noble/hashes@1.3.3: resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} engines: {node: '>= 16'} @@ -1925,26 +1753,6 @@ packages: '@babel/runtime': 7.23.9 dev: false - /@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1): - resolution: {integrity: sha512-j45qTwGxzpsv82lMD/NreGDORFKSctMDVkGRopaP+OrzSzv+pXDQuU3LnFvKpasyjVT0lf+PKG1v2DSCn/vxxg==} - peerDependencies: - '@codemirror/autocomplete': ^6.0.0 - '@codemirror/commands': ^6.0.0 - '@codemirror/language': ^6.0.0 - '@codemirror/lint': ^6.0.0 - '@codemirror/search': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/commands': 6.3.3 - '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.5.0 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - dev: false - /@rollup/rollup-android-arm-eabi@4.12.0: resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} cpu: [arm] @@ -2426,75 +2234,6 @@ packages: dev: false optional: true - /@uiw/codemirror-extensions-basic-setup@4.21.22(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1): - resolution: {integrity: sha512-Lxq2EitQb/MwbNrMHBmVdSIR96WmaICnYBYeZbLUxmr4kQcbrA6HXqNSNZJ0V4ZihPfKnNs9+g87QK0HsadE6A==} - peerDependencies: - '@codemirror/autocomplete': '>=6.0.0' - '@codemirror/commands': '>=6.0.0' - '@codemirror/language': '>=6.0.0' - '@codemirror/lint': '>=6.0.0' - '@codemirror/search': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/commands': 6.3.3 - '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.5.0 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - dev: false - - /@uiw/codemirror-theme-tokyo-night@4.21.22(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1): - resolution: {integrity: sha512-yaWelCqmOksuAbl8oYXjP/LqTj6KW2c7g9V9kL6NIb5LAnGr9DRFM3FKPpdylB4Ifx+e4QkcQBmY9/kSuPtf+g==} - dependencies: - '@uiw/codemirror-themes': 4.21.22(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-themes@4.21.22(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1): - resolution: {integrity: sha512-oRMNtDmD6ER0EH2/NKGbrUzeRJbZ/4+GE3/9OItaAGhdsd2V33WGqVX7QwXsjLNhpNfscbVKB3PYLyRooBdlfg==} - peerDependencies: - '@codemirror/language': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - dependencies: - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - dev: false - - /@uiw/react-codemirror@4.21.22(@babel/runtime@7.23.9)(@codemirror/autocomplete@6.12.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.24.1)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VmxU9oRXwcleG2u5Ui2xVXaLVPL8cBuRN3vA41hlu4OQ/ftJb+4p+dBd6bZ+NJKSXm3LufbPGzu8oKwNO4tG4A==} - peerDependencies: - '@babel/runtime': '>=7.11.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/theme-one-dark': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - codemirror: '>=6.0.0' - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@babel/runtime': 7.23.9 - '@codemirror/commands': 6.3.3 - '@codemirror/state': 6.4.1 - '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.24.1 - '@uiw/codemirror-extensions-basic-setup': 4.21.22(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1) - codemirror: 6.0.1(@lezer/common@1.2.1) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@codemirror/autocomplete' - - '@codemirror/language' - - '@codemirror/lint' - - '@codemirror/search' - dev: false - /@vitejs/plugin-react@4.2.1(vite@5.1.4): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3021,20 +2760,6 @@ packages: engines: {node: '>=6'} dev: false - /codemirror@6.0.1(@lezer/common@1.2.1): - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} - dependencies: - '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.24.1)(@lezer/common@1.2.1) - '@codemirror/commands': 6.3.3 - '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.5.0 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.24.1 - transitivePeerDependencies: - - '@lezer/common' - dev: false - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -3179,10 +2904,6 @@ packages: typescript: 5.3.3 dev: false - /crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - dev: false - /cross-fetch@4.0.0: resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} dependencies: @@ -3600,13 +3321,6 @@ packages: /electron-to-chromium@1.4.678: resolution: {integrity: sha512-NbdGC2p0O5Q5iVhLEsNBSfytaw7wbEFJlIvaF71wi6QDtLAph5/rVogjyOpf/QggJIt8hNK3KdwNJnc2bzckbw==} - /emmet@2.4.6: - resolution: {integrity: sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==} - dependencies: - '@emmetio/abbreviation': 2.3.3 - '@emmetio/css-abbreviation': 2.1.8 - dev: false - /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -4874,6 +4588,10 @@ packages: hasBin: true dev: false + /monaco-editor@0.45.0: + resolution: {integrity: sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==} + dev: false + /morgan@1.10.0: resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} @@ -6174,6 +5892,10 @@ packages: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} dev: false + /state-local@1.0.7: + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} + dev: false + /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -6249,10 +5971,6 @@ packages: peek-readable: 5.0.0 dev: true - /style-mod@4.1.0: - resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} - dev: false - /stylehacks@6.0.2(postcss@8.4.35): resolution: {integrity: sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==} engines: {node: ^14 || ^16 || >=18.0} @@ -6669,10 +6387,6 @@ packages: optionalDependencies: fsevents: 2.3.3 - /w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - dev: false - /web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} diff --git a/renderer/globals.css b/renderer/globals.css index bc58656..f553f33 100644 --- a/renderer/globals.css +++ b/renderer/globals.css @@ -24,3 +24,7 @@ body { -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ } + +/* .code-editor a { + display: none; +} */