use topcoat::{
Result,
view::{Attributes, Child, StaticClass, View, class, component, view},
};
const TEXTAREA: StaticClass = class!(
"field-sizing-content min-h-16 w-full rounded-lg border border-border \
bg-transparent px-3 py-2 text-sm transition-colors outline-none \
placeholder:text-muted-foreground \
focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 \
aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive \
focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
);
#[component]
pub async fn textarea(
#[default] mut attrs: Attributes,
#[default] child: Child<'_>,
) -> Result<impl View> {
Ok(view! {
<textarea class=(class!(TEXTAREA, attrs.remove("class"))) (attrs)>
(child)
</textarea>
})
}