dioxus-tw-components 0.2.11

Components made for Dioxus
Documentation
use dioxus::prelude::*;

#[derive(Clone, PartialEq, Props)]
pub struct TableProps {
    #[props(extends = table, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn Table(mut props: TableProps) -> Element {
    let default_classes = "table";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        table { ..props.attributes, {props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableHeaderProps {
    #[props(extends = thead, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableHeader(mut props: TableHeaderProps) -> Element {
    let default_classes = "table-header";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        thead { ..props.attributes, {props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableBodyProps {
    #[props(extends = tbody, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableBody(mut props: TableBodyProps) -> Element {
    let default_classes = "table-body";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        tbody { ..props.attributes, {props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableFooterProps {
    #[props(extends = tfoot, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableFooter(mut props: TableFooterProps) -> Element {
    let default_classes = "table-footer";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        tfoot { ..props.attributes,{props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableRowProps {
    #[props(extends = tr, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableRow(mut props: TableRowProps) -> Element {
    let default_classes = "table-row";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        tr { ..props.attributes, {props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableHeadProps {
    #[props(extends = th, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableHead(mut props: TableHeadProps) -> Element {
    let default_classes = "table-head";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        th { ..props.attributes, {props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableCellProps {
    #[props(extends = td, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableCell(mut props: TableCellProps) -> Element {
    let default_classes = "table-cell";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        td { ..props.attributes, {props.children} }
    }
}

#[derive(Clone, PartialEq, Props)]
pub struct TableCaptionProps {
    #[props(extends = caption, extends = GlobalAttributes)]
    attributes: Vec<Attribute>,

    children: Element,
}

#[component]
pub fn TableCaption(mut props: TableCaptionProps) -> Element {
    let default_classes = "table-caption";
    crate::setup_class_attribute(&mut props.attributes, default_classes);

    rsx! {
        caption { ..props.attributes, {props.children} }
    }
}