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;