use crate::catalog_types::{ComponentApi, PropDef, PropType};
pub const TABSROOT_API: ComponentApi = ComponentApi {
id: "tabs-root",
description: "Tabbed navigation",
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: "default_value", kind: PropType::String, required: false, default: Some(""), description: "Default selected tab value" },
],
};
pub const TABSLISTBOUNDARY_API: ComponentApi = ComponentApi {
id: "tabs-list-boundary",
description: "Tabbed navigation",
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 TABSTRIGGER_API: ComponentApi = ComponentApi {
id: "tabs-trigger",
description: "Tabbed navigation",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "value", kind: PropType::String, required: true, default: None, description: "Current value" },
PropDef { name: "active", kind: PropType::String, required: false, default: Some("inactive"), description: "Active/selected state" },
PropDef { name: "disabled", kind: PropType::Bool, required: false, default: Some("false"), description: "Whether the component is disabled" },
],
};
pub const TABSCONTENT_API: ComponentApi = ComponentApi {
id: "tabs-content",
description: "Tabbed navigation",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "value", kind: PropType::String, required: true, default: None, description: "Current value" },
PropDef { name: "active", kind: PropType::String, required: false, default: Some("inactive"), description: "Active/selected state" },
],
};