"""
Pydantic schema for LoginModal component.

AUTO-GENERATED FROM ui-manifest.json - DO NOT EDIT MANUALLY
Source: application/modals/login-modal.tsx
Component Path: application/modals/login-modal
"""

from typing import Any

from pydantic import Field

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

from ._types import T


class LoginModalProps(JSONFieldSchema):
    """Props for the LoginModal component.
    All string props support CMS-driven content with path template defaults."""

    title: str | None = Field(default=None, description="Modal title text")
    description: str | None = Field(default=None, description="Modal description text")
    email_label: str | None = Field(default=None, alias="emailLabel", description="Email input label")
    email_placeholder: str | None = Field(default=None, alias="emailPlaceholder", description="Email input placeholder")
    password_label: str | None = Field(default=None, alias="passwordLabel", description="Password input label")
    password_placeholder: str | None = Field(
        default=None, alias="passwordPlaceholder", description="Password input placeholder"
    )
    remember_label: str | None = Field(default=None, alias="rememberLabel", description="Remember me checkbox label")
    forgot_password_label: str | None = Field(
        default=None, alias="forgotPasswordLabel", description="Forgot password link text"
    )
    submit_label: str | None = Field(default=None, alias="submitLabel", description="Primary submit button label")
    google_label: str | None = Field(default=None, alias="googleLabel", description="Google sign-in button label")
    show_remember_me: bool | None = Field(
        default=None, alias="showRememberMe", description="Whether to show remember me checkbox"
    )
    show_forgot_password: bool | None = Field(
        default=None, alias="showForgotPassword", description="Whether to show forgot password link"
    )
    show_google_sign_in: bool | None = Field(
        default=None, alias="showGoogleSignIn", description="Whether to show Google sign-in"
    )
    logo: T | None = Field(default=None, description="Logo component to display")
    is_open: bool | None = Field(default=None, alias="isOpen", description="Controlled open state")
    on_open_change: Any | None = Field(
        default=None, alias="onOpenChange", description="Callback when open state changes"
    )
    on_submit: Any | None = Field(default=None, alias="onSubmit", description="Callback when form is submitted")
    on_remember_me_change: Any | None = Field(
        default=None, alias="onRememberMeChange", description="Callback when remember me state changes"
    )
    on_forgot_password: Any | None = Field(
        default=None, alias="onForgotPassword", description="Callback when forgot password is clicked"
    )
    on_google_sign_in: Any | None = Field(
        default=None, alias="onGoogleSignIn", description="Callback when Google sign-in is clicked"
    )
