//! 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,
FileCode,
FileDiff,
FolderGit2,
FolderPlus,
Gauge,
GitBranch,
GitCommitHorizontal,
GitPullRequest,
Image,
Keyboard,
Laptop,
Layers,
ListOrdered,
Lock,
LockOpen,
PanelLeftClose,
PanelLeftOpen,
PanelRightClose,
PanelRightOpen,
Paperclip,
Pencil,
Pi,
Pin,
PinOff,
Plug,
Plus,
RotateCcw,
ShieldCheck,
SquareSlash,
SlidersHorizontal,
Space,
Sparkles,
SquarePen,
Star,
Trash,
Zap,
]);
/// 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)
}
}