@fudanda/workflow 2.20261024.1-beta.2 → 2.20261109.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,321 +1,321 @@
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 -- ignore */
18
- import { type PropsWithChildren, useRef } from 'react';
19
-
20
- import cls from 'classnames';
21
- import { useHover } from 'ahooks';
22
- import {
23
- useBenefitAvailable,
24
- PremiumPaywallScene,
25
- usePremiumPaywallModal,
26
- } from '@coze-studio/premium-components-adapter';
27
- import { I18n } from '@coze-arch/i18n';
28
- import { type Model, ModelTagClass } from '@coze-arch/bot-api/developer_api';
29
- import {
30
- useBotCreatorContext,
31
- BotCreatorScene,
32
- } from '@coze-agent-ide/bot-creator-context';
33
- import {
34
- IconCozLongArrowTopRight,
35
- IconCozSetting,
36
- IconCozLongArrowUpCircle,
37
- IconCozDiamondFill,
38
- } from '@coze-arch/coze-design/icons';
39
- import { IconButton, Tag, Tooltip, Typography } from '@coze-arch/coze-design';
40
- import { OverflowList } from '@blueprintjs/core';
41
-
42
- import { ModelOptionAvatar } from '../model-option-avatar';
43
-
44
- import styles from './index.module.less';
45
-
46
- export type ModelOptionProps = {
47
- model: Model;
48
- selected?: boolean;
49
- disabled?: boolean;
50
- /** Return whether the switch was successful */
51
- onClick: () => boolean;
52
- } & (
53
- | {
54
- enableConfig?: false;
55
- }
56
- | {
57
- enableConfig: true;
58
- onConfigClick: () => void;
59
- }
60
- ) &
61
- (
62
- | {
63
- enableJumpDetail?: false;
64
- }
65
- | {
66
- enableJumpDetail: true;
67
- /**
68
- * Click to jump to the model management page
69
- *
70
- * Because the component positioning is a pure UI component, and the way to obtain the space id of different modules is different, the splicing of jump behavior and url is not built-in
71
- */
72
- onDetailClick: (modelId: string) => void;
73
- }
74
- );
75
-
76
- // eslint-disable-next-line @coze-arch/max-line-per-function
77
- export function ModelOption({
78
- model,
79
- selected,
80
- disabled,
81
- onClick,
82
- ...props
83
- }: ModelOptionProps) {
84
- /** This ref is purely for judging whether to hover or not. */
85
- const ref = useRef<HTMLElement>(null);
86
- const isHovering = useHover(ref);
87
- const { scene } = useBotCreatorContext();
88
-
89
- const featureTags = model.model_tag_list
90
- ?.filter(t => t.tag_class === ModelTagClass.ModelFeature && t.tag_name)
91
- .map(t => t.tag_name);
92
- const functionTags = model.model_tag_list
93
- ?.filter(t => t.tag_class === ModelTagClass.ModelFunction && t.tag_name)
94
- .map(t => t.tag_name);
95
-
96
- // Paywall, open source version does not support this feature
97
- const isProModel =
98
- model.model_status_details?.is_new_model ||
99
- model.model_status_details?.is_advanced_model;
100
- const isNewModelAvailable = useBenefitAvailable({
101
- scene: PremiumPaywallScene.NewModel,
102
- });
103
- const { node: premiumPaywallModal, open: openPremiumPaywallModal } =
104
- usePremiumPaywallModal({ scene: PremiumPaywallScene.NewModel });
105
-
106
- return (
107
- <>
108
- <article
109
- ref={ref}
110
- className={cls(
111
- 'pl-[16px] pr-[12px] w-full relative',
112
- 'flex gap-[16px] items-center rounded-[12px]',
113
- selected
114
- ? 'coz-mg-hglt hover:coz-mg-hglt-hovered'
115
- : 'hover:coz-mg-secondary-hovered active:coz-mg-secondary-pressed',
116
- disabled ? 'cursor-not-allowed' : 'cursor-pointer',
117
- // The following cls only hide the upper and lower dividing lines when implementing hover, active, and last (note that the dividing lines are in model-info-border, the designer's careful thought)
118
- styles['model-option'],
119
- // @ts-expect-error -- I don't know why the error is reported.
120
- { [styles['model-option_selected']]: selected },
121
- )}
122
- onClick={() => {
123
- if (disabled) {
124
- return;
125
- }
126
- if (isProModel && !isNewModelAvailable) {
127
- openPremiumPaywallModal();
128
- return;
129
- }
130
- onClick();
131
- }}
132
- >
133
- <ModelOptionAvatar model={model} />
134
- <div
135
- className={cls(
136
- 'h-[80px] py-[12px] w-full',
137
- 'flex flex-col overflow-hidden',
138
- 'border-0 border-b border-solid coz-stroke-primary',
139
- styles['model-info-border'],
140
- )}
141
- style={
142
- isHovering
143
- ? {
144
- mask: calcMaskStyle([
145
- props.enableConfig,
146
- props.enableJumpDetail,
147
- ]),
148
- }
149
- : undefined
150
- }
151
- >
152
- <div className="w-full flex items-center gap-[6px] overflow-hidden">
153
- <Typography.Title fontSize="14px" ellipsis={{ showTooltip: true }}>
154
- {model.name}
155
- </Typography.Title>
156
- <div className="shrink-0 flex gap-[6px]">
157
- {model.model_status_details?.is_free_model &&
158
- scene !== BotCreatorScene.DouyinBot ? (
159
- <Tag size="mini" color="primary" className="!coz-mg-plus">
160
- {I18n.t('model_list_free')}
161
- </Tag>
162
- ) : null}
163
- {isProModel && !isNewModelAvailable ? (
164
- <IconCozDiamondFill className="coz-fg-hglt" />
165
- ) : null}
166
- {featureTags?.length
167
- ? featureTags.map(feature => (
168
- <Tag
169
- key={feature}
170
- size="mini"
171
- color="primary"
172
- className="!bg-transparent !border border-solid coz-stroke-plus"
173
- >
174
- {feature}
175
- </Tag>
176
- ))
177
- : null}
178
- </div>
179
- </div>
180
- <div className="flex items-center text-[12px] leading-[16px] coz-fg-dim overflow-hidden">
181
- <ModelTag isFirst>
182
- {((model.model_quota?.token_limit || 0) / 1024).toFixed(0)}K
183
- </ModelTag>
184
- <ModelTag
185
- isLast={!functionTags?.length}
186
- className="flex items-center gap-[4px]"
187
- >
188
- <span>{model.model_name}</span>
189
- {model.model_status_details?.update_info ? (
190
- <Tooltip content={model.model_status_details.update_info}>
191
- <IconCozLongArrowUpCircle className="ml-[2px] coz-fg-hglt-green" />
192
- </Tooltip>
193
- ) : null}
194
- </ModelTag>
195
- {functionTags?.length ? (
196
- <Tooltip content={functionTags.join(IS_OVERSEA ? ', ' : '、')}>
197
- <span className="overflow-hidden">
198
- <OverflowList
199
- items={functionTags}
200
- visibleItemRenderer={(item, idx) => (
201
- <ModelTag
202
- key={idx}
203
- isLast={idx === functionTags.length - 1}
204
- >
205
- {item}
206
- </ModelTag>
207
- )}
208
- overflowRenderer={restItems => (
209
- <span className="pl-[6px] flex items-center">{`+${restItems.length}`}</span>
210
- )}
211
- collapseFrom="end"
212
- />
213
- </span>
214
- </Tooltip>
215
- ) : null}
216
- </div>
217
- <Typography.Text
218
- className="mt-[4px] text-[12px] leading-[16px] coz-fg-secondary"
219
- ellipsis={{ showTooltip: true }}
220
- >
221
- {model.model_brief_desc}
222
- </Typography.Text>
223
- </div>
224
- {isHovering ? (
225
- <div className="absolute right-[12px] h-full flex items-center gap-[3px]">
226
- {props.enableConfig ? (
227
- <IconButton
228
- icon={<IconCozSetting />}
229
- color="secondary"
230
- size="default"
231
- data-testid="model_select_option.config_btn"
232
- onClick={e => {
233
- e.stopPropagation();
234
-
235
- // paywall blocking
236
- if (isProModel && !isNewModelAvailable) {
237
- openPremiumPaywallModal();
238
- return;
239
- }
240
-
241
- if (selected) {
242
- props.onConfigClick();
243
- return;
244
- }
245
- const success = onClick();
246
- if (success) {
247
- setTimeout(() => props.onConfigClick());
248
- }
249
- }}
250
- />
251
- ) : null}
252
- {props.enableJumpDetail ? (
253
- <IconButton
254
- icon={<IconCozLongArrowTopRight />}
255
- color="secondary"
256
- size="default"
257
- data-testid="model_select_option.detail_btn"
258
- onClick={e => {
259
- e.stopPropagation();
260
- props.onDetailClick(String(model.model_type));
261
- }}
262
- />
263
- ) : null}
264
- </div>
265
- ) : null}
266
- </article>
267
- {premiumPaywallModal}
268
- </>
269
- );
270
- }
271
-
272
- function ModelTag({
273
- isFirst,
274
- isLast,
275
- className,
276
- children,
277
- }: PropsWithChildren<{
278
- isFirst?: boolean;
279
- isLast?: boolean;
280
- className?: string;
281
- }>) {
282
- return (
283
- <div
284
- className={cls(
285
- { 'pl-[6px]': !isFirst },
286
- 'shrink-0 flex items-center gap-[6px]',
287
- )}
288
- >
289
- <span className={className}>{children}</span>
290
- {isLast ? null : (
291
- <span className="h-[9px] border-0 border-r border-solid coz-stroke-primary" />
292
- )}
293
- </div>
294
- );
295
- }
296
-
297
- /**
298
- * When hovering to display several icons (such as jumping to the model details page and detailed configuration), there should be a gradual change mask effect on the content under the icon
299
- * This method is used to calculate the mask style
300
- */
301
- function calcMaskStyle(buttonVisible: Array<boolean | undefined>) {
302
- const btnNum = buttonVisible.reduce(
303
- (prevNum, showBtn) => prevNum + (showBtn ? 1 : 0),
304
- 0,
305
- );
306
- if (btnNum === 0) {
307
- return 'none';
308
- }
309
-
310
- const BTN_WIDTH = 32;
311
- const BTN_GAP = 3;
312
- /** Fixed width of mask that does not vary with the number of buttons */
313
- const PRESET_PADDING = 16;
314
- /** A gradual change in the width of the mask */
315
- const MASK_WIDTH = 24;
316
-
317
- const gradientStart =
318
- btnNum * BTN_WIDTH + (btnNum - 1) * BTN_GAP + PRESET_PADDING;
319
- const gradientEnd = gradientStart + MASK_WIDTH;
320
- return `linear-gradient(to left, rgba(0,0,0,0), rgba(0,0,0,0) ${gradientStart}px, #fff ${gradientEnd}px)`;
321
- }
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 -- ignore */
18
+ import { type PropsWithChildren, useRef } from 'react';
19
+
20
+ import cls from 'classnames';
21
+ import { useHover } from 'ahooks';
22
+ import {
23
+ useBenefitAvailable,
24
+ PremiumPaywallScene,
25
+ usePremiumPaywallModal,
26
+ } from '@coze-studio/premium-components-adapter';
27
+ import { I18n } from '@coze-arch/i18n';
28
+ import { type Model, ModelTagClass } from '@coze-arch/bot-api/developer_api';
29
+ import {
30
+ useBotCreatorContext,
31
+ BotCreatorScene,
32
+ } from '@coze-agent-ide/bot-creator-context';
33
+ import {
34
+ IconCozLongArrowTopRight,
35
+ IconCozSetting,
36
+ IconCozLongArrowUpCircle,
37
+ IconCozDiamondFill,
38
+ } from '@coze-arch/coze-design/icons';
39
+ import { IconButton, Tag, Tooltip, Typography } from '@coze-arch/coze-design';
40
+ import { OverflowList } from '@blueprintjs/core';
41
+
42
+ import { ModelOptionAvatar } from '../model-option-avatar';
43
+
44
+ import styles from './index.module.less';
45
+
46
+ export type ModelOptionProps = {
47
+ model: Model;
48
+ selected?: boolean;
49
+ disabled?: boolean;
50
+ /** Return whether the switch was successful */
51
+ onClick: () => boolean;
52
+ } & (
53
+ | {
54
+ enableConfig?: false;
55
+ }
56
+ | {
57
+ enableConfig: true;
58
+ onConfigClick: () => void;
59
+ }
60
+ ) &
61
+ (
62
+ | {
63
+ enableJumpDetail?: false;
64
+ }
65
+ | {
66
+ enableJumpDetail: true;
67
+ /**
68
+ * Click to jump to the model management page
69
+ *
70
+ * Because the component positioning is a pure UI component, and the way to obtain the space id of different modules is different, the splicing of jump behavior and url is not built-in
71
+ */
72
+ onDetailClick: (modelId: string) => void;
73
+ }
74
+ );
75
+
76
+ // eslint-disable-next-line @coze-arch/max-line-per-function
77
+ export function ModelOption({
78
+ model,
79
+ selected,
80
+ disabled,
81
+ onClick,
82
+ ...props
83
+ }: ModelOptionProps) {
84
+ /** This ref is purely for judging whether to hover or not. */
85
+ const ref = useRef<HTMLElement>(null);
86
+ const isHovering = useHover(ref);
87
+ const { scene } = useBotCreatorContext();
88
+
89
+ const featureTags = model.model_tag_list
90
+ ?.filter(t => t.tag_class === ModelTagClass.ModelFeature && t.tag_name)
91
+ .map(t => t.tag_name);
92
+ const functionTags = model.model_tag_list
93
+ ?.filter(t => t.tag_class === ModelTagClass.ModelFunction && t.tag_name)
94
+ .map(t => t.tag_name);
95
+
96
+ // Paywall, open source version does not support this feature
97
+ const isProModel =
98
+ model.model_status_details?.is_new_model ||
99
+ model.model_status_details?.is_advanced_model;
100
+ const isNewModelAvailable = useBenefitAvailable({
101
+ scene: PremiumPaywallScene.NewModel,
102
+ });
103
+ const { node: premiumPaywallModal, open: openPremiumPaywallModal } =
104
+ usePremiumPaywallModal({ scene: PremiumPaywallScene.NewModel });
105
+
106
+ return (
107
+ <>
108
+ <article
109
+ ref={ref}
110
+ className={cls(
111
+ 'pl-[16px] pr-[12px] w-full relative',
112
+ 'flex gap-[16px] items-center rounded-[12px]',
113
+ selected
114
+ ? 'coz-mg-hglt hover:coz-mg-hglt-hovered'
115
+ : 'hover:coz-mg-secondary-hovered active:coz-mg-secondary-pressed',
116
+ disabled ? 'cursor-not-allowed' : 'cursor-pointer',
117
+ // The following cls only hide the upper and lower dividing lines when implementing hover, active, and last (note that the dividing lines are in model-info-border, the designer's careful thought)
118
+ styles['model-option'],
119
+ // @ts-expect-error -- I don't know why the error is reported.
120
+ { [styles['model-option_selected']]: selected },
121
+ )}
122
+ onClick={() => {
123
+ if (disabled) {
124
+ return;
125
+ }
126
+ if (isProModel && !isNewModelAvailable) {
127
+ openPremiumPaywallModal();
128
+ return;
129
+ }
130
+ onClick();
131
+ }}
132
+ >
133
+ <ModelOptionAvatar model={model} />
134
+ <div
135
+ className={cls(
136
+ 'h-[80px] py-[12px] w-full',
137
+ 'flex flex-col overflow-hidden',
138
+ 'border-0 border-b border-solid coz-stroke-primary',
139
+ styles['model-info-border'],
140
+ )}
141
+ style={
142
+ isHovering
143
+ ? {
144
+ mask: calcMaskStyle([
145
+ props.enableConfig,
146
+ props.enableJumpDetail,
147
+ ]),
148
+ }
149
+ : undefined
150
+ }
151
+ >
152
+ <div className="w-full flex items-center gap-[6px] overflow-hidden">
153
+ <Typography.Title fontSize="14px" ellipsis={{ showTooltip: true }}>
154
+ {model.name}
155
+ </Typography.Title>
156
+ <div className="shrink-0 flex gap-[6px]">
157
+ {model.model_status_details?.is_free_model &&
158
+ scene !== BotCreatorScene.DouyinBot ? (
159
+ <Tag size="mini" color="primary" className="!coz-mg-plus">
160
+ {I18n.t('model_list_free')}
161
+ </Tag>
162
+ ) : null}
163
+ {isProModel && !isNewModelAvailable ? (
164
+ <IconCozDiamondFill className="coz-fg-hglt" />
165
+ ) : null}
166
+ {featureTags?.length
167
+ ? featureTags.map(feature => (
168
+ <Tag
169
+ key={feature}
170
+ size="mini"
171
+ color="primary"
172
+ className="!bg-transparent !border border-solid coz-stroke-plus"
173
+ >
174
+ {feature}
175
+ </Tag>
176
+ ))
177
+ : null}
178
+ </div>
179
+ </div>
180
+ <div className="flex items-center text-[12px] leading-[16px] coz-fg-dim overflow-hidden">
181
+ <ModelTag isFirst>
182
+ {((model.model_quota?.token_limit || 0) / 1024).toFixed(0)}K
183
+ </ModelTag>
184
+ <ModelTag
185
+ isLast={!functionTags?.length}
186
+ className="flex items-center gap-[4px]"
187
+ >
188
+ <span>{model.model_name}</span>
189
+ {model.model_status_details?.update_info ? (
190
+ <Tooltip content={model.model_status_details.update_info}>
191
+ <IconCozLongArrowUpCircle className="ml-[2px] coz-fg-hglt-green" />
192
+ </Tooltip>
193
+ ) : null}
194
+ </ModelTag>
195
+ {functionTags?.length ? (
196
+ <Tooltip content={functionTags.join(IS_OVERSEA ? ', ' : '、')}>
197
+ <span className="overflow-hidden">
198
+ <OverflowList
199
+ items={functionTags}
200
+ visibleItemRenderer={(item, idx) => (
201
+ <ModelTag
202
+ key={idx}
203
+ isLast={idx === functionTags.length - 1}
204
+ >
205
+ {item}
206
+ </ModelTag>
207
+ )}
208
+ overflowRenderer={restItems => (
209
+ <span className="pl-[6px] flex items-center">{`+${restItems.length}`}</span>
210
+ )}
211
+ collapseFrom="end"
212
+ />
213
+ </span>
214
+ </Tooltip>
215
+ ) : null}
216
+ </div>
217
+ <Typography.Text
218
+ className="mt-[4px] text-[12px] leading-[16px] coz-fg-secondary"
219
+ ellipsis={{ showTooltip: true }}
220
+ >
221
+ {model.model_brief_desc}
222
+ </Typography.Text>
223
+ </div>
224
+ {isHovering ? (
225
+ <div className="absolute right-[12px] h-full flex items-center gap-[3px]">
226
+ {props.enableConfig ? (
227
+ <IconButton
228
+ icon={<IconCozSetting />}
229
+ color="secondary"
230
+ size="default"
231
+ data-testid="model_select_option.config_btn"
232
+ onClick={e => {
233
+ e.stopPropagation();
234
+
235
+ // paywall blocking
236
+ if (isProModel && !isNewModelAvailable) {
237
+ openPremiumPaywallModal();
238
+ return;
239
+ }
240
+
241
+ if (selected) {
242
+ props.onConfigClick();
243
+ return;
244
+ }
245
+ const success = onClick();
246
+ if (success) {
247
+ setTimeout(() => props.onConfigClick());
248
+ }
249
+ }}
250
+ />
251
+ ) : null}
252
+ {props.enableJumpDetail ? (
253
+ <IconButton
254
+ icon={<IconCozLongArrowTopRight />}
255
+ color="secondary"
256
+ size="default"
257
+ data-testid="model_select_option.detail_btn"
258
+ onClick={e => {
259
+ e.stopPropagation();
260
+ props.onDetailClick(String(model.model_type));
261
+ }}
262
+ />
263
+ ) : null}
264
+ </div>
265
+ ) : null}
266
+ </article>
267
+ {premiumPaywallModal}
268
+ </>
269
+ );
270
+ }
271
+
272
+ function ModelTag({
273
+ isFirst,
274
+ isLast,
275
+ className,
276
+ children,
277
+ }: PropsWithChildren<{
278
+ isFirst?: boolean;
279
+ isLast?: boolean;
280
+ className?: string;
281
+ }>) {
282
+ return (
283
+ <div
284
+ className={cls(
285
+ { 'pl-[6px]': !isFirst },
286
+ 'shrink-0 flex items-center gap-[6px]',
287
+ )}
288
+ >
289
+ <span className={className}>{children}</span>
290
+ {isLast ? null : (
291
+ <span className="h-[9px] border-0 border-r border-solid coz-stroke-primary" />
292
+ )}
293
+ </div>
294
+ );
295
+ }
296
+
297
+ /**
298
+ * When hovering to display several icons (such as jumping to the model details page and detailed configuration), there should be a gradual change mask effect on the content under the icon
299
+ * This method is used to calculate the mask style
300
+ */
301
+ function calcMaskStyle(buttonVisible: Array<boolean | undefined>) {
302
+ const btnNum = buttonVisible.reduce(
303
+ (prevNum, showBtn) => prevNum + (showBtn ? 1 : 0),
304
+ 0,
305
+ );
306
+ if (btnNum === 0) {
307
+ return 'none';
308
+ }
309
+
310
+ const BTN_WIDTH = 32;
311
+ const BTN_GAP = 3;
312
+ /** Fixed width of mask that does not vary with the number of buttons */
313
+ const PRESET_PADDING = 16;
314
+ /** A gradual change in the width of the mask */
315
+ const MASK_WIDTH = 24;
316
+
317
+ const gradientStart =
318
+ btnNum * BTN_WIDTH + (btnNum - 1) * BTN_GAP + PRESET_PADDING;
319
+ const gradientEnd = gradientStart + MASK_WIDTH;
320
+ return `linear-gradient(to left, rgba(0,0,0,0), rgba(0,0,0,0) ${gradientStart}px, #fff ${gradientEnd}px)`;
321
+ }