@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
@@ -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,12 @@
1
+ const VARIABLE_MAX_LEN = 50;
2
+ const modelConfigLabelMap = {
3
+ temperature: "生成随机性",
4
+ max_tokens: "最大回复长度",
5
+ top_p: "Top P"
6
+ };
7
+ const DEFAULT_MAX_TOKENS = 4096;
8
+ export {
9
+ DEFAULT_MAX_TOKENS,
10
+ VARIABLE_MAX_LEN,
11
+ modelConfigLabelMap
12
+ };
@@ -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
+ };
@@ -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,5 @@
1
+ import "./index_module.css";
2
+ var index_module_default = { "container": "container_920ec" };
3
+ export {
4
+ index_module_default as default
5
+ };
@@ -0,0 +1,4 @@
1
+ .container_920ec > svg {
2
+ max-width: 100% !important;
3
+ height: 100%;
4
+ }
@@ -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
+ };