"""Stub file for reflex/components/radix/themes/components/text_area.py"""

# ------------------- DO NOT EDIT ----------------------
# This file was generated by `reflex/utils/pyi_generator.py`!
# ------------------------------------------------------
from typing import Any, Dict, Literal, Optional, Union, overload

from reflex.components.core.breakpoints import Breakpoints
from reflex.components.el import elements
from reflex.event import BASE_STATE, EventType, KeyInputInfo
from reflex.style import Style
from reflex.vars.base import Var

from ..base import RadixThemesComponent

LiteralTextAreaSize = Literal["1", "2", "3"]
LiteralTextAreaResize = Literal["none", "vertical", "horizontal", "both"]

class TextArea(RadixThemesComponent, elements.Textarea):
    @overload
    @classmethod
    def create(  # type: ignore
        cls,
        *children,
        size: Optional[
            Union[
                Breakpoints[str, Literal["1", "2", "3"]],
                Literal["1", "2", "3"],
                Var[
                    Union[
                        Breakpoints[str, Literal["1", "2", "3"]], Literal["1", "2", "3"]
                    ]
                ],
            ]
        ] = None,
        variant: Optional[
            Union[
                Literal["classic", "soft", "surface"],
                Var[Literal["classic", "soft", "surface"]],
            ]
        ] = None,
        resize: Optional[
            Union[
                Breakpoints[str, Literal["both", "horizontal", "none", "vertical"]],
                Literal["both", "horizontal", "none", "vertical"],
                Var[
                    Union[
                        Breakpoints[
                            str, Literal["both", "horizontal", "none", "vertical"]
                        ],
                        Literal["both", "horizontal", "none", "vertical"],
                    ]
                ],
            ]
        ] = None,
        color_scheme: Optional[
            Union[
                Literal[
                    "amber",
                    "blue",
                    "bronze",
                    "brown",
                    "crimson",
                    "cyan",
                    "gold",
                    "grass",
                    "gray",
                    "green",
                    "indigo",
                    "iris",
                    "jade",
                    "lime",
                    "mint",
                    "orange",
                    "pink",
                    "plum",
                    "purple",
                    "red",
                    "ruby",
                    "sky",
                    "teal",
                    "tomato",
                    "violet",
                    "yellow",
                ],
                Var[
                    Literal[
                        "amber",
                        "blue",
                        "bronze",
                        "brown",
                        "crimson",
                        "cyan",
                        "gold",
                        "grass",
                        "gray",
                        "green",
                        "indigo",
                        "iris",
                        "jade",
                        "lime",
                        "mint",
                        "orange",
                        "pink",
                        "plum",
                        "purple",
                        "red",
                        "ruby",
                        "sky",
                        "teal",
                        "tomato",
                        "violet",
                        "yellow",
                    ]
                ],
            ]
        ] = None,
        radius: Optional[
            Union[
                Literal["full", "large", "medium", "none", "small"],
                Var[Literal["full", "large", "medium", "none", "small"]],
            ]
        ] = None,
        auto_complete: Optional[Union[Var[bool], bool]] = None,
        auto_focus: Optional[Union[Var[bool], bool]] = None,
        default_value: Optional[Union[Var[str], str]] = None,
        dirname: Optional[Union[Var[str], str]] = None,
        disabled: Optional[Union[Var[bool], bool]] = None,
        form: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        max_length: Optional[Union[Var[int], int]] = None,
        min_length: Optional[Union[Var[int], int]] = None,
        name: Optional[Union[Var[str], str]] = None,
        placeholder: Optional[Union[Var[str], str]] = None,
        read_only: Optional[Union[Var[bool], bool]] = None,
        required: Optional[Union[Var[bool], bool]] = None,
        rows: Optional[Union[Var[str], str]] = None,
        value: Optional[Union[Var[str], str]] = None,
        wrap: Optional[Union[Var[str], str]] = None,
        auto_height: Optional[Union[Var[bool], bool]] = None,
        cols: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        enter_key_submit: Optional[Union[Var[bool], bool]] = None,
        access_key: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        auto_capitalize: Optional[
            Union[Var[Union[bool, int, str]], bool, int, str]
        ] = None,
        content_editable: Optional[
            Union[Var[Union[bool, int, str]], bool, int, str]
        ] = None,
        context_menu: Optional[
            Union[Var[Union[bool, int, str]], bool, int, str]
        ] = None,
        dir: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        draggable: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        enter_key_hint: Optional[
            Union[Var[Union[bool, int, str]], bool, int, str]
        ] = None,
        hidden: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        input_mode: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        item_prop: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        lang: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        role: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        slot: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        spell_check: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        tab_index: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        title: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None,
        style: Optional[Style] = None,
        key: Optional[Any] = None,
        id: Optional[Any] = None,
        class_name: Optional[Any] = None,
        autofocus: Optional[bool] = None,
        custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
        on_blur: Optional[
            Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
        ] = None,
        on_change: Optional[
            Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
        ] = None,
        on_click: Optional[EventType[[], BASE_STATE]] = None,
        on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
        on_double_click: Optional[EventType[[], BASE_STATE]] = None,
        on_focus: Optional[
            Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
        ] = None,
        on_key_down: Optional[
            Union[
                EventType[[], BASE_STATE],
                EventType[[str], BASE_STATE],
                EventType[[str, KeyInputInfo], BASE_STATE],
            ]
        ] = None,
        on_key_up: Optional[
            Union[
                EventType[[], BASE_STATE],
                EventType[[str], BASE_STATE],
                EventType[[str, KeyInputInfo], BASE_STATE],
            ]
        ] = None,
        on_mount: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
        on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
        on_scroll: Optional[EventType[[], BASE_STATE]] = None,
        on_unmount: Optional[EventType[[], BASE_STATE]] = None,
        **props,
    ) -> "TextArea":
        """Create an Input component.

        Args:
            *children: The children of the component.
            size: The size of the text area: "1" | "2" | "3"
            variant: The variant of the text area
            resize: The resize behavior of the text area: "none" | "vertical" | "horizontal" | "both"
            color_scheme: The color of the text area
            radius: The radius of the text area: "none" | "small" | "medium" | "large" | "full"
            auto_complete: Whether the form control should have autocomplete enabled
            auto_focus: Automatically focuses the textarea when the page loads
            default_value: The default value of the textarea when initially rendered
            dirname: Name part of the textarea to submit in 'dir' and 'name' pair when form is submitted
            disabled: Disables the textarea
            form: Associates the textarea with a form (by id)
            max_length: Maximum number of characters allowed in the textarea
            min_length: Minimum number of characters required in the textarea
            name: Name of the textarea, used when submitting the form
            placeholder: Placeholder text in the textarea
            read_only: Indicates whether the textarea is read-only
            required: Indicates that the textarea is required
            rows: Visible number of lines in the text control
            value: The controlled value of the textarea, read only unless used with on_change
            wrap: How the text in the textarea is to be wrapped when submitting the form
            auto_height: Automatically fit the content height to the text (use min-height with this prop)
            cols: Visible width of the text control, in average character widths
            enter_key_submit: Enter key submits form (shift-enter adds new line)
            on_change: Fired when the input value changes
            on_focus: Fired when the input gains focus
            on_blur: Fired when the input loses focus
            on_key_down: Fired when a key is pressed down
            on_key_up: Fired when a key is released
            access_key: Provides a hint for generating a keyboard shortcut for the current element.
            auto_capitalize: Controls whether and how text input is automatically capitalized as it is entered/edited by the user.
            content_editable: Indicates whether the element's content is editable.
            context_menu: Defines the ID of a <menu> element which will serve as the element's context menu.
            dir: Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)
            draggable: Defines whether the element can be dragged.
            enter_key_hint: Hints what media types the media element is able to play.
            hidden: Defines whether the element is hidden.
            input_mode: Defines the type of the element.
            item_prop: Defines the name of the element for metadata purposes.
            lang: Defines the language used in the element.
            role: Defines the role of the element.
            slot: Assigns a slot in a shadow DOM shadow tree to an element.
            spell_check: Defines whether the element may be checked for spelling errors.
            tab_index: Defines the position of the current element in the tabbing order.
            title: Defines a tooltip for the element.
            style: The style of the component.
            key: A unique key for the component.
            id: The id for the component.
            class_name: The class name for the component.
            autofocus: Whether the component should take the focus once the page is loaded
            custom_attrs: custom attribute
            **props: The properties of the component.

        Returns:
            The component.
        """
        ...

text_area = TextArea.create
