@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.
Files changed (149) hide show
  1. package/README.md +1 -0
  2. package/dist/es/basic-editor/custom-facet.js +9 -0
  3. package/dist/es/basic-editor/diff.js +138 -0
  4. package/dist/es/basic-editor/extensions/go-syntax.js +122 -0
  5. package/dist/es/basic-editor/extensions/go-template.js +16 -0
  6. package/dist/es/basic-editor/extensions/go-theme.js +1071 -0
  7. package/dist/es/basic-editor/extensions/jinja.js +80 -0
  8. package/dist/es/basic-editor/extensions/keymap.js +442 -0
  9. package/dist/es/basic-editor/extensions/language-support.js +12 -0
  10. package/dist/es/basic-editor/extensions/markdown.js +58 -0
  11. package/dist/es/basic-editor/extensions/search/dom/icon.js +250 -0
  12. package/dist/es/basic-editor/extensions/search/dom/match-count.js +33 -0
  13. package/dist/es/basic-editor/extensions/search/index.js +18 -0
  14. package/dist/es/basic-editor/extensions/search/panel.js +418 -0
  15. package/dist/es/basic-editor/extensions/search/theme.js +184 -0
  16. package/dist/es/basic-editor/extensions/validation.js +84 -0
  17. package/dist/es/basic-editor/extensions/validation.module.js +5 -0
  18. package/dist/es/basic-editor/extensions/validation_module.css +7 -0
  19. package/dist/es/basic-editor/extensions/variable.js +178 -0
  20. package/dist/es/basic-editor/index.js +171 -0
  21. package/dist/es/code-editor/code-editor.js +83 -0
  22. package/dist/es/code-editor/index.js +12 -0
  23. package/dist/es/code-editor/json-editor.js +157 -0
  24. package/dist/es/code-editor/raw-text-editor.js +46 -0
  25. package/dist/es/code-editor/text-editor.js +41 -0
  26. package/dist/es/code-editor/themes/coze-dark.js +112 -0
  27. package/dist/es/code-editor/themes/coze-light.js +118 -0
  28. package/dist/es/consts/index.js +12 -0
  29. package/dist/es/dev-layout/index.js +35 -0
  30. package/dist/es/index.js +66 -0
  31. package/dist/es/mermaid-diagram/index.js +148 -0
  32. package/dist/es/mermaid-diagram/index.module.js +5 -0
  33. package/dist/es/mermaid-diagram/index_module.css +4 -0
  34. package/dist/es/mermaid-diagram/use-svg-pan-zoom.js +49 -0
  35. package/dist/es/mermaid-diagram/utils.js +74 -0
  36. package/dist/es/model-config-editor/basic-type.js +73 -0
  37. package/dist/es/model-config-editor/index.module.js +5 -0
  38. package/dist/es/model-config-editor/index_module.css +8 -0
  39. package/dist/es/model-config-editor/model-config-form.js +130 -0
  40. package/dist/es/model-config-editor/popover-type.js +118 -0
  41. package/dist/es/model-select/index.js +136 -0
  42. package/dist/es/model-select/index.module.js +5 -0
  43. package/dist/es/model-select/index_module.css +14 -0
  44. package/dist/es/model-select/model-option/index.js +161 -0
  45. package/dist/es/model-select/model-option/index.module.js +5 -0
  46. package/dist/es/model-select/model-option/index_module.css +23 -0
  47. package/dist/es/model-select/model-option-group/index.js +44 -0
  48. package/dist/es/prompt-editor/index.js +188 -0
  49. package/dist/es/prompt-editor/index.module.js +5 -0
  50. package/dist/es/prompt-editor/index_module.css +71 -0
  51. package/dist/es/prompt-editor/message-type-select.js +74 -0
  52. package/dist/es/schema-editor/index.js +43 -0
  53. package/dist/es/utils/base.js +53 -0
  54. package/dist/es/utils/model-config.js +32 -0
  55. package/dist/lib/basic-editor/custom-facet.js +33 -0
  56. package/dist/lib/basic-editor/diff.js +167 -0
  57. package/dist/lib/basic-editor/extensions/go-syntax.js +146 -0
  58. package/dist/lib/basic-editor/extensions/go-template.js +50 -0
  59. package/dist/lib/basic-editor/extensions/go-theme.js +1091 -0
  60. package/dist/lib/basic-editor/extensions/jinja.js +100 -0
  61. package/dist/lib/basic-editor/extensions/keymap.js +465 -0
  62. package/dist/lib/basic-editor/extensions/language-support.js +32 -0
  63. package/dist/lib/basic-editor/extensions/markdown.js +78 -0
  64. package/dist/lib/basic-editor/extensions/search/dom/icon.js +291 -0
  65. package/dist/lib/basic-editor/extensions/search/dom/match-count.js +67 -0
  66. package/dist/lib/basic-editor/extensions/search/index.js +38 -0
  67. package/dist/lib/basic-editor/extensions/search/panel.js +429 -0
  68. package/dist/lib/basic-editor/extensions/search/theme.js +208 -0
  69. package/dist/lib/basic-editor/extensions/validation.js +118 -0
  70. package/dist/lib/basic-editor/extensions/validation.module.js +25 -0
  71. package/dist/lib/basic-editor/extensions/validation_module.css +7 -0
  72. package/dist/lib/basic-editor/extensions/variable.js +190 -0
  73. package/dist/lib/basic-editor/index.js +193 -0
  74. package/dist/lib/code-editor/code-editor.js +117 -0
  75. package/dist/lib/code-editor/index.js +40 -0
  76. package/dist/lib/code-editor/json-editor.js +184 -0
  77. package/dist/lib/code-editor/raw-text-editor.js +70 -0
  78. package/dist/lib/code-editor/text-editor.js +75 -0
  79. package/dist/lib/code-editor/themes/coze-dark.js +136 -0
  80. package/dist/lib/code-editor/themes/coze-light.js +142 -0
  81. package/dist/lib/consts/index.js +38 -0
  82. package/dist/lib/dev-layout/index.js +69 -0
  83. package/dist/lib/index.js +110 -0
  84. package/dist/lib/mermaid-diagram/index.js +174 -0
  85. package/dist/lib/mermaid-diagram/index.module.js +25 -0
  86. package/dist/lib/mermaid-diagram/index_module.css +4 -0
  87. package/dist/lib/mermaid-diagram/use-svg-pan-zoom.js +83 -0
  88. package/dist/lib/mermaid-diagram/utils.js +98 -0
  89. package/dist/lib/model-config-editor/basic-type.js +105 -0
  90. package/dist/lib/model-config-editor/index.module.js +25 -0
  91. package/dist/lib/model-config-editor/index_module.css +8 -0
  92. package/dist/lib/model-config-editor/model-config-form.js +149 -0
  93. package/dist/lib/model-config-editor/popover-type.js +145 -0
  94. package/dist/lib/model-select/index.js +170 -0
  95. package/dist/lib/model-select/index.module.js +25 -0
  96. package/dist/lib/model-select/index_module.css +14 -0
  97. package/dist/lib/model-select/model-option/index.js +188 -0
  98. package/dist/lib/model-select/model-option/index.module.js +25 -0
  99. package/dist/lib/model-select/model-option/index_module.css +23 -0
  100. package/dist/lib/model-select/model-option-group/index.js +75 -0
  101. package/dist/lib/prompt-editor/index.js +218 -0
  102. package/dist/lib/prompt-editor/index.module.js +25 -0
  103. package/dist/lib/prompt-editor/index_module.css +71 -0
  104. package/dist/lib/prompt-editor/message-type-select.js +108 -0
  105. package/dist/lib/schema-editor/index.js +77 -0
  106. package/dist/lib/utils/base.js +82 -0
  107. package/dist/lib/utils/model-config.js +57 -0
  108. package/dist/types/basic-editor/custom-facet.d.ts +2 -0
  109. package/dist/types/basic-editor/diff.d.ts +15 -0
  110. package/dist/types/basic-editor/extensions/go-syntax.d.ts +71 -0
  111. package/dist/types/basic-editor/extensions/go-template.d.ts +1 -0
  112. package/dist/types/basic-editor/extensions/go-theme.d.ts +2 -0
  113. package/dist/types/basic-editor/extensions/jinja.d.ts +6 -0
  114. package/dist/types/basic-editor/extensions/keymap.d.ts +4 -0
  115. package/dist/types/basic-editor/extensions/language-support.d.ts +2 -0
  116. package/dist/types/basic-editor/extensions/markdown.d.ts +2 -0
  117. package/dist/types/basic-editor/extensions/search/dom/icon.d.ts +59 -0
  118. package/dist/types/basic-editor/extensions/search/dom/match-count.d.ts +14 -0
  119. package/dist/types/basic-editor/extensions/search/index.d.ts +1 -0
  120. package/dist/types/basic-editor/extensions/search/panel.d.ts +32 -0
  121. package/dist/types/basic-editor/extensions/search/theme.d.ts +1 -0
  122. package/dist/types/basic-editor/extensions/validation.d.ts +10 -0
  123. package/dist/types/basic-editor/extensions/variable.d.ts +14 -0
  124. package/dist/types/basic-editor/index.d.ts +28 -0
  125. package/dist/types/code-editor/code-editor.d.ts +23 -0
  126. package/dist/types/code-editor/index.d.ts +5 -0
  127. package/dist/types/code-editor/json-editor.d.ts +17 -0
  128. package/dist/types/code-editor/raw-text-editor.d.ts +11 -0
  129. package/dist/types/code-editor/text-editor.d.ts +23 -0
  130. package/dist/types/code-editor/themes/coze-dark.d.ts +1 -0
  131. package/dist/types/code-editor/themes/coze-light.d.ts +1 -0
  132. package/dist/types/consts/index.d.ts +3 -0
  133. package/dist/types/dev-layout/index.d.ts +13 -0
  134. package/dist/types/index.d.ts +19 -0
  135. package/dist/types/mermaid-diagram/index.d.ts +12 -0
  136. package/dist/types/mermaid-diagram/use-svg-pan-zoom.d.ts +17 -0
  137. package/dist/types/mermaid-diagram/utils.d.ts +1 -0
  138. package/dist/types/model-config-editor/basic-type.d.ts +19 -0
  139. package/dist/types/model-config-editor/model-config-form.d.ts +14 -0
  140. package/dist/types/model-config-editor/popover-type.d.ts +25 -0
  141. package/dist/types/model-select/index.d.ts +38 -0
  142. package/dist/types/model-select/model-option/index.d.ts +30 -0
  143. package/dist/types/model-select/model-option-group/index.d.ts +15 -0
  144. package/dist/types/prompt-editor/index.d.ts +30 -0
  145. package/dist/types/prompt-editor/message-type-select.d.ts +16 -0
  146. package/dist/types/schema-editor/index.d.ts +18 -0
  147. package/dist/types/utils/base.d.ts +10 -0
  148. package/dist/types/utils/model-config.d.ts +4 -0
  149. package/package.json +75 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # @cozeloop/prompt-components
