@flowgram.ai/form-materials 0.1.0-alpha.13 → 0.1.0-alpha.15

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 (477) hide show
  1. package/bin/run.sh +6 -0
  2. package/dist/cjs/components/assign-row/index.js +112 -0
  3. package/dist/cjs/components/assign-row/types.js +18 -0
  4. package/dist/cjs/components/assign-rows/index.js +85 -0
  5. package/dist/cjs/components/batch-outputs/index.js +91 -0
  6. package/dist/cjs/components/batch-outputs/styles.js +60 -0
  7. package/dist/cjs/components/batch-outputs/types.js +18 -0
  8. package/dist/cjs/components/batch-variable-selector/index.js +53 -0
  9. package/dist/cjs/components/blur-input/index.js +64 -0
  10. package/dist/cjs/components/code-editor/editor.js +117 -0
  11. package/dist/cjs/components/code-editor/index.js +57 -0
  12. package/dist/cjs/components/code-editor/init-worker.js +56 -0
  13. package/dist/cjs/components/code-editor/language-features.js +21 -0
  14. package/dist/cjs/components/code-editor/theme/dark.js +188 -0
  15. package/dist/cjs/components/code-editor/theme/index.js +11 -0
  16. package/dist/cjs/components/code-editor/theme/light.js +195 -0
  17. package/dist/cjs/components/code-editor/utils.js +42 -0
  18. package/dist/cjs/components/code-editor-mini/index.js +66 -0
  19. package/dist/cjs/components/condition-row/constants.js +165 -0
  20. package/dist/cjs/components/condition-row/hooks/useOp.js +78 -0
  21. package/dist/cjs/components/condition-row/hooks/useRule.js +68 -0
  22. package/dist/cjs/components/condition-row/index.js +123 -0
  23. package/dist/cjs/components/condition-row/styles.js +77 -0
  24. package/dist/cjs/components/condition-row/types.js +52 -0
  25. package/dist/cjs/components/constant-input/index.js +80 -0
  26. package/dist/cjs/components/constant-input/types.js +18 -0
  27. package/dist/cjs/components/db-condition-row/hooks/use-left.js +86 -0
  28. package/dist/cjs/components/db-condition-row/hooks/use-op.js +79 -0
  29. package/dist/cjs/components/db-condition-row/index.js +115 -0
  30. package/dist/cjs/components/db-condition-row/styles.js +94 -0
  31. package/dist/cjs/components/db-condition-row/types.js +18 -0
  32. package/dist/cjs/components/display-flow-value/index.js +64 -0
  33. package/dist/cjs/components/display-inputs-values/index.js +76 -0
  34. package/dist/cjs/components/display-inputs-values/styles.js +51 -0
  35. package/dist/cjs/components/display-outputs/index.js +72 -0
  36. package/dist/cjs/components/display-outputs/styles.js +51 -0
  37. package/dist/cjs/components/display-schema-tag/index.js +77 -0
  38. package/dist/cjs/components/display-schema-tag/styles.js +71 -0
  39. package/dist/cjs/components/display-schema-tree/index.js +93 -0
  40. package/dist/cjs/components/display-schema-tree/styles.js +135 -0
  41. package/dist/cjs/components/dynamic-value-input/hooks.js +99 -0
  42. package/dist/cjs/components/dynamic-value-input/index.js +174 -0
  43. package/dist/cjs/components/dynamic-value-input/styles.js +107 -0
  44. package/dist/cjs/components/index.js +156 -0
  45. package/dist/cjs/components/inputs-values/index.js +112 -0
  46. package/dist/cjs/components/inputs-values/styles.js +60 -0
  47. package/dist/cjs/components/inputs-values/types.js +18 -0
  48. package/dist/cjs/components/inputs-values-tree/hooks/use-child-list.js +77 -0
  49. package/dist/cjs/components/inputs-values-tree/index.js +87 -0
  50. package/dist/cjs/components/inputs-values-tree/row.js +183 -0
  51. package/dist/cjs/components/inputs-values-tree/styles.js +177 -0
  52. package/dist/cjs/components/inputs-values-tree/types.js +18 -0
  53. package/dist/cjs/components/json-editor-with-variables/editor.js +81 -0
  54. package/dist/cjs/components/json-editor-with-variables/extensions/variable-tag.js +151 -0
  55. package/dist/cjs/components/json-editor-with-variables/extensions/variable-tree.js +97 -0
  56. package/dist/cjs/components/json-editor-with-variables/index.js +57 -0
  57. package/dist/cjs/components/json-editor-with-variables/styles.js +89 -0
  58. package/dist/cjs/components/json-schema-editor/default-value.js +54 -0
  59. package/dist/cjs/components/json-schema-editor/hooks.js +130 -0
  60. package/dist/cjs/components/json-schema-editor/index.js +246 -0
  61. package/dist/cjs/components/json-schema-editor/styles.js +231 -0
  62. package/dist/cjs/components/json-schema-editor/types.js +18 -0
  63. package/dist/cjs/components/prompt-editor/editor.js +99 -0
  64. package/dist/cjs/components/prompt-editor/extensions/jinja.js +73 -0
  65. package/dist/cjs/components/prompt-editor/extensions/language-support.js +48 -0
  66. package/dist/cjs/components/prompt-editor/extensions/markdown.js +81 -0
  67. package/dist/cjs/components/prompt-editor/index.js +57 -0
  68. package/dist/cjs/components/prompt-editor/styles.js +55 -0
  69. package/dist/cjs/components/prompt-editor/types.js +7 -0
  70. package/dist/cjs/components/prompt-editor-with-inputs/editor.js +47 -0
  71. package/dist/cjs/components/prompt-editor-with-inputs/extensions/inputs-tree.js +101 -0
  72. package/dist/cjs/components/prompt-editor-with-inputs/index.js +57 -0
  73. package/dist/cjs/components/prompt-editor-with-inputs/inputs-picker.js +104 -0
  74. package/dist/cjs/components/prompt-editor-with-variables/editor.js +49 -0
  75. package/dist/cjs/components/prompt-editor-with-variables/extensions/variable-tag.js +151 -0
  76. package/dist/cjs/components/prompt-editor-with-variables/extensions/variable-tree.js +103 -0
  77. package/dist/cjs/components/prompt-editor-with-variables/index.js +57 -0
  78. package/dist/cjs/components/prompt-editor-with-variables/styles.js +89 -0
  79. package/dist/cjs/components/type-selector/index.js +139 -0
  80. package/dist/cjs/components/variable-selector/context.js +56 -0
  81. package/dist/cjs/components/variable-selector/index.js +143 -0
  82. package/dist/cjs/components/variable-selector/styles.js +114 -0
  83. package/dist/cjs/components/variable-selector/use-variable-tree.js +100 -0
  84. package/dist/cjs/effects/auto-rename-ref/index.js +98 -0
  85. package/dist/cjs/effects/index.js +60 -0
  86. package/dist/cjs/effects/listen-ref-schema-change/index.js +57 -0
  87. package/dist/cjs/effects/listen-ref-value-change/index.js +54 -0
  88. package/dist/cjs/effects/provide-batch-input/index.js +64 -0
  89. package/dist/cjs/effects/provide-json-schema-outputs/index.js +49 -0
  90. package/dist/cjs/effects/sync-variable-title/index.js +52 -0
  91. package/dist/cjs/effects/validate-when-variable-sync/index.js +49 -0
  92. package/dist/cjs/form-plugins/batch-outputs-plugin/index.js +97 -0
  93. package/dist/cjs/form-plugins/index.js +47 -0
  94. package/dist/cjs/form-plugins/infer-assign-plugin/index.js +72 -0
  95. package/dist/cjs/form-plugins/infer-inputs-plugin/index.js +47 -0
  96. package/dist/cjs/hooks/index.js +36 -0
  97. package/dist/cjs/hooks/use-object-list/index.js +136 -0
  98. package/dist/cjs/index.js +228 -0
  99. package/dist/cjs/plugins/disable-declaration-plugin/create-disable-declaration-plugin.js +51 -0
  100. package/dist/cjs/plugins/disable-declaration-plugin/index.js +36 -0
  101. package/dist/cjs/plugins/index.js +49 -0
  102. package/dist/cjs/plugins/json-schema-preset/create-type-preset-plugin.js +49 -0
  103. package/dist/cjs/plugins/json-schema-preset/index.js +57 -0
  104. package/dist/cjs/plugins/json-schema-preset/manager.js +18 -0
  105. package/dist/cjs/plugins/json-schema-preset/type-definition/array.js +49 -0
  106. package/dist/cjs/plugins/json-schema-preset/type-definition/boolean.js +63 -0
  107. package/dist/cjs/plugins/json-schema-preset/type-definition/date-time.js +52 -0
  108. package/dist/cjs/plugins/json-schema-preset/type-definition/index.js +53 -0
  109. package/dist/cjs/plugins/json-schema-preset/type-definition/integer.js +49 -0
  110. package/dist/cjs/plugins/json-schema-preset/type-definition/number.js +49 -0
  111. package/dist/cjs/plugins/json-schema-preset/type-definition/object.js +49 -0
  112. package/dist/cjs/plugins/json-schema-preset/type-definition/string.js +54 -0
  113. package/dist/cjs/shared/flow-value/index.js +36 -0
  114. package/dist/cjs/shared/flow-value/schema.js +82 -0
  115. package/dist/cjs/shared/flow-value/types.js +18 -0
  116. package/dist/cjs/shared/flow-value/utils.js +142 -0
  117. package/dist/cjs/shared/format-legacy-refs/index.js +99 -0
  118. package/dist/cjs/shared/index.js +73 -0
  119. package/dist/cjs/shared/inject-material/index.js +65 -0
  120. package/dist/cjs/shared/lazy-suspense/index.js +58 -0
  121. package/dist/cjs/shared/polyfill-create-root/index.js +53 -0
  122. package/dist/cjs/validate/index.js +36 -0
  123. package/dist/cjs/validate/validate-flow-value/index.js +63 -0
  124. package/dist/esm/components/assign-row/index.mjs +78 -0
  125. package/dist/esm/components/assign-row/types.mjs +0 -0
  126. package/dist/esm/components/assign-rows/index.mjs +51 -0
  127. package/dist/esm/components/batch-outputs/index.mjs +57 -0
  128. package/dist/esm/components/batch-outputs/styles.mjs +13 -0
  129. package/dist/esm/components/batch-outputs/types.mjs +0 -0
  130. package/dist/esm/components/batch-variable-selector/index.mjs +19 -0
  131. package/dist/esm/components/blur-input/index.mjs +20 -0
  132. package/dist/esm/components/code-editor/editor.mjs +55 -0
  133. package/dist/esm/components/code-editor/index.mjs +5 -0
  134. package/dist/esm/components/code-editor/init-worker.mjs +19 -0
  135. package/dist/esm/components/code-editor/language-features.mjs +15 -0
  136. package/dist/esm/components/code-editor/theme/dark.mjs +154 -0
  137. package/dist/esm/components/code-editor/theme/index.mjs +5 -0
  138. package/dist/esm/components/code-editor/theme/light.mjs +161 -0
  139. package/dist/esm/components/code-editor/utils.mjs +8 -0
  140. package/dist/esm/components/code-editor-mini/index.mjs +22 -0
  141. package/dist/esm/components/condition-row/constants.mjs +128 -0
  142. package/dist/esm/components/condition-row/hooks/useOp.mjs +44 -0
  143. package/dist/esm/components/condition-row/hooks/useRule.mjs +34 -0
  144. package/dist/esm/components/condition-row/index.mjs +89 -0
  145. package/dist/esm/components/condition-row/styles.mjs +21 -0
  146. package/dist/esm/components/condition-row/types.mjs +18 -0
  147. package/dist/esm/components/constant-input/index.mjs +36 -0
  148. package/dist/esm/components/constant-input/types.mjs +0 -0
  149. package/dist/esm/components/db-condition-row/hooks/use-left.mjs +52 -0
  150. package/dist/esm/components/db-condition-row/hooks/use-op.mjs +45 -0
  151. package/dist/esm/components/db-condition-row/index.mjs +81 -0
  152. package/dist/esm/components/db-condition-row/styles.mjs +32 -0
  153. package/dist/esm/components/db-condition-row/types.mjs +0 -0
  154. package/dist/esm/components/display-flow-value/index.mjs +30 -0
  155. package/dist/esm/components/display-inputs-values/index.mjs +39 -0
  156. package/dist/esm/components/display-inputs-values/styles.mjs +7 -0
  157. package/dist/esm/components/display-outputs/index.mjs +38 -0
  158. package/dist/esm/components/display-outputs/styles.mjs +7 -0
  159. package/dist/esm/components/display-schema-tag/index.mjs +33 -0
  160. package/dist/esm/components/display-schema-tag/styles.mjs +21 -0
  161. package/dist/esm/components/display-schema-tree/index.mjs +49 -0
  162. package/dist/esm/components/display-schema-tree/styles.mjs +79 -0
  163. package/dist/esm/components/dynamic-value-input/hooks.mjs +59 -0
  164. package/dist/esm/components/dynamic-value-input/index.mjs +137 -0
  165. package/dist/esm/components/dynamic-value-input/styles.mjs +54 -0
  166. package/dist/esm/components/index.mjs +26 -0
  167. package/dist/esm/components/inputs-values/index.mjs +78 -0
  168. package/dist/esm/components/inputs-values/styles.mjs +13 -0
  169. package/dist/esm/components/inputs-values/types.mjs +0 -0
  170. package/dist/esm/components/inputs-values-tree/hooks/use-child-list.mjs +43 -0
  171. package/dist/esm/components/inputs-values-tree/index.mjs +53 -0
  172. package/dist/esm/components/inputs-values-tree/row.mjs +149 -0
  173. package/dist/esm/components/inputs-values-tree/styles.mjs +105 -0
  174. package/dist/esm/components/inputs-values-tree/types.mjs +0 -0
  175. package/dist/esm/components/json-editor-with-variables/editor.mjs +47 -0
  176. package/dist/esm/components/json-editor-with-variables/extensions/variable-tag.mjs +117 -0
  177. package/dist/esm/components/json-editor-with-variables/extensions/variable-tree.mjs +63 -0
  178. package/dist/esm/components/json-editor-with-variables/index.mjs +5 -0
  179. package/dist/esm/components/json-editor-with-variables/styles.mjs +36 -0
  180. package/dist/esm/components/json-schema-editor/default-value.mjs +20 -0
  181. package/dist/esm/components/json-schema-editor/hooks.mjs +96 -0
  182. package/dist/esm/components/json-schema-editor/index.mjs +212 -0
  183. package/dist/esm/components/json-schema-editor/styles.mjs +138 -0
  184. package/dist/esm/components/json-schema-editor/types.mjs +0 -0
  185. package/dist/esm/components/prompt-editor/editor.mjs +52 -0
  186. package/dist/esm/components/prompt-editor/extensions/jinja.mjs +39 -0
  187. package/dist/esm/components/prompt-editor/extensions/language-support.mjs +14 -0
  188. package/dist/esm/components/prompt-editor/extensions/markdown.mjs +47 -0
  189. package/dist/esm/components/prompt-editor/index.mjs +5 -0
  190. package/dist/esm/components/prompt-editor/styles.mjs +11 -0
  191. package/dist/esm/components/prompt-editor/types.mjs +1 -0
  192. package/dist/esm/components/prompt-editor-with-inputs/editor.mjs +13 -0
  193. package/dist/esm/components/prompt-editor-with-inputs/extensions/inputs-tree.mjs +67 -0
  194. package/dist/esm/components/prompt-editor-with-inputs/index.mjs +5 -0
  195. package/dist/esm/components/prompt-editor-with-inputs/inputs-picker.mjs +70 -0
  196. package/dist/esm/components/prompt-editor-with-variables/editor.mjs +15 -0
  197. package/dist/esm/components/prompt-editor-with-variables/extensions/variable-tag.mjs +117 -0
  198. package/dist/esm/components/prompt-editor-with-variables/extensions/variable-tree.mjs +69 -0
  199. package/dist/esm/components/prompt-editor-with-variables/index.mjs +5 -0
  200. package/dist/esm/components/prompt-editor-with-variables/styles.mjs +36 -0
  201. package/dist/esm/components/type-selector/index.mjs +96 -0
  202. package/dist/esm/components/variable-selector/context.mjs +16 -0
  203. package/dist/esm/components/variable-selector/index.mjs +100 -0
  204. package/dist/esm/components/variable-selector/styles.mjs +58 -0
  205. package/dist/esm/components/variable-selector/use-variable-tree.mjs +66 -0
  206. package/dist/esm/effects/auto-rename-ref/index.mjs +64 -0
  207. package/dist/esm/effects/index.mjs +8 -0
  208. package/dist/esm/effects/listen-ref-schema-change/index.mjs +23 -0
  209. package/dist/esm/effects/listen-ref-value-change/index.mjs +20 -0
  210. package/dist/esm/effects/provide-batch-input/index.mjs +30 -0
  211. package/dist/esm/effects/provide-json-schema-outputs/index.mjs +15 -0
  212. package/dist/esm/effects/sync-variable-title/index.mjs +18 -0
  213. package/dist/esm/effects/validate-when-variable-sync/index.mjs +15 -0
  214. package/dist/esm/form-plugins/batch-outputs-plugin/index.mjs +60 -0
  215. package/dist/esm/form-plugins/index.mjs +4 -0
  216. package/dist/esm/form-plugins/infer-assign-plugin/index.mjs +38 -0
  217. package/dist/esm/form-plugins/infer-inputs-plugin/index.mjs +13 -0
  218. package/dist/esm/hooks/index.mjs +2 -0
  219. package/dist/esm/hooks/use-object-list/index.mjs +102 -0
  220. package/dist/esm/index.mjs +8 -0
  221. package/dist/esm/plugins/disable-declaration-plugin/create-disable-declaration-plugin.mjs +17 -0
  222. package/dist/esm/plugins/disable-declaration-plugin/index.mjs +2 -0
  223. package/dist/esm/plugins/index.mjs +3 -0
  224. package/dist/esm/plugins/json-schema-preset/create-type-preset-plugin.mjs +15 -0
  225. package/dist/esm/plugins/json-schema-preset/index.mjs +14 -0
  226. package/dist/esm/plugins/json-schema-preset/manager.mjs +0 -0
  227. package/dist/esm/plugins/json-schema-preset/type-definition/array.mjs +15 -0
  228. package/dist/esm/plugins/json-schema-preset/type-definition/boolean.mjs +29 -0
  229. package/dist/esm/plugins/json-schema-preset/type-definition/date-time.mjs +18 -0
  230. package/dist/esm/plugins/json-schema-preset/type-definition/index.mjs +19 -0
  231. package/dist/esm/plugins/json-schema-preset/type-definition/integer.mjs +15 -0
  232. package/dist/esm/plugins/json-schema-preset/type-definition/number.mjs +15 -0
  233. package/dist/esm/plugins/json-schema-preset/type-definition/object.mjs +15 -0
  234. package/dist/esm/plugins/json-schema-preset/type-definition/string.mjs +20 -0
  235. package/dist/esm/shared/flow-value/index.mjs +2 -0
  236. package/dist/esm/shared/flow-value/schema.mjs +26 -0
  237. package/dist/esm/shared/flow-value/types.mjs +0 -0
  238. package/dist/esm/shared/flow-value/utils.mjs +108 -0
  239. package/dist/esm/shared/format-legacy-refs/index.mjs +50 -0
  240. package/dist/esm/shared/index.mjs +6 -0
  241. package/dist/esm/shared/inject-material/index.mjs +21 -0
  242. package/dist/esm/shared/lazy-suspense/index.mjs +21 -0
  243. package/dist/esm/shared/polyfill-create-root/index.mjs +16 -0
  244. package/dist/esm/validate/index.mjs +2 -0
  245. package/dist/esm/validate/validate-flow-value/index.mjs +29 -0
  246. package/dist/tsconfig.tsbuildinfo +1 -0
  247. package/dist/types/components/assign-row/index.d.ts +8 -0
  248. package/dist/types/components/assign-row/types.d.ts +20 -0
  249. package/dist/types/components/assign-rows/index.d.ts +11 -0
  250. package/dist/types/components/batch-outputs/index.d.ts +7 -0
  251. package/dist/types/components/batch-outputs/styles.d.ts +6 -0
  252. package/dist/types/components/batch-outputs/types.d.ts +18 -0
  253. package/dist/types/components/batch-variable-selector/index.d.ts +7 -0
  254. package/dist/types/components/blur-input/index.d.ts +7 -0
  255. package/dist/types/components/code-editor/editor.d.ts +23 -0
  256. package/dist/types/components/code-editor/index.d.ts +6 -0
  257. package/{src/validate/index.tsx → dist/types/components/code-editor/init-worker.d.ts} +1 -2
  258. package/{src/typings/index.ts → dist/types/components/code-editor/language-features.d.ts} +1 -2
  259. package/dist/types/components/code-editor/theme/dark.d.ts +6 -0
  260. package/{src/hooks/index.tsx → dist/types/components/code-editor/theme/index.d.ts} +1 -2
  261. package/dist/types/components/code-editor/theme/light.d.ts +6 -0
  262. package/dist/types/components/code-editor/utils.d.ts +5 -0
  263. package/dist/types/components/code-editor-mini/index.d.ts +7 -0
  264. package/dist/types/components/condition-row/constants.d.ts +7 -0
  265. package/dist/types/components/condition-row/hooks/useOp.d.ts +18 -0
  266. package/dist/types/components/condition-row/hooks/useRule.d.ts +9 -0
  267. package/dist/types/components/condition-row/index.d.ts +22 -0
  268. package/dist/types/components/condition-row/styles.d.ts +9 -0
  269. package/dist/types/components/condition-row/types.d.ts +34 -0
  270. package/dist/types/components/constant-input/index.d.ts +8 -0
  271. package/dist/types/components/constant-input/types.d.ts +16 -0
  272. package/dist/types/components/db-condition-row/hooks/use-left.d.ts +18 -0
  273. package/dist/types/components/db-condition-row/hooks/use-op.d.ts +18 -0
  274. package/dist/types/components/db-condition-row/index.d.ts +19 -0
  275. package/dist/types/components/db-condition-row/styles.d.ts +12 -0
  276. package/dist/types/components/db-condition-row/types.d.ts +25 -0
  277. package/dist/types/components/display-flow-value/index.d.ts +15 -0
  278. package/dist/types/components/display-inputs-values/index.d.ts +14 -0
  279. package/dist/types/components/display-inputs-values/styles.d.ts +5 -0
  280. package/dist/types/components/display-outputs/index.d.ts +14 -0
  281. package/dist/types/components/display-outputs/styles.d.ts +5 -0
  282. package/dist/types/components/display-schema-tag/index.d.ts +14 -0
  283. package/dist/types/components/display-schema-tag/styles.d.ts +8 -0
  284. package/dist/types/components/display-schema-tree/index.d.ts +16 -0
  285. package/dist/types/components/display-schema-tree/styles.d.ts +11 -0
  286. package/dist/types/components/dynamic-value-input/hooks.d.ts +28 -0
  287. package/dist/types/components/dynamic-value-input/index.d.ts +27 -0
  288. package/dist/types/components/dynamic-value-input/styles.d.ts +8 -0
  289. package/dist/types/components/index.d.ts +29 -0
  290. package/dist/types/components/inputs-values/index.d.ts +7 -0
  291. package/dist/types/components/inputs-values/styles.d.ts +6 -0
  292. package/dist/types/components/inputs-values/types.d.ts +19 -0
  293. package/dist/types/components/inputs-values-tree/hooks/use-child-list.d.ts +19 -0
  294. package/dist/types/components/inputs-values-tree/index.d.ts +7 -0
  295. package/dist/types/components/inputs-values-tree/row.d.ts +15 -0
  296. package/dist/types/components/inputs-values-tree/styles.d.ts +23 -0
  297. package/dist/types/components/inputs-values-tree/types.d.ts +18 -0
  298. package/dist/types/components/json-editor-with-variables/editor.d.ts +9 -0
  299. package/dist/types/components/json-editor-with-variables/extensions/variable-tag.d.ts +5 -0
  300. package/dist/types/components/json-editor-with-variables/extensions/variable-tree.d.ts +6 -0
  301. package/dist/types/components/json-editor-with-variables/index.d.ts +6 -0
  302. package/dist/types/components/json-editor-with-variables/styles.d.ts +9 -0
  303. package/dist/types/components/json-schema-editor/default-value.d.ts +17 -0
  304. package/dist/types/components/json-schema-editor/hooks.d.ts +12 -0
  305. package/dist/types/components/json-schema-editor/index.d.ts +14 -0
  306. package/dist/types/components/json-schema-editor/styles.d.ts +30 -0
  307. package/dist/types/components/json-schema-editor/types.d.ts +20 -0
  308. package/dist/types/components/prompt-editor/editor.d.ts +15 -0
  309. package/dist/types/components/prompt-editor/extensions/jinja.d.ts +6 -0
  310. package/dist/types/components/prompt-editor/extensions/language-support.d.ts +6 -0
  311. package/dist/types/components/prompt-editor/extensions/markdown.d.ts +6 -0
  312. package/dist/types/components/prompt-editor/index.d.ts +6 -0
  313. package/dist/types/components/prompt-editor/styles.d.ts +7 -0
  314. package/dist/types/components/prompt-editor/types.d.ts +16 -0
  315. package/dist/types/components/prompt-editor-with-inputs/editor.d.ts +10 -0
  316. package/dist/types/components/prompt-editor-with-inputs/extensions/inputs-tree.d.ts +9 -0
  317. package/dist/types/components/prompt-editor-with-inputs/index.d.ts +6 -0
  318. package/dist/types/components/prompt-editor-with-inputs/inputs-picker.d.ts +9 -0
  319. package/dist/types/components/prompt-editor-with-variables/editor.d.ts +9 -0
  320. package/dist/types/components/prompt-editor-with-variables/extensions/variable-tag.d.ts +5 -0
  321. package/dist/types/components/prompt-editor-with-variables/extensions/variable-tree.d.ts +6 -0
  322. package/dist/types/components/prompt-editor-with-variables/index.d.ts +6 -0
  323. package/dist/types/components/prompt-editor-with-variables/styles.d.ts +9 -0
  324. package/dist/types/components/type-selector/index.d.ts +23 -0
  325. package/dist/types/components/variable-selector/context.d.ts +16 -0
  326. package/dist/types/components/variable-selector/index.d.ts +29 -0
  327. package/dist/types/components/variable-selector/styles.d.ts +14 -0
  328. package/dist/types/components/variable-selector/use-variable-tree.d.ts +18 -0
  329. package/dist/types/effects/auto-rename-ref/index.d.ts +17 -0
  330. package/dist/types/effects/index.d.ts +11 -0
  331. package/dist/types/effects/listen-ref-schema-change/index.d.ts +22 -0
  332. package/dist/types/effects/listen-ref-value-change/index.d.ts +22 -0
  333. package/dist/types/effects/provide-batch-input/index.d.ts +6 -0
  334. package/dist/types/effects/provide-json-schema-outputs/index.d.ts +6 -0
  335. package/dist/types/effects/sync-variable-title/index.d.ts +6 -0
  336. package/dist/types/effects/validate-when-variable-sync/index.d.ts +8 -0
  337. package/dist/types/form-plugins/batch-outputs-plugin/index.d.ts +12 -0
  338. package/dist/types/form-plugins/index.d.ts +7 -0
  339. package/dist/types/form-plugins/infer-assign-plugin/index.d.ts +10 -0
  340. package/dist/types/form-plugins/infer-inputs-plugin/index.d.ts +11 -0
  341. package/dist/types/hooks/index.d.ts +5 -0
  342. package/dist/types/hooks/use-object-list/index.d.ts +22 -0
  343. package/dist/types/index.d.ts +11 -0
  344. package/dist/types/plugins/disable-declaration-plugin/create-disable-declaration-plugin.d.ts +5 -0
  345. package/dist/types/plugins/disable-declaration-plugin/index.d.ts +5 -0
  346. package/dist/types/plugins/index.d.ts +6 -0
  347. package/dist/types/plugins/json-schema-preset/create-type-preset-plugin.d.ts +9 -0
  348. package/dist/types/plugins/json-schema-preset/index.d.ts +13 -0
  349. package/dist/types/plugins/json-schema-preset/manager.d.ts +17 -0
  350. package/dist/types/plugins/json-schema-preset/type-definition/array.d.ts +6 -0
  351. package/dist/types/plugins/json-schema-preset/type-definition/boolean.d.ts +6 -0
  352. package/dist/types/plugins/json-schema-preset/type-definition/date-time.d.ts +6 -0
  353. package/dist/types/plugins/json-schema-preset/type-definition/index.d.ts +5 -0
  354. package/dist/types/plugins/json-schema-preset/type-definition/integer.d.ts +6 -0
  355. package/dist/types/plugins/json-schema-preset/type-definition/number.d.ts +6 -0
  356. package/dist/types/plugins/json-schema-preset/type-definition/object.d.ts +6 -0
  357. package/dist/types/plugins/json-schema-preset/type-definition/string.d.ts +6 -0
  358. package/dist/types/shared/flow-value/index.d.ts +6 -0
  359. package/dist/types/shared/flow-value/schema.d.ts +107 -0
  360. package/dist/types/shared/flow-value/types.d.ts +32 -0
  361. package/dist/types/shared/flow-value/utils.d.ts +65 -0
  362. package/dist/types/shared/format-legacy-refs/index.d.ts +84 -0
  363. package/dist/types/shared/index.d.ts +9 -0
  364. package/dist/types/shared/inject-material/index.d.ts +46 -0
  365. package/dist/types/shared/lazy-suspense/index.d.ts +7 -0
  366. package/dist/types/shared/polyfill-create-root/index.d.ts +10 -0
  367. package/dist/types/validate/index.d.ts +5 -0
  368. package/dist/types/validate/validate-flow-value/index.d.ts +19 -0
  369. package/package.json +22 -23
  370. package/src/components/assign-row/index.tsx +3 -3
  371. package/src/components/assign-row/types.ts +1 -1
  372. package/src/components/batch-outputs/index.tsx +3 -2
  373. package/src/components/batch-outputs/types.ts +1 -1
  374. package/src/components/code-editor/editor.tsx +97 -0
  375. package/src/components/code-editor/index.tsx +5 -89
  376. package/src/components/code-editor/init-worker.ts +27 -0
  377. package/src/components/code-editor/language-features.ts +6 -27
  378. package/src/components/code-editor/theme/dark.ts +50 -31
  379. package/src/components/code-editor/theme/index.ts +1 -1
  380. package/src/components/code-editor/theme/light.ts +57 -33
  381. package/src/components/code-editor-mini/index.tsx +2 -2
  382. package/src/components/condition-row/constants.ts +8 -0
  383. package/src/components/condition-row/hooks/useRule.ts +1 -1
  384. package/src/components/condition-row/index.tsx +4 -0
  385. package/src/components/condition-row/types.ts +1 -1
  386. package/src/components/constant-input/index.tsx +1 -1
  387. package/src/components/db-condition-row/hooks/use-left.tsx +66 -0
  388. package/src/components/db-condition-row/hooks/use-op.tsx +59 -0
  389. package/src/components/db-condition-row/index.tsx +93 -0
  390. package/src/components/db-condition-row/styles.tsx +43 -0
  391. package/src/components/db-condition-row/types.ts +34 -0
  392. package/src/components/display-flow-value/index.tsx +3 -13
  393. package/src/components/display-inputs-values/index.tsx +44 -6
  394. package/src/components/dynamic-value-input/hooks.ts +25 -4
  395. package/src/components/dynamic-value-input/index.tsx +21 -12
  396. package/src/components/dynamic-value-input/styles.tsx +14 -4
  397. package/src/components/index.ts +50 -22
  398. package/src/components/inputs-values/index.tsx +15 -4
  399. package/src/components/inputs-values/styles.tsx +1 -1
  400. package/src/components/inputs-values/types.ts +1 -1
  401. package/src/components/inputs-values-tree/hooks/use-child-list.tsx +76 -0
  402. package/src/components/inputs-values-tree/index.tsx +62 -0
  403. package/src/components/inputs-values-tree/row.tsx +177 -0
  404. package/src/components/inputs-values-tree/styles.tsx +128 -0
  405. package/src/components/inputs-values-tree/types.ts +21 -0
  406. package/src/components/json-editor-with-variables/editor.tsx +69 -0
  407. package/src/components/json-editor-with-variables/extensions/variable-tag.tsx +7 -6
  408. package/src/components/json-editor-with-variables/extensions/variable-tree.tsx +3 -3
  409. package/src/components/json-editor-with-variables/index.tsx +5 -59
  410. package/src/components/json-schema-editor/default-value.tsx +1 -3
  411. package/src/components/json-schema-editor/hooks.tsx +14 -3
  412. package/src/components/json-schema-editor/index.tsx +18 -58
  413. package/src/components/json-schema-editor/styles.tsx +12 -55
  414. package/src/components/json-schema-editor/types.ts +0 -1
  415. package/src/components/prompt-editor/editor.tsx +81 -0
  416. package/src/components/prompt-editor/extensions/jinja.tsx +2 -2
  417. package/src/components/prompt-editor/extensions/language-support.tsx +2 -2
  418. package/src/components/prompt-editor/extensions/markdown.tsx +2 -2
  419. package/src/components/prompt-editor/index.tsx +5 -62
  420. package/src/components/prompt-editor/types.tsx +1 -1
  421. package/src/components/prompt-editor-with-inputs/editor.tsx +25 -0
  422. package/src/components/prompt-editor-with-inputs/extensions/inputs-tree.tsx +15 -4
  423. package/src/components/prompt-editor-with-inputs/index.tsx +5 -16
  424. package/src/components/prompt-editor-with-inputs/inputs-picker.tsx +34 -17
  425. package/src/components/prompt-editor-with-variables/editor.tsx +22 -0
  426. package/src/components/prompt-editor-with-variables/extensions/variable-tag.tsx +13 -21
  427. package/src/components/prompt-editor-with-variables/extensions/variable-tree.tsx +16 -4
  428. package/src/components/prompt-editor-with-variables/index.tsx +5 -13
  429. package/src/components/type-selector/index.tsx +12 -2
  430. package/src/components/variable-selector/context.tsx +28 -0
  431. package/src/components/variable-selector/index.tsx +10 -1
  432. package/src/components/variable-selector/use-variable-tree.tsx +3 -3
  433. package/src/effects/auto-rename-ref/index.ts +8 -55
  434. package/src/effects/index.ts +7 -7
  435. package/src/effects/listen-ref-schema-change/index.ts +1 -1
  436. package/src/effects/listen-ref-value-change/index.ts +1 -1
  437. package/src/effects/provide-batch-input/index.ts +1 -1
  438. package/src/effects/validate-when-variable-sync/index.ts +1 -1
  439. package/src/form-plugins/batch-outputs-plugin/index.ts +1 -1
  440. package/src/form-plugins/index.ts +3 -3
  441. package/src/form-plugins/infer-assign-plugin/index.ts +2 -2
  442. package/src/form-plugins/infer-inputs-plugin/index.ts +4 -76
  443. package/src/hooks/index.ts +6 -0
  444. package/src/hooks/use-object-list/index.tsx +35 -7
  445. package/src/index.ts +98 -7
  446. package/src/plugins/index.ts +11 -2
  447. package/src/plugins/json-schema-preset/index.tsx +4 -4
  448. package/src/plugins/json-schema-preset/manager.ts +1 -0
  449. package/src/plugins/json-schema-preset/type-definition/date-time.tsx +25 -0
  450. package/src/plugins/json-schema-preset/type-definition/index.tsx +2 -0
  451. package/src/plugins/json-schema-preset/type-definition/string.tsx +18 -9
  452. package/src/shared/flow-value/index.ts +16 -0
  453. package/src/shared/flow-value/schema.ts +38 -0
  454. package/src/{typings/flow-value/index.ts → shared/flow-value/types.ts} +3 -1
  455. package/src/shared/flow-value/utils.ts +200 -0
  456. package/src/shared/format-legacy-refs/index.ts +1 -1
  457. package/src/shared/index.ts +26 -2
  458. package/src/shared/lazy-suspense/index.tsx +28 -0
  459. package/src/shared/polyfill-create-root/index.tsx +33 -0
  460. package/src/validate/index.ts +6 -0
  461. package/src/validate/validate-flow-value/index.tsx +4 -16
  462. package/bin/index.ts +0 -91
  463. package/bin/materials.ts +0 -107
  464. package/bin/project.ts +0 -95
  465. package/bin/utils/import.ts +0 -127
  466. package/bin/utils/traverse-file.ts +0 -60
  467. package/dist/esm/index.js +0 -3864
  468. package/dist/esm/index.js.map +0 -1
  469. package/dist/index.d.mts +0 -763
  470. package/dist/index.d.ts +0 -763
  471. package/dist/index.js +0 -3849
  472. package/dist/index.js.map +0 -1
  473. package/src/components/inputs-values/components/blur-input.tsx +0 -27
  474. package/src/components/json-schema-editor/components/blur-input.tsx +0 -27
  475. package/src/plugins/disable-declaration-plugin/config.json +0 -5
  476. package/src/plugins/json-schema-preset/config.json +0 -9
  477. /package/src/components/{assign-row/components/blur-input.tsx → blur-input/index.tsx} +0 -0
