@fudanda/workflow 2.20261024.1-beta.1 → 2.20261107.1-beta.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 (298) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +114 -114
  3. package/THIRD-PARTY-NOTICES.md +57 -57
  4. package/dist/{ai-markdown-esl-I5ck.js → ai-markdown--SqEglSn.js} +1 -2
  5. package/dist/chrome.js +46 -53
  6. package/dist/core.js +3 -3
  7. package/dist/flowgram-designer.d.ts +1 -1
  8. package/dist/graph-scope.d.ts +3 -3
  9. package/dist/{header-shortcuts-BQZuNfpA.js → header-shortcuts-BcwVJV2g.js} +1 -2
  10. package/dist/index.js +926 -1001
  11. package/dist/observation-types.d.ts +1 -1
  12. package/dist/prompt-kit.d.ts +1 -1
  13. package/dist/{schema-tree-CTM6hEdm.js → schema-tree-B4yoWS9A.js} +5 -10
  14. package/dist/{start-form-L6xw9phk.js → start-form-DWlAhZhs.js} +169 -335
  15. package/dist/styles.css +1 -1
  16. package/dist/templates.d.ts +1 -1
  17. package/dist/{test-input-validation-CkORPCfm.js → test-input-validation-Ch9pS4X8.js} +1 -2
  18. package/package.json +20 -17
  19. package/vendor/coze/LICENSE-APACHE +177 -177
  20. package/vendor/coze/UPSTREAM.json +8 -8
  21. package/vendor/coze/original/base-test-button.tsx +22 -22
  22. package/vendor/coze/original/comment-container.tsx +68 -68
  23. package/vendor/coze/original/condition-container.tsx +60 -60
  24. package/vendor/coze/original/condition-tag.tsx +58 -58
  25. package/vendor/coze/original/coze-global.less +234 -234
  26. package/vendor/coze/original/create-loop-function-json.ts +134 -134
  27. package/vendor/coze/original/create-loop-function.ts +56 -56
  28. package/vendor/coze/original/end-registry.ts +41 -41
  29. package/vendor/coze/original/execute-result-panel.less +97 -97
  30. package/vendor/coze/original/execute-result-panel.tsx +171 -171
  31. package/vendor/coze/original/form-item.less +39 -39
  32. package/vendor/coze/original/form-item.tsx +200 -200
  33. package/vendor/coze/original/http-api-field.tsx +42 -42
  34. package/vendor/coze/original/http-form-render.tsx +102 -102
  35. package/vendor/coze/original/icon-add.svg +3 -3
  36. package/vendor/coze/original/icon-arrow-left.svg +3 -3
  37. package/vendor/coze/original/icon-auto-layout.svg +18 -18
  38. package/vendor/coze/original/icon-code.svg +13 -13
  39. package/vendor/coze/original/icon-condition.svg +12 -12
  40. package/vendor/coze/original/icon-database.svg +18 -18
  41. package/vendor/coze/original/icon-delete.svg +5 -5
  42. package/vendor/coze/original/icon-fullscreen.svg +9 -9
  43. package/vendor/coze/original/icon-more.svg +11 -11
  44. package/vendor/coze/original/icon-play-round-outlined.svg +8 -8
  45. package/vendor/coze/original/icon-plugin-tool.svg +6 -6
  46. package/vendor/coze/original/icon-standard-copy.svg +8 -8
  47. package/vendor/coze/original/icon-unknown.svg +7 -7
  48. package/vendor/coze/original/icon-var.svg +6 -6
  49. package/vendor/coze/original/icon-workflow-end.svg +5 -5
  50. package/vendor/coze/original/icon-workflow-start.svg +5 -5
  51. package/vendor/coze/original/icon-workflow.svg +21 -21
  52. package/vendor/coze/original/icon-workflows.svg +5 -5
  53. package/vendor/coze/original/if-form-meta.tsx +88 -88
  54. package/vendor/coze/original/logic-display.tsx +33 -33
  55. package/vendor/coze/original/mouse-icon.tsx +35 -35
  56. package/vendor/coze/original/mouse-pad-selector.tsx +180 -180
  57. package/vendor/coze/original/node-card.tsx +77 -77
  58. package/vendor/coze/original/node-category-panel.less +4 -4
  59. package/vendor/coze/original/node-category-panel.tsx +53 -53
  60. package/vendor/coze/original/node-config-form.tsx +67 -67
  61. package/vendor/coze/original/node-header.less +165 -165
  62. package/vendor/coze/original/node-header.tsx +552 -552
  63. package/vendor/coze/original/node-panel.less +183 -183
  64. package/vendor/coze/original/node-render.less +20 -20
  65. package/vendor/coze/original/node-side-sheet.less +57 -57
  66. package/vendor/coze/original/node-side-sheet.tsx +214 -214
  67. package/vendor/coze/original/node-wrapper.tsx +71 -71
  68. package/vendor/coze/original/pad-icon.tsx +45 -45
  69. package/vendor/coze/original/resizable-side-panel-constants.ts +18 -18
  70. package/vendor/coze/original/resizable-side-panel.tsx +42 -42
  71. package/vendor/coze/original/start-registry.ts +53 -53
  72. package/vendor/coze/original/sub-canvas-background.less +4 -4
  73. package/vendor/coze/original/sub-canvas-background.tsx +48 -48
  74. package/vendor/coze/original/sub-canvas-container.less +16 -16
  75. package/vendor/coze/original/sub-canvas-container.tsx +97 -97
  76. package/vendor/coze/original/sub-canvas-header.less +75 -75
  77. package/vendor/coze/original/sub-canvas-header.tsx +95 -95
  78. package/vendor/coze/original/test-form-sheet-header.tsx +82 -82
  79. package/vendor/coze/original/test-form-sheet.less +178 -178
  80. package/vendor/coze/original/toolbar-add-node.tsx +68 -68
  81. package/vendor/coze/original/toolbar-auto-layout.tsx +61 -61
  82. package/vendor/coze/original/toolbar-comment.tsx +121 -121
  83. package/vendor/coze/original/toolbar-container.tsx +42 -42
  84. package/vendor/coze/original/toolbar-interactive.tsx +98 -98
  85. package/vendor/coze/original/toolbar-minimap-switch.tsx +41 -41
  86. package/vendor/coze/original/toolbar-tools.less +46 -46
  87. package/vendor/coze/original/toolbar-tools.tsx +89 -89
  88. package/vendor/coze/original/toolbar-zoom.tsx +134 -134
  89. package/vendor/coze/original/tree-variable-selector.less +291 -291
  90. package/vendor/coze/original/tree-variable-selector.tsx +298 -298
  91. package/vendor/coze/original/workflow-document-custom-options.ts +151 -151
  92. package/vendor/coze/original/workflow-header.less +65 -65
  93. package/vendor/coze/original/workflow-header.tsx +85 -85
  94. package/vendor/coze/source/agent-models/model-option/index.module.less +18 -18
  95. package/vendor/coze/source/agent-models/model-option/index.tsx +321 -321
  96. package/vendor/coze/source/agent-models/model-option-avatar/index.tsx +175 -175
  97. package/vendor/coze/source/agent-models/model-option-group/index.tsx +87 -87
  98. package/vendor/coze/source/agent-models/model-option-thumb/index.tsx +41 -41
  99. package/vendor/coze/source/agent-models/model-select-ui/index.tsx +238 -238
  100. package/vendor/coze/source/agent-models/popover-model-list-view/index.tsx +146 -146
  101. package/vendor/coze/source/components/code-editor/text-editor.tsx +71 -71
  102. package/vendor/coze/source/components/comment/components/editor/block.tsx +117 -117
  103. package/vendor/coze/source/components/comment/components/editor/leaf.tsx +64 -64
  104. package/vendor/coze/source/components/comment/components/toolbar.tsx +366 -366
  105. package/vendor/coze/source/components/comment/constant.ts +94 -94
  106. package/vendor/coze/source/components/editor-container/expand-editor/index.module.less +107 -107
  107. package/vendor/coze/source/components/editor-container/expand-editor/index.tsx +117 -117
  108. package/vendor/coze/source/components/model-select/components/model-setting.tsx +300 -300
  109. package/vendor/coze/source/components/model-select/components/settings.tsx +144 -144
  110. package/vendor/coze/source/components/model-select/index.module.less +34 -34
  111. package/vendor/coze/source/components/model-select/utils/index.tsx +100 -100
  112. package/vendor/coze/source/components/node-render/node-render-new/fields/constants.tsx +79 -79
  113. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.module.less +12 -12
  114. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.tsx +37 -37
  115. package/vendor/coze/source/components/node-render/node-render-new/fields/field.module.less +19 -19
  116. package/vendor/coze/source/components/node-render/node-render-new/fields/field.tsx +52 -52
  117. package/vendor/coze/source/components/node-render/node-render-new/fields/http-api-field/index.tsx +42 -42
  118. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.module.less +47 -47
  119. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.tsx +162 -162
  120. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.module.less +48 -48
  121. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.tsx +126 -126
  122. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.module.less +97 -97
  123. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.tsx +171 -171
  124. package/vendor/coze/source/components/sub-canvas/components/background/index.module.less +4 -4
  125. package/vendor/coze/source/components/sub-canvas/components/header/index.module.less +75 -75
  126. package/vendor/coze/source/components/test-run/test-run-button/single-node.tsx +158 -158
  127. package/vendor/coze/source/execution-panel/panel.module.less +48 -48
  128. package/vendor/coze/source/execution-panel/panel.tsx +99 -99
  129. package/vendor/coze/source/execution-panel/use-resize.ts +79 -79
  130. package/vendor/coze/source/external/features/log/components/data-viewer/constants.ts +28 -28
  131. package/vendor/coze/source/external/features/log/components/data-viewer/context/context.ts +21 -21
  132. package/vendor/coze/source/external/features/log/components/data-viewer/context/create-store.ts +48 -48
  133. package/vendor/coze/source/external/features/log/components/data-viewer/context/index.ts +19 -19
  134. package/vendor/coze/source/external/features/log/components/data-viewer/context/provider.tsx +50 -50
  135. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.module.less +26 -26
  136. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.tsx +79 -79
  137. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/index.ts +18 -18
  138. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-data-viewer-store.ts +29 -29
  139. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-expand.ts +35 -35
  140. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-value.tsx +66 -66
  141. package/vendor/coze/source/external/features/log/components/data-viewer/index.tsx +21 -21
  142. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/index.tsx +186 -186
  143. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/json-field.module.less +79 -79
  144. package/vendor/coze/source/external/features/log/components/data-viewer/types.ts +50 -50
  145. package/vendor/coze/source/external/features/log/components/data-viewer/utils/big-number.ts +35 -35
  146. package/vendor/coze/source/external/features/log/components/data-viewer/utils/generate-field.ts +104 -104
  147. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.module.less +27 -27
  148. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.tsx +109 -109
  149. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.module.less +52 -52
  150. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.tsx +113 -113
  151. package/vendor/coze/source/form/components/field-empty.tsx +45 -45
  152. package/vendor/coze/source/form/components/section.tsx +91 -91
  153. package/vendor/coze/source/form-extensions/components/add-item-button/index.tsx +64 -64
  154. package/vendor/coze/source/form-extensions/components/form-card/index.module.less +131 -131
  155. package/vendor/coze/source/form-extensions/components/form-card/index.tsx +309 -309
  156. package/vendor/coze/source/form-extensions/components/form-item/index.module.less +39 -39
  157. package/vendor/coze/source/form-extensions/components/form-item/index.tsx +200 -200
  158. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.module.less +7 -7
  159. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.tsx +39 -39
  160. package/vendor/coze/source/form-extensions/components/level-line/index.module.less +346 -346
  161. package/vendor/coze/source/form-extensions/components/level-line/index.ts +17 -17
  162. package/vendor/coze/source/form-extensions/components/level-line/level-line.tsx +460 -460
  163. package/vendor/coze/source/form-extensions/components/level-line/types.ts +38 -38
  164. package/vendor/coze/source/form-extensions/components/level-line/utils.ts +60 -60
  165. package/vendor/coze/source/form-extensions/components/literal-value-input/constants.ts +61 -61
  166. package/vendor/coze/source/form-extensions/components/literal-value-input/input-boolean.tsx +80 -80
  167. package/vendor/coze/source/form-extensions/components/literal-value-input/input-integer.tsx +68 -68
  168. package/vendor/coze/source/form-extensions/components/literal-value-input/input-number.tsx +62 -62
  169. package/vendor/coze/source/form-extensions/components/literal-value-input/input-select.tsx +59 -59
  170. package/vendor/coze/source/form-extensions/components/literal-value-input/input-string.tsx +55 -55
  171. package/vendor/coze/source/form-extensions/components/literal-value-input/literal-value-input.tsx +35 -35
  172. package/vendor/coze/source/form-extensions/components/literal-value-input/styles.module.less +46 -46
  173. package/vendor/coze/source/form-extensions/components/literal-value-input/type.ts +61 -61
  174. package/vendor/coze/source/form-extensions/components/literal-value-input/utils.tsx +117 -117
  175. package/vendor/coze/source/form-extensions/components/node-header/components/close-button.tsx +44 -44
  176. package/vendor/coze/source/form-extensions/components/node-header/description-display.tsx +52 -52
  177. package/vendor/coze/source/form-extensions/components/node-header/description.tsx +131 -131
  178. package/vendor/coze/source/form-extensions/components/node-header/index.module.less +165 -165
  179. package/vendor/coze/source/form-extensions/components/node-header/index.tsx +552 -552
  180. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-btn/index.tsx +43 -43
  181. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/default-value-input.tsx +276 -276
  182. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.module.less +124 -124
  183. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.tsx +131 -131
  184. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/types.ts +32 -32
  185. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.module.less +38 -38
  186. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.tsx +101 -101
  187. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.module.less +51 -51
  188. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.tsx +107 -107
  189. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.module.less +17 -17
  190. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.tsx +53 -53
  191. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/constants.tsx +77 -77
  192. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.module.less +97 -97
  193. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.tsx +155 -155
  194. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.ts +38 -38
  195. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.module.less +138 -138
  196. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.tsx +360 -360
  197. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.ts +88 -88
  198. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.module.less +36 -36
  199. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.tsx +104 -104
  200. package/vendor/coze/source/form-extensions/components/output-tree/constants.ts +22 -22
  201. package/vendor/coze/source/form-extensions/components/output-tree/context.ts +28 -28
  202. package/vendor/coze/source/form-extensions/components/output-tree/hooks/use-columns-style.ts +39 -39
  203. package/vendor/coze/source/form-extensions/components/output-tree/index.module.less +83 -83
  204. package/vendor/coze/source/form-extensions/components/output-tree/index.tsx +692 -692
  205. package/vendor/coze/source/form-extensions/components/output-tree/utils.ts +185 -185
  206. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/index.tsx +97 -97
  207. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/option-item.tsx +30 -30
  208. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/types.ts +23 -23
  209. package/vendor/coze/source/form-extensions/components/setting-on-error/components/retry-times/index.tsx +45 -45
  210. package/vendor/coze/source/form-extensions/components/setting-on-error/components/timeout/index.tsx +102 -102
  211. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-option.tsx +167 -167
  212. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-tree-panel.tsx +165 -165
  213. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.module.less +96 -96
  214. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.tsx +265 -265
  215. package/vendor/coze/source/form-extensions/components/tree-variable-selector/context.tsx +42 -42
  216. package/vendor/coze/source/form-extensions/components/tree-variable-selector/expand-icon.tsx +30 -30
  217. package/vendor/coze/source/form-extensions/components/tree-variable-selector/index.module.less +291 -291
  218. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.module.less +48 -48
  219. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.tsx +149 -149
  220. package/vendor/coze/source/form-extensions/components/tree-variable-selector/utils.tsx +500 -500
  221. package/vendor/coze/source/form-extensions/components/tree-variable-selector/value-display.tsx +130 -130
  222. package/vendor/coze/source/form-extensions/components/value-expression-input/const.ts +68 -68
  223. package/vendor/coze/source/form-extensions/components/value-expression-input/context.ts +27 -27
  224. package/vendor/coze/source/form-extensions/components/value-expression-input/index.module.less +144 -144
  225. package/vendor/coze/source/form-extensions/components/value-expression-input/value-expression-input.tsx +418 -418
  226. package/vendor/coze/source/form-extensions/components/variable-type-selector/constants.tsx +77 -77
  227. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.module.less +31 -31
  228. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.tsx +17 -17
  229. package/vendor/coze/source/form-extensions/components/variable-type-selector/utils.tsx +298 -298
  230. package/vendor/coze/source/form-extensions/components/variable-type-selector/variable-type-selector.tsx +235 -235
  231. package/vendor/coze/source/form-extensions/components/variable-type-tag/index.tsx +54 -54
  232. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.module.less +9 -9
  233. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.tsx +249 -249
  234. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-header.tsx +50 -50
  235. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.module.less +13 -13
  236. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.tsx +73 -73
  237. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.module.less +10 -10
  238. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.tsx +42 -42
  239. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.module.less +9 -9
  240. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.tsx +254 -254
  241. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.module.less +7 -7
  242. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.tsx +144 -144
  243. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/value-expression-with-state/index.tsx +69 -69
  244. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/context.ts +36 -36
  245. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch-preview.tsx +44 -44
  246. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch.tsx +152 -152
  247. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/container.tsx +19 -19
  248. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/custom-drag-layer.tsx +117 -117
  249. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/types.ts +18 -18
  250. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/types.ts +58 -58
  251. package/vendor/coze/source/node-registries/end/components/terminate-plan-field.tsx +29 -29
  252. package/vendor/coze/source/node-registries/end/constants.ts +34 -34
  253. package/vendor/coze/source/node-registries/end/form.tsx +66 -66
  254. package/vendor/coze/source/node-registries/end/types.ts +45 -45
  255. package/vendor/coze/source/node-registries/http/components/base-editor/raw-text-editor.tsx +80 -80
  256. package/vendor/coze/source/node-registries/http/constants.ts +80 -80
  257. package/vendor/coze/source/node-registries/http/fields/json-import-editor/index.module.less +191 -191
  258. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-expand-editor.tsx +141 -141
  259. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-import.tsx +99 -99
  260. package/vendor/coze/source/node-registries/http/form-render.tsx +102 -102
  261. package/vendor/coze/source/node-registries/http/setters/api/curl-expand-editor.tsx +161 -161
  262. package/vendor/coze/source/node-registries/http/setters/api/curl-import.tsx +96 -96
  263. package/vendor/coze/source/node-registries/http/setters/api/index.module.less +199 -199
  264. package/vendor/coze/source/node-registries/http/setters/api/index.tsx +149 -149
  265. package/vendor/coze/source/node-registries/http/setters/api/utils.ts +41 -41
  266. package/vendor/coze/source/node-registries/http/setters/body/index.tsx +201 -201
  267. package/vendor/coze/source/node-registries/http/setters/constants.ts +83 -83
  268. package/vendor/coze/source/node-registries/if/components/else/index.tsx +41 -41
  269. package/vendor/coze/source/node-registries/intent/components/intents/index.module.less +14 -14
  270. package/vendor/coze/source/node-registries/intent/components/intents/option-item/index.tsx +189 -189
  271. package/vendor/coze/source/node-registries/json-stringify/constants.ts +32 -32
  272. package/vendor/coze/source/node-registries/json-stringify/form.tsx +46 -46
  273. package/vendor/coze/source/node-registries/loop/constants.ts +43 -43
  274. package/vendor/coze/source/node-registries/loop/loop-fields/loop-settings-section/index.tsx +48 -48
  275. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/index.tsx +81 -81
  276. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/options.ts +34 -34
  277. package/vendor/coze/source/node-registries/start/form.tsx +209 -209
  278. package/vendor/coze/source/node-registries/text-process/components/method-selector/index.tsx +46 -46
  279. package/vendor/coze/source/node-registries/text-process/constants.ts +132 -132
  280. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.module.less +7 -7
  281. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.tsx +47 -47
  282. package/vendor/coze/source/nodes-v2/components/system-prompt/index.module.less +66 -66
  283. package/vendor/coze/source/nodes-v2/components/system-prompt/prompt-kit-bar.tsx +129 -129
  284. package/vendor/coze/source/nodes-v2/components/system-prompt/system-prompt-editor.tsx +110 -110
  285. package/vendor/coze/source/nodes-v2/llm/user-prompt/index.tsx +64 -64
  286. package/vendor/coze/source/prompt-kit/input-config-popover/index.tsx +80 -80
  287. package/vendor/coze/source/prompt-kit/input-slot-widget/index.css +34 -34
  288. package/vendor/coze/source/prompt-kit/input-slot-widget/index.ts +169 -169
  289. package/vendor/coze/source/prompt-kit/library-item.tsx +141 -141
  290. package/vendor/coze/source/prompt-kit/prompt-info-input.tsx +90 -90
  291. package/vendor/coze/source/ui-components/add-operation/index.module.less +19 -19
  292. package/vendor/coze/source/ui-components/add-operation/index.tsx +67 -67
  293. package/vendor/coze/source/ui-components/auto-size-tooltip/index.module.less +39 -39
  294. package/vendor/coze/source/ui-components/auto-size-tooltip/index.tsx +74 -74
  295. package/vendor/coze/source/ui-components/workflow-sl-input/index.module.less +36 -36
  296. package/vendor/coze/source/ui-components/workflow-sl-input/index.tsx +194 -194
  297. package/vendor/coze/source/utils/create-slots/index.tsx +126 -126
  298. package/vendor/coze/source/utils/create-slots/use-force-update.ts +23 -23
