use crate::catalog_types::{ComponentApi, PropDef, PropType};
pub const CAROUSEL_API: ComponentApi = ComponentApi {
id: "carousel",
description: "Image carousel slider",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "initial_index", kind: PropType::Number, required: false, default: Some("0"), description: "Prop value" },
PropDef { name: "autoplay", kind: PropType::String, required: false, default: Some("off"), description: "Prop value" },
PropDef { name: "interval", kind: PropType::Number, required: false, default: Some("5000"), description: "Prop value" },
PropDef { name: "loop_state", kind: PropType::String, required: false, default: Some("on"), description: "Prop value" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const CAROUSELTRACK_API: ComponentApi = ComponentApi {
id: "carousel-track",
description: "Image carousel slider",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const CAROUSELITEM_API: ComponentApi = ComponentApi {
id: "carousel-item",
description: "Image carousel slider",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
PropDef { name: "active", kind: PropType::Bool, required: false, default: Some("false"), description: "Active/selected state" },
],
};
pub const CAROUSELPREV_API: ComponentApi = ComponentApi {
id: "carousel-prev",
description: "Image carousel slider",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const CAROUSELNEXT_API: ComponentApi = ComponentApi {
id: "carousel-next",
description: "Image carousel slider",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const CAROUSELINDICATORS_API: ComponentApi = ComponentApi {
id: "carousel-indicators",
description: "Image carousel slider",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const CAROUSELDOT_API: ComponentApi = ComponentApi {
id: "carousel-dot",
description: "Image carousel slider",
props: &[
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
PropDef { name: "aria_label", kind: PropType::String, required: false, default: Some(""), description: "Accessible label for screen readers" },
PropDef { name: "active", kind: PropType::Bool, required: false, default: Some("false"), description: "Active/selected state" },
],
};