use crate::catalog_types::{ComponentApi, PropDef, PropType};
pub const INPUT_API: ComponentApi = ComponentApi {
id: "input",
description: "Text input field",
props: &[
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
PropDef { name: "input_type", kind: PropType::String, required: false, default: Some("text"), description: "HTML input type attribute" },
PropDef { name: "name", kind: PropType::String, required: false, default: Some(""), description: "Form field name" },
PropDef { name: "value", kind: PropType::String, required: false, default: Some(""), description: "Current value" },
PropDef { name: "placeholder", kind: PropType::String, required: false, default: Some(""), description: "Placeholder text" },
PropDef { name: "aria_label", kind: PropType::String, required: false, default: Some(""), description: "Accessible label for screen readers" },
PropDef { name: "variant", kind: PropType::Enum(&["default", "error", "success", "warning"]), required: false, default: Some("default"), description: "Visual variant of the component" },
PropDef { name: "size", kind: PropType::Enum(&["md", "sm", "lg"]), required: false, default: Some("md"), description: "Size variant of the component" },
PropDef { name: "disabled", kind: PropType::String, required: false, default: Some("enabled"), description: "Whether the component is disabled" },
PropDef { name: "node_ref", kind: PropType::String, required: false, default: None, description: "DOM node reference" },
],
};