Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ feat: add jina logo #74

Merged
merged 2 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/Jina/components/Avatar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use client';

import { memo } from 'react';

import IconAvatar, { type IconAvatarProps } from '@/features/IconAvatar';

import { COLOR_PRIMARY, TITLE } from '../style';
import Mono from './Mono';

export type AvatarProps = Omit<IconAvatarProps, 'Icon'>;

const Avatar = memo<AvatarProps>(({ background, ...rest }) => {
return (
<IconAvatar Icon={Mono} aria-label={TITLE} background={background || COLOR_PRIMARY} {...rest} />
);
});

export default Avatar;
37 changes: 37 additions & 0 deletions src/Jina/components/Color.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
'use client';

import { forwardRef } from 'react';

import type { IconType } from '@/types';

import { TITLE } from '../style';

const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => {
return (
<svg
height={size}
ref={ref}
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="M1.80913 16.9737C2.65296 16.9737 3.33701 16.2897 3.33701 15.4459C3.33701 14.602 2.65296 13.918 1.80913 13.918C0.965306 13.918 0.28125 14.602 0.28125 15.4459C0.28125 16.2897 0.965306 16.9737 1.80913 16.9737Z"
fill="#EB6161"
/>
<path
d="M6.62248 10.6329C6.82221 10.6329 6.98198 10.7927 6.98198 10.9924L6.96201 13.9184C6.96201 15.5861 5.62387 16.9442 3.95618 16.9741H3.90625V13.9284H3.91624L3.92622 11.0024C3.92622 10.8027 4.086 10.6429 4.28572 10.6429H6.62248V10.6329ZM11.316 10.6329C11.5157 10.6329 11.6755 10.7927 11.6755 10.9924V15.0868C11.6755 15.2865 11.5157 15.4463 11.316 15.4463H8.97922C8.77949 15.4463 8.61971 15.2865 8.61971 15.0868V10.9924C8.61971 10.7927 8.77949 10.6329 8.97922 10.6329H11.316ZM14.9909 10.623H15.0408C16.5387 10.6429 17.757 11.8512 17.797 13.3492V15.0768C17.797 15.2765 17.6372 15.4363 17.4375 15.4363H13.6627C13.463 15.4363 13.3032 15.2765 13.3032 15.0768V10.9825C13.3032 10.7827 13.463 10.623 13.6627 10.623H14.9909ZM21.1723 15.3963C19.9141 15.3164 18.9055 14.2679 18.9055 12.9897C18.9055 11.6615 19.984 10.583 21.3121 10.583C22.5903 10.583 23.6389 11.5816 23.7188 12.8499V15.0368C23.7188 15.2366 23.559 15.3963 23.3593 15.3963H21.1723Z"
fill="#009191"
/>
<path
d="M10.1426 10.0636C10.9865 10.0636 11.6705 9.37952 11.6705 8.53569C11.6705 7.69187 10.9865 7.00781 10.1426 7.00781C9.2988 7.00781 8.61475 7.69187 8.61475 8.53569C8.61475 9.37952 9.2988 10.0636 10.1426 10.0636Z"
fill="#FBCB67"
/>
</svg>
);
});

export default Icon;
17 changes: 17 additions & 0 deletions src/Jina/components/Combine.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
'use client';

import { memo } from 'react';

import { type IconCombineProps } from '@/features/IconCombine';

import Mono from './Text';
import Color from './TextColor';

export interface CombineProps extends Omit<IconCombineProps, 'Icon' | 'Text'> {
type?: 'color' | 'mono';
}
const Combine = memo<CombineProps>(({ type = 'mono', ...rest }) => {
return type === 'color' ? <Color {...(rest as any)} /> : <Mono {...(rest as any)} />;
});

export default Combine;
30 changes: 30 additions & 0 deletions src/Jina/components/Mono.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
'use client';

import { forwardRef } from 'react';

import type { IconType } from '@/types';

import { TITLE } from '../style';

