✨ feat: merge icons pr form community (#296)
* feat: update langfuse logo and icon due to brand update (#291) * feat: add SpeedAI icon (#292) * ✨ feat: add Meshy.ai icon (#287) * feat: add Meshy.ai icon Meshy.ai (https://meshy.ai) — AI-powered 3D model generation platform. 6 variants across 3 components: - **Color**: full brand colorful icon (viewBox 0 0 64 65) - **Mono**: single-color icon with `variant` prop - `dark`: for light/lime backgrounds (6 paths, viewBox 0 0 128 128) - `light`: for dark backgrounds (4 paths, viewBox 0 0 128 128) - **Combine**: full logo (icon + wordmark) with `type` prop - `color`: colorful icon + lime text (accent, viewBox 0 0 406 128) - `dark`: for light/lime backgrounds (14 paths) - `light`: for dark backgrounds (12 paths) COLOR_PRIMARY: #C5F955 * feat: register Meshy in icons.ts and toc.ts - Add export in src/icons.ts for consumer imports - Add TOC entry with group=application, hasColor=true, hasCombine=true * feat: add Venice icon (#283) Codex review feedback: TOC generator requires index.md for every exported icon Co-authored-by: Jesse Proudman <[email protected]> * feat: add Manifest icon (#294) Add Manifest (mnfst.dev) as an AI model provider icon with multi-color logo support. Includes Color variant with original brand colors (#2430F0 blue, #2BE1B7 green, #F2C79C sand, #22110C dark brown), Mono variant for single-color usage, Avatar with sand background, and Combine component. * ✨ feat: Add hermes agent * 🐛 fix: Fix workflow --------- Co-authored-by: Jannik Maierhöfer <[email protected]> Co-authored-by: Zhangchi Feng <[email protected]> Co-authored-by: Arlie Du <[email protected]> Co-authored-by: Jesse <[email protected]> Co-authored-by: Jesse Proudman <[email protected]> Co-authored-by: Sébastien Conejo <[email protected]>
@@ -78,6 +78,7 @@ export default defineConfig({
|
||||
favicons: ['https://lobehub.com/favicon.ico'],
|
||||
jsMinifier: 'swc',
|
||||
locales: [{ id: 'en-US', name: 'English' }],
|
||||
// mako: isWin || isProduction ? undefined : {},
|
||||
mfsu: isWin ? false : {},
|
||||
npmClient: 'pnpm',
|
||||
publicPath: '/',
|
||||
|
||||
@@ -203,6 +203,7 @@ npm i @lobehub/icons
|
||||
| | <a href="https://lobehub.com/icons/siliconcloud"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/siliconcloud-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/siliconcloud-color.png" /></picture><br/>SiliconCloud (SiliconFlow) | <a href="https://lobehub.com/icons/recraft"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/recraft.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/recraft.png" /></picture><br/>Recraft |
|
||||
| | <a href="https://lobehub.com/icons/snowflake"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/snowflake-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/snowflake-color.png" /></picture><br/>Snowflake | <a href="https://lobehub.com/icons/replit"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/replit-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/replit-color.png" /></picture><br/>Replit |
|
||||
| | <a href="https://lobehub.com/icons/sophnet"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/sophnet-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/sophnet-color.png" /></picture><br/>SophNet | <a href="https://lobehub.com/icons/roocode"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/roocode.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/roocode.png" /></picture><br/>RooCode |
|
||||
| | <a href="https://lobehub.com/icons/speedai"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/speedai-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/speedai-color.png" /></picture><br/>SpeedAI | <a href="https://lobehub.com/icons/stability"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/stability-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/stability-color.png" /></picture><br/>Stability (StableDiffusion) |
|
||||
| | <a href="https://lobehub.com/icons/stability"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/stability-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/stability-color.png" /></picture><br/>Stability (StableDiffusion) | <a href="https://lobehub.com/icons/rsshub"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/rsshub-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/rsshub-color.png" /></picture><br/>RSSHub |
|
||||
| | <a href="https://lobehub.com/icons/statecloud"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/statecloud-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/statecloud-color.png" /></picture><br/>StateCloud (天翼云) | <a href="https://lobehub.com/icons/runway"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/runway.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/runway.png" /></picture><br/>Runway |
|
||||
| | <a href="https://lobehub.com/icons/straico"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/straico-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/straico-color.png" /></picture><br/>Straico | <a href="https://lobehub.com/icons/smithery"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/smithery-color.png" /><img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/smithery-color.png" /></picture><br/>Smithery |
|
||||
|
||||
@@ -90,6 +90,7 @@ import Novita from '../icons/Novita';
|
||||
import Nvidia from '../icons/Nvidia';
|
||||
import Ollama from '../icons/Ollama';
|
||||
import OpenAI from '../icons/OpenAI';
|
||||
import OpenCode from '../icons/OpenCode';
|
||||
import OpenRouter from '../icons/OpenRouter';
|
||||
import PPIO from '../icons/PPIO';
|
||||
import Parasail from '../icons/Parasail';
|
||||
@@ -264,6 +265,15 @@ export const rnProviderMappings: RNProviderMapping[] = [
|
||||
},
|
||||
{ Icon: Novita, keywords: [RNModelProvider.Novita] },
|
||||
{ Icon: OpenAI, keywords: [RNModelProvider.OpenAI] },
|
||||
{
|
||||
Icon: OpenCode,
|
||||
keywords: [
|
||||
RNModelProvider.OpenCode,
|
||||
RNModelProvider.OpenCodeCodingPlan,
|
||||
RNModelProvider.OpenCodeGo,
|
||||
RNModelProvider.OpenCodeZen,
|
||||
],
|
||||
},
|
||||
{ Icon: Ollama, combineMultiple: 1.16, keywords: [RNModelProvider.Ollama] },
|
||||
{ Icon: Perplexity, keywords: [RNModelProvider.Perplexity] },
|
||||
{
|
||||
@@ -306,7 +316,7 @@ export const rnProviderMappings: RNProviderMapping[] = [
|
||||
{
|
||||
Icon: Stepfun,
|
||||
combineMultiple: 0.83,
|
||||
keywords: [RNModelProvider.Stepfun, RNModelProvider.StepFunCodingPlan],
|
||||
keywords: [RNModelProvider.Stepfun, RNModelProvider.StepfunCodingPlan],
|
||||
},
|
||||
{ Icon: Spark, combineMultiple: 0.92, keywords: [RNModelProvider.Spark] },
|
||||
{ Icon: Fireworks, combineMultiple: 1.14, keywords: [RNModelProvider.FireworksAI] },
|
||||
|
||||
@@ -96,6 +96,10 @@ export enum RNModelProvider {
|
||||
Ollama = 'ollama',
|
||||
OllamaCloud = 'ollamacloud',
|
||||
OpenAI = 'openai',
|
||||
OpenCode = 'opencode',
|
||||
OpenCodeCodingPlan = 'opencodecodingplan',
|
||||
OpenCodeGo = 'opencodego',
|
||||
OpenCodeZen = 'opencodezen',
|
||||
OpenRouter = 'openrouter',
|
||||
PPIO = 'ppio',
|
||||
Parasail = 'parasail',
|
||||
@@ -114,8 +118,8 @@ export enum RNModelProvider {
|
||||
Spark = 'spark',
|
||||
Stability = 'stability',
|
||||
StateCloud = 'statecloud',
|
||||
StepFunCodingPlan = 'stepfuncodingplan',
|
||||
Stepfun = 'stepfun',
|
||||
StepfunCodingPlan = 'stepfuncodingplan',
|
||||
Straico = 'straico',
|
||||
StreamLake = 'streamlake',
|
||||
SubModel = 'submodel',
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconAvatar, type RNIconAvatarProps } from '@/features';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
|
||||
export type AvatarProps = Omit<RNIconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ background, ...rest }) => {
|
||||
return (
|
||||
<RNIconAvatar
|
||||
Icon={Mono}
|
||||
aria-label={TITLE}
|
||||
background={background || AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,24 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconCombine, type RNIconCombineProps } from '@/features';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export type CombineProps = Omit<RNIconCombineProps, 'Icon' | 'Text'>;
|
||||
|
||||
const Combine = memo<CombineProps>(({ ...rest }) => {
|
||||
return (
|
||||
<RNIconCombine
|
||||
Icon={Mono}
|
||||
Text={Text as any}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,21 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'Hermes Agent';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#fff';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#000';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.75;
|
||||
@@ -10,16 +10,13 @@ const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 24 24"
|
||||
viewBox="0 0 512 512"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M6.666 13.224c1.982.013 3.143.159 4.014.551a6.07 6.07 0 011.298.79l.425.36c1.002.819 2.202 1.276 3.52 1.027.21-.04.414-.093.613-.16a6.226 6.226 0 012.483.163l.317.094c.517.167.978.389 1.396.651l.234.155-.155.187c-1.012 1.157-2.411 1.882-3.93 2l-.168.01c-1.42.072-2.677-.344-3.828-1.128l.02-.017-.308-.223a8.446 8.446 0 01-.357-.274l-.191-.159-.343-.178c-1.24-.623-2.3-.943-3.105-1.15l-.794-.194-.223-.058-.018.048.016-.049-.01-.003-.016.053.013-.053a3.725 3.725 0 01-.749-.302l-.262-.144-.261-.163a2.396 2.396 0 01-.622-.578l-.11-.173-.097-.188a2.386 2.386 0 01-.213-.74l-.009-.1.22-.021.187-.014c.156-.01.313-.016.49-.019h.523zm-5.438 1.27c.08.327.172.633.27.915l.09.25c.165.438.373.856.62 1.248l-1.53 1.007c-.03.022-.07 0-.07-.047V14.8l.004-.023.015-.022.6-.26zm21.07-4.012l.05.195.039.174.015.108c.026.263.042.53.047.803l-.002.399c-.01.396-.045.786-.103 1.168l-.06.344a9.772 9.772 0 00-2.983-1.045l.03-.13c.047-.24.074-.486.08-.734a2.391 2.391 0 00-.02-.418l-.006-.033a11.45 11.45 0 002.562-.7l.35-.13zM12.13 6.022c1.17-.927 2.718-1.558 4.585-1.391a6.268 6.268 0 012.65.856l.22.14c.364.244.71.556 1.041.926l.183.221-.233.095-.212.122a6.501 6.501 0 01-.654.314c-.147.055-.3.108-.46.157a6.276 6.276 0 01-2.78.22c-.941-.238-1.958-.085-2.852.396-.406.21-.785.487-1.121.822l-.332.35-.182.18-.384.351a5.83 5.83 0 01-1.052.675c-.828.41-1.986.517-4.017.43l-.636-.032-.248-.017-.098-.01.112-.23c.136-.254.308-.502.522-.74.259-.288.537-.514.827-.69l.19-.101.128-.064.118-.053.209-.082a12.304 12.304 0 001.587-.762c1.105-.612 2.1-1.35 2.751-1.97l.138-.112zm-11.473.29l.023.01.27.229c.277.226.573.442.89.642l.352.212-.145.215c-.168.263-.321.549-.455.86l-.11.272a6.071 6.071 0 00-.175.54l-.056.223-.628-.612a.058.058 0 01-.015-.039V6.366c0-.036.025-.057.05-.055z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M7.62 5.05a6.303 6.303 0 013.226.898l.235.146-.199.163a14.74 14.74 0 01-2.64 1.684l-.131.061-.306.136-.306.125a4.425 4.425 0 00-.65.294l-.127.069a4.265 4.265 0 00-2.149 3.406l-.01.21v.257l.027.541c0 .278.041.794.319 1.352l.09.168c.082.14.17.266.259.377.196.257.423.466.667.636l.247.16c.409.26.912.495 1.42.625l.765.184c.348.085.647.165.958.26.822.251 1.62.576 2.452 1.021l.162.136-.156.12c-.677.503-2.277 1.475-4.438 1.282a6.276 6.276 0 01-2.654-.861 5.79 5.79 0 01-1.653-1.478l-.131-.202a7.616 7.616 0 01-1.124-2.815l-.07-.377-.031.015a9.423 9.423 0 01-.03-2.903l.025.026.096-.696c.03-.137.062-.27.096-.4l.076-.27a6.233 6.233 0 01.88-1.82l.286-.376C4.103 5.99 5.548 5.192 7.158 5.07l.167-.011.296-.008zm7.85 8.03c.682-.044 1.446-.029 2.275.012l.42.022a8.9 8.9 0 01.73.071 12.967 12.967 0 013.036 1.023l.444.222c.304.184.56.362.764.515l.237.184.013.016.005.022v2.491l-.003.017-.004.01a.05.05 0 01-.021.018l-.027.005-.01-.003-.015-.01-.148-.127a9.245 9.245 0 00-1.431-.987l-.236-.126-.104-.077a6.994 6.994 0 00-2.269-1.074l-.25-.062a6.939 6.939 0 00-2.395-.118l-.157.021-.2.062-.178.045-.183.04c-1.274.238-2.348-.363-2.988-.869l-.298-.248.216-.165c.258-.187.529-.353.813-.495.506-.252 1.166-.384 1.964-.435zm7.846-7.004a.048.048 0 01.07.013l.008.027v3.057l-.006.024-.017.018a10.98 10.98 0 01-1.864.912c-.262.09-.479.157-.733.223-.514.135-1.058.258-1.526.347l-.317.057c-.285.034-.58.056-.885.066l-.338.006c-1.792.002-3.149-.083-4.145-.462l-.208-.085a6.075 6.075 0 01-.726-.384l-.14-.09c.122-.118.242-.241.36-.37l.157-.163c.161-.157.333-.3.512-.425.843-.566 1.851-.77 2.778-.535l.312.04a6.962 6.962 0 002.51-.202l.256-.074c.195-.06.38-.128.556-.2l.487-.209c.227-.103.437-.212.63-.326l.087-.035a10.827 10.827 0 002.182-1.23z"
|
||||
clipRule="evenodd"
|
||||
d="M318.645 135.713C324.19 134.927 335.859 136.439 341.271 138.266C357.915 143.886 373.708 155.313 386.944 166.742C390.717 170.001 394.121 173.741 397.477 177.267C403.722 172.469 410.688 166.353 416.534 161.128C420.699 157.403 426.139 152.467 430.026 148.462C432.443 151.311 437.916 156.283 440.769 159.135C443.789 162.156 448.423 167.097 451.5 169.763C449.402 171.778 447.447 173.915 445.275 175.969C435.518 185.19 425.314 193.924 414.699 202.142C416.131 206.071 418.146 209.973 419.706 214.37C430.353 244.871 428.629 278.335 414.908 307.579C419.795 310.665 426.215 315.536 430.819 319.022C437.477 324.065 444.53 329.464 450.667 335.103C448.921 337.113 447.252 339.188 445.487 341.185C440.687 346.619 435.313 352.246 430.732 357.836C427.49 354.691 422.914 351.171 419.367 348.395C412.435 342.887 405.296 337.649 397.965 332.687C385.625 346.319 365.124 362.891 348.068 370.251C342.596 372.66 336.808 374.279 330.882 375.064C302.031 378.828 277.622 361.934 255.928 345.279C252.583 348.26 247.732 351.864 244.093 354.533C229.07 365.547 212.408 375.109 193.414 376.34C191.874 376.511 189.464 376.521 187.906 376.48C181.035 376.28 174.239 374.992 167.77 372.666C160.959 370.213 156.624 367.662 150.563 364.002C136.762 355.669 126.116 347.071 115.035 335.379C112.216 337.285 108.693 340.189 106.015 342.334C97.6272 349.096 89.5081 356.186 81.6766 363.588C75.4441 356.739 67.1357 348.545 60.5 341.889C65.3867 337.837 70.0365 332.931 75.0089 328.771C82.5137 322.495 89.7878 316.218 97.7676 310.514C96.259 307.413 94.477 303.658 93.2329 300.425C84.1343 276.778 83.1019 248.442 89.5507 223.953C91.4597 216.704 93.7938 211.293 96.7651 204.579C85.0205 196.793 71.6203 185.95 61.0223 176.738C67.4755 169.509 75.0828 161.522 81.2234 154.18C91.5695 163.24 102.421 171.705 113.725 179.534L113.802 179.43C115.004 177.825 117.411 175.371 118.839 173.917C128.242 164.342 139.107 156.117 150.461 149.002C154.334 146.575 158.028 144.265 162.19 142.334C167.97 139.624 174.121 137.789 180.44 136.891C210.216 132.858 233.606 150.368 255.762 167.202C258.762 164.539 264.323 160.312 267.535 157.949C283.73 146.037 298.243 137.367 318.645 135.713ZM218.248 317.376C206.132 309.795 193.482 303.647 178.778 304.192C164.821 305.027 152.411 311.148 140.526 318.189C146.179 324.001 153.002 329.474 159.774 333.99C168.428 339.762 177.876 346.066 188.622 346.218C189.974 346.237 191.326 346.175 192.671 346.034C203.988 344.75 216.171 337.48 225.147 330.827C226.887 329.537 229.514 327.7 231.115 326.319C227.291 323.216 222.446 320.002 218.248 317.376ZM371.741 316.575C358.979 309.931 341.321 301.687 326.711 303.34C311.052 304.592 296.858 313.6 284.385 322.596C283.031 323.573 281.725 324.597 280.508 325.746C288.772 332.599 303.008 341.451 313.363 344.113C317.33 345.167 321.449 345.538 325.543 345.211C328.331 344.867 331.96 344.176 334.525 343.039C347.004 337.499 362.29 326.174 371.741 316.575ZM255.812 206.33C237.456 220.819 219.789 233.787 196.191 238.412C169.477 243.646 145.637 233.457 122.679 220.934C113.944 240.121 113.528 268.308 120.906 288.014C121.574 289.812 122.3 291.588 123.082 293.34C146.169 279.069 171.93 269.159 199.388 276.14C219.572 281.272 237.634 292.985 254.053 305.524C254.867 306.146 255.186 306.717 256.11 306.276C278.685 287.401 307.351 270.114 337.691 273.233C355.593 275.072 373.509 283.016 389.103 291.635C390.849 287.216 392.45 283.09 393.56 278.437C398.085 259.475 396.981 238.05 389.47 220.018C383.257 223.589 376.51 227.596 369.945 230.53C350.207 239.353 331.482 242.628 310.265 236.779C293.962 232.284 280.778 224.155 267.135 214.546C265.743 213.566 256.639 206.288 255.812 206.33ZM231.563 186.81C218.569 176.952 202.985 165.548 185.98 166.721C182.759 167.106 178.545 168.087 175.654 169.518C164.876 174.849 147.642 186.944 139.853 195.777C148.947 200.835 158.643 205.167 168.7 207.892C174.445 209.448 180.011 209.765 185.929 209.303C201.698 207.877 219.405 196.835 231.563 186.81ZM321.91 165.701C313.482 166.157 305.902 169.192 298.763 173.559C292.309 177.508 286.018 181.624 280.188 186.46C294.39 197.487 312.553 209.177 330.955 209.414C346.475 209.234 359.256 202.585 372.307 194.769C366.402 187.14 354.741 179.907 346.693 174.55C339.178 169.549 331.17 165.476 321.91 165.701Z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
|
||||
@@ -7,15 +7,42 @@ const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }
|
||||
return (
|
||||
<Svg
|
||||
color={color}
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 121 24"
|
||||
width={size * 5.04} // 保持宽高比
|
||||
viewBox="592 55 1598 420"
|
||||
width={size * 3.8}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M2 19.913V2h2.49v15.516h9.182v2.397H2zm14.655-9.385c.503-2.6 2.717-4.29 5.534-4.29 3.245 0 5.383 1.893 5.383 5.601v5.072c0 .58.252.832.805.832h.579v2.17h-.705c-1.61 0-2.565-.858-2.817-2.044-.503 1.237-2.063 2.347-4.15 2.347-2.692 0-4.855-1.413-4.855-3.81 0-2.775 2.037-3.557 5.106-4.138l3.597-.706c-.025-2.044-1.182-3.053-2.968-3.053-1.51 0-2.616.908-2.918 2.195l-2.59-.176zm2.34 5.828c.025.933.83 1.715 2.59 1.715 2.013 0 3.598-1.413 3.598-3.81v-.58l-2.868.505c-1.861.328-3.32.48-3.32 2.17zM32.29 6.54h2.24l.075 2.246c.704-1.716 2.188-2.548 3.974-2.548 2.968 0 4.427 2.194 4.427 5.07v8.604h-2.44V11.94c0-2.371-.78-3.607-2.616-3.607-1.937 0-3.22 1.236-3.22 3.607v7.973h-2.44V6.54zM52.13 19.206c-3.296 0-5.635-2.649-5.635-6.408 0-3.885 2.34-6.56 5.635-6.56 1.786 0 3.345.96 3.949 2.347l.025-2.044h2.34V18.45c-.026 3.658-2.34 5.55-5.912 5.55-2.918 0-5.03-1.539-5.66-3.86l2.566-.177c.528 1.16 1.56 1.842 3.094 1.842 2.163 0 3.446-.984 3.471-2.826v-1.993c-.679 1.287-2.289 2.22-3.873 2.22zm-3.07-6.433c0 2.523 1.334 4.289 3.522 4.289 2.139 0 3.447-1.766 3.472-4.29.05-2.497-1.283-4.263-3.472-4.263-2.188 0-3.521 1.766-3.521 4.264zM65.3 5.96C65.3 3.489 66.532 2 69.25 2h3.672v2.17h-3.723c-.855 0-1.459.656-1.459 1.74V7.4h5.006v2.169H67.74v10.344H65.3V9.569h-3.496v-2.17h3.496V5.961zm22.63 13.952h-2.315l-.025-2.17c-.704 1.665-2.163 2.473-3.874 2.473-2.918 0-4.351-2.195-4.351-5.072V6.541h2.44v7.973c0 2.371.78 3.608 2.54 3.608 1.887 0 3.144-1.237 3.144-3.608V6.54h2.44v13.372zm12.844-9.184c-.277-1.412-1.585-2.22-3.144-2.22-1.283 0-2.465.63-2.44 1.867 0 1.337 1.61 1.64 3.094 2.018 2.54.631 5.081 1.565 5.081 4.062 0 2.624-2.515 3.76-5.282 3.76-3.12 0-5.66-1.766-5.861-4.542l2.565-.151c.252 1.488 1.585 2.422 3.296 2.422 1.333 0 2.716-.353 2.716-1.615 0-1.312-1.685-1.539-3.17-1.892-2.515-.605-5.005-1.539-5.005-3.96 0-2.7 2.415-4.24 5.232-4.24s5.006 1.69 5.434 4.34l-2.516.151zm6.128 2.498c0-4.264 2.44-6.988 6.188-6.988 2.993 0 5.71 1.942 5.911 6.761v.933h-9.508c.2 2.523 1.484 4.012 3.597 4.012 1.333 0 2.54-.782 3.119-2.12l2.59.228c-.754 2.548-3.043 4.163-5.71 4.163-3.747 0-6.187-2.725-6.187-6.989zm2.666-1.261h6.767c-.353-2.549-1.736-3.457-3.245-3.457-1.937 0-3.17 1.287-3.522 3.457z"
|
||||
d="M642.669 116.433C642.669 106.172 634.986 98.4769 624.743 98.4769H597V60H684.923V376.366H642.669V116.433Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M794.056 379.786C754.363 379.786 721.925 352.424 721.925 310.955C721.925 269.913 750.521 241.269 806.86 241.269H846.553C853.809 241.269 859.358 235.711 859.358 228.443V219.893C859.358 194.242 838.871 180.988 818.811 180.988C800.458 180.988 785.52 189.111 776.983 207.922H731.315C743.265 163.46 777.41 142.512 819.664 142.512C860.211 142.512 902.038 164.743 902.038 220.32V376.366H859.358V362.257C859.358 357.127 853.809 354.562 849.541 357.555C832.895 369.525 817.103 379.786 794.056 379.786ZM800.031 341.309C818.811 341.309 834.603 331.903 852.529 313.947C857.224 309.245 859.358 303.259 859.358 296.847V290.434C859.358 283.166 853.809 277.608 846.553 277.608H805.58C777.837 277.608 764.606 290.006 764.606 309.245C764.606 327.201 786.983 341.309 800.031 341.309Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M951.855 376.366V147.642H994.109V167.308C994.109 172.438 1000.51 174.148 1004.35 170.3C1017.58 157.475 1035.94 142.512 1064.96 142.512C1101.67 142.512 1135.81 165.598 1135.81 218.183V376.366H1093.56V227.161C1093.56 197.662 1075.63 181.416 1053.86 181.416C1032.95 181.416 1018.86 193.387 1003.93 210.915C996.67 219.893 994.109 230.153 994.109 241.269V376.366H951.855Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M1277.48 467C1224.98 467 1191.69 442.204 1181.87 403.727H1227.97C1235.22 419.545 1248.03 429.378 1273.64 429.378C1307.78 429.378 1329.12 409.285 1329.12 363.54V356.272C1329.12 351.142 1324.85 348.577 1319.73 352.852C1305.65 365.25 1287.72 372.945 1270.65 372.945C1212.6 372.945 1174.19 328.056 1174.19 257.942C1174.19 187.829 1218.58 142.512 1272.36 142.512C1288.15 142.512 1302.66 146.787 1316.74 157.475C1322.72 161.75 1329.12 158.33 1329.12 151.489V147.642H1371.38V363.54C1371.38 436.218 1327.41 467 1277.48 467ZM1274.92 334.041C1294.12 334.041 1308.21 325.491 1329.73 313.092C1336.99 304.97 1339.12 299.412 1339.12 286.586V225.023C1339.12 212.197 1336.99 204.075 1328.45 195.952C1319.06 186.974 1305.83 180.988 1288.76 180.988C1253.76 180.988 1226.87 210.06 1226.87 257.942C1226.87 305.825 1241.63 334.041 1274.92 334.041Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M1445.92 199.372C1445.92 192.104 1439.95 186.119 1432.69 186.119H1400.25V147.642H1432.69C1439.95 147.642 1445.92 141.657 1445.92 134.389V128.403C1445.92 82.6586 1469.4 60 1515.07 60H1544.09V98.4769H1514.64C1497.14 98.4769 1488.18 108.31 1488.18 128.403V134.389C1488.18 141.657 1494.15 147.642 1501.41 147.642H1544.09V186.119H1501.41C1494.15 186.119 1488.18 192.104 1488.18 199.372V376.366H1445.92V199.372Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M1642.02 381.496C1606.17 381.496 1572.88 358.41 1572.88 305.825V147.642H1615.13V297.702C1615.13 327.201 1632.2 342.591 1652.26 342.591C1674.03 342.591 1688.11 330.621 1703.05 313.092C1710.31 304.115 1712.87 293.854 1712.87 282.738V147.642H1755.12V376.366H1712.87V356.7C1712.87 351.569 1706.47 349.859 1702.63 353.707C1689.39 366.533 1671.04 381.496 1642.02 381.496Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M1883.57 381.496C1844.73 381.496 1804.18 362.257 1793.51 315.658H1837.05C1843.45 333.186 1860.95 345.156 1881.86 345.156C1904.91 345.156 1918.99 331.476 1918.99 314.803C1918.99 298.557 1907.9 289.579 1890.4 284.449L1854.12 274.188C1822.54 265.21 1799.06 244.689 1799.06 209.632C1799.06 171.583 1834.49 142.512 1874.61 142.512C1906.62 142.512 1945.46 157.047 1955.7 207.922H1915.15C1909.6 190.394 1895.09 178.851 1874.61 178.851C1854.55 178.851 1840.03 191.249 1840.03 207.067C1840.03 220.32 1848.14 230.153 1867.35 235.711L1901.5 245.544C1933.93 254.95 1959.97 274.616 1959.97 312.237C1959.97 351.569 1925.82 381.496 1883.57 381.496Z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M2088.54 381.496C2027.08 381.496 1986.53 329.766 1986.53 261.79C1986.53 193.814 2029.64 142.512 2088.11 142.512C2151.71 142.512 2185 193.814 2185 252.384V275.471H2040.74C2034.76 275.471 2032.2 279.318 2033.48 289.151C2038.18 321.215 2063.79 343.446 2088.97 343.446C2107.75 343.446 2123.97 334.041 2134.64 315.658H2179.45C2163.23 355.845 2139.51 381.496 2088.54 381.496ZM2131.65 239.986C2138.48 239.986 2141.04 236.566 2139.33 225.878C2134.64 199.372 2115 180.561 2088.11 180.561C2062.51 180.561 2050.74 199.372 2043.91 226.306C2041.35 236.139 2044.76 239.986 2050.74 239.986H2131.65Z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export const TITLE = 'Langfuse';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.3;
|
||||
export const COLOR_PRIMARY = '#000';
|
||||
export const COLOR_PRIMARY = '#1B1917';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconAvatar, type RNIconAvatarProps } from '@/features';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
|
||||
export type AvatarProps = Omit<RNIconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ background, ...rest }) => {
|
||||
return (
|
||||
<RNIconAvatar
|
||||
Icon={Color}
|
||||
aria-label={TITLE}
|
||||
background={background || AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,103 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, ...rest }) => {
|
||||
return (
|
||||
<Svg height={size} style={style} viewBox="0 0 24 24" width={size} {...rest}>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M4.546 8.126c.266-.625.599-1.24.993-1.83l.007-.01c.043-.065.086-.13.13-.193C8.27 2.07 13.838-.341 18.546 1.795 22.267 3.388 24.05 6.64 24 9.535c-.026 1.444-.514 2.853-1.522 3.87a4.678 4.678 0 01-.553.48c.91.721 1.504 1.6 1.658 2.625.231 1.535-.597 2.907-1.763 3.92-2.333 2.025-6.704 3.294-11.684 2.765-.827-.075-3.815-.663-4.496-1.755a4.524 4.524 0 01-.972-.621c-.466-.397-.85-.926-.992-1.593-.206-.97.327-2.62 1.434-3.092.398 1.955 1.818 2.074 2.872 2.184.431-.363.64-.568 1.074-1.112-.844.069-1.914-.161-2.735-.6-1.507-.805-2.415-2.283-2.514-4.394-.098-1.383.2-2.818.74-4.086zm2.117-1.38l-.128.19-.008.013a9.973 9.973 0 00-.891 1.64l.003.025c-.49 1.173-.719 2.37-.656 3.446l.007.095v.003l.003.078c.174 2.975 2.205 3.928 4.7 3.898.405-.005.821-.035 1.244-.087a7.05 7.05 0 01-.386 1.227c-.221.507-.51.906-.923 1.23 1.488.112 3.098-.108 4.54-.549 1.992-.145 5.082-1.287 4.455-3.489a2.502 2.502 0 00-.034-.109 9.367 9.367 0 00-.23-.723l-.007-.017.008.007a4.866 4.866 0 001.33-.044 4.114 4.114 0 00.401-.094c.229-.066.443-.151.644-.254.003 0 .005-.002.007-.003l.006-.003.095-.05c3.19-1.768 2.678-7.974-2.776-10.3C14 1.023 9.01 3.093 6.663 6.746zm13.187 7.251c2.427 2.81.033 5.36-3.747 6.763 1.405-.908 2.56-2.33 3.254-4.392-4.206 3.98-13.856 4.391-14.306 1.721a3.247 3.247 0 01-.013-.291v-.002c-.967 1.902 1.176 3.08 4.111 3.25l.038.003a13.628 13.628 0 002.595-.107c1.732-.229 3.502-.776 4.944-1.687-.81.704-1.601 1.217-2.408 1.593-1.269.592-2.574.846-4.044.969h-.004c-.338.028-.685.05-1.042.067.34.059.682.104 1.024.135.54.058 1.07.093 1.59.107.977.027 1.915-.019 2.8-.126 6.268-.762 9.88-4.606 6.496-7.23a5.82 5.82 0 00-.37-.263 7.713 7.713 0 00-.916-.51l-.004-.002.002.002z"
|
||||
fill="#C5F955"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
d="M6.536 6.936c-2.797 4.238-2.052 9.843 3.974 8.85l5.975-1.967c5.596-1.862 5.863-7.568 2.333-10.083-2.676-1.906-8.875-1.961-12.282 3.2z"
|
||||
fill="#FF3E8F"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M9.659 10.271c2.653-.718 5.463-3.77 5.895-7.682-.919-.085-1.941-.022-3.06.224-3.364.742-5.757 3.193-6.858 5.775.224 2.002 3.325 1.872 4.023 1.683z"
|
||||
fill="#C5F955"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M9.659 10.27c2.654-.717 5.138-3.656 5.57-7.568l-.762.182c-1.23 4.42-4.695 7.522-7.806 6.658.46.852 2.639.826 2.998.729z"
|
||||
fill="#67B800"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M14.495 3.52c-3.511-.704-7.65 1.513-8.633 5.338 1.427-2.74 5.365-5.208 8.633-5.339z"
|
||||
fill="#E9FFCE"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
d="M21.574 7.034l-5.382 7.395-5.482 1.158c-.06.042-.112.024-.113.024l.113-.024c.089-.065.191-.27.15-.894-.115-.323-.191-1.084-.965-1.602-.37-.248-.722-.579-.66-1.022.06-.436.454-.695.883-.798 3.705-.89 5.418-4.685 5.798-8.27l3.246 1.405 2.412 2.628z"
|
||||
fill="#C91C65"
|
||||
/>
|
||||
<Path
|
||||
d="M18.194 11.743c-2.242-.965-1.142-5.172 1.45-6.164a.076.076 0 01.003.003c-1.58 1.284-1.856 4.064-.606 5.392-.177.19-.37.379-.583.564a9.934 9.934 0 01-.264.205z"
|
||||
fill="#4C8700"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M5.324 13.352c1.883-.265 4.951.526 5.053 2.231-2.108.122-4.38-.974-5.053-2.23z"
|
||||
fill="#67B800"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
d="M5.624 13.787c.279.194.691.371 1.28.498.867.187 1.833.067 2.516-.11-1.08-.71-2.848-.998-4.096-.823.079.148.18.293.3.434z"
|
||||
fill="#C5F955"
|
||||
/>
|
||||
<Path
|
||||
d="M11.652 14.397c.312-3.417 5.138-3.928 5.921-1.77.064.193.145.404.23.627.23.607.496 1.305.558 1.982-.936 1.715-4.22 3.122-7.358 3.282.953-2.004.649-4.12.649-4.12z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<Path
|
||||
d="M17.327 16.582l-3.17 1.374c2.132-1.117 2.242-5.828-.042-5.358l1.896-.807 1.777 1.542-.461 3.25z"
|
||||
fill="#FF97C2"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M18.068 2.876a7.644 7.644 0 00-2.07-.609h-.008c-3.685-.532-7.445 1.42-9.426 4.64 1.964-2.638 5.542-4.165 8.504-3.753-.251 1.492-1.215 3.713-2.962 5.286-1.734 1.56-4.361 2.149-5.972 1.188 1.187 1.41 4.795 1.23 6.756-.464 1.838-1.587 2.976-4.07 3.186-5.796.086.02.17.043.254.066.894.284 1.142 1.053 1.203 1.59.04.356-.18.666-.443.91-.554.518-1.106 1.354-1.427 2.252-.362 1.014-.844 2.062-1.722 2.687-.393.28-.705.521-.945.73-.837.553-1.481 1.461-1.731 2.76l-.086.459c-2.914.579-5.6.128-6.19-2.666.165 3.526 2.893 4.267 5.949 3.891-.265 1.14-.609 1.908-1.31 2.457.531.04 1.078.038 1.627-.001.477-.591.64-1.636.781-2.528.032-.206.063-.403.096-.585a5.956 5.956 0 01.089-.414c.914-3.591 4.749-2.958 4.935-.471l.013.168c.084.998.127 1.504-3.011 3.284 2.023-.145 5.196-1.322 4.432-3.6a9.473 9.473 0 00-.237-.74l.007.008c5.67.557 6.306-7.935-.292-10.749zm1.577 2.703c-2.593.993-3.693 5.2-1.45 6.164l.846-.768c-1.25-1.328-.974-4.108.606-5.392l-.002-.004z"
|
||||
fill="#181818"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
d="M10.252 22.02c9.524 1.016 16.05-4.957 9.597-8.025 2.43 2.81.036 5.363-3.746 6.766 1.406-.909 2.56-2.33 3.255-4.392-4.354 4.119-14.543 4.415-14.319 1.427-1.767 3.471 6.828 4.53 11.687 1.46-2.378 2.067-4.6 2.49-7.498 2.628.34.06.682.105 1.024.136z"
|
||||
fill="#181818"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M8.35 8.84c-.374-.01-.625-.2-.562-.423.19-.666.332-1.69.257-2.51-.02-.22.27-.43.649-.47.378-.04.702.106.722.326.081.888-.07 1.973-.274 2.689-.063.223-.418.397-.792.387z"
|
||||
fill="#181818"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
d="M7.861 8.67s.224.136.545-.036c.519-.278.64-1.953.64-2.931 0-.264-.325-.269-.325-.269.366-.03.675.114.694.33.082.887-.07 1.972-.273 2.688-.064.223-.418.397-.792.387-.216-.005-.392-.07-.489-.168z"
|
||||
fill="#FF3E8F"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M11.278 7.493c-.374-.01-.625-.199-.562-.422.19-.666.331-1.69.256-2.51-.02-.22.27-.43.65-.47.378-.04.701.106.722.326.08.888-.071 1.973-.274 2.688-.064.224-.418.397-.792.388z"
|
||||
fill="#181818"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
d="M10.79 7.324s.223.135.544-.037c.519-.278.64-1.952.64-2.93 0-.264-.326-.269-.326-.269.367-.03.675.114.695.33.082.887-.07 1.972-.274 2.687-.063.224-.417.398-.791.388-.216-.006-.392-.071-.489-.169z"
|
||||
fill="#FF3E8F"
|
||||
/>
|
||||
<Path
|
||||
d="M3.557 1l.561 1.527 1.518.565-1.518.565-.56 1.527-.562-1.527-1.517-.565 1.517-.565L3.557 1zM1.185 4.952l.32.876.865.325-.865.324-.32.877-.32-.877L0 6.153l.865-.325.32-.876z"
|
||||
fill="#C5F955"
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'MeshyColor';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,28 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconCombine, type RNIconCombineProps } from '@/features';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export interface CombineProps extends Omit<RNIconCombineProps, 'Icon' | 'Text'> {
|
||||
type?: 'color' | 'mono';
|
||||
}
|
||||
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
|
||||
const Icon = type === 'color' ? Color : Mono;
|
||||
|
||||
return (
|
||||
<RNIconCombine
|
||||
Icon={Icon}
|
||||
Text={Text}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,31 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }) => {
|
||||
return (
|
||||
<Svg
|
||||
color={color}
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M3.214.358l.59 1.606 1.597.595-1.596.594-.59 1.607-.591-1.607-1.596-.594 1.596-.595.59-1.606zM16.3 1.691a8.04 8.04 0 012.178.641c6.94 2.96 6.273 11.893.308 11.306l-.008-.007c.09.247.177.51.25.779.803 2.395-2.534 3.633-4.663 3.785l.138-.078c2.107-1.3 2.17-6.033-.175-5.56-.855.303-1.641 1.093-2 2.503a6.199 6.199 0 00-.093.436 25.87 25.87 0 00-.102.614c-.147.94-.32 2.038-.821 2.66-.578.041-1.153.043-1.711.001.737-.577 1.098-1.385 1.377-2.584-3.215.395-6.084-.384-6.257-4.094.17.809.509 1.431.972 1.896.267.133.61.252 1.043.345.911.196 1.928.07 2.646-.116.36.237.648.518.823.843.23-.027.464-.061.7-.102a4.523 4.523 0 00-.01-.197 3.115 3.115 0 01-.06-.209c-.108-.395-.278-1.023-.953-1.476-.391-.261-.76-.609-.696-1.075.064-.459.478-.731.93-.84 2.84-.683 4.568-2.988 5.45-5.648C14.988 6.75 14.129 8 13.032 8.947c-2.062 1.781-5.857 1.971-7.106.487.364.217.776.359 1.219.431-.299-.122-.54-.291-.665-.52 3.221.894 6.802-2.252 8.148-6.784-2.963-.128-6.335 1.44-8.25 4.01 2.084-3.387 6.04-5.44 9.916-4.88h.007zm2.57 5.476c-.357 1.21-.224 2.564.444 3.459.058.078.121.154.188.225l-.89.809c-1.327-.571-1.541-2.22-.99-3.741a5.04 5.04 0 011.32-1.997 3.822 3.822 0 011.195-.747l.003.004a3.511 3.511 0 00-.559.574c-.322.415-.56.902-.711 1.414z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M20.352 14.028c6.788 3.227-.077 9.51-10.095 8.441-.36-.033-.72-.08-1.077-.142 3.05-.146 5.386-.591 7.887-2.766-5.111 3.23-14.152 2.117-12.294-1.535-.236 3.143 10.482 2.832 15.062-1.501-.73 2.168-1.945 3.664-3.423 4.62 3.978-1.476 6.496-4.16 3.94-7.117zM7.742 8.427s.236.142.573-.039c.546-.292.673-2.054.673-3.083 0-.278-.342-.283-.342-.283l-.029.003c-.398.042-.704.264-.682.495.079.862-.071 1.94-.27 2.64-.028.1.003.192.077.267zM11.395 6.972c-.338.181-.573.039-.573.039a.263.263 0 01-.078-.267c.2-.7.349-1.778.27-2.64-.021-.231.285-.453.683-.495.01 0 .019-.002.028-.003 0 0 .343.005.343.283 0 1.029-.128 2.79-.673 3.083zM1.056 5.438l-.337-.922-.337.922-.91.341.91.341.337.923.337-.923.91-.34-.91-.342z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'MeshyMono';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,27 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }) => {
|
||||
return (
|
||||
<Svg
|
||||
color={color}
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 43 24"
|
||||
width={size * 1.79} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M2 19.368V2h3.24l1.396 9.003.118.922H6.8l.118-.922L8.315 2h3.24v17.368H9.19V7.718h-.142l-.095.733L7.44 19.368H6.115L4.602 8.451l-.095-.732h-.142v11.65H2zm14.057.19c-.954 0-1.706-.328-2.258-.981-.544-.662-.816-1.47-.816-2.422V9.656c0-1.008.272-1.827.816-2.457.544-.63 1.304-.946 2.282-.946.639 0 1.186.146 1.644.438.461.287.83.702 1.064 1.193.245.496.367 1.063.367 1.701v3.758h-3.95v2.812c0 .322.07.622.213.898.15.268.37.401.662.401.308 0 .524-.126.65-.378.134-.252.201-.559.201-.921v-1.418h2.224v1.489c0 1-.272 1.807-.816 2.422-.536.606-1.297.91-2.283.91zm-.851-8.082h1.727v-1.82a2.09 2.09 0 00-.19-.921c-.118-.268-.339-.402-.662-.402-.3 0-.52.138-.662.414-.142.267-.213.57-.213.91v1.819zm8.015 8.082c-.56 0-1.05-.095-1.467-.284a2.765 2.765 0 01-1.04-.803 3.745 3.745 0 01-.627-1.253 5.982 5.982 0 01-.201-1.607h2.223c0 .528.083.989.248 1.383.174.386.462.579.864.579.346 0 .571-.146.674-.438.102-.29.153-.626.153-1.004 0-.44-.173-.89-.52-1.347a9.865 9.865 0 00-1.064-1.24 13.269 13.269 0 01-1.597-1.867c-.417-.615-.626-1.335-.626-2.162 0-.977.256-1.765.768-2.364.512-.598 1.242-.898 2.188-.898.568 0 1.044.075 1.43.225.395.15.71.374.947.673.236.3.406.666.508 1.1.11.433.166.933.166 1.5h-2.223c0-.41-.044-.764-.13-1.064-.087-.3-.304-.449-.65-.449-.285 0-.486.123-.604.367-.118.236-.177.54-.177.91 0 .433.102.819.307 1.157.213.331.564.737 1.053 1.217.61.593 1.17 1.233 1.679 1.914.512.678.768 1.414.768 2.21 0 .52-.07.996-.212 1.43a3.137 3.137 0 01-.603 1.122 2.661 2.661 0 01-.958.732c-.37.174-.796.26-1.277.26zm3.992-.19V2h2.389v5.329c.204-.213.508-.446.91-.697.402-.252.785-.379 1.147-.379.394 0 .725.114.994.343.268.228.469.536.603.922.133.378.2.8.2 1.264v10.586h-2.388V9.278c0-.236-.055-.425-.166-.567-.102-.15-.224-.224-.366-.224-.166 0-.363.094-.591.283-.229.182-.343.386-.343.615v9.983h-2.39zM35.11 24a7.05 7.05 0 01-.367-.012 3.507 3.507 0 01-.413-.047v-2.115c.023.008.086.016.189.024.102.015.17.023.2.023.443 0 .797-.118 1.065-.354.276-.236.47-.552.58-.945.04-.119.059-.257.059-.414.008-.157.011-.295.011-.413l-2.2-13.304h2.342l.946 8.058.048.898h.094l.048-.898.946-8.058H41l-2.294 13.894a5.088 5.088 0 01-.591 1.867c-.3.56-.702.996-1.207 1.312-.504.322-1.103.484-1.797.484z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'MeshyText';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,25 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'Meshy';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.8;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#000';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.8;
|
||||
@@ -0,0 +1,22 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconAvatar, type RNIconAvatarProps } from '@/features';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
|
||||
export type AvatarProps = Omit<RNIconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ background, ...rest }) => {
|
||||
return (
|
||||
<RNIconAvatar
|
||||
Icon={Mono}
|
||||
aria-label={TITLE}
|
||||
background={background || AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,28 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconCombine, type RNIconCombineProps } from '@/features';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export interface CombineProps extends Omit<RNIconCombineProps, 'Icon' | 'Text'> {
|
||||
type?: 'color' | 'mono';
|
||||
}
|
||||
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
|
||||
const Icon = type === 'color' ? Color : Mono;
|
||||
|
||||
return (
|
||||
<RNIconCombine
|
||||
Icon={Icon}
|
||||
Text={Text}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,27 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }) => {
|
||||
return (
|
||||
<Svg
|
||||
color={color}
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 97 24"
|
||||
width={size * 4.04} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M24.422 6.313c.984 0 1.872.252 2.663.755.796.498 1.427 1.236 1.892 2.215.47.974.705 2.168.705 3.584 0 1.4-.23 2.589-.689 3.568-.459.979-1.084 1.726-1.875 2.24-.79.514-1.686.771-2.687.771-.73 0-1.337-.122-1.818-.365-.48-.243-.868-.536-1.16-.879a5.69 5.69 0 01-.673-.987h-.125V24h-3.003V6.479h2.953v2.108h.175c.155-.31.373-.639.655-.987.283-.354.664-.656 1.145-.905.481-.254 1.095-.382 1.842-.382zM8.687 2c1.205 0 2.261.21 3.168.63.913.416 1.63.993 2.149 1.734.52.736.788 1.583.805 2.54h-2.961c-.078-.725-.405-1.29-.98-1.693-.57-.404-1.31-.607-2.223-.607-.642 0-1.192.098-1.65.292-.46.193-.811.456-1.055.788a1.917 1.917 0 00-.373 1.136c0 .354.08.661.24.921.166.26.39.48.672.663.283.177.595.327.938.449.343.121.689.223 1.037.306l1.593.399c.641.149 1.259.35 1.85.605.598.254 1.131.575 1.601.962.476.387.852.855 1.128 1.402.277.548.415 1.19.415 1.925 0 .996-.254 1.872-.763 2.63-.508.752-1.245 1.34-2.207 1.767-.956.42-2.115.63-3.475.63-1.322 0-2.47-.204-3.444-.614-.967-.409-1.726-1.006-2.273-1.792-.542-.785-.835-1.742-.879-2.87h3.028c.045.592.227 1.084.547 1.477a2.9 2.9 0 001.253.88c.52.193 1.1.29 1.742.29.67 0 1.256-.1 1.76-.3.508-.204.906-.486 1.193-.845.288-.365.434-.792.44-1.278-.006-.442-.135-.807-.39-1.095-.254-.293-.611-.536-1.07-.73a10.314 10.314 0 00-1.593-.53l-1.932-.499c-1.4-.36-2.506-.904-3.319-1.634-.807-.735-1.21-1.712-1.21-2.928 0-1.001.27-1.878.812-2.63.547-.752 1.291-1.335 2.231-1.75C6.432 2.21 7.497 2 8.687 2zm29.05 4.313c.785 0 1.526.128 2.223.382a5.027 5.027 0 011.858 1.161c.542.526.968 1.195 1.278 2.008.31.808.465 1.77.465 2.887v.92h-8.876c.01.71.144 1.322.406 1.835.27.525.65.929 1.136 1.21.487.277 1.056.416 1.709.416.436 0 .832-.061 1.186-.183.354-.127.661-.312.921-.555.26-.244.456-.545.589-.905l2.805.315a4.372 4.372 0 01-1.013 1.941c-.492.548-1.123.974-1.892 1.278-.768.299-1.648.448-2.637.448-1.278 0-2.382-.265-3.311-.796a5.396 5.396 0 01-2.132-2.274c-.497-.984-.746-2.143-.746-3.475 0-1.31.248-2.462.746-3.451.503-.996 1.206-1.77 2.108-2.324.901-.558 1.96-.838 3.177-.838zm13.848 0c.785 0 1.527.128 2.224.382a5.025 5.025 0 011.857 1.161c.542.526.969 1.195 1.278 2.008.31.808.464 1.77.464 2.887v.92h-8.874c.009.71.143 1.322.404 1.835.271.525.65.929 1.137 1.21.487.277 1.057.416 1.71.416.436 0 .832-.061 1.186-.183.353-.127.66-.312.92-.555a2.32 2.32 0 00.59-.905l2.803.315a4.375 4.375 0 01-1.011 1.941c-.493.548-1.123.974-1.892 1.278-.769.3-1.649.448-2.639.448-1.277 0-2.38-.265-3.31-.796a5.394 5.394 0 01-2.131-2.274c-.498-.984-.747-2.143-.747-3.475 0-1.311.249-2.461.747-3.451.503-.996 1.205-1.77 2.106-2.324.902-.558 1.961-.838 3.178-.838zm19.879 12.91H68.51v-2.008h-.183a5.13 5.13 0 01-.672.987c-.293.343-.68.637-1.162.88-.48.243-1.086.365-1.816.365-1.001 0-1.897-.257-2.688-.771-.79-.514-1.416-1.262-1.875-2.24-.459-.98-.688-2.169-.688-3.568 0-1.416.231-2.61.696-3.584.47-.979 1.103-1.717 1.9-2.215a4.884 4.884 0 012.663-.755c.746 0 1.36.128 1.841.382.481.25.864.55 1.146.905.282.348.5.677.655.987h.124V2.232h3.012v16.99zm18 0h-3.285l-1.407-4.19h-6.388l-1.406 4.19h-3.285l5.98-16.99h3.8l5.99 16.99zm5.315 0h-3.078V2.233h3.078v16.99zM65.516 8.778c-.67 0-1.228.174-1.676.523-.448.348-.785.83-1.012 1.443-.227.614-.34 1.317-.34 2.108 0 .796.113 1.506.34 2.131.232.62.572 1.11 1.02 1.47.453.353 1.01.53 1.668.53.636 0 1.178-.171 1.626-.514.448-.349.788-.833 1.02-1.452.232-.62.349-1.341.349-2.165 0-.824-.117-1.54-.349-2.149-.227-.608-.565-1.081-1.013-1.419-.442-.337-.987-.506-1.633-.506zm-41.923 0c-.642 0-1.187.168-1.635.505-.448.338-.788.81-1.02 1.42-.227.607-.34 1.324-.34 2.148 0 .823.116 1.545.348 2.165.238.62.578 1.103 1.02 1.452.449.343.99.514 1.627.514.663 0 1.219-.177 1.667-.53.448-.36.786-.85 1.012-1.47.233-.624.348-1.335.348-2.131 0-.791-.113-1.493-.34-2.107-.227-.614-.564-1.096-1.011-1.444-.448-.349-1.007-.523-1.676-.523zm55.619 3.784h4.728l-2.3-6.845h-.132l-2.296 6.845zM37.778 8.652c-.614 0-1.152.15-1.617.449-.464.293-.827.68-1.087 1.16a3.303 3.303 0 00-.383 1.386h5.99c-.005-.575-.13-1.087-.372-1.535a2.715 2.715 0 00-1.02-1.07c-.432-.26-.936-.39-1.51-.39zm13.848 0c-.614 0-1.153.15-1.617.449-.465.293-.827.68-1.087 1.16a3.304 3.304 0 00-.383 1.386h5.991c-.005-.575-.13-1.087-.374-1.535a2.715 2.715 0 00-1.02-1.07c-.432-.26-.935-.39-1.51-.39z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'SpeedAIText';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,25 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'SpeedAI';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.75;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#6366F1';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.7;
|
||||
@@ -0,0 +1,22 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconAvatar, type RNIconAvatarProps } from '@/features';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
|
||||
export type AvatarProps = Omit<RNIconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ background, ...rest }) => {
|
||||
return (
|
||||
<RNIconAvatar
|
||||
Icon={Mono}
|
||||
aria-label={TITLE}
|
||||
background={background || AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,27 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, ...rest }) => {
|
||||
return (
|
||||
<Svg height={size} style={style} viewBox="0 0 24 24" width={size} {...rest}>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M8.295 16.074a4.239 4.239 0 00-1.37-.685 4.255 4.255 0 00-1.636-.138 4.27 4.27 0 00-1.566.499c-.472.26-.875.602-1.19.973-.315.37-.59.824-.773 1.336a4.432 4.432 0 00-.257 1.644c.02.564.155 1.125.375 1.621s.528.93.87 1.275c.34.346.766.657 1.256.881.49.224 1.041.36 1.598.381a4.258 4.258 0 001.62-.26 4.25 4.25 0 001.318-.786c.365-.319.703-.728.959-1.206.256-.479.43-1.027.492-1.589a4.436 4.436 0 00-.137-1.659 4.346 4.346 0 00-.675-1.39l.95-.964.691.702h.393l.475-.481v-.399l-.692-.702L12 14.11l1.004 1.018-.691.702v.399l.474.48h.393l.691-.701.95.964a4.346 4.346 0 00-.675 1.39 4.435 4.435 0 00-.137 1.66c.062.56.236 1.11.492 1.588s.594.887.96 1.206c.364.32.812.599 1.316.785a4.258 4.258 0 001.621.261 4.262 4.262 0 001.598-.38c.49-.225.916-.536 1.257-.882.341-.346.648-.779.869-1.275.22-.496.355-1.057.375-1.62a4.433 4.433 0 00-.257-1.645 4.338 4.338 0 00-.774-1.336 4.272 4.272 0 00-1.189-.973 4.27 4.27 0 00-1.566-.5 4.255 4.255 0 00-1.635.14 4.239 4.239 0 00-1.37.684l-.933-.947.69-.702v-.398l-.49-.498h-.393l-.692.701-1.004-1.018L18.15 7.87l2.132 2.163v-2.25H22.5L20.368 5.62 22.5 3.457V3.06l-.491-.498h-.393L12 12.316 2.384 2.56H1.99l-.491.498v.398L3.632 5.62 1.5 7.782h2.218v2.25L5.85 7.87l5.266 5.342-1.004 1.018-.692-.701h-.393l-.49.498v.399l.69.7-.932.948zm8.546 4.95a1.59 1.59 0 00.107 1.49c.256.43.799.73 1.294.716.494.014 1.037-.287 1.293-.716a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.471-.107l-.054-.059a1.59 1.59 0 00-.108-1.49c-.256-.43-.799-.73-1.293-.717-.495-.013-1.038.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.472.107c-.424.26-.72.81-.707 1.313-.013.502.283 1.053.707 1.313a1.53 1.53 0 001.472.107l.054.06zm-9.79 1.49a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.47-.107l-.055-.059a1.59 1.59 0 00-.107-1.49c-.257-.43-.8-.73-1.294-.717-.495-.013-1.037.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.471.107c-.424.26-.72.81-.707 1.313-.014.502.283 1.053.707 1.313a1.53 1.53 0 001.471.107l.054.06a1.59 1.59 0 00.107 1.49c.257.43.8.73 1.294.716.495.014 1.037-.287 1.294-.716z"
|
||||
fill="#E05A2D"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M12.274 2.56L14.8 0l1.25 1.268v4.274l-3.462 3.512h-.625L8.5 5.542V1.268L9.75 0l2.524 2.56zM9.75.898l2.212 2.243v4.12L9.75 5.018V.897zm2.837 2.243L14.799.897v4.12l-2.212 2.244V3.14z"
|
||||
fill="#E05A2D"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'VeniceColor';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,28 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { RNIconCombine, type RNIconCombineProps } from '@/features';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export interface CombineProps extends Omit<RNIconCombineProps, 'Icon' | 'Text'> {
|
||||
type?: 'color' | 'mono';
|
||||
}
|
||||
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
|
||||
const Icon = type === 'color' ? Color : Mono;
|
||||
|
||||
return (
|
||||
<RNIconCombine
|
||||
Icon={Icon}
|
||||
Text={Text}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,33 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }) => {
|
||||
return (
|
||||
<Svg
|
||||
color={color}
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M8.295 16.074a4.239 4.239 0 00-1.37-.685 4.255 4.255 0 00-1.636-.138 4.27 4.27 0 00-1.566.499c-.472.26-.875.602-1.19.973-.315.37-.59.824-.773 1.336a4.432 4.432 0 00-.257 1.644c.02.564.155 1.125.375 1.621s.528.93.87 1.275c.34.346.766.657 1.256.881.49.224 1.041.36 1.598.381a4.258 4.258 0 001.62-.26 4.25 4.25 0 001.318-.786c.365-.319.703-.728.959-1.206.256-.479.43-1.027.492-1.589a4.436 4.436 0 00-.137-1.659 4.346 4.346 0 00-.675-1.39l.95-.964.691.702h.393l.475-.481v-.399l-.692-.702L12 14.11l1.004 1.018-.691.702v.399l.474.48h.393l.691-.701.95.964a4.346 4.346 0 00-.675 1.39 4.435 4.435 0 00-.137 1.66c.062.56.236 1.11.492 1.588s.594.887.96 1.206c.364.32.812.599 1.316.785a4.258 4.258 0 001.621.261 4.262 4.262 0 001.598-.38c.49-.225.916-.536 1.257-.882.341-.346.648-.779.869-1.275.22-.496.355-1.057.375-1.62a4.433 4.433 0 00-.257-1.645 4.338 4.338 0 00-.774-1.336 4.272 4.272 0 00-1.189-.973 4.27 4.27 0 00-1.566-.5 4.255 4.255 0 00-1.635.14 4.239 4.239 0 00-1.37.684l-.933-.947.69-.702v-.398l-.49-.498h-.393l-.692.701-1.004-1.018L18.15 7.87l2.132 2.163v-2.25H22.5L20.368 5.62 22.5 3.457V3.06l-.491-.498h-.393L12 12.316 2.384 2.56H1.99l-.491.498v.398L3.632 5.62 1.5 7.782h2.218v2.25L5.85 7.87l5.266 5.342-1.004 1.018-.692-.701h-.393l-.49.498v.399l.69.7-.932.948zm8.546 4.95a1.59 1.59 0 00.107 1.49c.256.43.799.73 1.294.716.494.014 1.037-.287 1.293-.716a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.471-.107l-.054-.059a1.59 1.59 0 00-.108-1.49c-.256-.43-.799-.73-1.293-.717-.495-.013-1.038.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.472.107c-.424.26-.72.81-.707 1.313-.013.502.283 1.053.707 1.313a1.53 1.53 0 001.472.107l.054.06zm-9.79 1.49a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.47-.107l-.055-.059a1.59 1.59 0 00-.107-1.49c-.257-.43-.8-.73-1.294-.717-.495-.013-1.037.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.471.107c-.424.26-.72.81-.707 1.313-.014.502.283 1.053.707 1.313a1.53 1.53 0 001.471.107l.054.06a1.59 1.59 0 00.107 1.49c.257.43.8.73 1.294.716.495.014 1.037-.287 1.294-.716z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M12.274 2.56L14.8 0l1.25 1.268v4.274l-3.462 3.512h-.625L8.5 5.542V1.268L9.75 0l2.524 2.56zM9.75.898l2.212 2.243v4.12L9.75 5.018V.897zm2.837 2.243L14.799.897v4.12l-2.212 2.244V3.14z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'VeniceMono';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,33 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Path, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, color = '#000000', ...rest }) => {
|
||||
return (
|
||||
<Svg
|
||||
color={color}
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 55 24"
|
||||
width={size * 2.29} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M52.809 17.07a.292.292 0 00-.184-.06.448.448 0 00-.31.136l-.014.015-.01.017c-1.153 1.82-2.12 3.036-2.965 3.794-.843.757-1.551 1.046-2.192 1.046-.362 0-.57-.105-.694-.257-.13-.16-.195-.406-.195-.747 0-.535.157-1.169.404-1.83.239-.637.556-1.289.885-1.888 1.237-.369 2.685-1.034 3.63-1.872l.002-.001v-.001c.338-.312.626-.636.83-.962.204-.326.331-.664.331-1.002 0-.254-.07-.52-.264-.723-.195-.205-.49-.32-.883-.32-.78 0-1.772.373-2.727 1.006a8.694 8.694 0 00-2.577 2.652c-.238.387-.436.78-.592 1.176-1.112 1.67-2.061 2.866-2.916 3.645-.858.78-1.602 1.124-2.304 1.124-.327 0-.53-.107-.658-.266-.132-.166-.203-.416-.203-.738 0-.628.209-1.383.556-2.2.346-.815.822-1.678 1.343-2.518.589-.95 1.173-1.77 1.703-2.349.264-.29.51-.515.732-.666.225-.153.407-.218.546-.218.147 0 .278.085.417.283.14.2.258.475.39.782l.192.443.863-1.578-.126-.097c-.395-.305-.931-.481-1.543-.481-2.096 0-4.156 1.578-5.304 3.436a9.722 9.722 0 00-.706 1.354l-.89 1.383c-.65 1.015-1.212 1.886-1.768 2.506-.557.62-1.075.952-1.628.952-.23 0-.388-.061-.485-.15-.095-.086-.156-.218-.156-.412 0-.258.051-.501.414-1.163.364-.664 1.028-1.724 2.227-3.608l2.241-3.55-.099-.499h-3.295l-.05.037a.54.54 0 00-.164.19.458.458 0 00-.047.208v.185h1.166l-1.33 2.124c-.387.62-.73 1.19-1.016 1.739l-.762 1.134c-.773 1.152-1.432 2.121-2.06 2.804-.631.685-1.197 1.044-1.778 1.044-.203 0-.338-.054-.422-.131-.081-.075-.136-.194-.136-.376 0-.213.083-.483.33-.91.244-.425.637-.984 1.229-1.773l.853-1.134c1.114-1.484 1.44-2.353 1.44-3.461 0-.537-.075-1.013-.28-1.36-.213-.363-.556-.569-1.032-.569-.633 0-1.321.325-2.042.881-.725.56-1.504 1.371-2.322 2.384l-.02.024h-.248v-1.443c0-.528-.098-.938-.347-1.214-.254-.28-.626-.383-1.076-.383h-1.01l-.055.054a.722.722 0 00-.186.336l-.057.23h1.198c.345 0 .515.062.6.137.079.07.124.183.124.397 0 .208-.076.468-.237.806-.16.334-.395.727-.697 1.197l-4.171 6.624h2.361l2.395-3.712.137-.22c1.152-1.71 2.23-3.073 3.187-4.008.48-.468.923-.824 1.327-1.062.405-.24.757-.353 1.056-.353.182 0 .263.043.3.08.038.038.067.105.067.233 0 .188-.078.438-.273.788-.193.348-.489.775-.9 1.313l-.909 1.19c-1.165 1.535-1.717 2.765-1.717 3.988 0 .443.07.943.292 1.34.23.409.618.7 1.214.7.832 0 1.596-.557 2.306-1.328.506-.55 1.004-1.231 1.498-1.952a6.13 6.13 0 00-.089 1.046c0 .423.049.95.257 1.375.105.216.254.412.464.553.21.143.47.222.785.222.783 0 1.468-.5 2.092-1.193.589-.654 1.153-1.516 1.718-2.393-.02.198-.03.4-.03.606 0 .787.185 1.532.559 2.086.377.56.948.922 1.69.922.819 0 1.625-.361 2.485-1.091.724-.614 1.496-1.497 2.358-2.671-.033.263-.05.524-.05.781 0 .776.193 1.514.57 2.064.38.554.95.917 1.68.917.83 0 1.683-.367 2.626-1.206.941-.836 1.984-2.154 3.199-4.083l.028-.046v-.053a.262.262 0 00-.096-.207zm-2.993-3.11c.304-.317.59-.558.852-.719.263-.16.489-.234.677-.234.158 0 .24.045.285.093.047.051.081.138.081.275 0 .2-.084.442-.256.714a4.254 4.254 0 01-.729.837c-.71.645-1.765 1.218-2.77 1.61.64-1.09 1.277-1.966 1.86-2.575z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M22.04 17.331v-.053a.262.262 0 00-.096-.207.292.292 0 00-.184-.062.449.449 0 00-.31.137l-.014.015-.011.017c-1.152 1.82-2.119 3.036-2.964 3.794-.843.757-1.552 1.046-2.192 1.046-.363 0-.57-.105-.694-.257-.13-.16-.195-.406-.195-.747 0-.535.156-1.169.404-1.83.238-.637.556-1.289.884-1.888 1.238-.369 2.686-1.034 3.63-1.872l.002-.001.002-.001c.337-.312.625-.636.83-.962.203-.326.33-.664.33-1.002 0-.254-.071-.52-.264-.723-.195-.205-.49-.32-.884-.32-.78 0-1.771.373-2.726 1.006a8.701 8.701 0 00-2.578 2.652c-.732 1.19-1.073 2.441-1.073 3.612 0 .776.193 1.514.57 2.064.38.554.95.917 1.679.917.83 0 1.684-.367 2.627-1.206.94-.836 1.984-2.154 3.199-4.083l.028-.046zm-3.09-3.37c.305-.318.591-.56.853-.72.262-.16.489-.234.677-.234.157 0 .24.045.284.093.047.051.082.138.082.275 0 .2-.084.442-.257.714-.171.269-.42.554-.729.837-.71.645-1.764 1.218-2.77 1.61.642-1.09 1.277-1.966 1.86-2.575zM16.01 11.334c.266-.385.53-.768.793-1.146 1.735-2.495 3.38-4.86 5.164-6.602 1.781-1.74 3.68-2.839 5.922-2.839.778 0 1.584.135 2.28.377l.17.06.24-.661-.188-.056A8.915 8.915 0 0027.889.1c-2.41 0-4.446 1.174-6.294 2.96H8.655l-.386.648h5.33c-1.394.67-2.42 1.793-3.188 3.005-.932 1.47-1.495 3.087-1.88 4.222a99.088 99.088 0 00-1.068 3.299v.001c-.67 2.157-1.208 3.893-2.072 5.305-.856 1.4-2.035 2.486-3.997 3.323l-.201.086.461.722.153-.09a8.699 8.699 0 011.992-.862c2.986-.893 5.371-2.784 7.44-5.068 1.753-1.935 3.288-4.163 4.772-6.317zM5.355 21.065c1.083-.967 1.96-2.047 2.745-3.392.87-1.489 1.628-3.303 2.431-5.649.213-.617.41-1.234.602-1.835.567-1.777 1.088-3.402 1.852-4.587.755-1.171 1.736-1.894 3.235-1.894h4.74c-1.618 1.716-3.13 3.885-4.688 6.12l-.006.009c-3.058 4.386-6.299 9.026-10.911 11.228z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'VeniceText';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,25 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'Venice';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.75;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#E05A2D';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.75;
|
||||
@@ -162,6 +162,10 @@ export { default as Groq, type CompoundedIcon as GroqProps } from './icons/Groq'
|
||||
export { default as Hailuo, type CompoundedIcon as HailuoProps } from './icons/Hailuo';
|
||||
export { default as Haiper, type CompoundedIcon as HaiperProps } from './icons/Haiper';
|
||||
export { default as Hedra, type CompoundedIcon as HedraProps } from './icons/Hedra';
|
||||
export {
|
||||
default as HermesAgent,
|
||||
type CompoundedIcon as HermesAgentProps,
|
||||
} from './icons/HermesAgent';
|
||||
export { default as Higress, type CompoundedIcon as HigressProps } from './icons/Higress';
|
||||
export { default as Huawei, type CompoundedIcon as HuaweiProps } from './icons/Huawei';
|
||||
export {
|
||||
@@ -226,6 +230,7 @@ export { default as Mastra, type CompoundedIcon as MastraProps } from './icons/M
|
||||
export { default as MCP, type CompoundedIcon as MCPProps } from './icons/MCP';
|
||||
export { default as McpSo, type CompoundedIcon as McpSoProps } from './icons/McpSo';
|
||||
export { default as Menlo, type CompoundedIcon as MenloProps } from './icons/Menlo';
|
||||
export { default as Meshy, type CompoundedIcon as MeshyProps } from './icons/Meshy';
|
||||
export { default as Meta, type CompoundedIcon as MetaProps } from './icons/Meta';
|
||||
export { default as MetaAI, type CompoundedIcon as MetaAIProps } from './icons/MetaAI';
|
||||
export { default as MetaGPT, type CompoundedIcon as MetaGPTProps } from './icons/MetaGPT';
|
||||
@@ -306,6 +311,7 @@ export { default as Snowflake, type CompoundedIcon as SnowflakeProps } from './i
|
||||
export { default as SophNet, type CompoundedIcon as SophNetProps } from './icons/SophNet';
|
||||
export { default as Sora, type CompoundedIcon as SoraProps } from './icons/Sora';
|
||||
export { default as Spark, type CompoundedIcon as SparkProps } from './icons/Spark';
|
||||
export { default as SpeedAI, type CompoundedIcon as SpeedAIProps } from './icons/SpeedAI';
|
||||
export { default as Stability, type CompoundedIcon as StabilityProps } from './icons/Stability';
|
||||
export { default as StateCloud, type CompoundedIcon as StateCloudProps } from './icons/StateCloud';
|
||||
export { default as Stepfun, type CompoundedIcon as StepfunProps } from './icons/Stepfun';
|
||||
@@ -339,6 +345,7 @@ export {
|
||||
default as VectorizerAI,
|
||||
type CompoundedIcon as VectorizerAIProps,
|
||||
} from './icons/VectorizerAI';
|
||||
export { default as Venice, type CompoundedIcon as VeniceProps } from './icons/Venice';
|
||||
export { default as Vercel, type CompoundedIcon as VercelProps } from './icons/Vercel';
|
||||
export { default as VertexAI, type CompoundedIcon as VertexAIProps } from './icons/VertexAI';
|
||||
export { default as Vidu, type CompoundedIcon as ViduProps } from './icons/Vidu';
|
||||
|
||||
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -3,7 +3,7 @@ import { markdownTable } from 'markdown-table';
|
||||
import { readFileSync, writeFileSync } from 'node:fs';
|
||||
import { resolve } from 'node:path';
|
||||
|
||||
import toc, { IconToc } from '../../src/toc';
|
||||
import { type IconToc, getLobeIconCDN, toc } from '@/index';
|
||||
|
||||
const ROOT_PATH = resolve(__dirname, '../..');
|
||||
|
||||
@@ -19,8 +19,8 @@ const genMd = (data: IconToc): string =>
|
||||
[
|
||||
`<a href="${BASE_URL}${data.id.toLowerCase()}">`,
|
||||
`<picture>`,
|
||||
`<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/dark/${data.param.hasColor ? data.id.toLowerCase() + '-color' : data.id.toLowerCase()}.png" />`,
|
||||
`<img height="56px" width="56px" src="https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/light/${data.param.hasColor ? data.id.toLowerCase() + '-color' : data.id.toLowerCase()}.png" />`,
|
||||
`<source media="(prefers-color-scheme: dark)" srcset=${getLobeIconCDN(data.id.toLowerCase(), { cdn: 'github', format: 'png', isDarkMode: true, type: data.param.hasColor ? 'color' : 'mono' })} />`,
|
||||
`<img height="56px" width="56px" src=${getLobeIconCDN(data.id.toLowerCase(), { cdn: 'github', format: 'png', isDarkMode: false, type: data.param.hasColor ? 'color' : 'mono' })} />`,
|
||||
`</picture>`,
|
||||
'<br/>',
|
||||
data.fullTitle,
|
||||
|
||||
@@ -33,32 +33,8 @@ const run = () => {
|
||||
};
|
||||
});
|
||||
|
||||
const content = `export interface IconToc {
|
||||
color: string;
|
||||
colorGradient?: string;
|
||||
desc: string;
|
||||
docsUrl: string;
|
||||
fullTitle: string;
|
||||
group: 'model' | 'provider' | 'application';
|
||||
id: string;
|
||||
param: {
|
||||
hasAvatar: boolean;
|
||||
hasBrand: boolean;
|
||||
hasBrandColor: boolean;
|
||||
hasColor: boolean;
|
||||
hasCombine: boolean;
|
||||
hasText: boolean;
|
||||
hasTextCn: boolean;
|
||||
hasTextColor: boolean;
|
||||
};
|
||||
title: string;
|
||||
}
|
||||
|
||||
const toc: IconToc[] = ${JSON.stringify(list, null, 2)}
|
||||
|
||||
export default toc;`;
|
||||
|
||||
writeFileSync(resolve(rootDir, 'src/toc.ts'), content);
|
||||
// writeFileSync(resolve(rootDir, 'src/toc.json'), JSON.stringify(list, null, 2));
|
||||
writeFileSync(resolve(rootDir, 'src/toc.json'), JSON.stringify(list));
|
||||
};
|
||||
|
||||
run();
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconAvatar, { type IconAvatarProps } from '@/features/IconAvatar';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
|
||||
export type AvatarProps = Omit<IconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ ...rest }) => {
|
||||
return (
|
||||
<IconAvatar
|
||||
Icon={Mono}
|
||||
aria-label={TITLE}
|
||||
background={AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,26 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconCombine, { type IconCombineProps } from '@/features/IconCombine';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export type CombineProps = Omit<IconCombineProps, 'Icon' | 'Text'>;
|
||||
|
||||
const Combine = memo<CombineProps>(({ ...rest }) => {
|
||||
return (
|
||||
<IconCombine
|
||||
Icon={Mono}
|
||||
Text={Text as any}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Application
|
||||
title: Hermes Agent
|
||||
atomId: HermesAgent
|
||||
description: https://hermes-agent.nousresearch.com
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { HermesAgent } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => <HermesAgent size={64} />;
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { HermesAgent } from '@lobehub/icons';
|
||||
|
||||
export default () => <HermesAgent.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { HermesAgent } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<HermesAgent.Combine size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { HermesAgent } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<HermesAgent.Avatar size={64} />
|
||||
<HermesAgent.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { HermesAgent } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={HermesAgent.colorPrimary} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,21 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'Hermes Agent';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#fff';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#000';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.75;
|
||||
@@ -19,8 +19,9 @@ const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M6.666 13.224c1.982.013 3.143.159 4.014.551a6.07 6.07 0 011.298.79l.425.36c1.002.819 2.202 1.276 3.52 1.027.21-.04.414-.093.613-.16a6.226 6.226 0 012.483.163l.317.094c.517.167.978.389 1.396.651l.234.155-.155.187c-1.012 1.157-2.411 1.882-3.93 2l-.168.01c-1.42.072-2.677-.344-3.828-1.128l.02-.017-.308-.223a8.446 8.446 0 01-.357-.274l-.191-.159-.343-.178c-1.24-.623-2.3-.943-3.105-1.15l-.794-.194-.223-.058-.018.048.016-.049-.01-.003-.016.053.013-.053a3.725 3.725 0 01-.749-.302l-.262-.144-.261-.163a2.396 2.396 0 01-.622-.578l-.11-.173-.097-.188a2.386 2.386 0 01-.213-.74l-.009-.1.22-.021.187-.014c.156-.01.313-.016.49-.019h.523zm-5.438 1.27c.08.327.172.633.27.915l.09.25c.165.438.373.856.62 1.248l-1.53 1.007c-.03.022-.07 0-.07-.047V14.8l.004-.023.015-.022.6-.26zm21.07-4.012l.05.195.039.174.015.108c.026.263.042.53.047.803l-.002.399c-.01.396-.045.786-.103 1.168l-.06.344a9.772 9.772 0 00-2.983-1.045l.03-.13c.047-.24.074-.486.08-.734a2.391 2.391 0 00-.02-.418l-.006-.033a11.45 11.45 0 002.562-.7l.35-.13zM12.13 6.022c1.17-.927 2.718-1.558 4.585-1.391a6.268 6.268 0 012.65.856l.22.14c.364.244.71.556 1.041.926l.183.221-.233.095-.212.122a6.501 6.501 0 01-.654.314c-.147.055-.3.108-.46.157a6.276 6.276 0 01-2.78.22c-.941-.238-1.958-.085-2.852.396-.406.21-.785.487-1.121.822l-.332.35-.182.18-.384.351a5.83 5.83 0 01-1.052.675c-.828.41-1.986.517-4.017.43l-.636-.032-.248-.017-.098-.01.112-.23c.136-.254.308-.502.522-.74.259-.288.537-.514.827-.69l.19-.101.128-.064.118-.053.209-.082a12.304 12.304 0 001.587-.762c1.105-.612 2.1-1.35 2.751-1.97l.138-.112zm-11.473.29l.023.01.27.229c.277.226.573.442.89.642l.352.212-.145.215c-.168.263-.321.549-.455.86l-.11.272a6.071 6.071 0 00-.175.54l-.056.223-.628-.612a.058.058 0 01-.015-.039V6.366c0-.036.025-.057.05-.055z" />
|
||||
<path d="M7.62 5.05a6.303 6.303 0 013.226.898l.235.146-.199.163a14.74 14.74 0 01-2.64 1.684l-.131.061-.306.136-.306.125a4.425 4.425 0 00-.65.294l-.127.069a4.265 4.265 0 00-2.149 3.406l-.01.21v.257l.027.541c0 .278.041.794.319 1.352l.09.168c.082.14.17.266.259.377.196.257.423.466.667.636l.247.16c.409.26.912.495 1.42.625l.765.184c.348.085.647.165.958.26.822.251 1.62.576 2.452 1.021l.162.136-.156.12c-.677.503-2.277 1.475-4.438 1.282a6.276 6.276 0 01-2.654-.861 5.79 5.79 0 01-1.653-1.478l-.131-.202a7.616 7.616 0 01-1.124-2.815l-.07-.377-.031.015a9.423 9.423 0 01-.03-2.903l.025.026.096-.696c.03-.137.062-.27.096-.4l.076-.27a6.233 6.233 0 01.88-1.82l.286-.376C4.103 5.99 5.548 5.192 7.158 5.07l.167-.011.296-.008zm7.85 8.03c.682-.044 1.446-.029 2.275.012l.42.022a8.9 8.9 0 01.73.071 12.967 12.967 0 013.036 1.023l.444.222c.304.184.56.362.764.515l.237.184.013.016.005.022v2.491l-.003.017-.004.01a.05.05 0 01-.021.018l-.027.005-.01-.003-.015-.01-.148-.127a9.245 9.245 0 00-1.431-.987l-.236-.126-.104-.077a6.994 6.994 0 00-2.269-1.074l-.25-.062a6.939 6.939 0 00-2.395-.118l-.157.021-.2.062-.178.045-.183.04c-1.274.238-2.348-.363-2.988-.869l-.298-.248.216-.165c.258-.187.529-.353.813-.495.506-.252 1.166-.384 1.964-.435zm7.846-7.004a.048.048 0 01.07.013l.008.027v3.057l-.006.024-.017.018a10.98 10.98 0 01-1.864.912c-.262.09-.479.157-.733.223-.514.135-1.058.258-1.526.347l-.317.057c-.285.034-.58.056-.885.066l-.338.006c-1.792.002-3.149-.083-4.145-.462l-.208-.085a6.075 6.075 0 01-.726-.384l-.14-.09c.122-.118.242-.241.36-.37l.157-.163c.161-.157.333-.3.512-.425.843-.566 1.851-.77 2.778-.535l.312.04a6.962 6.962 0 002.51-.202l.256-.074c.195-.06.38-.128.556-.2l.487-.209c.227-.103.437-.212.63-.326l.087-.035a10.827 10.827 0 002.182-1.23z" />
|
||||
<path d="M11.925 14.781l1.823 1.465s1.395-1.036 2.421-1.188c1.076-.16 2.224.44 3.288 1.155 1.607 1.08 2.959 2.451 2.959 2.451L24 17.11s-4.367-4.732-7.83-4.304c-2.272.281-4.245 1.975-4.245 1.975z" />
|
||||
<path d="M1.494 5.757L0 7.401s4.164 3.886 7.442 3.886c1.494 0 3.567-1.171 5.35-2.692 1.016-.867 2.152-1.851 3.288-1.851.763 0 1.77.404 2.72 1.466 0 0 .612-.368.986-.632.328-.232.816-.627.816-.627-1.366-1.458-3.342-2.524-4.522-2.419-1.913 0-3.288 1.191-4.992 2.568-1.703 1.377-2.42 1.945-3.646 1.945-2.062 0-5.948-3.288-5.948-3.288zM1.494 18.278L0 16.635s4.164-3.886 7.442-3.886c1.494 0 3.567 1.17 5.35 2.692 1.016.866 2.152 1.851 3.288 1.851.767 0 1.766-.421 2.72-1.494 0 0 .573.353.926.597.363.252.897.667.897.667-1.367 1.47-3.357 2.547-4.543 2.442-1.913 0-3.049-1.014-4.752-2.391-1.704-1.377-2.66-2.122-3.886-2.122-2.062 0-5.948 3.287-5.948 3.287zM20.981 9.461c-.389.269-1.016.658-1.016.658s.359.777.359 1.823c0 1.046-.329 1.943-.329 1.943s.563.351.927.597c.377.256.956.688.956.688s.687-1.435.687-3.228c0-1.793-.687-3.138-.687-3.138s-.54.41-.897.657z" />
|
||||
<path d="M12.015 9.222l1.733-1.434s1.395 1.003 2.421 1.155c1.076.16 2.224-.44 3.288-1.155 1.607-1.08 2.959-2.451 2.959-2.451L24 6.89s-4.367 4.732-7.83 4.304c-2.272-.28-4.155-1.973-4.155-1.973zM7.83 4.5c2.242 0 4.125 1.913 4.125 1.913s-.524.413-.867.687c-.357.286-.926.747-.926.747S9.176 6.801 7.83 6.801c-.552 0-1.268.332-2.033.987-.59.505-1.203 1.133-1.613 1.912-.356.674-.55 1.468-.568 2.302-.024 1.047.347 2.145.956 3.018.408.586.895 1.027 1.405 1.405.661.491 1.351.837 1.853.837.536 0 1.017-.186 1.375-.358.568-.33 1.016-.718 1.016-.718l1.763 1.465s-.717.717-1.703 1.255c-.638.314-1.456.628-2.451.628-.994 0-2.148-.528-3.228-1.345-.698-.528-1.382-1.154-1.913-1.913-.87-1.244-1.318-2.758-1.315-4.274A7.568 7.568 0 012.75 7.698C4.125 5.905 6.158 4.5 7.83 4.5z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -13,12 +13,12 @@ const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 121 24"
|
||||
viewBox="0 0 89 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M2 19.913V2h2.49v15.516h9.182v2.397H2zm14.655-9.385c.503-2.6 2.717-4.29 5.534-4.29 3.245 0 5.383 1.893 5.383 5.601v5.072c0 .58.252.832.805.832h.579v2.17h-.705c-1.61 0-2.565-.858-2.817-2.044-.503 1.237-2.063 2.347-4.15 2.347-2.692 0-4.855-1.413-4.855-3.81 0-2.775 2.037-3.557 5.106-4.138l3.597-.706c-.025-2.044-1.182-3.053-2.968-3.053-1.51 0-2.616.908-2.918 2.195l-2.59-.176zm2.34 5.828c.025.933.83 1.715 2.59 1.715 2.013 0 3.598-1.413 3.598-3.81v-.58l-2.868.505c-1.861.328-3.32.48-3.32 2.17zM32.29 6.54h2.24l.075 2.246c.704-1.716 2.188-2.548 3.974-2.548 2.968 0 4.427 2.194 4.427 5.07v8.604h-2.44V11.94c0-2.371-.78-3.607-2.616-3.607-1.937 0-3.22 1.236-3.22 3.607v7.973h-2.44V6.54zM52.13 19.206c-3.296 0-5.635-2.649-5.635-6.408 0-3.885 2.34-6.56 5.635-6.56 1.786 0 3.345.96 3.949 2.347l.025-2.044h2.34V18.45c-.026 3.658-2.34 5.55-5.912 5.55-2.918 0-5.03-1.539-5.66-3.86l2.566-.177c.528 1.16 1.56 1.842 3.094 1.842 2.163 0 3.446-.984 3.471-2.826v-1.993c-.679 1.287-2.289 2.22-3.873 2.22zm-3.07-6.433c0 2.523 1.334 4.289 3.522 4.289 2.139 0 3.447-1.766 3.472-4.29.05-2.497-1.283-4.263-3.472-4.263-2.188 0-3.521 1.766-3.521 4.264zM65.3 5.96C65.3 3.489 66.532 2 69.25 2h3.672v2.17h-3.723c-.855 0-1.459.656-1.459 1.74V7.4h5.006v2.169H67.74v10.344H65.3V9.569h-3.496v-2.17h3.496V5.961zm22.63 13.952h-2.315l-.025-2.17c-.704 1.665-2.163 2.473-3.874 2.473-2.918 0-4.351-2.195-4.351-5.072V6.541h2.44v7.973c0 2.371.78 3.608 2.54 3.608 1.887 0 3.144-1.237 3.144-3.608V6.54h2.44v13.372zm12.844-9.184c-.277-1.412-1.585-2.22-3.144-2.22-1.283 0-2.465.63-2.44 1.867 0 1.337 1.61 1.64 3.094 2.018 2.54.631 5.081 1.565 5.081 4.062 0 2.624-2.515 3.76-5.282 3.76-3.12 0-5.66-1.766-5.861-4.542l2.565-.151c.252 1.488 1.585 2.422 3.296 2.422 1.333 0 2.716-.353 2.716-1.615 0-1.312-1.685-1.539-3.17-1.892-2.515-.605-5.005-1.539-5.005-3.96 0-2.7 2.415-4.24 5.232-4.24s5.006 1.69 5.434 4.34l-2.516.151zm6.128 2.498c0-4.264 2.44-6.988 6.188-6.988 2.993 0 5.71 1.942 5.911 6.761v.933h-9.508c.2 2.523 1.484 4.012 3.597 4.012 1.333 0 2.54-.782 3.119-2.12l2.59.228c-.754 2.548-3.043 4.163-5.71 4.163-3.747 0-6.187-2.725-6.187-6.989zm2.666-1.261h6.767c-.353-2.549-1.736-3.457-3.245-3.457-1.937 0-3.17 1.287-3.522 3.457z" />
|
||||
<path d="M3.469 5.05a.947.947 0 00-.97-.97H1V2h4.753v17.1H3.469V5.05zM11.652 19.286c-2.146 0-3.9-1.48-3.9-3.721 0-2.218 1.546-3.767 4.592-3.767h2.145a.68.68 0 00.692-.693v-.462c0-1.387-1.107-2.103-2.191-2.103-.992 0-1.8.439-2.261 1.456H8.26c.646-2.404 2.492-3.536 4.776-3.536 2.192 0 4.452 1.202 4.452 4.206V19.1h-2.306v-.763c0-.277-.3-.416-.531-.254-.9.647-1.754 1.202-3 1.202zm.323-2.08c1.015 0 1.868-.509 2.837-1.48.254-.253.37-.577.37-.924v-.346a.68.68 0 00-.693-.694h-2.214c-1.5 0-2.215.67-2.215 1.71 0 .971.669 1.734 1.915 1.734zM20.181 19.1V6.738h2.284V7.8c0 .278.346.37.554.162.715-.693 1.708-1.502 3.276-1.502 1.984 0 3.83 1.248 3.83 4.09v8.55H27.84v-8.064c0-1.595-.97-2.473-2.146-2.473-1.13 0-1.892.647-2.699 1.594-.392.486-.53 1.04-.53 1.641v7.303H20.18zM37.783 24c-2.838 0-4.638-1.34-5.168-3.42h2.491c.392.855 1.085 1.386 2.47 1.386 1.844 0 2.998-1.086 2.998-3.559v-.392c0-.278-.23-.416-.508-.185-.76.67-1.73 1.086-2.653 1.086-3.137 0-5.213-2.427-5.213-6.217 0-3.79 2.399-6.239 5.306-6.239.853 0 1.638.231 2.399.809.323.23.67.046.67-.324v-.208h2.283v11.67c0 3.929-2.376 5.593-5.075 5.593zm-.139-7.187c1.038 0 1.8-.462 2.422-1.132.393-.44.508-.74.508-1.433V10.92c0-.693-.115-1.132-.577-1.571-.507-.486-1.222-.81-2.145-.81-1.892 0-3.345 1.572-3.345 4.16 0 2.589 1.338 4.114 3.137 4.114zM46.888 9.534a.72.72 0 00-.715-.717h-1.754v-2.08h1.754a.72.72 0 00.715-.716v-.324C46.888 3.225 48.157 2 50.625 2h1.57v2.08h-1.593c-.946 0-1.43.531-1.43 1.617v.324a.72.72 0 00.715.716h2.307v2.08h-2.307a.72.72 0 00-.715.717V19.1h-2.284V9.534zM57.487 19.378c-1.937 0-3.737-1.248-3.737-4.09v-8.55h2.284v8.11c0 1.595.923 2.427 2.007 2.427 1.177 0 1.938-.647 2.745-1.594.393-.486.531-1.04.531-1.641V6.737h2.284v12.364h-2.284v-1.063c0-.278-.346-.37-.553-.162-.716.693-1.708 1.502-3.277 1.502zM70.544 19.378c-2.1 0-4.291-1.04-4.868-3.559h2.354c.346.948 1.292 1.595 2.422 1.595 1.246 0 2.007-.74 2.007-1.641 0-.878-.6-1.364-1.545-1.64l-1.962-.555c-1.706-.486-2.976-1.595-2.976-3.49 0-2.057 1.915-3.628 4.084-3.628 1.73 0 3.83.786 4.383 3.536h-2.192c-.3-.948-1.084-1.572-2.191-1.572-1.084 0-1.87.67-1.87 1.525 0 .717.44 1.248 1.478 1.549l1.846.531c1.752.509 3.16 1.572 3.16 3.605 0 2.126-1.846 3.744-4.13 3.744zM81.624 19.378c-3.322 0-5.514-2.796-5.514-6.47 0-3.675 2.33-6.448 5.49-6.448 3.438 0 5.238 2.773 5.238 5.939v1.248H79.04c-.323 0-.462.208-.393.74.254 1.733 1.639 2.934 3 2.934 1.015 0 1.892-.508 2.469-1.502h2.422c-.877 2.172-2.7 3.559-4.914 3.559zm2.33-7.65c.37 0 .508-.184.415-.762-.253-1.433-1.315-2.45-2.769-2.45-1.383 0-2.56 1.017-2.93 2.473-.138.532.047.74.37.74h4.914z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export const TITLE = 'Langfuse';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.3;
|
||||
export const COLOR_PRIMARY = '#000';
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.1;
|
||||
export const COLOR_PRIMARY = '#1B1917';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
|
||||
@@ -15,6 +15,7 @@ import { Flexbox } from '@lobehub/ui';
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Menlo size={64} />
|
||||
<Menlo.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
@@ -6,6 +7,7 @@ import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
@@ -13,7 +15,7 @@ export type CompoundedIcon = typeof Mono & {
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconAvatar, { type IconAvatarProps } from '@/features/IconAvatar';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
|
||||
export type AvatarProps = Omit<IconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ ...rest }) => {
|
||||
return (
|
||||
<IconAvatar
|
||||
Icon={Color}
|
||||
aria-label={TITLE}
|
||||
background={AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,112 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 24 24"
|
||||
width={size}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M4.546 8.126c.266-.625.599-1.24.993-1.83l.007-.01c.043-.065.086-.13.13-.193C8.27 2.07 13.838-.341 18.546 1.795 22.267 3.388 24.05 6.64 24 9.535c-.026 1.444-.514 2.853-1.522 3.87a4.678 4.678 0 01-.553.48c.91.721 1.504 1.6 1.658 2.625.231 1.535-.597 2.907-1.763 3.92-2.333 2.025-6.704 3.294-11.684 2.765-.827-.075-3.815-.663-4.496-1.755a4.524 4.524 0 01-.972-.621c-.466-.397-.85-.926-.992-1.593-.206-.97.327-2.62 1.434-3.092.398 1.955 1.818 2.074 2.872 2.184.431-.363.64-.568 1.074-1.112-.844.069-1.914-.161-2.735-.6-1.507-.805-2.415-2.283-2.514-4.394-.098-1.383.2-2.818.74-4.086zm2.117-1.38l-.128.19-.008.013a9.973 9.973 0 00-.891 1.64l.003.025c-.49 1.173-.719 2.37-.656 3.446l.007.095v.003l.003.078c.174 2.975 2.205 3.928 4.7 3.898.405-.005.821-.035 1.244-.087a7.05 7.05 0 01-.386 1.227c-.221.507-.51.906-.923 1.23 1.488.112 3.098-.108 4.54-.549 1.992-.145 5.082-1.287 4.455-3.489a2.502 2.502 0 00-.034-.109 9.367 9.367 0 00-.23-.723l-.007-.017.008.007a4.866 4.866 0 001.33-.044 4.114 4.114 0 00.401-.094c.229-.066.443-.151.644-.254.003 0 .005-.002.007-.003l.006-.003.095-.05c3.19-1.768 2.678-7.974-2.776-10.3C14 1.023 9.01 3.093 6.663 6.746zm13.187 7.251c2.427 2.81.033 5.36-3.747 6.763 1.405-.908 2.56-2.33 3.254-4.392-4.206 3.98-13.856 4.391-14.306 1.721a3.247 3.247 0 01-.013-.291v-.002c-.967 1.902 1.176 3.08 4.111 3.25l.038.003a13.628 13.628 0 002.595-.107c1.732-.229 3.502-.776 4.944-1.687-.81.704-1.601 1.217-2.408 1.593-1.269.592-2.574.846-4.044.969h-.004c-.338.028-.685.05-1.042.067.34.059.682.104 1.024.135.54.058 1.07.093 1.59.107.977.027 1.915-.019 2.8-.126 6.268-.762 9.88-4.606 6.496-7.23a5.82 5.82 0 00-.37-.263 7.713 7.713 0 00-.916-.51l-.004-.002.002.002z"
|
||||
fill="#C5F955"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M6.536 6.936c-2.797 4.238-2.052 9.843 3.974 8.85l5.975-1.967c5.596-1.862 5.863-7.568 2.333-10.083-2.676-1.906-8.875-1.961-12.282 3.2z"
|
||||
fill="#FF3E8F"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M9.659 10.271c2.653-.718 5.463-3.77 5.895-7.682-.919-.085-1.941-.022-3.06.224-3.364.742-5.757 3.193-6.858 5.775.224 2.002 3.325 1.872 4.023 1.683z"
|
||||
fill="#C5F955"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M9.659 10.27c2.654-.717 5.138-3.656 5.57-7.568l-.762.182c-1.23 4.42-4.695 7.522-7.806 6.658.46.852 2.639.826 2.998.729z"
|
||||
fill="#67B800"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M14.495 3.52c-3.511-.704-7.65 1.513-8.633 5.338 1.427-2.74 5.365-5.208 8.633-5.339z"
|
||||
fill="#E9FFCE"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M21.574 7.034l-5.382 7.395-5.482 1.158c-.06.042-.112.024-.113.024l.113-.024c.089-.065.191-.27.15-.894-.115-.323-.191-1.084-.965-1.602-.37-.248-.722-.579-.66-1.022.06-.436.454-.695.883-.798 3.705-.89 5.418-4.685 5.798-8.27l3.246 1.405 2.412 2.628z"
|
||||
fill="#C91C65"
|
||||
/>
|
||||
<path
|
||||
d="M18.194 11.743c-2.242-.965-1.142-5.172 1.45-6.164a.076.076 0 01.003.003c-1.58 1.284-1.856 4.064-.606 5.392-.177.19-.37.379-.583.564a9.934 9.934 0 01-.264.205z"
|
||||
fill="#4C8700"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M5.324 13.352c1.883-.265 4.951.526 5.053 2.231-2.108.122-4.38-.974-5.053-2.23z"
|
||||
fill="#67B800"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M5.624 13.787c.279.194.691.371 1.28.498.867.187 1.833.067 2.516-.11-1.08-.71-2.848-.998-4.096-.823.079.148.18.293.3.434z"
|
||||
fill="#C5F955"
|
||||
/>
|
||||
<path
|
||||
d="M11.652 14.397c.312-3.417 5.138-3.928 5.921-1.77.064.193.145.404.23.627.23.607.496 1.305.558 1.982-.936 1.715-4.22 3.122-7.358 3.282.953-2.004.649-4.12.649-4.12z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M17.327 16.582l-3.17 1.374c2.132-1.117 2.242-5.828-.042-5.358l1.896-.807 1.777 1.542-.461 3.25z"
|
||||
fill="#FF97C2"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M18.068 2.876a7.644 7.644 0 00-2.07-.609h-.008c-3.685-.532-7.445 1.42-9.426 4.64 1.964-2.638 5.542-4.165 8.504-3.753-.251 1.492-1.215 3.713-2.962 5.286-1.734 1.56-4.361 2.149-5.972 1.188 1.187 1.41 4.795 1.23 6.756-.464 1.838-1.587 2.976-4.07 3.186-5.796.086.02.17.043.254.066.894.284 1.142 1.053 1.203 1.59.04.356-.18.666-.443.91-.554.518-1.106 1.354-1.427 2.252-.362 1.014-.844 2.062-1.722 2.687-.393.28-.705.521-.945.73-.837.553-1.481 1.461-1.731 2.76l-.086.459c-2.914.579-5.6.128-6.19-2.666.165 3.526 2.893 4.267 5.949 3.891-.265 1.14-.609 1.908-1.31 2.457.531.04 1.078.038 1.627-.001.477-.591.64-1.636.781-2.528.032-.206.063-.403.096-.585a5.956 5.956 0 01.089-.414c.914-3.591 4.749-2.958 4.935-.471l.013.168c.084.998.127 1.504-3.011 3.284 2.023-.145 5.196-1.322 4.432-3.6a9.473 9.473 0 00-.237-.74l.007.008c5.67.557 6.306-7.935-.292-10.749zm1.577 2.703c-2.593.993-3.693 5.2-1.45 6.164l.846-.768c-1.25-1.328-.974-4.108.606-5.392l-.002-.004z"
|
||||
fill="#181818"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M10.252 22.02c9.524 1.016 16.05-4.957 9.597-8.025 2.43 2.81.036 5.363-3.746 6.766 1.406-.909 2.56-2.33 3.255-4.392-4.354 4.119-14.543 4.415-14.319 1.427-1.767 3.471 6.828 4.53 11.687 1.46-2.378 2.067-4.6 2.49-7.498 2.628.34.06.682.105 1.024.136z"
|
||||
fill="#181818"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M8.35 8.84c-.374-.01-.625-.2-.562-.423.19-.666.332-1.69.257-2.51-.02-.22.27-.43.649-.47.378-.04.702.106.722.326.081.888-.07 1.973-.274 2.689-.063.223-.418.397-.792.387z"
|
||||
fill="#181818"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M7.861 8.67s.224.136.545-.036c.519-.278.64-1.953.64-2.931 0-.264-.325-.269-.325-.269.366-.03.675.114.694.33.082.887-.07 1.972-.273 2.688-.064.223-.418.397-.792.387-.216-.005-.392-.07-.489-.168z"
|
||||
fill="#FF3E8F"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M11.278 7.493c-.374-.01-.625-.199-.562-.422.19-.666.331-1.69.256-2.51-.02-.22.27-.43.65-.47.378-.04.701.106.722.326.08.888-.071 1.973-.274 2.688-.064.224-.418.397-.792.388z"
|
||||
fill="#181818"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M10.79 7.324s.223.135.544-.037c.519-.278.64-1.952.64-2.93 0-.264-.326-.269-.326-.269.367-.03.675.114.695.33.082.887-.07 1.972-.274 2.687-.063.224-.417.398-.791.388-.216-.006-.392-.071-.489-.169z"
|
||||
fill="#FF3E8F"
|
||||
/>
|
||||
<path
|
||||
d="M3.557 1l.561 1.527 1.518.565-1.518.565-.56 1.527-.562-1.527-1.517-.565 1.517-.565L3.557 1zM1.185 4.952l.32.876.865.325-.865.324-.32.877-.32-.877L0 6.153l.865-.325.32-.876z"
|
||||
fill="#C5F955"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,30 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconCombine, { type IconCombineProps } from '@/features/IconCombine';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export interface CombineProps extends Omit<IconCombineProps, 'Icon' | 'Text'> {
|
||||
type?: 'color' | 'mono';
|
||||
}
|
||||
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
|
||||
const Icon = type === 'color' ? Color : Mono;
|
||||
|
||||
return (
|
||||
<IconCombine
|
||||
Icon={Icon}
|
||||
Text={Text}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,28 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
fill="currentColor"
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 24 24"
|
||||
width={size}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M3.214.358l.59 1.606 1.597.595-1.596.594-.59 1.607-.591-1.607-1.596-.594 1.596-.595.59-1.606zM16.3 1.691a8.04 8.04 0 012.178.641c6.94 2.96 6.273 11.893.308 11.306l-.008-.007c.09.247.177.51.25.779.803 2.395-2.534 3.633-4.663 3.785l.138-.078c2.107-1.3 2.17-6.033-.175-5.56-.855.303-1.641 1.093-2 2.503a6.199 6.199 0 00-.093.436 25.87 25.87 0 00-.102.614c-.147.94-.32 2.038-.821 2.66-.578.041-1.153.043-1.711.001.737-.577 1.098-1.385 1.377-2.584-3.215.395-6.084-.384-6.257-4.094.17.809.509 1.431.972 1.896.267.133.61.252 1.043.345.911.196 1.928.07 2.646-.116.36.237.648.518.823.843.23-.027.464-.061.7-.102a4.523 4.523 0 00-.01-.197 3.115 3.115 0 01-.06-.209c-.108-.395-.278-1.023-.953-1.476-.391-.261-.76-.609-.696-1.075.064-.459.478-.731.93-.84 2.84-.683 4.568-2.988 5.45-5.648C14.988 6.75 14.129 8 13.032 8.947c-2.062 1.781-5.857 1.971-7.106.487.364.217.776.359 1.219.431-.299-.122-.54-.291-.665-.52 3.221.894 6.802-2.252 8.148-6.784-2.963-.128-6.335 1.44-8.25 4.01 2.084-3.387 6.04-5.44 9.916-4.88h.007zm2.57 5.476c-.357 1.21-.224 2.564.444 3.459.058.078.121.154.188.225l-.89.809c-1.327-.571-1.541-2.22-.99-3.741a5.04 5.04 0 011.32-1.997 3.822 3.822 0 011.195-.747l.003.004a3.511 3.511 0 00-.559.574c-.322.415-.56.902-.711 1.414z" />
|
||||
<path d="M20.352 14.028c6.788 3.227-.077 9.51-10.095 8.441-.36-.033-.72-.08-1.077-.142 3.05-.146 5.386-.591 7.887-2.766-5.111 3.23-14.152 2.117-12.294-1.535-.236 3.143 10.482 2.832 15.062-1.501-.73 2.168-1.945 3.664-3.423 4.62 3.978-1.476 6.496-4.16 3.94-7.117zM7.742 8.427s.236.142.573-.039c.546-.292.673-2.054.673-3.083 0-.278-.342-.283-.342-.283l-.029.003c-.398.042-.704.264-.682.495.079.862-.071 1.94-.27 2.64-.028.1.003.192.077.267zM11.395 6.972c-.338.181-.573.039-.573.039a.263.263 0 01-.078-.267c.2-.7.349-1.778.27-2.64-.021-.231.285-.453.683-.495.01 0 .019-.002.028-.003 0 0 .343.005.343.283 0 1.029-.128 2.79-.673 3.083zM1.056 5.438l-.337-.922-.337.922-.91.341.91.341.337.923.337-.923.91-.34-.91-.342z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,26 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
fill="currentColor"
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 43 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M2 19.368V2h3.24l1.396 9.003.118.922H6.8l.118-.922L8.315 2h3.24v17.368H9.19V7.718h-.142l-.095.733L7.44 19.368H6.115L4.602 8.451l-.095-.732h-.142v11.65H2zm14.057.19c-.954 0-1.706-.328-2.258-.981-.544-.662-.816-1.47-.816-2.422V9.656c0-1.008.272-1.827.816-2.457.544-.63 1.304-.946 2.282-.946.639 0 1.186.146 1.644.438.461.287.83.702 1.064 1.193.245.496.367 1.063.367 1.701v3.758h-3.95v2.812c0 .322.07.622.213.898.15.268.37.401.662.401.308 0 .524-.126.65-.378.134-.252.201-.559.201-.921v-1.418h2.224v1.489c0 1-.272 1.807-.816 2.422-.536.606-1.297.91-2.283.91zm-.851-8.082h1.727v-1.82a2.09 2.09 0 00-.19-.921c-.118-.268-.339-.402-.662-.402-.3 0-.52.138-.662.414-.142.267-.213.57-.213.91v1.819zm8.015 8.082c-.56 0-1.05-.095-1.467-.284a2.765 2.765 0 01-1.04-.803 3.745 3.745 0 01-.627-1.253 5.982 5.982 0 01-.201-1.607h2.223c0 .528.083.989.248 1.383.174.386.462.579.864.579.346 0 .571-.146.674-.438.102-.29.153-.626.153-1.004 0-.44-.173-.89-.52-1.347a9.865 9.865 0 00-1.064-1.24 13.269 13.269 0 01-1.597-1.867c-.417-.615-.626-1.335-.626-2.162 0-.977.256-1.765.768-2.364.512-.598 1.242-.898 2.188-.898.568 0 1.044.075 1.43.225.395.15.71.374.947.673.236.3.406.666.508 1.1.11.433.166.933.166 1.5h-2.223c0-.41-.044-.764-.13-1.064-.087-.3-.304-.449-.65-.449-.285 0-.486.123-.604.367-.118.236-.177.54-.177.91 0 .433.102.819.307 1.157.213.331.564.737 1.053 1.217.61.593 1.17 1.233 1.679 1.914.512.678.768 1.414.768 2.21 0 .52-.07.996-.212 1.43a3.137 3.137 0 01-.603 1.122 2.661 2.661 0 01-.958.732c-.37.174-.796.26-1.277.26zm3.992-.19V2h2.389v5.329c.204-.213.508-.446.91-.697.402-.252.785-.379 1.147-.379.394 0 .725.114.994.343.268.228.469.536.603.922.133.378.2.8.2 1.264v10.586h-2.388V9.278c0-.236-.055-.425-.166-.567-.102-.15-.224-.224-.366-.224-.166 0-.363.094-.591.283-.229.182-.343.386-.343.615v9.983h-2.39zM35.11 24a7.05 7.05 0 01-.367-.012 3.507 3.507 0 01-.413-.047v-2.115c.023.008.086.016.189.024.102.015.17.023.2.023.443 0 .797-.118 1.065-.354.276-.236.47-.552.58-.945.04-.119.059-.257.059-.414.008-.157.011-.295.011-.413l-2.2-13.304h2.342l.946 8.058.048.898h.094l.048-.898.946-8.058H41l-2.294 13.894a5.088 5.088 0 01-.591 1.867c-.3.56-.702.996-1.207 1.312-.504.322-1.103.484-1.797.484z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Model
|
||||
title: Meshy
|
||||
atomId: Meshy
|
||||
description: https://meshy.ai
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { Meshy } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Meshy size={64} />
|
||||
<Meshy.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { Meshy } from '@lobehub/icons';
|
||||
|
||||
export default () => <Meshy.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { Meshy } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<Meshy.Combine size={64} />
|
||||
<Meshy.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { Meshy } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Meshy.Avatar size={64} />
|
||||
<Meshy.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { Meshy } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={Meshy.colorPrimary} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,25 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'Meshy';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.8;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#000';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.8;
|
||||
@@ -1,9 +1,9 @@
|
||||
export const TITLE = 'NousResearch';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#2D6376';
|
||||
export const COLOR_PRIMARY = '#fff';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = '#fff';
|
||||
export const AVATAR_COLOR = COLOR_PRIMARY;
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#000';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.75;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconAvatar, { type IconAvatarProps } from '@/features/IconAvatar';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
|
||||
export type AvatarProps = Omit<IconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ ...rest }) => {
|
||||
return (
|
||||
<IconAvatar
|
||||
Icon={Mono}
|
||||
aria-label={TITLE}
|
||||
background={AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,30 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconCombine, { type IconCombineProps } from '@/features/IconCombine';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export interface CombineProps extends Omit<IconCombineProps, 'Icon' | 'Text'> {
|
||||
type?: 'color' | 'mono';
|
||||
}
|
||||
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
|
||||
const Icon = type === 'color' ? Color : Mono;
|
||||
|
||||
return (
|
||||
<IconCombine
|
||||
Icon={Icon}
|
||||
Text={Text}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,26 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
fill="currentColor"
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 97 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M24.422 6.313c.984 0 1.872.252 2.663.755.796.498 1.427 1.236 1.892 2.215.47.974.705 2.168.705 3.584 0 1.4-.23 2.589-.689 3.568-.459.979-1.084 1.726-1.875 2.24-.79.514-1.686.771-2.687.771-.73 0-1.337-.122-1.818-.365-.48-.243-.868-.536-1.16-.879a5.69 5.69 0 01-.673-.987h-.125V24h-3.003V6.479h2.953v2.108h.175c.155-.31.373-.639.655-.987.283-.354.664-.656 1.145-.905.481-.254 1.095-.382 1.842-.382zM8.687 2c1.205 0 2.261.21 3.168.63.913.416 1.63.993 2.149 1.734.52.736.788 1.583.805 2.54h-2.961c-.078-.725-.405-1.29-.98-1.693-.57-.404-1.31-.607-2.223-.607-.642 0-1.192.098-1.65.292-.46.193-.811.456-1.055.788a1.917 1.917 0 00-.373 1.136c0 .354.08.661.24.921.166.26.39.48.672.663.283.177.595.327.938.449.343.121.689.223 1.037.306l1.593.399c.641.149 1.259.35 1.85.605.598.254 1.131.575 1.601.962.476.387.852.855 1.128 1.402.277.548.415 1.19.415 1.925 0 .996-.254 1.872-.763 2.63-.508.752-1.245 1.34-2.207 1.767-.956.42-2.115.63-3.475.63-1.322 0-2.47-.204-3.444-.614-.967-.409-1.726-1.006-2.273-1.792-.542-.785-.835-1.742-.879-2.87h3.028c.045.592.227 1.084.547 1.477a2.9 2.9 0 001.253.88c.52.193 1.1.29 1.742.29.67 0 1.256-.1 1.76-.3.508-.204.906-.486 1.193-.845.288-.365.434-.792.44-1.278-.006-.442-.135-.807-.39-1.095-.254-.293-.611-.536-1.07-.73a10.314 10.314 0 00-1.593-.53l-1.932-.499c-1.4-.36-2.506-.904-3.319-1.634-.807-.735-1.21-1.712-1.21-2.928 0-1.001.27-1.878.812-2.63.547-.752 1.291-1.335 2.231-1.75C6.432 2.21 7.497 2 8.687 2zm29.05 4.313c.785 0 1.526.128 2.223.382a5.027 5.027 0 011.858 1.161c.542.526.968 1.195 1.278 2.008.31.808.465 1.77.465 2.887v.92h-8.876c.01.71.144 1.322.406 1.835.27.525.65.929 1.136 1.21.487.277 1.056.416 1.709.416.436 0 .832-.061 1.186-.183.354-.127.661-.312.921-.555.26-.244.456-.545.589-.905l2.805.315a4.372 4.372 0 01-1.013 1.941c-.492.548-1.123.974-1.892 1.278-.768.299-1.648.448-2.637.448-1.278 0-2.382-.265-3.311-.796a5.396 5.396 0 01-2.132-2.274c-.497-.984-.746-2.143-.746-3.475 0-1.31.248-2.462.746-3.451.503-.996 1.206-1.77 2.108-2.324.901-.558 1.96-.838 3.177-.838zm13.848 0c.785 0 1.527.128 2.224.382a5.025 5.025 0 011.857 1.161c.542.526.969 1.195 1.278 2.008.31.808.464 1.77.464 2.887v.92h-8.874c.009.71.143 1.322.404 1.835.271.525.65.929 1.137 1.21.487.277 1.057.416 1.71.416.436 0 .832-.061 1.186-.183.353-.127.66-.312.92-.555a2.32 2.32 0 00.59-.905l2.803.315a4.375 4.375 0 01-1.011 1.941c-.493.548-1.123.974-1.892 1.278-.769.3-1.649.448-2.639.448-1.277 0-2.38-.265-3.31-.796a5.394 5.394 0 01-2.131-2.274c-.498-.984-.747-2.143-.747-3.475 0-1.311.249-2.461.747-3.451.503-.996 1.205-1.77 2.106-2.324.902-.558 1.961-.838 3.178-.838zm19.879 12.91H68.51v-2.008h-.183a5.13 5.13 0 01-.672.987c-.293.343-.68.637-1.162.88-.48.243-1.086.365-1.816.365-1.001 0-1.897-.257-2.688-.771-.79-.514-1.416-1.262-1.875-2.24-.459-.98-.688-2.169-.688-3.568 0-1.416.231-2.61.696-3.584.47-.979 1.103-1.717 1.9-2.215a4.884 4.884 0 012.663-.755c.746 0 1.36.128 1.841.382.481.25.864.55 1.146.905.282.348.5.677.655.987h.124V2.232h3.012v16.99zm18 0h-3.285l-1.407-4.19h-6.388l-1.406 4.19h-3.285l5.98-16.99h3.8l5.99 16.99zm5.315 0h-3.078V2.233h3.078v16.99zM65.516 8.778c-.67 0-1.228.174-1.676.523-.448.348-.785.83-1.012 1.443-.227.614-.34 1.317-.34 2.108 0 .796.113 1.506.34 2.131.232.62.572 1.11 1.02 1.47.453.353 1.01.53 1.668.53.636 0 1.178-.171 1.626-.514.448-.349.788-.833 1.02-1.452.232-.62.349-1.341.349-2.165 0-.824-.117-1.54-.349-2.149-.227-.608-.565-1.081-1.013-1.419-.442-.337-.987-.506-1.633-.506zm-41.923 0c-.642 0-1.187.168-1.635.505-.448.338-.788.81-1.02 1.42-.227.607-.34 1.324-.34 2.148 0 .823.116 1.545.348 2.165.238.62.578 1.103 1.02 1.452.449.343.99.514 1.627.514.663 0 1.219-.177 1.667-.53.448-.36.786-.85 1.012-1.47.233-.624.348-1.335.348-2.131 0-.791-.113-1.493-.34-2.107-.227-.614-.564-1.096-1.011-1.444-.448-.349-1.007-.523-1.676-.523zm55.619 3.784h4.728l-2.3-6.845h-.132l-2.296 6.845zM37.778 8.652c-.614 0-1.152.15-1.617.449-.464.293-.827.68-1.087 1.16a3.303 3.303 0 00-.383 1.386h5.99c-.005-.575-.13-1.087-.372-1.535a2.715 2.715 0 00-1.02-1.07c-.432-.26-.936-.39-1.51-.39zm13.848 0c-.614 0-1.153.15-1.617.449-.465.293-.827.68-1.087 1.16a3.304 3.304 0 00-.383 1.386h5.991c-.005-.575-.13-1.087-.374-1.535a2.715 2.715 0 00-1.02-1.07c-.432-.26-.935-.39-1.51-.39z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Provider
|
||||
title: SpeedAI
|
||||
atomId: SpeedAI
|
||||
description: https://speedai.com
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { SpeedAI } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<SpeedAI size={64} />
|
||||
<SpeedAI.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { SpeedAI } from '@lobehub/icons';
|
||||
|
||||
export default () => <SpeedAI.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { SpeedAI } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<SpeedAI.Combine size={64} />
|
||||
<SpeedAI.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { SpeedAI } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<SpeedAI.Avatar size={64} />
|
||||
<SpeedAI.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { SpeedAI } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={SpeedAI.colorPrimary} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,25 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'SpeedAI';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.75;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#6366F1';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.7;
|
||||
@@ -0,0 +1,25 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconAvatar, { type IconAvatarProps } from '@/features/IconAvatar';
|
||||
|
||||
import { AVATAR_BACKGROUND, AVATAR_COLOR, AVATAR_ICON_MULTIPLE, TITLE } from '../style';
|
||||
import Mono from './Mono';
|
||||
|
||||
export type AvatarProps = Omit<IconAvatarProps, 'Icon'>;
|
||||
|
||||
const Avatar = memo<AvatarProps>(({ ...rest }) => {
|
||||
return (
|
||||
<IconAvatar
|
||||
Icon={Mono}
|
||||
aria-label={TITLE}
|
||||
background={AVATAR_BACKGROUND}
|
||||
color={AVATAR_COLOR}
|
||||
iconMultiple={AVATAR_ICON_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Avatar;
|
||||
@@ -0,0 +1,36 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 24 24"
|
||||
width={size}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M8.295 16.074a4.239 4.239 0 00-1.37-.685 4.255 4.255 0 00-1.636-.138 4.27 4.27 0 00-1.566.499c-.472.26-.875.602-1.19.973-.315.37-.59.824-.773 1.336a4.432 4.432 0 00-.257 1.644c.02.564.155 1.125.375 1.621s.528.93.87 1.275c.34.346.766.657 1.256.881.49.224 1.041.36 1.598.381a4.258 4.258 0 001.62-.26 4.25 4.25 0 001.318-.786c.365-.319.703-.728.959-1.206.256-.479.43-1.027.492-1.589a4.436 4.436 0 00-.137-1.659 4.346 4.346 0 00-.675-1.39l.95-.964.691.702h.393l.475-.481v-.399l-.692-.702L12 14.11l1.004 1.018-.691.702v.399l.474.48h.393l.691-.701.95.964a4.346 4.346 0 00-.675 1.39 4.435 4.435 0 00-.137 1.66c.062.56.236 1.11.492 1.588s.594.887.96 1.206c.364.32.812.599 1.316.785a4.258 4.258 0 001.621.261 4.262 4.262 0 001.598-.38c.49-.225.916-.536 1.257-.882.341-.346.648-.779.869-1.275.22-.496.355-1.057.375-1.62a4.433 4.433 0 00-.257-1.645 4.338 4.338 0 00-.774-1.336 4.272 4.272 0 00-1.189-.973 4.27 4.27 0 00-1.566-.5 4.255 4.255 0 00-1.635.14 4.239 4.239 0 00-1.37.684l-.933-.947.69-.702v-.398l-.49-.498h-.393l-.692.701-1.004-1.018L18.15 7.87l2.132 2.163v-2.25H22.5L20.368 5.62 22.5 3.457V3.06l-.491-.498h-.393L12 12.316 2.384 2.56H1.99l-.491.498v.398L3.632 5.62 1.5 7.782h2.218v2.25L5.85 7.87l5.266 5.342-1.004 1.018-.692-.701h-.393l-.49.498v.399l.69.7-.932.948zm8.546 4.95a1.59 1.59 0 00.107 1.49c.256.43.799.73 1.294.716.494.014 1.037-.287 1.293-.716a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.471-.107l-.054-.059a1.59 1.59 0 00-.108-1.49c-.256-.43-.799-.73-1.293-.717-.495-.013-1.038.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.472.107c-.424.26-.72.81-.707 1.313-.013.502.283 1.053.707 1.313a1.53 1.53 0 001.472.107l.054.06zm-9.79 1.49a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.47-.107l-.055-.059a1.59 1.59 0 00-.107-1.49c-.257-.43-.8-.73-1.294-.717-.495-.013-1.037.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.471.107c-.424.26-.72.81-.707 1.313-.014.502.283 1.053.707 1.313a1.53 1.53 0 001.471.107l.054.06a1.59 1.59 0 00.107 1.49c.257.43.8.73 1.294.716.495.014 1.037-.287 1.294-.716z"
|
||||
fill="#E05A2D"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M12.274 2.56L14.8 0l1.25 1.268v4.274l-3.462 3.512h-.625L8.5 5.542V1.268L9.75 0l2.524 2.56zM9.75.898l2.212 2.243v4.12L9.75 5.018V.897zm2.837 2.243L14.799.897v4.12l-2.212 2.244V3.14z"
|
||||
fill="#E05A2D"
|
||||
fillRule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,30 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import IconCombine, { type IconCombineProps } from '@/features/IconCombine';
|
||||
|
||||
import { COMBINE_SPACE_MULTIPLE, COMBINE_TEXT_MULTIPLE, TITLE } from '../style';
|
||||
import Color from './Color';
|
||||
import Mono from './Mono';
|
||||
import Text from './Text';
|
||||
|
||||
export interface CombineProps extends Omit<IconCombineProps, 'Icon' | 'Text'> {
|
||||
type?: 'color' | 'mono';
|
||||
}
|
||||
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
|
||||
const Icon = type === 'color' ? Color : Mono;
|
||||
|
||||
return (
|
||||
<IconCombine
|
||||
Icon={Icon}
|
||||
Text={Text}
|
||||
aria-label={TITLE}
|
||||
spaceMultiple={COMBINE_SPACE_MULTIPLE}
|
||||
textMultiple={COMBINE_TEXT_MULTIPLE}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
export default Combine;
|
||||
@@ -0,0 +1,34 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
fill="currentColor"
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 24 24"
|
||||
width={size}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M8.295 16.074a4.239 4.239 0 00-1.37-.685 4.255 4.255 0 00-1.636-.138 4.27 4.27 0 00-1.566.499c-.472.26-.875.602-1.19.973-.315.37-.59.824-.773 1.336a4.432 4.432 0 00-.257 1.644c.02.564.155 1.125.375 1.621s.528.93.87 1.275c.34.346.766.657 1.256.881.49.224 1.041.36 1.598.381a4.258 4.258 0 001.62-.26 4.25 4.25 0 001.318-.786c.365-.319.703-.728.959-1.206.256-.479.43-1.027.492-1.589a4.436 4.436 0 00-.137-1.659 4.346 4.346 0 00-.675-1.39l.95-.964.691.702h.393l.475-.481v-.399l-.692-.702L12 14.11l1.004 1.018-.691.702v.399l.474.48h.393l.691-.701.95.964a4.346 4.346 0 00-.675 1.39 4.435 4.435 0 00-.137 1.66c.062.56.236 1.11.492 1.588s.594.887.96 1.206c.364.32.812.599 1.316.785a4.258 4.258 0 001.621.261 4.262 4.262 0 001.598-.38c.49-.225.916-.536 1.257-.882.341-.346.648-.779.869-1.275.22-.496.355-1.057.375-1.62a4.433 4.433 0 00-.257-1.645 4.338 4.338 0 00-.774-1.336 4.272 4.272 0 00-1.189-.973 4.27 4.27 0 00-1.566-.5 4.255 4.255 0 00-1.635.14 4.239 4.239 0 00-1.37.684l-.933-.947.69-.702v-.398l-.49-.498h-.393l-.692.701-1.004-1.018L18.15 7.87l2.132 2.163v-2.25H22.5L20.368 5.62 22.5 3.457V3.06l-.491-.498h-.393L12 12.316 2.384 2.56H1.99l-.491.498v.398L3.632 5.62 1.5 7.782h2.218v2.25L5.85 7.87l5.266 5.342-1.004 1.018-.692-.701h-.393l-.49.498v.399l.69.7-.932.948zm8.546 4.95a1.59 1.59 0 00.107 1.49c.256.43.799.73 1.294.716.494.014 1.037-.287 1.293-.716a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.471-.107l-.054-.059a1.59 1.59 0 00-.108-1.49c-.256-.43-.799-.73-1.293-.717-.495-.013-1.038.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.472.107c-.424.26-.72.81-.707 1.313-.013.502.283 1.053.707 1.313a1.53 1.53 0 001.472.107l.054.06zm-9.79 1.49a1.59 1.59 0 00.108-1.49l.054-.06a1.53 1.53 0 001.471-.107c.424-.26.72-.81.707-1.313.014-.502-.283-1.053-.707-1.313a1.53 1.53 0 00-1.47-.107l-.055-.059a1.59 1.59 0 00-.107-1.49c-.257-.43-.8-.73-1.294-.717-.495-.013-1.037.287-1.294.716a1.59 1.59 0 00-.107 1.491l-.054.059a1.53 1.53 0 00-1.471.107c-.424.26-.72.81-.707 1.313-.014.502.283 1.053.707 1.313a1.53 1.53 0 001.471.107l.054.06a1.59 1.59 0 00.107 1.49c.257.43.8.73 1.294.716.495.014 1.037-.287 1.294-.716z"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M12.274 2.56L14.8 0l1.25 1.268v4.274l-3.462 3.512h-.625L8.5 5.542V1.268L9.75 0l2.524 2.56zM9.75.898l2.212 2.243v4.12L9.75 5.018V.897zm2.837 2.243L14.799.897v4.12l-2.212 2.244V3.14z"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,33 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
return (
|
||||
<svg
|
||||
fill="currentColor"
|
||||
fillRule="evenodd"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 55 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M52.809 17.07a.292.292 0 00-.184-.06.448.448 0 00-.31.136l-.014.015-.01.017c-1.153 1.82-2.12 3.036-2.965 3.794-.843.757-1.551 1.046-2.192 1.046-.362 0-.57-.105-.694-.257-.13-.16-.195-.406-.195-.747 0-.535.157-1.169.404-1.83.239-.637.556-1.289.885-1.888 1.237-.369 2.685-1.034 3.63-1.872l.002-.001v-.001c.338-.312.626-.636.83-.962.204-.326.331-.664.331-1.002 0-.254-.07-.52-.264-.723-.195-.205-.49-.32-.883-.32-.78 0-1.772.373-2.727 1.006a8.694 8.694 0 00-2.577 2.652c-.238.387-.436.78-.592 1.176-1.112 1.67-2.061 2.866-2.916 3.645-.858.78-1.602 1.124-2.304 1.124-.327 0-.53-.107-.658-.266-.132-.166-.203-.416-.203-.738 0-.628.209-1.383.556-2.2.346-.815.822-1.678 1.343-2.518.589-.95 1.173-1.77 1.703-2.349.264-.29.51-.515.732-.666.225-.153.407-.218.546-.218.147 0 .278.085.417.283.14.2.258.475.39.782l.192.443.863-1.578-.126-.097c-.395-.305-.931-.481-1.543-.481-2.096 0-4.156 1.578-5.304 3.436a9.722 9.722 0 00-.706 1.354l-.89 1.383c-.65 1.015-1.212 1.886-1.768 2.506-.557.62-1.075.952-1.628.952-.23 0-.388-.061-.485-.15-.095-.086-.156-.218-.156-.412 0-.258.051-.501.414-1.163.364-.664 1.028-1.724 2.227-3.608l2.241-3.55-.099-.499h-3.295l-.05.037a.54.54 0 00-.164.19.458.458 0 00-.047.208v.185h1.166l-1.33 2.124c-.387.62-.73 1.19-1.016 1.739l-.762 1.134c-.773 1.152-1.432 2.121-2.06 2.804-.631.685-1.197 1.044-1.778 1.044-.203 0-.338-.054-.422-.131-.081-.075-.136-.194-.136-.376 0-.213.083-.483.33-.91.244-.425.637-.984 1.229-1.773l.853-1.134c1.114-1.484 1.44-2.353 1.44-3.461 0-.537-.075-1.013-.28-1.36-.213-.363-.556-.569-1.032-.569-.633 0-1.321.325-2.042.881-.725.56-1.504 1.371-2.322 2.384l-.02.024h-.248v-1.443c0-.528-.098-.938-.347-1.214-.254-.28-.626-.383-1.076-.383h-1.01l-.055.054a.722.722 0 00-.186.336l-.057.23h1.198c.345 0 .515.062.6.137.079.07.124.183.124.397 0 .208-.076.468-.237.806-.16.334-.395.727-.697 1.197l-4.171 6.624h2.361l2.395-3.712.137-.22c1.152-1.71 2.23-3.073 3.187-4.008.48-.468.923-.824 1.327-1.062.405-.24.757-.353 1.056-.353.182 0 .263.043.3.08.038.038.067.105.067.233 0 .188-.078.438-.273.788-.193.348-.489.775-.9 1.313l-.909 1.19c-1.165 1.535-1.717 2.765-1.717 3.988 0 .443.07.943.292 1.34.23.409.618.7 1.214.7.832 0 1.596-.557 2.306-1.328.506-.55 1.004-1.231 1.498-1.952a6.13 6.13 0 00-.089 1.046c0 .423.049.95.257 1.375.105.216.254.412.464.553.21.143.47.222.785.222.783 0 1.468-.5 2.092-1.193.589-.654 1.153-1.516 1.718-2.393-.02.198-.03.4-.03.606 0 .787.185 1.532.559 2.086.377.56.948.922 1.69.922.819 0 1.625-.361 2.485-1.091.724-.614 1.496-1.497 2.358-2.671-.033.263-.05.524-.05.781 0 .776.193 1.514.57 2.064.38.554.95.917 1.68.917.83 0 1.683-.367 2.626-1.206.941-.836 1.984-2.154 3.199-4.083l.028-.046v-.053a.262.262 0 00-.096-.207zm-2.993-3.11c.304-.317.59-.558.852-.719.263-.16.489-.234.677-.234.158 0 .24.045.285.093.047.051.081.138.081.275 0 .2-.084.442-.256.714a4.254 4.254 0 01-.729.837c-.71.645-1.765 1.218-2.77 1.61.64-1.09 1.277-1.966 1.86-2.575z"
|
||||
/>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M22.04 17.331v-.053a.262.262 0 00-.096-.207.292.292 0 00-.184-.062.449.449 0 00-.31.137l-.014.015-.011.017c-1.152 1.82-2.119 3.036-2.964 3.794-.843.757-1.552 1.046-2.192 1.046-.363 0-.57-.105-.694-.257-.13-.16-.195-.406-.195-.747 0-.535.156-1.169.404-1.83.238-.637.556-1.289.884-1.888 1.238-.369 2.686-1.034 3.63-1.872l.002-.001.002-.001c.337-.312.625-.636.83-.962.203-.326.33-.664.33-1.002 0-.254-.071-.52-.264-.723-.195-.205-.49-.32-.884-.32-.78 0-1.771.373-2.726 1.006a8.701 8.701 0 00-2.578 2.652c-.732 1.19-1.073 2.441-1.073 3.612 0 .776.193 1.514.57 2.064.38.554.95.917 1.679.917.83 0 1.684-.367 2.627-1.206.94-.836 1.984-2.154 3.199-4.083l.028-.046zm-3.09-3.37c.305-.318.591-.56.853-.72.262-.16.489-.234.677-.234.157 0 .24.045.284.093.047.051.082.138.082.275 0 .2-.084.442-.257.714-.171.269-.42.554-.729.837-.71.645-1.764 1.218-2.77 1.61.642-1.09 1.277-1.966 1.86-2.575zM16.01 11.334c.266-.385.53-.768.793-1.146 1.735-2.495 3.38-4.86 5.164-6.602 1.781-1.74 3.68-2.839 5.922-2.839.778 0 1.584.135 2.28.377l.17.06.24-.661-.188-.056A8.915 8.915 0 0027.889.1c-2.41 0-4.446 1.174-6.294 2.96H8.655l-.386.648h5.33c-1.394.67-2.42 1.793-3.188 3.005-.932 1.47-1.495 3.087-1.88 4.222a99.088 99.088 0 00-1.068 3.299v.001c-.67 2.157-1.208 3.893-2.072 5.305-.856 1.4-2.035 2.486-3.997 3.323l-.201.086.461.722.153-.09a8.699 8.699 0 011.992-.862c2.986-.893 5.371-2.784 7.44-5.068 1.753-1.935 3.288-4.163 4.772-6.317zM5.355 21.065c1.083-.967 1.96-2.047 2.745-3.392.87-1.489 1.628-3.303 2.431-5.649.213-.617.41-1.234.602-1.835.567-1.777 1.088-3.402 1.852-4.587.755-1.171 1.736-1.894 3.235-1.894h4.74c-1.618 1.716-3.13 3.885-4.688 6.12l-.006.009c-3.058 4.386-6.299 9.026-10.911 11.228z"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Application
|
||||
title: Venice
|
||||
atomId: Venice
|
||||
description: https://venice.ai
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { Venice } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Venice size={64} />
|
||||
<Venice.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { Venice } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<Venice.Text size={48} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { Venice } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<Venice.Combine size={64} />
|
||||
<Venice.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { Venice } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Venice.Avatar size={64} />
|
||||
<Venice.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { Venice } from '@lobehub/icons';
|
||||
import { Flexbox } from '@lobehub/ui';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={Venice.colorPrimary} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,25 @@
|
||||
import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
Icons.Avatar = Avatar;
|
||||
Icons.colorPrimary = COLOR_PRIMARY;
|
||||
Icons.title = TITLE;
|
||||
|
||||
export default Icons;
|
||||
@@ -0,0 +1,9 @@
|
||||
export const TITLE = 'Venice';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.75;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#E05A2D';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.75;
|
||||
@@ -17,6 +17,7 @@ import Gemini from '@/Gemini';
|
||||
import GeminiCLI from '@/GeminiCLI';
|
||||
import GithubCopilot from '@/GithubCopilot';
|
||||
import Goose from '@/Goose';
|
||||
import HermesAgent from '@/HermesAgent';
|
||||
import Junie from '@/Junie';
|
||||
import KiloCode from '@/KiloCode';
|
||||
import Kimi from '@/Kimi';
|
||||
@@ -87,6 +88,7 @@ export const agentMappings: AgentMapping[] = [
|
||||
'claw',
|
||||
],
|
||||
},
|
||||
{ Icon: HermesAgent, keywords: ['hermes'] },
|
||||
{ Icon: Manus, keywords: ['manus'] },
|
||||
{ Icon: CherryStudio, keywords: ['cherry-studio', 'cherrystudio'] },
|
||||
{ Icon: Cursor, keywords: ['cursor'] },
|
||||
|
||||
@@ -127,6 +127,7 @@ export { default as Groq, type CompoundedIcon as GroqProps } from './Groq';
|
||||
export { default as Hailuo, type CompoundedIcon as HailuoProps } from './Hailuo';
|
||||
export { default as Haiper, type CompoundedIcon as HaiperProps } from './Haiper';
|
||||
export { default as Hedra, type CompoundedIcon as HedraProps } from './Hedra';
|
||||
export { default as HermesAgent, type CompoundedIcon as HermesAgentProps } from './HermesAgent';
|
||||
export { default as Higress, type CompoundedIcon as HigressProps } from './Higress';
|
||||
export { default as Huawei, type CompoundedIcon as HuaweiProps } from './Huawei';
|
||||
export { default as HuaweiCloud, type CompoundedIcon as HuaweiCloudProps } from './HuaweiCloud';
|
||||
@@ -179,6 +180,7 @@ export { default as Mastra, type CompoundedIcon as MastraProps } from './Mastra'
|
||||
export { default as MCP, type CompoundedIcon as MCPProps } from './MCP';
|
||||
export { default as McpSo, type CompoundedIcon as McpSoProps } from './McpSo';
|
||||
export { default as Menlo, type CompoundedIcon as MenloProps } from './Menlo';
|
||||
export { default as Meshy, type CompoundedIcon as MeshyProps } from './Meshy';
|
||||
export { default as Meta, type CompoundedIcon as MetaProps } from './Meta';
|
||||
export { default as MetaAI, type CompoundedIcon as MetaAIProps } from './MetaAI';
|
||||
export { default as MetaGPT, type CompoundedIcon as MetaGPTProps } from './MetaGPT';
|
||||
@@ -250,6 +252,7 @@ export { default as Snowflake, type CompoundedIcon as SnowflakeProps } from './S
|
||||
export { default as SophNet, type CompoundedIcon as SophNetLabsProps } from './SophNet';
|
||||
export { default as Sora, type CompoundedIcon as SoraProps } from './Sora';
|
||||
export { default as Spark, type CompoundedIcon as SparkProps } from './Spark';
|
||||
export { default as SpeedAI, type CompoundedIcon as SpeedAIProps } from './SpeedAI';
|
||||
export { default as Stability, type CompoundedIcon as StabilityProps } from './Stability';
|
||||
export { default as StateCloud, type CompoundedIcon as StateCloudProps } from './StateCloud';
|
||||
export { default as Stepfun, type CompoundedIcon as StepfunProps } from './Stepfun';
|
||||
@@ -274,6 +277,7 @@ export { default as Unstructured, type CompoundedIcon as UnstructuredProps } fro
|
||||
export { default as Upstage, type CompoundedIcon as UpstageProps } from './Upstage';
|
||||
export { default as V0, type CompoundedIcon as V0Props } from './V0';
|
||||
export { default as VectorizerAI, type CompoundedIcon as VectorizerAIProps } from './VectorizerAI';
|
||||
export { default as Venice, type CompoundedIcon as VeniceProps } from './Venice';
|
||||
export { default as Vercel, type CompoundedIcon as VercelProps } from './Vercel';
|
||||
export { default as VertexAI, type CompoundedIcon as VertexAIProps } from './VertexAI';
|
||||
export { default as Vidu, type CompoundedIcon as ViduProps } from './Vidu';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export * from './features';
|
||||
export { useFillId, useFillIds } from './hooks/useFillId';
|
||||
export * from './icons';
|
||||
export { type IconToc, default as toc } from './toc';
|
||||
export * from './toc';
|
||||
export type { IconType } from './types';
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
export interface IconToc {
|
||||
color: string;
|
||||
colorGradient?: string;
|
||||
desc: string;
|
||||
docsUrl: string;
|
||||
fullTitle: string;
|
||||
group: 'model' | 'provider' | 'application';
|
||||
id: string;
|
||||
param: {
|
||||
hasAvatar: boolean;
|
||||
hasBrand: boolean;
|
||||
hasBrandColor: boolean;
|
||||
hasColor: boolean;
|
||||
hasCombine: boolean;
|
||||
hasText: boolean;
|
||||
hasTextCn: boolean;
|
||||
hasTextColor: boolean;
|
||||
};
|
||||
title: string;
|
||||
}
|
||||