Skip to content
Snippets Groups Projects
lib.rs 1.34 KiB
Newer Older
Louis's avatar
Louis committed
pub mod components;
pub(crate) mod styles;
pub mod theme;
pub mod types;
pub(crate) mod utilities;

mod __plugins {
	use bevy::app::{App, Plugin, PluginGroup, PluginGroupBuilder};
	use kayak_ui::prelude::KayakContextPlugin;
	use kayak_ui::widgets::KayakWidgets;

	pub struct CresthollowThemePlugin;
	impl Plugin for CresthollowThemePlugin {
		fn build(&self, app: &mut App) {
			app.init_resource::<super::theme::ThemeMapping>()
                // .add_system(super::components::cursor_animation_system)
            ;
		}
	}

	pub struct BaseUIPlugins;
	impl PluginGroup for BaseUIPlugins {
		fn build(self) -> PluginGroupBuilder {
			PluginGroupBuilder::start::<Self>()
				.add(CresthollowThemePlugin)
				.add(KayakContextPlugin)
				.add(KayakWidgets)
		}
	}
}

pub use __plugins::BaseUIPlugins;
pub use styles::{edge_px, pct, px, stretch, val_auto, value};
pub use theme::{tokens, ThemeMapping, ThemeProvider};

pub use utilities::{
	button_logic, context, remove_root_ui, remove_tagged_context, widget_update_with_resource,
	EmptyProps, HasDisabledState, HasHoveredState, HasPressedState, StateUIRoot, TextSizer,
};

pub use kayak_font;
pub use kayak_ui;

pub mod prelude {
	pub use super::styles::*;
	pub use super::utilities::*;
	pub use crate::theme::{tokens::*, ThemeMapping, ThemeProvider};
	pub use kayak_ui::prelude::widgets::*;
	pub use kayak_ui::prelude::*;
}