const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => {
return (
<svg
fill="currentColor"
fillRule="evenodd"
height={size}
ref={ref}
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="M1.80913 16.9737C2.65296 16.9737 3.33701 16.2897 3.33701 15.4459C3.33701 14.602 2.65296 13.918 1.80913 13.918C0.965306 13.918 0.28125 14.602 0.28125 15.4459C0.28125 16.2897 0.965306 16.9737 1.80913 16.9737Z" />
<path d="M6.62248 10.6329C6.82221 10.6329 6.98198 10.7927 6.98198 10.9924L6.96201 13.9184C6.96201 15.5861 5.62387 16.9442 3.95618 16.9741H3.90625V13.9284H3.91624L3.92622 11.0024C3.92622 10.8027 4.086 10.6429 4.28572 10.6429H6.62248V10.6329ZM11.316 10.6329C11.5157 10.6329 11.6755 10.7927 11.6755 10.9924V15.0868C11.6755 15.2865 11.5157 15.4463 11.316 15.4463H8.97922C8.77949 15.4463 8.61971 15.2865 8.61971 15.0868V10.9924C8.61971 10.7927 8.77949 10.6329 8.97922 10.6329H11.316ZM14.9909 10.623H15.0408C16.5387 10.6429 17.757 11.8512 17.797 13.3492V15.0768C17.797 15.2765 17.6372 15.4363 17.4375 15.4363H13.6627C13.463 15.4363 13.3032 15.2765 13.3032 15.0768V10.9825C13.3032 10.7827 13.463 10.623 13.6627 10.623H14.9909ZM21.1723 15.3963C19.9141 15.3164 18.9055 14.2679 18.9055 12.9897C18.9055 11.6615 19.984 10.583 21.3121 10.583C22.5903 10.583 23.6389 11.5816 23.7188 12.8499V15.0368C23.7188 15.2366 23.559 15.3963 23.3593 15.3963H21.1723Z" />
<path d="M10.1426 10.0636C10.9865 10.0636 11.6705 9.37952 11.6705 8.53569C11.6705 7.69187 10.9865 7.00781 10.1426 7.00781C9.2988 7.00781 8.61475 7.69187 8.61475 8.53569C8.61475 9.37952 9.2988 10.0636 10.1426 10.0636Z" />
</svg>
);
});

export default Icon;
29 changes: 29 additions & 0 deletions src/Jina/components/Text.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
'use client';

import { forwardRef } from 'react';

import type { IconType } from '@/types';

import { TITLE } from '../style';

const Text: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => {
return (
<svg
fill="currentColor"
fillRule="evenodd"
height={size}
ref={ref}
style={{ flex: 'none', lineHeight: 1, ...style }}
viewBox="0 0 56 24"
xmlns="http://www.w3.org/2000/svg"
{...rest}
>
<title>{TITLE}</title>
<path d="M3.67936 23.9993C5.71141 23.9993 7.35872 22.352 7.35872 20.32C7.35872 18.2879 5.71141 16.6406 3.67936 16.6406C1.64731 16.6406 0 18.2879 0 20.32C0 22.352 1.64731 23.9993 3.67936 23.9993Z" />
<path d="M15.2706 8.73059C15.7515 8.73059 16.1363 9.11536 16.1363 9.59632L16.0882 16.6424C16.0882 20.6584 12.8658 23.929 8.84973 24.0011H8.72949V16.6665H8.75354L8.77759 9.62037C8.77759 9.13941 9.16236 8.75464 9.64332 8.75464H15.2706V8.73059ZM26.5732 8.73059C27.0541 8.73059 27.4389 9.11536 27.4389 9.59632V19.456C27.4389 19.937 27.0541 20.3218 26.5732 20.3218H20.9459C20.465 20.3218 20.0802 19.937 20.0802 19.456V9.59632C20.0802 9.11536 20.465 8.73059 20.9459 8.73059H26.5732ZM35.4229 8.70654H35.5431C39.1503 8.75464 42.0842 11.6645 42.1804 15.2717V19.432C42.1804 19.913 41.7956 20.2977 41.3147 20.2977H32.2245C31.7435 20.2977 31.3588 19.913 31.3588 19.432V9.57228C31.3588 9.09131 31.7435 8.70654 32.2245 8.70654H35.4229ZM50.3086 20.2015C47.2786 20.0091 44.8497 17.4841 44.8497 14.4059C44.8497 11.2075 47.4469 8.61035 50.6453 8.61035C53.7235 8.61035 56.2485 11.0152 56.4409 14.0693V19.3358C56.4409 19.8168 56.0561 20.2015 55.5752 20.2015H50.3086Z" />
<path d="M23.7477 7.35872C25.7798 7.35872 27.4271 5.71141 27.4271 3.67936C27.4271 1.64731 25.7798 0 23.7477 0C21.7157 0 20.0684 1.64731 20.0684 3.67936C20.0684 5.71141 21.7157 7.35872 23.7477 7.35872Z" />
</svg>
);
});

