"""
This file is automatically generated by InstaUI. Do not modify it manually.
"""

from typing import Union, Dict, List, Any, Literal, Tuple, Optional
import datetime
from typing_extensions import TypedDict
from instaui.vars.types import TMaybeRef


class TButton(TypedDict, total=False):
    type: TMaybeRef[
        Union[str, Literal["primary", "secondary", "dashed", "outline", "text"]]
    ]
    shape: TMaybeRef[Union[str, Literal["square", "round", "circle"]]]
    status: TMaybeRef[Union[str, Literal["normal", "warning", "success", "danger"]]]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    long: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    html_type: TMaybeRef[str]
    autofocus: TMaybeRef[bool]
    href: TMaybeRef[str]


class TLink(TypedDict, total=False):
    href: TMaybeRef[str]
    status: TMaybeRef[Union[str, Literal["normal", "warning", "success", "danger"]]]
    hoverable: TMaybeRef[bool]
    icon: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    disabled: TMaybeRef[bool]


class TTypography(TypedDict, total=False):
    type: TMaybeRef[
        Union[str, Literal["primary", "secondary", "success", "danger", "warning"]]
    ]
    bold: TMaybeRef[bool]
    mark: TMaybeRef[Union[bool, Dict[str, str]]]
    underline: TMaybeRef[bool]
    delete: TMaybeRef[bool]
    code: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    editable: TMaybeRef[bool]
    editing: TMaybeRef[bool]
    default_editing: TMaybeRef[bool]
    edit_text: TMaybeRef[str]
    copyable: TMaybeRef[bool]
    copy_text: TMaybeRef[str]
    copy_delay: TMaybeRef[int]
    ellipsis: TMaybeRef[Union[bool, Any]]
    edit_tooltip_props: TMaybeRef[Dict]
    copy_tooltip_props: TMaybeRef[Dict]


class TDivider(TypedDict, total=False):
    direction: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    orientation: TMaybeRef[Union[str, Literal["left", "center", "right"]]]
    type: TMaybeRef[Union[str, Literal["solid", "dashed", "dotted", "double"]]]
    size: TMaybeRef[int]
    margin: TMaybeRef[Union[int, str]]


class TLayout(TypedDict, total=False):
    has_sider: TMaybeRef[bool]


class TSpace(TypedDict, total=False):
    align: TMaybeRef[Union[str, Literal["start", "end", "center", "baseline"]]]
    direction: TMaybeRef[Union[str, Literal["vertical", "horizontal"]]]
    size: TMaybeRef[Union[int, Union[str, Literal["mini", "small", "medium", "large"]]]]
    wrap: TMaybeRef[bool]
    fill: TMaybeRef[bool]


class TAvatar(TypedDict, total=False):
    shape: TMaybeRef[Union[str, Literal["circle", "square"]]]
    image_url: TMaybeRef[str]
    size: TMaybeRef[int]
    auto_fix_font_size: TMaybeRef[bool]
    trigger_type: TMaybeRef[Union[str, Literal["mask", "button"]]]
    trigger_icon_style: Any
    object_fit: TMaybeRef[
        Union[str, Literal["fill", "contain", "cover", "none", "scale-down"]]
    ]


class TBadge(TypedDict, total=False):
    text: TMaybeRef[str]
    dot: TMaybeRef[bool]
    dot_style: TMaybeRef[Dict]
    max_count: TMaybeRef[int]
    offset: TMaybeRef[List[int]]
    color: TMaybeRef[Union[Any, str]]
    status: TMaybeRef[
        Union[str, Literal["normal", "processing", "success", "warning", "danger"]]
    ]
    count: TMaybeRef[int]


class TCalendar(TypedDict, total=False):
    model_value: TMaybeRef[datetime.date]
    default_value: TMaybeRef[datetime.date]
    mode: TMaybeRef[Union[str, Literal["month", "year"]]]
    default_mode: TMaybeRef[Union[str, Literal["month", "year"]]]
    modes: TMaybeRef[List[Union[str, Literal["month", "year"]]]]


class TCard(TypedDict, total=False):
    bordered: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    hoverable: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["medium", "small"]]]
    header_style: Any
    body_style: Any
    title: TMaybeRef[str]
    extra: TMaybeRef[str]


class TCarousel(TypedDict, total=False):
    current: TMaybeRef[int]
    default_current: TMaybeRef[int]
    auto_play: TMaybeRef[Union[bool, Any]]
    move_speed: TMaybeRef[int]
    animation_name: TMaybeRef[Union[str, Literal["slide", "fade", "card"]]]
    trigger: TMaybeRef[Union[str, Literal["click", "hover"]]]
    direction: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    show_arrow: TMaybeRef[Union[str, Literal["always", "hover", "never"]]]
    arrow_class: TMaybeRef[str]
    indicator_type: TMaybeRef[Union[str, Literal["line", "dot", "slider", "never"]]]
    indicator_position: TMaybeRef[
        Union[str, Literal["bottom", "top", "left", "right", "outer"]]
    ]
    indicator_class: TMaybeRef[str]
    transition_timing_function: TMaybeRef[str]


class TCollapse(TypedDict, total=False):
    active_key: TMaybeRef[List[Union[str, int]]]
    default_active_key: TMaybeRef[List[Union[str, int]]]
    accordion: TMaybeRef[bool]
    show_expand_icon: TMaybeRef[bool]
    expand_icon_position: TMaybeRef[Union[str, Literal["left", "right"]]]
    bordered: TMaybeRef[bool]
    destroy_on_hide: TMaybeRef[bool]


class TComment(TypedDict, total=False):
    author: TMaybeRef[str]
    avatar: TMaybeRef[str]
    content: TMaybeRef[str]
    datetime: TMaybeRef[str]
    align: Any


