use crate::catalog_types::{ComponentApi, PropDef, PropType};
pub const POPOVER_API: ComponentApi = ComponentApi {
id: "popover",
description: "Floating popover component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: None, description: "Additional CSS class names" },
PropDef { name: "name", kind: PropType::String, required: false, default: Some(""), description: "Form field name" },
],
};
pub const POPOVERCONTENT_API: ComponentApi = ComponentApi {
id: "popover-content",
description: "Floating popover component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: None, description: "Additional CSS class names" },
PropDef { name: "side", kind: PropType::Enum(&["bottom", "top", "left", "right"]), required: false, default: Some("bottom"), description: "Tooltip or popover side" },
],
};
pub const POPOVERTRIGGER_API: ComponentApi = ComponentApi {
id: "popover-trigger",
description: "Floating popover component",
props: &[
PropDef { name: "children", kind: PropType::Children, required: true, default: None, description: "Child elements" },
PropDef { name: "class", kind: PropType::String, required: false, default: None, description: "Additional CSS class names" },
PropDef { name: "value", kind: PropType::String, required: false, default: Some(""), description: "Current value" },
PropDef { name: "label", kind: PropType::String, required: false, default: Some(""), description: "Accessible label text" },
],
};