,
) -> impl IntoView {
@@ -89,10 +91,26 @@ pub fn Input(
"--thaw-border-color: {};",
theme.input.border_color
));
+ css_vars.push_str(&format!(
+ "--thaw-border-color-error: {};",
+ theme.common.color_error
+ ));
css_vars.push_str(&format!(
"--thaw-placeholder-color: {};",
theme.input.placeholder_color
));
+ css_vars.push_str(&format!(
+ "--thaw-background-color-disabled: {};",
+ theme.input.background_color_disabled
+ ));
+ css_vars.push_str(&format!(
+ "--thaw-font-color-disabled: {};",
+ theme.input.font_color_disabled
+ ));
+ css_vars.push_str(&format!(
+ "--thaw-box-shadow-color-invalid: {}33;",
+ theme.common.color_error
+ ));
});
css_vars
});
@@ -100,6 +118,8 @@ pub fn Input(
{if let Some(prefix) = input_prefix {
@@ -119,6 +139,7 @@ pub fn Input(
on:focus=on_internal_focus
on:blur=on_internal_blur
class="thaw-input__input-el"
+ disabled=move || disabled.get()
placeholder=move || placeholder.get()
/>
diff --git a/src/input/theme.rs b/src/input/theme.rs
index faae0e8..b53e4d9 100644
--- a/src/input/theme.rs
+++ b/src/input/theme.rs
@@ -6,6 +6,8 @@ pub struct InputTheme {
pub placeholder_color: String,
pub border_color: String,
pub background_color: String,
+ pub font_color_disabled: String,
+ pub background_color_disabled: String,
}
impl ThemeMethod for InputTheme {
@@ -15,6 +17,8 @@ impl ThemeMethod for InputTheme {
placeholder_color: "#c2c2c2".into(),
border_color: "#e0e0e6".into(),
background_color: "#fff".into(),
+ font_color_disabled: "#c2c2c2".into(),
+ background_color_disabled: "#fafafc".into(),
}
}
@@ -24,6 +28,8 @@ impl ThemeMethod for InputTheme {
placeholder_color: "#c2c2c2".into(),
border_color: "#0000".into(),
background_color: "#ffffff1a".into(),
+ font_color_disabled: "#ffffff61".into(),
+ background_color_disabled: "#ffffff0f".into(),
}
}
}
diff --git a/src/input_number/mod.rs b/src/input_number/mod.rs
index 31acd5f..0c32d61 100644
--- a/src/input_number/mod.rs
+++ b/src/input_number/mod.rs
@@ -9,6 +9,8 @@ pub fn InputNumber(
#[prop(optional, into)] value: RwSignal,
#[prop(optional, into)] placeholder: MaybeSignal,
#[prop(into)] step: MaybeSignal,
+ #[prop(optional, into)] disabled: MaybeSignal,
+ #[prop(optional, into)] invalid: MaybeSignal,
) -> impl IntoView
where
T: Add + Sub,
@@ -35,19 +37,21 @@ where
});
let step: StoredMaybeSignal<_> = step.into();
- let add = Callback::::new(move |_| {
+ let add = Callback::::new(move |e: ev::MouseEvent| {
+ e.prevent_default();
value.set(value.get_untracked() + step.get_untracked());
});
- let sub = Callback::::new(move |_| {
+ let sub = Callback::::new(move |e: ev::MouseEvent| {
+ e.prevent_default();
value.set(value.get_untracked() - step.get_untracked());
});
view! {
-
+
-
+
-
+