"""
Slider component schemas.

Mirrors lightwave-ui/src/components/base/slider/.
"""

from pydantic import BaseModel, ConfigDict, Field


class SliderProps(BaseModel):
    """
    Slider component props.

    Matches TypeScript SliderProps.
    """

    # Value
    value: float | None = Field(None, description="Current value")
    default_value: float | None = Field(None, serialization_alias="defaultValue", description="Default value")
    min_value: float = Field(0, serialization_alias="minValue", description="Minimum value")
    max_value: float = Field(100, serialization_alias="maxValue", description="Maximum value")
    step: float = Field(1, description="Step increment")

    # Labels
    label: str | None = Field(None, description="Field label")
    show_value: bool | None = Field(False, serialization_alias="showValue", description="Show current value")

    # State
    is_disabled: bool = Field(False, serialization_alias="isDisabled", description="Disabled state")

    model_config = ConfigDict(
        populate_by_name=True,
        extra="forbid",
    )


__all__ = [
    "SliderProps",
]
