#![allow(unreachable_pub, dead_code)]
use leptos::prelude::*;
use canonrs_core::primitives::{
CommandPrimitive, CommandInputPrimitive, CommandListPrimitive,
CommandEmptyPrimitive, CommandGroupPrimitive, CommandGroupHeadingPrimitive,
CommandItemPrimitive, CommandSeparatorPrimitive,
};
use canonrs_core::meta::SelectionState;
#[component]
pub fn Command(
children: Children,
#[prop(into, default = String::new())] class: String,
#[prop(default = canonrs_core::meta::VisibilityState::Closed)] state: canonrs_core::meta::VisibilityState,
) -> impl IntoView {
view! {
<CommandPrimitive class=class state=state>
{children()}
</CommandPrimitive>
}
}
#[component]
pub fn CommandInput(
#[prop(into, default = String::new())] placeholder: String,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<CommandInputPrimitive placeholder=placeholder class=class />
}
}
#[component]
pub fn CommandList(
children: Children,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<CommandListPrimitive class=class>
{children()}
</CommandListPrimitive>
}
}
#[component]
pub fn CommandEmpty(
children: Children,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<CommandEmptyPrimitive class=class>
{children()}
</CommandEmptyPrimitive>
}
}
#[component]
pub fn CommandGroup(
children: Children,
#[prop(optional, into)] heading: Option<String>,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<CommandGroupPrimitive class=class>
{heading.map(|h: String| view! {
<CommandGroupHeadingPrimitive>{h}</CommandGroupHeadingPrimitive>
})}
{children()}
</CommandGroupPrimitive>
}
}
#[component]
pub fn CommandItem(
children: Children,
#[prop(optional, into)] value: Option<String>,
#[prop(default = SelectionState::Unselected)] selected: SelectionState,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<CommandItemPrimitive value=value.unwrap_or_default() selected=selected class=class>
{children()}
</CommandItemPrimitive>
}
}
#[component]
pub fn CommandSeparator(
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<CommandSeparatorPrimitive class=class />
}
}