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 Ai,
12 AiAnthropic,
13 AiBedrock,
14 AiDeepSeek,
15 AiEdit,
16 AiGoogle,
17 AiLmStudio,
18 AiMistral,
19 AiOllama,
20 AiOpenAi,
21 AiOpenRouter,
22 AiVZero,
23 AiZed,
24 ArrowCircle,
25 ArrowDown,
26 ArrowDownFromLine,
27 ArrowDownRight,
28 ArrowLeft,
29 ArrowRight,
30 ArrowRightLeft,
31 ArrowUp,
32 ArrowUpAlt,
33 ArrowUpFromLine,
34 ArrowUpRight,
35 ArrowUpRightAlt,
36 AtSign,
37 AudioOff,
38 AudioOn,
39 Backspace,
40 Bell,
41 BellDot,
42 BellOff,
43 BellRing,
44 Binary,
45 Blocks,
46 Bolt,
47 BoltFilled,
48 Book,
49 BookCopy,
50 BookPlus,
51 Brain,
52 BugOff,
53 CaseSensitive,
54 Check,
55 CheckDouble,
56 ChevronDown,
57 /// This chevron indicates a popover menu.
58 ChevronDownSmall,
59 ChevronLeft,
60 ChevronRight,
61 ChevronUp,
62 ChevronUpDown,
63 Circle,
64 CircleOff,
65 CircleHelp,
66 Clipboard,
67 Close,
68 Cloud,
69 Code,
70 Cog,
71 Command,
72 Context,
73 Control,
74 Copilot,
75 CopilotDisabled,
76 CopilotError,
77 CopilotInit,
78 Copy,
79 CountdownTimer,
80 Crosshair,
81 CursorIBeam,
82 Dash,
83 DatabaseZap,
84 Debug,
85 DebugBreakpoint,
86 DebugContinue,
87 DebugDisabledBreakpoint,
88 DebugDisabledLogBreakpoint,
89 DebugDetach,
90 DebugIgnoreBreakpoints,
91 DebugLogBreakpoint,
92 DebugPause,
93 DebugRestart,
94 DebugStepBack,
95 DebugStepInto,
96 DebugStepOut,
97 DebugStepOver,
98 DebugStop,
99 Delete,
100 Diff,
101 Disconnected,
102 DocumentText,
103 Download,
104 Ellipsis,
105 EllipsisVertical,
106 Envelope,
107 Eraser,
108 Escape,
109 Exit,
110 ExpandDown,
111 ExpandUp,
112 ExpandVertical,
113 ExternalLink,
114 Eye,
115 File,
116 FileCode,
117 FileCreate,
118 FileDelete,
119 FileDiff,
120 FileDoc,
121 FileGeneric,
122 FileGit,
123 FileLock,
124 FileRust,
125 FileSearch,
126 FileText,
127 FileToml,
128 FileTree,
129 Filter,
130 Flame,
131 Folder,
132 FolderOpen,
133 FolderX,
134 Font,
135 FontSize,
136 FontWeight,
137 ForwardArrow,
138 Function,
139 GenericClose,
140 GenericMaximize,
141 GenericMinimize,
142 GenericRestore,
143 GitBranch,
144 GitBranchSmall,
145 Github,
146 Globe,
147 Hammer,
148 Hash,
149 HistoryRerun,
150 Image,
151 Indicator,
152 Info,
153 InlayHint,
154 Keyboard,
155 Layout,
156 Library,
157 LightBulb,
158 LineHeight,
159 Link,
160 ListCollapse,
161 ListTodo,
162 ListTree,
163 ListX,
164 LoadCircle,
165 LockOutlined,
166 MagnifyingGlass,
167 MailOpen,
168 Maximize,
169 Menu,
170 MenuAlt,
171 MessageBubbles,
172 Mic,
173 MicMute,
174 Microscope,
175 Minimize,
176 Option,
177 PageDown,
178 PageUp,
179 PanelLeft,
180 PanelRight,
181 Pencil,
182 Person,
183 PersonCircle,
184 PhoneIncoming,
185 Pin,
186 Play,
187 PlayAlt,
188 PlayBug,
189 Plus,
190 PocketKnife,
191 Power,
192 Public,
193 PullRequest,
194 Quote,
195 RefreshTitle,
196 Regex,
197 ReplNeutral,
198 Replace,
199 ReplaceAll,
200 ReplaceNext,
201 ReplyArrowRight,
202 Rerun,
203 Return,
204 Reveal,
205 RotateCcw,
206 RotateCw,
207 Route,
208 Save,
209 Scissors,
210 Screen,
211 SearchCode,
212 SearchSelection,
213 SelectAll,
214 Send,
215 Server,
216 Settings,
217 SettingsAlt,
218 Shift,
219 Slash,
220 SlashSquare,
221 Sliders,
222 SlidersVertical,
223 Snip,
224 Space,
225 Sparkle,
226 SparkleAlt,
227 SparkleFilled,
228 Spinner,
229 Split,
230 SquareDot,
231 SquareMinus,
232 SquarePlus,
233 Star,
234 StarFilled,
235 Stop,
236 StopFilled,
237 Strikethrough,
238 Supermaven,
239 SupermavenDisabled,
240 SupermavenError,
241 SupermavenInit,
242 SwatchBook,
243 Tab,
244 Terminal,
245 TextSnippet,
246 ThumbsDown,
247 ThumbsUp,
248 Trash,
249 TrashAlt,
250 Triangle,
251 TriangleRight,
252 Undo,
253 Unpin,
254 Update,
255 UserCheck,
256 UserGroup,
257 UserRoundPen,
258 Visible,
259 Wand,
260 Warning,
261 WholeWord,
262 X,
263 XCircle,
264 ZedAssistant,
265 ZedAssistantFilled,
266 ZedBurnMode,
267 ZedBurnModeOn,
268 ZedMcpCustom,
269 ZedMcpExtension,
270 ZedPredict,
271 ZedPredictDisabled,
272 ZedPredictDown,
273 ZedPredictError,
274 ZedPredictUp,
275 ZedXCopilot,
276}
277
278impl IconName {
279 /// Returns the path to this icon.
280 pub fn path(&self) -> Arc<str> {
281 let file_stem: &'static str = self.into();
282 format!("icons/{file_stem}.svg").into()
283 }
284}