feat: Add Command and FileUpload workflow icons, fix SSH provider icon

This commit is contained in:
zhsama
2026-02-11 19:13:01 +08:00
parent 17ba8af331
commit a71d13523d
11 changed files with 162 additions and 7 deletions

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M12.6667 7.33333V3.33333H3.33333V12.6667H7.33333C7.70152 12.6667 8 12.9651 8 13.3333C8 13.7015 7.70152 14 7.33333 14H2.66667C2.29848 14 2 13.7015 2 13.3333V2.66667C2 2.29848 2.29848 2 2.66667 2H13.3333C13.7015 2 14 2.29848 14 2.66667V7.33333C14 7.70152 13.7015 8 13.3333 8C12.9651 8 12.6667 7.70152 12.6667 7.33333Z" fill="white"/>
<path d="M4.52865 4.86198C4.789 4.60163 5.211 4.60163 5.47135 4.86198L6.63802 6.02865C6.89837 6.289 6.89837 6.711 6.63802 6.97135L5.47135 8.13802C5.211 8.39837 4.789 8.39837 4.52865 8.13802C4.2683 7.87767 4.2683 7.45566 4.52865 7.19531L5.22396 6.5L4.52865 5.80469C4.2683 5.54434 4.2683 5.12233 4.52865 4.86198Z" fill="white"/>
<path d="M9 7C9.36819 7 9.66667 7.29848 9.66667 7.66667C9.66667 8.03486 9.36819 8.33333 9 8.33333H7.66667C7.29848 8.33333 7 8.03486 7 7.66667C7 7.29848 7.29848 7 7.66667 7H9Z" fill="white"/>
<path d="M12.827 10.7901L12.3624 9.5822C12.3047 9.43227 12.1607 9.33333 12 9.33333C11.8393 9.33333 11.6953 9.43227 11.6376 9.5822L11.173 10.7901C11.1053 10.9662 10.9662 11.1053 10.7901 11.173L9.5822 11.6376C9.43227 11.6953 9.33333 11.8393 9.33333 12C9.33333 12.1607 9.43227 12.3047 9.5822 12.3624L10.7901 12.827C10.9662 12.8947 11.1053 13.0338 11.173 13.2099L11.6376 14.4178C11.6953 14.5677 11.8393 14.6667 12 14.6667C12.1607 14.6667 12.3047 14.5677 12.3624 14.4178L12.827 13.2099C12.8947 13.0338 13.0338 12.8947 13.2099 12.827L14.4178 12.3624C14.5677 12.3047 14.6667 12.1607 14.6667 12C14.6667 11.8393 14.5677 11.6953 14.4178 11.6376L13.2099 11.173C13.0338 11.1053 12.8947 10.9662 12.827 10.7901Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" fill="none">
<path d="M0 9.33333V2C0 0.89543 0.89543 0 2 0H4.61979C5.28848 1.27097e-05 5.91294 0.33421 6.28385 0.890625L7.02344 2H11.3333C12.4379 2 13.3333 2.89544 13.3333 4V9.33333C13.3333 10.4379 12.4379 11.3333 11.3333 11.3333H10C9.63181 11.3333 9.33333 11.0349 9.33333 10.6667C9.33333 10.2985 9.63181 10 10 10H11.3333C11.7015 10 12 9.70154 12 9.33333V4C12 3.6318 11.7015 3.33333 11.3333 3.33333H7.02344C6.6054 3.33332 6.21336 3.13745 5.96224 2.80729L5.91406 2.73958L5.17448 1.63021C5.05087 1.44478 4.84269 1.33335 4.61979 1.33333H2C1.63181 1.33333 1.33333 1.63181 1.33333 2V9.33333C1.33333 9.70154 1.6318 10 2 10H3.33333C3.70152 10 4 10.2985 4 10.6667C4 11.0349 3.70152 11.3333 3.33333 11.3333H2C0.895437 11.3333 0 10.4379 0 9.33333Z" fill="white"/>
<path d="M6 10.6667V7C6 6.63181 6.29848 6.33333 6.66667 6.33333C7.03486 6.33333 7.33333 6.63181 7.33333 7V10.6667C7.33333 11.0349 7.03486 11.3333 6.66667 11.3333C6.29848 11.3333 6 11.0349 6 10.6667Z" fill="white"/>
<path d="M6.24609 6.14974C6.50794 5.93617 6.89394 5.95123 7.13802 6.19531L8.80469 7.86198C9.06504 8.12233 9.06504 8.54434 8.80469 8.80469C8.54434 9.06504 8.12233 9.06504 7.86198 8.80469L6.66667 7.60937L5.47135 8.80469C5.211 9.06504 4.789 9.06504 4.52865 8.80469C4.2683 8.54434 4.2683 8.12233 4.52865 7.86198L6.19531 6.19531L6.24609 6.14974Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,53 @@
{
"icon": {
"type": "element",
"isRootNode": true,
"name": "svg",
"attributes": {
"xmlns": "http://www.w3.org/2000/svg",
"width": "16",
"height": "16",
"viewBox": "0 0 16 16",
"fill": "none"
},
"children": [
{
"type": "element",
"name": "path",
"attributes": {
"d": "M12.6667 7.33333V3.33333H3.33333V12.6667H7.33333C7.70152 12.6667 8 12.9651 8 13.3333C8 13.7015 7.70152 14 7.33333 14H2.66667C2.29848 14 2 13.7015 2 13.3333V2.66667C2 2.29848 2.29848 2 2.66667 2H13.3333C13.7015 2 14 2.29848 14 2.66667V7.33333C14 7.70152 13.7015 8 13.3333 8C12.9651 8 12.6667 7.70152 12.6667 7.33333Z",
"fill": "currentColor"
},
"children": []
},
{
"type": "element",
"name": "path",
"attributes": {
"d": "M4.52865 4.86198C4.789 4.60163 5.211 4.60163 5.47135 4.86198L6.63802 6.02865C6.89837 6.289 6.89837 6.711 6.63802 6.97135L5.47135 8.13802C5.211 8.39837 4.789 8.39837 4.52865 8.13802C4.2683 7.87767 4.2683 7.45566 4.52865 7.19531L5.22396 6.5L4.52865 5.80469C4.2683 5.54434 4.2683 5.12233 4.52865 4.86198Z",
"fill": "currentColor"
},
"children": []
},
{
"type": "element",
"name": "path",
"attributes": {
"d": "M9 7C9.36819 7 9.66667 7.29848 9.66667 7.66667C9.66667 8.03486 9.36819 8.33333 9 8.33333H7.66667C7.29848 8.33333 7 8.03486 7 7.66667C7 7.29848 7.29848 7 7.66667 7H9Z",
"fill": "currentColor"
},
"children": []
},
{
"type": "element",
"name": "path",
"attributes": {
"d": "M12.827 10.7901L12.3624 9.5822C12.3047 9.43227 12.1607 9.33333 12 9.33333C11.8393 9.33333 11.6953 9.43227 11.6376 9.5822L11.173 10.7901C11.1053 10.9662 10.9662 11.1053 10.7901 11.173L9.5822 11.6376C9.43227 11.6953 9.33333 11.8393 9.33333 12C9.33333 12.1607 9.43227 12.3047 9.5822 12.3624L10.7901 12.827C10.9662 12.8947 11.1053 13.0338 11.173 13.2099L11.6376 14.4178C11.6953 14.5677 11.8393 14.6667 12 14.6667C12.1607 14.6667 12.3047 14.5677 12.3624 14.4178L12.827 13.2099C12.8947 13.0338 13.0338 12.8947 13.2099 12.827L14.4178 12.3624C14.5677 12.3047 14.6667 12.1607 14.6667 12C14.6667 11.8393 14.5677 11.6953 14.4178 11.6376L13.2099 11.173C13.0338 11.1053 12.8947 10.9662 12.827 10.7901Z",
"fill": "currentColor"
},
"children": []
}
]
},
"name": "Command"
}

