mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-02 20:43:36 +00:00
feat: use official Gemini icon asset
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import type { ComponentType, SVGProps } from 'react';
|
import type { ComponentType, ImgHTMLAttributes, SVGProps } from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import type { AgentModel, ModelProvider } from '@automaker/types';
|
import type { AgentModel, ModelProvider } from '@automaker/types';
|
||||||
import { getProviderFromModel } from '@/lib/utils';
|
import { getProviderFromModel } from '@/lib/utils';
|
||||||
@@ -166,8 +166,36 @@ export function CursorIcon(props: Omit<ProviderIconProps, 'provider'>) {
|
|||||||
return <ProviderIcon provider={PROVIDER_ICON_KEYS.cursor} {...props} />;
|
return <ProviderIcon provider={PROVIDER_ICON_KEYS.cursor} {...props} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function GeminiIcon(props: Omit<ProviderIconProps, 'provider'>) {
|
const GEMINI_ICON_URL = new URL('../../assets/icons/gemini-icon.svg', import.meta.url).toString();
|
||||||
return <ProviderIcon provider={PROVIDER_ICON_KEYS.gemini} {...props} />;
|
const GEMINI_ICON_ALT = 'Gemini';
|
||||||
|
|
||||||
|
type GeminiIconProps = Omit<ImgHTMLAttributes<HTMLImageElement>, 'src'> & {
|
||||||
|
title?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export function GeminiIcon({ title, className, ...props }: GeminiIconProps) {
|
||||||
|
const {
|
||||||
|
role,
|
||||||
|
'aria-label': ariaLabel,
|
||||||
|
'aria-labelledby': ariaLabelledby,
|
||||||
|
'aria-hidden': ariaHidden,
|
||||||
|
...rest
|
||||||
|
} = props;
|
||||||
|
const hasAccessibleLabel = Boolean(title || ariaLabel || ariaLabelledby);
|
||||||
|
const fallbackAlt = hasAccessibleLabel ? (title ?? ariaLabel ?? GEMINI_ICON_ALT) : '';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<img
|
||||||
|
src={GEMINI_ICON_URL}
|
||||||
|
className={cn('inline-block', className)}
|
||||||
|
role={role ?? (hasAccessibleLabel ? 'img' : 'presentation')}
|
||||||
|
aria-hidden={ariaHidden ?? !hasAccessibleLabel}
|
||||||
|
aria-label={ariaLabel}
|
||||||
|
aria-labelledby={ariaLabelledby}
|
||||||
|
alt={fallbackAlt}
|
||||||
|
{...rest}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function GrokIcon(props: Omit<ProviderIconProps, 'provider'>) {
|
export function GrokIcon(props: Omit<ProviderIconProps, 'provider'>) {
|
||||||
|
|||||||
Reference in New Issue
Block a user