export default Text;
38 changes: 38 additions & 0 deletions src/Jina/components/TextColor.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
'use client';

import { forwardRef } from 'react';

import type { IconType } from '@/types';

import { TITLE } from '../style';

const Icon: IconType = forwardRef(({ size = '1em', style, ...rest }, ref) => {
return (
<svg
fill="currentColor"
fillRule="evenodd"
height={size}
ref={ref}
style={{ flex: 'none', lineHeight: 1, ...style }}
viewBox="0 0 58 24"
xmlns="http://www.w3.org/2000/svg"
{...rest}
>
<title>{TITLE}</title>
<path
d="M4.45866 23.9896C6.49071 23.9896 8.13801 22.3423 8.13801 20.3102C8.13801 18.2782 6.49071 16.6309 4.45866 16.6309C2.4266 16.6309 0.779297 18.2782 0.779297 20.3102C0.779297 22.3423 2.4266 23.9896 4.45866 23.9896Z"
fill="#EB6161"
/>
<path
d="M16.0499 8.72083C16.5308 8.72083 16.9156 9.1056 16.9156 9.58656L16.8675 16.6326C16.8675 20.6487 13.6451 23.9192 9.62903 23.9914H9.50879V16.6567H9.53284L9.55689 9.61061C9.55689 9.12964 9.94166 8.74487 10.4226 8.74487H16.0499V8.72083ZM27.3525 8.72083C27.8334 8.72083 28.2182 9.1056 28.2182 9.58656V19.4463C28.2182 19.9272 27.8334 20.312 27.3525 20.312H21.7252C21.2443 20.312 20.8595 19.9272 20.8595 19.4463V9.58656C20.8595 9.1056 21.2443 8.72083 21.7252 8.72083H27.3525ZM36.2022 8.69678H36.3224C39.9296 8.74487 42.8635 11.6547 42.9597 15.2619V19.4222C42.9597 19.9032 42.5749 20.288 42.094 20.288H33.0038C32.5228 20.288 32.138 19.9032 32.138 19.4222V9.56251C32.138 9.08155 32.5228 8.69678 33.0038 8.69678H36.2022ZM51.0879 20.1918C48.0579 19.9994 45.629 17.4743 45.629 14.3962C45.629 11.1978 48.2262 8.60059 51.4246 8.60059C54.5028 8.60059 57.0278 11.0054 57.2202 14.0595V19.326C57.2202 19.807 56.8354 20.1918 56.3545 20.1918H51.0879Z"
fill="#009191"
/>
<path
d="M24.527 7.34895C26.5591 7.34895 28.2064 5.70165 28.2064 3.66959C28.2064 1.63754 26.5591 -0.00976562 24.527 -0.00976562C22.495 -0.00976562 20.8477 1.63754 20.8477 3.66959C20.8477 5.70165 22.495 7.34895 24.527 7.34895Z"
fill="#FBCB67"
/>
</svg>
);
});

export default Icon;
72 changes: 72 additions & 0 deletions src/Jina/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
nav: Components
group: Provider
title: Jina AI
atomId: Jina
description: https://jina.ai
---

## Icons

```tsx
import { Jina } from '@lobehub/icons';
import { Flexbox } from 'react-layout-kit';

export default () => (
<Flexbox gap={16} horizontal>
<Jina size={64} />
<Jina.Color size={64} />
</Flexbox>
);
```