View File

@ -0,0 +1,20 @@
// GENERATE BY script
// DON NOT EDIT IT MANUALLY
import type { IconData } from '@/app/components/base/icons/IconBase'
import * as React from 'react'
import IconBase from '@/app/components/base/icons/IconBase'
import data from './Command.json'
const Icon = (
{
ref,
...props
}: React.SVGProps<SVGSVGElement> & {
ref?: React.RefObject<React.RefObject<HTMLOrSVGElement>>
},
) => <IconBase {...props} ref={ref} data={data as IconData} />
Icon.displayName = 'Command'
export default Icon

View File

@ -0,0 +1,44 @@
{
"icon": {
"type": "element",
"isRootNode": true,
"name": "svg",
"attributes": {
"xmlns": "http://www.w3.org/2000/svg",
"width": "14",
"height": "12",
"viewBox": "0 0 14 12",
"fill": "none"
},
"children": [
{
"type": "element",
"name": "path",
"attributes": {
"d": "M0 9.33333V2C0 0.89543 0.89543 0 2 0H4.61979C5.28848 1.27097e-05 5.91294 0.33421 6.28385 0.890625L7.02344 2H11.3333C12.4379 2 13.3333 2.89544 13.3333 4V9.33333C13.3333 10.4379 12.4379 11.3333 11.3333 11.3333H10C9.63181 11.3333 9.33333 11.0349 9.33333 10.6667C9.33333 10.2985 9.63181 10 10 10H11.3333C11.7015 10 12 9.70154 12 9.33333V4C12 3.6318 11.7015 3.33333 11.3333 3.33333H7.02344C6.6054 3.33332 6.21336 3.13745 5.96224 2.80729L5.91406 2.73958L5.17448 1.63021C5.05087 1.44478 4.84269 1.33335 4.61979 1.33333H2C1.63181 1.33333 1.33333 1.63181 1.33333 2V9.33333C1.33333 9.70154 1.6318 10 2 10H3.33333C3.70152 10 4 10.2985 4 10.6667C4 11.0349 3.70152 11.3333 3.33333 11.3333H2C0.895437 11.3333 0 10.4379 0 9.33333Z",
"fill": "currentColor"
},
"children": []
},
{
"type": "element",
"name": "path",
"attributes": {
"d": "M6 10.6667V7C6 6.63181 6.29848 6.33333 6.66667 6.33333C7.03486 6.33333 7.33333 6.63181 7.33333 7V10.6667C7.33333 11.0349 7.03486 11.3333 6.66667 11.3333C6.29848 11.3333 6 11.0349 6 10.6667Z",
"fill": "currentColor"
},
"children": []
},
{
"type": "element",
"name": "path",
"attributes": {
"d": "M6.24609 6.14974C6.50794 5.93617 6.89394 5.95123 7.13802 6.19531L8.80469 7.86198C9.06504 8.12233 9.06504 8.54434 8.80469 8.80469C8.54434 9.06504 8.12233 9.06504 7.86198 8.80469L6.66667 7.60937L5.47135 8.80469C5.211 9.06504 4.789 9.06504 4.52865 8.80469C4.2683 8.54434 4.2683 8.12233 4.52865 7.86198L6.19531 6.19531L6.24609 6.14974Z",
"fill": "currentColor"
},
"children": []
}
]
},
"name": "FileUpload"
}

