use crate::catalog_types::{ComponentApi, PropDef, PropType};
pub const FORM_API: ComponentApi = ComponentApi {
id: "form",
description: "Form component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "action", kind: PropType::String, required: false, default: Some(""), description: "Prop value" },
PropDef { name: "method", kind: PropType::Enum(&["post", "get"]), required: false, default: Some("post"), description: "Prop value" },
PropDef { name: "enctype", kind: PropType::Enum(&["url-encoded", "multipart", "text"]), required: false, default: Some("url-encoded"), description: "Prop value" },
PropDef { name: "validation", kind: PropType::Enum(&["idle", "submitting", "success", "error"]), required: false, default: Some("idle"), description: "Prop value" },
],
};
pub const FORMSECTION_API: ComponentApi = ComponentApi {
id: "form-section",
description: "Form component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
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 FORMACTIONS_API: ComponentApi = ComponentApi {
id: "form-actions",
description: "Form 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 FORMFIELD_API: ComponentApi = ComponentApi {
id: "form-field",
description: "Form component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "validation", kind: PropType::Enum(&["idle", "valid", "invalid", "warning"]), required: false, default: Some("idle"), description: "Prop value" },
PropDef { name: "disabled", kind: PropType::String, required: false, default: Some("enabled"), description: "Whether the component is disabled" },
PropDef { name: "class", kind: PropType::String, required: false, default: Some(""), description: "Additional CSS class names" },
],
};
pub const FORMLABEL_API: ComponentApi = ComponentApi {
id: "form-label",
description: "Form component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "html_for", kind: PropType::String, required: false, default: Some(""), description: "Prop value" },
PropDef { name: "required", 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 FORMHINT_API: ComponentApi = ComponentApi {
id: "form-hint",
description: "Form 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 FORMERROR_API: ComponentApi = ComponentApi {
id: "form-error",
description: "Form 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" },
],
};