class TDescriptions(TypedDict, total=False):
    data: TMaybeRef[List]
    column: TMaybeRef[Union[int, Any]]
    title: TMaybeRef[str]
    layout: TMaybeRef[
        Union[
            str,
            Literal["horizontal", "vertical", "inline-horizontal", "inline-vertical"],
        ]
    ]
    align: Any
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    bordered: TMaybeRef[bool]
    label_style: Any
    value_style: Any
    table_layout: TMaybeRef[Union[str, Literal["auto", "fixed"]]]


class TEmpty(TypedDict, total=False):
    description: TMaybeRef[str]
    img_src: TMaybeRef[str]
    in_config_provider: TMaybeRef[bool]


class TImage(TypedDict, total=False):
    src: TMaybeRef[str]
    width: TMaybeRef[Union[str, int]]
    height: TMaybeRef[Union[str, int]]
    title: TMaybeRef[str]
    description: TMaybeRef[str]
    fit: TMaybeRef[
        Union[str, Literal["contain", "cover", "fill", "none", "scale-down"]]
    ]
    alt: TMaybeRef[str]
    hide_footer: TMaybeRef[Union[bool, Union[str, Literal["never"]]]]
    footer_position: TMaybeRef[Union[str, Literal["inner", "outer"]]]
    show_loader: TMaybeRef[bool]
    preview: TMaybeRef[bool]
    preview_visible: TMaybeRef[bool]
    default_preview_visible: TMaybeRef[bool]
    preview_props: Any
    footer_class: TMaybeRef[Union[str, List, Dict]]


class TList(TypedDict, total=False):
    data: TMaybeRef[List]
    size: TMaybeRef[Union[str, Literal["small", "medium", "large"]]]
    bordered: TMaybeRef[bool]
    split: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    hoverable: TMaybeRef[bool]
    pagination_props: Any
    grid_props: TMaybeRef[Dict]
    max_height: TMaybeRef[Union[str, int]]
    bottom_offset: TMaybeRef[int]
    virtual_list_props: Any
    scrollbar: TMaybeRef[Union[bool, Any]]


class TPopover(TypedDict, total=False):
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    title: TMaybeRef[str]
    content: TMaybeRef[str]
    trigger: TMaybeRef[Union[str, Literal["hover", "click", "focus", "contextMenu"]]]
    position: TMaybeRef[
        Union[
            str,
            Literal[
                "top",
                "tl",
                "tr",
                "bottom",
                "bl",
                "br",
                "left",
                "lt",
                "lb",
                "right",
                "rt",
                "rb",
            ],
        ]
    ]
    content_class: Any
    content_style: Any
    arrow_class: Any
    arrow_style: Any
    popup_container: TMaybeRef[Union[str, Any]]


class TStatistic(TypedDict, total=False):
    title: TMaybeRef[str]
    value: TMaybeRef[Union[int, datetime.date, datetime.datetime]]
    format: TMaybeRef[str]
    extra: TMaybeRef[str]
    start: TMaybeRef[bool]
    precision: TMaybeRef[int]
    separator: TMaybeRef[str]
    show_group_separator: TMaybeRef[bool]
    animation: TMaybeRef[bool]
    animation_duration: TMaybeRef[int]
    value_from_: TMaybeRef[int]
    placeholder: TMaybeRef[str]
    value_style: Any


class TTable(TypedDict, total=False):
    columns: TMaybeRef[List]
    data: TMaybeRef[List]
    bordered: TMaybeRef[Union[bool, Any]]
    hoverable: TMaybeRef[bool]
    stripe: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    table_layout_fixed: TMaybeRef[bool]
    loading: TMaybeRef[Union[bool, Dict[str, Any]]]
    row_selection: Any
    expandable: Any
    scroll: TMaybeRef[Dict[str, Union[int, str]]]
    pagination: TMaybeRef[Union[bool, Any]]
    page_position: TMaybeRef[
        Union[str, Literal["tl", "top", "tr", "bl", "bottom", "br"]]
    ]
    indent_size: TMaybeRef[int]
    row_key: TMaybeRef[str]
    show_header: TMaybeRef[bool]
    virtual_list_props: Any
    span_method: Any
    span_all: TMaybeRef[bool]
    load_more: TMaybeRef[str]
    filter_icon_align_left: TMaybeRef[bool]
    hide_expand_button_on_empty: TMaybeRef[bool]
    row_class: TMaybeRef[Union[str, List]]
    draggable: Any
    column_resizable: TMaybeRef[bool]
    summary: TMaybeRef[Union[bool, str]]
    summary_text: TMaybeRef[str]
    summary_span_method: Any
    selected_keys: TMaybeRef[List[Union[str, int]]]
    default_selected_keys: TMaybeRef[List[Union[str, int]]]
    expanded_keys: TMaybeRef[List[Union[str, int]]]
    default_expanded_keys: TMaybeRef[List[Union[str, int]]]
    default_expand_all_rows: TMaybeRef[bool]
    sticky_header: TMaybeRef[Union[bool, int]]
    scrollbar: TMaybeRef[Union[bool, Any]]
    show_empty_tree: TMaybeRef[bool]


