use leptos::prelude::*;
use super::input_ui::Input as InputUi;
pub use canonrs_core::primitives::{
InputVariant,
InputSize
};
pub use canonrs_core::meta::DisabledState;
#[component]
pub fn Input(
#[prop(into, default = String::new())] class: String,
#[prop(into, default = "text".to_string())] input_type: String,
#[prop(into, default = String::new())] name: String,
#[prop(into, default = String::new())] value: String,
#[prop(into, default = String::new())] placeholder: String,
#[prop(into, default = String::new())] aria_label: String,
#[prop(default = InputVariant::Default)] variant: InputVariant,
#[prop(default = InputSize::Md)] size: InputSize,
#[prop(default = DisabledState::Enabled)] disabled: DisabledState,
#[prop(optional)] node_ref: Option<NodeRef<leptos::html::Input>>,
) -> impl IntoView {
view! {
<InputUi
class=class
input_type=input_type
name=name
value=value.clone()
rs_value=value
placeholder=placeholder
aria_label=aria_label
variant=variant
size=size
disabled=disabled
node_ref=node_ref.unwrap_or_default()
/>
}
}