mirror of
https://github.com/hanzoai/icons.git
synced 2026-09-24 16:59:52 +00:00
✨ feat: add and update logos for various model providers
✨ feat: add and update logos for various model providers
This commit is contained in:
@@ -5,7 +5,7 @@ export default () => {
|
||||
return (
|
||||
<Flexbox gap={16} width={'100%'} wrap={'wrap'}>
|
||||
{Object.values(ModelProvider).map((provider) => (
|
||||
<ProviderCombine key={provider} provider={provider} size={24} type={'mono'} />
|
||||
<ProviderCombine id={provider} key={provider} provider={provider} size={24} type={'mono'} />
|
||||
))}
|
||||
</Flexbox>
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ export default () => {
|
||||
return (
|
||||
<Flexbox gap={16} width={'100%'} wrap={'wrap'}>
|
||||
{Object.values(ModelProvider).map((provider) => (
|
||||
<ProviderCombine key={provider} provider={provider} size={24} />
|
||||
<ProviderCombine id={provider} key={provider} provider={provider} size={24} />
|
||||
))}
|
||||
</Flexbox>
|
||||
);
|
||||
|
||||
+18
-18
@@ -85,21 +85,21 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@lobehub/ui": "^2.9.3",
|
||||
"@lobehub/ui": "^2.24.1",
|
||||
"antd-style": "^3.7.1",
|
||||
"lucide-react": "^0.469.0",
|
||||
"polished": "^4.3.1",
|
||||
"react-layout-kit": "^2.0.0"
|
||||
"react-layout-kit": "^2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/runtime": "^7.28.3",
|
||||
"@babel/runtime": "^7.28.4",
|
||||
"@commitlint/cli": "^19.8.1",
|
||||
"@lobehub/lint": "^1.26.2",
|
||||
"@testing-library/react": "^16.3.0",
|
||||
"@lobehub/lint": "^1.26.3",
|
||||
"@testing-library/react": "^16.3.1",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/pangu": "^4.0.2",
|
||||
"@types/react": "^19.1.10",
|
||||
"@types/react-dom": "^19.1.7",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@vitest/coverage-v8": "^3.2.4",
|
||||
"ajv": "^8.17.1",
|
||||
"babel-plugin-antd-style": "^1.0.4",
|
||||
@@ -110,29 +110,29 @@
|
||||
"dotenv": "^16.6.1",
|
||||
"dpdm": "^3.14.0",
|
||||
"dumi": "^2.4.21",
|
||||
"dumi-theme-lobehub": "^2.0.1",
|
||||
"dumi-theme-lobehub": "^2.0.9",
|
||||
"eslint": "^8.57.1",
|
||||
"father": "^4.6.2",
|
||||
"glob": "^11.0.3",
|
||||
"father": "^4.6.9",
|
||||
"glob": "^11.1.0",
|
||||
"gray-matter": "^4.0.3",
|
||||
"husky": "^9.1.7",
|
||||
"jsdom": "^25.0.1",
|
||||
"lint-staged": "^15.5.2",
|
||||
"lodash-es": "^4.17.21",
|
||||
"markdown-table": "^3.0.4",
|
||||
"multi-semantic-release": "^3.0.2",
|
||||
"p-map": "^7.0.3",
|
||||
"prettier": "^3.6.2",
|
||||
"react": "^19.1.1",
|
||||
"react-dom": "^19.1.1",
|
||||
"multi-semantic-release": "^3.1.0",
|
||||
"p-map": "^7.0.4",
|
||||
"prettier": "^3.7.4",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"remark": "^15.0.1",
|
||||
"remark-cli": "^12.0.1",
|
||||
"semantic-release": "^21.1.2",
|
||||
"sharp": "^0.34.3",
|
||||
"sharp": "^0.34.5",
|
||||
"stylelint": "^15.11.0",
|
||||
"svgo-browser": "^1.3.8",
|
||||
"tsx": "^4.20.4",
|
||||
"typescript": "^5.9.2",
|
||||
"tsx": "^4.21.0",
|
||||
"typescript": "^5.9.3",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import { FC } from 'react';
|
||||
|
||||
import Adobe from '../icons/Adobe';
|
||||
import Ai2 from '../icons/Ai2';
|
||||
import Ai21 from '../icons/Ai21';
|
||||
import Ai360 from '../icons/Ai360';
|
||||
import AiHubMix from '../icons/AiHubMix';
|
||||
import AiMass from '../icons/AiMass';
|
||||
import AionLabs from '../icons/AionLabs';
|
||||
import Anthropic from '../icons/Anthropic';
|
||||
import Arcee from '../icons/Arcee';
|
||||
import AssemblyAI from '../icons/AssemblyAI';
|
||||
import Aws from '../icons/Aws';
|
||||
import Aya from '../icons/Aya';
|
||||
@@ -23,10 +25,12 @@ import CogView from '../icons/CogView';
|
||||
import Cohere from '../icons/Cohere';
|
||||
import Dalle from '../icons/Dalle';
|
||||
import Dbrx from '../icons/Dbrx';
|
||||
import DeepCogito from '../icons/DeepCogito';
|
||||
import DeepMind from '../icons/DeepMind';
|
||||
import DeepSeek from '../icons/DeepSeek';
|
||||
import Dolphin from '../icons/Dolphin';
|
||||
import Doubao from '../icons/Doubao';
|
||||
import EssentialAI from '../icons/EssentialAI';
|
||||
import Fireworks from '../icons/Fireworks';
|
||||
import FishAudio from '../icons/FishAudio';
|
||||
import Flux from '../icons/Flux';
|
||||
@@ -38,6 +42,7 @@ import Grok from '../icons/Grok';
|
||||
import Hunyuan from '../icons/Hunyuan';
|
||||
import IBM from '../icons/IBM';
|
||||
import Ideogram from '../icons/Ideogram';
|
||||
import Inception from '../icons/Inception';
|
||||
import Inflection from '../icons/Inflection';
|
||||
import InternLM from '../icons/InternLM';
|
||||
import Jina from '../icons/Jina';
|
||||
@@ -53,7 +58,9 @@ import Microsoft from '../icons/Microsoft';
|
||||
import Minimax from '../icons/Minimax';
|
||||
import Mistral from '../icons/Mistral';
|
||||
import Moonshot from '../icons/Moonshot';
|
||||
import Morph from '../icons/Morph';
|
||||
import NousResearch from '../icons/NousResearch';
|
||||
import Nova from '../icons/Nova';
|
||||
import Nvidia from '../icons/Nvidia';
|
||||
import OpenAI from '../icons/OpenAI';
|
||||
import OpenChat from '../icons/OpenChat';
|
||||
@@ -63,6 +70,7 @@ import Perplexity from '../icons/Perplexity';
|
||||
import Phind from '../icons/Phind';
|
||||
import Qiniu from '../icons/Qiniu';
|
||||
import Qwen from '../icons/Qwen';
|
||||
import Relace from '../icons/Relace';
|
||||
import Rwkv from '../icons/Rwkv';
|
||||
import SenseNova from '../icons/SenseNova';
|
||||
import Skywork from '../icons/Skywork';
|
||||
@@ -141,16 +149,25 @@ export const rnModelMappings: RNModelMapping[] = [
|
||||
{ Icon: Aws, keywords: ['titan'] },
|
||||
{ Icon: Fireworks, keywords: ['accounts/fireworks/models/fire'] },
|
||||
{ Icon: InternLM, keywords: ['internlm', 'internvl'] },
|
||||
{ Icon: NousResearch, keywords: ['deephermes', 'hermes', 'genstruct', 'minos'] },
|
||||
{
|
||||
Icon: NousResearch,
|
||||
keywords: ['deephermes', 'hermes', 'genstruct', 'minos'],
|
||||
},
|
||||
{ Icon: Nvidia, keywords: ['nemotron', 'openreasoning'] },
|
||||
{ Icon: Meta, keywords: ['llama', '/l3'] },
|
||||
{ Icon: LLaVA, keywords: ['llava'] },
|
||||
{ Icon: Gemini, keywords: ['gemini'] },
|
||||
{ Icon: DeepMind, keywords: ['^imagen-', '/imagen-', '^imagen\\d/', '/imagen\\d'] },
|
||||
{
|
||||
Icon: DeepMind,
|
||||
keywords: ['^imagen-', '/imagen-', '^imagen\\d/', '/imagen\\d'],
|
||||
},
|
||||
{ Icon: Gemma, keywords: ['gemma'] },
|
||||
{ Icon: Moonshot, keywords: ['kimi', 'moonshot'] },
|
||||
{ Icon: Qiniu, keywords: ['qiniu'] },
|
||||
{ Icon: Qwen, keywords: ['qwen', 'qwq', 'qvq', 'wanx', 'wan\\d/', 'wan\\d\\.\\d-', 'tongyi'] },
|
||||
{
|
||||
Icon: Qwen,
|
||||
keywords: ['qwen', 'qwq', 'qvq', 'wanx', 'wan\\d/', 'wan\\d\\.\\d-', 'tongyi'],
|
||||
},
|
||||
{ Icon: Minimax, keywords: ['minimax', 'abab', '^image-'] },
|
||||
{
|
||||
Icon: Mistral,
|
||||
@@ -170,6 +187,27 @@ export const rnModelMappings: RNModelMapping[] = [
|
||||
{ Icon: Perplexity, keywords: ['pplx', 'sonar'] },
|
||||
{ Icon: Yi, keywords: ['^yi-', '/yi-', '-yi-'] },
|
||||
{ Icon: OpenRouter, keywords: ['^openrouter'] },
|
||||
{ Icon: Relace, keywords: ['^relace-', '/relace-'] },
|
||||
{
|
||||
Icon: Arcee,
|
||||
keywords: [
|
||||
'^trinity-',
|
||||
'/trinity-',
|
||||
'afm-4.5b',
|
||||
'caller-large',
|
||||
'spotlight',
|
||||
'maestro-reasoning',
|
||||
'virtuoso-medium-v2',
|
||||
'virtuoso-large',
|
||||
'coder-large',
|
||||
'arcee-blitz',
|
||||
],
|
||||
},
|
||||
{ Icon: EssentialAI, keywords: ['^rnj-', '/rnj-'] },
|
||||
{ Icon: DeepCogito, keywords: ['^deepcogito-', '/deepcogito-'] },
|
||||
{ Icon: Morph, keywords: ['^morph-', '/morph-'] },
|
||||
{ Icon: Ai2, keywords: ['^olmo-', '/olmo-'] },
|
||||
{ Icon: Inception, keywords: ['^mercury-', '/mercury-'] },
|
||||
{ Icon: OpenChat, keywords: ['^openchat'] },
|
||||
{ Icon: Aya, keywords: ['aya'] },
|
||||
{ Icon: Cohere, keywords: ['command'] },
|
||||
@@ -202,7 +240,10 @@ export const rnModelMappings: RNModelMapping[] = [
|
||||
},
|
||||
{ Icon: Flux, keywords: ['flux'] },
|
||||
{ Icon: Suno, keywords: ['suno'] },
|
||||
{ Icon: Microsoft, keywords: ['wizardlm', '/phi-', '^phi-', '-phi-', 'mai-', 'microsoft'] },
|
||||
{
|
||||
Icon: Microsoft,
|
||||
keywords: ['wizardlm', '/phi-', '^phi-', '-phi-', 'mai-', 'microsoft'],
|
||||
},
|
||||
{ Icon: Adobe, keywords: ['firefly'] },
|
||||
{ Icon: Ai21, keywords: ['jamba', '^j2-', 'ai21'] },
|
||||
{ Icon: Upstage, keywords: ['^solar-', '/solar'] },
|
||||
@@ -249,4 +290,5 @@ export const rnModelMappings: RNModelMapping[] = [
|
||||
{ Icon: Menlo, keywords: ['menlo', 'lucy', 'jan-nano'] },
|
||||
{ Icon: LongCat, keywords: ['longcat'] },
|
||||
{ Icon: Kwaipilot, keywords: ['kat-'] },
|
||||
{ Icon: Nova, keywords: ['^nova-', '/nova-'] },
|
||||
];
|
||||
|
||||
@@ -56,6 +56,7 @@ import Perplexity from '../icons/Perplexity';
|
||||
import Player2 from '../icons/Player2';
|
||||
import Qiniu from '../icons/Qiniu';
|
||||
import Qwen from '../icons/Qwen';
|
||||
import Replicate from '../icons/Replicate';
|
||||
import SambaNova from '../icons/SambaNova';
|
||||
import Search1API from '../icons/Search1API';
|
||||
import SenseNova from '../icons/SenseNova';
|
||||
@@ -266,6 +267,7 @@ export const rnProviderMappings: RNProviderMapping[] = [
|
||||
},
|
||||
{ Icon: Vercel, combineMultiple: 0.85, keywords: [RNModelProvider.Vercel] },
|
||||
{ Icon: Bfl, keywords: [RNModelProvider.Bfl] },
|
||||
{ Icon: Replicate, combineMultiple: 0.9, keywords: [RNModelProvider.Replicate] },
|
||||
{ Icon: Nebius, combineMultiple: 0.75, keywords: [RNModelProvider.Nebius] },
|
||||
{ Icon: NewAPI, combineMultiple: 0.85, keywords: [RNModelProvider.NewAPI] },
|
||||
{ Icon: AkashChat, combineMultiple: 0.8, keywords: [RNModelProvider.AkashChat] },
|
||||
|
||||
@@ -50,6 +50,7 @@ export enum RNModelProvider {
|
||||
Player2 = 'Player2',
|
||||
Qiniu = 'qiniu',
|
||||
Qwen = 'qwen',
|
||||
Replicate = 'replicate',
|
||||
SambaNova = 'sambanova',
|
||||
Search1API = 'search1api',
|
||||
SenseNova = 'sensenova',
|
||||
|
||||
@@ -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,19 @@
|
||||
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
|
||||
d="M9.553 9.378H4.777V4.835H8.62c.513 0 .932-.42.932-.932V.058h4.544v4.777a4.542 4.542 0 01-4.544 4.543zm-4.776.467H0v4.543h3.845c.512 0 .932.42.932.932v3.845H9.32v-4.777a4.542 4.542 0 00-4.543-4.543zM20.05 9.61a.935.935 0 01-.932-.932V4.835h-4.543V9.61a4.542 4.542 0 004.543 4.544h4.777V9.612H20.05zM9.787 19.166v4.777h4.544v-3.845c0-.513.42-.932.932-.932h3.845V14.62H14.33a4.542 4.542 0 00-4.544 4.544z"
|
||||
fill="#F0529C"
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'Ai2Color';
|
||||
|
||||
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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M9.553 9.378H4.777V4.835H8.62c.513 0 .932-.42.932-.932V.058h4.544v4.777a4.542 4.542 0 01-4.544 4.543zm-4.776.467H0v4.543h3.845c.512 0 .932.42.932.932v3.845H9.32v-4.777a4.542 4.542 0 00-4.543-4.543zM20.05 9.61a.935.935 0 01-.932-.932V4.835h-4.543V9.61a4.542 4.542 0 004.543 4.544h4.777V9.612H20.05zM9.787 19.166v4.777h4.544v-3.845c0-.513.42-.932.932-.932h3.845V14.62H14.33a4.542 4.542 0 00-4.544 4.544z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'Ai2Mono';
|
||||
|
||||
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 49 24"
|
||||
width={size * 2.04} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M26.764 4.477H22.73V1.574h4.035v2.903zm-3.143 2.412h-2.427v3.049h2.116c.353 0 .643.292.643.647V23h3.195V10.355c0-2.244-1.442-3.466-3.516-3.466h-.01zm-9.76-5.315l7.904 21.416h-3.36l-2.096-5.691H6.425l-2.096 5.69H1L8.903 1.575h4.958zm1.463 13.063L11.372 3.924 7.42 14.637h7.904zm19.364 5.69l6.493-5.158c3.776-2.997 5.435-5.085 5.435-7.956C46.616 4.34 44.728 1 39.034 1s-9.148 4.657-9.148 8.938h3.454c0-3.863 1.701-6.202 5.694-6.202 3.994 0 4.128 1.722 4.128 3.508 0 1.785-.477 2.704-2.333 4.218l-10.88 8.855v2.673H47v-2.673H34.678l.01.01z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'Ai2Text';
|
||||
|
||||
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;
|
||||
colorGradient: string;
|
||||
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 = 'Ai2';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.9;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#f0529c';
|
||||
|
||||
// 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,19 @@
|
||||
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
|
||||
d="M13.236 2.377L2.751 20.493H0L11.863 0l1.373 2.377zm3.554 6.156l-9.606 11.96H4.13L15.511 6.32l1.279 2.212zm6.908 11.96H14.05l8.406-2.151 1.242 2.15zm-3.42-5.922l-7.843 5.92H8.482l10.597-7.997 1.2 2.077z"
|
||||
fill="#008C8C"
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'ArceeColor';
|
||||
|
||||
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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M13.236 2.377L2.751 20.493H0L11.863 0l1.373 2.377zm3.554 6.156l-9.606 11.96H4.13L15.511 6.32l1.279 2.212zm6.908 11.96H14.05l8.406-2.151 1.242 2.15zm-3.42-5.922l-7.843 5.92H8.482l10.597-7.997 1.2 2.077z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'ArceeMono';
|
||||
|
||||
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 82 24"
|
||||
width={size * 3.42} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M44.427 6.125c3.008 0 5.095 1.228 5.095 3.592 0 .98-.523 1.747-1.166 2.053h-2.333c.063-.49.121-.953.121-1.501 0-1.628-.521-2.976-2.239-2.976-2.333 0-3.681 2.64-3.681 6.046 0 4.018 1.84 6.626 4.94 6.626l-.003-.003c1.933 0 3.283-.769 4.298-2.27l.521.305C49.029 21.342 46.758 23 43.629 23c-4.114 0-7.15-3.07-7.15-7.885 0-5.124 3.1-8.99 7.949-8.99zm14.141-.007c4.204 0 6.26 2.729 6.26 6.414l.003.004v.705H54.827c-.122 4.297 2.087 6.842 5.094 6.842 2.086 0 3.466-.89 4.572-2.486l.49.275c-.796 3.039-3.038 5.124-6.567 5.124-4.45 0-7.428-3.282-7.428-8.01 0-5.245 3.377-8.868 7.58-8.868zm15.192 0c4.203 0 6.259 2.729 6.259 6.414l.004.004v.705H70.02c-.122 4.297 2.086 6.842 5.093 6.842 2.087 0 3.468-.89 4.573-2.486l.49.275c-.797 3.039-3.04 5.124-6.569 5.124-4.45 0-7.427-3.282-7.427-8.01 0-5.245 3.377-8.868 7.58-8.868zM21.224 20.481c.336.828.98 1.013 1.811 1.138v1.073h-9.391V21.62c1.811-.063 2.576-.369 2.576-1.35 0-.338-.091-.737-.275-1.196l-1.41-3.466v-.005H6.278L4.961 19.04c-.183.46-.274.858-.274 1.195 0 .98.768 1.318 2.638 1.381v1.075H1v-1.075c.86-.122 1.475-.305 1.813-1.136L9.502 3.3 8.55 1h4.788l7.886 19.481zM34.206 6.127c.642 0 1.106.216 1.349.521v3.314h-.585c-1.902 0-3.407.094-4.972 1.658v8.469l.003-.004c0 1.259.706 1.444 2.608 1.597v1.01h-8.776v-1.01c1.443-.093 1.933-.274 1.933-1.348V9.472l-1.843-1.074v-.584l5.494-1.686h.706l-.122 4.539c1.474-3.344 2.393-4.54 4.205-4.54zM6.77 14.283h7.243L10.33 5.047l-3.56 9.236zm51.496-7.026c-1.992 0-3.13 2.027-3.376 4.85h6.137c0-2.886-.77-4.85-2.761-4.85zm15.191 0c-1.992 0-3.129 2.027-3.376 4.85h6.137c0-2.886-.768-4.85-2.761-4.85z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'ArceeText';
|
||||
|
||||
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;
|
||||
colorGradient: string;
|
||||
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 = 'Arcee';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.95;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.25;
|
||||
export const COLOR_PRIMARY = '#008C8C';
|
||||
|
||||
// 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,19 @@
|
||||
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
|
||||
d="M19.74 21.618l4.213-10.534a.412.412 0 00.027-.1l.003-.03a.404.404 0 00-.02-.167l-.007-.026a.44.44 0 00-.045-.085l-.003-.005L16.528.13c-.002-.003 0-.006-.003-.01h.004v.173h-.01c-.102-.254-.277-.285-.445-.248l-.001-.003c-.001.001-.003-.003-.003-.003h-.006s0-.038-.002-.038L4.466 3.143c-.006.002-.012-.005-.018-.003-.022.007-.044.01-.064.021a.42.42 0 00-.039.022c-.013.008-.026.015-.037.025a.464.464 0 00-.118.154l-.01.017L0 13.919c-.004.013.023.026.023.04v.148c0 .019 0 .038.003.057l-.003.001v.006c0 .049-.011.096.016.139H.03c0 .002-.008.002-.008.002l-.01.001c.007.012.008.023.016.034l7.377 9.486v.005a.063.063 0 00.006.005c.006.008.013.013.02.02a.258.258 0 00.02.02c.008.008.015.017.023.023l.02.014a.564.564 0 00.104.053c.011.003.021.008.032.01.005.002.01.005.016.006a.445.445 0 00.172.004l11.597-2.108a.362.362 0 00.041-.01l.011.001h.001c.005 0 .01-.007.015-.009.01-.003.02-.008.03-.013a.248.248 0 00.025-.012l.01-.007a.448.448 0 00.096-.072c.004-.004.006-.01.01-.013a.419.419 0 00.069-.1l.005-.008.003-.006.001-.003.006-.015zm-.77-.894l-7.315-4.573 8.229-6.4-.915 10.973zm-7.82-5.27l-2.782-10.2 11.127 3.71-8.345 6.49zm9.611-5.883l2.267 1.512-3.022 7.554.755-9.066zm1.133-.278l-1.168-.778-1.556-3.113 2.724 3.891zm-2.35-1.22L8.862 4.514l7.122-3.56 3.56 7.12zM7.71 4.129L6.063 3.58 12.1 1.932 7.71 4.128zm-2.881-.053l2.201.734-5.137 6.605 2.936-7.34zm2.725 1.46l2.754 10.096-9.179-1.835 6.425-8.26zM10.3 16.508L7.633 22.73l-6.223-8 8.89 1.777zm.803.313l7.065 4.417-9.716 1.767 2.65-6.184z"
|
||||
fill="#4E81EE"
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'DeepCogitoColor';
|
||||
|
||||
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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M19.74 21.618l4.213-10.534a.412.412 0 00.027-.1l.003-.03a.404.404 0 00-.02-.167l-.007-.026a.44.44 0 00-.045-.085l-.003-.005L16.528.13c-.002-.003 0-.006-.003-.01h.004v.173h-.01c-.102-.254-.277-.285-.445-.248l-.001-.003c-.001.001-.003-.003-.003-.003h-.006s0-.038-.002-.038L4.466 3.143c-.006.002-.012-.005-.018-.003-.022.007-.044.01-.064.021a.42.42 0 00-.039.022c-.013.008-.026.015-.037.025a.464.464 0 00-.118.154l-.01.017L0 13.919c-.004.013.023.026.023.04v.148c0 .019 0 .038.003.057l-.003.001v.006c0 .049-.011.096.016.139H.03c0 .002-.008.002-.008.002l-.01.001c.007.012.008.023.016.034l7.377 9.486v.005a.063.063 0 00.006.005c.006.008.013.013.02.02a.258.258 0 00.02.02c.008.008.015.017.023.023l.02.014a.564.564 0 00.104.053c.011.003.021.008.032.01.005.002.01.005.016.006a.445.445 0 00.172.004l11.597-2.108a.362.362 0 00.041-.01l.011.001h.001c.005 0 .01-.007.015-.009.01-.003.02-.008.03-.013a.248.248 0 00.025-.012l.01-.007a.448.448 0 00.096-.072c.004-.004.006-.01.01-.013a.419.419 0 00.069-.1l.005-.008.003-.006.001-.003.006-.015zm-.77-.894l-7.315-4.573 8.229-6.4-.915 10.973zm-7.82-5.27l-2.782-10.2 11.127 3.71-8.345 6.49zm9.611-5.883l2.267 1.512-3.022 7.554.755-9.066zm1.133-.278l-1.168-.778-1.556-3.113 2.724 3.891zm-2.35-1.22L8.862 4.514l7.122-3.56 3.56 7.12zM7.71 4.129L6.063 3.58 12.1 1.932 7.71 4.128zm-2.881-.053l2.201.734-5.137 6.605 2.936-7.34zm2.725 1.46l2.754 10.096-9.179-1.835 6.425-8.26zM10.3 16.508L7.633 22.73l-6.223-8 8.89 1.777zm.803.313l7.065 4.417-9.716 1.767 2.65-6.184z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'DeepCogitoMono';
|
||||
|
||||
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="nonzero"
|
||||
height={size}
|
||||
style={style}
|
||||
viewBox="0 0 237 42"
|
||||
width={size * 5.64} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M48.132 20.707H29.694v-2.94h14.742q-.042-.882-.399-1.911t-1.134-1.932-1.974-1.47-2.961-.567q-2.1 0-3.633 1.071t-2.352 2.919-.819 4.2q0 2.73 1.05 4.536t2.709 2.688 3.465.882q2.352 0 3.885-1.113t2.457-2.751l3.024 1.47q-1.26 2.436-3.612 4.032t-5.88 1.596q-3.108 0-5.523-1.47t-3.78-4.032-1.365-5.838q0-3.066 1.281-5.67t3.612-4.179 5.481-1.575q3.192 0 5.481 1.407t3.528 3.885 1.239 5.67q0 .294-.021.588t-.063.504zm23.562 0H53.256v-2.94h14.742q-.042-.882-.399-1.911t-1.134-1.932-1.974-1.47-2.961-.567q-2.1 0-3.633 1.071t-2.352 2.919-.819 4.2q0 2.73 1.05 4.536t2.709 2.688 3.465.882q2.352 0 3.885-1.113t2.457-2.751l3.024 1.47q-1.26 2.436-3.612 4.032t-5.88 1.596q-3.108 0-5.523-1.47t-3.78-4.032-1.365-5.838q0-3.066 1.281-5.67t3.612-4.179 5.481-1.575q3.192 0 5.481 1.407t3.528 3.885 1.239 5.67q0 .294-.021.588t-.063.504zm64.932-15.792l-2.562 2.478q-1.134-1.386-2.415-2.268t-2.772-1.302-3.255-.42q-3.234 0-5.964 1.512t-4.368 4.263-1.638 6.531q0 3.738 1.638 6.51t4.368 4.284 5.964 1.512q2.94 0 5.229-1.218t4.053-3.276l2.604 2.52q-1.302 1.554-3.129 2.772t-4.032 1.911-4.725.693q-3.318 0-6.153-1.197t-4.956-3.318-3.297-4.998-1.176-6.195q0-3.36 1.176-6.216t3.297-4.977 4.956-3.318 6.153-1.197q2.31 0 4.305.588t3.675 1.68 3.024 2.646zm29.904 29.568l3.276-1.386q.672 1.764 2.289 2.961t3.969 1.197q3.36 0 5.166-1.953t1.806-5.439v-2.394h-.168q-1.008 1.554-2.898 2.625t-4.41 1.071q-2.772 0-5.061-1.428t-3.633-3.969-1.344-5.859 1.344-5.859 3.633-3.969 5.061-1.428q2.52 0 4.41 1.071t2.898 2.667h.168V9.325h3.402v20.58q0 3.57-1.365 5.922t-3.696 3.507-5.313 1.155q-2.73 0-4.683-.903t-3.15-2.289-1.701-2.814zm9.534-6.552q1.89 0 3.486-.945t2.541-2.751.945-4.326q0-2.604-.945-4.389t-2.541-2.709-3.486-.924-3.486.945-2.562 2.73-.966 4.347.966 4.347 2.562 2.73 3.486.945zM79.422 39.817h-3.57V9.325h3.402v3.192h.168q.588-1.008 1.659-1.89t2.499-1.428 3.15-.546q2.94 0 5.25 1.47t3.654 4.032 1.344 5.88-1.344 5.88-3.654 4.032-5.25 1.47q-2.562 0-4.494-1.176t-2.814-2.646h-.168l.168 2.94zm6.93-11.634q1.848 0 3.465-.987t2.604-2.835.987-4.326q0-2.52-.987-4.347t-2.604-2.814-3.465-.987-3.465.987-2.625 2.814-1.008 4.347 1.008 4.347 2.625 2.814 3.465.987zm-77.28 2.562H0V.673h9.072q4.704 0 8.106 1.911t5.25 5.313 1.848 7.812a16 16 0 01-1.848 7.791q-1.848 3.381-5.25 5.313t-8.106 1.932zM3.57 4.075v23.268h5.502q3.528 0 6.132-1.365t4.032-3.969 1.428-6.3-1.428-6.3-4.032-3.969-6.132-1.365zm148.008 27.342q-3.234 0-5.712-1.512t-3.885-4.095-1.407-5.775 1.407-5.775 3.885-4.095 5.712-1.512 5.712 1.533 3.885 4.116 1.407 5.733q0 3.192-1.407 5.775t-3.885 4.095-5.712 1.512zm0-3.234q1.932 0 3.633-.966t2.751-2.793 1.05-4.389-1.05-4.389-2.751-2.793-3.633-.966-3.654.966-2.772 2.793-1.05 4.389 1.05 4.389 2.772 2.793 3.654.966zm74.004 3.234q-3.234 0-5.712-1.512t-3.885-4.095-1.407-5.775 1.407-5.775 3.885-4.095 5.712-1.512 5.712 1.533 3.885 4.116 1.407 5.733q0 3.192-1.407 5.775t-3.885 4.095-5.712 1.512zm0-3.234q1.932 0 3.633-.966t2.751-2.793 1.05-4.389-1.05-4.389-2.751-2.793-3.633-.966-3.654.966-2.772 2.793-1.05 4.389 1.05 4.389 2.772 2.793 3.654.966zm-22.932-3.066V3.277h3.57v20.958q0 1.806.735 2.667t2.205.861q.672 0 1.26-.189t1.134-.525v3.486q-.672.252-1.386.399t-1.554.147q-2.688 0-4.326-1.617t-1.638-4.347zm-7.434 5.628h-3.57V9.325h3.57zm16.254-18.186h-5.46V9.325h5.46zm-18.06-7.182q-1.05 0-1.806-.756t-.756-1.806q0-1.092.756-1.827t1.806-.735q1.092 0 1.827.735t.735 1.827q0 1.05-.735 1.806t-1.827.756zm9.45 7.182h-3.99V9.325h3.99z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'DeepCogitoText';
|
||||
|
||||
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;
|
||||
colorGradient: string;
|
||||
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 = 'Deep Cogito';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.3;
|
||||
export const COLOR_PRIMARY = '#4e81ee';
|
||||
|
||||
// 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,36 @@
|
||||
import React, { memo } from 'react';
|
||||
import { Defs, Path, RadialGradient, Stop, Svg } from 'react-native-svg';
|
||||
|
||||
import type { RNIconProps } from '@/features';
|
||||
import { useFillId } from '@/hooks/useFillId';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon = memo<RNIconProps>(({ size = 24, style, ...rest }) => {
|
||||
const { fill, id } = useFillId(TITLE);
|
||||
return (
|
||||
<Svg height={size} style={style} viewBox="0 0 24 24" width={size} {...rest}>
|
||||
<Path
|
||||
d="M3.429 10.75c0 2.32.903 4.546 2.51 6.187A8.484 8.484 0 0012 19.5a8.484 8.484 0 006.06-2.563 8.843 8.843 0 002.511-6.187H24c0 3.249-1.264 6.365-3.515 8.662A11.877 11.877 0 0112 23c-3.183 0-6.235-1.29-8.485-3.588A12.38 12.38 0 010 10.75h3.429zm13.714 0a5.306 5.306 0 01-1.507 3.712A5.09 5.09 0 0112 16a5.09 5.09 0 01-3.637-1.538 5.306 5.306 0 01-1.506-3.712h10.286zM12 2c2.273 0 4.453.922 6.06 2.563a8.843 8.843 0 012.511 6.187h-3.428a5.306 5.306 0 00-1.507-3.712A5.09 5.09 0 0012 5.5a5.09 5.09 0 00-3.637 1.538 5.306 5.306 0 00-1.506 3.712H3.43c0-2.32.903-4.546 2.51-6.187A8.484 8.484 0 0112 2z"
|
||||
fill={fill}
|
||||
/>
|
||||
<Defs>
|
||||
<RadialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="matrix(21.6991 27.0254 -47.9838 40.1491 2.3 -4.025)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={id}
|
||||
r="1"
|
||||
>
|
||||
<Stop stopColor="#6A46AC" />
|
||||
<Stop offset="63%" stopColor="#31008C" />
|
||||
</RadialGradient>
|
||||
</Defs>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'EssentialAIColor';
|
||||
|
||||
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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M3.429 10.75c0 2.32.903 4.546 2.51 6.187A8.484 8.484 0 0012 19.5a8.484 8.484 0 006.06-2.563 8.843 8.843 0 002.511-6.187H24c0 3.249-1.264 6.365-3.515 8.662A11.877 11.877 0 0112 23c-3.183 0-6.235-1.29-8.485-3.588A12.38 12.38 0 010 10.75h3.429zm13.714 0a5.306 5.306 0 01-1.507 3.712A5.09 5.09 0 0112 16a5.09 5.09 0 01-3.637-1.538 5.306 5.306 0 01-1.506-3.712h10.286zM12 2c2.273 0 4.453.922 6.06 2.563a8.843 8.843 0 012.511 6.187h-3.428a5.306 5.306 0 00-1.507-3.712A5.09 5.09 0 0012 5.5a5.09 5.09 0 00-3.637 1.538 5.306 5.306 0 00-1.506 3.712H3.43c0-2.32.903-4.546 2.51-6.187A8.484 8.484 0 0112 2z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'EssentialAIMono';
|
||||
|
||||
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 139 24"
|
||||
width={size * 5.79} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M98.189 5.82c3.774 0 6.466 2.382 6.466 5.693v5.569c0 1.918.186 3.558.527 4.58h-3.063c-.217-.774-.341-1.702-.402-2.692-1.084 1.856-3.033 3.032-5.323 3.032-3.001 0-5.136-1.95-5.136-4.703 0-2.6 1.64-4.178 4.548-4.364l4.209-.247c1.205-.092 1.67-.495 1.671-1.422v-.063c-.001-1.67-1.548-3-3.498-3-2.257 0-3.464.99-3.68 2.907h-3.125c.216-3.217 2.877-5.29 6.806-5.29zm-73.894 0c3.743 0 6.22 1.887 6.56 4.98h-2.94c-.34-1.794-1.454-2.66-3.62-2.66-2.011 0-3.31.866-3.31 2.197 0 1.3.866 1.825 2.537 2.042l2.722.31c3.404.433 4.982 1.887 4.982 4.795 0 2.723-2.476 4.487-6.22 4.487-4.177 0-6.807-1.919-7.178-4.92h3.125c.31 1.825 1.61 2.63 4.023 2.63 2.01 0 3.341-.805 3.341-2.104 0-1.3-.898-2.01-2.692-2.227l-2.63-.31c-3.31-.464-5.013-1.795-5.013-4.517 0-2.878 2.415-4.704 6.313-4.704zm14.377 0c3.744 0 6.219 1.887 6.56 4.98h-2.94c-.34-1.794-1.454-2.66-3.62-2.66-2.011 0-3.31.866-3.31 2.197 0 1.3.866 1.825 2.536 2.042l2.723.31c3.404.433 4.981 1.887 4.981 4.795 0 2.723-2.475 4.487-6.218 4.487-4.177 0-6.808-1.919-7.179-4.92h3.125c.31 1.825 1.61 2.63 4.023 2.63 2.01 0 3.341-.805 3.341-2.104 0-1.3-.898-2.01-2.692-2.227l-2.63-.31c-3.31-.464-5.013-1.795-5.013-4.517 0-2.878 2.414-4.704 6.313-4.704zm-29.308.062c4.363 0 7.488 3.28 7.488 7.828v.959H5.125c.217 3.094 1.733 4.734 4.456 4.734 2.197 0 3.558-1.052 3.899-2.754h3.186c-.65 3.465-3.063 5.26-7.116 5.26-4.641 0-7.55-3.094-7.55-8.045 0-4.92 2.847-7.982 7.364-7.982zm44.577 0c4.363 0 7.489 3.28 7.489 7.828v.959H49.702c.217 3.094 1.733 4.734 4.456 4.734 2.197 0 3.558-1.052 3.899-2.754h3.186c-.65 3.465-3.063 5.26-7.116 5.26-4.641 0-7.55-3.094-7.55-8.045 0-4.92 2.847-7.982 7.364-7.982zm16.697-.094c3.31 0 5.724 2.135 5.724 6.064v9.81H73.36v-9.19c0-2.723-1.453-3.899-3.743-3.899-2.197 0-3.898 1.547-3.898 3.713v9.375h-2.971V6.191h2.97v2.382c1.145-1.794 3.094-2.785 4.92-2.785zm62.482 15.873h-3.219l-1.702-4.92h-8.105l-1.671 4.92h-3.248l7.27-20.111h3.435l7.24 20.111zm3.888 0h-3.002V1.55h3.002V21.66zM82.621 6.191h2.723v2.505H82.62v8.292c0 1.61.619 2.042 1.547 2.042h1.176v2.63h-1.516c-2.32 0-4.178-1.268-4.178-4.27V8.697h-2.722V6.19h2.722V2.168h2.971V6.19zm7.328 15.47h-3V6.188h3V21.66zm19.67-.002h-3.001V0h3.001v21.66zm-12.73-6.712c-1.7.124-2.568.836-2.568 2.135 0 1.454 1.208 2.383 3.064 2.383 2.444 0 4.3-1.826 4.301-4.3v-.496l-4.796.278zm24.07-.743h6.375l-3.218-9.282-3.157 9.282zM9.396 8.264c-2.445 0-3.9 1.361-4.24 4.208h8.478c-.248-2.568-1.887-4.208-4.238-4.208zm44.577 0c-2.444 0-3.9 1.361-4.24 4.208h8.478c-.248-2.568-1.887-4.208-4.238-4.208zm36.192-4.117h-3.434v-2.97h3.434v2.97z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'EssentialAIText';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,26 @@
|
||||
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_GRADIENT, COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorGradient: string;
|
||||
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.colorGradient = COLOR_GRADIENT;
|
||||
Icons.title = TITLE;
|
||||
export default Icons;
|
||||
@@ -0,0 +1,10 @@
|
||||
export const TITLE = 'Essential AI';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.75;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#111322';
|
||||
export const COLOR_GRADIENT = 'linear-gradient(135deg, #5E38A5, #31018C 63%)';
|
||||
|
||||
// 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,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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M14.767 1H7.884L1 7.883v6.884h6.884V7.883h6.883V1zM9.234 23h6.882L23 16.116V9.233h-6.884v6.883H9.234V23z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'InceptionMono';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,41 @@
|
||||
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 96 24"
|
||||
width={size * 4} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M50.024 7.374c1.58 0 2.891.56 3.893 1.689.993 1.12 1.476 2.533 1.476 4.203 0 1.67-.483 3.085-1.476 4.205-1.002 1.128-2.314 1.689-3.893 1.689v-.002c-1.164 0-2.142-.327-2.911-.983V24h-2.808V7.66h2.808v.698c.77-.657 1.748-.984 2.911-.984zm-.802 1.859c-.874 0-1.565.286-2.11.854v6.355c.558.573 1.25.859 2.11.859.948 0 1.69-.357 2.269-1.083.629-.84.95-1.87.91-2.918V13.247a4.603 4.603 0 00-.884-2.899l-.02-.025-.11-.133c-.563-.642-1.273-.957-2.165-.957z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M60.694 7.66h3.862v1.962h-3.862v6.643l-.003.023c-.029.29.054.579.23.81.291.177.629.262.97.244l.015-.001h.098c.672 0 1.226-.059 1.67-.17l.595-.148v1.642l-.363.09a13.015 13.015 0 01-3.157.405 3.399 3.399 0 01-1.838-.435l-.013-.007-.012-.009a2.044 2.044 0 01-.27-.21l-.015-.013-.014-.016a2.57 2.57 0 01-.67-1.634 5.94 5.94 0 01-.03-.618V9.622h-2.281V7.661h2.28V5.452l2.808-1.276V7.66zM25.668 7.373c.83.022 1.648.21 2.405.552l.008.003.006.004c.151.073.297.156.438.246.49.277.888.69 1.144 1.188l.103.224.007.015.005.018c.06.183.09.374.09.566 0 .378-.105.733-.356 1.016a1.255 1.255 0 01-.965.428c-.387 0-.74-.122-1.03-.376-.28-.246-.472-.589-.598-.983l-.004-.012-.002-.012c-.117-.44-.305-.76-.546-.986a1.654 1.654 0 00-1.057-.335H25.28a4.35 4.35 0 00-.178-.004c-.805 0-1.458.295-1.99.9a3.62 3.62 0 00-.803 2.207l-.001.011v.01c-.01.145-.015.289-.014.433v.354c.024.787.211 1.562.55 2.275.128.248.282.483.46.698l.125.143c.633.692 1.439 1.037 2.454 1.037h.015l.016.001a2.99 2.99 0 003.082-2.2l.004-.016.005-.015c.042-.122.08-.245.113-.37l.095-.353h1.514l-.122.577c-.294 1.387-.85 2.494-1.701 3.272-.855.782-1.964 1.191-3.286 1.26-.137.007-.276.01-.413.01-1.688 0-3.091-.547-4.159-1.666-1.06-1.111-1.58-2.52-1.58-4.186a5.848 5.848 0 011.256-3.839l.007-.008c.14-.169.289-.328.448-.479l.215-.195c1.091-.94 2.407-1.41 3.922-1.412l.355-.001z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M36.976 7.374c1.326 0 2.483.361 3.447 1.098l.191.153.009.007a5.438 5.438 0 011.805 3.439l.016.098.084.55h-8.336c.037 1.326.39 2.342 1.017 3.093.658.788 1.507 1.181 2.59 1.181h.018l.019.001a3.074 3.074 0 003.18-2.185l.003-.012.005-.011c.035-.098.066-.197.094-.297l.1-.347h1.488l-.1.562a5.837 5.837 0 01-1.474 2.952l-.01.009c-.127.129-.262.25-.404.364l-.01.009-.001-.001a5.54 5.54 0 01-3.408 1.12h.001a8.36 8.36 0 01-.2.003c-1.688 0-3.09-.548-4.158-1.667-1.06-1.111-1.58-2.52-1.58-4.186 0-1.75.556-3.2 1.697-4.301 1.117-1.079 2.43-1.632 3.917-1.632zm-.04 1.551c-.673 0-1.245.224-1.739.682-.38.353-.662.832-.834 1.459h4.958a3.429 3.429 0 00-.505-1.263 1.985 1.985 0 00-.211-.244l-.167-.148c-.4-.32-.893-.485-1.502-.486zM76.261 7.374c1.663 0 3.086.544 4.235 1.64 1.16 1.104 1.73 2.536 1.73 4.252 0 1.704-.571 3.132-1.729 4.242-1.15 1.103-2.572 1.652-4.236 1.652-1.663 0-3.086-.55-4.235-1.652-1.157-1.11-1.73-2.538-1.73-4.242 0-1.716.571-3.148 1.73-4.253 1.15-1.095 2.573-1.639 4.236-1.64zm-.122 1.633c-.774 0-1.43.288-1.993.894a3.466 3.466 0 00-.823 2.069l-.002.02a6.894 6.894 0 00-.032.68v.002c0 1.246.278 2.332.82 3.271l.113.187.009.013.007.014a2.627 2.627 0 001.75 1.316c.131.021.263.033.396.033.776 0 1.434-.288 1.997-.89a3.423 3.423 0 00.82-2.052v-.01l.001-.012c.022-.226.033-.453.033-.68 0-1.329-.316-2.481-.934-3.47l-.009-.013-.007-.013a2.654 2.654 0 00-1.69-1.315 2.301 2.301 0 00-.456-.044z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M5.136 18.914H2.328V7.66h2.808v11.253zM13.76 7.374c1.254 0 2.275.374 2.97 1.195.681.805.98 1.962.98 3.385v6.96h-2.807v-6.627a4.578 4.578 0 00-.287-1.754l-.055-.125a1.697 1.697 0 00-1.666-.951h-.04c-.65 0-1.17.221-1.595.663a2.645 2.645 0 00-.631 1.614l-.001.013-.001.012a5.998 5.998 0 00-.025.563v6.592H7.794V7.66h2.808v1.084c.08-.097.164-.191.252-.282l.014-.014c.067-.063.136-.123.207-.18.752-.602 1.656-.895 2.684-.895zM68.4 18.914h-2.808V7.66h2.807v11.253zM90.049 7.374c1.254 0 2.275.374 2.97 1.195.682.805.981 1.962.981 3.385v6.96h-2.808v-6.627a4.577 4.577 0 00-.287-1.754 1.697 1.697 0 00-1.722-1.076h-.039c-.649 0-1.17.221-1.595.663a2.644 2.644 0 00-.63 1.614l-.002.013v.012a5.998 5.998 0 00-.026.563v6.592h-2.808V7.66h2.808v1.084c.08-.097.164-.191.253-.282l.006-.007.008-.007c.067-.063.135-.123.207-.18.751-.602 1.656-.895 2.684-.895zM3.732 2c.476 0 .894.182 1.233.52.334.333.52.742.52 1.209 0 .475-.18.893-.52 1.231a1.707 1.707 0 01-1.057.511l-.176.009a1.68 1.68 0 01-1.212-.52A1.699 1.699 0 012 3.73c0-.467.186-.876.52-1.21A1.68 1.68 0 013.732 2zM66.995 2c.476 0 .894.181 1.233.52.334.333.52.742.52 1.209a1.7 1.7 0 01-.52 1.231c-.338.338-.757.52-1.233.52a1.68 1.68 0 01-1.212-.52 1.699 1.699 0 01-.52-1.231c0-.467.186-.876.52-1.21l.129-.117c.308-.26.674-.402 1.083-.402z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'InceptionText';
|
||||
|
||||
export default Icon;
|
||||
@@ -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 = 'Inception';
|
||||
export const COMBINE_TEXT_MULTIPLE = 1;
|
||||
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.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,19 @@
|
||||
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
|
||||
d="M7.941 2c.23 0 .452.073.638.21.186.136.325.328.397.55l.593 1.814c.073.221.212.413.397.55.186.136.409.21.638.21h2.791c.23 0 .452-.074.638-.21a1.11 1.11 0 00.397-.55l.594-1.815a1.11 1.11 0 01.397-.55c.185-.136.408-.209.637-.209h1.7c.23 0 .453.073.639.21.185.136.324.328.397.55l.652 1.994c.118.361.41.635.77.728l2.957.752c.236.06.446.199.596.394.15.195.23.436.231.684v9.376c0 .248-.081.488-.231.684a1.09 1.09 0 01-.595.394l-2.957.752a1.086 1.086 0 00-.477.263 1.114 1.114 0 00-.293.465l-.653 1.994a1.11 1.11 0 01-.396.55c-.186.136-.41.21-.638.21h-1.702c-.229 0-.452-.073-.637-.21a1.11 1.11 0 01-.397-.55l-.364-1.11a1.131 1.131 0 01.15-1.002 1.074 1.074 0 01.885-.462h2.85c.29 0 .567-.116.772-.325.204-.208.32-.49.32-.785V6.444c0-.294-.116-.577-.32-.785a1.08 1.08 0 00-.771-.326h-3.273c-.29 0-.567.117-.772.326-.204.208-.32.49-.32.785v7.778c0 .295-.114.578-.319.786a1.08 1.08 0 01-.771.325h-2.182a1.08 1.08 0 01-.771-.325 1.122 1.122 0 01-.32-.786V6.444c0-.294-.115-.577-.32-.785a1.081 1.081 0 00-.77-.326H5.454c-.29 0-.567.117-.772.326-.204.208-.32.49-.32.785v11.112c0 .294.116.577.32.785.205.209.482.326.772.326h2.85a1.075 1.075 0 01.885.461 1.122 1.122 0 01.15 1.001l-.364 1.112a1.11 1.11 0 01-.397.55c-.185.136-.408.209-.637.209H6.24c-.229 0-.452-.073-.638-.21a1.11 1.11 0 01-.397-.55l-.652-1.994a1.114 1.114 0 00-.294-.465 1.086 1.086 0 00-.477-.263l-2.956-.752a1.09 1.09 0 01-.595-.394A1.124 1.124 0 010 16.688V7.312c0-.248.081-.489.231-.684.15-.195.36-.334.595-.394l2.957-.753c.178-.045.342-.136.477-.263.134-.127.235-.287.293-.464l.653-1.995a1.11 1.11 0 01.397-.55C5.788 2.075 6.01 2 6.24 2h1.701z"
|
||||
fill="#99D52A"
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'MorphColor';
|
||||
|
||||
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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M7.941 2c.23 0 .452.073.638.21.186.136.325.328.397.55l.593 1.814c.073.221.212.413.397.55.186.136.409.21.638.21h2.791c.23 0 .452-.074.638-.21a1.11 1.11 0 00.397-.55l.594-1.815a1.11 1.11 0 01.397-.55c.185-.136.408-.209.637-.209h1.7c.23 0 .453.073.639.21.185.136.324.328.397.55l.652 1.994c.118.361.41.635.77.728l2.957.752c.236.06.446.199.596.394.15.195.23.436.231.684v9.376c0 .248-.081.488-.231.684a1.09 1.09 0 01-.595.394l-2.957.752a1.086 1.086 0 00-.477.263 1.114 1.114 0 00-.293.465l-.653 1.994a1.11 1.11 0 01-.396.55c-.186.136-.41.21-.638.21h-1.702c-.229 0-.452-.073-.637-.21a1.11 1.11 0 01-.397-.55l-.364-1.11a1.131 1.131 0 01.15-1.002 1.074 1.074 0 01.885-.462h2.85c.29 0 .567-.116.772-.325.204-.208.32-.49.32-.785V6.444c0-.294-.116-.577-.32-.785a1.08 1.08 0 00-.771-.326h-3.273c-.29 0-.567.117-.772.326-.204.208-.32.49-.32.785v7.778c0 .295-.114.578-.319.786a1.08 1.08 0 01-.771.325h-2.182a1.08 1.08 0 01-.771-.325 1.122 1.122 0 01-.32-.786V6.444c0-.294-.115-.577-.32-.785a1.081 1.081 0 00-.77-.326H5.454c-.29 0-.567.117-.772.326-.204.208-.32.49-.32.785v11.112c0 .294.116.577.32.785.205.209.482.326.772.326h2.85a1.075 1.075 0 01.885.461 1.122 1.122 0 01.15 1.001l-.364 1.112a1.11 1.11 0 01-.397.55c-.185.136-.408.209-.637.209H6.24c-.229 0-.452-.073-.638-.21a1.11 1.11 0 01-.397-.55l-.652-1.994a1.114 1.114 0 00-.294-.465 1.086 1.086 0 00-.477-.263l-2.956-.752a1.09 1.09 0 01-.595-.394A1.124 1.124 0 010 16.688V7.312c0-.248.081-.489.231-.684.15-.195.36-.334.595-.394l2.957-.753c.178-.045.342-.136.477-.263.134-.127.235-.287.293-.464l.653-1.995a1.11 1.11 0 01.397-.55C5.788 2.075 6.01 2 6.24 2h1.701z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'MorphMono';
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,32 @@
|
||||
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 75 24"
|
||||
width={size * 3.13} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
clipRule="evenodd"
|
||||
d="M53.311 6.71c1.059 0 2.022.248 2.884.746l.171.103a5.852 5.852 0 012.123 2.335c.51.99.764 2.103.764 3.336 0 1.233-.254 2.346-.764 3.335a5.852 5.852 0 01-2.123 2.336c-.906.566-1.925.848-3.055.848-.971 0-1.842-.211-2.605-.638a4.689 4.689 0 01-1.52-1.351v5.715a.52.52 0 01-.145.38.523.523 0 01-.381.145h-1.312a.523.523 0 01-.381-.144.52.52 0 01-.145-.38V7.465a.52.52 0 01.145-.381.523.523 0 01.381-.144h1.178c.143 0 .279.036.381.131.09.084.135.195.152.317l.005.053v.002l.07 1.238a4.841 4.841 0 011.6-1.359c.77-.409 1.63-.612 2.577-.612zm-.475 2.068c-.658.01-1.302.2-1.861.549-.575.366-1.023.883-1.343 1.556-.32.673-.482 1.455-.482 2.347 0 .837.142 1.576.424 2.22l.058.127.001.002c.29.635.755 1.174 1.341 1.553l.113.068c.57.328 1.22.495 1.881.483h.006a3.658 3.658 0 002.006-.551 3.653 3.653 0 001.341-1.553l.001-.002c.32-.673.482-1.454.482-2.347v-.003a5.412 5.412 0 00-.483-2.347 3.654 3.654 0 00-1.342-1.553l-.11-.066c-.548-.321-1.18-.483-1.898-.483h-.135zM26 6.71c1.192 0 2.27.282 3.227.847a5.985 5.985 0 012.148 2.154l.104.184a6.83 6.83 0 01.815 3.335l-.003.229c-.032 1.137-.301 2.174-.812 3.106a6.016 6.016 0 01-2.252 2.338c-.957.565-2.035.846-3.227.846-1.192 0-2.27-.28-3.228-.846a6.014 6.014 0 01-2.251-2.338l-.1-.188c-.446-.883-.683-1.857-.712-2.918l-.004-.229a6.833 6.833 0 01.815-3.334v-.001a6.01 6.01 0 012.252-2.338l.181-.103c.912-.496 1.929-.743 3.047-.743zm0 2.104c-.767 0-1.436.183-2.015.544-.58.363-1.031.873-1.355 1.538a5.27 5.27 0 00-.488 2.33v.004c0 .837.145 1.571.43 2.207l.058.126.001.002c.295.631.765 1.164 1.354 1.537l.11.065c.553.318 1.186.48 1.905.48.766 0 1.436-.184 2.015-.545.58-.363 1.031-.874 1.355-1.539a5.27 5.27 0 00.488-2.33v-.006a5.271 5.271 0 00-.49-2.333 3.643 3.643 0 00-1.353-1.536l-.11-.065c-.553-.318-1.187-.48-1.905-.48z"
|
||||
fill={color}
|
||||
/>
|
||||
<Path
|
||||
d="M4.238 2.484c.233 0 .418.105.542.297l.024.039.002.002.001.003 4.69 8.954 4.677-8.954a.631.631 0 01.233-.254c.1-.06.214-.087.336-.087h1.687c.146 0 .28.043.382.145a.52.52 0 01.145.38v15.985a.52.52 0 01-.145.381.523.523 0 01-.382.144h-1.384a.523.523 0 01-.381-.144.503.503 0 01-.143-.327l-.002-.053V6.634l-4.321 8.268-.003.006a.625.625 0 01-.566.335h-.34a.625.625 0 01-.565-.335l-.002-.003-.001-.003L4.4 6.646v12.348a.52.52 0 01-.144.381.523.523 0 01-.382.144H2.526a.523.523 0 01-.381-.144.52.52 0 01-.145-.38V3.008a.52.52 0 01.145-.38.523.523 0 01.381-.145h1.712zM43.572 6.71c.264 0 .499.017.703.05.136.02.26.075.346.178.087.102.12.232.12.37v1.336a.504.504 0 01-.151.336l-.006.005-.006.005a.487.487 0 01-.33.107.81.81 0 01-.09-.006 6.63 6.63 0 00-.817-.047h-.008a4.055 4.055 0 00-2.845.968 3.557 3.557 0 00-1.043 2.544v.01c-.007.12-.01.24-.01.361v4.562h3.056c.145 0 .28.042.382.144a.52.52 0 01.144.38v.981a.52.52 0 01-.144.381.522.522 0 01-.382.144h-8.197a.523.523 0 01-.381-.144.52.52 0 01-.145-.38v-.982a.52.52 0 01.145-.38.522.522 0 01.38-.144h2.778V8.97H34.44a.523.523 0 01-.382-.144.52.52 0 01-.145-.38v-.981a.52.52 0 01.145-.381.523.523 0 01.382-.144h4.335c.143 0 .279.036.38.131a.54.54 0 01.158.37v.002l.087 1.518a4.59 4.59 0 011.53-1.567l.002-.002c.77-.456 1.65-.682 2.64-.682zM63.755 2c.145 0 .28.042.381.144a.52.52 0 01.145.38v6.113a4.405 4.405 0 011.51-1.332l.002-.001a5.303 5.303 0 012.53-.593c.953 0 1.784.197 2.488.596l.13.078c.644.399 1.143.97 1.496 1.706.378.786.563 1.732.563 2.831v7.072a.52.52 0 01-.144.381.523.523 0 01-.382.144h-1.312a.523.523 0 01-.381-.144.52.52 0 01-.145-.38v-6.73a4.221 4.221 0 00-.516-2.226 2.523 2.523 0 00-.187-.264l-.07-.084c-.506-.571-1.219-.865-2.162-.865h-.003a3.45 3.45 0 00-1.792.457c-.52.314-.935.776-1.19 1.327l-.002.002c-.286.587-.433 1.3-.433 2.146v6.236a.52.52 0 01-.145.381.523.523 0 01-.381.144h-1.312a.523.523 0 01-.381-.144.52.52 0 01-.145-.38V2.524a.52.52 0 01.145-.38.523.523 0 01.381-.145h1.312z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'MorphText';
|
||||
|
||||
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;
|
||||
colorGradient: string;
|
||||
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 = 'Morph';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.25;
|
||||
export const COLOR_PRIMARY = '#000';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#99d52a';
|
||||
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,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,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 24 24"
|
||||
width={size}
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M23 23H1V1h22v22zM2.962 15.232c1.969.3 5.028.42 7.78-.171.904-.195 1.743-.46 2.49-.803-1.395-3.4-1.675-5.766-1.264-7.378.466-1.823 1.799-2.59 2.998-2.602h.01c.688 0 2.117.177 3.081 1.35 1.003 1.22 1.216 3.152.26 5.991-.504 1.493-1.437 2.616-2.594 3.456 1.323 2.993 2.11 4.498 2.588 5.284.223.367.372.564.467.679h2.26V2.962H2.962v12.27zm11.05.827c-.912.413-1.887.711-2.857.92-2.91.626-6.059.527-8.193.234v3.825h13.471c-.527-.92-1.287-2.424-2.421-4.98zm.97-9.82c-.323.005-.87.181-1.112 1.127-.25.975-.161 2.776 1.055 5.84.705-.598 1.233-1.329 1.531-2.213.868-2.576.455-3.67.086-4.119-.406-.494-1.09-.633-1.56-.634z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'RelaceMono';
|
||||
|
||||
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 100 24"
|
||||
width={size * 4.17} // 保持宽高比
|
||||
{...rest}
|
||||
>
|
||||
<Path
|
||||
d="M72.78 6.374c4.534 0 6.583 2.15 7.221 5.911l-3.393.639c-.47-2.015-1.41-3.36-3.896-3.36-2.586 0-4.198 1.647-4.198 5.106 0 3.19 1.477 5.138 4.299 5.139 2.552 0 3.426-1.578 3.896-3.493l3.325.806C79.396 20.783 77.18 23 72.847 23c-4.971 0-8.028-2.889-8.028-8.195 0-5.307 3.124-8.431 7.96-8.431zm-43.378 0c4.77 0 7.087 2.889 7.087 7.222 0 .604.001 1.31-.066 2.115H25.036c.269 2.855 1.713 4.3 4.4 4.3 2.52 0 3.392-1.21 3.829-2.721l3.09.873c-.739 2.855-2.72 4.803-6.953 4.803-4.836 0-7.96-2.821-7.96-8.094 0-5.34 3.023-8.498 7.96-8.498zm61.269 0c4.77 0 7.087 2.889 7.087 7.222 0 .604 0 1.31-.067 2.115H86.305c.268 2.855 1.713 4.3 4.4 4.3 2.519 0 3.393-1.21 3.83-2.721l3.089.873c-.739 2.855-2.721 4.803-6.953 4.803-4.836 0-7.96-2.821-7.96-8.094 0-5.34 3.023-8.498 7.96-8.498zm-35.796.033c4.568 0 6.517 2.15 6.517 6.08v10.077h-3.426v-3.762h-.37c-.806 2.552-2.62 4.097-5.407 4.097-2.822 0-4.804-1.343-4.804-4.433 0-2.821 1.713-4.87 5.71-4.87h4.703V12.52c0-2.05-.84-3.225-3.057-3.225-1.847 0-2.922.94-3.325 2.788l-3.426-.772c.605-2.99 2.855-4.905 6.885-4.905zM10.464 2.41c5.038 0 7.423 2.117 7.423 6.113 0 3.158-1.613 5.24-4.434 6.08l5.61 7.59v.37h-4.467L9.59 15.007H5.829v7.558H2V2.41h8.464zm33.34 20.154h-3.626V1h3.627v21.564zM53.7 15.98c-1.814 0-2.855.672-2.855 1.982 0 1.142.705 2.116 2.754 2.116 2.519 0 4.199-1.478 4.199-3.46v-.637H53.7zM29.302 9.162c-2.452 0-3.897 1.31-4.233 4.131h8.095c-.135-2.72-1.343-4.13-3.862-4.13zm61.268 0c-2.451 0-3.895 1.31-4.231 4.131h8.094c-.135-2.72-1.344-4.13-3.863-4.13zm-84.74 2.62h4.298c2.62 0 3.997-1.008 3.997-3.158 0-2.049-1.041-2.99-3.93-2.99H5.83v6.147z"
|
||||
fill={color}
|
||||
/>
|
||||
</Svg>
|
||||
);
|
||||
});
|
||||
|
||||
Icon.displayName = 'RelaceText';
|
||||
|
||||
export default Icon;
|
||||
@@ -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 = 'Relace';
|
||||
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.66;
|
||||
@@ -12,6 +12,7 @@ export {
|
||||
type CompoundedIcon as AdobeFireflyProps,
|
||||
} from './icons/AdobeFirefly';
|
||||
export { default as Agui, type CompoundedIcon as AguiProps } from './icons/Agui';
|
||||
export { default as Ai2, type CompoundedIcon as Ai2Props } from './icons/Ai2';
|
||||
export { default as Ai21, type CompoundedIcon as Ai21Props } from './icons/Ai21';
|
||||
export { default as Ai302, type CompoundedIcon as Ai302Props } from './icons/Ai302';
|
||||
export { default as Ai360, type CompoundedIcon as Ai360Props } from './icons/Ai360';
|
||||
@@ -30,6 +31,7 @@ export { default as AntGroup, type CompoundedIcon as AntGroupProps } from './ico
|
||||
export { default as Anthropic, type CompoundedIcon as AnthropicProps } from './icons/Anthropic';
|
||||
export { default as Anyscale, type CompoundedIcon as AnyscaleProps } from './icons/Anyscale';
|
||||
export { default as Apple, type CompoundedIcon as AppleProps } from './icons/Apple';
|
||||
export { default as Arcee, type CompoundedIcon as ArceeProps } from './icons/Arcee';
|
||||
export { default as AssemblyAI, type CompoundedIcon as AssemblyAIProps } from './icons/AssemblyAI';
|
||||
export { default as Automatic, type CompoundedIcon as AutomaticProps } from './icons/Automatic';
|
||||
export { default as Aws, type CompoundedIcon as AwsProps } from './icons/Aws';
|
||||
@@ -79,6 +81,7 @@ export { default as Cursor, type CompoundedIcon as CursorProps } from './icons/C
|
||||
export { default as Dalle, type CompoundedIcon as DalleProps } from './icons/Dalle';
|
||||
export { default as Dbrx, type CompoundedIcon as DbrxProps } from './icons/Dbrx';
|
||||
export { default as DeepAI, type CompoundedIcon as DeepAIProps } from './icons/DeepAI';
|
||||
export { default as DeepCogito, type CompoundedIcon as DeepCogitoProps } from './icons/DeepCogito';
|
||||
export { default as DeepInfra, type CompoundedIcon as DeepInfraProps } from './icons/DeepInfra';
|
||||
export { default as DeepL, type CompoundedIcon as DeepLProps } from './icons/DeepL';
|
||||
export { default as DeepMind, type CompoundedIcon as DeepMindProps } from './icons/DeepMind';
|
||||
@@ -94,6 +97,10 @@ export {
|
||||
} from './icons/DreamMachine';
|
||||
export { default as ElevenLabs, type CompoundedIcon as ElevenLabsProps } from './icons/ElevenLabs';
|
||||
export { default as ElevenX, type CompoundedIcon as ElevenXProps } from './icons/ElevenX';
|
||||
export {
|
||||
default as EssentialAI,
|
||||
type CompoundedIcon as EssentialAIProps,
|
||||
} from './icons/EssentialAI';
|
||||
export { default as Exa, type CompoundedIcon as ExaProps } from './icons/Exa';
|
||||
export { default as Fal, type CompoundedIcon as FalProps } from './icons/Fal';
|
||||
export { default as FastGPT, type CompoundedIcon as FastGPTProps } from './icons/FastGPT';
|
||||
@@ -150,6 +157,7 @@ export {
|
||||
default as IFlyTekCloud,
|
||||
type CompoundedIcon as IFlyTekCloudProps,
|
||||
} from './icons/IFlyTekCloud';
|
||||
export { default as Inception, type CompoundedIcon as InceptionProps } from './icons/Inception';
|
||||
export { default as Inference, type CompoundedIcon as InferenceProps } from './icons/Inference';
|
||||
export { default as Infermatic, type CompoundedIcon as InfermaticProps } from './icons/Infermatic';
|
||||
export {
|
||||
@@ -200,6 +208,7 @@ export { default as Mistral, type CompoundedIcon as MistralProps } from './icons
|
||||
export { default as ModelScope, type CompoundedIcon as ModelScopeProps } from './icons/ModelScope';
|
||||
export { default as Monica, type CompoundedIcon as MonicaProps } from './icons/Monica';
|
||||
export { default as Moonshot, type CompoundedIcon as MoonshotProps } from './icons/Moonshot';
|
||||
export { default as Morph, type CompoundedIcon as MorphProps } from './icons/Morph';
|
||||
export { default as MyShell, type CompoundedIcon as MyShellProps } from './icons/MyShell';
|
||||
export { default as N8n, type CompoundedIcon as N8nProps } from './icons/N8n';
|
||||
export { default as Nebius, type CompoundedIcon as NebiusProps } from './icons/Nebius';
|
||||
@@ -240,6 +249,7 @@ export { default as Qiniu, type CompoundedIcon as QiniuProps } from './icons/Qin
|
||||
export { default as Qwen, type CompoundedIcon as QwenProps } from './icons/Qwen';
|
||||
export { default as Railway, type CompoundedIcon as RailwayProps } from './icons/Railway';
|
||||
export { default as Recraft, type CompoundedIcon as RecraftProps } from './icons/Recraft';
|
||||
export { default as Relace, type CompoundedIcon as RelaceProps } from './icons/Relace';
|
||||
export { default as Replicate, type CompoundedIcon as ReplicateProps } from './icons/Replicate';
|
||||
export { default as Replit, type CompoundedIcon as ReplitProps } from './icons/Replit';
|
||||
export { default as RSSHub, type CompoundedIcon as RSSHubProps } from './icons/RSSHub';
|
||||
|
||||
@@ -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,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
|
||||
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="M9.553 9.378H4.777V4.835H8.62c.513 0 .932-.42.932-.932V.058h4.544v4.777a4.542 4.542 0 01-4.544 4.543zm-4.776.467H0v4.543h3.845c.512 0 .932.42.932.932v3.845H9.32v-4.777a4.542 4.542 0 00-4.543-4.543zM20.05 9.61a.935.935 0 01-.932-.932V4.835h-4.543V9.61a4.542 4.542 0 004.543 4.544h4.777V9.612H20.05zM9.787 19.166v4.777h4.544v-3.845c0-.513.42-.932.932-.932h3.845V14.62H14.33a4.542 4.542 0 00-4.544 4.544z"
|
||||
fill="#F0529C"
|
||||
/>
|
||||
</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,27 @@
|
||||
'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="M9.553 9.378H4.777V4.835H8.62c.513 0 .932-.42.932-.932V.058h4.544v4.777a4.542 4.542 0 01-4.544 4.543zm-4.776.467H0v4.543h3.845c.512 0 .932.42.932.932v3.845H9.32v-4.777a4.542 4.542 0 00-4.543-4.543zM20.05 9.61a.935.935 0 01-.932-.932V4.835h-4.543V9.61a4.542 4.542 0 004.543 4.544h4.777V9.612H20.05zM9.787 19.166v4.777h4.544v-3.845c0-.513.42-.932.932-.932h3.845V14.62H14.33a4.542 4.542 0 00-4.544 4.544z" />
|
||||
</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 49 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M26.764 4.477H22.73V1.574h4.035v2.903zm-3.143 2.412h-2.427v3.049h2.116c.353 0 .643.292.643.647V23h3.195V10.355c0-2.244-1.442-3.466-3.516-3.466h-.01zm-9.76-5.315l7.904 21.416h-3.36l-2.096-5.691H6.425l-2.096 5.69H1L8.903 1.575h4.958zm1.463 13.063L11.372 3.924 7.42 14.637h7.904zm19.364 5.69l6.493-5.158c3.776-2.997 5.435-5.085 5.435-7.956C46.616 4.34 44.728 1 39.034 1s-9.148 4.657-9.148 8.938h3.454c0-3.863 1.701-6.202 5.694-6.202 3.994 0 4.128 1.722 4.128 3.508 0 1.785-.477 2.704-2.333 4.218l-10.88 8.855v2.673H47v-2.673H34.678l.01.01z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Model
|
||||
title: Ai2
|
||||
atomId: Ai2
|
||||
description: https://allenai.org/
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { Ai2 } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Ai2 size={64} />
|
||||
<Ai2.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { Ai2 } from '@lobehub/icons';
|
||||
|
||||
export default () => <Ai2.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { Ai2 } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<Ai2.Combine size={64} />
|
||||
<Ai2.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { Ai2 } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Ai2.Avatar size={64} />
|
||||
<Ai2.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { Ai2 } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={Ai2.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;
|
||||
colorGradient: string;
|
||||
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 = 'Ai2';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.9;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#f0529c';
|
||||
|
||||
// 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,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
|
||||
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="M13.236 2.377L2.751 20.493H0L11.863 0l1.373 2.377zm3.554 6.156l-9.606 11.96H4.13L15.511 6.32l1.279 2.212zm6.908 11.96H14.05l8.406-2.151 1.242 2.15zm-3.42-5.922l-7.843 5.92H8.482l10.597-7.997 1.2 2.077z"
|
||||
fill="#008C8C"
|
||||
/>
|
||||
</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,27 @@
|
||||
'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="M13.236 2.377L2.751 20.493H0L11.863 0l1.373 2.377zm3.554 6.156l-9.606 11.96H4.13L15.511 6.32l1.279 2.212zm6.908 11.96H14.05l8.406-2.151 1.242 2.15zm-3.42-5.922l-7.843 5.92H8.482l10.597-7.997 1.2 2.077z" />
|
||||
</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 82 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M44.427 6.125c3.008 0 5.095 1.228 5.095 3.592 0 .98-.523 1.747-1.166 2.053h-2.333c.063-.49.121-.953.121-1.501 0-1.628-.521-2.976-2.239-2.976-2.333 0-3.681 2.64-3.681 6.046 0 4.018 1.84 6.626 4.94 6.626l-.003-.003c1.933 0 3.283-.769 4.298-2.27l.521.305C49.029 21.342 46.758 23 43.629 23c-4.114 0-7.15-3.07-7.15-7.885 0-5.124 3.1-8.99 7.949-8.99zm14.141-.007c4.204 0 6.26 2.729 6.26 6.414l.003.004v.705H54.827c-.122 4.297 2.087 6.842 5.094 6.842 2.086 0 3.466-.89 4.572-2.486l.49.275c-.796 3.039-3.038 5.124-6.567 5.124-4.45 0-7.428-3.282-7.428-8.01 0-5.245 3.377-8.868 7.58-8.868zm15.192 0c4.203 0 6.259 2.729 6.259 6.414l.004.004v.705H70.02c-.122 4.297 2.086 6.842 5.093 6.842 2.087 0 3.468-.89 4.573-2.486l.49.275c-.797 3.039-3.04 5.124-6.569 5.124-4.45 0-7.427-3.282-7.427-8.01 0-5.245 3.377-8.868 7.58-8.868zM21.224 20.481c.336.828.98 1.013 1.811 1.138v1.073h-9.391V21.62c1.811-.063 2.576-.369 2.576-1.35 0-.338-.091-.737-.275-1.196l-1.41-3.466v-.005H6.278L4.961 19.04c-.183.46-.274.858-.274 1.195 0 .98.768 1.318 2.638 1.381v1.075H1v-1.075c.86-.122 1.475-.305 1.813-1.136L9.502 3.3 8.55 1h4.788l7.886 19.481zM34.206 6.127c.642 0 1.106.216 1.349.521v3.314h-.585c-1.902 0-3.407.094-4.972 1.658v8.469l.003-.004c0 1.259.706 1.444 2.608 1.597v1.01h-8.776v-1.01c1.443-.093 1.933-.274 1.933-1.348V9.472l-1.843-1.074v-.584l5.494-1.686h.706l-.122 4.539c1.474-3.344 2.393-4.54 4.205-4.54zM6.77 14.283h7.243L10.33 5.047l-3.56 9.236zm51.496-7.026c-1.992 0-3.13 2.027-3.376 4.85h6.137c0-2.886-.77-4.85-2.761-4.85zm15.191 0c-1.992 0-3.129 2.027-3.376 4.85h6.137c0-2.886-.768-4.85-2.761-4.85z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Model
|
||||
title: Arcee
|
||||
atomId: Arcee
|
||||
description: https://arcee.ai/
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { Arcee } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Arcee size={64} />
|
||||
<Arcee.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { Arcee } from '@lobehub/icons';
|
||||
|
||||
export default () => <Arcee.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { Arcee } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<Arcee.Combine size={64} />
|
||||
<Arcee.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { Arcee } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Arcee.Avatar size={64} />
|
||||
<Arcee.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { Arcee } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={Arcee.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;
|
||||
colorGradient: string;
|
||||
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 = 'Arcee';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.95;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.25;
|
||||
export const COLOR_PRIMARY = '#008C8C';
|
||||
|
||||
// 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,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
|
||||
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="M19.74 21.618l4.213-10.534a.412.412 0 00.027-.1l.003-.03a.404.404 0 00-.02-.167l-.007-.026a.44.44 0 00-.045-.085l-.003-.005L16.528.13c-.002-.003 0-.006-.003-.01h.004v.173h-.01c-.102-.254-.277-.285-.445-.248l-.001-.003c-.001.001-.003-.003-.003-.003h-.006s0-.038-.002-.038L4.466 3.143c-.006.002-.012-.005-.018-.003-.022.007-.044.01-.064.021a.42.42 0 00-.039.022c-.013.008-.026.015-.037.025a.464.464 0 00-.118.154l-.01.017L0 13.919c-.004.013.023.026.023.04v.148c0 .019 0 .038.003.057l-.003.001v.006c0 .049-.011.096.016.139H.03c0 .002-.008.002-.008.002l-.01.001c.007.012.008.023.016.034l7.377 9.486v.005a.063.063 0 00.006.005c.006.008.013.013.02.02a.258.258 0 00.02.02c.008.008.015.017.023.023l.02.014a.564.564 0 00.104.053c.011.003.021.008.032.01.005.002.01.005.016.006a.445.445 0 00.172.004l11.597-2.108a.362.362 0 00.041-.01l.011.001h.001c.005 0 .01-.007.015-.009.01-.003.02-.008.03-.013a.248.248 0 00.025-.012l.01-.007a.448.448 0 00.096-.072c.004-.004.006-.01.01-.013a.419.419 0 00.069-.1l.005-.008.003-.006.001-.003.006-.015zm-.77-.894l-7.315-4.573 8.229-6.4-.915 10.973zm-7.82-5.27l-2.782-10.2 11.127 3.71-8.345 6.49zm9.611-5.883l2.267 1.512-3.022 7.554.755-9.066zm1.133-.278l-1.168-.778-1.556-3.113 2.724 3.891zm-2.35-1.22L8.862 4.514l7.122-3.56 3.56 7.12zM7.71 4.129L6.063 3.58 12.1 1.932 7.71 4.128zm-2.881-.053l2.201.734-5.137 6.605 2.936-7.34zm2.725 1.46l2.754 10.096-9.179-1.835 6.425-8.26zM10.3 16.508L7.633 22.73l-6.223-8 8.89 1.777zm.803.313l7.065 4.417-9.716 1.767 2.65-6.184z"
|
||||
fill="#4E81EE"
|
||||
/>
|
||||
</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,27 @@
|
||||
'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="M19.74 21.618l4.213-10.534a.412.412 0 00.027-.1l.003-.03a.404.404 0 00-.02-.167l-.007-.026a.44.44 0 00-.045-.085l-.003-.005L16.528.13c-.002-.003 0-.006-.003-.01h.004v.173h-.01c-.102-.254-.277-.285-.445-.248l-.001-.003c-.001.001-.003-.003-.003-.003h-.006s0-.038-.002-.038L4.466 3.143c-.006.002-.012-.005-.018-.003-.022.007-.044.01-.064.021a.42.42 0 00-.039.022c-.013.008-.026.015-.037.025a.464.464 0 00-.118.154l-.01.017L0 13.919c-.004.013.023.026.023.04v.148c0 .019 0 .038.003.057l-.003.001v.006c0 .049-.011.096.016.139H.03c0 .002-.008.002-.008.002l-.01.001c.007.012.008.023.016.034l7.377 9.486v.005a.063.063 0 00.006.005c.006.008.013.013.02.02a.258.258 0 00.02.02c.008.008.015.017.023.023l.02.014a.564.564 0 00.104.053c.011.003.021.008.032.01.005.002.01.005.016.006a.445.445 0 00.172.004l11.597-2.108a.362.362 0 00.041-.01l.011.001h.001c.005 0 .01-.007.015-.009.01-.003.02-.008.03-.013a.248.248 0 00.025-.012l.01-.007a.448.448 0 00.096-.072c.004-.004.006-.01.01-.013a.419.419 0 00.069-.1l.005-.008.003-.006.001-.003.006-.015zm-.77-.894l-7.315-4.573 8.229-6.4-.915 10.973zm-7.82-5.27l-2.782-10.2 11.127 3.71-8.345 6.49zm9.611-5.883l2.267 1.512-3.022 7.554.755-9.066zm1.133-.278l-1.168-.778-1.556-3.113 2.724 3.891zm-2.35-1.22L8.862 4.514l7.122-3.56 3.56 7.12zM7.71 4.129L6.063 3.58 12.1 1.932 7.71 4.128zm-2.881-.053l2.201.734-5.137 6.605 2.936-7.34zm2.725 1.46l2.754 10.096-9.179-1.835 6.425-8.26zM10.3 16.508L7.633 22.73l-6.223-8 8.89 1.777zm.803.313l7.065 4.417-9.716 1.767 2.65-6.184z" />
|
||||
</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="nonzero"
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 237 42"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M48.132 20.707H29.694v-2.94h14.742q-.042-.882-.399-1.911t-1.134-1.932-1.974-1.47-2.961-.567q-2.1 0-3.633 1.071t-2.352 2.919-.819 4.2q0 2.73 1.05 4.536t2.709 2.688 3.465.882q2.352 0 3.885-1.113t2.457-2.751l3.024 1.47q-1.26 2.436-3.612 4.032t-5.88 1.596q-3.108 0-5.523-1.47t-3.78-4.032-1.365-5.838q0-3.066 1.281-5.67t3.612-4.179 5.481-1.575q3.192 0 5.481 1.407t3.528 3.885 1.239 5.67q0 .294-.021.588t-.063.504zm23.562 0H53.256v-2.94h14.742q-.042-.882-.399-1.911t-1.134-1.932-1.974-1.47-2.961-.567q-2.1 0-3.633 1.071t-2.352 2.919-.819 4.2q0 2.73 1.05 4.536t2.709 2.688 3.465.882q2.352 0 3.885-1.113t2.457-2.751l3.024 1.47q-1.26 2.436-3.612 4.032t-5.88 1.596q-3.108 0-5.523-1.47t-3.78-4.032-1.365-5.838q0-3.066 1.281-5.67t3.612-4.179 5.481-1.575q3.192 0 5.481 1.407t3.528 3.885 1.239 5.67q0 .294-.021.588t-.063.504zm64.932-15.792l-2.562 2.478q-1.134-1.386-2.415-2.268t-2.772-1.302-3.255-.42q-3.234 0-5.964 1.512t-4.368 4.263-1.638 6.531q0 3.738 1.638 6.51t4.368 4.284 5.964 1.512q2.94 0 5.229-1.218t4.053-3.276l2.604 2.52q-1.302 1.554-3.129 2.772t-4.032 1.911-4.725.693q-3.318 0-6.153-1.197t-4.956-3.318-3.297-4.998-1.176-6.195q0-3.36 1.176-6.216t3.297-4.977 4.956-3.318 6.153-1.197q2.31 0 4.305.588t3.675 1.68 3.024 2.646zm29.904 29.568l3.276-1.386q.672 1.764 2.289 2.961t3.969 1.197q3.36 0 5.166-1.953t1.806-5.439v-2.394h-.168q-1.008 1.554-2.898 2.625t-4.41 1.071q-2.772 0-5.061-1.428t-3.633-3.969-1.344-5.859 1.344-5.859 3.633-3.969 5.061-1.428q2.52 0 4.41 1.071t2.898 2.667h.168V9.325h3.402v20.58q0 3.57-1.365 5.922t-3.696 3.507-5.313 1.155q-2.73 0-4.683-.903t-3.15-2.289-1.701-2.814zm9.534-6.552q1.89 0 3.486-.945t2.541-2.751.945-4.326q0-2.604-.945-4.389t-2.541-2.709-3.486-.924-3.486.945-2.562 2.73-.966 4.347.966 4.347 2.562 2.73 3.486.945zM79.422 39.817h-3.57V9.325h3.402v3.192h.168q.588-1.008 1.659-1.89t2.499-1.428 3.15-.546q2.94 0 5.25 1.47t3.654 4.032 1.344 5.88-1.344 5.88-3.654 4.032-5.25 1.47q-2.562 0-4.494-1.176t-2.814-2.646h-.168l.168 2.94zm6.93-11.634q1.848 0 3.465-.987t2.604-2.835.987-4.326q0-2.52-.987-4.347t-2.604-2.814-3.465-.987-3.465.987-2.625 2.814-1.008 4.347 1.008 4.347 2.625 2.814 3.465.987zm-77.28 2.562H0V.673h9.072q4.704 0 8.106 1.911t5.25 5.313 1.848 7.812a16 16 0 01-1.848 7.791q-1.848 3.381-5.25 5.313t-8.106 1.932zM3.57 4.075v23.268h5.502q3.528 0 6.132-1.365t4.032-3.969 1.428-6.3-1.428-6.3-4.032-3.969-6.132-1.365zm148.008 27.342q-3.234 0-5.712-1.512t-3.885-4.095-1.407-5.775 1.407-5.775 3.885-4.095 5.712-1.512 5.712 1.533 3.885 4.116 1.407 5.733q0 3.192-1.407 5.775t-3.885 4.095-5.712 1.512zm0-3.234q1.932 0 3.633-.966t2.751-2.793 1.05-4.389-1.05-4.389-2.751-2.793-3.633-.966-3.654.966-2.772 2.793-1.05 4.389 1.05 4.389 2.772 2.793 3.654.966zm74.004 3.234q-3.234 0-5.712-1.512t-3.885-4.095-1.407-5.775 1.407-5.775 3.885-4.095 5.712-1.512 5.712 1.533 3.885 4.116 1.407 5.733q0 3.192-1.407 5.775t-3.885 4.095-5.712 1.512zm0-3.234q1.932 0 3.633-.966t2.751-2.793 1.05-4.389-1.05-4.389-2.751-2.793-3.633-.966-3.654.966-2.772 2.793-1.05 4.389 1.05 4.389 2.772 2.793 3.654.966zm-22.932-3.066V3.277h3.57v20.958q0 1.806.735 2.667t2.205.861q.672 0 1.26-.189t1.134-.525v3.486q-.672.252-1.386.399t-1.554.147q-2.688 0-4.326-1.617t-1.638-4.347zm-7.434 5.628h-3.57V9.325h3.57zm16.254-18.186h-5.46V9.325h5.46zm-18.06-7.182q-1.05 0-1.806-.756t-.756-1.806q0-1.092.756-1.827t1.806-.735q1.092 0 1.827.735t.735 1.827q0 1.05-.735 1.806t-1.827.756zm9.45 7.182h-3.99V9.325h3.99z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Model
|
||||
title: Deep Cogito
|
||||
atomId: DeepCogito
|
||||
description: https://deepcogito.com
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { DeepCogito } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<DeepCogito size={64} />
|
||||
<DeepCogito.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { DeepCogito } from '@lobehub/icons';
|
||||
|
||||
export default () => <DeepCogito.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { DeepCogito } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<DeepCogito.Combine size={64} />
|
||||
<DeepCogito.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { DeepCogito } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<DeepCogito.Avatar size={64} />
|
||||
<DeepCogito.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { DeepCogito } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={DeepCogito.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;
|
||||
colorGradient: string;
|
||||
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 = 'Deep Cogito';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.85;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.3;
|
||||
export const COLOR_PRIMARY = '#4e81ee';
|
||||
|
||||
// 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,43 @@
|
||||
'use client';
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import { useFillId } from '@/hooks/useFillId';
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
const { fill, id } = useFillId(TITLE);
|
||||
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
|
||||
d="M3.429 10.75c0 2.32.903 4.546 2.51 6.187A8.484 8.484 0 0012 19.5a8.484 8.484 0 006.06-2.563 8.843 8.843 0 002.511-6.187H24c0 3.249-1.264 6.365-3.515 8.662A11.877 11.877 0 0112 23c-3.183 0-6.235-1.29-8.485-3.588A12.38 12.38 0 010 10.75h3.429zm13.714 0a5.306 5.306 0 01-1.507 3.712A5.09 5.09 0 0112 16a5.09 5.09 0 01-3.637-1.538 5.306 5.306 0 01-1.506-3.712h10.286zM12 2c2.273 0 4.453.922 6.06 2.563a8.843 8.843 0 012.511 6.187h-3.428a5.306 5.306 0 00-1.507-3.712A5.09 5.09 0 0012 5.5a5.09 5.09 0 00-3.637 1.538 5.306 5.306 0 00-1.506 3.712H3.43c0-2.32.903-4.546 2.51-6.187A8.484 8.484 0 0112 2z"
|
||||
fill={fill}
|
||||
/>
|
||||
<defs>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="matrix(21.6991 27.0254 -47.9838 40.1491 2.3 -4.025)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={id}
|
||||
r="1"
|
||||
>
|
||||
<stop stopColor="#6A46AC" />
|
||||
<stop offset=".63" stopColor="#31008C" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</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,27 @@
|
||||
'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.429 10.75c0 2.32.903 4.546 2.51 6.187A8.484 8.484 0 0012 19.5a8.484 8.484 0 006.06-2.563 8.843 8.843 0 002.511-6.187H24c0 3.249-1.264 6.365-3.515 8.662A11.877 11.877 0 0112 23c-3.183 0-6.235-1.29-8.485-3.588A12.38 12.38 0 010 10.75h3.429zm13.714 0a5.306 5.306 0 01-1.507 3.712A5.09 5.09 0 0112 16a5.09 5.09 0 01-3.637-1.538 5.306 5.306 0 01-1.506-3.712h10.286zM12 2c2.273 0 4.453.922 6.06 2.563a8.843 8.843 0 012.511 6.187h-3.428a5.306 5.306 0 00-1.507-3.712A5.09 5.09 0 0012 5.5a5.09 5.09 0 00-3.637 1.538 5.306 5.306 0 00-1.506 3.712H3.43c0-2.32.903-4.546 2.51-6.187A8.484 8.484 0 0112 2z" />
|
||||
</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 139 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path d="M98.189 5.82c3.774 0 6.466 2.382 6.466 5.693v5.569c0 1.918.186 3.558.527 4.58h-3.063c-.217-.774-.341-1.702-.402-2.692-1.084 1.856-3.033 3.032-5.323 3.032-3.001 0-5.136-1.95-5.136-4.703 0-2.6 1.64-4.178 4.548-4.364l4.209-.247c1.205-.092 1.67-.495 1.671-1.422v-.063c-.001-1.67-1.548-3-3.498-3-2.257 0-3.464.99-3.68 2.907h-3.125c.216-3.217 2.877-5.29 6.806-5.29zm-73.894 0c3.743 0 6.22 1.887 6.56 4.98h-2.94c-.34-1.794-1.454-2.66-3.62-2.66-2.011 0-3.31.866-3.31 2.197 0 1.3.866 1.825 2.537 2.042l2.722.31c3.404.433 4.982 1.887 4.982 4.795 0 2.723-2.476 4.487-6.22 4.487-4.177 0-6.807-1.919-7.178-4.92h3.125c.31 1.825 1.61 2.63 4.023 2.63 2.01 0 3.341-.805 3.341-2.104 0-1.3-.898-2.01-2.692-2.227l-2.63-.31c-3.31-.464-5.013-1.795-5.013-4.517 0-2.878 2.415-4.704 6.313-4.704zm14.377 0c3.744 0 6.219 1.887 6.56 4.98h-2.94c-.34-1.794-1.454-2.66-3.62-2.66-2.011 0-3.31.866-3.31 2.197 0 1.3.866 1.825 2.536 2.042l2.723.31c3.404.433 4.981 1.887 4.981 4.795 0 2.723-2.475 4.487-6.218 4.487-4.177 0-6.808-1.919-7.179-4.92h3.125c.31 1.825 1.61 2.63 4.023 2.63 2.01 0 3.341-.805 3.341-2.104 0-1.3-.898-2.01-2.692-2.227l-2.63-.31c-3.31-.464-5.013-1.795-5.013-4.517 0-2.878 2.414-4.704 6.313-4.704zm-29.308.062c4.363 0 7.488 3.28 7.488 7.828v.959H5.125c.217 3.094 1.733 4.734 4.456 4.734 2.197 0 3.558-1.052 3.899-2.754h3.186c-.65 3.465-3.063 5.26-7.116 5.26-4.641 0-7.55-3.094-7.55-8.045 0-4.92 2.847-7.982 7.364-7.982zm44.577 0c4.363 0 7.489 3.28 7.489 7.828v.959H49.702c.217 3.094 1.733 4.734 4.456 4.734 2.197 0 3.558-1.052 3.899-2.754h3.186c-.65 3.465-3.063 5.26-7.116 5.26-4.641 0-7.55-3.094-7.55-8.045 0-4.92 2.847-7.982 7.364-7.982zm16.697-.094c3.31 0 5.724 2.135 5.724 6.064v9.81H73.36v-9.19c0-2.723-1.453-3.899-3.743-3.899-2.197 0-3.898 1.547-3.898 3.713v9.375h-2.971V6.191h2.97v2.382c1.145-1.794 3.094-2.785 4.92-2.785zm62.482 15.873h-3.219l-1.702-4.92h-8.105l-1.671 4.92h-3.248l7.27-20.111h3.435l7.24 20.111zm3.888 0h-3.002V1.55h3.002V21.66zM82.621 6.191h2.723v2.505H82.62v8.292c0 1.61.619 2.042 1.547 2.042h1.176v2.63h-1.516c-2.32 0-4.178-1.268-4.178-4.27V8.697h-2.722V6.19h2.722V2.168h2.971V6.19zm7.328 15.47h-3V6.188h3V21.66zm19.67-.002h-3.001V0h3.001v21.66zm-12.73-6.712c-1.7.124-2.568.836-2.568 2.135 0 1.454 1.208 2.383 3.064 2.383 2.444 0 4.3-1.826 4.301-4.3v-.496l-4.796.278zm24.07-.743h6.375l-3.218-9.282-3.157 9.282zM9.396 8.264c-2.445 0-3.9 1.361-4.24 4.208h8.478c-.248-2.568-1.887-4.208-4.238-4.208zm44.577 0c-2.444 0-3.9 1.361-4.24 4.208h8.478c-.248-2.568-1.887-4.208-4.238-4.208zm36.192-4.117h-3.434v-2.97h3.434v2.97z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,74 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Model
|
||||
title: Essential AI
|
||||
atomId: EssentialAI
|
||||
description: https://essential.ai
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { EssentialAI } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<EssentialAI size={64} />
|
||||
<EssentialAI.Color size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { EssentialAI } from '@lobehub/icons';
|
||||
|
||||
export default () => <EssentialAI.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { EssentialAI } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<EssentialAI.Combine size={64} />
|
||||
<EssentialAI.Combine size={64} type={'color'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { EssentialAI } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<EssentialAI.Avatar size={64} background={EssentialAI.colorPrimary} />
|
||||
<EssentialAI.Avatar size={64} />
|
||||
<EssentialAI.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { EssentialAI } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={EssentialAI.colorPrimary} />
|
||||
<ColorPreview color={EssentialAI.colorGradient} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,26 @@
|
||||
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_GRADIENT, COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Text: typeof Text;
|
||||
colorGradient: string;
|
||||
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.colorGradient = COLOR_GRADIENT;
|
||||
Icons.title = TITLE;
|
||||
export default Icons;
|
||||
@@ -0,0 +1,10 @@
|
||||
export const TITLE = 'Essential AI';
|
||||
export const COMBINE_TEXT_MULTIPLE = 0.75;
|
||||
export const COMBINE_SPACE_MULTIPLE = 0.2;
|
||||
export const COLOR_PRIMARY = '#111322';
|
||||
export const COLOR_GRADIENT = 'linear-gradient(135deg, #5E38A5, #31018C 63%)';
|
||||
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_GRADIENT;
|
||||
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,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,27 @@
|
||||
'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="M14.767 1H7.884L1 7.883v6.884h6.884V7.883h6.883V1zM9.234 23h6.882L23 16.116V9.233h-6.884v6.883H9.234V23z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,35 @@
|
||||
'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 96 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M50.024 7.374c1.58 0 2.891.56 3.893 1.689.993 1.12 1.476 2.533 1.476 4.203 0 1.67-.483 3.085-1.476 4.205-1.002 1.128-2.314 1.689-3.893 1.689v-.002c-1.164 0-2.142-.327-2.911-.983V24h-2.808V7.66h2.808v.698c.77-.657 1.748-.984 2.911-.984zm-.802 1.859c-.874 0-1.565.286-2.11.854v6.355c.558.573 1.25.859 2.11.859.948 0 1.69-.357 2.269-1.083.629-.84.95-1.87.91-2.918V13.247a4.603 4.603 0 00-.884-2.899l-.02-.025-.11-.133c-.563-.642-1.273-.957-2.165-.957z"
|
||||
/>
|
||||
<path d="M60.694 7.66h3.862v1.962h-3.862v6.643l-.003.023c-.029.29.054.579.23.81.291.177.629.262.97.244l.015-.001h.098c.672 0 1.226-.059 1.67-.17l.595-.148v1.642l-.363.09a13.015 13.015 0 01-3.157.405 3.399 3.399 0 01-1.838-.435l-.013-.007-.012-.009a2.044 2.044 0 01-.27-.21l-.015-.013-.014-.016a2.57 2.57 0 01-.67-1.634 5.94 5.94 0 01-.03-.618V9.622h-2.281V7.661h2.28V5.452l2.808-1.276V7.66zM25.668 7.373c.83.022 1.648.21 2.405.552l.008.003.006.004c.151.073.297.156.438.246.49.277.888.69 1.144 1.188l.103.224.007.015.005.018c.06.183.09.374.09.566 0 .378-.105.733-.356 1.016a1.255 1.255 0 01-.965.428c-.387 0-.74-.122-1.03-.376-.28-.246-.472-.589-.598-.983l-.004-.012-.002-.012c-.117-.44-.305-.76-.546-.986a1.654 1.654 0 00-1.057-.335H25.28a4.35 4.35 0 00-.178-.004c-.805 0-1.458.295-1.99.9a3.62 3.62 0 00-.803 2.207l-.001.011v.01c-.01.145-.015.289-.014.433v.354c.024.787.211 1.562.55 2.275.128.248.282.483.46.698l.125.143c.633.692 1.439 1.037 2.454 1.037h.015l.016.001a2.99 2.99 0 003.082-2.2l.004-.016.005-.015c.042-.122.08-.245.113-.37l.095-.353h1.514l-.122.577c-.294 1.387-.85 2.494-1.701 3.272-.855.782-1.964 1.191-3.286 1.26-.137.007-.276.01-.413.01-1.688 0-3.091-.547-4.159-1.666-1.06-1.111-1.58-2.52-1.58-4.186a5.848 5.848 0 011.256-3.839l.007-.008c.14-.169.289-.328.448-.479l.215-.195c1.091-.94 2.407-1.41 3.922-1.412l.355-.001z" />
|
||||
<path
|
||||
clipRule="evenodd"
|
||||
d="M36.976 7.374c1.326 0 2.483.361 3.447 1.098l.191.153.009.007a5.438 5.438 0 011.805 3.439l.016.098.084.55h-8.336c.037 1.326.39 2.342 1.017 3.093.658.788 1.507 1.181 2.59 1.181h.018l.019.001a3.074 3.074 0 003.18-2.185l.003-.012.005-.011c.035-.098.066-.197.094-.297l.1-.347h1.488l-.1.562a5.837 5.837 0 01-1.474 2.952l-.01.009c-.127.129-.262.25-.404.364l-.01.009-.001-.001a5.54 5.54 0 01-3.408 1.12h.001a8.36 8.36 0 01-.2.003c-1.688 0-3.09-.548-4.158-1.667-1.06-1.111-1.58-2.52-1.58-4.186 0-1.75.556-3.2 1.697-4.301 1.117-1.079 2.43-1.632 3.917-1.632zm-.04 1.551c-.673 0-1.245.224-1.739.682-.38.353-.662.832-.834 1.459h4.958a3.429 3.429 0 00-.505-1.263 1.985 1.985 0 00-.211-.244l-.167-.148c-.4-.32-.893-.485-1.502-.486zM76.261 7.374c1.663 0 3.086.544 4.235 1.64 1.16 1.104 1.73 2.536 1.73 4.252 0 1.704-.571 3.132-1.729 4.242-1.15 1.103-2.572 1.652-4.236 1.652-1.663 0-3.086-.55-4.235-1.652-1.157-1.11-1.73-2.538-1.73-4.242 0-1.716.571-3.148 1.73-4.253 1.15-1.095 2.573-1.639 4.236-1.64zm-.122 1.633c-.774 0-1.43.288-1.993.894a3.466 3.466 0 00-.823 2.069l-.002.02a6.894 6.894 0 00-.032.68v.002c0 1.246.278 2.332.82 3.271l.113.187.009.013.007.014a2.627 2.627 0 001.75 1.316c.131.021.263.033.396.033.776 0 1.434-.288 1.997-.89a3.423 3.423 0 00.82-2.052v-.01l.001-.012c.022-.226.033-.453.033-.68 0-1.329-.316-2.481-.934-3.47l-.009-.013-.007-.013a2.654 2.654 0 00-1.69-1.315 2.301 2.301 0 00-.456-.044z"
|
||||
/>
|
||||
<path d="M5.136 18.914H2.328V7.66h2.808v11.253zM13.76 7.374c1.254 0 2.275.374 2.97 1.195.681.805.98 1.962.98 3.385v6.96h-2.807v-6.627a4.578 4.578 0 00-.287-1.754l-.055-.125a1.697 1.697 0 00-1.666-.951h-.04c-.65 0-1.17.221-1.595.663a2.645 2.645 0 00-.631 1.614l-.001.013-.001.012a5.998 5.998 0 00-.025.563v6.592H7.794V7.66h2.808v1.084c.08-.097.164-.191.252-.282l.014-.014c.067-.063.136-.123.207-.18.752-.602 1.656-.895 2.684-.895zM68.4 18.914h-2.808V7.66h2.807v11.253zM90.049 7.374c1.254 0 2.275.374 2.97 1.195.682.805.981 1.962.981 3.385v6.96h-2.808v-6.627a4.577 4.577 0 00-.287-1.754 1.697 1.697 0 00-1.722-1.076h-.039c-.649 0-1.17.221-1.595.663a2.644 2.644 0 00-.63 1.614l-.002.013v.012a5.998 5.998 0 00-.026.563v6.592h-2.808V7.66h2.808v1.084c.08-.097.164-.191.253-.282l.006-.007.008-.007c.067-.063.135-.123.207-.18.751-.602 1.656-.895 2.684-.895zM3.732 2c.476 0 .894.182 1.233.52.334.333.52.742.52 1.209 0 .475-.18.893-.52 1.231a1.707 1.707 0 01-1.057.511l-.176.009a1.68 1.68 0 01-1.212-.52A1.699 1.699 0 012 3.73c0-.467.186-.876.52-1.21A1.68 1.68 0 013.732 2zM66.995 2c.476 0 .894.181 1.233.52.334.333.52.742.52 1.209a1.7 1.7 0 01-.52 1.231c-.338.338-.757.52-1.233.52a1.68 1.68 0 01-1.212-.52 1.699 1.699 0 01-.52-1.231c0-.467.186-.876.52-1.21l.129-.117c.308-.26.674-.402 1.083-.402z" />
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
nav: Components
|
||||
group: Model
|
||||
title: Inception Labs
|
||||
atomId: Inception
|
||||
description: https://inceptionlabs.ai
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
```tsx
|
||||
import { Inception } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => <Inception size={64} />;
|
||||
```
|
||||
|
||||
## Text
|
||||
|
||||
```tsx
|
||||
import { Inception } from '@lobehub/icons';
|
||||
|
||||
export default () => <Inception.Text size={48} />;
|
||||
```
|
||||
|
||||
## Combine
|
||||
|
||||
```tsx
|
||||
import { Inception } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} align={'flex-start'}>
|
||||
<Inception.Combine size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
```tsx
|
||||
import { Inception } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<Inception.Avatar size={64} />
|
||||
<Inception.Avatar size={64} shape={'square'} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
```tsx
|
||||
import { Inception } from '@lobehub/icons';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
import ColorPreview from '../components/ColorPreview';
|
||||
|
||||
export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<ColorPreview color={Inception.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 = 'Inception';
|
||||
export const COMBINE_TEXT_MULTIPLE = 1;
|
||||
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.8;
|
||||
+1
-1
@@ -3,7 +3,7 @@ nav: Components
|
||||
group: Provider
|
||||
title: LG AI (KMMLU/EXAONE)
|
||||
atomId: LG
|
||||
description: https://www.lgresearch.ai
|
||||
description: https://lgresearch.ai
|
||||
---
|
||||
|
||||
## Icons
|
||||
|
||||
@@ -2,65 +2,274 @@
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
import { useFillIds } from '@/hooks/useFillId';
|
||||
import type { IconType } from '@/types';
|
||||
|
||||
import { TITLE } from '../style';
|
||||
|
||||
const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
const [a, b, c, d, e, f, g, h, i, j, k, l, m, n] = useFillIds(TITLE, 14);
|
||||
return (
|
||||
<svg
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 24 24"
|
||||
viewBox="0 0 320 320"
|
||||
width={size}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
d="M22.951 13.475C22.951 19.672 18.082 24 11.975 24 5.87 24 1 19.59 1 13.393c0-1.843.41-2.633 2.58-2.922 3.89-.518 5.942-.313 8.396-.313 2.453 0 5.942-.104 8.395.313 2.007.342 2.457.71 2.58 3.004z"
|
||||
fill="#FFB02E"
|
||||
d="M294 172.519c0 75.655-59.442 128.5-134 128.5-74.558 0-134-53.845-134-129.5 0-22.5 5-32.141 31.5-35.671 47.5-6.329 72.542-3.829 102.5-3.829 29.959 0 72.556-1.27 102.5 3.829 24.5 4.171 30 8.671 31.5 36.671z"
|
||||
fill={a.fill}
|
||||
/>
|
||||
<path
|
||||
d="M11.955 19.209c-2.314 0-2.928.286-2.928.286s.287 2.212 2.928 2.212c2.642 0 2.928-2.212 2.928-2.212s-.614-.287-2.928-.287z"
|
||||
d="M159.75 242.51c-28.25 0-35.75 3.5-35.75 3.5s3.5 27 35.75 27 35.75-27 35.75-27-7.5-3.5-35.75-3.5z"
|
||||
fill="#972021"
|
||||
/>
|
||||
<path
|
||||
d="M21.15 11.51c0 .52-4.09.941-9.133.941-5.044 0-9.133-.422-9.133-.942s4.089-.942 9.133-.942c5.043 0 9.132.422 9.132.942z"
|
||||
fill="#FF6723"
|
||||
d="M271.999 148.517c0 6.351-49.92 11.5-111.5 11.5s-111.5-5.149-111.5-11.5c0-6.352 49.92-11.5 111.5-11.5s111.5 5.148 111.5 11.5z"
|
||||
fill={b.fill}
|
||||
/>
|
||||
<path
|
||||
d="M9.969 12.451c.052-1.226-.04-1.867-.45-2.985 0 0 .777-.987 2.21-.987 1.434 0 2.458.25 2.458.25-.248 1.376-.26 2.206-.205 3.722H9.97z"
|
||||
fill="#FEE064"
|
||||
d="M135.503 160.013c.633-14.972-.483-22.788-5.5-36.443 0 0 9.5-12.056 27-12.056s30 3.064 30 3.064c-3.028 16.793-3.182 26.921-2.5 45.435h-49z"
|
||||
fill={c.fill}
|
||||
/>
|
||||
<path
|
||||
d="M8.633 18.535c1.207-.58 2.032-1.762 2.032-3.217 0-2.081-1.687-3.932-3.768-3.932-2.08 0-3.85 1.605-3.85 3.686 0 1.146.537 2.196 1.365 2.91a4.582 4.582 0 011.625-.289c1.04 0 1.972.327 2.596.842zM15.318 18.535c-1.207-.58-2.032-1.762-2.032-3.217 0-2.081 1.687-3.932 3.768-3.932 2.08 0 3.85 1.605 3.85 3.686 0 1.146-.537 2.196-1.365 2.91a4.582 4.582 0 00-1.625-.289c-1.04 0-1.972.327-2.596.842z"
|
||||
d="M119.191 234.294c14.742-7.076 24.811-21.51 24.811-39.273 0-25.406-20.595-48-46-48s-47 19.594-47 45c0 13.983 6.542 26.812 16.662 35.521 5.893-2.245 12.652-3.521 19.838-3.521 12.705 0 24.077 3.989 31.689 10.273zM200.813 234.294c-14.742-7.076-24.811-21.51-24.811-39.273 0-25.406 20.595-48 46-48s47 19.594 47 45c0 13.983-6.543 26.812-16.662 35.521-5.893-2.245-12.652-3.521-19.838-3.521-12.705 0-24.077 3.989-31.689 10.273z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M7.143 17.447a2.293 2.293 0 100-4.586 2.293 2.293 0 000 4.586zM16.808 17.447a2.293 2.293 0 110-4.586 2.293 2.293 0 010 4.586z"
|
||||
fill="#270C36"
|
||||
d="M101 221.012c15.464 0 28-12.536 28-28s-12.536-28-28-28-28 12.536-28 28 12.536 28 28 28z"
|
||||
fill={d.fill}
|
||||
/>
|
||||
<path
|
||||
d="M13.04.902c-1.149 0-1.597-.942-3.358-.9-1.916 0-2.785 1.064-3.727 1.883-.16.14-.942.574-1.31.737-1.612.717-2.826 1.761-2.826 3.318 0 1.696 1.43 3.071 3.194 3.071.29 0 .57-.037.838-.106.712.863 1.816 1.364 3.053 1.417 1.925.082 2.54-1.25 3.645-.697.758.38 1.133.697 2.334.697 1.402 0 2.053-.43 2.457-.901.738-.86 1.874-.328 2.58-.328 1.538 0 2.785-1.192 2.785-2.662s-1.246-2.662-2.784-2.662c-.422 0-1.217.104-1.393-.573C18.241 2.09 16.878.82 14.924.82c-.763 0-1.449.082-1.884.082z"
|
||||
fill="#A68AE2"
|
||||
d="M219 221.012c-15.464 0-28-12.536-28-28s12.536-28 28-28 28 12.536 28 28-12.536 28-28 28z"
|
||||
fill={e.fill}
|
||||
/>
|
||||
<path d="M5.669 1.025a.778.778 0 11-1.557 0 .778.778 0 011.557 0z" fill="#7B61FF" />
|
||||
<path d="M4.686 8.192a1.31 1.31 0 11-2.621 0 1.31 1.31 0 012.62 0z" fill="#F24630" />
|
||||
<path d="M21.968 3.4a1.27 1.27 0 11-2.539 0 1.27 1.27 0 012.54 0z" fill="#7CEE1D" />
|
||||
<g filter={f.fill}>
|
||||
<path
|
||||
d="M172.997 19.016c-14.027 0-19.5-11.5-41-11-23.394 0-34 13-45.5 23-1.958 1.702-11.5 7-16 9-19.683 8.748-34.5 21.5-34.5 40.5 0 20.711 17.461 37.5 39 37.5 3.536 0 6.963-.453 10.22-1.301 8.7 10.539 22.179 16.658 37.28 17.301 23.5 1 31-15.25 44.5-8.5 9.259 4.629 13.83 8.5 28.5 8.5 17.108 0 25.057-5.233 30-11 9-10.5 22.879-4 31.5-4 18.778 0 34-14.551 34-32.5 0-17.95-15.222-32.5-34-32.5-5.15 0-14.856 1.27-17-7-3.5-13.5-20.148-29-44-29-9.318 0-17.691 1-23 1z"
|
||||
fill={g.fill}
|
||||
/>
|
||||
</g>
|
||||
<path d="M82.998 20.517a9.5 9.5 0 11-19 0 9.5 9.5 0 0119 0z" fill={h.fill} />
|
||||
<path
|
||||
d="M9.701 19.34c.45-.068 1.163-.131 2.254-.131 1 0 1.683.053 2.136.114-.127.48-1.062.664-2.197.664-1.122 0-2.05-.18-2.193-.647z"
|
||||
d="M71.002 108.021c0 8.836-7.163 16-16 16s-16-7.164-16-16c0-8.837 7.163-16 16-16s16 7.163 16 16z"
|
||||
fill={i.fill}
|
||||
/>
|
||||
<path
|
||||
d="M282.002 49.516c0 8.56-6.94 15.5-15.5 15.5-8.56 0-15.5-6.94-15.5-15.5 0-8.56 6.94-15.5 15.5-15.5 8.56 0 15.5 6.94 15.5 15.5z"
|
||||
fill={j.fill}
|
||||
/>
|
||||
<path
|
||||
d="M132.232 244.111c5.483-.823 14.191-1.601 27.515-1.601 12.212 0 20.546.654 26.073 1.396-1.542 5.861-12.963 8.104-26.823 8.104-13.698 0-25.013-2.191-26.765-7.899z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M11.976 23.099c1.646 0 1.909-1.678 1.96-2.098.039-.34-.137-.511-.33-.627-.191-.116-.768-.224-1.63-.224-.862 0-1.435.108-1.63.224-.196.116-.373.288-.33.627.051.42.314 2.098 1.96 2.098z"
|
||||
fill="#F24630"
|
||||
d="M160.006 290.016c20.099 0 23.305-20.488 23.927-25.61.478-4.146-1.675-6.244-4.02-7.659-2.345-1.414-9.379-2.731-19.907-2.731-10.527 0-17.514 1.317-19.906 2.731-2.393 1.415-4.546 3.513-4.02 7.659.622 5.122 3.828 25.61 23.926 25.61z"
|
||||
fill={k.fill}
|
||||
/>
|
||||
<g filter={l.fill}>
|
||||
<path
|
||||
d="M171.694 129.744c-5.721-3.89-13.954-4.248-19.786-.526-7.724 4.929-16.971 7.798-26.91 7.798-27.062 0-49-21.267-49-47.5 0-26.234 21.938-47.5 49-47.5 13.628 0 25.956 5.392 34.838 14.097 4.948 4.85 13.088 6.24 19.498 3.609a42.502 42.502 0 0116.164-3.166c22.92 0 41.5 18.012 41.5 40.23 0 22.218-18.58 40.23-41.5 40.23-8.856 0-17.065-2.69-23.804-7.272z"
|
||||
fill={m.fill}
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
d="M12.934 9.972c-.47-.319-1.143-.348-1.621-.043a4.086 4.086 0 01-2.204.638c-2.217 0-4.014-1.742-4.014-3.89 0-2.149 1.797-3.89 4.014-3.89 1.116 0 2.126.44 2.853 1.154.406.397 1.072.51 1.597.295.407-.167.855-.259 1.324-.259 1.878 0 3.4 1.475 3.4 3.295 0 1.82-1.523 3.295-3.4 3.295-.725 0-1.397-.22-1.95-.595z"
|
||||
fill="#F4B8CA"
|
||||
d="M219.002 106.51c0 7.456-6.044 13.5-13.5 13.5s-13.5-6.044-13.5-13.5 6.044-13.5 13.5-13.5 13.5 6.044 13.5 13.5z"
|
||||
fill={n.fill}
|
||||
/>
|
||||
<path d="M16.808 8.07a1.106 1.106 0 11-2.211 0 1.106 1.106 0 012.211 0z" fill="#0C74FF" />
|
||||
<defs>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="rotate(-57.041 328.447 55.73) scale(238.957 377.848)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={a.id}
|
||||
r="1"
|
||||
>
|
||||
<stop stopColor="#FCBD72" />
|
||||
<stop offset=".255" stopColor="#FAC371" />
|
||||
<stop offset=".465" stopColor="#FFA14C" />
|
||||
<stop offset=".64" stopColor="#EB7A34" />
|
||||
<stop offset=".845" stopColor="#F0866D" />
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="rotate(90 26.49 47.007) scale(9.5)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={h.id}
|
||||
r="1"
|
||||
>
|
||||
<stop offset=".62" stopColor="#58239F" />
|
||||
<stop offset=".822" stopColor="#8E3FE9" />
|
||||
<stop offset="1" stopColor="#AF6FEC" />
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="matrix(0 16 -16 0 55.002 108.021)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={i.id}
|
||||
r="1"
|
||||
>
|
||||
<stop offset=".62" stopColor="#C32F45" />
|
||||
<stop offset=".822" stopColor="#F44341" />
|
||||
<stop offset="1" stopColor="#FC9D9B" />
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="matrix(0 15.5 -15.5 0 266.502 49.516)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={j.id}
|
||||
r="1"
|
||||
>
|
||||
<stop offset=".385" stopColor="#4DA33C" />
|
||||
<stop offset=".822" stopColor="#63ED47" />
|
||||
<stop offset="1" stopColor="#70D775" />
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="matrix(0 -44 58.6667 0 160 290)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={k.id}
|
||||
r="1"
|
||||
>
|
||||
<stop stopColor="#FD9B8B" />
|
||||
<stop offset=".5" stopColor="#F24F3A" />
|
||||
<stop offset="1" stopColor="#D93318" />
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="matrix(15.5 -61.50002 82.33886 20.75208 156 110)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={m.id}
|
||||
r="1"
|
||||
>
|
||||
<stop offset=".26" stopColor="#FFC1A3" />
|
||||
<stop offset=".764" stopColor="#FD82AB" />
|
||||
<stop offset=".952" stopColor="#DF4FAA" />
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="rotate(90 49.496 156.006) scale(13.5)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={n.id}
|
||||
r="1"
|
||||
>
|
||||
<stop offset=".572" stopColor="#4C86D3" />
|
||||
<stop offset=".822" stopColor="#72ADE2" />
|
||||
<stop offset="1" stopColor="#90BBE3" />
|
||||
</radialGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={b.id}
|
||||
x1="48.999"
|
||||
x2="271.999"
|
||||
y1="148.517"
|
||||
y2="148.517"
|
||||
>
|
||||
<stop stopColor="#EB791E" />
|
||||
<stop offset="1" stopColor="#DB694E" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={c.id}
|
||||
x1="135.5"
|
||||
x2="187"
|
||||
y1="147.5"
|
||||
y2="147.5"
|
||||
>
|
||||
<stop stopColor="#FCC659" />
|
||||
<stop offset=".183" stopColor="#FFE366" />
|
||||
<stop offset=".404" stopColor="#FECA50" />
|
||||
<stop offset=".702" stopColor="#FFE76C" />
|
||||
<stop offset="1" stopColor="#FCC553" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={d.id}
|
||||
x1="73"
|
||||
x2="247"
|
||||
y1="193.012"
|
||||
y2="193.012"
|
||||
>
|
||||
<stop stopColor="#2A0B39" />
|
||||
<stop offset=".322" stopColor="#42180E" />
|
||||
<stop offset=".678" stopColor="#483A00" />
|
||||
<stop offset="1" stopColor="#310D1D" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id={e.id}
|
||||
x1="73"
|
||||
x2="247"
|
||||
y1="193.012"
|
||||
y2="193.012"
|
||||
>
|
||||
<stop stopColor="#2A0B39" />
|
||||
<stop offset=".322" stopColor="#42180E" />
|
||||
<stop offset=".678" stopColor="#483A00" />
|
||||
<stop offset="1" stopColor="#310D1D" />
|
||||
</linearGradient>
|
||||
<linearGradient gradientUnits="userSpaceOnUse" id={g.id} x1="44.5" x2="291" y1="84" y2="82">
|
||||
<stop stopColor="#342FBD" />
|
||||
<stop offset=".188" stopColor="#733CC0" />
|
||||
<stop offset=".375" stopColor="#8748C2" />
|
||||
<stop offset=".654" stopColor="#7C80DE" />
|
||||
<stop offset="1" stopColor="#4A306D" />
|
||||
</linearGradient>
|
||||
<filter
|
||||
colorInterpolationFilters="sRGB"
|
||||
filterUnits="userSpaceOnUse"
|
||||
height="126.061"
|
||||
id={f.id}
|
||||
width="255"
|
||||
x="35.997"
|
||||
y="8"
|
||||
>
|
||||
<feFlood floodOpacity="0" result="BackgroundImageFix" />
|
||||
<feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
|
||||
<feColorMatrix
|
||||
in="SourceAlpha"
|
||||
result="hardAlpha"
|
||||
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
||||
/>
|
||||
<feOffset />
|
||||
<feGaussianBlur stdDeviation="12" />
|
||||
<feComposite in2="hardAlpha" k2="-1" k3="1" operator="arithmetic" />
|
||||
<feColorMatrix values="0 0 0 0 1 0 0 0 0 0.764536 0 0 0 0 0.896726 0 0 0 1 0" />
|
||||
<feBlend in2="shape" result="effect1_innerShadow_1562_736" />
|
||||
</filter>
|
||||
<filter
|
||||
colorInterpolationFilters="sRGB"
|
||||
filterUnits="userSpaceOnUse"
|
||||
height="95"
|
||||
id={l.id}
|
||||
width="161"
|
||||
x="75.998"
|
||||
y="42.016"
|
||||
>
|
||||
<feFlood floodOpacity="0" result="BackgroundImageFix" />
|
||||
<feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
|
||||
<feColorMatrix
|
||||
in="SourceAlpha"
|
||||
result="hardAlpha"
|
||||
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
||||
/>
|
||||
<feOffset />
|
||||
<feGaussianBlur stdDeviation="12" />
|
||||
<feComposite in2="hardAlpha" k2="-1" k3="1" operator="arithmetic" />
|
||||
<feColorMatrix values="0 0 0 0 1 0 0 0 0 0.824669 0 0 0 0 0.923101 0 0 0 1 0" />
|
||||
<feBlend in2="shape" result="effect1_innerShadow_1562_736" />
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -11,53 +11,53 @@ const Icon: IconType = memo(({ size = '1em', style, ...rest }) => {
|
||||
<svg
|
||||
height={size}
|
||||
style={{ flex: 'none', lineHeight: 1, ...style }}
|
||||
viewBox="0 0 24 24"
|
||||
viewBox="0 0 320 320"
|
||||
width={size}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...rest}
|
||||
>
|
||||
<title>{TITLE}</title>
|
||||
<path
|
||||
d="M22.951 13.475C22.951 19.672 18.082 24 11.975 24 5.87 24 1 19.59 1 13.393c0-1.843.41-2.633 2.58-2.922 3.89-.518 5.942-.313 8.396-.313 2.453 0 5.942-.104 8.395.313 2.007.342 2.457.71 2.58 3.004z"
|
||||
d="M294 172.52c0 75.654-59.442 128.5-134 128.5-74.558 0-134-53.846-134-129.5 0-22.501 5-32.142 31.5-35.672 47.5-6.329 72.542-3.828 102.5-3.828 29.959-.001 72.556-1.271 102.5 3.828 24.5 4.171 30 8.671 31.5 36.672z"
|
||||
fill="#BFBFBF"
|
||||
/>
|
||||
<path
|
||||
d="M11.955 19.209c-2.314 0-2.928.286-2.928.286s.287 2.212 2.928 2.212c2.642 0 2.928-2.212 2.928-2.212s-.614-.287-2.928-.287z"
|
||||
d="M159.75 242.51c-28.25 0-35.75 3.5-35.75 3.5s3.5 27 35.75 27 35.75-27 35.75-27-7.5-3.5-35.75-3.5z"
|
||||
fill="#4F4F4F"
|
||||
/>
|
||||
<ellipse cx="12.017" cy="11.509" fill="#838383" rx="9.133" ry=".942" />
|
||||
<ellipse cx="160.499" cy="148.517" fill="#838383" rx="111.5" ry="11.5" />
|
||||
<path
|
||||
d="M9.969 12.451c.052-1.226-.04-1.867-.45-2.985 0 0 .777-.987 2.21-.987 1.434 0 2.458.25 2.458.25-.248 1.376-.26 2.206-.205 3.722H9.97z"
|
||||
d="M135.503 160.013c.633-14.972-.483-22.788-5.5-36.443 0 0 9.5-12.056 27-12.056s30 3.064 30 3.064c-3.028 16.793-3.182 26.921-2.5 45.435h-49z"
|
||||
fill="#E1E1E1"
|
||||
/>
|
||||
<path
|
||||
d="M8.633 18.535c1.207-.58 2.032-1.762 2.032-3.217 0-2.081-1.687-3.932-3.768-3.932-2.08 0-3.85 1.605-3.85 3.686 0 1.146.537 2.196 1.365 2.91a4.582 4.582 0 011.625-.289c1.04 0 1.972.327 2.596.842zM15.318 18.535c-1.207-.58-2.032-1.762-2.032-3.217 0-2.081 1.687-3.932 3.768-3.932 2.08 0 3.85 1.605 3.85 3.686 0 1.146-.537 2.196-1.365 2.91a4.582 4.582 0 00-1.625-.289c-1.04 0-1.972.327-2.596.842z"
|
||||
d="M119.191 234.294c14.742-7.076 24.811-21.51 24.811-39.273 0-25.406-20.595-48-46-48s-47 19.594-47 45c0 13.983 6.542 26.812 16.662 35.521 5.893-2.245 12.652-3.521 19.838-3.521 12.705 0 24.077 3.989 31.689 10.273zM200.813 234.294c-14.742-7.076-24.811-21.51-24.811-39.273 0-25.406 20.595-48 46-48s47 19.594 47 45c0 13.983-6.543 26.812-16.662 35.521-5.893-2.245-12.652-3.521-19.838-3.521-12.705 0-24.077 3.989-31.689 10.273z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M16.808 17.447a2.293 2.293 0 110-4.586 2.293 2.293 0 010 4.586zM7.143 17.447a2.293 2.293 0 100-4.586 2.293 2.293 0 000 4.586z"
|
||||
d="M219 221.012c-15.464 0-28-12.536-28-28s12.536-28 28-28 28 12.536 28 28-12.536 28-28 28zM101 221.012c15.464 0 28-12.536 28-28s-12.536-28-28-28-28 12.536-28 28 12.536 28 28 28z"
|
||||
fill="#1A1A1A"
|
||||
/>
|
||||
<path
|
||||
d="M13.04.902c-1.149 0-1.597-.942-3.358-.9-1.916 0-2.785 1.064-3.727 1.883-.16.14-.942.574-1.31.737-1.612.717-2.826 1.761-2.826 3.318 0 1.696 1.43 3.071 3.194 3.071.29 0 .57-.037.838-.106.712.863 1.816 1.364 3.053 1.417 1.925.082 2.54-1.25 3.645-.697.758.38 1.133.697 2.334.697 1.402 0 2.053-.43 2.457-.901.738-.86 1.874-.328 2.58-.328 1.538 0 2.785-1.192 2.785-2.662s-1.246-2.662-2.784-2.662c-.422 0-1.217.104-1.393-.573C18.241 2.09 16.878.82 14.924.82c-.763 0-1.449.082-1.884.082z"
|
||||
d="M172.997 19.016c-14.027 0-19.5-11.5-41-11-23.394 0-34 13-45.5 23-1.958 1.702-11.5 7-16 9-19.683 8.748-34.5 21.5-34.5 40.5 0 20.711 17.461 37.5 39 37.5 3.537 0 6.963-.453 10.22-1.301 8.7 10.539 22.179 16.658 37.28 17.301 23.5 1 31-15.25 44.5-8.5 9.259 4.629 13.83 8.5 28.5 8.5 17.108 0 25.057-5.233 30-11 9-10.5 22.879-4 31.5-4 18.778 0 34-14.551 34-32.5 0-17.95-15.222-32.5-34-32.5-5.15 0-14.856 1.27-17-7-3.5-13.5-20.148-29-44-29-9.318 0-17.691 1-23 1z"
|
||||
fill="#838383"
|
||||
/>
|
||||
<circle cx="4.891" cy="1.025" fill="#838383" r=".778" />
|
||||
<circle cx="20.699" cy="3.4" fill="#C8C8C8" r="1.27" />
|
||||
<circle cx="73.498" cy="20.517" fill="#838383" r="9.5" />
|
||||
<circle cx="266.502" cy="49.516" fill="#C8C8C8" r="15.5" />
|
||||
<path
|
||||
d="M9.701 19.34c.45-.068 1.163-.131 2.254-.131 1 0 1.683.053 2.136.114-.127.48-1.062.664-2.197.664-1.122 0-2.05-.18-2.193-.647z"
|
||||
d="M132.232 244.111c5.483-.823 14.191-1.601 27.515-1.601 12.212 0 20.546.654 26.073 1.396-1.542 5.861-12.963 8.104-26.823 8.104-13.698 0-25.013-2.191-26.765-7.899z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M11.976 23.099c1.646 0 1.909-1.678 1.96-2.098.039-.34-.137-.511-.33-.627-.191-.116-.768-.224-1.63-.224-.862 0-1.435.108-1.63.224-.196.116-.373.288-.33.627.051.42.314 2.098 1.96 2.098z"
|
||||
d="M160.006 290.016c20.099 0 23.305-20.488 23.927-25.61.478-4.146-1.675-6.244-4.02-7.659-2.345-1.414-9.379-2.731-19.907-2.731-10.527 0-17.514 1.317-19.906 2.731-2.393 1.415-4.546 3.513-4.02 7.659.622 5.122 3.828 25.61 23.926 25.61z"
|
||||
fill="#838383"
|
||||
/>
|
||||
<path
|
||||
d="M12.934 9.972c-.47-.319-1.143-.348-1.621-.043a4.086 4.086 0 01-2.204.638c-2.217 0-4.014-1.742-4.014-3.89 0-2.149 1.797-3.89 4.014-3.89 1.116 0 2.126.44 2.853 1.154.406.397 1.072.51 1.597.295.407-.167.855-.259 1.324-.259 1.878 0 3.4 1.475 3.4 3.295 0 1.82-1.523 3.295-3.4 3.295-.725 0-1.397-.22-1.95-.595z"
|
||||
d="M171.694 129.744c-5.721-3.89-13.954-4.248-19.786-.526-7.724 4.929-16.971 7.798-26.91 7.798-27.062 0-49-21.267-49-47.5 0-26.234 21.938-47.5 49-47.5 13.628 0 25.956 5.392 34.838 14.097 4.948 4.85 13.088 6.24 19.498 3.609a42.502 42.502 0 0116.164-3.166c22.92 0 41.5 18.012 41.5 40.23 0 22.218-18.58 40.23-41.5 40.23-8.856 0-17.065-2.69-23.804-7.272z"
|
||||
fill="#C8C8C8"
|
||||
/>
|
||||
<path
|
||||
d="M3.375 9.502a1.31 1.31 0 100-2.62 1.31 1.31 0 000 2.62zM15.702 9.175a1.106 1.106 0 100-2.212 1.106 1.106 0 000 2.212z"
|
||||
d="M55.002 124.021c8.837 0 16-7.164 16-16 0-8.837-7.163-16-16-16s-16 7.163-16 16c0 8.836 7.163 16 16 16zM205.502 120.021c7.456 0 13.5-6.045 13.5-13.5 0-7.456-6.044-13.5-13.5-13.5s-13.5 6.044-13.5 13.5c0 7.455 6.044 13.5 13.5 13.5z"
|
||||
fill="#4F4F4F"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
'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>
|
||||
<image
|
||||
height="24"
|
||||
href="https://registry.npmmirror.com/@lobehub/assets-logo/1.0.0/files/assets/logo-3d.webp"
|
||||
width="24"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
export default Icon;
|
||||
@@ -16,6 +16,7 @@ export default () => (
|
||||
<Flexbox gap={16} horizontal>
|
||||
<LobeHub size={64} />
|
||||
<LobeHub.Color size={64} />
|
||||
<LobeHub.Morden size={64} />
|
||||
</Flexbox>
|
||||
);
|
||||
```
|
||||
|
||||
@@ -2,6 +2,7 @@ import Avatar from './components/Avatar';
|
||||
import Color from './components/Color';
|
||||
import Combine from './components/Combine';
|
||||
import Mono from './components/Mono';
|
||||
import Morden from './components/Morden';
|
||||
import Text from './components/Text';
|
||||
import { COLOR_PRIMARY, TITLE } from './style';
|
||||
|
||||
@@ -9,12 +10,14 @@ export type CompoundedIcon = typeof Mono & {
|
||||
Avatar: typeof Avatar;
|
||||
Color: typeof Color;
|
||||
Combine: typeof Combine;
|
||||
Morden: typeof Morden;
|
||||
Text: typeof Text;
|
||||
colorPrimary: string;
|
||||
title: string;
|
||||
};
|
||||
|
||||
const Icons = Mono as CompoundedIcon;
|
||||
Icons.Morden = Morden;
|
||||
Icons.Color = Color;
|
||||
Icons.Text = Text;
|
||||
Icons.Combine = Combine;
|
||||
|
||||
@@ -6,4 +6,4 @@ export const COLOR_PRIMARY = '#fff';
|
||||
// Avatar constants
|
||||
export const AVATAR_BACKGROUND = COLOR_PRIMARY;
|
||||
export const AVATAR_COLOR = '#fff';
|
||||
export const AVATAR_ICON_MULTIPLE = 0.75;
|
||||
export const AVATAR_ICON_MULTIPLE = 0.8;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user