diff --git a/macros/src/config.rs b/macros/src/config.rs index 2febe78..adc139f 100644 --- a/macros/src/config.rs +++ b/macros/src/config.rs @@ -53,7 +53,7 @@ pub fn global_attrs(span: Span) -> StringyMap { insert("aria_required", "crate::types::Bool"); insert("aria_selected", "crate::types::Bool"); insert("aria_placeholder", "String"); - insert("aria_sort", "String"); // TODO only supports some values + insert("aria_sort", "crate::types::AriaSort"); // TODO only supports some values insert("aria_valuemax", "isize"); insert("aria_valuemin", "isize"); insert("aria_valuenow", "isize"); diff --git a/typed-html/src/types/mod.rs b/typed-html/src/types/mod.rs index eebc5fd..8a5c00c 100644 --- a/typed-html/src/types/mod.rs +++ b/typed-html/src/types/mod.rs @@ -538,6 +538,18 @@ pub enum Wrap { Off, } +#[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, IntoStaticStr)] +pub enum AriaSort { + #[strum(to_string = "ascending")] + Ascending, + #[strum(to_string = "descending")] + Descending, + #[strum(to_string = "none")] + None, + #[strum(to_string = "other")] + Other, +} + #[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, IntoStaticStr)] pub enum AriaOrientation { #[strum(to_string = "horizontal")]