"""
Inbox island prop schemas.

Auto-generated from packages/lightwave-ui/src/islands/inbox-registry.tsx
Generated: 2026-02-02

Islands are React components hydrated on the client. These schemas define
the props that Django passes to the React island via JSON serialization.
"""

from pydantic import ConfigDict, Field

from lightwave.schema.pydantic.core.base import LightwaveBaseSchema


class BaseInboxProps(LightwaveBaseSchema):
    """
    Base props that all inbox variants should support.

    Source: packages/lightwave-ui/src/islands/inbox-registry.tsx
    """

    size: str | None = None
    title: str = None
    badge: str | None = None
    description: str | None = None
    column_labels: str = Field(None, serialization_alias="columnLabels")
    action_labels: str = Field(None, serialization_alias="actionLabels")
    priority_labels: str = Field(None, serialization_alias="priorityLabels")
    status_labels: str = Field(None, serialization_alias="statusLabels")
    empty_state_labels: str = Field(None, serialization_alias="emptyStateLabels")
    filter_labels: str = Field(None, serialization_alias="filterLabels")
    emails: list[str] | None = None
    stats: str | None = None
    filters: str | None = None
    is_loading: bool | None = Field(None, serialization_alias="isLoading")
    show_stats: bool | None = Field(None, serialization_alias="showStats")
    callbacks: str | None = None
    class_name: str | None = Field(None, serialization_alias="className")

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


INBOX_VARIANTS = ["inbox-standard"]

__all__ = ["BaseInboxProps", "INBOX_VARIANTS"]