@@ -39,37 +39,30 @@ export const UILabel = styled.div`
39
39
  margin-bottom: 2px;
40
40
  `;
41
41
 
42
- export const UIProperties = styled.div<{ $shrink?: boolean }>`
42
+ export const UITreeItems = styled.div<{ $shrink?: boolean }>`
43
43
  display: grid;
44
44
  grid-template-columns: auto 1fr;
45
45
 
46
46
  ${({ $shrink }) =>
47
47
  $shrink &&
48
48
  css`
49
- padding-left: 10px;
49
+ padding-left: 3px;
50
50
  margin-top: 10px;
51
51
  `}
52
52
  `;
53
53
 
54
- export const UIPropertyLeft = styled.div<{
54
+ export const UITreeItemLeft = styled.div<{
55
55
  $isLast?: boolean;
56
56
  $showLine?: boolean;
57
- $isExpand?: boolean;
58
- type?: string;
59
- $isFirst?: boolean;
60
- $index?: number;
61
- $parentExpand?: boolean;
62
- $parentType?: string;
57
+ $showCollapse?: boolean;
63
58
  }>`
64
59
  grid-column: 1;
65
60
  position: relative;
66
61
  width: 16px;
67
62
 
68
- ${({ $showLine, $isLast, $parentType }) => {
69
- let height = '100%';
70
- if ($parentType && $isLast) {
71
- height = '24px';
72
- }
63
+ ${({ $showLine, $isLast, $showCollapse }) => {
64
+ let height = $isLast ? '24px' : '100%';
65
+ let width = $showCollapse ? '12px' : '30px';
73
66
 
74
67
  return (
75
68
  $showLine &&
@@ -79,7 +72,7 @@ export const UIPropertyLeft = styled.div<{
79
72
  content: '';
80
73
  height: ${height};
81
74
  position: absolute;
82
- left: -22px;
75
+ left: -14px;
83
76
  top: -16px;
84
77
  width: 1px;
85
78
  background: #d9d9d9;
@@ -90,9 +83,9 @@ export const UIPropertyLeft = styled.div<{
90
83
  /* 横线 */
91
84
  content: '';
92
85
  position: absolute;
93
- left: -22px; // 横线起点和竖线对齐
86
+ left: -14px; // 横线起点和竖线对齐
94
87
  top: 8px; // 跟随你的行高调整
95
- width: 18px; // 横线长度
88
+ width: ${width}; // 横线长度
96
89
  height: 1px;
97
90
  background: #d9d9d9;
98
91
  display: block;
@@ -102,7 +95,7 @@ export const UIPropertyLeft = styled.div<{
102
95
  }}
103
96
  `;
104
97
 
105
- export const UIPropertyRight = styled.div`
98
+ export const UITreeItemRight = styled.div`
106
99
  grid-column: 2;
107
100
  margin-bottom: 10px;
108
101
 
@@ -111,47 +104,11 @@ export const UIPropertyRight = styled.div`
111
104
  }
112
105
  `;
113
106
 
114
- export const UIPropertyMain = styled.div<{
115
- $expand?: boolean;
116
- type?: string;
117
- $collapse?: boolean;
118
- $showCollapse?: boolean;
119
- }>`
107
+ export const UITreeItemMain = styled.div<{}>`
120
108
  display: flex;
121
109
  flex-direction: column;
122
110
  gap: 10px;
123
111
  position: relative;
124
-
125
- ${({ $expand, type, $collapse, $showCollapse }) => {
126
- const beforeElement = `
127
- &::before {
128
- /* 竖线 */
129
- content: '';
130
- height: 100%;
131
- position: absolute;
132
- left: -12px;
133
- top: 18px;
134
- width: 1px;
135
- background: #d9d9d9;
136
- display: block;
137
- }`;
138
-
139
- return (
140
- $expand &&
141
- css`
142
- background-color: #f5f5f5;
143
- padding: 10px;
144
- border-radius: 4px;
145
-
146
- ${$showCollapse &&
147
- $collapse &&
148
- (type === 'array' || type === 'object') &&
149
- css`
150
- ${beforeElement}
151
- `}
152
- `
153
- );
154
- }}
155
112
  `;
156
113
 
157
114
  export const UICollapsible = styled.div<{ $collapse?: boolean }>`
@@ -22,5 +22,4 @@ export interface ConfigType {
22
22
  defaultValueTitle?: string;
23
23
  defaultValuePlaceholder?: string;
24
24
  addButtonText?: string;
25
- jsonFormatText?: string;
26
25
  }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ import React, { useEffect, useRef } from 'react';
7
+
8
+ import {
9
+ Renderer,
10
+ EditorProvider,
11
+ ActiveLinePlaceholder,
12
+ InferValues,
13
+ } from '@flowgram.ai/coze-editor/react';
14
+ import preset, { EditorAPI } from '@flowgram.ai/coze-editor/preset-prompt';
15
+
16
+ import { PropsType } from './types';
17
+ import { UIContainer } from './styles';
18
+ import MarkdownHighlight from './extensions/markdown';
19
+ import LanguageSupport from './extensions/language-support';
20
+ import JinjaHighlight from './extensions/jinja';
21
+
22
+ type Preset = typeof preset;
23
+ type Options = Partial<InferValues<Preset[number]>>;
24
+
25
+ export interface PromptEditorPropsType extends PropsType {
26
+ options?: Options;
27
+ }
28
+
29
+ export function PromptEditor(props: PromptEditorPropsType) {
30
+ const {
31
+ value,
32
+ onChange,
33
+ readonly,
34
+ placeholder,
35
+ activeLinePlaceholder,
36
+ style,
37
+ hasError,
38
+ children,
39
+ disableMarkdownHighlight,
40
+ options,
41
+ } = props || {};
42
+
43
+ const editorRef = useRef<EditorAPI | null>(null);
44
+
45
+ useEffect(() => {
46
+ // listen to value change
47
+ if (editorRef.current?.getValue() !== value?.content) {
48
+ editorRef.current?.setValue(String(value?.content || ''));
49
+ }
50
+ }, [value]);
51
+
52
+ return (
53
+ <UIContainer $hasError={hasError} style={style}>
54
+ <EditorProvider>
55
+ <Renderer
56
+ didMount={(editor: EditorAPI) => {
57
+ editorRef.current = editor;
58
+ }}
59
+ plugins={preset}
60
+ defaultValue={String(value?.content)}
61
+ options={{
62
+ readOnly: readonly,
63
+ editable: !readonly,
64
+ placeholder,
65
+ ...options,
66
+ }}
67
+ onChange={(e) => {
68
+ onChange({ type: 'template', content: e.value });
69
+ }}
70
+ />
71
+ {activeLinePlaceholder && (
72
+ <ActiveLinePlaceholder>{activeLinePlaceholder}</ActiveLinePlaceholder>
73
+ )}
74
+ {!disableMarkdownHighlight && <MarkdownHighlight />}
75
+ <LanguageSupport />
76
+ <JinjaHighlight />
77
+ {children}
78
+ </EditorProvider>
79
+ </UIContainer>
80
+ );
81
+ }
@@ -5,8 +5,8 @@
5
5
 
6
6
  import { useLayoutEffect } from 'react';
7
7
 
8
- import { useInjector } from '@coze-editor/editor/react';
9
- import { astDecorator } from '@coze-editor/editor';
8
+ import { useInjector } from '@flowgram.ai/coze-editor/react';
9
+ import { astDecorator } from '@flowgram.ai/coze-editor';
10
10
  import { EditorView } from '@codemirror/view';
11
11
 
12
12
  function JinjaHighlight() {
@@ -5,8 +5,8 @@
5
5
 
6
6
  import { useLayoutEffect } from 'react';
7
7
 
8
- import { useInjector } from '@coze-editor/editor/react';
9
- import { languageSupport } from '@coze-editor/editor/preset-prompt';
8
+ import { useInjector } from '@flowgram.ai/coze-editor/react';
9
+ import { languageSupport } from '@flowgram.ai/coze-editor/preset-prompt';
10
10
 
11
11
  function LanguageSupport() {
12
12
  const injector = useInjector();
@@ -5,8 +5,8 @@
5
5
 
6
6
  import { useLayoutEffect } from 'react';
7
7
 
8
- import { useInjector } from '@coze-editor/editor/react';
9
- import { astDecorator } from '@coze-editor/editor';
8
+ import { useInjector } from '@flowgram.ai/coze-editor/react';
9
+ import { astDecorator } from '@flowgram.ai/coze-editor';
10
10
  import { EditorView } from '@codemirror/view';
11
11
 
12
12
  function MarkdownHighlight() {
@@ -3,67 +3,10 @@
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
 
6
- import React, { useEffect, useRef } from 'react';
6
+ import { lazySuspense } from '@/shared';
7
7
 
8
- import { Renderer, EditorProvider, ActiveLinePlaceholder } from '@coze-editor/editor/react';
9
- import preset, { EditorAPI } from '@coze-editor/editor/preset-prompt';
8
+ export const PromptEditor = lazySuspense(() =>
9
+ import('./editor').then((module) => ({ default: module.PromptEditor }))
10
+ );
10
11
 
11
- import { PropsType } from './types';
12
- import { UIContainer } from './styles';
13
- import MarkdownHighlight from './extensions/markdown';
14
- import LanguageSupport from './extensions/language-support';
15
- import JinjaHighlight from './extensions/jinja';
16
-
17
- export type PromptEditorPropsType = PropsType;
18
-
19
- export function PromptEditor(props: PropsType) {
20
- const {
21
- value,
22
- onChange,
23
- readonly,
24
- placeholder,
25
- activeLinePlaceholder,
26
- style,
27
- hasError,
28
- children,
29
- disableMarkdownHighlight,
30
- } = props || {};
31
-
32
- const editorRef = useRef<EditorAPI | null>(null);
33
-
34
- useEffect(() => {
35
- // listen to value change
36
- if (editorRef.current?.getValue() !== value?.content) {
37
- editorRef.current?.setValue(String(value?.content || ''));
38
- }
39
- }, [value]);
40
-
41
- return (
42
- <UIContainer $hasError={hasError} style={style}>
43
- <EditorProvider>
44
- <Renderer
45
- didMount={(editor: EditorAPI) => {
46
- editorRef.current = editor;
47
- }}
48
- plugins={preset}
49
- defaultValue={String(value?.content)}
50
- options={{
51
- readOnly: readonly,
52
- editable: !readonly,
53
- placeholder,
54
- }}
55
- onChange={(e) => {
56
- onChange({ type: 'template', content: e.value });
57
- }}
58
- />
59
- {activeLinePlaceholder && (
60
- <ActiveLinePlaceholder>{activeLinePlaceholder}</ActiveLinePlaceholder>
61
- )}
62
- {!disableMarkdownHighlight && <MarkdownHighlight />}
63
- <LanguageSupport />
64
- <JinjaHighlight />
65
- {children}
66
- </EditorProvider>
67
- </UIContainer>
68
- );
69
- }
12
+ export type { PromptEditorPropsType } from './editor';
@@ -5,7 +5,7 @@
5
5
 
6
6
  import React from 'react';
7
7
 
8
- import { IFlowTemplateValue } from '@/typings';
8
+ import { IFlowTemplateValue } from '@/shared';
9
9
 
10
10
  export type PropsType = React.PropsWithChildren<{
11
11
  value?: IFlowTemplateValue;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ import React from 'react';
7
+
8
+ import { PromptEditor, PromptEditorPropsType } from '@/components/prompt-editor';
9
+
10
+ import { InputsTree } from './extensions/inputs-tree';
11
+
12
+ export interface PromptEditorWithInputsProps extends PromptEditorPropsType {
13
+ inputsValues: any;
14
+ }
15
+
16
+ export function PromptEditorWithInputs({
17
+ inputsValues,
18
+ ...restProps
19
+ }: PromptEditorWithInputsProps) {
20
+ return (
21
+ <PromptEditor {...restProps}>
22
+ <InputsTree inputsValues={inputsValues} />
23
+ </PromptEditor>
24
+ );
25
+ }
@@ -5,17 +5,17 @@
5
5
 
6
6
  import React, { useEffect, useState } from 'react';
7
7
 
8
- import { Popover } from '@douyinfe/semi-ui';
9
8
  import {
10
9
  Mention,
11
10
  MentionOpenChangeEvent,
12
11
  getCurrentMentionReplaceRange,
13
12
  useEditor,
14
13
  PositionMirror,
15
- } from '@coze-editor/editor/react';
16
- import { EditorAPI } from '@coze-editor/editor/preset-prompt';
14
+ } from '@flowgram.ai/coze-editor/react';
15
+ import { EditorAPI } from '@flowgram.ai/coze-editor/preset-prompt';
16
+ import { Popover } from '@douyinfe/semi-ui';
17
17
 
18
- import { IFlowValue } from '@/typings';
18
+ import { IFlowValue } from '@/shared';
19
19
 
20
20
  import { InputsPicker } from '../inputs-picker';
21
21
 
@@ -32,6 +32,17 @@ export function InputsTree({ inputsValues }: { inputsValues: Record<string, IFlo
32
32
  return;
33
33
  }
34
34
 
35
+ /**
36
+ * When user input {{xxxx}}, {{{xxx}}}(more brackets if possible), replace all brackets with {{xxxx}}
37
+ */
38
+ let { from, to } = range;
39
+ while (editor.$view.state.doc.sliceString(from - 1, from) === '{') {
40
+ from--;
41
+ }
42
+ while (editor.$view.state.doc.sliceString(to, to + 1) === '}') {
43
+ to++;
44
+ }
45
+
35
46
  editor.replaceText({
36
47
  ...range,
37
48
  text: '{{' + variablePath + '}}',
@@ -3,21 +3,10 @@
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
 
6
- import React from 'react';
6
+ import { lazySuspense } from '@/shared';
7
7
 
8
- import { IFlowValue } from '@/typings';
9
- import { PromptEditor, PromptEditorPropsType } from '@/components/prompt-editor';
8
+ export const PromptEditorWithInputs = lazySuspense(() =>
9
+ import('./editor').then((module) => ({ default: module.PromptEditorWithInputs }))
10
+ );
10
11
 
11
- import { InputsTree } from './extensions/inputs-tree';
12
-
13
- interface PropsType extends PromptEditorPropsType {
14
- inputsValues: Record<string, IFlowValue>;
15
- }
16
-
17
- export function PromptEditorWithInputs({ inputsValues, ...restProps }: PropsType) {
18
- return (
19
- <PromptEditor {...restProps}>
20
- <InputsTree inputsValues={inputsValues} />
21
- </PromptEditor>
22
- );
23
- }
12
+ export type { PromptEditorWithInputsProps } from './editor';
@@ -5,7 +5,7 @@
5
5
 
6
6
  import React, { useMemo } from 'react';
7
7
 
8
- import { last } from 'lodash';
8
+ import { isPlainObject, last } from 'lodash-es';
9
9
  import {
10
10
  type ArrayType,
11
11
  ASTMatch,
@@ -16,7 +16,7 @@ import {
16
16
  import { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';
17
17
  import { Tree } from '@douyinfe/semi-ui';
18
18
 
19
- import { IFlowValue } from '@/typings';
19
+ import { FlowValueUtils } from '@/shared';
20
20
 
21
21
  type VariableField = BaseVariableField<{ icon?: string | JSX.Element; title?: string }>;
22
22
 
@@ -24,7 +24,7 @@ export function InputsPicker({
24
24
  inputsValues,
25
25
  onSelect,
26
26
  }: {
27
- inputsValues: Record<string, IFlowValue>;
27
+ inputsValues: any;
28
28
  onSelect: (v: string) => void;
29
29
  }) {
30
30
  const available = useScopeAvailable();
@@ -76,23 +76,40 @@ export function InputsPicker({
76
76
  };
77
77
  };
78
78
 
79
- const treeData: TreeNodeData[] = useMemo(
80
- () =>
81
- Object.entries(inputsValues).map(([key, value]) => {
82
- if (value?.type === 'ref') {
83
- const variable = available.getByKeyPath(value.content || []);
79
+ const getTreeData = (value: any, keyPath: string[]): TreeNodeData | undefined => {
80
+ const currKey = keyPath.join('.');
84
81
 
85
- if (variable) {
86
- return renderVariable(variable, [key]);
87
- }
82
+ if (FlowValueUtils.isFlowValue(value)) {
83
+ if (FlowValueUtils.isRef(value)) {
84
+ const variable = available.getByKeyPath(value.content || []);
85
+ if (variable) {
86
+ return renderVariable(variable, keyPath);
88
87
  }
88
+ }
89
+ return {
90
+ key: currKey,
91
+ value: currKey,
92
+ label: last(keyPath),
93
+ };
94
+ }
89
95
 
90
- return {
91
- key,
92
- value: key,
93
- label: key,
94
- };
95
- }),
96
+ if (isPlainObject(value)) {
97
+ return {
98
+ key: currKey,
99
+ value: currKey,
100
+ label: last(keyPath),
101
+ children: Object.entries(value)
102
+ .map(([key, value]) => getTreeData(value, [...keyPath, key])!)
103
+ .filter(Boolean),
104
+ };
105
+ }
106
+ };
107
+
108
+ const treeData: TreeNodeData[] = useMemo(
109
+ () =>
110
+ Object.entries(inputsValues)
111
+ .map(([key, value]) => getTreeData(value, [key])!)
112
+ .filter(Boolean),
96
113
  []
97
114
  );
98
115
 
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ import React from 'react';
7
+
8
+ import { PromptEditor, PromptEditorPropsType } from '@/components/prompt-editor';
9
+
10
+ import { VariableTree } from './extensions/variable-tree';
11
+ import { VariableTagInject } from './extensions/variable-tag';
12
+
13
+ export interface PromptEditorWithVariablesProps extends PromptEditorPropsType {}
14
+
15
+ export function PromptEditorWithVariables(props: PromptEditorWithVariablesProps) {
16
+ return (
17
+ <PromptEditor {...props}>
18
+ <VariableTree />
19
+ <VariableTagInject />
20
+ </PromptEditor>
21
+ );
22
+ }
@@ -3,10 +3,9 @@
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
 
6
- import ReactDOM from 'react-dom';
7
6
  import React, { useLayoutEffect } from 'react';
8
7
 
9
- import { isEqual, last } from 'lodash';
8
+ import { isEqual, last } from 'lodash-es';
10
9
  import {
11
10
  BaseVariableField,
12
11
  Disposable,
@@ -14,9 +13,9 @@ import {
14
13
  Scope,
15
14
  useCurrentScope,
16
15
  } from '@flowgram.ai/editor';
16
+ import { useInjector } from '@flowgram.ai/coze-editor/react';
17
17
  import { Popover } from '@douyinfe/semi-ui';
18
18
  import { IconIssueStroked } from '@douyinfe/semi-icons';
19
- import { useInjector } from '@coze-editor/editor/react';
20
19
  import {
21
20
  Decoration,
22
21
  DecorationSet,
@@ -26,6 +25,8 @@ import {
26
25
  WidgetType,
27
26
  } from '@codemirror/view';
28
27
 
28
+ import { IPolyfillRoot, polyfillCreateRoot } from '@/shared';
29
+
29
30
  import { UIPopoverContent, UIRootTitle, UITag, UIVarName } from '../styles';
30
31
 
31
32
  class VariableTagWidget extends WidgetType {
@@ -35,7 +36,7 @@ class VariableTagWidget extends WidgetType {
35
36
 
36
37
  scope: Scope;
37
38
 
38
- rootDOM?: HTMLSpanElement;
39
+ root: IPolyfillRoot;
39
40
 
40
41
  constructor({ keyPath, scope }: { keyPath?: string[]; scope: Scope }) {
41
42
  super();
@@ -52,14 +53,9 @@ class VariableTagWidget extends WidgetType {
52
53
  return icon;
53
54
  };
54
55
 
55
- renderReact(jsx: React.ReactElement) {
56
- // NOTICE: For React 19, upgrade to 'react-dom/client'
57
- ReactDOM.render(jsx, this.rootDOM!);
58
- }
59
-
60
56
  renderVariable(v?: BaseVariableField) {
61
57
  if (!v) {
62
- this.renderReact(
58
+ this.root.render(
63
59
  <UITag prefixIcon={<IconIssueStroked />} color="amber">
64
60
  Unknown
65
61
  </UITag>
@@ -67,17 +63,14 @@ class VariableTagWidget extends WidgetType {
67
63
  return;
68
64
  }
69
65
 
70
- const rootField = last(v.parentFields) || v;
71
- const isRoot = v.parentFields.length === 0;
66
+ const rootField = last(v.parentFields);
72
67
 
73
68
  const rootTitle = (
74
- <UIRootTitle>
75
- {rootField?.meta.title ? `${rootField.meta.title} ${isRoot ? '' : '-'} ` : ''}
76
- </UIRootTitle>
69
+ <UIRootTitle>{rootField?.meta.title ? `${rootField.meta.title} -` : ''}</UIRootTitle>
77
70
  );
78
71
  const rootIcon = this.renderIcon(rootField?.meta.icon);
79
72
 
80
- this.renderReact(
73
+ this.root.render(
81
74
  <Popover
82
75
  content={
83
76
  <UIPopoverContent>
@@ -89,7 +82,7 @@ class VariableTagWidget extends WidgetType {
89
82
  >
90
83
  <UITag prefixIcon={rootIcon}>
91
84
  {rootTitle}
92
- {!isRoot && <UIVarName>{v?.key}</UIVarName>}
85
+ <UIVarName>{v?.key}</UIVarName>
93
86
  </UITag>
94
87
  </Popover>
95
88
  );
@@ -98,12 +91,11 @@ class VariableTagWidget extends WidgetType {
98
91
  toDOM(view: EditorView): HTMLElement {
99
92
  const dom = document.createElement('span');
100
93
 
101
- this.rootDOM = dom;
94
+ this.root = polyfillCreateRoot(dom);
102
95
 
103
96
  this.toDispose.push(
104
97
  Disposable.create(() => {
105
- // NOTICE: For React 19, upgrade to 'react-dom/client'
106
- ReactDOM.unmountComponentAtNode(this.rootDOM!);
98
+ this.root.unmount();
107
99
  })
108
100
  );
109
101
 
@@ -143,7 +135,7 @@ export function VariableTagInject() {
143
135
  // 基于 {{var}} 的正则进行匹配,匹配后进行自定义渲染
144
136
  useLayoutEffect(() => {
145
137
  const atMatcher = new MatchDecorator({
146
- regexp: /\{\{([^\}]+)\}\}/g,
138
+ regexp: /\{\{([^\}\{]+)\}\}/g,
147
139
  decoration: (match) =>
148
140
  Decoration.replace({
149
141
  widget: new VariableTagWidget({
@@ -5,15 +5,15 @@
5
5
 
6
6
  import React, { useEffect, useState } from 'react';
7
7
 
8
- import { Popover, Tree } from '@douyinfe/semi-ui';
9
8
  import {
10
9
  Mention,
11
10
  MentionOpenChangeEvent,
12
11
  getCurrentMentionReplaceRange,
13
12
  useEditor,
14
13
  PositionMirror,
15
- } from '@coze-editor/editor/react';
16
- import { EditorAPI } from '@coze-editor/editor/preset-prompt';
14
+ } from '@flowgram.ai/coze-editor/react';
15
+ import { EditorAPI } from '@flowgram.ai/coze-editor/preset-prompt';
16
+ import { Popover, Tree } from '@douyinfe/semi-ui';
17
17
 
18
18
  import { useVariableTree } from '@/components/variable-selector';
19
19
 
@@ -30,8 +30,20 @@ export function VariableTree() {
30
30
  return;
31
31
  }
32
32
 
33
+ /**
34
+ * When user input {{xxxx}}, {{{xxx}}}(more brackets if possible), replace all brackets with {{xxxx}}
35
+ */
36
+ let { from, to } = range;
37
+ while (editor.$view.state.doc.sliceString(from - 1, from) === '{') {
38
+ from--;
39
+ }
40
+ while (editor.$view.state.doc.sliceString(to, to + 1) === '}') {
41
+ to++;
42
+ }
43
+
33
44
  editor.replaceText({
34
- ...range,
45
+ from,
46
+ to,
35
47
  text: '{{' + variablePath + '}}',
36
48
  });
37
49