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