class TTabs(TypedDict, total=False):
    default_active_key: TMaybeRef[Union[str, int]]
    position: TMaybeRef[Union[str, Literal["left", "right", "top", "bottom"]]]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    type: TMaybeRef[
        Union[str, Literal["line", "card", "card-gutter", "text", "rounded", "capsule"]]
    ]
    direction: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    editable: TMaybeRef[bool]
    show_add_button: TMaybeRef[bool]
    destroy_on_hide: TMaybeRef[bool]
    lazy_load: TMaybeRef[bool]
    justify: TMaybeRef[bool]
    animation: TMaybeRef[bool]
    header_padding: TMaybeRef[bool]
    auto_switch: TMaybeRef[bool]
    hide_content: TMaybeRef[bool]
    trigger: TMaybeRef[Union[str, Literal["hover", "click"]]]
    scroll_position: TMaybeRef[
        Union[Union[str, Literal["start", "end", "center", "auto"]], int]
    ]


class TTag(TypedDict, total=False):
    color: TMaybeRef[
        Union[
            str,
            Literal[
                "red",
                "orangered",
                "orange",
                "gold",
                "lime",
                "green",
                "cyan",
                "blue",
                "arcoblue",
                "purple",
                "pinkpurple",
                "magenta",
                "gray",
            ],
        ]
    ]
    size: TMaybeRef[Union[str, Literal["small", "medium", "large"]]]
    bordered: TMaybeRef[bool]
    visible: TMaybeRef[bool]
    default_visible: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    closable: TMaybeRef[bool]
    checkable: TMaybeRef[bool]
    checked: TMaybeRef[bool]
    default_checked: TMaybeRef[bool]
    nowrap: TMaybeRef[bool]


class TTimeline(TypedDict, total=False):
    reverse: TMaybeRef[bool]
    direction: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    mode: TMaybeRef[Union[str, Literal["left", "right", "top", "bottom", "alternate"]]]
    pending: TMaybeRef[Union[bool, str]]
    label_position: TMaybeRef[Union[str, Literal["relative", "same"]]]


class TTooltip(TypedDict, total=False):
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    content: TMaybeRef[str]
    position: TMaybeRef[
        Union[
            str,
            Literal[
                "top",
                "tl",
                "tr",
                "bottom",
                "bl",
                "br",
                "left",
                "lt",
                "lb",
                "right",
                "rt",
                "rb",
            ],
        ]
    ]
    mini: TMaybeRef[bool]
    background_color: TMaybeRef[str]
    content_class: Any
    content_style: Any
    arrow_class: Any
    arrow_style: Any
    popup_container: TMaybeRef[Union[str, Any]]


class TTree(TypedDict, total=False):
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    block_node: TMaybeRef[bool]
    default_expand_all: TMaybeRef[bool]
    multiple: TMaybeRef[bool]
    checkable: TMaybeRef[Union[bool, str]]
    selectable: TMaybeRef[Union[bool, str]]
    check_strictly: TMaybeRef[bool]
    checked_strategy: TMaybeRef[Union[str, Literal["all", "parent", "child"]]]
    default_selected_keys: TMaybeRef[List[Union[str, int]]]
    selected_keys: TMaybeRef[List[Union[str, int]]]
    default_checked_keys: TMaybeRef[List[Union[str, int]]]
    checked_keys: TMaybeRef[List[Union[str, int]]]
    default_expanded_keys: TMaybeRef[List[Union[str, int]]]
    expanded_keys: TMaybeRef[List[Union[str, int]]]
    data: TMaybeRef[List]
    field_names: Any
    show_line: TMaybeRef[bool]
    load_more: TMaybeRef[str]
    draggable: TMaybeRef[bool]
    allow_drop: TMaybeRef[str]
    virtual_list_props: Any
    default_expand_selected: TMaybeRef[bool]
    default_expand_checked: TMaybeRef[bool]
    auto_expand_parent: TMaybeRef[bool]
    half_checked_keys: TMaybeRef[List[Union[str, int]]]
    only_check_leaf: TMaybeRef[bool]
    animation: TMaybeRef[bool]
    action_on_node_click: TMaybeRef[Union[str, Literal["expand"]]]


class TAutocomplete(TypedDict, total=False):
    model_value: TMaybeRef[str]
    default_value: TMaybeRef[str]
    disabled: TMaybeRef[bool]
    data: TMaybeRef[List[Union[str, int, Any]]]
    popup_container: TMaybeRef[Union[str, Any, None, Any]]
    strict: TMaybeRef[bool]
    filter_option: Any
    trigger_props: Any
    allow_clear: TMaybeRef[bool]
    virtual_list_props: Any


class TCascader(TypedDict, total=False):
    path_mode: TMaybeRef[bool]
    multiple: TMaybeRef[bool]
    model_value: TMaybeRef[Union[str, int, Dict[str, Any]]]
    default_value: TMaybeRef[Union[str, int, Dict[str, Any]]]
    disabled: TMaybeRef[bool]
    error: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    allow_search: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    input_value: TMaybeRef[str]
    default_input_value: TMaybeRef[str]
    popup_visible: TMaybeRef[bool]
    expand_trigger: TMaybeRef[Union[str, Literal["click", "hover"]]]
    default_popup_visible: TMaybeRef[bool]
    placeholder: TMaybeRef[str]
    filter_option: TMaybeRef[str]
    popup_container: TMaybeRef[Union[str, Any]]
    max_tag_count: TMaybeRef[int]
    format_label: TMaybeRef[str]
    trigger_props: Any
    check_strictly: TMaybeRef[bool]
    load_more: TMaybeRef[str]
    loading: TMaybeRef[bool]
    search_option_only_label: TMaybeRef[bool]
    search_delay: TMaybeRef[int]
    field_names: Any
    value_key: TMaybeRef[str]
    fallback: TMaybeRef[Union[bool, str]]
    expand_child: TMaybeRef[bool]
    virtual_list_props: Any
    tag_nowrap: TMaybeRef[bool]


class TCheckbox(TypedDict, total=False):
    model_value: TMaybeRef[Union[bool, List[Union[str, int, bool]]]]
    default_checked: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    indeterminate: TMaybeRef[bool]