@@ -1,418 +1,418 @@
1
- /*
2
- * Copyright 2025 coze-dev Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- /* eslint-disable complexity -- no need to check */
18
- import React, {
19
- useCallback,
20
- type CSSProperties,
21
- useState,
22
- useMemo,
23
- useRef,
24
- } from 'react';
25
-
26
- import classnames from 'classnames';
27
- import { type SchemaObject } from 'ajv';
28
- import {
29
- ValueExpression,
30
- ValueExpressionType,
31
- ViewVariableType,
32
- useNodeTestId,
33
- type LiteralExpression,
34
- } from '@coze-workflow/base';
35
- import { I18n } from '@coze-arch/i18n';
36
- import { type SelectProps } from '@coze-arch/bot-semi/Select';
37
- import { IconCozApply } from '@coze-arch/coze-design/icons';
38
- import { IconButton } from '@coze-arch/coze-design';
39
-
40
- import { useRefInputNode } from '@/hooks/use-ref-input';
41
- import {
42
- LiteralValueInput,
43
- type LiteralValueType,
44
- type InputType as LiteralInputType,
45
- } from '@/form-extensions/components/literal-value-input';
46
-
47
- import {
48
- type RenderDisplayVarName,
49
- type CustomFilterVar,
50
- } from '../tree-variable-selector/types';
51
- import { FileInput } from '../file-input';
52
- import { type VariableSelectorProps } from '../../components/tree-variable-selector';
53
- import { VoiceTag } from './voice/voice-option';
54
- import useVoice from './voice/use-voice';
55
- import {
56
- type RefTagColor,
57
- type RefValueDisplayProps,
58
- } from './ref-value-display';
59
- import { ObjectRefValueDisplay } from './object-ref-display';
60
- import { ValueExpressionInputContext } from './context';
61
- import { SELECT_POPOVER_MIN_WIDTH, VARIABLE_SELECTOR_STYLE } from './const';
62
-
63
- import styles from './index.module.less';
64
-
65
- export interface ValueExpressionInputProps {
66
- className?: string;
67
- testId?: string;
68
- value: ValueExpression | undefined;
69
- onChange: (value: ValueExpression | undefined) => void;
70
- onBlur?: () => void;
71
- disabled?: boolean;
72
- /**
73
- * After specifying inputType, the parameter type is fixed and cannot be switched, but variables that are not of this data type can still be selected, and the running state will perform type conversion
74
- */
75
- inputType?: LiteralInputType;
76
- /**
77
- * You can switch between several specified types. When length = 1, the usage is the same as inputType.
78
- * Effective only in TypedValueExpressionInput
79
- * When inputType is specified at the same time, the union of two props is taken
80
- */
81
- inputTypes?: LiteralInputType[];
82
- /**
83
- * Default selected data type
84
- */
85
- defaultInputType?: LiteralInputType;
86
- availableFileTypes?: Array<ViewVariableType>;
87
- validateStatus?: SelectProps['validateStatus'];
88
- optionFilter?: VariableSelectorProps['optionFilter'];
89
- handleDataSource?: VariableSelectorProps['handleDataSource'];
90
- invalidContent?: string;
91
- style?: CSSProperties;
92
- selectStyle?: CSSProperties;
93
- literalStyle?: CSSProperties;
94
- variableTagStyle?: CSSProperties;
95
- readonly?: boolean;
96
- /** Prohibited data types */
97
- disabledTypes?: Array<ViewVariableType>;
98
- literalDisabled?: boolean;
99
-
100
- /** Whether to disable variable reference mode */
101
- refDisabled?: boolean;
102
- literalConfig?: {
103
- min?: number;
104
- max?: number;
105
- optionsList?: { label: string; value: string }[];
106
- /**
107
- * Schema configuration of object types for json editor code hints and validation
108
- */
109
- jsonSchema?: SchemaObject;
110
- };
111
- showClear?: boolean;
112
- customFilterVar?: CustomFilterVar;
113
- refTagColor?: RefTagColor;
114
- placeholder?: string;
115
- inputPlaceholder?: string;
116
- renderDisplayVarName?: RenderDisplayVarName;
117
- hideSettingIcon?: boolean;
118
- hideDeleteIcon?: boolean;
119
- enableSelectNode?: boolean;
120
- variablesDatasource?: VariableSelectorProps['dataSource'];
121
- /**
122
- * Forbid type conversion. Switching variable types is not supported when a reference variable (ValueExpression) is selected
123
- */
124
- forbidTypeCast?: boolean;
125
- /* Type restrictions, when the reference type does not meet the restrictions, a warning message is displayed */
126
- variableTypeConstraints?: RefValueDisplayProps['variableTypeConstraints'];
127
- }
128
-
129
- export const ValueExpressionInput = ({
130
- className,
131
- value,
132
- onChange,
133
- onBlur,
134
- disabled,
135
- variablesDatasource: variablesDataSource,
136
- inputType = ViewVariableType.String,
137
- availableFileTypes = [],
138
- validateStatus,
139
- invalidContent,
140
- style,
141
- literalStyle,
142
- readonly,
143
- testId,
144
- disabledTypes,
145
- optionFilter,
146
- literalDisabled = false,
147
- refDisabled = false,
148
- showClear = false,
149
- hideDeleteIcon = false,
150
- hideSettingIcon = false,
151
- enableSelectNode = false,
152
- renderDisplayVarName,
153
- customFilterVar,
154
- literalConfig = {},
155
- refTagColor,
156
- placeholder,
157
- inputPlaceholder,
158
- variableTagStyle,
159
- handleDataSource,
160
- variableTypeConstraints,
161
- }: ValueExpressionInputProps) => {
162
- const { concatTestId } = useNodeTestId();
163
- const containerRef = useRef<HTMLDivElement>(null);
164
-
165
- const onLiteralChange = useCallback(
166
- (v?: LiteralValueType): void => {
167
- onChange({ type: ValueExpressionType.LITERAL, content: v ?? undefined });
168
- },
169
- [onChange],
170
- );
171
-
172
- const onImageChange = useCallback(
173
- v => {
174
- onChange({
175
- type: ValueExpressionType.LITERAL,
176
- content: v?.url || '',
177
- rawMeta: { fileName: v?.name, type: inputType },
178
- });
179
- },
180
- [onChange],
181
- );
182
-
183
- const [focused, setFocused] = useState(false);
184
-
185
- const handleFocus = () => setFocused(true);
186
- const handleBlur = () => {
187
- setFocused(false);
188
- onBlur?.();
189
- };
190
-
191
- const isRefValue =
192
- !!value && ValueExpression.isRef(value) && !!value.content?.keyPath;
193
-
194
- const isLiteralJsonValue = useMemo(
195
- () =>
196
- !!value &&
197
- ValueExpression.isLiteral(value) &&
198
- ViewVariableType.isJSONInputType(inputType),
199
- [value, inputType],
200
- );
201
-
202
- const [isUploadingFile, setIsUploadingFile] = useState(false);
203
-
204
- const isLiteralMultiFileValue =
205
- ((value &&
206
- !ValueExpression.isEmpty(value) &&
207
- ValueExpression.isLiteral(value)) ||
208
- isUploadingFile) &&
209
- ViewVariableType.isArrayType(inputType) &&
210
- ViewVariableType.isFileType(inputType) &&
211
- inputType !== ViewVariableType.ArrayVoice;
212
-
213
- const isLiteralMultiLineValue =
214
- isLiteralJsonValue &&
215
- String((value as LiteralExpression)?.content)?.includes('\n');
216
-
217
- const [expandLiteralInput, setExpandLiteralInput] = useState(false);
218
-
219
- const isVoiceValue =
220
- ViewVariableType.isVoiceType(inputType) &&
221
- !!value &&
222
- ValueExpression.isLiteral(value) &&
223
- value.content;
224
-
225
- const { renderVariableSelectorExtraOption, selectVoiceModal, voiceSelector } =
226
- useVoice({
227
- inputType,
228
- onChange,
229
- onBlur,
230
- disabled,
231
- validateStatus,
232
- value,
233
- });
234
-
235
- const renderInputRight = () => {
236
- if (ViewVariableType.isVoiceType(inputType)) {
237
- return voiceSelector;
238
- }
239
-
240
- if (ViewVariableType.isFileType(inputType)) {
241
- return (
242
- <FileInput
243
- value={value as LiteralExpression}
244
- inputType={inputType}
245
- availableFileTypes={availableFileTypes}
246
- onChange={onImageChange}
247
- onUploadChange={uploading => setIsUploadingFile(uploading)}
248
- onBlur={onBlur}
249
- />
250
- );
251
- }
252
-
253
- return (
254
- <LiteralValueInput
255
- className={classnames(styles['literal-value-input'], {
256
- 'pb-[24px]':
257
- isLiteralMultiLineValue ||
258
- (ViewVariableType.isJSONInputType(inputType) && expandLiteralInput),
259
- })}
260
- testId={concatTestId(testId ?? '', 'literal-input')}
261
- readonly={readonly}
262
- disabled={disabled}
263
- value={(value as LiteralExpression)?.content}
264
- inputType={inputType}
265
- onBlur={handleBlur}
266
- onFocus={handleFocus}
267
- onChange={onLiteralChange}
268
- config={{
269
- ...literalConfig,
270
- onRequestInputExpand: isLiteralJsonValue
271
- ? setExpandLiteralInput
272
- : undefined,
273
- }}
274
- style={literalStyle}
275
- placeholder={inputPlaceholder ?? I18n.t('workflow_241015_01')}
276
- />
277
- );
278
- };
279
-
280
- const { renderVariableSelect, renderVariableDisplay } = useRefInputNode({
281
- value,
282
- onChange,
283
- onBlur,
284
- disabled,
285
- variablesDataSource,
286
- validateStatus,
287
- readonly,
288
- testId,
289
- disabledTypes,
290
- showClear,
291
- invalidContent,
292
- renderDisplayVarName,
293
- customFilterVar,
294
- setFocused,
295
- style: VARIABLE_SELECTOR_STYLE,
296
- refTagColor,
297
- hideDeleteIcon,
298
- variableTagStyle,
299
- optionFilter,
300
- renderExtraOption: renderVariableSelectorExtraOption,
301
- enableSelectNode,
302
- handleDataSource,
303
- popoverStyle: containerRef.current
304
- ? {
305
- minWidth: Math.max(
306
- containerRef.current.clientWidth,
307
- SELECT_POPOVER_MIN_WIDTH,
308
- ),
309
- }
310
- : undefined,
311
- variableTypeConstraints,
312
- });
313
-
314
- const renderInput = () => {
315
- if (isVoiceValue) {
316
- return renderVariableSelect(
317
- <div
318
- className={classnames(
319
- 'cursor-pointer w-full overflow-hidden flex items-center pl-0.5',
320
- )}
321
- >
322
- <VoiceTag
323
- name={
324
- (value as LiteralExpression)?.rawMeta?.fileName || value?.content
325
- }
326
- onClose={() => onChange?.(undefined)}
327
- />
328
- </div>,
329
- );
330
- }
331
-
332
- return isRefValue ? renderVariableDisplay() : renderInputRight();
333
- };
334
- const finalClassName = useMemo(
335
- () =>
336
- classnames(
337
- className,
338
- 'flex items-start border border-solid bg-transparent max-w-[100%] py-[1px]',
339
- {
340
- 'semi-input-wrapper-error': validateStatus === 'error',
341
- 'coz-stroke-plus': validateStatus !== 'error',
342
- '!bg-transparent': focused,
343
- '!coz-stroke-hglt': focused && validateStatus !== 'error',
344
- 'pointer-events-none': readonly,
345
- },
346
- 'hover:coz-mg-primary-hovered',
347
- isLiteralMultiLineValue || isLiteralMultiFileValue || expandLiteralInput
348
- ? 'h-full'
349
- : 'h-[24px]',
350
- styles['value-expression-input-wrap-new'],
351
- 'semi-input-wrapper semi-input-wrapper-small',
352
- ),
353
- [
354
- className,
355
- validateStatus,
356
- focused,
357
- readonly,
358
- styles,
359
- isLiteralMultiLineValue,
360
- isLiteralMultiFileValue,
361
- expandLiteralInput,
362
- ],
363
- );
364
-
365
- if (value && ValueExpression.isObjectRef(value)) {
366
- return (
367
- <div className={finalClassName} style={style} ref={containerRef}>
368
- <ObjectRefValueDisplay />
369
- </div>
370
- );
371
- }
372
-
373
- return (
374
- <ValueExpressionInputContext.Provider value={{ testId }}>
375
- <div className={finalClassName} style={style} ref={containerRef}>
376
- <div className="ref-wrapper flex-1 flex w-full h-full items-center overflow-hidden">
377
- {/* Determine whether the variable selects the scene */}
378
- {!refDisabled && // When reference mode is enabled, check for:
379
- literalDisabled && // Scenario 1: Literals are disabled
380
- !isRefValue ? ( // Scenario 2: The current value is not a reference type
381
- renderVariableSelect(
382
- <div className="cursor-pointer w-full h-full overflow-hidden flex items-center px-1">
383
- <p className="text-[12px] text-[var(--coz-fg-secondary)] pointer-events-none whitespace-nowrap">
384
- {placeholder || I18n.t('workflow_variable_ref_placeholder')}
385
- </p>
386
- </div>,
387
- )
388
- ) : (
389
- <div className={styles['input-wrapper']}>{renderInput()}</div>
390
- )}
391
- </div>
392
- {refDisabled || hideSettingIcon ? null : (
393
- <div
394
- className={classnames(
395
- styles['setting-button-wrap'],
396
- 'flex-none leading-none',
397
- {
398
- [styles['pos-absolute']]: isLiteralJsonValue,
399
- [styles['self-end']]: isLiteralMultiFileValue,
400
- },
401
- )}
402
- >
403
- {renderVariableSelect(
404
- <IconButton
405
- color="secondary"
406
- size="small"
407
- icon={<IconCozApply className="coz-fg-primary text-sm" />}
408
- data-testid={concatTestId(testId ?? '', 'variable-trigger')}
409
- ></IconButton>,
410
- )}
411
- </div>
412
- )}
413
-
414
- {selectVoiceModal}
415
- </div>
416
- </ValueExpressionInputContext.Provider>
417
- );
418
- };
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /* eslint-disable complexity -- no need to check */
18
+ import React, {
19
+ useCallback,
20
+ type CSSProperties,
21
+ useState,
22
+ useMemo,
23
+ useRef,
24
+ } from 'react';
25
+
26
+ import classnames from 'classnames';
27
+ import { type SchemaObject } from 'ajv';
28
+ import {
29
+ ValueExpression,
30
+ ValueExpressionType,
31
+ ViewVariableType,
32
+ useNodeTestId,
33
+ type LiteralExpression,
34
+ } from '@coze-workflow/base';
35
+ import { I18n } from '@coze-arch/i18n';
36
+ import { type SelectProps } from '@coze-arch/bot-semi/Select';
37
+ import { IconCozApply } from '@coze-arch/coze-design/icons';
38
+ import { IconButton } from '@coze-arch/coze-design';
39
+
40
+ import { useRefInputNode } from '@/hooks/use-ref-input';
41
+ import {
42
+ LiteralValueInput,
43
+ type LiteralValueType,
44
+ type InputType as LiteralInputType,
45
+ } from '@/form-extensions/components/literal-value-input';
46
+
47
+ import {
48
+ type RenderDisplayVarName,
49
+ type CustomFilterVar,
50
+ } from '../tree-variable-selector/types';
51
+ import { FileInput } from '../file-input';
52
+ import { type VariableSelectorProps } from '../../components/tree-variable-selector';
53
+ import { VoiceTag } from './voice/voice-option';
54
+ import useVoice from './voice/use-voice';
55
+ import {
56
+ type RefTagColor,
57
+ type RefValueDisplayProps,
58
+ } from './ref-value-display';
59
+ import { ObjectRefValueDisplay } from './object-ref-display';
60
+ import { ValueExpressionInputContext } from './context';
61
+ import { SELECT_POPOVER_MIN_WIDTH, VARIABLE_SELECTOR_STYLE } from './const';
62
+
63
+ import styles from './index.module.less';
64
+
65
+ export interface ValueExpressionInputProps {
66
+ className?: string;
67
+ testId?: string;
68
+ value: ValueExpression | undefined;
69
+ onChange: (value: ValueExpression | undefined) => void;
70
+ onBlur?: () => void;
71
+ disabled?: boolean;
72
+ /**
73
+ * After specifying inputType, the parameter type is fixed and cannot be switched, but variables that are not of this data type can still be selected, and the running state will perform type conversion
74
+ */
75
+ inputType?: LiteralInputType;
76
+ /**
77
+ * You can switch between several specified types. When length = 1, the usage is the same as inputType.
78
+ * Effective only in TypedValueExpressionInput
79
+ * When inputType is specified at the same time, the union of two props is taken
80
+ */
81
+ inputTypes?: LiteralInputType[];
82
+ /**
83
+ * Default selected data type
84
+ */
85
+ defaultInputType?: LiteralInputType;
86
+ availableFileTypes?: Array<ViewVariableType>;
87
+ validateStatus?: SelectProps['validateStatus'];
88
+ optionFilter?: VariableSelectorProps['optionFilter'];
89
+ handleDataSource?: VariableSelectorProps['handleDataSource'];
90
+ invalidContent?: string;
91
+ style?: CSSProperties;
92
+ selectStyle?: CSSProperties;
93
+ literalStyle?: CSSProperties;
94
+ variableTagStyle?: CSSProperties;
95
+ readonly?: boolean;
96
+ /** Prohibited data types */
97
+ disabledTypes?: Array<ViewVariableType>;
98
+ literalDisabled?: boolean;
99
+
100
+ /** Whether to disable variable reference mode */
101
+ refDisabled?: boolean;
102
+ literalConfig?: {
103
+ min?: number;
104
+ max?: number;
105
+ optionsList?: { label: string; value: string }[];
106
+ /**
107
+ * Schema configuration of object types for json editor code hints and validation
108
+ */
109
+ jsonSchema?: SchemaObject;
110
+ };
111
+ showClear?: boolean;
112
+ customFilterVar?: CustomFilterVar;
113
+ refTagColor?: RefTagColor;
114
+ placeholder?: string;
115
+ inputPlaceholder?: string;
116
+ renderDisplayVarName?: RenderDisplayVarName;
117
+ hideSettingIcon?: boolean;
118
+ hideDeleteIcon?: boolean;
119
+ enableSelectNode?: boolean;
120
+ variablesDatasource?: VariableSelectorProps['dataSource'];
121
+ /**
122
+ * Forbid type conversion. Switching variable types is not supported when a reference variable (ValueExpression) is selected
123
+ */
124
+ forbidTypeCast?: boolean;
125
+ /* Type restrictions, when the reference type does not meet the restrictions, a warning message is displayed */
126
+ variableTypeConstraints?: RefValueDisplayProps['variableTypeConstraints'];
127
+ }
128
+
129
+ export const ValueExpressionInput = ({
130
+ className,
131
+ value,
132
+ onChange,
133
+ onBlur,
134
+ disabled,
135
+ variablesDatasource: variablesDataSource,
136
+ inputType = ViewVariableType.String,
137
+ availableFileTypes = [],
138
+ validateStatus,
139
+ invalidContent,
140
+ style,
141
+ literalStyle,
142
+ readonly,
143
+ testId,
144
+ disabledTypes,
145
+ optionFilter,
146
+ literalDisabled = false,
147
+ refDisabled = false,
148
+ showClear = false,
149
+ hideDeleteIcon = false,
150
+ hideSettingIcon = false,
151
+ enableSelectNode = false,
152
+ renderDisplayVarName,
153
+ customFilterVar,
154
+ literalConfig = {},
155
+ refTagColor,
156
+ placeholder,
157
+ inputPlaceholder,
158
+ variableTagStyle,
159
+ handleDataSource,
160
+ variableTypeConstraints,
161
+ }: ValueExpressionInputProps) => {
162
+ const { concatTestId } = useNodeTestId();
163
+ const containerRef = useRef<HTMLDivElement>(null);
164
+
165
+ const onLiteralChange = useCallback(
166
+ (v?: LiteralValueType): void => {
167
+ onChange({ type: ValueExpressionType.LITERAL, content: v ?? undefined });
168
+ },
169
+ [onChange],
170
+ );
171
+
172
+ const onImageChange = useCallback(
173
+ v => {
174
+ onChange({
175
+ type: ValueExpressionType.LITERAL,
176
+ content: v?.url || '',
177
+ rawMeta: { fileName: v?.name, type: inputType },
178
+ });
179
+ },
180
+ [onChange],
181
+ );
182
+
183
+ const [focused, setFocused] = useState(false);
184
+
185
+ const handleFocus = () => setFocused(true);
186
+ const handleBlur = () => {
187
+ setFocused(false);
188
+ onBlur?.();
189
+ };
190
+
191
+ const isRefValue =
192
+ !!value && ValueExpression.isRef(value) && !!value.content?.keyPath;
193
+
194
+ const isLiteralJsonValue = useMemo(
195
+ () =>
196
+ !!value &&
197
+ ValueExpression.isLiteral(value) &&
198
+ ViewVariableType.isJSONInputType(inputType),
199
+ [value, inputType],
200
+ );
201
+
202
+ const [isUploadingFile, setIsUploadingFile] = useState(false);
203
+
204
+ const isLiteralMultiFileValue =
205
+ ((value &&
206
+ !ValueExpression.isEmpty(value) &&
207
+ ValueExpression.isLiteral(value)) ||
208
+ isUploadingFile) &&
209
+ ViewVariableType.isArrayType(inputType) &&
210
+ ViewVariableType.isFileType(inputType) &&
211
+ inputType !== ViewVariableType.ArrayVoice;
212
+
213
+ const isLiteralMultiLineValue =
214
+ isLiteralJsonValue &&
215
+ String((value as LiteralExpression)?.content)?.includes('\n');
216
+
217
+ const [expandLiteralInput, setExpandLiteralInput] = useState(false);
218
+
219
+ const isVoiceValue =
220
+ ViewVariableType.isVoiceType(inputType) &&
221
+ !!value &&
222
+ ValueExpression.isLiteral(value) &&
223
+ value.content;
224
+
225
+ const { renderVariableSelectorExtraOption, selectVoiceModal, voiceSelector } =
226
+ useVoice({
227
+ inputType,
228
+ onChange,
229
+ onBlur,
230
+ disabled,
231
+ validateStatus,
232
+ value,
233
+ });
234
+
235
+ const renderInputRight = () => {
236
+ if (ViewVariableType.isVoiceType(inputType)) {
237
+ return voiceSelector;
238
+ }
239
+
240
+ if (ViewVariableType.isFileType(inputType)) {
241
+ return (
242
+ <FileInput
243
+ value={value as LiteralExpression}
244
+ inputType={inputType}
245
+ availableFileTypes={availableFileTypes}
246
+ onChange={onImageChange}
247
+ onUploadChange={uploading => setIsUploadingFile(uploading)}
248
+ onBlur={onBlur}
249
+ />
250
+ );
251
+ }
252
+
253
+ return (
254
+ <LiteralValueInput
255
+ className={classnames(styles['literal-value-input'], {
256
+ 'pb-[24px]':
257
+ isLiteralMultiLineValue ||
258
+ (ViewVariableType.isJSONInputType(inputType) && expandLiteralInput),
259
+ })}
260
+ testId={concatTestId(testId ?? '', 'literal-input')}
261
+ readonly={readonly}
262
+ disabled={disabled}
263
+ value={(value as LiteralExpression)?.content}
264
+ inputType={inputType}
265
+ onBlur={handleBlur}
266
+ onFocus={handleFocus}
267
+ onChange={onLiteralChange}
268
+ config={{
269
+ ...literalConfig,
270
+ onRequestInputExpand: isLiteralJsonValue
271
+ ? setExpandLiteralInput
272
+ : undefined,
273
+ }}
274
+ style={literalStyle}
275
+ placeholder={inputPlaceholder ?? I18n.t('workflow_241015_01')}
276
+ />
277
+ );
278
+ };
279
+
280
+ const { renderVariableSelect, renderVariableDisplay } = useRefInputNode({
281
+ value,
282
+ onChange,
283
+ onBlur,
284
+ disabled,
285
+ variablesDataSource,
286
+ validateStatus,
287
+ readonly,
288
+ testId,
289
+ disabledTypes,
290
+ showClear,
291
+ invalidContent,
292
+ renderDisplayVarName,
293
+ customFilterVar,
294
+ setFocused,
295
+ style: VARIABLE_SELECTOR_STYLE,
296
+ refTagColor,
297
+ hideDeleteIcon,
298
+ variableTagStyle,
299
+ optionFilter,
300
+ renderExtraOption: renderVariableSelectorExtraOption,
301
+ enableSelectNode,
302
+ handleDataSource,
303
+ popoverStyle: containerRef.current
304
+ ? {
305
+ minWidth: Math.max(
306
+ containerRef.current.clientWidth,
307
+ SELECT_POPOVER_MIN_WIDTH,
308
+ ),
309
+ }
310
+ : undefined,
311
+ variableTypeConstraints,
312
+ });
313
+
314
+ const renderInput = () => {
315
+ if (isVoiceValue) {
316
+ return renderVariableSelect(
317
+ <div
318
+ className={classnames(
319
+ 'cursor-pointer w-full overflow-hidden flex items-center pl-0.5',
320
+ )}
321
+ >
322
+ <VoiceTag
323
+ name={
324
+ (value as LiteralExpression)?.rawMeta?.fileName || value?.content
325
+ }
326
+ onClose={() => onChange?.(undefined)}
327
+ />
328
+ </div>,
329
+ );
330
+ }
331
+
332
+ return isRefValue ? renderVariableDisplay() : renderInputRight();
333
+ };
334
+ const finalClassName = useMemo(
335
+ () =>
336
+ classnames(
337
+ className,
338
+ 'flex items-start border border-solid bg-transparent max-w-[100%] py-[1px]',
339
+ {
340
+ 'semi-input-wrapper-error': validateStatus === 'error',
341
+ 'coz-stroke-plus': validateStatus !== 'error',
342
+ '!bg-transparent': focused,
343
+ '!coz-stroke-hglt': focused && validateStatus !== 'error',
344
+ 'pointer-events-none': readonly,
345
+ },
346
+ 'hover:coz-mg-primary-hovered',
347
+ isLiteralMultiLineValue || isLiteralMultiFileValue || expandLiteralInput
348
+ ? 'h-full'
349
+ : 'h-[24px]',
350
+ styles['value-expression-input-wrap-new'],
351
+ 'semi-input-wrapper semi-input-wrapper-small',
352
+ ),
353
+ [
354
+ className,
355
+ validateStatus,
356
+ focused,
357
+ readonly,
358
+ styles,
359
+ isLiteralMultiLineValue,
360
+ isLiteralMultiFileValue,
361
+ expandLiteralInput,
362
+ ],
363
+ );
364
+
365
+ if (value && ValueExpression.isObjectRef(value)) {
366
+ return (
367
+ <div className={finalClassName} style={style} ref={containerRef}>
368
+ <ObjectRefValueDisplay />
369
+ </div>
370
+ );
371
+ }
372
+
373
+ return (
374
+ <ValueExpressionInputContext.Provider value={{ testId }}>
375
+ <div className={finalClassName} style={style} ref={containerRef}>
376
+ <div className="ref-wrapper flex-1 flex w-full h-full items-center overflow-hidden">
377
+ {/* Determine whether the variable selects the scene */}
378
+ {!refDisabled && // When reference mode is enabled, check for:
379
+ literalDisabled && // Scenario 1: Literals are disabled
380
+ !isRefValue ? ( // Scenario 2: The current value is not a reference type
381
+ renderVariableSelect(
382
+ <div className="cursor-pointer w-full h-full overflow-hidden flex items-center px-1">
383
+ <p className="text-[12px] text-[var(--coz-fg-secondary)] pointer-events-none whitespace-nowrap">
384
+ {placeholder || I18n.t('workflow_variable_ref_placeholder')}
385
+ </p>
386
+ </div>,
387
+ )
388
+ ) : (
389
+ <div className={styles['input-wrapper']}>{renderInput()}</div>
390
+ )}
391
+ </div>
392
+ {refDisabled || hideSettingIcon ? null : (
393
+ <div
394
+ className={classnames(
395
+ styles['setting-button-wrap'],
396
+ 'flex-none leading-none',
397
+ {
398
+ [styles['pos-absolute']]: isLiteralJsonValue,
399
+ [styles['self-end']]: isLiteralMultiFileValue,
400
+ },
401
+ )}
402
+ >
403
+ {renderVariableSelect(
404
+ <IconButton
405
+ color="secondary"
406
+ size="small"
407
+ icon={<IconCozApply className="coz-fg-primary text-sm" />}
408
+ data-testid={concatTestId(testId ?? '', 'variable-trigger')}
409
+ ></IconButton>,
410
+ )}
411
+ </div>
412
+ )}
413
+
414
+ {selectVoiceModal}
415
+ </div>
416
+ </ValueExpressionInputContext.Provider>
417
+ );
418
+ };