dioxus_tw_components/components/
table.rs1use dioxus::prelude::*;
2
3#[derive(Clone, PartialEq, Props)]
4pub struct TableProps {
5 #[props(extends = table, extends = GlobalAttributes)]
6 attributes: Vec<Attribute>,
7
8 children: Element,
9}
10
11#[component]
12pub fn Table(mut props: TableProps) -> Element {
13 let default_classes = "table";
14 crate::setup_class_attribute(&mut props.attributes, default_classes);
15
16 rsx! {
17 table { ..props.attributes, {props.children} }
18 }
19}
20
21#[derive(Clone, PartialEq, Props)]
22pub struct TableHeaderProps {
23 #[props(extends = thead, extends = GlobalAttributes)]
24 attributes: Vec<Attribute>,
25
26 children: Element,
27}
28
29#[component]
30pub fn TableHeader(mut props: TableHeaderProps) -> Element {
31 let default_classes = "table-header";
32 crate::setup_class_attribute(&mut props.attributes, default_classes);
33
34 rsx! {
35 thead { ..props.attributes, {props.children} }
36 }
37}
38
39#[derive(Clone, PartialEq, Props)]
40pub struct TableBodyProps {
41 #[props(extends = tbody, extends = GlobalAttributes)]
42 attributes: Vec<Attribute>,
43
44 children: Element,
45}
46
47#[component]
48pub fn TableBody(mut props: TableBodyProps) -> Element {
49 let default_classes = "table-body";
50 crate::setup_class_attribute(&mut props.attributes, default_classes);
51
52 rsx! {
53 tbody { ..props.attributes, {props.children} }
54 }
55}
56
57#[derive(Clone, PartialEq, Props)]
58pub struct TableFooterProps {
59 #[props(extends = tfoot, extends = GlobalAttributes)]
60 attributes: Vec<Attribute>,
61
62 children: Element,
63}
64
65#[component]
66pub fn TableFooter(mut props: TableFooterProps) -> Element {
67 let default_classes = "table-footer";
68 crate::setup_class_attribute(&mut props.attributes, default_classes);
69
70 rsx! {
71 tfoot { ..props.attributes,{props.children} }
72 }
73}
74
75#[derive(Clone, PartialEq, Props)]
76pub struct TableRowProps {
77 #[props(extends = tr, extends = GlobalAttributes)]
78 attributes: Vec<Attribute>,
79
80 children: Element,
81}
82
83#[component]
84pub fn TableRow(mut props: TableRowProps) -> Element {
85 let default_classes = "table-row";
86 crate::setup_class_attribute(&mut props.attributes, default_classes);
87
88 rsx! {
89 tr { ..props.attributes, {props.children} }
90 }
91}
92
93#[derive(Clone, PartialEq, Props)]
94pub struct TableHeadProps {
95 #[props(extends = th, extends = GlobalAttributes)]
96 attributes: Vec<Attribute>,
97
98 children: Element,
99}
100
101#[component]
102pub fn TableHead(mut props: TableHeadProps) -> Element {
103 let default_classes = "table-head";
104 crate::setup_class_attribute(&mut props.attributes, default_classes);
105
106 rsx! {
107 th { ..props.attributes, {props.children} }
108 }
109}
110
111#[derive(Clone, PartialEq, Props)]
112pub struct TableCellProps {
113 #[props(extends = td, extends = GlobalAttributes)]
114 attributes: Vec<Attribute>,
115
116 children: Element,
117}
118
119#[component]
120pub fn TableCell(mut props: TableCellProps) -> Element {
121 let default_classes = "table-cell";
122 crate::setup_class_attribute(&mut props.attributes, default_classes);
123
124 rsx! {
125 td { ..props.attributes, {props.children} }
126 }
127}
128
129#[derive(Clone, PartialEq, Props)]
130pub struct TableCaptionProps {
131 #[props(extends = caption, extends = GlobalAttributes)]
132 attributes: Vec<Attribute>,
133
134 children: Element,
135}
136
137#[component]
138pub fn TableCaption(mut props: TableCaptionProps) -> Element {
139 let default_classes = "table-caption";
140 crate::setup_class_attribute(&mut props.attributes, default_classes);
141
142 rsx! {
143 caption { ..props.attributes, {props.children} }
144 }
145}