## Text

```tsx
import { Jina } from '@lobehub/icons';

export default () => <Jina.Text size={48} />;
```

## Combine

```tsx
import { Jina } from '@lobehub/icons';
import { Flexbox } from 'react-layout-kit';

export default () => (
<Flexbox gap={16} align={'flex-start'}>
<Jina.Combine size={64} />
<Jina.Combine size={64} type={'color'} />
</Flexbox>
);
```

## Avatars

```tsx
import { Jina } from '@lobehub/icons';
import { Flexbox } from 'react-layout-kit';

export default () => (
<Flexbox gap={16} horizontal>
<Jina.Avatar size={64} />
<Jina.Avatar size={64} shape={'square'} />
</Flexbox>
);
```

## Colors

```tsx
import { Jina } from '@lobehub/icons';
import { Flexbox } from 'react-layout-kit';

import ColorPreview from '../components/ColorPreview';

export default () => (
<Flexbox gap={16} horizontal>
<ColorPreview color={Jina.colorPrimary} />
</Flexbox>
);
```
27 changes: 27 additions & 0 deletions src/Jina/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
'use client';

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;
4 changes: 4 additions & 0 deletions src/Jina/style.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export const TITLE = 'Jina';
export const TEXT_MULTIPLE = 0.75;
export const SPACE_MULTIPLE = 0.2;
export const COLOR_PRIMARY = '#009191';
2 changes: 2 additions & 0 deletions src/features/providerConfig.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import Higress from '@/Higress';
import HuggingFace from '@/HuggingFace';
import Hunyuan from '@/Hunyuan';
import InternLM from '@/InternLM';
import Jina from '@/Jina';
import LmStudio from '@/LmStudio';
import LobeHub from '@/LobeHub';
import Minimax from '@/Minimax';
Expand Down Expand Up @@ -195,4 +196,5 @@ export const providerMappings: ProviderMapping[] = [
{ Icon: GiteeAI, combineMultiple: 0.95, keywords: [ModelProvider.GiteeAI] },
{ Icon: ModelScope, combineMultiple: 0.95, keywords: [ModelProvider.ModelScope] },
{ Icon: VertexAI, keywords: [ModelProvider.VertexAI] },
{ Icon: Jina, keywords: [ModelProvider.Jina] },
];
1 change: 1 addition & 0 deletions src/features/providerEnum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export enum ModelProvider {
HuggingFace = 'huggingface',
Hunyuan = 'hunyuan',
InternLM = 'internlm',
Jina = 'jina',
LmStudio = 'lmstudio',
LobeHub = 'lobehub',
Minimax = 'minimax',
Expand Down
1 change: 1 addition & 0 deletions src/icons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ export { default as HuggingFace, type CompoundedIcon as HuggingFaceProps } from
export { default as Hunyuan, type CompoundedIcon as HunyuanProps } from './Hunyuan';
export { default as Ideogram, type CompoundedIcon as IdeogramProps } from './Ideogram';
export { default as InternLM, type CompoundedIcon as InternLMProps } from './InternLM';
export { default as Jina, type CompoundedIcon as JinaProps } from './Jina';
export { default as Kimi, type CompoundedIcon as KimiProps } from './Kimi';
export { default as Kling, type CompoundedIcon as KlingProps } from './Kling';
export { default as LangChain, type CompoundedIcon as LangChainProps } from './LangChain';
Expand Down
19 changes: 19 additions & 0 deletions src/toc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1194,6 +1194,25 @@ const toc: IconToc[] = [
},
title: 'InternLM',
},
{
color: '#009191',
desc: 'https://jina.ai',
docsUrl: 'jina',
fullTitle: 'Jina AI',
group: 'provider',
id: 'Jina',
param: {
hasAvatar: true,
hasBrand: false,
hasBrandColor: false,
hasColor: true,
hasCombine: true,
hasText: true,
hasTextCn: false,
hasTextColor: false,
},
title: 'Jina',
},
{
color: '#000',
desc: 'https://kimi.moonshot.cn',
Expand Down