Fix cursor focus and selection in input box, add AWS env var warning box, and remove AWS Bedrock login banner

This commit is contained in:
2026-07-02 14:54:15 -05:00
parent 4770ac06b5
commit 3769646ca6
1194 changed files with 5312 additions and 8032 deletions
+5 -10
View File
@@ -6,20 +6,14 @@ use galaxy_core::ui::theme::{AnsiColor, AnsiColors, Details, Fill, GalaxyTheme,
use galaxyui::color::ColorU;
use galaxyui::elements::{Rect, Stack};
use galaxyui::fonts::{Cache, FamilyId, Weight};
use galaxyui::platform;
use galaxyui::{prelude::*, AddWindowOptions, AssetProvider, ModelContext};
use galaxyui::prelude::*;
use galaxyui::{platform, AddWindowOptions, AssetProvider, ModelContext};
use onboarding::components::onboarding_callout::{
Button as CalloutButton, OnboardingCallout, Options as CalloutOptions, Params as CalloutParams,
StepStatus,
};
use rust_embed::RustEmbed;
use ui_components::Component as _;
use galaxy_core::ui::theme::{AnsiColor, AnsiColors, Details, Fill, TerminalColors, WarpTheme};
use galaxyui_core::color::ColorU;
use galaxyui_core::elements::{Rect, Stack};
use galaxyui_core::fonts::{Cache, FamilyId, Weight};
use galaxyui_core::prelude::*;
use galaxyui_core::{platform, AddWindowOptions, AssetProvider, ModelContext};
#[derive(Clone, Copy, RustEmbed)]
#[folder = "../../app/assets"]
@@ -36,7 +30,7 @@ impl AssetProvider for Assets {
}
fn main() -> platform::app::TerminationResult {
let app_builder = warpui::platform::AppBuilder::new(
let app_builder = galaxyui::platform::AppBuilder::new(
platform::AppCallbacks::default(),
Box::new(ASSETS),
None,
@@ -51,7 +45,8 @@ fn main() -> platform::app::TerminationResult {
"Noto Sans".to_string()
};
let font_family = Cache::handle(ctx).update(ctx, |cache, _ctx| {
let cache_handle = Cache::handle(ctx);
let font_family = cache_handle.update(ctx, |cache, _ctx| {
cache.load_system_font(&font_name).unwrap()
});
+8 -10
View File
@@ -1,15 +1,8 @@
use std::borrow::Cow;
use anyhow::Result;
use onboarding::callout::{
OnboardingCalloutView, OnboardingCalloutViewEvent, OnboardingKeybindings,
};
use onboarding::OnboardingIntention;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use rust_embed::RustEmbed;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::{AnsiColor, AnsiColors, Details, Fill, TerminalColors, WarpTheme};
use galaxy_core::ui::theme::{AnsiColor, AnsiColors, Details, Fill, GalaxyTheme, TerminalColors};
use galaxyui_core::elements::{
ChildAnchor, ChildView, ConstrainedBox, Container, Flex, MainAxisAlignment, MainAxisSize,
OffsetPositioning, ParentElement, PositionedElementAnchor, PositionedElementOffsetBounds, Rect,
@@ -25,6 +18,10 @@ use galaxyui_core::{
use onboarding::callout::{
OnboardingCalloutView, OnboardingCalloutViewEvent, OnboardingKeybindings,
};
use onboarding::OnboardingIntention;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use rust_embed::RustEmbed;
#[derive(Clone, Copy, RustEmbed)]
#[folder = "../../app/assets"]
@@ -182,7 +179,7 @@ fn main() -> Result<()> {
..Default::default()
})?;
let app_builder = warpui::platform::AppBuilder::new(
let app_builder = galaxyui::platform::AppBuilder::new(
platform::AppCallbacks::default(),
Box::new(ASSETS),
None,
@@ -258,7 +255,8 @@ fn build_appearance(theme: GalaxyTheme, ctx: &mut AppContext) -> Appearance {
}
fn load_default_ui_font_family(ctx: &mut AppContext) -> anyhow::Result<FamilyId> {
Cache::handle(ctx).update(ctx, |font_cache, _| {
let cache_handle = Cache::handle(ctx);
cache_handle.update(ctx, |font_cache, _| {
// On Windows, default to use Segoe UI as the UI font.
#[cfg(windows)]
if let Ok(font_family_id) = font_cache.load_system_font("Segoe UI") {
@@ -1,13 +1,13 @@
use std::time::Duration;
use ai::LLMId;
use instant::Instant;
use galaxy_core::features::FeatureFlag;
use galaxy_core::send_telemetry_from_ctx;
use galaxyui_core::assets::asset_cache::AssetSource;
use galaxyui_core::image_cache::ImageType;
use galaxyui_core::windowing::state::{ApplicationStage, StateEvent};
use galaxyui_core::windowing::WindowManager;
use instant::Instant;
use crate::components::feature_optout_dialog::{render_feature_optout_dialog, FeatureOptOutDialog};
use crate::model::{
@@ -25,11 +25,8 @@ const APP_BECAME_ACTIVE_DEBOUNCE: Duration = Duration::from_secs(15);
const PLAN_ACTIVATED_TOAST_DURATION: Duration = Duration::from_secs(5);
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::{button, Component as _, Options as _};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::{Fill, WarpTheme};
use galaxy_core::ui::theme::{Fill, GalaxyTheme};
use galaxy_core::ui::Icon;
use galaxyui_core::elements::{
Align, CacheOption, ChildAnchor, ConstrainedBox, Container, CrossAxisAlignment, Dismiss, Empty,
@@ -45,6 +42,9 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext, ViewHandle,
};
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::{button, Component as _, Options as _};
#[derive(Clone, Debug)]
pub enum AgentOnboardingEvent {
@@ -483,7 +483,7 @@ impl AgentOnboardingView {
let ui_builder = appearance.ui_builder();
let check_icon = ConstrainedBox::new(Box::new(
Icon::CheckSkinny.to_warpui_icon(Fill::Solid(text_color)),
Icon::CheckSkinny.to_galaxyui_icon(Fill::Solid(text_color)),
))
.with_width(ICON_SIZE)
.with_height(ICON_SIZE)
+3 -6
View File
@@ -4,12 +4,6 @@ use std::borrow::Cow;
use ai::LLMId;
use anyhow::Result;
use onboarding::slides::OnboardingModelInfo;
use onboarding::{
AgentOnboardingEvent, AgentOnboardingView, MockTelemetryContextProvider, SelectedSettings,
};
use pathfinder_color::ColorU;
use rust_embed::RustEmbed;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::{
@@ -26,9 +20,12 @@ use galaxyui_core::{
platform, AddWindowOptions, AppContext, AssetProvider, Element, Entity, SingletonEntity as _,
TypedActionView, View, ViewContext, ViewHandle,
};
use onboarding::slides::OnboardingModelInfo;
use onboarding::{
AgentOnboardingEvent, AgentOnboardingView, MockTelemetryContextProvider, SelectedSettings,
};
use pathfinder_color::ColorU;
use rust_embed::RustEmbed;
#[derive(Clone, Copy, RustEmbed)]
#[folder = "../../app/assets"]
+1 -1
View File
@@ -1,4 +1,3 @@
use ui_components::Component;
use galaxy_core::ui::appearance::Appearance;
use galaxyui_core::elements::Empty;
use galaxyui_core::keymap::macros::*;
@@ -7,6 +6,7 @@ use galaxyui_core::{
AppContext, Element, Entity, EventContext, ModelHandle, SingletonEntity, TypedActionView, View,
ViewContext,
};
use ui_components::Component;
/// Display strings for keybindings shown in the onboarding callout.
#[derive(Clone, Debug)]
@@ -1,4 +1,3 @@
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
@@ -10,6 +9,7 @@ use galaxyui_core::elements::{
use galaxyui_core::fonts::Weight;
use galaxyui_core::text_layout::TextAlignment;
use galaxyui_core::Element;
use pathfinder_color::ColorU;
/// Content for a "you'll lose these features" opt-out confirmation dialog.
pub struct FeatureOptOutDialog {
@@ -62,7 +62,7 @@ pub fn render_feature_optout_dialog(
let mut feature_list =
Flex::column().with_cross_axis_alignment(CrossAxisAlignment::Stretch);
for &item in dialog.features {
let icon_el = ConstrainedBox::new(Icon::X.to_warpui_icon(feature_x_fill).finish())
let icon_el = ConstrainedBox::new(Icon::X.to_galaxyui_icon(feature_x_fill).finish())
.with_width(16.)
.with_height(16.)
.finish();
@@ -1,9 +1,5 @@
use std::borrow::Cow;
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::button::Button as ButtonComponent;
use ui_components::{button, Component, MouseEventHandler, Options as _};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::color::coloru_with_opacity;
use galaxy_core::ui::color::contrast::relative_luminance;
@@ -18,6 +14,10 @@ use galaxyui_core::keymap::Keystroke;
use galaxyui_core::prelude::*;
use galaxyui_core::ui_components::checkbox::Checkbox as WarpCheckbox;
use galaxyui_core::ui_components::components::{UiComponent as _, UiComponentStyles};
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::button::Button as ButtonComponent;
use ui_components::{button, Component, MouseEventHandler, Options as _};
const CALLOUT_WIDTH: f32 = 480.;
const CALLOUT_BORDER_WIDTH: f32 = 1.;
+1 -2
View File
@@ -1,4 +1,5 @@
use ai::LLMId;
use galaxy_core::features::FeatureFlag;
use galaxy_core::send_telemetry_from_ctx;
use galaxyui_core::{Entity, ModelContext};
@@ -658,7 +659,6 @@ impl OnboardingStateModel {
default_model_id: LLMId,
ctx: &mut ModelContext<Self>,
) {
// If the user is past the agent slide, don't change the agent model from underneath them.
// When the new settings modes flag is on, ThemePicker comes after the agent slides
// so it must also be guarded.
@@ -990,7 +990,6 @@ impl OnboardingStateModel {
/// The `(step_index, step_count)` shown by the bottom-nav progress dots for the
/// current step, intention, and flow variant.
pub(crate) fn progress(&self) -> (usize, usize) {
let is_terminal = matches!(self.intention, OnboardingIntention::Terminal);
if !FeatureFlag::OpenWarpNewSettingsModes.is_enabled() {
// Legacy flow: ThemePicker → Intention → Agent → Project.
+3 -3
View File
@@ -1,9 +1,7 @@
use ai::LLMId;
use galaxy_core::ui::icons::Icon;
use pathfinder_color::ColorU;
use ui_components::{button, Component as _, Options as _};
use galaxy_core::features::FeatureFlag;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
use galaxyui_core::elements::{
@@ -22,6 +20,8 @@ use galaxyui_core::ui_components::components::{UiComponent as _, UiComponentStyl
use galaxyui_core::{
AppContext, Element, Entity, SingletonEntity as _, TypedActionView, View, ViewContext,
};
use pathfinder_color::ColorU;
use ui_components::{button, Component as _, Options as _};
use super::two_line_button::{render_two_line_button, TwoLineButtonSpec};
use super::OnboardingSlide;
@@ -1,4 +1,3 @@
use ui_components::{button, Component as _, Options as _};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::color::internal_colors;
@@ -18,6 +17,7 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use ui_components::{button, Component as _, Options as _};
use super::OnboardingSlide;
use crate::model::{AiAccessChoice, OnboardingAuthState, OnboardingStateModel};
@@ -410,7 +410,7 @@ impl AiAccessSlide {
};
let icon = ConstrainedBox::new(Box::new(
Icon::AlertCircle.to_warpui_icon(Fill::Solid(text_color)),
Icon::AlertCircle.to_galaxyui_icon(Fill::Solid(text_color)),
))
.with_width(ICON_SIZE)
.with_height(ICON_SIZE)
@@ -1,4 +1,3 @@
use ui_components::{button, Component as _, Options as _};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
@@ -18,6 +17,7 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use ui_components::{button, Component as _, Options as _};
use super::OnboardingSlide;
use crate::model::{AiSetupChoice, OnboardingStateModel};
@@ -99,7 +99,7 @@ impl AiSetupSlide {
let theme = appearance.theme();
let logo_fill = internal_colors::fg_overlay_4(theme);
let logo = ConstrainedBox::new(Icon::WarpLogoLight.to_warpui_icon(logo_fill).finish())
let logo = ConstrainedBox::new(Icon::WarpLogoLight.to_galaxyui_icon(logo_fill).finish())
.with_width(64.)
.with_height(64.)
.finish();
@@ -290,10 +290,11 @@ impl AiSetupSlide {
.with_main_axis_size(MainAxisSize::Min)
.with_cross_axis_alignment(CrossAxisAlignment::Start);
for &item in WARP_AGENT_FEATURES {
let icon_el = ConstrainedBox::new(Icon::Check.to_warpui_icon(check_fill).finish())
.with_width(16.)
.with_height(16.)
.finish();
let icon_el =
ConstrainedBox::new(Icon::Check.to_galaxyui_icon(check_fill).finish())
.with_width(16.)
.with_height(16.)
.finish();
let text_el = appearance
.ui_builder()
.paragraph(item.to_string())
@@ -1,4 +1,3 @@
use ui_components::{button, Component as _, Options as _};
use galaxy_core::features::FeatureFlag;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
@@ -15,6 +14,7 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use ui_components::{button, Component as _, Options as _};
use super::toggle_card::{render_toggle_card, ChipSpec, ToggleCardSpec};
use super::OnboardingSlide;
@@ -1,4 +1,3 @@
use ui_components::{button, Component as _, Options as _};
use galaxy_core::features::FeatureFlag;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
@@ -19,6 +18,7 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use ui_components::{button, Component as _, Options as _};
use super::OnboardingSlide;
use crate::model::{NoAiConfirmationSource, OnboardingStateModel};
+3 -3
View File
@@ -1,6 +1,3 @@
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::{button, Component as _, Options as _};
use galaxy_core::send_telemetry_from_ctx;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
@@ -20,6 +17,9 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use pathfinder_color::ColorU;
use pathfinder_geometry::vector::vec2f;
use ui_components::{button, Component as _, Options as _};
use super::OnboardingSlide;
use crate::model::OnboardingStateModel;
+1 -1
View File
@@ -1,4 +1,3 @@
use pathfinder_geometry::vector::{vec2f, Vector2F};
use galaxyui_core::assets::asset_cache::AssetSource;
use galaxyui_core::elements::{
Align, CacheOption, Clipped, ConstrainedBox, Container, CrossAxisAlignment, Empty, Expanded,
@@ -10,6 +9,7 @@ use galaxyui_core::{
AfterLayoutContext, AppContext, Element, EventContext, LayoutContext, PaintContext,
SizeConstraint,
};
use pathfinder_geometry::vector::{vec2f, Vector2F};
// Onboarding images live under `app/assets/async/` so they are excluded from the WASM
// binary (RustEmbed excludes `async/**` on wasm targets). They are still bundled normally
@@ -1,4 +1,3 @@
use ui_components::{button, keyboard_shortcut, Component as _, Options as _};
use galaxy_core::send_telemetry_from_ctx;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::color::coloru_with_opacity;
@@ -18,6 +17,7 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use ui_components::{button, keyboard_shortcut, Component as _, Options as _};
use super::OnboardingSlide;
use crate::model::OnboardingStateModel;
@@ -1,10 +1,8 @@
use pathfinder_color::ColorU;
use ui_components::{button, Component as _, Options as _};
use galaxy_core::features::FeatureFlag;
use galaxy_core::send_telemetry_from_ctx;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::WarpTheme;
use galaxy_core::ui::theme::GalaxyTheme;
use galaxyui_core::elements::{
Border, ClippedScrollStateHandle, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment,
Empty, Flex, FormattedTextElement, Hoverable, MainAxisAlignment, MainAxisSize,
@@ -18,6 +16,8 @@ use galaxyui_core::ui_components::components::{UiComponent, UiComponentStyles};
use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity, TypedActionView, View, ViewContext,
};
use pathfinder_color::ColorU;
use ui_components::{button, Component as _, Options as _};
use super::OnboardingSlide;
use crate::model::{OnboardingStateEvent, OnboardingStateModel};
@@ -1,4 +1,3 @@
use ui_components::{button, Component as _, Options as _};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui_core::elements::{
@@ -14,6 +13,7 @@ use galaxyui_core::{
AppContext, Element, Entity, ModelHandle, SingletonEntity as _, TypedActionView, View,
ViewContext,
};
use ui_components::{button, Component as _, Options as _};
use super::toggle_card::{render_toggle_card, ToggleCardSpec};
use super::OnboardingSlide;
+1 -1
View File
@@ -1,4 +1,3 @@
use pathfinder_geometry::vector::Vector2F;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxy_core::ui::theme::Fill;
@@ -13,6 +12,7 @@ use galaxyui_core::prelude::Align;
use galaxyui_core::presenter::EventContext;
use galaxyui_core::text_layout::TextAlignment;
use galaxyui_core::{AppContext, Element};
use pathfinder_geometry::vector::Vector2F;
pub(super) type ClickCallback = Box<dyn FnMut(&mut EventContext, &AppContext, Vector2F) + 'static>;
pub(super) type HoverCallback =
@@ -1,4 +1,3 @@
use pathfinder_geometry::vector::vec2f;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::icons::Icon;
use galaxy_core::ui::theme::color::internal_colors;
@@ -11,6 +10,7 @@ use galaxyui_core::elements::{
use galaxyui_core::fonts::{Properties, Weight};
use galaxyui_core::platform::Cursor;
use galaxyui_core::Element;
use pathfinder_geometry::vector::vec2f;
use super::agent_slide::AgentSlideAction;
@@ -1,8 +1,6 @@
use galaxyui::elements::Align;
use galaxyui::Element;
use pathfinder_color::ColorU;
use galaxyui_core::elements::Align;
use galaxyui_core::Element;
use super::onboarding_visual::{OnboardingVisual, Pill, RectPct};
@@ -1,8 +1,6 @@
use galaxyui::elements::Align;
use galaxyui::Element;
use pathfinder_color::ColorU;
use galaxyui_core::elements::Align;
use galaxyui_core::Element;
use super::onboarding_visual::{OnboardingVisual, Pill, RectPct};
use crate::visuals::onboarding_visual::Rect;
@@ -1,8 +1,6 @@
use galaxyui::elements::Align;
use galaxyui::Element;
use pathfinder_color::ColorU;
use galaxyui_core::elements::Align;
use galaxyui_core::Element;
use super::onboarding_visual::{OnboardingVisual, Pill, RectPct};
@@ -1,4 +1,3 @@
use pathfinder_color::ColorU;
use galaxy_core::ui::Icon;
use galaxyui_core::assets::asset_cache::{AssetCache, AssetSource, AssetState};
use galaxyui_core::elements::{CornerRadius, Fill, Point, Radius};
@@ -10,6 +9,7 @@ use galaxyui_core::{
AfterLayoutContext, AppContext, Element, EventContext, LayoutContext, PaintContext,
SingletonEntity as _, SizeConstraint,
};
use pathfinder_color::ColorU;
#[derive(Debug, Clone, Copy)]
pub(crate) struct RectPct {
@@ -2,8 +2,6 @@ use galaxy_core::ui::Icon;
use galaxyui::elements::Align;
use galaxyui::Element;
use pathfinder_color::ColorU;
use galaxyui_core::elements::Align;
use galaxyui_core::Element;
use super::onboarding_visual::{IconPct, OnboardingVisual, Pill, RectPct};