patternfly_yew/core/
space.rs

1macro_rules! spacer {
2    ($(#[$outer:meta])*
3    $name:ident, $prefix:literal) => {
4
5        $(#[$outer])*
6        #[derive(Clone, PartialEq, Eq, Ord, PartialOrd, Copy, Debug)]
7        pub enum $name {
8            None,
9            XSmall,
10            Small,
11            Medium,
12            Large,
13            XLarge,
14            XXLarge,
15        }
16
17        impl $crate::core::AsClasses for $name {
18            fn extend_classes(&self, classes: &mut yew::prelude::Classes) {
19                let name = match self {
20                    Self::None => concat!($prefix, "-none"),
21                    Self::XSmall => concat!($prefix, "-xs"),
22                    Self::Small => concat!($prefix, "-sm"),
23                    Self::Medium => concat!($prefix, "-md"),
24                    Self::Large => concat!($prefix, "-lg"),
25                    Self::XLarge => concat!($prefix, "-xl"),
26                    Self::XXLarge => concat!($prefix, "-2xl"),
27                };
28                classes.push(name);
29            }
30        }
31    };
32}
33
34spacer!(
35    /// Spacer definition
36    Spacer,
37    "pf-m-spacer"
38);
39
40spacer!(
41    /// Spacer definition for items
42    SpaceItems,
43    "pf-m-space-items"
44);