rustcn_ui/button/
props.rs

1//ui/button/props.rs
2use dioxus::prelude::*;
3
4#[derive(PartialEq, Props, Clone)]
5pub struct ButtonProps {
6    #[props(default)]
7    pub class: String,
8
9    #[props(default)]
10    pub variant: ButtonVariants,
11
12    #[props(default)]
13    pub size: ButtonSize,
14
15    #[props(default)]
16    pub onclick: Option<EventHandler<MouseEvent>>,
17
18    #[props(default)]
19    pub children: Element,
20
21}
22
23#[derive(PartialEq, Clone)]
24pub enum ButtonVariants {
25    Default,
26    _Secondary,
27    _Destructive,
28    _Outline,
29    _Ghost,
30    _Link,
31    // Additional variants can be added here.
32}
33
34impl Default for ButtonVariants {
35    fn default() -> Self {
36        ButtonVariants::Default
37    }
38}
39
40#[derive(PartialEq, Clone)]
41pub enum ButtonSize {
42    Default,
43    _SM,
44    _LG,
45    _ICON,
46}
47
48impl Default for ButtonSize {
49    fn default() -> Self {
50        ButtonSize::Default
51    }
52}