diff --git a/README.md b/README.md index 560bc447..bbc783ef 100644 --- a/README.md +++ b/README.md @@ -55,68 +55,15 @@ Contributions, corrections & requests can be made on GitHub. - 🌳 **Tree Shakable**: The collection is tree-shakable, ensuring that you only import the icons that you use, which helps in reducing the overall bundle size of your project. - 👥 **Active Community**: Lobe Icons boasts an active community of designers and developers. Engage with us on platforms like GitHub and Discord to contribute or get support. +--- + **Supported brands:** -- [x] [01.AI (零一万物)](https://icons.lobehub.com/components/zero-one) -- [x] [Alibaba](https://icons.lobehub.com/components/alibaba) -- [x] [AntGroup](https://icons.lobehub.com/components/ant-group) -- [x] [Anthropic](https://icons.lobehub.com/components/anthropic) -- [x] [Automatic1111 (SD Webui)](https://icons.lobehub.com/components/automatic) -- [x] [AWS](https://icons.lobehub.com/components/aws) -- [x] [AWS (Bedrock)](https://icons.lobehub.com/components/bedrock) -- [x] [Baichuan (百川)](https://icons.lobehub.com/components/baichuan) -- [x] [Baidu](https://icons.lobehub.com/components/baidu) -- [x] [ByteDance](https://icons.lobehub.com/components/byte-dance) -- [x] [Claude](https://icons.lobehub.com/components/claude) -- [x] [Cloudflare](https://icons.lobehub.com/components/cloudflare) -- [x] [Cloudflare (WorkersAI)](https://icons.lobehub.com/components/workers-ai) -- [x] [Cohere (Command)](https://icons.lobehub.com/components/cohere) -- [x] [Databricks (DBRX)](https://icons.lobehub.com/components/dbrx) -- [x] [DeepMind(Google)](https://icons.lobehub.com/components/deep-mind) -- [x] [Fireworks](https://icons.lobehub.com/components/fireworks) -- [x] [Github](https://icons.lobehub.com/components/github) -- [x] [Github Copilot](https://icons.lobehub.com/components/github-copilot) -- [x] [Google](https://icons.lobehub.com/components/google) -- [x] [Google (Colab)](https://icons.lobehub.com/components/colab) -- [x] [Google (Gemini)](https://icons.lobehub.com/components/gemini) -- [x] [Google (Gemma)](https://icons.lobehub.com/components/gemma) -- [x] [Grok](https://icons.lobehub.com/components/grok) -- [x] [Groq](https://icons.lobehub.com/components/groq) -- [x] [HuggingFace](https://icons.lobehub.com/components/hugging-face) -- [x] [Hunyuan (腾讯混元)](https://icons.lobehub.com/components/hunyuan) -- [x] [Langfuse](https://icons.lobehub.com/components/langfuse) -- [x] [LLaVA](https://icons.lobehub.com/components/l-la-va) -- [x] [Meta](https://icons.lobehub.com/components/meta) -- [x] [Microsoft (Azure)](https://icons.lobehub.com/components/azure) -- [x] [Microsoft Copilot](https://icons.lobehub.com/components/copilot) -- [x] [Midjourney](https://icons.lobehub.com/components/midjourney) -- [x] [Minimax](https://icons.lobehub.com/components/minimax) -- [x] [Mistral](https://icons.lobehub.com/components/mistral) -- [x] [Moonshot (月之暗面)](https://icons.lobehub.com/components/moonshot) -- [x] [Nvidia (ChatWithRTX)](https://icons.lobehub.com/components/nvidia) -- [x] [Ollama](https://icons.lobehub.com/components/ollama) -- [x] [OpenAI (ChatGPT)](https://icons.lobehub.com/components/open-ai) -- [x] [OpenAI (DALL·E)](https://icons.lobehub.com/components/dalle) -- [x] [OpenChat](https://icons.lobehub.com/components/open-chat) -- [x] [OpenRouter](https://icons.lobehub.com/components/open-router) -- [x] [Perplexity](https://icons.lobehub.com/components/perplexity) -- [x] [Pollinations](https://icons.lobehub.com/components/pollinations) -- [x] [Qingyan (智谱清言)](https://icons.lobehub.com/components/qingyan) -- [x] [Replicate](https://icons.lobehub.com/components/replicate) -- [x] [RWKV](https://icons.lobehub.com/components/rwkv) -- [x] [Spark (讯飞星火)](https://icons.lobehub.com/components/spark) -- [x] [Stability (StableDiffusion)](https://icons.lobehub.com/components/stability) -- [x] [Suno](https://icons.lobehub.com/components/suno) -- [x] [Tencent](https://icons.lobehub.com/components/tencent) -- [x] [together.ai](https://icons.lobehub.com/components/together) -- [x] [Tongyi (通义)](https://icons.lobehub.com/components/tongyi) -- [x] [Wenxin (文心)](https://icons.lobehub.com/components/wenxin) -- [x] [Yi (零一万物)](https://icons.lobehub.com/components/yi) -- [x] [Zeabur](https://icons.lobehub.com/components/zeabur) -- [x] [Zhipu (ChatGLM)](https://icons.lobehub.com/components/chat-glm) -- [x] [Zhipu (智谱)](https://icons.lobehub.com/components/zhipu) +| Model | Provider | Application | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ✅ [Ai21Labs (Jamba)](https://icons.lobehub.com/components/ai-21)
✅ [Baichuan (百川)](https://icons.lobehub.com/components/baichuan)
✅ [Claude](https://icons.lobehub.com/components/claude)
✅ [Databricks (DBRX)](https://icons.lobehub.com/components/dbrx)
✅ [FishAudio (Bert)](https://icons.lobehub.com/components/fish-audio)
✅ [Google (Gemini)](https://icons.lobehub.com/components/gemini)
✅ [Google (Gemma)](https://icons.lobehub.com/components/gemma)
✅ [Grok](https://icons.lobehub.com/components/grok)
✅ [Hunyuan (腾讯混元)](https://icons.lobehub.com/components/hunyuan)
✅ [LLaVA](https://icons.lobehub.com/components/l-la-va)
✅ [Minimax](https://icons.lobehub.com/components/minimax)
✅ [Mistral](https://icons.lobehub.com/components/mistral)
✅ [OpenAI (DALL·E)](https://icons.lobehub.com/components/dalle)
✅ [OpenChat](https://icons.lobehub.com/components/open-chat)
✅ [RWKV](https://icons.lobehub.com/components/rwkv)
✅ [Spark (讯飞星火)](https://icons.lobehub.com/components/spark)
✅ [Tongyi (通义)](https://icons.lobehub.com/components/tongyi)
✅ [Wenxin (文心)](https://icons.lobehub.com/components/wenxin)
✅ [Yi (零一万物)](https://icons.lobehub.com/components/yi)
✅ [Zhipu (ChatGLM)](https://icons.lobehub.com/components/chat-glm) | ✅ [01.AI (零一万物)](https://icons.lobehub.com/components/zero-one)
✅ [Alibaba](https://icons.lobehub.com/components/alibaba)
✅ [AntGroup](https://icons.lobehub.com/components/ant-group)
✅ [Anthropic](https://icons.lobehub.com/components/anthropic)
✅ [AWS](https://icons.lobehub.com/components/aws)
✅ [AWS (Bedrock)](https://icons.lobehub.com/components/bedrock)
✅ [Baidu](https://icons.lobehub.com/components/baidu)
✅ [ByteDance](https://icons.lobehub.com/components/byte-dance)
✅ [Cloudflare](https://icons.lobehub.com/components/cloudflare)
✅ [Cloudflare (WorkersAI)](https://icons.lobehub.com/components/workers-ai)
✅ [Cohere (Command)](https://icons.lobehub.com/components/cohere)
✅ [Fireworks](https://icons.lobehub.com/components/fireworks)
✅ [Google](https://icons.lobehub.com/components/google)
✅ [Google(DeepMind)](https://icons.lobehub.com/components/deep-mind)
✅ [Groq](https://icons.lobehub.com/components/groq)
✅ [HuggingFace](https://icons.lobehub.com/components/hugging-face)
✅ [Meta](https://icons.lobehub.com/components/meta)
✅ [Microsoft (Azure)](https://icons.lobehub.com/components/azure)
✅ [Moonshot (月之暗面)](https://icons.lobehub.com/components/moonshot)
✅ [Ollama](https://icons.lobehub.com/components/ollama)
✅ [OpenAI (ChatGPT)](https://icons.lobehub.com/components/open-ai)
✅ [OpenRouter](https://icons.lobehub.com/components/open-router)
✅ [Perplexity](https://icons.lobehub.com/components/perplexity)
✅ [Replicate](https://icons.lobehub.com/components/replicate)
✅ [Stability (StableDiffusion)](https://icons.lobehub.com/components/stability)
✅ [Tencent](https://icons.lobehub.com/components/tencent)
✅ [together.ai](https://icons.lobehub.com/components/together)
✅ [Zeabur](https://icons.lobehub.com/components/zeabur)
✅ [Zhipu (智谱)](https://icons.lobehub.com/components/zhipu) | ✅ [Adobe](https://icons.lobehub.com/components/adobe)
✅ [Adobe (Firefly)](https://icons.lobehub.com/components/adobe-firefly)
✅ [Automatic1111 (SD Webui)](https://icons.lobehub.com/components/automatic)
✅ [Github](https://icons.lobehub.com/components/github)
✅ [Github Copilot](https://icons.lobehub.com/components/github-copilot)
✅ [Google (Colab)](https://icons.lobehub.com/components/colab)
✅ [Langfuse](https://icons.lobehub.com/components/langfuse)
✅ [Microsoft Copilot](https://icons.lobehub.com/components/copilot)
✅ [Midjourney](https://icons.lobehub.com/components/midjourney)
✅ [Nvidia (ChatWithRTX)](https://icons.lobehub.com/components/nvidia)
✅ [Pollinations](https://icons.lobehub.com/components/pollinations)
✅ [Qingyan (智谱清言)](https://icons.lobehub.com/components/qingyan)
✅ [Suno](https://icons.lobehub.com/components/suno) | diff --git a/package.json b/package.json index 74dcb65f..ae5302e6 100644 --- a/package.json +++ b/package.json @@ -77,15 +77,15 @@ "devDependencies": { "@commitlint/cli": "^18.6.1", "@lobehub/lint": "latest", - "@lobehub/ui": "^1.138.0", - "@testing-library/react": "^14.3.0", + "@lobehub/ui": "^1.138.5", + "@testing-library/react": "^14.3.1", "@types/lodash-es": "^4.17.12", "@types/pangu": "^4.0.2", "@types/query-string": "^6.3.0", - "@types/react": "^18.2.75", - "@types/react-dom": "^18.2.24", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", "@vitest/coverage-v8": "latest", - "antd": "^5.16.1", + "antd": "^5.16.2", "antd-style": "^3.6.2", "babel-plugin-antd-style": "latest", "commitlint": "^18.6.1", @@ -95,13 +95,14 @@ "dumi-theme-lobehub": "latest", "eslint": "^8.57.0", "father": "^4.4.0", - "front-matter": "^4.0.2", "glob": "^10.3.12", + "gray-matter": "^4.0.3", "husky": "^8.0.3", "jsdom": "^23.2.0", "lint-staged": "^15.2.2", "lodash-es": "^4.17.21", "lucide-react": "latest", + "markdown-table": "^3.0.3", "prettier": "^3.2.5", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -111,7 +112,7 @@ "stylelint": "^15.11.0", "svgo-browser": "^1.3.8", "tsx": "^4.7.2", - "typescript": "^5.4.4", + "typescript": "^5.4.5", "vitest": "latest" }, "peerDependencies": { diff --git a/scripts/genMdList.ts b/scripts/genMdList.ts index 72c130c6..8ea41c6c 100644 --- a/scripts/genMdList.ts +++ b/scripts/genMdList.ts @@ -1,6 +1,7 @@ -import fm from 'front-matter'; import { globSync } from 'glob'; +import matter from 'gray-matter'; import { kebabCase } from 'lodash-es'; +import { markdownTable } from 'markdown-table'; import { readFileSync, writeFileSync } from 'node:fs'; import { resolve } from 'node:path'; @@ -13,30 +14,47 @@ const updateReadme = (split: string, md: string, content: string): string => { mds[1] = [' ', content, ' '].join('\n\n'); return mds.join(split); }; + +const genMd = ( + data: { + group: string; + path: string; + title: string; + }[], + filter: 'model' | 'provider' | 'application', +): string => + data + .sort((a, b) => a.title.localeCompare(b.title)) + .filter((meta) => meta.group === filter) + .map((meta) => `✅ [${meta.title}](${BASE_URL}${kebabCase(meta.path)})`) + .join('
'); + const run = () => { const mds = globSync(resolve(ROOT_PATH, './src/**/index.md').replace('\\', '/')); - const metas = mds + const metas: any = mds .map((md) => { - const meta: any = fm(readFileSync(md, 'utf8')).attributes; + const { data } = matter(readFileSync(md, 'utf8')); const paths = md.split('/'); - if (!['model', 'provider', 'application'].includes(String(meta.group).toLowerCase())) - return false; + const group = String(data.group).toLowerCase(); + if (!['model', 'provider', 'application'].includes(group)) return false; return { - ...meta, + ...data, + group, path: paths.at(-2), }; }) .filter(Boolean); - const contents = metas - .sort((a, b) => a.title.localeCompare(b.title)) - .map((meta) => `- [x] [${meta.title}](${BASE_URL}${kebabCase(meta.path)})`); + const contents = markdownTable([ + ['Model', 'Provider', 'Application'], + [genMd(metas, 'model'), genMd(metas, 'provider'), genMd(metas, 'application')], + ]); const readmePath = resolve(ROOT_PATH, 'README.md'); const readme = readFileSync(readmePath, 'utf8'); - const newReadme = updateReadme('', readme, contents.join('\n')); + const newReadme = updateReadme('', readme, contents); writeFileSync(readmePath, newReadme, 'utf8'); diff --git a/src/Adobe/components/Avatar.tsx b/src/Adobe/components/Avatar.tsx new file mode 100644 index 00000000..5f883844 --- /dev/null +++ b/src/Adobe/components/Avatar.tsx @@ -0,0 +1,22 @@ +import { memo } from 'react'; + +import IconAvatar, { type IconAvatarProps } from '@/IconAvatar'; + +import { COLOR_PRIMARY, TITLE } from '../style'; +import Mono from './Mono'; + +export type AvatarProps = Omit; + +const Avatar = memo(({ background, ...rest }) => { + return ( + + ); +}); + +export default Avatar; diff --git a/src/Adobe/components/Color.tsx b/src/Adobe/components/Color.tsx new file mode 100644 index 00000000..c6f948d8 --- /dev/null +++ b/src/Adobe/components/Color.tsx @@ -0,0 +1,26 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + + + ); +}); + +export default Icon; diff --git a/src/Adobe/components/Combine.tsx b/src/Adobe/components/Combine.tsx new file mode 100644 index 00000000..2d4ede6f --- /dev/null +++ b/src/Adobe/components/Combine.tsx @@ -0,0 +1,28 @@ +import { memo } from 'react'; + +import IconCombine, { type IconCombineProps } from '@/IconCombine'; + +import { SPACE_MULTIPLE, TEXT_MULTIPLE, TITLE } from '../style'; +import Color from './Color'; +import Mono from './Mono'; +import Text from './Text'; + +export interface CombineProps extends Omit { + type?: 'color' | 'mono'; +} +const Combine = memo(({ type = 'mono', ...rest }) => { + const Icon = type === 'color' ? Color : Mono; + + return ( + + ); +}); + +export default Combine; diff --git a/src/Adobe/components/Mono.tsx b/src/Adobe/components/Mono.tsx new file mode 100644 index 00000000..83fdd105 --- /dev/null +++ b/src/Adobe/components/Mono.tsx @@ -0,0 +1,28 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + + + ); +}); + +export default Icon; diff --git a/src/Adobe/components/Text.tsx b/src/Adobe/components/Text.tsx new file mode 100644 index 00000000..45802f0a --- /dev/null +++ b/src/Adobe/components/Text.tsx @@ -0,0 +1,25 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + ); +}); + +export default Icon; diff --git a/src/Adobe/index.md b/src/Adobe/index.md new file mode 100644 index 00000000..d1bf6d3c --- /dev/null +++ b/src/Adobe/index.md @@ -0,0 +1,72 @@ +--- +nav: Components +group: Application +title: Adobe +atomId: Adobe +description: https://adobe.com +--- + +## Icons + +```tsx +import { Adobe } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Text + +```tsx +import { Adobe } from '@lobehub/icons'; + +export default () => ; +``` + +## Combine + +```tsx +import { Adobe } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Avatars + +```tsx +import { Adobe } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Colors + +```tsx +import { Adobe } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +import ColorPreview from '../components/ColorPreview'; + +export default () => ( + + + +); +``` diff --git a/src/Adobe/index.ts b/src/Adobe/index.ts new file mode 100644 index 00000000..9cfb5089 --- /dev/null +++ b/src/Adobe/index.ts @@ -0,0 +1,24 @@ +import Avatar from './components/Avatar'; +import Color from './components/Color'; +import Combine from './components/Combine'; +import Mono from './components/Mono'; +import Text from './components/Text'; +import { COLOR_PRIMARY, TITLE } from './style'; + +export type CompoundedIcon = typeof Mono & { + Avatar: typeof Avatar; + Color: typeof Color; + Combine: typeof Combine; + Text: typeof Text; + colorPrimary: string; + title: string; +}; + +const Icons = Mono as CompoundedIcon; +Icons.Color = Color; +Icons.Text = Text; +Icons.Combine = Combine; +Icons.Avatar = Avatar; +Icons.colorPrimary = COLOR_PRIMARY; +Icons.title = TITLE; +export default Icons; diff --git a/src/Adobe/style.ts b/src/Adobe/style.ts new file mode 100644 index 00000000..3a980056 --- /dev/null +++ b/src/Adobe/style.ts @@ -0,0 +1,4 @@ +export const TITLE = 'Adobe'; +export const TEXT_MULTIPLE = 0.6; +export const SPACE_MULTIPLE = 0.3; +export const COLOR_PRIMARY = '#EB1000'; diff --git a/src/AdobeFirefly/components/Avatar.tsx b/src/AdobeFirefly/components/Avatar.tsx new file mode 100644 index 00000000..5ad2dc37 --- /dev/null +++ b/src/AdobeFirefly/components/Avatar.tsx @@ -0,0 +1,23 @@ +import { memo } from 'react'; + +import IconAvatar, { type IconAvatarProps } from '@/IconAvatar'; + +import { COLOR_PRIMARY, TITLE } from '../style'; +import Mono from './Mono'; + +export type AvatarProps = Omit; + +const Avatar = memo(({ background, ...rest }) => { + return ( + + ); +}); + +export default Avatar; diff --git a/src/AdobeFirefly/components/Color.tsx b/src/AdobeFirefly/components/Color.tsx new file mode 100644 index 00000000..f9205e43 --- /dev/null +++ b/src/AdobeFirefly/components/Color.tsx @@ -0,0 +1,28 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + ); +}); + +export default Icon; diff --git a/src/AdobeFirefly/components/Combine.tsx b/src/AdobeFirefly/components/Combine.tsx new file mode 100644 index 00000000..eaad93ca --- /dev/null +++ b/src/AdobeFirefly/components/Combine.tsx @@ -0,0 +1,25 @@ +import { memo } from 'react'; + +import IconCombine, { type IconCombineProps } from '@/IconCombine'; + +import { SPACE_MULTIPLE, TEXT_MULTIPLE, TITLE } from '../style'; +import Avatar from './Avatar'; +import Text from './Text'; + +export type CombineProps = Omit; + +const Combine = memo(({ iconProps, ...rest }) => { + return ( + + ); +}); + +export default Combine; diff --git a/src/AdobeFirefly/components/Mono.tsx b/src/AdobeFirefly/components/Mono.tsx new file mode 100644 index 00000000..4bb905f2 --- /dev/null +++ b/src/AdobeFirefly/components/Mono.tsx @@ -0,0 +1,26 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + ); +}); + +export default Icon; diff --git a/src/AdobeFirefly/components/Text.tsx b/src/AdobeFirefly/components/Text.tsx new file mode 100644 index 00000000..e86740be --- /dev/null +++ b/src/AdobeFirefly/components/Text.tsx @@ -0,0 +1,25 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + ); +}); + +export default Icon; diff --git a/src/AdobeFirefly/index.md b/src/AdobeFirefly/index.md new file mode 100644 index 00000000..3526ccbd --- /dev/null +++ b/src/AdobeFirefly/index.md @@ -0,0 +1,67 @@ +--- +nav: Components +group: Application +title: Adobe (Firefly) +atomId: AdobeFirefly +description: https://firefly.adobe.com +--- + +## Icons + +```tsx +import { AdobeFirefly } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Text + +```tsx +import { AdobeFirefly } from '@lobehub/icons'; + +export default () => ; +``` + +## Combine + +```tsx +import { AdobeFirefly } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ; +``` + +## Avatars + +```tsx +import { AdobeFirefly } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Colors + +```tsx +import { AdobeFirefly } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +import ColorPreview from '../components/ColorPreview'; + +export default () => ( + + + +); +``` diff --git a/src/AdobeFirefly/index.ts b/src/AdobeFirefly/index.ts new file mode 100644 index 00000000..9cfb5089 --- /dev/null +++ b/src/AdobeFirefly/index.ts @@ -0,0 +1,24 @@ +import Avatar from './components/Avatar'; +import Color from './components/Color'; +import Combine from './components/Combine'; +import Mono from './components/Mono'; +import Text from './components/Text'; +import { COLOR_PRIMARY, TITLE } from './style'; + +export type CompoundedIcon = typeof Mono & { + Avatar: typeof Avatar; + Color: typeof Color; + Combine: typeof Combine; + Text: typeof Text; + colorPrimary: string; + title: string; +}; + +const Icons = Mono as CompoundedIcon; +Icons.Color = Color; +Icons.Text = Text; +Icons.Combine = Combine; +Icons.Avatar = Avatar; +Icons.colorPrimary = COLOR_PRIMARY; +Icons.title = TITLE; +export default Icons; diff --git a/src/AdobeFirefly/style.ts b/src/AdobeFirefly/style.ts new file mode 100644 index 00000000..95aa0790 --- /dev/null +++ b/src/AdobeFirefly/style.ts @@ -0,0 +1,4 @@ +export const TITLE = 'AdobeFirefly'; +export const TEXT_MULTIPLE = 0.75; +export const SPACE_MULTIPLE = 0.3; +export const COLOR_PRIMARY = '#EB1000'; diff --git a/src/Ai21/components/Avatar.tsx b/src/Ai21/components/Avatar.tsx new file mode 100644 index 00000000..12ec59f0 --- /dev/null +++ b/src/Ai21/components/Avatar.tsx @@ -0,0 +1,23 @@ +import { memo } from 'react'; + +import IconAvatar, { type IconAvatarProps } from '@/IconAvatar'; + +import { COLOR_GRADIENT, TITLE } from '../style'; +import Mono from './Mono'; + +export type AvatarProps = Omit; + +const Avatar = memo(({ background, size, ...rest }) => { + return ( + + ); +}); + +export default Avatar; diff --git a/src/Ai21/components/Brand.tsx b/src/Ai21/components/Brand.tsx new file mode 100644 index 00000000..ae48b297 --- /dev/null +++ b/src/Ai21/components/Brand.tsx @@ -0,0 +1 @@ +export { default } from './Text'; diff --git a/src/Ai21/components/BrandColor.tsx b/src/Ai21/components/BrandColor.tsx new file mode 100644 index 00000000..cdaafcde --- /dev/null +++ b/src/Ai21/components/BrandColor.tsx @@ -0,0 +1,31 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + + + + ); +}); + +export default Icon; diff --git a/src/Ai21/components/Color.tsx b/src/Ai21/components/Color.tsx new file mode 100644 index 00000000..04bf0a19 --- /dev/null +++ b/src/Ai21/components/Color.tsx @@ -0,0 +1,36 @@ +import { forwardRef } from 'react'; + +import { useFillId } from '@/hooks/useFillId'; +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + const { id, fill } = useFillId(TITLE); + return ( + + {TITLE} + + + + + + + + + ); +}); + +export default Icon; diff --git a/src/Ai21/components/Combine.tsx b/src/Ai21/components/Combine.tsx new file mode 100644 index 00000000..312e02e3 --- /dev/null +++ b/src/Ai21/components/Combine.tsx @@ -0,0 +1,24 @@ +import { memo } from 'react'; + +import IconCombine, { type IconCombineProps } from '@/IconCombine'; + +import { SPACE_MULTIPLE, TEXT_MULTIPLE, TITLE } from '../style'; +import Avatar from './Avatar'; +import Text from './Text'; + +export type CombineProps = Omit; +const Combine = memo(({ iconProps, ...rest }) => { + return ( + + ); +}); + +export default Combine; diff --git a/src/Ai21/components/Mono.tsx b/src/Ai21/components/Mono.tsx new file mode 100644 index 00000000..fecab91e --- /dev/null +++ b/src/Ai21/components/Mono.tsx @@ -0,0 +1,26 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + ); +}); + +export default Icon; diff --git a/src/Ai21/components/Text.tsx b/src/Ai21/components/Text.tsx new file mode 100644 index 00000000..70ed98e2 --- /dev/null +++ b/src/Ai21/components/Text.tsx @@ -0,0 +1,28 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + + + + ); +}); + +export default Icon; diff --git a/src/Ai21/index.md b/src/Ai21/index.md new file mode 100644 index 00000000..0e83880f --- /dev/null +++ b/src/Ai21/index.md @@ -0,0 +1,82 @@ +--- +nav: Components +group: Model +title: Ai21Labs (Jamba) +atomId: Ai21 +description: https://huggingface.co/ai21labs +--- + +## Icons + +```tsx +import { Ai21 } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + +); +``` + +## Text + +```tsx +import { Ai21 } from '@lobehub/icons'; + +export default () => ; +``` + +## Combine + +```tsx +import { Ai21 } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ; +``` + +## Brands + +```tsx +import { Ai21 } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Avatars + +```tsx +import { Ai21 } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + + +); +``` + +## Colors + +```tsx +import { Ai21 } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +import ColorPreview from '../components/ColorPreview'; + +export default () => ( + + + + +); +``` diff --git a/src/Ai21/index.ts b/src/Ai21/index.ts new file mode 100644 index 00000000..be14e1dd --- /dev/null +++ b/src/Ai21/index.ts @@ -0,0 +1,32 @@ +import Avatar from './components/Avatar'; +import Brand from './components/Brand'; +import BrandColor from './components/BrandColor'; +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; + Brand: typeof Brand; + BrandColor: typeof BrandColor; + 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.Brand = Brand; +Icons.BrandColor = BrandColor; +Icons.Combine = Combine; +Icons.Avatar = Avatar; +Icons.colorPrimary = COLOR_PRIMARY; +Icons.colorGradient = COLOR_GRADIENT; +Icons.title = TITLE; +export default Icons; diff --git a/src/Ai21/style.ts b/src/Ai21/style.ts new file mode 100644 index 00000000..25936002 --- /dev/null +++ b/src/Ai21/style.ts @@ -0,0 +1,5 @@ +export const TITLE = 'AI21'; +export const TEXT_MULTIPLE = 0.7; +export const SPACE_MULTIPLE = 0.2; +export const COLOR_PRIMARY = '#E91E63'; +export const COLOR_GRADIENT = 'linear-gradient(-45deg, #F68CB2, #E91E63)'; diff --git a/src/DeepMind/index.md b/src/DeepMind/index.md index 69dee67c..c5315bff 100644 --- a/src/DeepMind/index.md +++ b/src/DeepMind/index.md @@ -1,7 +1,7 @@ --- nav: Components group: Provider -title: DeepMind(Google) +title: Google(DeepMind) atomId: DeepMind description: https://deepmind.google --- diff --git a/src/FishAudio/components/Avatar.tsx b/src/FishAudio/components/Avatar.tsx new file mode 100644 index 00000000..d6bb8eb0 --- /dev/null +++ b/src/FishAudio/components/Avatar.tsx @@ -0,0 +1,22 @@ +import { memo } from 'react'; + +import IconAvatar, { type IconAvatarProps } from '@/IconAvatar'; + +import { COLOR_PRIMARY, TITLE } from '../style'; +import Mono from './Mono'; + +export type AvatarProps = Omit; + +const Avatar = memo(({ background, ...rest }) => { + return ( + + ); +}); + +export default Avatar; diff --git a/src/FishAudio/components/Combine.tsx b/src/FishAudio/components/Combine.tsx new file mode 100644 index 00000000..dfa6ada1 --- /dev/null +++ b/src/FishAudio/components/Combine.tsx @@ -0,0 +1,24 @@ +import { memo } from 'react'; + +import IconCombine, { type IconCombineProps } from '@/IconCombine'; + +import { SPACE_MULTIPLE, TEXT_MULTIPLE, TITLE } from '../style'; +import Mono from './Mono'; +import Text from './Text'; + +export type CombineProps = Omit; + +const Combine = memo(({ ...rest }) => { + return ( + + ); +}); + +export default Combine; diff --git a/src/FishAudio/components/Mono.tsx b/src/FishAudio/components/Mono.tsx new file mode 100644 index 00000000..2a472a84 --- /dev/null +++ b/src/FishAudio/components/Mono.tsx @@ -0,0 +1,32 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + + + + ); +}); + +export default Icon; diff --git a/src/FishAudio/components/Text.tsx b/src/FishAudio/components/Text.tsx new file mode 100644 index 00000000..d3fb4e1e --- /dev/null +++ b/src/FishAudio/components/Text.tsx @@ -0,0 +1,25 @@ +import { forwardRef } from 'react'; + +import type { IconType } from '@/types'; + +import { TITLE } from '../style'; + +const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => { + return ( + + {TITLE} + + + ); +}); + +export default Icon; diff --git a/src/FishAudio/index.md b/src/FishAudio/index.md new file mode 100644 index 00000000..352d1898 --- /dev/null +++ b/src/FishAudio/index.md @@ -0,0 +1,66 @@ +--- +nav: Components +group: Model +title: FishAudio (Bert) +atomId: FishAudio +description: /~https://github.com/fishaudio +--- + +## Icons + +```tsx +import { FishAudio } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ; +``` + +## Text + +```tsx +import { FishAudio } from '@lobehub/icons'; + +export default () => ; +``` + +## Combine + +```tsx +import { FishAudio } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + +); +``` + +## Avatars + +```tsx +import { FishAudio } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +export default () => ( + + + + +); +``` + +## Colors + +```tsx +import { FishAudio } from '@lobehub/icons'; +import { Flexbox } from 'react-layout-kit'; + +import ColorPreview from '../components/ColorPreview'; + +export default () => ( + + + +); +``` diff --git a/src/FishAudio/index.ts b/src/FishAudio/index.ts new file mode 100644 index 00000000..e7cb073a --- /dev/null +++ b/src/FishAudio/index.ts @@ -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; diff --git a/src/FishAudio/style.ts b/src/FishAudio/style.ts new file mode 100644 index 00000000..c33df1a9 --- /dev/null +++ b/src/FishAudio/style.ts @@ -0,0 +1,4 @@ +export const TITLE = 'FishAudio'; +export const TEXT_MULTIPLE = 0.5; +export const SPACE_MULTIPLE = 0.4; +export const COLOR_PRIMARY = '#fff'; diff --git a/src/index.ts b/src/index.ts index 725d088a..cec54237 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,6 @@ +export { default as Adobe, type CompoundedIcon as AdobeProps } from './Adobe'; +export { default as AdobeFirefly, type CompoundedIcon as AdobeFireflyProps } from './AdobeFirefly'; +export { default as Ai21, type CompoundedIcon as Ai21Props } from './Ai21'; export { default as Alibaba, type CompoundedIcon as AlibabaProps } from './Alibaba'; export { default as AntGroup, type CompoundedIcon as AntGroupProps } from './AntGroup'; export { default as Anthropic, type CompoundedIcon as AnthropicProps } from './Anthropic'; @@ -19,6 +22,7 @@ export { default as Dalle, type CompoundedIcon as DalleProps } from './Dalle'; export { default as Dbrx, type CompoundedIcon as DbrxProps } from './Dbrx'; export { default as DeepMind, type CompoundedIcon as DeepMindProps } from './DeepMind'; export { default as Fireworks, type CompoundedIcon as FireworksProps } from './Fireworks'; +export { default as FishAudio, type CompoundedIcon as FishAudioProps } from './FishAudio'; export { default as Gemini, type CompoundedIcon as GeminiProps } from './Gemini'; export { default as Gemma, type CompoundedIcon as GemmaProps } from './Gemma'; export { default as Github, type CompoundedIcon as GithubProps } from './Github';