class TColorpicker(TypedDict, total=False):
    model_value: TMaybeRef[str]
    default_value: TMaybeRef[str]
    format: TMaybeRef[Union[str, Literal["hex", "rgb"]]]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    show_text: TMaybeRef[bool]
    show_history: TMaybeRef[bool]
    show_preset: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    disabled_alpha: TMaybeRef[bool]
    hide_trigger: TMaybeRef[bool]
    trigger_props: Any
    history_colors: TMaybeRef[List[str]]
    preset_colors: TMaybeRef[List[str]]


class TDatepicker(TypedDict, total=False):
    locale: TMaybeRef[Dict[str, Any]]
    hide_trigger: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    readonly: TMaybeRef[bool]
    error: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    shortcuts: TMaybeRef[List]
    shortcuts_position: TMaybeRef[Union[str, Literal["left", "bottom", "right"]]]
    position: TMaybeRef[Union[str, Literal["top", "tl", "tr", "bottom", "bl", "br"]]]
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    trigger_props: Any
    unmount_on_close: TMaybeRef[bool]
    placeholder: TMaybeRef[str]
    disabled: TMaybeRef[bool]
    disabled_date: TMaybeRef[str]
    disabled_time: TMaybeRef[str]
    picker_value: TMaybeRef[Union[datetime.date, datetime.datetime, str, int]]
    default_picker_value: TMaybeRef[Union[datetime.date, datetime.datetime, str, int]]
    popup_container: TMaybeRef[Union[str, Any]]
    value_format: TMaybeRef[Union[Union[str, Literal["timestamp", "Date"]], str]]
    preview_shortcut: TMaybeRef[bool]
    show_confirm_btn: TMaybeRef[bool]
    disabled_input: TMaybeRef[bool]
    abbreviation: TMaybeRef[bool]


class TForm(TypedDict, total=False):
    model: TMaybeRef[Dict]
    layout: TMaybeRef[Union[str, Literal["horizontal", "vertical", "inline"]]]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    label_col_props: TMaybeRef[Dict]
    wrapper_col_props: TMaybeRef[Dict]
    label_align: TMaybeRef[Union[str, Literal["left", "right"]]]
    disabled: TMaybeRef[bool]
    rules: TMaybeRef[Dict[str, Union[Any, List]]]
    auto_label_width: TMaybeRef[bool]
    id: TMaybeRef[str]
    scroll_to_first_error: TMaybeRef[bool]


class TInput(TypedDict, total=False):
    model_value: TMaybeRef[str]
    default_value: TMaybeRef[str]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    allow_clear: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    readonly: TMaybeRef[bool]
    error: TMaybeRef[bool]
    placeholder: TMaybeRef[str]
    max_length: TMaybeRef[Union[int, Dict[str, Union[int, bool]]]]
    show_word_limit: TMaybeRef[bool]
    word_length: TMaybeRef[str]
    word_slice: TMaybeRef[str]
    input_attrs: TMaybeRef[Dict]
    prepend: TMaybeRef[str]
    append: TMaybeRef[str]


class TInputnumber(TypedDict, total=False):
    model_value: TMaybeRef[int]
    default_value: TMaybeRef[int]
    mode: TMaybeRef[Union[str, Literal["embed", "button"]]]
    precision: TMaybeRef[int]
    step: TMaybeRef[int]
    disabled: TMaybeRef[bool]
    error: TMaybeRef[bool]
    max: TMaybeRef[int]
    min: TMaybeRef[int]
    formatter: TMaybeRef[str]
    parser: TMaybeRef[str]
    placeholder: TMaybeRef[str]
    hide_button: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    allow_clear: TMaybeRef[bool]
    model_event: TMaybeRef[Union[str, Literal["change", "input"]]]
    read_only: TMaybeRef[bool]
    input_attrs: TMaybeRef[Dict]


class TVerificationcode(TypedDict, total=False):
    model_value: TMaybeRef[str]
    default_value: TMaybeRef[str]
    length: TMaybeRef[int]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    disabled: TMaybeRef[bool]
    masked: TMaybeRef[bool]
    readonly: TMaybeRef[bool]
    error: TMaybeRef[bool]
    separator: TMaybeRef[str]
    formatter: TMaybeRef[str]


class TInputtag(TypedDict, total=False):
    model_value: TMaybeRef[List[Union[str, int, Any]]]
    default_value: TMaybeRef[List[Union[str, int, Any]]]
    input_value: TMaybeRef[str]
    default_input_value: TMaybeRef[str]
    placeholder: TMaybeRef[str]
    disabled: TMaybeRef[bool]
    error: TMaybeRef[bool]
    readonly: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    max_tag_count: TMaybeRef[int]
    retain_input_value: TMaybeRef[Union[bool, Dict[str, bool]]]
    format_tag: TMaybeRef[str]
    unique_value: TMaybeRef[bool]
    field_names: Any
    tag_nowrap: TMaybeRef[bool]


class TMention(TypedDict, total=False):
    model_value: TMaybeRef[str]
    default_value: TMaybeRef[str]
    data: TMaybeRef[List[Union[str, int, Any]]]
    prefix: TMaybeRef[Union[str, List[str]]]
    split: TMaybeRef[str]
    type: TMaybeRef[Union[str, Literal["input", "textarea"]]]
    disabled: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]


class TRadio(TypedDict, total=False):
    model_value: TMaybeRef[Union[str, int, bool]]
    default_checked: TMaybeRef[bool]
    type: TMaybeRef[Union[str, Literal["radio", "button"]]]
    disabled: TMaybeRef[bool]


