use dioxus::prelude::*; #[component] pub fn Input( oninput: Option>, onchange: Option>, oninvalid: Option>, onselect: Option>, onselectionchange: Option>, onfocus: Option>, onblur: Option>, onfocusin: Option>, onfocusout: Option>, onkeydown: Option>, onkeypress: Option>, onkeyup: Option>, oncompositionstart: Option>, oncompositionupdate: Option>, oncompositionend: Option>, oncopy: Option>, oncut: Option>, onpaste: Option>, #[props(extends=GlobalAttributes)] #[props(extends=input)] attributes: Vec, children: Element, ) -> Element { rsx! { document::Link { rel: "stylesheet", href: asset!("./input-style.css") } input { class: "input", oninput: move |e| _ = oninput.map(|callback| callback(e)), onchange: move |e| _ = onchange.map(|callback| callback(e)), oninvalid: move |e| _ = oninvalid.map(|callback| callback(e)), onselect: move |e| _ = onselect.map(|callback| callback(e)), onselectionchange: move |e| _ = onselectionchange.map(|callback| callback(e)), onfocus: move |e| _ = onfocus.map(|callback| callback(e)), onblur: move |e| _ = onblur.map(|callback| callback(e)), onfocusin: move |e| _ = onfocusin.map(|callback| callback(e)), onfocusout: move |e| _ = onfocusout.map(|callback| callback(e)), onkeydown: move |e| _ = onkeydown.map(|callback| callback(e)), onkeypress: move |e| _ = onkeypress.map(|callback| callback(e)), onkeyup: move |e| _ = onkeyup.map(|callback| callback(e)), oncompositionstart: move |e| _ = oncompositionstart.map(|callback| callback(e)), oncompositionupdate: move |e| _ = oncompositionupdate.map(|callback| callback(e)), oncompositionend: move |e| _ = oncompositionend.map(|callback| callback(e)), oncopy: move |e| _ = oncopy.map(|callback| callback(e)), oncut: move |e| _ = oncut.map(|callback| callback(e)), onpaste: move |e| _ = onpaste.map(|callback| callback(e)), ..attributes, {children} } } }