1use dioxus::prelude::*;
3
4mod props;
5pub use props::InputProps;
6
7mod style;
8pub use style::{get_size_class, get_variant_class, BASE_CLASS};
9
10pub fn Input(props: InputProps) -> Element {
11 let InputProps {
12 class,
13 variant,
14 size,
15 placeholder,
16 } = props;
18
19 let variant_class = get_variant_class(&variant);
21
22 let size_class = get_size_class(&size);
24
25 let combined_class = format!("{} {} {} {}", BASE_CLASS, variant_class, size_class, class);
26
27 rsx! {
28 input {
29 class: "{combined_class}",
30 placeholder: "{placeholder}",
31 }
32 }
33}