@melv1c/ui-kit 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -0
- package/dist/base.css +49 -0
- package/dist/chunk-2ZWQNZEN.cjs +63 -0
- package/dist/chunk-2ZWQNZEN.cjs.map +1 -0
- package/dist/chunk-4H5OSMBC.js +52 -0
- package/dist/chunk-4H5OSMBC.js.map +1 -0
- package/dist/chunk-GQ6Z5A4R.cjs +262 -0
- package/dist/chunk-GQ6Z5A4R.cjs.map +1 -0
- package/dist/chunk-I7WHASOO.cjs +13 -0
- package/dist/chunk-I7WHASOO.cjs.map +1 -0
- package/dist/chunk-PYHBC3IQ.js +17 -0
- package/dist/chunk-PYHBC3IQ.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +9 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-Q4GFV3J3.cjs +19 -0
- package/dist/chunk-Q4GFV3J3.cjs.map +1 -0
- package/dist/chunk-Q7SFCCGT.cjs +11 -0
- package/dist/chunk-Q7SFCCGT.cjs.map +1 -0
- package/dist/chunk-QV4CTFLS.cjs +60 -0
- package/dist/chunk-QV4CTFLS.cjs.map +1 -0
- package/dist/chunk-RZJFYAJW.js +60 -0
- package/dist/chunk-RZJFYAJW.js.map +1 -0
- package/dist/chunk-WTLIXI2B.js +225 -0
- package/dist/chunk-WTLIXI2B.js.map +1 -0
- package/dist/chunk-WZ2GOU2J.js +11 -0
- package/dist/chunk-WZ2GOU2J.js.map +1 -0
- package/dist/code-diff-editor-IT2RMVDC.js +73 -0
- package/dist/code-diff-editor-IT2RMVDC.js.map +1 -0
- package/dist/code-diff-editor-J24VGXHL.cjs +75 -0
- package/dist/code-diff-editor-J24VGXHL.cjs.map +1 -0
- package/dist/code-editor-DK64HVFQ.cjs +84 -0
- package/dist/code-editor-DK64HVFQ.cjs.map +1 -0
- package/dist/code-editor-EJIJXZLN.js +82 -0
- package/dist/code-editor-EJIJXZLN.js.map +1 -0
- package/dist/index.cjs +4196 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +623 -0
- package/dist/index.d.ts +623 -0
- package/dist/index.js +3870 -0
- package/dist/index.js.map +1 -0
- package/dist/locales/index.cjs +33 -0
- package/dist/locales/index.cjs.map +1 -0
- package/dist/locales/index.d.cts +43 -0
- package/dist/locales/index.d.ts +43 -0
- package/dist/locales/index.js +4 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/rich-text-editor-JUERRDHQ.js +442 -0
- package/dist/rich-text-editor-JUERRDHQ.js.map +1 -0
- package/dist/rich-text-editor-MOJDWQTI.cjs +451 -0
- package/dist/rich-text-editor-MOJDWQTI.cjs.map +1 -0
- package/dist/themes/claude.css +125 -0
- package/dist/themes/default.css +70 -0
- package/dist/themes/doom64.css +117 -0
- package/dist/themes/t3chat.css +125 -0
- package/dist/themes/twitter.css +127 -0
- package/dist/themes/vercel.css +117 -0
- package/package.json +166 -0
- package/styles.css +120 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk2ZWQNZEN_cjs = require('./chunk-2ZWQNZEN.cjs');
|
|
4
|
+
var chunkQ4GFV3J3_cjs = require('./chunk-Q4GFV3J3.cjs');
|
|
5
|
+
var chunkI7WHASOO_cjs = require('./chunk-I7WHASOO.cjs');
|
|
6
|
+
require('./chunk-Q7SFCCGT.cjs');
|
|
7
|
+
var react$1 = require('@monaco-editor/react');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
|
|
11
|
+
function LoadingFallback() {
|
|
12
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkQ4GFV3J3_cjs.Skeleton, { className: "h-full w-full" });
|
|
13
|
+
}
|
|
14
|
+
function CodeEditor({
|
|
15
|
+
value,
|
|
16
|
+
defaultValue,
|
|
17
|
+
language,
|
|
18
|
+
theme = "qualifio",
|
|
19
|
+
readOnly = false,
|
|
20
|
+
disabled = false,
|
|
21
|
+
lineNumbers = true,
|
|
22
|
+
wordWrap = false,
|
|
23
|
+
minimap = false,
|
|
24
|
+
className,
|
|
25
|
+
variant,
|
|
26
|
+
size,
|
|
27
|
+
onChange,
|
|
28
|
+
onMount,
|
|
29
|
+
onValidate,
|
|
30
|
+
options,
|
|
31
|
+
...props
|
|
32
|
+
}) {
|
|
33
|
+
const editorOptions = react.useMemo(
|
|
34
|
+
() => ({
|
|
35
|
+
readOnly: readOnly || disabled,
|
|
36
|
+
lineNumbers: lineNumbers ? "on" : "off",
|
|
37
|
+
wordWrap: wordWrap ? "on" : "off",
|
|
38
|
+
minimap: { enabled: minimap },
|
|
39
|
+
fontSize: 14,
|
|
40
|
+
fontFamily: "'Menlo', 'Monaco', Consolas, monospace",
|
|
41
|
+
scrollBeyondLastLine: false,
|
|
42
|
+
automaticLayout: true,
|
|
43
|
+
padding: { top: 12, bottom: 12 },
|
|
44
|
+
bracketPairColorization: { enabled: true },
|
|
45
|
+
...options
|
|
46
|
+
}),
|
|
47
|
+
[readOnly, disabled, lineNumbers, wordWrap, minimap, options]
|
|
48
|
+
);
|
|
49
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
"data-slot": "code-editor",
|
|
53
|
+
className: chunkI7WHASOO_cjs.cn(
|
|
54
|
+
chunk2ZWQNZEN_cjs.codeEditorVariants({ variant, size }),
|
|
55
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
56
|
+
className
|
|
57
|
+
),
|
|
58
|
+
...props,
|
|
59
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
60
|
+
react$1.Editor,
|
|
61
|
+
{
|
|
62
|
+
language,
|
|
63
|
+
theme,
|
|
64
|
+
value,
|
|
65
|
+
defaultValue,
|
|
66
|
+
onChange,
|
|
67
|
+
beforeMount: (monaco) => {
|
|
68
|
+
chunk2ZWQNZEN_cjs.defineQualifioThemes(monaco).catch((error) => {
|
|
69
|
+
console.error("Failed to define Qualifio themes:", error);
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
onMount,
|
|
73
|
+
onValidate,
|
|
74
|
+
options: editorOptions,
|
|
75
|
+
loading: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback, {})
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
exports.CodeEditor = CodeEditor;
|
|
83
|
+
//# sourceMappingURL=code-editor-DK64HVFQ.cjs.map
|
|
84
|
+
//# sourceMappingURL=code-editor-DK64HVFQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/editors/code/code-editor.tsx"],"names":["jsx","Skeleton","useMemo","cn","codeEditorVariants","Editor","defineQualifioThemes"],"mappings":";;;;;;;;;;AA6BA,SAAS,eAAA,GAAkB;AACzB,EAAA,uBAAOA,cAAA,CAACC,0BAAA,EAAA,EAAS,SAAA,EAAU,eAAA,EAAgB,CAAA;AAC7C;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,UAAA;AAAA,EACR,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,WAAA,GAAc,IAAA;AAAA,EACd,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,aAAA,GAAgBC,aAAA;AAAA,IACpB,OAAO;AAAA,MACL,UAAU,QAAA,IAAY,QAAA;AAAA,MACtB,WAAA,EAAa,cAAe,IAAA,GAAkB,KAAA;AAAA,MAC9C,QAAA,EAAU,WAAY,IAAA,GAAkB,KAAA;AAAA,MACxC,OAAA,EAAS,EAAE,OAAA,EAAS,OAAA,EAAQ;AAAA,MAC5B,QAAA,EAAU,EAAA;AAAA,MACV,UAAA,EAAY,wCAAA;AAAA,MACZ,oBAAA,EAAsB,KAAA;AAAA,MACtB,eAAA,EAAiB,IAAA;AAAA,MACjB,OAAA,EAAS,EAAE,GAAA,EAAK,EAAA,EAAI,QAAQ,EAAA,EAAG;AAAA,MAC/B,uBAAA,EAAyB,EAAE,OAAA,EAAS,IAAA,EAAK;AAAA,MACzC,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,QAAA,EAAU,WAAA,EAAa,QAAA,EAAU,SAAS,OAAO;AAAA,GAC9D;AAEA,EAAA,uBACEF,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAWG,oBAAA;AAAA,QACTC,oCAAA,CAAmB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QACpC,QAAA,IAAY,+BAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAJ,cAAA;AAAA,QAACK,cAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA,YAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA,EAAa,CAAC,MAAA,KAAW;AACvB,YAAAC,sCAAA,CAAqB,MAAM,CAAA,CAAE,KAAA,CAAM,CAAC,KAAA,KAAU;AAC5C,cAAA,OAAA,CAAQ,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA,YAC1D,CAAC,CAAA;AAAA,UACH,CAAA;AAAA,UACA,OAAA;AAAA,UACA,UAAA;AAAA,UACA,OAAA,EAAS,aAAA;AAAA,UACT,OAAA,iCAAU,eAAA,EAAA,EAAgB;AAAA;AAAA;AAC5B;AAAA,GACF;AAEJ","file":"code-editor-DK64HVFQ.cjs","sourcesContent":["import { Editor, type Monaco } from \"@monaco-editor/react\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { editor } from \"monaco-editor\";\nimport { type HTMLAttributes, useMemo } from \"react\";\nimport { Skeleton } from \"@/components/base/skeleton\";\nimport { cn } from \"@/lib/utils\";\nimport { defineQualifioThemes } from \"./qualifio-themes\";\nimport type { EditorTheme, SupportedLanguage } from \"./types\";\nimport { codeEditorVariants } from \"./variants\";\n\ninterface CodeEditorProps\n extends\n VariantProps<typeof codeEditorVariants>,\n Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n language: SupportedLanguage;\n theme?: EditorTheme;\n readOnly?: boolean;\n disabled?: boolean;\n lineNumbers?: boolean;\n wordWrap?: boolean;\n minimap?: boolean;\n onChange?: (value: string | undefined) => void;\n onMount?: (editor: editor.IStandaloneCodeEditor, monaco: Monaco) => void;\n onValidate?: (markers: editor.IMarker[]) => void;\n options?: editor.IStandaloneEditorConstructionOptions;\n}\n\nfunction LoadingFallback() {\n return <Skeleton className=\"h-full w-full\" />;\n}\n\nfunction CodeEditor({\n value,\n defaultValue,\n language,\n theme = \"qualifio\",\n readOnly = false,\n disabled = false,\n lineNumbers = true,\n wordWrap = false,\n minimap = false,\n className,\n variant,\n size,\n onChange,\n onMount,\n onValidate,\n options,\n ...props\n}: CodeEditorProps) {\n const editorOptions = useMemo(\n () => ({\n readOnly: readOnly || disabled,\n lineNumbers: lineNumbers ? (\"on\" as const) : (\"off\" as const),\n wordWrap: wordWrap ? (\"on\" as const) : (\"off\" as const),\n minimap: { enabled: minimap },\n fontSize: 14,\n fontFamily: \"'Menlo', 'Monaco', Consolas, monospace\",\n scrollBeyondLastLine: false,\n automaticLayout: true,\n padding: { top: 12, bottom: 12 },\n bracketPairColorization: { enabled: true },\n ...options,\n }),\n [readOnly, disabled, lineNumbers, wordWrap, minimap, options],\n );\n\n return (\n <div\n data-slot=\"code-editor\"\n className={cn(\n codeEditorVariants({ variant, size }),\n disabled && \"cursor-not-allowed opacity-50\",\n className,\n )}\n {...props}\n >\n <Editor\n language={language}\n theme={theme}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n beforeMount={(monaco) => {\n defineQualifioThemes(monaco).catch((error) => {\n console.error(\"Failed to define Qualifio themes:\", error);\n });\n }}\n onMount={onMount}\n onValidate={onValidate}\n options={editorOptions}\n loading={<LoadingFallback />}\n />\n </div>\n );\n}\n\nexport { CodeEditor, type CodeEditorProps };\nexport type { EditorTheme, SupportedLanguage } from \"./types\";\n"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineQualifioThemes, codeEditorVariants } from './chunk-RZJFYAJW.js';
|
|
2
|
+
import { Skeleton } from './chunk-PYHBC3IQ.js';
|
|
3
|
+
import { cn } from './chunk-WZ2GOU2J.js';
|
|
4
|
+
import './chunk-PZ5AY32C.js';
|
|
5
|
+
import { Editor } from '@monaco-editor/react';
|
|
6
|
+
import { useMemo } from 'react';
|
|
7
|
+
import { jsx } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
function LoadingFallback() {
|
|
10
|
+
return /* @__PURE__ */ jsx(Skeleton, { className: "h-full w-full" });
|
|
11
|
+
}
|
|
12
|
+
function CodeEditor({
|
|
13
|
+
value,
|
|
14
|
+
defaultValue,
|
|
15
|
+
language,
|
|
16
|
+
theme = "qualifio",
|
|
17
|
+
readOnly = false,
|
|
18
|
+
disabled = false,
|
|
19
|
+
lineNumbers = true,
|
|
20
|
+
wordWrap = false,
|
|
21
|
+
minimap = false,
|
|
22
|
+
className,
|
|
23
|
+
variant,
|
|
24
|
+
size,
|
|
25
|
+
onChange,
|
|
26
|
+
onMount,
|
|
27
|
+
onValidate,
|
|
28
|
+
options,
|
|
29
|
+
...props
|
|
30
|
+
}) {
|
|
31
|
+
const editorOptions = useMemo(
|
|
32
|
+
() => ({
|
|
33
|
+
readOnly: readOnly || disabled,
|
|
34
|
+
lineNumbers: lineNumbers ? "on" : "off",
|
|
35
|
+
wordWrap: wordWrap ? "on" : "off",
|
|
36
|
+
minimap: { enabled: minimap },
|
|
37
|
+
fontSize: 14,
|
|
38
|
+
fontFamily: "'Menlo', 'Monaco', Consolas, monospace",
|
|
39
|
+
scrollBeyondLastLine: false,
|
|
40
|
+
automaticLayout: true,
|
|
41
|
+
padding: { top: 12, bottom: 12 },
|
|
42
|
+
bracketPairColorization: { enabled: true },
|
|
43
|
+
...options
|
|
44
|
+
}),
|
|
45
|
+
[readOnly, disabled, lineNumbers, wordWrap, minimap, options]
|
|
46
|
+
);
|
|
47
|
+
return /* @__PURE__ */ jsx(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
"data-slot": "code-editor",
|
|
51
|
+
className: cn(
|
|
52
|
+
codeEditorVariants({ variant, size }),
|
|
53
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
54
|
+
className
|
|
55
|
+
),
|
|
56
|
+
...props,
|
|
57
|
+
children: /* @__PURE__ */ jsx(
|
|
58
|
+
Editor,
|
|
59
|
+
{
|
|
60
|
+
language,
|
|
61
|
+
theme,
|
|
62
|
+
value,
|
|
63
|
+
defaultValue,
|
|
64
|
+
onChange,
|
|
65
|
+
beforeMount: (monaco) => {
|
|
66
|
+
defineQualifioThemes(monaco).catch((error) => {
|
|
67
|
+
console.error("Failed to define Qualifio themes:", error);
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
onMount,
|
|
71
|
+
onValidate,
|
|
72
|
+
options: editorOptions,
|
|
73
|
+
loading: /* @__PURE__ */ jsx(LoadingFallback, {})
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { CodeEditor };
|
|
81
|
+
//# sourceMappingURL=code-editor-EJIJXZLN.js.map
|
|
82
|
+
//# sourceMappingURL=code-editor-EJIJXZLN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/editors/code/code-editor.tsx"],"names":[],"mappings":";;;;;;;;AA6BA,SAAS,eAAA,GAAkB;AACzB,EAAA,uBAAO,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,eAAA,EAAgB,CAAA;AAC7C;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,UAAA;AAAA,EACR,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,WAAA,GAAc,IAAA;AAAA,EACd,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,aAAA,GAAgB,OAAA;AAAA,IACpB,OAAO;AAAA,MACL,UAAU,QAAA,IAAY,QAAA;AAAA,MACtB,WAAA,EAAa,cAAe,IAAA,GAAkB,KAAA;AAAA,MAC9C,QAAA,EAAU,WAAY,IAAA,GAAkB,KAAA;AAAA,MACxC,OAAA,EAAS,EAAE,OAAA,EAAS,OAAA,EAAQ;AAAA,MAC5B,QAAA,EAAU,EAAA;AAAA,MACV,UAAA,EAAY,wCAAA;AAAA,MACZ,oBAAA,EAAsB,KAAA;AAAA,MACtB,eAAA,EAAiB,IAAA;AAAA,MACjB,OAAA,EAAS,EAAE,GAAA,EAAK,EAAA,EAAI,QAAQ,EAAA,EAAG;AAAA,MAC/B,uBAAA,EAAyB,EAAE,OAAA,EAAS,IAAA,EAAK;AAAA,MACzC,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,QAAA,EAAU,WAAA,EAAa,QAAA,EAAU,SAAS,OAAO;AAAA,GAC9D;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,kBAAA,CAAmB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QACpC,QAAA,IAAY,+BAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA,YAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA,EAAa,CAAC,MAAA,KAAW;AACvB,YAAA,oBAAA,CAAqB,MAAM,CAAA,CAAE,KAAA,CAAM,CAAC,KAAA,KAAU;AAC5C,cAAA,OAAA,CAAQ,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA,YAC1D,CAAC,CAAA;AAAA,UACH,CAAA;AAAA,UACA,OAAA;AAAA,UACA,UAAA;AAAA,UACA,OAAA,EAAS,aAAA;AAAA,UACT,OAAA,sBAAU,eAAA,EAAA,EAAgB;AAAA;AAAA;AAC5B;AAAA,GACF;AAEJ","file":"code-editor-EJIJXZLN.js","sourcesContent":["import { Editor, type Monaco } from \"@monaco-editor/react\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { editor } from \"monaco-editor\";\nimport { type HTMLAttributes, useMemo } from \"react\";\nimport { Skeleton } from \"@/components/base/skeleton\";\nimport { cn } from \"@/lib/utils\";\nimport { defineQualifioThemes } from \"./qualifio-themes\";\nimport type { EditorTheme, SupportedLanguage } from \"./types\";\nimport { codeEditorVariants } from \"./variants\";\n\ninterface CodeEditorProps\n extends\n VariantProps<typeof codeEditorVariants>,\n Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n language: SupportedLanguage;\n theme?: EditorTheme;\n readOnly?: boolean;\n disabled?: boolean;\n lineNumbers?: boolean;\n wordWrap?: boolean;\n minimap?: boolean;\n onChange?: (value: string | undefined) => void;\n onMount?: (editor: editor.IStandaloneCodeEditor, monaco: Monaco) => void;\n onValidate?: (markers: editor.IMarker[]) => void;\n options?: editor.IStandaloneEditorConstructionOptions;\n}\n\nfunction LoadingFallback() {\n return <Skeleton className=\"h-full w-full\" />;\n}\n\nfunction CodeEditor({\n value,\n defaultValue,\n language,\n theme = \"qualifio\",\n readOnly = false,\n disabled = false,\n lineNumbers = true,\n wordWrap = false,\n minimap = false,\n className,\n variant,\n size,\n onChange,\n onMount,\n onValidate,\n options,\n ...props\n}: CodeEditorProps) {\n const editorOptions = useMemo(\n () => ({\n readOnly: readOnly || disabled,\n lineNumbers: lineNumbers ? (\"on\" as const) : (\"off\" as const),\n wordWrap: wordWrap ? (\"on\" as const) : (\"off\" as const),\n minimap: { enabled: minimap },\n fontSize: 14,\n fontFamily: \"'Menlo', 'Monaco', Consolas, monospace\",\n scrollBeyondLastLine: false,\n automaticLayout: true,\n padding: { top: 12, bottom: 12 },\n bracketPairColorization: { enabled: true },\n ...options,\n }),\n [readOnly, disabled, lineNumbers, wordWrap, minimap, options],\n );\n\n return (\n <div\n data-slot=\"code-editor\"\n className={cn(\n codeEditorVariants({ variant, size }),\n disabled && \"cursor-not-allowed opacity-50\",\n className,\n )}\n {...props}\n >\n <Editor\n language={language}\n theme={theme}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n beforeMount={(monaco) => {\n defineQualifioThemes(monaco).catch((error) => {\n console.error(\"Failed to define Qualifio themes:\", error);\n });\n }}\n onMount={onMount}\n onValidate={onValidate}\n options={editorOptions}\n loading={<LoadingFallback />}\n />\n </div>\n );\n}\n\nexport { CodeEditor, type CodeEditorProps };\nexport type { EditorTheme, SupportedLanguage } from \"./types\";\n"]}
|