From 4d7989c220d9cbc7e770fafbd44f9729c647159b Mon Sep 17 00:00:00 2001 From: MyPrototypeWhat Date: Tue, 16 Dec 2025 15:53:27 +0800 Subject: [PATCH] feat: add new SVG icons and update package.json - Added multiple new SVG icons to the logos directory. - Removed the deprecated dmxapiLogo component. - Updated package.json to reflect the new icons. --- packages/ui/icons/{ => logos}/302ai.svg | 0 packages/ui/icons/{ => logos}/DMXAPI.svg | 0 packages/ui/icons/{ => logos}/Voyage.svg | 0 packages/ui/icons/{ => logos}/aiOnly.svg | 0 packages/ui/icons/{ => logos}/aihubmix.svg | 0 packages/ui/icons/{ => logos}/alayanew.svg | 0 packages/ui/icons/{ => logos}/anthropic.svg | 0 packages/ui/icons/{ => logos}/aws-bedrock.svg | 0 packages/ui/icons/{ => logos}/azureai.svg | 0 packages/ui/icons/{ => logos}/baichuan.svg | 0 packages/ui/icons/{ => logos}/baidu-cloud.svg | 0 packages/ui/icons/{ => logos}/bailian.svg | 0 packages/ui/icons/{ => logos}/bocha.svg | 0 packages/ui/icons/{ => logos}/burncloud.svg | 0 packages/ui/icons/{ => logos}/bytedance.svg | 0 packages/ui/icons/{ => logos}/cephalon.svg | 0 packages/ui/icons/{ => logos}/cherryin.svg | 0 packages/ui/icons/{ => logos}/cohere.svg | 0 packages/ui/icons/{ => logos}/dashscope.svg | 0 packages/ui/icons/{ => logos}/deepseek.svg | 0 packages/ui/icons/{ => logos}/doc2x.svg | 0 packages/ui/icons/{ => logos}/doubao.svg | 0 packages/ui/icons/{ => logos}/exa.svg | 0 packages/ui/icons/{ => logos}/fireworks.svg | 0 packages/ui/icons/{ => logos}/gemini.svg | 0 packages/ui/icons/{ => logos}/gitee-ai.svg | 0 packages/ui/icons/{ => logos}/github.svg | 0 packages/ui/icons/{ => logos}/google.svg | 0 packages/ui/icons/{ => logos}/gpustack.svg | 0 packages/ui/icons/{ => logos}/graph-rag.svg | 0 packages/ui/icons/{ => logos}/grok.svg | 0 packages/ui/icons/{ => logos}/groq.svg | 0 packages/ui/icons/{ => logos}/huggingface.svg | 0 packages/ui/icons/{ => logos}/hyperbolic.svg | 0 packages/ui/icons/{ => logos}/infini.svg | 0 packages/ui/icons/{ => logos}/intel.svg | 0 packages/ui/icons/{ => logos}/jimeng.svg | 0 packages/ui/icons/{ => logos}/jina.svg | 0 packages/ui/icons/{ => logos}/lanyun.svg | 0 packages/ui/icons/{ => logos}/lepton.svg | 0 packages/ui/icons/{ => logos}/lmstudio.svg | 0 packages/ui/icons/{ => logos}/longcat.svg | 0 packages/ui/icons/{ => logos}/macos.svg | 0 packages/ui/icons/{ => logos}/mcprouter.svg | 0 packages/ui/icons/{ => logos}/meta.svg | 0 packages/ui/icons/{ => logos}/mineru.svg | 0 packages/ui/icons/{ => logos}/minimax.svg | 0 packages/ui/icons/{ => logos}/mistral.svg | 0 .../ui/icons/{ => logos}/mixedbread-1.svg | 0 packages/ui/icons/{ => logos}/mixedbread.svg | 0 packages/ui/icons/{ => logos}/moonshot.svg | 0 .../ui/icons/{ => logos}/netease-youdao.svg | 0 packages/ui/icons/{ => logos}/newapi.svg | 0 packages/ui/icons/{ => logos}/nomic.svg | 0 packages/ui/icons/{ => logos}/nvidia.svg | 0 packages/ui/icons/{ => logos}/o3.svg | 0 packages/ui/icons/{ => logos}/ocoolai.svg | 0 packages/ui/icons/{ => logos}/ollama.svg | 0 packages/ui/icons/{ => logos}/openai.svg | 0 packages/ui/icons/{ => logos}/openrouter.svg | 0 packages/ui/icons/{ => logos}/paddleocr.svg | 0 packages/ui/icons/{ => logos}/perplexity.svg | 0 packages/ui/icons/{ => logos}/ph8.svg | 0 packages/ui/icons/{ => logos}/ppio.svg | 0 packages/ui/icons/{ => logos}/qiniu.svg | 0 packages/ui/icons/{ => logos}/searxng.svg | 0 packages/ui/icons/{ => logos}/silicon.svg | 0 packages/ui/icons/{ => logos}/sophnet.svg | 0 packages/ui/icons/{ => logos}/step.svg | 0 packages/ui/icons/{ => logos}/tavily.svg | 0 .../ui/icons/{ => logos}/tencent-cloud-ti.svg | 0 .../ui/icons/{ => logos}/tesseract-js.svg | 0 packages/ui/icons/{ => logos}/together.svg | 0 packages/ui/icons/{ => logos}/tokenflux.svg | 0 packages/ui/icons/{ => logos}/vertexai.svg | 0 packages/ui/icons/{ => logos}/volcengine.svg | 0 packages/ui/icons/{ => logos}/xirang.svg | 0 packages/ui/icons/{ => logos}/zero-one.svg | 0 packages/ui/icons/{ => logos}/zhipu.svg | 0 packages/ui/package.json | 3 +- packages/ui/scripts/generate-icons.ts | 73 +++++++++++++++---- .../src/components/icons/logos/dmxapiLogo.tsx | 27 ------- .../ui/src/components/icons/logos/index.ts | 4 +- 83 files changed, 61 insertions(+), 46 deletions(-) rename packages/ui/icons/{ => logos}/302ai.svg (100%) rename packages/ui/icons/{ => logos}/DMXAPI.svg (100%) rename packages/ui/icons/{ => logos}/Voyage.svg (100%) rename packages/ui/icons/{ => logos}/aiOnly.svg (100%) rename packages/ui/icons/{ => logos}/aihubmix.svg (100%) rename packages/ui/icons/{ => logos}/alayanew.svg (100%) rename packages/ui/icons/{ => logos}/anthropic.svg (100%) rename packages/ui/icons/{ => logos}/aws-bedrock.svg (100%) rename packages/ui/icons/{ => logos}/azureai.svg (100%) rename packages/ui/icons/{ => logos}/baichuan.svg (100%) rename packages/ui/icons/{ => logos}/baidu-cloud.svg (100%) rename packages/ui/icons/{ => logos}/bailian.svg (100%) rename packages/ui/icons/{ => logos}/bocha.svg (100%) rename packages/ui/icons/{ => logos}/burncloud.svg (100%) rename packages/ui/icons/{ => logos}/bytedance.svg (100%) rename packages/ui/icons/{ => logos}/cephalon.svg (100%) rename packages/ui/icons/{ => logos}/cherryin.svg (100%) rename packages/ui/icons/{ => logos}/cohere.svg (100%) rename packages/ui/icons/{ => logos}/dashscope.svg (100%) rename packages/ui/icons/{ => logos}/deepseek.svg (100%) rename packages/ui/icons/{ => logos}/doc2x.svg (100%) rename packages/ui/icons/{ => logos}/doubao.svg (100%) rename packages/ui/icons/{ => logos}/exa.svg (100%) rename packages/ui/icons/{ => logos}/fireworks.svg (100%) rename packages/ui/icons/{ => logos}/gemini.svg (100%) rename packages/ui/icons/{ => logos}/gitee-ai.svg (100%) rename packages/ui/icons/{ => logos}/github.svg (100%) rename packages/ui/icons/{ => logos}/google.svg (100%) rename packages/ui/icons/{ => logos}/gpustack.svg (100%) rename packages/ui/icons/{ => logos}/graph-rag.svg (100%) rename packages/ui/icons/{ => logos}/grok.svg (100%) rename packages/ui/icons/{ => logos}/groq.svg (100%) rename packages/ui/icons/{ => logos}/huggingface.svg (100%) rename packages/ui/icons/{ => logos}/hyperbolic.svg (100%) rename packages/ui/icons/{ => logos}/infini.svg (100%) rename packages/ui/icons/{ => logos}/intel.svg (100%) rename packages/ui/icons/{ => logos}/jimeng.svg (100%) rename packages/ui/icons/{ => logos}/jina.svg (100%) rename packages/ui/icons/{ => logos}/lanyun.svg (100%) rename packages/ui/icons/{ => logos}/lepton.svg (100%) rename packages/ui/icons/{ => logos}/lmstudio.svg (100%) rename packages/ui/icons/{ => logos}/longcat.svg (100%) rename packages/ui/icons/{ => logos}/macos.svg (100%) rename packages/ui/icons/{ => logos}/mcprouter.svg (100%) rename packages/ui/icons/{ => logos}/meta.svg (100%) rename packages/ui/icons/{ => logos}/mineru.svg (100%) rename packages/ui/icons/{ => logos}/minimax.svg (100%) rename packages/ui/icons/{ => logos}/mistral.svg (100%) rename packages/ui/icons/{ => logos}/mixedbread-1.svg (100%) rename packages/ui/icons/{ => logos}/mixedbread.svg (100%) rename packages/ui/icons/{ => logos}/moonshot.svg (100%) rename packages/ui/icons/{ => logos}/netease-youdao.svg (100%) rename packages/ui/icons/{ => logos}/newapi.svg (100%) rename packages/ui/icons/{ => logos}/nomic.svg (100%) rename packages/ui/icons/{ => logos}/nvidia.svg (100%) rename packages/ui/icons/{ => logos}/o3.svg (100%) rename packages/ui/icons/{ => logos}/ocoolai.svg (100%) rename packages/ui/icons/{ => logos}/ollama.svg (100%) rename packages/ui/icons/{ => logos}/openai.svg (100%) rename packages/ui/icons/{ => logos}/openrouter.svg (100%) rename packages/ui/icons/{ => logos}/paddleocr.svg (100%) rename packages/ui/icons/{ => logos}/perplexity.svg (100%) rename packages/ui/icons/{ => logos}/ph8.svg (100%) rename packages/ui/icons/{ => logos}/ppio.svg (100%) rename packages/ui/icons/{ => logos}/qiniu.svg (100%) rename packages/ui/icons/{ => logos}/searxng.svg (100%) rename packages/ui/icons/{ => logos}/silicon.svg (100%) rename packages/ui/icons/{ => logos}/sophnet.svg (100%) rename packages/ui/icons/{ => logos}/step.svg (100%) rename packages/ui/icons/{ => logos}/tavily.svg (100%) rename packages/ui/icons/{ => logos}/tencent-cloud-ti.svg (100%) rename packages/ui/icons/{ => logos}/tesseract-js.svg (100%) rename packages/ui/icons/{ => logos}/together.svg (100%) rename packages/ui/icons/{ => logos}/tokenflux.svg (100%) rename packages/ui/icons/{ => logos}/vertexai.svg (100%) rename packages/ui/icons/{ => logos}/volcengine.svg (100%) rename packages/ui/icons/{ => logos}/xirang.svg (100%) rename packages/ui/icons/{ => logos}/zero-one.svg (100%) rename packages/ui/icons/{ => logos}/zhipu.svg (100%) delete mode 100644 packages/ui/src/components/icons/logos/dmxapiLogo.tsx diff --git a/packages/ui/icons/302ai.svg b/packages/ui/icons/logos/302ai.svg similarity index 100% rename from packages/ui/icons/302ai.svg rename to packages/ui/icons/logos/302ai.svg diff --git a/packages/ui/icons/DMXAPI.svg b/packages/ui/icons/logos/DMXAPI.svg similarity index 100% rename from packages/ui/icons/DMXAPI.svg rename to packages/ui/icons/logos/DMXAPI.svg diff --git a/packages/ui/icons/Voyage.svg b/packages/ui/icons/logos/Voyage.svg similarity index 100% rename from packages/ui/icons/Voyage.svg rename to packages/ui/icons/logos/Voyage.svg diff --git a/packages/ui/icons/aiOnly.svg b/packages/ui/icons/logos/aiOnly.svg similarity index 100% rename from packages/ui/icons/aiOnly.svg rename to packages/ui/icons/logos/aiOnly.svg diff --git a/packages/ui/icons/aihubmix.svg b/packages/ui/icons/logos/aihubmix.svg similarity index 100% rename from packages/ui/icons/aihubmix.svg rename to packages/ui/icons/logos/aihubmix.svg diff --git a/packages/ui/icons/alayanew.svg b/packages/ui/icons/logos/alayanew.svg similarity index 100% rename from packages/ui/icons/alayanew.svg rename to packages/ui/icons/logos/alayanew.svg diff --git a/packages/ui/icons/anthropic.svg b/packages/ui/icons/logos/anthropic.svg similarity index 100% rename from packages/ui/icons/anthropic.svg rename to packages/ui/icons/logos/anthropic.svg diff --git a/packages/ui/icons/aws-bedrock.svg b/packages/ui/icons/logos/aws-bedrock.svg similarity index 100% rename from packages/ui/icons/aws-bedrock.svg rename to packages/ui/icons/logos/aws-bedrock.svg diff --git a/packages/ui/icons/azureai.svg b/packages/ui/icons/logos/azureai.svg similarity index 100% rename from packages/ui/icons/azureai.svg rename to packages/ui/icons/logos/azureai.svg diff --git a/packages/ui/icons/baichuan.svg b/packages/ui/icons/logos/baichuan.svg similarity index 100% rename from packages/ui/icons/baichuan.svg rename to packages/ui/icons/logos/baichuan.svg diff --git a/packages/ui/icons/baidu-cloud.svg b/packages/ui/icons/logos/baidu-cloud.svg similarity index 100% rename from packages/ui/icons/baidu-cloud.svg rename to packages/ui/icons/logos/baidu-cloud.svg diff --git a/packages/ui/icons/bailian.svg b/packages/ui/icons/logos/bailian.svg similarity index 100% rename from packages/ui/icons/bailian.svg rename to packages/ui/icons/logos/bailian.svg diff --git a/packages/ui/icons/bocha.svg b/packages/ui/icons/logos/bocha.svg similarity index 100% rename from packages/ui/icons/bocha.svg rename to packages/ui/icons/logos/bocha.svg diff --git a/packages/ui/icons/burncloud.svg b/packages/ui/icons/logos/burncloud.svg similarity index 100% rename from packages/ui/icons/burncloud.svg rename to packages/ui/icons/logos/burncloud.svg diff --git a/packages/ui/icons/bytedance.svg b/packages/ui/icons/logos/bytedance.svg similarity index 100% rename from packages/ui/icons/bytedance.svg rename to packages/ui/icons/logos/bytedance.svg diff --git a/packages/ui/icons/cephalon.svg b/packages/ui/icons/logos/cephalon.svg similarity index 100% rename from packages/ui/icons/cephalon.svg rename to packages/ui/icons/logos/cephalon.svg diff --git a/packages/ui/icons/cherryin.svg b/packages/ui/icons/logos/cherryin.svg similarity index 100% rename from packages/ui/icons/cherryin.svg rename to packages/ui/icons/logos/cherryin.svg diff --git a/packages/ui/icons/cohere.svg b/packages/ui/icons/logos/cohere.svg similarity index 100% rename from packages/ui/icons/cohere.svg rename to packages/ui/icons/logos/cohere.svg diff --git a/packages/ui/icons/dashscope.svg b/packages/ui/icons/logos/dashscope.svg similarity index 100% rename from packages/ui/icons/dashscope.svg rename to packages/ui/icons/logos/dashscope.svg diff --git a/packages/ui/icons/deepseek.svg b/packages/ui/icons/logos/deepseek.svg similarity index 100% rename from packages/ui/icons/deepseek.svg rename to packages/ui/icons/logos/deepseek.svg diff --git a/packages/ui/icons/doc2x.svg b/packages/ui/icons/logos/doc2x.svg similarity index 100% rename from packages/ui/icons/doc2x.svg rename to packages/ui/icons/logos/doc2x.svg diff --git a/packages/ui/icons/doubao.svg b/packages/ui/icons/logos/doubao.svg similarity index 100% rename from packages/ui/icons/doubao.svg rename to packages/ui/icons/logos/doubao.svg diff --git a/packages/ui/icons/exa.svg b/packages/ui/icons/logos/exa.svg similarity index 100% rename from packages/ui/icons/exa.svg rename to packages/ui/icons/logos/exa.svg diff --git a/packages/ui/icons/fireworks.svg b/packages/ui/icons/logos/fireworks.svg similarity index 100% rename from packages/ui/icons/fireworks.svg rename to packages/ui/icons/logos/fireworks.svg diff --git a/packages/ui/icons/gemini.svg b/packages/ui/icons/logos/gemini.svg similarity index 100% rename from packages/ui/icons/gemini.svg rename to packages/ui/icons/logos/gemini.svg diff --git a/packages/ui/icons/gitee-ai.svg b/packages/ui/icons/logos/gitee-ai.svg similarity index 100% rename from packages/ui/icons/gitee-ai.svg rename to packages/ui/icons/logos/gitee-ai.svg diff --git a/packages/ui/icons/github.svg b/packages/ui/icons/logos/github.svg similarity index 100% rename from packages/ui/icons/github.svg rename to packages/ui/icons/logos/github.svg diff --git a/packages/ui/icons/google.svg b/packages/ui/icons/logos/google.svg similarity index 100% rename from packages/ui/icons/google.svg rename to packages/ui/icons/logos/google.svg diff --git a/packages/ui/icons/gpustack.svg b/packages/ui/icons/logos/gpustack.svg similarity index 100% rename from packages/ui/icons/gpustack.svg rename to packages/ui/icons/logos/gpustack.svg diff --git a/packages/ui/icons/graph-rag.svg b/packages/ui/icons/logos/graph-rag.svg similarity index 100% rename from packages/ui/icons/graph-rag.svg rename to packages/ui/icons/logos/graph-rag.svg diff --git a/packages/ui/icons/grok.svg b/packages/ui/icons/logos/grok.svg similarity index 100% rename from packages/ui/icons/grok.svg rename to packages/ui/icons/logos/grok.svg diff --git a/packages/ui/icons/groq.svg b/packages/ui/icons/logos/groq.svg similarity index 100% rename from packages/ui/icons/groq.svg rename to packages/ui/icons/logos/groq.svg diff --git a/packages/ui/icons/huggingface.svg b/packages/ui/icons/logos/huggingface.svg similarity index 100% rename from packages/ui/icons/huggingface.svg rename to packages/ui/icons/logos/huggingface.svg diff --git a/packages/ui/icons/hyperbolic.svg b/packages/ui/icons/logos/hyperbolic.svg similarity index 100% rename from packages/ui/icons/hyperbolic.svg rename to packages/ui/icons/logos/hyperbolic.svg diff --git a/packages/ui/icons/infini.svg b/packages/ui/icons/logos/infini.svg similarity index 100% rename from packages/ui/icons/infini.svg rename to packages/ui/icons/logos/infini.svg diff --git a/packages/ui/icons/intel.svg b/packages/ui/icons/logos/intel.svg similarity index 100% rename from packages/ui/icons/intel.svg rename to packages/ui/icons/logos/intel.svg diff --git a/packages/ui/icons/jimeng.svg b/packages/ui/icons/logos/jimeng.svg similarity index 100% rename from packages/ui/icons/jimeng.svg rename to packages/ui/icons/logos/jimeng.svg diff --git a/packages/ui/icons/jina.svg b/packages/ui/icons/logos/jina.svg similarity index 100% rename from packages/ui/icons/jina.svg rename to packages/ui/icons/logos/jina.svg diff --git a/packages/ui/icons/lanyun.svg b/packages/ui/icons/logos/lanyun.svg similarity index 100% rename from packages/ui/icons/lanyun.svg rename to packages/ui/icons/logos/lanyun.svg diff --git a/packages/ui/icons/lepton.svg b/packages/ui/icons/logos/lepton.svg similarity index 100% rename from packages/ui/icons/lepton.svg rename to packages/ui/icons/logos/lepton.svg diff --git a/packages/ui/icons/lmstudio.svg b/packages/ui/icons/logos/lmstudio.svg similarity index 100% rename from packages/ui/icons/lmstudio.svg rename to packages/ui/icons/logos/lmstudio.svg diff --git a/packages/ui/icons/longcat.svg b/packages/ui/icons/logos/longcat.svg similarity index 100% rename from packages/ui/icons/longcat.svg rename to packages/ui/icons/logos/longcat.svg diff --git a/packages/ui/icons/macos.svg b/packages/ui/icons/logos/macos.svg similarity index 100% rename from packages/ui/icons/macos.svg rename to packages/ui/icons/logos/macos.svg diff --git a/packages/ui/icons/mcprouter.svg b/packages/ui/icons/logos/mcprouter.svg similarity index 100% rename from packages/ui/icons/mcprouter.svg rename to packages/ui/icons/logos/mcprouter.svg diff --git a/packages/ui/icons/meta.svg b/packages/ui/icons/logos/meta.svg similarity index 100% rename from packages/ui/icons/meta.svg rename to packages/ui/icons/logos/meta.svg diff --git a/packages/ui/icons/mineru.svg b/packages/ui/icons/logos/mineru.svg similarity index 100% rename from packages/ui/icons/mineru.svg rename to packages/ui/icons/logos/mineru.svg diff --git a/packages/ui/icons/minimax.svg b/packages/ui/icons/logos/minimax.svg similarity index 100% rename from packages/ui/icons/minimax.svg rename to packages/ui/icons/logos/minimax.svg diff --git a/packages/ui/icons/mistral.svg b/packages/ui/icons/logos/mistral.svg similarity index 100% rename from packages/ui/icons/mistral.svg rename to packages/ui/icons/logos/mistral.svg diff --git a/packages/ui/icons/mixedbread-1.svg b/packages/ui/icons/logos/mixedbread-1.svg similarity index 100% rename from packages/ui/icons/mixedbread-1.svg rename to packages/ui/icons/logos/mixedbread-1.svg diff --git a/packages/ui/icons/mixedbread.svg b/packages/ui/icons/logos/mixedbread.svg similarity index 100% rename from packages/ui/icons/mixedbread.svg rename to packages/ui/icons/logos/mixedbread.svg diff --git a/packages/ui/icons/moonshot.svg b/packages/ui/icons/logos/moonshot.svg similarity index 100% rename from packages/ui/icons/moonshot.svg rename to packages/ui/icons/logos/moonshot.svg diff --git a/packages/ui/icons/netease-youdao.svg b/packages/ui/icons/logos/netease-youdao.svg similarity index 100% rename from packages/ui/icons/netease-youdao.svg rename to packages/ui/icons/logos/netease-youdao.svg diff --git a/packages/ui/icons/newapi.svg b/packages/ui/icons/logos/newapi.svg similarity index 100% rename from packages/ui/icons/newapi.svg rename to packages/ui/icons/logos/newapi.svg diff --git a/packages/ui/icons/nomic.svg b/packages/ui/icons/logos/nomic.svg similarity index 100% rename from packages/ui/icons/nomic.svg rename to packages/ui/icons/logos/nomic.svg diff --git a/packages/ui/icons/nvidia.svg b/packages/ui/icons/logos/nvidia.svg similarity index 100% rename from packages/ui/icons/nvidia.svg rename to packages/ui/icons/logos/nvidia.svg diff --git a/packages/ui/icons/o3.svg b/packages/ui/icons/logos/o3.svg similarity index 100% rename from packages/ui/icons/o3.svg rename to packages/ui/icons/logos/o3.svg diff --git a/packages/ui/icons/ocoolai.svg b/packages/ui/icons/logos/ocoolai.svg similarity index 100% rename from packages/ui/icons/ocoolai.svg rename to packages/ui/icons/logos/ocoolai.svg diff --git a/packages/ui/icons/ollama.svg b/packages/ui/icons/logos/ollama.svg similarity index 100% rename from packages/ui/icons/ollama.svg rename to packages/ui/icons/logos/ollama.svg diff --git a/packages/ui/icons/openai.svg b/packages/ui/icons/logos/openai.svg similarity index 100% rename from packages/ui/icons/openai.svg rename to packages/ui/icons/logos/openai.svg diff --git a/packages/ui/icons/openrouter.svg b/packages/ui/icons/logos/openrouter.svg similarity index 100% rename from packages/ui/icons/openrouter.svg rename to packages/ui/icons/logos/openrouter.svg diff --git a/packages/ui/icons/paddleocr.svg b/packages/ui/icons/logos/paddleocr.svg similarity index 100% rename from packages/ui/icons/paddleocr.svg rename to packages/ui/icons/logos/paddleocr.svg diff --git a/packages/ui/icons/perplexity.svg b/packages/ui/icons/logos/perplexity.svg similarity index 100% rename from packages/ui/icons/perplexity.svg rename to packages/ui/icons/logos/perplexity.svg diff --git a/packages/ui/icons/ph8.svg b/packages/ui/icons/logos/ph8.svg similarity index 100% rename from packages/ui/icons/ph8.svg rename to packages/ui/icons/logos/ph8.svg diff --git a/packages/ui/icons/ppio.svg b/packages/ui/icons/logos/ppio.svg similarity index 100% rename from packages/ui/icons/ppio.svg rename to packages/ui/icons/logos/ppio.svg diff --git a/packages/ui/icons/qiniu.svg b/packages/ui/icons/logos/qiniu.svg similarity index 100% rename from packages/ui/icons/qiniu.svg rename to packages/ui/icons/logos/qiniu.svg diff --git a/packages/ui/icons/searxng.svg b/packages/ui/icons/logos/searxng.svg similarity index 100% rename from packages/ui/icons/searxng.svg rename to packages/ui/icons/logos/searxng.svg diff --git a/packages/ui/icons/silicon.svg b/packages/ui/icons/logos/silicon.svg similarity index 100% rename from packages/ui/icons/silicon.svg rename to packages/ui/icons/logos/silicon.svg diff --git a/packages/ui/icons/sophnet.svg b/packages/ui/icons/logos/sophnet.svg similarity index 100% rename from packages/ui/icons/sophnet.svg rename to packages/ui/icons/logos/sophnet.svg diff --git a/packages/ui/icons/step.svg b/packages/ui/icons/logos/step.svg similarity index 100% rename from packages/ui/icons/step.svg rename to packages/ui/icons/logos/step.svg diff --git a/packages/ui/icons/tavily.svg b/packages/ui/icons/logos/tavily.svg similarity index 100% rename from packages/ui/icons/tavily.svg rename to packages/ui/icons/logos/tavily.svg diff --git a/packages/ui/icons/tencent-cloud-ti.svg b/packages/ui/icons/logos/tencent-cloud-ti.svg similarity index 100% rename from packages/ui/icons/tencent-cloud-ti.svg rename to packages/ui/icons/logos/tencent-cloud-ti.svg diff --git a/packages/ui/icons/tesseract-js.svg b/packages/ui/icons/logos/tesseract-js.svg similarity index 100% rename from packages/ui/icons/tesseract-js.svg rename to packages/ui/icons/logos/tesseract-js.svg diff --git a/packages/ui/icons/together.svg b/packages/ui/icons/logos/together.svg similarity index 100% rename from packages/ui/icons/together.svg rename to packages/ui/icons/logos/together.svg diff --git a/packages/ui/icons/tokenflux.svg b/packages/ui/icons/logos/tokenflux.svg similarity index 100% rename from packages/ui/icons/tokenflux.svg rename to packages/ui/icons/logos/tokenflux.svg diff --git a/packages/ui/icons/vertexai.svg b/packages/ui/icons/logos/vertexai.svg similarity index 100% rename from packages/ui/icons/vertexai.svg rename to packages/ui/icons/logos/vertexai.svg diff --git a/packages/ui/icons/volcengine.svg b/packages/ui/icons/logos/volcengine.svg similarity index 100% rename from packages/ui/icons/volcengine.svg rename to packages/ui/icons/logos/volcengine.svg diff --git a/packages/ui/icons/xirang.svg b/packages/ui/icons/logos/xirang.svg similarity index 100% rename from packages/ui/icons/xirang.svg rename to packages/ui/icons/logos/xirang.svg diff --git a/packages/ui/icons/zero-one.svg b/packages/ui/icons/logos/zero-one.svg similarity index 100% rename from packages/ui/icons/zero-one.svg rename to packages/ui/icons/logos/zero-one.svg diff --git a/packages/ui/icons/zhipu.svg b/packages/ui/icons/logos/zhipu.svg similarity index 100% rename from packages/ui/icons/zhipu.svg rename to packages/ui/icons/logos/zhipu.svg diff --git a/packages/ui/package.json b/packages/ui/package.json index 99781d8fc5..31e65d0bd4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -16,7 +16,8 @@ "type-check": "tsc --noEmit -p tsconfig.json --composite false", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", - "icons:generate": "tsx scripts/generate-icons.ts" + "icons:generate": "tsx scripts/generate-icons.ts --type=icons", + "logos:generate": "tsx scripts/generate-icons.ts --type=logos" }, "keywords": [ "ui", diff --git a/packages/ui/scripts/generate-icons.ts b/packages/ui/scripts/generate-icons.ts index eed250af56..13a6bbaf99 100644 --- a/packages/ui/scripts/generate-icons.ts +++ b/packages/ui/scripts/generate-icons.ts @@ -6,8 +6,44 @@ import { transform } from '@svgr/core' import fs from 'fs/promises' import path from 'path' -const ICONS_DIR = path.join(__dirname, '../icons') -const OUTPUT_DIR = path.join(__dirname, '../src/components/icons/logos') +type IconType = 'icons' | 'logos' + +const DEFAULT_TYPE: IconType = 'icons' + +const SOURCE_DIR_MAP: Record = { + icons: path.join(__dirname, '../icons/general'), + logos: path.join(__dirname, '../icons/logos') +} + +const OUTPUT_DIR_MAP: Record = { + icons: path.join(__dirname, '../src/components/icons/general'), + logos: path.join(__dirname, '../src/components/icons/logos') +} + +function parseTypeArg(): IconType { + const arg = process.argv.find((item) => item.startsWith('--type=')) + if (!arg) return DEFAULT_TYPE + + const value = arg.split('=')[1] + if (value === 'icons' || value === 'logos') return value + + throw new Error(`Invalid --type value: ${value}. Use "icons" or "logos".`) +} + +async function ensureInputDir(type: IconType): Promise { + const inputDir = SOURCE_DIR_MAP[type] + const stat = await fs.stat(inputDir).catch(() => null) + if (!stat || !stat.isDirectory()) { + throw new Error(`Source directory not found for type=${type}. Expected: ${inputDir}`) + } + return inputDir +} + +async function ensureOutputDir(type: IconType): Promise { + const outputDir = OUTPUT_DIR_MAP[type] + await fs.mkdir(outputDir, { recursive: true }) + return outputDir +} /** * Convert filename to PascalCase component name @@ -55,13 +91,18 @@ function toCamelCase(filename: string): string { /** * Generate a single icon component */ -async function generateIcon(svgFile: string): Promise<{ filename: string; componentName: string }> { - const svgPath = path.join(ICONS_DIR, svgFile) +async function generateIcon( + type: IconType, + inputDir: string, + outputDir: string, + svgFile: string +): Promise<{ filename: string; componentName: string }> { + const svgPath = path.join(inputDir, svgFile) const svgCode = await fs.readFile(svgPath, 'utf-8') const componentName = toPascalCase(svgFile) const outputFilename = toCamelCase(svgFile) + '.tsx' - const outputPath = path.join(OUTPUT_DIR, outputFilename) + const outputPath = path.join(outputDir, outputFilename) // Use SVGR with simple config let jsCode = await transform( @@ -110,7 +151,7 @@ async function generateIcon(svgFile: string): Promise<{ filename: string; compon /** * Generate index.ts file */ -async function generateIndex(components: Array<{ filename: string; componentName: string }>) { +async function generateIndex(outputDir: string, components: Array<{ filename: string; componentName: string }>) { const exports = components .map(({ filename, componentName }) => { const basename = filename.replace('.tsx', '') @@ -130,29 +171,30 @@ async function generateIndex(components: Array<{ filename: string; componentName ${exports} ` - await fs.writeFile(path.join(OUTPUT_DIR, 'index.ts'), indexContent, 'utf-8') + await fs.writeFile(path.join(outputDir, 'index.ts'), indexContent, 'utf-8') } /** * Main function */ async function main() { - console.log('šŸ”§ Starting icon generation...\n') + const type = parseTypeArg() - // Ensure output directory exists - await fs.mkdir(OUTPUT_DIR, { recursive: true }) + console.log(`šŸ”§ Starting icon generation (type: ${type})...\n`) - // Get all SVG files - const files = await fs.readdir(ICONS_DIR) + const inputDir = await ensureInputDir(type) + const outputDir = await ensureOutputDir(type) + + const files = await fs.readdir(inputDir) const svgFiles = files.filter((f) => f.endsWith('.svg')) - console.log(`šŸ“ Found ${svgFiles.length} SVG files\n`) + console.log(`šŸ“ Found ${svgFiles.length} SVG files in ${inputDir}\n`) const components: Array<{ filename: string; componentName: string }> = [] for (const svgFile of svgFiles) { try { - const result = await generateIcon(svgFile) + const result = await generateIcon(type, inputDir, outputDir, svgFile) components.push(result) console.log(`āœ… ${svgFile} -> ${result.filename} (${result.componentName})`) } catch (error) { @@ -160,9 +202,8 @@ async function main() { } } - // Generate index.ts console.log('\nšŸ“ Generating index.ts...') - await generateIndex(components) + await generateIndex(outputDir, components) console.log(`\n✨ Generation complete! Successfully processed ${components.length}/${svgFiles.length} files`) } diff --git a/packages/ui/src/components/icons/logos/dmxapiLogo.tsx b/packages/ui/src/components/icons/logos/dmxapiLogo.tsx deleted file mode 100644 index 9b03bfc656..0000000000 --- a/packages/ui/src/components/icons/logos/dmxapiLogo.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import type { SVGProps } from 'react' -const DmxapiLogo = (props: SVGProps) => ( - - - - - - - - - -) -export { DmxapiLogo } -export default DmxapiLogo diff --git a/packages/ui/src/components/icons/logos/index.ts b/packages/ui/src/components/icons/logos/index.ts index 4e27f76421..c7ecbd3ef5 100644 --- a/packages/ui/src/components/icons/logos/index.ts +++ b/packages/ui/src/components/icons/logos/index.ts @@ -2,8 +2,8 @@ * Auto-generated icon exports * Do not edit manually * - * Generated at: 2025-11-14T10:23:25.580Z - * Total icons: 80 + * Generated at: 2025-12-16T07:41:23.902Z + * Total icons: 79 */ export { Ai302 } from './302ai'