class TRate(TypedDict, total=False):
    count: TMaybeRef[int]
    model_value: TMaybeRef[int]
    default_value: TMaybeRef[int]
    allow_half: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    grading: TMaybeRef[bool]
    readonly: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    color: TMaybeRef[Union[str, Dict[str, str]]]


class TSelect(TypedDict, total=False):
    multiple: TMaybeRef[bool]
    model_value: TMaybeRef[
        Union[
            str, int, bool, Dict[str, Any], List[Union[str, int, bool, Dict[str, Any]]]
        ]
    ]
    default_value: TMaybeRef[
        Union[
            str, int, bool, Dict[str, Any], List[Union[str, int, bool, Dict[str, Any]]]
        ]
    ]
    input_value: TMaybeRef[str]
    default_input_value: TMaybeRef[str]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    placeholder: TMaybeRef[str]
    loading: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    error: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    allow_search: TMaybeRef[Union[bool, Dict[str, bool]]]
    allow_create: TMaybeRef[bool]
    max_tag_count: TMaybeRef[int]
    popup_container: TMaybeRef[Union[str, Any]]
    bordered: TMaybeRef[bool]
    default_active_first_option: TMaybeRef[bool]
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    unmount_on_close: TMaybeRef[bool]
    filter_option: TMaybeRef[Union[bool, str]]
    virtual_list_props: Any
    trigger_props: Any
    format_label: TMaybeRef[str]
    fallback_option: TMaybeRef[Union[bool, str]]
    show_extra_options: TMaybeRef[bool]
    value_key: TMaybeRef[str]
    search_delay: TMaybeRef[int]
    limit: TMaybeRef[int]
    field_names: Any
    scrollbar: TMaybeRef[Union[bool, Any]]
    show_header_on_empty: TMaybeRef[bool]
    show_footer_on_empty: TMaybeRef[bool]
    tag_nowrap: TMaybeRef[bool]


class TSlider(TypedDict, total=False):
    model_value: TMaybeRef[Union[int, Tuple[int, int]]]
    default_value: TMaybeRef[Union[int, Tuple[int, int]]]
    step: TMaybeRef[int]
    min: TMaybeRef[int]
    marks: TMaybeRef[Dict[int, str]]
    max: TMaybeRef[int]
    direction: Any
    disabled: TMaybeRef[bool]
    show_ticks: TMaybeRef[bool]
    show_input: TMaybeRef[bool]
    range: TMaybeRef[bool]
    show_tooltip: TMaybeRef[bool]


class TSwitch(TypedDict, total=False):
    model_value: TMaybeRef[Union[str, int, bool]]
    default_checked: TMaybeRef[bool]
    disabled: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    type: TMaybeRef[Union[str, Literal["circle", "round", "line"]]]
    size: TMaybeRef[Union[str, Literal["small", "medium"]]]
    checked_value: TMaybeRef[Union[str, int, bool]]
    unchecked_value: TMaybeRef[Union[str, int, bool]]
    checked_color: TMaybeRef[str]
    unchecked_color: TMaybeRef[str]
    before_change: TMaybeRef[str]
    checked_text: TMaybeRef[str]
    unchecked_text: TMaybeRef[str]


class TTextarea(TypedDict, total=False):
    model_value: TMaybeRef[str]
    default_value: TMaybeRef[str]
    placeholder: TMaybeRef[str]
    disabled: TMaybeRef[bool]
    error: TMaybeRef[bool]
    max_length: TMaybeRef[Union[int, Dict[str, Union[int, bool]]]]
    show_word_limit: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    auto_size: TMaybeRef[Union[bool, Dict[str, Optional[int]]]]
    word_length: TMaybeRef[str]
    word_slice: TMaybeRef[str]
    textarea_attrs: TMaybeRef[Dict[str, Any]]


class TTimepicker(TypedDict, total=False):
    type: TMaybeRef[Union[str, Literal["time", "time-range"]]]
    model_value: TMaybeRef[
        Union[str, int, datetime.date, List[Union[str, int, datetime.date]]]
    ]
    default_value: TMaybeRef[
        Union[str, int, datetime.date, List[Union[str, int, datetime.date]]]
    ]
    disabled: TMaybeRef[bool]
    allow_clear: TMaybeRef[bool]
    readonly: TMaybeRef[bool]
    error: TMaybeRef[bool]
    format: TMaybeRef[str]
    placeholder: TMaybeRef[Union[str, List[str]]]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    popup_container: TMaybeRef[Union[str, Any]]
    use12_hours: TMaybeRef[bool]
    step: TMaybeRef[Dict[str, int]]
    disabled_hours: TMaybeRef[str]
    disabled_minutes: TMaybeRef[str]
    disabled_seconds: Any
    hide_disabled_options: TMaybeRef[bool]
    disable_confirm: TMaybeRef[bool]
    position: TMaybeRef[Union[str, Literal["top", "tl", "tr", "bottom", "bl", "br"]]]
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    trigger_props: Any
    unmount_on_close: TMaybeRef[bool]


class TTransfer(TypedDict, total=False):
    data: TMaybeRef[List]
    model_value: TMaybeRef[List[str]]
    default_value: TMaybeRef[List[str]]
    selected: TMaybeRef[List[str]]
    default_selected: TMaybeRef[List[str]]
    disabled: TMaybeRef[bool]
    simple: TMaybeRef[bool]
    one_way: TMaybeRef[bool]
    show_search: TMaybeRef[bool]
    show_select_all: TMaybeRef[bool]
    title: TMaybeRef[List[str]]
    source_input_search_props: TMaybeRef[Dict]
    target_input_search_props: TMaybeRef[Dict]


