1use std::sync::Arc;
2
3use serde::{Deserialize, Serialize};
4use strum::{EnumIter, EnumString, IntoStaticStr};
5
6#[derive(
7 Debug, PartialEq, Eq, Copy, Clone, EnumIter, EnumString, IntoStaticStr, Serialize, Deserialize,
8)]
9#[strum(serialize_all = "snake_case")]
10pub enum IconName {
11 AcpRegistry,
12 Ai,
13 AiAnthropic,
14 AiBedrock,
15 AiClaude,
16 AiDeepSeek,
17 AiEdit,
18 AiGemini,
19 AiGoogle,
20 AiLmStudio,
21 AiMistral,
22 AiOllama,
23 AiOpenAi,
24 AiOpenAiCompat,
25 AiOpenRouter,
26 AiVercel,
27 AiVZero,
28 AiXAi,
29 AiZed,
30 ArrowCircle,
31 ArrowDown,
32 ArrowDown10,
33 ArrowDownRight,
34 ArrowLeft,
35 ArrowRight,
36 ArrowRightLeft,
37 ArrowUp,
38 ArrowUpRight,
39 AtSign,
40 Attach,
41 AudioOff,
42 AudioOn,
43 Backspace,
44 Bell,
45 BellDot,
46 BellOff,
47 BellRing,
48 Binary,
49 Blocks,
50 BoltFilled,
51 BoltOutlined,
52 Book,
53 BookCopy,
54 Box,
55 CaseSensitive,
56 Chat,
57 Check,
58 CheckDouble,
59 ChevronDown,
60 ChevronDownUp,
61 ChevronLeft,
62 ChevronRight,
63 ChevronUp,
64 ChevronUpDown,
65 Circle,
66 CircleHelp,
67 Close,
68 CloudDownload,
69 Code,
70 Cog,
71 Command,
72 Control,
73 Copilot,
74 CopilotDisabled,
75 CopilotError,
76 CopilotInit,
77 Copy,
78 CountdownTimer,
79 Crosshair,
80 CursorIBeam,
81 Dash,
82 DatabaseZap,
83 Debug,
84 DebugBreakpoint,
85 DebugContinue,
86 DebugDetach,
87 DebugDisabledBreakpoint,
88 DebugDisabledLogBreakpoint,
89 DebugIgnoreBreakpoints,
90 DebugLogBreakpoint,
91 DebugPause,
92 DebugStepInto,
93 DebugStepOut,
94 DebugStepOver,
95 Diff,
96 DiffSplit,
97 DiffUnified,
98 Disconnected,
99 Download,
100 EditorAtom,
101 EditorCursor,
102 EditorEmacs,
103 EditorJetBrains,
104 EditorSublime,
105 EditorVsCode,
106 Ellipsis,
107 EllipsisVertical,
108 Envelope,
109 Eraser,
110 Escape,
111 Exit,
112 ExpandDown,
113 ExpandUp,
114 ExpandVertical,
115 Eye,
116 FastForward,
117 FastForwardOff,
118 File,
119 FileCode,
120 FileDiff,
121 FileDoc,
122 FileGeneric,
123 FileGit,
124 FileLock,
125 FileMarkdown,
126 FileRust,
127 FileTextFilled,
128 FileTextOutlined,
129 FileToml,
130 FileTree,
131 Filter,
132 Flame,
133 Folder,
134 FolderOpen,
135 FolderSearch,
136 Font,
137 FontSize,
138 FontWeight,
139 ForwardArrow,
140 ForwardArrowUp,
141 GenericClose,
142 GenericMaximize,
143 GenericMinimize,
144 GenericRestore,
145 GitBranch,
146 GitBranchAlt,
147 GitBranchPlus,
148 GitCommit,
149 GitGraph,
150 Github,
151 Hash,
152 HistoryRerun,
153 Image,
154 Inception,
155 Indicator,
156 Info,
157 Json,
158 Keyboard,
159 Library,
160 LineHeight,
161 Link,
162 Linux,
163 ListCollapse,
164 ListFilter,
165 ListTodo,
166 ListTree,
167 ListX,
168 LoadCircle,
169 LocationEdit,
170 LockOutlined,
171 MagnifyingGlass,
172 Maximize,
173 Menu,
174 MenuAlt,
175 MenuAltTemp,
176 Mic,
177 MicMute,
178 Minimize,
179 Notepad,
180 Option,
181 PageDown,
182 PageUp,
183 Paperclip,
184 Pencil,
185 PencilUnavailable,
186 Person,
187 Pin,
188 PlayFilled,
189 PlayOutlined,
190 Plus,
191 Power,
192 Public,
193 PullRequest,
194 Quote,
195 Reader,
196 RefreshTitle,
197 Regex,
198 ReplNeutral,
199 Replace,
200 ReplaceAll,
201 ReplaceNext,
202 ReplyArrowRight,
203 Rerun,
204 Return,
205 RotateCcw,
206 RotateCw,
207 Scissors,
208 Screen,
209 SelectAll,
210 Send,
211 Server,
212 Settings,
213 ShieldCheck,
214 Shift,
215 Slash,
216 Sliders,
217 Space,
218 Sparkle,
219 Split,
220 SplitAlt,
221 SquareDot,
222 SquareMinus,
223 SquarePlus,
224 Star,
225 StarFilled,
226 Stop,
227 Supermaven,
228 SupermavenDisabled,
229 SupermavenError,
230 SupermavenInit,
231 SwatchBook,
232 SweepAi,
233 SweepAiDisabled,
234 SweepAiDown,
235 SweepAiError,
236 SweepAiUp,
237 Tab,
238 Terminal,
239 TerminalAlt,
240 TerminalGhost,
241 TextSnippet,
242 TextThread,
243 ThinkingMode,
244 ThinkingModeOff,
245 Thread,
246 ThreadFromSummary,
247 ThumbsDown,
248 ThumbsUp,
249 TodoComplete,
250 TodoPending,
251 TodoProgress,
252 ToolCopy,
253 ToolDeleteFile,
254 ToolDiagnostics,
255 ToolFolder,
256 ToolHammer,
257 ToolNotification,
258 ToolPencil,
259 ToolRead,
260 ToolRegex,
261 ToolSearch,
262 ToolTerminal,
263 ToolThink,
264 ToolWeb,
265 Trash,
266 Triangle,
267 TriangleRight,
268 Undo,
269 Unpin,
270 UserCheck,
271 UserGroup,
272 UserRoundPen,
273 Warning,
274 WholeWord,
275 WorkspaceNavClosed,
276 WorkspaceNavOpen,
277 XCircle,
278 XCircleFilled,
279 ZedAgent,
280 ZedAgentTwo,
281 ZedAssistant,
282 ZedPredict,
283 ZedPredictDisabled,
284 ZedPredictDown,
285 ZedPredictError,
286 ZedPredictUp,
287 ZedSrcCustom,
288 ZedSrcExtension,
289 ZedXCopilot,
290}
291
292impl IconName {
293 /// Returns the path to this icon.
294 pub fn path(&self) -> Arc<str> {
295 let file_stem: &'static str = self.into();
296 format!("icons/{file_stem}.svg").into()
297 }
298}