ui: Clean up unused icons (#52282)

Danilo Leal created

This PR removes a bunch of unused icons in the codebase. Just cleaning
it up!

Release Notes:

- N/A

Change summary

assets/icons/ai.svg                                              | 27 --
assets/icons/cog.svg                                             |  1 
assets/icons/ellipsis_vertical.svg                               |  5 
assets/icons/menu_alt.svg                                        |  3 
assets/icons/shield_check.svg                                    |  4 
assets/icons/swatch_book.svg                                     |  1 
assets/icons/terminal_ghost.svg                                  |  4 
assets/icons/threads_sidebar_right_closed.svg                    |  5 
assets/icons/threads_sidebar_right_open.svg                      |  5 
assets/icons/tool_read.svg                                       |  7 
assets/icons/tool_regex.svg                                      |  4 
crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs |  4 
crates/agent_ui/src/conversation_view.rs                         |  2 
crates/agent_ui/src/language_model_selector.rs                   |  2 
crates/agent_ui/src/test_support.rs                              |  2 
crates/agent_ui/src/text_thread_editor.rs                        |  4 
crates/assistant_text_thread/src/assistant_text_thread_tests.rs  |  4 
crates/icons/src/icons.rs                                        | 12 
18 files changed, 9 insertions(+), 87 deletions(-)

Detailed changes

assets/icons/ai.svg 🔗

@@ -1,27 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-    <path d="M10.5 8.75V10.5C8.43097 10.5 7.56903 10.5 5.5 10.5V10L10.5 6V5.5H5.5V7.25" stroke="black" stroke-width="1.2"/>
-    <path d="M1.5 8.5C1.77614 8.5 2 8.27614 2 8C2 7.72386 1.77614 7.5 1.5 7.5C1.22386 7.5 1 7.72386 1 8C1 8.27614 1.22386 8.5 1.5 8.5Z" fill="black"/>
-    <path d="M2.49976 6.33002C2.7759 6.33002 2.99976 6.10616 2.99976 5.83002C2.99976 5.55387 2.7759 5.33002 2.49976 5.33002C2.22361 5.33002 1.99976 5.55387 1.99976 5.83002C1.99976 6.10616 2.22361 6.33002 2.49976 6.33002Z" fill="black"/>
-    <path d="M2.49976 10.66C2.7759 10.66 2.99976 10.4361 2.99976 10.16C2.99976 9.88383 2.7759 9.65997 2.49976 9.65997C2.22361 9.65997 1.99976 9.88383 1.99976 10.16C1.99976 10.4361 2.22361 10.66 2.49976 10.66Z" fill="black"/>
-    <path d="M14.5 8.5C14.7761 8.5 15 8.27614 15 8C15 7.72386 14.7761 7.5 14.5 7.5C14.2239 7.5 14 7.72386 14 8C14 8.27614 14.2239 8.5 14.5 8.5Z" fill="black"/>
-    <path d="M13.5 6.33002C13.7761 6.33002 14 6.10616 14 5.83002C14 5.55387 13.7761 5.33002 13.5 5.33002C13.2239 5.33002 13 5.55387 13 5.83002C13 6.10616 13.2239 6.33002 13.5 6.33002Z" fill="black"/>
-    <path d="M13.5 10.66C13.7761 10.66 14 10.4361 14 10.16C14 9.88383 13.7761 9.65997 13.5 9.65997C13.2239 9.65997 13 9.88383 13 10.16C13 10.4361 13.2239 10.66 13.5 10.66Z" fill="black"/>
-    <path d="M7.99219 2C8.26833 2 8.49219 1.77614 8.49219 1.5C8.49219 1.22386 8.26833 1 7.99219 1C7.71605 1 7.49219 1.22386 7.49219 1.5C7.49219 1.77614 7.71605 2 7.99219 2Z" fill="black"/>
-    <path d="M5.5 3C5.77614 3 6 2.77614 6 2.5C6 2.22386 5.77614 2 5.5 2C5.22386 2 5 2.22386 5 2.5C5 2.77614 5.22386 3 5.5 3Z" fill="black"/>
-    <path d="M3.5 4C3.77614 4 4 3.77614 4 3.5C4 3.22386 3.77614 3 3.5 3C3.22386 3 3 3.22386 3 3.5C3 3.77614 3.22386 4 3.5 4Z" fill="black"/>
-    <path d="M3.49976 13C3.7759 13 3.99976 12.7761 3.99976 12.5C3.99976 12.2239 3.7759 12 3.49976 12C3.22361 12 2.99976 12.2239 2.99976 12.5C2.99976 12.7761 3.22361 13 3.49976 13Z" fill="black"/>
-    <path d="M1.5 12.5C1.77614 12.5 2 12.2761 2 12C2 11.7239 1.77614 11.5 1.5 11.5C1.22386 11.5 1 11.7239 1 12C1 12.2761 1.22386 12.5 1.5 12.5Z" fill="black"/>
-    <path d="M1.5 4.5C1.77614 4.5 2 4.27614 2 4C2 3.72386 1.77614 3.5 1.5 3.5C1.22386 3.5 1 3.72386 1 4C1 4.27614 1.22386 4.5 1.5 4.5Z" fill="black"/>
-    <path d="M14.5 12.5C14.7761 12.5 15 12.2761 15 12C15 11.7239 14.7761 11.5 14.5 11.5C14.2239 11.5 14 11.7239 14 12C14 12.2761 14.2239 12.5 14.5 12.5Z" fill="black"/>
-    <path d="M14.5 4.5C14.7761 4.5 15 4.27614 15 4C15 3.72386 14.7761 3.5 14.5 3.5C14.2239 3.5 14 3.72386 14 4C14 4.27614 14.2239 4.5 14.5 4.5Z" fill="black"/>
-    <path d="M3.49976 15C3.7759 15 3.99976 14.7761 3.99976 14.5C3.99976 14.2239 3.7759 14 3.49976 14C3.22361 14 2.99976 14.2239 2.99976 14.5C2.99976 14.7761 3.22361 15 3.49976 15Z" fill="black"/>
-    <path d="M3.5 2C3.77614 2 4 1.77614 4 1.5C4 1.22386 3.77614 1 3.5 1C3.22386 1 3 1.22386 3 1.5C3 1.77614 3.22386 2 3.5 2Z" fill="black"/>
-    <path d="M12.5 15C12.7761 15 13 14.7761 13 14.5C13 14.2239 12.7761 14 12.5 14C12.2239 14 12 14.2239 12 14.5C12 14.7761 12.2239 15 12.5 15Z" fill="black"/>
-    <path d="M12.5 2C12.7761 2 13 1.77614 13 1.5C13 1.22386 12.7761 1 12.5 1C12.2239 1 12 1.22386 12 1.5C12 1.77614 12.2239 2 12.5 2Z" fill="black"/>
-    <path d="M12.5 4C12.7761 4 13 3.77614 13 3.5C13 3.22386 12.7761 3 12.5 3C12.2239 3 12 3.22386 12 3.5C12 3.77614 12.2239 4 12.5 4Z" fill="black"/>
-    <path d="M12.5 13C12.7761 13 13 12.7761 13 12.5C13 12.2239 12.7761 12 12.5 12C12.2239 12 12 12.2239 12 12.5C12 12.7761 12.2239 13 12.5 13Z" fill="black"/>
-    <path d="M10.5 3C10.7761 3 11 2.77614 11 2.5C11 2.22386 10.7761 2 10.5 2C10.2239 2 10 2.22386 10 2.5C10 2.77614 10.2239 3 10.5 3Z" fill="black"/>
-    <path d="M8 15C8.27614 15 8.5 14.7761 8.5 14.5C8.5 14.2239 8.27614 14 8 14C7.72386 14 7.5 14.2239 7.5 14.5C7.5 14.7761 7.72386 15 8 15Z" fill="black"/>
-    <path d="M5.5 14C5.77614 14 6 13.7761 6 13.5C6 13.2239 5.77614 13 5.5 13C5.22386 13 5 13.2239 5 13.5C5 13.7761 5.22386 14 5.5 14Z" fill="black"/>
-    <path d="M10.5 14C10.7761 14 11 13.7761 11 13.5C11 13.2239 10.7761 13 10.5 13C10.2239 13 10 13.2239 10 13.5C10 13.7761 10.2239 14 10.5 14Z" fill="black"/>
-</svg>

assets/icons/cog.svg 🔗

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.2" d="M8 12.8a4.8 4.8 0 1 0 0-9.6 4.8 4.8 0 0 0 0 9.6Z"/><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.2" d="M8 9.2a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4ZM8 2v1.2M8 14v-1.2M11 13.196l-.6-1.038M7.4 6.962 5 2.804M13.196 11l-1.038-.6M2.804 5l1.038.6M9.2 8H14M2 8h1.2M13.196 5l-1.038.6M2.804 11l1.038-.6M11 2.804l-.6 1.038M7.4 9.038 5 13.196"/></svg>

assets/icons/ellipsis_vertical.svg 🔗

@@ -1,5 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<circle cx="8" cy="3" r="1" fill="black" stroke="black" stroke-width="0.5"/>
-<circle cx="8" cy="8" r="1" fill="black" stroke="black" stroke-width="0.5"/>
-<circle cx="8" cy="13" r="1" fill="black" stroke="black" stroke-width="0.5"/>
-</svg>

assets/icons/menu_alt.svg 🔗

@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M2.66699 8H10.667M2.66699 4H13.333M2.66699 12H7.99999" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>

assets/icons/shield_check.svg 🔗

@@ -1,4 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M13.0001 8.62505C13.0001 11.75 10.8126 13.3125 8.21266 14.2187C8.07651 14.2648 7.92862 14.2626 7.79392 14.2125C5.18771 13.3125 3.00024 11.75 3.00024 8.62505V4.25012C3.00024 4.08436 3.06609 3.92539 3.1833 3.80818C3.30051 3.69098 3.45948 3.62513 3.62523 3.62513C4.87521 3.62513 6.43769 2.87514 7.52517 1.92516C7.65758 1.81203 7.82601 1.74988 8.00016 1.74988C8.17431 1.74988 8.34275 1.81203 8.47515 1.92516C9.56889 2.88139 11.1251 3.62513 12.3751 3.62513C12.5408 3.62513 12.6998 3.69098 12.817 3.80818C12.9342 3.92539 13.0001 4.08436 13.0001 4.25012V8.62505Z" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M6 8.00002L7.33333 9.33335L10 6.66669" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>

assets/icons/swatch_book.svg 🔗

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.2" d="M7.333 11.333a2.667 2.667 0 1 1-5.333 0v-8A1.333 1.333 0 0 1 3.333 2H6a1.333 1.333 0 0 1 1.333 1.333v8Z"/><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.2" d="M11.133 8.667h1.534A1.333 1.333 0 0 1 14 10v2.667A1.334 1.334 0 0 1 12.667 14h-8M4.667 11.333h.006"/><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.2" d="M7.333 5.333 8.867 3.8a1.6 1.6 0 0 1 2.269.003L12.4 5.067a1.6 1.6 0 0 1 .017 2.289L6.6 13.2"/></svg>

assets/icons/terminal_ghost.svg 🔗

@@ -1,4 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M8 12.375H13" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M3 11.125L6.75003 7.375L3 3.62497" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>

assets/icons/threads_sidebar_right_closed.svg 🔗

@@ -1,5 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<rect opacity="0.1" width="5" height="12" rx="2" transform="matrix(-1 0 0 1 14 2)" fill="#C6CAD0"/>
-<path d="M9 2V14" stroke="#C6CAD0" stroke-width="1.2"/>
-<rect x="2" y="2" width="12" height="12" rx="1.5" stroke="#C6CAD0" stroke-width="1.2"/>
-</svg>

assets/icons/threads_sidebar_right_open.svg 🔗

@@ -1,5 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<rect opacity="0.8" width="5" height="12" rx="2" transform="matrix(-1 0 0 1 14 2)" fill="#C6CAD0"/>
-<path d="M9 2V14" stroke="#C6CAD0" stroke-width="1.2"/>
-<rect x="2" y="2" width="12" height="12" rx="1.5" stroke="#C6CAD0" stroke-width="1.2"/>
-</svg>

assets/icons/tool_read.svg 🔗

@@ -1,7 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M3 5.66667V4.33333C3 3.97971 3.14048 3.64057 3.39052 3.39052C3.64057 3.14048 3.97971 3 4.33333 3H5.66667" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M10.3333 3H11.6666C12.0202 3 12.3593 3.14048 12.6094 3.39052C12.8594 3.64057 12.9999 3.97971 12.9999 4.33333V5.66667" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M12.9999 10.3333V11.6666C12.9999 12.0203 12.8594 12.3594 12.6094 12.6095C12.3593 12.8595 12.0202 13 11.6666 13H10.3333" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M5.66667 13H4.33333C3.97971 13 3.64057 12.8595 3.39052 12.6095C3.14048 12.3594 3 12.0203 3 11.6666V10.3333" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M5.5 8H10.5" stroke="black" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>

assets/icons/tool_regex.svg 🔗

@@ -1,4 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M4.57132 13.7143C5.20251 13.7143 5.71418 13.2026 5.71418 12.5714C5.71418 11.9403 5.20251 11.4286 4.57132 11.4286C3.94014 11.4286 3.42847 11.9403 3.42847 12.5714C3.42847 13.2026 3.94014 13.7143 4.57132 13.7143Z" fill="black"/>
-<path d="M10.2856 2.85712V5.71426M10.2856 5.71426V8.5714M10.2856 5.71426H13.1428M10.2856 5.71426H7.42847M10.2856 5.71426L12.1904 3.80949M10.2856 5.71426L8.38084 7.61906M10.2856 5.71426L12.1904 7.61906M10.2856 5.71426L8.38084 3.80949" stroke="black" stroke-width="1.2" stroke-linecap="round"/>
-</svg>

crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs 🔗

@@ -991,7 +991,7 @@ impl Render for ManageProfilesModal {
                         .pb_1()
                         .child(ProfileModalHeader::new(
                             format!("{profile_name} — Configure Built-in Tools"),
-                            Some(IconName::Cog),
+                            Some(IconName::Settings),
                         ))
                         .child(ListSeparator)
                         .child(tool_picker.clone())
@@ -1014,7 +1014,7 @@ impl Render for ManageProfilesModal {
                         .pb_1()
                         .child(ProfileModalHeader::new(
                             format!("{profile_name} — Configure Default Model"),
-                            Some(IconName::Ai),
+                            Some(IconName::ZedAgent),
                         ))
                         .child(ListSeparator)
                         .child(v_flex().w(rems(34.)).child(model_picker.clone()))

crates/agent_ui/src/conversation_view.rs 🔗

@@ -3627,7 +3627,7 @@ pub(crate) mod tests {
         C: 'static + AgentConnection + Send + Clone,
     {
         fn logo(&self) -> ui::IconName {
-            ui::IconName::Ai
+            ui::IconName::ZedAgent
         }
 
         fn agent_id(&self) -> AgentId {

crates/agent_ui/src/language_model_selector.rs 🔗

@@ -724,7 +724,7 @@ mod tests {
                     .any(|(fav_provider, fav_name)| *fav_provider == provider && *fav_name == name);
                 ModelInfo {
                     model: Arc::new(TestLanguageModel::new(name, provider)),
-                    icon: IconOrSvg::Icon(IconName::Ai),
+                    icon: IconOrSvg::Icon(IconName::ZedAgent),
                     is_favorite,
                 }
             })

crates/agent_ui/src/test_support.rs 🔗

@@ -48,7 +48,7 @@ where
     C: 'static + AgentConnection + Send + Clone,
 {
     fn logo(&self) -> ui::IconName {
-        ui::IconName::Ai
+        ui::IconName::ZedAgent
     }
 
     fn agent_id(&self) -> AgentId {

crates/agent_ui/src/text_thread_editor.rs 🔗

@@ -894,7 +894,7 @@ impl TextThreadEditor {
                         |_, _, _, _| Empty.into_any_element(),
                     )
                     .with_metadata(CreaseMetadata {
-                        icon_path: SharedString::from(IconName::Ai.path()),
+                        icon_path: SharedString::from(IconName::ZedAgent.path()),
                         label: "Thinking Process".into(),
                     }),
                 );
@@ -2256,7 +2256,7 @@ impl TextThreadEditor {
         let provider_icon = active_provider
             .as_ref()
             .map(|p| p.icon())
-            .unwrap_or(IconOrSvg::Icon(IconName::Ai));
+            .unwrap_or(IconOrSvg::Icon(IconName::ZedAgent));
 
         let (color, icon) = if self.language_model_selector_menu_handle.is_deployed() {
             (Color::Accent, IconName::ChevronUp)

crates/assistant_text_thread/src/assistant_text_thread_tests.rs 🔗

@@ -526,7 +526,7 @@ async fn test_slash_commands(cx: &mut TestAppContext) {
 
     command_output_tx
         .unbounded_send(Ok(SlashCommandEvent::StartSection {
-            icon: IconName::Ai,
+            icon: IconName::ZedAgent,
             label: "src/main.rs".into(),
             metadata: None,
         }))
@@ -870,7 +870,7 @@ async fn test_random_context_collaboration(cx: &mut TestAppContext, mut rng: Std
                             rng.random_range(section_start..=output_text.len()),
                         );
                         events.push(Ok(SlashCommandEvent::StartSection {
-                            icon: IconName::Ai,
+                            icon: IconName::ZedAgent,
                             label: "section".into(),
                             metadata: None,
                         }));

crates/icons/src/icons.rs 🔗

@@ -9,7 +9,6 @@ use strum::{EnumIter, EnumString, IntoStaticStr};
 #[strum(serialize_all = "snake_case")]
 pub enum IconName {
     AcpRegistry,
-    Ai,
     AiAnthropic,
     AiBedrock,
     AiClaude,
@@ -69,7 +68,6 @@ pub enum IconName {
     Close,
     CloudDownload,
     Code,
-    Cog,
     Command,
     Control,
     Copilot,
@@ -106,7 +104,6 @@ pub enum IconName {
     EditorSublime,
     EditorVsCode,
     Ellipsis,
-    EllipsisVertical,
     Envelope,
     Eraser,
     Escape,
@@ -178,7 +175,6 @@ pub enum IconName {
     MagnifyingGlass,
     Maximize,
     Menu,
-    MenuAlt,
     MenuAltTemp,
     Mic,
     MicMute,
@@ -220,7 +216,6 @@ pub enum IconName {
     Send,
     Server,
     Settings,
-    ShieldCheck,
     Shift,
     SignalHigh,
     SignalLow,
@@ -237,7 +232,6 @@ pub enum IconName {
     Star,
     StarFilled,
     Stop,
-    SwatchBook,
     SweepAi,
     SweepAiDisabled,
     SweepAiDown,
@@ -246,7 +240,6 @@ pub enum IconName {
     Tab,
     Terminal,
     TerminalAlt,
-    TerminalGhost,
     TextSnippet,
     TextThread,
     ThinkingMode,
@@ -255,8 +248,6 @@ pub enum IconName {
     ThreadFromSummary,
     ThreadsSidebarLeftClosed,
     ThreadsSidebarLeftOpen,
-    ThreadsSidebarRightClosed,
-    ThreadsSidebarRightOpen,
     ThumbsDown,
     ThumbsUp,
     TodoComplete,
@@ -269,8 +260,6 @@ pub enum IconName {
     ToolHammer,
     ToolNotification,
     ToolPencil,
-    ToolRead,
-    ToolRegex,
     ToolSearch,
     ToolTerminal,
     ToolThink,
@@ -297,7 +286,6 @@ pub enum IconName {
     ZedPredictUp,
     ZedSrcCustom,
     ZedSrcExtension,
-    ZedXCopilot,
 }
 
 impl IconName {