Skip to main content

cranpose_foundation/text/
mod.rs

1//! Text input module for editable text fields.
2//!
3//! This module provides the core types for text editing, following Jetpack Compose's
4//! text input architecture from `compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/`.
5//!
6//! # Core Types
7//!
8//! - [`TextRange`] - Represents cursor position or text selection range
9//! - [`TextFieldBuffer`] - Mutable buffer for editing text with change tracking
10//! - [`TextFieldState`] - Observable state holder for text field content
11//! - [`TextFieldLineLimits`] - Controls single-line vs multi-line input
12//!
13//! # Example
14//!
15//! ```text
16//! let state = TextFieldState::new("Hello");
17//! state.edit(|buffer| {
18//!     buffer.place_cursor_at_end();
19//!     buffer.insert(", World!");
20//! });
21//! assert_eq!(state.text(), "Hello, World!");
22//! ```
23
24mod buffer;
25mod line_limits;
26mod range;
27mod state;
28
29pub use buffer::TextFieldBuffer;
30pub use line_limits::{filter_for_single_line, TextFieldLineLimits};
31pub use range::TextRange;
32pub use state::{TextFieldState, TextFieldValue};