mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
216 lines
5.5 KiB
TypeScript
216 lines
5.5 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Qwen Team
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Edit mode related icons
|
|
*/
|
|
|
|
import type React from 'react';
|
|
import type { IconProps } from './types.js';
|
|
|
|
/**
|
|
* Edit pencil icon (16x16)
|
|
* Used for "Ask before edits" mode
|
|
*/
|
|
export const EditPencilIcon: React.FC<IconProps> = ({
|
|
size = 16,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 16 16"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path
|
|
fillRule="evenodd"
|
|
d="M11.013 2.513a1.75 1.75 0 0 1 2.475 2.474L6.226 12.25a2.751 2.751 0 0 1-.892.596l-2.047.848a.75.75 0 0 1-.98-.98l.848-2.047a2.75 2.75 0 0 1 .596-.892l7.262-7.261Z"
|
|
clipRule="evenodd"
|
|
/>
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Auto/fast-forward icon (16x16)
|
|
* Used for "Edit automatically" mode
|
|
*/
|
|
export const AutoEditIcon: React.FC<IconProps> = ({
|
|
size = 16,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 16 16"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path d="M2.53 3.956A1 1 0 0 0 1 4.804v6.392a1 1 0 0 0 1.53.848l5.113-3.196c.16-.1.279-.233.357-.383v2.73a1 1 0 0 0 1.53.849l5.113-3.196a1 1 0 0 0 0-1.696L9.53 3.956A1 1 0 0 0 8 4.804v2.731a.992.992 0 0 0-.357-.383L2.53 3.956Z" />
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Plan mode/bars icon (16x16)
|
|
* Used for "Plan mode"
|
|
*/
|
|
export const PlanModeIcon: React.FC<IconProps> = ({
|
|
size = 16,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 16 16"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path d="M4.5 2a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-11a.5.5 0 0 0-.5-.5h-1ZM10.5 2a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-11a.5.5 0 0 0-.5-.5h-1Z" />
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Code brackets icon (20x20)
|
|
* Used for active file indicator
|
|
*/
|
|
export const CodeBracketsIcon: React.FC<IconProps> = ({
|
|
size = 20,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 20 20"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path
|
|
fillRule="evenodd"
|
|
d="M6.28 5.22a.75.75 0 0 1 0 1.06L2.56 10l3.72 3.72a.75.75 0 0 1-1.06 1.06L.97 10.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Zm7.44 0a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L17.44 10l-3.72-3.72a.75.75 0 0 1 0-1.06ZM11.377 2.011a.75.75 0 0 1 .612.867l-2.5 14.5a.75.75 0 0 1-1.478-.255l2.5-14.5a.75.75 0 0 1 .866-.612Z"
|
|
clipRule="evenodd"
|
|
/>
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Hide context (eye slash) icon (20x20)
|
|
* Used to indicate the active selection will NOT be auto-loaded into context
|
|
*/
|
|
export const HideContextIcon: React.FC<IconProps> = ({
|
|
size = 20,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 20 20"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path
|
|
fillRule="evenodd"
|
|
d="M3.28 2.22a.75.75 0 0 0-1.06 1.06l14.5 14.5a.75.75 0 1 0 1.06-1.06l-1.745-1.745a10.029 10.029 0 0 0 3.3-4.38 1.651 1.651 0 0 0 0-1.185A10.004 10.004 0 0 0 9.999 3a9.956 9.956 0 0 0-4.744 1.194L3.28 2.22ZM7.752 6.69l1.092 1.092a2.5 2.5 0 0 1 3.374 3.373l1.091 1.092a4 4 0 0 0-5.557-5.557Z"
|
|
clipRule="evenodd"
|
|
/>
|
|
<path d="m10.748 13.93 2.523 2.523a9.987 9.987 0 0 1-3.27.547c-4.258 0-7.894-2.66-9.337-6.41a1.651 1.651 0 0 1 0-1.186A10.007 10.007 0 0 1 2.839 6.02L6.07 9.252a4 4 0 0 0 4.678 4.678Z" />
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Slash command icon (20x20)
|
|
* Used for command menu button
|
|
*/
|
|
export const SlashCommandIcon: React.FC<IconProps> = ({
|
|
size = 20,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 20 20"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path
|
|
fillRule="evenodd"
|
|
d="M12.528 3.047a.75.75 0 0 1 .449.961L8.433 16.504a.75.75 0 1 1-1.41-.512l4.544-12.496a.75.75 0 0 1 .961-.449Z"
|
|
clipRule="evenodd"
|
|
/>
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Link/attachment icon (20x20)
|
|
* Used for attach context button
|
|
*/
|
|
export const LinkIcon: React.FC<IconProps> = ({
|
|
size = 20,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 20 20"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path
|
|
fillRule="evenodd"
|
|
d="M15.621 4.379a3 3 0 0 0-4.242 0l-7 7a3 3 0 0 0 4.241 4.243h.001l.497-.5a.75.75 0 0 1 1.064 1.057l-.498.501-.002.002a4.5 4.5 0 0 1-6.364-6.364l7-7a4.5 4.5 0 0 1 6.368 6.36l-3.455 3.553A2.625 2.625 0 1 1 9.52 9.52l3.45-3.451a.75.75 0 1 1 1.061 1.06l-3.45 3.451a1.125 1.125 0 0 0 1.587 1.595l3.454-3.553a3 3 0 0 0 0-4.242Z"
|
|
clipRule="evenodd"
|
|
/>
|
|
</svg>
|
|
);
|
|
|
|
/**
|
|
* Open diff icon (16x16)
|
|
* Used for opening diff in VS Code
|
|
*/
|
|
export const OpenDiffIcon: React.FC<IconProps> = ({
|
|
size = 16,
|
|
className,
|
|
...props
|
|
}) => (
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 16 16"
|
|
fill="currentColor"
|
|
width={size}
|
|
height={size}
|
|
className={className}
|
|
aria-hidden="true"
|
|
{...props}
|
|
>
|
|
<path d="M13.5 7l-4-4v3h-6v2h6v3l4-4z" />
|
|
</svg>
|
|
);
|