@@ -0,0 +1,9 @@
1
+ import { Facet } from "@codemirror/state";
2
+ const cunstomFacet = Facet.define({
3
+ combine(values) {
4
+ return values[values.length - 1];
5
+ }
6
+ });
7
+ export {
8
+ cunstomFacet
9
+ };
@@ -0,0 +1,138 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useImperativeHandle, useRef } from "react";
3
+ import {
4
+ EditorProvider,
5
+ goToNextChunk,
6
+ goToPreviousChunk,
7
+ MergeViewRenderer
8
+ } from "@coze-editor/editor/react";
9
+ import preset from "@coze-editor/editor/preset-prompt";
10
+ import { EditorView } from "@codemirror/view";
11
+ import MarkdownHighlight from "./extensions/markdown";
12
+ import LanguageSupport from "./extensions/language-support";
13
+ import JinjaHighlight from "./extensions/jinja";
14
+ import { cunstomFacet } from "./custom-facet";
15
+ const extensions = [
16
+ // diff theme
17
+ EditorView.theme({
18
+ "&.cm-merge-b .cm-changedLine": {
19
+ background: "transparent !important"
20
+ },
21
+ "&.cm-merge-b .cm-line": {
22
+ paddingLeft: "12px !important"
23
+ },
24
+ "&.cm-merge-b .cm-changedText": {
25
+ background: "rgba(34,184,24,0.3)"
26
+ },
27
+ "&.cm-merge-a .cm-changedText, .cm-deletedChunk .cm-deletedText": {
28
+ background: "rgba(238,68,51,0.3)"
29
+ }
30
+ })
31
+ ];
32
+ const PromptDiffEditor = forwardRef(
33
+ ({
34
+ oldValue,
35
+ newValue,
36
+ autoScrollToBottom,
37
+ children,
38
+ editorAble,
39
+ onChange
40
+ }, ref) => {
41
+ const editorRef = useRef(null);
42
+ useImperativeHandle(ref, () => ({
43
+ goToPreviousChunk: () => {
44
+ var _a;
45
+ const view = (_a = editorRef.current) == null ? void 0 : _a.$view;
46
+ if (!view) {
47
+ return;
48
+ }
49
+ goToPreviousChunk(view);
50
+ },
51
+ goToNextChunk: () => {
52
+ var _a;
53
+ const view = (_a = editorRef.current) == null ? void 0 : _a.$view;
54
+ if (!view) {
55
+ return;
56
+ }
57
+ goToNextChunk(view);
58
+ }
59
+ }));
60
+ return /* @__PURE__ */ jsxs(EditorProvider, { children: [
61
+ /* @__PURE__ */ jsx(
62
+ MergeViewRenderer,
63
+ {
64
+ plugins: preset,
65
+ domProps: {
66
+ style: {
67
+ flex: 1,
68
+ fontSize: 12,
69
+ width: "100%"
70
+ }
71
+ },
72
+ mergeConfig: {
73
+ gutter: true,
74
+ collapseUnchanged: {
75
+ margin: 3,
76
+ minSize: 4
77
+ },
78
+ diffConfig: {
79
+ scanLimit: 3e3
80
+ }
81
+ },
82
+ a: {
83
+ defaultValue: oldValue,
84
+ extensions: [
85
+ ...extensions,
86
+ cunstomFacet.of({
87
+ id: "a",
88
+ oldValue,
89
+ newValue
90
+ })
91
+ ],
92
+ options: {
93
+ editable: false,
94
+ readOnly: true
95
+ }
96
+ },
97
+ b: {
98
+ defaultValue: newValue,
99
+ extensions: [
100
+ ...extensions,
101
+ cunstomFacet.of({
102
+ id: "b",
103
+ oldValue,
104
+ newValue
105
+ })
106
+ ],
107
+ options: {
108
+ editable: editorAble,
109
+ readOnly: !editorAble
110
+ }
111
+ },
112
+ didMount: (editor) => {
113
+ if (autoScrollToBottom) {
114
+ editor.b.$view.dispatch({
115
+ effects: EditorView.scrollIntoView(
116
+ editor.b.$view.state.doc.length
117
+ )
118
+ });
119
+ }
120
+ if (onChange) {
121
+ editor.b.$on("change", (e) => {
122
+ onChange(e.value);
123
+ });
124
+ }
125
+ editorRef.current = editor.a;
126
+ }
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsx(LanguageSupport, {}),
130
+ /* @__PURE__ */ jsx(JinjaHighlight, {}),
131
+ /* @__PURE__ */ jsx(MarkdownHighlight, {}),
132
+ children
133
+ ] });
134
+ }
135
+ );
136
+ export {
137
+ PromptDiffEditor
138
+ };
@@ -0,0 +1,122 @@
1
+ const tmLanguage = {
2
+ foldingStartMarker: "\\{\\{\\s*(?:if|with|range)\\b",
3
+ foldingStopMarker: "\\{\\{\\s*(?:else|end)\\b",
4
+ name: "go-template",
5
+ patterns: [
6
+ {
7
+ begin: "\\{\\{",
8
+ beginCaptures: {
9
+ "0": {
10
+ name: "punctuation.section.embedded.begin.gotemplate"
11
+ }
12
+ },
13
+ end: "\\}\\}",
14
+ endCaptures: {
15
+ "0": {
16
+ name: "punctuation.section.embedded.end.gotemplate"
17
+ }
18
+ },
19
+ patterns: [
20
+ {
21
+ match: ":=",
22
+ name: "keyword.operator.initialize.gotemplate"
23
+ },
24
+ {
25
+ match: "\\|",
26
+ name: "keyword.operator.pipe.gotemplate"
27
+ },
28
+ {
29
+ match: "[.$][\\w]*",
30
+ name: "variable.other.gotemplate"
31
+ },
32
+ {
33
+ match: "\\b(if|else|range|template|with|end|nil|with|define|block)\\b",
34
+ name: "keyword.control.gotemplate"
35
+ },
36
+ {
37
+ match: "\\b(and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge)\\b",
38
+ name: "support.function.builtin.gotemplate"
39
+ },
40
+ {
41
+ begin: "/\\*",
42
+ end: "\\*/",
43
+ name: "comment.block.gotemplate"
44
+ },
45
+ {
46
+ begin: '"',
47
+ beginCaptures: {
48
+ "0": {
49
+ name: "punctuation.definition.string.begin.gotemplate"
50
+ }
51
+ },
52
+ end: '"',
53
+ endCaptures: {
54
+ "0": {
55
+ name: "punctuation.definition.string.end.gotemplate"
56
+ }
57
+ },
58
+ name: "string.quoted.double.gotemplate",
59
+ patterns: [
60
+ {
61
+ include: "#string_placeholder"
62
+ },
63
+ {
64
+ include: "#string_escaped_char"
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ begin: "`",
70
+ beginCaptures: {
71
+ "0": {
72
+ name: "punctuation.definition.string.begin.gotemplate"
73
+ }
74
+ },
75
+ end: "`",
76
+ endCaptures: {
77
+ "0": {
78
+ name: "punctuation.definition.string.end.gotemplate"
79
+ }
80
+ },
81
+ name: "string.quoted.raw.gotemplate",
82
+ patterns: [
83
+ {
84
+ include: "#string_placeholder"
85
+ }
86
+ ]
87
+ }
88
+ ]
89
+ }
90
+ ],
91
+ repository: {
92
+ string_escaped_char: {
93
+ patterns: [
94
+ {
95
+ match: `\\\\(\\\\|[abfnrtv'"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[0-7]{3})`,
96
+ name: "constant.character.escape.gotemplate"
97
+ },
98
+ {
99
+ match: "\\\\.",
100
+ name: "invalid.illegal.unknown-escape.gotemplate"
101
+ }
102
+ ]
103
+ },
104
+ string_placeholder: {
105
+ patterns: [
106
+ {
107
+ match: "(?x)%\n (\\d+\\$)? # field (argument #)\n [#0\\- +']* # flags\n [,;:_]? # separator character (AltiVec)\n ((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n (\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n [diouxXDOUeEfFgGaAcCsSqpnvtTbyYhHmMzZ%] # conversion type\n ",
108
+ name: "constant.other.placeholder.gotemplate"
109
+ },
110
+ {
111
+ match: "%",
112
+ name: "invalid.illegal.placeholder.gotemplate"
113
+ }
114
+ ]
115
+ }
116
+ },
117
+ scopeName: "source.gotemplate",
118
+ uuid: "43606de8-c638-11e2-b661-6711676f99ca"
119
+ };
120
+ export {
121
+ tmLanguage
122
+ };
@@ -0,0 +1,16 @@
1
+ import { createOnigurumaEngine } from "shiki/engine/oniguruma";
2
+ import { createHighlighterCore } from "shiki/core";
3
+ import shiki from "codemirror-shiki";
4
+ const highlighter = createHighlighterCore({
5
+ langs: [import("./go-syntax").then((mod) => mod.tmLanguage)],
6
+ themes: [import("./go-theme")],
7
+ engine: createOnigurumaEngine(import("shiki/wasm"))
8
+ });
9
+ const goExtension = shiki({
10
+ highlighter,
11
+ language: "go-template",
12
+ theme: "one-light"
13
+ });
14
+ export {
15
+ goExtension
16
+ };