use std::sync::Arc;
pub use lazy_static::lazy_static;
use proc_macro_hack::proc_macro_hack;
pub use alchemy_lifecycle::{ComponentKey, text};
pub use alchemy_lifecycle::traits::{
AppDelegate, Component, Props as ComponentProps, WindowDelegate
};
pub use alchemy_lifecycle::error::Error;
pub use alchemy_lifecycle::rsx::{
RSX, VirtualNode, VirtualText
};
#[proc_macro_hack(support_nested)]
pub use alchemy_macros::rsx;
#[proc_macro_hack]
pub use alchemy_macros::styles;
pub use alchemy_macros::Props;
pub use alchemy_styles::{Color, styles as style_attributes, SpacedSet, StyleSheet, StylesList};
mod app;
use app::App;
pub mod components;
pub use components::{Fragment, Text, View};
pub mod window;
pub use window::Window;
lazy_static! {
pub(crate) static ref SHARED_APP: Arc<App> = App::new();
}
pub fn shared_app() -> Arc<App> {
SHARED_APP.clone()
}