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

pub extern crate bevy;
Louis's avatar
Louis committed
pub extern crate kayak_font;
pub extern crate kayak_ui;

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

	pub struct AdventUIComponents;
	impl Plugin for AdventUIComponents {
		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(AdventUIComponents)
				.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 types::IconContent;
pub use utilities::{
Louis's avatar
Louis committed
	button_logic, context, remove_root_ui, remove_tagged_root, widget_update_with_resource,
	EmptyProps, HasDisabledState, HasHoveredState, HasPressedState, StateUIRoot, TextSizer,
Louis's avatar
Louis committed
};

pub mod prelude {
	pub use kayak_ui::prelude::*;
	pub use kayak_ui::widgets::*;

	pub use super::components::*;
	pub use super::IconContent;
	pub use super::{edge_px, pct, px, stretch, val_auto, value};
}