#[cfg(all(feature = "server", not(feature = "client")))]
macro_rules! declare_icon {
($name:ident, $file:expr; $($predicate:tt)*) => {
#[cfg($($predicate)*)]
declare_icon!($name, $file);
};
($name:ident, $file:expr) => {
pub fn $name() -> Icon {
terrazzo::declare_asset!(concat!("/assets", $file))
}
};
}
#[cfg(all(feature = "server", not(feature = "client")))]
pub type Icon = terrazzo::static_assets::AssetBuilder;
#[cfg(feature = "client")]
macro_rules! declare_icon {
($name:ident, $file:expr; $($predicate:tt)*) => {
#[cfg($($predicate)*)]
declare_icon!($name, $file);
};
($name:ident, $file:expr) => {
pub fn $name() -> Icon {
concat!("/static", $file)
}
};
}
#[cfg(feature = "client")]
pub type Icon = &'static str;
declare_icon!(add_port_forward,"/icons/add-port-forward.svg"; feature = "port-forward");
declare_icon!(add_tab, "/icons/plus-square.svg"; feature = "terminal");
declare_icon!(chevron_bar_down, "/icons/chevron-bar-down.svg"; feature = "logs-panel");
declare_icon!(chevron_bar_up, "/icons/chevron-bar-up.svg"; feature = "logs-panel");
declare_icon!(chevron_double_right, "/icons/chevron-double-right.svg"; feature = "text-editor");
declare_icon!(close_app, "/icons/trash3-fill.svg");
declare_icon!(close_tab, "/icons/x-lg.svg"; any(feature = "terminal", feature = "text-editor"));
declare_icon!(collapse_vert, "/icons/arrows-collapse.svg"; feature = "text-editor");
declare_icon!(converter, "/icons/regex.svg"; feature = "converter");
declare_icon!(copy, "/icons/copy.svg"; feature = "converter");
declare_icon!(diff, "/icons/layout-split.svg"; feature = "text-editor");
declare_icon!(download, "/icons/download.svg"; feature = "text-editor");
declare_icon!(done, "/icons/done.svg"; any(feature = "converter", feature = "text-editor"));
declare_icon!(file, "/icons/file-earmark-text.svg"; feature = "text-editor");
declare_icon!(folder, "/icons/folder2-open.svg"; feature = "text-editor");
declare_icon!(hub, "/icons/hub.svg"; feature = "port-forward");
declare_icon!(key_icon, "/icons/key.svg");
declare_icon!(loading, "/icons/loading2.svg"; feature = "text-editor");
declare_icon!(menu, "/icons/signpost-split.svg");
declare_icon!(new_file, "/icons/file-earmark-plus.svg"; feature = "text-editor");
declare_icon!(new_folder, "/icons/folder-plus.svg"; feature = "text-editor");
declare_icon!(port_forward_loading,"/icons/port-forward-loading.svg"; feature = "port-forward");
declare_icon!(port_forward_pending,"/icons/port-forward-pending.svg"; feature = "port-forward");
declare_icon!(port_forward_synchronized,"/icons/port-forward-synchronized.svg"; feature = "port-forward");
declare_icon!(refresh, "/icons/arrow-counterclockwise.svg"; feature = "text-editor");
declare_icon!(search, "/icons/search.svg"; feature = "text-editor");
declare_icon!(slash, "/icons/slash.svg"; feature = "text-editor");
declare_icon!(split_horz, "/icons/arrows-expand-vertical.svg");
declare_icon!(split_vert, "/icons/arrows-expand.svg");
declare_icon!(terminal, "/icons/terminal-dash.svg"; feature = "terminal");
declare_icon!(text_editor, "/icons/layout-text-sidebar-reverse.svg"; feature = "text-editor");
declare_icon!(trash, "/icons/trash3.svg"; any(feature = "port-forward", feature = "text-editor"));