class TTreeselect(TypedDict, total=False):
    disabled: TMaybeRef[bool]
    loading: TMaybeRef[bool]
    error: TMaybeRef[bool]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    border: TMaybeRef[bool]
    allow_search: TMaybeRef[Union[bool, Dict[str, bool]]]
    allow_clear: TMaybeRef[bool]
    placeholder: TMaybeRef[str]
    max_tag_count: TMaybeRef[int]
    multiple: TMaybeRef[bool]
    default_value: TMaybeRef[Union[str, int, List[Union[str, int]], Any]]
    model_value: TMaybeRef[Union[str, int, List[Union[str, int]], Any]]
    field_names: Any
    data: TMaybeRef[List]
    label_in_value: TMaybeRef[bool]
    tree_checkable: TMaybeRef[bool]
    tree_check_strictly: TMaybeRef[bool]
    tree_checked_strategy: TMaybeRef[Union[str, Literal["all", "parent", "child"]]]
    tree_props: Any
    trigger_props: Any
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    dropdown_style: Any
    dropdown_class_name: TMaybeRef[Union[str, List[str]]]
    filter_tree_node: TMaybeRef[str]
    load_more: TMaybeRef[str]
    disable_filter: TMaybeRef[bool]
    popup_container: TMaybeRef[Union[str, Any]]
    fallback_option: TMaybeRef[Union[bool, str]]
    selectable: TMaybeRef[Union[bool, Union[str, Literal["leaf"]]]]
    scrollbar: TMaybeRef[Union[bool, Any]]
    show_header_on_empty: TMaybeRef[bool]
    show_footer_on_empty: TMaybeRef[bool]
    input_value: TMaybeRef[str]
    default_input_value: TMaybeRef[str]


class TUpload(TypedDict, total=False):
    file_list: TMaybeRef[List]
    default_file_list: TMaybeRef[List]
    accept: TMaybeRef[str]
    action: TMaybeRef[str]
    disabled: TMaybeRef[bool]
    multiple: TMaybeRef[bool]
    directory: TMaybeRef[bool]
    draggable: TMaybeRef[bool]
    tip: TMaybeRef[str]
    headers: TMaybeRef[Dict[str, str]]
    data: TMaybeRef[Union[Dict[str, Union[str, Any]], str]]
    name: TMaybeRef[Union[str, str]]
    with_credentials: TMaybeRef[bool]
    custom_request: TMaybeRef[str]
    limit: TMaybeRef[int]
    auto_upload: TMaybeRef[bool]
    show_file_list: TMaybeRef[bool]
    show_remove_button: TMaybeRef[bool]
    show_retry_button: TMaybeRef[bool]
    show_cancel_button: TMaybeRef[bool]
    show_upload_button: TMaybeRef[Union[bool, Dict[str, bool]]]
    show_preview_button: TMaybeRef[bool]
    download: TMaybeRef[bool]
    show_link: TMaybeRef[bool]
    image_loading: TMaybeRef[Union[str, Literal["eager", "lazy"]]]
    list_type: TMaybeRef[Union[str, Literal["text", "picture", "picture-card"]]]
    response_url_key: TMaybeRef[Union[str, str]]
    custom_icon: Any
    image_preview: TMaybeRef[bool]
    on_before_upload: TMaybeRef[str]
    on_before_remove: TMaybeRef[str]
    on_button_click: TMaybeRef[str]


class TAlert(TypedDict, total=False):
    type: TMaybeRef[
        Union[str, Literal["info", "success", "warning", "error", "normal"]]
    ]
    show_icon: TMaybeRef[bool]
    closable: TMaybeRef[bool]
    title: TMaybeRef[str]
    banner: TMaybeRef[bool]
    center: TMaybeRef[bool]


class TDrawer(TypedDict, total=False):
    visible: TMaybeRef[bool]
    default_visible: TMaybeRef[bool]
    placement: TMaybeRef[Union[str, Literal["top", "right", "bottom", "left"]]]
    title: TMaybeRef[str]
    mask: TMaybeRef[bool]
    mask_closable: TMaybeRef[bool]
    closable: TMaybeRef[bool]
    ok_text: TMaybeRef[str]
    cancel_text: TMaybeRef[str]
    ok_loading: TMaybeRef[bool]
    ok_button_props: Any
    cancel_button_props: Any
    unmount_on_close: TMaybeRef[bool]
    width: TMaybeRef[Union[int, str]]
    height: TMaybeRef[Union[int, str]]
    popup_container: TMaybeRef[Union[str, Any]]
    drawer_style: Any
    body_class: TMaybeRef[Union[str, List]]
    body_style: Any
    on_before_ok: TMaybeRef[str]
    on_before_cancel: TMaybeRef[str]
    esc_to_close: TMaybeRef[bool]
    render_to_body: TMaybeRef[bool]
    header: TMaybeRef[bool]
    footer: TMaybeRef[bool]
    hide_cancel: TMaybeRef[bool]


