# chuk-motion/src/chuk_motion/components/content/DemoBox/schema.py
"""DemoBox component schema and Pydantic models."""
from pydantic import BaseModel, Field
from ...base import ComponentMetadata
class DemoBoxProps(BaseModel):
"""Properties for DemoBox component."""
label: str = Field(description="Text label to display")
color: str | None = Field("primary", description="Color theme: primary, accent, secondary")
start_time: float | None = Field(None, description="When to show (seconds)")
duration: float | None = Field(None, description="How long to show (seconds)")
class Config:
extra = "forbid"
# Component metadata
METADATA = ComponentMetadata(
name="DemoBox",
description="Simple colored box with label for demos and placeholders",
category="content",
)
# MCP schema
MCP_SCHEMA = {
"description": "Simple colored box with label for demos and placeholders",
"category": "content",
"schema": {
"label": {"type": "string", "required": True, "description": "Text label to display"},
"color": {
"type": "enum",
"default": "primary",
"values": ["primary", "accent", "secondary"],
"description": "Color theme",
},
"start_time": {"type": "float", "description": "When to show (seconds)"},
"duration": {"type": "float", "description": "How long to show (seconds)"},
},
"example": {
"label": "Demo Content",
"color": "primary",
"start_time": 0.0,
"duration": 5.0,
},
}