@cozeloop/prompt-components 0.0.1
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 +1 -0
- package/dist/es/basic-editor/custom-facet.js +9 -0
- package/dist/es/basic-editor/diff.js +138 -0
- package/dist/es/basic-editor/extensions/go-syntax.js +122 -0
- package/dist/es/basic-editor/extensions/go-template.js +16 -0
- package/dist/es/basic-editor/extensions/go-theme.js +1071 -0
- package/dist/es/basic-editor/extensions/jinja.js +80 -0
- package/dist/es/basic-editor/extensions/keymap.js +442 -0
- package/dist/es/basic-editor/extensions/language-support.js +12 -0
- package/dist/es/basic-editor/extensions/markdown.js +58 -0
- package/dist/es/basic-editor/extensions/search/dom/icon.js +250 -0
- package/dist/es/basic-editor/extensions/search/dom/match-count.js +33 -0
- package/dist/es/basic-editor/extensions/search/index.js +18 -0
- package/dist/es/basic-editor/extensions/search/panel.js +418 -0
- package/dist/es/basic-editor/extensions/search/theme.js +184 -0
- package/dist/es/basic-editor/extensions/validation.js +84 -0
- package/dist/es/basic-editor/extensions/validation.module.js +5 -0
- package/dist/es/basic-editor/extensions/validation_module.css +7 -0
- package/dist/es/basic-editor/extensions/variable.js +178 -0
- package/dist/es/basic-editor/index.js +171 -0
- package/dist/es/code-editor/code-editor.js +83 -0
- package/dist/es/code-editor/index.js +12 -0
- package/dist/es/code-editor/json-editor.js +157 -0
- package/dist/es/code-editor/raw-text-editor.js +46 -0
- package/dist/es/code-editor/text-editor.js +41 -0
- package/dist/es/code-editor/themes/coze-dark.js +112 -0
- package/dist/es/code-editor/themes/coze-light.js +118 -0
- package/dist/es/consts/index.js +12 -0
- package/dist/es/dev-layout/index.js +35 -0
- package/dist/es/index.js +66 -0
- package/dist/es/mermaid-diagram/index.js +148 -0
- package/dist/es/mermaid-diagram/index.module.js +5 -0
- package/dist/es/mermaid-diagram/index_module.css +4 -0
- package/dist/es/mermaid-diagram/use-svg-pan-zoom.js +49 -0
- package/dist/es/mermaid-diagram/utils.js +74 -0
- package/dist/es/model-config-editor/basic-type.js +73 -0
- package/dist/es/model-config-editor/index.module.js +5 -0
- package/dist/es/model-config-editor/index_module.css +8 -0
- package/dist/es/model-config-editor/model-config-form.js +130 -0
- package/dist/es/model-config-editor/popover-type.js +118 -0
- package/dist/es/model-select/index.js +136 -0
- package/dist/es/model-select/index.module.js +5 -0
- package/dist/es/model-select/index_module.css +14 -0
- package/dist/es/model-select/model-option/index.js +161 -0
- package/dist/es/model-select/model-option/index.module.js +5 -0
- package/dist/es/model-select/model-option/index_module.css +23 -0
- package/dist/es/model-select/model-option-group/index.js +44 -0
- package/dist/es/prompt-editor/index.js +188 -0
- package/dist/es/prompt-editor/index.module.js +5 -0
- package/dist/es/prompt-editor/index_module.css +71 -0
- package/dist/es/prompt-editor/message-type-select.js +74 -0
- package/dist/es/schema-editor/index.js +43 -0
- package/dist/es/utils/base.js +53 -0
- package/dist/es/utils/model-config.js +32 -0
- package/dist/lib/basic-editor/custom-facet.js +33 -0
- package/dist/lib/basic-editor/diff.js +167 -0
- package/dist/lib/basic-editor/extensions/go-syntax.js +146 -0
- package/dist/lib/basic-editor/extensions/go-template.js +50 -0
- package/dist/lib/basic-editor/extensions/go-theme.js +1091 -0
- package/dist/lib/basic-editor/extensions/jinja.js +100 -0
- package/dist/lib/basic-editor/extensions/keymap.js +465 -0
- package/dist/lib/basic-editor/extensions/language-support.js +32 -0
- package/dist/lib/basic-editor/extensions/markdown.js +78 -0
- package/dist/lib/basic-editor/extensions/search/dom/icon.js +291 -0
- package/dist/lib/basic-editor/extensions/search/dom/match-count.js +67 -0
- package/dist/lib/basic-editor/extensions/search/index.js +38 -0
- package/dist/lib/basic-editor/extensions/search/panel.js +429 -0
- package/dist/lib/basic-editor/extensions/search/theme.js +208 -0
- package/dist/lib/basic-editor/extensions/validation.js +118 -0
- package/dist/lib/basic-editor/extensions/validation.module.js +25 -0
- package/dist/lib/basic-editor/extensions/validation_module.css +7 -0
- package/dist/lib/basic-editor/extensions/variable.js +190 -0
- package/dist/lib/basic-editor/index.js +193 -0
- package/dist/lib/code-editor/code-editor.js +117 -0
- package/dist/lib/code-editor/index.js +40 -0
- package/dist/lib/code-editor/json-editor.js +184 -0
- package/dist/lib/code-editor/raw-text-editor.js +70 -0
- package/dist/lib/code-editor/text-editor.js +75 -0
- package/dist/lib/code-editor/themes/coze-dark.js +136 -0
- package/dist/lib/code-editor/themes/coze-light.js +142 -0
- package/dist/lib/consts/index.js +38 -0
- package/dist/lib/dev-layout/index.js +69 -0
- package/dist/lib/index.js +110 -0
- package/dist/lib/mermaid-diagram/index.js +174 -0
- package/dist/lib/mermaid-diagram/index.module.js +25 -0
- package/dist/lib/mermaid-diagram/index_module.css +4 -0
- package/dist/lib/mermaid-diagram/use-svg-pan-zoom.js +83 -0
- package/dist/lib/mermaid-diagram/utils.js +98 -0
- package/dist/lib/model-config-editor/basic-type.js +105 -0
- package/dist/lib/model-config-editor/index.module.js +25 -0
- package/dist/lib/model-config-editor/index_module.css +8 -0
- package/dist/lib/model-config-editor/model-config-form.js +149 -0
- package/dist/lib/model-config-editor/popover-type.js +145 -0
- package/dist/lib/model-select/index.js +170 -0
- package/dist/lib/model-select/index.module.js +25 -0
- package/dist/lib/model-select/index_module.css +14 -0
- package/dist/lib/model-select/model-option/index.js +188 -0
- package/dist/lib/model-select/model-option/index.module.js +25 -0
- package/dist/lib/model-select/model-option/index_module.css +23 -0
- package/dist/lib/model-select/model-option-group/index.js +75 -0
- package/dist/lib/prompt-editor/index.js +218 -0
- package/dist/lib/prompt-editor/index.module.js +25 -0
- package/dist/lib/prompt-editor/index_module.css +71 -0
- package/dist/lib/prompt-editor/message-type-select.js +108 -0
- package/dist/lib/schema-editor/index.js +77 -0
- package/dist/lib/utils/base.js +82 -0
- package/dist/lib/utils/model-config.js +57 -0
- package/dist/types/basic-editor/custom-facet.d.ts +2 -0
- package/dist/types/basic-editor/diff.d.ts +15 -0
- package/dist/types/basic-editor/extensions/go-syntax.d.ts +71 -0
- package/dist/types/basic-editor/extensions/go-template.d.ts +1 -0
- package/dist/types/basic-editor/extensions/go-theme.d.ts +2 -0
- package/dist/types/basic-editor/extensions/jinja.d.ts +6 -0
- package/dist/types/basic-editor/extensions/keymap.d.ts +4 -0
- package/dist/types/basic-editor/extensions/language-support.d.ts +2 -0
- package/dist/types/basic-editor/extensions/markdown.d.ts +2 -0
- package/dist/types/basic-editor/extensions/search/dom/icon.d.ts +59 -0
- package/dist/types/basic-editor/extensions/search/dom/match-count.d.ts +14 -0
- package/dist/types/basic-editor/extensions/search/index.d.ts +1 -0
- package/dist/types/basic-editor/extensions/search/panel.d.ts +32 -0
- package/dist/types/basic-editor/extensions/search/theme.d.ts +1 -0
- package/dist/types/basic-editor/extensions/validation.d.ts +10 -0
- package/dist/types/basic-editor/extensions/variable.d.ts +14 -0
- package/dist/types/basic-editor/index.d.ts +28 -0
- package/dist/types/code-editor/code-editor.d.ts +23 -0
- package/dist/types/code-editor/index.d.ts +5 -0
- package/dist/types/code-editor/json-editor.d.ts +17 -0
- package/dist/types/code-editor/raw-text-editor.d.ts +11 -0
- package/dist/types/code-editor/text-editor.d.ts +23 -0
- package/dist/types/code-editor/themes/coze-dark.d.ts +1 -0
- package/dist/types/code-editor/themes/coze-light.d.ts +1 -0
- package/dist/types/consts/index.d.ts +3 -0
- package/dist/types/dev-layout/index.d.ts +13 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/mermaid-diagram/index.d.ts +12 -0
- package/dist/types/mermaid-diagram/use-svg-pan-zoom.d.ts +17 -0
- package/dist/types/mermaid-diagram/utils.d.ts +1 -0
- package/dist/types/model-config-editor/basic-type.d.ts +19 -0
- package/dist/types/model-config-editor/model-config-form.d.ts +14 -0
- package/dist/types/model-config-editor/popover-type.d.ts +25 -0
- package/dist/types/model-select/index.d.ts +38 -0
- package/dist/types/model-select/model-option/index.d.ts +30 -0
- package/dist/types/model-select/model-option-group/index.d.ts +15 -0
- package/dist/types/prompt-editor/index.d.ts +30 -0
- package/dist/types/prompt-editor/message-type-select.d.ts +16 -0
- package/dist/types/schema-editor/index.d.ts +18 -0
- package/dist/types/utils/base.d.ts +10 -0
- package/dist/types/utils/model-config.d.ts +4 -0
- package/package.json +75 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { createTheme, tags as t } from "@coze-editor/editor/preset-code";
|
|
2
|
+
import { EditorView } from "@codemirror/view";
|
|
3
|
+
const colors = {
|
|
4
|
+
background: "#151B27",
|
|
5
|
+
// syntax
|
|
6
|
+
comment: "#FFFFFF63",
|
|
7
|
+
key: "#39E5D7",
|
|
8
|
+
string: "#FF94D2",
|
|
9
|
+
number: "#FF9933",
|
|
10
|
+
boolean: "#78B0FF",
|
|
11
|
+
null: "#78B0FF",
|
|
12
|
+
separator: "#FFFFFFC9"
|
|
13
|
+
};
|
|
14
|
+
const cozeDark = [
|
|
15
|
+
EditorView.theme({
|
|
16
|
+
".cm-completionIcon-property": {
|
|
17
|
+
backgroundImage: 'url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMi4zNTc2IDguMTAzNTVDMTIuMTYyMyA3LjkwODI5IDExLjg0NTcgNy45MDgyOSAxMS42NTA1IDguMTAzNTVMOC4xMDM1NSAxMS42NTA1QzcuOTA4MjkgMTEuODQ1NyA3LjkwODI5IDEyLjE2MjMgOC4xMDM1NSAxMi4zNTc2TDExLjY1MDUgMTUuOTA0NUMxMS44NDU3IDE2LjA5OTggMTIuMTYyMyAxNi4wOTk4IDEyLjM1NzYgMTUuOTA0NUwxNS45MDQ1IDEyLjM1NzZDMTYuMDk5OCAxMi4xNjIzIDE2LjA5OTggMTEuODQ1NyAxNS45MDQ1IDExLjY1MDVMMTIuMzU3NiA4LjEwMzU1WiIgZmlsbD0iI0ZGRkZGRkM5Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS4wMDI2IDEuNDU1NDVDMTEuNjIxNCAxLjA5ODE4IDEyLjM4MzggMS4wOTgxOCAxMy4wMDI2IDEuNDU1NDVMMjAuNjM4IDUuODYzNzRDMjEuMjU2OCA2LjIyMSAyMS42MzggNi44ODEyNiAyMS42MzggNy41OTU3OVYxNi40MTI0QzIxLjYzOCAxNy4xMjY5IDIxLjI1NjggMTcuNzg3MiAyMC42MzggMTguMTQ0NEwxMy4wMDI2IDIyLjU1MjdDMTIuMzgzOCAyMi45MSAxMS42MjE0IDIyLjkxIDExLjAwMjYgMjIuNTUyN0wzLjM2NzE5IDE4LjE0NDRDMi43NDgzOSAxNy43ODcyIDIuMzY3MTkgMTcuMTI2OSAyLjM2NzE5IDE2LjQxMjRWNy41OTU3OUMyLjM2NzE5IDYuODgxMjYgMi43NDgzOSA2LjIyMTAxIDMuMzY3MTkgNS44NjM3NEwxMS4wMDI2IDEuNDU1NDVaTTEyLjAwMjYgMy4xODc1TDE5LjYzOCA3LjU5NTc5VjE2LjQxMjRMMTIuMDAyNiAyMC44MjA3TDQuMzY3MTkgMTYuNDEyNEw0LjM2NzE5IDcuNTk1NzlMMTIuMDAyNiAzLjE4NzVaIiBmaWxsPSIjRkZGRkZGQzkiLz48L3N2Zz4=")',
|
|
18
|
+
backgroundSize: "11px 11px",
|
|
19
|
+
backgroundRepeat: "no-repeat",
|
|
20
|
+
width: "11px",
|
|
21
|
+
height: "11px"
|
|
22
|
+
},
|
|
23
|
+
".cm-completionIcon-property::after": {
|
|
24
|
+
content: '""'
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
createTheme({
|
|
28
|
+
variant: "dark",
|
|
29
|
+
settings: {
|
|
30
|
+
background: colors.background,
|
|
31
|
+
foreground: "#fff",
|
|
32
|
+
caret: "#AEAFAD",
|
|
33
|
+
selection: "#d9d9d942",
|
|
34
|
+
gutterBackground: colors.background,
|
|
35
|
+
gutterForeground: "#FFFFFF63",
|
|
36
|
+
gutterBorderColor: "transparent",
|
|
37
|
+
gutterBorderWidth: 0,
|
|
38
|
+
lineHighlight: "#272e3d36",
|
|
39
|
+
bracketColors: ["#FFEF61", "#DD99FF", "#78B0FF"],
|
|
40
|
+
tooltip: {
|
|
41
|
+
backgroundColor: "#363D4D",
|
|
42
|
+
color: "#fff",
|
|
43
|
+
border: "none"
|
|
44
|
+
},
|
|
45
|
+
completionItemHover: {
|
|
46
|
+
backgroundColor: "#FFFFFF0F"
|
|
47
|
+
},
|
|
48
|
+
completionItemSelected: {
|
|
49
|
+
backgroundColor: "#FFFFFF17"
|
|
50
|
+
},
|
|
51
|
+
completionItemIcon: {
|
|
52
|
+
color: "#FFFFFFC9"
|
|
53
|
+
},
|
|
54
|
+
completionItemLabel: {
|
|
55
|
+
color: "#FFFFFFC9"
|
|
56
|
+
},
|
|
57
|
+
completionItemDetail: {
|
|
58
|
+
color: "#FFFFFF63"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
styles: [
|
|
62
|
+
// json
|
|
63
|
+
{
|
|
64
|
+
tag: t.comment,
|
|
65
|
+
color: colors.comment
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
tag: [t.propertyName],
|
|
69
|
+
color: colors.key
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
tag: [t.string],
|
|
73
|
+
color: colors.string
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
tag: [t.number],
|
|
77
|
+
color: colors.number
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
tag: [t.bool],
|
|
81
|
+
color: colors.boolean
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
tag: [t.null],
|
|
85
|
+
color: colors.null
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
tag: [t.separator],
|
|
89
|
+
color: colors.separator
|
|
90
|
+
},
|
|
91
|
+
// shell
|
|
92
|
+
// curl
|
|
93
|
+
{
|
|
94
|
+
tag: [t.standard(t.variableName)],
|
|
95
|
+
color: "#3BEB84"
|
|
96
|
+
},
|
|
97
|
+
// -X
|
|
98
|
+
{
|
|
99
|
+
tag: [t.attributeName],
|
|
100
|
+
color: "#FF9933"
|
|
101
|
+
},
|
|
102
|
+
// url in string (includes quotes), e.g. "https://..."
|
|
103
|
+
{
|
|
104
|
+
tag: [t.special(t.string)],
|
|
105
|
+
color: "#78B0FF"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
})
|
|
109
|
+
];
|
|
110
|
+
export {
|
|
111
|
+
cozeDark
|
|
112
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { createTheme, tags as t } from "@coze-editor/editor/preset-code";
|
|
2
|
+
import { EditorView } from "@codemirror/view";
|
|
3
|
+
const colors = {
|
|
4
|
+
background: "#fff",
|
|
5
|
+
// syntax
|
|
6
|
+
comment: "#000A298A",
|
|
7
|
+
key: "#00818C",
|
|
8
|
+
string: "#D1009D",
|
|
9
|
+
number: "#C74200",
|
|
10
|
+
boolean: "#2B57D9",
|
|
11
|
+
null: "#2B57D9",
|
|
12
|
+
separator: "#0F1529D1"
|
|
13
|
+
};
|
|
14
|
+
const cozeLight = [
|
|
15
|
+
EditorView.theme({
|
|
16
|
+
".cm-completionIcon-property": {
|
|
17
|
+
backgroundImage: 'url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMi4zNTc2IDguMTAzNTVDMTIuMTYyMyA3LjkwODI5IDExLjg0NTcgNy45MDgyOSAxMS42NTA1IDguMTAzNTVMOC4xMDM1NSAxMS42NTA1QzcuOTA4MjkgMTEuODQ1NyA3LjkwODI5IDEyLjE2MjMgOC4xMDM1NSAxMi4zNTc2TDExLjY1MDUgMTUuOTA0NUMxMS44NDU3IDE2LjA5OTggMTIuMTYyMyAxNi4wOTk4IDEyLjM1NzYgMTUuOTA0NUwxNS45MDQ1IDEyLjM1NzZDMTYuMDk5OCAxMi4xNjIzIDE2LjA5OTggMTEuODQ1NyAxNS45MDQ1IDExLjY1MDVMMTIuMzU3NiA4LjEwMzU1WiIgZmlsbD0iIzA2MDcwOUNDIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS4wMDI2IDEuNDU1NDVDMTEuNjIxNCAxLjA5ODE4IDEyLjM4MzggMS4wOTgxOCAxMy4wMDI2IDEuNDU1NDVMMjAuNjM4IDUuODYzNzRDMjEuMjU2OCA2LjIyMSAyMS42MzggNi44ODEyNiAyMS42MzggNy41OTU3OVYxNi40MTI0QzIxLjYzOCAxNy4xMjY5IDIxLjI1NjggMTcuNzg3MiAyMC42MzggMTguMTQ0NEwxMy4wMDI2IDIyLjU1MjdDMTIuMzgzOCAyMi45MSAxMS42MjE0IDIyLjkxIDExLjAwMjYgMjIuNTUyN0wzLjM2NzE5IDE4LjE0NDRDMi43NDgzOSAxNy43ODcyIDIuMzY3MTkgMTcuMTI2OSAyLjM2NzE5IDE2LjQxMjRWNy41OTU3OUMyLjM2NzE5IDYuODgxMjYgMi43NDgzOSA2LjIyMTAxIDMuMzY3MTkgNS44NjM3NEwxMS4wMDI2IDEuNDU1NDVaTTEyLjAwMjYgMy4xODc1TDE5LjYzOCA3LjU5NTc5VjE2LjQxMjRMMTIuMDAyNiAyMC44MjA3TDQuMzY3MTkgMTYuNDEyNEw0LjM2NzE5IDcuNTk1NzlMMTIuMDAyNiAzLjE4NzVaIiBmaWxsPSIjMDYwNzA5Q0MiLz48L3N2Zz4=")',
|
|
18
|
+
backgroundSize: "11px 11px",
|
|
19
|
+
backgroundRepeat: "no-repeat",
|
|
20
|
+
width: "11px",
|
|
21
|
+
height: "11px"
|
|
22
|
+
},
|
|
23
|
+
".cm-completionIcon-property::after": {
|
|
24
|
+
content: '""'
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
createTheme({
|
|
28
|
+
variant: "light",
|
|
29
|
+
settings: {
|
|
30
|
+
background: colors.background,
|
|
31
|
+
foreground: "#4D4D4C",
|
|
32
|
+
caret: "#AEAFAD",
|
|
33
|
+
selection: "#52649A21",
|
|
34
|
+
gutterBackground: colors.background,
|
|
35
|
+
gutterForeground: "#000A298A",
|
|
36
|
+
gutterBorderColor: "transparent",
|
|
37
|
+
gutterBorderWidth: 0,
|
|
38
|
+
lineHighlight: "#efefef78",
|
|
39
|
+
bracketColors: ["#E4D129", "#AC05FF", "#2B57D9"],
|
|
40
|
+
tooltip: {
|
|
41
|
+
backgroundColor: "var(--coz-bg-max)",
|
|
42
|
+
color: "var(--coz-fg-primary)",
|
|
43
|
+
border: "solid 1px var(--coz-stroke-plus)",
|
|
44
|
+
boxShadow: "var(--coz-shadow-default)",
|
|
45
|
+
borderRadius: "8px"
|
|
46
|
+
},
|
|
47
|
+
tooltipCompletion: {
|
|
48
|
+
backgroundColor: "#FFFFFF",
|
|
49
|
+
color: "#060709CC"
|
|
50
|
+
},
|
|
51
|
+
completionItemHover: {
|
|
52
|
+
backgroundColor: "#5768A114"
|
|
53
|
+
},
|
|
54
|
+
completionItemSelected: {
|
|
55
|
+
backgroundColor: "#52649A21"
|
|
56
|
+
},
|
|
57
|
+
completionItemIcon: {
|
|
58
|
+
color: "#060709CC"
|
|
59
|
+
},
|
|
60
|
+
completionItemLabel: {
|
|
61
|
+
color: "#060709CC"
|
|
62
|
+
},
|
|
63
|
+
completionItemDetail: {
|
|
64
|
+
color: "#2029459E"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
styles: [
|
|
68
|
+
// JSON
|
|
69
|
+
{
|
|
70
|
+
tag: t.comment,
|
|
71
|
+
color: colors.comment
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
tag: [t.propertyName],
|
|
75
|
+
color: colors.key
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
tag: [t.string],
|
|
79
|
+
color: colors.string
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
tag: [t.number],
|
|
83
|
+
color: colors.number
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
tag: [t.bool],
|
|
87
|
+
color: colors.boolean
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
tag: [t.null],
|
|
91
|
+
color: colors.null
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
tag: [t.separator],
|
|
95
|
+
color: colors.separator
|
|
96
|
+
},
|
|
97
|
+
// shell
|
|
98
|
+
// curl
|
|
99
|
+
{
|
|
100
|
+
tag: [t.standard(t.variableName)],
|
|
101
|
+
color: "#00804A"
|
|
102
|
+
},
|
|
103
|
+
// -X
|
|
104
|
+
{
|
|
105
|
+
tag: [t.attributeName],
|
|
106
|
+
color: "#C74200"
|
|
107
|
+
},
|
|
108
|
+
// url in string (includes quotes), e.g. "https://..."
|
|
109
|
+
{
|
|
110
|
+
tag: [t.special(t.string)],
|
|
111
|
+
color: "#2B57D9"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
})
|
|
115
|
+
];
|
|
116
|
+
export {
|
|
117
|
+
cozeLight
|
|
118
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { Typography } from "@coze-arch/coze-design";
|
|
4
|
+
function DevLayout({
|
|
5
|
+
title,
|
|
6
|
+
actionBtns,
|
|
7
|
+
children,
|
|
8
|
+
className,
|
|
9
|
+
style
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ jsxs(
|
|
12
|
+
"div",
|
|
13
|
+
{
|
|
14
|
+
className: classNames("flex flex-col h-full w-full", className),
|
|
15
|
+
style,
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ jsxs(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
className: "h-[40px] px-6 py-2 box-border coz-fg-plus w-full border-0 border-t border-b border-solid flex justify-between items-center",
|
|
21
|
+
style: { background: "#F6F6FB" },
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ jsx(Typography.Text, { strong: true, children: title }),
|
|
24
|
+
actionBtns
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
children
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
DevLayout
|
|
35
|
+
};
|
package/dist/es/index.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PromptBasicEditor
|
|
3
|
+
} from "./basic-editor";
|
|
4
|
+
import { PromptEditor } from "./prompt-editor";
|
|
5
|
+
import {
|
|
6
|
+
PromptDiffEditor
|
|
7
|
+
} from "./basic-editor/diff";
|
|
8
|
+
import {
|
|
9
|
+
BaseJsonEditor,
|
|
10
|
+
BaseRawTextEditor,
|
|
11
|
+
EditorProvider
|
|
12
|
+
} from "./code-editor";
|
|
13
|
+
import { SchemaEditor } from "./schema-editor";
|
|
14
|
+
import { ModelSelect } from "./model-select";
|
|
15
|
+
import { BasicModelConfigEditor } from "./model-config-editor/basic-type";
|
|
16
|
+
import { PopoverModelConfigEdiotr } from "./model-config-editor/popover-type";
|
|
17
|
+
import { DevLayout } from "./dev-layout";
|
|
18
|
+
import { useEditor, useInjector, useLatest } from "@coze-editor/editor/react";
|
|
19
|
+
import regexpDecorator, {
|
|
20
|
+
updateRegexpDecorations
|
|
21
|
+
} from "@coze-editor/extension-regexp-decorator";
|
|
22
|
+
import { Decoration, EditorView, WidgetType, keymap } from "@codemirror/view";
|
|
23
|
+
import { EditorSelection } from "@codemirror/state";
|
|
24
|
+
import {
|
|
25
|
+
Prec,
|
|
26
|
+
StateEffect,
|
|
27
|
+
StateField
|
|
28
|
+
} from "@codemirror/state";
|
|
29
|
+
import { cunstomFacet } from "./basic-editor/custom-facet";
|
|
30
|
+
import {
|
|
31
|
+
insertFourSpaces,
|
|
32
|
+
deleteMarkupBackward,
|
|
33
|
+
insertNewlineContinueMarkup
|
|
34
|
+
} from "./basic-editor/extensions/keymap";
|
|
35
|
+
import { MermaidDiagram } from "./mermaid-diagram";
|
|
36
|
+
export {
|
|
37
|
+
BaseJsonEditor,
|
|
38
|
+
BaseRawTextEditor,
|
|
39
|
+
BasicModelConfigEditor,
|
|
40
|
+
Decoration,
|
|
41
|
+
DevLayout,
|
|
42
|
+
EditorProvider,
|
|
43
|
+
EditorSelection,
|
|
44
|
+
EditorView,
|
|
45
|
+
MermaidDiagram,
|
|
46
|
+
ModelSelect,
|
|
47
|
+
PopoverModelConfigEdiotr,
|
|
48
|
+
Prec,
|
|
49
|
+
PromptBasicEditor,
|
|
50
|
+
PromptDiffEditor,
|
|
51
|
+
PromptEditor,
|
|
52
|
+
SchemaEditor,
|
|
53
|
+
StateEffect,
|
|
54
|
+
StateField,
|
|
55
|
+
WidgetType,
|
|
56
|
+
cunstomFacet,
|
|
57
|
+
deleteMarkupBackward,
|
|
58
|
+
insertFourSpaces,
|
|
59
|
+
insertNewlineContinueMarkup,
|
|
60
|
+
keymap,
|
|
61
|
+
regexpDecorator,
|
|
62
|
+
updateRegexpDecorations,
|
|
63
|
+
useEditor,
|
|
64
|
+
useInjector,
|
|
65
|
+
useLatest
|
|
66
|
+
};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __async = (__this, __arguments, generator) => {
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
var fulfilled = (value) => {
|
|
23
|
+
try {
|
|
24
|
+
step(generator.next(value));
|
|
25
|
+
} catch (e) {
|
|
26
|
+
reject(e);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var rejected = (value) => {
|
|
30
|
+
try {
|
|
31
|
+
step(generator.throw(value));
|
|
32
|
+
} catch (e) {
|
|
33
|
+
reject(e);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
import { jsx } from "react/jsx-runtime";
|
|
41
|
+
import {
|
|
42
|
+
useState,
|
|
43
|
+
useEffect,
|
|
44
|
+
useRef,
|
|
45
|
+
forwardRef,
|
|
46
|
+
useImperativeHandle
|
|
47
|
+
} from "react";
|
|
48
|
+
import mermaid from "mermaid";
|
|
49
|
+
import { isEmpty, uniqueId } from "lodash-es";
|
|
50
|
+
import cls from "classnames";
|
|
51
|
+
import { exportImage } from "./utils";
|
|
52
|
+
import { useSvgPanZoom } from "./use-svg-pan-zoom";
|
|
53
|
+
import styles from "./index.module";
|
|
54
|
+
const DEFAULT_THEME = {
|
|
55
|
+
theme: "base",
|
|
56
|
+
themeVariables: {
|
|
57
|
+
background: "#f9fafb",
|
|
58
|
+
fontSize: "12px",
|
|
59
|
+
primaryColor: "#E5F6FF",
|
|
60
|
+
primaryTextColor: "rgba(0,0,0,0.8)",
|
|
61
|
+
secondaryColor: "#F5EBFF",
|
|
62
|
+
primaryBorderColor: "#73A6FF",
|
|
63
|
+
secondaryBorderColor: "#BE8FED",
|
|
64
|
+
secondaryTextColor: "rgba(0,0,0,0.56)",
|
|
65
|
+
tertiaryColor: "#FFF6CC",
|
|
66
|
+
tertiaryBorderColor: "#FFBC52",
|
|
67
|
+
tertiaryTextColor: "rgba(0,0,0,0.3)",
|
|
68
|
+
noteBkgColor: "#F3F4F6",
|
|
69
|
+
noteTextColor: "rgba(0,0,0,0.55)",
|
|
70
|
+
noteBorderColor: "#A8A8A8",
|
|
71
|
+
lineColor: "rgba(0,0,0,0.3)",
|
|
72
|
+
textColor: "rgba(0,0,0,0.8)",
|
|
73
|
+
errorBkgColor: "#FFEBEA",
|
|
74
|
+
errorTextColor: "#FF3B30"
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const MermaidDiagram = /* @__PURE__ */ forwardRef(function MermaidDiagram2({ chart, className }, outerRef) {
|
|
78
|
+
const ref = useRef(null);
|
|
79
|
+
const id = useRef(`mermaid-diagram-${uniqueId()}`);
|
|
80
|
+
const svgId = `svg-${id.current}`;
|
|
81
|
+
const [preChart, setPreChart] = useState("");
|
|
82
|
+
const updateChart = (chartStr) => __async(this, null, function* () {
|
|
83
|
+
var _a;
|
|
84
|
+
if (isEmpty(chartStr)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const isValidChart = yield mermaid.parse(chartStr, {
|
|
89
|
+
suppressErrors: true
|
|
90
|
+
});
|
|
91
|
+
if (!isValidChart) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const renderResult = yield mermaid.render(
|
|
95
|
+
svgId,
|
|
96
|
+
chartStr,
|
|
97
|
+
ref.current || void 0
|
|
98
|
+
);
|
|
99
|
+
if (ref.current && renderResult.svg) {
|
|
100
|
+
ref.current.innerHTML = renderResult.svg;
|
|
101
|
+
(_a = renderResult.bindFunctions) == null ? void 0 : _a.call(renderResult, ref.current);
|
|
102
|
+
setPreChart(chartStr);
|
|
103
|
+
}
|
|
104
|
+
} catch (e) {
|
|
105
|
+
if (chartStr !== preChart) {
|
|
106
|
+
updateChart(preChart);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
mermaid.initialize(__spreadProps(__spreadValues({}, DEFAULT_THEME), {
|
|
112
|
+
startOnLoad: false,
|
|
113
|
+
logLevel: "error",
|
|
114
|
+
suppressErrorRendering: true
|
|
115
|
+
}));
|
|
116
|
+
}, []);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
updateChart(chart);
|
|
119
|
+
}, [chart]);
|
|
120
|
+
const { zoomIn, zoomOut, fit } = useSvgPanZoom({
|
|
121
|
+
svgSelector: `#${svgId}`,
|
|
122
|
+
viewportSelector: id.current,
|
|
123
|
+
renderedChart: preChart
|
|
124
|
+
});
|
|
125
|
+
useImperativeHandle(outerRef, () => ({
|
|
126
|
+
zoomIn,
|
|
127
|
+
zoomOut,
|
|
128
|
+
fit,
|
|
129
|
+
exportImg: () => __async(this, null, function* () {
|
|
130
|
+
return exportImage(`#${svgId}`);
|
|
131
|
+
})
|
|
132
|
+
}));
|
|
133
|
+
return /* @__PURE__ */ jsx(
|
|
134
|
+
"div",
|
|
135
|
+
{
|
|
136
|
+
id: id.current,
|
|
137
|
+
className: cls(
|
|
138
|
+
"w-full min-w-[330px] h-[300px]",
|
|
139
|
+
styles.container,
|
|
140
|
+
className
|
|
141
|
+
),
|
|
142
|
+
ref
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
});
|
|
146
|
+
export {
|
|
147
|
+
MermaidDiagram
|
|
148
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
const useSvgPanZoom = ({
|
|
3
|
+
svgSelector,
|
|
4
|
+
viewportSelector,
|
|
5
|
+
renderedChart,
|
|
6
|
+
zoomStepLength = 0.25
|
|
7
|
+
}) => {
|
|
8
|
+
const panZoomTigerRef = useRef(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!renderedChart) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
import("svg-pan-zoom").then((svgPanZoom) => {
|
|
14
|
+
if (panZoomTigerRef.current) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const panZoomTiger = svgPanZoom.default(svgSelector, {
|
|
18
|
+
viewportSelector,
|
|
19
|
+
mouseWheelZoomEnabled: false
|
|
20
|
+
});
|
|
21
|
+
panZoomTigerRef.current = panZoomTiger;
|
|
22
|
+
});
|
|
23
|
+
}, [renderedChart]);
|
|
24
|
+
const zoomIn = () => {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
(_b = panZoomTigerRef.current) == null ? void 0 : _b.zoom(
|
|
27
|
+
((_a = panZoomTigerRef.current) == null ? void 0 : _a.getZoom()) + zoomStepLength
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
const zoomOut = () => {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
(_b = panZoomTigerRef.current) == null ? void 0 : _b.zoom(
|
|
33
|
+
((_a = panZoomTigerRef.current) == null ? void 0 : _a.getZoom()) - zoomStepLength
|
|
34
|
+
);
|
|
35
|
+
};
|
|
36
|
+
const fit = () => {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
(_a = panZoomTigerRef.current) == null ? void 0 : _a.fit();
|
|
39
|
+
(_b = panZoomTigerRef.current) == null ? void 0 : _b.center();
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
zoomIn,
|
|
43
|
+
zoomOut,
|
|
44
|
+
fit
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
useSvgPanZoom
|
|
49
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import { toBase64 } from "js-base64";
|
|
22
|
+
const getFileName = (extension) => `mermaid-diagram-${(/* @__PURE__ */ new Date()).getTime()}.${extension}`;
|
|
23
|
+
const simulateDownload = (download, href) => {
|
|
24
|
+
const a = document.createElement("a");
|
|
25
|
+
a.download = download;
|
|
26
|
+
a.href = href;
|
|
27
|
+
a.click();
|
|
28
|
+
a.remove();
|
|
29
|
+
};
|
|
30
|
+
const downloadImage = (context, image) => () => {
|
|
31
|
+
const { canvas } = context;
|
|
32
|
+
context.drawImage(image, 0, 0, canvas.width, canvas.height);
|
|
33
|
+
simulateDownload(
|
|
34
|
+
getFileName("png"),
|
|
35
|
+
canvas.toDataURL("image/png").replace("image/png", "image/octet-stream")
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
const getBase64SVG = (svg, width, height) => {
|
|
39
|
+
if (svg) {
|
|
40
|
+
svg = svg.cloneNode(true);
|
|
41
|
+
}
|
|
42
|
+
height && (svg == null ? void 0 : svg.setAttribute("height", `${height}px`));
|
|
43
|
+
width && (svg == null ? void 0 : svg.setAttribute("width", `${width}px`));
|
|
44
|
+
const svgString = svg.outerHTML.replaceAll("<br>", "<br/>").replaceAll(/<img([^>]*)>/g, (m, g) => `<img ${g} />`);
|
|
45
|
+
return toBase64(`<?xml version="1.0" encoding="UTF-8"?>
|
|
46
|
+
<?xml-stylesheet href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" type="text/css"?>
|
|
47
|
+
${svgString}`);
|
|
48
|
+
};
|
|
49
|
+
const exportImage = (svgSelector) => __async(void 0, null, function* () {
|
|
50
|
+
yield new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
51
|
+
const canvas = document.createElement("canvas");
|
|
52
|
+
const svg = document.querySelector(svgSelector);
|
|
53
|
+
if (!svg) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const box = svg.getBoundingClientRect();
|
|
57
|
+
const multiplier = 2;
|
|
58
|
+
canvas.width = box.width * multiplier;
|
|
59
|
+
canvas.height = box.height * multiplier;
|
|
60
|
+
const context = canvas.getContext("2d");
|
|
61
|
+
if (!context) {
|
|
62
|
+
throw new Error("context not found");
|
|
63
|
+
}
|
|
64
|
+
context.fillStyle = "white";
|
|
65
|
+
context.fillRect(0, 0, canvas.width, canvas.height);
|
|
66
|
+
const image = new Image();
|
|
67
|
+
image.addEventListener("load", () => {
|
|
68
|
+
downloadImage(context, image)();
|
|
69
|
+
});
|
|
70
|
+
image.src = `data:image/svg+xml;base64,${getBase64SVG(svg, canvas.width, canvas.height)}`;
|
|
71
|
+
});
|
|
72
|
+
export {
|
|
73
|
+
exportImage
|
|
74
|
+
};
|