ui_storybook/components/primitives/
select_pill.rs1use leptos::prelude::*;
8
9use crate::components::primitives::ChevronDown;
10
11#[component]
12pub fn SelectPill(
13 #[prop(optional, into)]
15 icon: Option<String>,
16 #[prop(into)]
18 label: String,
19 #[prop(optional)]
22 open: bool,
23 #[prop(optional)]
25 disabled: bool,
26) -> impl IntoView {
27 let mut class = String::from("select-pill");
28 if open {
29 class.push_str(" select-pill-open");
30 }
31 view! {
32 <button
33 class=class
34 aria-haspopup="listbox"
35 aria-expanded=open
36 disabled=disabled
37 >
38 {icon.map(|i| view! { <span class="select-pill-icon" aria-hidden="true">{i}</span> })}
39 <span class="select-pill-label">{label}</span>
40 <span class="select-pill-chevron" aria-hidden="true">
41 <ChevronDown />
42 </span>
43 </button>
44 }
45}