View File

@ -0,0 +1,20 @@
// GENERATE BY script
// DON NOT EDIT IT MANUALLY
import type { IconData } from '@/app/components/base/icons/IconBase'
import * as React from 'react'
import IconBase from '@/app/components/base/icons/IconBase'
import data from './FileUpload.json'
const Icon = (
{
ref,
...props
}: React.SVGProps<SVGSVGElement> & {
ref?: React.RefObject<React.RefObject<HTMLOrSVGElement>>
},
) => <IconBase {...props} ref={ref} data={data as IconData} />
Icon.displayName = 'FileUpload'
export default Icon

View File

@ -6,9 +6,11 @@ export { default as Asterisk } from './Asterisk'
export { default as AtSign } from './AtSign'
export { default as CalendarCheckLine } from './CalendarCheckLine'
export { default as Code } from './Code'
export { default as Command } from './Command'
export { default as Datasource } from './Datasource'
export { default as DocsExtractor } from './DocsExtractor'
export { default as End } from './End'
export { default as FileUpload } from './FileUpload'
export { default as FolderSpark } from './FolderSpark'
export { default as Home } from './Home'
export { default as Http } from './Http'

View File

@ -5,7 +5,7 @@ export const PROVIDER_ICONS: Record<string, string> = {
daytona: '/sandbox-providers/daytona.svg',
docker: '/sandbox-providers/docker.svg',
local: '/sandbox-providers/local.svg',
ssh: '/sandbox-providers/docker.svg',
ssh: '/sandbox-providers/ssh.svg',
}
export const PROVIDER_LABEL_KEYS = {

View File

@ -1,4 +1,3 @@
import { RiTerminalBoxLine } from '@remixicon/react'
import DockerMarkWhite from '@/app/components/base/icons/src/public/common/DockerMarkWhite'
import E2B from '@/app/components/base/icons/src/public/common/E2B'
import SandboxLocal from '@/app/components/base/icons/src/public/common/SandboxLocal'
@ -13,6 +12,7 @@ type ProviderIconProps = {
const DOCKER_BRAND_BLUE = '#1D63ED'
const SSH_CONSOLE_BG = '#0F172A'
const SSH_ICON_SRC = '/sandbox-providers/ssh.svg'
const ProviderIcon = ({
providerType,
@ -20,6 +20,7 @@ const ProviderIcon = ({
withBorder = false,
}: ProviderIconProps) => {
const sizeClass = size === 'sm' ? 'h-4 w-4' : 'h-6 w-6'
const sshIconClass = size === 'sm' ? 'h-[5px] w-auto max-w-[70%]' : 'h-[6px] w-auto max-w-[70%]'
if (providerType === 'docker') {
const inner = (
@ -94,7 +95,7 @@ const ProviderIcon = ({
)}
style={{ backgroundColor: SSH_CONSOLE_BG }}
>
<RiTerminalBoxLine className="h-4 w-4 text-white" />
<img src={SSH_ICON_SRC} alt="ssh icon" className={sshIconClass} />
</div>
)
if (withBorder) {

View File

@ -14,9 +14,11 @@ import {
Answer,
Assigner,
Code,
Command,
Datasource,
DocsExtractor,
End,
FileUpload,
Home,
Http,
HumanInLoop,
@ -34,7 +36,6 @@ import {
TemplatingTransform,
VariableX,
WebhookLine,
WindowCursor,
} from '@/app/components/base/icons/src/vender/workflow'
import { STORAGE_KEYS } from '@/config/storage-keys'
import { cn } from '@/utils/classnames'
@ -57,8 +58,8 @@ const DEFAULT_ICON_MAP: Record<BlockEnum, React.ComponentType<{ className: strin
[BlockEnum.Start]: Home,
[BlockEnum.LLM]: Llm,
[BlockEnum.Code]: Code,
[BlockEnum.Command]: WindowCursor,
[BlockEnum.FileUpload]: DocsExtractor,
[BlockEnum.Command]: Command,
[BlockEnum.FileUpload]: FileUpload,
[BlockEnum.End]: End,
[BlockEnum.IfElse]: IfElse,
[BlockEnum.HttpRequest]: Http,
@ -101,7 +102,7 @@ const ICON_CONTAINER_BG_COLOR_MAP: Record<string, string> = {
[BlockEnum.LLM]: 'bg-util-colors-indigo-indigo-500',
[BlockEnum.Code]: 'bg-util-colors-blue-blue-500',
[BlockEnum.Command]: 'bg-util-colors-blue-blue-500',
[BlockEnum.FileUpload]: 'bg-util-colors-green-green-500',
[BlockEnum.FileUpload]: 'bg-util-colors-blue-blue-500',
[BlockEnum.End]: 'bg-util-colors-warning-warning-500',
[BlockEnum.IfElse]: 'bg-util-colors-cyan-cyan-500',
[BlockEnum.Iteration]: 'bg-util-colors-cyan-cyan-500',

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29" height="10" viewBox="0 0 29 10" fill="none">
<path d="M1.66667 0C0.666667 0 0 0.833333 0 1.66667V4.58333C0 5.41667 0.666667 6.25 1.66667 6.25H5.83333V7.5H0V10H6.66667C7.66667 10 8.33333 9.16667 8.33333 8.33333V5.41667C8.33333 4.58333 7.66667 3.75 6.66667 3.75H2.5V2.5H8.33333V0H1.66667ZM11.6667 0C10.6667 0 10 0.833333 10 1.66667V4.58333C10 5.41667 10.6667 6.25 11.6667 6.25H15.8333V7.5H10V10H16.6667C17.6667 10 18.3333 9.16667 18.3333 8.33333V5.41667C18.3333 4.58333 17.6667 3.75 16.6667 3.75H12.5V2.5H18.3333V0H11.6667ZM20 0V10H22.5V5.83333H25.8333V10H28.3333V0H25.8333V3.33333H22.5V0H20Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 667 B