// SPDX-License-Identifier: EUPL-1.2

//! Renderer-agnostic input widgets for `bang`.
//!
//! `bang-core` owns semantic input events, widget state, session lifecycle, and
//! logical render intent. It intentionally does not decode terminal bytes or
//! write ANSI escape sequences.

mod action;
mod event;
mod ids;
mod render;
mod session;
mod value;
mod widget;
pub mod widgets;

pub use action::{ActionBinding, ActionLayer};
pub use event::{Event, Key, KeyEvent, Modifiers};
pub use ids::{CursorAnchor, ViewId, WidgetId};
pub use render::{
    CalendarDay, CalendarView, CalendarWeek, CursorPlacement, ListRow, ListView, Role, Span,
    TextInputView, View, ViewContext, plain_snapshot,
};
pub use session::{Session, SessionStatus};
pub use value::{Date, Number, Value};
pub use widget::{Context, FocusTarget, Reaction, Widget};
