diff --git a/assets/icons/book.svg b/assets/icons/book.svg
new file mode 100644
index 0000000000..d30f81f32e
--- /dev/null
+++ b/assets/icons/book.svg
@@ -0,0 +1 @@
+
diff --git a/assets/icons/book_copy.svg b/assets/icons/book_copy.svg
new file mode 100644
index 0000000000..b055d47b5f
--- /dev/null
+++ b/assets/icons/book_copy.svg
@@ -0,0 +1 @@
+
diff --git a/assets/icons/book_plus.svg b/assets/icons/book_plus.svg
new file mode 100644
index 0000000000..2868f07cd0
--- /dev/null
+++ b/assets/icons/book_plus.svg
@@ -0,0 +1 @@
+
diff --git a/crates/assistant/src/prompt_library.rs b/crates/assistant/src/prompt_library.rs
index 6d87e383ce..6ae7767340 100644
--- a/crates/assistant/src/prompt_library.rs
+++ b/crates/assistant/src/prompt_library.rs
@@ -6,16 +6,16 @@ use anyhow::{anyhow, Result};
use assistant_slash_command::SlashCommandRegistry;
use chrono::{DateTime, Utc};
use collections::HashMap;
-use editor::{actions::Tab, CurrentLineHighlight, Editor, EditorEvent};
+use editor::{actions::Tab, CurrentLineHighlight, Editor, EditorElement, EditorEvent, EditorStyle};
use futures::{
future::{self, BoxFuture, Shared},
FutureExt,
};
use fuzzy::StringMatchCandidate;
use gpui::{
- actions, percentage, point, size, Animation, AnimationExt, AppContext, BackgroundExecutor,
- Bounds, EventEmitter, Global, PromptLevel, ReadGlobal, Subscription, Task, TitlebarOptions,
- Transformation, UpdateGlobal, View, WindowBounds, WindowHandle, WindowOptions,
+ actions, point, size, transparent_black, AppContext, BackgroundExecutor, Bounds, EventEmitter,
+ Global, HighlightStyle, PromptLevel, ReadGlobal, Subscription, Task, TextStyle,
+ TitlebarOptions, UpdateGlobal, View, WindowBounds, WindowHandle, WindowOptions,
};
use heed::{types::SerdeBincode, Database, RoTxn};
use language::{language_settings::SoftWrap, Buffer, LanguageRegistry};
@@ -109,12 +109,13 @@ pub struct PromptLibrary {
}
struct PromptEditor {
- editor: View,
+ title_editor: View,
+ body_editor: View,
token_count: Option,
pending_token_count: Task