Rebrand to Galaxy, major improvements to Bedrock support, still needs some TLC though

This commit is contained in:
Ryan Ward
2026-05-07 11:29:34 -05:00
parent f4e2475c60
commit a41cbd8cc7
2433 changed files with 14208 additions and 9409 deletions
+18 -18
View File
@@ -4,30 +4,30 @@ use settings::Setting as _;
use std::sync::Arc;
use std::time::Duration;
use std::{cmp::Ordering, rc::Rc};
use warp_core::features::FeatureFlag;
use warp_core::report_error;
use warp_core::ui::theme::color::internal_colors;
use warpui::elements::new_scrollable::SingleAxisConfig;
use warpui::elements::{
use galaxy_core::features::FeatureFlag;
use galaxy_core::report_error;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui::elements::new_scrollable::SingleAxisConfig;
use galaxyui::elements::{
ClippedScrollStateHandle, ConstrainedBox, Empty, Fill, FormattedTextElement, Highlight,
HighlightedHyperlink, Hoverable, MainAxisAlignment, MainAxisSize, NewScrollable, SavePosition,
SelectableArea, SizeConstraintCondition, SizeConstraintSwitch,
};
use warpui::fonts::Weight;
use warpui::platform::{Cursor, OperatingSystem};
use warpui::ui_components::components::{Coords, UiComponent, UiComponentStyles};
use galaxyui::fonts::Weight;
use galaxyui::platform::{Cursor, OperatingSystem};
use galaxyui::ui_components::components::{Coords, UiComponent, UiComponentStyles};
use lazy_static::lazy_static;
use pathfinder_geometry::vector::vec2f;
use markdown_parser::{FormattedText, FormattedTextFragment, FormattedTextLine};
use warp_core::semantic_selection::SemanticSelection;
use warp_core::ui::appearance::Appearance;
use warp_editor::{
use galaxy_core::semantic_selection::SemanticSelection;
use galaxy_core::ui::appearance::Appearance;
use galaxy_editor::{
content::buffer::InitialBufferState, render::element::VerticalExpansionBehavior,
};
use warpui::r#async::Timer;
use warpui::{
use galaxyui::r#async::Timer;
use galaxyui::{
clipboard::ClipboardContent,
elements::{
Border, ChildAnchor, ChildView, Container, CornerRadius, CrossAxisAlignment, DropShadow,
@@ -145,7 +145,7 @@ const HAS_PENDING_NON_TRANSFER_CONTROL_ACTION_CONTEXT_KEY: &str =
const BLOCKED_ACTION_MESSAGE_FOR_TRANSFER_CONTROL: &str = "Agent is asking you to take control.";
pub fn init(app: &mut AppContext) {
use warpui::keymap::{macros::*, FixedBinding};
use galaxyui::keymap::{macros::*, FixedBinding};
app.register_fixed_bindings([
FixedBinding::new(
@@ -964,7 +964,7 @@ impl View for CLISubagentView {
"CLISubagentView"
}
fn render(&self, app: &warpui::AppContext) -> Box<dyn warpui::Element> {
fn render(&self, app: &galaxyui::AppContext) -> Box<dyn galaxyui::Element> {
let terminal_model = self.terminal_model.lock();
let Some(block) = terminal_model.block_list().block_with_id(&self.block_id) else {
return Empty::new().finish();
@@ -1399,7 +1399,7 @@ impl View for CLISubagentView {
result.finish()
}
fn keymap_context(&self, app: &AppContext) -> warpui::keymap::Context {
fn keymap_context(&self, app: &AppContext) -> galaxyui::keymap::Context {
let mut context = Self::default_keymap_context();
let terminal_model = self.terminal_model.lock();
@@ -1569,7 +1569,7 @@ fn render_action(action: AIAgentActionType, app: &AppContext) -> Option<Box<dyn
let icon = Container::new(
ConstrainedBox::new(
warpui::elements::Icon::new(icon.into(), internal_colors::neutral_5(theme)).finish(),
galaxyui::elements::Icon::new(icon.into(), internal_colors::neutral_5(theme)).finish(),
)
.with_width(icon_size(app))
.with_height(icon_size(app))
@@ -1611,7 +1611,7 @@ fn render_web_search(query: Option<String>, app: &AppContext) -> Box<dyn Element
let icon = Container::new(
ConstrainedBox::new(
warpui::elements::Icon::new(Icon::Search.into(), internal_colors::neutral_5(theme))
galaxyui::elements::Icon::new(Icon::Search.into(), internal_colors::neutral_5(theme))
.finish(),
)
.with_width(icon_size(app))
+2 -2
View File
@@ -4,8 +4,8 @@ use crate::server::telemetry::{CLISubagentControlState, TelemetryEvent};
use instant::Instant;
use parking_lot::FairMutex;
use serde::{Deserialize, Serialize};
use warp_core::send_telemetry_from_ctx;
use warpui::{Entity, EntityId, ModelContext, ModelHandle, SingletonEntity};
use galaxy_core::send_telemetry_from_ctx;
use galaxyui::{Entity, EntityId, ModelContext, ModelHandle, SingletonEntity};
use crate::ai::blocklist::context_model::block_context_from_terminal_model;
use crate::{
@@ -1,5 +1,5 @@
//! Compact free-form text input used by inline AI block actions.
use warpui::{
use galaxyui::{
presenter::ChildView, AppContext, Element, Entity, FocusContext, SingletonEntity, View,
ViewContext, ViewHandle,
};
+2 -2
View File
@@ -42,7 +42,7 @@ impl FindableRichContentView for AIBlock {
fn run_find(
&mut self,
options: &FindOptions,
ctx: &mut warpui::ViewContext<Self>,
ctx: &mut galaxyui::ViewContext<Self>,
) -> Vec<RichContentMatchId> {
self.clear_matches(ctx);
@@ -124,7 +124,7 @@ impl FindableRichContentView for AIBlock {
new_match_ids
}
fn clear_matches(&mut self, ctx: &mut warpui::ViewContext<Self>) {
fn clear_matches(&mut self, ctx: &mut galaxyui::ViewContext<Self>) {
self.find_state.matches.clear();
ctx.notify();
}
@@ -1,6 +1,6 @@
use warp_core::ui::appearance::Appearance;
use warp_core::ui::theme::color::internal_colors;
use warpui::{
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui::{
elements::{
ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Empty, Flex,
MainAxisAlignment, MainAxisSize, MouseStateHandle, ParentElement, Radius, Shrinkable, Text,
@@ -21,7 +21,7 @@ const MARGIN_BETWEEN_BUTTONS: f32 = 4.;
const HAS_OPTIONS: &str = "HasOptions";
pub fn init(app: &mut AppContext) {
use warpui::keymap::macros::*;
use galaxyui::keymap::macros::*;
app.register_fixed_bindings([
FixedBinding::new(
@@ -59,7 +59,7 @@ pub enum KeyboardNavigableButtonsAction {
pub enum KeyboardNavigableButtonsEvent {}
pub type ButtonBuilder = Box<dyn Fn(bool, &warpui::AppContext) -> Button>;
pub type ButtonBuilder = Box<dyn Fn(bool, &galaxyui::AppContext) -> Button>;
pub type OnButtonClickFn = Box<dyn Fn(&mut ViewContext<KeyboardNavigableButtons>)>;
pub struct KeyboardNavigableButtonBuilder {
@@ -70,7 +70,7 @@ pub struct KeyboardNavigableButtonBuilder {
impl KeyboardNavigableButtonBuilder {
pub fn new(
button_builder: impl Fn(bool, &warpui::AppContext) -> Button + 'static,
button_builder: impl Fn(bool, &galaxyui::AppContext) -> Button + 'static,
on_selected: impl Fn(&mut ViewContext<KeyboardNavigableButtons>) + 'static,
) -> Self {
Self {
@@ -83,7 +83,7 @@ impl KeyboardNavigableButtonBuilder {
/// Creates a simple navigation button with standard styling.
/// This is a convenience function for the common case of a text-only button
/// that dispatches an action when clicked.
pub fn simple_navigation_button<A: warpui::Action + Clone + 'static>(
pub fn simple_navigation_button<A: galaxyui::Action + Clone + 'static>(
text_label: String,
mouse_state: MouseStateHandle,
action: A,
@@ -195,7 +195,7 @@ fn build_rich_navigation_label(
let right_element: Box<dyn Element> = if show_enter_indicator {
let enter_icon = ConstrainedBox::new(
Icon::CornerDownLeft
.to_warpui_icon(theme.foreground())
.to_galaxyui_icon(theme.foreground())
.finish(),
)
.with_width(font_size)
@@ -227,7 +227,7 @@ fn build_rich_navigation_label(
/// Creates a keyboard-navigable button with a rich two-line label: a title
/// (with an optional trailing "Recommended" badge) plus an optional muted
/// sub-label underneath.
pub fn rich_navigation_button<A: warpui::Action + Clone + 'static>(
pub fn rich_navigation_button<A: galaxyui::Action + Clone + 'static>(
text_label: String,
sub_label: Option<String>,
recommended: bool,
@@ -306,7 +306,7 @@ impl View for KeyboardNavigableButtons {
"KeyboardNavigableButtons"
}
fn render(&self, app: &warpui::AppContext) -> Box<dyn warpui::Element> {
fn render(&self, app: &galaxyui::AppContext) -> Box<dyn galaxyui::Element> {
let mut content = Flex::column().with_cross_axis_alignment(CrossAxisAlignment::Stretch);
for (index, button_builder) in self.button_builders.iter().enumerate() {
let is_selected = index == self.selected_button_index();
@@ -336,7 +336,7 @@ impl View for KeyboardNavigableButtons {
content.finish()
}
fn keymap_context(&self, _app: &AppContext) -> warpui::keymap::Context {
fn keymap_context(&self, _app: &AppContext) -> galaxyui::keymap::Context {
let mut context = Self::default_keymap_context();
if !self.button_builders.is_empty() {
context.set.insert(HAS_OPTIONS);
+3 -3
View File
@@ -4,7 +4,7 @@ mod model_impl;
pub use helper::AIBlockModelHelper;
pub use model_impl::*;
use session_sharing_protocol::common::ParticipantId;
use warp_core::features::FeatureFlag;
use galaxy_core::features::FeatureFlag;
use crate::ai::{
agent::{
@@ -15,7 +15,7 @@ use crate::ai::{
llms::LLMId,
};
use chrono::TimeDelta;
use warpui::{AppContext, ViewContext};
use galaxyui::{AppContext, ViewContext};
#[derive(Debug, Clone, Copy)]
pub enum PassiveRequestType {
@@ -220,7 +220,7 @@ pub trait AIBlockModel {
#[cfg(any(test, feature = "integration_tests"))]
pub mod testing {
use warpui::{AppContext, ViewContext};
use galaxyui::{AppContext, ViewContext};
use crate::ai::{
agent::{
@@ -1,4 +1,4 @@
use warpui::{AppContext, ViewContext};
use galaxyui::{AppContext, ViewContext};
use crate::ai::{
agent::{
+1 -1
View File
@@ -1,4 +1,4 @@
use warpui::{AppContext, EntityId, ModelHandle, SingletonEntity};
use galaxyui::{AppContext, EntityId, ModelHandle, SingletonEntity};
use crate::{
ai::{
@@ -4,7 +4,7 @@ use anyhow::{anyhow, Result};
use chrono::{Local, TimeDelta};
use history_model::{BlocklistAIHistoryEvent, BlocklistAIHistoryModel};
use session_sharing_protocol::common::ParticipantId;
use warpui::{AppContext, SingletonEntity, View, ViewContext};
use galaxyui::{AppContext, SingletonEntity, View, ViewContext};
use crate::ai::{
agent::{
@@ -1,4 +1,4 @@
use warpui::{
use galaxyui::{
elements::{
ClippedScrollStateHandle, Container, CrossAxisAlignment, DispatchEventResult, EventHandler,
Flex, Hoverable, MouseInBehavior, MouseStateHandle, ParentElement, SavePosition,
@@ -19,7 +19,7 @@ const KEYBOARD_NAVIGATION_ENABLED: &str = "KeyboardNavigationEnabled";
const ENTER_ACTIVATION_ENABLED: &str = "EnterActivationEnabled";
pub fn init(app: &mut AppContext) {
use warpui::keymap::macros::*;
use galaxyui::keymap::macros::*;
for i in 1..=9u8 {
app.register_fixed_bindings([FixedBinding::new(
@@ -76,7 +76,7 @@ pub enum NumberShortcutButtonsAction {
pub enum NumberShortcutButtonsEvent {}
pub type ButtonBuilder = Box<dyn Fn(bool, &warpui::AppContext) -> Button>;
pub type ButtonBuilder = Box<dyn Fn(bool, &galaxyui::AppContext) -> Button>;
pub type OnButtonClickFn = Box<dyn Fn(&mut ViewContext<NumberShortcutButtons>)>;
#[derive(Clone, Default)]
@@ -122,7 +122,7 @@ pub struct NumberShortcutButtonBuilder {
impl NumberShortcutButtonBuilder {
pub fn new(
button_builder: impl Fn(bool, &warpui::AppContext) -> Button + 'static,
button_builder: impl Fn(bool, &galaxyui::AppContext) -> Button + 'static,
on_click: impl Fn(&mut ViewContext<NumberShortcutButtons>) + 'static,
) -> Self {
Self {
@@ -132,7 +132,7 @@ impl NumberShortcutButtonBuilder {
}
}
pub fn numbered_shortcut_button<A: warpui::Action + Clone + 'static>(
pub fn numbered_shortcut_button<A: galaxyui::Action + Clone + 'static>(
number: usize,
text_label: String,
is_checked: bool,
@@ -307,7 +307,7 @@ impl View for NumberShortcutButtons {
"NumberShortcutButtons"
}
fn render(&self, app: &warpui::AppContext) -> Box<dyn warpui::Element> {
fn render(&self, app: &galaxyui::AppContext) -> Box<dyn galaxyui::Element> {
Hoverable::new(self.mouse_state.clone(), |_| {
let mut content = Flex::column().with_cross_axis_alignment(CrossAxisAlignment::Stretch);
for (index, button_builder) in self.button_builders.iter().enumerate() {
@@ -357,7 +357,7 @@ impl View for NumberShortcutButtons {
.finish()
}
fn keymap_context(&self, app: &AppContext) -> warpui::keymap::Context {
fn keymap_context(&self, app: &AppContext) -> galaxyui::keymap::Context {
let mut context = Self::default_keymap_context();
if !self.button_builders.is_empty() && self.keyboard_shortcuts_enabled(app) {
context.set.insert(NUMBER_SELECT_ENABLED);
@@ -1,7 +1,7 @@
use pathfinder_geometry::vector::{vec2f, Vector2F};
use std::{cell::RefCell, rc::Rc};
use warp_core::ui::appearance::Appearance;
use warpui::{
use galaxy_core::ui::appearance::Appearance;
use galaxyui::{
elements::{
new_scrollable::SingleAxisConfig, ChildView, Clipped, ClippedScrollStateHandle,
ConstrainedBox, Fill,
@@ -71,8 +71,8 @@ impl View for TestView {
"NumberShortcutButtonsTestView"
}
fn render(&self, _app: &warpui::AppContext) -> Box<dyn warpui::Element> {
let scrollable = warpui::elements::NewScrollable::vertical(
fn render(&self, _app: &galaxyui::AppContext) -> Box<dyn galaxyui::Element> {
let scrollable = galaxyui::elements::NewScrollable::vertical(
SingleAxisConfig::Clipped {
handle: self.scroll_state.clone(),
child: ChildView::new(&self.buttons).finish(),
@@ -1,7 +1,7 @@
use crate::context_chips::spacing;
use warp_core::ui::appearance::Appearance;
use warp_core::ui::theme::color::internal_colors;
use warpui::{
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui::{
elements::{
Border, Container, CornerRadius, CrossAxisAlignment, Expanded, Flex, FormattedTextElement,
MainAxisSize, MouseStateHandle, ParentElement, Radius, Shrinkable, Text,
@@ -176,5 +176,5 @@ pub(super) fn build_text_button_content(
pub(super) fn build_inline_input_content(
input_view: &ViewHandle<CompactAgentInput>,
) -> Box<dyn Element> {
warpui::presenter::ChildView::new(input_view).finish()
galaxyui::presenter::ChildView::new(input_view).finish()
}
@@ -1,4 +1,4 @@
use warpui::{
use galaxyui::{
elements::{ChildView, Container, CrossAxisAlignment, Expanded, Flex, ParentElement, Text},
fonts::{Properties, Style, Weight},
AppContext, Element, Entity, SingletonEntity, TypedActionView, View, ViewContext, ViewHandle,
@@ -2,8 +2,8 @@ use std::collections::HashMap;
use itertools::Itertools;
use similar::DiffableStr;
use warpui::elements::{MouseStateHandle, PartialClickableElement, SecretRange};
use warpui::platform::Cursor;
use galaxyui::elements::{MouseStateHandle, PartialClickableElement, SecretRange};
use galaxyui::platform::Cursor;
use crate::ai::agent::{AIAgentOutput, AIAgentTextSection, AgentOutputText};
use crate::terminal::model::secrets::{SecretLevel, REGEX_LEVEL_METADATA, SECRETS_REGEX};
@@ -1,7 +1,7 @@
use regex::Regex;
use serial_test::serial;
use warpui::elements::Text;
use warpui::fonts::FamilyId;
use galaxyui::elements::Text;
use galaxyui::fonts::FamilyId;
use crate::terminal::model::secrets::{self, SecretLevel};
+8 -8
View File
@@ -70,12 +70,12 @@ use crate::{
use instant::Instant;
use parking_lot::FairMutex;
use pathfinder_color::ColorU;
use warp_core::{
use galaxy_core::{
features::FeatureFlag,
ui::{appearance::Appearance, theme::Fill, Icon as CoreIcon},
};
use warpui::elements::shimmering_text::ShimmeringTextStateHandle;
use warpui::{
use galaxyui::elements::shimmering_text::ShimmeringTextStateHandle;
use galaxyui::{
elements::{Border, Container, Empty, Flex, MouseStateHandle, ParentElement, Text},
keymap::Keystroke,
presenter::ChildView,
@@ -83,7 +83,7 @@ use warpui::{
AppContext, Element, Entity, EntityId, ModelHandle, SingletonEntity, View, ViewContext,
ViewHandle,
};
use warpui::{r#async::Timer, TypedActionView};
use galaxyui::{r#async::Timer, TypedActionView};
pub fn init(app: &mut AppContext) {
summarization_cancel_dialog::init(app);
@@ -990,7 +990,7 @@ fn latest_model_used_before_exchange<V: View>(
fn render_agent_tip(tip: &AgentTip, app: &AppContext) -> Box<dyn Element> {
use crate::ai::agent_tips::AITip;
use markdown_parser::{FormattedTextFragment, FormattedTextLine};
use warpui::text_layout::ClipConfig;
use galaxyui::text_layout::ClipConfig;
let appearance = Appearance::as_ref(app);
let theme = appearance.theme();
@@ -1010,7 +1010,7 @@ fn render_agent_tip(tip: &AgentTip, app: &AppContext) -> Box<dyn Element> {
let formatted_text =
markdown_parser::FormattedText::new(vec![FormattedTextLine::Line(fragments)]);
warpui::elements::FormattedTextElement::new(
galaxyui::elements::FormattedTextElement::new(
formatted_text,
appearance.monospace_font_size() - 3.,
appearance.ui_font_family(),
@@ -1022,7 +1022,7 @@ fn render_agent_tip(tip: &AgentTip, app: &AppContext) -> Box<dyn Element> {
.set_selectable(true)
.with_clip(ClipConfig::ellipsis())
.register_default_click_handlers_with_action_support(move |link, evt, app| {
use warpui::elements::HyperlinkLens;
use galaxyui::elements::HyperlinkLens;
match link {
HyperlinkLens::Url(url) => {
send_telemetry_from_app_ctx!(
@@ -1130,7 +1130,7 @@ impl View for BlocklistAIStatusBar {
"BlocklistAIStatusBar"
}
fn render(&self, app: &AppContext) -> Box<dyn warpui::Element> {
fn render(&self, app: &AppContext) -> Box<dyn galaxyui::Element> {
let appearance = Appearance::as_ref(app);
let agent_view_controller = self.agent_view_controller.as_ref(app);
if let Some(cloud_mode_setup_terminal_message) =
@@ -1,6 +1,6 @@
use crate::appearance::Appearance;
use crate::ui_components::blended_colors;
use warpui::{
use galaxyui::{
elements::{
Border, Container, CornerRadius, CrossAxisAlignment, Expanded, Flex, Hoverable,
MainAxisAlignment, MainAxisSize, MouseStateHandle, ParentElement, Radius,
@@ -123,7 +123,7 @@ impl<T: 'static> View for ToggleableItemsView<T> {
"ToggleableItemsView"
}
fn keymap_context(&self, _app: &AppContext) -> warpui::keymap::Context {
fn keymap_context(&self, _app: &AppContext) -> galaxyui::keymap::Context {
let mut context = Self::default_keymap_context();
if !self.items.is_empty() {
context.set.insert(HAS_ITEMS);
+20 -20
View File
@@ -33,18 +33,18 @@ use common::get_highlight_ranges_for_find_matches;
use pathfinder_color::ColorU;
use settings::Setting as _;
use std::collections::{HashMap, HashSet};
use warp_core::features::FeatureFlag;
use warp_core::semantic_selection::SemanticSelection;
use warpui::elements::{
use galaxy_core::features::FeatureFlag;
use galaxy_core::semantic_selection::SemanticSelection;
use galaxyui::elements::{
Align, ConstrainedBox, CornerRadius, CrossAxisAlignment, Empty, Expanded, FormattedTextElement,
Hoverable, MainAxisAlignment, MainAxisSize, MouseStateHandle, Radius, SavePosition,
SelectableArea,
};
use warpui::{
use galaxyui::{
elements::{Border, Container, Flex, ParentElement},
AppContext, Element, SingletonEntity,
};
use warpui::{View, ViewContext};
use galaxyui::{View, ViewContext};
use crate::ai::agent::AIAgentCitation;
use crate::ai::agent::AIAgentInput;
@@ -83,22 +83,22 @@ use crate::ui_components::icons::Icon;
use crate::util::link_detection::DetectedLinkType;
use crate::workspace::WorkspaceAction;
use itertools::Itertools;
use warp_core::ui::color::contrast::{
use galaxy_core::ui::color::contrast::{
foreground_color_with_minimum_contrast, MinimumAllowedContrast,
};
use warp_core::ui::color::Rgb;
use warp_core::ui::theme::{Fill, WarpTheme};
use warpui::elements::{Highlight, HighlightedRange, Text};
use warpui::fonts::Properties;
use warpui::platform::Cursor;
use warpui::text_layout::TextStyle;
use warpui::ui_components::components::UiComponent;
use galaxy_core::ui::color::Rgb;
use galaxy_core::ui::theme::{Fill, WarpTheme};
use galaxyui::elements::{Highlight, HighlightedRange, Text};
use galaxyui::fonts::Properties;
use galaxyui::platform::Cursor;
use galaxyui::text_layout::TextStyle;
use galaxyui::ui_components::components::UiComponent;
/// Helper function to create gray strikethrough highlight for secrets
fn create_secret_gray_highlight() -> Highlight {
Highlight::new().with_text_style(
TextStyle::new()
.with_foreground_color(warpui::color::ColorU::new(128, 128, 128, 255))
.with_foreground_color(galaxyui::color::ColorU::new(128, 128, 128, 255))
.with_show_strikethrough(true),
)
}
@@ -137,7 +137,7 @@ fn add_slash_command_highlight(
let current_properties = existing.properties();
let mut bold_properties = current_properties;
bold_properties.weight = warpui::fonts::Weight::Bold;
bold_properties.weight = galaxyui::fonts::Weight::Bold;
Highlight::new()
.with_text_style(updated_style)
@@ -145,7 +145,7 @@ fn add_slash_command_highlight(
} else {
// Create new highlight with default properties and bold weight
let default_properties = Properties {
weight: warpui::fonts::Weight::Bold,
weight: galaxyui::fonts::Weight::Bold,
..Default::default()
};
Highlight::new()
@@ -693,13 +693,13 @@ pub fn render_citation(
)
}
AIAgentCitation::WarpDocumentation { .. } => {
let icon = Icon::Warp.to_warpui_icon(theme.foreground()).finish();
let icon = Icon::Warp.to_galaxyui_icon(theme.foreground()).finish();
let name = String::from("Warp Docs");
(Some(icon), name)
}
AIAgentCitation::WebPage { url } => {
let icon = Icon::LinkExternal
.to_warpui_icon(theme.foreground())
.to_galaxyui_icon(theme.foreground())
.finish();
let name = url.clone();
(Some(icon), name)
@@ -1225,13 +1225,13 @@ impl View for AIBlock {
selectable.finish()
}
fn on_focus(&mut self, focus_ctx: &warpui::FocusContext, ctx: &mut ViewContext<Self>) {
fn on_focus(&mut self, focus_ctx: &galaxyui::FocusContext, ctx: &mut ViewContext<Self>) {
if focus_ctx.is_self_focused() {
self.focus_subview_if_necessary(ctx);
}
}
fn keymap_context(&self, app: &AppContext) -> warpui::keymap::Context {
fn keymap_context(&self, app: &AppContext) -> galaxyui::keymap::Context {
let mut context = Self::default_keymap_context();
if self
@@ -2,14 +2,14 @@ use crate::ai::agent::comment::ReviewComment;
use crate::ai::agent::icons::addressed_comment_icon;
use crate::ai::blocklist::block::CommentElementState;
use crate::code_review::comments::ReviewCommentBatch;
use warp_core::ui::appearance::Appearance;
use warp_core::ui::theme::color::internal_colors;
use warp_core::ui::Icon;
use warpui::elements::{
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::Icon;
use galaxyui::elements::{
Axis, Border, ChildView, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Empty,
Expanded, Flex, Hoverable, MouseState, ParentElement, Radius, Text, Wrap, WrapFillEntireRun,
};
use warpui::{AppContext, Element, SingletonEntity};
use galaxyui::{AppContext, Element, SingletonEntity};
const COMMENT_CHIP_MAX_HEIGHT: f32 = 200.;
@@ -162,7 +162,7 @@ fn comment_icon(is_addressed: bool, appearance: &Appearance) -> Box<dyn Element>
addressed_comment_icon(appearance).finish()
} else {
Icon::MessageText
.to_warpui_icon(
.to_galaxyui_icon(
appearance
.theme()
.sub_text_color(appearance.theme().background()),
+22 -22
View File
@@ -16,11 +16,11 @@ use markdown_parser::{FormattedText, FormattedTextInline, TableAlignment};
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use std::sync::Arc;
use warp_core::{
use galaxy_core::{
features::FeatureFlag,
ui::{appearance::Appearance, color::blend::Blend, theme::color::internal_colors},
};
use warpui::{
use galaxyui::{
assets::asset_cache::{AssetCache, AssetSource, AssetState},
elements::{
new_scrollable::{ScrollableAppearance, SingleAxisConfig},
@@ -113,13 +113,13 @@ use crate::{
search::slash_command_menu::static_commands::commands,
settings::{FontSettings, InputSettings},
};
use warp_core::channel::ChannelState;
use warp_editor::content::{
use galaxy_core::channel::ChannelState;
use galaxy_editor::content::{
edit::resolve_asset_source_relative_to_directory, mermaid_diagram::mermaid_asset_source,
};
use warp_util::path::to_relative_path;
use warpui::elements::shimmering_text::ShimmeringTextStateHandle;
use warpui::elements::{Highlight, HighlightedRange};
use galaxy_util::path::to_relative_path;
use galaxyui::elements::shimmering_text::ShimmeringTextStateHandle;
use galaxyui::elements::{Highlight, HighlightedRange};
pub const STATUS_ICON_SIZE_DELTA: f32 = 4.;
pub const STATUS_FOOTER_VERTICAL_PADDING: f32 = 4.;
@@ -854,7 +854,7 @@ fn render_queue_next_prompt_button(
};
let icon_size = get_icon_size(appearance);
let icon = Container::new(
ConstrainedBox::new(Icon::ClockPlus.to_warpui_icon(icon_color).finish())
ConstrainedBox::new(Icon::ClockPlus.to_galaxyui_icon(icon_color).finish())
.with_height(icon_size)
.with_width(icon_size)
.finish(),
@@ -889,7 +889,7 @@ fn render_auto_approve_button(props: ButtonProps, appearance: &Appearance) -> Bo
let icon_size = get_icon_size(appearance);
let icon = Container::new(
ConstrainedBox::new(
icon.to_warpui_icon(appearance.theme().active_ui_text_color())
icon.to_galaxyui_icon(appearance.theme().active_ui_text_color())
.finish(),
)
.with_height(icon_size)
@@ -1009,7 +1009,7 @@ where
.with_child(content)
.with_spacing(4.0);
if !warpui::platform::is_mobile_device() {
if !galaxyui::platform::is_mobile_device() {
let keybinding_string = keybinding.map(|k| k.displayed()).unwrap_or_default();
let keybinding_label = Text::new_inline(
keybinding_string,
@@ -2183,8 +2183,8 @@ fn render_visual_markdown_block<A: Action>(
tooltip,
mouse_state,
content,
warpui::elements::ParentAnchor::TopMiddle,
warpui::elements::ChildAnchor::BottomMiddle,
galaxyui::elements::ParentAnchor::TopMiddle,
galaxyui::elements::ChildAnchor::BottomMiddle,
// Small negative Y offset keeps a hairline gap between the
// tooltip's bottom edge and the image's top edge without
// floating noticeably above the image.
@@ -2232,7 +2232,7 @@ fn render_visual_card(
let theme = appearance.theme();
let header_background = theme.surface_2();
let header_text_color = blended_colors::text_main(theme, header_background);
let header_icon = ConstrainedBox::new(icon.to_warpui_icon(header_text_color.into()).finish())
let header_icon = ConstrainedBox::new(icon.to_galaxyui_icon(header_text_color.into()).finish())
.with_width(16.)
.with_height(16.)
.finish();
@@ -2444,7 +2444,7 @@ fn render_table_section(
row_dividers: table_appearance.row_dividers,
cell_padding,
header_background: table_appearance.header_background,
row_background: warpui::elements::RowBackground {
row_background: galaxyui::elements::RowBackground {
primary: table_appearance.cell_background,
alternating: table_appearance.alternate_row_background,
},
@@ -2548,7 +2548,7 @@ fn render_table_cell(props: TableCellProps, app: &AppContext) -> Box<dyn Element
struct TableCellProps {
cell: FormattedTextInline,
alignment: TableAlignment,
font_family: warpui::fonts::FamilyId,
font_family: galaxyui::fonts::FamilyId,
font_size: f32,
font_weight: Weight,
text_color: ColorU,
@@ -2907,7 +2907,7 @@ pub(crate) fn resolve_absolute_file_path(
shell_launch_data: Option<&ShellLaunchData>,
home_dir: PathBuf,
) -> Option<PathBuf> {
use warp_util::path::CleanPathResult;
use galaxy_util::path::CleanPathResult;
use crate::util::file::{absolute_path_if_valid, ShellPathType};
@@ -3015,7 +3015,7 @@ pub fn render_failed_output(props: FailedOutputProps, app: &AppContext) -> Box<d
.with_child(
Container::new(
ConstrainedBox::new(
warpui::elements::Icon::new(
galaxyui::elements::Icon::new(
Icon::AlertTriangle.into(),
error_color(appearance.theme()),
)
@@ -3066,7 +3066,7 @@ fn render_invalid_api_key_error(
let alert_icon = ConstrainedBox::new(
Icon::AlertTriangle
.to_warpui_icon(error_color(appearance.theme()).into())
.to_galaxyui_icon(error_color(appearance.theme()).into())
.finish(),
)
.with_width(icon_size(app))
@@ -3100,7 +3100,7 @@ fn render_invalid_api_key_error(
let settings_button = appearance
.ui_builder()
.button(
warpui::ui_components::button::ButtonVariant::Outlined,
galaxyui::ui_components::button::ButtonVariant::Outlined,
state_handle.clone(),
)
.with_style(UiComponentStyles {
@@ -3245,7 +3245,7 @@ pub(crate) fn render_debug_footer<V: View>(
appearance
.ui_builder()
.button(
warpui::ui_components::button::ButtonVariant::Text,
galaxyui::ui_components::button::ButtonVariant::Text,
props.submit_issue_button_handle,
)
.with_centered_text_label("Send Feedback".to_string())
@@ -3311,8 +3311,8 @@ pub(crate) fn render_debug_footer<V: View>(
"Copy debug ID".to_string(),
props.debug_copy_button_handle,
copy_button,
warpui::elements::ParentAnchor::TopRight,
warpui::elements::ChildAnchor::BottomRight,
galaxyui::elements::ParentAnchor::TopRight,
galaxyui::elements::ChildAnchor::BottomRight,
vec2f(0., -8.),
);
@@ -3,8 +3,8 @@ use std::{collections::HashMap, path::PathBuf, sync::Arc};
use ai::skills::{ParsedSkill, SkillProvider, SkillScope};
#[cfg(feature = "local_fs")]
use warpui::assets::asset_cache::AssetSource;
use warpui::App;
use galaxyui::assets::asset_cache::AssetSource;
use galaxyui::App;
#[cfg(feature = "local_fs")]
use super::{blocklist_image_asset_source, ResolvedBlocklistImageSources};
@@ -23,7 +23,7 @@ use crate::{
search::slash_command_menu::static_commands::commands,
};
use ui_components::lightbox::{LightboxImage, LightboxImageSource};
use warpui::{elements::Empty, Element};
use galaxyui::{elements::Empty, Element};
#[test]
fn query_prefix_highlight_len_highlights_invoke_skill_inputs() {
@@ -1,12 +1,12 @@
//! Renders the AI block "header", which includes a version of the AI "prompt" as it was rendered
//! when the query was submitted.
use warp_core::features::FeatureFlag;
use warp_util::path::user_friendly_path;
use warpui::elements::MouseStateHandle;
use warpui::elements::{ChildView, Hoverable, SavePosition};
use warpui::platform::Cursor;
use warpui::EntityId;
use warpui::{
use galaxy_core::features::FeatureFlag;
use galaxy_util::path::user_friendly_path;
use galaxyui::elements::MouseStateHandle;
use galaxyui::elements::{ChildView, Hoverable, SavePosition};
use galaxyui::platform::Cursor;
use galaxyui::EntityId;
use galaxyui::{
elements::{
ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Flex, MainAxisAlignment,
MainAxisSize, ParentElement, Radius, Text,
@@ -26,7 +26,7 @@ use crate::terminal::view::{TerminalAction, WARP_PROMPT_HEIGHT_LINES};
use crate::ui_components::blended_colors;
use crate::ui_components::icons::Icon;
use crate::view_components::action_button::ActionButton;
use warpui::elements::Icon as ElementIcon;
use galaxyui::elements::Icon as ElementIcon;
/// Data required to render the AI block header.
pub(super) struct Props<'a> {
@@ -163,7 +163,7 @@ fn render_attached_context_chip(
Container::new(
ConstrainedBox::new(
Icon::Paperclip
.to_warpui_icon(block_count_color.into())
.to_galaxyui_icon(block_count_color.into())
.finish(),
)
.with_height(font_size)
@@ -1,7 +1,7 @@
use crate::ai::blocklist::block::ImportedCommentGroup;
use warpui::elements::{CrossAxisAlignment, Flex, ParentElement};
use warpui::prelude::ChildView;
use warpui::{AppContext, Element};
use galaxyui::elements::{CrossAxisAlignment, Flex, ParentElement};
use galaxyui::prelude::ChildView;
use galaxyui::{AppContext, Element};
pub(crate) fn render_imported_comments(
group: &ImportedCommentGroup,
@@ -1,15 +1,15 @@
//! Rendering functions for orchestration-related output items (messaging & agent management).
use pathfinder_color::ColorU;
use warpui::elements::{
use galaxyui::elements::{
ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Empty, Flex, Hoverable,
MouseStateHandle, ParentElement, Radius, Text,
};
use warpui::platform::Cursor;
use warpui::{AppContext, Element, SingletonEntity};
use galaxyui::platform::Cursor;
use galaxyui::{AppContext, Element, SingletonEntity};
use markdown_parser::{FormattedText, FormattedTextFragment, FormattedTextLine};
use warpui::elements::FormattedTextElement;
use galaxyui::elements::FormattedTextElement;
use crate::ai::agent::conversation::{AIConversation, AIConversationId, ConversationStatus};
use crate::ai::agent::{
@@ -655,7 +655,7 @@ fn render_collapse_chevron(
Some(
Hoverable::new(toggle_mouse_state, move |_| {
ConstrainedBox::new(chevron_icon.to_warpui_icon(text_color).finish())
ConstrainedBox::new(chevron_icon.to_galaxyui_icon(text_color).finish())
.with_width(icon_sz)
.with_height(icon_sz)
.finish()
@@ -2,9 +2,9 @@ use crate::ai::agent::conversation::{AIConversationId, ConversationStatus};
use crate::ai::agent::{StartAgentExecutionMode, StartAgentResult};
use crate::BlocklistAIHistoryModel;
use ai::agent::action_result::StartAgentVersion;
use warp_core::ui::appearance::Appearance;
use warpui::elements::MouseStateHandle;
use warpui::{App, EntityId};
use galaxy_core::ui::appearance::Appearance;
use galaxyui::elements::MouseStateHandle;
use galaxyui::{App, EntityId};
use super::{
agent_display_name_from_id, child_conversation_card_data_for_result,
+15 -15
View File
@@ -41,14 +41,14 @@ use ai::skills::SkillReference;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::{button, Component as _, Options as _};
use warp_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::color::internal_colors;
#[allow(unused_imports)]
use warp_util::path::{common_path, CleanPathResult};
use warpui::elements::new_scrollable::SingleAxisConfig;
use warpui::elements::{
use galaxy_util::path::{common_path, CleanPathResult};
use galaxyui::elements::new_scrollable::SingleAxisConfig;
use galaxyui::elements::{
ChildAnchor, NewScrollable, OffsetPositioning, ParentAnchor, ParentOffsetBounds, Stack,
};
use warpui::EntityId;
use galaxyui::EntityId;
use crate::ai::blocklist::block::{
CollapsibleElementState, CollapsibleExpansionState, FinishReason, ImportedCommentGroup,
@@ -110,7 +110,7 @@ use crate::{
};
use itertools::Itertools;
use markdown_parser::{FormattedText, FormattedTextFragment, FormattedTextLine};
use warp_core::channel::ChannelState;
use galaxy_core::channel::ChannelState;
use super::common::{
format_elapsed_seconds, render_debug_footer, render_failed_output, render_informational_footer,
@@ -127,7 +127,7 @@ use super::{
render_citation_chips, todos::render_completed_todo_items, WithContentItemSpacing,
CONTENT_ITEM_VERTICAL_MARGIN,
};
use warpui::{
use galaxyui::{
elements::{
Align, Border, ChildView, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment,
Empty, Expanded, Fill, Flex, FormattedTextElement, Hoverable, MainAxisAlignment,
@@ -1936,7 +1936,7 @@ fn render_stopped_output(props: Props, app: &AppContext) -> Box<dyn Element> {
let ui_builder = appearance.ui_builder().clone();
let play_icon = Container::new(
ConstrainedBox::new(Icon::Play.to_warpui_icon(theme.foreground()).finish())
ConstrainedBox::new(Icon::Play.to_galaxyui_icon(theme.foreground()).finish())
.with_height(appearance.ui_font_size() + 1.)
.with_width(appearance.ui_font_size() + 1.)
.finish(),
@@ -1988,7 +1988,7 @@ fn render_stopped_output(props: Props, app: &AppContext) -> Box<dyn Element> {
.set_background(internal_colors::fg_overlay_3(theme).into()),
);
let resume_button = warpui::ui_components::button::Button::new(
let resume_button = galaxyui::ui_components::button::Button::new(
props.state_handles.resume_conversation_handle.clone(),
button_styles,
Some(hovered_styles),
@@ -2175,7 +2175,7 @@ fn render_suggest_new_conversation(
),
SuggestNewConversationResult::Rejected => (
"Continuing current conversation",
warpui::elements::Icon::new(
galaxyui::elements::Icon::new(
Icon::FlipForward.into(),
internal_colors::neutral_6(theme),
)
@@ -2832,7 +2832,7 @@ fn render_references_footer(
.finish(),
)
.with_child(
ConstrainedBox::new(chevron.to_warpui_icon(title_row_color).finish())
ConstrainedBox::new(chevron.to_galaxyui_icon(title_row_color).finish())
.with_height(icon_size(app) - 2.)
.with_width(icon_size(app) - 2.)
.finish(),
@@ -3247,7 +3247,7 @@ fn render_usage_button(props: Props, app: &AppContext) -> Box<dyn Element> {
// Expansion icon
ConstrainedBox::new(
expansion_icon
.to_warpui_icon(
.to_galaxyui_icon(
appearance
.theme()
.sub_text_color(appearance.theme().background()),
@@ -3312,7 +3312,7 @@ pub fn action_icon<V: View>(
action_model: &ModelHandle<BlocklistAIActionModel>,
ai_block_model: &dyn AIBlockModel<View = V>,
app: &AppContext,
) -> warpui::elements::Icon {
) -> galaxyui::elements::Icon {
let appearance = Appearance::as_ref(app);
let status = action_model.as_ref(app).get_action_status(action_id);
match status {
@@ -3412,7 +3412,7 @@ fn render_collapsible_header(
)
.with_child(
Container::new(
ConstrainedBox::new(chevron_icon.to_warpui_icon(text_color.into()).finish())
ConstrainedBox::new(chevron_icon.to_galaxyui_icon(text_color.into()).finish())
.with_width(icon_size - 2.)
.with_height(icon_size - 2.)
.finish(),
@@ -3627,7 +3627,7 @@ fn render_collapsible_debug_output(
// Chevron icon
row.add_child(
Container::new(
ConstrainedBox::new(chevron_icon.to_warpui_icon(text_color.into()).finish())
ConstrainedBox::new(chevron_icon.to_galaxyui_icon(text_color.into()).finish())
.with_width(icon_size - 2.)
.with_height(icon_size - 2.)
.finish(),
@@ -2,8 +2,8 @@
//!
//! Queries are not rendered in blocks corresponding to requested command or requested action responses.
use warp_core::{features::FeatureFlag, ui::theme::color::internal_colors};
use warpui::{
use galaxy_core::{features::FeatureFlag, ui::theme::color::internal_colors};
use galaxyui::{
elements::{
Container, CornerRadius, Flex, MainAxisAlignment, MainAxisSize, ParentElement, Radius,
Shrinkable, Wrap,
@@ -116,7 +116,7 @@ pub(crate) fn render_query(
}
Flex::row()
.with_cross_axis_alignment(warpui::elements::CrossAxisAlignment::Start)
.with_cross_axis_alignment(galaxyui::elements::CrossAxisAlignment::Start)
.with_child(avatar)
.with_child(Shrinkable::new(1., query.finish()).finish())
.finish()
@@ -153,7 +153,7 @@ fn render_attachments(
..Default::default()
},
)
.with_icon(icon.to_warpui_icon(
.with_icon(icon.to_galaxyui_icon(
blended_colors::text_sub(appearance.theme(), appearance.theme().background()).into(),
))
.build()
@@ -1,8 +1,8 @@
//! Rendering logic for todo list components in AI blocks.
use warpui::fonts::Properties;
use warpui::text_layout::TextStyle;
use warpui::{
use galaxyui::fonts::Properties;
use galaxyui::text_layout::TextStyle;
use galaxyui::{
elements::{
Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Empty, Flex,
Highlight, ParentElement, Radius, Shrinkable, Text,
@@ -169,9 +169,9 @@ pub(super) fn render_completed_todo_items(
// Create a check mark icon
let check_icon = Container::new(
ConstrainedBox::new(
warpui::elements::Icon::new(
galaxyui::elements::Icon::new(
Icon::Check.into(),
warp_core::ui::theme::Fill::Solid(sub_text_color),
galaxy_core::ui::theme::Fill::Solid(sub_text_color),
)
.finish(),
)