"""
Pydantic schema for SignupCardCombined component.

AUTO-GENERATED FROM ui-manifest.json - DO NOT EDIT MANUALLY
Source: shared-assets/signup/signup-card-combined.tsx
Component Path: shared-assets/signup/signup-card-combined
"""

from typing import Any, Literal

from pydantic import Field

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

from ._types import SocialProvider


class SignupCardCombinedProps(JSONFieldSchema):
    """Props for SignupCardCombined component"""

    form_action: str | None = Field(default=None, alias="formAction")
    csrf_token: str | None = Field(default=None, alias="csrfToken")
    method: Literal["get", "post"] | None = Field(default=None)
    login_url: str | None = Field(default=None, alias="loginUrl")
    signup_url: str | None = Field(default=None, alias="signupUrl")
    forgot_password_url: str | None = Field(default=None, alias="forgotPasswordUrl")
    home_url: str | None = Field(default=None, alias="homeUrl")
    social_providers: list[SocialProvider] | None = Field(default=None, alias="socialProviders")
    logo: str | dict[str, Any] | None | None = Field(default=None)
    brand_name: str | None = Field(default=None, alias="brandName")
    errors: dict[str, Any] | None = Field(default=None)
    non_field_errors: list[str] | None = Field(default=None, alias="nonFieldErrors")
    initial_values: dict[str, Any] | None = Field(default=None, alias="initialValues")
    success_message: str | None = Field(default=None, alias="successMessage")
    headline: str | None = Field(default=None)
    subheadline: str | None = Field(default=None)
    submit_button_text: str | None = Field(default=None, alias="submitButtonText")
    name_placeholder: str | None = Field(default=None, alias="namePlaceholder")
    email_placeholder: str | None = Field(default=None, alias="emailPlaceholder")
    password_placeholder: str | None = Field(default=None, alias="passwordPlaceholder")
    password_hint: str | None = Field(default=None, alias="passwordHint")
    has_account_text: str | None = Field(default=None, alias="hasAccountText")
    login_link_text: str | None = Field(default=None, alias="loginLinkText")
    min_password_length: int | float | None = Field(default=None, alias="minPasswordLength")
