/**
* SVG icon set — geometry derived from Lucide (https://lucide.dev), MIT.
*
* We inline the paths instead of pulling in `lucide-react` to keep the
* production bundle tight. The icons follow Lucide conventions:
* - 24×24 design grid
* - 2px stroke (1.5 for very small chrome icons)
* - round caps & joins
* - currentColor everywhere so CSS controls tone
*
* When adding a new icon, copy the geometry from the official Lucide
* source (https://github.com/lucide-icons/lucide/tree/main/icons) so the
* whole set stays visually consistent.
*/
import React from 'react'
export function IconBrain() {
return (
)
}
export function IconTool() {
return (
)
}
export function IconStop() {
return (
)
}
export function IconSend() {
return (
)
}
export function IconCopy() {
return (
)
}
export function IconCheck() {
return (
)
}
/**
* Welcome-state chat icon. Lucide `message-square-text`: a squared bubble
* with two transcript lines, which reads as "a real conversation" much
* better than a generic empty bubble at large sizes.
*/
export function IconChat() {
return (
)
}
export function IconPaperclip() {
return (
)
}
export function IconChevron({ down }: { down?: boolean }) {
return (
)
}
export function IconPlus() {
return (
)
}
export function IconSearch() {
return (
)
}
export function IconTrash() {
return (
)
}
export function IconBoard() {
return (
)
}
export function IconActivity() {
return (
)
}
export function IconShield() {
return (
)
}
/**
* Agent-avatar sparkle. Lucide `sparkles`: one large 4-point burst plus
* two small accent sparks — reads as "AI/magic" without the generic
* single-star look.
*/
export function IconSparkle() {
return (
)
}
/** Lucide `arrow-right` — two crisp strokes, no diagonal artifacts. */
export function IconArrowRight() {
return (
)
}
export function IconGate() {
return (
)
}
export function IconZap() {
return (
)
}
// ── Work Item / Runtime Panel icons ──────────────────────────────────────
export function IconWorkItem() {
return (
)
}
export function IconGatePass() {
return (
)
}
export function IconGateReject() {
return (
)
}
export function IconClock() {
return (
)
}
export function IconHandoff() {
return (
)
}
export function IconTimeline() {
return (
)
}
export function IconClose() {
return (
)
}
// ── Mode / lock icons (shared by the composer mode chip) ─────────────────
/**
* Lucide `lock` — the classic shackle + body. Size defaults to 12px so it
* tucks nicely inside a chip; pass a size prop to scale.
*/
export function IconLock({ size = 12 }: { size?: number } = {}) {
return (
)
}
/** Lucide `user-round` — proportional head + shoulders, perfect for Task mode. */
export function IconUserRound({ size = 14 }: { size?: number } = {}) {
return (
)
}
/** Lucide `building-2` — multi-story office building, reads as "company". */
export function IconBuilding({ size = 14 }: { size?: number } = {}) {
return (
)
}
/**
* Compact 3-spark "Sparkles" for the Org mode tile. We reuse the full
* `sparkles` geometry but at a smaller default size — same family, less
* visual weight than the agent avatar usage.
*/
export function IconSparkles({ size = 14 }: { size?: number } = {}) {
return (
)
}