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
+5 -9
View File
@@ -1,17 +1,13 @@
mod params;
pub mod themes;
use galaxy_core::ui::{
appearance::Appearance,
color::{ContrastingColor as _, contrast::MinimumAllowedContrast},
};
use galaxyui::{
elements::{MouseState, MouseStateHandle},
prelude::*,
};
pub use params::*;
pub use themes::Theme;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::color::ContrastingColor as _;
use galaxy_core::ui::color::contrast::MinimumAllowedContrast;
use galaxyui_core::elements::{MouseState, MouseStateHandle};
use galaxyui_core::prelude::*;
use crate::{keyboard_shortcut, tooltip};
+4 -3
View File
@@ -2,11 +2,12 @@ use std::borrow::Cow;
use galaxy_core::ui::Icon;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::{fonts, keymap::Keystroke, prelude::stack};
use crate::{keyboard_shortcut, tooltip};
use galaxyui_core::fonts;
use galaxyui_core::keymap::Keystroke;
use galaxyui_core::prelude::stack;
use super::Theme;
use crate::{keyboard_shortcut, tooltip};
/// The parameters for rendering a button.
pub struct Params<'a> {
+4 -3
View File
@@ -1,7 +1,8 @@
use galaxy_core::ui::{
appearance::Appearance, color::coloru_with_opacity, theme::Fill, theme::color::internal_colors,
};
use pathfinder_color::ColorU;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::color::coloru_with_opacity;
use galaxy_core::ui::theme::Fill;
use galaxy_core::ui::theme::color::internal_colors;
/// Theming delegate for a button.
pub trait Theme {
+12 -11
View File
@@ -1,16 +1,17 @@
use std::{borrow::Cow, sync::Arc};
use std::borrow::Cow;
use std::sync::Arc;
use galaxy_core::ui::{Icon, appearance::Appearance, theme::color::internal_colors};
use galaxyui::{
AppContext, EventContext,
elements::{
Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Dismiss, Element,
Flex, ParentElement, Radius, Shrinkable,
},
fonts::{Properties, Weight},
keymap::Keystroke,
prelude::{MainAxisAlignment, MainAxisSize, Text},
use galaxy_core::ui::Icon;
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui_core::elements::{
Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Dismiss, Element, Flex,
ParentElement, Radius, Shrinkable,
};
use galaxyui_core::fonts::{Properties, Weight};
use galaxyui_core::keymap::Keystroke;
use galaxyui_core::prelude::{MainAxisAlignment, MainAxisSize, Text};
use galaxyui_core::{AppContext, EventContext};
use crate::{Component, Options as _, Renderable, button};
@@ -1,7 +1,10 @@
use std::borrow::Cow;
use galaxy_core::ui::{appearance::Appearance, icons::Icon};
use galaxyui::{keymap::Keystroke, platform::OperatingSystem, prelude::*};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::icons::Icon;
use galaxyui_core::keymap::Keystroke;
use galaxyui_core::platform::OperatingSystem;
use galaxyui_core::prelude::*;
use crate::Component;
+7 -8
View File
@@ -6,9 +6,8 @@ pub mod switch;
pub mod tooltip;
pub use keyboard_shortcut::KeyboardShortcut;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::Element;
use galaxyui_core::Element;
/// A reusable UI component that can be rendered with configurable parameters.
///
@@ -32,7 +31,7 @@ use galaxyui::Element;
/// ```rust
/// use ui_components::{Component, Options, button};
/// use galaxy_core::ui::appearance::Appearance;
/// use galaxyui::prelude::*;
/// use galaxyui_core::prelude::*;
///
/// // Store component as a field in your view.
/// struct MyView {
@@ -40,7 +39,7 @@ use galaxyui::Element;
/// }
///
/// impl MyView {
/// fn render_button(&self, appearance: &Appearance) -> Box<dyn galaxyui::Element> {
/// fn render_button(&self, appearance: &Appearance) -> Box<dyn galaxyui_core::Element> {
/// self.my_button.render(
/// appearance,
/// button::Params {
@@ -63,7 +62,7 @@ use galaxyui::Element;
/// ```rust
/// use ui_components::Component;
/// use galaxy_core::ui::appearance::Appearance;
/// use galaxyui::prelude::*;
/// use galaxyui_core::prelude::*;
///
/// // 1. Define the component struct with any persistent state.
/// #[derive(Default)]
@@ -233,7 +232,7 @@ pub trait Options {
/// ```rust
/// use ui_components::{Renderable, Options};
/// use galaxy_core::ui::appearance::Appearance;
/// use galaxyui::prelude::*;
/// use galaxyui_core::prelude::*;
///
/// pub struct SwitchOptions<'a> {
/// pub disabled: bool,
@@ -283,8 +282,8 @@ where
/// A function that handles mouse events.
pub type MouseEventHandler = Box<
dyn FnMut(
&mut galaxyui::EventContext,
&galaxyui::AppContext,
&mut galaxyui_core::EventContext,
&galaxyui_core::AppContext,
pathfinder_geometry::vector::Vector2F,
),
>;
+48 -10
View File
@@ -1,13 +1,15 @@
use std::sync::Arc;
use galaxy_core::ui::{Icon, appearance::Appearance};
use galaxyui::{
assets::asset_cache::AssetSource,
elements::{CacheOption, Dismiss, DispatchEventResult, EventHandler, Image, Shrinkable},
keymap::Keystroke,
prelude::{stack::*, *},
};
use pathfinder_geometry::vector::{Vector2F, vec2f};
use galaxy_core::ui::Icon;
use galaxy_core::ui::appearance::Appearance;
use galaxyui_core::assets::asset_cache::AssetSource;
use galaxyui_core::elements::{
CacheOption, Dismiss, DispatchEventResult, EventHandler, Image, Shrinkable,
};
use galaxyui_core::keymap::Keystroke;
use galaxyui_core::prelude::stack::*;
use galaxyui_core::prelude::*;
use crate::{Component, Options as _, button};
@@ -130,7 +132,7 @@ impl Component for Lightbox {
appearance,
button::Params {
content: button::Content::Icon(Icon::X),
theme: &button::themes::Secondary,
theme: &ButtonTheme,
options: button::Options {
size: button::Size::Small,
on_click: Some(Box::new(move |ctx, app, _| {
@@ -151,6 +153,7 @@ impl Component for Lightbox {
let image = ConstrainedBox::new(
Image::new(asset_source.clone(), CacheOption::Original)
.contain()
.layout_using_paint_bounds()
.before_load(Align::new(loading_element(appearance)).finish())
.finish(),
)
@@ -225,7 +228,7 @@ impl Component for Lightbox {
appearance,
button::Params {
content: button::Content::Icon(Icon::ChevronLeft),
theme: &button::themes::Secondary,
theme: &ButtonTheme,
options: button::Options {
size: button::Size::Small,
on_click: Some(Box::new(move |ctx, app, _| {
@@ -253,7 +256,7 @@ impl Component for Lightbox {
appearance,
button::Params {
content: button::Content::Icon(Icon::ChevronRight),
theme: &button::themes::Secondary,
theme: &ButtonTheme,
options: button::Options {
size: button::Size::Small,
on_click: Some(Box::new(move |ctx, app, _| {
@@ -294,3 +297,38 @@ fn loading_element(appearance: &Appearance) -> Box<dyn Element> {
fn lightbox_text_size(appearance: &Appearance) -> f32 {
appearance.ui_font_size() + LIGHTBOX_TEXT_SIZE_DELTA
}
/// A custom button theme for lightbox buttons to force colors to match
/// a Dark theme button, as these buttons always appear on top of a near-black
/// scrim, independent of application theme.
struct ButtonTheme;
impl button::Theme for ButtonTheme {
fn background(
&self,
button_state: button::State,
_appearance: &Appearance,
) -> Option<galaxy_core::ui::theme::Fill> {
match button_state {
button::State::Default => None,
button::State::Hovered => Some(galaxy_core::ui::theme::Fill::white().with_opacity(10)),
button::State::Pressed => Some(galaxy_core::ui::theme::Fill::white().with_opacity(15)),
}
}
fn text_color(
&self,
_background: Option<galaxy_core::ui::theme::Fill>,
_appearance: &Appearance,
) -> ColorU {
ColorU::new(255, 255, 255, 255)
}
fn border(&self, _appearance: &Appearance) -> Option<ColorU> {
Some(ColorU::new(51, 51, 51, 255))
}
fn keyboard_shortcut_background(&self, _appearance: &Appearance) -> Option<ColorU> {
Some(ColorU::new(38, 38, 38, 255))
}
}
+3 -4
View File
@@ -1,10 +1,9 @@
use std::sync::LazyLock;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::{
elements::{MouseStateHandle, Rect},
prelude::{stack::*, *},
};
use galaxyui_core::elements::{MouseStateHandle, Rect};
use galaxyui_core::prelude::stack::*;
use galaxyui_core::prelude::*;
use crate::{Component, MouseEventHandler, Renderable};
+5 -3
View File
@@ -1,7 +1,9 @@
use std::borrow::Cow;
use galaxy_core::ui::{appearance::Appearance, theme::color::internal_colors};
use galaxyui::{keymap::Keystroke, prelude::*};
use galaxy_core::ui::appearance::Appearance;
use galaxy_core::ui::theme::color::internal_colors;
use galaxyui_core::keymap::Keystroke;
use galaxyui_core::prelude::*;
use crate::{Component, keyboard_shortcut};
@@ -39,7 +41,7 @@ impl Component for Tooltip {
&self,
appearance: &Appearance,
params: Self::Params<'a>,
) -> Box<dyn galaxyui::Element> {
) -> Box<dyn galaxyui_core::Element> {
let font_family = appearance.ui_font_family();
let font_size = appearance.ui_font_size() + UI_FONT_SIZE_ADJUSTMENT;