[](https://crates.io/crates/rat-input)
[](https://docs.rs/rat-input)
[](https://opensource.org/licenses/MIT)
[](https://www.apache.org/licenses/LICENSE-2.0)

## Data input widgets for ratatui.
These widgets are plain vanilla ratatui widgets.
Eventhandling is currently crossterm only.
In practice event-handling is calling 1 or 2 functions on the state, so this
should be easy to map to other systems. (Contributions welcome :)
# [TextArea](crate::textarea)
Editable text area.
* Range based text styles.
* Text selection with keyboard + mouse
* Possible states as style: Focused
* Emoji supported.

# [TextInput](crate::input)
Basic text input field.
* Text selection with keyboard + mouse
* Possible states as styles: Focused, Invalid
# [MaskedInput](crate::masked_input)
Text input with an input mask.
* Text selection with keyboard + mouse
* Possible states as styles: Focused, Invalid
* Pattern based input -> "##,###,##0.00"
* number patterns: `09#-+.,`
* numeric text: `HhOoDd`
* text: `lac_`
* arbitrary separators between sub-fields
* info-overlay for sub-fields without value
* Localization with [rat-input::NumberSymbols] based on [pure-rust-locales](pure-rust-locales)
# [Button](crate::button::Button)
Simple button widget.
# [DateInput](crate::date_input), [NumberInput](crate::number_input)
Date input with format strings parsed by [chrono](https://docs.rs/chrono/latest/chrono/).
Number input with format strings parsed
by [format_num_pattern](https://docs.rs/format_num_pattern/latest/format_num_pattern/)
# [Month](crate::calendar)
Widget for calender display.
# [MenuLine](crate::menuline), [PopupMenu](crate::popup_menu) and [MenuBar](crate::menubar)
Menu widgets.
# [StatusLine](crate::statusline)
Statusline with multiple segments.
## TODO
... more widgets