Files
CodePilot/src/components/chat/CodePilotLogo.tsx
T
7418andClaude Opus 4.6 f861b3fca1 feat: slash command popover redesign, import dialog scroll fix, and new logo
- Slash command popover: add search box, group commands/skills with section
  headers, assign unique icons per built-in command, remove Built-in badge,
  show source labels for skills, deduplicate API skills with built-in names
- Import CLI Session dialog: fix list overflow and enable scrolling by
  replacing Radix ScrollArea with native overflow-y-auto
- New chat empty state: replace BotIcon with custom CodePilotLogo SVG
  component supporting light/dark theme

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:57:49 +08:00

76 lines
2.6 KiB
TypeScript

import { cn } from '@/lib/utils';
interface CodePilotLogoProps {
className?: string;
}
export function CodePilotLogo({ className }: CodePilotLogoProps) {
return (
<svg
viewBox="-150 -150 300 300"
xmlns="http://www.w3.org/2000/svg"
className={cn("rounded-full", className)}
>
{/* Background: gray in light, dark in dark mode */}
<rect
x="-150" y="-150" width="300" height="300"
className="fill-[#e0e0e0] dark:fill-[#2a2a2a]"
/>
<defs>
<g id="codepilot-cube">
{/* Top Face */}
<path
d="M0,0 L0,-30 L25.98,-15 L25.98,15 Z"
className="fill-[#e0e0e0] stroke-black dark:fill-[#2a2a2a] dark:stroke-white"
strokeWidth="2.5"
strokeLinejoin="round"
strokeLinecap="round"
/>
{/* Left Face */}
<path
d="M0,0 L25.98,15 L0,30 L-25.98,15 Z"
className="fill-[#e0e0e0] stroke-black dark:fill-[#2a2a2a] dark:stroke-white"
strokeWidth="2.5"
strokeLinejoin="round"
strokeLinecap="round"
/>
{/* Right Face */}
<path
d="M0,0 L-25.98,15 L-25.98,-15 L0,-30 Z"
className="fill-[#e0e0e0] stroke-black dark:fill-[#2a2a2a] dark:stroke-white"
strokeWidth="2.5"
strokeLinejoin="round"
strokeLinecap="round"
/>
</g>
</defs>
{/* Layer Z = -1 (Bottom) */}
<use href="#codepilot-cube" x="-25.98" y="15" />
<use href="#codepilot-cube" x="25.98" y="15" />
<use href="#codepilot-cube" x="0" y="30" />
<use href="#codepilot-cube" x="-25.98" y="45" />
<use href="#codepilot-cube" x="25.98" y="45" />
{/* Layer Z = 0 (Middle) */}
<use href="#codepilot-cube" x="0" y="-30" />
<use href="#codepilot-cube" x="-25.98" y="-15" />
<use href="#codepilot-cube" x="25.98" y="-15" />
<use href="#codepilot-cube" x="0" y="0" />
<use href="#codepilot-cube" x="-51.96" y="0" />
<use href="#codepilot-cube" x="51.96" y="0" />
<use href="#codepilot-cube" x="-25.98" y="15" />
<use href="#codepilot-cube" x="25.98" y="15" />
<use href="#codepilot-cube" x="0" y="30" />
{/* Layer Z = 1 (Top) */}
<use href="#codepilot-cube" x="-25.98" y="-45" />
<use href="#codepilot-cube" x="25.98" y="-45" />
<use href="#codepilot-cube" x="0" y="-30" />
<use href="#codepilot-cube" x="-25.98" y="-15" />
<use href="#codepilot-cube" x="25.98" y="-15" />
</svg>
);
}