class TModal(TypedDict, total=False):
    visible: TMaybeRef[bool]
    default_visible: TMaybeRef[bool]
    width: TMaybeRef[Union[int, str]]
    top: TMaybeRef[Union[int, str]]
    mask: TMaybeRef[bool]
    title: TMaybeRef[str]
    title_align: TMaybeRef[Union[str, Literal["start", "center"]]]
    align_center: TMaybeRef[bool]
    unmount_on_close: TMaybeRef[bool]
    mask_closable: TMaybeRef[bool]
    hide_cancel: TMaybeRef[bool]
    simple: TMaybeRef[bool]
    closable: TMaybeRef[bool]
    ok_text: TMaybeRef[str]
    cancel_text: TMaybeRef[str]
    ok_loading: TMaybeRef[bool]
    ok_button_props: Any
    cancel_button_props: Any
    footer: TMaybeRef[bool]
    render_to_body: TMaybeRef[bool]
    popup_container: TMaybeRef[Union[str, Any]]
    mask_style: Any
    modal_class: TMaybeRef[Union[str, List]]
    modal_style: Any
    on_before_ok: TMaybeRef[str]
    on_before_cancel: TMaybeRef[str]
    esc_to_close: TMaybeRef[bool]
    draggable: TMaybeRef[bool]
    fullscreen: TMaybeRef[bool]
    mask_animation_name: TMaybeRef[str]
    modal_animation_name: TMaybeRef[str]
    body_class: TMaybeRef[Union[str, List]]
    body_style: Any
    hide_title: TMaybeRef[bool]


class TNotification(TypedDict, total=False):
    info: TMaybeRef[str]
    success: TMaybeRef[str]
    warning: TMaybeRef[str]
    error: TMaybeRef[str]
    remove: TMaybeRef[str]
    clear: TMaybeRef[str]


class TPopconfirm(TypedDict, total=False):
    content: TMaybeRef[str]
    position: TMaybeRef[
        Union[
            str,
            Literal[
                "top",
                "tl",
                "tr",
                "bottom",
                "bl",
                "br",
                "left",
                "lt",
                "lb",
                "right",
                "rt",
                "rb",
            ],
        ]
    ]
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    type: TMaybeRef[Union[str, Literal["info", "success", "warning", "error"]]]
    ok_text: TMaybeRef[str]
    cancel_text: TMaybeRef[str]
    ok_loading: TMaybeRef[bool]
    ok_button_props: Any
    cancel_button_props: Any
    content_class: Any
    content_style: Any
    arrow_class: Any
    arrow_style: Any
    popup_container: TMaybeRef[Union[str, Any]]
    on_before_ok: TMaybeRef[str]
    on_before_cancel: TMaybeRef[str]


class TProgress(TypedDict, total=False):
    type: TMaybeRef[Union[str, Literal["line", "circle"]]]
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    percent: TMaybeRef[int]
    steps: TMaybeRef[int]
    animation: TMaybeRef[bool]
    stroke_width: TMaybeRef[int]
    width: TMaybeRef[Union[int, str]]
    color: TMaybeRef[Union[str, Dict]]
    track_color: TMaybeRef[str]
    show_text: TMaybeRef[bool]
    status: TMaybeRef[Union[str, Literal["normal", "success", "warning", "danger"]]]


class TResult(TypedDict, total=False):
    status: TMaybeRef[
        Union[
            Union[
                str, Literal["info", "success", "warning", "error", "403", "404", "500"]
            ],
            None,
        ]
    ]
    title: TMaybeRef[str]
    subtitle: TMaybeRef[str]


class TSpin(TypedDict, total=False):
    size: TMaybeRef[int]
    loading: TMaybeRef[bool]
    dot: TMaybeRef[bool]
    tip: TMaybeRef[str]
    hide_icon: TMaybeRef[bool]


class TSkeleton(TypedDict, total=False):
    loading: TMaybeRef[bool]
    animation: TMaybeRef[bool]


class TBreadcrumb(TypedDict, total=False):
    max_count: TMaybeRef[int]
    routes: TMaybeRef[List]
    separator: TMaybeRef[Union[str, int]]
    custom_url: TMaybeRef[str]


class TDropdown(TypedDict, total=False):
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    trigger: TMaybeRef[Union[str, Literal["hover", "click", "focus", "contextMenu"]]]
    position: TMaybeRef[Union[str, Literal["top", "tl", "tr", "bottom", "bl", "br"]]]
    popup_container: TMaybeRef[Union[str, Any]]
    popup_max_height: TMaybeRef[Union[bool, int]]
    hide_on_select: TMaybeRef[bool]


class TMenu(TypedDict, total=False):
    theme: TMaybeRef[Union[str, Literal["light", "dark"]]]
    mode: TMaybeRef[Union[str, Literal["vertical", "horizontal", "pop", "popButton"]]]
    level_indent: TMaybeRef[int]
    auto_open: TMaybeRef[bool]
    collapsed: TMaybeRef[bool]
    default_collapsed: TMaybeRef[bool]
    collapsed_width: TMaybeRef[int]
    accordion: TMaybeRef[bool]
    auto_scroll_into_view: TMaybeRef[bool]
    show_collapse_button: TMaybeRef[bool]
    selected_keys: TMaybeRef[List[str]]
    default_selected_keys: TMaybeRef[List[str]]
    open_keys: TMaybeRef[List[str]]
    default_open_keys: TMaybeRef[List[str]]
    scroll_config: TMaybeRef[Dict[str, Any]]
    trigger_props: Any
    tooltip_props: TMaybeRef[Dict]
    auto_open_selected: TMaybeRef[bool]
    breakpoint: TMaybeRef[Union[str, Literal["xxl", "xl", "lg", "md", "sm", "xs"]]]
    popup_max_height: TMaybeRef[Union[bool, int]]


class TPageheader(TypedDict, total=False):
    title: TMaybeRef[str]
    subtitle: TMaybeRef[str]
    show_back: TMaybeRef[bool]


