first pass of merging in warp (doesn't build)

This commit is contained in:
Ryan Ward
2026-07-01 16:08:58 -05:00
parent 2f64909469
commit 4770ac06b5
3662 changed files with 414574 additions and 89772 deletions
+31 -16
View File
@@ -1,41 +1,37 @@
use galaxy_core::ui::theme::Fill;
use itertools::Itertools;
use pathfinder_geometry::vector::vec2f;
use serde::Serialize;
use settings::Setting as _;
use galaxyui::elements::{
Align, Border, ChildAnchor, ChildView, Clipped, ConstrainedBox, Container, CornerRadius,
CrossAxisAlignment, Empty, Flex, Hoverable, MainAxisAlignment, MainAxisSize, MouseStateHandle,
OffsetPositioning, ParentAnchor, ParentElement, ParentOffsetBounds, Radius, Stack,
};
use galaxyui::keymap::FixedBinding;
use galaxyui::platform::Cursor;
use galaxyui::ui_components::button::ButtonVariant;
use galaxyui::ui_components::components::{Coords, UiComponent, UiComponentStyles};
use pathfinder_geometry::vector::vec2f;
use serde::Serialize;
use galaxyui::{
AppContext, Element, Entity, SingletonEntity, TypedActionView, View, ViewContext, ViewHandle,
};
use crate::appearance::AppearanceEvent;
use crate::chip_configurator::{ChipConfigurator, ChipConfiguratorAction, ChipConfiguratorLayout};
use crate::context_chips::prompt::{Prompt, PromptConfiguration, PromptSelection};
use crate::context_chips::renderer::Renderer as ContextChipRenderer;
use crate::context_chips::{
available_chips, ChipAvailability, ChipRuntimeCapabilities, ContextChipKind,
};
use crate::server::telemetry::{PromptChoice, TelemetryEvent};
use crate::settings::{FontSettings, WarpPromptSeparator};
use crate::terminal::blockgrid_element::BlockGridElement;
use crate::terminal::SizeInfo;
use settings::Setting as _;
use crate::terminal::model::blockgrid::BlockGrid;
use crate::terminal::model::ObfuscateSecrets;
use crate::terminal::session_settings::SessionSettings;
use crate::terminal::SizeInfo;
use crate::view_components::{Dropdown, DropdownItem};
use crate::Appearance;
use crate::{report_if_error, send_telemetry_from_ctx};
use galaxyui::elements::{
Align, Border, ChildAnchor, ChildView, Clipped, ConstrainedBox, Container, CornerRadius,
CrossAxisAlignment, Empty, Flex, Hoverable, MainAxisAlignment, MainAxisSize, MouseStateHandle,
OffsetPositioning, ParentAnchor, ParentElement, ParentOffsetBounds, Radius, Stack,
};
use crate::{report_if_error, send_telemetry_from_ctx, Appearance};
const MODAL_WIDTH: f32 = 700.;
const BORDER_WIDTH: f32 = 1.;
@@ -152,7 +148,7 @@ impl PromptType {
}
}
#[derive(Clone, Copy, Debug)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum EditorModalAction {
Cancel,
Save,
@@ -222,6 +218,25 @@ impl EditorModal {
dropdown
});
// Context-chip colors are theme-derived, so rebuild the chips when the
// theme changes to keep an open editor in sync (preserving the current
// used-chip selection).
ctx.subscribe_to_model(&Appearance::handle(ctx), |me, _, event, ctx| {
if matches!(event, AppearanceEvent::ThemeChanged)
&& me.chip_configurator.current_dragging_state.is_none()
&& me.chip_configurator.has_items()
{
let used_chips = me
.chip_configurator
.used_chips
.iter()
.filter_map(|r| r.chip_kind().cloned())
.collect();
me.update_used_chips(used_chips, ctx);
ctx.notify();
}
});
Self {
mouse_state_handles: Default::default(),
ps1_grid_info: None,