"""
Pydantic schema for Signup02Modal component.

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

from typing import Any

from pydantic import Field

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

from ._types import T


class Signup02ModalProps(JSONFieldSchema):
    """Props for the Signup02Modal 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_placeholder: str | None = Field(default=None, alias="emailPlaceholder", description="Email input placeholder")
    submit_label: str | None = Field(default=None, alias="submitLabel", description="Primary submit button label")
    divider_text: str | None = Field(default=None, alias="dividerText", description="Divider text")
    google_label: str | None = Field(default=None, alias="googleLabel", description="Google sign-up button label")
    facebook_label: str | None = Field(default=None, alias="facebookLabel", description="Facebook sign-up button label")
    apple_label: str | None = Field(default=None, alias="appleLabel", description="Apple sign-up button label")
    show_google: bool | None = Field(default=None, alias="showGoogle", description="Whether to show Google sign-up")
    show_facebook: bool | None = Field(
        default=None, alias="showFacebook", description="Whether to show Facebook sign-up"
    )
    show_apple: bool | None = Field(default=None, alias="showApple", description="Whether to show Apple sign-up")
    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_google_sign_up: Any | None = Field(
        default=None, alias="onGoogleSignUp", description="Callback when Google sign-up is clicked"
    )
    on_facebook_sign_up: Any | None = Field(
        default=None, alias="onFacebookSignUp", description="Callback when Facebook sign-up is clicked"
    )
    on_apple_sign_up: Any | None = Field(
        default=None, alias="onAppleSignUp", description="Callback when Apple sign-up is clicked"
    )
