leptos_cosmo/
lib.rs

1pub mod prelude {
2    use std::fmt::{Display, Formatter};
3
4    pub use crate::button::*;
5    #[cfg(not(feature = "ssr"))]
6    pub use crate::file_picker_csr::*;
7    #[cfg(feature = "ssr")]
8    pub use crate::file_picker_ssr::*;
9    pub use crate::form::*;
10    #[cfg(feature = "with-icons")]
11    pub use crate::icons;
12    pub use crate::layout::*;
13    pub use crate::list::*;
14    pub use crate::loader::*;
15    pub use crate::menu::*;
16    pub use crate::message::*;
17    pub use crate::modal::*;
18    pub use crate::tab::*;
19    pub use crate::table::*;
20    pub use crate::toolbar::*;
21    pub use crate::typography::*;
22    pub use chrono::DateTime;
23    pub use chrono::Local;
24    pub use chrono::NaiveDate;
25    pub use chrono::NaiveTime;
26    pub use color_art::color;
27    pub use color_art::Color;
28    use leptos::prelude::IntoAttributeValue;
29
30    #[derive(PartialEq, Clone, Default)]
31    pub enum Theme {
32        #[default]
33        Auto,
34        Light,
35        Dark,
36    }
37
38    impl Display for Theme {
39        fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
40            f.write_str(match self {
41                Theme::Auto => "",
42                Theme::Light => "is--light",
43                Theme::Dark => "is--dark",
44            })
45        }
46    }
47
48    #[derive(PartialEq, Clone, Default)]
49    pub enum Variant {
50        #[default]
51        Default,
52        Primary,
53        Positive,
54        Negative,
55        Information,
56        Warning,
57    }
58
59    impl IntoAttributeValue for Variant {
60        type Output = String;
61
62        fn into_attribute_value(self) -> Self::Output {
63            self.to_string()
64        }
65    }
66
67    impl Display for Variant {
68        fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
69            match self {
70                Variant::Default => f.write_str("is--default"),
71                Variant::Primary => f.write_str("is--primary"),
72                Variant::Positive => f.write_str("is--positive"),
73                Variant::Negative => f.write_str("is--negative"),
74                Variant::Information => f.write_str("is--information"),
75                Variant::Warning => f.write_str("is--warning"),
76            }
77        }
78    }
79
80    impl From<String> for Variant {
81        fn from(val: String) -> Self {
82            match val.as_str() {
83                "is--primary" => Variant::Primary,
84                "is--positive" => Variant::Positive,
85                "is--negative" => Variant::Negative,
86                "is--information" => Variant::Information,
87                "is--warning" => Variant::Warning,
88                _ => Variant::Default,
89            }
90        }
91    }
92
93    impl Variant {
94        pub(crate) fn get_modal_variant(&self) -> Self {
95            match self {
96                Variant::Default => Variant::Primary,
97                _ => self.clone(),
98            }
99        }
100    }
101}
102
103mod button;
104#[cfg(not(feature = "ssr"))]
105mod file_picker_csr;
106#[cfg(feature = "ssr")]
107mod file_picker_ssr;
108mod form;
109#[cfg(feature = "with-icons")]
110pub mod icons;
111mod layout;
112mod list;
113mod loader;
114mod menu;
115mod message;
116mod modal;
117mod tab;
118mod table;
119mod toolbar;
120mod typography;