use crate::catalog_types::{ComponentApi, PropDef, PropType};
pub const TABLE_API: ComponentApi = ComponentApi {
id: "table",
description: "HTML table component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "state", kind: PropType::Enum(&["idle", "loading", "empty", "error"]), required: false, default: Some("idle"), description: "Loading or visibility state" },
PropDef { name: "striped", kind: PropType::Bool, required: false, default: Some("false"), description: "Prop value" },
PropDef { name: "hoverable", kind: PropType::Bool, required: false, default: Some("false"), description: "Prop value" },
PropDef { name: "aria_label", kind: PropType::String, required: false, default: None, description: "Accessible label for screen readers" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const TABLEHEADER_API: ComponentApi = ComponentApi {
id: "table-header",
description: "HTML table component",
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 TABLEBODY_API: ComponentApi = ComponentApi {
id: "table-body",
description: "HTML table component",
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 TABLEFOOTER_API: ComponentApi = ComponentApi {
id: "table-footer",
description: "HTML table component",
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 TABLEROW_API: ComponentApi = ComponentApi {
id: "table-row",
description: "HTML table component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "selected", kind: PropType::String, required: false, default: Some("unselected"), description: "Prop value" },
PropDef { name: "href", kind: PropType::String, required: false, default: None, description: "Navigation target URL" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some("from"), description: "Additional CSS class names" },
],
};
pub const TABLEHEAD_API: ComponentApi = ComponentApi {
id: "table-head",
description: "HTML table component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "sort", kind: PropType::Enum(&["none", "ascending", "descending"]), required: false, default: Some("none"), description: "Prop value" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const TABLECELL_API: ComponentApi = ComponentApi {
id: "table-cell",
description: "HTML table component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "copyable", kind: PropType::Bool, required: false, default: Some("false"), description: "Prop value" },
PropDef { name: "truncate", kind: PropType::Bool, required: false, default: Some("false"), description: "Prop value" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const TABLECAPTION_API: ComponentApi = ComponentApi {
id: "table-caption",
description: "HTML table component",
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" },
],
};