#![cfg_attr(docsrs, feature(doc_cfg))]
#![allow(rustdoc::private_intra_doc_links)]
extern crate self as bevy_react_core;
mod bridge;
mod cursor;
#[doc(hidden)]
pub mod console_log;
pub mod diag;
#[cfg(feature = "devtools")]
mod devtools;
mod event;
pub mod element;
pub mod elements;
pub mod ext;
mod gamepad;
mod host;
mod keyboard;
mod message;
mod names;
mod pick_clip;
mod plugin;
pub mod raster;
mod reconcile;
mod registry;
mod request;
mod scroll;
mod scrollbar;
mod shared_tags;
pub mod style;
mod style_bindings;
mod touch_scroll;
pub mod transition;
mod ts_codegen;
mod ui_map;
mod window;
#[cfg(not(target_arch = "wasm32"))]
pub mod js_thread;
pub mod protocol;
pub mod filters;
pub mod animations;
pub mod background_image;
pub mod image_rendering;
pub mod layer;
pub mod render_target;
pub mod svg;
#[doc(hidden)]
pub mod __private {
pub use bevy;
pub use serde;
pub use ts_rs;
}
pub use animations::ReactUiAnimationsPlugin;
pub use bevy_react_macros::{
react_event, react_filter, react_message, react_morph_filter, react_request,
};
#[cfg(any(test, feature = "test_util"))]
#[doc(hidden)]
pub mod test_util {
pub use crate::bridge::{JsBridge, PointerHandlers};
pub use crate::diag::{arm_runtime, take_decode_warnings, take_runtime_warnings, test_lock};
pub use crate::plugin::Fonts;
pub use crate::reconcile::test_util::*;
pub use crate::reconcile::{OpApplyStats, apply_js_ops, collect_ui_events};
pub use crate::ui_map::AtlasLayoutCache;
use crate::animations::{Driver, SharedId, SharedValues};
pub fn animation_apply()
-> bevy::ecs::schedule::ScheduleConfigs<bevy::ecs::system::ScheduleSystem> {
use bevy::ecs::schedule::IntoScheduleConfigs;
crate::animations::apply_animated_nodes.into_configs()
}
pub fn shared_declare(values: &mut SharedValues, id: SharedId, initial: f32) {
values.declare(id, initial);
}
pub fn shared_set(values: &mut SharedValues, id: SharedId, value: f32) {
values.set(id, value);
}
pub fn shared_animate(
values: &mut SharedValues,
id: SharedId,
driver: &Driver,
token: Option<u64>,
) {
values.animate(id, driver, token);
}
pub fn shared_tick(values: &mut SharedValues, dt: f32) {
values.tick(dt);
}
}
pub use bridge::ReactNode;
#[cfg(feature = "devtools")]
#[cfg_attr(docsrs, doc(cfg(feature = "devtools")))]
pub use devtools::DevtoolsConfig;
pub use event::{ReactEvent, ReactEvents};
pub use filters::{ReactFilter, ReactMorphFilter};
pub use message::{ReactAppExt, ReactMessage, ReactPayload};
pub use names::ReactNodes;
pub use plugin::{
FilterSelection, Fonts, PointerCapture, PointerCaptureSet, PrecompileFilters, ReactApplySet,
ReactUiPlugin,
};
pub use reconcile::OpApplyStats;
pub use render_target::{
PortalCamera, RenderMode, RenderTarget, RenderTargetSpec, RenderTargets, Resolution,
};
pub use request::{RawRequest, ReactRequest, Request, RequestEvent, Responder};
pub use scrollbar::{
HorizontalEdge, ScrollbarConfig, ScrollbarPartStyle, ScrollbarPosition, ScrollbarSpec,
VerticalEdge,
};