//! 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,
ArchiveRestore,
Bell,
Brain,
ChevronsDownUp,
ChevronsUpDown,
Code,
Feather,
CornerDownRight,
FileCode,
FileDiff,
FolderGit2,
FolderPlus,
Gauge,
GitBranch,
GitCommitHorizontal,
GitPullRequest,
Image,
Keyboard,
Laptop,
Layers,
ListOrdered,
Lock,
MonitorSmartphone,
Network,
LockOpen,
MessageCircleQuestionMark,
PanelLeftClose,
PanelLeftOpen,
PanelRightClose,
PanelRightOpen,
Paperclip,
Pencil,
Pi,
Pin,
PinOff,
Plug,
Plus,
RotateCcw,
Server,
ShieldCheck,
SquareSlash,
SlidersHorizontal,
Space,
Sparkles,
SquarePen,
SwatchBook,
Star,
Trash,
Zap,
Bookmark,
Bot,
CircleDot,
Clock3,
CornerUpRight,
FolderGit,
GripVertical,
ListPlus,
ListTodo,
MessageSquareDashed,
Minimize2,
Monitor,
PenLine,
PencilRuler,
RotateCcwClock,
Scale,
Shield,
Hammer,
MessageCircle,
Terminal,
Wrench,
Quote,
Download,
]);
/// 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<Option<Cow<'static, [u8]>>> {
if let Some(data) = ExtraIcons.load(path)? {
return Ok(Some(data));
}
gpui_kit::assets::Assets.load(path)
}
fn list(&self, path: &str) -> Result<Vec<SharedString>> {
let mut paths = ExtraIcons.list(path)?;
paths.extend(gpui_kit::assets::Assets.list(path)?);
Ok(paths)
}
}