@fudanda/workflow 2.20261024.1-beta.2 → 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 (293) 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/{header-shortcuts-BQZuNfpA.js → header-shortcuts-BcwVJV2g.js} +1 -2
  8. package/dist/index.js +925 -1000
  9. package/dist/{schema-tree-CTM6hEdm.js → schema-tree-B4yoWS9A.js} +5 -10
  10. package/dist/{start-form-L6xw9phk.js → start-form-DWlAhZhs.js} +169 -335
  11. package/dist/styles.css +1 -1
  12. package/dist/{test-input-validation-CkORPCfm.js → test-input-validation-Ch9pS4X8.js} +1 -2
  13. package/package.json +108 -106
  14. package/vendor/coze/LICENSE-APACHE +177 -177
  15. package/vendor/coze/UPSTREAM.json +8 -8
  16. package/vendor/coze/original/base-test-button.tsx +22 -22
  17. package/vendor/coze/original/comment-container.tsx +68 -68
  18. package/vendor/coze/original/condition-container.tsx +60 -60
  19. package/vendor/coze/original/condition-tag.tsx +58 -58
  20. package/vendor/coze/original/coze-global.less +234 -234
  21. package/vendor/coze/original/create-loop-function-json.ts +134 -134
  22. package/vendor/coze/original/create-loop-function.ts +56 -56
  23. package/vendor/coze/original/end-registry.ts +41 -41
  24. package/vendor/coze/original/execute-result-panel.less +97 -97
  25. package/vendor/coze/original/execute-result-panel.tsx +171 -171
  26. package/vendor/coze/original/form-item.less +39 -39
  27. package/vendor/coze/original/form-item.tsx +200 -200
  28. package/vendor/coze/original/http-api-field.tsx +42 -42
  29. package/vendor/coze/original/http-form-render.tsx +102 -102
  30. package/vendor/coze/original/icon-add.svg +3 -3
  31. package/vendor/coze/original/icon-arrow-left.svg +3 -3
  32. package/vendor/coze/original/icon-auto-layout.svg +18 -18
  33. package/vendor/coze/original/icon-code.svg +13 -13
  34. package/vendor/coze/original/icon-condition.svg +12 -12
  35. package/vendor/coze/original/icon-database.svg +18 -18
  36. package/vendor/coze/original/icon-delete.svg +5 -5
  37. package/vendor/coze/original/icon-fullscreen.svg +9 -9
  38. package/vendor/coze/original/icon-more.svg +11 -11
  39. package/vendor/coze/original/icon-play-round-outlined.svg +8 -8
  40. package/vendor/coze/original/icon-plugin-tool.svg +6 -6
  41. package/vendor/coze/original/icon-standard-copy.svg +8 -8
  42. package/vendor/coze/original/icon-unknown.svg +7 -7
  43. package/vendor/coze/original/icon-var.svg +6 -6
  44. package/vendor/coze/original/icon-workflow-end.svg +5 -5
  45. package/vendor/coze/original/icon-workflow-start.svg +5 -5
  46. package/vendor/coze/original/icon-workflow.svg +21 -21
  47. package/vendor/coze/original/icon-workflows.svg +5 -5
  48. package/vendor/coze/original/if-form-meta.tsx +88 -88
  49. package/vendor/coze/original/logic-display.tsx +33 -33
  50. package/vendor/coze/original/mouse-icon.tsx +35 -35
  51. package/vendor/coze/original/mouse-pad-selector.tsx +180 -180
  52. package/vendor/coze/original/node-card.tsx +77 -77
  53. package/vendor/coze/original/node-category-panel.less +4 -4
  54. package/vendor/coze/original/node-category-panel.tsx +53 -53
  55. package/vendor/coze/original/node-config-form.tsx +67 -67
  56. package/vendor/coze/original/node-header.less +165 -165
  57. package/vendor/coze/original/node-header.tsx +552 -552
  58. package/vendor/coze/original/node-panel.less +183 -183
  59. package/vendor/coze/original/node-render.less +20 -20
  60. package/vendor/coze/original/node-side-sheet.less +57 -57
  61. package/vendor/coze/original/node-side-sheet.tsx +214 -214
  62. package/vendor/coze/original/node-wrapper.tsx +71 -71
  63. package/vendor/coze/original/pad-icon.tsx +45 -45
  64. package/vendor/coze/original/resizable-side-panel-constants.ts +18 -18
  65. package/vendor/coze/original/resizable-side-panel.tsx +42 -42
  66. package/vendor/coze/original/start-registry.ts +53 -53
  67. package/vendor/coze/original/sub-canvas-background.less +4 -4
  68. package/vendor/coze/original/sub-canvas-background.tsx +48 -48
  69. package/vendor/coze/original/sub-canvas-container.less +16 -16
  70. package/vendor/coze/original/sub-canvas-container.tsx +97 -97
  71. package/vendor/coze/original/sub-canvas-header.less +75 -75
  72. package/vendor/coze/original/sub-canvas-header.tsx +95 -95
  73. package/vendor/coze/original/test-form-sheet-header.tsx +82 -82
  74. package/vendor/coze/original/test-form-sheet.less +178 -178
  75. package/vendor/coze/original/toolbar-add-node.tsx +68 -68
  76. package/vendor/coze/original/toolbar-auto-layout.tsx +61 -61
  77. package/vendor/coze/original/toolbar-comment.tsx +121 -121
  78. package/vendor/coze/original/toolbar-container.tsx +42 -42
  79. package/vendor/coze/original/toolbar-interactive.tsx +98 -98
  80. package/vendor/coze/original/toolbar-minimap-switch.tsx +41 -41
  81. package/vendor/coze/original/toolbar-tools.less +46 -46
  82. package/vendor/coze/original/toolbar-tools.tsx +89 -89
  83. package/vendor/coze/original/toolbar-zoom.tsx +134 -134
  84. package/vendor/coze/original/tree-variable-selector.less +291 -291
  85. package/vendor/coze/original/tree-variable-selector.tsx +298 -298
  86. package/vendor/coze/original/workflow-document-custom-options.ts +151 -151
  87. package/vendor/coze/original/workflow-header.less +65 -65
  88. package/vendor/coze/original/workflow-header.tsx +85 -85
  89. package/vendor/coze/source/agent-models/model-option/index.module.less +18 -18
  90. package/vendor/coze/source/agent-models/model-option/index.tsx +321 -321
  91. package/vendor/coze/source/agent-models/model-option-avatar/index.tsx +175 -175
  92. package/vendor/coze/source/agent-models/model-option-group/index.tsx +87 -87
  93. package/vendor/coze/source/agent-models/model-option-thumb/index.tsx +41 -41
  94. package/vendor/coze/source/agent-models/model-select-ui/index.tsx +238 -238
  95. package/vendor/coze/source/agent-models/popover-model-list-view/index.tsx +146 -146
  96. package/vendor/coze/source/components/code-editor/text-editor.tsx +71 -71
  97. package/vendor/coze/source/components/comment/components/editor/block.tsx +117 -117
  98. package/vendor/coze/source/components/comment/components/editor/leaf.tsx +64 -64
  99. package/vendor/coze/source/components/comment/components/toolbar.tsx +366 -366
  100. package/vendor/coze/source/components/comment/constant.ts +94 -94
  101. package/vendor/coze/source/components/editor-container/expand-editor/index.module.less +107 -107
  102. package/vendor/coze/source/components/editor-container/expand-editor/index.tsx +117 -117
  103. package/vendor/coze/source/components/model-select/components/model-setting.tsx +300 -300
  104. package/vendor/coze/source/components/model-select/components/settings.tsx +144 -144
  105. package/vendor/coze/source/components/model-select/index.module.less +34 -34
  106. package/vendor/coze/source/components/model-select/utils/index.tsx +100 -100
  107. package/vendor/coze/source/components/node-render/node-render-new/fields/constants.tsx +79 -79
  108. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.module.less +12 -12
  109. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.tsx +37 -37
  110. package/vendor/coze/source/components/node-render/node-render-new/fields/field.module.less +19 -19
  111. package/vendor/coze/source/components/node-render/node-render-new/fields/field.tsx +52 -52
  112. package/vendor/coze/source/components/node-render/node-render-new/fields/http-api-field/index.tsx +42 -42
  113. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.module.less +47 -47
  114. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.tsx +162 -162
  115. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.module.less +48 -48
  116. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.tsx +126 -126
  117. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.module.less +97 -97
  118. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.tsx +171 -171
  119. package/vendor/coze/source/components/sub-canvas/components/background/index.module.less +4 -4
  120. package/vendor/coze/source/components/sub-canvas/components/header/index.module.less +75 -75
  121. package/vendor/coze/source/components/test-run/test-run-button/single-node.tsx +158 -158
  122. package/vendor/coze/source/execution-panel/panel.module.less +48 -48
  123. package/vendor/coze/source/execution-panel/panel.tsx +99 -99
  124. package/vendor/coze/source/execution-panel/use-resize.ts +79 -79
  125. package/vendor/coze/source/external/features/log/components/data-viewer/constants.ts +28 -28
  126. package/vendor/coze/source/external/features/log/components/data-viewer/context/context.ts +21 -21
  127. package/vendor/coze/source/external/features/log/components/data-viewer/context/create-store.ts +48 -48
  128. package/vendor/coze/source/external/features/log/components/data-viewer/context/index.ts +19 -19
  129. package/vendor/coze/source/external/features/log/components/data-viewer/context/provider.tsx +50 -50
  130. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.module.less +26 -26
  131. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.tsx +79 -79
  132. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/index.ts +18 -18
  133. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-data-viewer-store.ts +29 -29
  134. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-expand.ts +35 -35
  135. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-value.tsx +66 -66
  136. package/vendor/coze/source/external/features/log/components/data-viewer/index.tsx +21 -21
  137. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/index.tsx +186 -186
  138. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/json-field.module.less +79 -79
  139. package/vendor/coze/source/external/features/log/components/data-viewer/types.ts +50 -50
  140. package/vendor/coze/source/external/features/log/components/data-viewer/utils/big-number.ts +35 -35
  141. package/vendor/coze/source/external/features/log/components/data-viewer/utils/generate-field.ts +104 -104
  142. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.module.less +27 -27
  143. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.tsx +109 -109
  144. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.module.less +52 -52
  145. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.tsx +113 -113
  146. package/vendor/coze/source/form/components/field-empty.tsx +45 -45
  147. package/vendor/coze/source/form/components/section.tsx +91 -91
  148. package/vendor/coze/source/form-extensions/components/add-item-button/index.tsx +64 -64
  149. package/vendor/coze/source/form-extensions/components/form-card/index.module.less +131 -131
  150. package/vendor/coze/source/form-extensions/components/form-card/index.tsx +309 -309
  151. package/vendor/coze/source/form-extensions/components/form-item/index.module.less +39 -39
  152. package/vendor/coze/source/form-extensions/components/form-item/index.tsx +200 -200
  153. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.module.less +7 -7
  154. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.tsx +39 -39
  155. package/vendor/coze/source/form-extensions/components/level-line/index.module.less +346 -346
  156. package/vendor/coze/source/form-extensions/components/level-line/index.ts +17 -17
  157. package/vendor/coze/source/form-extensions/components/level-line/level-line.tsx +460 -460
  158. package/vendor/coze/source/form-extensions/components/level-line/types.ts +38 -38
  159. package/vendor/coze/source/form-extensions/components/level-line/utils.ts +60 -60
  160. package/vendor/coze/source/form-extensions/components/literal-value-input/constants.ts +61 -61
  161. package/vendor/coze/source/form-extensions/components/literal-value-input/input-boolean.tsx +80 -80
  162. package/vendor/coze/source/form-extensions/components/literal-value-input/input-integer.tsx +68 -68
  163. package/vendor/coze/source/form-extensions/components/literal-value-input/input-number.tsx +62 -62
  164. package/vendor/coze/source/form-extensions/components/literal-value-input/input-select.tsx +59 -59
  165. package/vendor/coze/source/form-extensions/components/literal-value-input/input-string.tsx +55 -55
  166. package/vendor/coze/source/form-extensions/components/literal-value-input/literal-value-input.tsx +35 -35
  167. package/vendor/coze/source/form-extensions/components/literal-value-input/styles.module.less +46 -46
  168. package/vendor/coze/source/form-extensions/components/literal-value-input/type.ts +61 -61
  169. package/vendor/coze/source/form-extensions/components/literal-value-input/utils.tsx +117 -117
  170. package/vendor/coze/source/form-extensions/components/node-header/components/close-button.tsx +44 -44
  171. package/vendor/coze/source/form-extensions/components/node-header/description-display.tsx +52 -52
  172. package/vendor/coze/source/form-extensions/components/node-header/description.tsx +131 -131
  173. package/vendor/coze/source/form-extensions/components/node-header/index.module.less +165 -165
  174. package/vendor/coze/source/form-extensions/components/node-header/index.tsx +552 -552
  175. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-btn/index.tsx +43 -43
  176. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/default-value-input.tsx +276 -276
  177. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.module.less +124 -124
  178. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.tsx +131 -131
  179. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/types.ts +32 -32
  180. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.module.less +38 -38
  181. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.tsx +101 -101
  182. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.module.less +51 -51
  183. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.tsx +107 -107
  184. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.module.less +17 -17
  185. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.tsx +53 -53
  186. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/constants.tsx +77 -77
  187. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.module.less +97 -97
  188. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.tsx +155 -155
  189. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.ts +38 -38
  190. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.module.less +138 -138
  191. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.tsx +360 -360
  192. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.ts +88 -88
  193. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.module.less +36 -36
  194. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.tsx +104 -104
  195. package/vendor/coze/source/form-extensions/components/output-tree/constants.ts +22 -22
  196. package/vendor/coze/source/form-extensions/components/output-tree/context.ts +28 -28
  197. package/vendor/coze/source/form-extensions/components/output-tree/hooks/use-columns-style.ts +39 -39
  198. package/vendor/coze/source/form-extensions/components/output-tree/index.module.less +83 -83
  199. package/vendor/coze/source/form-extensions/components/output-tree/index.tsx +692 -692
  200. package/vendor/coze/source/form-extensions/components/output-tree/utils.ts +185 -185
  201. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/index.tsx +97 -97
  202. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/option-item.tsx +30 -30
  203. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/types.ts +23 -23
  204. package/vendor/coze/source/form-extensions/components/setting-on-error/components/retry-times/index.tsx +45 -45
  205. package/vendor/coze/source/form-extensions/components/setting-on-error/components/timeout/index.tsx +102 -102
  206. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-option.tsx +167 -167
  207. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-tree-panel.tsx +165 -165
  208. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.module.less +96 -96
  209. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.tsx +265 -265
  210. package/vendor/coze/source/form-extensions/components/tree-variable-selector/context.tsx +42 -42
  211. package/vendor/coze/source/form-extensions/components/tree-variable-selector/expand-icon.tsx +30 -30
  212. package/vendor/coze/source/form-extensions/components/tree-variable-selector/index.module.less +291 -291
  213. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.module.less +48 -48
  214. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.tsx +149 -149
  215. package/vendor/coze/source/form-extensions/components/tree-variable-selector/utils.tsx +500 -500
  216. package/vendor/coze/source/form-extensions/components/tree-variable-selector/value-display.tsx +130 -130
  217. package/vendor/coze/source/form-extensions/components/value-expression-input/const.ts +68 -68
  218. package/vendor/coze/source/form-extensions/components/value-expression-input/context.ts +27 -27
  219. package/vendor/coze/source/form-extensions/components/value-expression-input/index.module.less +144 -144
  220. package/vendor/coze/source/form-extensions/components/value-expression-input/value-expression-input.tsx +418 -418
  221. package/vendor/coze/source/form-extensions/components/variable-type-selector/constants.tsx +77 -77
  222. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.module.less +31 -31
  223. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.tsx +17 -17
  224. package/vendor/coze/source/form-extensions/components/variable-type-selector/utils.tsx +298 -298
  225. package/vendor/coze/source/form-extensions/components/variable-type-selector/variable-type-selector.tsx +235 -235
  226. package/vendor/coze/source/form-extensions/components/variable-type-tag/index.tsx +54 -54
  227. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.module.less +9 -9
  228. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.tsx +249 -249
  229. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-header.tsx +50 -50
  230. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.module.less +13 -13
  231. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.tsx +73 -73
  232. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.module.less +10 -10
  233. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.tsx +42 -42
  234. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.module.less +9 -9
  235. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.tsx +254 -254
  236. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.module.less +7 -7
  237. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.tsx +144 -144
  238. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/value-expression-with-state/index.tsx +69 -69
  239. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/context.ts +36 -36
  240. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch-preview.tsx +44 -44
  241. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch.tsx +152 -152
  242. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/container.tsx +19 -19
  243. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/custom-drag-layer.tsx +117 -117
  244. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/types.ts +18 -18
  245. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/types.ts +58 -58
  246. package/vendor/coze/source/node-registries/end/components/terminate-plan-field.tsx +29 -29
  247. package/vendor/coze/source/node-registries/end/constants.ts +34 -34
  248. package/vendor/coze/source/node-registries/end/form.tsx +66 -66
  249. package/vendor/coze/source/node-registries/end/types.ts +45 -45
  250. package/vendor/coze/source/node-registries/http/components/base-editor/raw-text-editor.tsx +80 -80
  251. package/vendor/coze/source/node-registries/http/constants.ts +80 -80
  252. package/vendor/coze/source/node-registries/http/fields/json-import-editor/index.module.less +191 -191
  253. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-expand-editor.tsx +141 -141
  254. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-import.tsx +99 -99
  255. package/vendor/coze/source/node-registries/http/form-render.tsx +102 -102
  256. package/vendor/coze/source/node-registries/http/setters/api/curl-expand-editor.tsx +161 -161
  257. package/vendor/coze/source/node-registries/http/setters/api/curl-import.tsx +96 -96
  258. package/vendor/coze/source/node-registries/http/setters/api/index.module.less +199 -199
  259. package/vendor/coze/source/node-registries/http/setters/api/index.tsx +149 -149
  260. package/vendor/coze/source/node-registries/http/setters/api/utils.ts +41 -41
  261. package/vendor/coze/source/node-registries/http/setters/body/index.tsx +201 -201
  262. package/vendor/coze/source/node-registries/http/setters/constants.ts +83 -83
  263. package/vendor/coze/source/node-registries/if/components/else/index.tsx +41 -41
  264. package/vendor/coze/source/node-registries/intent/components/intents/index.module.less +14 -14
  265. package/vendor/coze/source/node-registries/intent/components/intents/option-item/index.tsx +189 -189
  266. package/vendor/coze/source/node-registries/json-stringify/constants.ts +32 -32
  267. package/vendor/coze/source/node-registries/json-stringify/form.tsx +46 -46
  268. package/vendor/coze/source/node-registries/loop/constants.ts +43 -43
  269. package/vendor/coze/source/node-registries/loop/loop-fields/loop-settings-section/index.tsx +48 -48
  270. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/index.tsx +81 -81
  271. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/options.ts +34 -34
  272. package/vendor/coze/source/node-registries/start/form.tsx +209 -209
  273. package/vendor/coze/source/node-registries/text-process/components/method-selector/index.tsx +46 -46
  274. package/vendor/coze/source/node-registries/text-process/constants.ts +132 -132
  275. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.module.less +7 -7
  276. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.tsx +47 -47
  277. package/vendor/coze/source/nodes-v2/components/system-prompt/index.module.less +66 -66
  278. package/vendor/coze/source/nodes-v2/components/system-prompt/prompt-kit-bar.tsx +129 -129
  279. package/vendor/coze/source/nodes-v2/components/system-prompt/system-prompt-editor.tsx +110 -110
  280. package/vendor/coze/source/nodes-v2/llm/user-prompt/index.tsx +64 -64
  281. package/vendor/coze/source/prompt-kit/input-config-popover/index.tsx +80 -80
  282. package/vendor/coze/source/prompt-kit/input-slot-widget/index.css +34 -34
  283. package/vendor/coze/source/prompt-kit/input-slot-widget/index.ts +169 -169
  284. package/vendor/coze/source/prompt-kit/library-item.tsx +141 -141
  285. package/vendor/coze/source/prompt-kit/prompt-info-input.tsx +90 -90
  286. package/vendor/coze/source/ui-components/add-operation/index.module.less +19 -19
  287. package/vendor/coze/source/ui-components/add-operation/index.tsx +67 -67
  288. package/vendor/coze/source/ui-components/auto-size-tooltip/index.module.less +39 -39
  289. package/vendor/coze/source/ui-components/auto-size-tooltip/index.tsx +74 -74
  290. package/vendor/coze/source/ui-components/workflow-sl-input/index.module.less +36 -36
  291. package/vendor/coze/source/ui-components/workflow-sl-input/index.tsx +194 -194
  292. package/vendor/coze/source/utils/create-slots/index.tsx +126 -126
  293. 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
+ };