tablo_ui/components/primitives/
input.rs1use topcoat::{
3 Result,
4 context::Cx,
5 view::{Attributes, StaticClass, View, class, component, view},
6};
7
8const INPUT: StaticClass = class!(
10 "h-9 w-full min-w-0 rounded-lg border border-border bg-transparent px-3",
11 "text-sm transition-colors outline-none",
12 "placeholder:text-muted-foreground",
13 "file:mr-3 file:h-full file:border-0 file:bg-transparent file:text-sm file:font-medium",
14 "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
15 "aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive",
16 "focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
17);
18
19#[component]
31pub async fn input(cx: &Cx, #[default] mut attrs: Attributes) -> Result<impl View> {
32 Ok(view! { <input class=(class!(INPUT, attrs.remove("class"))) (attrs)> })
33}