Add design tweaks to the AI configuration panel (#15894)
This PR polishes elements around setting up LLM providers on the Assistant panel, including: - [x] Adding banners for promoting Zed AI and to deal with the "No provider set up" scenario - [x] Tweaking the error popover whenever there's no API key added - [ ] Making configuration panel scrollable --- Release Notes: - N/A --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com> Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com> Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
This commit is contained in:
parent
e69b0833aa
commit
76d58ac295
7 changed files with 212 additions and 154 deletions
|
@ -81,11 +81,13 @@ pub struct Button {
|
|||
label_color: Option<Color>,
|
||||
label_size: Option<LabelSize>,
|
||||
selected_label: Option<SharedString>,
|
||||
selected_label_color: Option<Color>,
|
||||
icon: Option<IconName>,
|
||||
icon_position: Option<IconPosition>,
|
||||
icon_size: Option<IconSize>,
|
||||
icon_color: Option<Color>,
|
||||
selected_icon: Option<IconName>,
|
||||
selected_icon_color: Option<Color>,
|
||||
key_binding: Option<KeyBinding>,
|
||||
}
|
||||
|
||||
|
@ -103,11 +105,13 @@ impl Button {
|
|||
label_color: None,
|
||||
label_size: None,
|
||||
selected_label: None,
|
||||
selected_label_color: None,
|
||||
icon: None,
|
||||
icon_position: None,
|
||||
icon_size: None,
|
||||
icon_color: None,
|
||||
selected_icon: None,
|
||||
selected_icon_color: None,
|
||||
key_binding: None,
|
||||
}
|
||||
}
|
||||
|
@ -130,6 +134,12 @@ impl Button {
|
|||
self
|
||||
}
|
||||
|
||||
/// Sets the label color used when the button is in a selected state.
|
||||
pub fn selected_label_color(mut self, color: impl Into<Option<Color>>) -> Self {
|
||||
self.selected_label_color = color.into();
|
||||
self
|
||||
}
|
||||
|
||||
/// Assigns an icon to the button.
|
||||
pub fn icon(mut self, icon: impl Into<Option<IconName>>) -> Self {
|
||||
self.icon = icon.into();
|
||||
|
@ -160,6 +170,12 @@ impl Button {
|
|||
self
|
||||
}
|
||||
|
||||
/// Sets the icon color used when the button is in a selected state.
|
||||
pub fn selected_icon_color(mut self, color: impl Into<Option<Color>>) -> Self {
|
||||
self.selected_icon_color = color.into();
|
||||
self
|
||||
}
|
||||
|
||||
/// Binds a key combination to the button for keyboard shortcuts.
|
||||
pub fn key_binding(mut self, key_binding: impl Into<Option<KeyBinding>>) -> Self {
|
||||
self.key_binding = key_binding.into();
|
||||
|
@ -366,7 +382,7 @@ impl RenderOnce for Button {
|
|||
let label_color = if is_disabled {
|
||||
Color::Disabled
|
||||
} else if is_selected {
|
||||
Color::Selected
|
||||
self.selected_label_color.unwrap_or(Color::Selected)
|
||||
} else {
|
||||
self.label_color.unwrap_or_default()
|
||||
};
|
||||
|
@ -380,6 +396,7 @@ impl RenderOnce for Button {
|
|||
.disabled(is_disabled)
|
||||
.selected(is_selected)
|
||||
.selected_icon(self.selected_icon)
|
||||
.selected_icon_color(self.selected_icon_color)
|
||||
.size(self.icon_size)
|
||||
.color(self.icon_color)
|
||||
}))
|
||||
|
@ -402,6 +419,7 @@ impl RenderOnce for Button {
|
|||
.disabled(is_disabled)
|
||||
.selected(is_selected)
|
||||
.selected_icon(self.selected_icon)
|
||||
.selected_icon_color(self.selected_icon_color)
|
||||
.size(self.icon_size)
|
||||
.color(self.icon_color)
|
||||
}))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue