#![allow(unreachable_pub, dead_code)]
use leptos::prelude::*;
use canonrs_core::primitives::{
AlertDialogPrimitive,
AlertDialogPortalPrimitive,
AlertDialogOverlayPrimitive,
AlertDialogContentPrimitive,
AlertDialogTitlePrimitive,
AlertDialogDescriptionPrimitive,
};
use crate::ui::button::{Button, ButtonVariant};
#[component]
pub fn AlertDialog(
children: Children,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<AlertDialogPrimitive class=class>
{children()}
</AlertDialogPrimitive>
}
}
#[component]
pub fn AlertDialogTrigger(
children: Children,
#[prop(default = ButtonVariant::Primary)] variant: ButtonVariant,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<Button
variant=variant
class=class
attr:data-rs-dialog-trigger=""
attr:aria-haspopup="dialog"
attr:aria-expanded="false"
>
{children()}
</Button>
}
}
#[component]
pub fn AlertDialogPortal(
children: ChildrenFn,
) -> impl IntoView {
view! {
<AlertDialogPortalPrimitive>
{children()}
</AlertDialogPortalPrimitive>
}
}
#[component]
pub fn AlertDialogOverlay(
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<AlertDialogOverlayPrimitive class=class />
}
}
#[component]
pub fn AlertDialogContent(
children: Children,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<AlertDialogContentPrimitive class=class aria_labelledby="alert-title">
{children()}
</AlertDialogContentPrimitive>
}
}
#[component]
pub fn AlertDialogTitle(
children: Children,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<AlertDialogTitlePrimitive class=class>
{children()}
</AlertDialogTitlePrimitive>
}
}
#[component]
pub fn AlertDialogDescription(
children: Children,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<AlertDialogDescriptionPrimitive class=class>
{children()}
</AlertDialogDescriptionPrimitive>
}
}
#[component]
pub fn AlertDialogClose(
children: Children,
#[prop(default = ButtonVariant::Outline)] variant: ButtonVariant,
#[prop(into, default = String::new())] class: String,
) -> impl IntoView {
view! {
<Button
variant=variant
class=class
attr:data-rs-dialog-close=""
>
{children()}
</Button>
}
}