- 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>
76 lines
2.6 KiB
TypeScript
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>
|
|
);
|
|
}
|