class TPagination(TypedDict, total=False):
    total: TMaybeRef[int]
    current: TMaybeRef[int]
    default_current: TMaybeRef[int]
    page_size: TMaybeRef[int]
    default_page_size: TMaybeRef[int]
    disabled: TMaybeRef[bool]
    hide_on_single_page: TMaybeRef[bool]
    simple: TMaybeRef[bool]
    show_total: TMaybeRef[bool]
    show_more: TMaybeRef[bool]
    show_jumper: TMaybeRef[bool]
    show_page_size: TMaybeRef[bool]
    page_size_options: TMaybeRef[List[int]]
    page_size_props: Any
    size: TMaybeRef[Union[str, Literal["mini", "small", "medium", "large"]]]
    page_item_style: Any
    active_page_item_style: Any
    base_size: TMaybeRef[int]
    buffer_size: TMaybeRef[int]
    auto_adjust: TMaybeRef[bool]


class TSteps(TypedDict, total=False):
    type: TMaybeRef[Union[str, Literal["default", "arrow", "dot", "navigation"]]]
    direction: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    label_placement: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    current: TMaybeRef[int]
    default_current: TMaybeRef[int]
    status: TMaybeRef[Union[str, Literal["wait", "process", "finish", "error"]]]
    line_less: TMaybeRef[bool]
    small: TMaybeRef[bool]
    changeable: TMaybeRef[bool]


class TAffix(TypedDict, total=False):
    offset_top: TMaybeRef[int]
    offset_bottom: TMaybeRef[int]
    target: TMaybeRef[Union[str, Any, Any]]
    target_container: TMaybeRef[Union[str, Any, Any]]


class TAnchor(TypedDict, total=False):
    boundary: TMaybeRef[
        Union[Union[str, Literal["start", "end", "center", "nearest"]], int]
    ]
    line_less: TMaybeRef[bool]
    scroll_container: TMaybeRef[Union[str, Any, Any]]
    change_hash: TMaybeRef[bool]
    smooth: TMaybeRef[bool]


class TBacktop(TypedDict, total=False):
    visible_height: TMaybeRef[int]
    target_container: TMaybeRef[Union[str, Any]]
    easing: TMaybeRef[str]
    duration: TMaybeRef[int]


class TConfigprovider(TypedDict, total=False):
    prefix_cls: TMaybeRef[str]
    locale: TMaybeRef[Dict]
    size: Any
    global_: TMaybeRef[bool]
    update_at_scroll: TMaybeRef[bool]
    scroll_to_close: TMaybeRef[bool]
    exchange_time: TMaybeRef[bool]


class TResizebox(TypedDict, total=False):
    width: TMaybeRef[int]
    height: TMaybeRef[int]
    component: TMaybeRef[str]
    directions: TMaybeRef[List[Union[str, Literal["left", "right", "top", "bottom"]]]]


class TTrigger(TypedDict, total=False):
    popup_visible: TMaybeRef[bool]
    default_popup_visible: TMaybeRef[bool]
    trigger: TMaybeRef[Union[str, Literal["hover", "click", "focus", "contextMenu"]]]
    position: TMaybeRef[
        Union[
            str,
            Literal[
                "top",
                "tl",
                "tr",
                "bottom",
                "bl",
                "br",
                "left",
                "lt",
                "lb",
                "right",
                "rt",
                "rb",
            ],
        ]
    ]
    disabled: TMaybeRef[bool]
    popup_offset: TMaybeRef[int]
    popup_translate: Any
    show_arrow: TMaybeRef[bool]
    align_point: TMaybeRef[bool]
    popup_hover_stay: TMaybeRef[bool]
    blur_to_close: TMaybeRef[bool]
    click_to_close: TMaybeRef[bool]
    click_outside_to_close: TMaybeRef[bool]
    unmount_on_close: TMaybeRef[bool]
    content_class: TMaybeRef[Union[str, List, Dict]]
    content_style: Any
    arrow_class: TMaybeRef[Union[str, List, Dict]]
    arrow_style: Any
    popup_style: Any
    animation_name: TMaybeRef[str]
    duration: TMaybeRef[Union[int, Dict[str, int]]]
    mouse_enter_delay: TMaybeRef[int]
    mouse_leave_delay: TMaybeRef[int]
    focus_delay: TMaybeRef[int]
    auto_fit_popup_width: TMaybeRef[bool]
    auto_fit_popup_min_width: TMaybeRef[bool]
    auto_fix_position: TMaybeRef[bool]
    popup_container: TMaybeRef[Union[str, Any]]
    update_at_scroll: TMaybeRef[bool]
    auto_fit_position: TMaybeRef[bool]
    render_to_body: TMaybeRef[bool]
    prevent_focus: TMaybeRef[bool]
    scroll_to_close: TMaybeRef[bool]
    scroll_to_close_distance: TMaybeRef[int]


class TSplit(TypedDict, total=False):
    component: TMaybeRef[str]
    direction: TMaybeRef[Union[str, Literal["horizontal", "vertical"]]]
    size: TMaybeRef[Union[int, str]]
    default_size: TMaybeRef[Union[int, str]]
    min: TMaybeRef[Union[int, str]]
    max: TMaybeRef[Union[int, str]]
    disabled: TMaybeRef[bool]


class TOverflowlist(TypedDict, total=False):
    min: TMaybeRef[int]
    margin: TMaybeRef[int]
    from_: TMaybeRef[Union[str, Literal["start", "end"]]]


class TWatermark(TypedDict, total=False):
    content: TMaybeRef[Union[str, List[str]]]
    image: TMaybeRef[str]
    width: TMaybeRef[int]
    height: TMaybeRef[int]
    gap: TMaybeRef[Tuple[int, int]]
    offset: TMaybeRef[Tuple[int, int]]
    rotate: TMaybeRef[int]
    font: Any
    z_index: TMaybeRef[int]
    alpha: TMaybeRef[int]
    anti_tamper: TMaybeRef[bool]
    grayscale: TMaybeRef[bool]
    repeat: TMaybeRef[bool]
    staggered: TMaybeRef[bool]
