@fudanda/workflow 1.20261015.1-beta.1 → 2.20261024.1-beta.2

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