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