//! Icons beyond gpui-component's default set, picked from the bundled Lucide //! catalog so only these SVGs end up in the binary. use std::borrow::Cow; use gpui_kit::*; pub use gpui_kit::assets::IconName as Lucide; gpui_kit::assets::icon_assets!(ExtraIcons, [ AlarmClock, AlarmClockOff, Archive, ArchiveX, ArchiveRestore, Bell, Blocks, Brain, ChevronsDownUp, ChevronsUpDown, Code, Feather, CornerDownRight, FileCode, FileDiff, FolderGit2, FolderPlus, Gauge, HardDrive, GitBranch, GitCommitHorizontal, GitPullRequest, Image, Keyboard, Laptop, Layers, Link2, ListOrdered, Lock, MonitorSmartphone, Network, LockOpen, MessageCircleQuestionMark, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, Paperclip, Pencil, Pi, Pin, PinOff, Plug, Plus, RotateCcw, Server, Settings2, ShieldCheck, SquareSlash, SlidersHorizontal, Space, Sparkles, SquarePen, SwatchBook, Star, Trash, Undo2, Zap, Bookmark, Bot, CircleDot, Clock3, CornerUpRight, FolderGit, GripVertical, ListPlus, ListTodo, MessageSquareDashed, Minimize2, Monitor, PenLine, PencilRuler, RotateCcwClock, Scale, Shield, Hammer, MessageCircle, Terminal, Wrench, Quote, Download, Clock, CircleDashed, ShieldQuestionMark, Timer, FolderTree, Hash, MailOpen, MessageSquarePlus, ChartNoAxesColumn, SquareMenu, Maximize2, MessageSquare, Link, ArrowUpDown, X, ArrowRightLeft, GitPullRequestArrow, GitMerge, GitPullRequestClosed, GitPullRequestDraft, ListFilter, CloudUpload, CloudDownload, Square, SquareSplitHorizontal, SquareSplitVertical, SquareTerminal, ]); /// The app's asset source: the extra icons, then gpui-component's defaults. pub struct AppAssets; impl AssetSource for AppAssets { fn load(&self, path: &str) -> Result>> { if let Some(data) = ExtraIcons.load(path)? { return Ok(Some(data)); } gpui_kit::assets::Assets.load(path) } fn list(&self, path: &str) -> Result> { let mut paths = ExtraIcons.list(path)?; paths.extend(gpui_kit::assets::Assets.list(path)?); Ok(paths) } }